Previous 199869 Revisions Next

r17968 Monday 17th September, 2012 at 15:00:31 UTC by Miodrag Milanović
Modernized screen update calls (no whatsnew)
[src/emu]screen.h
[src/mame/drivers]1942.c 1943.c 1945kiii.c 2mindril.c 39in1.c 3do.c 40love.c 4enraya.c 4roses.c 5clown.c 8080bw.c 88games.c ace.c acefruit.c acommand.c actfancr.c adp.c aeroboto.c aerofgt.c airbustr.c ajax.c albazc.c albazg.c aleck64.c alg.c aliens.c alpha68k.c amaticmg.c ambush.c ampoker2.c amspdwy.c angelkds.c appoooh.c aquarium.c arabian.c arcadecl.c arcadia.c argus.c aristmk4.c aristmk6.c arkanoid.c armedf.c ashnojoe.c asterix.c astinvad.c astrocde.c astrocorp.c astrof.c asuka.c atarifb.c atarig1.c atarig42.c atarigt.c atarigx2.c atarisy1.c atarisy2.c atarisy4.c atetris.c atlantis.c atvtrack.c avalnche.c avt.c backfire.c badlands.c bagman.c balsente.c bankp.c baraduke.c batman.c battlane.c battlera.c battlex.c battlnts.c bbusters.c beaminv.c beezer.c berzerk.c bestleag.c bfcobra.c bigevglf.c bigstrkb.c bingoc.c bingor.c bionicc.c bishi.c bking.c blackt96.c bladestl.c blitz.c blitz68k.c blktiger.c blmbycar.c blockade.c blockhl.c blockout.c bloodbro.c blstroid.c blueprnt.c bmcbowl.c bmcpokr.c bnstars.c bogeyman.c bombjack.c boogwing.c bottom9.c boxer.c brkthru.c bsktball.c btime.c bublbobl.c buggychl.c buster.c bwing.c cabal.c cabaret.c calomega.c calorie.c canyon.c capbowl.c cardline.c carjmbre.c carpolo.c carrera.c caswin.c cave.c cb2001.c cball.c cbasebal.c cbuster.c ccastles.c cchance.c cclimber.c cd32.c cdi.c centiped.c chaknpop.c cham24.c champbas.c champbwl.c chanbara.c chance32.c changela.c cheekyms.c chinagat.c chinsan.c chqflag.c cinemat.c circus.c circusc.c cischeat.c citycon.c clayshoo.c cloak.c cloud9.c clshroad.c cmmb.c cninja.c cntsteer.c cobra.c coinmstr.c coinmvga.c combatsc.c commando.c compgolf.c contra.c coolridr.c cop01.c copsnrob.c corona.c cosmic.c cps1.c cps2.c cps3.c crbaloon.c crimfght.c crospang.c crshrace.c crystal.c cshooter.c cubeqst.c cultures.c cvs.c cyberbal.c cybertnk.c cyclemb.c d9final.c dacholer.c dai3wksi.c dambustr.c darius.c darkmist.c darkseal.c dassault.c dblewing.c dbz.c dcheese.c dcon.c dday.c ddayjlc.c ddealer.c ddenlovr.c ddragon.c ddragon3.c ddribble.c ddz.c deadang.c dec0.c dec8.c deco156.c deco32.c deco_ld.c deco_mlc.c decocass.c deniam.c deshoros.c destroyr.c dgpix.c dietgo.c discoboy.c diverboy.c djboy.c djmain.c dkong.c dlair.c dmndrby.c docastle.c dogfgt.c dominob.c dooyong.c dorachan.c dotrikun.c dragrace.c dreamwld.c drgnmst.c dribling.c drmicro.c drtomy.c drw80pkr.c dunhuang.c dwarfd.c dynadice.c dynax.c dynduke.c egghunt.c embargo.c enigma2.c eolith.c eolith16.c epos.c eprom.c equites.c esd16.c esh.c espial.c esripsys.c ettrivia.c exedexes.c exerion.c exidy.c expro02.c exprraid.c exzisus.c f-32.c f1gp.c famibox.c fantland.c fastfred.c fastlane.c fcombat.c fcrash.c feversoc.c fgoal.c finalizr.c firebeat.c firefox.c firetrap.c firetrk.c fitfight.c flipjack.c flkatck.c flower.c flstory.c flyball.c foodf.c fortecar.c freekick.c fromanc2.c fromance.c funkball.c funkybee.c funkyjet.c funworld.c funybubl.c fuukifg2.c fuukifg3.c gaelco.c gaelco2.c gaelco3d.c gaiden.c gal3.c galaga.c galastrm.c galaxi.c galaxia.c galaxian.c galaxold.c galgame.c galivan.c galpani2.c galpani3.c galpanic.c galspnbl.c gamecstl.c gaplus.c gatron.c gauntlet.c gberet.c gbusters.c gcpinbal.c gijoe.c ginganin.c gladiatr.c glass.c gng.c go2000.c goal92.c goindol.c goldngam.c goldnpkr.c goldstar.c gomoku.c good.c gotcha.c gottlieb.c gotya.c gpworld.c gradius3.c grchamp.c gridlee.c groundfx.c gstream.c gstriker.c gsword.c guab.c gumbo.c gunbustr.c gundealr.c gunpey.c gunsmoke.c gyruss.c halleys.c hanaawas.c hcastle.c hexion.c higemaru.c highvdeo.c hikaru.c himesiki.c hitme.c hitpoker.c hnayayoi.c hng64.c holeland.c homedata.c homerun.c hornet.c hotblock.c hotstuff.c hvyunit.c hyhoo.c hyperspt.c hyprduel.c igs009.c igs011.c igs017.c igs_m027.c igspoker.c ikki.c imolagp.c intrscti.c inufuku.c iqblock.c irobot.c ironhors.c istellar.c itech32.c itech8.c itgambl2.c itgambl3.c jack.c jackal.c jackie.c jackpool.c jailbrek.c jalmah.c jangou.c jantotsu.c jchan.c jclub2.c jokrwild.c jollyjgr.c jongkyo.c jpmsys5.c jrpacman.c jubilee.c junofrst.c kaneko16.c kangaroo.c karnov.c kchamp.c kickgoal.c kingdrby.c kingobox.c kinst.c klax.c kncljoe.c koftball.c koikoi.c konamigx.c konamim2.c kopunch.c ksayakyu.c kyugo.c labyrunr.c ladybug.c ladyfrog.c laserbas.c laserbat.c lasso.c lastduel.c lastfght.c lazercmd.c legionna.c lemmings.c lethal.c lgp.c liberate.c limenko.c littlerb.c lkage.c lockon.c looping.c lordgun.c lsasquad.c ltcasino.c luckgrln.c lucky74.c lvcards.c lwings.c m10.c m107.c m14.c m52.c m57.c m58.c m62.c m63.c m72.c m79amb.c m90.c m92.c macrossp.c macs.c madmotor.c magic10.c magicard.c magicfly.c magictg.c magmax.c mainevt.c mainsnk.c majorpkr.c malzak.c mappy.c marineb.c marinedt.c mario.c markham.c mastboy.c matmania.c maygayv1.c mayumi.c mazerbla.c mcatadv.c mcr.c mcr3.c mcr68.c meadows.c mediagx.c megaplay.c megasys1.c megatech.c megazone.c meijinsn.c meritm.c mermaid.c metalmx.c metlclsh.c metro.c mexico86.c meyc8080.c meyc8088.c mgolf.c midas.c midvunit.c midzeus.c mikie.c mil4000.c miniboy7.c minivadr.c mirage.c mirax.c missb2.c missile.c mitchell.c mjkjidai.c mjsister.c mlanding.c model1.c model2.c model3.c mogura.c mole.c momoko.c monzagp.c moo.c mosaic.c mouser.c mpoker.c mpu4dealem.c mpu4plasma.c mpu4vid.c mquake.c mrdo.c mrflea.c mrjong.c ms32.c msisaac.c mugsmash.c multfish.c multigam.c munchmo.c murogem.c murogmbl.c mustache.c mw8080bw.c mwarr.c mystwarr.c n8080.c namcofl.c namcona1.c namconb1.c namcos1.c namcos21.c namcos22.c namcos23.c namcos86.c naomi.c naughtyb.c nbmj8688.c nbmj8891.c nbmj8900.c nbmj8991.c nbmj9195.c nemesis.c neogeo.c neoprint.c news.c nexus3d.c nightgal.c ninjakd2.c ninjaw.c nitedrvr.c niyanpai.c nmg5.c nmk16.c norautp.c nova2001.c nsmpoker.c nwk-tr.c nycaptor.c offtwall.c ohmygod.c ojankohs.c olibochu.c oneshot.c onetwo.c opwolf.c orbit.c othldrby.c othunder.c overdriv.c pacland.c pacman.c pandoras.c panicr.c paradise.c parodius.c pasha2.c pass.c pastelg.c pbaction.c pcktgal.c pcxt.c pengo.c peplus.c pgm.c pgm2.c phoenix.c photon.c photon2.c pingpong.c pinkiri8.c pipedrm.c pipeline.c pirates.c pitnrun.c pkscram.c pktgaldx.c playch10.c playmark.c plygonet.c pokechmp.c poker72.c polepos.c policetr.c polyplay.c poo.c poolshrk.c pooyan.c popeye.c popobear.c popper.c portrait.c powerbal.c powerins.c ppmast93.c prehisle.c progolf.c psattack.c psikyo.c psikyo4.c psikyosh.c psychic5.c pturn.c punchout.c pushman.c pzletime.c qdrmfgp.c quakeat.c quasar.c quizdna.c quizo.c quizpani.c quizpun2.c quizshow.c r2dx_v33.c rabbit.c raiden.c raiden2.c rainbow.c rallyx.c rampart.c rastan.c rbmk.c realbrk.c redclash.c relief.c renegade.c retofinv.c rgum.c rltennis.c rmhaihai.c rockrage.c rocnrope.c rohga.c rollerg.c rollrace.c rotaryf.c roul.c route16.c royalmah.c rpunch.c runaway.c rungun.c safarir.c sandscrp.c saturn.c sauro.c sbasketb.c sbowling.c sbrkout.c sbugger.c scobra.c scotrsht.c scramble.c scregg.c sderby.c seattle.c segac2.c segae.c segag80r.c segag80v.c segald.c segas24.c segas32.c seibuspi.c seicross.c senjyo.c seta.c seta2.c sf.c sfbonus.c shadfrce.c shangha3.c shanghai.c shangkid.c shaolins.c shisen.c shootout.c shougi.c shtzone.c shuuz.c sidearms.c sidepckt.c sigmab52.c sigmab98.c silkroad.c silvmil.c simpl156.c simpsons.c skimaxx.c skullxbo.c skyarmy.c skydiver.c skyfox.c skykid.c skylncr.c skyraid.c slapfght.c slapshot.c sliver.c sms.c snk.c snk6502.c snk68.c snookr10.c snowbros.c solomon.c sonson.c spacefb.c spaceg.c spbactn.c spcforce.c spdodgeb.c speedatk.c speedbal.c speedspn.c speglsht.c splash.c spoker.c spool99.c sprcros2.c sprint2.c sprint4.c sprint8.c spy.c srmp2.c srmp5.c srmp6.c srumbler.c ssfindo.c sshangha.c sshot.c sslam.c ssozumo.c sspeedr.c ssrj.c sstrangr.c ssv.c st0016.c stadhero.c starcrus.c starfire.c starshp1.c statriv2.c stfight.c stlforce.c strnskil.c sub.c subs.c subsino.c subsino2.c summit.c suna16.c suna8.c supbtime.c supdrapo.c superchs.c superdq.c superqix.c supertnk.c superwng.c suprgolf.c suprloco.c suprnova.c suprridr.c suprslam.c surpratk.c system1.c system16.c tagteam.c tail2nos.c taito_b.c taito_f2.c taito_f3.c taito_h.c taito_l.c taito_o.c taito_x.c taito_z.c taitoair.c taitojc.c taitopjc.c taitosj.c taitotz.c taitowlf.c tank8.c tankbatt.c tankbust.c taotaido.c targeth.c tasman.c tatsumi.c tattack.c taxidriv.c tbowl.c tceptor.c tcl.c tecmo.c tecmo16.c tecmosys.c tehkanwc.c terracre.c tetrisp2.c tgtpanic.c thedeep.c thepit.c thief.c thoop2.c thunderj.c thunderx.c tiamc1.c tigeroad.c timelimt.c timeplt.c timetrv.c tmaster.c tmmjprd.c tmnt.c tmspoker.c tnzs.c toaplan1.c toaplan2.c toki.c toobin.c topspeed.c toratora.c toypop.c tp84.c trackfld.c travrusa.c triforce.c triplhnt.c truco.c trucocl.c trvmadns.c tryout.c tsamurai.c ttchamp.c tubep.c tugboat.c tumbleb.c tumblep.c tunhunt.c turbo.c tutankhm.c twin16.c twincobr.c twins.c tx1.c ultraman.c ultratnk.c ultrsprt.c umipoker.c undrfire.c unico.c unkhorse.c upscope.c usgames.c vamphalf.c vaportra.c vastar.c vball.c vcombat.c vectrex.c vega.c vegaeo.c vegas.c vendetta.c vicdual.c victory.c videopin.c videopkr.c vigilant.c vindictr.c viper.c vmetal.c volfied.c vpoker.c vroulet.c vulgus.c wallc.c wardner.c warpsped.c warpwarp.c warriorb.c wc90.c wc90b.c wecleman.c welltris.c wgp.c wheelfir.c wildpkr.c williams.c wink.c wiping.c witch.c wiz.c wolfpack.c wrally.c wwfsstar.c wwfwfest.c xain.c xexex.c xmen.c xorworld.c xxmissio.c xybots.c xyonix.c yiear.c yunsun16.c yunsung8.c zac2650.c zaccaria.c zaxxon.c zr107.c
[src/mame/includes]1942.h 1943.h 20pacgal.h 3do.h 40love.h 4enraya.h 8080bw.h 88games.h actfancr.h aeroboto.h aerofgt.h airbustr.h ajax.h aliens.h alpha68k.h ambush.h amiga.h ampoker2.h amspdwy.h angelkds.h appoooh.h aquarium.h arabian.h arcadecl.h argus.h arkanoid.h armedf.h ashnojoe.h asterix.h astrocde.h astrof.h asuka.h atarifb.h atarig1.h atarig42.h atarigt.h atarigx2.h atarisy1.h atarisy2.h atetris.h avalnche.h badlands.h bagman.h balsente.h bankp.h baraduke.h batman.h battlane.h battlera.h battlex.h battlnts.h bbusters.h beezer.h bigevglf.h bigstrkb.h bionicc.h bishi.h bking.h bladestl.h blktiger.h blmbycar.h blockade.h blockhl.h blockout.h bloodbro.h blstroid.h blueprnt.h bogeyman.h bombjack.h boogwing.h bottom9.h brkthru.h bsktball.h btime.h bublbobl.h buggychl.h bwing.h cabal.h calomega.h canyon.h capbowl.h carjmbre.h carpolo.h cave.h cbasebal.h cbuster.h ccastles.h cclimber.h cdi.h centiped.h chaknpop.h champbas.h changela.h cheekyms.h chqflag.h cinemat.h circus.h circusc.h cischeat.h citycon.h cloak.h cloud9.h clshroad.h cninja.h combatsc.h commando.h compgolf.h contra.h cop01.h copsnrob.h cosmic.h cps1.h cps3.h crbaloon.h crgolf.h crimfght.h crospang.h crshrace.h cvs.h cyberbal.h darius.h darkmist.h darkseal.h dassault.h dbz.h dc.h dcheese.h dcon.h dday.h ddragon.h ddragon3.h ddribble.h deadang.h dec0.h dec8.h deco32.h deco_mlc.h deniam.h dietgo.h djboy.h djmain.h dkong.h docastle.h dogfgt.h dooyong.h dragrace.h drgnmst.h dribling.h drmicro.h dynax.h dynduke.h eolith.h epos.h eprom.h equites.h esd16.h espial.h esripsys.h exedexes.h exerion.h exidy.h exidy440.h exprraid.h exzisus.h f1gp.h fantland.h fastfred.h fastlane.h fcombat.h fgoal.h finalizr.h firetrap.h firetrk.h fitfight.h flkatck.h flower.h flstory.h foodf.h freekick.h fromanc2.h fromance.h funkybee.h funkyjet.h funworld.h funybubl.h fuukifg2.h fuukifg3.h gaelco.h gaelco2.h gaelco3d.h gaiden.h galaga.h galastrm.h galaxia.h galaxian.h galaxold.h galivan.h galpani2.h galpanic.h galspnbl.h gameplan.h gaplus.h gatron.h gauntlet.h gberet.h gbusters.h gcpinbal.h gijoe.h ginganin.h gladiatr.h glass.h gng.h goal92.h goindol.h goldstar.h gomoku.h gotcha.h gottlieb.h gotya.h gradius3.h grchamp.h gridlee.h groundfx.h gstriker.h gsword.h gumbo.h gunbustr.h gundealr.h gunsmoke.h gyruss.h hanaawas.h hcastle.h hexion.h higemaru.h himesiki.h hitme.h hnayayoi.h hng64.h holeland.h homedata.h homerun.h hyhoo.h hyperspt.h hyprduel.h ikki.h inufuku.h iqblock.h irobot.h ironhors.h itech32.h itech8.h jack.h jackal.h jailbrek.h jedi.h kaneko16.h kangaroo.h karnov.h kchamp.h kickgoal.h kingobox.h klax.h kncljoe.h konamigx.h kopunch.h ksayakyu.h kyugo.h labyrunr.h ladybug.h ladyfrog.h laserbat.h lasso.h lastduel.h lazercmd.h legionna.h leland.h lemmings.h lethal.h liberate.h lkage.h lockon.h lordgun.h lsasquad.h lucky74.h lvcards.h lwings.h m10.h m107.h m52.h m57.h m58.h m62.h m72.h m90.h m92.h macrossp.h madalien.h madmotor.h magmax.h mainevt.h mainsnk.h malzak.h mappy.h marineb.h mario.h markham.h matmania.h mcatadv.h mcr.h mcr3.h mcr68.h meadows.h megadriv.h megasys1.h megazone.h mermaid.h metalmx.h metlclsh.h metro.h mexico86.h midvunit.h midzeus.h mikie.h mitchell.h mjkjidai.h model1.h model2.h model3.h momoko.h moo.h mosaic.h mouser.h mrdo.h mrflea.h mrjong.h ms32.h msisaac.h mugsmash.h munchmo.h mustache.h mw8080bw.h mystston.h mystwarr.h n64.h n8080.h namcofl.h namcona1.h namconb1.h namcos1.h namcos21.h namcos22.h namcos86.h naughtyb.h nbmj8688.h nbmj8891.h nbmj8900.h nbmj8991.h nbmj9195.h nemesis.h neogeo.h news.h ninjakd2.h ninjaw.h nitedrvr.h niyanpai.h nmk16.h norautp.h nova2001.h nycaptor.h offtwall.h ohmygod.h ojankohs.h oneshot.h opwolf.h orbit.h othldrby.h othunder.h overdriv.h pacland.h pacman.h pandoras.h paradise.h parodius.h pass.h pastelg.h pbaction.h pcktgal.h pgm.h phoenix.h pingpong.h pirates.h pitnrun.h pktgaldx.h playch10.h playmark.h plygonet.h pokechmp.h polepos.h policetr.h polyplay.h poolshrk.h pooyan.h popeye.h popper.h portrait.h powerins.h prehisle.h psikyo.h psikyo4.h psikyosh.h psychic5.h punchout.h pushman.h qdrmfgp.h quasar.h quizdna.h quizpani.h raiden.h raiden2.h rainbow.h rallyx.h rampart.h rastan.h realbrk.h redalert.h relief.h renegade.h retofinv.h rltennis.h rockrage.h rocnrope.h rohga.h rollerg.h rollrace.h route16.h rpunch.h runaway.h rungun.h sauro.h sbasketb.h sbugger.h scotrsht.h sderby.h segag80r.h segag80v.h segas24.h segas32.h seibuspi.h seicross.h senjyo.h seta.h seta2.h sf.h shadfrce.h shangha3.h shangkid.h shaolins.h shisen.h shootout.h shuuz.h sidearms.h sidepckt.h silkroad.h simpl156.h simpsons.h skullxbo.h skydiver.h skyfox.h skykid.h skyraid.h slapfght.h slapshot.h snk.h snk6502.h snk68.h snookr10.h snowbros.h solomon.h sonson.h spacefb.h spbactn.h spcforce.h spdodgeb.h speedatk.h speedbal.h speedspn.h splash.h sprcros2.h sprint2.h sprint4.h sprint8.h spy.h srmp2.h srumbler.h sshangha.h sslam.h ssozumo.h sspeedr.h ssrj.h ssv.h st0016.h stactics.h stadhero.h starcrus.h starfire.h starshp1.h stfight.h stlforce.h strnskil.h stv.h subs.h suna16.h suna8.h supbtime.h superchs.h superqix.h suprloco.h suprnova.h suprridr.h suprslam.h surpratk.h system1.h system16.h tagteam.h tail2nos.h taito_b.h taito_f2.h taito_f3.h taito_h.h taito_l.h taito_o.h taito_z.h taitoair.h taitojc.h taitosj.h tank8.h tankbatt.h tankbust.h taotaido.h targeth.h tatsumi.h taxidriv.h tbowl.h tceptor.h tecmo.h tecmo16.h tecmosys.h tehkanwc.h terracre.h tetrisp2.h thedeep.h thepit.h thief.h thoop2.h thunderj.h thunderx.h tiamc1.h tigeroad.h timelimt.h timeplt.h tmnt.h tnzs.h toaplan1.h toaplan2.h toki.h toobin.h topspeed.h toypop.h tp84.h trackfld.h travrusa.h triplhnt.h truco.h trucocl.h tryout.h tsamurai.h tubep.h tumbleb.h tumblep.h tunhunt.h turbo.h tutankhm.h twin16.h twincobr.h tx1.h ultraman.h ultratnk.h undrfire.h unico.h usgames.h vaportra.h vastar.h vball.h vectrex.h vendetta.h vicdual.h victory.h videopin.h vigilant.h vindictr.h volfied.h vsnes.h vulgus.h warpwarp.h warriorb.h wc90.h wc90b.h wecleman.h welltris.h wgp.h williams.h wiping.h wiz.h wolfpack.h wrally.h wwfsstar.h wwfwfest.h xain.h xexex.h xmen.h xorworld.h xxmissio.h xybots.h xyonix.h yiear.h yunsun16.h yunsung8.h zac2650.h zaccaria.h zaxxon.h
[src/mame/machine]3do.c decocass.h slikshot.c
[src/mame/video]1942.c 1943.c 20pacgal.c 40love.c 4enraya.c 8080bw.c 88games.c actfancr.c aeroboto.c aerofgt.c airbustr.c ajax.c aliens.c alpha68k.c ambush.c amiga.c amigaaga.c ampoker2.c amspdwy.c angelkds.c appoooh.c aquarium.c arabian.c arcadecl.c argus.c arkanoid.c armedf.c ashnojoe.c asterix.c astrocde.c asuka.c atarifb.c atarig1.c atarig42.c atarigt.c atarigx2.c atarisy1.c atarisy2.c atetris.c badlands.c bagman.c balsente.c bankp.c baraduke.c batman.c battlane.c battlera.c battlex.c battlnts.c bbusters.c beezer.c bigevglf.c bigstrkb.c bionicc.c bishi.c bking.c bladestl.c blktiger.c blmbycar.c blockade.c blockhl.c blockout.c bloodbro.c blstroid.c blueprnt.c bogeyman.c bombjack.c boogwing.c bosco.c bottom9.c brkthru.c bsktball.c btime.c bublbobl.c buggychl.c bwing.c cabal.c calomega.c canyon.c capbowl.c carjmbre.c carpolo.c cave.c cbasebal.c cbuster.c ccastles.c cclimber.c centiped.c chaknpop.c champbas.c changela.c cheekyms.c chqflag.c cinemat.c circus.c circusc.c cischeat.c citycon.c cloak.c cloud9.c clshroad.c cninja.c combatsc.c commando.c compgolf.c contra.c cop01.c copsnrob.c cosmic.c cps1.c crbaloon.c crgolf.c crimfght.c crospang.c crshrace.c cvs.c cyberbal.c darius.c darkmist.c darkseal.c dassault.c dbz.c dc.c dcheese.c dcon.c dday.c ddragon.c ddragon3.c ddribble.c deadang.c dec0.c dec8.c deco32.c deco_mlc.c decocass.c deniam.c dietgo.c digdug.c djboy.c djmain.c dkong.c docastle.c dogfgt.c dooyong.c dragrace.c drgnmst.c dribling.c drmicro.c dynax.c dynduke.c eolith.c epos.c eprom.c equites.c esd16.c espial.c esripsys.c exedexes.c exerion.c exidy.c exidy440.c exprraid.c exzisus.c f1gp.c fantland.c fastfred.c fastlane.c fcombat.c fgoal.c finalizr.c firetrap.c firetrk.c fitfight.c flkatck.c flower.c flstory.c foodf.c freekick.c fromanc2.c fromance.c funkybee.c funkyjet.c funworld.c funybubl.c fuukifg2.c fuukifg3.c gaelco.c gaelco2.c gaelco3d.c gaiden.c galaga.c galastrm.c galaxia.c galaxian.c galaxold.c galivan.c galpani2.c galpanic.c galspnbl.c gameplan.c gaplus.c gatron.c gauntlet.c gberet.c gbusters.c gcpinbal.c gijoe.c ginganin.c gladiatr.c glass.c gng.c goal92.c goindol.c goldstar.c gomoku.c gotcha.c gottlieb.c gotya.c gradius3.c grchamp.c gridlee.c groundfx.c gstriker.c gsword.c gumbo.c gunbustr.c gundealr.c gunsmoke.c gyruss.c hanaawas.c hcastle.c hexion.c higemaru.c himesiki.c hnayayoi.c hng64.c holeland.c homedata.c homerun.c hyhoo.c hyperspt.c hyprduel.c ikki.c inufuku.c iqblock.c irobot.c ironhors.c itech32.c itech8.c jack.c jackal.c jailbrek.c jedi.c kan_panb.c kaneko16.c kangaroo.c karnov.c kchamp.c kickgoal.c kingobox.c klax.c kncljoe.c konamigx.c kopunch.c ksayakyu.c kyugo.c labyrunr.c ladybug.c ladyfrog.c lasso.c lastduel.c lazercmd.c legionna.c leland.c lemmings.c lethal.c liberate.c lkage.c lockon.c lordgun.c lsasquad.c lucky74.c lvcards.c lwings.c m10.c m107.c m52.c m57.c m58.c m62.c m72.c m90.c m92.c macrossp.c madalien.c madmotor.c magmax.c mainevt.c mainsnk.c malzak.c mappy.c marineb.c mario.c markham.c matmania.c mcatadv.c mcd212.c mcr.c mcr3.c mcr68.c meadows.c megasys1.c megazone.c mermaid.c metlclsh.c metro.c mexico86.c midvunit.c midzeus.c midzeus2.c mikie.c mitchell.c mjkjidai.c model1.c model2.c model3.c momoko.c moo.c mosaic.c mouser.c mrdo.c mrflea.c mrjong.c ms32.c msisaac.c mugsmash.c munchmo.c mustache.c mw8080bw.c mystston.c mystwarr.c n64.c n8080.c namcofl.c namcona1.c namconb1.c namcos1.c namcos21.c namcos22.c namcos86.c naughtyb.c nbmj8688.c nbmj8891.c nbmj8900.c nbmj8991.c nbmj9195.c nemesis.c neogeo.c news.c ninjakd2.c ninjaw.c nitedrvr.c niyanpai.c nmk16.c nova2001.c nycaptor.c offtwall.c ohmygod.c ojankohs.c oneshot.c opwolf.c orbit.c othldrby.c othunder.c overdriv.c pacland.c pacman.c pandoras.c paradise.c parodius.c pass.c pastelg.c pbaction.c pcktgal.c pgm.c phoenix.c pingpong.c pirates.c pitnrun.c pktgaldx.c playch10.c playmark.c plygonet.c pokechmp.c polepos.c policetr.c polyplay.c poolshrk.c pooyan.c popeye.c popper.c portrait.c powerins.c prehisle.c psikyo.c psikyo4.c psikyosh.c psychic5.c punchout.c pushman.c qdrmfgp.c quasar.c quizdna.c quizpani.c raiden.c rainbow.c rallyx.c rampart.c rastan.c realbrk.c redalert.c redclash.c relief.c renegade.c retofinv.c rltennis.c rockrage.c rocnrope.c rohga.c rollerg.c rollrace.c route16.c rpunch.c runaway.c rungun.c sauro.c sbasketb.c sbugger.c scotrsht.c sderby.c segag80r.c segag80v.c segas24.c segas32.c seibuspi.c seicross.c senjyo.c seta.c seta2.c sf.c shadfrce.c shangha3.c shangkid.c shaolins.c shisen.c shootout.c shuuz.c sidearms.c sidepckt.c silkroad.c simpl156.c simpsons.c skullxbo.c skydiver.c skyfox.c skykid.c skyraid.c slapfght.c slapshot.c snk.c snk6502.c snk68.c snookr10.c solomon.c sonson.c spacefb.c spbactn.c spcforce.c spdodgeb.c speedatk.c speedbal.c speedspn.c splash.c sprcros2.c sprint2.c sprint4.c sprint8.c spy.c srmp2.c srumbler.c sshangha.c sslam.c ssozumo.c sspeedr.c ssrj.c ssv.c st0016.c stactics.c stadhero.c starcrus.c starfire.c starshp1.c stfight.c stlforce.c strnskil.c stvvdp2.c subs.c suna16.c suna8.c supbtime.c superchs.c superqix.c suprloco.c suprnova.c suprridr.c suprslam.c surpratk.c system1.c system16.c tagteam.c tail2nos.c taito_b.c taito_f2.c taito_f3.c taito_h.c taito_l.c taito_o.c taito_z.c taitoair.c taitojc.c taitosj.c tank8.c tankbatt.c tankbust.c taotaido.c targeth.c tatsumi.c taxidriv.c tbowl.c tceptor.c tecmo.c tecmo16.c tecmosys.c tehkanwc.c terracre.c tetrisp2.c thedeep.c thepit.c thief.c thoop2.c thunderj.c thunderx.c tiamc1.c tigeroad.c timelimt.c timeplt.c tmnt.c tnzs.c toaplan1.c toaplan2.c toki.c toobin.c topspeed.c toypop.c tp84.c trackfld.c travrusa.c triplhnt.c truco.c trucocl.c tryout.c tsamurai.c tubep.c tumbleb.c tumblep.c tunhunt.c turbo.c tutankhm.c twin16.c twincobr.c tx1.c ultraman.c ultratnk.c undrfire.c unico.c usgames.c vaportra.c vastar.c vball.c vectrex.c vendetta.c vicdual.c victory.c videopin.c vigilant.c vindictr.c volfied.c vulgus.c warpwarp.c warriorb.c wc90.c wc90b.c wecleman.c welltris.c wgp.c williams.c wiping.c wiz.c wolfpack.c wrally.c wwfsstar.c wwfwfest.c xain.c xevious.c xexex.c xmen.c xorworld.c xxmissio.c xybots.c xyonix.c yiear.c yunsun16.c yunsung8.c zac2650.c zaccaria.c zaxxon.c
[src/mess/drivers]a51xx.c a7150.c a7800.c ac1.c ami1200.c amiga.c amstrad.c apexc.c apogee.c apple1.c apple2.c apple2gs.c apple3.c apricot.c aquarius.c arcadia.c astrocde.c b2m.c bcs3.c bk.c bmjr.c bml3.c busicom.c c65.c casloopy.c cat.c cfx9850.c cgenie.c channelf.c codata.c compis.c comquest.c concept.c cortex.c craft.c cxhumax.c cybiko.c d6800.c dai.c dc.c dct11em.c dm7000.c dms5000.c einstein.c electron.c elwro800.c enterp.c fm7.c fp6000.c galaxy.c galeb.c gamepock.c gmaster.c gp2x.c gp32.c hec2hrp.c homelab.c hp16500.c hp48.c hp9k.c hx20.c interact.c intv.c ip20.c ipds.c jr100.c jr200.c kaypro.c konin.c kramermc.c lisa.c llc.c lviv.c m20.c m79152pc.c mac.c macpci.c mbc200.c mbc55x.c mbee.c mc80.c microtan.c mikro80.c mikrosha.c mirage.c mk85.c mk90.c ms0515.c multi16.c multi8.c myb3k.c mz2000.c mz2500.c mz700.c mz80.c n64.c nascom1.c nc.c nes.c ng_aes.c ngp.c odyssey2.c okean240.c ondra.c orao.c oric.c orion.c p112.c p2000t.c partner.c paso1600.c pasogo.c pasopia7.c pc100.c pc6001.c pc88va.c pcw.c pcw16.c pdp1.c pet.c pk8000.c pk8020.c pocketc.c pockstat.c poly88.c pp01.c primo.c pt68k4.c pv1000.c pv9234.c px4.c radio86.c rainbow.c rm380z.c rmnimbus.c sapi1.c scv.c sgi_ip6.c sm1800.c smc777.c sms.c socrates.c special.c spectrum.c ssem.c ssystem3.c super80.c supracan.c svision.c sys2900.c terak.c ti85.c ti990_10.c ti990_4.c ti99_2.c tim011.c timex.c tk80bs.c trs80.c tx0.c uknc.c unior.c unistar.c ut88.c uzebox.c vboy.c vc4000.c vector06.c vii.c vt100.c vt220.c vt320.c vt520.c vta2000.c vtech2.c x1.c x1twin.c x68k.c z100.c z1013.c z9001.c zx.c
[src/mess/includes]a7800.h abc1600.h ac1.h ace.h amstrad.h apple1.h apple2.h apple2gs.h apple3.h aquarius.h arcadia.h b2m.h bbc.h bk.h busicom.h c65.h cgc7900.h cgenie.h channelf.h compis.h comquest.h concept.h cxhumax.h cybiko.h dai.h dm7000.h einstein.h electron.h enterp.h fm7.h galaxy.h galeb.h gamepock.h gmaster.h gp32.h hec2hrp.h hp48.h intv.h kaypro.h kramermc.h lisa.h llc.h lviv.h mac.h macpci.h mbc55x.h mbee.h mc80.h microtan.h mikro80.h mikromik.h mz700.h mz80.h nascom1.h nc.h nes.h odyssey2.h ondra.h orao.h oric.h orion.h p2000t.h pc1251.h pc1350.h pc1401.h pc1403.h pc1512.h pcw.h pcw16.h pdp1.h pet.h pk8020.h poly88.h pp01.h primo.h px8.h radio86.h rm380z.h rmnimbus.h sapi1.h sms.h special.h spectrum.h ssystem3.h super80.h svision.h tdv2324.h ti85.h trs80.h tx0.h ut88.h vc4000.h vector06.h vixen.h vtech2.h x1.h x68k.h zx.h
[src/mess/machine]amstrad.c concept.c gamepock.c lisa.c sms.c
[src/mess/video]a7800.c ac1.c apple1.c apple2.c apple2gs.c apple3.c aquarius.c arcadia.c b2m.c bbc.c bk.c busicom.c cgenie.c channelf.c comquest.c dai.c electron.c epnick.c fm7.c galaxy.c galeb.c hec2video.c hp48.c intv.c kaypro.c kramermc.c llc.c lviv.c mac.c mbc55x.c mbee.c mc80.c microtan.c mikro80.c mz700.c mz80.c nascom1.c nc.c nes.c odyssey2.c ondra.c orao.c oric.c orion.c p2000m.c pc1251.c pc1350.c pc1401.c pc1403.c pcw.c pcw16.c pdp1.c pet.c pk8020.c poly88.c pp01.c primo.c radio86.c rmnimbus.c sapi1.c special.c spectrum.c ssystem3.c super80.c ti85.c timex.c trs80.c tx0.c ut88.c vc4000.c vector06.c vtech2.c x68k.c zx.c

trunk/src/mame/machine/3do.c
r17967r17968
976976
977977
978978/* This is incorrect! Just testing stuff */
979SCREEN_UPDATE_RGB32( _3do )
979UINT32 _3do_state::screen_update__3do(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
980980{
981   _3do_state *state = screen.machine().driver_data<_3do_state>();
982   UINT32 *source_p = state->m_vram + 0x1c0000 / 4;
981   UINT32 *source_p = m_vram + 0x1c0000 / 4;
983982
984983   for ( int i = 0; i < 120; i++ )
985984   {
r17967r17968
993992         UINT32 upper = ( *source_p >> 1 ) & 0x55555555;
994993         UINT32 rgb = 0;
995994
996         rgb = ( ( state->m_video_bits[upper & 0x1ff] << 3 ) << 8 );
997         rgb |= ( ( state->m_video_bits[ ( upper >> 10 ) & 0x1ff ] << 3 ) << 0 );
998         rgb |= ( ( state->m_video_bits[ ( upper >> 20 ) & 0x1ff ] << 3 ) << 16 );
995         rgb = ( ( m_video_bits[upper & 0x1ff] << 3 ) << 8 );
996         rgb |= ( ( m_video_bits[ ( upper >> 10 ) & 0x1ff ] << 3 ) << 0 );
997         rgb |= ( ( m_video_bits[ ( upper >> 20 ) & 0x1ff ] << 3 ) << 16 );
999998
1000999         dest_p0[0] = rgb;
10011000         dest_p0[1] = rgb;
10021001         dest_p0[2] = rgb;
10031002         dest_p0[3] = rgb;
10041003
1005         rgb = ( ( state->m_video_bits[lower & 0x1ff] << 3 ) << 8 );
1006         rgb |= ( ( state->m_video_bits[ ( lower >> 10 ) & 0x1ff ] << 3 ) << 0 );
1007         rgb |= ( ( state->m_video_bits[ ( lower >> 20 ) & 0x1ff ] << 3 ) << 16 );
1004         rgb = ( ( m_video_bits[lower & 0x1ff] << 3 ) << 8 );
1005         rgb |= ( ( m_video_bits[ ( lower >> 10 ) & 0x1ff ] << 3 ) << 0 );
1006         rgb |= ( ( m_video_bits[ ( lower >> 20 ) & 0x1ff ] << 3 ) << 16 );
10081007
10091008         dest_p1[0] = rgb;
10101009         dest_p1[1] = rgb;
trunk/src/mame/machine/decocass.h
r17967r17968
180180   DECLARE_MACHINE_RESET(type4);
181181   DECLARE_MACHINE_RESET(cbdash);
182182   DECLARE_MACHINE_RESET(cflyball);
183   UINT32 screen_update_decocass(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
183184};
184185
185186
r17967r17968
275276DECLARE_WRITE8_HANDLER( decocass_center_v_shift_w );
276277
277278
278SCREEN_UPDATE_IND16( decocass );
279279
280
280281void decocass_video_state_save_init(running_machine &machine);
trunk/src/mame/machine/slikshot.c
r17967r17968
548548 *
549549 *************************************/
550550
551SCREEN_UPDATE_RGB32( slikshot )
551UINT32 itech8_state::screen_update_slikshot(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
552552{
553   itech8_state *state = screen.machine().driver_data<itech8_state>();
554553   int totaldy, totaldx;
555554   int temp, i;
556555
557556   /* draw the normal video first */
558   SCREEN_UPDATE32_CALL(itech8_2page);
557   SCREEN_UPDATE32_CALL_MEMBER(itech8_2page);
559558
560559   /* add the current X,Y positions to the list */
561   state->m_xbuffer[state->m_ybuffer_next % YBUFFER_COUNT] = state->ioport("FAKEX")->read_safe(0);
562   state->m_ybuffer[state->m_ybuffer_next % YBUFFER_COUNT] = state->ioport("FAKEY")->read_safe(0);
563   state->m_ybuffer_next++;
560   m_xbuffer[m_ybuffer_next % YBUFFER_COUNT] = ioport("FAKEX")->read_safe(0);
561   m_ybuffer[m_ybuffer_next % YBUFFER_COUNT] = ioport("FAKEY")->read_safe(0);
562   m_ybuffer_next++;
564563
565564   /* determine where to draw the starting point */
566   state->m_curxpos += state->m_xbuffer[(state->m_ybuffer_next + 1) % YBUFFER_COUNT];
567   if (state->m_curxpos < -0x80) state->m_curxpos = -0x80;
568   if (state->m_curxpos >  0x80) state->m_curxpos =  0x80;
565   m_curxpos += m_xbuffer[(m_ybuffer_next + 1) % YBUFFER_COUNT];
566   if (m_curxpos < -0x80) m_curxpos = -0x80;
567   if (m_curxpos >  0x80) m_curxpos =  0x80;
569568
570569   /* compute the total X/Y movement */
571570   totaldx = totaldy = 0;
572571   for (i = 0; i < YBUFFER_COUNT - 1; i++)
573572   {
574      totaldx += state->m_xbuffer[(state->m_ybuffer_next + i + 1) % YBUFFER_COUNT];
575      totaldy += state->m_ybuffer[(state->m_ybuffer_next + i + 1) % YBUFFER_COUNT];
573      totaldx += m_xbuffer[(m_ybuffer_next + i + 1) % YBUFFER_COUNT];
574      totaldy += m_ybuffer[(m_ybuffer_next + i + 1) % YBUFFER_COUNT];
576575   }
577576
578577   /* if the shoot button is pressed, fire away */
579   if (totaldy < state->m_last_ytotal && state->m_last_ytotal > 50 && state->m_crosshair_vis)
578   if (totaldy < m_last_ytotal && m_last_ytotal > 50 && m_crosshair_vis)
580579   {
581580      /* compute the updated values */
582581      temp = totaldx;
583582      if (temp <= -0x80) temp = -0x7f;
584583      if (temp >=  0x80) temp =  0x7f;
585      state->m_curvx = temp;
584      m_curvx = temp;
586585
587      temp = state->m_last_ytotal - 50;
586      temp = m_last_ytotal - 50;
588587      if (temp <=  0x10) temp =  0x10;
589588      if (temp >=  0x7f) temp =  0x7f;
590      state->m_curvy = temp;
589      m_curvy = temp;
591590
592      temp = 0x60 + (state->m_curxpos * 0x30 / 0x80);
591      temp = 0x60 + (m_curxpos * 0x30 / 0x80);
593592      if (temp <=  0x30) temp =  0x30;
594593      if (temp >=  0x90) temp =  0x90;
595      state->m_curx = temp;
594      m_curx = temp;
596595
597596      compute_sensors(screen.machine());
598//      popmessage("V=%02x,%02x  X=%02x", state->m_curvx, state->m_curvy, state->m_curx);
599      state->m_crosshair_vis = 0;
597//      popmessage("V=%02x,%02x  X=%02x", m_curvx, m_curvy, m_curx);
598      m_crosshair_vis = 0;
600599   }
601   state->m_last_ytotal = totaldy;
600   m_last_ytotal = totaldy;
602601
603602   /* clear the buffer while the crosshair is not visible */
604   if (!state->m_crosshair_vis)
603   if (!m_crosshair_vis)
605604   {
606      memset(state->m_xbuffer, 0, sizeof(state->m_xbuffer));
607      memset(state->m_ybuffer, 0, sizeof(state->m_ybuffer));
605      memset(m_xbuffer, 0, sizeof(m_xbuffer));
606      memset(m_ybuffer, 0, sizeof(m_ybuffer));
608607   }
609608
610609   return 0;
trunk/src/mame/includes/shisen.h
r17967r17968
1717   DECLARE_WRITE8_MEMBER(sichuan2_paletteram_w);
1818   TILE_GET_INFO_MEMBER(get_bg_tile_info);
1919   virtual void video_start();
20   UINT32 screen_update_sichuan2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2021};
2122
2223
r17967r17968
2425
2526
2627
27SCREEN_UPDATE_IND16( sichuan2 );
28
trunk/src/mame/includes/tutankhm.h
r17967r17968
3131   DECLARE_WRITE8_MEMBER(tutankhm_flip_screen_y_w);
3232   DECLARE_MACHINE_START(tutankhm);
3333   DECLARE_MACHINE_RESET(tutankhm);
34   UINT32 screen_update_tutankhm(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
3435};
3536
3637
3738/*----------- defined in video/tutankhm.c -----------*/
3839
3940
40SCREEN_UPDATE_RGB32( tutankhm );
41
trunk/src/mame/includes/nmk16.h
r17967r17968
127127   DECLARE_VIDEO_START(afega);
128128   DECLARE_VIDEO_START(firehawk);
129129   DECLARE_VIDEO_START(grdnstrm);
130   UINT32 screen_update_tharrier(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
131   UINT32 screen_update_manybloc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
132   UINT32 screen_update_macross(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
133   UINT32 screen_update_bioship(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
134   UINT32 screen_update_strahl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
135   UINT32 screen_update_gunnail(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
136   UINT32 screen_update_tdragon2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
137   UINT32 screen_update_bjtwin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
138   UINT32 screen_update_afega(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
139   UINT32 screen_update_firehawk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
140   UINT32 screen_update_redhawki(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
141   UINT32 screen_update_redhawkb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
142   UINT32 screen_update_bubl2000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
143   void screen_eof_nmk(screen_device &screen, bool state);
144   void screen_eof_strahl(screen_device &screen, bool state);
130145};
131146
132147
r17967r17968
141156
142157
143158
144SCREEN_UPDATE_IND16( macross );
145SCREEN_UPDATE_IND16( manybloc );
146SCREEN_UPDATE_IND16( tharrier );
147SCREEN_UPDATE_IND16( tdragon2 );
148SCREEN_UPDATE_IND16( gunnail );
149SCREEN_UPDATE_IND16( bioship );
150SCREEN_UPDATE_IND16( strahl );
151SCREEN_UPDATE_IND16( bjtwin );
152SCREEN_VBLANK( nmk );
153SCREEN_VBLANK( strahl );
154159
155160
156161
157162
158SCREEN_UPDATE_IND16( afega );
159SCREEN_UPDATE_IND16( redhawkb );
160SCREEN_UPDATE_IND16(redhawki );
161SCREEN_UPDATE_IND16( bubl2000 );
162SCREEN_UPDATE_IND16( firehawk );
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
trunk/src/mame/includes/m10.h
r17967r17968
8686   DECLARE_VIDEO_START(m10);
8787   DECLARE_PALETTE_INIT(m10);
8888   DECLARE_VIDEO_START(m15);
89   UINT32 screen_update_m10(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
90   UINT32 screen_update_m15(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8991};
9092
9193
r17967r17968
9395
9496
9597
96SCREEN_UPDATE_IND16( m10 );
97SCREEN_UPDATE_IND16( m15 );
9898
9999
100100
101
102
trunk/src/mame/includes/nitedrvr.h
r17967r17968
5656   virtual void machine_start();
5757   virtual void machine_reset();
5858   virtual void video_start();
59   UINT32 screen_update_nitedrvr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5960};
6061
6162
r17967r17968
7778
7879
7980
80SCREEN_UPDATE_IND16( nitedrvr );
81
trunk/src/mame/includes/sbugger.h
r17967r17968
1616   TILE_GET_INFO_MEMBER(get_sbugger_tile_info);
1717   virtual void video_start();
1818   virtual void palette_init();
19   UINT32 screen_update_sbugger(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
1920};
2021
2122
2223/*----------- defined in video/sbugger.c -----------*/
2324
2425
25SCREEN_UPDATE_IND16(sbugger);
2626
27
trunk/src/mame/includes/targeth.h
r17967r17968
2020   TILE_GET_INFO_MEMBER(get_tile_info_targeth_screen0);
2121   TILE_GET_INFO_MEMBER(get_tile_info_targeth_screen1);
2222   virtual void video_start();
23   UINT32 screen_update_targeth(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2324};
2425
2526
2627/*----------- defined in video/targeth.c -----------*/
2728
2829
29SCREEN_UPDATE_IND16( targeth );
30
trunk/src/mame/includes/nycaptor.h
r17967r17968
103103   virtual void machine_reset();
104104   virtual void video_start();
105105   DECLARE_MACHINE_RESET(ta7630);
106   UINT32 screen_update_nycaptor(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
106107};
107108
108109
r17967r17968
116117
117118
118119
119SCREEN_UPDATE_IND16( nycaptor );
120
trunk/src/mame/includes/mitchell.h
r17967r17968
100100   DECLARE_MACHINE_START(mitchell);
101101   DECLARE_MACHINE_RESET(mitchell);
102102   DECLARE_VIDEO_START(pang);
103   UINT32 screen_update_pang(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
103104};
104105
105106
r17967r17968
109110
110111
111112
112SCREEN_UPDATE_IND16( pang );
113
trunk/src/mame/includes/rainbow.h
r17967r17968
4747   DECLARE_DRIVER_INIT(rbisland);
4848   virtual void machine_start();
4949   DECLARE_VIDEO_START(jumping);
50   UINT32 screen_update_rainbow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
51   UINT32 screen_update_jumping(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5052};
5153
5254
r17967r17968
5759
5860/*----------- defined in video/rainbow.c -----------*/
5961
60SCREEN_UPDATE_IND16( rainbow );
6162
62SCREEN_UPDATE_IND16( jumping );
6363
64
65
trunk/src/mame/includes/galspnbl.h
r17967r17968
2929   DECLARE_WRITE16_MEMBER(soundcommand_w);
3030   virtual void machine_start();
3131   virtual void palette_init();
32   UINT32 screen_update_galspnbl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3233};
3334
3435
r17967r17968
3637
3738
3839
39SCREEN_UPDATE_IND16( galspnbl );
40
trunk/src/mame/includes/dynduke.h
r17967r17968
4040   TILE_GET_INFO_MEMBER(get_fg_tile_info);
4141   TILE_GET_INFO_MEMBER(get_tx_tile_info);
4242   virtual void video_start();
43   UINT32 screen_update_dynduke(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4344};
4445
4546
4647/*----------- defined in video/dynduke.c -----------*/
4748
4849
49SCREEN_UPDATE_IND16( dynduke );
50
trunk/src/mame/includes/blktiger.h
r17967r17968
6262   virtual void machine_start();
6363   virtual void machine_reset();
6464   virtual void video_start();
65   UINT32 screen_update_blktiger(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6566};
6667
6768
r17967r17968
7071
7172
7273
73SCREEN_UPDATE_IND16( blktiger );
74
trunk/src/mame/includes/deco_mlc.h
r17967r17968
3636   DECLARE_DRIVER_INIT(avengrgs);
3737   DECLARE_MACHINE_RESET(mlc);
3838   DECLARE_VIDEO_START(mlc);
39   UINT32 screen_update_mlc(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
40   void screen_eof_mlc(screen_device &screen, bool state);
3941};
4042
4143
4244/*----------- defined in video/deco_mlc.c -----------*/
4345
4446
45SCREEN_UPDATE_RGB32( mlc );
46SCREEN_VBLANK( mlc );
47
48
trunk/src/mame/includes/tunhunt.h
r17967r17968
2424   TILE_GET_INFO_MEMBER(get_fg_tile_info);
2525   virtual void video_start();
2626   virtual void palette_init();
27   UINT32 screen_update_tunhunt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2728};
2829
2930
r17967r17968
3233
3334
3435
35SCREEN_UPDATE_IND16( tunhunt );
36
trunk/src/mame/includes/tryout.h
r17967r17968
3434   TILEMAP_MAPPER_MEMBER(get_bg_memory_offset);
3535   virtual void video_start();
3636   virtual void palette_init();
37   UINT32 screen_update_tryout(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3738};
3839
3940
r17967r17968
4243
4344
4445
45SCREEN_UPDATE_IND16( tryout );
46
trunk/src/mame/includes/rungun.h
r17967r17968
5252   virtual void machine_start();
5353   virtual void machine_reset();
5454   virtual void video_start();
55   UINT32 screen_update_rng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5556};
5657
5758
r17967r17968
6364
6465
6566
66SCREEN_UPDATE_IND16( rng );
67
trunk/src/mame/includes/madmotor.h
r17967r17968
2626   virtual void machine_start();
2727   virtual void machine_reset();
2828   virtual void video_start();
29   UINT32 screen_update_madmotor(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2930};
3031
3132
3233/*----------- defined in video/madmotor.c -----------*/
3334
3435
35SCREEN_UPDATE_IND16( madmotor );
36
trunk/src/mame/includes/eprom.h
r17967r17968
3131   DECLARE_MACHINE_RESET(eprom);
3232   DECLARE_VIDEO_START(eprom);
3333   DECLARE_VIDEO_START(guts);
34   UINT32 screen_update_eprom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
35   UINT32 screen_update_guts(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3436};
3537
3638
3739/*----------- defined in video/eprom.c -----------*/
3840
3941
40SCREEN_UPDATE_IND16( eprom );
4142
4243
43SCREEN_UPDATE_IND16( guts );
4444
45
46
4547void eprom_scanline_update(screen_device &screen, int scanline);
trunk/src/mame/includes/bublbobl.h
r17967r17968
108108   DECLARE_MACHINE_RESET(bub68705);
109109   DECLARE_MACHINE_START(common);
110110   DECLARE_MACHINE_RESET(common);
111   UINT32 screen_update_bublbobl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
111112};
112113
113114
r17967r17968
122123
123124/*----------- defined in video/bublbobl.c -----------*/
124125
125SCREEN_UPDATE_IND16( bublbobl );
126
trunk/src/mame/includes/skyfox.h
r17967r17968
3131   virtual void machine_start();
3232   virtual void machine_reset();
3333   virtual void palette_init();
34   UINT32 screen_update_skyfox(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3435};
3536
3637/*----------- defined in video/skyfox.c -----------*/
r17967r17968
3839
3940
4041
41SCREEN_UPDATE_IND16( skyfox );
4242
43
trunk/src/mame/includes/aerofgt.h
r17967r17968
8383   DECLARE_VIDEO_START(spinlbrk);
8484   DECLARE_VIDEO_START(turbofrc);
8585   DECLARE_VIDEO_START(wbbc97);
86   UINT32 screen_update_pspikes(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
87   UINT32 screen_update_spikes91(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
88   UINT32 screen_update_pspikesb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
89   UINT32 screen_update_karatblz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
90   UINT32 screen_update_spinlbrk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
91   UINT32 screen_update_turbofrc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
92   UINT32 screen_update_aerofgt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
93   UINT32 screen_update_aerfboot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
94   UINT32 screen_update_aerfboo2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
95   UINT32 screen_update_wbbc97(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
8696};
8797
8898
r17967r17968
95105
96106
97107
98SCREEN_UPDATE_IND16( pspikes );
99SCREEN_UPDATE_IND16( pspikesb );
100SCREEN_UPDATE_IND16( spikes91 );
101SCREEN_UPDATE_IND16( karatblz );
102SCREEN_UPDATE_IND16( spinlbrk );
103SCREEN_UPDATE_IND16( turbofrc );
104SCREEN_UPDATE_IND16( aerofgt );
105SCREEN_UPDATE_IND16( aerfboot );
106SCREEN_UPDATE_IND16( aerfboo2 );
107SCREEN_UPDATE_RGB32( wbbc97 );
108
109
110
111
112
113
114
115
116
117
trunk/src/mame/includes/rocnrope.h
r17967r17968
2828   TILE_GET_INFO_MEMBER(get_bg_tile_info);
2929   virtual void video_start();
3030   virtual void palette_init();
31   UINT32 screen_update_rocnrope(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3132};
3233
3334/*----------- defined in video/rocnrope.c -----------*/
r17967r17968
3536
3637
3738
38SCREEN_UPDATE_IND16( rocnrope );
39
trunk/src/mame/includes/fgoal.h
r17967r17968
4646   virtual void machine_reset();
4747   virtual void video_start();
4848   virtual void palette_init();
49   UINT32 screen_update_fgoal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4950};
5051
5152
5253/*----------- defined in video/fgoal.c -----------*/
5354
5455
55SCREEN_UPDATE_IND16( fgoal );
5656
5757
58
trunk/src/mame/includes/docastle.h
r17967r17968
4747   virtual void video_start();
4848   virtual void palette_init();
4949   DECLARE_VIDEO_START(dorunrun);
50   UINT32 screen_update_docastle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5051};
5152
5253
r17967r17968
5960
6061
6162
62SCREEN_UPDATE_IND16( docastle );
6363
64
trunk/src/mame/includes/mystston.h
r17967r17968
4646   TILE_GET_INFO_MEMBER(get_fg_tile_info);
4747   DECLARE_VIDEO_START(mystston);
4848   DECLARE_VIDEO_RESET(mystston);
49   UINT32 screen_update_mystston(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4950};
5051
5152
trunk/src/mame/includes/mainsnk.h
r17967r17968
2727   TILE_GET_INFO_MEMBER(get_bg_tile_info);
2828   virtual void video_start();
2929   virtual void palette_init();
30   UINT32 screen_update_mainsnk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3031};
3132
3233
r17967r17968
3435
3536
3637
37SCREEN_UPDATE_IND16(mainsnk);
38
trunk/src/mame/includes/hitme.h
r17967r17968
3939   virtual void machine_reset();
4040   virtual void video_start();
4141   DECLARE_VIDEO_START(barricad);
42   UINT32 screen_update_hitme(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
43   UINT32 screen_update_barricad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4244};
4345
4446
trunk/src/mame/includes/rampart.h
r17967r17968
2020   DECLARE_MACHINE_START(rampart);
2121   DECLARE_MACHINE_RESET(rampart);
2222   DECLARE_VIDEO_START(rampart);
23   UINT32 screen_update_rampart(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2324};
2425
2526
2627/*----------- defined in video/rampart.c -----------*/
2728
2829
29SCREEN_UPDATE_IND16( rampart );
30
trunk/src/mame/includes/senjyo.h
r17967r17968
8181   TILE_GET_INFO_MEMBER(get_bg3_tile_info);
8282   virtual void machine_reset();
8383   virtual void video_start();
84   UINT32 screen_update_senjyo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8485};
8586
8687
r17967r17968
9596
9697
9798
98SCREEN_UPDATE_IND16( senjyo );
99
trunk/src/mame/includes/yiear.h
r17967r17968
3535   virtual void machine_reset();
3636   virtual void video_start();
3737   virtual void palette_init();
38   UINT32 screen_update_yiear(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3839};
3940
4041
r17967r17968
4344
4445
4546
46SCREEN_UPDATE_IND16( yiear );
47
trunk/src/mame/includes/snowbros.h
r17967r17968
4343   DECLARE_DRIVER_INIT(cookbib2);
4444   DECLARE_MACHINE_RESET(semiprot);
4545   DECLARE_MACHINE_RESET(finalttr);
46   UINT32 screen_update_snowbros(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
47   UINT32 screen_update_honeydol(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
48   UINT32 screen_update_twinadv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
49   UINT32 screen_update_snowbro3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
50   UINT32 screen_update_wintbob(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
51   void screen_eof_snowbros(screen_device &screen, bool state);
4652};
4753
trunk/src/mame/includes/nbmj9195.h
r17967r17968
110110   virtual void video_start();
111111   DECLARE_VIDEO_START(nbmj9195_1layer);
112112   DECLARE_VIDEO_START(nbmj9195_nb22090);
113   UINT32 screen_update_nbmj9195(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
113114};
114115
115116
116117/*----------- defined in video/nbmj9195.c -----------*/
117118
118SCREEN_UPDATE_IND16( nbmj9195 );
119119
120120
121121
122122
123123
124124
125
125126void nbmj9195_clutsel_w(address_space &space, int data);
126127void nbmj9195_gfxflag2_w(address_space &space, int data);
trunk/src/mame/includes/sslam.h
r17967r17968
5050   TILE_GET_INFO_MEMBER(get_powerbls_bg_tile_info);
5151   DECLARE_VIDEO_START(sslam);
5252   DECLARE_VIDEO_START(powerbls);
53   UINT32 screen_update_sslam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
54   UINT32 screen_update_powerbls(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5355};
5456
5557
r17967r17968
5759
5860
5961
60SCREEN_UPDATE_IND16(sslam);
61SCREEN_UPDATE_IND16(powerbls);
62
63
trunk/src/mame/includes/sonson.h
r17967r17968
3838   virtual void machine_reset();
3939   virtual void video_start();
4040   virtual void palette_init();
41   UINT32 screen_update_sonson(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4142};
4243
4344
r17967r17968
4647
4748
4849
49SCREEN_UPDATE_IND16( sonson );
50
trunk/src/mame/includes/simpl156.h
r17967r17968
5858   DECLARE_DRIVER_INIT(osman);
5959   DECLARE_DRIVER_INIT(chainrec);
6060   virtual void video_start();
61   UINT32 screen_update_simpl156(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6162};
6263
6364
r17967r17968
6566/*----------- defined in video/simpl156.c -----------*/
6667
6768
68SCREEN_UPDATE_IND16( simpl156 );
69
trunk/src/mame/includes/hcastle.h
r17967r17968
5555   virtual void machine_reset();
5656   virtual void video_start();
5757   virtual void palette_init();
58   UINT32 screen_update_hcastle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5859};
5960
6061
r17967r17968
6263
6364
6465
65SCREEN_UPDATE_IND16( hcastle );
6666
67
trunk/src/mame/includes/deadang.h
r17967r17968
3232   TILE_GET_INFO_MEMBER(get_pf1_tile_info);
3333   TILE_GET_INFO_MEMBER(get_text_tile_info);
3434   virtual void video_start();
35   UINT32 screen_update_deadang(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3536};
3637
3738
r17967r17968
3940
4041
4142
42SCREEN_UPDATE_IND16( deadang );
43
trunk/src/mame/includes/copsnrob.h
r17967r17968
3636   virtual void machine_start();
3737   virtual void machine_reset();
3838   virtual void palette_init();
39   UINT32 screen_update_copsnrob(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3940};
4041
4142
r17967r17968
4647
4748/*----------- defined in video/copsnrob.c -----------*/
4849
49SCREEN_UPDATE_IND16( copsnrob );
5050
5151
52
5253/*----------- defined in audio/copsnrob.c -----------*/
5354
5455DISCRETE_SOUND_EXTERN( copsnrob );
trunk/src/mame/includes/twincobr.h
r17967r17968
104104   DECLARE_MACHINE_RESET(twincobr);
105105   DECLARE_VIDEO_START(toaplan0);
106106   DECLARE_MACHINE_RESET(wardner);
107   UINT32 screen_update_toaplan0(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
107108};
108109
109110
r17967r17968
126127extern void twincobr_display(running_machine &machine, int enable);
127128
128129
129SCREEN_UPDATE_IND16( toaplan0 );
130
trunk/src/mame/includes/hexion.h
r17967r17968
2222   TILE_GET_INFO_MEMBER(get_tile_info0);
2323   TILE_GET_INFO_MEMBER(get_tile_info1);
2424   virtual void video_start();
25   UINT32 screen_update_hexion(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2526};
2627
2728
2829/*----------- defined in video/hexion.c -----------*/
2930
3031
31SCREEN_UPDATE_IND16( hexion );
3232
33
trunk/src/mame/includes/bking.h
r17967r17968
8787   DECLARE_MACHINE_START(bking3);
8888   DECLARE_MACHINE_RESET(bking3);
8989   DECLARE_MACHINE_RESET(common);
90   UINT32 screen_update_bking(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
91   void screen_eof_bking(screen_device &screen, bool state);
9092};
9193
9294
r17967r17968
9698
9799
98100
99SCREEN_UPDATE_IND16( bking );
100SCREEN_VBLANK( bking );
101
102
trunk/src/mame/includes/battlnts.h
r17967r17968
2828   DECLARE_DRIVER_INIT(rackemup);
2929   virtual void machine_start();
3030   virtual void machine_reset();
31   UINT32 screen_update_battlnts(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3132};
3233
3334/*----------- defined in video/battlnts.c -----------*/
3435
3536
36SCREEN_UPDATE_IND16( battlnts );
3737
38
3839void battlnts_tile_callback(running_machine &machine, int layer, int bank, int *code, int *color, int *flags);
3940void battlnts_sprite_callback(running_machine &machine, int *code, int *color);
trunk/src/mame/includes/galpani2.h
r17967r17968
5050   virtual void machine_reset();
5151   virtual void video_start();
5252   virtual void palette_init();
53   UINT32 screen_update_galpani2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5354};
5455
5556
r17967r17968
5758
5859
5960
60SCREEN_UPDATE_IND16( galpani2 );
6161
62
6263DECLARE_WRITE16_HANDLER( galpani2_palette_0_w );
6364DECLARE_WRITE16_HANDLER( galpani2_palette_1_w );
6465
trunk/src/mame/includes/arabian.h
r17967r17968
4242   virtual void machine_reset();
4343   virtual void video_start();
4444   virtual void palette_init();
45   UINT32 screen_update_arabian(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4546};
4647
4748
r17967r17968
5051
5152
5253
53SCREEN_UPDATE_IND16( arabian );
54
trunk/src/mame/includes/taito_o.h
r17967r17968
1919   DECLARE_WRITE16_MEMBER(io_w);
2020   DECLARE_READ16_MEMBER(io_r);
2121   virtual void machine_start();
22   UINT32 screen_update_parentj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2223};
2324
2425/*----------- defined in video/taito_o.c -----------*/
2526
26SCREEN_UPDATE_IND16( parentj );
27
trunk/src/mame/includes/labyrunr.h
r17967r17968
4141   virtual void machine_start();
4242   virtual void video_start();
4343   virtual void palette_init();
44   UINT32 screen_update_labyrunr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4445};
4546
4647
r17967r17968
5051
5152
5253
53SCREEN_UPDATE_IND16( labyrunr );
54
trunk/src/mame/includes/thief.h
r17967r17968
3333   DECLARE_WRITE8_MEMBER(tape_control_w);
3434   DECLARE_DRIVER_INIT(thief);
3535   virtual void video_start();
36   UINT32 screen_update_thief(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3637};
3738
3839
r17967r17968
4041
4142
4243
43SCREEN_UPDATE_IND16( thief );
44
trunk/src/mame/includes/ddragon3.h
r17967r17968
4747   virtual void machine_start();
4848   virtual void machine_reset();
4949   virtual void video_start();
50   UINT32 screen_update_ddragon3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
51   UINT32 screen_update_ctribe(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5052};
5153
5254
trunk/src/mame/includes/sprint2.h
r17967r17968
6464   TILE_GET_INFO_MEMBER(get_tile_info);
6565   virtual void video_start();
6666   virtual void palette_init();
67   UINT32 screen_update_sprint2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
68   void screen_eof_sprint2(screen_device &screen, bool state);
6769};
6870
6971
r17967r17968
7981
8082
8183
82SCREEN_UPDATE_IND16( sprint2 );
8384
84SCREEN_VBLANK( sprint2 );
8585
86
87
trunk/src/mame/includes/ccastles.h
r17967r17968
6767   virtual void machine_start();
6868   virtual void machine_reset();
6969   virtual void video_start();
70   UINT32 screen_update_ccastles(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7071};
7172
7273
r17967r17968
7475
7576
7677
77SCREEN_UPDATE_IND16( ccastles );
7878
7979
8080
81
trunk/src/mame/includes/dragrace.h
r17967r17968
5353   virtual void machine_reset();
5454   virtual void video_start();
5555   virtual void palette_init();
56   UINT32 screen_update_dragrace(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5657};
5758
5859
r17967r17968
6364/*----------- defined in video/dragrace.c -----------*/
6465
6566
66SCREEN_UPDATE_IND16( dragrace );
67
trunk/src/mame/includes/orbit.h
r17967r17968
4343   virtual void machine_start();
4444   virtual void machine_reset();
4545   virtual void video_start();
46   UINT32 screen_update_orbit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4647};
4748
4849
r17967r17968
5859/*----------- defined in video/orbit.c -----------*/
5960
6061
61SCREEN_UPDATE_IND16( orbit );
6262
63
trunk/src/mame/includes/ambush.h
r17967r17968
2525   DECLARE_WRITE8_MEMBER(ambush_coin_counter_w);
2626   DECLARE_WRITE8_MEMBER(flip_screen_w);
2727   virtual void palette_init();
28   UINT32 screen_update_ambush(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2829};
2930
3031
3132/*----------- defined in video/ambush.c -----------*/
3233
3334
34SCREEN_UPDATE_IND16( ambush );
35
trunk/src/mame/includes/policetr.h
r17967r17968
4646   DECLARE_DRIVER_INIT(sshooter);
4747   DECLARE_DRIVER_INIT(plctr13b);
4848   virtual void video_start();
49   UINT32 screen_update_policetr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4950};
5051
5152
r17967r17968
5455
5556
5657
57SCREEN_UPDATE_IND16( policetr );
58
trunk/src/mame/includes/seibuspi.h
r17967r17968
113113   DECLARE_VIDEO_START(sys386f2);
114114   DECLARE_MACHINE_START(sxx2f);
115115   DECLARE_MACHINE_RESET(sxx2f);
116   UINT32 screen_update_spi(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
117   UINT32 screen_update_sys386f2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
116118};
117119
118120
r17967r17968
124126/*----------- defined in video/seibuspi.c -----------*/
125127
126128
127SCREEN_UPDATE_RGB32( spi );
128129
129130
130SCREEN_UPDATE_RGB32( sys386f2 );
131131
132132
133
134
133135void rf2_set_layer_banks(running_machine &machine, int banks);
134136
trunk/src/mame/includes/sauro.h
r17967r17968
3636   TILE_GET_INFO_MEMBER(get_tile_info_fg);
3737   DECLARE_VIDEO_START(trckydoc);
3838   DECLARE_VIDEO_START(sauro);
39   UINT32 screen_update_trckydoc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
40   UINT32 screen_update_sauro(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3941};
4042
4143
r17967r17968
4547
4648
4749
48SCREEN_UPDATE_IND16( sauro );
49SCREEN_UPDATE_IND16( trckydoc );
50
51
trunk/src/mame/includes/gaplus.h
r17967r17968
4545   virtual void machine_reset();
4646   virtual void video_start();
4747   virtual void palette_init();
48   UINT32 screen_update_gaplus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
49   void screen_eof_gaplus(screen_device &screen, bool state);
4850};
49
50
51/*----------- defined in machine/gaplus.c -----------*/
52
53
54
55/*----------- defined in video/gaplus.c -----------*/
56
57
58
59SCREEN_UPDATE_IND16( gaplus );
60SCREEN_VBLANK( gaplus );   /* update starfields */
trunk/src/mame/includes/carpolo.h
r17967r17968
6666   virtual void machine_reset();
6767   virtual void video_start();
6868   virtual void palette_init();
69   UINT32 screen_update_carpolo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
70   void screen_eof_carpolo(screen_device &screen, bool state);
6971};
7072
7173
r17967r17968
100102
101103
102104
103SCREEN_UPDATE_IND16( carpolo );
104SCREEN_VBLANK( carpolo );
105
106
trunk/src/mame/includes/drmicro.h
r17967r17968
3434   virtual void machine_reset();
3535   virtual void video_start();
3636   virtual void palette_init();
37   UINT32 screen_update_drmicro(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3738};
3839
3940
r17967r17968
4142
4243
4344
44SCREEN_UPDATE_IND16( drmicro );
4545
46
trunk/src/mame/includes/speedatk.h
r17967r17968
2626   DECLARE_WRITE8_MEMBER(speedatk_output_w);
2727   virtual void video_start();
2828   virtual void palette_init();
29   UINT32 screen_update_speedatk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2930};
3031
3132
r17967r17968
3334
3435
3536
36SCREEN_UPDATE_IND16( speedatk );
37
trunk/src/mame/includes/system1.h
r17967r17968
104104   virtual void video_start();
105105   DECLARE_MACHINE_START(system2);
106106   DECLARE_VIDEO_START(system2);
107   UINT32 screen_update_system1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
108   UINT32 screen_update_system2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
109   UINT32 screen_update_system2_rowscroll(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
107110};
108111
109112
r17967r17968
117120
118121
119122
120SCREEN_UPDATE_IND16( system1 );
121SCREEN_UPDATE_IND16( system2 );
122SCREEN_UPDATE_IND16( system2_rowscroll );
123
124
125
trunk/src/mame/includes/powerins.h
r17967r17968
3030   TILE_GET_INFO_MEMBER(get_tile_info_1);
3131   virtual void machine_reset();
3232   virtual void video_start();
33   UINT32 screen_update_powerins(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3334};
3435
3536
r17967r17968
3940
4041
4142
42SCREEN_UPDATE_IND16( powerins );
43
trunk/src/mame/includes/niyanpai.h
r17967r17968
7979   DECLARE_DRIVER_INIT(niyanpai);
8080   virtual void machine_reset();
8181   virtual void video_start();
82   UINT32 screen_update_niyanpai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8283};
8384
8485
8586/*----------- defined in video/niyanpai.c -----------*/
8687
87SCREEN_UPDATE_IND16( niyanpai );
8888
8989
9090
91
trunk/src/mame/includes/exedexes.h
r17967r17968
4848   virtual void machine_reset();
4949   virtual void video_start();
5050   virtual void palette_init();
51   UINT32 screen_update_exedexes(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5152};
5253
5354
trunk/src/mame/includes/jedi.h
r17967r17968
7676   virtual void machine_start();
7777   virtual void machine_reset();
7878   DECLARE_VIDEO_START(jedi);
79   UINT32 screen_update_jedi(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
7980};
8081
8182
trunk/src/mame/includes/suprnova.h
r17967r17968
134134   DECLARE_MACHINE_RESET(sknsu);
135135   DECLARE_MACHINE_RESET(sknse);
136136   DECLARE_MACHINE_RESET(sknsk);
137   UINT32 screen_update_skns(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
138   void screen_eof_skns(screen_device &screen, bool state);
137139};
138140
139141
r17967r17968
148150
149151
150152
151SCREEN_VBLANK(skns);
152SCREEN_UPDATE_RGB32(skns);
153
154
trunk/src/mame/includes/seta2.h
r17967r17968
6969   DECLARE_MACHINE_RESET(funcube);
7070   DECLARE_VIDEO_START(seta2_yoffset);
7171   DECLARE_VIDEO_START(seta2_xoffset);
72   UINT32 screen_update_seta2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
73   void screen_eof_seta2(screen_device &screen, bool state);
7274};
7375
7476/*----------- defined in video/seta2.c -----------*/
r17967r17968
7779
7880
7981
80SCREEN_UPDATE_IND16( seta2 );
81SCREEN_VBLANK( seta2 );
82
83
trunk/src/mame/includes/namcofl.h
r17967r17968
5757   DECLARE_MACHINE_START(namcofl);
5858   DECLARE_MACHINE_RESET(namcofl);
5959   DECLARE_VIDEO_START(namcofl);
60   UINT32 screen_update_namcofl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6061};
6162
6263
6364/*----------- defined in video/namcofl.c -----------*/
6465
6566
66SCREEN_UPDATE_IND16( namcofl );
6767
68
trunk/src/mame/includes/flkatck.h
r17967r17968
3838   virtual void machine_start();
3939   virtual void machine_reset();
4040   virtual void video_start();
41   UINT32 screen_update_flkatck(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4142};
4243
4344
r17967r17968
4849
4950
5051
51SCREEN_UPDATE_IND16( flkatck );
52
trunk/src/mame/includes/dynax.h
r17967r17968
463463   DECLARE_VIDEO_START(neruton);
464464   DECLARE_MACHINE_START(dynax);
465465   DECLARE_MACHINE_RESET(adpcm);
466   UINT32 screen_update_ddenlovr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
467   UINT32 screen_update_hanamai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
468   UINT32 screen_update_hnoridur(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
469   UINT32 screen_update_sprtmtch(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
470   UINT32 screen_update_mjdialq2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
471   UINT32 screen_update_jantouki_top(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
472   UINT32 screen_update_jantouki_bottom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
473   UINT32 screen_update_htengoku(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
466474};
467475
468476//----------- defined in drivers/dynax.c -----------
r17967r17968
483491
484492
485493
486SCREEN_UPDATE_IND16( hanamai );
487SCREEN_UPDATE_IND16( hnoridur );
488SCREEN_UPDATE_IND16( sprtmtch );
489SCREEN_UPDATE_IND16( mjdialq2 );
490SCREEN_UPDATE_IND16( jantouki_top );
491SCREEN_UPDATE_IND16( jantouki_bottom );
492SCREEN_UPDATE_IND16( htengoku );
493494
494495
495496
496497
498
499
500
501
502
503
504
497505//----------- defined in drivers/ddenlovr.c -----------
498506
499507
500SCREEN_UPDATE_IND16(ddenlovr);
508
trunk/src/mame/includes/shootout.h
r17967r17968
2626   TILE_GET_INFO_MEMBER(get_fg_tile_info);
2727   virtual void video_start();
2828   virtual void palette_init();
29   UINT32 screen_update_shootout(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
30   UINT32 screen_update_shootouj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2931};
3032
3133
r17967r17968
3436
3537
3638
37SCREEN_UPDATE_IND16( shootout );
38SCREEN_UPDATE_IND16( shootouj );
39
40
trunk/src/mame/includes/contra.h
r17967r17968
6060   virtual void machine_start();
6161   virtual void video_start();
6262   virtual void palette_init();
63   UINT32 screen_update_contra(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6364};
6465
6566
r17967r17968
6970
7071
7172
72SCREEN_UPDATE_IND16( contra );
7373
74
trunk/src/mame/includes/volfied.h
r17967r17968
4343   virtual void machine_start();
4444   virtual void machine_reset();
4545   virtual void video_start();
46   UINT32 screen_update_volfied(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4647};
4748
4849
r17967r17968
5758
5859
5960
60SCREEN_UPDATE_IND16( volfied );
6161
62
trunk/src/mame/includes/paradise.h
r17967r17968
5151   virtual void machine_start();
5252   virtual void machine_reset();
5353   virtual void video_start();
54   UINT32 screen_update_paradise(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
55   UINT32 screen_update_torus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
56   UINT32 screen_update_madball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5457};
5558
5659/*----------- defined in video/paradise.c -----------*/
r17967r17968
6063
6164
6265
63SCREEN_UPDATE_IND16( paradise );
64SCREEN_UPDATE_IND16( torus );
65SCREEN_UPDATE_IND16( madball );
66
67
68
trunk/src/mame/includes/dribling.h
r17967r17968
4646   virtual void machine_start();
4747   virtual void machine_reset();
4848   virtual void palette_init();
49   UINT32 screen_update_dribling(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4950};
5051
5152
5253/*----------- defined in video/dribling.c -----------*/
5354
5455
55SCREEN_UPDATE_IND16( dribling );
56
trunk/src/mame/includes/balsente.h
r17967r17968
192192   virtual void machine_start();
193193   virtual void machine_reset();
194194   virtual void video_start();
195   UINT32 screen_update_balsente(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
195196};
196197
197198
r17967r17968
224225/*----------- defined in video/balsente.c -----------*/
225226
226227
227SCREEN_UPDATE_IND16( balsente );
228228
229
trunk/src/mame/includes/megadriv.h
r17967r17968
274274   DECLARE_VIDEO_START(segac2_new);
275275   DECLARE_MACHINE_START(segac2);
276276   DECLARE_MACHINE_RESET(segac2);
277
277   
278   UINT32 screen_update_segac2_new(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
278279};
279280
280281class mplay_state : public md_base_state
r17967r17968
313314   DECLARE_DRIVER_INIT(megaplay);
314315   DECLARE_VIDEO_START(megplay);
315316   DECLARE_MACHINE_RESET(megaplay);
317   
318   UINT32 screen_update_megplay(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
319   void screen_eof_megaplay(screen_device &screen, bool state);
316320};
317321
318322class mtech_state : public md_base_state
r17967r17968
348352   DECLARE_DRIVER_INIT(mt_slot);
349353   DECLARE_VIDEO_START(mtnew);
350354   DECLARE_MACHINE_RESET(mtnew);
355   UINT32 screen_update_mtnew(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
356   void screen_eof_mtnew(screen_device &screen, bool state);
357   UINT32 screen_update_megatech_menu(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
351358};
352359
353360struct megadriv_cart
trunk/src/mame/includes/itech32.h
r17967r17968
157157   virtual void machine_reset();
158158   virtual void video_start();
159159   DECLARE_MACHINE_RESET(drivedge);
160   UINT32 screen_update_itech32(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
160161};
161162
162163
r17967r17968
176177
177178
178179
179SCREEN_UPDATE_IND16( itech32 );
180
trunk/src/mame/includes/mexico86.h
r17967r17968
5353   DECLARE_READ8_MEMBER(kiki_ym2203_r);
5454   virtual void machine_start();
5555   virtual void machine_reset();
56   UINT32 screen_update_mexico86(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
57   UINT32 screen_update_kikikai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5658};
5759
5860
r17967r17968
6567/*----------- defined in video/mexico86.c -----------*/
6668
6769
68SCREEN_UPDATE_IND16( mexico86 );
69SCREEN_UPDATE_IND16( kikikai );
70
71
trunk/src/mame/includes/chaknpop.h
r17967r17968
5252   virtual void machine_reset();
5353   virtual void video_start();
5454   virtual void palette_init();
55   UINT32 screen_update_chaknpop(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5556};
5657
5758
r17967r17968
6465
6566
6667
67SCREEN_UPDATE_IND16( chaknpop );
6868
69
trunk/src/mame/includes/fitfight.h
r17967r17968
6161   virtual void machine_start();
6262   virtual void machine_reset();
6363   virtual void video_start();
64   UINT32 screen_update_fitfight(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6465};
6566
6667
r17967r17968
6869
6970
7071
71SCREEN_UPDATE_IND16(fitfight);
72
trunk/src/mame/includes/sspeedr.h
r17967r17968
3535   DECLARE_WRITE8_MEMBER(sspeedr_track_ice_w);
3636   virtual void video_start();
3737   virtual void palette_init();
38   UINT32 screen_update_sspeedr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
39   void screen_eof_sspeedr(screen_device &screen, bool state);
3840};
3941
4042
r17967r17968
4446
4547
4648
47SCREEN_UPDATE_IND16( sspeedr );
48SCREEN_VBLANK( sspeedr );
49
50
trunk/src/mame/includes/ashnojoe.h
r17967r17968
7373   virtual void machine_start();
7474   virtual void machine_reset();
7575   virtual void video_start();
76   UINT32 screen_update_ashnojoe(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7677};
7778
7879
r17967r17968
8081
8182
8283
83SCREEN_UPDATE_IND16( ashnojoe );
84
trunk/src/mame/includes/terracre.h
r17967r17968
3636   virtual void video_start();
3737   virtual void palette_init();
3838   DECLARE_MACHINE_START(amazon);
39   UINT32 screen_update_amazon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3940};
4041
4142
r17967r17968
4344
4445
4546
46SCREEN_UPDATE_IND16( amazon );
47
trunk/src/mame/includes/ddribble.h
r17967r17968
5959   virtual void machine_reset();
6060   virtual void video_start();
6161   virtual void palette_init();
62   UINT32 screen_update_ddribble(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6263};
6364
6465/*----------- defined in video/ddribble.c -----------*/
r17967r17968
6667
6768
6869
69SCREEN_UPDATE_IND16( ddribble );
70
trunk/src/mame/includes/mouser.h
r17967r17968
3535   virtual void machine_start();
3636   virtual void machine_reset();
3737   virtual void palette_init();
38   UINT32 screen_update_mouser(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3839};
3940
4041/*----------- defined in video/mouser.c -----------*/
4142
4243
4344
44SCREEN_UPDATE_IND16( mouser );
45
trunk/src/mame/includes/undrfire.h
r17967r17968
4343   DECLARE_DRIVER_INIT(undrfire);
4444   DECLARE_DRIVER_INIT(cbombers);
4545   virtual void video_start();
46   UINT32 screen_update_undrfire(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
47   UINT32 screen_update_cbombers(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4648};
4749
4850
4951/*----------- defined in video/undrfire.c -----------*/
5052
5153
52SCREEN_UPDATE_IND16( undrfire );
53SCREEN_UPDATE_IND16( cbombers );
54
55
trunk/src/mame/includes/amiga.h
r17967r17968
434434   DECLARE_VIDEO_START(amiga);
435435   DECLARE_PALETTE_INIT(amiga);
436436   DECLARE_VIDEO_START(amiga_aga);
437   UINT32 screen_update_amiga(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
438   UINT32 screen_update_amiga_aga(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
437439};
438440
439441
r17967r17968
502504
503505
504506
505SCREEN_UPDATE_IND16( amiga );
506507
508
507509void amiga_copper_setpc(running_machine &machine, UINT32 pc);
508510int amiga_copper_execute_next(running_machine &machine, int xpos);
509511
r17967r17968
516518/*----------- defined in video/amigaaga.c -----------*/
517519
518520
519SCREEN_UPDATE_RGB32( amiga_aga );
520521
522
521523void amiga_aga_render_scanline(running_machine &machine, bitmap_rgb32 &bitmap, int scanline);
522524void amiga_aga_palette_write(running_machine &machine, int color_reg, UINT16 data);
523525void amiga_aga_diwhigh_written(running_machine &machine, int written);
trunk/src/mame/includes/deco32.h
r17967r17968
105105   DECLARE_VIDEO_START(captaven);
106106   DECLARE_VIDEO_START(fghthist);
107107   DECLARE_VIDEO_START(nslasher);
108   UINT32 screen_update_captaven(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
109   UINT32 screen_update_fghthist(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
110   UINT32 screen_update_nslasher(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);   
111   void screen_eof_captaven(screen_device &screen, bool state);
108112};
109113
110114class dragngun_state : public deco32_state
r17967r17968
131135   DECLARE_DRIVER_INIT(lockload);
132136   DECLARE_VIDEO_START(dragngun);
133137   DECLARE_VIDEO_START(lockload);
138   UINT32 screen_update_dragngun(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
139   void screen_eof_dragngun(screen_device &screen, bool state);
134140};
135141
136142
r17967r17968
143149
144150
145151
146SCREEN_VBLANK( captaven );
147SCREEN_VBLANK( dragngun );
148152
149SCREEN_UPDATE_IND16( captaven );
150SCREEN_UPDATE_RGB32( fghthist );
151SCREEN_UPDATE_RGB32( dragngun );
152SCREEN_UPDATE_RGB32( nslasher );
153153
154154
155
156
157
158
159
160
155161DECLARE_WRITE32_HANDLER( deco32_pf1_data_w );
156162DECLARE_WRITE32_HANDLER( deco32_pf2_data_w );
157163DECLARE_WRITE32_HANDLER( deco32_pf3_data_w );
trunk/src/mame/includes/malzak.h
r17967r17968
4242   virtual void machine_start();
4343   virtual void machine_reset();
4444   virtual void palette_init();
45   UINT32 screen_update_malzak(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
4546};
4647
4748
4849/*----------- defined in video/malzak.c -----------*/
4950
5051
51SCREEN_UPDATE_RGB32( malzak );
52
trunk/src/mame/includes/midzeus.h
r17967r17968
5656   DECLARE_MACHINE_RESET(midzeus);
5757   DECLARE_VIDEO_START(midzeus);
5858   DECLARE_VIDEO_START(midzeus2);
59   UINT32 screen_update_midzeus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
60   UINT32 screen_update_midzeus2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
5961};
6062
6163
6264/*----------- defined in video/midzeus.c -----------*/
6365
6466
65SCREEN_UPDATE_IND16( midzeus );
6667
6768
69
6870/*----------- defined in video/midzeus2.c -----------*/
6971
7072
71SCREEN_UPDATE_RGB32( midzeus2 );
7273
74
7375DECLARE_READ32_HANDLER( zeus2_r );
7476DECLARE_WRITE32_HANDLER( zeus2_w );
7577
trunk/src/mame/includes/grchamp.h
r17967r17968
7171   virtual void machine_reset();
7272   virtual void video_start();
7373   virtual void palette_init();
74   UINT32 screen_update_grchamp(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
7475};
7576
7677/* Discrete Sound Input Nodes */
r17967r17968
9293
9394
9495
95SCREEN_UPDATE_RGB32( grchamp );
96
trunk/src/mame/includes/argus.h
r17967r17968
8080   DECLARE_VIDEO_RESET(valtric);
8181   DECLARE_VIDEO_START(butasan);
8282   DECLARE_VIDEO_RESET(butasan);
83   UINT32 screen_update_argus(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
84   UINT32 screen_update_valtric(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
85   UINT32 screen_update_butasan(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
8386};
8487
8588
r17967r17968
9194
9295
9396
94SCREEN_UPDATE_RGB32( argus );
95SCREEN_UPDATE_RGB32( valtric );
96SCREEN_UPDATE_RGB32( butasan );
9797
9898
9999
100100
101
102
103
trunk/src/mame/includes/lkage.h
r17967r17968
8282   virtual void machine_start();
8383   virtual void machine_reset();
8484   virtual void video_start();
85   UINT32 screen_update_lkage(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8586};
8687
8788/*----------- defined in machine/lkage.c -----------*/
r17967r17968
9192/*----------- defined in video/lkage.c -----------*/
9293
9394
94SCREEN_UPDATE_IND16( lkage );
9595
96
trunk/src/mame/includes/zaxxon.h
r17967r17968
6868   virtual void palette_init();
6969   DECLARE_VIDEO_START(razmataz);
7070   DECLARE_VIDEO_START(congo);
71   UINT32 screen_update_zaxxon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
72   UINT32 screen_update_futspy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
73   UINT32 screen_update_razmataz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
74   UINT32 screen_update_congo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7175};
7276
7377
r17967r17968
9599
96100
97101
98SCREEN_UPDATE_IND16( zaxxon );
99SCREEN_UPDATE_IND16( razmataz );
100SCREEN_UPDATE_IND16( congo );
101SCREEN_UPDATE_IND16( futspy );
102
103
104
105
trunk/src/mame/includes/gaiden.h
r17967r17968
8383   DECLARE_VIDEO_START(drgnbowl);
8484   DECLARE_VIDEO_START(mastninj);
8585   DECLARE_VIDEO_START(raiga);
86   UINT32 screen_update_gaiden(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
87   UINT32 screen_update_drgnbowl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
88   UINT32 screen_update_raiga(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
8689};
8790
8891
r17967r17968
9396
9497
9598
96SCREEN_UPDATE_RGB32( gaiden );
97SCREEN_UPDATE_RGB32( raiga );
98SCREEN_UPDATE_IND16( drgnbowl );
9999
100100
101
102
103
trunk/src/mame/includes/norautp.h
r17967r17968
2727   DECLARE_DRIVER_INIT(deb);
2828   virtual void video_start();
2929   virtual void palette_init();
30   UINT32 screen_update_norautp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3031};
3132
3233
trunk/src/mame/includes/shangkid.h
r17967r17968
3030   DECLARE_VIDEO_START(shangkid);
3131   DECLARE_PALETTE_INIT(dynamski);
3232   DECLARE_MACHINE_RESET(shangkid);
33   UINT32 screen_update_shangkid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
34   UINT32 screen_update_dynamski(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3335};
3436
3537
3638/*----------- defined in video/shangkid.c -----------*/
3739
3840
39SCREEN_UPDATE_IND16( shangkid );
4041
4142
42SCREEN_UPDATE_IND16( dynamski );
4343
44
45
trunk/src/mame/includes/trackfld.h
r17967r17968
6565   DECLARE_VIDEO_START(trackfld);
6666   DECLARE_PALETTE_INIT(trackfld);
6767   DECLARE_VIDEO_START(atlantol);
68   UINT32 screen_update_trackfld(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6869};
6970
7071
r17967r17968
7374
7475
7576
76SCREEN_UPDATE_IND16( trackfld );
7777
7878
79
trunk/src/mame/includes/astrof.h
r17967r17968
6868   DECLARE_MACHINE_RESET(abattle);
6969   DECLARE_MACHINE_START(spfghmk2);
7070   DECLARE_MACHINE_START(tomahawk);
71   UINT32 screen_update_astrof(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
72   UINT32 screen_update_tomahawk(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
7173};
7274
7375/*----------- defined in audio/astrof.c -----------*/
trunk/src/mame/includes/fastfred.h
r17967r17968
6161   DECLARE_PALETTE_INIT(fastfred);
6262   DECLARE_MACHINE_START(imago);
6363   DECLARE_VIDEO_START(imago);
64   UINT32 screen_update_fastfred(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
65   UINT32 screen_update_imago(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6466};
6567
6668
r17967r17968
7678DECLARE_WRITE8_HANDLER( fastfred_colorbank2_w );
7779DECLARE_WRITE8_HANDLER( fastfred_flip_screen_x_w );
7880DECLARE_WRITE8_HANDLER( fastfred_flip_screen_y_w );
79SCREEN_UPDATE_IND16( fastfred );
8081
8182
82SCREEN_UPDATE_IND16( imago );
83
84
8385DECLARE_WRITE8_HANDLER( imago_fg_videoram_w );
8486DECLARE_WRITE8_HANDLER( imago_charbank_w );
trunk/src/mame/includes/karnov.h
r17967r17968
5757   virtual void palette_init();
5858   DECLARE_VIDEO_START(karnov);
5959   DECLARE_VIDEO_START(wndrplnt);
60   UINT32 screen_update_karnov(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6061};
6162
6263enum {
r17967r17968
7778
7879
7980
80SCREEN_UPDATE_IND16( karnov );
81
trunk/src/mame/includes/lwings.h
r17967r17968
5858   virtual void video_start();
5959   DECLARE_VIDEO_START(trojan);
6060   DECLARE_VIDEO_START(avengers);
61   UINT32 screen_update_lwings(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
62   UINT32 screen_update_trojan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6163};
6264
6365
r17967r17968
6769
6870
6971
70SCREEN_UPDATE_IND16( lwings );
71SCREEN_UPDATE_IND16( trojan );
72
73
trunk/src/mame/includes/punchout.h
r17967r17968
6363   virtual void machine_reset();
6464   virtual void video_start();
6565   DECLARE_VIDEO_START(armwrest);
66   UINT32 screen_update_punchout_top(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
67   UINT32 screen_update_punchout_bottom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
68   UINT32 screen_update_armwrest_top(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
69   UINT32 screen_update_armwrest_bottom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6670};
6771
6872
r17967r17968
7175
7276
7377
74SCREEN_UPDATE_IND16( punchout_top );
75SCREEN_UPDATE_IND16( punchout_bottom );
76SCREEN_UPDATE_IND16( armwrest_top );
77SCREEN_UPDATE_IND16( armwrest_bottom );
7878
79
80
81
82
trunk/src/mame/includes/kopunch.h
r17967r17968
4242   virtual void machine_reset();
4343   virtual void video_start();
4444   virtual void palette_init();
45   UINT32 screen_update_kopunch(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4546};
4647
4748/*----------- defined in video/kopunch.c -----------*/
r17967r17968
4950
5051
5152
52SCREEN_UPDATE_IND16( kopunch );
53
trunk/src/mame/includes/tecmo.h
r17967r17968
4848   TILE_GET_INFO_MEMBER(get_tx_tile_info);
4949   DECLARE_MACHINE_RESET(rygar);
5050   DECLARE_VIDEO_START(tecmo);
51   UINT32 screen_update_tecmo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5152};
5253
5354
r17967r17968
5556
5657
5758
58SCREEN_UPDATE_IND16( tecmo );
59
trunk/src/mame/includes/news.h
r17967r17968
2424   virtual void machine_start();
2525   virtual void machine_reset();
2626   virtual void video_start();
27   UINT32 screen_update_news(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2728};
2829
2930
r17967r17968
3132
3233
3334
34SCREEN_UPDATE_IND16( news );
35
trunk/src/mame/includes/finalizr.h
r17967r17968
5353   virtual void machine_reset();
5454   virtual void video_start();
5555   virtual void palette_init();
56   UINT32 screen_update_finalizr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5657};
5758
5859
r17967r17968
6162
6263
6364
64SCREEN_UPDATE_IND16( finalizr );
65
trunk/src/mame/includes/galpanic.h
r17967r17968
2424   DECLARE_READ8_MEMBER(comad_okim6295_r);
2525   DECLARE_VIDEO_START(galpanic);
2626   DECLARE_PALETTE_INIT(galpanic);
27   UINT32 screen_update_galpanic(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
28   UINT32 screen_update_comad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
29   void screen_eof_galpanic(screen_device &screen, bool state);
2730};
2831
2932
r17967r17968
3336DECLARE_WRITE16_HANDLER( galpanic_bgvideoram_w );
3437DECLARE_WRITE16_HANDLER( galpanic_paletteram_w );
3538
36SCREEN_UPDATE_IND16( galpanic );
37SCREEN_UPDATE_IND16( comad );
3839
3940
41
42
trunk/src/mame/includes/shuuz.h
r17967r17968
2222   DECLARE_MACHINE_START(shuuz);
2323   DECLARE_MACHINE_RESET(shuuz);
2424   DECLARE_VIDEO_START(shuuz);
25   UINT32 screen_update_shuuz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2526};
2627
2728
2829/*----------- defined in video/shuuz.c -----------*/
2930
3031
31SCREEN_UPDATE_IND16( shuuz );
32
trunk/src/mame/includes/cclimber.h
r17967r17968
6666   DECLARE_PALETTE_INIT(yamato);
6767   DECLARE_VIDEO_START(toprollr);
6868   DECLARE_PALETTE_INIT(toprollr);
69   UINT32 screen_update_cclimber(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
70   UINT32 screen_update_swimmer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
71   UINT32 screen_update_yamato(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
72   UINT32 screen_update_toprollr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6973};
7074
7175
r17967r17968
7781
7882
7983
80SCREEN_UPDATE_IND16( cclimber );
8184
8285
8386
84SCREEN_UPDATE_IND16( swimmer );
8587
8688
87SCREEN_UPDATE_IND16( yamato );
8889
8990
9091
91SCREEN_UPDATE_IND16( toprollr );
92
93
94
95
trunk/src/mame/includes/xorworld.h
r17967r17968
1919   TILE_GET_INFO_MEMBER(get_bg_tile_info);
2020   virtual void video_start();
2121   virtual void palette_init();
22   UINT32 screen_update_xorworld(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2223};
2324
2425
r17967r17968
2728
2829
2930
30SCREEN_UPDATE_IND16( xorworld );
31
trunk/src/mame/includes/speedspn.h
r17967r17968
2121   DECLARE_WRITE8_MEMBER(oki_banking_w);
2222   TILE_GET_INFO_MEMBER(get_speedspn_tile_info);
2323   virtual void video_start();
24   UINT32 screen_update_speedspn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2425};
2526
2627
2728/*----------- defined in video/speedspn.c -----------*/
2829
2930
30SCREEN_UPDATE_IND16( speedspn );
3131
3232
33
trunk/src/mame/includes/cloak.h
r17967r17968
4040   void adjust_xy(int offset);
4141   TILE_GET_INFO_MEMBER(get_bg_tile_info);
4242   virtual void video_start();
43   UINT32 screen_update_cloak(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4344};
4445
4546
r17967r17968
4849
4950
5051
51SCREEN_UPDATE_IND16( cloak );
52
trunk/src/mame/includes/namcona1.h
r17967r17968
110110   virtual void machine_start();
111111   virtual void machine_reset();
112112   virtual void video_start();
113   UINT32 screen_update_namcona1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
113114};
114115
115116
trunk/src/mame/includes/foodf.h
r17967r17968
3535   DECLARE_MACHINE_START(foodf);
3636   DECLARE_MACHINE_RESET(foodf);
3737   DECLARE_VIDEO_START(foodf);
38   UINT32 screen_update_foodf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3839};
3940
4041
4142/*----------- defined in video/foodf.c -----------*/
4243
4344
44SCREEN_UPDATE_IND16( foodf );
45
trunk/src/mame/includes/bsktball.h
r17967r17968
5555   virtual void machine_reset();
5656   virtual void video_start();
5757   virtual void palette_init();
58   UINT32 screen_update_bsktball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5859};
5960
6061
r17967r17968
7576/*----------- defined in video/bsktball.c -----------*/
7677
7778
78SCREEN_UPDATE_IND16( bsktball );
7979
80
trunk/src/mame/includes/armedf.h
r17967r17968
7979   DECLARE_MACHINE_RESET(armedf);
8080   DECLARE_VIDEO_START(terraf);
8181   DECLARE_VIDEO_START(armedf);
82   UINT32 screen_update_armedf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8283};
8384
8485class bigfghtr_state : public armedf_state
r17967r17968
105106
106107/*----------- defined in video/armedf.c -----------*/
107108
108SCREEN_UPDATE_IND16( armedf );
109109
110110
111111
112
trunk/src/mame/includes/cdi.h
r17967r17968
4545   DECLARE_MACHINE_RESET(quizrr40);
4646   DECLARE_MACHINE_RESET(quizrr41);
4747   DECLARE_MACHINE_RESET(quizrr42);
48   UINT32 screen_update_cdimono1(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
49   UINT32 screen_update_cdimono1_lcd(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
4850};
4951
5052/*----------- debug defines -----------*/
trunk/src/mame/includes/dkong.h
r17967r17968
253253   DECLARE_MACHINE_START(s2650);
254254   DECLARE_MACHINE_RESET(strtheat);
255255   DECLARE_MACHINE_RESET(drakton);
256   UINT32 screen_update_dkong(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
257   UINT32 screen_update_pestplce(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
258   UINT32 screen_update_spclforc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
256259};
257260
258261/*----------- defined in video/dkong.c -----------*/
r17967r17968
265268
266269
267270
268SCREEN_UPDATE_IND16( dkong );
269SCREEN_UPDATE_IND16( pestplce );
270SCREEN_UPDATE_IND16( spclforc );
271271
272
273
274
272275/*----------- defined in audio/dkong.c -----------*/
273276
274277
trunk/src/mame/includes/sprint4.h
r17967r17968
3838   virtual void machine_reset();
3939   virtual void video_start();
4040   virtual void palette_init();
41   UINT32 screen_update_sprint4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
42   void screen_eof_sprint4(screen_device &screen, bool state);
4143};
4244
4345
r17967r17968
4547
4648
4749
48SCREEN_VBLANK( sprint4 );
4950
50SCREEN_UPDATE_IND16( sprint4 );
5151
52
53
trunk/src/mame/includes/appoooh.h
r17967r17968
5050   DECLARE_VIDEO_START(appoooh);
5151   DECLARE_PALETTE_INIT(appoooh);
5252   DECLARE_PALETTE_INIT(robowres);
53   UINT32 screen_update_appoooh(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
54   UINT32 screen_update_robowres(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5355};
5456
5557#define CHR1_OFST   0x00  /* palette page of char set #1 */
r17967r17968
6163
6264
6365
64SCREEN_UPDATE_IND16( appoooh );
65SCREEN_UPDATE_IND16( robowres );
66
67
trunk/src/mame/includes/skyraid.h
r17967r17968
2525   DECLARE_WRITE8_MEMBER(skyraid_scroll_w);
2626   virtual void video_start();
2727   virtual void palette_init();
28   UINT32 screen_update_skyraid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2829};
2930
3031
r17967r17968
3839/*----------- defined in video/skyraid.c -----------*/
3940
4041
41SCREEN_UPDATE_IND16(skyraid);
42
trunk/src/mame/includes/travrusa.h
r17967r17968
2424   virtual void video_start();
2525   virtual void palette_init();
2626   DECLARE_PALETTE_INIT(shtrider);
27   UINT32 screen_update_travrusa(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2728};
2829
2930/*----------- defined in video/travrusa.c -----------*/
r17967r17968
3233
3334
3435
35SCREEN_UPDATE_IND16( travrusa );
36
trunk/src/mame/includes/aliens.h
r17967r17968
3838   virtual void machine_start();
3939   virtual void machine_reset();
4040   virtual void video_start();
41   UINT32 screen_update_aliens(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4142};
4243
4344/*----------- defined in video/aliens.c -----------*/
r17967r17968
4647extern void aliens_sprite_callback(running_machine &machine, int *code,int *color,int *priority_mask,int *shadow);
4748
4849
49SCREEN_UPDATE_IND16( aliens );
50
trunk/src/mame/includes/metlclsh.h
r17967r17968
4949   virtual void machine_start();
5050   virtual void machine_reset();
5151   virtual void video_start();
52   UINT32 screen_update_metlclsh(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5253};
5354
5455
r17967r17968
5657
5758
5859
59SCREEN_UPDATE_IND16( metlclsh );
60
trunk/src/mame/includes/beezer.h
r17967r17968
1717   DECLARE_READ8_MEMBER(beezer_line_r);
1818   DECLARE_DRIVER_INIT(beezer);
1919   virtual void machine_start();
20   UINT32 screen_update_beezer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2021};
2122
2223
r17967r17968
6263/*----------- defined in video/beezer.c -----------*/
6364
6465TIMER_DEVICE_CALLBACK( beezer_interrupt );
65SCREEN_UPDATE_IND16( beezer );
66
trunk/src/mame/includes/88games.h
r17967r17968
4646   DECLARE_WRITE8_MEMBER(k052109_051960_w);
4747   virtual void machine_start();
4848   virtual void machine_reset();
49   UINT32 screen_update_88games(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4950};
5051
5152
r17967r17968
5556void _88games_tile_callback(running_machine &machine, int layer, int bank, int *code, int *color, int *flags, int *priority);
5657void _88games_zoom_callback(running_machine &machine, int *code, int *color, int *flags);
5758
58SCREEN_UPDATE_IND16( 88games );
59
trunk/src/mame/includes/kaneko16.h
r17967r17968
6363   DECLARE_MACHINE_RESET(gtmr);
6464   DECLARE_VIDEO_START(kaneko16);
6565   DECLARE_MACHINE_RESET(mgcrystl);
66   UINT32 screen_update_kaneko16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
67   UINT32 screen_update_common(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6668};
6769
6870class kaneko16_gtmr_state : public kaneko16_state
r17967r17968
112114   DECLARE_DRIVER_INIT(berlwall);
113115   DECLARE_PALETTE_INIT(berlwall);
114116   DECLARE_VIDEO_START(berlwall);
117   UINT32 screen_update_berlwall(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);   
115118};
116119
117120class kaneko16_shogwarr_state : public kaneko16_state
r17967r17968
143146
144147
145148
146SCREEN_UPDATE_IND16( kaneko16 );
147SCREEN_UPDATE_IND16( berlwall );
148149
149150
151
152
150153#endif
trunk/src/mame/includes/goldstar.h
r17967r17968
141141   DECLARE_VIDEO_START(magical);
142142   DECLARE_PALETTE_INIT(magodds);
143143   DECLARE_VIDEO_START(unkch);
144   UINT32 screen_update_goldstar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
145   UINT32 screen_update_cmast91(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
146   UINT32 screen_update_bingowng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
147   UINT32 screen_update_magical(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
148   UINT32 screen_update_amcoe1a(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
149   UINT32 screen_update_unkch(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
144150};
145151
146152
r17967r17968
154160
155161
156162
157SCREEN_UPDATE_IND16( goldstar );
158SCREEN_UPDATE_IND16( bingowng );
159SCREEN_UPDATE_IND16( cmast91 );
160SCREEN_UPDATE_IND16( amcoe1a );
161SCREEN_UPDATE_IND16( unkch );
162SCREEN_UPDATE_IND16( magical );
163
164
165
166
167
168
trunk/src/mame/includes/dbz.h
r17967r17968
5050   virtual void machine_start();
5151   virtual void machine_reset();
5252   virtual void video_start();
53   UINT32 screen_update_dbz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5354};
5455
5556
r17967r17968
6061
6162
6263
63SCREEN_UPDATE_IND16(dbz);
64
trunk/src/mame/includes/wc90.h
r17967r17968
5252   TILE_GET_INFO_MEMBER(track_get_fg_tile_info);
5353   virtual void video_start();
5454   DECLARE_VIDEO_START(wc90t);
55   UINT32 screen_update_wc90(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5556};
5657
5758
r17967r17968
5960
6061
6162
62SCREEN_UPDATE_IND16( wc90 );
63
trunk/src/mame/includes/gauntlet.h
r17967r17968
3030   DECLARE_MACHINE_START(gauntlet);
3131   DECLARE_MACHINE_RESET(gauntlet);
3232   DECLARE_VIDEO_START(gauntlet);
33   UINT32 screen_update_gauntlet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3334};
3435
3536
r17967r17968
3940DECLARE_WRITE16_HANDLER( gauntlet_yscroll_w );
4041
4142
42SCREEN_UPDATE_IND16( gauntlet );
43
trunk/src/mame/includes/ms32.h
r17967r17968
8787   virtual void machine_reset();
8888   virtual void video_start();
8989   DECLARE_VIDEO_START(f1superb);
90   UINT32 screen_update_ms32(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
9091};
9192
9293
r17967r17968
9899
99100
100101
101SCREEN_UPDATE_RGB32( ms32 );
102
trunk/src/mame/includes/darkseal.h
r17967r17968
3030   DECLARE_WRITE16_MEMBER(darkseal_palette_24bit_b_w);
3131   DECLARE_DRIVER_INIT(darkseal);
3232   virtual void video_start();
33   UINT32 screen_update_darkseal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3334};
3435
3536
3637/*----------- defined in video/darkseal.c -----------*/
3738
3839
39SCREEN_UPDATE_IND16( darkseal );
4040
41
trunk/src/mame/includes/20pacgal.h
r17967r17968
5454   DECLARE_DRIVER_INIT(20pacgal);
5555   virtual void machine_start();
5656   virtual void machine_reset();
57   UINT32 screen_update_20pacgal(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
5758};
5859
5960
trunk/src/mame/includes/spbactn.h
r17967r17968
1515   bitmap_ind16 m_tile_bitmap_fg;
1616   DECLARE_WRITE16_MEMBER(soundcommand_w);
1717   virtual void video_start();
18   UINT32 screen_update_spbactn(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
1819};
1920
2021
2122/*----------- defined in video/spbactn.c -----------*/
2223
2324
24SCREEN_UPDATE_RGB32( spbactn );
25
trunk/src/mame/includes/seicross.h
r17967r17968
2929   virtual void machine_reset();
3030   virtual void video_start();
3131   virtual void palette_init();
32   UINT32 screen_update_seicross(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3233};
3334
3435
r17967r17968
3738
3839
3940
40SCREEN_UPDATE_IND16( seicross );
41
trunk/src/mame/includes/system16.h
r17967r17968
189189   DECLARE_VIDEO_START(s16a_bootleg_passsht);
190190   DECLARE_VIDEO_START(s16a_bootleg_wb3bl);
191191   DECLARE_VIDEO_START(s16a_bootleg);
192   UINT32 screen_update_system16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
193   UINT32 screen_update_system18old(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
194   UINT32 screen_update_s16a_bootleg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
195   UINT32 screen_update_s16a_bootleg_passht4b(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
192196};
193197
194198/*----------- defined in video/system16.c -----------*/
trunk/src/mame/includes/deniam.h
r17967r17968
6060   virtual void machine_start();
6161   virtual void machine_reset();
6262   virtual void video_start();
63   UINT32 screen_update_deniam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6364};
6465
6566
r17967r17968
6768
6869
6970
70SCREEN_UPDATE_IND16( deniam );
7171
72
trunk/src/mame/includes/redalert.h
r17967r17968
3737   DECLARE_WRITE8_MEMBER(demoneye_audio_command_w);
3838   DECLARE_VIDEO_START(redalert);
3939   DECLARE_VIDEO_START(ww3);
40   UINT32 screen_update_redalert(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
41   UINT32 screen_update_demoneye(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
42   UINT32 screen_update_panther(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
4043};
4144
4245
trunk/src/mame/includes/mcr3.h
r17967r17968
6363   DECLARE_VIDEO_START(mcrmono);
6464   DECLARE_VIDEO_START(spyhunt);
6565   DECLARE_PALETTE_INIT(spyhunt);
66   UINT32 screen_update_mcr3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
67   UINT32 screen_update_spyhunt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6668};
6769
6870
r17967r17968
7476
7577
7678
77SCREEN_UPDATE_IND16( mcr3 );
78SCREEN_UPDATE_IND16( spyhunt );
79
80
trunk/src/mame/includes/stadhero.h
r17967r17968
1515   DECLARE_WRITE16_MEMBER(stadhero_pf1_data_w);
1616   TILE_GET_INFO_MEMBER(get_pf1_tile_info);
1717   virtual void video_start();
18   UINT32 screen_update_stadhero(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
1819};
1920
2021
2122/*----------- defined in video/stadhero.c -----------*/
2223
2324
24SCREEN_UPDATE_IND16( stadhero );
2525
26
trunk/src/mame/includes/prehisle.h
r17967r17968
2727   TILE_GET_INFO_MEMBER(get_bg_tile_info);
2828   TILE_GET_INFO_MEMBER(get_fg_tile_info);
2929   virtual void video_start();
30   UINT32 screen_update_prehisle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3031};
3132
3233
r17967r17968
3435
3536
3637
37SCREEN_UPDATE_IND16( prehisle );
38
trunk/src/mame/includes/simpsons.h
r17967r17968
3939   DECLARE_WRITE8_MEMBER(simpsons_k053247_w);
4040   virtual void machine_start();
4141   virtual void machine_reset();
42   UINT32 screen_update_simpsons(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4243};
4344
4445/*----------- defined in machine/simpsons.c -----------*/
r17967r17968
5051/*----------- defined in video/simpsons.c -----------*/
5152
5253void simpsons_video_banking( running_machine &machine, int select );
53SCREEN_UPDATE_IND16( simpsons );
5454
55
5556extern void simpsons_tile_callback(running_machine &machine, int layer,int bank,int *code,int *color,int *flags,int *priority);
5657extern void simpsons_sprite_callback(running_machine &machine, int *code,int *color,int *priority_mask);
trunk/src/mame/includes/wwfsstar.h
r17967r17968
2626   TILEMAP_MAPPER_MEMBER(bg0_scan);
2727   TILE_GET_INFO_MEMBER(get_bg0_tile_info);
2828   virtual void video_start();
29   UINT32 screen_update_wwfsstar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2930};
3031
3132
3233/*----------- defined in video/wwfsstar.c -----------*/
3334
3435
35SCREEN_UPDATE_IND16( wwfsstar );
36
trunk/src/mame/includes/taito_b.h
r17967r17968
7070   DECLARE_VIDEO_RESET(hitice);
7171   DECLARE_VIDEO_START(realpunc);
7272   DECLARE_VIDEO_START(taitob_core);
73   UINT32 screen_update_taitob(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
74   UINT32 screen_update_realpunc(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
75   void screen_eof_taitob(screen_device &screen, bool state);
7376};
7477
7578
r17967r17968
8689
8790
8891
89SCREEN_UPDATE_RGB32( realpunc );
90SCREEN_UPDATE_IND16( taitob );
9192
92SCREEN_VBLANK( taitob );
93
94
95
trunk/src/mame/includes/actfancr.h
r17967r17968
3333   DECLARE_MACHINE_RESET(actfancr);
3434   DECLARE_MACHINE_START(triothep);
3535   DECLARE_MACHINE_RESET(triothep);
36   UINT32 screen_update_actfancr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3637};
3738
3839
r17967r17968
4647DECLARE_WRITE8_HANDLER( actfancr_pf2_control_w );
4748
4849
49SCREEN_UPDATE_IND16( actfancr );
5050
51
trunk/src/mame/includes/polepos.h
r17967r17968
7979   DECLARE_MACHINE_RESET(polepos);
8080   DECLARE_VIDEO_START(polepos);
8181   DECLARE_PALETTE_INIT(polepos);
82   UINT32 screen_update_polepos(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8283};
8384
8485
r17967r17968
119120
120121
121122
122SCREEN_UPDATE_IND16( polepos );
123123
124124
125
trunk/src/mame/includes/model1.h
r17967r17968
134134   DECLARE_MACHINE_RESET(model1);
135135   DECLARE_VIDEO_START(model1);
136136   DECLARE_MACHINE_RESET(model1_vr);
137   UINT32 screen_update_model1(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
138   void screen_eof_model1(screen_device &screen, bool state);
137139};
138140
139141
r17967r17968
154156/*----------- defined in video/model1.c -----------*/
155157
156158
157SCREEN_UPDATE_RGB32(model1);
158SCREEN_VBLANK(model1);
159159
160
161
trunk/src/mame/includes/jackal.h
r17967r17968
4242   virtual void machine_reset();
4343   virtual void video_start();
4444   virtual void palette_init();
45   UINT32 screen_update_jackal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4546};
4647
4748
r17967r17968
5152
5253
5354
54SCREEN_UPDATE_IND16( jackal );
55
trunk/src/mame/includes/tank8.h
r17967r17968
5959   virtual void machine_reset();
6060   virtual void video_start();
6161   virtual void palette_init();
62   UINT32 screen_update_tank8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
63   void screen_eof_tank8(screen_device &screen, bool state);
6264};
6365
6466
r17967r17968
7577/*----------- defined in video/tank8.c -----------*/
7678
7779
78SCREEN_VBLANK( tank8 );
7980
80SCREEN_UPDATE_IND16( tank8 );
8181
8282
8383
84
85
trunk/src/mame/includes/mw8080bw.h
r17967r17968
139139   DECLARE_MACHINE_START(spcenctr);
140140   DECLARE_MACHINE_START(phantom2);
141141   DECLARE_MACHINE_START(invaders);
142   UINT32 screen_update_mw8080bw(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
143   UINT32 screen_update_spcenctr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
144   UINT32 screen_update_phantom2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
145   UINT32 screen_update_invaders(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
146   void screen_eof_phantom2(screen_device &screen, bool state);
142147};
143148
144149
r17967r17968
271276
272277/*----------- defined in video/mw8080bw.c -----------*/
273278
274SCREEN_UPDATE_RGB32( mw8080bw );
275279
276SCREEN_UPDATE_RGB32( spcenctr );
277280
278SCREEN_UPDATE_RGB32( phantom2 );
279SCREEN_VBLANK( phantom2 );
280281
281SCREEN_UPDATE_RGB32( invaders );
282
283
284
285
286
trunk/src/mame/includes/namcos86.h
r17967r17968
5252   virtual void machine_reset();
5353   virtual void video_start();
5454   virtual void palette_init();
55   UINT32 screen_update_namcos86(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
56   void screen_eof_namcos86(screen_device &screen, bool state);
5557};
5658
5759
r17967r17968
5961
6062
6163
62SCREEN_UPDATE_IND16( namcos86 );
63SCREEN_VBLANK( namcos86 );
6464
65
66
trunk/src/mame/includes/vaportra.h
r17967r17968
3737   DECLARE_DRIVER_INIT(vaportra);
3838   virtual void machine_start();
3939   virtual void machine_reset();
40   UINT32 screen_update_vaportra(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4041};
4142
4243
r17967r17968
4445/*----------- defined in video/vaportra.c -----------*/
4546
4647
47SCREEN_UPDATE_IND16( vaportra );
48
trunk/src/mame/includes/suna8.h
r17967r17968
103103   DECLARE_MACHINE_RESET(brickzn);
104104   DECLARE_VIDEO_START(suna8_textdim0);
105105   DECLARE_MACHINE_RESET(hardhea2);
106   UINT32 screen_update_suna8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
106107};
107108
108109
r17967r17968
121122
122123
123124
124SCREEN_UPDATE_IND16( suna8 );
125
trunk/src/mame/includes/qdrmfgp.h
r17967r17968
3838   DECLARE_VIDEO_START(qdrmfgp);
3939   DECLARE_MACHINE_START(qdrmfgp2);
4040   DECLARE_VIDEO_START(qdrmfgp2);
41   UINT32 screen_update_qdrmfgp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4142};
4243
4344/*----------- defined in video/qdrmfgp.c -----------*/
4445
4546
4647
47SCREEN_UPDATE_IND16( qdrmfgp );
4848
49
4950void qdrmfgp_tile_callback(running_machine &machine, int layer, int *code, int *color, int *flags);
5051void qdrmfgp2_tile_callback(running_machine &machine, int layer, int *code, int *color, int *flags);
trunk/src/mame/includes/btime.h
r17967r17968
107107   DECLARE_MACHINE_START(mmonkey);
108108   DECLARE_MACHINE_RESET(mmonkey);
109109   DECLARE_VIDEO_START(bnj);
110   UINT32 screen_update_btime(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
111   UINT32 screen_update_cookrace(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
112   UINT32 screen_update_lnc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
113   UINT32 screen_update_eggs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
114   UINT32 screen_update_bnj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
115   UINT32 screen_update_zoar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
116   UINT32 screen_update_disco(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
110117};
111118
112119
r17967r17968
122129
123130
124131
125SCREEN_UPDATE_IND16( btime );
126SCREEN_UPDATE_IND16( cookrace );
127SCREEN_UPDATE_IND16( bnj );
128SCREEN_UPDATE_IND16( lnc );
129SCREEN_UPDATE_IND16( zoar );
130SCREEN_UPDATE_IND16( disco );
131SCREEN_UPDATE_IND16( eggs );
132132
133
134
135
136
137
138
139
trunk/src/mame/includes/cps1.h
r17967r17968
209209   DECLARE_MACHINE_START(qsound);
210210   DECLARE_MACHINE_RESET(cps);
211211   DECLARE_VIDEO_START(cps);
212   UINT32 screen_update_cps1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
213   UINT32 screen_update_fcrash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
214   UINT32 screen_update_kodb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
215   void screen_eof_cps1(screen_device &screen, bool state);
212216};
213217
214218/*----------- defined in drivers/cps1.c -----------*/
r17967r17968
227231
228232
229233
230SCREEN_UPDATE_IND16( cps1 );
231SCREEN_VBLANK( cps1 );
232234
235
236
233237void cps1_get_video_base(running_machine &machine);
234238void cps2_set_sprite_priorities(running_machine &machine);
235239void cps2_objram_latch(running_machine &machine);
trunk/src/mame/includes/starcrus.h
r17967r17968
5050   DECLARE_WRITE8_MEMBER(starcrus_proj_parm_2_w);
5151   DECLARE_READ8_MEMBER(starcrus_coll_det_r);
5252   virtual void video_start();
53   UINT32 screen_update_starcrus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5354};
5455
5556
5657/*----------- defined in video/starcrus.c -----------*/
5758
5859
59SCREEN_UPDATE_IND16( starcrus );
60
trunk/src/mame/includes/nova2001.h
r17967r17968
4040   DECLARE_VIDEO_START(ninjakun);
4141   DECLARE_VIDEO_START(pkunwar);
4242   DECLARE_VIDEO_START(raiders5);
43   UINT32 screen_update_nova2001(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
44   UINT32 screen_update_ninjakun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
45   UINT32 screen_update_pkunwar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
46   UINT32 screen_update_raiders5(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4347};
4448
4549
trunk/src/mame/includes/yunsun16.h
r17967r17968
4444   virtual void machine_start();
4545   virtual void machine_reset();
4646   virtual void video_start();
47   UINT32 screen_update_yunsun16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4748};
4849
4950
r17967r17968
5152
5253
5354
54SCREEN_UPDATE_IND16( yunsun16 );
55
trunk/src/mame/includes/wiz.h
r17967r17968
4848   virtual void machine_reset();
4949   virtual void video_start();
5050   virtual void palette_init();
51   UINT32 screen_update_wiz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
52   UINT32 screen_update_stinger(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
53   UINT32 screen_update_kungfut(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5154};
5255
5356
r17967r17968
5659
5760
5861
59SCREEN_UPDATE_IND16( wiz );
60SCREEN_UPDATE_IND16( stinger );
61SCREEN_UPDATE_IND16( kungfut );
62
63
64
trunk/src/mame/includes/stactics.h
r17967r17968
5959   virtual void machine_start();
6060   DECLARE_VIDEO_START(stactics);
6161   DECLARE_PALETTE_INIT(stactics);
62   UINT32 screen_update_stactics(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6263};
6364
6465
trunk/src/mame/includes/mermaid.h
r17967r17968
7777   virtual void video_start();
7878   virtual void palette_init();
7979   DECLARE_PALETTE_INIT(rougien);
80   UINT32 screen_update_mermaid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
81   void screen_eof_mermaid(screen_device &screen, bool state);
8082};
8183
8284
r17967r17968
8789
8890
8991
90SCREEN_UPDATE_IND16( mermaid );
91SCREEN_VBLANK( mermaid );
92
93
trunk/src/mame/includes/avalnche.h
r17967r17968
2525   DECLARE_WRITE8_MEMBER(avalance_start_lamp_w);
2626   virtual void machine_start();
2727   virtual void machine_reset();
28   UINT32 screen_update_avalnche(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
2829};
2930
3031/*----------- defined in audio/avalnche.c -----------*/
trunk/src/mame/includes/gaelco3d.h
r17967r17968
115115   virtual void video_start();
116116   DECLARE_MACHINE_RESET(gaelco3d2);
117117   DECLARE_MACHINE_RESET(common);
118   UINT32 screen_update_gaelco3d(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
118119};
119120
120121
r17967r17968
124125
125126
126127
127SCREEN_UPDATE_IND16( gaelco3d );
128
trunk/src/mame/includes/dcon.h
r17967r17968
3737   TILE_GET_INFO_MEMBER(get_mid_tile_info);
3838   TILE_GET_INFO_MEMBER(get_text_tile_info);
3939   virtual void video_start();
40   UINT32 screen_update_dcon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
41   UINT32 screen_update_sdgndmps(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4042};
4143
4244
r17967r17968
4446
4547
4648
47SCREEN_UPDATE_IND16( dcon );
48SCREEN_UPDATE_IND16( sdgndmps );
49
50
trunk/src/mame/includes/kickgoal.h
r17967r17968
7474   virtual void machine_reset();
7575   DECLARE_VIDEO_START(kickgoal);
7676   DECLARE_VIDEO_START(actionhw);
77   UINT32 screen_update_kickgoal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7778};
7879
7980
r17967r17968
8182
8283
8384
84SCREEN_UPDATE_IND16( kickgoal );
8585
86
trunk/src/mame/includes/galaxian.h
r17967r17968
223223   virtual void palette_init();
224224   DECLARE_PALETTE_INIT(moonwar);
225225   void tenspot_set_game_bank(running_machine& machine, int bank, int from_game);
226   UINT32 screen_update_galaxian(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
226227};
227228
228229
r17967r17968
232233
233234
234235
235SCREEN_UPDATE_RGB32( galaxian );
236236
237237
238238
239239
240240
241
241242TIMER_DEVICE_CALLBACK( galaxian_stars_blink_timer );
242243
243244/* special purpose background rendering */
trunk/src/mame/includes/itech8.h
r17967r17968
8989   virtual void video_start();
9090   DECLARE_VIDEO_START(slikshot);
9191   DECLARE_MACHINE_START(sstrike);
92   UINT32 screen_update_itech8_2layer(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
93   UINT32 screen_update_itech8_grmatch(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
94   UINT32 screen_update_slikshot(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
95   UINT32 screen_update_itech8_2page(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
96   UINT32 screen_update_itech8_2page_large(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
9297};
9398
9499
r17967r17968
107112DECLARE_WRITE8_HANDLER( slikshot_z80_control_w );
108113
109114
110SCREEN_UPDATE_RGB32( slikshot );
111115
112116
117
113118/*----------- defined in video/itech8.c -----------*/
114119
115120
r17967r17968
120125
121126TIMER_DEVICE_CALLBACK( grmatch_palette_update );
122127
123SCREEN_UPDATE_RGB32( itech8_2layer );
124SCREEN_UPDATE_RGB32( itech8_grmatch );
125SCREEN_UPDATE_RGB32( itech8_2page );
126SCREEN_UPDATE_RGB32( itech8_2page_large );
128
129
130
131
trunk/src/mame/includes/othldrby.h
r17967r17968
4141   virtual void machine_start();
4242   virtual void machine_reset();
4343   virtual void video_start();
44   UINT32 screen_update_othldrby(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
45   void screen_eof_othldrby(screen_device &screen, bool state);
4446};
4547
4648
r17967r17968
4850
4951
5052
51SCREEN_VBLANK( othldrby );
52SCREEN_UPDATE_IND16( othldrby );
53
54
trunk/src/mame/includes/bbusters.h
r17967r17968
5454   TILE_GET_INFO_MEMBER(get_pf2_tile_info);
5555   DECLARE_VIDEO_START(bbuster);
5656   DECLARE_VIDEO_START(mechatt);
57   UINT32 screen_update_bbuster(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
58   UINT32 screen_update_mechatt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
59   void screen_eof_bbuster(screen_device &screen, bool state);
5760};
5861
5962
r17967r17968
6164
6265
6366
64SCREEN_UPDATE_IND16( bbuster );
65SCREEN_UPDATE_IND16( mechatt );
6667
68
69
trunk/src/mame/includes/gstriker.h
r17967r17968
104104   DECLARE_VIDEO_START(gstriker);
105105   DECLARE_VIDEO_START(vgoalsoc);
106106   DECLARE_VIDEO_START(twrldc94);
107   UINT32 screen_update_gstriker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
107108};
108109
109110
110111/*----------- defined in video/gstriker.c -----------*/
111112
112113
113SCREEN_UPDATE_IND16( gstriker );
114114
115115
116116
117
117118#endif
trunk/src/mame/includes/snk.h
r17967r17968
164164   DECLARE_VIDEO_START(psychos);
165165   DECLARE_VIDEO_START(snk_3bpp_shadow);
166166   DECLARE_VIDEO_START(snk_4bpp_shadow);
167   UINT32 screen_update_marvins(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
168   UINT32 screen_update_tnk3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
169   UINT32 screen_update_ikari(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
170   UINT32 screen_update_gwar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
171   UINT32 screen_update_tdfever(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
167172};
168173
169174
trunk/src/mame/includes/hyprduel.h
r17967r17968
8989   DECLARE_MACHINE_START(magerror);
9090   DECLARE_VIDEO_START(magerror_14220);
9191   DECLARE_VIDEO_START(common_14220);
92   UINT32 screen_update_hyprduel(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
9293};
9394
9495
r17967r17968
99100
100101
101102
102SCREEN_UPDATE_IND16( hyprduel );
103
trunk/src/mame/includes/namconb1.h
r17967r17968
7575   DECLARE_MACHINE_START(namconb);
7676   DECLARE_VIDEO_START(namconb1);
7777   DECLARE_VIDEO_START(namconb2);
78   UINT32 screen_update_namconb1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
79   UINT32 screen_update_namconb2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7880};
7981
8082
8183/*----------- defined in video/namconb1.c -----------*/
8284
83SCREEN_UPDATE_IND16( namconb1 );
8485
8586
86SCREEN_UPDATE_IND16( namconb2 );
8787
88
89
trunk/src/mame/includes/arcadecl.h
r17967r17968
2121   DECLARE_MACHINE_START(arcadecl);
2222   DECLARE_MACHINE_RESET(arcadecl);
2323   DECLARE_VIDEO_START(arcadecl);
24   UINT32 screen_update_arcadecl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2425};
2526
2627/*----------- defined in video/arcadecl.c -----------*/
2728
2829
29SCREEN_UPDATE_IND16( arcadecl );
30
trunk/src/mame/includes/flstory.h
r17967r17968
114114   DECLARE_MACHINE_RESET(rumba);
115115   DECLARE_VIDEO_START(rumba);
116116   DECLARE_MACHINE_RESET(ta7630);
117   UINT32 screen_update_flstory(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
118   UINT32 screen_update_victnine(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
119   UINT32 screen_update_rumba(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
117120};
118121
119122
r17967r17968
124127/*----------- defined in video/flstory.c -----------*/
125128
126129
127SCREEN_UPDATE_IND16( flstory );
128130
129SCREEN_UPDATE_IND16( victnine );
130131
131SCREEN_UPDATE_IND16( rumba );
132132
133
134
135
trunk/src/mame/includes/suprslam.h
r17967r17968
4949   virtual void machine_start();
5050   virtual void machine_reset();
5151   virtual void video_start();
52   UINT32 screen_update_suprslam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5253};
5354
5455
r17967r17968
5657
5758
5859
59SCREEN_UPDATE_IND16( suprslam );
60
trunk/src/mame/includes/calomega.h
r17967r17968
4343   TILE_GET_INFO_MEMBER(get_bg_tile_info);
4444   virtual void video_start();
4545   virtual void palette_init();
46   UINT32 screen_update_calomega(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4647};
4748
4849
r17967r17968
5051
5152
5253
53SCREEN_UPDATE_IND16( calomega );
54
trunk/src/mame/includes/strnskil.h
r17967r17968
3030   TILE_GET_INFO_MEMBER(get_bg_tile_info);
3131   virtual void video_start();
3232   virtual void palette_init();
33   UINT32 screen_update_strnskil(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3334};
3435
3536
r17967r17968
3839
3940
4041
41SCREEN_UPDATE_IND16( strnskil );
42
trunk/src/mame/includes/atetris.h
r17967r17968
3131   virtual void machine_start();
3232   virtual void machine_reset();
3333   virtual void video_start();
34   UINT32 screen_update_atetris(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3435};
3536
3637/*----------- defined in video/atetris.c -----------*/
3738
3839
39SCREEN_UPDATE_IND16( atetris );
4040
41
trunk/src/mame/includes/cosmic.h
r17967r17968
6969   DECLARE_PALETTE_INIT(cosmica);
7070   DECLARE_PALETTE_INIT(magspot);
7171   DECLARE_PALETTE_INIT(nomnlnd);
72   UINT32 screen_update_cosmicg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
73   UINT32 screen_update_panic(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
74   UINT32 screen_update_cosmica(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
75   UINT32 screen_update_magspot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
76   UINT32 screen_update_devzone(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
77   UINT32 screen_update_nomnlnd(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7278};
7379
7480
r17967r17968
8187
8288
8389
84SCREEN_UPDATE_IND16( panic );
85SCREEN_UPDATE_IND16( magspot );
86SCREEN_UPDATE_IND16( devzone );
87SCREEN_UPDATE_IND16( cosmica );
88SCREEN_UPDATE_IND16( cosmicg );
89SCREEN_UPDATE_IND16( nomnlnd );
90
91
92
93
94
95
trunk/src/mame/includes/shaolins.h
r17967r17968
2525   TILE_GET_INFO_MEMBER(get_bg_tile_info);
2626   virtual void video_start();
2727   virtual void palette_init();
28   UINT32 screen_update_shaolins(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2829};
2930
3031
r17967r17968
3334
3435
3536
36SCREEN_UPDATE_IND16( shaolins );
37
trunk/src/mame/includes/model2.h
r17967r17968
162162   DECLARE_MACHINE_RESET(model2c);
163163   DECLARE_MACHINE_RESET(model2_common);
164164   DECLARE_MACHINE_RESET(model2_scsp);
165   UINT32 screen_update_model2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
165166};
166167
167168
168169/*----------- defined in video/model2.c -----------*/
169170
170171
171SCREEN_UPDATE_RGB32(model2);
172172
173
173174void model2_3d_set_zclip( running_machine &machine, UINT8 clip );
trunk/src/mame/includes/sshangha.h
r17967r17968
4949   DECLARE_DRIVER_INIT(sshangha);
5050   virtual void machine_reset();
5151   virtual void video_start();
52   UINT32 screen_update_sshangha(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
5253};
5354
5455
5556/*----------- defined in video/sshangha.c -----------*/
5657
5758
58SCREEN_UPDATE_RGB32( sshangha );
5959
60
trunk/src/mame/includes/wiping.h
r17967r17968
2121   DECLARE_WRITE8_MEMBER(sound_irq_mask_w);
2222   DECLARE_WRITE8_MEMBER(wiping_flipscreen_w);
2323   virtual void palette_init();
24   UINT32 screen_update_wiping(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2425};
2526
2627
2728/*----------- defined in video/wiping.c -----------*/
2829
2930
30SCREEN_UPDATE_IND16( wiping );
3131
32
trunk/src/mame/includes/kyugo.h
r17967r17968
5858   virtual void machine_start();
5959   virtual void machine_reset();
6060   virtual void video_start();
61   UINT32 screen_update_kyugo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6162};
6263
6364
r17967r17968
6667
6768
6869
69SCREEN_UPDATE_IND16( kyugo );
70
trunk/src/mame/includes/leland.h
r17967r17968
140140   DECLARE_MACHINE_RESET(leland);
141141   DECLARE_VIDEO_START(leland);
142142   DECLARE_VIDEO_START(ataxx);
143   UINT32 screen_update_leland(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
144   UINT32 screen_update_ataxx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
143145};
144146
145147
trunk/src/mame/includes/lazercmd.h
r17967r17968
5656   virtual void machine_start();
5757   virtual void machine_reset();
5858   virtual void palette_init();
59   UINT32 screen_update_lazercmd(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5960};
6061
6162
6263/*----------- defined in video/lazercmd.c -----------*/
6364
64SCREEN_UPDATE_IND16( lazercmd );
65
trunk/src/mame/includes/popeye.h
r17967r17968
4040   virtual void palette_init();
4141   DECLARE_VIDEO_START(popeye);
4242   DECLARE_PALETTE_INIT(popeyebl);
43   UINT32 screen_update_popeye(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4344};
4445
4546
r17967r17968
5051
5152
5253
53SCREEN_UPDATE_IND16( popeye );
54
trunk/src/mame/includes/4enraya.h
r17967r17968
3434   virtual void machine_reset();
3535   virtual void video_start();
3636   virtual void palette_init();
37   UINT32 screen_update_4enraya(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3738};
3839
3940
r17967r17968
4142
4243
4344
44SCREEN_UPDATE_IND16( 4enraya );
45
trunk/src/mame/includes/blockade.h
r17967r17968
2626   virtual void machine_reset();
2727   virtual void video_start();
2828   virtual void palette_init();
29   UINT32 screen_update_blockade(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2930};
3031
3132
r17967r17968
3334
3435
3536
36SCREEN_UPDATE_IND16( blockade );
3737
38
3839/*----------- defined in audio/blockade.c -----------*/
3940
4041extern const samples_interface blockade_samples_interface;
trunk/src/mame/includes/compgolf.h
r17967r17968
4141   virtual void machine_reset();
4242   virtual void video_start();
4343   virtual void palette_init();
44   UINT32 screen_update_compgolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4445};
4546
4647
r17967r17968
4849
4950
5051
51SCREEN_UPDATE_IND16( compgolf );
52
trunk/src/mame/includes/lordgun.h
r17967r17968
6363   TILE_GET_INFO_MEMBER(get_tile_info_2);
6464   TILE_GET_INFO_MEMBER(get_tile_info_3);
6565   virtual void video_start();
66   UINT32 screen_update_lordgun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6667};
6768
6869
r17967r17968
7374void lordgun_update_gun(running_machine &machine, int i);
7475
7576
76SCREEN_UPDATE_IND16( lordgun );
77
trunk/src/mame/includes/lemmings.h
r17967r17968
4343   TILE_GET_INFO_MEMBER(get_tile_info);
4444   virtual void machine_start();
4545   virtual void video_start();
46   UINT32 screen_update_lemmings(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
47   void screen_eof_lemmings(screen_device &screen, bool state);
4648};
4749
4850
r17967r17968
5052
5153
5254
53SCREEN_VBLANK( lemmings );
54SCREEN_UPDATE_RGB32( lemmings );
5555
56
57
trunk/src/mame/includes/pushman.h
r17967r17968
4848   virtual void video_start();
4949   DECLARE_MACHINE_RESET(pushman);
5050   DECLARE_MACHINE_RESET(bballs);
51   UINT32 screen_update_pushman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5152};
5253
5354
r17967r17968
5657
5758
5859
59SCREEN_UPDATE_IND16( pushman );
60
trunk/src/mame/includes/espial.h
r17967r17968
5151   virtual void video_start();
5252   virtual void palette_init();
5353   DECLARE_VIDEO_START(netwars);
54   UINT32 screen_update_espial(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5455};
5556
5657/*----------- defined in video/espial.c -----------*/
r17967r17968
5859
5960
6061
61SCREEN_UPDATE_IND16( espial );
62
trunk/src/mame/includes/tiamc1.h
r17967r17968
3333   virtual void machine_reset();
3434   virtual void video_start();
3535   virtual void palette_init();
36   UINT32 screen_update_tiamc1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3637};
3738
3839
r17967r17968
7172
7273
7374
74SCREEN_UPDATE_IND16( tiamc1 );
7575
76
trunk/src/mame/includes/hyperspt.h
r17967r17968
4242   virtual void video_start();
4343   virtual void palette_init();
4444   DECLARE_VIDEO_START(roadf);
45   UINT32 screen_update_hyperspt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4546};
4647
4748/*----------- defined in video/hyperspt.c -----------*/
r17967r17968
4950
5051
5152
52SCREEN_UPDATE_IND16( hyperspt );
5353
5454
55
trunk/src/mame/includes/toaplan1.h
r17967r17968
138138   DECLARE_MACHINE_RESET(zerowing);
139139   DECLARE_MACHINE_RESET(demonwld);
140140   DECLARE_MACHINE_RESET(vimana);
141   UINT32 screen_update_rallybik(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
142   UINT32 screen_update_toaplan1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
143   void screen_eof_rallybik(screen_device &screen, bool state);
144   void screen_eof_toaplan1(screen_device &screen, bool state);
145   void screen_eof_samesame(screen_device &screen, bool state);
141146};
142147
143148
r17967r17968
160165
161166
162167
163SCREEN_VBLANK( rallybik );
164SCREEN_VBLANK( toaplan1 );
165SCREEN_VBLANK( samesame );
166168
167169
168SCREEN_UPDATE_IND16( rallybik );
169SCREEN_UPDATE_IND16( toaplan1 );
170
171
172
173
174
trunk/src/mame/includes/segag80r.h
r17967r17968
9898   TILE_GET_INFO_MEMBER(bg_get_tile_info);
9999   virtual void machine_start();
100100   virtual void video_start();
101   UINT32 screen_update_segag80r(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
101102};
102103
103104
r17967r17968
125126
126127
127128
128SCREEN_UPDATE_IND16( segag80r );
129129
130130
131131
r17967r17968
134134
135135
136136
137
137138INTERRUPT_GEN( sindbadm_vblank_start );
138139
trunk/src/mame/includes/hnayayoi.h
r17967r17968
3636   virtual void machine_reset();
3737   virtual void video_start();
3838   DECLARE_VIDEO_START(untoucha);
39   UINT32 screen_update_hnayayoi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3940};
4041
4142
r17967r17968
4344
4445
4546
46SCREEN_UPDATE_IND16( hnayayoi );
4747
48
trunk/src/mame/includes/tmnt.h
r17967r17968
132132   DECLARE_VIDEO_START(glfgreat);
133133   DECLARE_MACHINE_START(prmrsocr);
134134   DECLARE_VIDEO_START(prmrsocr);
135   UINT32 screen_update_mia(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
136   UINT32 screen_update_tmnt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
137   UINT32 screen_update_punkshot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
138   UINT32 screen_update_lgtnfght(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
139   UINT32 screen_update_glfgreat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
140   UINT32 screen_update_tmnt2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
141   UINT32 screen_update_thndrx2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
142   void screen_eof_blswhstl(screen_device &screen, bool state);
135143};
136144
137145
r17967r17968
159167
160168
161169
162SCREEN_UPDATE_IND16( mia );
163SCREEN_UPDATE_IND16( tmnt );
164SCREEN_UPDATE_IND16( punkshot );
165SCREEN_UPDATE_IND16( lgtnfght );
166SCREEN_UPDATE_IND16( glfgreat );
167SCREEN_UPDATE_IND16( tmnt2 );
168SCREEN_UPDATE_IND16( thndrx2 );
169170
170SCREEN_VBLANK( blswhstl );
171
172
173
174
175
176
177
178
trunk/src/mame/includes/raiden2.h
r17967r17968
148148   DECLARE_MACHINE_RESET(zeroteam);
149149   DECLARE_MACHINE_RESET(xsedae);
150150   DECLARE_MACHINE_RESET(raidendx);
151   UINT32 screen_update_raiden2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
151152};
152153
153154
trunk/src/mame/includes/dc.h
r17967r17968
9696   virtual void machine_reset();
9797   virtual void video_start();
9898   DECLARE_MACHINE_RESET(naomi);
99   UINT32 screen_update_dc(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
99100};
100101
101102/*----------- defined in machine/dc.c -----------*/
r17967r17968
307308DECLARE_WRITE64_HANDLER( ta_fifo_poly_w );
308309DECLARE_WRITE64_HANDLER( ta_fifo_yuv_w );
309310
310SCREEN_UPDATE_RGB32(dc);
311311
312
312313/*--------------- CORE registers --------------*/
313314#define PVRID            ((0x005f8000-0x005f8000)/4)
314315#define REVISION         ((0x005f8004-0x005f8000)/4)
trunk/src/mame/includes/taxidriv.h
r17967r17968
5151   DECLARE_READ8_MEMBER(p8910_1a_r);
5252   DECLARE_WRITE8_MEMBER(p8910_0b_w);
5353   DECLARE_WRITE8_MEMBER(taxidriv_spritectrl_w);
54   UINT32 screen_update_taxidriv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5455};
5556
5657
5758/*----------- defined in video/taxidriv.c -----------*/
5859
59SCREEN_UPDATE_IND16( taxidriv );
60
trunk/src/mame/includes/taitojc.h
r17967r17968
159159   TILE_GET_INFO_MEMBER(taitojc_tile_info);
160160   virtual void machine_reset();
161161   virtual void video_start();
162   UINT32 screen_update_taitojc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
163   UINT32 screen_update_dendego(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
162164};
163165
164166
r17967r17968
168170void taitojc_render_polygons(running_machine &machine, UINT16 *polygon_fifo, int length);
169171
170172
171SCREEN_UPDATE_IND16(taitojc);
172SCREEN_UPDATE_IND16(dendego);
173173
174
175
174176// lookup tables for densha de go analog controls/meters
175177const int dendego_odometer_table[0x100] =
176178{
trunk/src/mame/includes/pitnrun.h
r17967r17968
5151   virtual void machine_reset();
5252   virtual void video_start();
5353   virtual void palette_init();
54   UINT32 screen_update_pitnrun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5455};
5556
5657
r17967r17968
6768
6869
6970
70SCREEN_UPDATE_IND16(pitnrun);
71
trunk/src/mame/includes/tehkanwc.h
r17967r17968
4646   TILE_GET_INFO_MEMBER(get_bg_tile_info);
4747   TILE_GET_INFO_MEMBER(get_fg_tile_info);
4848   virtual void video_start();
49   UINT32 screen_update_tehkanwc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4950};
5051
5152
trunk/src/mame/includes/bionicc.h
r17967r17968
5050   virtual void machine_start();
5151   virtual void machine_reset();
5252   virtual void video_start();
53   UINT32 screen_update_bionicc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5354};
5455
5556
r17967r17968
5758
5859
5960
60SCREEN_UPDATE_IND16( bionicc );
61
trunk/src/mame/includes/citycon.h
r17967r17968
4040   virtual void machine_start();
4141   virtual void machine_reset();
4242   virtual void video_start();
43   UINT32 screen_update_citycon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4344};
4445
4546
4647/*----------- defined in video/citycon.c -----------*/
4748
4849
49SCREEN_UPDATE_IND16( citycon );
5050
51
trunk/src/mame/includes/suprridr.h
r17967r17968
4040   TILE_GET_INFO_MEMBER(get_tile_info2);
4141   virtual void video_start();
4242   virtual void palette_init();
43   UINT32 screen_update_suprridr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4344};
4445
4546
r17967r17968
5152int suprridr_is_screen_flipped(running_machine &machine);
5253
5354
54SCREEN_UPDATE_IND16( suprridr );
55
trunk/src/mame/includes/spy.h
r17967r17968
4444   virtual void machine_start();
4545   virtual void machine_reset();
4646   virtual void video_start();
47   UINT32 screen_update_spy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4748};
4849
4950
r17967r17968
5354extern void spy_sprite_callback(running_machine &machine, int *code,int *color,int *priority_mask,int *shadow);
5455
5556
56SCREEN_UPDATE_IND16( spy );
57
trunk/src/mame/includes/psikyo.h
r17967r17968
8989   virtual void machine_reset();
9090   DECLARE_VIDEO_START(sngkace);
9191   DECLARE_VIDEO_START(psikyo);
92   UINT32 screen_update_psikyo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
93   UINT32 screen_update_psikyo_bootleg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
94   void screen_eof_psikyo(screen_device &screen, bool state);
9295};
9396
9497
r17967r17968
99102
100103
101104
102SCREEN_UPDATE_IND16( psikyo );
103SCREEN_UPDATE_IND16( psikyo_bootleg );
104SCREEN_VBLANK( psikyo );
105
106
107
trunk/src/mame/includes/playmark.h
r17967r17968
9999   DECLARE_MACHINE_START(powerbal);
100100   DECLARE_MACHINE_RESET(powerbal);
101101   DECLARE_VIDEO_START(powerbal);
102   UINT32 screen_update_bigtwin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
103   UINT32 screen_update_bigtwinb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
104   UINT32 screen_update_wbeachvl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
105   UINT32 screen_update_excelsr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
106   UINT32 screen_update_hrdtimes(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
107   UINT32 screen_update_powerbal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
102108};
103109
104110/*----------- defined in video/playmark.c -----------*/
r17967r17968
111117
112118
113119
114SCREEN_UPDATE_IND16( bigtwin );
115SCREEN_UPDATE_IND16( bigtwinb );
116SCREEN_UPDATE_IND16( wbeachvl );
117SCREEN_UPDATE_IND16( excelsr );
118SCREEN_UPDATE_IND16( hrdtimes );
120
121
122
123
124
trunk/src/mame/includes/ampoker2.h
r17967r17968
2323   virtual void video_start();
2424   virtual void palette_init();
2525   DECLARE_VIDEO_START(sigma2k);
26   UINT32 screen_update_ampoker2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2627};
2728
2829
r17967r17968
3132
3233
3334
34SCREEN_UPDATE_IND16( ampoker2 );
35
trunk/src/mame/includes/esd16.h
r17967r17968
6363   virtual void machine_start();
6464   virtual void machine_reset();
6565   virtual void video_start();
66   UINT32 screen_update_hedpanic(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6667};
6768
6869
r17967r17968
7071
7172
7273
73SCREEN_UPDATE_IND16( hedpanic );
74
trunk/src/mame/includes/pgm.h
r17967r17968
114114   DECLARE_VIDEO_START(pgm);
115115   DECLARE_MACHINE_START(pgm);
116116   DECLARE_MACHINE_RESET(pgm);
117   UINT32 screen_update_pgm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
118   void screen_eof_pgm(screen_device &screen, bool state);
117119};
118120
119121
r17967r17968
429431
430432
431433
432SCREEN_VBLANK( pgm );
433SCREEN_UPDATE_IND16( pgm );
434
435
trunk/src/mame/includes/model3.h
r17967r17968
197197   DECLARE_MACHINE_RESET(model3_20);
198198   DECLARE_MACHINE_START(model3_21);
199199   DECLARE_MACHINE_RESET(model3_21);
200   UINT32 screen_update_model3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
200201};
201202
202203
r17967r17968
217218
218219
219220
220SCREEN_UPDATE_IND16(model3);
221221
222
222223void real3d_display_list_end(running_machine &machine);
223224void real3d_display_list1_dma(address_space &space, UINT32 src, UINT32 dst, int length, int byteswap);
224225void real3d_display_list2_dma(address_space &space, UINT32 src, UINT32 dst, int length, int byteswap);
trunk/src/mame/includes/namcos21.h
r17967r17968
154154   DECLARE_DRIVER_INIT(aircomb);
155155   DECLARE_MACHINE_START(namcos21);
156156   DECLARE_VIDEO_START(namcos21);
157   UINT32 screen_update_namcos21(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
157158};
158159
159160
trunk/src/mame/includes/iqblock.h
r17967r17968
2929   TILE_GET_INFO_MEMBER(get_bg_tile_info);
3030   TILE_GET_INFO_MEMBER(get_fg_tile_info);
3131   virtual void video_start();
32   UINT32 screen_update_iqblock(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3233};
3334
3435
r17967r17968
3637
3738
3839
39SCREEN_UPDATE_IND16( iqblock );
40
trunk/src/mame/includes/gameplan.h
r17967r17968
6868   DECLARE_VIDEO_START(leprechn);
6969   DECLARE_VIDEO_START(trvquest);
7070   DECLARE_VIDEO_START(common);
71   UINT32 screen_update_gameplan(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
72   UINT32 screen_update_leprechn(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
7173};
7274
7375
trunk/src/mame/includes/darius.h
r17967r17968
9090   virtual void machine_start();
9191   virtual void machine_reset();
9292   virtual void video_start();
93   UINT32 screen_update_darius_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
94   UINT32 screen_update_darius_middle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
95   UINT32 screen_update_darius_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
9396};
9497
9598
r17967r17968
97100
98101
99102
100SCREEN_UPDATE_IND16( darius_left );
101SCREEN_UPDATE_IND16( darius_middle );
102SCREEN_UPDATE_IND16( darius_right );
103
104
105
trunk/src/mame/includes/capbowl.h
r17967r17968
4040   virtual void machine_start();
4141   virtual void machine_reset();
4242   virtual void video_start();
43   UINT32 screen_update_capbowl(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
4344};
4445
4546/*----------- defined in video/capbowl.c -----------*/
4647
4748
48SCREEN_UPDATE_RGB32( capbowl );
4949
5050
51
trunk/src/mame/includes/ikki.h
r17967r17968
3535   virtual void machine_reset();
3636   virtual void video_start();
3737   virtual void palette_init();
38   UINT32 screen_update_ikki(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3839};
3940
4041
r17967r17968
4344
4445
4546
46SCREEN_UPDATE_IND16( ikki );
47
trunk/src/mame/includes/cbasebal.h
r17967r17968
4848   virtual void machine_start();
4949   virtual void machine_reset();
5050   virtual void video_start();
51   UINT32 screen_update_cbasebal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5152};
5253
5354/*----------- defined in video/cbasebal.c -----------*/
5455
5556
5657
57SCREEN_UPDATE_IND16( cbasebal );
58
trunk/src/mame/includes/st0016.h
r17967r17968
3737   DECLARE_DRIVER_INIT(mayjisn2);
3838   DECLARE_DRIVER_INIT(renju);
3939   DECLARE_VIDEO_START(st0016);
40   void st0016_draw_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
41   UINT32 screen_update_st0016(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4042};
4143
4244#define ISMACS  (st0016_game&0x80)
r17967r17968
6971extern UINT8 *st0016_charram;
7072
7173
72void st0016_draw_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
73
74SCREEN_UPDATE_IND16(st0016);
trunk/src/mame/includes/sbasketb.h
r17967r17968
4242   TILE_GET_INFO_MEMBER(get_bg_tile_info);
4343   virtual void video_start();
4444   virtual void palette_init();
45   UINT32 screen_update_sbasketb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4546};
4647
4748/*----------- defined in video/sbasketb.c -----------*/
r17967r17968
4950
5051
5152
52SCREEN_UPDATE_IND16( sbasketb );
53
trunk/src/mame/includes/funkyjet.h
r17967r17968
2525   device_t *m_deco_tilegen1;
2626   DECLARE_DRIVER_INIT(funkyjet);
2727   virtual void machine_start();
28   UINT32 screen_update_funkyjet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2829};
2930
3031
3132
3233/*----------- defined in video/funkyjet.c -----------*/
3334
34SCREEN_UPDATE_IND16( funkyjet );
35
trunk/src/mame/includes/ksayakyu.h
r17967r17968
3939   virtual void machine_reset();
4040   virtual void video_start();
4141   virtual void palette_init();
42   UINT32 screen_update_ksayakyu(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4243};
4344
4445
r17967r17968
4647
4748
4849
49SCREEN_UPDATE_IND16( ksayakyu );
50
trunk/src/mame/includes/xexex.h
r17967r17968
6464   virtual void machine_start();
6565   virtual void machine_reset();
6666   virtual void video_start();
67   UINT32 screen_update_xexex(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
6768};
6869
6970
r17967r17968
7374extern void xexex_tile_callback(running_machine &machine, int layer, int *code, int *color, int *flags);
7475
7576
76SCREEN_UPDATE_RGB32( xexex );
77
trunk/src/mame/includes/himesiki.h
r17967r17968
3333   virtual void machine_start();
3434   virtual void machine_reset();
3535   virtual void video_start();
36   UINT32 screen_update_himesiki(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3637};
3738
3839
3940/*----------- defined in video/himesiki.c -----------*/
4041
4142
42SCREEN_UPDATE_IND16( himesiki );
4343
44
trunk/src/mame/includes/battlex.h
r17967r17968
3535   virtual void machine_start();
3636   virtual void machine_reset();
3737   virtual void video_start();
38   UINT32 screen_update_battlex(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3839};
3940
4041
trunk/src/mame/includes/skullxbo.h
r17967r17968
2020   DECLARE_MACHINE_START(skullxbo);
2121   DECLARE_MACHINE_RESET(skullxbo);
2222   DECLARE_VIDEO_START(skullxbo);
23   UINT32 screen_update_skullxbo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2324};
2425
2526
r17967r17968
3132DECLARE_WRITE16_HANDLER( skullxbo_mobmsb_w );
3233
3334
34SCREEN_UPDATE_IND16( skullxbo );
3535
36
3637void skullxbo_scanline_update(running_machine &machine, int param);
trunk/src/mame/includes/ironhors.h
r17967r17968
4848   virtual void video_start();
4949   virtual void palette_init();
5050   DECLARE_VIDEO_START(farwest);
51   UINT32 screen_update_ironhors(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
52   UINT32 screen_update_farwest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5153};
5254
5355
r17967r17968
5658
5759
5860
59SCREEN_UPDATE_IND16( ironhors );
6061
61SCREEN_UPDATE_IND16( farwest );
62
63
trunk/src/mame/includes/mrflea.h
r17967r17968
4444   DECLARE_WRITE8_MEMBER(mrflea_spriteram_w);
4545   virtual void machine_start();
4646   virtual void machine_reset();
47   UINT32 screen_update_mrflea(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4748};
4849
4950
5051/*----------- defined in video/mrflea.c -----------*/
5152
5253
53SCREEN_UPDATE_IND16( mrflea );
54
trunk/src/mame/includes/epos.h
r17967r17968
2626   virtual void machine_reset();
2727   DECLARE_MACHINE_START(epos);
2828   DECLARE_MACHINE_START(dealer);
29   UINT32 screen_update_epos(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
2930};
3031
3132
3233/*----------- defined in video/epos.c -----------*/
3334
34SCREEN_UPDATE_RGB32( epos );
35
trunk/src/mame/includes/cps3.h
r17967r17968
105105   DECLARE_DRIVER_INIT(sfiii2);
106106   virtual void machine_reset();
107107   virtual void video_start();
108   UINT32 screen_update_cps3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
108109};
109110
110111
trunk/src/mame/includes/glass.h
r17967r17968
4646   virtual void machine_start();
4747   virtual void machine_reset();
4848   virtual void video_start();
49   UINT32 screen_update_glass(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4950};
5051
5152
r17967r17968
5354
5455
5556
56SCREEN_UPDATE_IND16( glass );
57
trunk/src/mame/includes/mcatadv.h
r17967r17968
4141   TILE_GET_INFO_MEMBER(get_mcatadv_tile_info2);
4242   virtual void machine_start();
4343   virtual void video_start();
44   UINT32 screen_update_mcatadv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
45   void screen_eof_mcatadv(screen_device &screen, bool state);
4446};
4547
4648/*----------- defined in video/mcatadv.c -----------*/
4749
48SCREEN_UPDATE_IND16( mcatadv );
4950
50SCREEN_VBLANK( mcatadv );
5151
52
53
trunk/src/mame/includes/toaplan2.h
r17967r17968
119119   DECLARE_VIDEO_START(bgaregga);
120120   DECLARE_VIDEO_START(batrider);
121121   DECLARE_VIDEO_START(bgareggabl);
122   UINT32 screen_update_toaplan2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
123   UINT32 screen_update_dogyuun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
124   UINT32 screen_update_truxton2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
125   UINT32 screen_update_batsugun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
126   UINT32 screen_update_batrider(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
127   UINT32 screen_update_toaplan2_dual(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
128   UINT32 screen_update_toaplan2_mixed(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
129   void screen_eof_toaplan2(screen_device &screen, bool state);
122130};
123131
124132/*----------- defined in video/toaplan2.c -----------*/
r17967r17968
130138
131139
132140
133SCREEN_UPDATE_IND16( toaplan2 );
134SCREEN_UPDATE_IND16( truxton2 );
135SCREEN_UPDATE_IND16( batrider );
136SCREEN_UPDATE_IND16( dogyuun );
137SCREEN_UPDATE_IND16( batsugun );
138141
139SCREEN_VBLANK( toaplan2 );
140142
143
144
145
146
147
148
141149/* non-vdp text layer */
142150
trunk/src/mame/includes/cinemat.h
r17967r17968
6464   DECLARE_VIDEO_START(cinemat_64level);
6565   DECLARE_VIDEO_START(cinemat_color);
6666   DECLARE_VIDEO_START(cinemat_qb3color);
67   UINT32 screen_update_cinemat(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
68   UINT32 screen_update_spacewar(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
6769};
6870
6971
r17967r17968
9799
98100
99101
100SCREEN_UPDATE_RGB32( cinemat );
101102
102SCREEN_UPDATE_RGB32( spacewar );
103
104
trunk/src/mame/includes/mjkjidai.h
r17967r17968
2828   DECLARE_WRITE8_MEMBER(adpcm_w);
2929   TILE_GET_INFO_MEMBER(get_tile_info);
3030   virtual void video_start();
31   UINT32 screen_update_mjkjidai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3132};
3233
3334
3435/*----------- defined in video/mjkjidai.c -----------*/
3536
3637
37SCREEN_UPDATE_IND16( mjkjidai );
3838
3939
40
trunk/src/mame/includes/jailbrek.h
r17967r17968
4242   virtual void machine_reset();
4343   virtual void video_start();
4444   virtual void palette_init();
45   UINT32 screen_update_jailbrek(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4546};
4647
4748
r17967r17968
5051
5152
5253
53SCREEN_UPDATE_IND16( jailbrek );
54
trunk/src/mame/includes/gaelco.h
r17967r17968
3939   virtual void machine_start();
4040   DECLARE_VIDEO_START(bigkarnk);
4141   DECLARE_VIDEO_START(maniacsq);
42   UINT32 screen_update_bigkarnk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
43   UINT32 screen_update_maniacsq(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4244};
4345
4446
r17967r17968
4951
5052
5153
52SCREEN_UPDATE_IND16( bigkarnk );
53SCREEN_UPDATE_IND16( maniacsq );
54
55
trunk/src/mame/includes/wecleman.h
r17967r17968
7676   DECLARE_VIDEO_START(wecleman);
7777   DECLARE_MACHINE_RESET(hotchase);
7878   DECLARE_VIDEO_START(hotchase);
79   UINT32 screen_update_wecleman(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
80   UINT32 screen_update_hotchase(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7981};
8082
8183
8284/*----------- defined in video/wecleman.c -----------*/
8385
84SCREEN_UPDATE_RGB32( wecleman );
8586
86SCREEN_UPDATE_IND16( hotchase );
8787
8888
89
90
8991void hotchase_zoom_callback_0(running_machine &machine, int *code,int *color,int *flags);
9092void hotchase_zoom_callback_1(running_machine &machine, int *code,int *color,int *flags);
trunk/src/mame/includes/tankbust.h
r17967r17968
4242   virtual void machine_reset();
4343   virtual void video_start();
4444   virtual void palette_init();
45   UINT32 screen_update_tankbust(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4546};
4647
4748
4849/*----------- defined in video/tankbust.c -----------*/
4950
5051
51SCREEN_UPDATE_IND16( tankbust );
5252
5353
5454
5555
56
trunk/src/mame/includes/bankp.h
r17967r17968
3838   virtual void machine_reset();
3939   virtual void video_start();
4040   virtual void palette_init();
41   UINT32 screen_update_bankp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4142};
4243
4344
r17967r17968
4647
4748
4849
49SCREEN_UPDATE_IND16( bankp );
5050
5151
52
trunk/src/mame/includes/pastelg.h
r17967r17968
3434   DECLARE_DRIVER_INIT(pastelg);
3535   virtual void video_start();
3636   virtual void palette_init();
37   UINT32 screen_update_pastelg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3738};
3839
3940
4041/*----------- defined in video/pastelg.c -----------*/
4142
4243
43SCREEN_UPDATE_IND16( pastelg );
4444
4545
4646
47
4748int pastelg_blitter_src_addr_r(address_space &space);
trunk/src/mame/includes/crbaloon.h
r17967r17968
3636   virtual void machine_reset();
3737   virtual void video_start();
3838   virtual void palette_init();
39   UINT32 screen_update_crbaloon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3940};
4041
4142
r17967r17968
5556
5657
5758
58SCREEN_UPDATE_IND16( crbaloon );
5959
6060
61
6162UINT16 crbaloon_get_collision_address(running_machine &machine);
6263void crbaloon_set_clear_collision_address(running_machine &machine, int _crbaloon_collision_address_clear);
trunk/src/mame/includes/portrait.h
r17967r17968
2222   TILE_GET_INFO_MEMBER(get_fg_tile_info);
2323   virtual void video_start();
2424   virtual void palette_init();
25   UINT32 screen_update_portrait(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2526};
2627
2728
r17967r17968
2930
3031
3132
32SCREEN_UPDATE_IND16( portrait );
33
trunk/src/mame/includes/munchmo.h
r17967r17968
4646   virtual void machine_reset();
4747   virtual void video_start();
4848   virtual void palette_init();
49   UINT32 screen_update_mnchmobl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4950};
5051
5152
r17967r17968
5455
5556
5657
57SCREEN_UPDATE_IND16( mnchmobl );
58
trunk/src/mame/includes/funkybee.h
r17967r17968
2828   virtual void machine_reset();
2929   virtual void video_start();
3030   virtual void palette_init();
31   UINT32 screen_update_funkybee(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3132};
3233
3334
r17967r17968
3637
3738
3839
39SCREEN_UPDATE_IND16( funkybee );
40
trunk/src/mame/includes/galastrm.h
r17967r17968
4747   DECLARE_CUSTOM_INPUT_MEMBER(frame_counter_r);
4848   DECLARE_CUSTOM_INPUT_MEMBER(coin_word_r);
4949   virtual void video_start();
50   UINT32 screen_update_galastrm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5051};
5152
5253
5354/*----------- defined in video/galastrm.c -----------*/
5455
5556
56SCREEN_UPDATE_IND16( galastrm );
57
trunk/src/mame/includes/tetrisp2.h
r17967r17968
106106   DECLARE_VIDEO_START(nndmseal);
107107   DECLARE_VIDEO_START(rockntread);
108108   DECLARE_VIDEO_START(rocknms);
109   UINT32 screen_update_tetrisp2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
110   UINT32 screen_update_rockntread(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
111   UINT32 screen_update_rocknms_left(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
112   UINT32 screen_update_rocknms_right(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
109113};
110114
111115class stepstag_state : public tetrisp2_state
r17967r17968
125129   DECLARE_WRITE16_MEMBER( stepstag_palette_w );
126130   DECLARE_DRIVER_INIT(stepstag);
127131   DECLARE_VIDEO_START(stepstag);
132   UINT32 screen_update_stepstag_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
133   UINT32 screen_update_stepstag_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
134   UINT32 screen_update_stepstag_mid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
128135};
129136
130137/*----------- defined in video/tetrisp2.c -----------*/
r17967r17968
133140
134141
135142
136SCREEN_UPDATE_IND16( tetrisp2 );
137143
138144
139SCREEN_UPDATE_IND16( rockntread );
140145
141146
142SCREEN_UPDATE_RGB32( rocknms_left );
143SCREEN_UPDATE_RGB32( rocknms_right );
144147
145148
146149
147150
148SCREEN_UPDATE_IND16( stepstag_left );
149SCREEN_UPDATE_IND16( stepstag_mid );
150SCREEN_UPDATE_IND16( stepstag_right );
151
152
153
154
155
156
157
trunk/src/mame/includes/lastduel.h
r17967r17968
5858   DECLARE_VIDEO_START(lastduel);
5959   DECLARE_MACHINE_START(madgear);
6060   DECLARE_VIDEO_START(madgear);
61   UINT32 screen_update_lastduel(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
62   UINT32 screen_update_madgear(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6163};
6264
6365/*----------- defined in video/lastduel.c -----------*/
r17967r17968
6567
6668
6769
68SCREEN_UPDATE_IND16( lastduel );
69SCREEN_UPDATE_IND16( madgear );
70
71
trunk/src/mame/includes/alpha68k.h
r17967r17968
9898   DECLARE_VIDEO_START(alpha68k);
9999   DECLARE_MACHINE_START(alpha68k_V);
100100   DECLARE_MACHINE_RESET(alpha68k_V);
101   UINT32 screen_update_sstingry(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
102   UINT32 screen_update_kyros(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
103   UINT32 screen_update_alpha68k_I(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
104   UINT32 screen_update_alpha68k_II(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
105   UINT32 screen_update_alpha68k_V(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
106   UINT32 screen_update_alpha68k_V_sb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
101107};
102108
103109/* game_id - used to deal with a few game specific situations */
r17967r17968
116122
117123
118124
119SCREEN_UPDATE_IND16( kyros );
120SCREEN_UPDATE_IND16( sstingry );
121SCREEN_UPDATE_IND16( alpha68k_I );
122SCREEN_UPDATE_IND16( alpha68k_II );
123SCREEN_UPDATE_IND16( alpha68k_V );
124SCREEN_UPDATE_IND16( alpha68k_V_sb );
125125
126
127
128
129
130
131
126132void alpha68k_V_video_bank_w(running_machine &machine, int bank);
127133void alpha68k_flipscreen_w(running_machine &machine, int flip);
128134
trunk/src/mame/includes/drgnmst.h
r17967r17968
6666   virtual void machine_start();
6767   virtual void machine_reset();
6868   virtual void video_start();
69   UINT32 screen_update_drgnmst(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6970};
7071
7172
r17967r17968
7374
7475
7576
76SCREEN_UPDATE_IND16(drgnmst);
77
trunk/src/mame/includes/starfire.h
r17967r17968
4343   DECLARE_DRIVER_INIT(starfire);
4444   DECLARE_DRIVER_INIT(fireone);
4545   virtual void video_start();
46   UINT32 screen_update_starfire(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
4647};
4748
4849/*----------- defined in video/starfire.c -----------*/
4950
50SCREEN_UPDATE_RGB32( starfire );
5151
5252
5353
54
trunk/src/mame/includes/freekick.h
r17967r17968
4848   DECLARE_MACHINE_START(freekick);
4949   DECLARE_MACHINE_START(oigas);
5050   DECLARE_MACHINE_RESET(oigas);
51   UINT32 screen_update_pbillrd(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
52   UINT32 screen_update_freekick(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
53   UINT32 screen_update_gigas(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5154};
5255
5356
5457/*----------- defined in video/freekick.c -----------*/
5558
5659
57SCREEN_UPDATE_IND16(gigas);
58SCREEN_UPDATE_IND16(pbillrd);
59SCREEN_UPDATE_IND16(freekick);
60
61
62
trunk/src/mame/includes/cischeat.h
r17967r17968
8080   DECLARE_VIDEO_START(bigrun);
8181   DECLARE_VIDEO_START(f1gpstar);
8282   DECLARE_VIDEO_START(cischeat);
83   UINT32 screen_update_bigrun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
84   UINT32 screen_update_scudhamm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
85   UINT32 screen_update_cischeat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
86   UINT32 screen_update_f1gpstar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8387};
8488
8589
r17967r17968
9296
9397
9498
95SCREEN_UPDATE_IND16( bigrun );
96SCREEN_UPDATE_IND16( cischeat );
97SCREEN_UPDATE_IND16( f1gpstar );
98SCREEN_UPDATE_IND16( scudhamm );
99
100
101
102
trunk/src/mame/includes/namcos22.h
r17967r17968
254254   DECLARE_VIDEO_START(namcos22s);
255255   DECLARE_VIDEO_START(namcos22);
256256   DECLARE_VIDEO_START(common);
257   UINT32 screen_update_namcos22s(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
258   UINT32 screen_update_namcos22(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
257259};
258260
259261
260262/*----------- defined in video/namcos22.c -----------*/
261263
262264
263SCREEN_UPDATE_RGB32( namcos22 );
264265
265266
266SCREEN_UPDATE_RGB32( namcos22s );
267267
268
269
268270void namcos22_draw_direct_poly( running_machine &machine, const UINT16 *pSource );
269271UINT32 namcos22_point_rom_r( running_machine &machine, offs_t offs );
270272void namcos22_enable_slave_simulation( running_machine &machine, int enable );
trunk/src/mame/includes/vicdual.h
r17967r17968
7575   DECLARE_CUSTOM_INPUT_MEMBER(samurai_protection_r);
7676   DECLARE_INPUT_CHANGED_MEMBER(coin_changed);
7777   DECLARE_MACHINE_START(frogs_audio);
78   UINT32 screen_update_vicdual_bw(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
79   UINT32 screen_update_vicdual_bw_or_color(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
80   UINT32 screen_update_vicdual_color(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
7881};
7982
8083
r17967r17968
8689/*----------- defined in video/vicdual.c -----------*/
8790
8891
89SCREEN_UPDATE_RGB32( vicdual_bw );
90SCREEN_UPDATE_RGB32( vicdual_color );
91SCREEN_UPDATE_RGB32( vicdual_bw_or_color );
9292
9393
94
95
96
9497/*----------- defined in audio/vicdual.c -----------*/
9598
9699
trunk/src/mame/includes/xybots.h
r17967r17968
2020   DECLARE_MACHINE_START(xybots);
2121   DECLARE_MACHINE_RESET(xybots);
2222   DECLARE_VIDEO_START(xybots);
23   UINT32 screen_update_xybots(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2324};
2425
2526
2627/*----------- defined in video/xybots.c -----------*/
2728
2829
29SCREEN_UPDATE_IND16( xybots );
30
trunk/src/mame/includes/galaxold.h
r17967r17968
176176   DECLARE_VIDEO_START(scorpion);
177177   DECLARE_VIDEO_START(ad2083);
178178   DECLARE_VIDEO_START(dambustr);
179   UINT32 screen_update_galaxold(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
180   UINT32 screen_update_dambustr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
179181};
180182
181183
r17967r17968
222224void galaxold_init_stars(running_machine &machine, int colors_offset);
223225void galaxold_draw_stars(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect);
224226
225SCREEN_UPDATE_IND16( galaxold );
226SCREEN_UPDATE_IND16( dambustr );
227227
228228
229229
230
231
230232/*----------- defined in machine/galaxold.c -----------*/
231233
232234TIMER_DEVICE_CALLBACK( galaxold_interrupt_timer );
trunk/src/mame/includes/centiped.h
r17967r17968
7575   DECLARE_VIDEO_START(milliped);
7676   DECLARE_VIDEO_START(warlords);
7777   DECLARE_PALETTE_INIT(warlords);
78   UINT32 screen_update_centiped(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
79   UINT32 screen_update_bullsdrt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
80   UINT32 screen_update_milliped(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
81   UINT32 screen_update_warlords(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7882};
7983
8084
r17967r17968
8791
8892
8993
90SCREEN_UPDATE_IND16( centiped );
91SCREEN_UPDATE_IND16( milliped );
92SCREEN_UPDATE_IND16( warlords );
93SCREEN_UPDATE_IND16( bullsdrt );
9494
95
96
97
98
trunk/src/mame/includes/atarisy1.h
r17967r17968
6464   DECLARE_MACHINE_START(atarisy1);
6565   DECLARE_MACHINE_RESET(atarisy1);
6666   DECLARE_VIDEO_START(atarisy1);
67   UINT32 screen_update_atarisy1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6768};
6869
6970
r17967r17968
8283DECLARE_WRITE16_HANDLER( atarisy1_priority_w );
8384
8485
85SCREEN_UPDATE_IND16( atarisy1 );
86
trunk/src/mame/includes/wgp.h
r17967r17968
6868   virtual void machine_reset();
6969   virtual void video_start();
7070   DECLARE_VIDEO_START(wgp2);
71   UINT32 screen_update_wgp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7172};
7273
7374
r17967r17968
7778
7879
7980
80SCREEN_UPDATE_IND16( wgp );
81
trunk/src/mame/includes/welltris.h
r17967r17968
3535   DECLARE_DRIVER_INIT(welltris);
3636   TILE_GET_INFO_MEMBER(get_welltris_tile_info);
3737   virtual void video_start();
38   UINT32 screen_update_welltris(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3839};
3940
4041
r17967r17968
4243
4344
4445
45SCREEN_UPDATE_IND16( welltris );
46
trunk/src/mame/includes/sprint8.h
r17967r17968
3535   virtual void machine_reset();
3636   virtual void video_start();
3737   virtual void palette_init();
38   UINT32 screen_update_sprint8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
39   void screen_eof_sprint8(screen_device &screen, bool state);
3840};
3941
4042
r17967r17968
4648/*----------- defined in video/sprint8.c -----------*/
4749
4850
49SCREEN_VBLANK( sprint8 );
5051
51SCREEN_UPDATE_IND16( sprint8 );
5252
5353
5454
55
56
5557/*----------- defined in audio/sprint8.c -----------*/
5658
5759DISCRETE_SOUND_EXTERN( sprint8 );
trunk/src/mame/includes/gumbo.h
r17967r17968
2525   TILE_GET_INFO_MEMBER(get_gumbo_bg_tile_info);
2626   TILE_GET_INFO_MEMBER(get_gumbo_fg_tile_info);
2727   virtual void video_start();
28   UINT32 screen_update_gumbo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2829};
2930
3031
r17967r17968
3233
3334
3435
35SCREEN_UPDATE_IND16( gumbo );
36
trunk/src/mame/includes/ssv.h
r17967r17968
125125   virtual void video_start();
126126   DECLARE_VIDEO_START(gdfs);
127127   DECLARE_VIDEO_START(eaglshot);
128   UINT32 screen_update_ssv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
129   UINT32 screen_update_gdfs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
130   UINT32 screen_update_eaglshot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
128131};
129132
130133/*----------- defined in video/ssv.c -----------*/
r17967r17968
135138
136139
137140
138SCREEN_UPDATE_IND16( ssv );
139SCREEN_UPDATE_IND16( eaglshot );
140SCREEN_UPDATE_IND16( gdfs );
141
142
143
trunk/src/mame/includes/dec0.h
r17967r17968
7272   DECLARE_VIDEO_START(dec0);
7373   DECLARE_MACHINE_RESET(slyspy);
7474   DECLARE_VIDEO_START(dec0_nodma);
75   UINT32 screen_update_hbarrel(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
76   UINT32 screen_update_baddudes(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
77   UINT32 screen_update_birdtry(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
78   UINT32 screen_update_robocop(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
79   UINT32 screen_update_hippodrm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
80   UINT32 screen_update_slyspy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
81   UINT32 screen_update_midres(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7582};
7683
7784
r17967r17968
96103   UINT16 m_automat_scroll_regs[4];
97104
98105   DECLARE_VIDEO_START(automat);
106   UINT32 screen_update_automat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
107   UINT32 screen_update_secretab(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
99108};
100109
101110
r17967r17968
105114
106115
107116
108SCREEN_UPDATE_IND16( hbarrel );
109SCREEN_UPDATE_IND16( baddudes );
110SCREEN_UPDATE_IND16( birdtry );
111SCREEN_UPDATE_IND16( robocop );
112SCREEN_UPDATE_IND16( hippodrm );
113SCREEN_UPDATE_IND16( slyspy );
114SCREEN_UPDATE_IND16( midres );
115117
118
119
120
121
122
123
124
116125// bootlegs
117SCREEN_UPDATE_IND16( automat );
118SCREEN_UPDATE_IND16( secretab );
119126
127
128
120129/*----------- defined in machine/dec0.c -----------*/
121130
122131DECLARE_READ16_HANDLER( slyspy_controls_r );
trunk/src/mame/includes/taitoair.h
r17967r17968
8282   virtual void machine_start();
8383   virtual void machine_reset();
8484   virtual void video_start();
85   UINT32 screen_update_taitoair(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8586};
8687
8788
8889/*----------- defined in video/taitoair.c -----------*/
8990
90SCREEN_UPDATE_IND16( taitoair );
9191
9292
9393
94
trunk/src/mame/includes/atarig42.h
r17967r17968
5252   DECLARE_MACHINE_START(atarig42);
5353   DECLARE_MACHINE_RESET(atarig42);
5454   DECLARE_VIDEO_START(atarig42);
55   UINT32 screen_update_atarig42(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
56   void screen_eof_atarig42(screen_device &screen, bool state);
5557};
5658
5759
5860/*----------- defined in video/atarig42.c -----------*/
5961
6062
61SCREEN_VBLANK( atarig42 );
62SCREEN_UPDATE_IND16( atarig42 );
6363
64
65
6466DECLARE_WRITE16_HANDLER( atarig42_mo_control_w );
6567
6668void atarig42_scanline_update(screen_device &screen, int scanline);
trunk/src/mame/includes/tceptor.h
r17967r17968
6060   virtual void machine_reset();
6161   virtual void video_start();
6262   virtual void palette_init();
63   UINT32 screen_update_tceptor_2d(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
64   UINT32 screen_update_tceptor_3d_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
65   UINT32 screen_update_tceptor_3d_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
66   void screen_eof_tceptor(screen_device &screen, bool state);
6367};
6468
6569
r17967r17968
6771
6872
6973
70SCREEN_UPDATE_IND16( tceptor_2d );
71SCREEN_UPDATE_IND16( tceptor_3d_left );
72SCREEN_UPDATE_IND16( tceptor_3d_right );
73SCREEN_VBLANK( tceptor );
7474
7575
76
77
78
79
trunk/src/mame/includes/cop01.h
r17967r17968
4646   virtual void machine_reset();
4747   virtual void video_start();
4848   virtual void palette_init();
49   UINT32 screen_update_cop01(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4950};
5051
5152
r17967r17968
5556
5657
5758
58SCREEN_UPDATE_IND16( cop01 );
5959
60
trunk/src/mame/includes/vindictr.h
r17967r17968
2222   DECLARE_MACHINE_START(vindictr);
2323   DECLARE_MACHINE_RESET(vindictr);
2424   DECLARE_VIDEO_START(vindictr);
25   UINT32 screen_update_vindictr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2526};
2627
2728
r17967r17968
3031DECLARE_WRITE16_HANDLER( vindictr_paletteram_w );
3132
3233
33SCREEN_UPDATE_IND16( vindictr );
3434
35
3536void vindictr_scanline_update(screen_device &screen, int scanline);
trunk/src/mame/includes/hanaawas.h
r17967r17968
3030   virtual void machine_reset();
3131   virtual void video_start();
3232   virtual void palette_init();
33   UINT32 screen_update_hanaawas(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3334};
3435
3536
r17967r17968
3940
4041
4142
42SCREEN_UPDATE_IND16( hanaawas );
43
trunk/src/mame/includes/aquarium.h
r17967r17968
4646   virtual void machine_start();
4747   virtual void machine_reset();
4848   virtual void video_start();
49   UINT32 screen_update_aquarium(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4950};
5051
5152
r17967r17968
5354
5455
5556
56SCREEN_UPDATE_IND16(aquarium);
57
trunk/src/mame/includes/metro.h
r17967r17968
161161   DECLARE_VIDEO_START(metro_i4300);
162162   DECLARE_VIDEO_START(blzntrnd);
163163   DECLARE_VIDEO_START(gstrik2);
164   UINT32 screen_update_metro(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
164165};
165166
166167
r17967r17968
173174
174175
175176
176SCREEN_UPDATE_IND16( metro );
177177
178
178179void metro_draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect);
trunk/src/mame/includes/angelkds.h
r17967r17968
5959   virtual void machine_start();
6060   virtual void machine_reset();
6161   virtual void video_start();
62   UINT32 screen_update_angelkds(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6263};
6364
6465
r17967r17968
6869
6970
7071
71SCREEN_UPDATE_IND16( angelkds );
72
trunk/src/mame/includes/circusc.h
r17967r17968
5757   virtual void machine_reset();
5858   virtual void video_start();
5959   virtual void palette_init();
60   UINT32 screen_update_circusc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6061};
6162
6263
r17967r17968
6566
6667
6768
68SCREEN_UPDATE_IND16( circusc );
69
trunk/src/mame/includes/mikie.h
r17967r17968
4343   virtual void machine_reset();
4444   virtual void video_start();
4545   virtual void palette_init();
46   UINT32 screen_update_mikie(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4647};
4748
4849
r17967r17968
5152
5253
5354
54SCREEN_UPDATE_IND16( mikie );
55
trunk/src/mame/includes/midvunit.h
r17967r17968
119119   virtual void machine_reset();
120120   virtual void video_start();
121121   DECLARE_MACHINE_RESET(midvplus);
122   UINT32 screen_update_midvunit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
122123};
123124
124125
r17967r17968
132133
133134
134135
135SCREEN_UPDATE_IND16( midvunit );
136
trunk/src/mame/includes/usgames.h
r17967r17968
1717   TILE_GET_INFO_MEMBER(get_usgames_tile_info);
1818   virtual void video_start();
1919   virtual void palette_init();
20   UINT32 screen_update_usgames(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2021};
2122
2223
r17967r17968
2425
2526
2627
27SCREEN_UPDATE_IND16( usgames );
28
trunk/src/mame/includes/opwolf.h
r17967r17968
7272   DECLARE_DRIVER_INIT(opwolfb);
7373   virtual void machine_start();
7474   DECLARE_MACHINE_RESET(opwolf);
75   UINT32 screen_update_opwolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7576};
7677
7778
r17967r17968
8485/*----------- defined in video/opwolf.c -----------*/
8586
8687
87SCREEN_UPDATE_IND16( opwolf );
88
trunk/src/mame/includes/surpratk.h
r17967r17968
3434   DECLARE_WRITE8_MEMBER(surpratk_5fc0_w);
3535   virtual void machine_start();
3636   virtual void machine_reset();
37   UINT32 screen_update_surpratk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3738};
3839
3940/*----------- defined in video/surpratk.c -----------*/
r17967r17968
4142extern void surpratk_tile_callback(running_machine &machine, int layer,int bank,int *code,int *color,int *flags,int *priority);
4243extern void surpratk_sprite_callback(running_machine &machine, int *code,int *color,int *priority_mask);
4344
44SCREEN_UPDATE_IND16( surpratk );
45
trunk/src/mame/includes/zaccaria.h
r17967r17968
4444   TILE_GET_INFO_MEMBER(get_tile_info);
4545   virtual void video_start();
4646   virtual void palette_init();
47   UINT32 screen_update_zaccaria(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4748};
4849
4950
r17967r17968
5152
5253
5354
54SCREEN_UPDATE_IND16( zaccaria );
55
trunk/src/mame/includes/suna16.h
r17967r17968
3636   DECLARE_DRIVER_INIT(uballoon);
3737   virtual void video_start();
3838   DECLARE_MACHINE_RESET(uballoon);
39   UINT32 screen_update_suna16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
40   UINT32 screen_update_bestbest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3941};
4042
4143
r17967r17968
4446
4547
4648
47SCREEN_UPDATE_IND16( suna16 );
48SCREEN_UPDATE_IND16( bestbest );
49
50
trunk/src/mame/includes/speedbal.h
r17967r17968
1818   TILE_GET_INFO_MEMBER(get_tile_info_bg);
1919   TILE_GET_INFO_MEMBER(get_tile_info_fg);
2020   virtual void video_start();
21   UINT32 screen_update_speedbal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2122};
2223
2324
2425/*----------- defined in video/speedbal.c -----------*/
2526
2627
27SCREEN_UPDATE_IND16( speedbal );
28
trunk/src/mame/includes/shadfrce.h
r17967r17968
4242   TILE_GET_INFO_MEMBER(get_shadfrce_bg0tile_info);
4343   TILE_GET_INFO_MEMBER(get_shadfrce_bg1tile_info);
4444   virtual void video_start();
45   UINT32 screen_update_shadfrce(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
46   void screen_eof_shadfrce(screen_device &screen, bool state);
4547};
4648
4749
4850/*----------- defined in video/shadfrce.c -----------*/
4951
5052
51SCREEN_VBLANK(shadfrce);
52SCREEN_UPDATE_IND16( shadfrce );
53
54
trunk/src/mame/includes/tagteam.h
r17967r17968
2727   TILE_GET_INFO_MEMBER(get_bg_tile_info);
2828   virtual void video_start();
2929   virtual void palette_init();
30   UINT32 screen_update_tagteam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3031};
3132
3233
r17967r17968
3536
3637
3738
38SCREEN_UPDATE_IND16( tagteam );
39
trunk/src/mame/includes/eolith.h
r17967r17968
3939   DECLARE_DRIVER_INIT(landbrka);
4040   DECLARE_MACHINE_RESET(eolith);
4141   DECLARE_VIDEO_START(eolith);
42   UINT32 screen_update_eolith(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4243};
4344
4445
4546/*----------- defined in video/eolith.c -----------*/
4647
4748
48SCREEN_UPDATE_IND16( eolith );
49
trunk/src/mame/includes/bagman.h
r17967r17968
4747   DECLARE_MACHINE_RESET(bagman);
4848   DECLARE_VIDEO_START(bagman);
4949   DECLARE_PALETTE_INIT(bagman);
50   UINT32 screen_update_bagman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5051};
5152
5253
r17967r17968
8081
8182
8283
83SCREEN_UPDATE_IND16( bagman );
84
trunk/src/mame/includes/bigevglf.h
r17967r17968
8989   virtual void machine_start();
9090   virtual void machine_reset();
9191   virtual void video_start();
92   UINT32 screen_update_bigevglf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
9293};
9394
9495
r17967r17968
100101/*----------- defined in video/bigevglf.c -----------*/
101102
102103
103SCREEN_UPDATE_IND16( bigevglf );
104104
105105
106
trunk/src/mame/includes/inufuku.h
r17967r17968
4949   virtual void machine_start();
5050   virtual void machine_reset();
5151   virtual void video_start();
52   UINT32 screen_update_inufuku(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5253};
5354
5455
5556/*----------- defined in video/inufuku.c -----------*/
5657
5758
58SCREEN_UPDATE_IND16( inufuku );
5959
60
trunk/src/mame/includes/commando.h
r17967r17968
4646   virtual void machine_start();
4747   virtual void machine_reset();
4848   virtual void video_start();
49   UINT32 screen_update_commando(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4950};
5051
5152
r17967r17968
5455
5556
5657
57SCREEN_UPDATE_IND16( commando );
58
trunk/src/mame/includes/atarisy2.h
r17967r17968
7878   DECLARE_MACHINE_START(atarisy2);
7979   DECLARE_MACHINE_RESET(atarisy2);
8080   DECLARE_VIDEO_START(atarisy2);
81   UINT32 screen_update_atarisy2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8182};
8283
8384
r17967r17968
9394DECLARE_WRITE16_HANDLER( atarisy2_paletteram_w );
9495
9596
96SCREEN_UPDATE_IND16( atarisy2 );
97
trunk/src/mame/includes/ninjakd2.h
r17967r17968
7272   DECLARE_VIDEO_START(robokid);
7373   DECLARE_MACHINE_RESET(omegaf);
7474   DECLARE_VIDEO_START(omegaf);
75   UINT32 screen_update_ninjakd2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
76   UINT32 screen_update_robokid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
77   UINT32 screen_update_omegaf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
78   void screen_eof_ninjakd2(screen_device &screen, bool state);
7579};
7680
7781
trunk/src/mame/includes/yunsung8.h
r17967r17968
3939   virtual void machine_start();
4040   virtual void machine_reset();
4141   virtual void video_start();
42   UINT32 screen_update_yunsung8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4243};
4344
4445
r17967r17968
4647
4748
4849
49SCREEN_UPDATE_IND16( yunsung8 );
50
trunk/src/mame/includes/skydiver.h
r17967r17968
5050   virtual void machine_reset();
5151   virtual void video_start();
5252   virtual void palette_init();
53   UINT32 screen_update_skydiver(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5354};
5455
5556
r17967r17968
6263
6364
6465
65SCREEN_UPDATE_IND16( skydiver );
66
trunk/src/mame/includes/m52.h
r17967r17968
3434   virtual void machine_reset();
3535   virtual void video_start();
3636   virtual void palette_init();
37   UINT32 screen_update_m52(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3738};
3839
3940/*----------- defined in video/m52.c -----------*/
r17967r17968
4142
4243
4344
44SCREEN_UPDATE_IND16( m52 );
45
trunk/src/mame/includes/spacefb.h
r17967r17968
4949   virtual void machine_start();
5050   virtual void machine_reset();
5151   virtual void video_start();
52   UINT32 screen_update_spacefb(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
5253};
5354
5455
r17967r17968
6162/*----------- defined in video/spacefb.c -----------*/
6263
6364
64SCREEN_UPDATE_RGB32( spacefb );
6565
66
trunk/src/mame/includes/warpwarp.h
r17967r17968
4646   DECLARE_PALETTE_INIT(warpwarp);
4747   DECLARE_VIDEO_START(navarone);
4848   DECLARE_PALETTE_INIT(navarone);
49   UINT32 screen_update_geebee(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4950};
5051
5152
r17967r17968
5758
5859
5960
60SCREEN_UPDATE_IND16( geebee );
6161
6262
63
6364/*----------- defined in audio/geebee.c -----------*/
6465
6566DECLARE_WRITE8_DEVICE_HANDLER( geebee_sound_w );
trunk/src/mame/includes/cbuster.h
r17967r17968
4242   virtual void machine_start();
4343   virtual void machine_reset();
4444   virtual void video_start();
45   UINT32 screen_update_twocrude(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
4546};
4647
4748
r17967r17968
5051
5152
5253
53SCREEN_UPDATE_RGB32( twocrude );
54
trunk/src/mame/includes/gng.h
r17967r17968
4242   virtual void machine_start();
4343   virtual void machine_reset();
4444   virtual void video_start();
45   UINT32 screen_update_gng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4546};
4647
4748
r17967r17968
4950
5051
5152
52SCREEN_UPDATE_IND16( gng );
53
trunk/src/mame/includes/ojankohs.h
r17967r17968
7070   DECLARE_MACHINE_START(ojankoc);
7171   DECLARE_VIDEO_START(ojankoc);
7272   DECLARE_MACHINE_START(common);
73   UINT32 screen_update_ojankohs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
74   UINT32 screen_update_ojankoc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7375};
7476
7577
r17967r17968
8284
8385
8486
85SCREEN_UPDATE_IND16( ojankohs );
86SCREEN_UPDATE_IND16( ojankoc );
8787
88
89
8890void ojankoc_flipscreen(address_space &space, int data);
8991
trunk/src/mame/includes/n8080.h
r17967r17968
7777   DECLARE_MACHINE_RESET(helifire_sound);
7878   DECLARE_MACHINE_START(n8080);
7979   DECLARE_MACHINE_RESET(n8080);
80   UINT32 screen_update_spacefev(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
81   UINT32 screen_update_sheriff(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
82   UINT32 screen_update_helifire(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
83   void screen_eof_helifire(screen_device &screen, bool state);
8084};
8185
8286
r17967r17968
9094
9195
9296
93SCREEN_UPDATE_IND16( spacefev );
94SCREEN_UPDATE_IND16( sheriff );
95SCREEN_UPDATE_IND16( helifire );
96SCREEN_VBLANK( helifire );
9797
98
99
100
101
98102void spacefev_start_red_cannon(running_machine &machine);
99103
100104/*----------- defined in audio/n8080.c -----------*/
trunk/src/mame/includes/nbmj8891.h
r17967r17968
7373   DECLARE_DRIVER_INIT(maiko);
7474   virtual void video_start();
7575   DECLARE_VIDEO_START(nbmj8891_1layer);
76   UINT32 screen_update_nbmj8891(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7677};
7778
7879
7980/*----------- defined in video/nbmj8891.c -----------*/
8081
81SCREEN_UPDATE_IND16( nbmj8891 );
8282
8383
8484
85
trunk/src/mame/includes/wc90b.h
r17967r17968
3939   TILE_GET_INFO_MEMBER(get_fg_tile_info);
4040   TILE_GET_INFO_MEMBER(get_tx_tile_info);
4141   virtual void video_start();
42   UINT32 screen_update_wc90b(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4243};
4344
4445
4546/*----------- defined in video/wc90b.c -----------*/
4647
4748
48SCREEN_UPDATE_IND16( wc90b );
4949
50
trunk/src/mame/includes/3do.h
r17967r17968
187187   DECLARE_WRITE32_MEMBER(_3do_clio_w);
188188   virtual void machine_reset();
189189   DECLARE_VIDEO_START(_3do);
190   UINT32 screen_update__3do(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
190191};
191192
192193/*----------- defined in machine/3do.c -----------*/
r17967r17968
201202
202203
203204
204SCREEN_UPDATE_RGB32( _3do );
205205
206
206207#endif /* _3DO_H_ */
trunk/src/mame/includes/kncljoe.h
r17967r17968
4545   virtual void machine_reset();
4646   virtual void video_start();
4747   virtual void palette_init();
48   UINT32 screen_update_kncljoe(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4849};
4950
5051
r17967r17968
5455
5556
5657
57SCREEN_UPDATE_IND16( kncljoe );
58
trunk/src/mame/includes/holeland.h
r17967r17968
3131   TILE_GET_INFO_MEMBER(crzrally_get_tile_info);
3232   DECLARE_VIDEO_START(holeland);
3333   DECLARE_VIDEO_START(crzrally);
34   UINT32 screen_update_holeland(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
35   UINT32 screen_update_crzrally(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3436};
3537
3638
r17967r17968
3840
3941
4042
41SCREEN_UPDATE_IND16( holeland );
42SCREEN_UPDATE_IND16( crzrally );
4343
44
45
trunk/src/mame/includes/spdodgeb.h
r17967r17968
4646   virtual void machine_reset();
4747   virtual void video_start();
4848   virtual void palette_init();
49   UINT32 screen_update_spdodgeb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4950};
5051
5152
r17967r17968
5354
5455
5556
56SCREEN_UPDATE_IND16( spdodgeb );
57
5758TIMER_DEVICE_CALLBACK( spdodgeb_interrupt );
trunk/src/mame/includes/liberate.h
r17967r17968
6363   DECLARE_VIDEO_START(prosport);
6464   DECLARE_VIDEO_START(boomrang);
6565   DECLARE_VIDEO_START(prosoccr);
66   UINT32 screen_update_liberate(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
67   UINT32 screen_update_prosport(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
68   UINT32 screen_update_boomrang(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
69   UINT32 screen_update_prosoccr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6670};
6771
6872
6973/*----------- defined in video/liberate.c -----------*/
7074
7175
72SCREEN_UPDATE_IND16( prosoccr );
73SCREEN_UPDATE_IND16( prosport );
74SCREEN_UPDATE_IND16( liberate );
75SCREEN_UPDATE_IND16( boomrang );
7676
7777
7878
7979
8080
8181
82
83
84
85
trunk/src/mame/includes/gunsmoke.h
r17967r17968
4040   virtual void machine_reset();
4141   virtual void video_start();
4242   virtual void palette_init();
43   UINT32 screen_update_gunsmoke(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4344};
4445
4546
r17967r17968
4849
4950
5051
51SCREEN_UPDATE_IND16( gunsmoke );
5252
53
trunk/src/mame/includes/turbo.h
r17967r17968
128128   DECLARE_MACHINE_RESET(buckrog);
129129   DECLARE_VIDEO_START(buckrog);
130130   DECLARE_PALETTE_INIT(buckrog);
131   UINT32 screen_update_turbo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
132   UINT32 screen_update_subroc3d(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
133   UINT32 screen_update_buckrog(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
131134};
132135
133136
r17967r17968
153156
154157
155158
156SCREEN_UPDATE_IND16( turbo );
157159
158160
159SCREEN_UPDATE_IND16( subroc3d );
160161
161162
162163
163SCREEN_UPDATE_IND16( buckrog );
164164
165
166
167
trunk/src/mame/includes/cvs.h
r17967r17968
104104   DECLARE_MACHINE_RESET(cvs);
105105   DECLARE_VIDEO_START(cvs);
106106   DECLARE_PALETTE_INIT(cvs);
107   UINT32 screen_update_cvs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
107108};
108109
109110
r17967r17968
121122void cvs_update_stars(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, const pen_t star_pen, bool update_always);
122123
123124
124SCREEN_UPDATE_IND16( cvs );
125125
126
trunk/src/mame/includes/truco.h
r17967r17968
1616   DECLARE_WRITE8_MEMBER(pia_irqb_w);
1717   virtual void machine_reset();
1818   virtual void palette_init();
19   UINT32 screen_update_truco(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
1920};
2021
2122
2223/*----------- defined in video/truco.c -----------*/
2324
24SCREEN_UPDATE_IND16( truco );
2525
26
trunk/src/mame/includes/seta.h
r17967r17968
190190   DECLARE_MACHINE_START(keroppi);
191191   DECLARE_VIDEO_START(oisipuzl_2_layers);
192192   DECLARE_PALETTE_INIT(inttoote);
193   UINT32 screen_update_seta_no_layers(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
194   UINT32 screen_update_seta(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
195   UINT32 screen_update_usclssic(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
196   UINT32 screen_update_setaroul(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
197   UINT32 screen_update_inttoote(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
198   UINT32 screen_update_seta_layers(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
199   void screen_eof_seta_buffer_sprites(screen_device &screen, bool state);
200   void screen_eof_setaroul(screen_device &screen, bool state);
193201};
194202
195203/*----------- defined in video/seta.c -----------*/
r17967r17968
212220
213221
214222
215SCREEN_UPDATE_IND16( seta );
216SCREEN_UPDATE_IND16( seta_no_layers );
217SCREEN_UPDATE_IND16( usclssic );
218SCREEN_UPDATE_IND16( inttoote );
219SCREEN_UPDATE_IND16( setaroul );
220223
221SCREEN_VBLANK( setaroul );
222224
225
226
227
228
229
230
trunk/src/mame/includes/laserbat.h
r17967r17968
8181   virtual void machine_start();
8282   virtual void machine_reset();
8383   virtual void video_start();
84   UINT32 screen_update_laserbat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8485};
8586
8687
trunk/src/mame/includes/tnzs.h
r17967r17968
9696   DECLARE_PALETTE_INIT(arknoid2);
9797   DECLARE_MACHINE_START(jpopnics);
9898   DECLARE_MACHINE_RESET(jpopnics);
99   UINT32 screen_update_tnzs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
100   void screen_eof_tnzs(screen_device &screen, bool state);
99101};
100102
101103
r17967r17968
113115/*----------- defined in video/tnzs.c -----------*/
114116
115117
116SCREEN_UPDATE_IND16( tnzs );
117SCREEN_VBLANK( tnzs );
118
119
trunk/src/mame/includes/tp84.h
r17967r17968
4040   virtual void machine_start();
4141   virtual void video_start();
4242   virtual void palette_init();
43   UINT32 screen_update_tp84(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4344};
4445
4546
r17967r17968
4849
4950
5051
51SCREEN_UPDATE_IND16( tp84 );
52
trunk/src/mame/includes/vball.h
r17967r17968
3131   TILEMAP_MAPPER_MEMBER(background_scan);
3232   TILE_GET_INFO_MEMBER(get_bg_tile_info);
3333   virtual void video_start();
34   UINT32 screen_update_vb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3435};
3536
3637
3738/*----------- defined in video/vball.c -----------*/
3839
3940
40SCREEN_UPDATE_IND16( vb );
41
4142void vb_bgprombank_w(running_machine &machine, int bank);
4243void vb_spprombank_w(running_machine &machine, int bank);
4344void vb_mark_all_dirty(running_machine &machine);
trunk/src/mame/includes/rohga.h
r17967r17968
5757   DECLARE_VIDEO_START(rohga);
5858   DECLARE_VIDEO_START(wizdfire);
5959   DECLARE_VIDEO_START(schmeisr);
60   UINT32 screen_update_rohga(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
61   UINT32 screen_update_wizdfire(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
62   UINT32 screen_update_nitrobal(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
6063};
6164
6265
r17967r17968
6972
7073
7174
72SCREEN_UPDATE_IND16( rohga );
73SCREEN_UPDATE_RGB32( wizdfire );
74SCREEN_UPDATE_RGB32( nitrobal );
7575
76
77
78
7679UINT16 rohga_pri_callback(UINT16 x);
7780UINT16 schmeisr_col_callback(UINT16 x);
7881UINT16 rohga_col_callback(UINT16 x);
trunk/src/mame/includes/plygonet.h
r17967r17968
7272   TILEMAP_MAPPER_MEMBER(plygonet_scan_cols);
7373   virtual void machine_start();
7474   virtual void video_start();
75   UINT32 screen_update_polygonet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7576};
7677
7778/*----------- defined in video/plygonet.c -----------*/
7879
7980
80SCREEN_UPDATE_IND16( polygonet );
8181
82
trunk/src/mame/includes/higemaru.h
r17967r17968
2626   TILE_GET_INFO_MEMBER(get_bg_tile_info);
2727   virtual void video_start();
2828   virtual void palette_init();
29   UINT32 screen_update_higemaru(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2930};
3031
3132
r17967r17968
3435
3536
3637
37SCREEN_UPDATE_IND16( higemaru );
38
trunk/src/mame/includes/batman.h
r17967r17968
2626   DECLARE_MACHINE_START(batman);
2727   DECLARE_MACHINE_RESET(batman);
2828   DECLARE_VIDEO_START(batman);
29   UINT32 screen_update_batman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2930};
3031
3132
3233/*----------- defined in video/batman.c -----------*/
3334
3435
35SCREEN_UPDATE_IND16( batman );
3636
37
3738void batman_scanline_update(screen_device &screen, int scanline);
trunk/src/mame/includes/nemesis.h
r17967r17968
8484   virtual void machine_start();
8585   virtual void machine_reset();
8686   virtual void video_start();
87   UINT32 screen_update_nemesis(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8788};
8889
8990
r17967r17968
9293
9394
9495
95SCREEN_UPDATE_IND16( nemesis );
96
trunk/src/mame/includes/cheekyms.h
r17967r17968
3535   virtual void machine_start();
3636   virtual void video_start();
3737   virtual void palette_init();
38   UINT32 screen_update_cheekyms(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3839};
3940
4041
r17967r17968
4243
4344
4445
45SCREEN_UPDATE_IND16( cheekyms );
46
trunk/src/mame/includes/magmax.h
r17967r17968
3333   virtual void machine_reset();
3434   virtual void video_start();
3535   virtual void palette_init();
36   UINT32 screen_update_magmax(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3637};
3738
3839
3940/*----------- defined in video/magmax.c -----------*/
4041
4142
42SCREEN_UPDATE_IND16( magmax );
4343
44
trunk/src/mame/includes/stv.h
r17967r17968
198198   DECLARE_VIDEO_START(stv_vdp2);
199199   DECLARE_MACHINE_START(stv);
200200   DECLARE_MACHINE_RESET(stv);
201   UINT32 screen_update_saturn(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
202   UINT32 screen_update_stv_vdp2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
201203};
202204
203205#define MASTER_CLOCK_352 57272720
r17967r17968
262264DECLARE_WRITE16_HANDLER ( saturn_vdp2_regs_w );
263265
264266
265SCREEN_UPDATE_RGB32( stv_vdp2 );
267
266268#if NEW_VIDEO_CODE
267SCREEN_UPDATE_RGB32( saturn );
269
268270#endif
trunk/src/mame/includes/timelimt.h
r17967r17968
2828   virtual void machine_reset();
2929   virtual void video_start();
3030   virtual void palette_init();
31   UINT32 screen_update_timelimt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3132};
3233
3334
r17967r17968
3536
3637
3738
38SCREEN_UPDATE_IND16( timelimt );
3939
40
trunk/src/mame/includes/warriorb.h
r17967r17968
3838   virtual void machine_start();
3939   virtual void machine_reset();
4040   virtual void video_start();
41   UINT32 screen_update_warriorb_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
42   UINT32 screen_update_warriorb_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4143};
4244
4345
4446/*----------- defined in video/warriorb.c -----------*/
4547
4648
47SCREEN_UPDATE_IND16( warriorb_left );
48SCREEN_UPDATE_IND16( warriorb_right );
49
50
trunk/src/mame/includes/goal92.h
r17967r17968
5151   virtual void machine_start();
5252   virtual void machine_reset();
5353   virtual void video_start();
54   UINT32 screen_update_goal92(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
55   void screen_eof_goal92(screen_device &screen, bool state);
5456};
5557
5658
r17967r17968
6163
6264
6365
64SCREEN_UPDATE_IND16( goal92 );
65SCREEN_VBLANK( goal92 );
66
67
trunk/src/mame/includes/bishi.h
r17967r17968
3939   virtual void machine_start();
4040   virtual void machine_reset();
4141   virtual void video_start();
42   UINT32 screen_update_bishi(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
4243};
4344
4445/*----------- defined in video/bishi.c -----------*/
r17967r17968
4647extern void bishi_tile_callback(running_machine &machine, int layer, int *code, int *color, int *flags);
4748
4849
49SCREEN_UPDATE_RGB32(bishi);
50
trunk/src/mame/includes/1942.h
r17967r17968
3939   virtual void machine_reset();
4040   virtual void video_start();
4141   virtual void palette_init();
42   UINT32 screen_update_1942(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4243};
4344
4445
trunk/src/mame/includes/poolshrk.h
r17967r17968
3131   TILE_GET_INFO_MEMBER(get_tile_info);
3232   virtual void video_start();
3333   virtual void palette_init();
34   UINT32 screen_update_poolshrk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3435};
3536
3637
r17967r17968
4748/*----------- defined in video/poolshrk.c -----------*/
4849
4950
50SCREEN_UPDATE_IND16( poolshrk );
5151
52
trunk/src/mame/includes/raiden.h
r17967r17968
3939   TILE_GET_INFO_MEMBER(get_text_tile_info);
4040   virtual void video_start();
4141   DECLARE_VIDEO_START(raidena);
42   UINT32 screen_update_raiden(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4243};
4344
4445
r17967r17968
4647
4748
4849
49SCREEN_UPDATE_IND16( raiden );
50
trunk/src/mame/includes/bloodbro.h
r17967r17968
2626   TILE_GET_INFO_MEMBER(get_fg_tile_info);
2727   TILE_GET_INFO_MEMBER(get_tx_tile_info);
2828   virtual void video_start();
29   UINT32 screen_update_bloodbro(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
30   UINT32 screen_update_weststry(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
31   UINT32 screen_update_skysmash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2932};
3033
3134
3235/*----------- defined in video/bloodbro.c -----------*/
3336
3437
35SCREEN_UPDATE_IND16( bloodbro );
36SCREEN_UPDATE_IND16( weststry );
37SCREEN_UPDATE_IND16( skysmash );
3838
39
40
41
trunk/src/mame/includes/galaxia.h
r17967r17968
2626   DECLARE_PALETTE_INIT(galaxia);
2727   DECLARE_VIDEO_START(astrowar);
2828   DECLARE_PALETTE_INIT(astrowar);
29   UINT32 screen_update_galaxia(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
30   UINT32 screen_update_astrowar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2931};
3032
3133
r17967r17968
3638
3739
3840
39SCREEN_UPDATE_IND16( galaxia );
40SCREEN_UPDATE_IND16( astrowar );
41
42
trunk/src/mame/includes/fromanc2.h
r17967r17968
103103   DECLARE_VIDEO_START(fromancr);
104104   DECLARE_MACHINE_START(fromanc4);
105105   DECLARE_VIDEO_START(fromanc4);
106   UINT32 screen_update_fromanc2_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
107   UINT32 screen_update_fromanc2_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
106108};
107109
108110
r17967r17968
110112
111113/*----------- defined in video/fromanc2.c -----------*/
112114
113SCREEN_UPDATE_IND16( fromanc2_left );
114SCREEN_UPDATE_IND16( fromanc2_right );
115115
116116
117117
118118
119
120
119121void fromancr_gfxbank_w(running_machine &machine, int data);
trunk/src/mame/includes/bombjack.h
r17967r17968
3939   virtual void machine_start();
4040   virtual void machine_reset();
4141   virtual void video_start();
42   UINT32 screen_update_bombjack(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4243};
4344
4445
r17967r17968
4647
4748
4849
49SCREEN_UPDATE_IND16( bombjack );
50
trunk/src/mame/includes/rallyx.h
r17967r17968
6161   DECLARE_PALETTE_INIT(jungler);
6262   DECLARE_VIDEO_START(locomotn);
6363   DECLARE_VIDEO_START(commsega);
64   UINT32 screen_update_rallyx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
65   UINT32 screen_update_jungler(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
66   UINT32 screen_update_locomotn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6467};
6568
6669
r17967r17968
7376
7477
7578
76SCREEN_UPDATE_IND16( rallyx );
77SCREEN_UPDATE_IND16( jungler );
78SCREEN_UPDATE_IND16( locomotn );
79
80
81
trunk/src/mame/includes/trucocl.h
r17967r17968
2121   TILE_GET_INFO_MEMBER(get_bg_tile_info);
2222   virtual void video_start();
2323   virtual void palette_init();
24   UINT32 screen_update_trucocl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2425};
2526
2627
r17967r17968
2829
2930
3031
31SCREEN_UPDATE_IND16( trucocl );
32
trunk/src/mame/includes/gridlee.h
r17967r17968
5555   virtual void machine_reset();
5656   virtual void video_start();
5757   virtual void palette_init();
58   UINT32 screen_update_gridlee(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5859};
5960
6061
r17967r17968
9394
9495
9596
96SCREEN_UPDATE_IND16( gridlee );
9797
98
trunk/src/mame/includes/unico.h
r17967r17968
4040   DECLARE_VIDEO_START(unico);
4141   DECLARE_MACHINE_RESET(zeropt);
4242   DECLARE_VIDEO_START(zeropnt2);
43   UINT32 screen_update_unico(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
44   UINT32 screen_update_zeropnt2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4345};
4446
4547
r17967r17968
4850
4951
5052
51SCREEN_UPDATE_IND16( unico );
5253
5354
54SCREEN_UPDATE_IND16( zeropnt2 );
5555
56
57
trunk/src/mame/includes/blockhl.h
r17967r17968
3636   virtual void machine_start();
3737   virtual void machine_reset();
3838   virtual void video_start();
39   UINT32 screen_update_blockhl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3940};
4041
4142/*----------- defined in video/blockhl.c -----------*/
r17967r17968
4445extern void blockhl_sprite_callback(running_machine &machine, int *code,int *color,int *priority,int *shadow);
4546
4647
47SCREEN_UPDATE_IND16( blockhl );
48
trunk/src/mame/includes/gcpinbal.h
r17967r17968
5858   virtual void machine_start();
5959   virtual void machine_reset();
6060   virtual void video_start();
61   UINT32 screen_update_gcpinbal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6162};
6263
6364
6465/*----------- defined in video/gcpinbal.c -----------*/
6566
6667
67SCREEN_UPDATE_IND16( gcpinbal );
6868
69
trunk/src/mame/includes/realbrk.h
r17967r17968
4444   TILE_GET_INFO_MEMBER(get_tile_info_1);
4545   TILE_GET_INFO_MEMBER(get_tile_info_2);
4646   virtual void video_start();
47   UINT32 screen_update_realbrk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
48   UINT32 screen_update_dai2kaku(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4749};
4850
4951
r17967r17968
5355#define REALBRK_H
5456
5557
56SCREEN_UPDATE_IND16(realbrk);
57SCREEN_UPDATE_IND16(dai2kaku);
5858
5959
6060
61
62
6163#endif
6264
trunk/src/mame/includes/segag80v.h
r17967r17968
5252   DECLARE_DRIVER_INIT(spacfury);
5353   virtual void machine_start();
5454   virtual void video_start();
55   UINT32 screen_update_segag80v(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
5556};
5657
5758
r17967r17968
6263/*----------- defined in video/segag80v.c -----------*/
6364
6465
65SCREEN_UPDATE_RGB32( segag80v );
66
trunk/src/mame/includes/carjmbre.h
r17967r17968
3131   virtual void machine_reset();
3232   virtual void video_start();
3333   virtual void palette_init();
34   UINT32 screen_update_carjmbre(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3435};
3536
3637
r17967r17968
4041
4142
4243
43SCREEN_UPDATE_IND16( carjmbre );
4444
4545
46
trunk/src/mame/includes/gatron.h
r17967r17968
1313   TILE_GET_INFO_MEMBER(get_bg_tile_info);
1414   virtual void video_start();
1515   virtual void palette_init();
16   UINT32 screen_update_gat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
1617};
1718
1819
r17967r17968
2021
2122
2223
23SCREEN_UPDATE_IND16( gat );
2424
25
trunk/src/mame/includes/superchs.h
r17967r17968
3838   DECLARE_READ16_MEMBER(sub_cycle_r);
3939   DECLARE_DRIVER_INIT(superchs);
4040   virtual void video_start();
41   UINT32 screen_update_superchs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4142};
4243
4344
4445/*----------- defined in video/superchs.c -----------*/
4546
4647
47SCREEN_UPDATE_IND16( superchs );
48
trunk/src/mame/includes/bottom9.h
r17967r17968
4646   virtual void machine_start();
4747   virtual void machine_reset();
4848   virtual void video_start();
49   UINT32 screen_update_bottom9(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4950};
5051
5152/*----------- defined in video/bottom9.c -----------*/
r17967r17968
5556extern void bottom9_zoom_callback(running_machine &machine, int *code,int *color,int *flags);
5657
5758
58SCREEN_UPDATE_IND16( bottom9 );
59
trunk/src/mame/includes/battlera.h
r17967r17968
4040   DECLARE_WRITE8_MEMBER(HuC6270_data_w);
4141   DECLARE_WRITE8_MEMBER(battlera_adpcm_reset_w);
4242   virtual void video_start();
43   UINT32 screen_update_battlera(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4344};
4445
4546
4647/*----------- defined in video/battlera.c -----------*/
4748
48SCREEN_UPDATE_IND16( battlera );
4949
50
5051TIMER_DEVICE_CALLBACK( battlera_irq );
5152
5253
trunk/src/mame/includes/flower.h
r17967r17968
4040   TILE_GET_INFO_MEMBER(get_text_tile_info);
4141   virtual void video_start();
4242   virtual void palette_init();
43   UINT32 screen_update_flower(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4344};
4445
4546
r17967r17968
7778/*----------- defined in video/flower.c -----------*/
7879
7980
80SCREEN_UPDATE_IND16( flower );
8181
8282
83
trunk/src/mame/includes/xain.h
r17967r17968
6868   TILE_GET_INFO_MEMBER(get_char_tile_info);
6969   virtual void machine_start();
7070   virtual void video_start();
71   UINT32 screen_update_xain(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7172};
7273
7374
7475/*----------- defined in video/xain.c -----------*/
7576
76SCREEN_UPDATE_IND16( xain );
7777
78
trunk/src/mame/includes/namcos1.h
r17967r17968
9393   TILE_GET_INFO_MEMBER(fg_get_info5);
9494   virtual void machine_reset();
9595   virtual void video_start();
96   UINT32 screen_update_namcos1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
97   void screen_eof_namcos1(screen_device &screen, bool state);
9698};
9799
98100
r17967r17968
118120DECLARE_WRITE8_HANDLER( namcos1_spriteram_w );
119121
120122
121SCREEN_UPDATE_IND16( namcos1 );
122SCREEN_VBLANK( namcos1 );
123
124
trunk/src/mame/includes/mrdo.h
r17967r17968
3232   TILE_GET_INFO_MEMBER(get_fg_tile_info);
3333   virtual void video_start();
3434   virtual void palette_init();
35   UINT32 screen_update_mrdo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3536};
3637
3738
r17967r17968
4041
4142
4243
43SCREEN_UPDATE_IND16( mrdo );
44
trunk/src/mame/includes/gundealr.h
r17967r17968
4141   virtual void machine_start();
4242   virtual void machine_reset();
4343   virtual void video_start();
44   UINT32 screen_update_gundealr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4445};
4546
4647
r17967r17968
4849/*----------- defined in video/gundealr.c -----------*/
4950
5051
51SCREEN_UPDATE_IND16( gundealr );
5252
53
trunk/src/mame/includes/mainevt.h
r17967r17968
4343   virtual void machine_reset();
4444   DECLARE_VIDEO_START(mainevt);
4545   DECLARE_VIDEO_START(dv);
46   UINT32 screen_update_mainevt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
47   UINT32 screen_update_dv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4648};
4749
4850/*----------- defined in video/mainevt.c -----------*/
r17967r17968
5557
5658
5759
58SCREEN_UPDATE_IND16( mainevt );
59SCREEN_UPDATE_IND16( dv );
60
61
trunk/src/mame/includes/m62.h
r17967r17968
9595   DECLARE_PALETTE_INIT(spelunk2);
9696   DECLARE_VIDEO_START(youjyudn);
9797   DECLARE_VIDEO_START(horizon);
98   UINT32 screen_update_ldrun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
99   UINT32 screen_update_kungfum(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
100   UINT32 screen_update_battroad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
101   UINT32 screen_update_ldrun3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
102   UINT32 screen_update_ldrun4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
103   UINT32 screen_update_lotlot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
104   UINT32 screen_update_kidniki(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
105   UINT32 screen_update_spelunkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
106   UINT32 screen_update_spelunk2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
107   UINT32 screen_update_youjyudn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
108   UINT32 screen_update_horizon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
98109};
99110
100111
r17967r17968
119130
120131
121132
122SCREEN_UPDATE_IND16( battroad );
123SCREEN_UPDATE_IND16( horizon );
124SCREEN_UPDATE_IND16( kidniki );
125SCREEN_UPDATE_IND16( kungfum );
126SCREEN_UPDATE_IND16( ldrun );
127SCREEN_UPDATE_IND16( ldrun3 );
128SCREEN_UPDATE_IND16( ldrun4 );
129SCREEN_UPDATE_IND16( lotlot );
130SCREEN_UPDATE_IND16( spelunkr );
131SCREEN_UPDATE_IND16( spelunk2 );
132SCREEN_UPDATE_IND16( youjyudn );
133
134
135
136
137
138
139
140
141
142
143
trunk/src/mame/includes/astrocde.h
r17967r17968
120120   virtual void palette_init();
121121   DECLARE_VIDEO_START(profpac);
122122   DECLARE_PALETTE_INIT(profpac);
123   UINT32 screen_update_astrocde(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
124   UINT32 screen_update_profpac(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
123125};
124126
125127
r17967r17968
131133
132134
133135
134SCREEN_UPDATE_IND16( astrocde );
135SCREEN_UPDATE_IND16( profpac );
136136
137137
138138
139139
140
141
140142/*----------- defined in audio/wow.c -----------*/
141143
142144extern const char *const wow_sample_names[];
trunk/src/mame/includes/megazone.h
r17967r17968
5151   virtual void machine_reset();
5252   virtual void video_start();
5353   virtual void palette_init();
54   UINT32 screen_update_megazone(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5455};
5556
5657
r17967r17968
6061
6162
6263
63SCREEN_UPDATE_IND16( megazone );
64
trunk/src/mame/includes/toki.h
r17967r17968
3838   TILE_GET_INFO_MEMBER(get_back_tile_info);
3939   TILE_GET_INFO_MEMBER(get_fore_tile_info);
4040   virtual void video_start();
41   UINT32 screen_update_toki(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
42   UINT32 screen_update_tokib(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4143};
4244
4345
4446/*----------- defined in video/toki.c -----------*/
4547
4648
47SCREEN_UPDATE_IND16( toki );
48SCREEN_UPDATE_IND16( tokib );
49
50
trunk/src/mame/includes/pass.h
r17967r17968
1616   TILE_GET_INFO_MEMBER(get_pass_bg_tile_info);
1717   TILE_GET_INFO_MEMBER(get_pass_fg_tile_info);
1818   virtual void video_start();
19   UINT32 screen_update_pass(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
1920};
2021
2122
r17967r17968
2324
2425
2526
26SCREEN_UPDATE_IND16( pass );
27
trunk/src/mame/includes/40love.h
r17967r17968
9595   DECLARE_MACHINE_RESET(undoukai);
9696   DECLARE_MACHINE_RESET(common);
9797   DECLARE_MACHINE_RESET(ta7630);
98   UINT32 screen_update_fortyl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
9899};
99100
100101
r17967r17968
102103
103104
104105
105SCREEN_UPDATE_IND16( fortyl );
106106
107
trunk/src/mame/includes/renegade.h
r17967r17968
7272   virtual void machine_start();
7373   virtual void machine_reset();
7474   virtual void video_start();
75   UINT32 screen_update_renegade(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7576};
7677
7778
7879/*----------- defined in video/renegade.c -----------*/
7980
80SCREEN_UPDATE_IND16( renegade );
8181
82
trunk/src/mame/includes/galaga.h
r17967r17968
5656   DECLARE_MACHINE_RESET(galaga);
5757   DECLARE_VIDEO_START(galaga);
5858   DECLARE_PALETTE_INIT(galaga);
59   UINT32 screen_update_galaga(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
60   void screen_eof_galaga(screen_device &screen, bool state);
5961};
6062
6163class xevious_state : public galaga_state
r17967r17968
9092   DECLARE_MACHINE_RESET(xevios);
9193   DECLARE_PALETTE_INIT(battles);
9294   DECLARE_MACHINE_RESET(battles);
95   UINT32 screen_update_xevious(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
9396};
9497
9598
r17967r17968
119122   TILE_GET_INFO_MEMBER(fg_get_tile_info);
120123   DECLARE_VIDEO_START(bosco);
121124   DECLARE_PALETTE_INIT(bosco);
125   UINT32 screen_update_bosco(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
126   void screen_eof_bosco(screen_device &screen, bool state);
122127};
123128
124129class digdug_state : public galaga_state
r17967r17968
144149   TILE_GET_INFO_MEMBER(tx_get_tile_info);
145150   DECLARE_VIDEO_START(digdug);
146151   DECLARE_PALETTE_INIT(digdug);
152   UINT32 screen_update_digdug(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
147153};
148154
149155
r17967r17968
155161DECLARE_WRITE8_HANDLER( bosco_scrolly_w );
156162DECLARE_WRITE8_HANDLER( bosco_starclr_w );
157163
158SCREEN_UPDATE_IND16( bosco );
159
160SCREEN_VBLANK( bosco );   /* update starfield */
161
162164/*----------- defined in audio/galaga.c -----------*/
163165
164166DISCRETE_SOUND_EXTERN( bosco );
r17967r17968
175177
176178extern const struct star star_seed_tab[];
177179
178
179
180SCREEN_UPDATE_IND16( galaga );
181SCREEN_VBLANK( galaga );   /* update starfield */
182
183180/*----------- defined in video/xevious.c -----------*/
184181
185182DECLARE_WRITE8_HANDLER( xevious_fg_videoram_w );
r17967r17968
191188DECLARE_READ8_HANDLER( xevious_bb_r );
192189
193190
194SCREEN_UPDATE_IND16( xevious );
195191
196192
197193
194
198195/*----------- defined in machine/xevious.c -----------*/
199196
200197void battles_customio_init(running_machine &machine);
r17967r17968
220217DECLARE_WRITE8_HANDLER( digdug_videoram_w );
221218DECLARE_WRITE8_HANDLER( digdug_PORT_w );
222219
223SCREEN_UPDATE_IND16( digdug );
224220
221
trunk/src/mame/includes/lasso.h
r17967r17968
6666   DECLARE_VIDEO_START(wwjgtin);
6767   DECLARE_PALETTE_INIT(wwjgtin);
6868   DECLARE_VIDEO_START(pinbo);
69   UINT32 screen_update_lasso(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
70   UINT32 screen_update_chameleo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
71   UINT32 screen_update_wwjgtin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6972};
7073
7174
r17967r17968
7982
8083
8184
82SCREEN_UPDATE_IND16( lasso );
83SCREEN_UPDATE_IND16( chameleo );
84SCREEN_UPDATE_IND16( wwjgtin );
85
86
87
trunk/src/mame/includes/nbmj8688.h
r17967r17968
8787   DECLARE_VIDEO_START(mbmj8688_hybrid_16bit);
8888   DECLARE_VIDEO_START(mbmj8688_hybrid_12bit);
8989   DECLARE_VIDEO_START(mbmj8688_pure_16bit);
90   UINT32 screen_update_mbmj8688(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
91   UINT32 screen_update_mbmj8688_lcd0(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
92   UINT32 screen_update_mbmj8688_lcd1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
9093};
9194
9295
r17967r17968
9598
9699
97100
98SCREEN_UPDATE_IND16( mbmj8688 );
99SCREEN_UPDATE_IND16( mbmj8688_lcd0 );
100SCREEN_UPDATE_IND16( mbmj8688_lcd1 );
101101
102102
103103
r17967r17968
106106
107107
108108
109
110
111
trunk/src/mame/includes/taito_h.h
r17967r17968
2727   DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
2828   virtual void machine_start();
2929   virtual void machine_reset();
30   UINT32 screen_update_syvalion(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
31   UINT32 screen_update_recordbr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
32   UINT32 screen_update_dleague(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3033};
3134
3235/*----------- defined in video/taito_h.c -----------*/
3336
34SCREEN_UPDATE_IND16( syvalion );
35SCREEN_UPDATE_IND16( recordbr );
36SCREEN_UPDATE_IND16( dleague );
37
38
39
trunk/src/mame/includes/psychic5.h
r17967r17968
4545   DECLARE_VIDEO_RESET(psychic5);
4646   DECLARE_VIDEO_START(bombsa);
4747   DECLARE_VIDEO_RESET(bombsa);
48   UINT32 screen_update_psychic5(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
49   UINT32 screen_update_bombsa(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
4850};
4951
5052
r17967r17968
5456
5557
5658
57SCREEN_UPDATE_RGB32( psychic5 );
5859
5960
6061
6162
62SCREEN_UPDATE_RGB32( bombsa );
63
64
trunk/src/mame/includes/8080bw.h
r17967r17968
7474   DECLARE_MACHINE_START(extra_8080bw_vh);
7575   DECLARE_MACHINE_START(schaser_sh);
7676   DECLARE_MACHINE_RESET(schaser_sh);
77   UINT32 screen_update_invadpt2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
78   UINT32 screen_update_cosmo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
79   UINT32 screen_update_rollingc(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
80   UINT32 screen_update_schaser(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
81   UINT32 screen_update_schasercv(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
82   UINT32 screen_update_sflush(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
83   UINT32 screen_update_indianbt(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
84   UINT32 screen_update_lupin3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
85   UINT32 screen_update_polaris(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
86   UINT32 screen_update_ballbomb(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
87   UINT32 screen_update_shuttlei(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
7788};
7889
7990
r17967r17968
101112
102113
103114
104SCREEN_UPDATE_RGB32( invadpt2 );
105SCREEN_UPDATE_RGB32( ballbomb );
106SCREEN_UPDATE_RGB32( schaser );
107SCREEN_UPDATE_RGB32( schasercv );
108SCREEN_UPDATE_RGB32( rollingc );
109SCREEN_UPDATE_RGB32( polaris );
110SCREEN_UPDATE_RGB32( lupin3 );
111SCREEN_UPDATE_RGB32( cosmo );
112SCREEN_UPDATE_RGB32( indianbt );
113SCREEN_UPDATE_RGB32( shuttlei );
114SCREEN_UPDATE_RGB32( sflush );
115115
116
117
118
119
120
121
122
123
124
125
126
trunk/src/mame/includes/othunder.h
r17967r17968
6262   virtual void machine_start();
6363   virtual void machine_reset();
6464   virtual void video_start();
65   UINT32 screen_update_othunder(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6566};
6667
6768
6869/*----------- defined in video/othunder.c -----------*/
6970
7071
71SCREEN_UPDATE_IND16( othunder );
72
trunk/src/mame/includes/ginganin.h
r17967r17968
4545   virtual void machine_start();
4646   virtual void machine_reset();
4747   virtual void video_start();
48   UINT32 screen_update_ginganin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4849};
4950
5051
r17967r17968
5354
5455
5556
56SCREEN_UPDATE_IND16( ginganin );
57
trunk/src/mame/includes/tail2nos.h
r17967r17968
3838   virtual void machine_start();
3939   virtual void machine_reset();
4040   virtual void video_start();
41   UINT32 screen_update_tail2nos(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4142};
4243
4344
r17967r17968
4748
4849
4950
50SCREEN_UPDATE_IND16( tail2nos );
51
trunk/src/mame/includes/quasar.h
r17967r17968
2828   DECLARE_MACHINE_RESET(quasar);
2929   DECLARE_VIDEO_START(quasar);
3030   DECLARE_PALETTE_INIT(quasar);
31   UINT32 screen_update_quasar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3132};
3233
3334
3435/*----------- defined in video/quasar.c -----------*/
3536
3637
37SCREEN_UPDATE_IND16( quasar );
3838
39
trunk/src/mame/includes/mrjong.h
r17967r17968
2525   TILE_GET_INFO_MEMBER(get_bg_tile_info);
2626   virtual void video_start();
2727   virtual void palette_init();
28   UINT32 screen_update_mrjong(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2829};
2930
3031
r17967r17968
3334
3435
3536
36SCREEN_UPDATE_IND16( mrjong );
37
trunk/src/mame/includes/slapshot.h
r17967r17968
6464   DECLARE_DRIVER_INIT(slapshot);
6565   virtual void machine_start();
6666   virtual void video_start();
67   UINT32 screen_update_slapshot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
68   void screen_eof_taito_no_buffer(screen_device &screen, bool state);
6769};
6870
6971
7072/*----------- defined in video/slapshot.c -----------*/
7173
7274
73SCREEN_UPDATE_IND16( slapshot );
74SCREEN_VBLANK( taito_no_buffer );
75
76
trunk/src/mame/includes/xyonix.h
r17967r17968
1919   TILE_GET_INFO_MEMBER(get_xyonix_tile_info);
2020   virtual void video_start();
2121   virtual void palette_init();
22   UINT32 screen_update_xyonix(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2223};
2324
2425
r17967r17968
2627
2728
2829
29SCREEN_UPDATE_IND16(xyonix);
30
trunk/src/mame/includes/vsnes.h
r17967r17968
111111SCREEN_UPDATE_IND16( vsnes_bottom );
112112
113113
114
115
116
117
114118extern const ppu2c0x_interface vsnes_ppu_interface_1;
115119extern const ppu2c0x_interface vsnes_ppu_interface_2;
116120
trunk/src/mame/includes/victory.h
r17967r17968
6161   DECLARE_READ8_MEMBER(victory_video_control_r);
6262   DECLARE_WRITE8_MEMBER(victory_video_control_w);
6363   virtual void video_start();
64   UINT32 screen_update_victory(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6465};
6566
6667
6768/*----------- defined in video/victory.c -----------*/
6869
6970
70SCREEN_UPDATE_IND16( victory );
71
7172INTERRUPT_GEN( victory_vblank_interrupt );
7273
trunk/src/mame/includes/1943.h
r17967r17968
4646   virtual void machine_reset();
4747   virtual void video_start();
4848   virtual void palette_init();
49   UINT32 screen_update_1943(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4950};
5051
5152
trunk/src/mame/includes/cninja.h
r17967r17968
6565   virtual void machine_reset();
6666   DECLARE_VIDEO_START(stoneage);
6767   DECLARE_VIDEO_START(mutantf);
68   UINT32 screen_update_cninja(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
69   UINT32 screen_update_cninjabl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
70   UINT32 screen_update_edrandy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
71   UINT32 screen_update_robocop2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
72   UINT32 screen_update_mutantf(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
6873};
6974
7075/*----------- defined in video/cninja.c -----------*/
r17967r17968
7277
7378
7479
75SCREEN_UPDATE_IND16( cninja );
76SCREEN_UPDATE_IND16( cninjabl );
77SCREEN_UPDATE_IND16( edrandy );
78SCREEN_UPDATE_IND16( robocop2 );
79SCREEN_UPDATE_RGB32( mutantf );
80
81
82
83
84
trunk/src/mame/includes/psikyo4.h
r17967r17968
5050   virtual void machine_start();
5151   virtual void machine_reset();
5252   virtual void video_start();
53   UINT32 screen_update_psikyo4_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
54   UINT32 screen_update_psikyo4_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5355};
5456
5557
5658/*----------- defined in video/psikyo4.c -----------*/
5759
5860
59SCREEN_UPDATE_IND16( psikyo4_left );
60SCREEN_UPDATE_IND16( psikyo4_right );
61
62
trunk/src/mame/includes/lucky74.h
r17967r17968
3939   TILE_GET_INFO_MEMBER(get_bg_tile_info);
4040   virtual void video_start();
4141   virtual void palette_init();
42   UINT32 screen_update_lucky74(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4243};
4344
4445
r17967r17968
4647
4748
4849
49SCREEN_UPDATE_IND16( lucky74 );
50
trunk/src/mame/includes/pacland.h
r17967r17968
3737   TILE_GET_INFO_MEMBER(get_fg_tile_info);
3838   virtual void video_start();
3939   virtual void palette_init();
40   UINT32 screen_update_pacland(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4041};
4142
4243
r17967r17968
4546
4647
4748
48SCREEN_UPDATE_IND16( pacland );
49
trunk/src/mame/includes/rollrace.h
r17967r17968
3434   DECLARE_WRITE8_MEMBER(rollrace_flipy_w);
3535   DECLARE_WRITE8_MEMBER(rollrace_flipx_w);
3636   virtual void palette_init();
37   UINT32 screen_update_rollrace(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3738};
3839
3940
4041/*----------- defined in video/rollrace.c -----------*/
4142
4243
43SCREEN_UPDATE_IND16( rollrace );
4444
4545
46
trunk/src/mame/includes/popper.h
r17967r17968
5454   virtual void machine_reset();
5555   virtual void video_start();
5656   virtual void palette_init();
57   UINT32 screen_update_popper(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5758};
5859
5960
r17967r17968
6263
6364
6465
65SCREEN_UPDATE_IND16( popper );
6666
67
trunk/src/mame/includes/ladyfrog.h
r17967r17968
5858   virtual void video_start();
5959   DECLARE_VIDEO_START(toucheme);
6060   DECLARE_VIDEO_START(ladyfrog_common);
61   UINT32 screen_update_ladyfrog(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6162};
6263
6364
r17967r17968
6768
6869
6970
70SCREEN_UPDATE_IND16( ladyfrog );
71
trunk/src/mame/includes/djboy.h
r17967r17968
7171   virtual void machine_start();
7272   virtual void machine_reset();
7373   virtual void video_start();
74   UINT32 screen_update_djboy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
75   void screen_eof_djboy(screen_device &screen, bool state);
7476};
7577
7678
r17967r17968
7880
7981
8082
81SCREEN_UPDATE_IND16( djboy );
82SCREEN_VBLANK( djboy );
83
84
trunk/src/mame/includes/sidearms.h
r17967r17968
5151   TILE_GET_INFO_MEMBER(get_fg_tile_info);
5252   TILEMAP_MAPPER_MEMBER(sidearms_tilemap_scan);
5353   virtual void video_start();
54   UINT32 screen_update_sidearms(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5455};
5556
5657/*----------- defined in video/sidearms.c -----------*/
5758
5859
5960
60SCREEN_UPDATE_IND16( sidearms );
61
trunk/src/mame/includes/jack.h
r17967r17968
5555   virtual void video_start();
5656   DECLARE_VIDEO_START(joinem);
5757   DECLARE_PALETTE_INIT(joinem);
58   UINT32 screen_update_jack(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
59   UINT32 screen_update_joinem(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5860};
5961
6062
r17967r17968
6264
6365
6466
65SCREEN_UPDATE_IND16( jack );
6667
6768
6869
69SCREEN_UPDATE_IND16( joinem );
70
71
trunk/src/mame/includes/tumblep.h
r17967r17968
3030   DECLARE_WRITE16_MEMBER(tumblep_oki_w);
3131   DECLARE_DRIVER_INIT(tumblep);
3232   virtual void machine_start();
33   UINT32 screen_update_tumblep(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3334};
3435
3536
3637
3738/*----------- defined in video/tumblep.c -----------*/
3839
39SCREEN_UPDATE_IND16( tumblep );
40
trunk/src/mame/includes/dogfgt.h
r17967r17968
5252   virtual void machine_reset();
5353   virtual void video_start();
5454   virtual void palette_init();
55   UINT32 screen_update_dogfgt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5556};
5657
5758
r17967r17968
6061
6162
6263
63SCREEN_UPDATE_IND16( dogfgt );
64
trunk/src/mame/includes/dietgo.h
r17967r17968
2525   device_t *m_deco_tilegen1;
2626   DECLARE_DRIVER_INIT(dietgo);
2727   virtual void machine_start();
28   UINT32 screen_update_dietgo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2829};
2930
3031
3132
3233/*----------- defined in video/dietgo.c -----------*/
3334
34SCREEN_UPDATE_IND16( dietgo );
35
trunk/src/mame/includes/vigilant.h
r17967r17968
2626   DECLARE_WRITE8_MEMBER(vigilant_rear_color_w);
2727   virtual void video_start();
2828   virtual void video_reset();
29   UINT32 screen_update_vigilant(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
30   UINT32 screen_update_kikcubic(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2931};
3032
3133
r17967r17968
3335
3436
3537
36SCREEN_UPDATE_IND16( vigilant );
37SCREEN_UPDATE_IND16( kikcubic );
38
39
trunk/src/mame/includes/taitosj.h
r17967r17968
8888   virtual void machine_start();
8989   virtual void machine_reset();
9090   virtual void video_start();
91   UINT32 screen_update_taitosj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
92   UINT32 screen_update_kikstart(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
9193};
9294
9395
r17967r17968
101103/*----------- defined in video/taitosj.c -----------*/
102104
103105
104SCREEN_UPDATE_IND16( taitosj );
105SCREEN_UPDATE_IND16( kikstart );
106
107
trunk/src/mame/includes/kingobox.h
r17967r17968
5656   DECLARE_PALETTE_INIT(kingofb);
5757   DECLARE_VIDEO_START(ringking);
5858   DECLARE_PALETTE_INIT(ringking);
59   UINT32 screen_update_kingofb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
60   UINT32 screen_update_ringking(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5961};
6062
6163
r17967r17968
6466
6567
6668
67SCREEN_UPDATE_IND16( kingofb );
6869
6970
7071
71SCREEN_UPDATE_IND16( ringking );
72
73
trunk/src/mame/includes/esripsys.h
r17967r17968
9292   DECLARE_WRITE8_MEMBER(esripsys_dac_w);
9393   DECLARE_DRIVER_INIT(esripsys);
9494   virtual void video_start();
95   UINT32 screen_update_esripsys(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
9596};
9697
9798
9899/*----------- defined in video/esripsys.c -----------*/
99100
100101
101SCREEN_UPDATE_RGB32( esripsys );
102102
103
103104INTERRUPT_GEN( esripsys_vblank_irq );
104105
105106int esripsys_draw(running_machine &machine, int l, int r, int fig, int attr, int addr, int col, int x_scale, int bank);
trunk/src/mame/includes/nbmj8991.h
r17967r17968
5151   DECLARE_DRIVER_INIT(qmhayaku);
5252   virtual void machine_reset();
5353   virtual void video_start();
54   UINT32 screen_update_nbmj8991_type1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
55   UINT32 screen_update_nbmj8991_type2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5456};
5557
5658
5759/*----------- defined in video/nbmj8991.c -----------*/
5860
59SCREEN_UPDATE_IND16( nbmj8991_type1 );
60SCREEN_UPDATE_IND16( nbmj8991_type2 );
6161
6262
63
64
trunk/src/mame/includes/galivan.h
r17967r17968
5656   DECLARE_MACHINE_START(ninjemak);
5757   DECLARE_MACHINE_RESET(ninjemak);
5858   DECLARE_VIDEO_START(ninjemak);
59   UINT32 screen_update_galivan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
60   UINT32 screen_update_ninjemak(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5961};
6062
6163
r17967r17968
6971
7072
7173
72SCREEN_UPDATE_IND16( galivan );
73SCREEN_UPDATE_IND16( ninjemak );
74
75
trunk/src/mame/includes/blockout.h
r17967r17968
3434   virtual void machine_start();
3535   virtual void machine_reset();
3636   virtual void video_start();
37   UINT32 screen_update_blockout(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3738};
3839
3940
r17967r17968
4142
4243
4344
44SCREEN_UPDATE_IND16( blockout );
45
trunk/src/mame/includes/tsamurai.h
r17967r17968
5757   TILE_GET_INFO_MEMBER(get_vsgongf_tile_info);
5858   DECLARE_VIDEO_START(tsamurai);
5959   DECLARE_VIDEO_START(vsgongf);
60   UINT32 screen_update_tsamurai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
61   UINT32 screen_update_vsgongf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6062};
6163
6264
r17967r17968
6668
6769
6870
69SCREEN_UPDATE_IND16( tsamurai );
7071
7172
72SCREEN_UPDATE_IND16( vsgongf );
73
74
trunk/src/mame/includes/canyon.h
r17967r17968
3636   TILE_GET_INFO_MEMBER(get_bg_tile_info);
3737   virtual void video_start();
3838   virtual void palette_init();
39   UINT32 screen_update_canyon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3940};
4041
4142
r17967r17968
5253/*----------- defined in video/canyon.c -----------*/
5354
5455
55SCREEN_UPDATE_IND16( canyon );
5656
57
trunk/src/mame/includes/splash.h
r17967r17968
6262   virtual void video_start();
6363   DECLARE_MACHINE_RESET(splash);
6464   DECLARE_MACHINE_RESET(funystrp);
65   UINT32 screen_update_splash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
66   UINT32 screen_update_funystrp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6567};
6668
6769
6870/*----------- defined in video/splash.c -----------*/
6971
7072
71SCREEN_UPDATE_IND16( splash );
72SCREEN_UPDATE_IND16( funystrp );
73
74
trunk/src/mame/includes/f1gp.h
r17967r17968
7373   DECLARE_MACHINE_START(f1gpb);
7474   DECLARE_VIDEO_START(f1gpb);
7575   DECLARE_VIDEO_START(f1gp2);
76   UINT32 screen_update_f1gp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
77   UINT32 screen_update_f1gpb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
78   UINT32 screen_update_f1gp2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7679};
7780
7881/*----------- defined in video/f1gp.c -----------*/
r17967r17968
8184
8285
8386
84SCREEN_UPDATE_IND16( f1gp );
85SCREEN_UPDATE_IND16( f1gpb );
86SCREEN_UPDATE_IND16( f1gp2 );
87
88
89
trunk/src/mame/includes/lvcards.h
r17967r17968
2323   DECLARE_MACHINE_START(lvpoker);
2424   DECLARE_MACHINE_RESET(lvpoker);
2525   DECLARE_PALETTE_INIT(ponttehk);
26   UINT32 screen_update_lvcards(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2627};
2728
2829
r17967r17968
3233
3334
3435
35SCREEN_UPDATE_IND16( lvcards );
36
trunk/src/mame/includes/route16.h
r17967r17968
2828   DECLARE_WRITE8_MEMBER(stratvox_sn76477_w);
2929   DECLARE_DRIVER_INIT(route16);
3030   DECLARE_DRIVER_INIT(route16a);
31   UINT32 screen_update_route16(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
32   UINT32 screen_update_stratvox(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
33   UINT32 screen_update_ttmahjng(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
3134};
3235
3336
3437/*----------- defined in video/route16.c -----------*/
3538
36SCREEN_UPDATE_RGB32( route16 );
37SCREEN_UPDATE_RGB32( stratvox );
38SCREEN_UPDATE_RGB32( ttmahjng );
39
40
41
trunk/src/mame/includes/tecmosys.h
r17967r17968
7979   TILE_GET_INFO_MEMBER(get_fg_tile_info);
8080   virtual void machine_start();
8181   virtual void video_start();
82   UINT32 screen_update_tecmosys(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
8283};
8384
8485
r17967r17968
9192/*----------- defined in video/tecmosys.c -----------*/
9293
9394
94SCREEN_UPDATE_RGB32(tecmosys);
9595
96
trunk/src/mame/includes/snk6502.h
r17967r17968
6060   DECLARE_MACHINE_RESET(satansat);
6161   DECLARE_MACHINE_RESET(pballoon);
6262   DECLARE_VIDEO_START(pballoon);
63   UINT32 screen_update_snk6502(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6364};
6465
6566
r17967r17968
119120
120121
121122
122SCREEN_UPDATE_IND16( snk6502 );
123123
124124
125125
126126
127127
128128
129
trunk/src/mame/includes/polyplay.h
r17967r17968
3232   virtual void machine_reset();
3333   virtual void video_start();
3434   virtual void palette_init();
35   UINT32 screen_update_polyplay(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3536};
3637
3738
r17967r17968
4849
4950
5051
51SCREEN_UPDATE_IND16( polyplay );
52
trunk/src/mame/includes/exidy440.h
r17967r17968
6767   virtual void machine_reset();
6868   DECLARE_VIDEO_START(exidy440);
6969   DECLARE_VIDEO_START(topsecex);
70   UINT32 screen_update_exidy440(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
71   UINT32 screen_update_topsecex(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7072};
7173
7274
trunk/src/mame/includes/exzisus.h
r17967r17968
3636   DECLARE_WRITE8_MEMBER(exzisus_videoram_1_w);
3737   DECLARE_WRITE8_MEMBER(exzisus_objectram_0_w);
3838   DECLARE_WRITE8_MEMBER(exzisus_objectram_1_w);
39   UINT32 screen_update_exzisus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3940};
4041
4142
4243/*----------- defined in video/exzisus.c -----------*/
4344
4445
45SCREEN_UPDATE_IND16( exzisus );
4646
4747
48
trunk/src/mame/includes/tx1.h
r17967r17968
168168   DECLARE_VIDEO_START(buggyboy);
169169   DECLARE_PALETTE_INIT(buggyboy);
170170   DECLARE_VIDEO_START(buggybjr);
171   UINT32 screen_update_tx1_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
172   UINT32 screen_update_tx1_middle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
173   UINT32 screen_update_tx1_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
174   UINT32 screen_update_buggyboy_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
175   UINT32 screen_update_buggyboy_middle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
176   UINT32 screen_update_buggyboy_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
177   UINT32 screen_update_buggybjr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
178   void screen_eof_tx1(screen_device &screen, bool state);
179   void screen_eof_buggyboy(screen_device &screen, bool state);
171180};
172181
173182
r17967r17968
237246
238247
239248
240SCREEN_UPDATE_IND16( tx1_left );
241SCREEN_UPDATE_IND16( tx1_middle );
242SCREEN_UPDATE_IND16( tx1_right );
243SCREEN_VBLANK( tx1 );
244249
245250
246251
247SCREEN_UPDATE_IND16( buggyboy_left );
248SCREEN_UPDATE_IND16( buggyboy_middle );
249SCREEN_UPDATE_IND16( buggyboy_right );
250SCREEN_VBLANK( buggyboy );
251252
252253
253SCREEN_UPDATE_IND16( buggybjr );
254
255
256
257
258
259
260
261
262
trunk/src/mame/includes/dassault.h
r17967r17968
5959   DECLARE_DRIVER_INIT(thndzone);
6060   DECLARE_DRIVER_INIT(dassault);
6161   virtual void video_start();
62   UINT32 screen_update_dassault(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
6263};
6364
6465
r17967r17968
6667/*----------- defined in video/dassault.c -----------*/
6768
6869
69SCREEN_UPDATE_RGB32( dassault );
70
trunk/src/mame/includes/pingpong.h
r17967r17968
2626   TILE_GET_INFO_MEMBER(get_bg_tile_info);
2727   virtual void video_start();
2828   virtual void palette_init();
29   UINT32 screen_update_pingpong(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2930};
3031
3132
r17967r17968
3435
3536
3637
37SCREEN_UPDATE_IND16( pingpong );
38
trunk/src/mame/includes/ssrj.h
r17967r17968
2929   virtual void machine_reset();
3030   virtual void video_start();
3131   virtual void palette_init();
32   UINT32 screen_update_ssrj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
33   void screen_eof_ssrj(screen_device &screen, bool state);
3234};
3335
3436
r17967r17968
3638
3739
3840
39SCREEN_UPDATE_IND16( ssrj );
40SCREEN_VBLANK( ssrj );
4141
42
43
trunk/src/mame/includes/blstroid.h
r17967r17968
2121   DECLARE_MACHINE_START(blstroid);
2222   DECLARE_MACHINE_RESET(blstroid);
2323   DECLARE_VIDEO_START(blstroid);
24   UINT32 screen_update_blstroid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2425};
2526
2627
2728/*----------- defined in video/blstroid.c -----------*/
2829
2930
30SCREEN_UPDATE_IND16( blstroid );
3131
32
3233void blstroid_scanline_update(screen_device &screen, int scanline);
trunk/src/mame/includes/gotya.h
r17967r17968
3737   virtual void machine_reset();
3838   virtual void video_start();
3939   virtual void palette_init();
40   UINT32 screen_update_gotya(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4041};
4142
4243
r17967r17968
4950
5051
5152
52SCREEN_UPDATE_IND16( gotya );
53
trunk/src/mame/includes/tatsumi.h
r17967r17968
120120   DECLARE_VIDEO_START(roundup5);
121121   DECLARE_VIDEO_START(cyclwarr);
122122   DECLARE_VIDEO_START(bigfight);
123   UINT32 screen_update_apache3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
124   UINT32 screen_update_roundup5(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
125   UINT32 screen_update_cyclwarr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
126   UINT32 screen_update_bigfight(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
123127};
124128
125129
r17967r17968
141145
142146
143147
144SCREEN_UPDATE_RGB32( roundup5 );
145SCREEN_UPDATE_RGB32( apache3 );
146SCREEN_UPDATE_RGB32( cyclwarr );
147SCREEN_UPDATE_RGB32( bigfight );
148148
149
150
151
152
trunk/src/mame/includes/supbtime.h
r17967r17968
2828   DECLARE_READ16_MEMBER(supbtime_controls_r);
2929   DECLARE_WRITE16_MEMBER(sound_w);
3030   virtual void machine_start();
31   UINT32 screen_update_supbtime(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3132};
3233
3334
3435
3536/*----------- defined in video/supbtime.c -----------*/
3637
37SCREEN_UPDATE_IND16( supbtime );
38
trunk/src/mame/includes/blmbycar.h
r17967r17968
4949   DECLARE_MACHINE_RESET(blmbycar);
5050   DECLARE_MACHINE_START(watrball);
5151   DECLARE_MACHINE_RESET(watrball);
52   UINT32 screen_update_blmbycar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5253};
5354
5455
r17967r17968
5758
5859
5960
60SCREEN_UPDATE_IND16( blmbycar );
61
trunk/src/mame/includes/retofinv.h
r17967r17968
6161   TILE_GET_INFO_MEMBER(fg_get_tile_info);
6262   virtual void video_start();
6363   virtual void palette_init();
64   UINT32 screen_update_retofinv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6465};
6566
6667
r17967r17968
7273
7374
7475
75SCREEN_UPDATE_IND16( retofinv );
76
trunk/src/mame/includes/gbusters.h
r17967r17968
4040   virtual void machine_start();
4141   virtual void machine_reset();
4242   virtual void video_start();
43   UINT32 screen_update_gbusters(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4344};
4445
4546/*----------- defined in video/gbusters.c -----------*/
r17967r17968
4849extern void gbusters_sprite_callback(running_machine &machine, int *code,int *color,int *priority,int *shadow);
4950
5051
51SCREEN_UPDATE_IND16( gbusters );
52
trunk/src/mame/includes/meadows.h
r17967r17968
4545   TILE_GET_INFO_MEMBER(get_tile_info);
4646   virtual void video_start();
4747   virtual void palette_init();
48   UINT32 screen_update_meadows(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4849};
4950
5051
r17967r17968
5859/*----------- defined in video/meadows.c -----------*/
5960
6061
61SCREEN_UPDATE_IND16( meadows );
6262
63
trunk/src/mame/includes/bogeyman.h
r17967r17968
4545   virtual void machine_reset();
4646   virtual void video_start();
4747   virtual void palette_init();
48   UINT32 screen_update_bogeyman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4849};
4950
5051
r17967r17968
5354
5455
5556
56SCREEN_UPDATE_IND16( bogeyman );
57
trunk/src/mame/includes/srmp2.h
r17967r17968
4646   DECLARE_MACHINE_START(srmp3);
4747   DECLARE_PALETTE_INIT(srmp3);
4848   DECLARE_MACHINE_START(rmgoldyh);
49   UINT32 screen_update_srmp2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
50   UINT32 screen_update_srmp3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
51   UINT32 screen_update_mjyuugi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4952};
5053
5154
5255/*----------- defined in video/srmp2.c -----------*/
5356
5457
55SCREEN_UPDATE_IND16( srmp2 );
5658
57SCREEN_UPDATE_IND16( srmp3 );
58SCREEN_UPDATE_IND16( mjyuugi );
59
60
61
trunk/src/mame/includes/m72.h
r17967r17968
115115   DECLARE_VIDEO_START(poundfor);
116116   DECLARE_MACHINE_START(kengo);
117117   DECLARE_MACHINE_RESET(kengo);
118   UINT32 screen_update_m72(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
119   UINT32 screen_update_majtitle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
118120};
119121
120122
r17967r17968
129131
130132
131133
132SCREEN_UPDATE_IND16( m72 );
133SCREEN_UPDATE_IND16( majtitle );
134
135
trunk/src/mame/includes/pokechmp.h
r17967r17968
1717   DECLARE_DRIVER_INIT(pokechmp);
1818   TILE_GET_INFO_MEMBER(get_bg_tile_info);
1919   virtual void video_start();
20   UINT32 screen_update_pokechmp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2021};
2122
2223
r17967r17968
2425
2526
2627
27SCREEN_UPDATE_IND16( pokechmp );
28
trunk/src/mame/includes/ohmygod.h
r17967r17968
3737   virtual void machine_start();
3838   virtual void machine_reset();
3939   virtual void video_start();
40   UINT32 screen_update_ohmygod(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4041};
4142
4243
r17967r17968
4445
4546
4647
47SCREEN_UPDATE_IND16( ohmygod );
48
trunk/src/mame/includes/snk68.h
r17967r17968
4343   TILE_GET_INFO_MEMBER(get_searchar_tile_info);
4444   virtual void video_start();
4545   DECLARE_VIDEO_START(searchar);
46   UINT32 screen_update_pow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4647};
4748
4849
r17967r17968
5051
5152
5253
53SCREEN_UPDATE_IND16( pow );
54
trunk/src/mame/includes/madalien.h
r17967r17968
6262   TILE_GET_INFO_MEMBER(get_tile_info_FG);
6363   DECLARE_VIDEO_START(madalien);
6464   DECLARE_PALETTE_INIT(madalien);
65   UINT32 screen_update_madalien(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6566};
6667
6768
trunk/src/mame/includes/aeroboto.h
r17967r17968
5858   virtual void machine_start();
5959   virtual void machine_reset();
6060   virtual void video_start();
61   UINT32 screen_update_aeroboto(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6162};
6263
6364
6465/*----------- defined in video/aeroboto.c -----------*/
6566
6667
67SCREEN_UPDATE_IND16( aeroboto );
6868
69
trunk/src/mame/includes/firetrap.h
r17967r17968
7070   virtual void machine_reset();
7171   virtual void video_start();
7272   virtual void palette_init();
73   UINT32 screen_update_firetrap(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7374};
7475
7576
r17967r17968
7879
7980
8081
81SCREEN_UPDATE_IND16( firetrap );
82
trunk/src/mame/includes/crgolf.h
r17967r17968
5353   virtual void machine_start();
5454   virtual void machine_reset();
5555   DECLARE_VIDEO_START(crgolf);
56   UINT32 screen_update_crgolf(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
5657};
5758
5859/*----------- defined in video/crgolf.c -----------*/
trunk/src/mame/includes/thedeep.h
r17967r17968
4949   virtual void machine_reset();
5050   virtual void video_start();
5151   virtual void palette_init();
52   UINT32 screen_update_thedeep(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5253};
5354
5455
r17967r17968
5758
5859
5960
60SCREEN_UPDATE_IND16( thedeep );
6161
62
trunk/src/mame/includes/oneshot.h
r17967r17968
4949   virtual void machine_start();
5050   virtual void machine_reset();
5151   virtual void video_start();
52   UINT32 screen_update_oneshot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
53   UINT32 screen_update_maddonna(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5254};
5355
5456/*----------- defined in video/oneshot.c -----------*/
5557
5658
5759
58SCREEN_UPDATE_IND16( oneshot );
59SCREEN_UPDATE_IND16( maddonna );
60
61
trunk/src/mame/includes/stlforce.h
r17967r17968
4343   TILE_GET_INFO_MEMBER(get_stlforce_mhigh_tile_info);
4444   TILE_GET_INFO_MEMBER(get_stlforce_tx_tile_info);
4545   virtual void video_start();
46   UINT32 screen_update_stlforce(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4647};
4748
4849
4950/*----------- defined in video/stlforce.c -----------*/
5051
5152
52SCREEN_UPDATE_IND16( stlforce );
53
trunk/src/mame/includes/topspeed.h
r17967r17968
5454   DECLARE_CUSTOM_INPUT_MEMBER(topspeed_pedal_r);
5555   virtual void machine_start();
5656   virtual void machine_reset();
57   UINT32 screen_update_topspeed(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5758};
5859
5960
6061/*----------- defined in video/topspeed.c -----------*/
6162
62SCREEN_UPDATE_IND16( topspeed );
63
trunk/src/mame/includes/amspdwy.h
r17967r17968
4343   virtual void machine_start();
4444   virtual void machine_reset();
4545   virtual void video_start();
46   UINT32 screen_update_amspdwy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4647};
4748
4849
r17967r17968
5051
5152
5253
53SCREEN_UPDATE_IND16( amspdwy );
54
trunk/src/mame/includes/fantland.h
r17967r17968
4747   DECLARE_MACHINE_RESET(fantland);
4848   DECLARE_MACHINE_START(borntofi);
4949   DECLARE_MACHINE_RESET(borntofi);
50   UINT32 screen_update_fantland(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5051};
5152
5253
5354/*----------- defined in video/fantland.c -----------*/
5455
55SCREEN_UPDATE_IND16( fantland );
56
trunk/src/mame/includes/atarig1.h
r17967r17968
4949   DECLARE_MACHINE_START(atarig1);
5050   DECLARE_MACHINE_RESET(atarig1);
5151   DECLARE_VIDEO_START(atarig1);
52   UINT32 screen_update_atarig1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
53   void screen_eof_atarig1(screen_device &screen, bool state);
5254};
5355
5456
r17967r17968
5658
5759
5860
59SCREEN_VBLANK( atarig1 );
60SCREEN_UPDATE_IND16( atarig1 );
6161
62
63
6264void atarig1_scanline_update(screen_device &screen, int scanline);
trunk/src/mame/includes/bladestl.h
r17967r17968
3434   virtual void machine_start();
3535   virtual void machine_reset();
3636   virtual void palette_init();
37   UINT32 screen_update_bladestl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3738};
3839
3940
r17967r17968
4243
4344
4445
45SCREEN_UPDATE_IND16( bladestl );
4646
47
4748void bladestl_tile_callback(running_machine &machine, int layer, int bank, int *code, int *color, int *flags);
4849void bladestl_sprite_callback(running_machine &machine, int *code, int *color);
trunk/src/mame/includes/toobin.h
r17967r17968
2525   DECLARE_MACHINE_START(toobin);
2626   DECLARE_MACHINE_RESET(toobin);
2727   DECLARE_VIDEO_START(toobin);
28   UINT32 screen_update_toobin(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
2829};
2930
3031
r17967r17968
3738DECLARE_WRITE16_HANDLER( toobin_slip_w );
3839
3940
40SCREEN_UPDATE_RGB32( toobin );
41
trunk/src/mame/includes/srumbler.h
r17967r17968
2727   TILE_GET_INFO_MEMBER(get_bg_tile_info);
2828   virtual void machine_start();
2929   virtual void video_start();
30   UINT32 screen_update_srumbler(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3031};
3132
3233
r17967r17968
3435
3536
3637
37SCREEN_UPDATE_IND16( srumbler );
38SCREEN_VBLANK( srumbler );
38
39
trunk/src/mame/includes/legionna.h
r17967r17968
4949   DECLARE_VIDEO_START(denjinmk);
5050   DECLARE_VIDEO_START(grainbow);
5151   DECLARE_VIDEO_START(cupsoc);
52   UINT32 screen_update_legionna(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
53   UINT32 screen_update_godzilla(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
54   UINT32 screen_update_grainbow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5255};
5356
5457
r17967r17968
5760void heatbrl_setgfxbank(running_machine &machine, UINT16 data);
5861void denjinmk_setgfxbank(running_machine &machine, UINT16 data);
5962
60SCREEN_UPDATE_IND16( legionna );
61SCREEN_UPDATE_IND16( godzilla );
62SCREEN_UPDATE_IND16( grainbow );
63
64
65
trunk/src/mame/includes/pbaction.h
r17967r17968
5151   virtual void machine_start();
5252   virtual void machine_reset();
5353   virtual void video_start();
54   UINT32 screen_update_pbaction(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5455};
5556
5657
trunk/src/mame/includes/mcr68.h
r17967r17968
9696   DECLARE_MACHINE_START(mcr68);
9797   DECLARE_MACHINE_RESET(mcr68);
9898   DECLARE_VIDEO_START(mcr68);
99   UINT32 screen_update_zwackery(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
100   UINT32 screen_update_mcr68(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
99101};
100102
101103/*----------- defined in machine/mcr68.c -----------*/
r17967r17968
118120
119121
120122
121SCREEN_UPDATE_IND16( mcr68 );
122123
123124
124125
125SCREEN_UPDATE_IND16( zwackery );
126
127
trunk/src/mame/includes/funworld.h
r17967r17968
2929   DECLARE_VIDEO_START(funworld);
3030   DECLARE_PALETTE_INIT(funworld);
3131   DECLARE_VIDEO_START(magicrd2);
32   UINT32 screen_update_funworld(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3233};
3334
3435
r17967r17968
3738
3839
3940
40SCREEN_UPDATE_IND16( funworld );
41
trunk/src/mame/includes/overdriv.h
r17967r17968
4242   DECLARE_READ8_MEMBER(overdriv_2_sound_r);
4343   virtual void machine_start();
4444   virtual void machine_reset();
45   UINT32 screen_update_overdriv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4546};
4647
4748/*----------- defined in video/overdriv.c -----------*/
r17967r17968
5051extern void overdriv_zoom_callback_0(running_machine &machine, int *code,int *color,int *flags);
5152extern void overdriv_zoom_callback_1(running_machine &machine, int *code,int *color,int *flags);
5253
53SCREEN_UPDATE_IND16( overdriv );
54
trunk/src/mame/includes/thunderx.h
r17967r17968
5050   DECLARE_MACHINE_RESET(scontra);
5151   DECLARE_MACHINE_START(thunderx);
5252   DECLARE_MACHINE_RESET(thunderx);
53   UINT32 screen_update_scontra(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5354};
5455
5556
r17967r17968
5960extern void thunderx_sprite_callback(running_machine &machine, int *code,int *color,int *priority_mask,int *shadow);
6061
6162
62SCREEN_UPDATE_IND16( scontra );
63
trunk/src/mame/includes/spcforce.h
r17967r17968
3333   DECLARE_WRITE8_MEMBER(irq_mask_w);
3434   DECLARE_WRITE8_MEMBER(spcforce_flip_screen_w);
3535   virtual void palette_init();
36   UINT32 screen_update_spcforce(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3637};
3738
3839
3940/*----------- defined in video/spcforce.c -----------*/
4041
41SCREEN_UPDATE_IND16( spcforce );
42
trunk/src/mame/includes/gsword.h
r17967r17968
4545   DECLARE_PALETTE_INIT(gsword);
4646   DECLARE_MACHINE_RESET(josvolly);
4747   DECLARE_PALETTE_INIT(josvolly);
48   UINT32 screen_update_gsword(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4849};
4950
5051
r17967r17968
5455
5556
5657
57SCREEN_UPDATE_IND16( gsword );
58
trunk/src/mame/includes/xmen.h
r17967r17968
4949   virtual void machine_start();
5050   virtual void machine_reset();
5151   DECLARE_VIDEO_START(xmen6p);
52   UINT32 screen_update_xmen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
53   UINT32 screen_update_xmen6p_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
54   UINT32 screen_update_xmen6p_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
55   void screen_eof_xmen6p(screen_device &screen, bool state);
5256};
5357
5458/*----------- defined in video/xmen.c -----------*/
r17967r17968
5761void xmen_sprite_callback(running_machine &machine, int *code,int *color,int *priority_mask);
5862
5963
60SCREEN_UPDATE_IND16( xmen );
61SCREEN_UPDATE_IND16( xmen6p_left );
62SCREEN_UPDATE_IND16( xmen6p_right );
63SCREEN_VBLANK( xmen6p );
64
65
66
67
trunk/src/mame/includes/mario.h
r17967r17968
8181   TILE_GET_INFO_MEMBER(get_bg_tile_info);
8282   virtual void video_start();
8383   virtual void palette_init();
84   UINT32 screen_update_mario(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8485};
8586
8687/*----------- defined in video/mario.c -----------*/
r17967r17968
8889
8990
9091
91SCREEN_UPDATE_IND16( mario );
9292
9393
94
9495/*----------- defined in audio/mario.c -----------*/
9596
9697DECLARE_WRITE8_DEVICE_HANDLER( mario_sh1_w );
trunk/src/mame/includes/nbmj8900.h
r17967r17968
4444   DECLARE_DRIVER_INIT(togenkyo);
4545   DECLARE_DRIVER_INIT(ohpaipee);
4646   virtual void video_start();
47   UINT32 screen_update_nbmj8900(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4748};
4849
4950
5051/*----------- defined in video/nbmj8900.c -----------*/
5152
52SCREEN_UPDATE_IND16( nbmj8900 );
5353
5454
55
trunk/src/mame/includes/silkroad.h
r17967r17968
2828   TILE_GET_INFO_MEMBER(get_fg2_tile_info);
2929   TILE_GET_INFO_MEMBER(get_fg3_tile_info);
3030   virtual void video_start();
31   UINT32 screen_update_silkroad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3132};
3233
3334
3435/*----------- defined in video/silkroad.c -----------*/
3536
3637
37SCREEN_UPDATE_IND16(silkroad);
38
trunk/src/mame/includes/atarifb.h
r17967r17968
7979   virtual void machine_reset();
8080   virtual void video_start();
8181   virtual void palette_init();
82   UINT32 screen_update_atarifb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
83   UINT32 screen_update_abaseb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
84   UINT32 screen_update_soccer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8285};
8386
8487
r17967r17968
98101/*----------- defined in video/atarifb.c -----------*/
99102
100103
101SCREEN_UPDATE_IND16( atarifb );
102SCREEN_UPDATE_IND16( abaseb );
103SCREEN_UPDATE_IND16( soccer );
104104
105
106
107
trunk/src/mame/includes/lethal.h
r17967r17968
3939   virtual void machine_start();
4040   virtual void machine_reset();
4141   virtual void video_start();
42   UINT32 screen_update_lethalen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4243};
4344
4445/*----------- defined in video/lethal.c -----------*/
r17967r17968
4849
4950
5051
51SCREEN_UPDATE_IND16(lethalen);
52
trunk/src/mame/includes/videopin.h
r17967r17968
4141   TILE_GET_INFO_MEMBER(get_tile_info);
4242   virtual void machine_reset();
4343   virtual void video_start();
44   UINT32 screen_update_videopin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4445};
4546
4647
r17967r17968
5354
5455
5556
56SCREEN_UPDATE_IND16( videopin );
5757
58
trunk/src/mame/includes/exprraid.h
r17967r17968
5353   virtual void machine_start();
5454   virtual void machine_reset();
5555   virtual void video_start();
56   UINT32 screen_update_exprraid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5657};
5758
5859
trunk/src/mame/includes/tecmo16.h
r17967r17968
4949   virtual void video_start();
5050   DECLARE_VIDEO_START(ginkun);
5151   DECLARE_VIDEO_START(riot);
52   UINT32 screen_update_tecmo16(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
5253};
5354
5455
r17967r17968
5960
6061
6162
62SCREEN_UPDATE_RGB32( tecmo16 );
63
trunk/src/mame/includes/naughtyb.h
r17967r17968
3131   DECLARE_DRIVER_INIT(popflame);
3232   virtual void video_start();
3333   virtual void palette_init();
34   UINT32 screen_update_naughtyb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3435};
3536
3637
r17967r17968
3940
4041
4142
42SCREEN_UPDATE_IND16( naughtyb );
43
trunk/src/mame/includes/runaway.h
r17967r17968
2424   virtual void machine_reset();
2525   virtual void video_start();
2626   DECLARE_VIDEO_START(qwak);
27   UINT32 screen_update_runaway(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
28   UINT32 screen_update_qwak(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2729};
2830
2931
r17967r17968
3133
3234
3335
34SCREEN_UPDATE_IND16( runaway );
35SCREEN_UPDATE_IND16( qwak );
3636
37
38
trunk/src/mame/includes/tumbleb.h
r17967r17968
9191   DECLARE_VIDEO_START(suprtrio);
9292   DECLARE_VIDEO_START(pangpang);
9393   DECLARE_VIDEO_START(sdfight);
94   UINT32 screen_update_tumblepb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
95   UINT32 screen_update_jumpkids(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
96   UINT32 screen_update_fncywld(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
97   UINT32 screen_update_semicom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
98   UINT32 screen_update_suprtrio(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
99   UINT32 screen_update_pangpang(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
100   UINT32 screen_update_semicom_altoffsets(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
101   UINT32 screen_update_bcstory(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
102   UINT32 screen_update_semibase(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
103   UINT32 screen_update_sdfight(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
94104};
95105
96106
97107/*----------- defined in video/tumbleb.c -----------*/
98108
99SCREEN_UPDATE_IND16( tumblepb );
100SCREEN_UPDATE_IND16( jumpkids );
101SCREEN_UPDATE_IND16( fncywld );
102SCREEN_UPDATE_IND16( semicom );
103SCREEN_UPDATE_IND16( semicom_altoffsets );
104SCREEN_UPDATE_IND16( bcstory );
105SCREEN_UPDATE_IND16( semibase );
106SCREEN_UPDATE_IND16( suprtrio );
107SCREEN_UPDATE_IND16( pangpang );
108SCREEN_UPDATE_IND16( sdfight );
109
110
111
112
113
114
115
116
117
118
trunk/src/mame/includes/toypop.h
r17967r17968
4949   virtual void machine_reset();
5050   virtual void video_start();
5151   virtual void palette_init();
52   UINT32 screen_update_toypop(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5253};
5354
5455
5556/*----------- defined in video/toypop.c -----------*/
5657
5758
58SCREEN_UPDATE_IND16( toypop );
5959
60
trunk/src/mame/includes/momoko.h
r17967r17968
4545   DECLARE_WRITE8_MEMBER(momoko_flipscreen_w);
4646   virtual void machine_start();
4747   virtual void machine_reset();
48   UINT32 screen_update_momoko(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4849};
4950
5051
5152/*----------- defined in video/momoko.c -----------*/
5253
5354
54SCREEN_UPDATE_IND16( momoko );
55
trunk/src/mame/includes/kchamp.h
r17967r17968
4848   virtual void palette_init();
4949   DECLARE_MACHINE_START(kchampvs);
5050   DECLARE_MACHINE_START(kchamp);
51   UINT32 screen_update_kchampvs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
52   UINT32 screen_update_kchamp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5153};
5254
5355
r17967r17968
5658
5759
5860
59SCREEN_UPDATE_IND16( kchamp );
60SCREEN_UPDATE_IND16( kchampvs );
61
62
trunk/src/mame/includes/ultratnk.h
r17967r17968
3939   virtual void machine_reset();
4040   virtual void video_start();
4141   virtual void palette_init();
42   UINT32 screen_update_ultratnk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
43   void screen_eof_ultratnk(screen_device &screen, bool state);
4244};
4345
4446
r17967r17968
4648
4749
4850
49SCREEN_UPDATE_IND16( ultratnk );
50SCREEN_VBLANK( ultratnk );
5151
52
53
trunk/src/mame/includes/m90.h
r17967r17968
4040   virtual void video_start();
4141   DECLARE_VIDEO_START(bomblord);
4242   DECLARE_VIDEO_START(dynablsb);
43   UINT32 screen_update_m90(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
44   UINT32 screen_update_bomblord(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
45   UINT32 screen_update_dynablsb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4346};
4447
4548
r17967r17968
4851
4952
5053
51SCREEN_UPDATE_IND16( m90 );
52SCREEN_UPDATE_IND16( dynablsb );
53SCREEN_UPDATE_IND16( bomblord );
54
55
56
trunk/src/mame/includes/gunbustr.h
r17967r17968
3939   DECLARE_DRIVER_INIT(gunbustrj);
4040   DECLARE_DRIVER_INIT(gunbustr);
4141   virtual void video_start();
42   UINT32 screen_update_gunbustr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4243};
4344
4445
4546/*----------- defined in video/gunbustr.c -----------*/
4647
4748
48SCREEN_UPDATE_IND16( gunbustr );
49
trunk/src/mame/includes/scotrsht.h
r17967r17968
2525   TILE_GET_INFO_MEMBER(scotrsht_get_bg_tile_info);
2626   virtual void video_start();
2727   virtual void palette_init();
28   UINT32 screen_update_scotrsht(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2829};
2930
3031
r17967r17968
3334
3435
3536
36SCREEN_UPDATE_IND16( scotrsht );
37
trunk/src/mame/includes/taito_z.h
r17967r17968
7777   DECLARE_MACHINE_RESET(taitoz);
7878   DECLARE_VIDEO_START(taitoz);
7979   DECLARE_MACHINE_START(bshark);
80   UINT32 screen_update_contcirc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
81   UINT32 screen_update_chasehq(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
82   UINT32 screen_update_bshark(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
83   UINT32 screen_update_sci(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
84   UINT32 screen_update_aquajack(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
85   UINT32 screen_update_spacegun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
86   UINT32 screen_update_dblaxle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
87   UINT32 screen_update_racingb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8088};
8189
8290/*----------- defined in video/taito_z.c -----------*/
r17967r17968
8492
8593
8694
87SCREEN_UPDATE_IND16( contcirc );
88SCREEN_UPDATE_IND16( chasehq );
89SCREEN_UPDATE_IND16( bshark );
90SCREEN_UPDATE_IND16( sci );
91SCREEN_UPDATE_IND16( aquajack );
92SCREEN_UPDATE_IND16( spacegun );
93SCREEN_UPDATE_IND16( dblaxle );
94SCREEN_UPDATE_IND16( racingb );
95
96
97
98
99
100
101
102
trunk/src/mame/includes/phoenix.h
r17967r17968
3535   DECLARE_PALETTE_INIT(phoenix);
3636   DECLARE_PALETTE_INIT(survival);
3737   DECLARE_PALETTE_INIT(pleiads);
38   UINT32 screen_update_phoenix(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3839};
3940
4041
r17967r17968
8990
9091
9192
92SCREEN_UPDATE_IND16( phoenix );
9393
9494
95
9596DECLARE_READ8_DEVICE_HANDLER( survival_protection_r );
9697
9798READ_LINE_DEVICE_HANDLER( survival_sid_callback );
trunk/src/mame/includes/superqix.h
r17967r17968
7676   DECLARE_VIDEO_START(pbillian);
7777   DECLARE_MACHINE_START(superqix);
7878   DECLARE_VIDEO_START(superqix);
79   UINT32 screen_update_pbillian(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
80   UINT32 screen_update_superqix(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7981};
8082
8183
r17967r17968
8385
8486
8587
86SCREEN_UPDATE_IND16( pbillian );
8788
88SCREEN_UPDATE_IND16( superqix );
89
90
trunk/src/mame/includes/markham.h
r17967r17968
2626   TILE_GET_INFO_MEMBER(get_bg_tile_info);
2727   virtual void video_start();
2828   virtual void palette_init();
29   UINT32 screen_update_markham(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2930};
3031
3132
r17967r17968
3435
3536
3637
37SCREEN_UPDATE_IND16( markham );
38
trunk/src/mame/includes/msisaac.h
r17967r17968
7272   virtual void machine_reset();
7373   virtual void video_start();
7474   DECLARE_MACHINE_RESET(ta7630);
75   UINT32 screen_update_msisaac(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7576};
7677
7778
r17967r17968
7980
8081
8182
82SCREEN_UPDATE_IND16( msisaac );
8383
84
trunk/src/mame/includes/playch10.h
r17967r17968
114114   virtual void palette_init();
115115   DECLARE_MACHINE_START(playch10_hboard);
116116   DECLARE_VIDEO_START(playch10_hboard);
117   UINT32 screen_update_playch10_top(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
118   UINT32 screen_update_playch10_bottom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
119   UINT32 screen_update_playch10_single(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
117120};
118121
119122
r17967r17968
133136
134137
135138
136SCREEN_UPDATE_IND16( playch10_top );
137SCREEN_UPDATE_IND16( playch10_bottom );
139
140
trunk/src/mame/includes/dday.h
r17967r17968
5050   virtual void machine_reset();
5151   virtual void video_start();
5252   virtual void palette_init();
53   UINT32 screen_update_dday(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5354};
5455
5556
r17967r17968
5758
5859
5960
60SCREEN_UPDATE_IND16( dday );
6161
62
trunk/src/mame/includes/cyberbal.h
r17967r17968
5353   DECLARE_VIDEO_START(cyberbal);
5454   DECLARE_MACHINE_RESET(cyberbal2p);
5555   DECLARE_VIDEO_START(cyberbal2p);
56   UINT32 screen_update_cyberbal_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
57   UINT32 screen_update_cyberbal_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
58   UINT32 screen_update_cyberbal2p(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5659};
5760
5861
r17967r17968
7578
7679
7780
78SCREEN_UPDATE_IND16( cyberbal_left );
79SCREEN_UPDATE_IND16( cyberbal_right );
80SCREEN_UPDATE_IND16( cyberbal2p );
8181
82
83
84
8285void cyberbal_scanline_update(screen_device &screen, int scanline);
trunk/src/mame/includes/lockon.h
r17967r17968
103103   virtual void machine_reset();
104104   virtual void video_start();
105105   virtual void palette_init();
106   UINT32 screen_update_lockon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
107   void screen_eof_lockon(screen_device &screen, bool state);
106108};
107109
108110
r17967r17968
110112
111113
112114
113SCREEN_UPDATE_IND16( lockon );
114SCREEN_VBLANK( lockon );
115115
116
117
trunk/src/mame/includes/mappy.h
r17967r17968
4949   DECLARE_MACHINE_RESET(mappy);
5050   DECLARE_VIDEO_START(mappy);
5151   DECLARE_PALETTE_INIT(mappy);
52   UINT32 screen_update_superpac(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
53   UINT32 screen_update_phozon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
54   UINT32 screen_update_mappy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5255};
5356
5457
r17967r17968
5659
5760
5861
59SCREEN_UPDATE_IND16( phozon );
6062
6163
6264
6365
6466
65SCREEN_UPDATE_IND16( superpac );
66SCREEN_UPDATE_IND16( mappy );
67
68
69
trunk/src/mame/includes/rastan.h
r17967r17968
3333   DECLARE_WRITE8_MEMBER(rastan_msm5205_stop_w);
3434   virtual void machine_start();
3535   virtual void machine_reset();
36   UINT32 screen_update_rastan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3637};
3738
3839
3940/*----------- defined in video/rastan.c -----------*/
4041
4142
42SCREEN_UPDATE_IND16( rastan );
43
trunk/src/mame/includes/gijoe.h
r17967r17968
4444   virtual void machine_start();
4545   virtual void machine_reset();
4646   virtual void video_start();
47   UINT32 screen_update_gijoe(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4748};
4849
4950/*----------- defined in video/gijoe.c -----------*/
r17967r17968
5253extern void gijoe_tile_callback(running_machine &machine, int layer, int *code, int *color, int *flags);
5354
5455
55SCREEN_UPDATE_IND16( gijoe );
56
trunk/src/mame/includes/tigeroad.h
r17967r17968
2727   TILE_GET_INFO_MEMBER(get_fg_tile_info);
2828   TILEMAP_MAPPER_MEMBER(tigeroad_tilemap_scan);
2929   virtual void video_start();
30   UINT32 screen_update_tigeroad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3031};
3132
3233
3334/*----------- defined in video/tigeroad.c -----------*/
3435
3536
36SCREEN_UPDATE_IND16( tigeroad );
37
trunk/src/mame/includes/rltennis.h
r17967r17968
4646   virtual void machine_start();
4747   virtual void machine_reset();
4848   virtual void video_start();
49   UINT32 screen_update_rltennis(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4950};
5051
5152
5253
5354
54SCREEN_UPDATE_IND16( rltennis );
5555
56
trunk/src/mame/includes/segas32.h
r17967r17968
174174   DECLARE_MACHINE_RESET(system32);
175175   DECLARE_VIDEO_START(system32);
176176   DECLARE_VIDEO_START(multi32);
177   UINT32 screen_update_system32(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
178   UINT32 screen_update_multi32_left(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
179   UINT32 screen_update_multi32_right(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
177180};
178181
179182
r17967r17968
195198
196199
197200
198SCREEN_UPDATE_RGB32(system32);
199SCREEN_UPDATE_RGB32(multi32_left);
200SCREEN_UPDATE_RGB32(multi32_right);
201
202
203
201204void system32_set_vblank(running_machine &machine, int state);
202205
203206
trunk/src/mame/includes/metalmx.h
r17967r17968
4848   DECLARE_DRIVER_INIT(metalmx);
4949   virtual void machine_reset();
5050   virtual void video_start();
51   UINT32 screen_update_metalmx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5152};
trunk/src/mame/includes/badlands.h
r17967r17968
3030   DECLARE_MACHINE_RESET(badlands);
3131   DECLARE_VIDEO_START(badlands);
3232   DECLARE_MACHINE_RESET(badlandsb);
33   UINT32 screen_update_badlands(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3334};
3435
3536
r17967r17968
3839DECLARE_WRITE16_HANDLER( badlands_pf_bank_w );
3940
4041
41SCREEN_UPDATE_IND16( badlands );
42
trunk/src/mame/includes/slapfght.h
r17967r17968
123123   DECLARE_MACHINE_RESET(slapfight);
124124   DECLARE_VIDEO_START(perfrman);
125125   DECLARE_VIDEO_START(slapfight);
126   UINT32 screen_update_perfrman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
127   UINT32 screen_update_slapfight(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
126128};
127129
128130
r17967r17968
156158
157159/*----------- defined in video/slapfght.c -----------*/
158160
159SCREEN_UPDATE_IND16( slapfight );
160SCREEN_UPDATE_IND16( perfrman );
161161
162162
163163
164
165
trunk/src/mame/includes/psikyosh.h
r17967r17968
6565   DECLARE_DRIVER_INIT(s1945ii);
6666   virtual void machine_start();
6767   virtual void video_start();
68   UINT32 screen_update_psikyosh(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
6869};
6970
7071/*----------- defined in video/psikyosh.c -----------*/
7172
7273
73SCREEN_UPDATE_RGB32( psikyosh );
74SCREEN_VBLANK( psikyosh );
74
75
trunk/src/mame/includes/boogwing.h
r17967r17968
4747   DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
4848   DECLARE_DRIVER_INIT(boogwing);
4949   virtual void video_start();
50   UINT32 screen_update_boogwing(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
5051};
5152
5253
5354/*----------- defined in video/boogwing.c -----------*/
5455
5556
56SCREEN_UPDATE_RGB32( boogwing );
5757
58
trunk/src/mame/includes/quizdna.h
r17967r17968
2424   TILE_GET_INFO_MEMBER(get_bg_tile_info);
2525   TILE_GET_INFO_MEMBER(get_fg_tile_info);
2626   virtual void video_start();
27   UINT32 screen_update_quizdna(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2728};
2829
2930
3031/*----------- defined in video/quizdna.c -----------*/
3132
3233
33SCREEN_UPDATE_IND16( quizdna );
3434
3535
36
trunk/src/mame/includes/offtwall.h
r17967r17968
3333   DECLARE_MACHINE_START(offtwall);
3434   DECLARE_MACHINE_RESET(offtwall);
3535   DECLARE_VIDEO_START(offtwall);
36   UINT32 screen_update_offtwall(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3637};
3738
3839
3940/*----------- defined in video/offtwall.c -----------*/
4041
4142
42SCREEN_UPDATE_IND16( offtwall );
43
trunk/src/mame/includes/equites.h
r17967r17968
104104   DECLARE_PALETTE_INIT(equites);
105105   DECLARE_VIDEO_START(splndrbt);
106106   DECLARE_PALETTE_INIT(splndrbt);
107   UINT32 screen_update_equites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
108   UINT32 screen_update_splndrbt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
107109};
108110
109111
trunk/src/mame/includes/gradius3.h
r17967r17968
4848   virtual void machine_start();
4949   virtual void machine_reset();
5050   virtual void video_start();
51   UINT32 screen_update_gradius3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5152};
5253
5354/*----------- defined in video/gradius3.c -----------*/
r17967r17968
5758
5859
5960
60SCREEN_UPDATE_IND16( gradius3 );
61
trunk/src/mame/includes/mystwarr.h
r17967r17968
6767   DECLARE_VIDEO_START(gaiapols);
6868   DECLARE_MACHINE_RESET(martchmp);
6969   DECLARE_VIDEO_START(martchmp);
70   UINT32 screen_update_mystwarr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
71   UINT32 screen_update_metamrph(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
72   UINT32 screen_update_dadandrn(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
73   UINT32 screen_update_martchmp(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
7074};
7175
7276
r17967r17968
7882
7983
8084
81SCREEN_UPDATE_RGB32( dadandrn );
82SCREEN_UPDATE_RGB32( mystwarr );
83SCREEN_UPDATE_RGB32( metamrph );
84SCREEN_UPDATE_RGB32( martchmp );
8585
86
87
88
89
trunk/src/mame/includes/fromance.h
r17967r17968
8484   DECLARE_MACHINE_RESET(pipedrm);
8585   DECLARE_VIDEO_START(pipedrm);
8686   DECLARE_VIDEO_START(hatris);
87   UINT32 screen_update_fromance(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
88   UINT32 screen_update_pipedrm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8789};
8890
8991
r17967r17968
9395
9496
9597
96SCREEN_UPDATE_IND16( fromance );
97SCREEN_UPDATE_IND16( pipedrm );
9898
9999
100100
101101
102102
103
104
trunk/src/mame/includes/skykid.h
r17967r17968
4040   virtual void machine_start();
4141   virtual void video_start();
4242   virtual void palette_init();
43   UINT32 screen_update_skykid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4344};
4445
4546
4647/*----------- defined in video/skykid.c -----------*/
4748
4849
49SCREEN_UPDATE_IND16( skykid );
5050
5151
52
trunk/src/mame/includes/irobot.h
r17967r17968
7777   virtual void machine_reset();
7878   virtual void video_start();
7979   virtual void palette_init();
80   UINT32 screen_update_irobot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8081};
8182
8283/*----------- defined in machine/irobot.c -----------*/
r17967r17968
9293
9394
9495
95SCREEN_UPDATE_IND16( irobot );
9696
9797
98
9899void irobot_poly_clear(running_machine &machine);
99100void irobot_run_video(running_machine &machine);
trunk/src/mame/includes/klax.h
r17967r17968
1616   DECLARE_MACHINE_START(klax);
1717   DECLARE_MACHINE_RESET(klax);
1818   DECLARE_VIDEO_START(klax);
19   UINT32 screen_update_klax(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
1920};
2021
2122
r17967r17968
2425DECLARE_WRITE16_HANDLER( klax_latch_w );
2526
2627
27SCREEN_UPDATE_IND16( klax );
28
trunk/src/mame/includes/quizpani.h
r17967r17968
2121   TILE_GET_INFO_MEMBER(bg_tile_info);
2222   TILE_GET_INFO_MEMBER(txt_tile_info);
2323   virtual void video_start();
24   UINT32 screen_update_quizpani(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2425};
2526
2627
r17967r17968
2829
2930
3031
31SCREEN_UPDATE_IND16( quizpani );
32
trunk/src/mame/includes/gomoku.h
r17967r17968
2525   TILE_GET_INFO_MEMBER(get_fg_tile_info);
2626   virtual void video_start();
2727   virtual void palette_init();
28   UINT32 screen_update_gomoku(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2829};
2930
3031
r17967r17968
6263
6364
6465
65SCREEN_UPDATE_IND16( gomoku );
6666
67
trunk/src/mame/includes/djmain.h
r17967r17968
5353   virtual void machine_start();
5454   virtual void machine_reset();
5555   virtual void video_start();
56   UINT32 screen_update_djmain(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
5657};
5758
5859
5960/*----------- defined in video/djmain.c -----------*/
6061
61SCREEN_UPDATE_RGB32( djmain );
6262
6363
64
6465void djmain_tile_callback(running_machine& machine, int layer, int *code, int *color, int *flags);
trunk/src/mame/includes/firetrk.h
r17967r17968
101101   DECLARE_VIDEO_START(superbug);
102102   DECLARE_VIDEO_START(montecar);
103103   DECLARE_PALETTE_INIT(montecar);
104   UINT32 screen_update_firetrk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
105   UINT32 screen_update_superbug(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
106   UINT32 screen_update_montecar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
104107};
105108
106109
r17967r17968
126129
127130
128131
129SCREEN_UPDATE_IND16( firetrk );
130SCREEN_UPDATE_IND16( superbug );
131SCREEN_UPDATE_IND16( montecar );
132132
133133
134
135
136
trunk/src/mame/includes/m57.h
r17967r17968
2020   TILE_GET_INFO_MEMBER(get_tile_info);
2121   virtual void video_start();
2222   virtual void palette_init();
23   UINT32 screen_update_m57(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2324};
2425
2526/*----------- defined in video/m57.c -----------*/
r17967r17968
2728
2829
2930
30SCREEN_UPDATE_IND16( m57 );
31
trunk/src/mame/includes/segas24.h
r17967r17968
112112   DECLARE_DRIVER_INIT(sgmast);
113113   virtual void machine_start();
114114   virtual void machine_reset();
115   UINT32 screen_update_system24(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
115116};
116117
117118/*----------- defined in video/segas24.c -----------*/
118119
119SCREEN_UPDATE_IND16(system24);
120
trunk/src/mame/includes/mustache.h
r17967r17968
1919   virtual void machine_start();
2020   virtual void video_start();
2121   virtual void palette_init();
22   UINT32 screen_update_mustache(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2223};
2324
2425
2526/*----------- defined in video/mustache.c -----------*/
2627
2728
28SCREEN_UPDATE_IND16( mustache );
2929
30
trunk/src/mame/includes/neogeo.h
r17967r17968
207207   virtual void machine_reset();
208208   virtual void video_start();
209209   virtual void video_reset();
210   UINT32 screen_update_neogeo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
210211};
211212
212213
r17967r17968
308309
309310
310311
311SCREEN_UPDATE_RGB32( neogeo );
312312
313313
314
314315void neogeo_set_palette_bank(running_machine &machine, UINT8 data);
315316void neogeo_set_screen_dark(running_machine &machine, UINT8 data);
316317
trunk/src/mame/includes/snookr10.h
r17967r17968
2828   virtual void palette_init();
2929   DECLARE_VIDEO_START(apple10);
3030   DECLARE_PALETTE_INIT(apple10);
31   UINT32 screen_update_snookr10(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3132};
3233
3334
r17967r17968
3738
3839
3940
40SCREEN_UPDATE_IND16( snookr10 );
4141
42
trunk/src/mame/includes/konamigx.h
r17967r17968
7575   DECLARE_VIDEO_START(konamigx_type4_vsn);
7676   DECLARE_VIDEO_START(konamigx_type4_sd2);
7777   DECLARE_VIDEO_START(winspike);
78   UINT32 screen_update_konamigx(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
79   UINT32 screen_update_konamigx_left(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
80   UINT32 screen_update_konamigx_right(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
7881};
7982
8083
r17967r17968
160163
161164
162165
163SCREEN_UPDATE_RGB32(konamigx);
164SCREEN_UPDATE_RGB32(konamigx_left);
165SCREEN_UPDATE_RGB32(konamigx_right);
166166
167
168
169
167170extern int konamigx_current_frame;
168171
169172
trunk/src/mame/includes/sprcros2.h
r17967r17968
3030   virtual void machine_start();
3131   virtual void video_start();
3232   virtual void palette_init();
33   UINT32 screen_update_sprcros2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3334};
3435
3536
r17967r17968
3839
3940
4041
41SCREEN_UPDATE_IND16( sprcros2 );
42
trunk/src/mame/includes/vectrex.h
r17967r17968
6969   DECLARE_DRIVER_INIT(vectrex);
7070   virtual void video_start();
7171   DECLARE_VIDEO_START(raaspec);
72   UINT32 screen_update_vectrex(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
7273};
7374
7475
r17967r17968
9495extern const via6522_interface spectrum1_via6522_interface;
9596
9697
97SCREEN_UPDATE_RGB32( vectrex );
9898
9999
100100
101101
102102
103
103104void vectrex_add_point_stereo (running_machine &machine, int x, int y, rgb_t color, int intensity);
104105void vectrex_add_point (running_machine &machine, int x, int y, rgb_t color, int intensity);
105106
trunk/src/mame/includes/ultraman.h
r17967r17968
3333   virtual void machine_start();
3434   virtual void machine_reset();
3535   virtual void video_start();
36   UINT32 screen_update_ultraman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3637};
3738
3839
r17967r17968
4647
4748
4849
49SCREEN_UPDATE_IND16( ultraman );
50
trunk/src/mame/includes/thunderj.h
r17967r17968
2424   DECLARE_MACHINE_START(thunderj);
2525   DECLARE_MACHINE_RESET(thunderj);
2626   DECLARE_VIDEO_START(thunderj);
27   UINT32 screen_update_thunderj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2728};
2829
2930
3031/*----------- defined in video/thunderj.c -----------*/
3132
3233
33SCREEN_UPDATE_IND16( thunderj );
34
trunk/src/mame/includes/parodius.h
r17967r17968
4242   DECLARE_READ8_MEMBER(parodius_sound_r);
4343   virtual void machine_start();
4444   virtual void machine_reset();
45   UINT32 screen_update_parodius(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4546};
4647
4748/*----------- defined in video/parodius.c -----------*/
r17967r17968
4950extern void parodius_tile_callback(running_machine &machine, int layer,int bank,int *code,int *color,int *flags,int *priority);
5051extern void parodius_sprite_callback(running_machine &machine, int *code,int *color,int *priority_mask);
5152
52SCREEN_UPDATE_IND16( parodius );
53
trunk/src/mame/includes/ladybug.h
r17967r17968
7676   DECLARE_MACHINE_RESET(redclash);
7777   DECLARE_VIDEO_START(redclash);
7878   DECLARE_PALETTE_INIT(redclash);
79   UINT32 screen_update_ladybug(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
80   UINT32 screen_update_sraider(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
81   UINT32 screen_update_redclash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
82   void screen_eof_sraider(screen_device &screen, bool state);
83   void screen_eof_redclash(screen_device &screen, bool state);
7984};
8085
8186
r17967r17968
8489
8590
8691
87SCREEN_UPDATE_IND16( ladybug );
8892
8993
9094
91SCREEN_UPDATE_IND16( sraider );
92SCREEN_VBLANK( sraider );
9395
96
97
98
9499/*----------- defined in video/redclash.c -----------*/
95100
96101DECLARE_WRITE8_HANDLER( redclash_videoram_w );
r17967r17968
104109
105110
106111
107SCREEN_UPDATE_IND16( redclash );
108SCREEN_VBLANK( redclash );
109112
113
114
110115/* sraider uses the zerohour star generator board */
111116void redclash_set_stars_enable(running_machine &machine, UINT8 on);
112117void redclash_update_stars_state(running_machine &machine);
trunk/src/mame/includes/combatsc.h
r17967r17968
7979   DECLARE_MACHINE_START(combatscb);
8080   DECLARE_VIDEO_START(combatscb);
8181   DECLARE_PALETTE_INIT(combatscb);
82   UINT32 screen_update_combatsc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
83   UINT32 screen_update_combatscb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8284};
8385
8486
r17967r17968
9092
9193
9294
93SCREEN_UPDATE_IND16( combatscb );
94SCREEN_UPDATE_IND16( combatsc );
95
96
trunk/src/mame/includes/blueprnt.h
r17967r17968
4141   virtual void machine_reset();
4242   virtual void video_start();
4343   virtual void palette_init();
44   UINT32 screen_update_blueprnt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4445};
4546
4647
r17967r17968
4950
5051
5152
52SCREEN_UPDATE_IND16( blueprnt );
53
trunk/src/mame/includes/rockrage.h
r17967r17968
3030   virtual void machine_start();
3131   virtual void machine_reset();
3232   virtual void palette_init();
33   UINT32 screen_update_rockrage(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3334};
3435
3536
3637/*----------- defined in video/rockrage.c -----------*/
3738
3839
39SCREEN_UPDATE_IND16( rockrage );
4040
4141
42
4243void rockrage_tile_callback(running_machine &machine, int layer, int bank, int *code, int *color, int *flags);
4344void rockrage_sprite_callback(running_machine &machine, int *code, int *color);
trunk/src/mame/includes/buggychl.h
r17967r17968
5555   virtual void machine_reset();
5656   virtual void video_start();
5757   virtual void palette_init();
58   UINT32 screen_update_buggychl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5859};
5960
6061
r17967r17968
6364
6465
6566
66SCREEN_UPDATE_IND16( buggychl );
67
trunk/src/mame/includes/gotcha.h
r17967r17968
4141   virtual void machine_start();
4242   virtual void machine_reset();
4343   virtual void video_start();
44   UINT32 screen_update_gotcha(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4445};
4546
4647
r17967r17968
4849
4950
5051
51SCREEN_UPDATE_IND16( gotcha );
5252
53
trunk/src/mame/includes/starshp1.h
r17967r17968
7878   TILE_GET_INFO_MEMBER(get_tile_info);
7979   virtual void video_start();
8080   virtual void palette_init();
81   UINT32 screen_update_starshp1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
82   void screen_eof_starshp1(screen_device &screen, bool state);
8183};
8284
8385
r17967r17968
8688
8789
8890
89SCREEN_UPDATE_IND16( starshp1 );
90SCREEN_VBLANK( starshp1 );
9191
9292
9393
94
95
9496/*----------- defined in audio/starshp1.c -----------*/
9597
9698DISCRETE_SOUND_EXTERN( starshp1 );
trunk/src/mame/includes/bigstrkb.h
r17967r17968
3030   TILE_GET_INFO_MEMBER(get_bsb_tile2_info);
3131   TILE_GET_INFO_MEMBER(get_bsb_tile3_info);
3232   virtual void video_start();
33   UINT32 screen_update_bigstrkb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3334};
3435
3536
3637/*----------- defined in video/bigstrkb.c -----------*/
3738
3839
39SCREEN_UPDATE_IND16(bigstrkb);
40
trunk/src/mame/includes/n64.h
r17967r17968
2323   virtual void machine_start();
2424   virtual void machine_reset();
2525   virtual void video_start();
26   UINT32 screen_update_n64(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
2627};
2728
2829/*----------- devices -----------*/
trunk/src/mame/includes/taito_f2.h
r17967r17968
129129   DECLARE_VIDEO_START(taitof2_deadconxj);
130130   DECLARE_VIDEO_START(taitof2_dinorex);
131131   DECLARE_VIDEO_START(taitof2_quiz);
132   UINT32 screen_update_taitof2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
133   UINT32 screen_update_taitof2_pri_roz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
134   UINT32 screen_update_taitof2_pri(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
135   UINT32 screen_update_taitof2_thundfox(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
136   UINT32 screen_update_taitof2_ssi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
137   UINT32 screen_update_taitof2_deadconx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
138   UINT32 screen_update_taitof2_yesnoj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
139   UINT32 screen_update_taitof2_metalb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
140   void screen_eof_taitof2_no_buffer(screen_device &screen, bool state);
141   void screen_eof_taitof2_partial_buffer_delayed(screen_device &screen, bool state);
142   void screen_eof_taitof2_partial_buffer_delayed_thundfox(screen_device &screen, bool state);
143   void screen_eof_taitof2_full_buffer_delayed(screen_device &screen, bool state);
144   void screen_eof_taitof2_partial_buffer_delayed_qzchikyu(screen_device &screen, bool state);
132145};
133146
134147/*----------- defined in video/taito_f2.c -----------*/
r17967r17968
157170
158171
159172
160SCREEN_VBLANK( taitof2_no_buffer );
161SCREEN_VBLANK( taitof2_full_buffer_delayed );
162SCREEN_VBLANK( taitof2_partial_buffer_delayed );
163SCREEN_VBLANK( taitof2_partial_buffer_delayed_thundfox );
164SCREEN_VBLANK( taitof2_partial_buffer_delayed_qzchikyu );
165173
166SCREEN_UPDATE_IND16( taitof2 );
167SCREEN_UPDATE_IND16( taitof2_pri );
168SCREEN_UPDATE_IND16( taitof2_pri_roz );
169SCREEN_UPDATE_IND16( taitof2_ssi );
170SCREEN_UPDATE_IND16( taitof2_thundfox );
171SCREEN_UPDATE_IND16( taitof2_deadconx );
172SCREEN_UPDATE_IND16( taitof2_metalb );
173SCREEN_UPDATE_IND16( taitof2_yesnoj );
174174
175
176
177
178
179
180
181
182
183
184
185
186
187
trunk/src/mame/includes/pandoras.h
r17967r17968
5050   virtual void machine_reset();
5151   virtual void video_start();
5252   virtual void palette_init();
53   UINT32 screen_update_pandoras(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5354};
5455
5556
r17967r17968
5960
6061
6162
62SCREEN_UPDATE_IND16( pandoras );
6363
64
trunk/src/mame/includes/gberet.h
r17967r17968
5555   DECLARE_MACHINE_RESET(gberet);
5656   DECLARE_VIDEO_START(gberet);
5757   DECLARE_PALETTE_INIT(gberet);
58   UINT32 screen_update_gberet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
59   UINT32 screen_update_gberetb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5860};
5961
6062
r17967r17968
6365
6466
6567
66SCREEN_UPDATE_IND16( gberet );
67SCREEN_UPDATE_IND16( gberetb );
68
69
trunk/src/mame/includes/stfight.h
r17967r17968
4545   virtual void machine_reset();
4646   virtual void video_start();
4747   virtual void palette_init();
48   UINT32 screen_update_stfight(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4849};
4950
5051
r17967r17968
6061
6162
6263
63SCREEN_UPDATE_IND16( stfight );
64
trunk/src/mame/includes/gottlieb.h
r17967r17968
301301   virtual void machine_reset();
302302   virtual void video_start();
303303   DECLARE_VIDEO_START(screwloo);
304   UINT32 screen_update_gottlieb(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
304305};
305306
306307
r17967r17968
309310
310311
311312
312SCREEN_UPDATE_RGB32( gottlieb );
313313
314
314315#if USE_FAKE_VOTRAX
315316MACHINE_CONFIG_EXTERN( reactor_samples );
316317MACHINE_CONFIG_EXTERN( qbert_samples );
trunk/src/mame/includes/ddragon.h
r17967r17968
9999   DECLARE_MACHINE_START(ddragon);
100100   DECLARE_MACHINE_RESET(ddragon);
101101   DECLARE_VIDEO_START(ddragon);
102   UINT32 screen_update_ddragon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
102103};
103104
104105
r17967r17968
107108
108109
109110
110SCREEN_UPDATE_IND16( ddragon );
111111
112
trunk/src/mame/includes/asterix.h
r17967r17968
4242   DECLARE_DRIVER_INIT(asterix);
4343   virtual void machine_start();
4444   virtual void machine_reset();
45   UINT32 screen_update_asterix(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4546};
4647
4748
4849
4950/*----------- defined in video/asterix.c -----------*/
5051
51SCREEN_UPDATE_IND16( asterix );
5252
53
5354extern void asterix_tile_callback(running_machine &machine, int layer, int *code, int *color, int *flags);
5455extern void asterix_sprite_callback(running_machine &machine, int *code, int *color, int *priority_mask);
trunk/src/mame/includes/tubep.h
r17967r17968
7676   DECLARE_MACHINE_START(rjammer);
7777   DECLARE_MACHINE_RESET(rjammer);
7878   DECLARE_PALETTE_INIT(rjammer);
79   UINT32 screen_update_tubep(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
80   UINT32 screen_update_rjammer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7981};
8082
8183
r17967r17968
8385
8486void tubep_vblank_end(running_machine &machine);
8587
86SCREEN_UPDATE_IND16( tubep );
8788
88SCREEN_UPDATE_IND16( rjammer );
8989
9090
9191
r17967r17968
9393
9494
9595
96
97
trunk/src/mame/includes/homedata.h
r17967r17968
120120   DECLARE_VIDEO_START(mirderby);
121121   DECLARE_PALETTE_INIT(mirderby);
122122   DECLARE_VIDEO_START(lemnangl);
123   UINT32 screen_update_mrokumei(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
124   UINT32 screen_update_reikaids(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
125   UINT32 screen_update_pteacher(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
126   UINT32 screen_update_mirderby(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
127   void screen_eof_homedata(screen_device &screen, bool state);
123128};
124129
125130
r17967r17968
137142
138143
139144
140SCREEN_UPDATE_IND16( mrokumei );
141SCREEN_UPDATE_IND16( reikaids );
142SCREEN_UPDATE_IND16( pteacher );
143SCREEN_UPDATE_IND16( mirderby );
144SCREEN_VBLANK( homedata );
145
146
147
148
149
trunk/src/mame/includes/exidy.h
r17967r17968
6767   DECLARE_DRIVER_INIT(phantoma);
6868   virtual void video_start();
6969   DECLARE_MACHINE_START(teetert);
70   UINT32 screen_update_exidy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7071};
7172
7273
r17967r17968
7475
7576void exidy_video_config(running_machine &machine, UINT8 _collision_mask, UINT8 _collision_invert, int _is_2bpp);
7677
77SCREEN_UPDATE_IND16( exidy );
7878
79
7980INTERRUPT_GEN( exidy_vblank_interrupt );
8081
trunk/src/mame/includes/xxmissio.h
r17967r17968
2828   TILE_GET_INFO_MEMBER(get_fg_tile_info);
2929   virtual void machine_start();
3030   virtual void video_start();
31   UINT32 screen_update_xxmissio(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3132};
3233
3334
3435/*----------- defined in video/xxmissio.c -----------*/
3536
3637
37SCREEN_UPDATE_IND16( xxmissio );
3838
39
3940DECLARE_WRITE8_DEVICE_HANDLER( xxmissio_scroll_x_w );
4041DECLARE_WRITE8_DEVICE_HANDLER( xxmissio_scroll_y_w );
4142
trunk/src/mame/includes/mugsmash.h
r17967r17968
3030   TILE_GET_INFO_MEMBER(get_mugsmash_tile_info2);
3131   virtual void machine_start();
3232   virtual void video_start();
33   UINT32 screen_update_mugsmash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3334};
3435
3536
3637/*----------- defined in video/mugsmash.c -----------*/
3738
3839
39SCREEN_UPDATE_IND16( mugsmash );
4040
41
trunk/src/mame/includes/pcktgal.h
r17967r17968
1717   DECLARE_DRIVER_INIT(deco222);
1818   DECLARE_DRIVER_INIT(graphics);
1919   virtual void palette_init();
20   UINT32 screen_update_pcktgal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
21   UINT32 screen_update_pcktgalb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2022};
2123
2224
r17967r17968
2426
2527
2628
27SCREEN_UPDATE_IND16( pcktgal );
28SCREEN_UPDATE_IND16( pcktgalb );
29
30
trunk/src/mame/includes/hng64.h
r17967r17968
186186   virtual void machine_start();
187187   virtual void machine_reset();
188188   virtual void video_start();
189   UINT32 screen_update_hng64(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
190   void screen_eof_hng64(screen_device &screen, bool state);
189191};
190192
191193
r17967r17968
194196void hng64_command3d(running_machine& machine, const UINT16* packet);
195197
196198
197SCREEN_UPDATE_RGB32( hng64 );
198SCREEN_VBLANK( hng64 );
199
200
trunk/src/mame/includes/solomon.h
r17967r17968
3030   TILE_GET_INFO_MEMBER(get_bg_tile_info);
3131   TILE_GET_INFO_MEMBER(get_fg_tile_info);
3232   virtual void video_start();
33   UINT32 screen_update_solomon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3334};
3435
3536
r17967r17968
3738
3839
3940
40SCREEN_UPDATE_IND16( solomon );
41
trunk/src/mame/includes/hyhoo.h
r17967r17968
2323   DECLARE_DRIVER_INIT(hyhoo2);
2424   DECLARE_DRIVER_INIT(hyhoo);
2525   virtual void video_start();
26   UINT32 screen_update_hyhoo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
2627};
2728
2829
2930/*----------- defined in video/hyhoo.c -----------*/
3031
31SCREEN_UPDATE_RGB32( hyhoo );
3232
3333
34
trunk/src/mame/includes/macrossp.h
r17967r17968
7171   virtual void machine_start();
7272   virtual void machine_reset();
7373   virtual void video_start();
74   UINT32 screen_update_macrossp(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
75   void screen_eof_macrossp(screen_device &screen, bool state);
7476};
7577
7678/*----------- defined in video/macrossp.c -----------*/
7779
7880
7981
80SCREEN_UPDATE_RGB32(macrossp);
81SCREEN_VBLANK(macrossp);
82
83
trunk/src/mame/includes/gladiatr.h
r17967r17968
6464   DECLARE_VIDEO_START(ppking);
6565   DECLARE_MACHINE_RESET(gladiator);
6666   DECLARE_VIDEO_START(gladiatr);
67   UINT32 screen_update_ppking(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
68   UINT32 screen_update_gladiatr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6769};
6870
6971/*----------- defined in video/gladiatr.c -----------*/
7072
7173
72SCREEN_UPDATE_IND16( ppking );
7374
74SCREEN_UPDATE_IND16( gladiatr );
75
76
trunk/src/mame/includes/moo.h
r17967r17968
5353   DECLARE_MACHINE_START(moo);
5454   DECLARE_MACHINE_RESET(moo);
5555   DECLARE_VIDEO_START(moo);
56   UINT32 screen_update_moo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
5657};
5758
5859
r17967r17968
6364extern void moo_sprite_callback(running_machine &machine, int *code, int *color, int *priority_mask);
6465
6566
66SCREEN_UPDATE_RGB32(moo);
67
trunk/src/mame/includes/taito_l.h
r17967r17968
119119   DECLARE_MACHINE_RESET(horshoes);
120120   DECLARE_MACHINE_RESET(palamed);
121121   DECLARE_MACHINE_RESET(cachat);
122   UINT32 screen_update_taitol(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
123   void screen_eof_taitol(screen_device &screen, bool state);
122124};
123125
124126/*----------- defined in video/taito_l.c -----------*/
125127
126SCREEN_VBLANK( taitol );
127128
128SCREEN_UPDATE_IND16( taitol );
129129
130
131
130132void taitol_chardef14_m(running_machine &machine, int offset);
131133void taitol_chardef15_m(running_machine &machine, int offset);
132134void taitol_chardef16_m(running_machine &machine, int offset);
trunk/src/mame/includes/goindol.h
r17967r17968
4747   virtual void machine_start();
4848   virtual void machine_reset();
4949   virtual void video_start();
50   UINT32 screen_update_goindol(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5051};
5152
5253
r17967r17968
5556
5657
5758
58SCREEN_UPDATE_IND16( goindol );
59
trunk/src/mame/includes/gyruss.h
r17967r17968
5353   virtual void machine_start();
5454   virtual void video_start();
5555   virtual void palette_init();
56   UINT32 screen_update_gyruss(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5657};
5758
5859
r17967r17968
6061
6162
6263
63SCREEN_UPDATE_IND16( gyruss );
64
trunk/src/mame/includes/groundfx.h
r17967r17968
3737   DECLARE_CUSTOM_INPUT_MEMBER(coin_word_r);
3838   DECLARE_DRIVER_INIT(groundfx);
3939   virtual void video_start();
40   UINT32 screen_update_groundfx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4041};
4142
4243
4344/*----------- defined in video/groundfx.c -----------*/
4445
4546
46SCREEN_UPDATE_IND16( groundfx );
47
trunk/src/mame/includes/fastlane.h
r17967r17968
4848   virtual void machine_start();
4949   virtual void video_start();
5050   virtual void palette_init();
51   UINT32 screen_update_fastlane(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5152};
5253
5354
r17967r17968
5859
5960
6061
61SCREEN_UPDATE_IND16( fastlane );
62
trunk/src/mame/includes/kangaroo.h
r17967r17968
3030   virtual void machine_reset();
3131   virtual void video_start();
3232   DECLARE_MACHINE_START(kangaroo_mcu);
33   UINT32 screen_update_kangaroo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
3334};
3435
3536
r17967r17968
3839/*----------- defined in video/kangaroo.c -----------*/
3940
4041
41SCREEN_UPDATE_RGB32( kangaroo );
4242
43
trunk/src/mame/includes/cabal.h
r17967r17968
3434   TILE_GET_INFO_MEMBER(get_text_tile_info);
3535   virtual void video_start();
3636   DECLARE_MACHINE_RESET(cabalbl);
37   UINT32 screen_update_cabal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3738};
3839
3940
trunk/src/mame/includes/suprloco.h
r17967r17968
2222   TILE_GET_INFO_MEMBER(get_tile_info);
2323   virtual void video_start();
2424   virtual void palette_init();
25   UINT32 screen_update_suprloco(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2526};
2627
2728
r17967r17968
2930
3031
3132
32SCREEN_UPDATE_IND16( suprloco );
33
trunk/src/mame/includes/m92.h
r17967r17968
7575   DECLARE_MACHINE_RESET(m92);
7676   DECLARE_VIDEO_START(m92);
7777   DECLARE_VIDEO_START(ppan);
78   UINT32 screen_update_m92(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
79   UINT32 screen_update_ppan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7880};
7981
8082
r17967r17968
8789
8890
8991
90SCREEN_UPDATE_IND16( m92 );
9192
92SCREEN_UPDATE_IND16( ppan );
93
94
trunk/src/mame/includes/m58.h
r17967r17968
3030   TILEMAP_MAPPER_MEMBER(yard_tilemap_scan_rows);
3131   virtual void video_start();
3232   virtual void palette_init();
33   UINT32 screen_update_yard(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3334};
3435
3536/*----------- defined in video/m58.c -----------*/
r17967r17968
3738
3839
3940
40SCREEN_UPDATE_IND16( yard );
41
trunk/src/mame/includes/vendetta.h
r17967r17968
4343   DECLARE_DRIVER_INIT(esckids);
4444   virtual void machine_start();
4545   virtual void machine_reset();
46   UINT32 screen_update_vendetta(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4647};
4748
4849/*----------- defined in video/vendetta.c -----------*/
r17967r17968
5152extern void esckids_tile_callback(running_machine &machine, int layer,int bank,int *code,int *color,int *flags,int *priority);
5253extern void vendetta_sprite_callback(running_machine &machine, int *code,int *color,int *priority_mask);
5354
54SCREEN_UPDATE_IND16( vendetta );
55
trunk/src/mame/includes/fcombat.h
r17967r17968
6666   virtual void machine_reset();
6767   virtual void video_start();
6868   virtual void palette_init();
69   UINT32 screen_update_fcombat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6970};
7071
7172
r17967r17968
7475
7576
7677
77SCREEN_UPDATE_IND16( fcombat );
7878
79
trunk/src/mame/includes/thoop2.h
r17967r17968
2020   TILE_GET_INFO_MEMBER(get_tile_info_thoop2_screen0);
2121   TILE_GET_INFO_MEMBER(get_tile_info_thoop2_screen1);
2222   virtual void video_start();
23   UINT32 screen_update_thoop2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2324};
2425
2526
2627/*----------- defined in video/thoop2.c -----------*/
2728
2829
29SCREEN_UPDATE_IND16( thoop2 );
30
trunk/src/mame/includes/wwfwfest.h
r17967r17968
4343   TILE_GET_INFO_MEMBER(get_bg1_tile_info);
4444   virtual void video_start();
4545   DECLARE_VIDEO_START(wwfwfstb);
46   UINT32 screen_update_wwfwfest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4647};
4748
4849
r17967r17968
5051
5152
5253
53SCREEN_UPDATE_IND16( wwfwfest );
54
trunk/src/mame/includes/marineb.h
r17967r17968
3939   virtual void video_start();
4040   virtual void palette_init();
4141   DECLARE_MACHINE_RESET(springer);
42   UINT32 screen_update_marineb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
43   UINT32 screen_update_changes(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
44   UINT32 screen_update_springer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
45   UINT32 screen_update_hoccer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
46   UINT32 screen_update_hopprobo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4247};
4348
4449
r17967r17968
4752
4853
4954
50SCREEN_UPDATE_IND16( marineb );
51SCREEN_UPDATE_IND16( changes );
52SCREEN_UPDATE_IND16( springer );
53SCREEN_UPDATE_IND16( hoccer );
54SCREEN_UPDATE_IND16( hopprobo );
55
56
57
58
59
trunk/src/mame/includes/timeplt.h
r17967r17968
5050   virtual void video_start();
5151   virtual void palette_init();
5252   DECLARE_VIDEO_START(chkun);
53   UINT32 screen_update_timeplt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5354};
5455
5556
r17967r17968
5960
6061
6162
62SCREEN_UPDATE_IND16( timeplt );
63
trunk/src/mame/includes/pktgaldx.h
r17967r17968
3232   DECLARE_WRITE16_MEMBER(pktgaldx_oki_bank_w);
3333   DECLARE_DRIVER_INIT(pktgaldx);
3434   virtual void machine_start();
35   UINT32 screen_update_pktgaldx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
36   UINT32 screen_update_pktgaldb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3537};
3638
3739
3840
3941/*----------- defined in video/pktgaldx.c -----------*/
4042
41SCREEN_UPDATE_IND16( pktgaldx );
42SCREEN_UPDATE_IND16( pktgaldb );
43
44
trunk/src/mame/includes/atarigx2.h
r17967r17968
4646   DECLARE_MACHINE_START(atarigx2);
4747   DECLARE_MACHINE_RESET(atarigx2);
4848   DECLARE_VIDEO_START(atarigx2);
49   UINT32 screen_update_atarigx2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
50   void screen_eof_atarigx2(screen_device &screen, bool state);
4951};
5052
5153
5254/*----------- defined in video/atarigx2.c -----------*/
5355
5456
55SCREEN_VBLANK( atarigx2 );
56SCREEN_UPDATE_IND16( atarigx2 );
5757
58
59
5860DECLARE_WRITE16_HANDLER( atarigx2_mo_control_w );
5961
6062void atarigx2_scanline_update(screen_device &screen, int scanline);
trunk/src/mame/includes/fuukifg2.h
r17967r17968
4343   virtual void machine_start();
4444   virtual void machine_reset();
4545   virtual void video_start();
46   UINT32 screen_update_fuuki16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4647};
4748
4849
r17967r17968
5051
5152
5253
53SCREEN_UPDATE_IND16( fuuki16 );
54
trunk/src/mame/includes/vulgus.h
r17967r17968
2525   TILE_GET_INFO_MEMBER(get_bg_tile_info);
2626   virtual void video_start();
2727   virtual void palette_init();
28   UINT32 screen_update_vulgus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2829};
2930
3031
r17967r17968
3334
3435
3536
36SCREEN_UPDATE_IND16( vulgus );
37
trunk/src/mame/includes/circus.h
r17967r17968
3636   virtual void machine_start();
3737   virtual void machine_reset();
3838   virtual void video_start();
39   UINT32 screen_update_circus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
40   UINT32 screen_update_robotbwl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
41   UINT32 screen_update_crash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
42   UINT32 screen_update_ripcord(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3943};
4044
4145
trunk/src/mame/includes/sderby.h
r17967r17968
3333   TILE_GET_INFO_MEMBER(get_sderby_md_tile_info);
3434   TILE_GET_INFO_MEMBER(get_sderby_fg_tile_info);
3535   virtual void video_start();
36   UINT32 screen_update_sderby(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
37   UINT32 screen_update_pmroulet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3638};
3739
3840
3941/*----------- defined in video/sderby.c -----------*/
4042
4143
42SCREEN_UPDATE_IND16( sderby );
43SCREEN_UPDATE_IND16( pmroulet );
44
45
trunk/src/mame/includes/zac2650.h
r17967r17968
2121   TILE_GET_INFO_MEMBER(get_bg_tile_info);
2222   virtual void video_start();
2323   virtual void palette_init();
24   UINT32 screen_update_tinvader(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2425};
2526
2627
r17967r17968
2829
2930
3031
31SCREEN_UPDATE_IND16( tinvader );
3232
33
trunk/src/mame/includes/shangha3.h
r17967r17968
2727   DECLARE_DRIVER_INIT(shangha3);
2828   DECLARE_DRIVER_INIT(heberpop);
2929   virtual void video_start();
30   UINT32 screen_update_shangha3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3031};
3132
3233
3334/*----------- defined in video/shangha3.c -----------*/
3435
3536
36SCREEN_UPDATE_IND16( shangha3 );
37
trunk/src/mame/includes/vastar.h
r17967r17968
4646   TILE_GET_INFO_MEMBER(get_bg2_tile_info);
4747   virtual void machine_reset();
4848   virtual void video_start();
49   UINT32 screen_update_vastar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4950};
5051
5152
r17967r17968
5354
5455
5556
56SCREEN_UPDATE_IND16( vastar );
57
trunk/src/mame/includes/taotaido.h
r17967r17968
3030   TILE_GET_INFO_MEMBER(taotaido_bg_tile_info);
3131   TILEMAP_MAPPER_MEMBER(taotaido_tilemap_scan_rows);
3232   virtual void video_start();
33   UINT32 screen_update_taotaido(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
34   void screen_eof_taotaido(screen_device &screen, bool state);
3335};
3436
3537
3638/*----------- defined in video/taotaido.c -----------*/
3739
3840
39SCREEN_UPDATE_IND16( taotaido );
40SCREEN_VBLANK( taotaido );
41
42
trunk/src/mame/includes/relief.h
r17967r17968
2626   DECLARE_MACHINE_START(relief);
2727   DECLARE_MACHINE_RESET(relief);
2828   DECLARE_VIDEO_START(relief);
29   UINT32 screen_update_relief(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2930};
3031
3132
3233/*----------- defined in video/relief.c -----------*/
3334
3435
35SCREEN_UPDATE_IND16( relief );
36
trunk/src/mame/includes/taito_f3.h
r17967r17968
270270   TILE_GET_INFO_MEMBER(get_tile_info_pixel);
271271   DECLARE_MACHINE_START(f3);
272272   DECLARE_VIDEO_START(f3);
273   UINT32 screen_update_f3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
274   void screen_eof_f3(screen_device &screen, bool state);
273275};
274276
275277
276278/*----------- defined in video/taito_f3.c -----------*/
277279
278280
279SCREEN_UPDATE_RGB32( f3 );
280SCREEN_VBLANK( f3 );
281281
282282
283
284
trunk/src/mame/includes/gaelco2.h
r17967r17968
4949   TILE_GET_INFO_MEMBER(get_tile_info_gaelco2_screen1_dual);
5050   DECLARE_VIDEO_START(gaelco2);
5151   DECLARE_VIDEO_START(gaelco2_dual);
52   UINT32 screen_update_gaelco2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
53   UINT32 screen_update_gaelco2_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
54   UINT32 screen_update_gaelco2_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5255};
5356
5457
r17967r17968
6164
6265/*----------- defined in video/gaelco2.c -----------*/
6366
64SCREEN_UPDATE_IND16( gaelco2 );
6567
66SCREEN_UPDATE_IND16( gaelco2_left );
67SCREEN_UPDATE_IND16( gaelco2_right );
6868
69
70
71
trunk/src/mame/includes/homerun.h
r17967r17968
5252   virtual void machine_start();
5353   virtual void machine_reset();
5454   virtual void video_start();
55   UINT32 screen_update_homerun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5556};
5657
5758
r17967r17968
6061DECLARE_WRITE8_DEVICE_HANDLER( homerun_banking_w );
6162
6263
63SCREEN_UPDATE_IND16(homerun);
64
trunk/src/mame/includes/champbas.h
r17967r17968
6060   DECLARE_MACHINE_START(exctsccr);
6161   DECLARE_VIDEO_START(exctsccr);
6262   DECLARE_PALETTE_INIT(exctsccr);
63   UINT32 screen_update_champbas(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
64   UINT32 screen_update_exctsccr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
65   void screen_eof_champbas(screen_device &screen, bool state);
6366};
6467
6568
r17967r17968
7073
7174
7275
73SCREEN_UPDATE_IND16( champbas );
74SCREEN_UPDATE_IND16( exctsccr );
7576
7677
78
79
trunk/src/mame/includes/baraduke.h
r17967r17968
3838   TILE_GET_INFO_MEMBER(get_tile_info1);
3939   virtual void video_start();
4040   virtual void palette_init();
41   UINT32 screen_update_baraduke(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
42   void screen_eof_baraduke(screen_device &screen, bool state);
4143};
4244
4345
4446/*----------- defined in video/baraduke.c -----------*/
4547
4648
47SCREEN_UPDATE_IND16( baraduke );
48SCREEN_VBLANK( baraduke );
4949
50
51
trunk/src/mame/includes/ssozumo.h
r17967r17968
3535   TILE_GET_INFO_MEMBER(get_fg_tile_info);
3636   virtual void video_start();
3737   virtual void palette_init();
38   UINT32 screen_update_ssozumo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3839};
3940
4041
r17967r17968
4344
4445
4546
46SCREEN_UPDATE_IND16( ssozumo );
47
trunk/src/mame/includes/mcr.h
r17967r17968
100100   DECLARE_MACHINE_RESET(mcr);
101101   DECLARE_VIDEO_START(mcr);
102102   DECLARE_MACHINE_START(nflfoot);
103   UINT32 screen_update_mcr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
103104};
104105
105106
r17967r17968
143144
144145
145146
146SCREEN_UPDATE_IND16( mcr );
147
trunk/src/mame/includes/m107.h
r17967r17968
4949   TILE_GET_INFO_MEMBER(get_pf_tile_info);
5050   virtual void machine_start();
5151   virtual void video_start();
52   UINT32 screen_update_m107(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5253};
5354
5455
5556/*----------- defined in video/m107.c -----------*/
5657
57SCREEN_UPDATE_IND16( m107 );
5858
59
trunk/src/mame/includes/ninjaw.h
r17967r17968
4343   virtual void machine_start();
4444   virtual void machine_reset();
4545   virtual void video_start();
46   UINT32 screen_update_ninjaw_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
47   UINT32 screen_update_ninjaw_middle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
48   UINT32 screen_update_ninjaw_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4649};
4750
4851
4952/*----------- defined in video/ninjaw.c -----------*/
5053
5154
52SCREEN_UPDATE_IND16( ninjaw_left );
53SCREEN_UPDATE_IND16( ninjaw_middle );
54SCREEN_UPDATE_IND16( ninjaw_right );
55
56
57
trunk/src/mame/includes/matmania.h
r17967r17968
5959   DECLARE_MACHINE_START(matmania);
6060   DECLARE_MACHINE_START(maniach);
6161   DECLARE_MACHINE_RESET(maniach);
62   UINT32 screen_update_matmania(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
63   UINT32 screen_update_maniach(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6264};
6365
6466/*----------- defined in machine/maniach.c -----------*/
r17967r17968
8082/*----------- defined in video/matmania.c -----------*/
8183
8284
83SCREEN_UPDATE_IND16( maniach );
8485
85SCREEN_UPDATE_IND16( matmania );
86
87
trunk/src/mame/includes/arkanoid.h
r17967r17968
7777   DECLARE_MACHINE_START(arkanoid);
7878   DECLARE_MACHINE_RESET(arkanoid);
7979   DECLARE_VIDEO_START(arkanoid);
80   UINT32 screen_update_arkanoid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
81   UINT32 screen_update_hexa(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8082};
8183
8284
trunk/src/mame/includes/twin16.h
r17967r17968
6161   DECLARE_MACHINE_START(twin16);
6262   DECLARE_MACHINE_RESET(twin16);
6363   DECLARE_VIDEO_START(twin16);
64   UINT32 screen_update_twin16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
65   void screen_eof_twin16(screen_device &screen, bool state);
6466};
6567
6668
r17967r17968
7375
7476
7577
76SCREEN_UPDATE_IND16( twin16 );
77SCREEN_VBLANK( twin16 );
7878
79
80
7981void twin16_spriteram_process( running_machine &machine );
trunk/src/mame/includes/megasys1.h
r17967r17968
110110   DECLARE_VIDEO_START(megasys1);
111111   DECLARE_PALETTE_INIT(megasys1);
112112   DECLARE_MACHINE_RESET(megasys1_hachoo);
113   UINT32 screen_update_megasys1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
114   void screen_eof_megasys1(screen_device &screen, bool state);
113115};
114116
115117
116118/*----------- defined in video/megasys1.c -----------*/
117119
118120
119SCREEN_UPDATE_IND16( megasys1 );
120SCREEN_VBLANK( megasys1 );
121121
122122
123123
124124
125125
126
127
trunk/src/mame/includes/crshrace.h
r17967r17968
5050   virtual void machine_start();
5151   virtual void machine_reset();
5252   virtual void video_start();
53   UINT32 screen_update_crshrace(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
54   void screen_eof_crshrace(screen_device &screen, bool state);
5355};
5456
5557/*----------- defined in video/crshrace.c -----------*/
5658
5759
5860
59SCREEN_VBLANK( crshrace );
60SCREEN_UPDATE_IND16( crshrace );
61
62
trunk/src/mame/includes/airbustr.h
r17967r17968
6666   virtual void machine_start();
6767   virtual void machine_reset();
6868   virtual void video_start();
69   UINT32 screen_update_airbustr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
70   void screen_eof_airbustr(screen_device &screen, bool state);
6971};
7072
7173
r17967r17968
7375
7476
7577
76SCREEN_UPDATE_IND16( airbustr );
77SCREEN_VBLANK( airbustr );
78
79
trunk/src/mame/includes/clshroad.h
r17967r17968
3030   DECLARE_PALETTE_INIT(firebatl);
3131   DECLARE_VIDEO_START(clshroad);
3232   DECLARE_PALETTE_INIT(clshroad);
33   UINT32 screen_update_clshroad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3334};
3435
3536
r17967r17968
4041
4142
4243
43SCREEN_UPDATE_IND16( clshroad );
44
trunk/src/mame/includes/pacman.h
r17967r17968
134134   DECLARE_MACHINE_RESET(superabc);
135135   DECLARE_VIDEO_START(pengo);
136136   DECLARE_VIDEO_START(jrpacman);
137   UINT32 screen_update_pacman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
138   UINT32 screen_update_s2650games(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
137139};
138140
139141
r17967r17968
141143
142144
143145
144SCREEN_UPDATE_IND16( pacman );
145146
146147
147148
148149
149SCREEN_UPDATE_IND16( s2650games );
150150
151151
152152
153153
154154
155155
156
157
156158/*----------- defined in machine/pacplus.c -----------*/
157159
158160void pacplus_decode(running_machine &machine);
trunk/src/mame/includes/dcheese.h
r17967r17968
4646   virtual void machine_start();
4747   virtual void video_start();
4848   virtual void palette_init();
49   UINT32 screen_update_dcheese(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4950};
5051
5152
r17967r17968
5859
5960
6061
61SCREEN_UPDATE_IND16( dcheese );
6262
6363
64
trunk/src/mame/includes/chqflag.h
r17967r17968
4343   virtual void machine_start();
4444   virtual void machine_reset();
4545   virtual void video_start();
46   UINT32 screen_update_chqflag(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4647};
4748
4849/*----------- defined in video/chqflag.c -----------*/
r17967r17968
5253extern void chqflag_zoom_callback_1(running_machine &machine, int *code,int *color,int *flags);
5354
5455
55SCREEN_UPDATE_IND16( chqflag );
56
trunk/src/mame/includes/bwing.h
r17967r17968
7474   virtual void machine_start();
7575   virtual void machine_reset();
7676   virtual void video_start();
77   UINT32 screen_update_bwing(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7778};
7879
7980
r17967r17968
8384
8485
8586
86SCREEN_UPDATE_IND16( bwing );
87
trunk/src/mame/includes/sf.h
r17967r17968
4747   virtual void machine_start();
4848   virtual void machine_reset();
4949   virtual void video_start();
50   UINT32 screen_update_sf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5051};
5152
5253
r17967r17968
5455
5556
5657
57SCREEN_UPDATE_IND16( sf );
58
trunk/src/mame/includes/lsasquad.h
r17967r17968
5959   DECLARE_WRITE8_MEMBER(unk);
6060   DECLARE_MACHINE_START(lsasquad);
6161   DECLARE_MACHINE_RESET(lsasquad);
62   UINT32 screen_update_lsasquad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
63   UINT32 screen_update_daikaiju(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6264};
6365
6466/*----------- defined in machine/lsasquad.c -----------*/
r17967r17968
6971
7072/*----------- defined in video/lsasquad.c -----------*/
7173
72SCREEN_UPDATE_IND16( lsasquad );
73SCREEN_UPDATE_IND16( daikaiju );
74
75
trunk/src/mame/includes/dooyong.h
r17967r17968
7979   DECLARE_VIDEO_START(primella);
8080   DECLARE_VIDEO_START(rshark);
8181   DECLARE_VIDEO_START(popbingo);
82   UINT32 screen_update_lastday(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
83   UINT32 screen_update_gulfstrm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
84   UINT32 screen_update_pollux(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
85   UINT32 screen_update_bluehawk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
86   UINT32 screen_update_flytiger(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
87   UINT32 screen_update_primella(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
88   UINT32 screen_update_rshark(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
89   UINT32 screen_update_popbingo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8290};
8391
8492
r17967r17968
8896
8997
9098
91SCREEN_UPDATE_IND16( lastday );
92SCREEN_UPDATE_IND16( gulfstrm );
93SCREEN_UPDATE_IND16( pollux );
94SCREEN_UPDATE_IND16( bluehawk );
95SCREEN_UPDATE_IND16( flytiger );
96SCREEN_UPDATE_IND16( primella );
97SCREEN_UPDATE_IND16( rshark );
98SCREEN_UPDATE_IND16( popbingo );
9999
100100
101101
r17967r17968
105105
106106
107107
108
109
110
111
112
113
114
115
trunk/src/mame/includes/cave.h
r17967r17968
200200   DECLARE_PALETTE_INIT(pwrinst2);
201201   DECLARE_VIDEO_START(sailormn_3_layers);
202202   DECLARE_PALETTE_INIT(sailormn);
203   UINT32 screen_update_cave(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
203204};
204205
205206/*----------- defined in video/cave.c -----------*/
r17967r17968
221222
222223
223224
224SCREEN_UPDATE_IND16( cave );
225225
226
226227void cave_get_sprite_info(running_machine &machine);
227228void sailormn_tilebank_w(running_machine &machine, int bank);
trunk/src/mame/includes/williams.h
r17967r17968
104104   DECLARE_VIDEO_START(blaster);
105105   DECLARE_MACHINE_START(williams_common);
106106   DECLARE_MACHINE_RESET(williams_common);
107   UINT32 screen_update_williams(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
108   UINT32 screen_update_williams2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
109   UINT32 screen_update_blaster(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
107110};
108111
109112
r17967r17968
195198
196199
197200
198SCREEN_UPDATE_RGB32( williams );
199SCREEN_UPDATE_RGB32( blaster );
200SCREEN_UPDATE_RGB32( williams2 );
201201
202202
203
204
205
trunk/src/mame/includes/brkthru.h
r17967r17968
4545   virtual void machine_reset();
4646   virtual void video_start();
4747   virtual void palette_init();
48   UINT32 screen_update_brkthru(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4849};
4950
5051
r17967r17968
5253
5354
5455
55SCREEN_UPDATE_IND16( brkthru );
56
trunk/src/mame/includes/fuukifg3.h
r17967r17968
6161   virtual void machine_start();
6262   virtual void machine_reset();
6363   virtual void video_start();
64   UINT32 screen_update_fuuki32(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
65   void screen_eof_fuuki32(screen_device &screen, bool state);
6466};
6567
6668
r17967r17968
6870
6971
7072
71SCREEN_UPDATE_IND16( fuuki32 );
72SCREEN_VBLANK( fuuki32 );
73
74
trunk/src/mame/includes/dec8.h
r17967r17968
121121   DECLARE_VIDEO_START(oscar);
122122   DECLARE_VIDEO_START(srdarwin);
123123   DECLARE_VIDEO_START(cobracom);
124   UINT32 screen_update_lastmisn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
125   UINT32 screen_update_shackled(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
126   UINT32 screen_update_gondo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
127   UINT32 screen_update_garyoret(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
128   UINT32 screen_update_ghostb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
129   UINT32 screen_update_oscar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
130   UINT32 screen_update_srdarwin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
131   UINT32 screen_update_cobracom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
132   void screen_eof_dec8(screen_device &screen, bool state);
124133};
125134
126135/*----------- defined in video/dec8.c -----------*/
127136
128137
129138
130SCREEN_UPDATE_IND16( cobracom );
131SCREEN_UPDATE_IND16( ghostb );
132SCREEN_UPDATE_IND16( srdarwin );
133SCREEN_UPDATE_IND16( gondo );
134SCREEN_UPDATE_IND16( garyoret );
135SCREEN_UPDATE_IND16( lastmisn );
136SCREEN_UPDATE_IND16( shackled );
137SCREEN_UPDATE_IND16( oscar );
138139
139140
140141
r17967r17968
144145
145146
146147
148
149
150
151
152
153
154
155
147156DECLARE_WRITE8_HANDLER( dec8_bac06_0_w );
148157DECLARE_WRITE8_HANDLER( dec8_bac06_1_w );
149158DECLARE_WRITE8_HANDLER( dec8_pf1_data_w );
trunk/src/mame/includes/tbowl.h
r17967r17968
5050   TILE_GET_INFO_MEMBER(get_bg2_tile_info);
5151   virtual void machine_reset();
5252   virtual void video_start();
53   UINT32 screen_update_tbowl_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
54   UINT32 screen_update_tbowl_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5355};
5456
5557
r17967r17968
5860
5961
6062
61SCREEN_UPDATE_IND16( tbowl_left );
62SCREEN_UPDATE_IND16( tbowl_right );
6363
64
65
trunk/src/mame/includes/battlane.h
r17967r17968
3838   virtual void machine_start();
3939   virtual void machine_reset();
4040   virtual void video_start();
41   UINT32 screen_update_battlane(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4142};
4243
4344
r17967r17968
4546
4647
4748
48SCREEN_UPDATE_IND16( battlane );
49
trunk/src/mame/includes/atarigt.h
r17967r17968
7171   DECLARE_MACHINE_START(atarigt);
7272   DECLARE_MACHINE_RESET(atarigt);
7373   DECLARE_VIDEO_START(atarigt);
74   UINT32 screen_update_atarigt(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
75   void screen_eof_atarigt(screen_device &screen, bool state);
7476};
7577
7678
r17967r17968
7981
8082
8183
82SCREEN_VBLANK( atarigt );
83SCREEN_UPDATE_RGB32( atarigt );
8484
85
86
8587void atarigt_scanline_update(screen_device &screen, int scanline);
trunk/src/mame/includes/thepit.h
r17967r17968
3838   virtual void video_start();
3939   virtual void palette_init();
4040   DECLARE_PALETTE_INIT(suprmous);
41   UINT32 screen_update_thepit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4142};
4243
4344
r17967r17968
4647
4748
4849
49SCREEN_UPDATE_IND16( thepit );
50
trunk/src/mame/includes/cloud9.h
r17967r17968
5858   virtual void machine_start();
5959   virtual void machine_reset();
6060   virtual void video_start();
61   UINT32 screen_update_cloud9(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6162};
6263
6364
6465/*----------- defined in video/cloud9.c -----------*/
6566
6667
67SCREEN_UPDATE_IND16( cloud9 );
6868
6969
7070
71
trunk/src/mame/includes/rpunch.h
r17967r17968
3939   TILE_GET_INFO_MEMBER(get_bg1_tile_info);
4040   virtual void machine_reset();
4141   virtual void video_start();
42   UINT32 screen_update_rpunch(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4243};
4344
4445
4546/*----------- defined in video/rpunch.c -----------*/
4647
4748
48SCREEN_UPDATE_IND16( rpunch );
4949
50
trunk/src/mame/includes/changela.h
r17967r17968
8888   virtual void machine_start();
8989   virtual void machine_reset();
9090   virtual void video_start();
91   UINT32 screen_update_changela(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
9192};
9293
9394/*----------- defined in video/changela.c -----------*/
9495
9596
96SCREEN_UPDATE_IND16( changela );
9797
98
trunk/src/mame/includes/crimfght.h
r17967r17968
3131   virtual void machine_start();
3232   virtual void machine_reset();
3333   virtual void video_start();
34   UINT32 screen_update_crimfght(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3435};
3536
3637/*----------- defined in video/crimfght.c -----------*/
r17967r17968
3940extern void crimfght_sprite_callback(running_machine &machine, int *code,int *color,int *priority,int *shadow);
4041
4142
42SCREEN_UPDATE_IND16( crimfght );
43
trunk/src/mame/includes/asuka.h
r17967r17968
4747   DECLARE_WRITE8_MEMBER(asuka_msm5205_stop_w);
4848   virtual void machine_start();
4949   virtual void machine_reset();
50   UINT32 screen_update_bonzeadv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
51   UINT32 screen_update_asuka(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
52   void screen_eof_asuka(screen_device &screen, bool state);
5053};
5154
5255
r17967r17968
6366/*----------- defined in video/asuka.c -----------*/
6467
6568
66SCREEN_UPDATE_IND16( asuka );
67SCREEN_UPDATE_IND16( bonzeadv );
69
70
trunk/src/mame/includes/triplhnt.h
r17967r17968
5050   TILE_GET_INFO_MEMBER(get_tile_info);
5151   virtual void video_start();
5252   virtual void palette_init();
53   UINT32 screen_update_triplhnt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5354};
5455
5556
r17967r17968
6768/*----------- defined in video/triplhnt.c -----------*/
6869
6970
70SCREEN_UPDATE_IND16( triplhnt );
7171
7272
73
trunk/src/mame/includes/pooyan.h
r17967r17968
3232   virtual void machine_reset();
3333   virtual void video_start();
3434   virtual void palette_init();
35   UINT32 screen_update_pooyan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3536};
3637
3738
r17967r17968
4041
4142
4243
43SCREEN_UPDATE_IND16( pooyan );
44
trunk/src/mame/includes/wolfpack.h
r17967r17968
5454   virtual void machine_reset();
5555   virtual void video_start();
5656   virtual void palette_init();
57   UINT32 screen_update_wolfpack(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
58   void screen_eof_wolfpack(screen_device &screen, bool state);
5759};
5860
5961
6062/*----------- defined in video/wolfpack.c -----------*/
6163
6264
63SCREEN_UPDATE_IND16( wolfpack );
6465
65SCREEN_VBLANK( wolfpack );
6666
67
68
trunk/src/mame/includes/sidepckt.h
r17967r17968
2828   TILE_GET_INFO_MEMBER(get_tile_info);
2929   virtual void video_start();
3030   virtual void palette_init();
31   UINT32 screen_update_sidepckt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3132};
3233
3334
r17967r17968
3536
3637
3738
38SCREEN_UPDATE_IND16( sidepckt );
3939
40
trunk/src/mame/includes/rollerg.h
r17967r17968
3636   virtual void machine_start();
3737   virtual void machine_reset();
3838   virtual void video_start();
39   UINT32 screen_update_rollerg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3940};
4041
4142/*----------- defined in video/rollerg.c -----------*/
r17967r17968
4445extern void rollerg_zoom_callback(running_machine &machine, int *code,int *color,int *flags);
4546
4647
47SCREEN_UPDATE_IND16( rollerg );
48
trunk/src/mame/includes/pirates.h
r17967r17968
2929   TILE_GET_INFO_MEMBER(get_fg_tile_info);
3030   TILE_GET_INFO_MEMBER(get_bg_tile_info);
3131   virtual void video_start();
32   UINT32 screen_update_pirates(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3233};
3334
3435
r17967r17968
3637
3738
3839
39SCREEN_UPDATE_IND16( pirates );
40
trunk/src/mame/includes/tankbatt.h
r17967r17968
2929   TILE_GET_INFO_MEMBER(get_bg_tile_info);
3030   virtual void video_start();
3131   virtual void palette_init();
32   UINT32 screen_update_tankbatt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3233};
3334
3435
r17967r17968
3738
3839
3940
40SCREEN_UPDATE_IND16( tankbatt );
41
trunk/src/mame/includes/exerion.h
r17967r17968
6161   virtual void machine_reset();
6262   virtual void video_start();
6363   virtual void palette_init();
64   UINT32 screen_update_exerion(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6465};
6566
6667
r17967r17968
6970
7071
7172
72SCREEN_UPDATE_IND16( exerion );
7373
74
trunk/src/mame/includes/wrally.h
r17967r17968
2424   TILE_GET_INFO_MEMBER(get_tile_info_wrally_screen0);
2525   TILE_GET_INFO_MEMBER(get_tile_info_wrally_screen1);
2626   virtual void video_start();
27   UINT32 screen_update_wrally(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2728};
2829
2930
r17967r17968
3334/*----------- defined in video/wrally.c -----------*/
3435
3536
36SCREEN_UPDATE_IND16( wrally );
3737
38
trunk/src/mame/includes/mosaic.h
r17967r17968
3434   virtual void machine_start();
3535   virtual void machine_reset();
3636   virtual void video_start();
37   UINT32 screen_update_mosaic(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3738};
3839
3940
r17967r17968
4142
4243
4344
44SCREEN_UPDATE_IND16( mosaic );
45
trunk/src/mame/includes/crospang.h
r17967r17968
4444   virtual void machine_start();
4545   virtual void machine_reset();
4646   virtual void video_start();
47   UINT32 screen_update_crospang(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4748};
4849
4950
5051/*----------- defined in video/crospang.c -----------*/
5152
5253
53SCREEN_UPDATE_IND16( crospang );
5454
5555
5656
57
trunk/src/mame/includes/subs.h
r17967r17968
4242   DECLARE_WRITE8_MEMBER(subs_invert2_w);
4343   virtual void machine_reset();
4444   virtual void palette_init();
45   UINT32 screen_update_subs_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
46   UINT32 screen_update_subs_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4547};
4648
4749
r17967r17968
6466
6567/*----------- defined in video/subs.c -----------*/
6668
67SCREEN_UPDATE_IND16( subs_left );
68SCREEN_UPDATE_IND16( subs_right );
6969
70
71
trunk/src/mame/includes/darkmist.h
r17967r17968
2727   TILE_GET_INFO_MEMBER(get_txttile_info);
2828   virtual void video_start();
2929   virtual void palette_init();
30   UINT32 screen_update_darkmist(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3031};
3132
3233
3334/*----------- defined in video/darkmist.c -----------*/
3435
3536
36SCREEN_UPDATE_IND16( darkmist );
3737
3838
39
trunk/src/mame/includes/ajax.h
r17967r17968
3636   virtual void machine_start();
3737   virtual void machine_reset();
3838   virtual void video_start();
39   UINT32 screen_update_ajax(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3940};
4041
4142
r17967r17968
4849/*----------- defined in video/ajax.c -----------*/
4950
5051
51SCREEN_UPDATE_IND16( ajax );
5252
53
5354extern void ajax_tile_callback(running_machine &machine, int layer,int bank,int *code,int *color,int *flags,int *priority);
5455extern void ajax_sprite_callback(running_machine &machine, int *code,int *color,int *priority,int *shadow);
5556extern void ajax_zoom_callback(running_machine &machine, int *code,int *color,int *flags);
trunk/src/mame/includes/funybubl.h
r17967r17968
2222   DECLARE_WRITE8_MEMBER(funybubl_oki_bank_sw);
2323   virtual void machine_start();
2424   virtual void video_start();
25   UINT32 screen_update_funybubl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2526};
2627
2728
r17967r17968
3031
3132
3233
33SCREEN_UPDATE_IND16(funybubl);
34
trunk/src/mame/video/sbugger.c
r17967r17968
3232   m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(sbugger_state::get_sbugger_tile_info),this), TILEMAP_SCAN_ROWS, 8, 16, 64, 16);
3333}
3434
35SCREEN_UPDATE_IND16(sbugger)
35UINT32 sbugger_state::screen_update_sbugger(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
3636{
37   sbugger_state *state = screen.machine().driver_data<sbugger_state>();
38   state->m_tilemap->draw(bitmap, cliprect, 0,0);
37   m_tilemap->draw(bitmap, cliprect, 0,0);
3938   return 0;
4039}
4140
trunk/src/mame/video/targeth.c
r17967r17968
129129
130130***************************************************************************/
131131
132SCREEN_UPDATE_IND16( targeth )
132UINT32 targeth_state::screen_update_targeth(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
133133{
134   targeth_state *state = screen.machine().driver_data<targeth_state>();
135134   /* set scroll registers */
136   state->m_pant[0]->set_scrolly(0, state->m_vregs[0]);
137   state->m_pant[0]->set_scrollx(0, state->m_vregs[1] + 0x04);
138   state->m_pant[1]->set_scrolly(0, state->m_vregs[2]);
139   state->m_pant[1]->set_scrollx(0, state->m_vregs[3]);
135   m_pant[0]->set_scrolly(0, m_vregs[0]);
136   m_pant[0]->set_scrollx(0, m_vregs[1] + 0x04);
137   m_pant[1]->set_scrolly(0, m_vregs[2]);
138   m_pant[1]->set_scrollx(0, m_vregs[3]);
140139
141   state->m_pant[1]->draw(bitmap, cliprect, 0,0);
142   state->m_pant[0]->draw(bitmap, cliprect, 0,0);
140   m_pant[1]->draw(bitmap, cliprect, 0,0);
141   m_pant[0]->draw(bitmap, cliprect, 0,0);
143142   draw_sprites(screen.machine(), bitmap,cliprect);
144143
145144   return 0;
trunk/src/mame/video/nycaptor.c
r17967r17968
237237}
238238#endif
239239
240SCREEN_UPDATE_IND16( nycaptor )
240UINT32 nycaptor_state::screen_update_nycaptor(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
241241{
242   nycaptor_state *state = screen.machine().driver_data<nycaptor_state>();
243242
244243#if NYCAPTOR_DEBUG
245244   nycaptor_setmask(screen.machine());
246   if (state->m_mask & 0x1000)
245   if (m_mask & 0x1000)
247246   {
248      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3, 0);
249      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3, 0);
250      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2, 0);
251      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2, 0);
252      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 0);
253      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 0);
254      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 0);
255      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 0);
247      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3, 0);
248      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3, 0);
249      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2, 0);
250      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2, 0);
251      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 0);
252      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 0);
253      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 0);
254      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 0);
256255      draw_sprites(screen.machine(), bitmap, cliprect, 0);
257256      draw_sprites(screen.machine(), bitmap, cliprect, 1);
258257      draw_sprites(screen.machine(), bitmap, cliprect, 2);
r17967r17968
267266   switch (nycaptor_spot(screen.machine()) & 3)
268267   {
269268   case 0:
270      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3, 0);
269      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3, 0);
271270      draw_sprites(screen.machine(), bitmap, cliprect, 6);
272      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3, 0);
273      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2, 0);
274      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2, 0);
275      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 0);
271      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3, 0);
272      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2, 0);
273      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2, 0);
274      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 0);
276275      draw_sprites(screen.machine(), bitmap, cliprect, 3);
277      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 0);
276      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 0);
278277      draw_sprites(screen.machine(), bitmap, cliprect, 0);
279278      draw_sprites(screen.machine(), bitmap, cliprect, 2);
280      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 0);
279      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 0);
281280      draw_sprites(screen.machine(), bitmap, cliprect, 1);
282      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 0);
281      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 0);
283282      break;
284283
285284   case 1:
286      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3, 0);
285      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3, 0);
287286      draw_sprites(screen.machine(), bitmap, cliprect, 3);
288      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3, 0);
287      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3, 0);
289288      draw_sprites(screen.machine(), bitmap, cliprect, 2);
290      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2, 0);
291      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 0);
289      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2, 0);
290      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 0);
292291      draw_sprites(screen.machine(), bitmap, cliprect, 1);
293      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 0);
294      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2, 0);
292      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 0);
293      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2, 0);
295294      draw_sprites(screen.machine(), bitmap, cliprect, 0);
296      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 0);
297      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 0);
295      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 0);
296      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 0);
298297      break;
299298
300299   case 2:
301      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3, 0);
302      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3, 0);
303      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 0);
300      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3, 0);
301      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3, 0);
302      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 0);
304303      draw_sprites(screen.machine(), bitmap, cliprect, 1);
305      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 0);
306      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2, 0);
307      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2, 0);
304      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 0);
305      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2, 0);
306      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2, 0);
308307      draw_sprites(screen.machine(), bitmap, cliprect, 0);
309      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 0);
310      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 0);
308      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 0);
309      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 0);
311310      break;
312311
313312   case 3:
314      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 0);
313      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 0);
315314      draw_sprites(screen.machine(), bitmap, cliprect, 1);
316      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 0);
315      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 0);
317316      draw_sprites(screen.machine(), bitmap, cliprect, 0);
318      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 0);
319      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 0);
317      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 0);
318      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 0);
320319      break;
321320   }
322321
trunk/src/mame/video/mitchell.c
r17967r17968
310310   }
311311}
312312
313SCREEN_UPDATE_IND16( pang )
313UINT32 mitchell_state::screen_update_pang(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
314314{
315   mitchell_state *state = screen.machine().driver_data<mitchell_state>();
316315
317316   bitmap.fill(0, cliprect);
318   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
317   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
319318   draw_sprites(screen.machine(), bitmap, cliprect);
320319   return 0;
321320}
trunk/src/mame/video/rainbow.c
r17967r17968
4040
4141/***************************************************************************/
4242
43SCREEN_UPDATE_IND16( rainbow )
43UINT32 rbisland_state::screen_update_rainbow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
4444{
45   rbisland_state *state = screen.machine().driver_data<rbisland_state>();
4645   int layer[2];
4746
48   pc080sn_tilemap_update(state->m_pc080sn);
47   pc080sn_tilemap_update(m_pc080sn);
4948
5049   layer[0] = 0;
5150   layer[1] = 1;
5251
5352   screen.machine().priority_bitmap.fill(0, cliprect);
5453
55   pc080sn_tilemap_draw(state->m_pc080sn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
56   pc080sn_tilemap_draw(state->m_pc080sn, bitmap, cliprect, layer[1], 0, 2);
54   pc080sn_tilemap_draw(m_pc080sn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
55   pc080sn_tilemap_draw(m_pc080sn, bitmap, cliprect, layer[1], 0, 2);
5756
58   pc090oj_draw_sprites(state->m_pc090oj, bitmap, cliprect, 1);
57   pc090oj_draw_sprites(m_pc090oj, bitmap, cliprect, 1);
5958   return 0;
6059}
6160
r17967r17968
8483}
8584
8685
87SCREEN_UPDATE_IND16( jumping )
86UINT32 rbisland_state::screen_update_jumping(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
8887{
89   rbisland_state *state = screen.machine().driver_data<rbisland_state>();
90   UINT16 *spriteram = state->m_spriteram;
88   UINT16 *spriteram = m_spriteram;
9189   int offs, layer[2];
92   int sprite_colbank = (state->m_sprite_ctrl & 0xe0) >> 1;
90   int sprite_colbank = (m_sprite_ctrl & 0xe0) >> 1;
9391
94   pc080sn_tilemap_update(state->m_pc080sn);
92   pc080sn_tilemap_update(m_pc080sn);
9593
9694   /* Override values, or foreground layer is in wrong position */
97   pc080sn_set_scroll(state->m_pc080sn, 1, 16, 0);
95   pc080sn_set_scroll(m_pc080sn, 1, 16, 0);
9896
9997   layer[0] = 0;
10098   layer[1] = 1;
10199
102100   screen.machine().priority_bitmap.fill(0, cliprect);
103101
104   pc080sn_tilemap_draw(state->m_pc080sn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0);
102   pc080sn_tilemap_draw(m_pc080sn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0);
105103
106104   /* Draw the sprites. 128 sprites in total */
107   for (offs = state->m_spriteram.bytes() / 2 - 8; offs >= 0; offs -= 8)
105   for (offs = m_spriteram.bytes() / 2 - 8; offs >= 0; offs -= 8)
108106   {
109107      int tile = spriteram[offs];
110108      if (tile < screen.machine().gfx[1]->elements())
r17967r17968
127125      }
128126   }
129127
130   pc080sn_tilemap_draw(state->m_pc080sn, bitmap, cliprect, layer[1], 0, 0);
128   pc080sn_tilemap_draw(m_pc080sn, bitmap, cliprect, layer[1], 0, 0);
131129
132130#if 0
133131   {
134132      char buf[80];
135      sprintf(buf,"sprite_ctrl: %04x", state->m_sprite_ctrl);
133      sprintf(buf,"sprite_ctrl: %04x", m_sprite_ctrl);
136134      popmessage(buf);
137135   }
138136#endif
trunk/src/mame/video/galspnbl.c
r17967r17968
101101}
102102
103103
104SCREEN_UPDATE_IND16( galspnbl )
104UINT32 galspnbl_state::screen_update_galspnbl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
105105{
106   galspnbl_state *state = screen.machine().driver_data<galspnbl_state>();
107106   int offs;
108107
109108   draw_background(screen.machine(), bitmap, cliprect);
r17967r17968
114113   {
115114      int sx, sy, code, attr, color;
116115
117      code = state->m_videoram[offs];
118      attr = state->m_colorram[offs];
116      code = m_videoram[offs];
117      attr = m_colorram[offs];
119118      color = (attr & 0x00f0) >> 4;
120119      sx = offs % 64;
121120      sy = offs / 64;
trunk/src/mame/video/xevious.c
r17967r17968
495495}
496496
497497
498SCREEN_UPDATE_IND16( xevious )
498UINT32 xevious_state::screen_update_xevious(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
499499{
500   xevious_state *state =  screen.machine().driver_data<xevious_state>();
501500
502   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
501   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
503502   draw_sprites(screen.machine(), bitmap,cliprect);
504   state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
503   m_fg_tilemap->draw(bitmap, cliprect, 0,0);
505504   return 0;
506505}
trunk/src/mame/video/dynduke.c
r17967r17968
219219   }
220220}
221221
222SCREEN_UPDATE_IND16( dynduke )
222UINT32 dynduke_state::screen_update_dynduke(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
223223{
224   dynduke_state *state = screen.machine().driver_data<dynduke_state>();
225224   /* Setup the tilemaps */
226   state->m_fg_layer->set_scrolly(0, ((state->m_scroll_ram[0x11]&0x30)<<4)+((state->m_scroll_ram[0x12]&0x7f)<<1)+((state->m_scroll_ram[0x12]&0x80)>>7) );
227   state->m_fg_layer->set_scrollx(0, ((state->m_scroll_ram[0x19]&0x30)<<4)+((state->m_scroll_ram[0x1a]&0x7f)<<1)+((state->m_scroll_ram[0x1a]&0x80)>>7) );
228   state->m_fg_layer->enable(state->m_fore_enable);
229   state->m_tx_layer->enable(state->m_txt_enable);
225   m_fg_layer->set_scrolly(0, ((m_scroll_ram[0x11]&0x30)<<4)+((m_scroll_ram[0x12]&0x7f)<<1)+((m_scroll_ram[0x12]&0x80)>>7) );
226   m_fg_layer->set_scrollx(0, ((m_scroll_ram[0x19]&0x30)<<4)+((m_scroll_ram[0x1a]&0x7f)<<1)+((m_scroll_ram[0x1a]&0x80)>>7) );
227   m_fg_layer->enable(m_fore_enable);
228   m_tx_layer->enable(m_txt_enable);
230229
231230
232231   draw_background(screen.machine(), bitmap, cliprect,0x00);
r17967r17968
235234   draw_background(screen.machine(), bitmap, cliprect,0x20);
236235
237236   draw_sprites(screen.machine(),bitmap,cliprect,2);
238   state->m_fg_layer->draw(bitmap, cliprect, 0,0);
237   m_fg_layer->draw(bitmap, cliprect, 0,0);
239238   draw_sprites(screen.machine(),bitmap,cliprect,3);
240   state->m_tx_layer->draw(bitmap, cliprect, 0,0);
239   m_tx_layer->draw(bitmap, cliprect, 0,0);
241240
242241   return 0;
243242}
trunk/src/mame/video/blktiger.c
r17967r17968
218218   }
219219}
220220
221SCREEN_UPDATE_IND16( blktiger )
221UINT32 blktiger_state::screen_update_blktiger(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
222222{
223   blktiger_state *state = screen.machine().driver_data<blktiger_state>();
224223
225224   bitmap.fill(1023, cliprect);
226225
227   if (state->m_bgon)
228      (state->m_screen_layout ? state->m_bg_tilemap8x4 : state->m_bg_tilemap4x8)->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
226   if (m_bgon)
227      (m_screen_layout ? m_bg_tilemap8x4 : m_bg_tilemap4x8)->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
229228
230   if (state->m_objon)
229   if (m_objon)
231230      draw_sprites(screen.machine(), bitmap, cliprect);
232231
233   if (state->m_bgon)
234      (state->m_screen_layout ? state->m_bg_tilemap8x4 : state->m_bg_tilemap4x8)->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
232   if (m_bgon)
233      (m_screen_layout ? m_bg_tilemap8x4 : m_bg_tilemap4x8)->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
235234
236   if (state->m_chon)
237      state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
235   if (m_chon)
236      m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
238237
239238   return 0;
240239}
trunk/src/mame/video/tunhunt.c
r17967r17968
374374         255-hposition-16,vstart-32,0 );
375375}
376376
377SCREEN_UPDATE_IND16( tunhunt )
377UINT32 tunhunt_state::screen_update_tunhunt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
378378{
379   tunhunt_state *state = screen.machine().driver_data<tunhunt_state>();
380379   set_pens(screen.machine());
381380
382381   draw_box(screen.machine(), bitmap, cliprect);
r17967r17968
384383   draw_motion_object(screen.machine(), bitmap, cliprect);
385384
386385   draw_shell(screen.machine(), bitmap, cliprect,
387      state->m_workram[SHL0PC],   /* picture code */
388      state->m_workram[SHEL0H],   /* hposition */
389      state->m_workram[SHL0V],   /* vstart */
390      state->m_workram[SHL0VS],   /* vstop */
391      state->m_workram[SHL0ST],   /* vstretch */
392      state->m_control&0x08 ); /* hstretch */
386      m_workram[SHL0PC],   /* picture code */
387      m_workram[SHEL0H],   /* hposition */
388      m_workram[SHL0V],   /* vstart */
389      m_workram[SHL0VS],   /* vstop */
390      m_workram[SHL0ST],   /* vstretch */
391      m_control&0x08 ); /* hstretch */
393392
394393   draw_shell(screen.machine(), bitmap, cliprect,
395      state->m_workram[SHL1PC],   /* picture code */
396      state->m_workram[SHEL1H],   /* hposition */
397      state->m_workram[SHL1V],   /* vstart */
398      state->m_workram[SHL1VS],   /* vstop */
399      state->m_workram[SHL1ST],   /* vstretch */
400      state->m_control&0x10 ); /* hstretch */
394      m_workram[SHL1PC],   /* picture code */
395      m_workram[SHEL1H],   /* hposition */
396      m_workram[SHL1V],   /* vstart */
397      m_workram[SHL1VS],   /* vstop */
398      m_workram[SHL1ST],   /* vstretch */
399      m_control&0x10 ); /* hstretch */
401400
402   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
401   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
403402   return 0;
404403}
trunk/src/mame/video/deco_mlc.c
r17967r17968
493493   }
494494}
495495
496SCREEN_VBLANK( mlc )
496void deco_mlc_state::screen_eof_mlc(screen_device &screen, bool state)
497497{
498498   // rising edge
499   if (vblank_on)
499   if (state)
500500   {
501      deco_mlc_state *state = screen.machine().driver_data<deco_mlc_state>();
502501      /* Spriteram is definitely double buffered, as the vram lookup tables
503502        are often updated a frame after spriteram is setup to point to a new
504503        lookup table.  Without buffering incorrect one frame glitches are seen
505504        in several places, especially in Hoops.
506505        */
507      memcpy(state->m_mlc_buffered_spriteram, state->m_spriteram, 0x3000);
506      memcpy(m_mlc_buffered_spriteram, m_spriteram, 0x3000);
508507   }
509508}
510509
511SCREEN_UPDATE_RGB32( mlc )
510UINT32 deco_mlc_state::screen_update_mlc(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
512511{
513512//  temp_bitmap->fill(0, cliprect);
514513   bitmap.fill(screen.machine().pens[0], cliprect); /* Pen 0 fill colour confirmed from Skull Fang level 2 */
trunk/src/mame/video/tryout.c
r17967r17968
227227   }
228228}
229229
230SCREEN_UPDATE_IND16( tryout )
230UINT32 tryout_state::screen_update_tryout(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
231231{
232   tryout_state *state = screen.machine().driver_data<tryout_state>();
233232   int scrollx = 0;
234233
235   if (!state->flip_screen())
236      state->m_fg_tilemap->set_scrollx(0, 16); /* Assumed hard-wired */
234   if (!flip_screen())
235      m_fg_tilemap->set_scrollx(0, 16); /* Assumed hard-wired */
237236   else
238      state->m_fg_tilemap->set_scrollx(0, -8); /* Assumed hard-wired */
237      m_fg_tilemap->set_scrollx(0, -8); /* Assumed hard-wired */
239238
240   scrollx = state->m_gfx_control[1] + ((state->m_gfx_control[0]&1)<<8) + ((state->m_gfx_control[0]&4)<<7) - ((state->m_gfx_control[0] & 2) ? 0 : 0x100);
239   scrollx = m_gfx_control[1] + ((m_gfx_control[0]&1)<<8) + ((m_gfx_control[0]&4)<<7) - ((m_gfx_control[0] & 2) ? 0 : 0x100);
241240
242241   /* wrap-around */
243   if(state->m_gfx_control[1] == 0) { scrollx+=0x100; }
242   if(m_gfx_control[1] == 0) { scrollx+=0x100; }
244243
245   state->m_bg_tilemap->set_scrollx(0, scrollx+2); /* why +2? hard-wired? */
246   state->m_bg_tilemap->set_scrolly(0, -state->m_gfx_control[2]);
244   m_bg_tilemap->set_scrollx(0, scrollx+2); /* why +2? hard-wired? */
245   m_bg_tilemap->set_scrolly(0, -m_gfx_control[2]);
247246
248   if(!(state->m_gfx_control[0] & 0x8)) // screen disable
247   if(!(m_gfx_control[0] & 0x8)) // screen disable
249248   {
250249      /* TODO: Color might be different, needs a video from an original pcb. */
251250      bitmap.fill(screen.machine().pens[0x10], cliprect);
252251   }
253252   else
254253   {
255      state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
256      state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
254      m_bg_tilemap->draw(bitmap, cliprect, 0,0);
255      m_fg_tilemap->draw(bitmap, cliprect, 0,0);
257256      draw_sprites(screen.machine(), bitmap,cliprect);
258257   }
259258
260//  popmessage("%02x %02x %02x %02x",state->m_gfx_control[0],state->m_gfx_control[1],state->m_gfx_control[2],scrollx);
259//  popmessage("%02x %02x %02x %02x",m_gfx_control[0],m_gfx_control[1],m_gfx_control[2],scrollx);
261260   return 0;
262261}
trunk/src/mame/video/rungun.c
r17967r17968
9797   m_sprite_colorbase = 0x20;
9898}
9999
100SCREEN_UPDATE_IND16(rng)
100UINT32 rungun_state::screen_update_rng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
101101{
102   rungun_state *state = screen.machine().driver_data<rungun_state>();
103102
104103   bitmap.fill(get_black_pen(screen.machine()), cliprect);
105104   screen.machine().priority_bitmap.fill(0, cliprect);
106105
107   k053936_zoom_draw(state->m_k053936, bitmap, cliprect, state->m_936_tilemap, 0, 0, 1);
106   k053936_zoom_draw(m_k053936, bitmap, cliprect, m_936_tilemap, 0, 0, 1);
108107
109   k053247_sprites_draw(state->m_k055673, bitmap, cliprect);
108   k053247_sprites_draw(m_k055673, bitmap, cliprect);
110109
111   state->m_ttl_tilemap->mark_all_dirty();
112   state->m_ttl_tilemap->draw(bitmap, cliprect, 0, 0);
110   m_ttl_tilemap->mark_all_dirty();
111   m_ttl_tilemap->draw(bitmap, cliprect, 0, 0);
113112   return 0;
114113}
trunk/src/mame/video/eprom.c
r17967r17968
229229 *
230230 *************************************/
231231
232SCREEN_UPDATE_IND16( eprom )
232UINT32 eprom_state::screen_update_eprom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
233233{
234   eprom_state *state = screen.machine().driver_data<eprom_state>();
235234   atarimo_rect_list rectlist;
236235   bitmap_ind16 *mobitmap;
237236   int x, y, r;
238237
239   if (state->m_video_disable)
238   if (m_video_disable)
240239   {
241240      bitmap.fill(get_black_pen(screen.machine()), cliprect);
242241      return 0;
r17967r17968
245244   update_palette(screen.machine());
246245
247246   /* draw the playfield */
248   state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
247   m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
249248
250249   /* draw and merge the MO */
251250   mobitmap = atarimo_render(0, cliprect, &rectlist);
r17967r17968
354353      }
355354
356355   /* add the alpha on top */
357   state->m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
356   m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
358357
359358   /* now go back and process the upper bit of MO priority */
360359   rectlist.rect -= rectlist.numrects;
r17967r17968
384383}
385384
386385
387SCREEN_UPDATE_IND16( guts )
386UINT32 eprom_state::screen_update_guts(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
388387{
389   eprom_state *state = screen.machine().driver_data<eprom_state>();
390388   atarimo_rect_list rectlist;
391389   bitmap_ind16 *mobitmap;
392390   int x, y, r;
393391
394   if (state->m_video_disable)
392   if (m_video_disable)
395393   {
396394      bitmap.fill(get_black_pen(screen.machine()), cliprect);
397395      return 0;
r17967r17968
400398   update_palette(screen.machine());
401399
402400   /* draw the playfield */
403   state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
401   m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
404402
405403   /* draw and merge the MO */
406404   mobitmap = atarimo_render(0, cliprect, &rectlist);
r17967r17968
428426      }
429427
430428   /* add the alpha on top */
431   state->m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
429   m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
432430
433431   /* now go back and process the upper bit of MO priority */
434432   rectlist.rect -= rectlist.numrects;
trunk/src/mame/video/madmotor.c
r17967r17968
2222
2323/******************************************************************************/
2424
25SCREEN_UPDATE_IND16( madmotor )
25UINT32 madmotor_state::screen_update_madmotor(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
2626{
27   madmotor_state *state = screen.machine().driver_data<madmotor_state>();
28   state->flip_screen_set(screen.machine().device<deco_bac06_device>("tilegen1")->get_flip_state());
27   flip_screen_set(screen.machine().device<deco_bac06_device>("tilegen1")->get_flip_state());
2928
3029//  screen.machine().tilemap().set_flip_all(screen.machine().device<deco_bac06_device>("tilegen1")->get_flip_state() ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
3130
3231   screen.machine().device<deco_bac06_device>("tilegen3")->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
3332   screen.machine().device<deco_bac06_device>("tilegen2")->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
34   screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram, 0x00, 0x00, 0x0f);
33   screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram, 0x00, 0x00, 0x0f);
3534   screen.machine().device<deco_bac06_device>("tilegen1")->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
3635   return 0;
3736}
trunk/src/mame/video/bublbobl.c
r17967r17968
1010#include "includes/bublbobl.h"
1111
1212
13SCREEN_UPDATE_IND16( bublbobl )
13UINT32 bublbobl_state::screen_update_bublbobl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
1414{
15   bublbobl_state *state = screen.machine().driver_data<bublbobl_state>();
1615   int offs;
1716   int sx, sy, xc, yc;
1817   int gfx_num, gfx_attr, gfx_offs;
r17967r17968
2726   /* This clears & redraws the entire screen each pass */
2827   bitmap.fill(255, cliprect);
2928
30   if (!state->m_video_enable)
29   if (!m_video_enable)
3130      return 0;
3231
3332   sx = 0;
3433
35   prom = state->memregion("proms")->base();
36   for (offs = 0; offs < state->m_objectram.bytes(); offs += 4)
34   prom = memregion("proms")->base();
35   for (offs = 0; offs < m_objectram.bytes(); offs += 4)
3736   {
3837      /* skip empty sprites */
3938      /* this is dword aligned so the UINT32 * cast shouldn't give problems */
4039      /* on any architecture */
41      if (*(UINT32 *)(&state->m_objectram[offs]) == 0)
40      if (*(UINT32 *)(&m_objectram[offs]) == 0)
4241         continue;
4342
44      gfx_num = state->m_objectram[offs + 1];
45      gfx_attr = state->m_objectram[offs + 3];
43      gfx_num = m_objectram[offs + 1];
44      gfx_attr = m_objectram[offs + 3];
4645      prom_line = prom + 0x80 + ((gfx_num & 0xe0) >> 1);
4746
4847      gfx_offs = ((gfx_num & 0x1f) * 0x80);
4948      if ((gfx_num & 0xa0) == 0xa0)
5049         gfx_offs |= 0x1000;
5150
52      sy = -state->m_objectram[offs + 0];
51      sy = -m_objectram[offs + 0];
5352
5453      for (yc = 0; yc < 32; yc++)
5554      {
r17967r17968
5756
5857         if (!(prom_line[yc / 2] & 0x04))   /* next column */
5958         {
60            sx = state->m_objectram[offs + 2];
59            sx = m_objectram[offs + 2];
6160            if (gfx_attr & 0x40) sx -= 256;
6261         }
6362
r17967r17968
6665            int goffs, code, color, flipx, flipy, x, y;
6766
6867            goffs = gfx_offs + xc * 0x40 + (yc & 7) * 0x02 + (prom_line[yc/2] & 0x03) * 0x10;
69            code = state->m_videoram[goffs] + 256 * (state->m_videoram[goffs + 1] & 0x03) + 1024 * (gfx_attr & 0x0f);
70            color = (state->m_videoram[goffs + 1] & 0x3c) >> 2;
71            flipx = state->m_videoram[goffs + 1] & 0x40;
72            flipy = state->m_videoram[goffs + 1] & 0x80;
68            code = m_videoram[goffs] + 256 * (m_videoram[goffs + 1] & 0x03) + 1024 * (gfx_attr & 0x0f);
69            color = (m_videoram[goffs + 1] & 0x3c) >> 2;
70            flipx = m_videoram[goffs + 1] & 0x40;
71            flipy = m_videoram[goffs + 1] & 0x80;
7372            x = sx + xc * 8;
7473            y = (sy + yc * 8) & 0xff;
7574
76            if (state->flip_screen())
75            if (flip_screen())
7776            {
7877               x = 248 - x;
7978               y = 248 - y;
trunk/src/mame/video/skyfox.c
r17967r17968
280280***************************************************************************/
281281
282282
283SCREEN_UPDATE_IND16( skyfox )
283UINT32 skyfox_state::screen_update_skyfox(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
284284{
285285   bitmap.fill(255, cliprect);   // the bg is black
286286   draw_background(screen.machine(), bitmap, cliprect);
trunk/src/mame/video/rocnrope.c
r17967r17968
139139   }
140140}
141141
142SCREEN_UPDATE_IND16( rocnrope )
142UINT32 rocnrope_state::screen_update_rocnrope(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
143143{
144   rocnrope_state *state = screen.machine().driver_data<rocnrope_state>();
145   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
144   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
146145   draw_sprites(screen.machine(), bitmap, cliprect);
147146   return 0;
148147}
trunk/src/mame/video/aerofgt.c
r17967r17968
811811}
812812
813813
814SCREEN_UPDATE_IND16( pspikes )
814UINT32 aerofgt_state::screen_update_pspikes(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
815815{
816   aerofgt_state *state = screen.machine().driver_data<aerofgt_state>();
817816   int i, scrolly;
818817
819   state->m_bg1_tilemap->set_scroll_rows(256);
820   scrolly = state->m_bg1scrolly;
818   m_bg1_tilemap->set_scroll_rows(256);
819   scrolly = m_bg1scrolly;
821820   for (i = 0; i < 256; i++)
822      state->m_bg1_tilemap->set_scrollx((i + scrolly) & 0xff, state->m_rasterram[i]);
823   state->m_bg1_tilemap->set_scrolly(0, scrolly);
821      m_bg1_tilemap->set_scrollx((i + scrolly) & 0xff, m_rasterram[i]);
822   m_bg1_tilemap->set_scrolly(0, scrolly);
824823
825824   screen.machine().priority_bitmap.fill(0, cliprect);
826825
827   state->m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
826   m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
828827   turbofrc_draw_sprites(screen.machine(), bitmap, cliprect, 0, -1);
829828   turbofrc_draw_sprites(screen.machine(), bitmap, cliprect, 0, 0);
830829   return 0;
831830}
832831
833SCREEN_UPDATE_IND16( pspikesb )
832UINT32 aerofgt_state::screen_update_pspikesb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
834833{
835   aerofgt_state *state = screen.machine().driver_data<aerofgt_state>();
836834   int i, scrolly;
837835
838   state->m_bg1_tilemap->set_scroll_rows(256);
839   scrolly = state->m_bg1scrolly;
836   m_bg1_tilemap->set_scroll_rows(256);
837   scrolly = m_bg1scrolly;
840838   for (i = 0; i < 256; i++)
841      state->m_bg1_tilemap->set_scrollx((i + scrolly) & 0xff, state->m_rasterram[i] + 22);
842   state->m_bg1_tilemap->set_scrolly(0, scrolly);
839      m_bg1_tilemap->set_scrollx((i + scrolly) & 0xff, m_rasterram[i] + 22);
840   m_bg1_tilemap->set_scrolly(0, scrolly);
843841
844   state->m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
842   m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
845843   pspikesb_draw_sprites(screen.machine(), bitmap, cliprect);
846844   return 0;
847845}
848846
849SCREEN_UPDATE_IND16( spikes91 )
847UINT32 aerofgt_state::screen_update_spikes91(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
850848{
851   aerofgt_state *state = screen.machine().driver_data<aerofgt_state>();
852849   int i, scrolly;
853850   int y, x;
854851   int count;
855852   gfx_element *gfx = screen.machine().gfx[0];
856853
857   state->m_bg1_tilemap->set_scroll_rows(256);
858   scrolly = state->m_bg1scrolly;
854   m_bg1_tilemap->set_scroll_rows(256);
855   scrolly = m_bg1scrolly;
859856
860857   for (i = 0; i < 256; i++)
861      state->m_bg1_tilemap->set_scrollx((i + scrolly) & 0xff, state->m_rasterram[i + 0x01f0 / 2] + 0x96 + 0x16);
862   state->m_bg1_tilemap->set_scrolly(0, scrolly);
858      m_bg1_tilemap->set_scrollx((i + scrolly) & 0xff, m_rasterram[i + 0x01f0 / 2] + 0x96 + 0x16);
859   m_bg1_tilemap->set_scrolly(0, scrolly);
863860
864   state->m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
861   m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
865862   spikes91_draw_sprites(screen.machine(), bitmap, cliprect);
866863
867864   /* we could use a tilemap, but it's easier to just do it here */
r17967r17968
870867   {
871868      for (x = 0; x < 64; x++)
872869      {
873         UINT16 tileno = state->m_tx_tilemap_ram[count] & 0x1fff;
874         UINT16 colour = state->m_tx_tilemap_ram[count] & 0xe000;
870         UINT16 tileno = m_tx_tilemap_ram[count] & 0x1fff;
871         UINT16 colour = m_tx_tilemap_ram[count] & 0xe000;
875872         drawgfx_transpen(bitmap,cliprect,gfx,
876873               tileno,
877874               colour>>13,
r17967r17968
887884   return 0;
888885}
889886
890SCREEN_UPDATE_IND16( karatblz )
887UINT32 aerofgt_state::screen_update_karatblz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
891888{
892   aerofgt_state *state = screen.machine().driver_data<aerofgt_state>();
893   state->m_bg1_tilemap->set_scrollx(0, state->m_bg1scrollx - 8);
894   state->m_bg1_tilemap->set_scrolly(0, state->m_bg1scrolly);
895   state->m_bg2_tilemap->set_scrollx(0, state->m_bg2scrollx - 4);
896   state->m_bg2_tilemap->set_scrolly(0, state->m_bg2scrolly);
889   m_bg1_tilemap->set_scrollx(0, m_bg1scrollx - 8);
890   m_bg1_tilemap->set_scrolly(0, m_bg1scrolly);
891   m_bg2_tilemap->set_scrollx(0, m_bg2scrollx - 4);
892   m_bg2_tilemap->set_scrolly(0, m_bg2scrolly);
897893
898894   screen.machine().priority_bitmap.fill(0, cliprect);
899895
900   state->m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
901   state->m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
896   m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
897   m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
902898
903899   /* we use the priority buffer so sprites are drawn front to back */
904900   turbofrc_draw_sprites(screen.machine(), bitmap, cliprect, 1, -1);
r17967r17968
908904   return 0;
909905}
910906
911SCREEN_UPDATE_IND16( spinlbrk )
907UINT32 aerofgt_state::screen_update_spinlbrk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
912908{
913   aerofgt_state *state = screen.machine().driver_data<aerofgt_state>();
914909   int i, scrolly;
915910
916   state->m_bg1_tilemap->set_scroll_rows(512);
911   m_bg1_tilemap->set_scroll_rows(512);
917912   scrolly = 0;
918913   for (i = 0; i < 256; i++)
919      state->m_bg1_tilemap->set_scrollx((i + scrolly) & 0x1ff, state->m_rasterram[i] - 8);
920//  state->m_bg1_tilemap->set_scrolly(0, state->m_bg1scrolly);
921   state->m_bg2_tilemap->set_scrollx(0, state->m_bg2scrollx - 4);
922//  state->m_bg2_tilemap->set_scrolly(0, state->m_bg2scrolly);
914      m_bg1_tilemap->set_scrollx((i + scrolly) & 0x1ff, m_rasterram[i] - 8);
915//  m_bg1_tilemap->set_scrolly(0, m_bg1scrolly);
916   m_bg2_tilemap->set_scrollx(0, m_bg2scrollx - 4);
917//  m_bg2_tilemap->set_scrolly(0, m_bg2scrolly);
923918
924919   screen.machine().priority_bitmap.fill(0, cliprect);
925920
926   state->m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
927   state->m_bg2_tilemap->draw(bitmap, cliprect, 0, 1);
921   m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
922   m_bg2_tilemap->draw(bitmap, cliprect, 0, 1);
928923
929924   /* we use the priority buffer so sprites are drawn front to back */
930925   spinlbrk_draw_sprites(screen.machine(), bitmap, cliprect, 0, 0);
r17967r17968
934929   return 0;
935930}
936931
937SCREEN_UPDATE_IND16( turbofrc )
932UINT32 aerofgt_state::screen_update_turbofrc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
938933{
939   aerofgt_state *state = screen.machine().driver_data<aerofgt_state>();
940934   int i, scrolly;
941935
942   state->m_bg1_tilemap->set_scroll_rows(512);
943   scrolly = state->m_bg1scrolly + 2;
936   m_bg1_tilemap->set_scroll_rows(512);
937   scrolly = m_bg1scrolly + 2;
944938   for (i = 0; i < 256; i++)
945//      state->m_bg1_tilemap->set_scrollx((i + scrolly) & 0x1ff, state->m_rasterram[i] - 11);
946      state->m_bg1_tilemap->set_scrollx((i + scrolly) & 0x1ff, state->m_rasterram[7] - 11);
947   state->m_bg1_tilemap->set_scrolly(0, scrolly);
948   state->m_bg2_tilemap->set_scrollx(0, state->m_bg2scrollx - 7);
949   state->m_bg2_tilemap->set_scrolly(0, state->m_bg2scrolly + 2);
939//      m_bg1_tilemap->set_scrollx((i + scrolly) & 0x1ff, m_rasterram[i] - 11);
940      m_bg1_tilemap->set_scrollx((i + scrolly) & 0x1ff, m_rasterram[7] - 11);
941   m_bg1_tilemap->set_scrolly(0, scrolly);
942   m_bg2_tilemap->set_scrollx(0, m_bg2scrollx - 7);
943   m_bg2_tilemap->set_scrolly(0, m_bg2scrolly + 2);
950944
951945   screen.machine().priority_bitmap.fill(0, cliprect);
952946
953   state->m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
954   state->m_bg2_tilemap->draw(bitmap, cliprect, 0, 1);
947   m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
948   m_bg2_tilemap->draw(bitmap, cliprect, 0, 1);
955949
956950   /* we use the priority buffer so sprites are drawn front to back */
957951   turbofrc_draw_sprites(screen.machine(), bitmap, cliprect, 1, -1); //ship
r17967r17968
961955   return 0;
962956}
963957
964SCREEN_UPDATE_IND16( aerofgt )
958UINT32 aerofgt_state::screen_update_aerofgt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
965959{
966   aerofgt_state *state = screen.machine().driver_data<aerofgt_state>();
967   state->m_bg1_tilemap->set_scrollx(0, state->m_rasterram[0x0000] - 18);
968   state->m_bg1_tilemap->set_scrolly(0, state->m_bg1scrolly);
969   state->m_bg2_tilemap->set_scrollx(0, state->m_rasterram[0x0200] - 20);
970   state->m_bg2_tilemap->set_scrolly(0, state->m_bg2scrolly);
960   m_bg1_tilemap->set_scrollx(0, m_rasterram[0x0000] - 18);
961   m_bg1_tilemap->set_scrolly(0, m_bg1scrolly);
962   m_bg2_tilemap->set_scrollx(0, m_rasterram[0x0200] - 20);
963   m_bg2_tilemap->set_scrolly(0, m_bg2scrolly);
971964
972965   screen.machine().priority_bitmap.fill(0, cliprect);
973966
974   state->m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
967   m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
975968
976969   aerofgt_draw_sprites(screen.machine(), bitmap, cliprect, 0);
977970   aerofgt_draw_sprites(screen.machine(), bitmap, cliprect, 1);
978971
979   state->m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
972   m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
980973
981974   aerofgt_draw_sprites(screen.machine(), bitmap, cliprect, 2);
982975   aerofgt_draw_sprites(screen.machine(), bitmap, cliprect, 3);
r17967r17968
984977}
985978
986979
987SCREEN_UPDATE_IND16( aerfboot )
980UINT32 aerofgt_state::screen_update_aerfboot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
988981{
989   aerofgt_state *state = screen.machine().driver_data<aerofgt_state>();
990982   int i, scrolly;
991983
992   state->m_bg1_tilemap->set_scroll_rows(512);
993   scrolly = state->m_bg1scrolly + 2;
984   m_bg1_tilemap->set_scroll_rows(512);
985   scrolly = m_bg1scrolly + 2;
994986   for (i = 0; i < 256; i++)
995      state->m_bg1_tilemap->set_scrollx((i + scrolly) & 0x1ff, state->m_rasterram[7] + 174);
996   state->m_bg1_tilemap->set_scrolly(0, scrolly);
997   state->m_bg2_tilemap->set_scrollx(0, state->m_bg2scrollx + 172);
998   state->m_bg2_tilemap->set_scrolly(0, state->m_bg2scrolly + 2);
987      m_bg1_tilemap->set_scrollx((i + scrolly) & 0x1ff, m_rasterram[7] + 174);
988   m_bg1_tilemap->set_scrolly(0, scrolly);
989   m_bg2_tilemap->set_scrollx(0, m_bg2scrollx + 172);
990   m_bg2_tilemap->set_scrolly(0, m_bg2scrolly + 2);
999991
1000992   screen.machine().priority_bitmap.fill(0, cliprect);
1001993
1002   state->m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
1003   state->m_bg2_tilemap->draw(bitmap, cliprect, 0, 1);
994   m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
995   m_bg2_tilemap->draw(bitmap, cliprect, 0, 1);
1004996
1005997   /* we use the priority buffer so sprites are drawn front to back */
1006998   aerfboot_draw_sprites(screen.machine(), bitmap, cliprect);
1007999   return 0;
10081000}
10091001
1010SCREEN_UPDATE_IND16( aerfboo2 )
1002UINT32 aerofgt_state::screen_update_aerfboo2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
10111003{
1012   aerofgt_state *state = screen.machine().driver_data<aerofgt_state>();
10131004   int i, scrolly;
10141005
1015   state->m_bg1_tilemap->set_scroll_rows(512);
1016   scrolly = state->m_bg1scrolly + 2;
1006   m_bg1_tilemap->set_scroll_rows(512);
1007   scrolly = m_bg1scrolly + 2;
10171008   for (i = 0; i < 256; i++)
1018//      state->m_bg1_tilemap->set_scrollx((i + scrolly) & 0x1ff, state->m_rasterram[i] - 11);
1019      state->m_bg1_tilemap->set_scrollx((i + scrolly) & 0x1ff, state->m_rasterram[7] - 11);
1020   state->m_bg1_tilemap->set_scrolly(0, scrolly);
1021   state->m_bg2_tilemap->set_scrollx(0, state->m_bg2scrollx - 7);
1022   state->m_bg2_tilemap->set_scrolly(0, state->m_bg2scrolly + 2);
1009//      m_bg1_tilemap->set_scrollx((i + scrolly) & 0x1ff, m_rasterram[i] - 11);
1010      m_bg1_tilemap->set_scrollx((i + scrolly) & 0x1ff, m_rasterram[7] - 11);
1011   m_bg1_tilemap->set_scrolly(0, scrolly);
1012   m_bg2_tilemap->set_scrollx(0, m_bg2scrollx - 7);
1013   m_bg2_tilemap->set_scrolly(0, m_bg2scrolly + 2);
10231014
10241015   screen.machine().priority_bitmap.fill(0, cliprect);
10251016
1026   state->m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
1027   state->m_bg2_tilemap->draw(bitmap, cliprect, 0, 1);
1017   m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
1018   m_bg2_tilemap->draw(bitmap, cliprect, 0, 1);
10281019
10291020   /* we use the priority buffer so sprites are drawn front to back */
10301021   aerfboo2_draw_sprites(screen.machine(), bitmap, cliprect, 1, -1); //ship
r17967r17968
10341025   return 0;
10351026}
10361027
1037SCREEN_UPDATE_RGB32( wbbc97 )
1028UINT32 aerofgt_state::screen_update_wbbc97(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
10381029{
1039   aerofgt_state *state = screen.machine().driver_data<aerofgt_state>();
10401030   int i, scrolly;
10411031
1042   state->m_bg1_tilemap->set_scroll_rows(256);
1043   scrolly = state->m_bg1scrolly;
1032   m_bg1_tilemap->set_scroll_rows(256);
1033   scrolly = m_bg1scrolly;
10441034   for (i = 0; i < 256; i++)
1045      state->m_bg1_tilemap->set_scrollx((i + scrolly) & 0xff, state->m_rasterram[i]);
1046   state->m_bg1_tilemap->set_scrolly(0, scrolly);
1035      m_bg1_tilemap->set_scrollx((i + scrolly) & 0xff, m_rasterram[i]);
1036   m_bg1_tilemap->set_scrolly(0, scrolly);
10471037
10481038   screen.machine().priority_bitmap.fill(0, cliprect);
10491039
1050   if (state->m_wbbc97_bitmap_enable)
1040   if (m_wbbc97_bitmap_enable)
10511041   {
10521042      wbbc97_draw_bitmap(screen.machine(), bitmap);
1053      state->m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
1043      m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
10541044   }
10551045   else
10561046   {
1057      state->m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
1047      m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
10581048   }
10591049
10601050   turbofrc_draw_sprites(screen.machine(), bitmap, cliprect, 0, -1);
trunk/src/mame/video/mcd212.c
r17967r17968
16601660    screen->register_screen_bitmap(m_lcdbitmap);
16611661}
16621662
1663SCREEN_UPDATE_RGB32( cdimono1 )
1663UINT32 cdi_state::screen_update_cdimono1(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
16641664{
1665    cdi_state *state = screen.machine().driver_data<cdi_state>();
1666    copybitmap(bitmap, state->m_mcd212_regs.m_bitmap, 0, 0, 0, 0, cliprect);
1665    copybitmap(bitmap, m_mcd212_regs.m_bitmap, 0, 0, 0, 0, cliprect);
16671666    return 0;
16681667}
16691668
1670SCREEN_UPDATE_RGB32( cdimono1_lcd )
1669UINT32 cdi_state::screen_update_cdimono1_lcd(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
16711670{
1672    cdi_state *state = screen.machine().driver_data<cdi_state>();
1673    copybitmap(bitmap, state->m_lcdbitmap, 0, 0, 0, 0, cliprect);
1671    copybitmap(bitmap, m_lcdbitmap, 0, 0, 0, 0, cliprect);
16741672    return 0;
16751673}
trunk/src/mame/video/fgoal.c
r17967r17968
3636}
3737
3838
39SCREEN_UPDATE_IND16( fgoal )
39UINT32 fgoal_state::screen_update_fgoal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
4040{
41   fgoal_state *state = screen.machine().driver_data<fgoal_state>();
42   const UINT8* VRAM = state->m_video_ram;
41   const UINT8* VRAM = m_video_ram;
4342
4443   int x;
4544   int y;
r17967r17968
4746
4847   /* draw color overlay foreground and background */
4948
50   if (state->m_fgoal_player == 1 && (screen.machine().root_device().ioport("IN1")->read() & 0x40))
49   if (m_fgoal_player == 1 && (screen.machine().root_device().ioport("IN1")->read() & 0x40))
5150   {
52      drawgfxzoom_opaque(state->m_fgbitmap, cliprect, screen.machine().gfx[0],
53         0, (state->m_fgoal_player << 2) | state->m_current_color,
51      drawgfxzoom_opaque(m_fgbitmap, cliprect, screen.machine().gfx[0],
52         0, (m_fgoal_player << 2) | m_current_color,
5453         1, 1,
5554         0, 16,
5655         0x40000,
5756         0x40000);
5857
59      drawgfxzoom_opaque(state->m_bgbitmap, cliprect, screen.machine().gfx[1],
58      drawgfxzoom_opaque(m_bgbitmap, cliprect, screen.machine().gfx[1],
6059         0, 0,
6160         1, 1,
6261         0, 16,
r17967r17968
6564   }
6665   else
6766   {
68      drawgfxzoom_opaque(state->m_fgbitmap, cliprect, screen.machine().gfx[0],
69         0, (state->m_fgoal_player << 2) | state->m_current_color,
67      drawgfxzoom_opaque(m_fgbitmap, cliprect, screen.machine().gfx[0],
68         0, (m_fgoal_player << 2) | m_current_color,
7069         0, 0,
7170         0, 0,
7271         0x40000,
7372         0x40000);
7473
75      drawgfxzoom_opaque(state->m_bgbitmap, cliprect, screen.machine().gfx[1],
74      drawgfxzoom_opaque(m_bgbitmap, cliprect, screen.machine().gfx[1],
7675         0, 0,
7776         0, 0,
7877         0, 0,
r17967r17968
8281
8382   /* the ball has a fixed color */
8483
85   for (y = state->m_ypos; y < state->m_ypos + 8; y++)
84   for (y = m_ypos; y < m_ypos + 8; y++)
8685   {
87      for (x = state->m_xpos; x < state->m_xpos + 8; x++)
86      for (x = m_xpos; x < m_xpos + 8; x++)
8887      {
8988         if (y < 256 && x < 256)
9089         {
91            state->m_fgbitmap.pix16(y, x) = 128 + 16;
90            m_fgbitmap.pix16(y, x) = 128 + 16;
9291         }
9392      }
9493   }
r17967r17968
9998   {
10099      UINT16* p = &bitmap.pix16(y);
101100
102      const UINT16* FG = &state->m_fgbitmap.pix16(y);
103      const UINT16* BG = &state->m_bgbitmap.pix16(y);
101      const UINT16* FG = &m_fgbitmap.pix16(y);
102      const UINT16* BG = &m_bgbitmap.pix16(y);
104103
105104      for (x = 0; x < 256; x += 8)
106105      {
trunk/src/mame/video/docastle.c
r17967r17968
218218   }
219219}
220220
221SCREEN_UPDATE_IND16( docastle )
221UINT32 docastle_state::screen_update_docastle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
222222{
223   docastle_state *state = screen.machine().driver_data<docastle_state>();
224223
225   state->m_do_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
224   m_do_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
226225   draw_sprites(screen.machine(), bitmap, cliprect);
227   state->m_do_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
226   m_do_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
228227   return 0;
229228}
trunk/src/mame/video/mystston.c
r17967r17968
249249 *
250250 *************************************/
251251
252static SCREEN_UPDATE_IND16( mystston )
252UINT32 mystston_state::screen_update_mystston(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
253253{
254   mystston_state *state = screen.machine().driver_data<mystston_state>();
255254
256   int flip = (*state->m_video_control & 0x80) ^ ((screen.machine().root_device().ioport("DSW1")->read() & 0x20) << 2);
255   int flip = (*m_video_control & 0x80) ^ ((screen.machine().root_device().ioport("DSW1")->read() & 0x20) << 2);
257256
258   set_palette(screen.machine(), state);
257   set_palette(screen.machine(), this);
259258
260259   screen.machine().tilemap().mark_all_dirty();
261   state->m_bg_tilemap->set_scrolly(0, *state->m_scroll);
260   m_bg_tilemap->set_scrolly(0, *m_scroll);
262261   screen.machine().tilemap().set_flip_all(flip ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
263262
264   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
263   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
265264   draw_sprites(bitmap, cliprect, screen.machine().gfx[2], flip);
266   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
265   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
267266
268267   return 0;
269268}
r17967r17968
325324
326325   MCFG_SCREEN_ADD("screen", RASTER)
327326   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
328   MCFG_SCREEN_UPDATE_STATIC(mystston)
327   MCFG_SCREEN_UPDATE_DRIVER(mystston_state, screen_update_mystston)
329328MACHINE_CONFIG_END
trunk/src/mame/video/mainsnk.c
r17967r17968
163163}
164164
165165
166SCREEN_UPDATE_IND16(mainsnk)
166UINT32 mainsnk_state::screen_update_mainsnk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
167167{
168   mainsnk_state *state = screen.machine().driver_data<mainsnk_state>();
169168
170   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
169   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
171170   draw_sprites(screen.machine(), bitmap, cliprect, 0, 0);
172   state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
171   m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
173172
174173   return 0;
175174}
trunk/src/mame/video/rampart.c
r17967r17968
7272 *
7373 *************************************/
7474
75SCREEN_UPDATE_IND16( rampart )
75UINT32 rampart_state::screen_update_rampart(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
7676{
7777   atarimo_rect_list rectlist;
7878   bitmap_ind16 *mobitmap;
trunk/src/mame/video/senjyo.c
r17967r17968
276276   }
277277}
278278
279SCREEN_UPDATE_IND16( senjyo )
279UINT32 senjyo_state::screen_update_senjyo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
280280{
281   senjyo_state *state = screen.machine().driver_data<senjyo_state>();
282281   int i;
283282
284283
r17967r17968
287286   palette_set_color(screen.machine(),513,MAKE_RGB(0xff,0xff,0x00));   /* yellow for player */
288287
289288   {
290      int flip = state->flip_screen();
289      int flip = flip_screen();
291290      int scrollx,scrolly;
292291
293292      for (i = 0;i < 32;i++)
294         state->m_fg_tilemap->set_scrolly(i, state->m_fgscroll[i]);
293         m_fg_tilemap->set_scrolly(i, m_fgscroll[i]);
295294
296      scrollx = state->m_scrollx1[0];
297      scrolly = state->m_scrolly1[0] + 256 * state->m_scrolly1[1];
295      scrollx = m_scrollx1[0];
296      scrolly = m_scrolly1[0] + 256 * m_scrolly1[1];
298297      if (flip)
299298         scrollx = -scrollx;
300      state->m_bg1_tilemap->set_scrollx(0, scrollx);
301      state->m_bg1_tilemap->set_scrolly(0, scrolly);
299      m_bg1_tilemap->set_scrollx(0, scrollx);
300      m_bg1_tilemap->set_scrolly(0, scrolly);
302301
303      scrollx = state->m_scrollx2[0];
304      scrolly = state->m_scrolly2[0] + 256 * state->m_scrolly2[1];
305      if (state->m_scrollhack)   /* Star Force, but NOT the encrypted version */
302      scrollx = m_scrollx2[0];
303      scrolly = m_scrolly2[0] + 256 * m_scrolly2[1];
304      if (m_scrollhack)   /* Star Force, but NOT the encrypted version */
306305      {
307         scrollx = state->m_scrollx1[0];
308         scrolly = state->m_scrolly1[0] + 256 * state->m_scrolly1[1];
306         scrollx = m_scrollx1[0];
307         scrolly = m_scrolly1[0] + 256 * m_scrolly1[1];
309308      }
310309      if (flip)
311310         scrollx = -scrollx;
312      state->m_bg2_tilemap->set_scrollx(0, scrollx);
313      state->m_bg2_tilemap->set_scrolly(0, scrolly);
311      m_bg2_tilemap->set_scrollx(0, scrollx);
312      m_bg2_tilemap->set_scrolly(0, scrolly);
314313
315      scrollx = state->m_scrollx3[0];
316      scrolly = state->m_scrolly3[0] + 256 * state->m_scrolly3[1];
314      scrollx = m_scrollx3[0];
315      scrolly = m_scrolly3[0] + 256 * m_scrolly3[1];
317316      if (flip)
318317         scrollx = -scrollx;
319      state->m_bg3_tilemap->set_scrollx(0, scrollx);
320      state->m_bg3_tilemap->set_scrolly(0, scrolly);
318      m_bg3_tilemap->set_scrollx(0, scrollx);
319      m_bg3_tilemap->set_scrolly(0, scrolly);
321320   }
322321
323322   draw_bgbitmap(screen.machine(), bitmap, cliprect);
324323   draw_sprites(screen.machine(), bitmap, cliprect, 0);
325   state->m_bg3_tilemap->draw(bitmap, cliprect, 0, 0);
324   m_bg3_tilemap->draw(bitmap, cliprect, 0, 0);
326325   draw_sprites(screen.machine(), bitmap, cliprect, 1);
327   state->m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
326   m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
328327   draw_sprites(screen.machine(), bitmap, cliprect, 2);
329   state->m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
328   m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
330329   draw_sprites(screen.machine(), bitmap, cliprect, 3);
331   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
330   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
332331   draw_radar(screen.machine(), bitmap, cliprect);
333332
334333#if 0
335334{
336335   char baf[80];
337   UINT8 *senjyo_scrolly3 = state->m_scrolly3;
336   UINT8 *senjyo_scrolly3 = m_scrolly3;
338337
339338   sprintf(baf,"%02x %02x %02x %02x %02x %02x %02x %02x",
340339      senjyo_scrolly3[0x00],
trunk/src/mame/video/yiear.c
r17967r17968
138138   }
139139}
140140
141SCREEN_UPDATE_IND16( yiear )
141UINT32 yiear_state::screen_update_yiear(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
142142{
143   yiear_state *state = screen.machine().driver_data<yiear_state>();
144143
145   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
144   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
146145   draw_sprites(screen.machine(), bitmap, cliprect);
147146   return 0;
148147}
trunk/src/mame/video/nbmj9195.c
r17967r17968
438438
439439
440440******************************************************************************/
441SCREEN_UPDATE_IND16( nbmj9195 )
441UINT32 nbmj9195_state::screen_update_nbmj9195(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
442442{
443   nbmj9195_state *state = screen.machine().driver_data<nbmj9195_state>();
444443   int i;
445444   int x, y;
446445   int scrolly[2];
447446
448   if (state->m_screen_refresh)
447   if (m_screen_refresh)
449448   {
450449      int width = screen.width();
451450      int height = screen.height();
452451
453      state->m_screen_refresh = 0;
452      m_screen_refresh = 0;
454453
455454      for (y = 0; y < height; y++)
456455         for (x = 0; x < width; x++)
457456         {
458457            update_pixel(screen.machine(), 0, x, y);
459458
460            if (state->m_gfxdraw_mode)
459            if (m_gfxdraw_mode)
461460               update_pixel(screen.machine(), 1, x, y);
462461         }
463462   }
464463
465464   for (i = 0; i < 2; i++)
466465   {
467      if (state->m_flipscreen[i])
466      if (m_flipscreen[i])
468467      {
469         for ( ; state->m_scanline[i] < SCANLINE_MAX; state->m_scanline[i]++)
468         for ( ; m_scanline[i] < SCANLINE_MAX; m_scanline[i]++)
470469         {
471            state->m_scrollx_raster[i][state->m_scanline[i]] = (((-state->m_scrollx[i]) - 0x4e)  & 0x1ff) << 1;
470            m_scrollx_raster[i][m_scanline[i]] = (((-m_scrollx[i]) - 0x4e)  & 0x1ff) << 1;
472471         }
473         scrolly[i] = (-state->m_scrolly[i]) & 0x1ff;
472         scrolly[i] = (-m_scrolly[i]) & 0x1ff;
474473      }
475474      else
476475      {
477         for ( ; state->m_scanline[i] < SCANLINE_MAX; state->m_scanline[i]++)
476         for ( ; m_scanline[i] < SCANLINE_MAX; m_scanline[i]++)
478477         {
479            state->m_scrollx_raster[i][(state->m_scanline[i] ^ 0x1ff)] = (((-state->m_scrollx[i]) - 0x4e)  & 0x1ff) << 1;
478            m_scrollx_raster[i][(m_scanline[i] ^ 0x1ff)] = (((-m_scrollx[i]) - 0x4e)  & 0x1ff) << 1;
480479         }
481         scrolly[i] = state->m_scrolly[i] & 0x1ff;
480         scrolly[i] = m_scrolly[i] & 0x1ff;
482481      }
483      state->m_scanline[i] = SCANLINE_MIN;
482      m_scanline[i] = SCANLINE_MIN;
484483   }
485484
486   if (state->m_dispflag[0])
485   if (m_dispflag[0])
487486      // nbmj9195 1layer
488      copyscrollbitmap(bitmap, state->m_tmpbitmap[0], SCANLINE_MAX, state->m_scrollx_raster[0], 1, &scrolly[0], cliprect);
487      copyscrollbitmap(bitmap, m_tmpbitmap[0], SCANLINE_MAX, m_scrollx_raster[0], 1, &scrolly[0], cliprect);
489488   else
490489      bitmap.fill(0x0ff);
491490
492   if (state->m_dispflag[1])
491   if (m_dispflag[1])
493492   {
494      if (state->m_gfxdraw_mode == 1)
493      if (m_gfxdraw_mode == 1)
495494         // nbmj9195 2layer
496         copyscrollbitmap_trans(bitmap, state->m_tmpbitmap[1], SCANLINE_MAX, state->m_scrollx_raster[1], 1, &scrolly[1], cliprect, 0x0ff);
495         copyscrollbitmap_trans(bitmap, m_tmpbitmap[1], SCANLINE_MAX, m_scrollx_raster[1], 1, &scrolly[1], cliprect, 0x0ff);
497496
498      if (state->m_gfxdraw_mode == 2)
497      if (m_gfxdraw_mode == 2)
499498         // nbmj9195 nb22090 2layer
500         copyscrollbitmap_trans(bitmap, state->m_tmpbitmap[1], SCANLINE_MAX, state->m_scrollx_raster[1], 1, &scrolly[1], cliprect, 0x1ff);
499         copyscrollbitmap_trans(bitmap, m_tmpbitmap[1], SCANLINE_MAX, m_scrollx_raster[1], 1, &scrolly[1], cliprect, 0x1ff);
501500   }
502501   return 0;
503502}
trunk/src/mame/video/sslam.c
r17967r17968
181181   save_item(NAME(m_sprites_x_offset));
182182}
183183
184SCREEN_UPDATE_IND16(sslam)
184UINT32 sslam_state::screen_update_sslam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
185185{
186   sslam_state *state = screen.machine().driver_data<sslam_state>();
187186
188   if (!(state->m_regs[6] & 1))
187   if (!(m_regs[6] & 1))
189188   {
190189      bitmap.fill(get_black_pen(screen.machine()), cliprect);
191190      return 0;
192191   }
193192
194   state->m_tx_tilemap->set_scrollx(0, state->m_regs[0]+1);   /* +0 looks better, but the real board has the left most pixel at the left edge shifted off screen */
195   state->m_tx_tilemap->set_scrolly(0, (state->m_regs[1] & 0xff)+8);
196   state->m_md_tilemap->set_scrollx(0, state->m_regs[2]+2);
197   state->m_md_tilemap->set_scrolly(0, state->m_regs[3]+8);
198   state->m_bg_tilemap->set_scrollx(0, state->m_regs[4]+4);
199   state->m_bg_tilemap->set_scrolly(0, state->m_regs[5]+8);
193   m_tx_tilemap->set_scrollx(0, m_regs[0]+1);   /* +0 looks better, but the real board has the left most pixel at the left edge shifted off screen */
194   m_tx_tilemap->set_scrolly(0, (m_regs[1] & 0xff)+8);
195   m_md_tilemap->set_scrollx(0, m_regs[2]+2);
196   m_md_tilemap->set_scrolly(0, m_regs[3]+8);
197   m_bg_tilemap->set_scrollx(0, m_regs[4]+4);
198   m_bg_tilemap->set_scrolly(0, m_regs[5]+8);
200199
201   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
200   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
202201
203202   /* remove wraparound from the tilemap (used on title screen) */
204   if (state->m_regs[2]+2 > 0x8c8)
203   if (m_regs[2]+2 > 0x8c8)
205204   {
206205      rectangle md_clip;
207206      md_clip.min_x = cliprect.min_x;
208      md_clip.max_x = cliprect.max_x - (state->m_regs[2]+2 - 0x8c8);
207      md_clip.max_x = cliprect.max_x - (m_regs[2]+2 - 0x8c8);
209208      md_clip.min_y = cliprect.min_y;
210209      md_clip.max_y = cliprect.max_y;
211210
212      state->m_md_tilemap->draw(bitmap, md_clip, 0,0);
211      m_md_tilemap->draw(bitmap, md_clip, 0,0);
213212   }
214213   else
215214   {
216      state->m_md_tilemap->draw(bitmap, cliprect, 0,0);
215      m_md_tilemap->draw(bitmap, cliprect, 0,0);
217216   }
218217
219218   draw_sprites(screen.machine(), bitmap,cliprect);
220   state->m_tx_tilemap->draw(bitmap, cliprect, 0,0);
219   m_tx_tilemap->draw(bitmap, cliprect, 0,0);
221220   return 0;
222221}
223222
224SCREEN_UPDATE_IND16(powerbls)
223UINT32 sslam_state::screen_update_powerbls(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
225224{
226   sslam_state *state = screen.machine().driver_data<sslam_state>();
227225
228   if (!(state->m_regs[6] & 1))
226   if (!(m_regs[6] & 1))
229227   {
230228      bitmap.fill(get_black_pen(screen.machine()), cliprect);
231229      return 0;
232230   }
233231
234   state->m_bg_tilemap->set_scrollx(0, state->m_regs[0]+21);
235   state->m_bg_tilemap->set_scrolly(0, state->m_regs[1]-240);
232   m_bg_tilemap->set_scrollx(0, m_regs[0]+21);
233   m_bg_tilemap->set_scrolly(0, m_regs[1]-240);
236234
237   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
235   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
238236   draw_sprites(screen.machine(), bitmap,cliprect);
239237   return 0;
240238}
trunk/src/mame/video/sonson.c
r17967r17968
171171   }
172172}
173173
174SCREEN_UPDATE_IND16( sonson )
174UINT32 sonson_state::screen_update_sonson(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
175175{
176   sonson_state *state = screen.machine().driver_data<sonson_state>();
177   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
176   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
178177   draw_sprites(screen.machine(), bitmap, cliprect);
179178   return 0;
180179}
trunk/src/mame/video/simpl156.c
r17967r17968
2525   save_pointer(NAME(m_spriteram), 0x2000/2);
2626}
2727
28SCREEN_UPDATE_IND16( simpl156 )
28UINT32 simpl156_state::screen_update_simpl156(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
2929{
30   simpl156_state *state = screen.machine().driver_data<simpl156_state>();
3130
3231   screen.machine().priority_bitmap.fill(0);
3332
34   deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
33   deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
3534
3635   bitmap.fill(256, cliprect);
3736
38   deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 2);
39   deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 4);
37   deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 2);
38   deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 4);
4039
4140   //FIXME: flip_screen_x should not be written!
42   state->flip_screen_set_no_update(1);
41   flip_screen_set_no_update(1);
4342
44   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x1400/4); // 0x1400/4 seems right for charlien (doesn't initialize any more RAM, so will draw a garbage 0 with more)
43   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x1400/4); // 0x1400/4 seems right for charlien (doesn't initialize any more RAM, so will draw a garbage 0 with more)
4544   return 0;
4645}
trunk/src/mame/video/hcastle.c
r17967r17968
215215
216216/*****************************************************************************/
217217
218SCREEN_UPDATE_IND16( hcastle )
218UINT32 hcastle_state::screen_update_hcastle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
219219{
220   hcastle_state *state = screen.machine().driver_data<hcastle_state>();
221220   address_space &space = screen.machine().driver_data()->generic_space();
222221
223   UINT8 ctrl_1_0 = k007121_ctrlram_r(state->m_k007121_1, space, 0);
224   UINT8 ctrl_1_1 = k007121_ctrlram_r(state->m_k007121_1, space, 1);
225   UINT8 ctrl_1_2 = k007121_ctrlram_r(state->m_k007121_1, space, 2);
226   UINT8 ctrl_1_3 = k007121_ctrlram_r(state->m_k007121_1, space, 3);
227   UINT8 ctrl_2_0 = k007121_ctrlram_r(state->m_k007121_2, space, 0);
228   UINT8 ctrl_2_1 = k007121_ctrlram_r(state->m_k007121_2, space, 1);
229   UINT8 ctrl_2_2 = k007121_ctrlram_r(state->m_k007121_2, space, 2);
230   UINT8 ctrl_2_3 = k007121_ctrlram_r(state->m_k007121_2, space, 3);
222   UINT8 ctrl_1_0 = k007121_ctrlram_r(m_k007121_1, space, 0);
223   UINT8 ctrl_1_1 = k007121_ctrlram_r(m_k007121_1, space, 1);
224   UINT8 ctrl_1_2 = k007121_ctrlram_r(m_k007121_1, space, 2);
225   UINT8 ctrl_1_3 = k007121_ctrlram_r(m_k007121_1, space, 3);
226   UINT8 ctrl_2_0 = k007121_ctrlram_r(m_k007121_2, space, 0);
227   UINT8 ctrl_2_1 = k007121_ctrlram_r(m_k007121_2, space, 1);
228   UINT8 ctrl_2_2 = k007121_ctrlram_r(m_k007121_2, space, 2);
229   UINT8 ctrl_2_3 = k007121_ctrlram_r(m_k007121_2, space, 3);
231230
232231   set_pens(screen.machine());
233232
234   state->m_pf1_bankbase = 0x0000;
235   state->m_pf2_bankbase = 0x4000 * ((state->m_gfx_bank & 2) >> 1);
233   m_pf1_bankbase = 0x0000;
234   m_pf2_bankbase = 0x4000 * ((m_gfx_bank & 2) >> 1);
236235
237236   if (ctrl_1_3 & 0x01)
238      state->m_pf1_bankbase += 0x2000;
237      m_pf1_bankbase += 0x2000;
239238   if (ctrl_2_3 & 0x01)
240      state->m_pf2_bankbase += 0x2000;
239      m_pf2_bankbase += 0x2000;
241240
242   if (state->m_pf1_bankbase != state->m_old_pf1)
243      state->m_fg_tilemap->mark_all_dirty();
241   if (m_pf1_bankbase != m_old_pf1)
242      m_fg_tilemap->mark_all_dirty();
244243
245   if (state->m_pf2_bankbase != state->m_old_pf2)
246      state->m_bg_tilemap->mark_all_dirty();
244   if (m_pf2_bankbase != m_old_pf2)
245      m_bg_tilemap->mark_all_dirty();
247246
248   state->m_old_pf1 = state->m_pf1_bankbase;
249   state->m_old_pf2 = state->m_pf2_bankbase;
247   m_old_pf1 = m_pf1_bankbase;
248   m_old_pf2 = m_pf2_bankbase;
250249
251   state->m_bg_tilemap->set_scrolly(0, ctrl_2_2);
252   state->m_bg_tilemap->set_scrollx(0, ((ctrl_2_1 << 8) + ctrl_2_0));
253   state->m_fg_tilemap->set_scrolly(0, ctrl_1_2);
254   state->m_fg_tilemap->set_scrollx(0, ((ctrl_1_1 << 8) + ctrl_1_0));
250   m_bg_tilemap->set_scrolly(0, ctrl_2_2);
251   m_bg_tilemap->set_scrollx(0, ((ctrl_2_1 << 8) + ctrl_2_0));
252   m_fg_tilemap->set_scrolly(0, ctrl_1_2);
253   m_fg_tilemap->set_scrollx(0, ((ctrl_1_1 << 8) + ctrl_1_0));
255254
256255//  /* Sprite priority */
257256//  if (ctrl_1_3 & 0x20)
258   if ((state->m_gfx_bank & 0x04) == 0)
257   if ((m_gfx_bank & 0x04) == 0)
259258   {
260      state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
261      draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram->buffer(), 0);
262      draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram2->buffer(), 1);
263      state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
259      m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
260      draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram->buffer(), 0);
261      draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram2->buffer(), 1);
262      m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
264263   }
265264   else
266265   {
267      state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
268      state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
269      draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram->buffer(), 0);
270      draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram2->buffer(), 1);
266      m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
267      m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
268      draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram->buffer(), 0);
269      draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram2->buffer(), 1);
271270   }
272271   return 0;
273272}
trunk/src/mame/video/deadang.c
r17967r17968
124124   }
125125}
126126
127SCREEN_UPDATE_IND16( deadang )
127UINT32 deadang_state::screen_update_deadang(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
128128{
129   deadang_state *state = screen.machine().driver_data<deadang_state>();
130129   /* Setup the tilemaps */
131   state->m_pf3_layer->set_scrolly(0, ((state->m_scroll_ram[0x01]&0xf0)<<4)+((state->m_scroll_ram[0x02]&0x7f)<<1)+((state->m_scroll_ram[0x02]&0x80)>>7) );
132   state->m_pf3_layer->set_scrollx(0, ((state->m_scroll_ram[0x09]&0xf0)<<4)+((state->m_scroll_ram[0x0a]&0x7f)<<1)+((state->m_scroll_ram[0x0a]&0x80)>>7) );
133   state->m_pf1_layer->set_scrolly(0, ((state->m_scroll_ram[0x11]&0x10)<<4)+((state->m_scroll_ram[0x12]&0x7f)<<1)+((state->m_scroll_ram[0x12]&0x80)>>7) );
134   state->m_pf1_layer->set_scrollx(0, ((state->m_scroll_ram[0x19]&0x10)<<4)+((state->m_scroll_ram[0x1a]&0x7f)<<1)+((state->m_scroll_ram[0x1a]&0x80)>>7) );
135   state->m_pf2_layer->set_scrolly(0, ((state->m_scroll_ram[0x21]&0xf0)<<4)+((state->m_scroll_ram[0x22]&0x7f)<<1)+((state->m_scroll_ram[0x22]&0x80)>>7) );
136   state->m_pf2_layer->set_scrollx(0, ((state->m_scroll_ram[0x29]&0xf0)<<4)+((state->m_scroll_ram[0x2a]&0x7f)<<1)+((state->m_scroll_ram[0x2a]&0x80)>>7) );
130   m_pf3_layer->set_scrolly(0, ((m_scroll_ram[0x01]&0xf0)<<4)+((m_scroll_ram[0x02]&0x7f)<<1)+((m_scroll_ram[0x02]&0x80)>>7) );
131   m_pf3_layer->set_scrollx(0, ((m_scroll_ram[0x09]&0xf0)<<4)+((m_scroll_ram[0x0a]&0x7f)<<1)+((m_scroll_ram[0x0a]&0x80)>>7) );
132   m_pf1_layer->set_scrolly(0, ((m_scroll_ram[0x11]&0x10)<<4)+((m_scroll_ram[0x12]&0x7f)<<1)+((m_scroll_ram[0x12]&0x80)>>7) );
133   m_pf1_layer->set_scrollx(0, ((m_scroll_ram[0x19]&0x10)<<4)+((m_scroll_ram[0x1a]&0x7f)<<1)+((m_scroll_ram[0x1a]&0x80)>>7) );
134   m_pf2_layer->set_scrolly(0, ((m_scroll_ram[0x21]&0xf0)<<4)+((m_scroll_ram[0x22]&0x7f)<<1)+((m_scroll_ram[0x22]&0x80)>>7) );
135   m_pf2_layer->set_scrollx(0, ((m_scroll_ram[0x29]&0xf0)<<4)+((m_scroll_ram[0x2a]&0x7f)<<1)+((m_scroll_ram[0x2a]&0x80)>>7) );
137136
138137   /* Control byte:
139138        0x01: Background playfield disable
r17967r17968
145144        0x40: Flipscreen
146145        0x80: Always set?
147146    */
148   state->m_pf3_layer->enable(!(state->m_scroll_ram[0x34]&1));
149   state->m_pf1_layer->enable(!(state->m_scroll_ram[0x34]&2));
150   state->m_pf2_layer->enable(!(state->m_scroll_ram[0x34]&4));
151   state->flip_screen_set(state->m_scroll_ram[0x34]&0x40 );
147   m_pf3_layer->enable(!(m_scroll_ram[0x34]&1));
148   m_pf1_layer->enable(!(m_scroll_ram[0x34]&2));
149   m_pf2_layer->enable(!(m_scroll_ram[0x34]&4));
150   flip_screen_set(m_scroll_ram[0x34]&0x40 );
152151
153152   bitmap.fill(get_black_pen(screen.machine()), cliprect);
154153   screen.machine().priority_bitmap.fill(0, cliprect);
155   state->m_pf3_layer->draw(bitmap, cliprect, 0,1);
156   state->m_pf1_layer->draw(bitmap, cliprect, 0,2);
157   state->m_pf2_layer->draw(bitmap, cliprect, 0,4);
158   if (!(state->m_scroll_ram[0x34]&0x10)) draw_sprites(screen.machine(),bitmap,cliprect);
159   state->m_text_layer->draw(bitmap, cliprect, 0,0);
154   m_pf3_layer->draw(bitmap, cliprect, 0,1);
155   m_pf1_layer->draw(bitmap, cliprect, 0,2);
156   m_pf2_layer->draw(bitmap, cliprect, 0,4);
157   if (!(m_scroll_ram[0x34]&0x10)) draw_sprites(screen.machine(),bitmap,cliprect);
158   m_text_layer->draw(bitmap, cliprect, 0,0);
160159   return 0;
161160}
trunk/src/mame/video/copsnrob.c
r17967r17968
88#include "includes/copsnrob.h"
99
1010
11SCREEN_UPDATE_IND16( copsnrob )
11UINT32 copsnrob_state::screen_update_copsnrob(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
1212{
13   copsnrob_state *state = screen.machine().driver_data<copsnrob_state>();
1413   int offs, x, y;
1514
1615   /* redrawing the entire display is faster in this case */
1716
18   for (offs = state->m_videoram.bytes(); offs >= 0; offs--)
17   for (offs = m_videoram.bytes(); offs >= 0; offs--)
1918   {
2019      int sx,sy;
2120
r17967r17968
2322      sy = offs / 32;
2423
2524      drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0],
26            state->m_videoram[offs] & 0x3f,0,
25            m_videoram[offs] & 0x3f,0,
2726            0,0,
2827            8*sx,8*sy);
2928   }
3029
3130
3231   /* Draw the cars. Positioning was based on a screen shot */
33   if (state->m_cary[0])
32   if (m_cary[0])
3433      drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[1],
35            state->m_carimage[0],0,
34            m_carimage[0],0,
3635            1,0,
37            0xe4,256 - state->m_cary[0],0);
36            0xe4,256 - m_cary[0],0);
3837
39   if (state->m_cary[1])
38   if (m_cary[1])
4039      drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[1],
41            state->m_carimage[1],0,
40            m_carimage[1],0,
4241            1,0,
43            0xc4,256 - state->m_cary[1],0);
42            0xc4,256 - m_cary[1],0);
4443
45   if (state->m_cary[2])
44   if (m_cary[2])
4645      drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[1],
47            state->m_carimage[2],0,
46            m_carimage[2],0,
4847            0,0,
49            0x24,256 - state->m_cary[2],0);
48            0x24,256 - m_cary[2],0);
5049
51   if (state->m_cary[3])
50   if (m_cary[3])
5251      drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[1],
53            state->m_carimage[3],0,
52            m_carimage[3],0,
5453            0,0,
55            0x04,256 - state->m_cary[3],0);
54            0x04,256 - m_cary[3],0);
5655
5756
5857   /* Draw the beer truck. Positioning was based on a screen shot.
r17967r17968
7069      /* y is going up the screen, but the truck window RAM locations
7170        go down the screen. */
7271
73      if (state->m_truckram[255 - y])
72      if (m_truckram[255 - y])
7473      {
7574         /* The hardware only uses the low 5 bits of the truck image line
7675            sync register. */
77         if ((state->m_trucky[0] & 0x1f) == ((y + 31) & 0x1f))
76         if ((m_trucky[0] & 0x1f) == ((y + 31) & 0x1f))
7877         {
7978            /* We've hit a truck's back end, so draw the truck.  The front
8079                   end may be off the top of the screen, but we don't care. */
r17967r17968
8685                truck twice. */
8786            y += 31;
8887         }
89         else if ((state->m_trucky[0] & 0x1f) == (y & 0x1f))
88         else if ((m_trucky[0] & 0x1f) == (y & 0x1f))
9089         {
9190            /* We missed a truck's back end (it was off the bottom of the
9291                   screen) but have hit its front end, so draw the truck. */
r17967r17968
107106   {
108107      int bullet, mask1, mask2, val;
109108
110      val = state->m_bulletsram[x];
109      val = m_bulletsram[x];
111110
112111      // Check for the most common case
113112      if (!(val & 0x0f))
r17967r17968
122121         if (val & mask1)
123122         {
124123            for (y = cliprect.min_y; y <= cliprect.max_y; y++)
125               if (state->m_bulletsram[y] & mask2)
124               if (m_bulletsram[y] & mask2)
126125                  bitmap.pix16(y, 256 - x) = 1;
127126         }
128127
trunk/src/mame/video/twincobr.c
r17967r17968
493493    Draw the game screen in the given bitmap_ind16.
494494***************************************************************************/
495495
496SCREEN_UPDATE_IND16( toaplan0 )
496UINT32 twincobr_state::screen_update_toaplan0(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
497497{
498   twincobr_state *state = screen.machine().driver_data<twincobr_state>();
499498   twincobr_log_vram(screen.machine());
500499
501   if (state->m_wardner_sprite_hack) wardner_sprite_priority_hack(screen.machine());
500   if (m_wardner_sprite_hack) wardner_sprite_priority_hack(screen.machine());
502501
503502   bitmap.fill(0, cliprect);
504503
505   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
504   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
506505   draw_sprites(screen.machine(), bitmap,cliprect,0x0400);
507   state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
506   m_fg_tilemap->draw(bitmap, cliprect, 0,0);
508507   draw_sprites(screen.machine(), bitmap,cliprect,0x0800);
509   state->m_tx_tilemap->draw(bitmap, cliprect, 0,0);
508   m_tx_tilemap->draw(bitmap, cliprect, 0,0);
510509   draw_sprites(screen.machine(), bitmap,cliprect,0x0c00);
511510   return 0;
512511}
trunk/src/mame/video/bking.c
r17967r17968
233233}
234234
235235
236SCREEN_UPDATE_IND16( bking )
236UINT32 bking_state::screen_update_bking(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
237237{
238   bking_state *state = screen.machine().driver_data<bking_state>();
239238
240   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
239   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
241240
242241   /* draw the balls */
243242   drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[2],
244      state->m_ball1_pic,
245      state->m_palette_bank,
243      m_ball1_pic,
244      m_palette_bank,
246245      0, 0,
247      state->m_xld1, state->m_yld1, 0);
246      m_xld1, m_yld1, 0);
248247
249248   drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[3],
250      state->m_ball2_pic,
251      state->m_palette_bank,
249      m_ball2_pic,
250      m_palette_bank,
252251      0, 0,
253      state->m_xld2, state->m_yld2, 0);
252      m_xld2, m_yld2, 0);
254253
255254   /* draw the crow */
256255   drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1],
257      state->m_crow_pic,
258      state->m_palette_bank,
259      state->m_crow_flip, state->m_crow_flip,
260      state->m_crow_flip ? state->m_xld3 - 16 : 256 - state->m_xld3, state->m_crow_flip ? state->m_yld3 - 16 : 256 - state->m_yld3, 0);
256      m_crow_pic,
257      m_palette_bank,
258      m_crow_flip, m_crow_flip,
259      m_crow_flip ? m_xld3 - 16 : 256 - m_xld3, m_crow_flip ? m_yld3 - 16 : 256 - m_yld3, 0);
261260   return 0;
262261}
263262
264263
265SCREEN_VBLANK( bking )
264void bking_state::screen_eof_bking(screen_device &screen, bool state)
266265{
267266   // rising edge
268   if (vblank_on)
267   if (state)
269268   {
270      bking_state *state = screen.machine().driver_data<bking_state>();
271269      const rectangle rect(0, 7, 0, 15);
272270
273271      int xld = 0;
r17967r17968
275273
276274      UINT32 latch = 0;
277275
278      if (state->m_pc3259_mask == 6)   /* player 1 */
276      if (m_pc3259_mask == 6)   /* player 1 */
279277      {
280         xld = state->m_xld1;
281         yld = state->m_yld1;
278         xld = m_xld1;
279         yld = m_yld1;
282280
283         drawgfx_opaque(state->m_tmp_bitmap2, rect, screen.machine().gfx[2],
284            state->m_ball1_pic,
281         drawgfx_opaque(m_tmp_bitmap2, rect, screen.machine().gfx[2],
282            m_ball1_pic,
285283            0,
286284            0, 0,
287285            0, 0);
r17967r17968
289287         latch = 0x0c00;
290288      }
291289
292      if (state->m_pc3259_mask == 3)   /* player 2 */
290      if (m_pc3259_mask == 3)   /* player 2 */
293291      {
294         xld = state->m_xld2;
295         yld = state->m_yld2;
292         xld = m_xld2;
293         yld = m_yld2;
296294
297         drawgfx_opaque(state->m_tmp_bitmap2, rect, screen.machine().gfx[3],
298            state->m_ball2_pic,
295         drawgfx_opaque(m_tmp_bitmap2, rect, screen.machine().gfx[3],
296            m_ball2_pic,
299297            0,
300298            0, 0,
301299            0, 0);
r17967r17968
303301         latch = 0x0400;
304302      }
305303
306      state->m_bg_tilemap->set_scrollx(0, state->flip_screen() ? -xld : xld);
307      state->m_bg_tilemap->set_scrolly(0, state->flip_screen() ? -yld : yld);
304      m_bg_tilemap->set_scrollx(0, flip_screen() ? -xld : xld);
305      m_bg_tilemap->set_scrolly(0, flip_screen() ? -yld : yld);
308306
309      state->m_bg_tilemap->draw(state->m_tmp_bitmap1, rect, 0, 0);
307      m_bg_tilemap->draw(m_tmp_bitmap1, rect, 0, 0);
310308
311      state->m_bg_tilemap->set_scrollx(0, 0);
312      state->m_bg_tilemap->set_scrolly(0, 0);
309      m_bg_tilemap->set_scrollx(0, 0);
310      m_bg_tilemap->set_scrolly(0, 0);
313311
314312      if (latch != 0)
315313      {
316         const UINT8* MASK = screen.machine().root_device().memregion("user1")->base() + 8 * state->m_hit;
314         const UINT8* MASK = screen.machine().root_device().memregion("user1")->base() + 8 * m_hit;
317315
318316         int x;
319317         int y;
320318
321319         for (y = rect.min_y; y <= rect.max_y; y++)
322320         {
323            const UINT16* p0 = &state->m_tmp_bitmap1.pix16(y);
324            const UINT16* p1 = &state->m_tmp_bitmap2.pix16(y);
321            const UINT16* p0 = &m_tmp_bitmap1.pix16(y);
322            const UINT16* p1 = &m_tmp_bitmap2.pix16(y);
325323
326324            for (x = rect.min_x; x <= rect.max_x; x++)
327325            {
r17967r17968
330328                  int col = (xld + x) / 8 + 1;
331329                  int row = (yld + y) / 8 + 0;
332330
333                  latch |= (state->flip_screen() ? 31 - col : col) << 0;
334                  latch |= (state->flip_screen() ? 31 - row : row) << 5;
331                  latch |= (flip_screen() ? 31 - col : col) << 0;
332                  latch |= (flip_screen() ? 31 - row : row) << 5;
335333
336                  state->m_pc3259_output[0] = (latch >> 0x0) & 0xf;
337                  state->m_pc3259_output[1] = (latch >> 0x4) & 0xf;
338                  state->m_pc3259_output[2] = (latch >> 0x8) & 0xf;
339                  state->m_pc3259_output[3] = (latch >> 0xc) & 0xf;
334                  m_pc3259_output[0] = (latch >> 0x0) & 0xf;
335                  m_pc3259_output[1] = (latch >> 0x4) & 0xf;
336                  m_pc3259_output[2] = (latch >> 0x8) & 0xf;
337                  m_pc3259_output[3] = (latch >> 0xc) & 0xf;
340338
341339                  return;
342340               }
trunk/src/mame/video/hexion.c
r17967r17968
157157
158158***************************************************************************/
159159
160SCREEN_UPDATE_IND16( hexion )
160UINT32 hexion_state::screen_update_hexion(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
161161{
162   hexion_state *state = screen.machine().driver_data<hexion_state>();
163   state->m_bg_tilemap[1]->draw(bitmap, cliprect, 0,0);
164   state->m_bg_tilemap[0]->draw(bitmap, cliprect, 0,0);
162   m_bg_tilemap[1]->draw(bitmap, cliprect, 0,0);
163   m_bg_tilemap[0]->draw(bitmap, cliprect, 0,0);
165164   return 0;
166165}
trunk/src/mame/video/battlnts.c
r17967r17968
4242
4343***************************************************************************/
4444
45SCREEN_UPDATE_IND16( battlnts )
45UINT32 battlnts_state::screen_update_battlnts(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
4646{
47   battlnts_state *state = screen.machine().driver_data<battlnts_state>();
4847
49   k007342_tilemap_update(state->m_k007342);
48   k007342_tilemap_update(m_k007342);
5049
51   k007342_tilemap_draw(state->m_k007342, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE ,0);
52   k007420_sprites_draw(state->m_k007420, bitmap, cliprect, screen.machine().gfx[1]);
53   k007342_tilemap_draw(state->m_k007342, bitmap, cliprect, 0, 1 | TILEMAP_DRAW_OPAQUE ,0);
50   k007342_tilemap_draw(m_k007342, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE ,0);
51   k007420_sprites_draw(m_k007420, bitmap, cliprect, screen.machine().gfx[1]);
52   k007342_tilemap_draw(m_k007342, bitmap, cliprect, 0, 1 | TILEMAP_DRAW_OPAQUE ,0);
5453   return 0;
5554}
trunk/src/mame/video/arabian.c
r17967r17968
365365 *
366366 *************************************/
367367
368SCREEN_UPDATE_IND16( arabian )
368UINT32 arabian_state::screen_update_arabian(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
369369{
370   arabian_state *state = screen.machine().driver_data<arabian_state>();
371   const pen_t *pens = &screen.machine().pens[(state->m_video_control >> 3) << 8];
370   const pen_t *pens = &screen.machine().pens[(m_video_control >> 3) << 8];
372371   int y;
373372
374373   /* render the screen from the bitmap */
375374   for (y = 0; y < BITMAP_HEIGHT; y++)
376375   {
377376      /* non-flipped case */
378      if (!state->m_flip_screen)
379         draw_scanline8(bitmap, 0, y, BITMAP_WIDTH, &state->m_main_bitmap[y * BITMAP_WIDTH], pens);
377      if (!m_flip_screen)
378         draw_scanline8(bitmap, 0, y, BITMAP_WIDTH, &m_main_bitmap[y * BITMAP_WIDTH], pens);
380379
381380      /* flipped case */
382381      else
r17967r17968
384383         UINT8 scanline[BITMAP_WIDTH];
385384         int x;
386385         for (x = 0; x < BITMAP_WIDTH; x++)
387            scanline[BITMAP_WIDTH - 1 - x] = state->m_main_bitmap[y * BITMAP_WIDTH + x];
386            scanline[BITMAP_WIDTH - 1 - x] = m_main_bitmap[y * BITMAP_WIDTH + x];
388387         draw_scanline8(bitmap, 0, BITMAP_HEIGHT - 1 - y, BITMAP_WIDTH, scanline, pens);
389388      }
390389   }
trunk/src/mame/video/galpani2.c
r17967r17968
137137
138138***************************************************************************/
139139
140SCREEN_UPDATE_IND16( galpani2 )
140UINT32 galpani2_state::screen_update_galpani2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
141141{
142   galpani2_state *state = screen.machine().driver_data<galpani2_state>();
143142   int layers_ctrl = -1;
144143
145144#ifdef MAME_DEBUG
r17967r17968
161160   {
162161      int x = 0;
163162      int y = 0;
164      copyscrollbitmap_trans(bitmap, *state->m_bg15_bitmap,
163      copyscrollbitmap_trans(bitmap, *m_bg15_bitmap,
165164                        1, &x, 1, &y,
166165                        cliprect,0x4200 + 0);
167166   }
r17967r17968
174173
175174   if (layers_ctrl & 0x2)
176175   {
177      int x = - ( *state->m_bg8_scrollx[0] + 0x200 - 0x0f5 );
178      int y = - ( *state->m_bg8_scrolly[0] + 0x200 - 0x1be );
179      copyscrollbitmap_trans(bitmap, *state->m_bg8_bitmap[0],
176      int x = - ( *m_bg8_scrollx[0] + 0x200 - 0x0f5 );
177      int y = - ( *m_bg8_scrolly[0] + 0x200 - 0x1be );
178      copyscrollbitmap_trans(bitmap, *m_bg8_bitmap[0],
180179                        1, &x, 1, &y,
181180                        cliprect,0x4000 + 0);
182181   }
183182
184183   if (layers_ctrl & 0x4)
185184   {
186      int x = - ( *state->m_bg8_scrollx[1] + 0x200 - 0x0f5 );
187      int y = - ( *state->m_bg8_scrolly[1] + 0x200 - 0x1be );
188      copyscrollbitmap_trans(bitmap, *state->m_bg8_bitmap[1],
185      int x = - ( *m_bg8_scrollx[1] + 0x200 - 0x0f5 );
186      int y = - ( *m_bg8_scrolly[1] + 0x200 - 0x1be );
187      copyscrollbitmap_trans(bitmap, *m_bg8_bitmap[1],
189188                        1, &x, 1, &y,
190189                        cliprect,0x4000 + 0);
191190   }
192191
193   if (layers_ctrl & 0x8) state->m_kaneko_spr->kaneko16_render_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram, state->m_spriteram.bytes());
192   if (layers_ctrl & 0x8) m_kaneko_spr->kaneko16_render_sprites(screen.machine(), bitmap, cliprect, m_spriteram, m_spriteram.bytes());
194193   return 0;
195194}
trunk/src/mame/video/taito_o.c
r17967r17968
139139}
140140
141141
142SCREEN_UPDATE_IND16( parentj )
142UINT32 taitoo_state::screen_update_parentj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
143143{
144   taitoo_state *state = screen.machine().driver_data<taitoo_state>();
145144
146   tc0080vco_tilemap_update(state->m_tc0080vco);
145   tc0080vco_tilemap_update(m_tc0080vco);
147146
148147   bitmap.fill(0, cliprect);
149148
150   tc0080vco_tilemap_draw(state->m_tc0080vco, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0);
149   tc0080vco_tilemap_draw(m_tc0080vco, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0);
151150
152151   parentj_draw_sprites(screen.machine(), bitmap, cliprect, 0);
153152   parentj_draw_sprites(screen.machine(), bitmap, cliprect, 1);
154153
155   tc0080vco_tilemap_draw(state->m_tc0080vco, bitmap, cliprect, 1, 0, 0);
156   tc0080vco_tilemap_draw(state->m_tc0080vco, bitmap, cliprect, 2, 0, 0);
154   tc0080vco_tilemap_draw(m_tc0080vco, bitmap, cliprect, 1, 0, 0);
155   tc0080vco_tilemap_draw(m_tc0080vco, bitmap, cliprect, 2, 0, 0);
157156
158157   return 0;
159158}
trunk/src/mame/video/labyrunr.c
r17967r17968
176176
177177***************************************************************************/
178178
179SCREEN_UPDATE_IND16( labyrunr )
179UINT32 labyrunr_state::screen_update_labyrunr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
180180{
181   labyrunr_state *state = screen.machine().driver_data<labyrunr_state>();
182181   address_space &space = screen.machine().driver_data()->generic_space();
183   UINT8 ctrl_0 = k007121_ctrlram_r(state->m_k007121, space, 0);
182   UINT8 ctrl_0 = k007121_ctrlram_r(m_k007121, space, 0);
184183   rectangle finalclip0, finalclip1;
185184
186185   set_pens(screen.machine());
r17967r17968
188187   screen.machine().priority_bitmap.fill(0, cliprect);
189188   bitmap.fill(get_black_pen(screen.machine()), cliprect);
190189
191   if (~k007121_ctrlram_r(state->m_k007121, space, 3) & 0x20)
190   if (~k007121_ctrlram_r(m_k007121, space, 3) & 0x20)
192191   {
193192      int i;
194193
195      finalclip0 = state->m_clip0;
196      finalclip1 = state->m_clip1;
194      finalclip0 = m_clip0;
195      finalclip1 = m_clip1;
197196
198197      finalclip0 &= cliprect;
199198      finalclip1 &= cliprect;
200199
201      state->m_layer0->set_scrollx(0, ctrl_0 - 40);
202      state->m_layer1->set_scrollx(0, 0);
200      m_layer0->set_scrollx(0, ctrl_0 - 40);
201      m_layer1->set_scrollx(0, 0);
203202
204203      for(i = 0; i < 32; i++)
205204      {
206205         /* enable colscroll */
207         if((k007121_ctrlram_r(state->m_k007121, space, 1) & 6) == 6) // it's probably just one bit, but it's only used once in the game so I don't know which it's
208            state->m_layer0->set_scrolly((i + 2) & 0x1f, k007121_ctrlram_r(state->m_k007121, space, 2) + state->m_scrollram[i]);
206         if((k007121_ctrlram_r(m_k007121, space, 1) & 6) == 6) // it's probably just one bit, but it's only used once in the game so I don't know which it's
207            m_layer0->set_scrolly((i + 2) & 0x1f, k007121_ctrlram_r(m_k007121, space, 2) + m_scrollram[i]);
209208         else
210            state->m_layer0->set_scrolly((i + 2) & 0x1f, k007121_ctrlram_r(state->m_k007121, space, 2));
209            m_layer0->set_scrolly((i + 2) & 0x1f, k007121_ctrlram_r(m_k007121, space, 2));
211210      }
212211
213      state->m_layer0->draw(bitmap, finalclip0, TILEMAP_DRAW_OPAQUE, 0);
214      k007121_sprites_draw(state->m_k007121, bitmap, cliprect, screen.machine().gfx[0], screen.machine().colortable, state->m_spriteram,(k007121_ctrlram_r(state->m_k007121, space, 6) & 0x30) * 2, 40,0,(k007121_ctrlram_r(state->m_k007121, space, 3) & 0x40) >> 5);
212      m_layer0->draw(bitmap, finalclip0, TILEMAP_DRAW_OPAQUE, 0);
213      k007121_sprites_draw(m_k007121, bitmap, cliprect, screen.machine().gfx[0], screen.machine().colortable, m_spriteram,(k007121_ctrlram_r(m_k007121, space, 6) & 0x30) * 2, 40,0,(k007121_ctrlram_r(m_k007121, space, 3) & 0x40) >> 5);
215214      /* we ignore the transparency because layer1 is drawn only at the top of the screen also covering sprites */
216      state->m_layer1->draw(bitmap, finalclip1, TILEMAP_DRAW_OPAQUE, 0);
215      m_layer1->draw(bitmap, finalclip1, TILEMAP_DRAW_OPAQUE, 0);
217216   }
218217   else
219218   {
r17967r17968
224223      finalclip0.min_y = finalclip1.min_y = cliprect.min_y;
225224      finalclip0.max_y = finalclip1.max_y = cliprect.max_y;
226225
227      if(k007121_ctrlram_r(state->m_k007121, space, 1) & 1)
226      if(k007121_ctrlram_r(m_k007121, space, 1) & 1)
228227      {
229228         finalclip0.min_x = cliprect.max_x - ctrl_0 + 8;
230229         finalclip0.max_x = cliprect.max_x;
r17967r17968
270269         finalclip3.max_x = 40 - ctrl_0 - 8;
271270      }
272271
273      state->m_layer0->set_scrollx(0, ctrl_0 - 40);
274      state->m_layer1->set_scrollx(0, ctrl_0 - 40);
272      m_layer0->set_scrollx(0, ctrl_0 - 40);
273      m_layer1->set_scrollx(0, ctrl_0 - 40);
275274
276      state->m_layer0->draw(bitmap, finalclip0, 0, 1);
275      m_layer0->draw(bitmap, finalclip0, 0, 1);
277276      if(use_clip3[0])
278         state->m_layer0->draw(bitmap, finalclip3, 0, 1);
277         m_layer0->draw(bitmap, finalclip3, 0, 1);
279278
280      state->m_layer1->draw(bitmap, finalclip1, 0, 1);
279      m_layer1->draw(bitmap, finalclip1, 0, 1);
281280      if(use_clip3[1])
282         state->m_layer1->draw(bitmap, finalclip3, 0, 1);
281         m_layer1->draw(bitmap, finalclip3, 0, 1);
283282
284      k007121_sprites_draw(state->m_k007121, bitmap, cliprect, screen.machine().gfx[0], screen.machine().colortable, state->m_spriteram, (k007121_ctrlram_r(state->m_k007121, space, 6) & 0x30) * 2,40,0,(k007121_ctrlram_r(state->m_k007121, space, 3) & 0x40) >> 5);
283      k007121_sprites_draw(m_k007121, bitmap, cliprect, screen.machine().gfx[0], screen.machine().colortable, m_spriteram, (k007121_ctrlram_r(m_k007121, space, 6) & 0x30) * 2,40,0,(k007121_ctrlram_r(m_k007121, space, 3) & 0x40) >> 5);
285284   }
286285   return 0;
287286}
trunk/src/mame/video/thief.c
r17967r17968
9999   m_coprocessor.context_ram = auto_alloc_array(machine(), UINT8, 0x400 );
100100}
101101
102SCREEN_UPDATE_IND16( thief ){
103   thief_state *state = screen.machine().driver_data<thief_state>();
104   UINT8 *videoram = state->m_videoram;
102UINT32 thief_state::screen_update_thief(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){
103   UINT8 *videoram = m_videoram;
105104   UINT32 offs;
106   int flipscreen = state->m_video_control&1;
105   int flipscreen = m_video_control&1;
107106   const UINT8 *source = videoram;
108107
109108   if (tms9927_screen_reset(screen.machine().device("tms")))
r17967r17968
112111      return 0;
113112   }
114113
115   if( state->m_video_control&4 ) /* visible page */
114   if( m_video_control&4 ) /* visible page */
116115      source += 0x2000*4;
117116
118117   for( offs=0; offs<0x2000; offs++ ){
trunk/src/mame/video/ddragon3.c
r17967r17968
155155   }
156156}
157157
158SCREEN_UPDATE_IND16( ddragon3 )
158UINT32 ddragon3_state::screen_update_ddragon3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
159159{
160   ddragon3_state *state = screen.machine().driver_data<ddragon3_state>();
161160
162   state->m_bg_tilemap->set_scrollx(0, state->m_bg_scrollx);
163   state->m_bg_tilemap->set_scrolly(0, state->m_bg_scrolly);
164   state->m_fg_tilemap->set_scrollx(0, state->m_fg_scrollx);
165   state->m_fg_tilemap->set_scrolly(0, state->m_fg_scrolly);
161   m_bg_tilemap->set_scrollx(0, m_bg_scrollx);
162   m_bg_tilemap->set_scrolly(0, m_bg_scrolly);
163   m_fg_tilemap->set_scrollx(0, m_fg_scrollx);
164   m_fg_tilemap->set_scrolly(0, m_fg_scrolly);
166165
167   if ((state->m_vreg & 0x60) == 0x40)
166   if ((m_vreg & 0x60) == 0x40)
168167   {
169      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
170      state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
168      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
169      m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
171170      draw_sprites(screen.machine(), bitmap, cliprect);
172171   }
173   else if ((state->m_vreg & 0x60) == 0x60)
172   else if ((m_vreg & 0x60) == 0x60)
174173   {
175      state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
176      state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
174      m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
175      m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
177176      draw_sprites(screen.machine(), bitmap, cliprect);
178177   }
179178   else
180179   {
181      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
180      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
182181      draw_sprites(screen.machine(), bitmap, cliprect);
183      state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
182      m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
184183   }
185184   return 0;
186185}
187186
188SCREEN_UPDATE_IND16( ctribe )
187UINT32 ddragon3_state::screen_update_ctribe(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
189188{
190   ddragon3_state *state = screen.machine().driver_data<ddragon3_state>();
191189
192   state->m_bg_tilemap->set_scrollx(0, state->m_bg_scrollx);
193   state->m_bg_tilemap->set_scrolly(0, state->m_bg_scrolly);
194   state->m_fg_tilemap->set_scrollx(0, state->m_fg_scrollx);
195   state->m_fg_tilemap->set_scrolly(0, state->m_fg_scrolly);
190   m_bg_tilemap->set_scrollx(0, m_bg_scrollx);
191   m_bg_tilemap->set_scrolly(0, m_bg_scrolly);
192   m_fg_tilemap->set_scrollx(0, m_fg_scrollx);
193   m_fg_tilemap->set_scrolly(0, m_fg_scrolly);
196194
197   if(state->m_vreg & 8)
195   if(m_vreg & 8)
198196   {
199      state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
197      m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
200198      draw_sprites(screen.machine(), bitmap, cliprect);
201      state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
199      m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
202200   }
203201   else
204202   {
205      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
206      state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
203      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
204      m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
207205      draw_sprites(screen.machine(), bitmap, cliprect);
208206   }
209207   return 0;
trunk/src/mame/video/sprint2.c
r17967r17968
114114}
115115
116116
117SCREEN_UPDATE_IND16( sprint2 )
117UINT32 sprint2_state::screen_update_sprint2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
118118{
119   sprint2_state *state = screen.machine().driver_data<sprint2_state>();
120   UINT8 *video_ram = state->m_video_ram;
119   UINT8 *video_ram = m_video_ram;
121120   int i;
122121
123   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
122   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
124123
125124   /* draw the sprites */
126125
r17967r17968
137136}
138137
139138
140SCREEN_VBLANK( sprint2 )
139void sprint2_state::screen_eof_sprint2(screen_device &screen, bool state)
141140{
142141   // rising edge
143   if (vblank_on)
142   if (state)
144143   {
145      sprint2_state *state = screen.machine().driver_data<sprint2_state>();
146      UINT8 *video_ram = state->m_video_ram;
144      UINT8 *video_ram = m_video_ram;
147145      int i;
148146      int j;
149147      const rectangle &visarea = screen.machine().primary_screen->visible_area();
r17967r17968
151149      /*
152150         * Collisions are detected for both player cars:
153151         *
154         * D7 => state->m_collision w/ white playfield
155         * D6 => state->m_collision w/ black playfield or another car
152         * D7 => m_collision w/ white playfield
153         * D6 => m_collision w/ black playfield or another car
156154         *
157155         */
158156
r17967r17968
169167
170168         /* check for sprite-tilemap collisions */
171169
172         state->m_bg_tilemap->draw(state->m_helper, rect, 0, 0);
170         m_bg_tilemap->draw(m_helper, rect, 0, 0);
173171
174         drawgfx_transpen(state->m_helper, rect, screen.machine().gfx[1],
172         drawgfx_transpen(m_helper, rect, screen.machine().gfx[1],
175173            get_sprite_code(video_ram, i),
176174            0,
177175            0, 0,
178176            get_sprite_x(video_ram, i),
179177            get_sprite_y(video_ram, i), 1);
180178
181         state->m_collision[i] |= collision_check(state, screen.machine().colortable, rect);
179         m_collision[i] |= collision_check(this, screen.machine().colortable, rect);
182180
183181         /* check for sprite-sprite collisions */
184182
185183         for (j = 0; j < 4; j++)
186184            if (j != i)
187185            {
188               drawgfx_transpen(state->m_helper, rect, screen.machine().gfx[1],
186               drawgfx_transpen(m_helper, rect, screen.machine().gfx[1],
189187                  get_sprite_code(video_ram, j),
190188                  1,
191189                  0, 0,
r17967r17968
193191                  get_sprite_y(video_ram, j), 0);
194192            }
195193
196         drawgfx_transpen(state->m_helper, rect, screen.machine().gfx[1],
194         drawgfx_transpen(m_helper, rect, screen.machine().gfx[1],
197195            get_sprite_code(video_ram, i),
198196            0,
199197            0, 0,
200198            get_sprite_x(video_ram, i),
201199            get_sprite_y(video_ram, i), 1);
202200
203         state->m_collision[i] |= collision_check(state, screen.machine().colortable, rect);
201         m_collision[i] |= collision_check(this, screen.machine().colortable, rect);
204202      }
205203   }
206204}
trunk/src/mame/video/ccastles.c
r17967r17968
257257 *
258258 *************************************/
259259
260SCREEN_UPDATE_IND16( ccastles )
260UINT32 ccastles_state::screen_update_ccastles(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
261261{
262   ccastles_state *state = screen.machine().driver_data<ccastles_state>();
263   UINT8 *spriteaddr = &state->m_spriteram[state->m_video_control[7] * 0x100];   /* BUF1/BUF2 */
264   int flip = state->m_video_control[4] ? 0xff : 0x00;   /* PLAYER2 */
262   UINT8 *spriteaddr = &m_spriteram[m_video_control[7] * 0x100];   /* BUF1/BUF2 */
263   int flip = m_video_control[4] ? 0xff : 0x00;   /* PLAYER2 */
265264   pen_t black = get_black_pen(screen.machine());
266265   int x, y, offs;
267266
268267   /* draw the sprites */
269   state->m_spritebitmap.fill(0x0f, cliprect);
268   m_spritebitmap.fill(0x0f, cliprect);
270269   for (offs = 0; offs < 320/2; offs += 4)
271270   {
272271      int x = spriteaddr[offs + 3];
r17967r17968
274273      int which = spriteaddr[offs];
275274      int color = spriteaddr[offs + 2] >> 7;
276275
277      drawgfx_transpen(state->m_spritebitmap, cliprect, screen.machine().gfx[0], which, color, flip, flip, x, y, 7);
276      drawgfx_transpen(m_spritebitmap, cliprect, screen.machine().gfx[0], which, color, flip, flip, x, y, 7);
278277   }
279278
280279   /* draw the bitmap to the screen, looping over Y */
r17967r17968
283282      UINT16 *dst = &bitmap.pix16(y);
284283
285284      /* if we're in the VBLANK region, just fill with black */
286      if (state->m_syncprom[y] & 1)
285      if (m_syncprom[y] & 1)
287286      {
288287         for (x = cliprect.min_x; x <= cliprect.max_x; x++)
289288            dst[x] = black;
r17967r17968
292291      /* non-VBLANK region: merge the sprites and the bitmap */
293292      else
294293      {
295         UINT16 *mosrc = &state->m_spritebitmap.pix16(y);
296         int effy = (((y - state->m_vblank_end) + (flip ? 0 : state->m_vscroll)) ^ flip) & 0xff;
294         UINT16 *mosrc = &m_spritebitmap.pix16(y);
295         int effy = (((y - m_vblank_end) + (flip ? 0 : m_vscroll)) ^ flip) & 0xff;
297296         UINT8 *src;
298297
299298         /* the "POTATO" chip does some magic here; this is just a guess */
300299         if (effy < 24)
301300            effy = 24;
302         src = &state->m_videoram[effy * 128];
301         src = &m_videoram[effy * 128];
303302
304303         /* loop over X */
305304         for (x = cliprect.min_x; x <= cliprect.max_x; x++)
r17967r17968
311310            /* otherwise, process normally */
312311            else
313312            {
314               int effx = (state->m_hscroll + (x ^ flip)) & 255;
313               int effx = (m_hscroll + (x ^ flip)) & 255;
315314
316315               /* low 4 bits = left pixel, high 4 bits = right pixel */
317316               UINT8 pix = (src[effx / 2] >> ((effx & 1) * 4)) & 0x0f;
r17967r17968
333332               prindex |= (mopix & 7) << 2;
334333               prindex |= (mopix & 8) >> 2;
335334               prindex |= (pix & 8) >> 3;
336               prvalue = state->m_priprom[prindex];
335               prvalue = m_priprom[prindex];
337336
338337               /* Bit 1 of prvalue selects the low 4 bits of the final pixel */
339338               if (prvalue & 2)
trunk/src/mame/video/dragrace.c
r17967r17968
4545}
4646
4747
48SCREEN_UPDATE_IND16( dragrace )
48UINT32 dragrace_state::screen_update_dragrace(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
4949{
50   dragrace_state *state = screen.machine().driver_data<dragrace_state>();
5150   int y;
5251
53   state->m_bg_tilemap->mark_all_dirty();
52   m_bg_tilemap->mark_all_dirty();
5453
5554   for (y = 0; y < 256; y += 4)
5655   {
5756      rectangle rect = cliprect;
5857
59      int xl = state->m_position_ram[y + 0] & 15;
60      int xh = state->m_position_ram[y + 1] & 15;
61      int yl = state->m_position_ram[y + 2] & 15;
62      int yh = state->m_position_ram[y + 3] & 15;
58      int xl = m_position_ram[y + 0] & 15;
59      int xh = m_position_ram[y + 1] & 15;
60      int yl = m_position_ram[y + 2] & 15;
61      int yh = m_position_ram[y + 3] & 15;
6362
64      state->m_bg_tilemap->set_scrollx(0, 16 * xh + xl - 8);
65      state->m_bg_tilemap->set_scrolly(0, 16 * yh + yl);
63      m_bg_tilemap->set_scrollx(0, 16 * xh + xl - 8);
64      m_bg_tilemap->set_scrolly(0, 16 * yh + yl);
6665
6766      if (rect.min_y < y + 0) rect.min_y = y + 0;
6867      if (rect.max_y > y + 3) rect.max_y = y + 3;
6968
70      state->m_bg_tilemap->draw(bitmap, rect, 0, 0);
69      m_bg_tilemap->draw(bitmap, rect, 0, 0);
7170   }
7271   return 0;
7372}
trunk/src/mame/video/orbit.c
r17967r17968
7676}
7777
7878
79SCREEN_UPDATE_IND16( orbit )
79UINT32 orbit_state::screen_update_orbit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
8080{
81   orbit_state *state = screen.machine().driver_data<orbit_state>();
8281
83   state->m_flip_screen = screen.machine().root_device().ioport("DSW2")->read() & 8;
82   m_flip_screen = screen.machine().root_device().ioport("DSW2")->read() & 8;
8483
85   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
84   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
8685
8786   draw_sprites(screen.machine(), bitmap, cliprect);
8887   return 0;
trunk/src/mame/video/ambush.c
r17967r17968
8888}
8989
9090
91SCREEN_UPDATE_IND16( ambush )
91UINT32 ambush_state::screen_update_ambush(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
9292{
93   ambush_state *state = screen.machine().driver_data<ambush_state>();
9493   int offs;
9594
9695   bitmap.fill(0, cliprect);
r17967r17968
9998   draw_chars(screen.machine(), bitmap, cliprect, 0x00);
10099
101100   /* Draw the sprites. */
102   for (offs = state->m_spriteram.bytes() - 4; offs >= 0; offs -= 4)
101   for (offs = m_spriteram.bytes() - 4; offs >= 0; offs -= 4)
103102   {
104103      int code, col, sx, sy, flipx, flipy, gfx;
105104
106      sy = state->m_spriteram[offs + 0];
107      sx = state->m_spriteram[offs + 3];
105      sy = m_spriteram[offs + 0];
106      sx = m_spriteram[offs + 3];
108107
109108      if ( (sy == 0) ||
110109          (sy == 0xff) ||
111         ((sx <  0x40) && (  state->m_spriteram[offs + 2] & 0x10)) ||
112         ((sx >= 0xc0) && (!(state->m_spriteram[offs + 2] & 0x10))))
110         ((sx <  0x40) && (  m_spriteram[offs + 2] & 0x10)) ||
111         ((sx >= 0xc0) && (!(m_spriteram[offs + 2] & 0x10))))
113112         continue;  /* prevent wraparound */
114113
115114
116      code = (state->m_spriteram[offs + 1] & 0x3f) | ((state->m_spriteram[offs + 2] & 0x60) << 1);
115      code = (m_spriteram[offs + 1] & 0x3f) | ((m_spriteram[offs + 2] & 0x60) << 1);
117116
118      if (state->m_spriteram[offs + 2] & 0x80)
117      if (m_spriteram[offs + 2] & 0x80)
119118      {
120119         /* 16x16 sprites */
121120         gfx = 1;
122121
123         if (!state->flip_screen())
122         if (!flip_screen())
124123            sy = 240 - sy;
125124         else
126125            sx = 240 - sx;
r17967r17968
131130         gfx = 0;
132131         code <<= 2;
133132
134         if (!state->flip_screen())
133         if (!flip_screen())
135134            sy = 248 - sy;
136135         else
137136            sx = 248 - sx;
138137      }
139138
140      col   = state->m_spriteram[offs + 2] & 0x0f;
141      flipx = state->m_spriteram[offs + 1] & 0x40;
142      flipy = state->m_spriteram[offs + 1] & 0x80;
139      col   = m_spriteram[offs + 2] & 0x0f;
140      flipx = m_spriteram[offs + 1] & 0x40;
141      flipy = m_spriteram[offs + 1] & 0x80;
143142
144      if (state->flip_screen())
143      if (flip_screen())
145144      {
146145         flipx = !flipx;
147146         flipy = !flipy;
148147      }
149148
150149      drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[gfx],
151            code, col | ((*state->m_colorbank & 0x03) << 4),
150            code, col | ((*m_colorbank & 0x03) << 4),
152151            flipx, flipy,
153152            sx,sy,0);
154153   }
trunk/src/mame/video/policetr.c
r17967r17968
343343 *
344344 *************************************/
345345
346SCREEN_UPDATE_IND16( policetr )
346UINT32 policetr_state::screen_update_policetr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
347347{
348   policetr_state *state = screen.machine().driver_data<policetr_state>();
349348   int width = cliprect.width();
350349   int y;
351350
352351   /* render all the scanlines from the dstbitmap to MAME's bitmap */
353352   for (y = cliprect.min_y; y <= cliprect.max_y; y++)
354      draw_scanline8(bitmap, cliprect.min_x, y, width, &state->m_dstbitmap[DSTBITMAP_WIDTH * y + cliprect.min_x], NULL);
353      draw_scanline8(bitmap, cliprect.min_x, y, width, &m_dstbitmap[DSTBITMAP_WIDTH * y + cliprect.min_x], NULL);
355354
356355   return 0;
357356}
trunk/src/mame/video/seibuspi.c
r17967r17968
591591
592592
593593
594SCREEN_UPDATE_RGB32( spi )
594UINT32 seibuspi_state::screen_update_spi(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
595595{
596   seibuspi_state *state = screen.machine().driver_data<seibuspi_state>();
597596   INT16 *back_rowscroll, *mid_rowscroll, *fore_rowscroll;
598   if( state->m_layer_bank & 0x80000000 ) {
599      back_rowscroll   = (INT16*)&state->m_tilemap_ram[0x200];
600      mid_rowscroll   = (INT16*)&state->m_tilemap_ram[0x600];
601      fore_rowscroll   = (INT16*)&state->m_tilemap_ram[0xa00];
597   if( m_layer_bank & 0x80000000 ) {
598      back_rowscroll   = (INT16*)&m_tilemap_ram[0x200];
599      mid_rowscroll   = (INT16*)&m_tilemap_ram[0x600];
600      fore_rowscroll   = (INT16*)&m_tilemap_ram[0xa00];
602601   } else {
603602      back_rowscroll   = NULL;
604603      mid_rowscroll   = NULL;
605604      fore_rowscroll   = NULL;
606605   }
607606
608   if( state->m_layer_enable & 0x1 )
607   if( m_layer_enable & 0x1 )
609608      bitmap.fill(0, cliprect);
610609
611   if (!(state->m_layer_enable & 0x1))
612      combine_tilemap(screen.machine(), bitmap, cliprect, state->m_back_layer, state->m_spi_scrollram[0] & 0xffff, (state->m_spi_scrollram[0] >> 16) & 0xffff, 1, back_rowscroll);
610   if (!(m_layer_enable & 0x1))
611      combine_tilemap(screen.machine(), bitmap, cliprect, m_back_layer, m_spi_scrollram[0] & 0xffff, (m_spi_scrollram[0] >> 16) & 0xffff, 1, back_rowscroll);
613612
614613   draw_sprites(screen.machine(), bitmap, cliprect, 0);
615614
616615   // if fore layer is enabled, draw priority 1 sprites behind mid layer
617   if (!(state->m_layer_enable & 0x4))
616   if (!(m_layer_enable & 0x4))
618617      draw_sprites(screen.machine(), bitmap, cliprect, 1);
619618
620   if (!(state->m_layer_enable & 0x2))
621      combine_tilemap(screen.machine(), bitmap, cliprect, state->m_mid_layer, state->m_spi_scrollram[1] & 0xffff, (state->m_spi_scrollram[1] >> 16) & 0xffff, 0, mid_rowscroll);
619   if (!(m_layer_enable & 0x2))
620      combine_tilemap(screen.machine(), bitmap, cliprect, m_mid_layer, m_spi_scrollram[1] & 0xffff, (m_spi_scrollram[1] >> 16) & 0xffff, 0, mid_rowscroll);
622621
623622   // if fore layer is disabled, draw priority 1 sprites above mid layer
624   if ((state->m_layer_enable & 0x4))
623   if ((m_layer_enable & 0x4))
625624      draw_sprites(screen.machine(), bitmap, cliprect, 1);
626625
627626   draw_sprites(screen.machine(), bitmap, cliprect, 2);
628627
629   if (!(state->m_layer_enable & 0x4))
630      combine_tilemap(screen.machine(), bitmap, cliprect, state->m_fore_layer, state->m_spi_scrollram[2] & 0xffff, (state->m_spi_scrollram[2] >> 16) & 0xffff, 0, fore_rowscroll);
628   if (!(m_layer_enable & 0x4))
629      combine_tilemap(screen.machine(), bitmap, cliprect, m_fore_layer, m_spi_scrollram[2] & 0xffff, (m_spi_scrollram[2] >> 16) & 0xffff, 0, fore_rowscroll);
631630
632631   draw_sprites(screen.machine(), bitmap, cliprect, 3);
633632
634   combine_tilemap(screen.machine(), bitmap, cliprect, state->m_text_layer, 0, 0, 0, NULL);
633   combine_tilemap(screen.machine(), bitmap, cliprect, m_text_layer, 0, 0, 0, NULL);
635634   return 0;
636635}
637636
r17967r17968
653652   memset(m_alpha_table, 0, 8192 * sizeof(UINT8));
654653}
655654
656SCREEN_UPDATE_RGB32( sys386f2 )
655UINT32 seibuspi_state::screen_update_sys386f2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
657656{
658657   bitmap.fill(0, cliprect);
659658   draw_sprites(screen.machine(), bitmap, cliprect, 0);
trunk/src/mame/video/sauro.c
r17967r17968
144144   }
145145}
146146
147SCREEN_UPDATE_IND16( sauro )
147UINT32 sauro_state::screen_update_sauro(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
148148{
149   sauro_state *state = screen.machine().driver_data<sauro_state>();
150149
151   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
152   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
150   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
151   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
153152   sauro_draw_sprites(screen.machine(), bitmap, cliprect);
154153   return 0;
155154}
r17967r17968
219218   }
220219}
221220
222SCREEN_UPDATE_IND16( trckydoc )
221UINT32 sauro_state::screen_update_trckydoc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
223222{
224   sauro_state *state = screen.machine().driver_data<sauro_state>();
225   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
223   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
226224   trckydoc_draw_sprites(screen.machine(), bitmap, cliprect);
227225   return 0;
228226}
trunk/src/mame/video/gaplus.c
r17967r17968
303303   }
304304}
305305
306SCREEN_UPDATE_IND16( gaplus )
306UINT32 gaplus_state::screen_update_gaplus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
307307{
308   gaplus_state *state = screen.machine().driver_data<gaplus_state>();
309308   /* flip screen control is embedded in RAM */
310   state->flip_screen_set(state->m_spriteram[0x1f7f-0x800] & 1);
309   flip_screen_set(m_spriteram[0x1f7f-0x800] & 1);
311310
312311   bitmap.fill(0, cliprect);
313312
314313   starfield_render(screen.machine(), bitmap);
315314
316315   /* draw the low priority characters */
317   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
316   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
318317
319318   draw_sprites(screen.machine(), bitmap, cliprect);
320319
321320   /* draw the high priority characters */
322321   /* (I don't know if this feature is used by Gaplus, but it's shown in the schematics) */
323   state->m_bg_tilemap->draw(bitmap, cliprect, 1,0);
322   m_bg_tilemap->draw(bitmap, cliprect, 1,0);
324323   return 0;
325324}
326325
327326
328SCREEN_VBLANK( gaplus )   /* update starfields */
327void gaplus_state::screen_eof_gaplus(screen_device &screen, bool state)/* update starfields */
329328{
330329   // falling edge
331   if (!vblank_on)
330   if (!state)
332331   {
333      gaplus_state *state = screen.machine().driver_data<gaplus_state>();
334      struct star *stars = state->m_stars;
332      struct star *stars = m_stars;
335333      int i;
336334
337335      int width = screen.machine().primary_screen->width();
338336      int height = screen.machine().primary_screen->height();
339337
340338      /* check if we're running */
341      if ( ( state->m_starfield_control[0] & 1 ) == 0 )
339      if ( ( m_starfield_control[0] & 1 ) == 0 )
342340         return;
343341
344342      /* update the starfields */
345      for ( i = 0; i < state->m_total_stars; i++ ) {
346         switch( state->m_starfield_control[stars[i].set + 1] ) {
343      for ( i = 0; i < m_total_stars; i++ ) {
344         switch( m_starfield_control[stars[i].set + 1] ) {
347345            case 0x87:
348346               /* stand still */
349347            break;
trunk/src/mame/video/drmicro.c
r17967r17968
113113   m_bg2->set_transparent_pen(0);
114114}
115115
116SCREEN_UPDATE_IND16( drmicro )
116UINT32 drmicro_state::screen_update_drmicro(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
117117{
118   drmicro_state *state = screen.machine().driver_data<drmicro_state>();
119118   int offs, adr, g;
120119   int chr, col, attr;
121120   int x, y, fx, fy;
122121
123   state->m_bg1->draw(bitmap, cliprect, 0, 0);
124   state->m_bg2->draw(bitmap, cliprect, 0, 0);
122   m_bg1->draw(bitmap, cliprect, 0, 0);
123   m_bg2->draw(bitmap, cliprect, 0, 0);
125124
126125   /* draw sprites */
127126   for (g = 0; g < 2; g++)
r17967r17968
130129
131130      for (offs = 0x00; offs < 0x20; offs += 4)
132131      {
133         x = state->m_videoram[offs + adr + 3];
134         y = state->m_videoram[offs + adr + 0];
135         attr = state->m_videoram[offs + adr + 2];
136         chr = state->m_videoram[offs + adr + 1];
132         x = m_videoram[offs + adr + 3];
133         y = m_videoram[offs + adr + 0];
134         attr = m_videoram[offs + adr + 2];
135         chr = m_videoram[offs + adr + 1];
137136
138         fx = (chr & 0x01) ^ state->m_flipscreen;
139         fy = ((chr & 0x02) >> 1) ^ state->m_flipscreen;
137         fx = (chr & 0x01) ^ m_flipscreen;
138         fy = ((chr & 0x02) >> 1) ^ m_flipscreen;
140139
141140         chr = (chr >> 2) | (attr & 0xc0);
142141
143142         col = (attr & 0x0f) + 0x00;
144143
145         if (!state->m_flipscreen)
144         if (!m_flipscreen)
146145            y = (240 - y) & 0xff;
147146         else
148147            x = (240 - x) & 0xff;
trunk/src/mame/video/carpolo.c
r17967r17968
220220}
221221
222222
223SCREEN_UPDATE_IND16( carpolo )
223UINT32 carpolo_state::screen_update_carpolo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
224224{
225   carpolo_state *state = screen.machine().driver_data<carpolo_state>();
226225   /* draw the playfield elements in the correct priority order */
227226
228227   /* score area - position determined by bit 4 of the vertical timing PROM */
r17967r17968
233232
234233   /* car 1 */
235234   draw_sprite(screen.machine(), bitmap, cliprect,
236            state->m_spriteram[0x00], state->m_spriteram[0x01],
237            0, state->m_spriteram[0x0c] & 0x0f, CAR1_COLOR);
235            m_spriteram[0x00], m_spriteram[0x01],
236            0, m_spriteram[0x0c] & 0x0f, CAR1_COLOR);
238237
239238   /* border - position determined by bit 4 and 7 of the vertical timing PROM */
240239   bitmap.plot_box(0,TOP_BORDER,   RIGHT_BORDER+1,1,LINE_PEN);
r17967r17968
244243
245244   /* car 4 */
246245   draw_sprite(screen.machine(), bitmap, cliprect,
247            state->m_spriteram[0x06], state->m_spriteram[0x07],
248            0, state->m_spriteram[0x0d] >> 4, CAR4_COLOR);
246            m_spriteram[0x06], m_spriteram[0x07],
247            0, m_spriteram[0x0d] >> 4, CAR4_COLOR);
249248
250249   /* car 3 */
251250   draw_sprite(screen.machine(), bitmap, cliprect,
252            state->m_spriteram[0x04], state->m_spriteram[0x05],
253            0, state->m_spriteram[0x0d] & 0x0f, CAR3_COLOR);
251            m_spriteram[0x04], m_spriteram[0x05],
252            0, m_spriteram[0x0d] & 0x0f, CAR3_COLOR);
254253
255254   /* car 2 */
256255   draw_sprite(screen.machine(), bitmap, cliprect,
257            state->m_spriteram[0x02], state->m_spriteram[0x03],
258            0, state->m_spriteram[0x0c] >> 4, CAR2_COLOR);
256            m_spriteram[0x02], m_spriteram[0x03],
257            0, m_spriteram[0x0c] >> 4, CAR2_COLOR);
259258
260259   /* ball */
261260   draw_sprite(screen.machine(), bitmap, cliprect,
262            state->m_spriteram[0x08], state->m_spriteram[0x09],
263            1, state->m_spriteram[0x0e] & 0x0f, BALL_COLOR);
261            m_spriteram[0x08], m_spriteram[0x09],
262            1, m_spriteram[0x0e] & 0x0f, BALL_COLOR);
264263
265264   /* left goal - position determined by bit 6 of the
266265       horizontal and vertical timing PROMs */
r17967r17968
279278
280279   /* special char - bit 0 of 0x0f enables it,
281280                      bit 1 marked as WIDE, but never appears to be set */
282   if (state->m_spriteram[0x0f] & 0x02)
281   if (m_spriteram[0x0f] & 0x02)
283282      popmessage("WIDE!\n");
284283
285   if (state->m_spriteram[0x0f] & 0x01)
284   if (m_spriteram[0x0f] & 0x01)
286285      draw_sprite(screen.machine(), bitmap, cliprect,
287               state->m_spriteram[0x0a], state->m_spriteram[0x0b],
288               1, state->m_spriteram[0x0e] >> 4, SPECIAL_CHAR_COLOR);
286               m_spriteram[0x0a], m_spriteram[0x0b],
287               1, m_spriteram[0x0e] >> 4, SPECIAL_CHAR_COLOR);
289288
290289
291290   /* draw the alpha layer */
r17967r17968
548547}
549548
550549
551SCREEN_VBLANK( carpolo )
550void carpolo_state::screen_eof_carpolo(screen_device &screen, bool state)
552551{
553552   // rising edge
554   if (vblank_on)
553   if (state)
555554   {
556      carpolo_state *state = screen.machine().driver_data<carpolo_state>();
557555      int col_x, col_y;
558556      int car1_x, car2_x, car3_x, car4_x, ball_x;
559557      int car1_y, car2_y, car3_y, car4_y, ball_y;
r17967r17968
563561
564562      /* check car-car collision first */
565563
566      car1_x = state->m_spriteram[0x00];
567      car1_y = state->m_spriteram[0x01];
568      remap_sprite_code(screen.machine(), 0, state->m_spriteram[0x0c] & 0x0f, &car1_code, &car1_flipy);
564      car1_x = m_spriteram[0x00];
565      car1_y = m_spriteram[0x01];
566      remap_sprite_code(screen.machine(), 0, m_spriteram[0x0c] & 0x0f, &car1_code, &car1_flipy);
569567
570      car2_x = state->m_spriteram[0x02];
571      car2_y = state->m_spriteram[0x03];
572      remap_sprite_code(screen.machine(), 0, state->m_spriteram[0x0c] >> 4,   &car2_code, &car2_flipy);
568      car2_x = m_spriteram[0x02];
569      car2_y = m_spriteram[0x03];
570      remap_sprite_code(screen.machine(), 0, m_spriteram[0x0c] >> 4,   &car2_code, &car2_flipy);
573571
574      car3_x = state->m_spriteram[0x04];
575      car3_y = state->m_spriteram[0x05];
576      remap_sprite_code(screen.machine(), 0, state->m_spriteram[0x0d] & 0x0f, &car3_code, &car3_flipy);
572      car3_x = m_spriteram[0x04];
573      car3_y = m_spriteram[0x05];
574      remap_sprite_code(screen.machine(), 0, m_spriteram[0x0d] & 0x0f, &car3_code, &car3_flipy);
577575
578      car4_x = state->m_spriteram[0x06];
579      car4_y = state->m_spriteram[0x07];
580      remap_sprite_code(screen.machine(), 0, state->m_spriteram[0x0d] >> 4,   &car4_code, &car4_flipy);
576      car4_x = m_spriteram[0x06];
577      car4_y = m_spriteram[0x07];
578      remap_sprite_code(screen.machine(), 0, m_spriteram[0x0d] >> 4,   &car4_code, &car4_flipy);
581579
582      ball_x = state->m_spriteram[0x08];
583      ball_y = state->m_spriteram[0x09];
584      remap_sprite_code(screen.machine(), 1, state->m_spriteram[0x0e] & 0x0f, &ball_code, &ball_flipy);
580      ball_x = m_spriteram[0x08];
581      ball_y = m_spriteram[0x09];
582      remap_sprite_code(screen.machine(), 1, m_spriteram[0x0e] & 0x0f, &ball_code, &ball_flipy);
585583
586584
587585      /* cars 1 and 2 */
trunk/src/mame/video/speedatk.c
r17967r17968
8585   }
8686}
8787
88SCREEN_UPDATE_IND16( speedatk )
88UINT32 speedatk_state::screen_update_speedatk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
8989{
90   speedatk_state *state = screen.machine().driver_data<speedatk_state>();
9190   int x,y;
9291   int count;
9392   UINT16 tile;
r17967r17968
9594
9695   bitmap.fill(0, cliprect);
9796
98   count = (state->m_crtc_vreg[0x0c]<<8)|(state->m_crtc_vreg[0x0d] & 0xff);
97   count = (m_crtc_vreg[0x0c]<<8)|(m_crtc_vreg[0x0d] & 0xff);
9998
100   if(state->m_flip_scr) { count = 0x3ff - count; }
99   if(m_flip_scr) { count = 0x3ff - count; }
101100
102   for(y=0;y<state->m_crtc_vreg[6];y++)
101   for(y=0;y<m_crtc_vreg[6];y++)
103102   {
104      for(x=0;x<state->m_crtc_vreg[1];x++)
103      for(x=0;x<m_crtc_vreg[1];x++)
105104      {
106         tile = state->m_videoram[count] + ((state->m_colorram[count] & 0xe0) << 3);
107         color = state->m_colorram[count] & 0x1f;
108         region = (state->m_colorram[count] & 0x10) >> 4;
105         tile = m_videoram[count] + ((m_colorram[count] & 0xe0) << 3);
106         color = m_colorram[count] & 0x1f;
107         region = (m_colorram[count] & 0x10) >> 4;
109108
110         drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[region],tile,color,state->m_flip_scr,state->m_flip_scr,x*8,y*8);
109         drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[region],tile,color,m_flip_scr,m_flip_scr,x*8,y*8);
111110
112         count = (state->m_flip_scr) ? count-1 : count+1;
111         count = (m_flip_scr) ? count-1 : count+1;
113112         count&=0x3ff;
114113      }
115114   }
trunk/src/mame/video/system1.c
r17967r17968
558558 *
559559 *************************************/
560560
561SCREEN_UPDATE_IND16( system1 )
561UINT32 system1_state::screen_update_system1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
562562{
563   system1_state *state = screen.machine().driver_data<system1_state>();
564   UINT8 *videoram = state->m_videoram;
563   UINT8 *videoram = m_videoram;
565564   bitmap_ind16 *bgpixmaps[4];
566565   int bgrowscroll[32];
567566   int xscroll, yscroll;
568567   int y;
569568
570569   /* all 4 background pages are the same, fixed to page 0 */
571   bgpixmaps[0] = bgpixmaps[1] = bgpixmaps[2] = bgpixmaps[3] = &state->m_tilemap_page[0]->pixmap();
570   bgpixmaps[0] = bgpixmaps[1] = bgpixmaps[2] = bgpixmaps[3] = &m_tilemap_page[0]->pixmap();
572571
573572   /* foreground is fixed to page 1 */
574   bitmap_ind16 &fgpixmap = state->m_tilemap_page[1]->pixmap();
573   bitmap_ind16 &fgpixmap = m_tilemap_page[1]->pixmap();
575574
576575   /* get fixed scroll offsets */
577576   xscroll = (INT16)((videoram[0xffc] | (videoram[0xffd] << 8)) + 28);
578577   yscroll = videoram[0xfbd];
579578
580579   /* adjust for flipping */
581   if (state->flip_screen())
580   if (flip_screen())
582581   {
583582      xscroll = 640 - (xscroll & 0x1ff);
584583      yscroll = 764 - (yscroll & 0x1ff);
r17967r17968
594593}
595594
596595
597SCREEN_UPDATE_IND16( system2 )
596UINT32 system1_state::screen_update_system2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
598597{
599   system1_state *state = screen.machine().driver_data<system1_state>();
600   UINT8 *videoram = state->m_videoram;
598   UINT8 *videoram = m_videoram;
601599   bitmap_ind16 *bgpixmaps[4];
602600   int rowscroll[32];
603601   int xscroll, yscroll;
r17967r17968
605603   int y;
606604
607605   /* 4 independent background pages */
608   bgpixmaps[0] = &state->m_tilemap_page[videoram[0x740] & 7]->pixmap();
609   bgpixmaps[1] = &state->m_tilemap_page[videoram[0x742] & 7]->pixmap();
610   bgpixmaps[2] = &state->m_tilemap_page[videoram[0x744] & 7]->pixmap();
611   bgpixmaps[3] = &state->m_tilemap_page[videoram[0x746] & 7]->pixmap();
606   bgpixmaps[0] = &m_tilemap_page[videoram[0x740] & 7]->pixmap();
607   bgpixmaps[1] = &m_tilemap_page[videoram[0x742] & 7]->pixmap();
608   bgpixmaps[2] = &m_tilemap_page[videoram[0x744] & 7]->pixmap();
609   bgpixmaps[3] = &m_tilemap_page[videoram[0x746] & 7]->pixmap();
612610
613611   /* foreground is fixed to page 0 */
614   bitmap_ind16 &fgpixmap = state->m_tilemap_page[0]->pixmap();
612   bitmap_ind16 &fgpixmap = m_tilemap_page[0]->pixmap();
615613
616614   /* get scroll offsets */
617   if (!state->flip_screen())
615   if (!flip_screen())
618616   {
619617      xscroll = ((videoram[0x7c0] | (videoram[0x7c1] << 8)) & 0x1ff) - 512 + 10;
620618      yscroll = videoram[0x7ba];
r17967r17968
637635}
638636
639637
640SCREEN_UPDATE_IND16( system2_rowscroll )
638UINT32 system1_state::screen_update_system2_rowscroll(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
641639{
642   system1_state *state = screen.machine().driver_data<system1_state>();
643   UINT8 *videoram = state->m_videoram;
640   UINT8 *videoram = m_videoram;
644641   bitmap_ind16 *bgpixmaps[4];
645642   int rowscroll[32];
646643   int yscroll;
r17967r17968
648645   int y;
649646
650647   /* 4 independent background pages */
651   bgpixmaps[0] = &state->m_tilemap_page[videoram[0x740] & 7]->pixmap();
652   bgpixmaps[1] = &state->m_tilemap_page[videoram[0x742] & 7]->pixmap();
653   bgpixmaps[2] = &state->m_tilemap_page[videoram[0x744] & 7]->pixmap();
654   bgpixmaps[3] = &state->m_tilemap_page[videoram[0x746] & 7]->pixmap();
648   bgpixmaps[0] = &m_tilemap_page[videoram[0x740] & 7]->pixmap();
649   bgpixmaps[1] = &m_tilemap_page[videoram[0x742] & 7]->pixmap();
650   bgpixmaps[2] = &m_tilemap_page[videoram[0x744] & 7]->pixmap();
651   bgpixmaps[3] = &m_tilemap_page[videoram[0x746] & 7]->pixmap();
655652
656653   /* foreground is fixed to page 0 */
657   bitmap_ind16 &fgpixmap = state->m_tilemap_page[0]->pixmap();
654   bitmap_ind16 &fgpixmap = m_tilemap_page[0]->pixmap();
658655
659656   /* get scroll offsets */
660   if (!state->flip_screen())
657   if (!flip_screen())
661658   {
662659      for (y = 0; y < 32; y++)
663660         rowscroll[y] = ((videoram[0x7c0 + y * 2] | (videoram[0x7c1 + y * 2] << 8)) & 0x1ff) - 512 + 10;
trunk/src/mame/video/powerins.c
r17967r17968
325325***************************************************************************/
326326
327327
328SCREEN_UPDATE_IND16( powerins )
328UINT32 powerins_state::screen_update_powerins(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
329329{
330   powerins_state *state = screen.machine().driver_data<powerins_state>();
331330   int layers_ctrl = -1;
332331
333   int scrollx = (state->m_vctrl_0[2/2]&0xff) + (state->m_vctrl_0[0/2]&0xff)*256;
334   int scrolly = (state->m_vctrl_0[6/2]&0xff) + (state->m_vctrl_0[4/2]&0xff)*256;
332   int scrollx = (m_vctrl_0[2/2]&0xff) + (m_vctrl_0[0/2]&0xff)*256;
333   int scrolly = (m_vctrl_0[6/2]&0xff) + (m_vctrl_0[4/2]&0xff)*256;
335334
336   state->m_tilemap_0->set_scrollx(0, scrollx - 0x20);
337   state->m_tilemap_0->set_scrolly(0, scrolly );
335   m_tilemap_0->set_scrollx(0, scrollx - 0x20);
336   m_tilemap_0->set_scrolly(0, scrolly );
338337
339   state->m_tilemap_1->set_scrollx(0, -0x20);   // fixed offset
340   state->m_tilemap_1->set_scrolly(0,  0x00);
338   m_tilemap_1->set_scrollx(0, -0x20);   // fixed offset
339   m_tilemap_1->set_scrolly(0,  0x00);
341340
342341#ifdef MAME_DEBUG
343342if (screen.machine().input().code_pressed(KEYCODE_Z))
r17967r17968
352351}
353352#endif
354353
355   if (layers_ctrl&1)      state->m_tilemap_0->draw(bitmap, cliprect, 0, 0);
354   if (layers_ctrl&1)      m_tilemap_0->draw(bitmap, cliprect, 0, 0);
356355   else               bitmap.fill(0, cliprect);
357356   if (layers_ctrl&8)      draw_sprites(screen.machine(),bitmap,cliprect);
358   if (layers_ctrl&2)      state->m_tilemap_1->draw(bitmap, cliprect, 0, 0);
357   if (layers_ctrl&2)      m_tilemap_1->draw(bitmap, cliprect, 0, 0);
359358   return 0;
360359}
trunk/src/mame/video/stvvdp2.c
r17967r17968
66366636   stv_sprite_priorities_usage_valid = 1;
66376637}
66386638
6639SCREEN_UPDATE_RGB32( stv_vdp2 )
6639UINT32 saturn_state::screen_update_stv_vdp2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
66406640{
66416641   saturn_state *state = screen.machine().driver_data<saturn_state>();
66426642
66436643   stv_vdp2_fade_effects(screen.machine());
66446644
6645   stv_vdp2_draw_back(screen.machine(), state->m_tmpbitmap,cliprect);
6645   stv_vdp2_draw_back(screen.machine(), m_tmpbitmap,cliprect);
66466646
66476647   #if DEBUG_MODE
66486648   if(screen.machine().input().code_pressed_once(KEYCODE_T))
r17967r17968
66886688      /*If a plane has a priority value of zero it isn't shown at all.*/
66896689      for(pri=1;pri<8;pri++)
66906690      {
6691         if (vdpdebug.l_en & 1)    { if(pri==STV_VDP2_N3PRIN) stv_vdp2_draw_NBG3(screen.machine(), state->m_tmpbitmap,cliprect); }
6692         if (vdpdebug.l_en & 2)    { if(pri==STV_VDP2_N2PRIN) stv_vdp2_draw_NBG2(screen.machine(), state->m_tmpbitmap,cliprect); }
6693         if (vdpdebug.l_en & 4)    { if(pri==STV_VDP2_N1PRIN) stv_vdp2_draw_NBG1(screen.machine(), state->m_tmpbitmap,cliprect); }
6694         if (vdpdebug.l_en & 8)    { if(pri==STV_VDP2_N0PRIN) stv_vdp2_draw_NBG0(screen.machine(), state->m_tmpbitmap,cliprect); }
6695         if (vdpdebug.l_en & 0x10) { if(pri==STV_VDP2_R0PRIN) stv_vdp2_draw_RBG0(screen.machine(), state->m_tmpbitmap,cliprect); }
6696         if (vdpdebug.l_en & 0x20) { draw_sprites(screen.machine(),state->m_tmpbitmap,cliprect,pri); }
6691         if (vdpdebug.l_en & 1)    { if(pri==STV_VDP2_N3PRIN) stv_vdp2_draw_NBG3(screen.machine(), m_tmpbitmap,cliprect); }
6692         if (vdpdebug.l_en & 2)    { if(pri==STV_VDP2_N2PRIN) stv_vdp2_draw_NBG2(screen.machine(), m_tmpbitmap,cliprect); }
6693         if (vdpdebug.l_en & 4)    { if(pri==STV_VDP2_N1PRIN) stv_vdp2_draw_NBG1(screen.machine(), m_tmpbitmap,cliprect); }
6694         if (vdpdebug.l_en & 8)    { if(pri==STV_VDP2_N0PRIN) stv_vdp2_draw_NBG0(screen.machine(), m_tmpbitmap,cliprect); }
6695         if (vdpdebug.l_en & 0x10) { if(pri==STV_VDP2_R0PRIN) stv_vdp2_draw_RBG0(screen.machine(), m_tmpbitmap,cliprect); }
6696         if (vdpdebug.l_en & 0x20) { draw_sprites(screen.machine(),m_tmpbitmap,cliprect,pri); }
66976697      }
66986698   }
66996699
r17967r17968
67556755      fp=fopen("mamevdp1", "w+b");
67566756      if (fp)
67576757      {
6758         fwrite(state->m_vdp1_vram, 0x80000, 1, fp);
6758         fwrite(m_vdp1_vram, 0x80000, 1, fp);
67596759         fclose(fp);
67606760      }
67616761   }
r17967r17968
67676767      fp=fopen("vdp1_vram.bin", "r+b");
67686768      if (fp)
67696769      {
6770         fread(state->m_vdp1_vram, 0x80000, 1, fp);
6770         fread(m_vdp1_vram, 0x80000, 1, fp);
67716771         fclose(fp);
67726772      }
67736773   }
67746774
67756775#endif
67766776
6777   copybitmap(bitmap, state->m_tmpbitmap, 0, 0, 0, 0, cliprect);
6777   copybitmap(bitmap, m_tmpbitmap, 0, 0, 0, 0, cliprect);
67786778
67796779   return 0;
67806780}
r17967r17968
71887188   }
71897189}
71907190
7191SCREEN_UPDATE_RGB32( saturn )
7191UINT32 saturn_state::screen_update_saturn(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
71927192{
71937193   saturn_state *state = screen.machine().driver_data<saturn_state>();
71947194   static UINT8 disclaimer;
trunk/src/mame/video/niyanpai.c
r17967r17968
382382
383383
384384******************************************************************************/
385SCREEN_UPDATE_IND16( niyanpai )
385UINT32 niyanpai_state::screen_update_niyanpai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
386386{
387   niyanpai_state *state = screen.machine().driver_data<niyanpai_state>();
388387   int i;
389388   int x, y;
390389   int scrollx[3], scrolly[3];
391390
392   if (state->m_screen_refresh)
391   if (m_screen_refresh)
393392   {
394393      int width = screen.width();
395394      int height = screen.height();
396395
397      state->m_screen_refresh = 0;
396      m_screen_refresh = 0;
398397
399398      for (y = 0; y < height; y++)
400399         for (x = 0; x < width; x++)
r17967r17968
407406
408407   for (i = 0; i < 3; i++)
409408   {
410      if (state->m_flipscreen[i])
409      if (m_flipscreen[i])
411410      {
412         scrollx[i] = (((-state->m_scrollx[i]) - 0x4e)  & 0x1ff) << 1;
413         scrolly[i] = (-state->m_scrolly[i]) & 0x1ff;
411         scrollx[i] = (((-m_scrollx[i]) - 0x4e)  & 0x1ff) << 1;
412         scrolly[i] = (-m_scrolly[i]) & 0x1ff;
414413      }
415414      else
416415      {
417         scrollx[i] = (((-state->m_scrollx[i]) - 0x4e)  & 0x1ff) << 1;
418         scrolly[i] = state->m_scrolly[i] & 0x1ff;
416         scrollx[i] = (((-m_scrollx[i]) - 0x4e)  & 0x1ff) << 1;
417         scrolly[i] = m_scrolly[i] & 0x1ff;
419418      }
420419   }
421420
422   if (state->m_dispflag[0])
423      copyscrollbitmap(bitmap, state->m_tmpbitmap[0], 1, &scrollx[0], 1, &scrolly[0], cliprect);
421   if (m_dispflag[0])
422      copyscrollbitmap(bitmap, m_tmpbitmap[0], 1, &scrollx[0], 1, &scrolly[0], cliprect);
424423   else
425424      bitmap.fill(0x00ff);
426425
427   if (state->m_dispflag[1])
428      copyscrollbitmap_trans(bitmap, state->m_tmpbitmap[1], 1, &scrollx[1], 1, &scrolly[1], cliprect, 0x01ff);
426   if (m_dispflag[1])
427      copyscrollbitmap_trans(bitmap, m_tmpbitmap[1], 1, &scrollx[1], 1, &scrolly[1], cliprect, 0x01ff);
429428
430   if (state->m_dispflag[2])
431      copyscrollbitmap_trans(bitmap, state->m_tmpbitmap[2], 1, &scrollx[2], 1, &scrolly[2], cliprect, 0x02ff);
429   if (m_dispflag[2])
430      copyscrollbitmap_trans(bitmap, m_tmpbitmap[2], 1, &scrollx[2], 1, &scrolly[2], cliprect, 0x02ff);
432431
433432   return 0;
434433}
trunk/src/mame/video/exedexes.c
r17967r17968
212212   }
213213}
214214
215SCREEN_UPDATE_IND16( exedexes )
215UINT32 exedexes_state::screen_update_exedexes(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
216216{
217   exedexes_state *state = screen.machine().driver_data<exedexes_state>();
218   if (state->m_sc2on)
217   if (m_sc2on)
219218   {
220      state->m_bg_tilemap->set_scrollx(0, ((state->m_bg_scroll[1]) << 8) + state->m_bg_scroll[0]);
221      state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
219      m_bg_tilemap->set_scrollx(0, ((m_bg_scroll[1]) << 8) + m_bg_scroll[0]);
220      m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
222221   }
223222   else
224223      bitmap.fill(0, cliprect);
225224
226225   draw_sprites(screen.machine(), bitmap, cliprect, 1);
227226
228   if (state->m_sc1on)
227   if (m_sc1on)
229228   {
230      state->m_fg_tilemap->set_scrollx(0, ((state->m_nbg_yscroll[1]) << 8) + state->m_nbg_yscroll[0]);
231      state->m_fg_tilemap->set_scrolly(0, ((state->m_nbg_xscroll[1]) << 8) + state->m_nbg_xscroll[0]);
232      state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
229      m_fg_tilemap->set_scrollx(0, ((m_nbg_yscroll[1]) << 8) + m_nbg_yscroll[0]);
230      m_fg_tilemap->set_scrolly(0, ((m_nbg_xscroll[1]) << 8) + m_nbg_xscroll[0]);
231      m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
233232   }
234233
235234   draw_sprites(screen.machine(), bitmap, cliprect, 0);
236235
237   if (state->m_chon)
238      state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
236   if (m_chon)
237      m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
239238
240239   return 0;
241240}
trunk/src/mame/video/jedi.c
r17967r17968
324324 *
325325 *************************************/
326326
327static SCREEN_UPDATE_RGB32( jedi )
327UINT32 jedi_state::screen_update_jedi(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
328328{
329   jedi_state *state = screen.machine().driver_data<jedi_state>();
330329
331330   /* if no video, clear it all to black */
332   if (*state->m_video_off & 0x01)
331   if (*m_video_off & 0x01)
333332      bitmap.fill(RGB_BLACK, cliprect);
334333   else
335334   {
336335      /* draw the background/text layers, followed by the sprites
337336           - it needs to be done in this order*/
338      draw_background_and_text(screen.machine(), state, bitmap, cliprect);
339      draw_sprites(screen.machine(), state, bitmap, cliprect);
340      do_pen_lookup(state, bitmap, cliprect);
337      draw_background_and_text(screen.machine(), this, bitmap, cliprect);
338      draw_sprites(screen.machine(), this, bitmap, cliprect);
339      do_pen_lookup(this, bitmap, cliprect);
341340   }
342341
343342   return 0;
r17967r17968
356355   MCFG_SCREEN_REFRESH_RATE(60)
357356   MCFG_SCREEN_SIZE(64*8, 262) /* verify vert size */
358357   MCFG_SCREEN_VISIBLE_AREA(0*8, 37*8-1, 0*8, 30*8-1)
359   MCFG_SCREEN_UPDATE_STATIC(jedi)
358   MCFG_SCREEN_UPDATE_DRIVER(jedi_state, screen_update_jedi)
360359
361360   MCFG_VIDEO_START_OVERRIDE(jedi_state,jedi)
362361MACHINE_CONFIG_END
trunk/src/mame/video/suprnova.c
r17967r17968
444444   }
445445}
446446
447SCREEN_UPDATE_RGB32(skns)
447UINT32 skns_state::screen_update_skns(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
448448{
449   skns_state *state = screen.machine().driver_data<skns_state>();
450449
451450   palette_update(screen.machine());
452451
453452   bitmap.fill(get_black_pen(screen.machine()), cliprect);
454   state->m_tilemap_bitmap_lower.fill(0);
455   state->m_tilemap_bitmapflags_lower.fill(0);
456   state->m_tilemap_bitmap_higher.fill(0);
457   state->m_tilemap_bitmapflags_higher.fill(0);
453   m_tilemap_bitmap_lower.fill(0);
454   m_tilemap_bitmapflags_lower.fill(0);
455   m_tilemap_bitmap_higher.fill(0);
456   m_tilemap_bitmapflags_higher.fill(0);
458457
459458   {
460459      int supernova_pri_a;
461460      int supernova_pri_b;
462461      int tran = 0;
463462
464      supernova_pri_a = (state->m_v3_regs[0x10/4] & 0x0002)>>1;
465      supernova_pri_b = (state->m_v3_regs[0x34/4] & 0x0002)>>1;
463      supernova_pri_a = (m_v3_regs[0x10/4] & 0x0002)>>1;
464      supernova_pri_b = (m_v3_regs[0x34/4] & 0x0002)>>1;
466465
467466      //popmessage("pri %d %d\n", supernova_pri_a, supernova_pri_b);
468467
469468      /*if (!supernova_pri_b) { */
470      supernova_draw_b(screen.machine(), state->m_tilemap_bitmap_lower, state->m_tilemap_bitmapflags_lower, cliprect,tran);// tran = 1;
471      supernova_draw_a(screen.machine(), state->m_tilemap_bitmap_higher,state->m_tilemap_bitmapflags_higher,cliprect,tran);// tran = 1;
469      supernova_draw_b(screen.machine(), m_tilemap_bitmap_lower, m_tilemap_bitmapflags_lower, cliprect,tran);// tran = 1;
470      supernova_draw_a(screen.machine(), m_tilemap_bitmap_higher,m_tilemap_bitmapflags_higher,cliprect,tran);// tran = 1;
472471
473472      {
474473         int x,y;
r17967r17968
483482
484483         for (y=0;y<240;y++)
485484         {
486            src = &state->m_tilemap_bitmap_lower.pix16(y);
487            srcflags = &state->m_tilemap_bitmapflags_lower.pix8(y);
485            src = &m_tilemap_bitmap_lower.pix16(y);
486            srcflags = &m_tilemap_bitmapflags_lower.pix8(y);
488487
489            src2 = &state->m_tilemap_bitmap_higher.pix16(y);
490            src2flags = &state->m_tilemap_bitmapflags_higher.pix8(y);
488            src2 = &m_tilemap_bitmap_higher.pix16(y);
489            src2flags = &m_tilemap_bitmapflags_higher.pix8(y);
491490
492            src3 = &state->m_sprite_bitmap.pix16(y);
491            src3 = &m_sprite_bitmap.pix16(y);
493492
494493            dst = &bitmap.pix32(y);
495494
r17967r17968
558557                  if (pendata3&0xff)
559558                  {
560559
561                     UINT16 palvalue = state->m_palette_ram[pendata3];
560                     UINT16 palvalue = m_palette_ram[pendata3];
562561
563562                     coldat = clut[pendata3];
564563
r17967r17968
578577                        g2 = (dstcolour & 0x0000ff00)>> 8;
579578                        b2 = (dstcolour & 0x00ff0000)>> 16;
580579
581                        r2 = (r2 * state->m_bright_spc_r_trans) >> 8;
582                        g2 = (g2 * state->m_bright_spc_g_trans) >> 8;
583                        b2 = (b2 * state->m_bright_spc_b_trans) >> 8;
580                        r2 = (r2 * m_bright_spc_r_trans) >> 8;
581                        g2 = (g2 * m_bright_spc_g_trans) >> 8;
582                        b2 = (b2 * m_bright_spc_b_trans) >> 8;
584583
585584                        r = (r+r2);
586585                        if (r>255) r = 255;
r17967r17968
619618      }
620619   }
621620
622   state->m_sprite_bitmap.fill(0x0000, cliprect);
621   m_sprite_bitmap.fill(0x0000, cliprect);
623622
624   if (state->m_alt_enable_sprites)
625      state->m_spritegen->skns_draw_sprites(screen.machine(), state->m_sprite_bitmap, cliprect, state->m_spriteram, state->m_spriteram.bytes(), screen.machine().root_device().memregion("gfx1")->base(), screen.machine().root_device().memregion ("gfx1")->bytes(), state->m_spc_regs );
623   if (m_alt_enable_sprites)
624      m_spritegen->skns_draw_sprites(screen.machine(), m_sprite_bitmap, cliprect, m_spriteram, m_spriteram.bytes(), screen.machine().root_device().memregion("gfx1")->base(), screen.machine().root_device().memregion ("gfx1")->bytes(), m_spc_regs );
626625
627626
628627   return 0;
629628}
630629
631SCREEN_VBLANK(skns)
630void skns_state::screen_eof_skns(screen_device &screen, bool state)
632631{
633632
634633}
trunk/src/mame/video/seta2.c
r17967r17968
475475   m_yoffset = 0x10;
476476}
477477
478SCREEN_UPDATE_IND16( seta2 )
478UINT32 seta2_state::screen_update_seta2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
479479{
480   seta2_state *state = screen.machine().driver_data<seta2_state>();
481480
482481   // Black or pen 0?
483482   bitmap.fill(screen.machine().pens[0], cliprect);
484483
485   if ( (state->m_vregs[0x30/2] & 1) == 0 )   // 1 = BLANK SCREEN
484   if ( (m_vregs[0x30/2] & 1) == 0 )   // 1 = BLANK SCREEN
486485      draw_sprites(screen.machine(), bitmap, cliprect);
487486
488487   return 0;
489488}
490489
491SCREEN_VBLANK( seta2 )
490void seta2_state::screen_eof_seta2(screen_device &screen, bool state)
492491{
493492   // rising edge
494   if (vblank_on)
493   if (state)
495494   {
496      seta2_state *state = screen.machine().driver_data<seta2_state>();
497495
498496      // Buffer sprites by 1 frame
499      memcpy(state->m_buffered_spriteram, state->m_spriteram, state->m_spriteram.bytes());
497      memcpy(m_buffered_spriteram, m_spriteram, m_spriteram.bytes());
500498   }
501499}
trunk/src/mame/video/flkatck.c
r17967r17968
127127
128128***************************************************************************/
129129
130SCREEN_UPDATE_IND16( flkatck )
130UINT32 flkatck_state::screen_update_flkatck(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
131131{
132   flkatck_state *state = screen.machine().driver_data<flkatck_state>();
133132   rectangle clip[2];
134133   const rectangle &visarea = screen.visible_area();
135134
136135   address_space &space = screen.machine().driver_data()->generic_space();
137   if (state->m_flipscreen)
136   if (m_flipscreen)
138137   {
139138      clip[0] = visarea;
140139      clip[0].max_x -= 40;
r17967r17968
142141      clip[1] = visarea;
143142      clip[1].min_x = clip[1].max_x - 40;
144143
145      state->m_k007121_tilemap[0]->set_scrollx(0, k007121_ctrlram_r(state->m_k007121, space, 0) - 56 );
146      state->m_k007121_tilemap[0]->set_scrolly(0, k007121_ctrlram_r(state->m_k007121, space, 2));
147      state->m_k007121_tilemap[1]->set_scrollx(0, -16);
144      m_k007121_tilemap[0]->set_scrollx(0, k007121_ctrlram_r(m_k007121, space, 0) - 56 );
145      m_k007121_tilemap[0]->set_scrolly(0, k007121_ctrlram_r(m_k007121, space, 2));
146      m_k007121_tilemap[1]->set_scrollx(0, -16);
148147   }
149148   else
150149   {
r17967r17968
155154      clip[1].max_x = 39;
156155      clip[1].min_x = 0;
157156
158      state->m_k007121_tilemap[0]->set_scrollx(0, k007121_ctrlram_r(state->m_k007121, space, 0) - 40 );
159      state->m_k007121_tilemap[0]->set_scrolly(0, k007121_ctrlram_r(state->m_k007121, space, 2));
160      state->m_k007121_tilemap[1]->set_scrollx(0, 0);
157      m_k007121_tilemap[0]->set_scrollx(0, k007121_ctrlram_r(m_k007121, space, 0) - 40 );
158      m_k007121_tilemap[0]->set_scrolly(0, k007121_ctrlram_r(m_k007121, space, 2));
159      m_k007121_tilemap[1]->set_scrollx(0, 0);
161160   }
162161
163162   /* compute clipping */
r17967r17968
165164   clip[1] &= cliprect;
166165
167166   /* draw the graphics */
168   state->m_k007121_tilemap[0]->draw(bitmap, clip[0], 0, 0);
169   k007121_sprites_draw(state->m_k007121, bitmap, cliprect, screen.machine().gfx[0], NULL, &state->m_k007121_ram[0x1000], 0, 40, 0, (UINT32)-1);
170   state->m_k007121_tilemap[1]->draw(bitmap, clip[1], 0, 0);
167   m_k007121_tilemap[0]->draw(bitmap, clip[0], 0, 0);
168   k007121_sprites_draw(m_k007121, bitmap, cliprect, screen.machine().gfx[0], NULL, &m_k007121_ram[0x1000], 0, 40, 0, (UINT32)-1);
169   m_k007121_tilemap[1]->draw(bitmap, clip[1], 0, 0);
171170   return 0;
172171}
trunk/src/mame/video/namcofl.c
r17967r17968
8080}
8181
8282
83SCREEN_UPDATE_IND16( namcofl )
83UINT32 namcofl_state::screen_update_namcofl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
8484{
85   namcofl_state *state = screen.machine().driver_data<namcofl_state>();
8685   int pri;
8786
8887   namcofl_install_palette(screen.machine());
r17967r17968
9190
9291   for( pri=0; pri<16; pri++ )
9392   {
94      state->c169_roz_draw(bitmap, cliprect, pri);
93      c169_roz_draw(bitmap, cliprect, pri);
9594      if((pri&1)==0)
9695         namco_tilemap_draw( bitmap, cliprect, pri>>1 );
97      state->c355_obj_draw(bitmap, cliprect, pri );
96      c355_obj_draw(bitmap, cliprect, pri );
9897   }
9998
10099   return 0;
trunk/src/mame/video/dynax.c
r17967r17968
12381238
12391239
12401240
1241SCREEN_UPDATE_IND16( hanamai )
1241UINT32 dynax_state::screen_update_hanamai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
12421242{
1243   dynax_state *state = screen.machine().driver_data<dynax_state>();
1244   int layers_ctrl = ~state->m_layer_enable;
1243   int layers_ctrl = ~m_layer_enable;
12451244   int lay[4];
12461245
12471246   if (debug_viewer(screen.machine(), bitmap, cliprect))
r17967r17968
12491248
12501249   layers_ctrl &= debug_mask(screen.machine());
12511250
1252   bitmap.fill((state->m_blit_backpen & 0xff) + (state->m_blit_palbank & 1) * 256, cliprect);
1251   bitmap.fill((m_blit_backpen & 0xff) + (m_blit_palbank & 1) * 256, cliprect);
12531252
12541253   /* bit 4 = display enable? */
1255   if (!(state->m_hanamai_priority & 0x10))
1254   if (!(m_hanamai_priority & 0x10))
12561255      return 0;
12571256
1258   switch (state->m_hanamai_priority)
1257   switch (m_hanamai_priority)
12591258   {
1260      default:   popmessage("unknown priority %02x", state->m_hanamai_priority);
1259      default:   popmessage("unknown priority %02x", m_hanamai_priority);
12611260      case 0x10:   lay[0] = 0; lay[1] = 1; lay[2] = 2; lay[3] = 3; break;
12621261      case 0x11:   lay[0] = 0; lay[1] = 3; lay[2] = 2; lay[3] = 1; break;
12631262      case 0x12:   lay[0] = 0; lay[1] = 1; lay[2] = 3; lay[3] = 2; break;
r17967r17968
12741273}
12751274
12761275
1277SCREEN_UPDATE_IND16( hnoridur )
1276UINT32 dynax_state::screen_update_hnoridur(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
12781277{
1279   dynax_state *state = screen.machine().driver_data<dynax_state>();
1280   int layers_ctrl = ~BITSWAP8(state->m_hanamai_priority, 7, 6, 5, 4, 0, 1, 2, 3);
1278   int layers_ctrl = ~BITSWAP8(m_hanamai_priority, 7, 6, 5, 4, 0, 1, 2, 3);
12811279   int lay[4];
12821280   int pri;
12831281
r17967r17968
12861284
12871285   layers_ctrl &= debug_mask(screen.machine());
12881286
1289   bitmap.fill((state->m_blit_backpen & 0xff) + (state->m_blit_palbank & 0x0f) * 256, cliprect);
1287   bitmap.fill((m_blit_backpen & 0xff) + (m_blit_palbank & 0x0f) * 256, cliprect);
12901288
1291   pri = state->m_hanamai_priority >> 4;
1289   pri = m_hanamai_priority >> 4;
12921290
12931291   if (pri > 7)
12941292   {
1295      popmessage("unknown priority %02x", state->m_hanamai_priority);
1293      popmessage("unknown priority %02x", m_hanamai_priority);
12961294      pri = 0;
12971295   }
12981296
1299   pri = state->m_priority_table[pri];
1297   pri = m_priority_table[pri];
13001298   lay[0] = (pri >> 12) & 3;
13011299   lay[1] = (pri >>  8) & 3;
13021300   lay[2] = (pri >>  4) & 3;
r17967r17968
13111309}
13121310
13131311
1314SCREEN_UPDATE_IND16( sprtmtch )
1312UINT32 dynax_state::screen_update_sprtmtch(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
13151313{
1316   dynax_state *state = screen.machine().driver_data<dynax_state>();
1317   int layers_ctrl = ~state->m_layer_enable;
1314   int layers_ctrl = ~m_layer_enable;
13181315
13191316   if (debug_viewer(screen.machine(),bitmap,cliprect))
13201317      return 0;
13211318
13221319   layers_ctrl &= debug_mask(screen.machine());
13231320
1324   bitmap.fill((state->m_blit_backpen & 0xff) + (state->m_blit_palbank & 1) * 256, cliprect);
1321   bitmap.fill((m_blit_backpen & 0xff) + (m_blit_palbank & 1) * 256, cliprect);
13251322
13261323   if (BIT(layers_ctrl, 0))   hanamai_copylayer(screen.machine(), bitmap, cliprect, 0);
13271324   if (BIT(layers_ctrl, 1))   hanamai_copylayer(screen.machine(), bitmap, cliprect, 1);
r17967r17968
13291326   return 0;
13301327}
13311328
1332SCREEN_UPDATE_IND16( jantouki_top )
1329UINT32 dynax_state::screen_update_jantouki_top(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
13331330{
1334   dynax_state *state = screen.machine().driver_data<dynax_state>();
1335   int layers_ctrl = state->m_layer_enable;
1331   int layers_ctrl = m_layer_enable;
13361332
13371333   if (debug_viewer(screen.machine(), bitmap, cliprect))
13381334      return 0;
13391335
13401336   layers_ctrl &= debug_mask(screen.machine());
13411337
1342   bitmap.fill((state->m_blit_backpen & 0xff) + (state->m_blit_palbank & 1) * 256, cliprect);
1338   bitmap.fill((m_blit_backpen & 0xff) + (m_blit_palbank & 1) * 256, cliprect);
13431339
13441340//  if (BIT(layers_ctrl, 0))   jantouki_copylayer(screen.machine(), bitmap, cliprect, 3, 0);
13451341   if (BIT(layers_ctrl, 1))   jantouki_copylayer(screen.machine(), bitmap, cliprect, 2, 0);
r17967r17968
13481344   return 0;
13491345}
13501346
1351SCREEN_UPDATE_IND16( jantouki_bottom )
1347UINT32 dynax_state::screen_update_jantouki_bottom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
13521348{
1353   dynax_state *state = screen.machine().driver_data<dynax_state>();
1354   int layers_ctrl = state->m_layer_enable;
1349   int layers_ctrl = m_layer_enable;
13551350
13561351   if (debug_viewer(screen.machine(), bitmap, cliprect))
13571352      return 0;
13581353
13591354   layers_ctrl &= debug_mask(screen.machine());
13601355
1361   bitmap.fill((state->m_blit_backpen & 0xff) + (state->m_blit_palbank & 1) * 256, cliprect);
1356   bitmap.fill((m_blit_backpen & 0xff) + (m_blit_palbank & 1) * 256, cliprect);
13621357
13631358   if (BIT(layers_ctrl, 0))   jantouki_copylayer(screen.machine(), bitmap, cliprect, 3, 0);
13641359   if (BIT(layers_ctrl, 4))   jantouki_copylayer(screen.machine(), bitmap, cliprect, 7, 0);
r17967r17968
13691364}
13701365
13711366
1372SCREEN_UPDATE_IND16( mjdialq2 )
1367UINT32 dynax_state::screen_update_mjdialq2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
13731368{
1374   dynax_state *state = screen.machine().driver_data<dynax_state>();
1375   int layers_ctrl = ~state->m_layer_enable;
1369   int layers_ctrl = ~m_layer_enable;
13761370
13771371   if (debug_viewer(screen.machine(), bitmap, cliprect))
13781372      return 0;
13791373
13801374   layers_ctrl &= debug_mask(screen.machine());
13811375
1382   bitmap.fill((state->m_blit_backpen & 0xff) + (state->m_blit_palbank & 1) * 256, cliprect);
1376   bitmap.fill((m_blit_backpen & 0xff) + (m_blit_palbank & 1) * 256, cliprect);
13831377
13841378   if (BIT(layers_ctrl, 0))   mjdialq2_copylayer(screen.machine(), bitmap, cliprect, 0);
13851379   if (BIT(layers_ctrl, 1))   mjdialq2_copylayer(screen.machine(), bitmap, cliprect, 1);
r17967r17968
13941388   VIDEO_START_CALL_MEMBER(hnoridur);
13951389}
13961390
1397SCREEN_UPDATE_IND16(htengoku)
1391UINT32 dynax_state::screen_update_htengoku(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
13981392{
1399   dynax_state *state = screen.machine().driver_data<dynax_state>();
14001393   int layer, x, y;
14011394
14021395   // render the layers, one by one, "dynax.c" style. Then convert the pixmaps to "ddenlovr.c"
r17967r17968
14081401
14091402      for (y = 0; y < 256; y++)
14101403         for (x = 0; x < 512; x++)
1411            state->m_ddenlovr_pixmap[3 - layer][y * 512 + x] = (UINT8)(bitmap.pix16(y, x));
1404            m_ddenlovr_pixmap[3 - layer][y * 512 + x] = (UINT8)(bitmap.pix16(y, x));
14121405   }
14131406
1414   return SCREEN_UPDATE16_CALL(ddenlovr);
1407   return SCREEN_UPDATE16_CALL_MEMBER(ddenlovr);
14151408}
trunk/src/mame/video/shootout.c
r17967r17968
167167   }
168168}
169169
170SCREEN_UPDATE_IND16( shootout )
170UINT32 shootout_state::screen_update_shootout(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
171171{
172   shootout_state *state = screen.machine().driver_data<shootout_state>();
173172
174173   screen.machine().priority_bitmap.fill(0, cliprect);
175174
176   state->m_background->draw(bitmap, cliprect, 0,0);
177   state->m_foreground->draw(bitmap, cliprect, 0,1);
175   m_background->draw(bitmap, cliprect, 0,0);
176   m_foreground->draw(bitmap, cliprect, 0,1);
178177   draw_sprites(screen.machine(), bitmap,cliprect,3/*bank bits */);
179178   return 0;
180179}
181180
182SCREEN_UPDATE_IND16( shootouj )
181UINT32 shootout_state::screen_update_shootouj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
183182{
184   shootout_state *state = screen.machine().driver_data<shootout_state>();
185183
186184   screen.machine().priority_bitmap.fill(0, cliprect);
187185
188   state->m_background->draw(bitmap, cliprect, 0,0);
189   state->m_foreground->draw(bitmap, cliprect, 0,1);
186   m_background->draw(bitmap, cliprect, 0,0);
187   m_foreground->draw(bitmap, cliprect, 0,1);
190188   draw_sprites(screen.machine(), bitmap,cliprect,2/*bank bits*/);
191189   return 0;
192190}
trunk/src/mame/video/contra.c
r17967r17968
306306   k007121_sprites_draw(k007121, bitmap, cliprect, machine.gfx[bank], machine.colortable, source, base_color, 40, 0, (UINT32)-1);
307307}
308308
309SCREEN_UPDATE_IND16( contra )
309UINT32 contra_state::screen_update_contra(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
310310{
311   contra_state *state = screen.machine().driver_data<contra_state>();
312311   address_space &space = screen.machine().driver_data()->generic_space();
313   UINT8 ctrl_1_0 = k007121_ctrlram_r(state->m_k007121_1, space, 0);
314   UINT8 ctrl_1_2 = k007121_ctrlram_r(state->m_k007121_1, space, 2);
315   UINT8 ctrl_2_0 = k007121_ctrlram_r(state->m_k007121_2, space, 0);
316   UINT8 ctrl_2_2 = k007121_ctrlram_r(state->m_k007121_2, space, 2);
317   rectangle bg_finalclip = state->m_bg_clip;
318   rectangle fg_finalclip = state->m_fg_clip;
319   rectangle tx_finalclip = state->m_tx_clip;
312   UINT8 ctrl_1_0 = k007121_ctrlram_r(m_k007121_1, space, 0);
313   UINT8 ctrl_1_2 = k007121_ctrlram_r(m_k007121_1, space, 2);
314   UINT8 ctrl_2_0 = k007121_ctrlram_r(m_k007121_2, space, 0);
315   UINT8 ctrl_2_2 = k007121_ctrlram_r(m_k007121_2, space, 2);
316   rectangle bg_finalclip = m_bg_clip;
317   rectangle fg_finalclip = m_fg_clip;
318   rectangle tx_finalclip = m_tx_clip;
320319
321320   bg_finalclip &= cliprect;
322321   fg_finalclip &= cliprect;
r17967r17968
324323
325324   set_pens(screen.machine());
326325
327   state->m_fg_tilemap->set_scrollx(0, ctrl_1_0 - 40);
328   state->m_fg_tilemap->set_scrolly(0, ctrl_1_2);
329   state->m_bg_tilemap->set_scrollx(0, ctrl_2_0 - 40);
330   state->m_bg_tilemap->set_scrolly(0, ctrl_2_2);
326   m_fg_tilemap->set_scrollx(0, ctrl_1_0 - 40);
327   m_fg_tilemap->set_scrolly(0, ctrl_1_2);
328   m_bg_tilemap->set_scrollx(0, ctrl_2_0 - 40);
329   m_bg_tilemap->set_scrolly(0, ctrl_2_2);
331330
332   state->m_bg_tilemap->draw(bitmap, bg_finalclip, 0 ,0);
333   state->m_fg_tilemap->draw(bitmap, fg_finalclip, 0 ,0);
331   m_bg_tilemap->draw(bitmap, bg_finalclip, 0 ,0);
332   m_fg_tilemap->draw(bitmap, fg_finalclip, 0 ,0);
334333   draw_sprites(screen.machine(),bitmap,cliprect, 0);
335334   draw_sprites(screen.machine(),bitmap,cliprect, 1);
336   state->m_tx_tilemap->draw(bitmap, tx_finalclip, 0 ,0);
335   m_tx_tilemap->draw(bitmap, tx_finalclip, 0 ,0);
337336   return 0;
338337}
trunk/src/mame/video/volfied.c
r17967r17968
122122   }
123123}
124124
125SCREEN_UPDATE_IND16( volfied )
125UINT32 volfied_state::screen_update_volfied(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
126126{
127   volfied_state *state = screen.machine().driver_data<volfied_state>();
128127
129128   screen.machine().priority_bitmap.fill(0, cliprect);
130129   refresh_pixel_layer(screen.machine(), bitmap);
131   pc090oj_draw_sprites(state->m_pc090oj, bitmap, cliprect, 0);
130   pc090oj_draw_sprites(m_pc090oj, bitmap, cliprect, 0);
132131   return 0;
133132}
trunk/src/mame/video/paradise.c
r17967r17968
230230
231231***************************************************************************/
232232
233SCREEN_UPDATE_IND16( paradise )
233UINT32 paradise_state::screen_update_paradise(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
234234{
235   paradise_state *state = screen.machine().driver_data<paradise_state>();
236235   int layers_ctrl = -1;
237236
238237#ifdef MAME_DEBUG
r17967r17968
250249
251250   bitmap.fill(get_black_pen(screen.machine()), cliprect);
252251
253   if (!(state->m_priority & 4))   /* Screen blanking */
252   if (!(m_priority & 4))   /* Screen blanking */
254253      return 0;
255254
256   if (state->m_priority & 1)
255   if (m_priority & 1)
257256      if (layers_ctrl & 16)
258257         draw_sprites(screen.machine(), bitmap, cliprect);
259258
260   if (layers_ctrl & 1)   state->m_tilemap_0->draw(bitmap, cliprect, 0, 0);
261   if (layers_ctrl & 2)   state->m_tilemap_1->draw(bitmap, cliprect, 0, 0);
262   if (layers_ctrl & 4)   copybitmap_trans(bitmap, state->m_tmpbitmap, state->flip_screen(), state->flip_screen(), 0, 0, cliprect, 0x80f);
259   if (layers_ctrl & 1)   m_tilemap_0->draw(bitmap, cliprect, 0, 0);
260   if (layers_ctrl & 2)   m_tilemap_1->draw(bitmap, cliprect, 0, 0);
261   if (layers_ctrl & 4)   copybitmap_trans(bitmap, m_tmpbitmap, flip_screen(), flip_screen(), 0, 0, cliprect, 0x80f);
263262
264   if (state->m_priority & 2)
263   if (m_priority & 2)
265264   {
266      if (!(state->m_priority & 1))
265      if (!(m_priority & 1))
267266         if (layers_ctrl & 16)
268267            draw_sprites(screen.machine(), bitmap, cliprect);
269268      if (layers_ctrl & 8)
270         state->m_tilemap_2->draw(bitmap, cliprect, 0, 0);
269         m_tilemap_2->draw(bitmap, cliprect, 0, 0);
271270   }
272271   else
273272   {
274273      if (layers_ctrl & 8)
275         state->m_tilemap_2->draw(bitmap, cliprect, 0, 0);
276      if (!(state->m_priority & 1))
274         m_tilemap_2->draw(bitmap, cliprect, 0, 0);
275      if (!(m_priority & 1))
277276         if (layers_ctrl & 16)
278277            draw_sprites(screen.machine(), bitmap, cliprect);
279278   }
r17967r17968
281280}
282281
283282/* no pix layer, no tilemap_0, different priority bits */
284SCREEN_UPDATE_IND16( torus )
283UINT32 paradise_state::screen_update_torus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
285284{
286   paradise_state *state = screen.machine().driver_data<paradise_state>();
287285
288286   bitmap.fill(get_black_pen(screen.machine()), cliprect);
289287
290   if (!(state->m_priority & 2))   /* Screen blanking */
288   if (!(m_priority & 2))   /* Screen blanking */
291289      return 0;
292290
293   if (state->m_priority & 1)
291   if (m_priority & 1)
294292      draw_sprites(screen.machine(), bitmap, cliprect);
295293
296   state->m_tilemap_1->draw(bitmap, cliprect, 0,0);
294   m_tilemap_1->draw(bitmap, cliprect, 0,0);
297295
298   if (state->m_priority & 4)
296   if (m_priority & 4)
299297   {
300      if (!(state->m_priority & 1))
298      if (!(m_priority & 1))
301299         draw_sprites(screen.machine(), bitmap, cliprect);
302300
303      state->m_tilemap_2->draw(bitmap, cliprect, 0, 0);
301      m_tilemap_2->draw(bitmap, cliprect, 0, 0);
304302   }
305303   else
306304   {
307      state->m_tilemap_2->draw(bitmap, cliprect, 0, 0);
305      m_tilemap_2->draw(bitmap, cliprect, 0, 0);
308306
309      if (!(state->m_priority & 1))
307      if (!(m_priority & 1))
310308         draw_sprites(screen.machine(), bitmap,cliprect);
311309   }
312310   return 0;
313311}
314312
315313/* I don't know how the priority bits work on this one */
316SCREEN_UPDATE_IND16( madball )
314UINT32 paradise_state::screen_update_madball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
317315{
318   paradise_state *state = screen.machine().driver_data<paradise_state>();
319316
320317   bitmap.fill(get_black_pen(screen.machine()), cliprect);
321   state->m_tilemap_0->draw(bitmap, cliprect, 0, 0);
322   state->m_tilemap_1->draw(bitmap, cliprect, 0, 0);
323   state->m_tilemap_2->draw(bitmap, cliprect, 0, 0);
318   m_tilemap_0->draw(bitmap, cliprect, 0, 0);
319   m_tilemap_1->draw(bitmap, cliprect, 0, 0);
320   m_tilemap_2->draw(bitmap, cliprect, 0, 0);
324321   draw_sprites(screen.machine(), bitmap, cliprect);
325322   return 0;
326323}
trunk/src/mame/video/dribling.c
r17967r17968
5757 *
5858 *************************************/
5959
60SCREEN_UPDATE_IND16( dribling )
60UINT32 dribling_state::screen_update_dribling(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
6161{
62   dribling_state *state = screen.machine().driver_data<dribling_state>();
6362   UINT8 *prombase = screen.machine().root_device().memregion("proms")->base();
64   UINT8 *gfxbase = state->memregion("gfx1")->base();
63   UINT8 *gfxbase = memregion("gfx1")->base();
6564   int x, y;
6665
6766   /* loop over rows */
r17967r17968
7372      for (x = cliprect.min_x; x <= cliprect.max_x; x++)
7473      {
7574         int b7 = prombase[(x >> 3) | ((y >> 3) << 5)] & 1;
76         int b6 = state->m_abca;
75         int b6 = m_abca;
7776         int b5 = (x >> 3) & 1;
7877         int b4 = (gfxbase[(x >> 3) | (y << 5)] >> (x & 7)) & 1;
79         int b3 = (state->m_videoram[(x >> 3) | (y << 5)] >> (x & 7)) & 1;
80         int b2_0 = state->m_colorram[(x >> 3) | ((y >> 2) << 7)] & 7;
78         int b3 = (m_videoram[(x >> 3) | (y << 5)] >> (x & 7)) & 1;
79         int b2_0 = m_colorram[(x >> 3) | ((y >> 2) << 7)] & 7;
8180
8281         /* assemble the various bits into a palette PROM index */
8382         dst[x] = (b7 << 7) | (b6 << 6) | (b5 << 5) | (b4 << 4) | (b3 << 3) | b2_0;
trunk/src/mame/video/balsente.c
r17967r17968
206206 *
207207 *************************************/
208208
209SCREEN_UPDATE_IND16( balsente )
209UINT32 balsente_state::screen_update_balsente(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
210210{
211   balsente_state *state = screen.machine().driver_data<balsente_state>();
212   const pen_t *pens = &screen.machine().pens[state->m_palettebank_vis * 256];
211   const pen_t *pens = &screen.machine().pens[m_palettebank_vis * 256];
213212   int y, i;
214213
215214   /* draw scanlines from the VRAM directly */
216215   for (y = cliprect.min_y; y <= cliprect.max_y; y++)
217      draw_scanline8(bitmap, 0, y, 256, &state->m_expanded_videoram[(y - BALSENTE_VBEND) * 256], pens);
216      draw_scanline8(bitmap, 0, y, 256, &m_expanded_videoram[(y - BALSENTE_VBEND) * 256], pens);
218217
219218   /* draw the sprite images */
220219   for (i = 0; i < 40; i++)
221      draw_one_sprite(screen.machine(), bitmap, cliprect, &state->m_spriteram[(0xe0 + i * 4) & 0xff]);
220      draw_one_sprite(screen.machine(), bitmap, cliprect, &m_spriteram[(0xe0 + i * 4) & 0xff]);
222221
223222   return 0;
224223}
trunk/src/mame/video/itech32.c
r17967r17968
14091409 *
14101410 *************************************/
14111411
1412SCREEN_UPDATE_IND16( itech32 )
1412UINT32 itech32_state::screen_update_itech32(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
14131413{
1414   itech32_state *state = screen.machine().driver_data<itech32_state>();
14151414   int y;
14161415
14171416   /* loop over height */
14181417   for (y = cliprect.min_y; y <= cliprect.max_y; y++)
14191418   {
1420      UINT16 *src1 = &state->m_videoplane[0][compute_safe_address(state, state->VIDEO_DISPLAY_XORIGIN1, state->VIDEO_DISPLAY_YORIGIN1 + y)];
1419      UINT16 *src1 = &m_videoplane[0][compute_safe_address(this, VIDEO_DISPLAY_XORIGIN1, VIDEO_DISPLAY_YORIGIN1 + y)];
14211420
14221421      /* handle multi-plane case */
1423      if (state->m_planes > 1)
1422      if (m_planes > 1)
14241423      {
1425         UINT16 *src2 = &state->m_videoplane[1][compute_safe_address(state, state->VIDEO_DISPLAY_XORIGIN2 + state->VIDEO_DISPLAY_XSCROLL2, state->VIDEO_DISPLAY_YORIGIN2 + state->VIDEO_DISPLAY_YSCROLL2 + y)];
1424         UINT16 *src2 = &m_videoplane[1][compute_safe_address(this, VIDEO_DISPLAY_XORIGIN2 + VIDEO_DISPLAY_XSCROLL2, VIDEO_DISPLAY_YORIGIN2 + VIDEO_DISPLAY_YSCROLL2 + y)];
14261425         UINT16 scanline[384];
14271426         int x;
14281427
trunk/src/mame/video/mexico86.c
r17967r17968
1515
1616
1717
18SCREEN_UPDATE_IND16( mexico86 )
18UINT32 mexico86_state::screen_update_mexico86(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
1919{
20   mexico86_state *state = screen.machine().driver_data<mexico86_state>();
2120   int offs;
2221   int sx, sy, xc, yc;
2322   int gfx_num, gfx_attr, gfx_offs;
r17967r17968
3130   sx = 0;
3231
3332   /* the score display seems to be outside of the main objectram. */
34   for (offs = 0; offs < state->m_objectram.bytes() + 0x200; offs += 4)
33   for (offs = 0; offs < m_objectram.bytes() + 0x200; offs += 4)
3534   {
3635      int height;
3736
38      if (offs >= state->m_objectram.bytes() && offs < state->m_objectram.bytes() + 0x180)
37      if (offs >= m_objectram.bytes() && offs < m_objectram.bytes() + 0x180)
3938         continue;
4039
41      if (offs >= state->m_objectram.bytes() + 0x1c0)
40      if (offs >= m_objectram.bytes() + 0x1c0)
4241         continue;
4342
4443      /* skip empty sprites */
4544      /* this is dword aligned so the UINT32 * cast shouldn't give problems */
4645      /* on any architecture */
47      if (*(UINT32 *)(&state->m_objectram[offs]) == 0)
46      if (*(UINT32 *)(&m_objectram[offs]) == 0)
4847         continue;
4948
50      gfx_num = state->m_objectram[offs + 1];
51      gfx_attr = state->m_objectram[offs + 3];
49      gfx_num = m_objectram[offs + 1];
50      gfx_attr = m_objectram[offs + 3];
5251
5352      if (!BIT(gfx_num, 7))  /* 16x16 sprites */
5453      {
r17967r17968
6564         sx += 16;
6665      else
6766      {
68         sx = state->m_objectram[offs + 2];
67         sx = m_objectram[offs + 2];
6968         //if (gfx_attr & 0x40) sx -= 256;
7069      }
71      sy = 256 - height * 8 - (state->m_objectram[offs + 0]);
70      sy = 256 - height * 8 - (m_objectram[offs + 0]);
7271
7372      for (xc = 0; xc < 2; xc++)
7473      {
r17967r17968
7776            int goffs, code, color, flipx, flipy, x, y;
7877
7978            goffs = gfx_offs + xc * 0x40 + yc * 0x02;
80            code = state->m_videoram[goffs] + ((state->m_videoram[goffs + 1] & 0x07) << 8)
81                  + ((state->m_videoram[goffs + 1] & 0x80) << 4) + (state->m_charbank << 12);
82            color = ((state->m_videoram[goffs + 1] & 0x38) >> 3) + ((gfx_attr & 0x02) << 2);
83            flipx = state->m_videoram[goffs + 1] & 0x40;
79            code = m_videoram[goffs] + ((m_videoram[goffs + 1] & 0x07) << 8)
80                  + ((m_videoram[goffs + 1] & 0x80) << 4) + (m_charbank << 12);
81            color = ((m_videoram[goffs + 1] & 0x38) >> 3) + ((gfx_attr & 0x02) << 2);
82            flipx = m_videoram[goffs + 1] & 0x40;
8483            flipy = 0;
8584
8685            //x = sx + xc * 8;
r17967r17968
9897   return 0;
9998}
10099
101SCREEN_UPDATE_IND16( kikikai )
100UINT32 mexico86_state::screen_update_kikikai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
102101{
103   mexico86_state *state = screen.machine().driver_data<mexico86_state>();
104102   int offs;
105103   int sx, sy, yc;
106104   int gfx_num, /*gfx_attr,*/ gfx_offs;
r17967r17968
110108
111109   bitmap.fill(get_black_pen(screen.machine()), cliprect);
112110   sx = 0;
113   for (offs = 0; offs < state->m_objectram.bytes(); offs += 4)
111   for (offs = 0; offs < m_objectram.bytes(); offs += 4)
114112   {
115      if (*(UINT32*)(state->m_objectram + offs) == 0)
113      if (*(UINT32*)(m_objectram + offs) == 0)
116114         continue;
117115
118      ty = state->m_objectram[offs];
119      gfx_num = state->m_objectram[offs + 1];
120      tx = state->m_objectram[offs + 2];
121      //gfx_attr = state->m_objectram[offs + 3];
116      ty = m_objectram[offs];
117      gfx_num = m_objectram[offs + 1];
118      tx = m_objectram[offs + 2];
119      //gfx_attr = m_objectram[offs + 3];
122120
123121      if (gfx_num & 0x80)
124122      {
r17967r17968
142140      {
143141         y = (sy + (yc << 2)) & 0xff;
144142         goffs = gfx_offs + yc;
145         code = state->m_videoram[goffs] + ((state->m_videoram[goffs + 1] & 0x1f) << 8);
146         color = (state->m_videoram[goffs + 1] & 0xe0) >> 5;
143         code = m_videoram[goffs] + ((m_videoram[goffs + 1] & 0x1f) << 8);
144         color = (m_videoram[goffs + 1] & 0xe0) >> 5;
147145         goffs += 0x40;
148146
149147         drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[0],
r17967r17968
152150               0,0,
153151               sx&0xff,y,15);
154152
155         code = state->m_videoram[goffs] + ((state->m_videoram[goffs + 1] & 0x1f) << 8);
156         color = (state->m_videoram[goffs + 1] & 0xe0) >> 5;
153         code = m_videoram[goffs] + ((m_videoram[goffs + 1] & 0x1f) << 8);
154         color = (m_videoram[goffs + 1] & 0xe0) >> 5;
157155
158156         drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[0],
159157               code,
trunk/src/mame/video/chaknpop.c
r17967r17968
253253   }
254254}
255255
256SCREEN_UPDATE_IND16( chaknpop )
256UINT32 chaknpop_state::screen_update_chaknpop(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
257257{
258   chaknpop_state *state = screen.machine().driver_data<chaknpop_state>();
259258
260   state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
259   m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
261260   draw_sprites(screen.machine(), bitmap, cliprect);
262261   draw_bitmap(screen.machine(), bitmap, cliprect);
263262   return 0;
trunk/src/mame/video/fitfight.c
r17967r17968
107107   m_fof_txt_tilemap->set_transparent_pen(0);
108108}
109109
110SCREEN_UPDATE_IND16(fitfight)
110UINT32 fitfight_state::screen_update_fitfight(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
111111{
112   fitfight_state *state = screen.machine().driver_data<fitfight_state>();
113112
114113   /* scroll isn't right */
115114
116115   int vblank;
117116   int scrollbak, scrollmid;
118117
119   vblank = (state->m_fof_700000[0] & 0x8000);
118   vblank = (m_fof_700000[0] & 0x8000);
120119
121120   if (vblank > 0)
122121      bitmap.fill(get_black_pen(screen.machine()), cliprect);
123122   else {
124123//      if (screen.machine().input().code_pressed(KEYCODE_Q))
125//          scrollbak = ((state->m_fof_a00000[0] & 0xff00) >> 5) - ((state->m_fof_700000[0] & 0x0038) >> 3);
124//          scrollbak = ((m_fof_a00000[0] & 0xff00) >> 5) - ((m_fof_700000[0] & 0x0038) >> 3);
126125//      else if (screen.machine().input().code_pressed(KEYCODE_W))
127//          scrollbak = ((state->m_fof_a00000[0] & 0xff00) >> 5) + ((state->m_fof_700000[0] & 0x01c0) >> 6);
126//          scrollbak = ((m_fof_a00000[0] & 0xff00) >> 5) + ((m_fof_700000[0] & 0x01c0) >> 6);
128127//      else if (screen.machine().input().code_pressed(KEYCODE_E))
129//          scrollbak = ((state->m_fof_a00000[0] & 0xff00) >> 5) - ((state->m_fof_700000[0] & 0x01c0) >> 6);
128//          scrollbak = ((m_fof_a00000[0] & 0xff00) >> 5) - ((m_fof_700000[0] & 0x01c0) >> 6);
130129//      else if (screen.machine().input().code_pressed(KEYCODE_R))
131//          scrollbak = ((state->m_fof_a00000[0] & 0xff00) >> 5) + ((state->m_fof_700000[0] & 0x0038) >> 3);
130//          scrollbak = ((m_fof_a00000[0] & 0xff00) >> 5) + ((m_fof_700000[0] & 0x0038) >> 3);
132131//      else
133      scrollbak = ((state->m_fof_a00000[0] & 0xffe0) >> 5);
134      state->m_fof_bak_tilemap->set_scrollx(0, scrollbak );
135      state->m_fof_bak_tilemap->set_scrolly(0, state->m_fof_a00000[0] & 0xff);
136      state->m_fof_bak_tilemap->draw(bitmap, cliprect, 0, 0);
132      scrollbak = ((m_fof_a00000[0] & 0xffe0) >> 5);
133      m_fof_bak_tilemap->set_scrollx(0, scrollbak );
134      m_fof_bak_tilemap->set_scrolly(0, m_fof_a00000[0] & 0xff);
135      m_fof_bak_tilemap->draw(bitmap, cliprect, 0, 0);
137136
138137      draw_sprites(screen.machine(), bitmap, cliprect, 0);
139138
140139//      if (screen.machine().input().code_pressed(KEYCODE_A))
141//          scrollmid = ((state->m_fof_900000[0] & 0xff00) >> 5) - ((state->m_fof_700000[0] & 0x01c0) >> 6);
140//          scrollmid = ((m_fof_900000[0] & 0xff00) >> 5) - ((m_fof_700000[0] & 0x01c0) >> 6);
142141//      else if (screen.machine().input().code_pressed(KEYCODE_S))
143//          scrollmid = ((state->m_fof_900000[0] & 0xff00) >> 5) + ((state->m_fof_700000[0] & 0x0038) >> 3);
142//          scrollmid = ((m_fof_900000[0] & 0xff00) >> 5) + ((m_fof_700000[0] & 0x0038) >> 3);
144143//      else if (screen.machine().input().code_pressed(KEYCODE_D))
145//          scrollmid = ((state->m_fof_900000[0] & 0xff00) >> 5) - ((state->m_fof_700000[0] & 0x0038) >> 3);
144//          scrollmid = ((m_fof_900000[0] & 0xff00) >> 5) - ((m_fof_700000[0] & 0x0038) >> 3);
146145//      else if (screen.machine().input().code_pressed(KEYCODE_F))
147//          scrollmid = ((state->m_fof_900000[0] & 0xff00) >> 5) + ((state->m_fof_700000[0] & 0x01c0) >> 6);
146//          scrollmid = ((m_fof_900000[0] & 0xff00) >> 5) + ((m_fof_700000[0] & 0x01c0) >> 6);
148147//      else
149      scrollmid = ((state->m_fof_900000[0] & 0xffe0) >> 5);
150      state->m_fof_mid_tilemap->set_scrollx(0, scrollmid );
151      state->m_fof_mid_tilemap->set_scrolly(0, state->m_fof_900000[0] & 0xff);
148      scrollmid = ((m_fof_900000[0] & 0xffe0) >> 5);
149      m_fof_mid_tilemap->set_scrollx(0, scrollmid );
150      m_fof_mid_tilemap->set_scrolly(0, m_fof_900000[0] & 0xff);
152151//      if (!screen.machine().input().code_pressed(KEYCODE_F))
153      state->m_fof_mid_tilemap->draw(bitmap, cliprect, 0, 0);
152      m_fof_mid_tilemap->draw(bitmap, cliprect, 0, 0);
154153
155154      draw_sprites(screen.machine(), bitmap, cliprect, 1);
156155
157      state->m_fof_txt_tilemap->draw(bitmap, cliprect, 0, 0);
156      m_fof_txt_tilemap->draw(bitmap, cliprect, 0, 0);
158157   }
159158/*  popmessage ("Regs %04x %04x %04x %04x %04x %04x",
160            state->m_fof_100000[0], state->m_fof_600000[0], state->m_fof_700000[0],
161            state->m_fof_800000[0], state->m_fof_900000[0],
162            state->m_fof_a00000[0] );
159            m_fof_100000[0], m_fof_600000[0], m_fof_700000[0],
160            m_fof_800000[0], m_fof_900000[0],
161            m_fof_a00000[0] );
163162*/
164163   return 0;
165164}
trunk/src/mame/video/sspeedr.c
r17967r17968
245245}
246246
247247
248SCREEN_UPDATE_IND16( sspeedr )
248UINT32 sspeedr_state::screen_update_sspeedr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
249249{
250250   draw_track(screen.machine(), bitmap);
251251   draw_drones(screen.machine(), bitmap, cliprect);
r17967r17968
254254}
255255
256256
257SCREEN_VBLANK( sspeedr )
257void sspeedr_state::screen_eof_sspeedr(screen_device &screen, bool state)
258258{
259259   // rising edge
260   if (vblank_on)
260   if (state)
261261   {
262      sspeedr_state *state = screen.machine().driver_data<sspeedr_state>();
263      state->m_toggle ^= 1;
262      m_toggle ^= 1;
264263   }
265264}
trunk/src/mame/video/ashnojoe.c
r17967r17968
207207   m_joetilemap5->set_transparent_pen(15);
208208}
209209
210SCREEN_UPDATE_IND16( ashnojoe )
210UINT32 ashnojoe_state::screen_update_ashnojoe(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
211211{
212   ashnojoe_state *state = screen.machine().driver_data<ashnojoe_state>();
213212
214   //state->m_tilemap_reg[0] & 0x10 // ?? on coin insertion
213   //m_tilemap_reg[0] & 0x10 // ?? on coin insertion
215214
216   state->flip_screen_set(state->m_tilemap_reg[0] & 1);
215   flip_screen_set(m_tilemap_reg[0] & 1);
217216
218   if(state->m_tilemap_reg[0] & 0x02)
219      state->m_joetilemap7->draw(bitmap, cliprect, 0, 0);
217   if(m_tilemap_reg[0] & 0x02)
218      m_joetilemap7->draw(bitmap, cliprect, 0, 0);
220219   else
221      state->m_joetilemap6->draw(bitmap, cliprect, 0, 0);
220      m_joetilemap6->draw(bitmap, cliprect, 0, 0);
222221
223   state->m_joetilemap4->draw(bitmap, cliprect, 0, 0);
224   state->m_joetilemap2->draw(bitmap, cliprect, 0, 0);
225   state->m_joetilemap5->draw(bitmap, cliprect, 0, 0);
226   state->m_joetilemap3->draw(bitmap, cliprect, 0, 0);
227   state->m_joetilemap->draw(bitmap, cliprect, 0, 0);
222   m_joetilemap4->draw(bitmap, cliprect, 0, 0);
223   m_joetilemap2->draw(bitmap, cliprect, 0, 0);
224   m_joetilemap5->draw(bitmap, cliprect, 0, 0);
225   m_joetilemap3->draw(bitmap, cliprect, 0, 0);
226   m_joetilemap->draw(bitmap, cliprect, 0, 0);
228227
229228   return 0;
230229}
trunk/src/mame/video/terracre.c
r17967r17968
194194   state_save_register_global(machine(), m_yscroll);
195195}
196196
197SCREEN_UPDATE_IND16( amazon )
197UINT32 terracre_state::screen_update_amazon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
198198{
199   terracre_state *state = screen.machine().driver_data<terracre_state>();
200   if( state->m_xscroll&0x2000 )
199   if( m_xscroll&0x2000 )
201200      bitmap.fill(get_black_pen(screen.machine()), cliprect );
202201   else
203      state->m_background->draw(bitmap, cliprect, 0, 0 );
202      m_background->draw(bitmap, cliprect, 0, 0 );
204203
205204   draw_sprites(screen.machine(), bitmap,cliprect );
206   state->m_foreground->draw(bitmap, cliprect, 0, 0 );
205   m_foreground->draw(bitmap, cliprect, 0, 0 );
207206   return 0;
208207}
trunk/src/mame/video/ddribble.c
r17967r17968
244244
245245***************************************************************************/
246246
247SCREEN_UPDATE_IND16( ddribble )
247UINT32 ddribble_state::screen_update_ddribble(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
248248{
249   ddribble_state *state = screen.machine().driver_data<ddribble_state>();
250249   set_pens(screen.machine());
251250
252   state->m_fg_tilemap->set_flip((state->m_vregs[0][4] & 0x08) ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
253   state->m_bg_tilemap->set_flip((state->m_vregs[1][4] & 0x08) ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
251   m_fg_tilemap->set_flip((m_vregs[0][4] & 0x08) ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
252   m_bg_tilemap->set_flip((m_vregs[1][4] & 0x08) ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
254253
255254   /* set scroll registers */
256   state->m_fg_tilemap->set_scrollx(0, state->m_vregs[0][1] | ((state->m_vregs[0][2] & 0x01) << 8));
257   state->m_bg_tilemap->set_scrollx(0, state->m_vregs[1][1] | ((state->m_vregs[1][2] & 0x01) << 8));
258   state->m_fg_tilemap->set_scrolly(0, state->m_vregs[0][0]);
259   state->m_bg_tilemap->set_scrolly(0, state->m_vregs[1][0]);
255   m_fg_tilemap->set_scrollx(0, m_vregs[0][1] | ((m_vregs[0][2] & 0x01) << 8));
256   m_bg_tilemap->set_scrollx(0, m_vregs[1][1] | ((m_vregs[1][2] & 0x01) << 8));
257   m_fg_tilemap->set_scrolly(0, m_vregs[0][0]);
258   m_bg_tilemap->set_scrolly(0, m_vregs[1][0]);
260259
261   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
262   draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram_1, 0x07d, 2, state->m_vregs[0][4] & 0x08);
263   draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram_2, 0x140, 3, state->m_vregs[1][4] & 0x08);
264   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
260   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
261   draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram_1, 0x07d, 2, m_vregs[0][4] & 0x08);
262   draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram_2, 0x140, 3, m_vregs[1][4] & 0x08);
263   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
265264   return 0;
266265}
trunk/src/mame/video/mouser.c
r17967r17968
5555   flip_screen_y_set(~data & 1);
5656}
5757
58SCREEN_UPDATE_IND16( mouser )
58UINT32 mouser_state::screen_update_mouser(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
5959{
60   mouser_state *state = screen.machine().driver_data<mouser_state>();
61   UINT8 *spriteram = state->m_spriteram;
60   UINT8 *spriteram = m_spriteram;
6261   int offs;
6362   int sx, sy;
6463   int flipx, flipy;
r17967r17968
7271      sx = offs % 32;
7372      sy = offs / 32;
7473
75      if (state->flip_screen_x())
74      if (flip_screen_x())
7675      {
7776         sx = 31 - sx;
7877      }
7978
80      if (state->flip_screen_y())
79      if (flip_screen_y())
8180      {
8281         sy = 31 - sy;
8382      }
r17967r17968
9291      color_offs = offs % 32 + ((256 + 8 * (offs / 32) - spriteram[offs % 32] )% 256) / 8 * 32;
9392
9493      drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0],
95            state->m_videoram[offs] | (state->m_colorram[color_offs] >> 5) * 256 | ((state->m_colorram[color_offs] >> 4) & 1) * 512,
96            state->m_colorram[color_offs]%16,
97            state->flip_screen_x(),state->flip_screen_y(),
94            m_videoram[offs] | (m_colorram[color_offs] >> 5) * 256 | ((m_colorram[color_offs] >> 4) & 1) * 512,
95            m_colorram[color_offs]%16,
96            flip_screen_x(),flip_screen_y(),
9897            8*sx,scrolled_y_position);
9998   }
10099
r17967r17968
109108      flipx = BIT(spriteram[offs], 6);
110109      flipy = BIT(spriteram[offs], 7);
111110
112      if (state->flip_screen_x())
111      if (flip_screen_x())
113112      {
114113         flipx = !flipx;
115114         sx = 240 - sx;
116115      }
117116
118      if (state->flip_screen_y())
117      if (flip_screen_y())
119118      {
120119         flipy = !flipy;
121120         sy = 238 - sy;
r17967r17968
138137      flipx = BIT(spriteram[offs], 6);
139138      flipy = BIT(spriteram[offs], 7);
140139
141      if (state->flip_screen_x())
140      if (flip_screen_x())
142141      {
143142         flipx = !flipx;
144143         sx = 240 - sx;
145144      }
146145
147      if (state->flip_screen_y())
146      if (flip_screen_y())
148147      {
149148         flipy = !flipy;
150149         sy = 238 - sy;
trunk/src/mame/video/amiga.c
r17967r17968
999999 *************************************/
10001000
10011001/* TODO: alg.c requires that this uses RGB32 */
1002SCREEN_UPDATE_IND16( amiga )
1002UINT32 amiga_state::screen_update_amiga(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
10031003{
10041004   int y;
10051005
trunk/src/mame/video/undrfire.c
r17967r17968
346346                SCREEN REFRESH
347347**************************************************************/
348348
349SCREEN_UPDATE_IND16( undrfire )
349UINT32 undrfire_state::screen_update_undrfire(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
350350{
351351   device_t *tc0100scn = screen.machine().device("tc0100scn");
352352   device_t *tc0480scp = screen.machine().device("tc0480scp");
r17967r17968
356356   UINT16 priority;
357357
358358#ifdef MAME_DEBUG
359   undrfire_state *state = screen.machine().driver_data<undrfire_state>();
360359   if (screen.machine().input().code_pressed_once (KEYCODE_X))
361360   {
362      state->m_dislayer[5] ^= 1;
363      popmessage("piv text: %01x",state->m_dislayer[5]);
361      m_dislayer[5] ^= 1;
362      popmessage("piv text: %01x",m_dislayer[5]);
364363   }
365364   if (screen.machine().input().code_pressed_once (KEYCODE_C))
366365   {
367      state->m_dislayer[0] ^= 1;
368      popmessage("bg0: %01x",state->m_dislayer[0]);
366      m_dislayer[0] ^= 1;
367      popmessage("bg0: %01x",m_dislayer[0]);
369368   }
370369
371370   if (screen.machine().input().code_pressed_once (KEYCODE_V))
372371   {
373      state->m_dislayer[1] ^= 1;
374      popmessage("bg1: %01x",state->m_dislayer[1]);
372      m_dislayer[1] ^= 1;
373      popmessage("bg1: %01x",m_dislayer[1]);
375374   }
376375
377376   if (screen.machine().input().code_pressed_once (KEYCODE_B))
378377   {
379      state->m_dislayer[2] ^= 1;
380      popmessage("bg2: %01x",state->m_dislayer[2]);
378      m_dislayer[2] ^= 1;
379      popmessage("bg2: %01x",m_dislayer[2]);
381380   }
382381
383382   if (screen.machine().input().code_pressed_once (KEYCODE_N))
384383   {
385      state->m_dislayer[3] ^= 1;
386      popmessage("bg3: %01x",state->m_dislayer[3]);
384      m_dislayer[3] ^= 1;
385      popmessage("bg3: %01x",m_dislayer[3]);
387386   }
388387
389388   if (screen.machine().input().code_pressed_once (KEYCODE_M))
390389   {
391      state->m_dislayer[4] ^= 1;
392      popmessage("sprites: %01x",state->m_dislayer[4]);
390      m_dislayer[4] ^= 1;
391      popmessage("sprites: %01x",m_dislayer[4]);
393392   }
394393#endif
395394
r17967r17968
422421   tc0100scn_tilemap_draw(tc0100scn, bitmap, cliprect, pivlayer[1], 0, 0);
423422
424423#ifdef MAME_DEBUG
425   if (state->m_dislayer[layer[0]]==0)
424   if (m_dislayer[layer[0]]==0)
426425#endif
427426   tc0480scp_tilemap_draw(tc0480scp, bitmap, cliprect, layer[0], 0, 1);
428427
429428#ifdef MAME_DEBUG
430   if (state->m_dislayer[layer[1]]==0)
429   if (m_dislayer[layer[1]]==0)
431430#endif
432431   tc0480scp_tilemap_draw(tc0480scp, bitmap, cliprect, layer[1], 0, 2);
433432
434433#ifdef MAME_DEBUG
435   if (state->m_dislayer[layer[2]]==0)
434   if (m_dislayer[layer[2]]==0)
436435#endif
437436   tc0480scp_tilemap_draw(tc0480scp, bitmap, cliprect, layer[2], 0, 4);
438437
439438#ifdef MAME_DEBUG
440   if (state->m_dislayer[layer[3]]==0)
439   if (m_dislayer[layer[3]]==0)
441440#endif
442441   tc0480scp_tilemap_draw(tc0480scp, bitmap, cliprect, layer[3], 0, 8);
443442
444443#ifdef MAME_DEBUG
445   if (state->m_dislayer[4]==0)
444   if (m_dislayer[4]==0)
446445#endif
447446   /* Sprites have variable priority (we kludge this on road levels) */
448447   {
r17967r17968
459458   }
460459
461460#ifdef MAME_DEBUG
462   if (state->m_dislayer[5]==0)
461   if (m_dislayer[5]==0)
463462#endif
464463   tc0100scn_tilemap_draw(tc0100scn, bitmap, cliprect, pivlayer[2], 0, 0);   /* piv text layer */
465464
r17967r17968
481480
482481      for (i = 0; i < 8; i += 1)
483482      {
484         sprintf (buf, "%02x: %04x", i, state->m_rotate_ctrl[i]);
483         sprintf (buf, "%02x: %04x", i, m_rotate_ctrl[i]);
485484         ui_draw_text (buf, 0, i*8);
486485      }
487486   }
r17967r17968
490489}
491490
492491
493SCREEN_UPDATE_IND16( cbombers )
492UINT32 undrfire_state::screen_update_cbombers(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
494493{
495494   device_t *tc0100scn = screen.machine().device("tc0100scn");
496495   device_t *tc0480scp = screen.machine().device("tc0480scp");
r17967r17968
500499   UINT16 priority;
501500
502501#ifdef MAME_DEBUG
503   undrfire_state *state = screen.machine().driver_data<undrfire_state>();
504502   if (screen.machine().input().code_pressed_once (KEYCODE_X))
505503   {
506      state->m_dislayer[5] ^= 1;
507      popmessage("piv text: %01x",state->m_dislayer[5]);
504      m_dislayer[5] ^= 1;
505      popmessage("piv text: %01x",m_dislayer[5]);
508506   }
509507   if (screen.machine().input().code_pressed_once (KEYCODE_C))
510508   {
511      state->m_dislayer[0] ^= 1;
512      popmessage("bg0: %01x",state->m_dislayer[0]);
509      m_dislayer[0] ^= 1;
510      popmessage("bg0: %01x",m_dislayer[0]);
513511   }
514512
515513   if (screen.machine().input().code_pressed_once (KEYCODE_V))
516514   {
517      state->m_dislayer[1] ^= 1;
518      popmessage("bg1: %01x",state->m_dislayer[1]);
515      m_dislayer[1] ^= 1;
516      popmessage("bg1: %01x",m_dislayer[1]);
519517   }
520518
521519   if (screen.machine().input().code_pressed_once (KEYCODE_B))
522520   {
523      state->m_dislayer[2] ^= 1;
524      popmessage("bg2: %01x",state->m_dislayer[2]);
521      m_dislayer[2] ^= 1;
522      popmessage("bg2: %01x",m_dislayer[2]);
525523   }
526524
527525   if (screen.machine().input().code_pressed_once (KEYCODE_N))
528526   {
529      state->m_dislayer[3] ^= 1;
530      popmessage("bg3: %01x",state->m_dislayer[3]);
527      m_dislayer[3] ^= 1;
528      popmessage("bg3: %01x",m_dislayer[3]);
531529   }
532530
533531   if (screen.machine().input().code_pressed_once (KEYCODE_M))
534532   {
535      state->m_dislayer[4] ^= 1;
536      popmessage("sprites: %01x",state->m_dislayer[4]);
533      m_dislayer[4] ^= 1;
534      popmessage("sprites: %01x",m_dislayer[4]);
537535   }
538536#endif
539537
r17967r17968
566564   tc0100scn_tilemap_draw(tc0100scn, bitmap, cliprect, pivlayer[1], 0, 0);
567565
568566#ifdef MAME_DEBUG
569   if (state->m_dislayer[layer[0]]==0)
567   if (m_dislayer[layer[0]]==0)
570568#endif
571569   tc0480scp_tilemap_draw(tc0480scp, bitmap, cliprect, layer[0], 0, 1);
572570
573571#ifdef MAME_DEBUG
574   if (state->m_dislayer[layer[1]]==0)
572   if (m_dislayer[layer[1]]==0)
575573#endif
576574   tc0480scp_tilemap_draw(tc0480scp, bitmap, cliprect, layer[1], 0, 2);
577575
578576#ifdef MAME_DEBUG
579   if (state->m_dislayer[layer[2]]==0)
577   if (m_dislayer[layer[2]]==0)
580578#endif
581579   tc0480scp_tilemap_draw(tc0480scp, bitmap, cliprect, layer[2], 0, 4);
582580
583581#ifdef MAME_DEBUG
584   if (state->m_dislayer[layer[3]]==0)
582   if (m_dislayer[layer[3]]==0)
585583#endif
586584   tc0480scp_tilemap_draw(tc0480scp, bitmap, cliprect, layer[3], 0, 8);
587585
588586#ifdef MAME_DEBUG
589   if (state->m_dislayer[4]==0)
587   if (m_dislayer[4]==0)
590588#endif
591589   /* Sprites have variable priority (we kludge this on road levels) */
592590   {
r17967r17968
603601   }
604602
605603#ifdef MAME_DEBUG
606   if (state->m_dislayer[5]==0)
604   if (m_dislayer[5]==0)
607605#endif
608606   tc0100scn_tilemap_draw(tc0100scn, bitmap, cliprect, pivlayer[2], 0, 0);   /* piv text layer */
609607
r17967r17968
617615
618616      for (i = 0; i < 8; i += 1)
619617      {
620         sprintf (buf, "%02x: %04x", i, state->m_rotate_ctrl[i]);
618         sprintf (buf, "%02x: %04x", i, m_rotate_ctrl[i]);
621619         ui_draw_text (buf, 0, i*8);
622620      }
623621   }
trunk/src/mame/video/malzak.c
r17967r17968
1717#include "video/saa5050.h"
1818#include "includes/malzak.h"
1919
20SCREEN_UPDATE_RGB32( malzak )
20UINT32 malzak_state::screen_update_malzak(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
2121{
2222   const rgb_t *palette = palette_entry_list_raw(bitmap.palette());
23   malzak_state *state = screen.machine().driver_data<malzak_state>();
2423   int sx, sy;
2524   int x,y;
2625
2726   bitmap.fill(RGB_BLACK);
2827
29   state->m_trom->screen_update(screen, bitmap, cliprect);
28   m_trom->screen_update(screen, bitmap, cliprect);
3029
3130   // playfield - not sure exactly how this works...
3231   for (x = 0; x < 16; x++)
3332      for (y = 0; y < 16; y++)
3433      {
35         sx = ((x * 16 - 48) - state->m_malzak_x) * 2;
36         sy = ((y * 16) - state->m_malzak_y) * 2;
34         sx = ((x * 16 - 48) - m_malzak_x) * 2;
35         sy = ((y * 16) - m_malzak_y) * 2;
3736
3837         if (sx < -271*2)
3938            sx += 512*2;
4039         if (sx < -15*2)
4140            sx += 256*2;
4241
43         drawgfxzoom_transpen(bitmap,cliprect, screen.machine().gfx[0], state->m_playfield_code[x * 16 + y], 2, 0, 0, sx, sy, 0x20000, 0x20000, 0);
42         drawgfxzoom_transpen(bitmap,cliprect, screen.machine().gfx[0], m_playfield_code[x * 16 + y], 2, 0, 0, sx, sy, 0x20000, 0x20000, 0);
4443      }
4544
4645   /* update the S2636 chips */
47   bitmap_ind16 &s2636_0_bitmap = s2636_update(state->m_s2636_0, cliprect);
48   bitmap_ind16 &s2636_1_bitmap = s2636_update(state->m_s2636_1, cliprect);
46   bitmap_ind16 &s2636_0_bitmap = s2636_update(m_s2636_0, cliprect);
47   bitmap_ind16 &s2636_1_bitmap = s2636_update(m_s2636_1, cliprect);
4948
5049   /* copy the S2636 images into the main bitmap */
5150   {
trunk/src/mame/video/deco32.c
r17967r17968
558558
559559/******************************************************************************/
560560
561SCREEN_VBLANK( captaven )
561void deco32_state::screen_eof_captaven(screen_device &screen, bool state)
562562{
563563
564564}
565565
566SCREEN_VBLANK( dragngun )
566void dragngun_state::screen_eof_dragngun(screen_device &screen, bool state)
567567{
568568
569569}
r17967r17968
571571
572572/******************************************************************************/
573573
574SCREEN_UPDATE_IND16( captaven )
574UINT32 deco32_state::screen_update_captaven(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
575575{
576   deco32_state *state = screen.machine().driver_data<deco32_state>();
577   state->m_deco_tilegen1 = screen.machine().device("tilegen1");
578   state->m_deco_tilegen2 = screen.machine().device("tilegen2");
576   m_deco_tilegen1 = screen.machine().device("tilegen1");
577   m_deco_tilegen2 = screen.machine().device("tilegen2");
579578
580   screen.machine().tilemap().set_flip_all(state->flip_screen() ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
579   screen.machine().tilemap().set_flip_all(flip_screen() ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
581580
582581   screen.machine().priority_bitmap.fill(0, cliprect);
583582   bitmap.fill(screen.machine().pens[0x000], cliprect); // Palette index not confirmed
584583
585   deco16ic_set_pf1_8bpp_mode(state->m_deco_tilegen2, 1);
584   deco16ic_set_pf1_8bpp_mode(m_deco_tilegen2, 1);
586585
587   deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
588   deco16ic_pf_update(state->m_deco_tilegen2, state->m_pf3_rowscroll, state->m_pf4_rowscroll);
586   deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
587   deco16ic_pf_update(m_deco_tilegen2, m_pf3_rowscroll, m_pf4_rowscroll);
589588
590589   // pf4 not used (because pf3 is in 8bpp mode)
591590
592   if ((state->m_pri&1)==0)
591   if ((m_pri&1)==0)
593592   {
594      deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 1);
595      deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 2);
593      deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 1);
594      deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 2);
596595   }
597596   else
598597   {
599      deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 1);
600      deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 2);
598      deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 1);
599      deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 2);
601600   }
602601
603   deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 4);
602   deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 4);
604603
605604   screen.machine().device<decospr_device>("spritegen")->set_alt_format(true);
606   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram16_buffered, 0x400);
605   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram16_buffered, 0x400);
607606
608607   return 0;
609608}
610609
611SCREEN_UPDATE_RGB32( dragngun )
610UINT32 dragngun_state::screen_update_dragngun(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
612611{
613   deco32_state *state = screen.machine().driver_data<deco32_state>();
614   state->m_deco_tilegen1 = screen.machine().device("tilegen1");
615   state->m_deco_tilegen2 = screen.machine().device("tilegen2");
612   m_deco_tilegen1 = screen.machine().device("tilegen1");
613   m_deco_tilegen2 = screen.machine().device("tilegen2");
616614
617615   bitmap.fill(get_black_pen(screen.machine()), cliprect);
618616
619   deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
620   deco16ic_pf_update(state->m_deco_tilegen2, state->m_pf3_rowscroll, state->m_pf4_rowscroll);
617   deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
618   deco16ic_pf_update(m_deco_tilegen2, m_pf3_rowscroll, m_pf4_rowscroll);
621619
622   //deco16ic_set_pf3_8bpp_mode(state->m_deco_tilegen1, 1); // despite being 8bpp this doesn't require the same shifting as captaven, why not?
620   //deco16ic_set_pf3_8bpp_mode(m_deco_tilegen1, 1); // despite being 8bpp this doesn't require the same shifting as captaven, why not?
623621
624   deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 0); // it uses pf3 in 8bpp mode instead, like captaven
625   deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 0);
626   deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
622   deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, 0, 0); // it uses pf3 in 8bpp mode instead, like captaven
623   deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 0);
624   deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
627625
628626   // zooming sprite draw is very slow, and sprites are buffered.. however, one of the levels attempts to use
629627   // partial updates for every line, which causes things to be very slow... the sprites appear to support
r17967r17968
639637   {
640638      rectangle clip(cliprect.min_x, cliprect.max_x, 8, 247);
641639
642      dragngun_draw_sprites(screen.machine(),bitmap,clip,state->m_spriteram->buffer());
643      deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, clip, 0, 0);
640      dragngun_draw_sprites(screen.machine(),bitmap,clip,m_spriteram->buffer());
641      deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, clip, 0, 0);
644642
645643   }
646644
r17967r17968
648646}
649647
650648
651SCREEN_UPDATE_RGB32( fghthist )
649UINT32 deco32_state::screen_update_fghthist(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
652650{
653   deco32_state *state = screen.machine().driver_data<deco32_state>();
654   state->m_deco_tilegen1 = screen.machine().device("tilegen1");
655   state->m_deco_tilegen2 = screen.machine().device("tilegen2");
651   m_deco_tilegen1 = screen.machine().device("tilegen1");
652   m_deco_tilegen2 = screen.machine().device("tilegen2");
656653
657654   screen.machine().priority_bitmap.fill(0, cliprect);
658655   bitmap.fill(screen.machine().pens[0x000], cliprect); // Palette index not confirmed
659656
660   deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
661   deco16ic_pf_update(state->m_deco_tilegen2, state->m_pf3_rowscroll, state->m_pf4_rowscroll);
657   deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
658   deco16ic_pf_update(m_deco_tilegen2, m_pf3_rowscroll, m_pf4_rowscroll);
662659
663   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram16_buffered, 0x800, true);
660   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram16_buffered, 0x800, true);
664661
665662   /* Draw screen */
666   deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 1);
663   deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, 0, 1);
667664
668   if(state->m_pri&1)
665   if(m_pri&1)
669666   {
670      deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 2);
667      deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 2);
671668      screen.machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0800, 0x0800, 1024, 0x1ff);
672      deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 4);
669      deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 4);
673670   }
674671   else
675672   {
676      deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 2);
673      deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 2);
677674      screen.machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0800, 0x0800, 1024, 0x1ff);
678      deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 4);
675      deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 4);
679676   }
680677
681678   screen.machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0800, 1024, 0x1ff);
682679
683   deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
680   deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
684681   return 0;
685682}
686683
r17967r17968
825822   }
826823}
827824
828SCREEN_UPDATE_RGB32( nslasher )
825UINT32 deco32_state::screen_update_nslasher(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
829826{
830   deco32_state *state = screen.machine().driver_data<deco32_state>();
831827   int alphaTilemap=0;
832   state->m_deco_tilegen1 = screen.machine().device("tilegen1");
833   state->m_deco_tilegen2 = screen.machine().device("tilegen2");
828   m_deco_tilegen1 = screen.machine().device("tilegen1");
829   m_deco_tilegen2 = screen.machine().device("tilegen2");
834830
835   deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
836   deco16ic_pf_update(state->m_deco_tilegen2, state->m_pf3_rowscroll, state->m_pf4_rowscroll);
831   deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
832   deco16ic_pf_update(m_deco_tilegen2, m_pf3_rowscroll, m_pf4_rowscroll);
837833
838834   /* This is not a conclusive test for deciding if tilemap needs alpha blending */
839   if (state->m_ace_ram[0x17]!=0x0 && state->m_pri)
835   if (m_ace_ram[0x17]!=0x0 && m_pri)
840836      alphaTilemap=1;
841837
842   if (state->m_ace_ram_dirty)
838   if (m_ace_ram_dirty)
843839      updateAceRam(screen.machine());
844840
845841   screen.machine().priority_bitmap.fill(0, cliprect);
r17967r17968
850846   screen.machine().device<decospr_device>("spritegen1")->set_pix_raw_shift(8);
851847   screen.machine().device<decospr_device>("spritegen2")->set_pix_raw_shift(8);
852848
853   screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, state->m_spriteram16_buffered, 0x800, true);
854   screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, state->m_spriteram16_2_buffered, 0x800, true);
849   screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, m_spriteram16_buffered, 0x800, true);
850   screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, m_spriteram16_2_buffered, 0x800, true);
855851
856852
857853   /* Render alpha-blended tilemap to separate buffer for proper mixing */
858   state->m_tilemap_alpha_bitmap->fill(0, cliprect);
854   m_tilemap_alpha_bitmap->fill(0, cliprect);
859855
860856   /* Draw playfields & sprites */
861   if (state->m_pri&2)
857   if (m_pri&2)
862858   {
863      deco16ic_tilemap_12_combine_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 1, 1);
864      deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 4);
859      deco16ic_tilemap_12_combine_draw(m_deco_tilegen2, bitmap, cliprect, 0, 1, 1);
860      deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 4);
865861   }
866862   else
867863   {
868      deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 1);
869      if (state->m_pri&1)
864      deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, 0, 1);
865      if (m_pri&1)
870866      {
871         deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 2);
867         deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 2);
872868         if (alphaTilemap)
873            deco16ic_tilemap_1_draw(state->m_deco_tilegen2, *state->m_tilemap_alpha_bitmap, cliprect, 0, 4);
869            deco16ic_tilemap_1_draw(m_deco_tilegen2, *m_tilemap_alpha_bitmap, cliprect, 0, 4);
874870         else
875            deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 4);
871            deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 4);
876872      }
877873      else
878874      {
879         deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 2);
875         deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 2);
880876         if (alphaTilemap)
881            deco16ic_tilemap_2_draw(state->m_deco_tilegen1, *state->m_tilemap_alpha_bitmap, cliprect, 0, 4);
877            deco16ic_tilemap_2_draw(m_deco_tilegen1, *m_tilemap_alpha_bitmap, cliprect, 0, 4);
882878         else
883            deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 4);
879            deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 4);
884880      }
885881   }
886882
887883   mixDualAlphaSprites(bitmap, cliprect, screen.machine().gfx[3], screen.machine().gfx[4], alphaTilemap);
888884
889   deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
885   deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
890886   return 0;
891887}
trunk/src/mame/video/midzeus.c
r17967r17968
329329 *
330330 *************************************/
331331
332SCREEN_UPDATE_IND16( midzeus )
332UINT32 midzeus_state::screen_update_midzeus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
333333{
334334   int x, y;
335335
r17967r17968
338338   /* normal update case */
339339   if (!screen.machine().input().code_pressed(KEYCODE_W))
340340   {
341      midzeus_state *state = screen.machine().driver_data<midzeus_state>();
342      const void *base = waveram1_ptr_from_expanded_addr(state->m_zeusbase[0xcc]);
341      const void *base = waveram1_ptr_from_expanded_addr(m_zeusbase[0xcc]);
343342      int xoffs = screen.visible_area().min_x;
344343      for (y = cliprect.min_y; y <= cliprect.max_y; y++)
345344      {
trunk/src/mame/video/argus.c
r17967r17968
11541154#endif
11551155}
11561156
1157SCREEN_UPDATE_RGB32( argus )
1157UINT32 argus_state::screen_update_argus(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
11581158{
1159   argus_state *state = screen.machine().driver_data<argus_state>();
11601159   bg_setting(screen.machine());
11611160
11621161   /* scroll BG0 and render tile at proper position */
11631162   argus_bg0_scroll_handle(screen.machine());
11641163
1165   state->m_bg0_tilemap->draw(bitmap, cliprect, 0, 0);
1164   m_bg0_tilemap->draw(bitmap, cliprect, 0, 0);
11661165   argus_draw_sprites(screen.machine(), bitmap, cliprect, 0);
1167   if (state->m_bg_status & 1)   /* Backgound enable */
1168      state->m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
1166   if (m_bg_status & 1)   /* Backgound enable */
1167      m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
11691168   argus_draw_sprites(screen.machine(), bitmap, cliprect, 1);
1170   state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
1169   m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
11711170   return 0;
11721171}
11731172
1174SCREEN_UPDATE_RGB32( valtric )
1173UINT32 argus_state::screen_update_valtric(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
11751174{
1176   argus_state *state = screen.machine().driver_data<argus_state>();
11771175   bg_setting(screen.machine());
11781176
1179   if (state->m_bg_status & 1)   /* Backgound enable */
1177   if (m_bg_status & 1)   /* Backgound enable */
11801178      valtric_draw_mosaic(screen, bitmap, cliprect);
11811179   else
11821180      bitmap.fill(get_black_pen(screen.machine()), cliprect);
11831181   valtric_draw_sprites(screen.machine(), bitmap, cliprect);
1184   state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
1182   m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
11851183   return 0;
11861184}
11871185
1188SCREEN_UPDATE_RGB32( butasan )
1186UINT32 argus_state::screen_update_butasan(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
11891187{
1190   argus_state *state = screen.machine().driver_data<argus_state>();
11911188   bg_setting(screen.machine());
11921189
1193   if (state->m_bg_status & 1)   /* Backgound enable */
1194      state->m_bg0_tilemap->draw(bitmap, cliprect, 0, 0);
1190   if (m_bg_status & 1)   /* Backgound enable */
1191      m_bg0_tilemap->draw(bitmap, cliprect, 0, 0);
11951192   else
11961193      bitmap.fill(get_black_pen(screen.machine()), cliprect);
1197   if (state->m_butasan_bg1_status & 1) state->m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
1194   if (m_butasan_bg1_status & 1) m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
11981195   butasan_draw_sprites(screen.machine(), bitmap, cliprect);
1199   state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
1196   m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
12001197
12011198   butasan_log_vram(screen.machine());
12021199   return 0;
trunk/src/mame/video/grchamp.c
r17967r17968
343343}
344344
345345
346SCREEN_UPDATE_RGB32( grchamp )
346UINT32 grchamp_state::screen_update_grchamp(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
347347{
348348   static const rgb_t objpix_lookup[8] =
349349   {
r17967r17968
357357      MAKE_RGB(RGB_MAX,RGB_MAX,RGB_MAX)
358358   };
359359
360   grchamp_state *state = screen.machine().driver_data<grchamp_state>();
361360   const UINT8 *amedata = screen.machine().root_device().memregion("gfx5")->base();
362361   const UINT8 *headdata = screen.machine().root_device().memregion("gfx6")->base();
363   const UINT8 *pldata = state->memregion("gfx7")->base();
364   bitmap_ind16 &lpixmap = state->m_left_tilemap->pixmap();
365   bitmap_ind16 &rpixmap = state->m_right_tilemap->pixmap();
366   bitmap_ind16 &cpixmap = state->m_center_tilemap->pixmap();
362   const UINT8 *pldata = memregion("gfx7")->base();
363   bitmap_ind16 &lpixmap = m_left_tilemap->pixmap();
364   bitmap_ind16 &rpixmap = m_right_tilemap->pixmap();
365   bitmap_ind16 &cpixmap = m_center_tilemap->pixmap();
367366   int lrxscroll, cxscroll, lyscroll, ryscroll, cyscroll;
368   int bgcolor = state->m_cpu1_out[3] & 0x10;
369   int amebase = state->m_cpu0_out[4] >> 4;
370   int plbase = state->m_cpu0_out[4] & 0x0f;
367   int bgcolor = m_cpu1_out[3] & 0x10;
368   int amebase = m_cpu0_out[4] >> 4;
369   int plbase = m_cpu0_out[4] & 0x0f;
371370   int cxmask;
372371   int x, y;
373372
r17967r17968
376375   assert(lpixmap.height() == rpixmap.height() && lpixmap.height() == cpixmap.height());
377376
378377   /* extract background scroll values; left and right share the same X scroll */
379   lrxscroll = state->m_cpu1_out[0] + (state->m_cpu1_out[1] & 1) * 256;
380   lyscroll = state->m_cpu1_out[2];
381   ryscroll = state->m_cpu1_out[7];
382   cxscroll = state->m_cpu1_out[9] + (state->m_cpu1_out[10] & 1) * 256;
383   cyscroll = state->m_cpu1_out[11];
378   lrxscroll = m_cpu1_out[0] + (m_cpu1_out[1] & 1) * 256;
379   lyscroll = m_cpu1_out[2];
380   ryscroll = m_cpu1_out[7];
381   cxscroll = m_cpu1_out[9] + (m_cpu1_out[10] & 1) * 256;
382   cyscroll = m_cpu1_out[11];
384383
385384   /* determine the center background mask, controlled by attribute bit 0x20 */
386   cxmask = (state->m_cpu1_out[3] & 0x20) ? 0xff : 0x1ff;
385   cxmask = (m_cpu1_out[3] & 0x20) ? 0xff : 0x1ff;
387386
388387   /* iterate over scanlines */
389388   for (y = cliprect.min_y; y <= cliprect.max_y; y++)
r17967r17968
400399      UINT8 objdata[256];
401400
402401      /* draw the objects for this scanline */
403      draw_objects(screen.machine(), state, y, objdata);
402      draw_objects(screen.machine(), this, y, objdata);
404403
405404      /* iterate over columns */
406405      for (x = cliprect.min_x; x <= cliprect.max_x; x++)
r17967r17968
423422         objpix = objdata[x];
424423
425424         /* if the headlamp is visible, determine that now */
426         mydh = (state->m_cpu0_out[2] - x) & 0xff;
427         mydv = (state->m_cpu0_out[3] - (y - 16)) & 0xff;
428         if ((state->m_cpu0_out[0] & 0x10) && (mydh & 0xc0) == 0xc0 && ((mydv ^ (mydv >> 1)) & 0x40) == 0)
425         mydh = (m_cpu0_out[2] - x) & 0xff;
426         mydv = (m_cpu0_out[3] - (y - 16)) & 0xff;
427         if ((m_cpu0_out[0] & 0x10) && (mydh & 0xc0) == 0xc0 && ((mydv ^ (mydv >> 1)) & 0x40) == 0)
429428         {
430429            int bits = headdata[((mydh & 0x38) >> 3) |
431430                           ((mydv & 0x3f) << 3) |
432431                           ((~mydv & 0x40) << 3) |
433                           ((state->m_cpu0_out[0] & 0x10) << 6)];
432                           ((m_cpu0_out[0] & 0x10) << 6)];
434433            headbit = (bits >> (~mydh & 0x07)) & 0x01;
435434         }
436435
437436         /* if the headlamp is on and we're not in the headlamp area, */
438437         /* and this isn't a character pixel, the /KILL switch is set */
439         if ((state->m_cpu0_out[0] & 0x10) && !headbit && !(objpix & 0x10))
438         if ((m_cpu0_out[0] & 0x10) && !headbit && !(objpix & 0x10))
440439         {
441440            kill = 1;
442441            objpix &= ~7;
r17967r17968
454453               /* handle collision detection between MYCARRED and MVID/OBJECT */
455454
456455               /* skip if the state is being held clear, or if we already have a collision */
457               if ((state->m_cpu0_out[0] & 0x02) && !(state->m_collide & 0x1000))
456               if ((m_cpu0_out[0] & 0x02) && !(m_collide & 0x1000))
458457               {
459458                  if (objpix & 0x08)
460459                  {
461460                     mame_printf_debug("Collide car/object @ (%d,%d)\n", x, y);
462                     state->m_collide = 0x1000 | 0x2000/* guess */ | ((~y & 0x80) << 3) | ((~y & 0xf8) << 2) | ((~x & 0xf8) >> 3);
461                     m_collide = 0x1000 | 0x2000/* guess */ | ((~y & 0x80) << 3) | ((~y & 0xf8) << 2) | ((~x & 0xf8) >> 3);
463462                  }
464463                  else if ((mvid & 0x0f) != 0)
465464                  {
466465                     mame_printf_debug("Collide car/bg @ (%d,%d)\n", x, y);
467                     state->m_collide = 0x1000 | 0x4000/* guess */ | ((~y & 0x80) << 3) | ((~y & 0xf8) << 2) | ((~x & 0xf8) >> 3);
466                     m_collide = 0x1000 | 0x4000/* guess */ | ((~y & 0x80) << 3) | ((~y & 0xf8) << 2) | ((~x & 0xf8) >> 3);
468467                  }
469468               }
470469            }
r17967r17968
475474         /* if rain is enabled, it ORs against the bits */
476475         if (amebase != 0)
477476         {
478            int effx = (state->m_cpu0_out[8] + x) & 0x0f;
479            int effy = (state->m_cpu0_out[7] - y) & 0x0f;
477            int effx = (m_cpu0_out[8] + x) & 0x0f;
478            int effy = (m_cpu0_out[7] - y) & 0x0f;
480479            if ((amedata[(amebase << 5) | (effy << 1) | (effx >> 3)] >> (effx & 0x07)) & 0x01)
481480               objpix |= 7;
482481         }
483482
484483         /* if the radar is on, it ORs against the bits */
485         if (y >= 192 && (state->m_cpu0_out[0] & 0x80))
484         if (y >= 192 && (m_cpu0_out[0] & 0x80))
486485         {
487            if ((state->m_radarram[((~y & 0x3e) << 4) | ((~x & 0xf8) >> 3)] >> (x & 0x07)) & 0x01)
486            if ((m_radarram[((~y & 0x3e) << 4) | ((~x & 0xf8) >> 3)] >> (x & 0x07)) & 0x01)
488487               objpix |= 7;
489488         }
490489
491490         /* handle collision detection between MVID and OBJECT */
492         if (!(state->m_collide & 0x1000) && (objpix & 0x08) && (mvid & 0x0f) != 0)
491         if (!(m_collide & 0x1000) && (objpix & 0x08) && (mvid & 0x0f) != 0)
493492         {
494493mame_printf_debug("Collide bg/object @ (%d,%d)\n", x, y);
495            state->m_collide = 0x1000 | 0x8000 | ((~y & 0x80) << 3) | ((~y & 0xf8) << 2) | ((~x & 0xf8) >> 3);
494            m_collide = 0x1000 | 0x8000 | ((~y & 0x80) << 3) | ((~y & 0xf8) << 2) | ((~x & 0xf8) >> 3);
496495         }
497496
498497   /*
r17967r17968
521520
522521         /* otherwise, it's the background, unless it's been KILL'ed */
523522         else if (!kill)
524            finalpix = state->m_bgcolor[mvid | bgcolor];
523            finalpix = m_bgcolor[mvid | bgcolor];
525524
526525         /* in which case it's black */
527526         else
trunk/src/mame/video/lkage.c
r17967r17968
167167   }
168168}
169169
170SCREEN_UPDATE_IND16( lkage )
170UINT32 lkage_state::screen_update_lkage(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
171171{
172   lkage_state *state = screen.machine().driver_data<lkage_state>();
173172   int bank;
174173
175   state->flip_screen_x_set(~state->m_vreg[2] & 0x01);
176   state->flip_screen_y_set(~state->m_vreg[2] & 0x02);
174   flip_screen_x_set(~m_vreg[2] & 0x01);
175   flip_screen_y_set(~m_vreg[2] & 0x02);
177176
178   bank = state->m_vreg[1] & 0x08;
177   bank = m_vreg[1] & 0x08;
179178
180   if (state->m_bg_tile_bank != bank)
179   if (m_bg_tile_bank != bank)
181180   {
182      state->m_bg_tile_bank = bank;
183      state->m_bg_tilemap->mark_all_dirty();
181      m_bg_tile_bank = bank;
182      m_bg_tilemap->mark_all_dirty();
184183   }
185184
186   bank = state->m_vreg[0]&0x04;
187   if (state->m_fg_tile_bank != bank)
185   bank = m_vreg[0]&0x04;
186   if (m_fg_tile_bank != bank)
188187   {
189      state->m_fg_tile_bank = bank;
190      state->m_fg_tilemap->mark_all_dirty();
188      m_fg_tile_bank = bank;
189      m_fg_tilemap->mark_all_dirty();
191190   }
192191
193   bank = state->m_vreg[0]&0x02;
194   if (state->m_tx_tile_bank != bank)
192   bank = m_vreg[0]&0x02;
193   if (m_tx_tile_bank != bank)
195194   {
196      state->m_tx_tile_bank = bank;
197      state->m_tx_tilemap->mark_all_dirty();
195      m_tx_tile_bank = bank;
196      m_tx_tilemap->mark_all_dirty();
198197   }
199198
200   state->m_bg_tilemap->set_palette_offset(0x300 + (state->m_vreg[1] & 0xf0));
201   state->m_fg_tilemap->set_palette_offset(0x200 + (state->m_vreg[1] & 0xf0));
202   state->m_tx_tilemap->set_palette_offset(0x110);
199   m_bg_tilemap->set_palette_offset(0x300 + (m_vreg[1] & 0xf0));
200   m_fg_tilemap->set_palette_offset(0x200 + (m_vreg[1] & 0xf0));
201   m_tx_tilemap->set_palette_offset(0x110);
203202
204   state->m_tx_tilemap->set_scrollx(0, state->m_scroll[0]);
205   state->m_tx_tilemap->set_scrolly(0, state->m_scroll[1]);
203   m_tx_tilemap->set_scrollx(0, m_scroll[0]);
204   m_tx_tilemap->set_scrolly(0, m_scroll[1]);
206205
207   state->m_fg_tilemap->set_scrollx(0, state->m_scroll[2]);
208   state->m_fg_tilemap->set_scrolly(0, state->m_scroll[3]);
206   m_fg_tilemap->set_scrollx(0, m_scroll[2]);
207   m_fg_tilemap->set_scrolly(0, m_scroll[3]);
209208
210   state->m_bg_tilemap->set_scrollx(0, state->m_scroll[4]);
211   state->m_bg_tilemap->set_scrolly(0, state->m_scroll[5]);
209   m_bg_tilemap->set_scrollx(0, m_scroll[4]);
210   m_bg_tilemap->set_scrolly(0, m_scroll[5]);
212211
213212   screen.machine().priority_bitmap.fill(0, cliprect);
214   if ((state->m_vreg[2] & 0xf0) == 0xf0)
213   if ((m_vreg[2] & 0xf0) == 0xf0)
215214   {
216      state->m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
217      state->m_fg_tilemap->draw(bitmap, cliprect, 0, (state->m_vreg[1] & 2) ? 2 : 4);
218      state->m_tx_tilemap->draw(bitmap, cliprect, 0, 4);
215      m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
216      m_fg_tilemap->draw(bitmap, cliprect, 0, (m_vreg[1] & 2) ? 2 : 4);
217      m_tx_tilemap->draw(bitmap, cliprect, 0, 4);
219218      draw_sprites(screen.machine(), bitmap, cliprect);
220219   }
221220   else
222221   {
223      state->m_tx_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
222      m_tx_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
224223   }
225224
226225   return 0;
trunk/src/mame/video/gaiden.c
r17967r17968
641641   }
642642}
643643
644SCREEN_UPDATE_RGB32( gaiden )
644UINT32 gaiden_state::screen_update_gaiden(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
645645{
646   gaiden_state *state = screen.machine().driver_data<gaiden_state>();
647646   screen.machine().priority_bitmap.fill(0, cliprect);
648647
649   state->m_tile_bitmap_bg.fill(0x200, cliprect);
650   state->m_tile_bitmap_fg.fill(0, cliprect);
651   state->m_sprite_bitmap.fill(0, cliprect);
648   m_tile_bitmap_bg.fill(0x200, cliprect);
649   m_tile_bitmap_fg.fill(0, cliprect);
650   m_sprite_bitmap.fill(0, cliprect);
652651
653652   /* draw tilemaps into a 16-bit bitmap */
654   state->m_background->draw(state->m_tile_bitmap_bg, cliprect, 0, 1);
655   state->m_foreground->draw(state->m_tile_bitmap_fg, cliprect, 0, 2);
653   m_background->draw(m_tile_bitmap_bg, cliprect, 0, 1);
654   m_foreground->draw(m_tile_bitmap_fg, cliprect, 0, 2);
656655   /* draw the blended tiles at a lower priority
657656       so sprites covered by them will still be drawn */
658   state->m_foreground->draw(state->m_tile_bitmap_fg, cliprect, 1, 0);
659   state->m_text_layer->draw(state->m_tile_bitmap_fg, cliprect, 0, 4);
657   m_foreground->draw(m_tile_bitmap_fg, cliprect, 1, 0);
658   m_text_layer->draw(m_tile_bitmap_fg, cliprect, 0, 4);
660659
661660   /* draw sprites into a 16-bit bitmap */
662   gaiden_draw_sprites(screen.machine(), state->m_tile_bitmap_bg, state->m_tile_bitmap_fg, state->m_sprite_bitmap, cliprect);
661   gaiden_draw_sprites(screen.machine(), m_tile_bitmap_bg, m_tile_bitmap_fg, m_sprite_bitmap, cliprect);
663662
664663   /* mix & blend the tilemaps and sprites into a 32-bit bitmap */
665   blendbitmaps(screen.machine(), bitmap, state->m_tile_bitmap_bg, state->m_tile_bitmap_fg, state->m_sprite_bitmap, 0, 0, cliprect);
664   blendbitmaps(screen.machine(), bitmap, m_tile_bitmap_bg, m_tile_bitmap_fg, m_sprite_bitmap, 0, 0, cliprect);
666665   return 0;
667666
668667}
669668
670SCREEN_UPDATE_RGB32( raiga )
669UINT32 gaiden_state::screen_update_raiga(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
671670{
672   gaiden_state *state = screen.machine().driver_data<gaiden_state>();
673671   screen.machine().priority_bitmap.fill(0, cliprect);
674672
675   state->m_tile_bitmap_bg.fill(0x200, cliprect);
676   state->m_tile_bitmap_fg.fill(0, cliprect);
677   state->m_sprite_bitmap.fill(0, cliprect);
673   m_tile_bitmap_bg.fill(0x200, cliprect);
674   m_tile_bitmap_fg.fill(0, cliprect);
675   m_sprite_bitmap.fill(0, cliprect);
678676
679677   /* draw tilemaps into a 16-bit bitmap */
680   state->m_background->draw(state->m_tile_bitmap_bg, cliprect, 0, 1);
681   state->m_foreground->draw(state->m_tile_bitmap_fg, cliprect, 0, 2);
678   m_background->draw(m_tile_bitmap_bg, cliprect, 0, 1);
679   m_foreground->draw(m_tile_bitmap_fg, cliprect, 0, 2);
682680   /* draw the blended tiles at a lower priority
683681       so sprites covered by them will still be drawn */
684   state->m_foreground->draw(state->m_tile_bitmap_fg, cliprect, 1, 0);
685   state->m_text_layer->draw(state->m_tile_bitmap_fg, cliprect, 0, 4);
682   m_foreground->draw(m_tile_bitmap_fg, cliprect, 1, 0);
683   m_text_layer->draw(m_tile_bitmap_fg, cliprect, 0, 4);
686684
687685   /* draw sprites into a 16-bit bitmap */
688   raiga_draw_sprites(screen.machine(), state->m_tile_bitmap_bg, state->m_tile_bitmap_fg, state->m_sprite_bitmap, cliprect);
686   raiga_draw_sprites(screen.machine(), m_tile_bitmap_bg, m_tile_bitmap_fg, m_sprite_bitmap, cliprect);
689687
690688   /* mix & blend the tilemaps and sprites into a 32-bit bitmap */
691   blendbitmaps(screen.machine(), bitmap, state->m_tile_bitmap_bg, state->m_tile_bitmap_fg, state->m_sprite_bitmap, 0, 0, cliprect);
689   blendbitmaps(screen.machine(), bitmap, m_tile_bitmap_bg, m_tile_bitmap_fg, m_sprite_bitmap, 0, 0, cliprect);
692690   return 0;
693691}
694692
695SCREEN_UPDATE_IND16( drgnbowl )
693UINT32 gaiden_state::screen_update_drgnbowl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
696694{
697   gaiden_state *state = screen.machine().driver_data<gaiden_state>();
698695   screen.machine().priority_bitmap.fill(0, cliprect);
699696
700   state->m_background->draw(bitmap, cliprect, 0, 1);
701   state->m_foreground->draw(bitmap, cliprect, 0, 2);
702   state->m_text_layer->draw(bitmap, cliprect, 0, 4);
697   m_background->draw(bitmap, cliprect, 0, 1);
698   m_foreground->draw(bitmap, cliprect, 0, 2);
699   m_text_layer->draw(bitmap, cliprect, 0, 4);
703700   drgnbowl_draw_sprites(screen.machine(), bitmap, cliprect);
704701   return 0;
705702}
trunk/src/mame/video/zaxxon.c
r17967r17968
460460 *
461461 *************************************/
462462
463SCREEN_UPDATE_IND16( zaxxon )
463UINT32 zaxxon_state::screen_update_zaxxon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
464464{
465   zaxxon_state *state = screen.machine().driver_data<zaxxon_state>();
466465
467466   draw_background(screen.machine(), bitmap, cliprect, TRUE);
468467   draw_sprites(screen.machine(), bitmap, cliprect, 0x140, 0x180);
469   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
468   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
470469   return 0;
471470}
472471
473472
474SCREEN_UPDATE_IND16( futspy )
473UINT32 zaxxon_state::screen_update_futspy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
475474{
476   zaxxon_state *state = screen.machine().driver_data<zaxxon_state>();
477475
478476   draw_background(screen.machine(), bitmap, cliprect, TRUE);
479477   draw_sprites(screen.machine(), bitmap, cliprect, 0x180, 0x180);
480   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
478   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
481479   return 0;
482480}
483481
484482
485SCREEN_UPDATE_IND16( razmataz )
483UINT32 zaxxon_state::screen_update_razmataz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
486484{
487   zaxxon_state *state = screen.machine().driver_data<zaxxon_state>();
488485
489486   draw_background(screen.machine(), bitmap, cliprect, FALSE);
490487   draw_sprites(screen.machine(), bitmap, cliprect, 0x140, 0x180);
491   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
488   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
492489   return 0;
493490}
494491
495492
496SCREEN_UPDATE_IND16( congo )
493UINT32 zaxxon_state::screen_update_congo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
497494{
498   zaxxon_state *state = screen.machine().driver_data<zaxxon_state>();
499495
500496   draw_background(screen.machine(), bitmap, cliprect, TRUE);
501497   draw_sprites(screen.machine(), bitmap, cliprect, 0x280, 0x180);
502   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
498   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
503499   return 0;
504500}
trunk/src/mame/video/shangkid.c
r17967r17968
182182   }
183183}
184184
185SCREEN_UPDATE_IND16( shangkid )
185UINT32 shangkid_state::screen_update_shangkid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
186186{
187   shangkid_state *state = screen.machine().driver_data<shangkid_state>();
188   int flipscreen = state->m_videoreg[1]&0x80;
189   state->m_background->set_flip(flipscreen?(TILEMAP_FLIPX|TILEMAP_FLIPY):0 );
190   state->m_background->set_scrollx(0,state->m_videoreg[0]-40 );
191   state->m_background->set_scrolly(0,state->m_videoreg[2]+0x10 );
187   int flipscreen = m_videoreg[1]&0x80;
188   m_background->set_flip(flipscreen?(TILEMAP_FLIPX|TILEMAP_FLIPY):0 );
189   m_background->set_scrollx(0,m_videoreg[0]-40 );
190   m_background->set_scrolly(0,m_videoreg[2]+0x10 );
192191
193   state->m_background->draw(bitmap, cliprect, 0,0 );
192   m_background->draw(bitmap, cliprect, 0,0 );
194193   shangkid_draw_sprites(screen.machine(), bitmap,cliprect );
195   state->m_background->draw(bitmap, cliprect, 1,0 ); /* high priority tiles */
194   m_background->draw(bitmap, cliprect, 1,0 ); /* high priority tiles */
196195   return 0;
197196}
198197
r17967r17968
319318   }
320319}
321320
322SCREEN_UPDATE_IND16( dynamski )
321UINT32 shangkid_state::screen_update_dynamski(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
323322{
324323   dynamski_draw_background(screen.machine(), bitmap,cliprect, 0 );
325324   dynamski_draw_sprites(screen.machine(), bitmap,cliprect );
trunk/src/mame/video/trackfld.c
r17967r17968
243243
244244
245245
246SCREEN_UPDATE_IND16( trackfld )
246UINT32 trackfld_state::screen_update_trackfld(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
247247{
248   trackfld_state *state = screen.machine().driver_data<trackfld_state>();
249248   int row, scrollx;
250249
251250   for (row = 0; row < 32; row++)
252251   {
253      scrollx = state->m_scroll[row] + 256 * (state->m_scroll2[row] & 0x01);
254      if (state->flip_screen()) scrollx = -scrollx;
255      state->m_bg_tilemap->set_scrollx(row, scrollx);
252      scrollx = m_scroll[row] + 256 * (m_scroll2[row] & 0x01);
253      if (flip_screen()) scrollx = -scrollx;
254      m_bg_tilemap->set_scrollx(row, scrollx);
256255   }
257256
258   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
257   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
259258   draw_sprites(screen.machine(), bitmap, cliprect);
260259   return 0;
261260}
trunk/src/mame/video/fastfred.c
r17967r17968
295295}
296296
297297
298SCREEN_UPDATE_IND16( fastfred )
298UINT32 fastfred_state::screen_update_fastfred(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
299299{
300   fastfred_state *state = screen.machine().driver_data<fastfred_state>();
301   bitmap.fill(*state->m_background_color, cliprect);
302   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
300   bitmap.fill(*m_background_color, cliprect);
301   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
303302   draw_sprites(screen.machine(), bitmap, cliprect);
304303
305304   return 0;
r17967r17968
362361   palette_set_color(machine(),256+64+1,MAKE_RGB(0x00,0x00,0x00));
363362}
364363
365SCREEN_UPDATE_IND16( imago )
364UINT32 fastfred_state::screen_update_imago(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
366365{
367   fastfred_state *state = screen.machine().driver_data<fastfred_state>();
368   state->m_web_tilemap->draw(bitmap, cliprect, 0,0);
366   m_web_tilemap->draw(bitmap, cliprect, 0,0);
369367   galaxold_draw_stars(screen.machine(), bitmap, cliprect);
370   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
368   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
371369   draw_sprites(screen.machine(), bitmap, cliprect);
372   state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
370   m_fg_tilemap->draw(bitmap, cliprect, 0,0);
373371
374372   return 0;
375373}
trunk/src/mame/video/karnov.c
r17967r17968
124124
125125/******************************************************************************/
126126
127SCREEN_UPDATE_IND16( karnov )
127UINT32 karnov_state::screen_update_karnov(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
128128{
129   karnov_state *state = screen.machine().driver_data<karnov_state>();
130129   draw_background(screen.machine(), bitmap, cliprect);
131   screen.machine().device<deco_karnovsprites_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram->buffer(), 0x800, 0);
132   state->m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
130   screen.machine().device<deco_karnovsprites_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram->buffer(), 0x800, 0);
131   m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
133132   return 0;
134133}
135134
trunk/src/mame/video/lwings.c
r17967r17968
257257   }
258258}
259259
260SCREEN_UPDATE_IND16( lwings )
260UINT32 lwings_state::screen_update_lwings(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
261261{
262   lwings_state *state = screen.machine().driver_data<lwings_state>();
263262
264   state->m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
263   m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
265264   lwings_draw_sprites(screen.machine(), bitmap, cliprect);
266   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
265   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
267266   return 0;
268267}
269268
270SCREEN_UPDATE_IND16( trojan )
269UINT32 lwings_state::screen_update_trojan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
271270{
272   lwings_state *state = screen.machine().driver_data<lwings_state>();
273271
274   state->m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
275   state->m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
272   m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
273   m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
276274   trojan_draw_sprites(screen.machine(), bitmap, cliprect);
277   state->m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
278   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
275   m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
276   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
279277   return 0;
280278}
trunk/src/mame/video/punchout.c
r17967r17968
351351}
352352
353353
354SCREEN_UPDATE_IND16( punchout_top )
354UINT32 punchout_state::screen_update_punchout_top(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
355355{
356   punchout_state *state = screen.machine().driver_data<punchout_state>();
357356
358   punchout_copy_top_palette(screen.machine(), BIT(*state->m_palettebank,1));
357   punchout_copy_top_palette(screen.machine(), BIT(*m_palettebank,1));
359358
360   state->m_bg_top_tilemap->draw(bitmap, cliprect, 0, 0);
359   m_bg_top_tilemap->draw(bitmap, cliprect, 0, 0);
361360
362   if (state->m_spr1_ctrlram[7] & 1)   /* display in top monitor */
361   if (m_spr1_ctrlram[7] & 1)   /* display in top monitor */
363362      draw_big_sprite(screen.machine(), bitmap, cliprect, 0);
364363
365364   return 0;
366365}
367366
368SCREEN_UPDATE_IND16( punchout_bottom )
367UINT32 punchout_state::screen_update_punchout_bottom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
369368{
370   punchout_state *state = screen.machine().driver_data<punchout_state>();
371369   int offs;
372370
373   punchout_copy_bot_palette(screen.machine(), BIT(*state->m_palettebank,0));
371   punchout_copy_bot_palette(screen.machine(), BIT(*m_palettebank,0));
374372
375373   /* copy the character mapped graphics */
376374   for (offs = 0;offs < 32;offs++)
377      state->m_bg_bot_tilemap->set_scrollx(offs, 58 + state->m_bg_bot_videoram[2*offs] + 256 * (state->m_bg_bot_videoram[2*offs + 1] & 0x01));
375      m_bg_bot_tilemap->set_scrollx(offs, 58 + m_bg_bot_videoram[2*offs] + 256 * (m_bg_bot_videoram[2*offs + 1] & 0x01));
378376
379   state->m_bg_bot_tilemap->draw(bitmap, cliprect, 0, 0);
377   m_bg_bot_tilemap->draw(bitmap, cliprect, 0, 0);
380378
381   if (state->m_spr1_ctrlram[7] & 2)   /* display in bottom monitor */
379   if (m_spr1_ctrlram[7] & 2)   /* display in bottom monitor */
382380      draw_big_sprite(screen.machine(), bitmap, cliprect, 1);
383381   drawbs2(screen.machine(), bitmap, cliprect);
384382
r17967r17968
386384}
387385
388386
389SCREEN_UPDATE_IND16( armwrest_top )
387UINT32 punchout_state::screen_update_armwrest_top(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
390388{
391   punchout_state *state = screen.machine().driver_data<punchout_state>();
392389
393   punchout_copy_top_palette(screen.machine(), BIT(*state->m_palettebank,1));
390   punchout_copy_top_palette(screen.machine(), BIT(*m_palettebank,1));
394391
395   state->m_bg_top_tilemap->draw(bitmap, cliprect, 0, 0);
392   m_bg_top_tilemap->draw(bitmap, cliprect, 0, 0);
396393
397   if (state->m_spr1_ctrlram[7] & 1)   /* display in top monitor */
394   if (m_spr1_ctrlram[7] & 1)   /* display in top monitor */
398395      armwrest_draw_big_sprite(screen.machine(), bitmap, cliprect, 0);
399396
400397   return 0;
401398}
402399
403SCREEN_UPDATE_IND16( armwrest_bottom )
400UINT32 punchout_state::screen_update_armwrest_bottom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
404401{
405   punchout_state *state = screen.machine().driver_data<punchout_state>();
406402
407   punchout_copy_bot_palette(screen.machine(), BIT(*state->m_palettebank,0));
403   punchout_copy_bot_palette(screen.machine(), BIT(*m_palettebank,0));
408404
409   state->m_bg_bot_tilemap->draw(bitmap, cliprect, 0, 0);
405   m_bg_bot_tilemap->draw(bitmap, cliprect, 0, 0);
410406
411   if (state->m_spr1_ctrlram[7] & 2)   /* display in bottom monitor */
407   if (m_spr1_ctrlram[7] & 2)   /* display in bottom monitor */
412408      armwrest_draw_big_sprite(screen.machine(), bitmap, cliprect, 1);
413409   drawbs2(screen.machine(), bitmap, cliprect);
414410
415   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
411   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
416412
417413   return 0;
418414}
trunk/src/mame/video/kopunch.c
r17967r17968
9090   m_bg_tilemap->set_scrolldx(16, 16);
9191}
9292
93SCREEN_UPDATE_IND16( kopunch )
93UINT32 kopunch_state::screen_update_kopunch(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
9494{
95   kopunch_state *state = screen.machine().driver_data<kopunch_state>();
9695
97   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
98   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
96   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
97   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
9998
10099   return 0;
101100}
trunk/src/mame/video/tecmo.c
r17967r17968
237237}
238238
239239
240SCREEN_UPDATE_IND16( tecmo )
240UINT32 tecmo_state::screen_update_tecmo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
241241{
242   tecmo_state *state = screen.machine().driver_data<tecmo_state>();
243242   screen.machine().priority_bitmap.fill(0, cliprect);
244243   bitmap.fill(0x100, cliprect);
245   state->m_bg_tilemap->draw(bitmap, cliprect, 0,1);
246   state->m_fg_tilemap->draw(bitmap, cliprect, 0,2);
247   state->m_tx_tilemap->draw(bitmap, cliprect, 0,4);
244   m_bg_tilemap->draw(bitmap, cliprect, 0,1);
245   m_fg_tilemap->draw(bitmap, cliprect, 0,2);
246   m_tx_tilemap->draw(bitmap, cliprect, 0,4);
248247
249248   draw_sprites(screen.machine(), bitmap,cliprect);
250249   return 0;
trunk/src/mame/video/news.c
r17967r17968
9191
9292***************************************************************************/
9393
94SCREEN_UPDATE_IND16( news )
94UINT32 news_state::screen_update_news(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
9595{
96   news_state *state = screen.machine().driver_data<news_state>();
97   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
98   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
96   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
97   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
9998   return 0;
10099}
trunk/src/mame/video/galpanic.c
r17967r17968
100100   }
101101}
102102
103SCREEN_UPDATE_IND16( galpanic )
103UINT32 galpanic_state::screen_update_galpanic(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
104104{
105   galpanic_state *state = screen.machine().driver_data<galpanic_state>();
106105   device_t *pandora = screen.machine().device("pandora");
107106
108107   /* copy the temporary bitmap to the screen */
109   copybitmap(bitmap,state->m_bitmap,0,0,0,0,cliprect);
108   copybitmap(bitmap,m_bitmap,0,0,0,0,cliprect);
110109
111110   draw_fgbitmap(screen.machine(), bitmap, cliprect);
112111
r17967r17968
115114   return 0;
116115}
117116
118SCREEN_UPDATE_IND16( comad )
117UINT32 galpanic_state::screen_update_comad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
119118{
120   galpanic_state *state = screen.machine().driver_data<galpanic_state>();
121119   /* copy the temporary bitmap to the screen */
122   copybitmap(bitmap,state->m_bitmap,0,0,0,0,cliprect);
120   copybitmap(bitmap,m_bitmap,0,0,0,0,cliprect);
123121
124122   draw_fgbitmap(screen.machine(), bitmap, cliprect);
125123
126124
127125//  if(galpanic_clear_sprites)
128126   {
129      state->m_sprites_bitmap.fill(0, cliprect);
127      m_sprites_bitmap.fill(0, cliprect);
130128      comad_draw_sprites(screen.machine(),bitmap,cliprect);
131129   }
132130//  else
133131//  {
134132//      /* keep sprites on the bitmap without clearing them */
135//      comad_draw_sprites(screen.machine(),state->m_sprites_bitmap,0);
136//      copybitmap_trans(bitmap,state->m_sprites_bitmap,0,0,0,0,cliprect,0);
133//      comad_draw_sprites(screen.machine(),m_sprites_bitmap,0);
134//      copybitmap_trans(bitmap,m_sprites_bitmap,0,0,0,0,cliprect,0);
137135//  }
138136   return 0;
139137}
trunk/src/mame/video/finalizr.c
r17967r17968
8282
8383
8484
85SCREEN_UPDATE_IND16( finalizr )
85UINT32 finalizr_state::screen_update_finalizr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
8686{
87   finalizr_state *state = screen.machine().driver_data<finalizr_state>();
8887   int offs;
8988
90   state->m_bg_tilemap->mark_all_dirty();
91   state->m_fg_tilemap->mark_all_dirty();
89   m_bg_tilemap->mark_all_dirty();
90   m_fg_tilemap->mark_all_dirty();
9291
93   state->m_bg_tilemap->set_scrollx(0, *state->m_scroll - 32);
94   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
92   m_bg_tilemap->set_scrollx(0, *m_scroll - 32);
93   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
9594
9695   /* Draw the sprites. */
9796   {
9897      gfx_element *gfx1 = screen.machine().gfx[1];
9998      gfx_element *gfx2 = screen.machine().gfx[2];
10099
101      UINT8 *sr = state->m_spriterambank ? state->m_spriteram_2 : state->m_spriteram;
100      UINT8 *sr = m_spriterambank ? m_spriteram_2 : m_spriteram;
102101
103102
104      for (offs = 0; offs <= state->m_spriteram.bytes() - 5; offs += 5)
103      for (offs = 0; offs <= m_spriteram.bytes() - 5; offs += 5)
105104      {
106105         int sx, sy, flipx, flipy, code, color, size;
107106
r17967r17968
119118
120119         if (size >= 0x10)   /* 32x32 */
121120         {
122            if (state->flip_screen())
121            if (flip_screen())
123122            {
124123               sx = 256 - sx;
125124               sy = 224 - sy;
r17967r17968
150149         }
151150         else
152151         {
153            if (state->flip_screen())
152            if (flip_screen())
154153            {
155154               sx = ((size & 0x08) ? 280:272) - sx;
156155               sy = ((size & 0x04) ? 248:240) - sy;
r17967r17968
216215      /* draw top status region */
217216      clip.min_x = visarea.min_x;
218217      clip.max_x = visarea.min_x + 31;
219      state->m_fg_tilemap->set_scrolldx(0,-32);
220      state->m_fg_tilemap->draw(bitmap, clip, 0, 0);
218      m_fg_tilemap->set_scrolldx(0,-32);
219      m_fg_tilemap->draw(bitmap, clip, 0, 0);
221220   }
222221   return 0;
223222}
trunk/src/mame/video/shuuz.c
r17967r17968
8787 *
8888 *************************************/
8989
90SCREEN_UPDATE_IND16( shuuz )
90UINT32 shuuz_state::screen_update_shuuz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
9191{
92   shuuz_state *state = screen.machine().driver_data<shuuz_state>();
9392   atarimo_rect_list rectlist;
9493   bitmap_ind16 *mobitmap;
9594   int x, y, r;
9695
9796   /* draw the playfield */
98   state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
97   m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
9998
10099   /* draw and merge the MO */
101100   mobitmap = atarimo_render(0, cliprect, &rectlist);
trunk/src/mame/video/xorworld.c
r17967r17968
111111   }
112112}
113113
114SCREEN_UPDATE_IND16( xorworld )
114UINT32 xorworld_state::screen_update_xorworld(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
115115{
116   xorworld_state *state = screen.machine().driver_data<xorworld_state>();
117   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
116   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
118117   draw_sprites(screen.machine(), bitmap, cliprect);
119118   return 0;
120119}
trunk/src/mame/video/cclimber.c
r17967r17968
655655}
656656
657657
658SCREEN_UPDATE_IND16( cclimber )
658UINT32 cclimber_state::screen_update_cclimber(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
659659{
660   cclimber_state *state = screen.machine().driver_data<cclimber_state>();
661660   bitmap.fill(CCLIMBER_BG_PEN, cliprect);
662661   draw_playfield(screen.machine(), bitmap, cliprect);
663662
664663   /* draw the "big sprite" under the regular sprites */
665   if ((state->m_bigsprite_control[0] & 0x01))
664   if ((m_bigsprite_control[0] & 0x01))
666665   {
667666      cclimber_draw_bigsprite(screen.machine(), bitmap, cliprect);
668667      cclimber_draw_sprites(bitmap, cliprect, screen.machine().gfx[1]);
r17967r17968
679678}
680679
681680
682SCREEN_UPDATE_IND16( yamato )
681UINT32 cclimber_state::screen_update_yamato(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
683682{
684683   cclimber_state *state = screen.machine().driver_data<cclimber_state>();
685684   int i;
686   UINT8 *sky_rom = state->memregion("user1")->base() + 0x1200;
685   UINT8 *sky_rom = memregion("user1")->base() + 0x1200;
687686
688687   for (i = 0; i < 0x100; i++)
689688   {
r17967r17968
697696   draw_playfield(screen.machine(), bitmap, cliprect);
698697
699698   /* draw the "big sprite" under the regular sprites */
700   if ((state->m_bigsprite_control[0] & 0x01))
699   if ((m_bigsprite_control[0] & 0x01))
701700   {
702701      cclimber_draw_bigsprite(screen.machine(), bitmap, cliprect);
703702      toprollr_draw_sprites(bitmap, cliprect, screen.machine().gfx[1]);
r17967r17968
714713}
715714
716715
717SCREEN_UPDATE_IND16( swimmer )
716UINT32 cclimber_state::screen_update_swimmer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
718717{
719718   cclimber_state *state = screen.machine().driver_data<cclimber_state>();
720719   swimmer_set_background_pen(screen.machine());
721720
722   if (*state->m_swimmer_side_background_enabled & 0x01)
721   if (*m_swimmer_side_background_enabled & 0x01)
723722   {
724723      if (CCLIMBER_FLIP_X)
725724      {
r17967r17968
750749   draw_playfield(screen.machine(), bitmap, cliprect);
751750
752751   /* draw the "big sprite" under the regular sprites */
753   if ((state->m_bigsprite_control[0] & 0x01))
752   if ((m_bigsprite_control[0] & 0x01))
754753   {
755754      cclimber_draw_bigsprite(screen.machine(), bitmap, cliprect);
756755      swimmer_draw_sprites(bitmap, cliprect, screen.machine().gfx[1]);
r17967r17968
767766}
768767
769768
770SCREEN_UPDATE_IND16( toprollr )
769UINT32 cclimber_state::screen_update_toprollr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
771770{
772771   cclimber_state *state = screen.machine().driver_data<cclimber_state>();
773772   rectangle scroll_area_clip = cliprect;
r17967r17968
776775
777776   bitmap.fill(CCLIMBER_BG_PEN, cliprect);
778777
779   state->m_toproller_bg_tilemap->set_scrollx(0, state->m_toprollr_bg_videoram[0]);
780   state->m_toproller_bg_tilemap->set_flip((CCLIMBER_FLIP_X ? TILEMAP_FLIPX : 0) |
778   m_toproller_bg_tilemap->set_scrollx(0, m_toprollr_bg_videoram[0]);
779   m_toproller_bg_tilemap->set_flip((CCLIMBER_FLIP_X ? TILEMAP_FLIPX : 0) |
781780                                 (CCLIMBER_FLIP_Y ? TILEMAP_FLIPY : 0));
782   state->m_toproller_bg_tilemap->mark_all_dirty();
783   state->m_toproller_bg_tilemap->draw(bitmap, scroll_area_clip, 0, 0);
781   m_toproller_bg_tilemap->mark_all_dirty();
782   m_toproller_bg_tilemap->draw(bitmap, scroll_area_clip, 0, 0);
784783
785784   /* draw the "big sprite" over the regular sprites */
786   if ((state->m_bigsprite_control[1] & 0x20))
785   if ((m_bigsprite_control[1] & 0x20))
787786   {
788787      toprollr_draw_sprites(bitmap, scroll_area_clip, screen.machine().gfx[1]);
789788      toprollr_draw_bigsprite(screen.machine(), bitmap, scroll_area_clip);
r17967r17968
796795      toprollr_draw_sprites(bitmap, scroll_area_clip, screen.machine().gfx[1]);
797796   }
798797
799   state->m_pf_tilemap->mark_all_dirty();
800   state->m_pf_tilemap->set_flip((CCLIMBER_FLIP_X ? TILEMAP_FLIPX : 0) |
798   m_pf_tilemap->mark_all_dirty();
799   m_pf_tilemap->set_flip((CCLIMBER_FLIP_X ? TILEMAP_FLIPX : 0) |
801800                         (CCLIMBER_FLIP_Y ? TILEMAP_FLIPY : 0));
802   state->m_pf_tilemap->draw(bitmap, cliprect, 0, 0);
801   m_pf_tilemap->draw(bitmap, cliprect, 0, 0);
803802
804803   return 0;
805804}
trunk/src/mame/video/speedspn.c
r17967r17968
8686}
8787
8888
89SCREEN_UPDATE_IND16(speedspn)
89UINT32 speedspn_state::screen_update_speedspn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
9090{
91   speedspn_state *state = screen.machine().driver_data<speedspn_state>();
92   if (state->m_display_disable)
91   if (m_display_disable)
9392   {
9493      bitmap.fill(get_black_pen(screen.machine()), cliprect);
9594      return 0;
r17967r17968
9998   {
10099      FILE* f;
101100      f = fopen("vidram.bin","wb");
102      fwrite(state->m_vidram, 1, 0x1000 * 2, f);
101      fwrite(m_vidram, 1, 0x1000 * 2, f);
103102      fclose(f);
104103   }
105104#endif
106   state->m_tilemap->set_scrollx(0, 0x100); // verify
107   state->m_tilemap->draw(bitmap, cliprect, 0,0);
105   m_tilemap->set_scrollx(0, 0x100); // verify
106   m_tilemap->draw(bitmap, cliprect, 0,0);
108107   draw_sprites(screen.machine(), bitmap,cliprect);
109108   return 0;
110109}
trunk/src/mame/video/amigaaga.c
r17967r17968
859859 *
860860 *************************************/
861861
862SCREEN_UPDATE_RGB32( amiga_aga )
862UINT32 amiga_state::screen_update_amiga_aga(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
863863{
864864   int y;
865865
trunk/src/mame/video/cloak.c
r17967r17968
222222   }
223223}
224224
225SCREEN_UPDATE_IND16( cloak )
225UINT32 cloak_state::screen_update_cloak(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
226226{
227   cloak_state *state = screen.machine().driver_data<cloak_state>();
228227   set_pens(screen.machine());
229   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
228   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
230229   draw_bitmap(screen.machine(), bitmap, cliprect);
231230   draw_sprites(screen.machine(), bitmap, cliprect);
232231   return 0;
trunk/src/mame/video/foodf.c
r17967r17968
111111 *
112112 *************************************/
113113
114SCREEN_UPDATE_IND16( foodf )
114UINT32 foodf_state::screen_update_foodf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
115115{
116   foodf_state *state = screen.machine().driver_data<foodf_state>();
117116   int offs;
118117   gfx_element *gfx = screen.machine().gfx[1];
119118   bitmap_ind8 &priority_bitmap = screen.machine().priority_bitmap;
120   UINT16 *spriteram16 = state->m_spriteram;
119   UINT16 *spriteram16 = m_spriteram;
121120
122121   /* first draw the playfield opaquely */
123   state->m_playfield_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
122   m_playfield_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
124123
125124   /* then draw the non-transparent parts with a priority of 1 */
126125   priority_bitmap.fill(0);
127   state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 1);
126   m_playfield_tilemap->draw(bitmap, cliprect, 0, 1);
128127
129128   /* draw the motion objects front-to-back */
130129   for (offs = 0x80-2; offs >= 0x20; offs -= 2)
trunk/src/mame/video/namcona1.c
r17967r17968
630630   }
631631} /* draw_background */
632632
633SCREEN_UPDATE_IND16( namcona1 )
633UINT32 namcona1_state::screen_update_namcona1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
634634{
635   namcona1_state *state = screen.machine().driver_data<namcona1_state>();
636635   int which;
637636   int priority;
638637
639   /* int flipscreen = state->m_vreg[0x98/2]; (TBA) */
638   /* int flipscreen = m_vreg[0x98/2]; (TBA) */
640639
641   if( state->m_vreg[0x8e/2] )
640   if( m_vreg[0x8e/2] )
642641   { /* gfx enabled */
643      if( state->m_palette_is_dirty )
642      if( m_palette_is_dirty )
644643      {
645644         /* palette updates are delayed when graphics are disabled */
646645         for( which=0; which<0x1000; which++ )
647646         {
648647            UpdatePalette(screen.machine(), which );
649648         }
650         state->m_palette_is_dirty = 0;
649         m_palette_is_dirty = 0;
651650      }
652651      UpdateGfx(screen.machine());
653652      for( which=0; which<NAMCONA1_NUM_TILEMAPS; which++ )
654653      {
655         int tilemap_color = state->m_vreg[0xb0/2+(which&3)]&0xf;
656         if( tilemap_color!=state->m_tilemap_palette_bank[which] )
654         int tilemap_color = m_vreg[0xb0/2+(which&3)]&0xf;
655         if( tilemap_color!=m_tilemap_palette_bank[which] )
657656         {
658            state->m_bg_tilemap[which] ->mark_all_dirty();
659            state->m_tilemap_palette_bank[which] = tilemap_color;
657            m_bg_tilemap[which] ->mark_all_dirty();
658            m_tilemap_palette_bank[which] = tilemap_color;
660659         }
661660      } /* next tilemap */
662661
663662      { /* ROZ tilemap */
664         int color = state->m_vreg[0xba/2]&0xf;
665         if( color != state->m_roz_palette )
663         int color = m_vreg[0xba/2]&0xf;
664         if( color != m_roz_palette )
666665         {
667            state->m_roz_tilemap ->mark_all_dirty();
668            state->m_roz_palette = color;
666            m_roz_tilemap ->mark_all_dirty();
667            m_roz_palette = color;
669668         }
670669      }
671670
r17967r17968
680679            int pri;
681680            if( which==4 )
682681            {
683               pri = state->m_vreg[0xa0/2+5]&0x7;
682               pri = m_vreg[0xa0/2+5]&0x7;
684683            }
685684            else
686685            {
687               pri = state->m_vreg[0xa0/2+which]&0x7;
686               pri = m_vreg[0xa0/2+which]&0x7;
688687            }
689688            if( pri == priority )
690689            {
trunk/src/mame/video/armedf.c
r17967r17968
367367   }
368368}
369369
370SCREEN_UPDATE_IND16( armedf )
370UINT32 armedf_state::screen_update_armedf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
371371{
372   armedf_state *state = screen.machine().driver_data<armedf_state>();
373   int sprite_enable = state->m_vreg & 0x200;
372   int sprite_enable = m_vreg & 0x200;
374373
375   state->m_bg_tilemap->enable(state->m_vreg & 0x800);
376   state->m_fg_tilemap->enable(state->m_vreg & 0x400);
377   state->m_tx_tilemap->enable(state->m_vreg & 0x100);
374   m_bg_tilemap->enable(m_vreg & 0x800);
375   m_fg_tilemap->enable(m_vreg & 0x400);
376   m_tx_tilemap->enable(m_vreg & 0x100);
378377
379   switch (state->m_scroll_type)
378   switch (m_scroll_type)
380379   {
381380      case 0:   /* terra force, kozure ookami */
382381      case 2: /* legion */
383382      case 3:   /* crazy climber */
384         state->m_fg_tilemap->set_scrollx(0, (state->m_fg_scrollx & 0x3ff));
385         state->m_fg_tilemap->set_scrolly(0, (state->m_fg_scrolly & 0x3ff));
383         m_fg_tilemap->set_scrollx(0, (m_fg_scrollx & 0x3ff));
384         m_fg_tilemap->set_scrolly(0, (m_fg_scrolly & 0x3ff));
386385         break;
387386
388387      case 1: /* armed formation */
389         state->m_fg_tilemap->set_scrollx(0, state->m_fg_scrollx);
390         state->m_fg_tilemap->set_scrolly(0, state->m_fg_scrolly);
388         m_fg_tilemap->set_scrollx(0, m_fg_scrollx);
389         m_fg_tilemap->set_scrolly(0, m_fg_scrolly);
391390         break;
392391
393392   }
394393
395394   bitmap.fill(0xff, cliprect );
396395
397   state->m_tx_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1), 0);
396   m_tx_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1), 0);
398397
399   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
398   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
400399
401400   if (sprite_enable)
402401      draw_sprites(screen.machine(), bitmap, cliprect, 2);
403402
404   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
403   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
405404
406405   if (sprite_enable)
407406      draw_sprites(screen.machine(), bitmap, cliprect, 1);
r17967r17968
409408   if (sprite_enable)
410409      draw_sprites(screen.machine(), bitmap, cliprect, 0);
411410
412   state->m_tx_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(0), 0);
411   m_tx_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(0), 0);
413412
414413   return 0;
415414}
trunk/src/mame/video/bsktball.c
r17967r17968
5050   }
5151}
5252
53SCREEN_UPDATE_IND16( bsktball )
53UINT32 bsktball_state::screen_update_bsktball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
5454{
55   bsktball_state *state = screen.machine().driver_data<bsktball_state>();
5655
57   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
56   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
5857   draw_sprites(screen.machine(), bitmap, cliprect);
5958   return 0;
6059}
trunk/src/mame/video/dkong.c
r17967r17968
952952   }
953953}
954954
955SCREEN_UPDATE_IND16( dkong )
955UINT32 dkong_state::screen_update_dkong(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
956956{
957   dkong_state *state = screen.machine().driver_data<dkong_state>();
958957
959   screen.machine().tilemap().set_flip_all(state->m_flip ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
960   state->m_bg_tilemap->set_scrollx(0, state->m_flip ?  0 : 0);
961   state->m_bg_tilemap->set_scrolly(0, state->m_flip ? -8 : 0);
958   screen.machine().tilemap().set_flip_all(m_flip ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
959   m_bg_tilemap->set_scrollx(0, m_flip ?  0 : 0);
960   m_bg_tilemap->set_scrolly(0, m_flip ? -8 : 0);
962961
963   switch (state->m_hardware_type)
962   switch (m_hardware_type)
964963   {
965964      case HARDWARE_TKG02:
966965      case HARDWARE_TKG04:
967966         check_palette(screen.machine());
968         state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
967         m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
969968         draw_sprites(screen.machine(), bitmap, cliprect, 0x40, 1);
970969         break;
971970      case HARDWARE_TRS01:
972971      case HARDWARE_TRS02:
973         state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
972         m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
974973         draw_sprites(screen.machine(), bitmap, cliprect, 0x40, 1);
975         radarscp_draw_background(screen.machine(), state, bitmap, cliprect);
974         radarscp_draw_background(screen.machine(), this, bitmap, cliprect);
976975         break;
977976      default:
978977         fatalerror("Invalid hardware type in dkong_video_update\n");
r17967r17968
980979   return 0;
981980}
982981
983SCREEN_UPDATE_IND16( pestplce )
982UINT32 dkong_state::screen_update_pestplce(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
984983{
985   dkong_state *state = screen.machine().driver_data<dkong_state>();
986984   int offs;
987985
988   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
986   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
989987
990988   /* Draw the sprites. */
991   for (offs = 0;offs < state->m_sprite_ram.bytes();offs += 4)
989   for (offs = 0;offs < m_sprite_ram.bytes();offs += 4)
992990   {
993      if (state->m_sprite_ram[offs])
991      if (m_sprite_ram[offs])
994992      {
995993         drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[1],
996               state->m_sprite_ram[offs + 2],
997               (state->m_sprite_ram[offs + 1] & 0x0f) + 16 * state->m_palette_bank,
998               state->m_sprite_ram[offs + 1] & 0x80,state->m_sprite_ram[offs + 1] & 0x40,
999               state->m_sprite_ram[offs + 3] - 8,240 - state->m_sprite_ram[offs] + 8,0);
994               m_sprite_ram[offs + 2],
995               (m_sprite_ram[offs + 1] & 0x0f) + 16 * m_palette_bank,
996               m_sprite_ram[offs + 1] & 0x80,m_sprite_ram[offs + 1] & 0x40,
997               m_sprite_ram[offs + 3] - 8,240 - m_sprite_ram[offs] + 8,0);
1000998      }
1001999   }
10021000   return 0;
10031001}
10041002
1005SCREEN_UPDATE_IND16( spclforc )
1003UINT32 dkong_state::screen_update_spclforc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
10061004{
1007   dkong_state *state = screen.machine().driver_data<dkong_state>();
10081005
1009   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
1006   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
10101007
10111008   /* it uses sprite_ram[offs + 2] & 0x10 for sprite bank */
10121009   draw_sprites(screen.machine(), bitmap, cliprect, 0x10, 3);
trunk/src/mame/video/sprint4.c
r17967r17968
5555}
5656
5757
58SCREEN_UPDATE_IND16( sprint4 )
58UINT32 sprint4_state::screen_update_sprint4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
5959{
60   sprint4_state *state = screen.machine().driver_data<sprint4_state>();
61   UINT8 *videoram = state->m_videoram;
60   UINT8 *videoram = m_videoram;
6261   int i;
6362
64   state->m_playfield->draw(bitmap, cliprect, 0, 0);
63   m_playfield->draw(bitmap, cliprect, 0, 0);
6564
6665   for (i = 0; i < 4; i++)
6766   {
r17967r17968
8685}
8786
8887
89SCREEN_VBLANK( sprint4 )
88void sprint4_state::screen_eof_sprint4(screen_device &screen, bool state)
9089{
9190   // rising edge
92   if (vblank_on)
91   if (state)
9392   {
94      sprint4_state *state = screen.machine().driver_data<sprint4_state>();
95      UINT8 *videoram = state->m_videoram;
93      UINT8 *videoram = m_videoram;
9694      int i;
9795
9896      /* check for sprite-playfield collisions */
r17967r17968
119117
120118         rect &= screen.machine().primary_screen->visible_area();
121119
122         state->m_playfield->draw(state->m_helper, rect, 0, 0);
120         m_playfield->draw(m_helper, rect, 0, 0);
123121
124122         if (i & 1)
125123            bank = 32;
126124
127         drawgfx_transpen(state->m_helper, rect, screen.machine().gfx[1],
125         drawgfx_transpen(m_helper, rect, screen.machine().gfx[1],
128126            (code >> 3) | bank,
129127            4,
130128            0, 0,
r17967r17968
133131
134132         for (y = rect.min_y; y <= rect.max_y; y++)
135133            for (x = rect.min_x; x <= rect.max_x; x++)
136               if (colortable_entry_get_value(screen.machine().colortable, state->m_helper.pix16(y, x)) != 0)
137                  state->m_collision[i] = 1;
134               if (colortable_entry_get_value(screen.machine().colortable, m_helper.pix16(y, x)) != 0)
135                  m_collision[i] = 1;
138136      }
139137
140138      /* update sound status */
trunk/src/mame/video/appoooh.c
r17967r17968
265265}
266266
267267
268SCREEN_UPDATE_IND16( appoooh )
268UINT32 appoooh_state::screen_update_appoooh(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
269269{
270   appoooh_state *state = screen.machine().driver_data<appoooh_state>();
271   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
270   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
272271
273   if (state->m_priority == 0)   /* fg behind sprites */
274      state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
272   if (m_priority == 0)   /* fg behind sprites */
273      m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
275274
276275   /* draw sprites */
277   if (state->m_priority == 1)
276   if (m_priority == 1)
278277   {
279278      /* sprite set #1 */
280      appoooh_draw_sprites(bitmap, cliprect, screen.machine().gfx[2], state->m_spriteram);
279      appoooh_draw_sprites(bitmap, cliprect, screen.machine().gfx[2], m_spriteram);
281280      /* sprite set #2 */
282      appoooh_draw_sprites(bitmap, cliprect, screen.machine().gfx[3], state->m_spriteram_2);
281      appoooh_draw_sprites(bitmap, cliprect, screen.machine().gfx[3], m_spriteram_2);
283282   }
284283   else
285284   {
286285      /* sprite set #2 */
287      appoooh_draw_sprites(bitmap, cliprect, screen.machine().gfx[3], state->m_spriteram_2);
286      appoooh_draw_sprites(bitmap, cliprect, screen.machine().gfx[3], m_spriteram_2);
288287      /* sprite set #1 */
289      appoooh_draw_sprites(bitmap, cliprect, screen.machine().gfx[2], state->m_spriteram);
288      appoooh_draw_sprites(bitmap, cliprect, screen.machine().gfx[2], m_spriteram);
290289   }
291290
292   if (state->m_priority != 0)   /* fg in front of sprites */
293      state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
291   if (m_priority != 0)   /* fg in front of sprites */
292      m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
294293
295294   return 0;
296295}
297296
298SCREEN_UPDATE_IND16( robowres )
297UINT32 appoooh_state::screen_update_robowres(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
299298{
300   appoooh_state *state = screen.machine().driver_data<appoooh_state>();
301   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
299   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
302300
303   if (state->m_priority == 0)   /* fg behind sprites */
304      state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
301   if (m_priority == 0)   /* fg behind sprites */
302      m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
305303
306304   /* draw sprites */
307   if (state->m_priority == 1)
305   if (m_priority == 1)
308306   {
309307      /* sprite set #1 */
310      robowres_draw_sprites(bitmap, cliprect, screen.machine().gfx[2], state->m_spriteram);
308      robowres_draw_sprites(bitmap, cliprect, screen.machine().gfx[2], m_spriteram);
311309      /* sprite set #2 */
312      robowres_draw_sprites(bitmap, cliprect, screen.machine().gfx[3], state->m_spriteram_2);
310      robowres_draw_sprites(bitmap, cliprect, screen.machine().gfx[3], m_spriteram_2);
313311   }
314312   else
315313   {
316314      /* sprite set #2 */
317      robowres_draw_sprites(bitmap, cliprect, screen.machine().gfx[3], state->m_spriteram_2);
315      robowres_draw_sprites(bitmap, cliprect, screen.machine().gfx[3], m_spriteram_2);
318316      /* sprite set #1 */
319      robowres_draw_sprites(bitmap, cliprect, screen.machine().gfx[2], state->m_spriteram);
317      robowres_draw_sprites(bitmap, cliprect, screen.machine().gfx[2], m_spriteram);
320318   }
321319
322   if (state->m_priority != 0)   /* fg in front of sprites */
323      state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
320   if (m_priority != 0)   /* fg in front of sprites */
321      m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
324322
325323   return 0;
326324}
trunk/src/mame/video/skyraid.c
r17967r17968
132132}
133133
134134
135SCREEN_UPDATE_IND16( skyraid )
135UINT32 skyraid_state::screen_update_skyraid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
136136{
137   skyraid_state *state = screen.machine().driver_data<skyraid_state>();
138137
139138   bitmap.fill(0, cliprect);
140139
141140   rectangle helper_clip = cliprect;
142   helper_clip &= state->m_helper.cliprect();
141   helper_clip &= m_helper.cliprect();
143142
144   draw_terrain(screen.machine(), state->m_helper, helper_clip);
145   draw_sprites(screen.machine(), state->m_helper, helper_clip);
146   draw_missiles(screen.machine(), state->m_helper, helper_clip);
147   draw_trapezoid(screen.machine(), bitmap, state->m_helper);
143   draw_terrain(screen.machine(), m_helper, helper_clip);
144   draw_sprites(screen.machine(), m_helper, helper_clip);
145   draw_missiles(screen.machine(), m_helper, helper_clip);
146   draw_trapezoid(screen.machine(), bitmap, m_helper);
148147   draw_text(screen.machine(), bitmap, cliprect);
149148   return 0;
150149}
trunk/src/mame/video/travrusa.c
r17967r17968
329329}
330330
331331
332SCREEN_UPDATE_IND16( travrusa )
332UINT32 travrusa_state::screen_update_travrusa(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
333333{
334   travrusa_state *state = screen.machine().driver_data<travrusa_state>();
335   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
334   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
336335   draw_sprites(screen.machine(), bitmap,cliprect);
337   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
336   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
338337   return 0;
339338}
trunk/src/mame/video/aliens.c
r17967r17968
7272
7373***************************************************************************/
7474
75SCREEN_UPDATE_IND16( aliens )
75UINT32 aliens_state::screen_update_aliens(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
7676{
77   aliens_state *state = screen.machine().driver_data<aliens_state>();
7877
79   k052109_tilemap_update(state->m_k052109);
78   k052109_tilemap_update(m_k052109);
8079
8180   screen.machine().priority_bitmap.fill(0, cliprect);
82   bitmap.fill(state->m_layer_colorbase[1] * 16, cliprect);
81   bitmap.fill(m_layer_colorbase[1] * 16, cliprect);
8382
84   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 1, 0, 1);
85   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 2, 0, 2);
86   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 0, 0, 4);
83   k052109_tilemap_draw(m_k052109, bitmap, cliprect, 1, 0, 1);
84   k052109_tilemap_draw(m_k052109, bitmap, cliprect, 2, 0, 2);
85   k052109_tilemap_draw(m_k052109, bitmap, cliprect, 0, 0, 4);
8786
88   k051960_sprites_draw(state->m_k051960, bitmap, cliprect, -1, -1);
87   k051960_sprites_draw(m_k051960, bitmap, cliprect, -1, -1);
8988   return 0;
9089}
trunk/src/mame/video/metlclsh.c
r17967r17968
235235
236236***************************************************************************/
237237
238SCREEN_UPDATE_IND16( metlclsh )
238UINT32 metlclsh_state::screen_update_metlclsh(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
239239{
240   metlclsh_state *state = screen.machine().driver_data<metlclsh_state>();
241240
242241   bitmap.fill(0x10, cliprect);
243242
244   state->m_fg_tilemap->draw(bitmap, cliprect, 1, 0);   // low priority tiles of foreground
243   m_fg_tilemap->draw(bitmap, cliprect, 1, 0);   // low priority tiles of foreground
245244
246   if (state->m_scrollx[0] & 0x08)               // background (if enabled)
245   if (m_scrollx[0] & 0x08)               // background (if enabled)
247246   {
248247      /* The background seems to be always flipped along x */
249      state->m_bg_tilemap->set_flip((state->flip_screen() ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0) ^ TILEMAP_FLIPX);
250      state->m_bg_tilemap->set_scrollx(0, state->m_scrollx[1] + ((state->m_scrollx[0] & 0x02) << 7) );
251      state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
248      m_bg_tilemap->set_flip((flip_screen() ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0) ^ TILEMAP_FLIPX);
249      m_bg_tilemap->set_scrollx(0, m_scrollx[1] + ((m_scrollx[0] & 0x02) << 7) );
250      m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
252251   }
253252   draw_sprites(screen.machine(), bitmap, cliprect);         // sprites
254   state->m_fg_tilemap->draw(bitmap, cliprect, 2, 0);   // high priority tiles of foreground
253   m_fg_tilemap->draw(bitmap, cliprect, 2, 0);   // high priority tiles of foreground
255254
256//  popmessage("%02X", state->m_scrollx[0]);
255//  popmessage("%02X", m_scrollx[0]);
257256   return 0;
258257}
259258
trunk/src/mame/video/88games.c
r17967r17968
5454
5555***************************************************************************/
5656
57SCREEN_UPDATE_IND16( 88games )
57UINT32 _88games_state::screen_update_88games(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
5858{
59   _88games_state *state = screen.machine().driver_data<_88games_state>();
6059
61   k052109_tilemap_update(state->m_k052109);
60   k052109_tilemap_update(m_k052109);
6261
63   if (state->m_k88games_priority)
62   if (m_k88games_priority)
6463   {
65      k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0);   // tile 0
66      k051960_sprites_draw(state->m_k051960, bitmap,cliprect, 1, 1);
67      k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 2, 0, 0);   // tile 2
68      k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 1, 0, 0);   // tile 1
69      k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 0, 0);
70      k051316_zoom_draw(state->m_k051316, bitmap, cliprect, 0, 0);
64      k052109_tilemap_draw(m_k052109, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0);   // tile 0
65      k051960_sprites_draw(m_k051960, bitmap,cliprect, 1, 1);
66      k052109_tilemap_draw(m_k052109, bitmap, cliprect, 2, 0, 0);   // tile 2
67      k052109_tilemap_draw(m_k052109, bitmap, cliprect, 1, 0, 0);   // tile 1
68      k051960_sprites_draw(m_k051960, bitmap, cliprect, 0, 0);
69      k051316_zoom_draw(m_k051316, bitmap, cliprect, 0, 0);
7170   }
7271   else
7372   {
74      k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE, 0);   // tile 2
75      k051316_zoom_draw(state->m_k051316, bitmap, cliprect, 0, 0);
76      k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 0, 0);
77      k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 1, 0, 0);   // tile 1
78      k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 1, 1);
79      k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 0, 0, 0);   // tile 0
73      k052109_tilemap_draw(m_k052109, bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE, 0);   // tile 2
74      k051316_zoom_draw(m_k051316, bitmap, cliprect, 0, 0);
75      k051960_sprites_draw(m_k051960, bitmap, cliprect, 0, 0);
76      k052109_tilemap_draw(m_k052109, bitmap, cliprect, 1, 0, 0);   // tile 1
77      k051960_sprites_draw(m_k051960, bitmap, cliprect, 1, 1);
78      k052109_tilemap_draw(m_k052109, bitmap, cliprect, 0, 0, 0);   // tile 0
8079   }
8180
8281   return 0;
trunk/src/mame/video/beezer.c
r17967r17968
1919   #endif
2020}
2121
22SCREEN_UPDATE_IND16( beezer )
22UINT32 beezer_state::screen_update_beezer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
2323{
24   beezer_state *state = screen.machine().driver_data<beezer_state>();
25   UINT8 *videoram = state->m_videoram;
24   UINT8 *videoram = m_videoram;
2625   int x,y;
2726
2827   for (y = cliprect.min_y; y <= cliprect.max_y; y++)
trunk/src/mame/video/kaneko16.c
r17967r17968
4444
4545}
4646
47static SCREEN_UPDATE_IND16( common )
47UINT32 kaneko16_state::screen_update_common(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
4848{
4949   int i;
50   kaneko16_state *state = screen.machine().driver_data<kaneko16_state>();
5150
5251   screen.machine().priority_bitmap.fill(0, cliprect);
5352
54   if (state->m_view2_0) state->m_view2_0->kaneko16_prepare(bitmap, cliprect);
55   if (state->m_view2_1) state->m_view2_1->kaneko16_prepare(bitmap, cliprect);
53   if (m_view2_0) m_view2_0->kaneko16_prepare(bitmap, cliprect);
54   if (m_view2_1) m_view2_1->kaneko16_prepare(bitmap, cliprect);
5655
5756   for ( i = 0; i < 8; i++ )
5857   {
59      if (state->m_view2_0) state->m_view2_0->render_tilemap_chip(bitmap,cliprect,i);
60      if (state->m_view2_1) state->m_view2_1->render_tilemap_chip_alt(bitmap,cliprect,i, state->VIEW2_2_pri);
58      if (m_view2_0) m_view2_0->render_tilemap_chip(bitmap,cliprect,i);
59      if (m_view2_1) m_view2_1->render_tilemap_chip_alt(bitmap,cliprect,i, VIEW2_2_pri);
6160   }
6261
6362   return 0;
r17967r17968
6766
6867
6968
70SCREEN_UPDATE_IND16( kaneko16 )
69UINT32 kaneko16_state::screen_update_kaneko16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
7170{
72   kaneko16_state *state = screen.machine().driver_data<kaneko16_state>();
7371   kaneko16_fill_bitmap(screen.machine(),bitmap,cliprect);
7472
7573   // if the display is disabled, do nothing?
76   if (!state->m_disp_enable) return 0;
74   if (!m_disp_enable) return 0;
7775
78   SCREEN_UPDATE16_CALL(common);
79   state->m_kaneko_spr->kaneko16_render_sprites(screen.machine(),bitmap,cliprect, state->m_spriteram, state->m_spriteram.bytes());
76   SCREEN_UPDATE16_CALL_MEMBER(common);
77   m_kaneko_spr->kaneko16_render_sprites(screen.machine(),bitmap,cliprect, m_spriteram, m_spriteram.bytes());
8078   return 0;
8179}
8280
r17967r17968
191189//      flag = 0;
192190   }
193191}
194SCREEN_UPDATE_IND16(berlwall)
192UINT32 kaneko16_berlwall_state::screen_update_berlwall(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
195193{
196   kaneko16_state *state = screen.machine().driver_data<kaneko16_state>();
197194   // berlwall uses a 15bpp bitmap as a bg, not a solid fill
198195   kaneko16_render_15bpp_bitmap(screen.machine(),bitmap,cliprect);
199196
200197   // if the display is disabled, do nothing?
201   if (!state->m_disp_enable) return 0;
198   if (!m_disp_enable) return 0;
202199
203   SCREEN_UPDATE16_CALL(common);
204   state->m_kaneko_spr->kaneko16_render_sprites(screen.machine(),bitmap,cliprect, state->m_spriteram, state->m_spriteram.bytes());
200   SCREEN_UPDATE16_CALL_MEMBER(common);
201   m_kaneko_spr->kaneko16_render_sprites(screen.machine(),bitmap,cliprect, m_spriteram, m_spriteram.bytes());
205202   return 0;
206203}
trunk/src/mame/video/goldstar.c
r17967r17968
362362
363363
364364
365SCREEN_UPDATE_IND16( goldstar )
365UINT32 goldstar_state::screen_update_goldstar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
366366{
367   goldstar_state *state = screen.machine().driver_data<goldstar_state>();
368367   int i;
369368
370369   bitmap.fill(get_black_pen(screen.machine()), cliprect);
371370
372   if (!(state->m_cm_enable_reg &0x01))
371   if (!(m_cm_enable_reg &0x01))
373372      return 0;
374373
375   if (state->m_cm_enable_reg &0x08)
374   if (m_cm_enable_reg &0x08)
376375   {
377376      for (i= 0;i < 64;i++)
378377      {
379         state->m_reel1_tilemap->set_scrolly(i, state->m_reel1_scroll[i]);
380         state->m_reel2_tilemap->set_scrolly(i, state->m_reel2_scroll[i]);
381         state->m_reel3_tilemap->set_scrolly(i, state->m_reel3_scroll[i]);
378         m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i]);
379         m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i]);
380         m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i]);
382381      }
383382
384383
r17967r17968
387386      const rectangle visible2(0*8, (14+48)*8-1, 12*8, (12+7)*8-1);
388387      const rectangle visible3(0*8, (14+48)*8-1, 20*8, (20+7)*8-1);
389388
390      state->m_reel1_tilemap->draw(bitmap, visible1, 0, 0);
391      state->m_reel2_tilemap->draw(bitmap, visible2, 0, 0);
392      state->m_reel3_tilemap->draw(bitmap, visible3, 0, 0);
389      m_reel1_tilemap->draw(bitmap, visible1, 0, 0);
390      m_reel2_tilemap->draw(bitmap, visible2, 0, 0);
391      m_reel3_tilemap->draw(bitmap, visible3, 0, 0);
393392   }
394393
395   if (state->m_cm_enable_reg &0x04)
394   if (m_cm_enable_reg &0x04)
396395   {
397396      if (screen.machine().root_device().memregion("user1")->base())
398397      {
399398         gfx_element *gfx = screen.machine().gfx[2];
400         int girlyscroll = (INT8)((state->m_cm_girl_scroll & 0xf0));
401         int girlxscroll = (INT8)((state->m_cm_girl_scroll & 0x0f)<<4);
399         int girlyscroll = (INT8)((m_cm_girl_scroll & 0xf0));
400         int girlxscroll = (INT8)((m_cm_girl_scroll & 0x0f)<<4);
402401
403         drawgfxzoom_transpen(bitmap,cliprect,gfx,state->m_cmaster_girl_num,state->m_cmaster_girl_pal,0,0,-(girlxscroll*2),-(girlyscroll), 0x20000, 0x10000,0);
402         drawgfxzoom_transpen(bitmap,cliprect,gfx,m_cmaster_girl_num,m_cmaster_girl_pal,0,0,-(girlxscroll*2),-(girlyscroll), 0x20000, 0x10000,0);
404403      }
405404   }
406405
407   if (state->m_cm_enable_reg &0x02)
406   if (m_cm_enable_reg &0x02)
408407   {
409      state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
408      m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
410409   }
411410
412411   return 0;
413412}
414413
415414
416SCREEN_UPDATE_IND16( bingowng )
415UINT32 goldstar_state::screen_update_bingowng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
417416{
418   goldstar_state *state = screen.machine().driver_data<goldstar_state>();
419417   int i;
420418
421419   bitmap.fill(get_black_pen(screen.machine()), cliprect);
422420
423   if (!(state->m_cm_enable_reg &0x01))
421   if (!(m_cm_enable_reg &0x01))
424422      return 0;
425423
426   if (state->m_cm_enable_reg &0x08)
424   if (m_cm_enable_reg &0x08)
427425   {
428426      for (i= 0;i < 64;i++)
429427      {
430         state->m_reel1_tilemap->set_scrolly(i, state->m_reel1_scroll[i]);
428         m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i]);
431429      }
432430
433431
434432      const rectangle visible1(0*8, (14+48)*8-1,  3*8,  (4+7)*8-1);
435      state->m_reel1_tilemap->draw(bitmap, visible1, 0, 0);
433      m_reel1_tilemap->draw(bitmap, visible1, 0, 0);
436434   }
437435
438   if (state->m_cm_enable_reg &0x04)
436   if (m_cm_enable_reg &0x04)
439437   {
440438      if (screen.machine().root_device().memregion("user1")->base())
441439      {
442440         gfx_element *gfx = screen.machine().gfx[2];
443         int girlyscroll = (INT8)((state->m_cm_girl_scroll & 0xf0));
444         int girlxscroll = (INT8)((state->m_cm_girl_scroll & 0x0f)<<4);
441         int girlyscroll = (INT8)((m_cm_girl_scroll & 0xf0));
442         int girlxscroll = (INT8)((m_cm_girl_scroll & 0x0f)<<4);
445443
446         drawgfxzoom_transpen(bitmap,cliprect,gfx,state->m_cmaster_girl_num,state->m_cmaster_girl_pal,0,0,-(girlxscroll*2),-(girlyscroll), 0x20000, 0x10000,0);
444         drawgfxzoom_transpen(bitmap,cliprect,gfx,m_cmaster_girl_num,m_cmaster_girl_pal,0,0,-(girlxscroll*2),-(girlyscroll), 0x20000, 0x10000,0);
447445      }
448446   }
449447
450   if (state->m_cm_enable_reg &0x02)
448   if (m_cm_enable_reg &0x02)
451449   {
452      state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
450      m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
453451   }
454452
455453   return 0;
456454}
457455
458456
459SCREEN_UPDATE_IND16( magical )
457UINT32 goldstar_state::screen_update_magical(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
460458{
461   goldstar_state *state = screen.machine().driver_data<goldstar_state>();
462459   int i;
463460
464461   bitmap.fill(get_black_pen(screen.machine()), cliprect);
465462
466   if (!(state->m_cm_enable_reg &0x01))
463   if (!(m_cm_enable_reg &0x01))
467464      return 0;
468465
469   if (state->m_cm_enable_reg &0x08)
466   if (m_cm_enable_reg &0x08)
470467   {
471468      // guess, could be wrong, but different screens clearly need different reel layouts
472      if (state->m_unkch_vidreg & 2)
469      if (m_unkch_vidreg & 2)
473470      {
474471         for (i= 0;i < 32;i++)
475472         {
476            state->m_reel1_tilemap->set_scrolly(i, state->m_reel1_scroll[i*2]);
477            state->m_reel2_tilemap->set_scrolly(i, state->m_reel2_scroll[i*2]);
478         //  state->m_reel3_tilemap->set_scrolly(i, state->m_reel3_scroll[i*2]);
473            m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i*2]);
474            m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i*2]);
475         //  m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i*2]);
479476         }
480477
481478
482479         const rectangle visible1alt(0*8, (16+48)*8-1,  4*8,  16*8-1);
483480         const rectangle visible2alt(0*8, (16+48)*8-1, 16*8,  28*8-1);
484481
485         state->m_reel1_tilemap->draw(bitmap, visible1alt, 0, 0);
486         state->m_reel2_tilemap->draw(bitmap, visible2alt, 0, 0);
487         //state->m_reel3_tilemap->draw(bitmap, &magical_visible3, 0, 0);
482         m_reel1_tilemap->draw(bitmap, visible1alt, 0, 0);
483         m_reel2_tilemap->draw(bitmap, visible2alt, 0, 0);
484         //m_reel3_tilemap->draw(bitmap, &magical_visible3, 0, 0);
488485      }
489486      else
490487      {
491488         for (i= 0;i < 32;i++)
492489         {
493            state->m_reel1_tilemap->set_scrolly(i, state->m_reel1_scroll[i*2]);
494            state->m_reel2_tilemap->set_scrolly(i, state->m_reel2_scroll[i*2]);
495            state->m_reel3_tilemap->set_scrolly(i, state->m_reel3_scroll[i*2]);
490            m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i*2]);
491            m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i*2]);
492            m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i*2]);
496493         }
497494
498495
r17967r17968
500497         const rectangle visible2(0*8, (14+48)*8-1, 12*8, (12+8)*8-1);
501498         const rectangle visible3(0*8, (14+48)*8-1, 20*8, (20+8)*8-1);
502499
503         state->m_reel1_tilemap->draw(bitmap, visible1, 0, 0);
504         state->m_reel2_tilemap->draw(bitmap, visible2, 0, 0);
505         state->m_reel3_tilemap->draw(bitmap, visible3, 0, 0);
500         m_reel1_tilemap->draw(bitmap, visible1, 0, 0);
501         m_reel2_tilemap->draw(bitmap, visible2, 0, 0);
502         m_reel3_tilemap->draw(bitmap, visible3, 0, 0);
506503      }
507504   }
508505
509   if (state->m_cm_enable_reg &0x02)
506   if (m_cm_enable_reg &0x02)
510507   {
511      state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
508      m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
512509   }
513510
514511   return 0;
515512}
516513
517514
518SCREEN_UPDATE_IND16( unkch )
515UINT32 goldstar_state::screen_update_unkch(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
519516{
520   goldstar_state *state = screen.machine().driver_data<goldstar_state>();
521517   int i;
522518
523519   bitmap.fill(get_black_pen(screen.machine()), cliprect);
524520
525   if (!(state->m_cm_enable_reg &0x01))
521   if (!(m_cm_enable_reg &0x01))
526522      return 0;
527523
528   if (state->m_cm_enable_reg &0x08)
524   if (m_cm_enable_reg &0x08)
529525   {
530526      // guess, this could be something else completely!!
531527      // only draw the first 'reels' tilemap, but fullscreen, using alt registers? (or no scrolling at all? - doubtful, see girl)
532      if (state->m_unkch_vidreg & 0x40)
528      if (m_unkch_vidreg & 0x40)
533529      {
534530         for (i= 0;i < 32;i++)
535531         {
536            state->m_reel1_tilemap->set_scrolly(i, -0x08/*state->m_reel1_scroll[(i*2)+1]*/);
537         //  state->m_reel2_tilemap->set_scrolly(i, state->m_reel2_scroll[(i*2)+1]);
538         //  state->m_reel3_tilemap->set_scrolly(i, state->m_reel3_scroll[(i*2)+1]);
532            m_reel1_tilemap->set_scrolly(i, -0x08/*m_reel1_scroll[(i*2)+1]*/);
533         //  m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[(i*2)+1]);
534         //  m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[(i*2)+1]);
539535         }
540536
541         state->m_reel1_tilemap->draw(bitmap, cliprect, 0, 0);
537         m_reel1_tilemap->draw(bitmap, cliprect, 0, 0);
542538
543539      }
544540      // or draw the reels normally?
r17967r17968
546542      {
547543         for (i= 0;i < 32;i++)
548544         {
549            state->m_reel1_tilemap->set_scrolly(i, state->m_reel1_scroll[i*2]);
550            state->m_reel2_tilemap->set_scrolly(i, state->m_reel2_scroll[i*2]);
551            state->m_reel3_tilemap->set_scrolly(i, state->m_reel3_scroll[i*2]);
545            m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i*2]);
546            m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i*2]);
547            m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i*2]);
552548         }
553549
554550         const rectangle visible1(0*8, (14+48)*8-1,  3*8,  (3+7)*8-1);
555551         const rectangle visible2(0*8, (14+48)*8-1, 10*8, (10+7)*8-1);
556552         const rectangle visible3(0*8, (14+48)*8-1, 17*8, (17+7)*8-1);
557553
558         state->m_reel1_tilemap->draw(bitmap, visible1, 0, 0);
559         state->m_reel2_tilemap->draw(bitmap, visible2, 0, 0);
560         state->m_reel3_tilemap->draw(bitmap, visible3, 0, 0);
554         m_reel1_tilemap->draw(bitmap, visible1, 0, 0);
555         m_reel2_tilemap->draw(bitmap, visible2, 0, 0);
556         m_reel3_tilemap->draw(bitmap, visible3, 0, 0);
561557      }
562558   }
563559
564   if (state->m_cm_enable_reg &0x02)
560   if (m_cm_enable_reg &0x02)
565561   {
566      state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
562      m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
567563   }
568564
569565   return 0;
570566}
571567
572SCREEN_UPDATE_IND16( cmast91 )
568UINT32 goldstar_state::screen_update_cmast91(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
573569{
574   goldstar_state *state = screen.machine().driver_data<goldstar_state>();
575570   int i;
576571
577572   bitmap.fill(get_black_pen(screen.machine()), cliprect);
578573
579   if (!(state->m_cm_enable_reg &0x01))
574   if (!(m_cm_enable_reg &0x01))
580575      return 0;
581576
582   if (state->m_cm_enable_reg &0x08)
577   if (m_cm_enable_reg &0x08)
583578   {
584579      for (i= 0;i < 64;i++)
585580      {
586         state->m_reel1_tilemap->set_scrolly(i, state->m_reel1_scroll[i]);
587         state->m_reel2_tilemap->set_scrolly(i, state->m_reel2_scroll[i]);
588         state->m_reel3_tilemap->set_scrolly(i, state->m_reel3_scroll[i]);
581         m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i]);
582         m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i]);
583         m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i]);
589584      }
590585
591586      const rectangle visible1(0*8, (14+48)*8-1, 4*8,  (4+7)*8-1);   /* same start for reel1 */
592587      const rectangle visible2(0*8, (14+48)*8-1, 11*8, (12+7)*8-1);   /* 4 pixels less for reel2 */
593588      const rectangle visible3(0*8, (14+48)*8-1, 19*8, (19+7)*8-1);   /* 8 pixels less for reel3 */
594589
595      state->m_reel1_tilemap->draw(bitmap, visible1, 0, 0);
596      state->m_reel2_tilemap->draw(bitmap, visible2, 0, 0);
597      state->m_reel3_tilemap->draw(bitmap, visible3, 0, 0);
590      m_reel1_tilemap->draw(bitmap, visible1, 0, 0);
591      m_reel2_tilemap->draw(bitmap, visible2, 0, 0);
592      m_reel3_tilemap->draw(bitmap, visible3, 0, 0);
598593   }
599594
600   if (state->m_cm_enable_reg &0x02)
595   if (m_cm_enable_reg &0x02)
601596   {
602      state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
597      m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
603598   }
604599
605600   return 0;
606601}
607602
608SCREEN_UPDATE_IND16( amcoe1a )
603UINT32 goldstar_state::screen_update_amcoe1a(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
609604{
610   goldstar_state *state = screen.machine().driver_data<goldstar_state>();
611605   int i;
612606
613607   bitmap.fill(get_black_pen(screen.machine()), cliprect);
614608
615   if (!(state->m_cm_enable_reg &0x01))
609   if (!(m_cm_enable_reg &0x01))
616610      return 0;
617611
618   if (state->m_cm_enable_reg &0x08)
612   if (m_cm_enable_reg &0x08)
619613   {
620614      for (i= 0;i < 64;i++)
621615      {
622         state->m_reel1_tilemap->set_scrolly(i, state->m_reel1_scroll[i]);
623         state->m_reel2_tilemap->set_scrolly(i, state->m_reel2_scroll[i]);
624         state->m_reel3_tilemap->set_scrolly(i, state->m_reel3_scroll[i]);
616         m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i]);
617         m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i]);
618         m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i]);
625619      }
626620
627621      const rectangle visible1(0*8, (14+48)*8-1,  4*8,  (4+6)*8-1);
628622      const rectangle visible2(0*8, (14+48)*8-1, 10*8, (10+6)*8-1);
629623      const rectangle visible3(0*8, (14+48)*8-1, 16*8, (16+6)*8-1);
630624
631      state->m_reel1_tilemap->draw(bitmap, visible1, 0, 0);
632      state->m_reel2_tilemap->draw(bitmap, visible2, 0, 0);
633      state->m_reel3_tilemap->draw(bitmap, visible3, 0, 0);
625      m_reel1_tilemap->draw(bitmap, visible1, 0, 0);
626      m_reel2_tilemap->draw(bitmap, visible2, 0, 0);
627      m_reel3_tilemap->draw(bitmap, visible3, 0, 0);
634628   }
635629
636   if (state->m_cm_enable_reg &0x04)
630   if (m_cm_enable_reg &0x04)
637631   {
638632      // no girls
639633   }
640634
641   if (state->m_cm_enable_reg &0x02)
635   if (m_cm_enable_reg &0x02)
642636   {
643      state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
637      m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
644638   }
645639
646640   return 0;
trunk/src/mame/video/dbz.c
r17967r17968
9292   k053247_set_sprite_offs(m_k053246, -87, 32);
9393}
9494
95SCREEN_UPDATE_IND16( dbz )
95UINT32 dbz_state::screen_update_dbz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
9696{
97   dbz_state *state = screen.machine().driver_data<dbz_state>();
9897   static const int K053251_CI[6] = { K053251_CI3, K053251_CI4, K053251_CI4, K053251_CI4, K053251_CI2, K053251_CI1 };
9998   int layer[5], plane, new_colorbase;
10099
101   state->m_sprite_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI0);
100   m_sprite_colorbase = k053251_get_palette_index(m_k053251, K053251_CI0);
102101
103102   for (plane = 0; plane < 6; plane++)
104103   {
105      new_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI[plane]);
106      if (state->m_layer_colorbase[plane] != new_colorbase)
104      new_colorbase = k053251_get_palette_index(m_k053251, K053251_CI[plane]);
105      if (m_layer_colorbase[plane] != new_colorbase)
107106      {
108         state->m_layer_colorbase[plane] = new_colorbase;
107         m_layer_colorbase[plane] = new_colorbase;
109108         if (plane <= 3)
110            k056832_mark_plane_dirty(state->m_k056832, plane);
109            k056832_mark_plane_dirty(m_k056832, plane);
111110         else if (plane == 4)
112            state->m_bg1_tilemap->mark_all_dirty();
111            m_bg1_tilemap->mark_all_dirty();
113112         else if (plane == 5)
114            state->m_bg2_tilemap->mark_all_dirty();
113            m_bg2_tilemap->mark_all_dirty();
115114      }
116115   }
117116
118117   //layers priority
119118
120119   layer[0] = 0;
121   state->m_layerpri[0] = k053251_get_priority(state->m_k053251, K053251_CI3);
120   m_layerpri[0] = k053251_get_priority(m_k053251, K053251_CI3);
122121   layer[1] = 1;
123   state->m_layerpri[1] = k053251_get_priority(state->m_k053251, K053251_CI4);
122   m_layerpri[1] = k053251_get_priority(m_k053251, K053251_CI4);
124123   layer[2] = 3;
125   state->m_layerpri[2] = k053251_get_priority(state->m_k053251, K053251_CI0);
124   m_layerpri[2] = k053251_get_priority(m_k053251, K053251_CI0);
126125   layer[3] = 4;
127   state->m_layerpri[3] = k053251_get_priority(state->m_k053251, K053251_CI2);
126   m_layerpri[3] = k053251_get_priority(m_k053251, K053251_CI2);
128127   layer[4] = 5;
129   state->m_layerpri[4] = k053251_get_priority(state->m_k053251, K053251_CI1);
128   m_layerpri[4] = k053251_get_priority(m_k053251, K053251_CI1);
130129
131   konami_sortlayers5(layer, state->m_layerpri);
130   konami_sortlayers5(layer, m_layerpri);
132131
133132   screen.machine().priority_bitmap.fill(0, cliprect);
134133
r17967r17968
148147      }
149148
150149      if(layer[plane] == 4)
151         k053936_zoom_draw(state->m_k053936_2, bitmap, cliprect, state->m_bg1_tilemap, flag, pri, 1);
150         k053936_zoom_draw(m_k053936_2, bitmap, cliprect, m_bg1_tilemap, flag, pri, 1);
152151      else if(layer[plane] == 5)
153         k053936_zoom_draw(state->m_k053936_1, bitmap, cliprect, state->m_bg2_tilemap, flag, pri, 1);
152         k053936_zoom_draw(m_k053936_1, bitmap, cliprect, m_bg2_tilemap, flag, pri, 1);
154153      else
155         k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, layer[plane], flag, pri);
154         k056832_tilemap_draw(m_k056832, bitmap, cliprect, layer[plane], flag, pri);
156155   }
157156
158   k053247_sprites_draw(state->m_k053246, bitmap, cliprect);
157   k053247_sprites_draw(m_k053246, bitmap, cliprect);
159158   return 0;
160159}
161160
trunk/src/mame/video/wc90.c
r17967r17968
335335#undef WC90_DRAW_SPRITE
336336
337337
338SCREEN_UPDATE_IND16( wc90 )
338UINT32 wc90_state::screen_update_wc90(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
339339{
340   wc90_state *state = screen.machine().driver_data<wc90_state>();
341   state->m_bg_tilemap->set_scrollx(0,state->m_scroll2xlo[0] + 256 * state->m_scroll2xhi[0]);
342   state->m_bg_tilemap->set_scrolly(0,state->m_scroll2ylo[0] + 256 * state->m_scroll2yhi[0]);
343   state->m_fg_tilemap->set_scrollx(0,state->m_scroll1xlo[0] + 256 * state->m_scroll1xhi[0]);
344   state->m_fg_tilemap->set_scrolly(0,state->m_scroll1ylo[0] + 256 * state->m_scroll1yhi[0]);
345   state->m_tx_tilemap->set_scrollx(0,state->m_scroll0xlo[0] + 256 * state->m_scroll0xhi[0]);
346   state->m_tx_tilemap->set_scrolly(0,state->m_scroll0ylo[0] + 256 * state->m_scroll0yhi[0]);
340   m_bg_tilemap->set_scrollx(0,m_scroll2xlo[0] + 256 * m_scroll2xhi[0]);
341   m_bg_tilemap->set_scrolly(0,m_scroll2ylo[0] + 256 * m_scroll2yhi[0]);
342   m_fg_tilemap->set_scrollx(0,m_scroll1xlo[0] + 256 * m_scroll1xhi[0]);
343   m_fg_tilemap->set_scrolly(0,m_scroll1ylo[0] + 256 * m_scroll1yhi[0]);
344   m_tx_tilemap->set_scrollx(0,m_scroll0xlo[0] + 256 * m_scroll0xhi[0]);
345   m_tx_tilemap->set_scrolly(0,m_scroll0ylo[0] + 256 * m_scroll0yhi[0]);
347346
348347//  draw_sprites(screen.machine(), bitmap,cliprect, 3 );
349   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
348   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
350349   draw_sprites(screen.machine(), bitmap,cliprect, 2 );
351   state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
350   m_fg_tilemap->draw(bitmap, cliprect, 0,0);
352351   draw_sprites(screen.machine(), bitmap,cliprect, 1 );
353   state->m_tx_tilemap->draw(bitmap, cliprect, 0,0);
352   m_tx_tilemap->draw(bitmap, cliprect, 0,0);
354353   draw_sprites(screen.machine(), bitmap,cliprect, 0 );
355354   return 0;
356355}
trunk/src/mame/video/gauntlet.c
r17967r17968
173173 *
174174 *************************************/
175175
176SCREEN_UPDATE_IND16( gauntlet )
176UINT32 gauntlet_state::screen_update_gauntlet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
177177{
178   gauntlet_state *state = screen.machine().driver_data<gauntlet_state>();
179178   atarimo_rect_list rectlist;
180179   bitmap_ind16 *mobitmap;
181180   int x, y, r;
182181
183182   /* draw the playfield */
184   state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
183   m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
185184
186185   /* draw and merge the MO */
187186   mobitmap = atarimo_render(0, cliprect, &rectlist);
r17967r17968
200199               if ((mo[x] & 0x0f) == 1)
201200               {
202201                  /* Vindicators Part II has extra logic here for the bases */
203                  if (!state->m_vindctr2_screen_refresh || (mo[x] & 0xf0) != 0)
202                  if (!m_vindctr2_screen_refresh || (mo[x] & 0xf0) != 0)
204203                     pf[x] ^= 0x80;
205204               }
206205               else
r17967r17968
212211      }
213212
214213   /* add the alpha on top */
215   state->m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
214   m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
216215   return 0;
217216}
trunk/src/mame/video/ms32.c
r17967r17968
348348
349349
350350
351SCREEN_UPDATE_RGB32( ms32 )
351UINT32 ms32_state::screen_update_ms32(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
352352{
353   ms32_state *state = screen.machine().driver_data<ms32_state>();
354353   int scrollx,scrolly;
355354   int asc_pri;
356355   int scr_pri;
r17967r17968
369368   for (i = 0;i < 0x10000;i++)   // colors 0x3000-0x3fff are not used
370369      update_color(screen.machine(), i);
371370
372   scrollx = state->m_tx_scroll[0x00/4] + state->m_tx_scroll[0x08/4] + 0x18;
373   scrolly = state->m_tx_scroll[0x0c/4] + state->m_tx_scroll[0x14/4];
374   state->m_tx_tilemap->set_scrollx(0, scrollx);
375   state->m_tx_tilemap->set_scrolly(0, scrolly);
371   scrollx = m_tx_scroll[0x00/4] + m_tx_scroll[0x08/4] + 0x18;
372   scrolly = m_tx_scroll[0x0c/4] + m_tx_scroll[0x14/4];
373   m_tx_tilemap->set_scrollx(0, scrollx);
374   m_tx_tilemap->set_scrolly(0, scrolly);
376375
377   scrollx = state->m_bg_scroll[0x00/4] + state->m_bg_scroll[0x08/4] + 0x10;
378   scrolly = state->m_bg_scroll[0x0c/4] + state->m_bg_scroll[0x14/4];
379   state->m_bg_tilemap->set_scrollx(0, scrollx);
380   state->m_bg_tilemap->set_scrolly(0, scrolly);
381   state->m_bg_tilemap_alt->set_scrollx(0, scrollx);
382   state->m_bg_tilemap_alt->set_scrolly(0, scrolly);
376   scrollx = m_bg_scroll[0x00/4] + m_bg_scroll[0x08/4] + 0x10;
377   scrolly = m_bg_scroll[0x0c/4] + m_bg_scroll[0x14/4];
378   m_bg_tilemap->set_scrollx(0, scrollx);
379   m_bg_tilemap->set_scrolly(0, scrolly);
380   m_bg_tilemap_alt->set_scrollx(0, scrollx);
381   m_bg_tilemap_alt->set_scrolly(0, scrolly);
383382
384383
385384   screen.machine().priority_bitmap.fill(0, cliprect);
r17967r17968
388387
389388   /* TODO: 0 is correct for gametngk, but break f1superb scrolling grid (text at
390389       top and bottom of the screen becomes black on black) */
391   state->m_temp_bitmap_tilemaps.fill(0, cliprect);   /* bg color */
390   m_temp_bitmap_tilemaps.fill(0, cliprect);   /* bg color */
392391
393392   /* clear our sprite bitmaps */
394   state->m_temp_bitmap_sprites.fill(0, cliprect);
395   state->m_temp_bitmap_sprites_pri.fill(0, cliprect);
393   m_temp_bitmap_sprites.fill(0, cliprect);
394   m_temp_bitmap_sprites_pri.fill(0, cliprect);
396395
397   draw_sprites(screen.machine(), state->m_temp_bitmap_sprites, state->m_temp_bitmap_sprites_pri, cliprect, state->m_sprram_16, 0x20000, 0, state->m_reverse_sprite_order);
396   draw_sprites(screen.machine(), m_temp_bitmap_sprites, m_temp_bitmap_sprites_pri, cliprect, m_sprram_16, 0x20000, 0, m_reverse_sprite_order);
398397
399398
400399
401400
402401   asc_pri = scr_pri = rot_pri = 0;
403402
404   if((state->m_priram_8[0x2b00 / 2] & 0x00ff) == 0x0034)
403   if((m_priram_8[0x2b00 / 2] & 0x00ff) == 0x0034)
405404      asc_pri++;
406405   else
407406      rot_pri++;
408407
409   if((state->m_priram_8[0x2e00 / 2] & 0x00ff) == 0x0034)
408   if((m_priram_8[0x2e00 / 2] & 0x00ff) == 0x0034)
410409      asc_pri++;
411410   else
412411      scr_pri++;
413412
414   if((state->m_priram_8[0x3a00 / 2] & 0x00ff) == 0x000c)
413   if((m_priram_8[0x3a00 / 2] & 0x00ff) == 0x000c)
415414      scr_pri++;
416415   else
417416      rot_pri++;
418417
419418   if (rot_pri == 0)
420      draw_roz(screen.machine(), state->m_temp_bitmap_tilemaps, cliprect, 1 << 1);
419      draw_roz(screen.machine(), m_temp_bitmap_tilemaps, cliprect, 1 << 1);
421420   else if (scr_pri == 0)
422      if (state->m_tilemaplayoutcontrol&1)
421      if (m_tilemaplayoutcontrol&1)
423422      {
424         state->m_bg_tilemap_alt->draw(state->m_temp_bitmap_tilemaps, cliprect, 0, 1 << 0);
423         m_bg_tilemap_alt->draw(m_temp_bitmap_tilemaps, cliprect, 0, 1 << 0);
425424      }
426425      else
427426      {
428         state->m_bg_tilemap->draw(state->m_temp_bitmap_tilemaps, cliprect, 0, 1 << 0);
427         m_bg_tilemap->draw(m_temp_bitmap_tilemaps, cliprect, 0, 1 << 0);
429428      }
430429   else if (asc_pri == 0)
431      state->m_tx_tilemap->draw(state->m_temp_bitmap_tilemaps, cliprect, 0, 1 << 2);
430      m_tx_tilemap->draw(m_temp_bitmap_tilemaps, cliprect, 0, 1 << 2);
432431
433432   if (rot_pri == 1)
434      draw_roz(screen.machine(), state->m_temp_bitmap_tilemaps, cliprect, 1 << 1);
433      draw_roz(screen.machine(), m_temp_bitmap_tilemaps, cliprect, 1 << 1);
435434   else if (scr_pri == 1)
436      if (state->m_tilemaplayoutcontrol&1)
435      if (m_tilemaplayoutcontrol&1)
437436      {
438         state->m_bg_tilemap_alt->draw(state->m_temp_bitmap_tilemaps, cliprect, 0, 1 << 0);
437         m_bg_tilemap_alt->draw(m_temp_bitmap_tilemaps, cliprect, 0, 1 << 0);
439438      }
440439      else
441440      {
442         state->m_bg_tilemap->draw(state->m_temp_bitmap_tilemaps, cliprect, 0, 1 << 0);
441         m_bg_tilemap->draw(m_temp_bitmap_tilemaps, cliprect, 0, 1 << 0);
443442      }
444443   else if (asc_pri == 1)
445      state->m_tx_tilemap->draw(state->m_temp_bitmap_tilemaps, cliprect, 0, 1 << 2);
444      m_tx_tilemap->draw(m_temp_bitmap_tilemaps, cliprect, 0, 1 << 2);
446445
447446   if (rot_pri == 2)
448      draw_roz(screen.machine(), state->m_temp_bitmap_tilemaps, cliprect, 1 << 1);
447      draw_roz(screen.machine(), m_temp_bitmap_tilemaps, cliprect, 1 << 1);
449448   else if (scr_pri == 2)
450      if (state->m_tilemaplayoutcontrol&1)
449      if (m_tilemaplayoutcontrol&1)
451450      {
452         state->m_bg_tilemap_alt->draw(state->m_temp_bitmap_tilemaps, cliprect, 0, 1 << 0);
451         m_bg_tilemap_alt->draw(m_temp_bitmap_tilemaps, cliprect, 0, 1 << 0);
453452      }
454453      else
455454      {
456         state->m_bg_tilemap->draw(state->m_temp_bitmap_tilemaps, cliprect, 0, 1 << 0);
455         m_bg_tilemap->draw(m_temp_bitmap_tilemaps, cliprect, 0, 1 << 0);
457456      }
458457   else if (asc_pri == 2)
459      state->m_tx_tilemap->draw(state->m_temp_bitmap_tilemaps, cliprect, 0, 1 << 2);
458      m_tx_tilemap->draw(m_temp_bitmap_tilemaps, cliprect, 0, 1 << 2);
460459
461460   /* MIX it! */
462461   /* this mixing isn't 100% accurate, it should be using ALL the data in
r17967r17968
479478
480479      for (yy=0;yy<height;yy++)
481480      {
482         srcptr_tile =     &state->m_temp_bitmap_tilemaps.pix16(yy);
481         srcptr_tile =     &m_temp_bitmap_tilemaps.pix16(yy);
483482         srcptr_tilepri =  &screen.machine().priority_bitmap.pix8(yy);
484         srcptr_spri =     &state->m_temp_bitmap_sprites.pix16(yy);
485         //srcptr_spripri =  &state->m_temp_bitmap_sprites_pri.pix8(yy);
483         srcptr_spri =     &m_temp_bitmap_sprites.pix16(yy);
484         //srcptr_spripri =  &m_temp_bitmap_sprites_pri.pix8(yy);
486485         dstptr_bitmap  =  &bitmap.pix32(yy);
487486         for (xx=0;xx<width;xx++)
488487         {
r17967r17968
495494            int primask = 0;
496495
497496            // get sprite priority value back out of bitmap/colour data (this is done in draw_sprite for standalone hw)
498            if (state->m_priram_8[(spritepri | 0x0a00 | 0x1500) / 2] & 0x38) primask |= 1 << 0;
499            if (state->m_priram_8[(spritepri | 0x0a00 | 0x1400) / 2] & 0x38) primask |= 1 << 1;
500            if (state->m_priram_8[(spritepri | 0x0a00 | 0x1100) / 2] & 0x38) primask |= 1 << 2;
501            if (state->m_priram_8[(spritepri | 0x0a00 | 0x1000) / 2] & 0x38) primask |= 1 << 3;
502            if (state->m_priram_8[(spritepri | 0x0a00 | 0x0500) / 2] & 0x38) primask |= 1 << 4;
503            if (state->m_priram_8[(spritepri | 0x0a00 | 0x0400) / 2] & 0x38) primask |= 1 << 5;
504            if (state->m_priram_8[(spritepri | 0x0a00 | 0x0100) / 2] & 0x38) primask |= 1 << 6;
505            if (state->m_priram_8[(spritepri | 0x0a00 | 0x0000) / 2] & 0x38) primask |= 1 << 7;
497            if (m_priram_8[(spritepri | 0x0a00 | 0x1500) / 2] & 0x38) primask |= 1 << 0;
498            if (m_priram_8[(spritepri | 0x0a00 | 0x1400) / 2] & 0x38) primask |= 1 << 1;
499            if (m_priram_8[(spritepri | 0x0a00 | 0x1100) / 2] & 0x38) primask |= 1 << 2;
500            if (m_priram_8[(spritepri | 0x0a00 | 0x1000) / 2] & 0x38) primask |= 1 << 3;
501            if (m_priram_8[(spritepri | 0x0a00 | 0x0500) / 2] & 0x38) primask |= 1 << 4;
502            if (m_priram_8[(spritepri | 0x0a00 | 0x0400) / 2] & 0x38) primask |= 1 << 5;
503            if (m_priram_8[(spritepri | 0x0a00 | 0x0100) / 2] & 0x38) primask |= 1 << 6;
504            if (m_priram_8[(spritepri | 0x0a00 | 0x0000) / 2] & 0x38) primask |= 1 << 7;
506505
507506
508507            if (primask == 0x00)
trunk/src/mame/video/darkseal.c
r17967r17968
6060
6161/******************************************************************************/
6262
63SCREEN_UPDATE_IND16( darkseal )
63UINT32 darkseal_state::screen_update_darkseal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
6464{
65   darkseal_state *state = screen.machine().driver_data<darkseal_state>();
66   screen.machine().tilemap().set_flip_all(state->m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
65   screen.machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
6766
6867   bitmap.fill(get_black_pen(screen.machine()), cliprect);
6968
70   deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf1_rowscroll);
71   deco16ic_pf_update(state->m_deco_tilegen2, state->m_pf3_rowscroll, state->m_pf3_rowscroll);
69   deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf1_rowscroll);
70   deco16ic_pf_update(m_deco_tilegen2, m_pf3_rowscroll, m_pf3_rowscroll);
7271
73   deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 0);
74   deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 0);
72   deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 0);
73   deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, 0, 0);
7574
76   deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
77   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram->buffer(), 0x400);
78   deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
75   deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
76   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400);
77   deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
7978
8079   return 0;
8180}
trunk/src/mame/video/20pacgal.c
r17967r17968
406406 *
407407 *************************************/
408408
409static SCREEN_UPDATE_RGB32( 20pacgal )
409UINT32 _20pacgal_state::screen_update_20pacgal(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
410410{
411   _20pacgal_state *state = screen.machine().driver_data<_20pacgal_state>();
412411
413412   bitmap.fill(0, cliprect);
414   draw_stars(state, bitmap,cliprect);
415   draw_chars(state, bitmap);
416   draw_sprites(screen.machine(),state, bitmap);
417   do_pen_lookup(screen.machine(), state, bitmap, cliprect);
413   draw_stars(this, bitmap,cliprect);
414   draw_chars(this, bitmap);
415   draw_sprites(screen.machine(),this, bitmap);
416   do_pen_lookup(screen.machine(), this, bitmap, cliprect);
418417
419418   return 0;
420419}
r17967r17968
433432   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
434433   MCFG_SCREEN_SIZE(SCREEN_WIDTH, SCREEN_HEIGHT)
435434   MCFG_SCREEN_VISIBLE_AREA(0, SCREEN_WIDTH - 1, 0, SCREEN_HEIGHT - 1)
436   MCFG_SCREEN_UPDATE_STATIC(20pacgal)
435   MCFG_SCREEN_UPDATE_DRIVER(_20pacgal_state, screen_update_20pacgal)
437436MACHINE_CONFIG_END
trunk/src/mame/video/seicross.c
r17967r17968
134134   }
135135}
136136
137SCREEN_UPDATE_IND16( seicross )
137UINT32 seicross_state::screen_update_seicross(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
138138{
139   seicross_state *state = screen.machine().driver_data<seicross_state>();
140139   int col;
141140
142141   for (col = 0; col < 32; col++)
143      state->m_bg_tilemap->set_scrolly(col, state->m_row_scroll[col]);
142      m_bg_tilemap->set_scrolly(col, m_row_scroll[col]);
144143
145   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
144   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
146145   draw_sprites(screen.machine(), bitmap, cliprect);
147146   return 0;
148147}
trunk/src/mame/video/spbactn.c
r17967r17968
114114   machine().primary_screen->register_screen_bitmap(m_tile_bitmap_fg);
115115}
116116
117SCREEN_UPDATE_RGB32( spbactn )
117UINT32 spbactn_state::screen_update_spbactn(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
118118{
119   spbactn_state *state = screen.machine().driver_data<spbactn_state>();
120119   int offs, sx, sy;
121120
122   state->m_tile_bitmap_fg.fill(0, cliprect);
121   m_tile_bitmap_fg.fill(0, cliprect);
123122
124123   /* draw table bg gfx */
125124   for (sx = sy = offs = 0; offs < 0x4000 / 2; offs++)
126125   {
127126      int attr, code, color;
128127
129      code = state->m_bgvideoram[offs + 0x4000 / 2];
130      attr = state->m_bgvideoram[offs + 0x0000 / 2];
128      code = m_bgvideoram[offs + 0x4000 / 2];
129      attr = m_bgvideoram[offs + 0x0000 / 2];
131130
132131      color = ((attr & 0x00f0) >> 4) | 0x80;
133132
134      drawgfx_transpen_raw(state->m_tile_bitmap_bg, cliprect, screen.machine().gfx[1],
133      drawgfx_transpen_raw(m_tile_bitmap_bg, cliprect, screen.machine().gfx[1],
135134               code,
136135               screen.machine().gfx[1]->colorbase() + color * screen.machine().gfx[1]->granularity(),
137136               0, 0,
r17967r17968
146145      }
147146   }
148147
149   if (draw_sprites(screen.machine(), state->m_tile_bitmap_bg, cliprect, 0))
148   if (draw_sprites(screen.machine(), m_tile_bitmap_bg, cliprect, 0))
150149   {
151150      /* kludge: draw table bg gfx again if priority 0 sprites are enabled */
152151      for (sx = sy = offs = 0; offs < 0x4000 / 2; offs++)
153152      {
154153         int attr, code, color;
155154
156         code = state->m_bgvideoram[offs + 0x4000 / 2];
157         attr = state->m_bgvideoram[offs + 0x0000 / 2];
155         code = m_bgvideoram[offs + 0x4000 / 2];
156         attr = m_bgvideoram[offs + 0x0000 / 2];
158157
159158         color = ((attr & 0x00f0) >> 4) | 0x80;
160159
161         drawgfx_transpen_raw(state->m_tile_bitmap_bg, cliprect, screen.machine().gfx[1],
160         drawgfx_transpen_raw(m_tile_bitmap_bg, cliprect, screen.machine().gfx[1],
162161               code,
163162               screen.machine().gfx[1]->colorbase() + color * screen.machine().gfx[1]->granularity(),
164163               0, 0,
r17967r17968
174173      }
175174   }
176175
177   draw_sprites(screen.machine(), state->m_tile_bitmap_bg, cliprect, 1);
176   draw_sprites(screen.machine(), m_tile_bitmap_bg, cliprect, 1);
178177
179178   /* draw table fg gfx */
180179   for (sx = sy = offs = 0; offs < 0x4000 / 2; offs++)
181180   {
182181      int attr, code, color;
183182
184      code = state->m_fgvideoram[offs + 0x4000 / 2];
185      attr = state->m_fgvideoram[offs + 0x0000 / 2];
183      code = m_fgvideoram[offs + 0x4000 / 2];
184      attr = m_fgvideoram[offs + 0x0000 / 2];
186185
187186      color = ((attr & 0x00f0) >> 4);
188187
r17967r17968
192191      else
193192         color |= 0x0080;
194193
195      drawgfx_transpen_raw(state->m_tile_bitmap_fg, cliprect, screen.machine().gfx[0],
194      drawgfx_transpen_raw(m_tile_bitmap_fg, cliprect, screen.machine().gfx[0],
196195               code,
197196               screen.machine().gfx[0]->colorbase() + color * screen.machine().gfx[0]->granularity(),
198197               0, 0,
r17967r17968
207206      }
208207   }
209208
210   draw_sprites(screen.machine(), state->m_tile_bitmap_fg, cliprect, 2);
211   draw_sprites(screen.machine(), state->m_tile_bitmap_fg, cliprect, 3);
209   draw_sprites(screen.machine(), m_tile_bitmap_fg, cliprect, 2);
210   draw_sprites(screen.machine(), m_tile_bitmap_fg, cliprect, 3);
212211
213212   /* mix & blend the tilemaps and sprites into a 32-bit bitmap */
214   blendbitmaps(screen.machine(), bitmap, state->m_tile_bitmap_bg, state->m_tile_bitmap_fg, cliprect);
213   blendbitmaps(screen.machine(), bitmap, m_tile_bitmap_bg, m_tile_bitmap_fg, cliprect);
215214   return 0;
216215}
trunk/src/mame/video/system16.c
r17967r17968
604604}
605605
606606// Passing Shot (2 player), Shinobi (Datsu), Wonderboy 3
607SCREEN_UPDATE_IND16( s16a_bootleg )
607UINT32 segas1x_bootleg_state::screen_update_s16a_bootleg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
608608{
609   segas1x_bootleg_state *state = screen.machine().driver_data<segas1x_bootleg_state>();
610609
611610   // passing shot
612611   int offset_txtx = 192;
r17967r17968
619618   bitmap.fill(get_black_pen(screen.machine()), cliprect);
620619
621620   // start the sprites drawing
622   state->m_sprites->draw_async(cliprect);
621   m_sprites->draw_async(cliprect);
623622
624623   // I can't bring myself to care about dirty tile marking on something which runs at a bazillion % speed anyway, clean code is better
625   state->m_bg_tilemaps[0]->mark_all_dirty();
626   state->m_bg_tilemaps[1]->mark_all_dirty();
627   state->m_text_tilemap->mark_all_dirty();
624   m_bg_tilemaps[0]->mark_all_dirty();
625   m_bg_tilemaps[1]->mark_all_dirty();
626   m_text_tilemap->mark_all_dirty();
628627
629   state->m_text_tilemap->set_scrollx(0, offset_txtx);
630   state->m_text_tilemap->set_scrolly(0, offset_txty);
628   m_text_tilemap->set_scrollx(0, offset_txtx);
629   m_text_tilemap->set_scrolly(0, offset_txty);
631630
632   if ((state->m_tilemapselect & 0xff) == 0x12)
631   if ((m_tilemapselect & 0xff) == 0x12)
633632   {
634      state->m_bg_tilemaps[1]->set_scrollx(0, state->m_bg_scrollx + offset_bg1x);
635      state->m_bg_tilemaps[1]->set_scrolly(0, state->m_bg_scrolly + offset_bg1y + state->m_back_yscroll);
636      state->m_bg_tilemaps[0]->set_scrollx(0, state->m_fg_scrollx + offset_bg0x);
637      state->m_bg_tilemaps[0]->set_scrolly(0, state->m_fg_scrolly + offset_bg0y + state->m_fore_yscroll);
633      m_bg_tilemaps[1]->set_scrollx(0, m_bg_scrollx + offset_bg1x);
634      m_bg_tilemaps[1]->set_scrolly(0, m_bg_scrolly + offset_bg1y + m_back_yscroll);
635      m_bg_tilemaps[0]->set_scrollx(0, m_fg_scrollx + offset_bg0x);
636      m_bg_tilemaps[0]->set_scrolly(0, m_fg_scrolly + offset_bg0y + m_fore_yscroll);
638637
639      state->m_bg_tilemaps[0]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
640      state->m_bg_tilemaps[1]->draw(bitmap, cliprect, 0, 0);
638      m_bg_tilemaps[0]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
639      m_bg_tilemaps[1]->draw(bitmap, cliprect, 0, 0);
641640
642      state->m_text_tilemap->set_scrolly(0, state->m_text_yscroll);
641      m_text_tilemap->set_scrolly(0, m_text_yscroll);
643642
644      state->m_text_tilemap->draw(bitmap, cliprect, 0, 0);
643      m_text_tilemap->draw(bitmap, cliprect, 0, 0);
645644   }
646   else if ((state->m_tilemapselect & 0xff) == 0x21)
645   else if ((m_tilemapselect & 0xff) == 0x21)
647646   {
648      state->m_bg_tilemaps[0]->set_scrollx(0, state->m_bg_scrollx + 187 );
649      state->m_bg_tilemaps[0]->set_scrolly(0, state->m_bg_scrolly + state->m_back_yscroll );
650      state->m_bg_tilemaps[1]->set_scrollx(0, state->m_fg_scrollx + 187 );
651      state->m_bg_tilemaps[1]->set_scrolly(0, state->m_fg_scrolly + 1 + state->m_fore_yscroll );
647      m_bg_tilemaps[0]->set_scrollx(0, m_bg_scrollx + 187 );
648      m_bg_tilemaps[0]->set_scrolly(0, m_bg_scrolly + m_back_yscroll );
649      m_bg_tilemaps[1]->set_scrollx(0, m_fg_scrollx + 187 );
650      m_bg_tilemaps[1]->set_scrolly(0, m_fg_scrolly + 1 + m_fore_yscroll );
652651
653      state->m_bg_tilemaps[1]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
654      state->m_bg_tilemaps[0]->draw(bitmap, cliprect, 0, 0);
652      m_bg_tilemaps[1]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
653      m_bg_tilemaps[0]->draw(bitmap, cliprect, 0, 0);
655654
656      state->m_text_tilemap->set_scrolly(0, state->m_text_yscroll);
655      m_text_tilemap->set_scrolly(0, m_text_yscroll);
657656
658      state->m_text_tilemap->draw(bitmap, cliprect, 0, 0);
657      m_text_tilemap->draw(bitmap, cliprect, 0, 0);
659658   }
660659
661660   // mix in sprites
662   bitmap_ind16 &sprites = state->m_sprites->bitmap();
663   for (const sparse_dirty_rect *rect = state->m_sprites->first_dirty_rect(cliprect); rect != NULL; rect = rect->next())
661   bitmap_ind16 &sprites = m_sprites->bitmap();
662   for (const sparse_dirty_rect *rect = m_sprites->first_dirty_rect(cliprect); rect != NULL; rect = rect->next())
664663      for (int y = rect->min_y; y <= rect->max_y; y++)
665664      {
666665         UINT16 *dest = &bitmap.pix(y);
r17967r17968
678677               {
679678                  // if the color is set to maximum, shadow pixels underneath us
680679                  if ((pix & 0x03f0) == 0x03f0)
681                     dest[x] += (state->m_paletteram[dest[x]] & 0x8000) ? screen.machine().total_colors()*2 : screen.machine().total_colors();
680                     dest[x] += (m_paletteram[dest[x]] & 0x8000) ? screen.machine().total_colors()*2 : screen.machine().total_colors();
682681
683682                  // otherwise, just add in sprite palette base
684683                  else
r17967r17968
693692}
694693
695694/* The Passing Shot 4 Player bootleg has weird scroll registers (different offsets, ^0x7 xor) */
696SCREEN_UPDATE_IND16( s16a_bootleg_passht4b )
695UINT32 segas1x_bootleg_state::screen_update_s16a_bootleg_passht4b(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
697696{
698   segas1x_bootleg_state *state = screen.machine().driver_data<segas1x_bootleg_state>();
699697
700698   // passing shot
701699   int offset_txtx = 192;
r17967r17968
708706   bitmap.fill(get_black_pen(screen.machine()), cliprect);
709707
710708   // start the sprites drawing
711   state->m_sprites->draw_async(cliprect);
709   m_sprites->draw_async(cliprect);
712710
713711   // I can't bring myself to care about dirty tile marking on something which runs at a bazillion % speed anyway, clean code is better
714   state->m_bg_tilemaps[0]->mark_all_dirty();
715   state->m_bg_tilemaps[1]->mark_all_dirty();
716   state->m_text_tilemap->mark_all_dirty();
712   m_bg_tilemaps[0]->mark_all_dirty();
713   m_bg_tilemaps[1]->mark_all_dirty();
714   m_text_tilemap->mark_all_dirty();
717715
718   state->m_text_tilemap->set_scrollx(0, offset_txtx);
719   state->m_text_tilemap->set_scrolly(0, offset_txty);
716   m_text_tilemap->set_scrollx(0, offset_txtx);
717   m_text_tilemap->set_scrolly(0, offset_txty);
720718
721   if ((state->m_tilemapselect & 0xff) == 0x12)
719   if ((m_tilemapselect & 0xff) == 0x12)
722720   {
723      state->m_bg_tilemaps[1]->set_scrollx(0, (state->m_bg_scrollx ^ 0x7) + offset_bg1x);
724      state->m_bg_tilemaps[1]->set_scrolly(0, state->m_bg_scrolly + offset_bg1y);
725      state->m_bg_tilemaps[0]->set_scrollx(0, (state->m_fg_scrollx ^ 0x7) + offset_bg0x);
726      state->m_bg_tilemaps[0]->set_scrolly(0, state->m_fg_scrolly + offset_bg0y);
721      m_bg_tilemaps[1]->set_scrollx(0, (m_bg_scrollx ^ 0x7) + offset_bg1x);
722      m_bg_tilemaps[1]->set_scrolly(0, m_bg_scrolly + offset_bg1y);
723      m_bg_tilemaps[0]->set_scrollx(0, (m_fg_scrollx ^ 0x7) + offset_bg0x);
724      m_bg_tilemaps[0]->set_scrolly(0, m_fg_scrolly + offset_bg0y);
727725
728      state->m_bg_tilemaps[0]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
729      state->m_bg_tilemaps[1]->draw(bitmap, cliprect, 0, 0);
730      state->m_text_tilemap->draw(bitmap, cliprect, 0, 0);
726      m_bg_tilemaps[0]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
727      m_bg_tilemaps[1]->draw(bitmap, cliprect, 0, 0);
728      m_text_tilemap->draw(bitmap, cliprect, 0, 0);
731729   }
732730
733731   // mix in sprites
734   bitmap_ind16 &sprites = state->m_sprites->bitmap();
735   for (const sparse_dirty_rect *rect = state->m_sprites->first_dirty_rect(cliprect); rect != NULL; rect = rect->next())
732   bitmap_ind16 &sprites = m_sprites->bitmap();
733   for (const sparse_dirty_rect *rect = m_sprites->first_dirty_rect(cliprect); rect != NULL; rect = rect->next())
736734      for (int y = rect->min_y; y <= rect->max_y; y++)
737735      {
738736         UINT16 *dest = &bitmap.pix(y);
r17967r17968
750748               {
751749                  // if the color is set to maximum, shadow pixels underneath us
752750                  if ((pix & 0x03f0) == 0x03f0)
753                     dest[x] += (state->m_paletteram[dest[x]] & 0x8000) ? screen.machine().total_colors()*2 : screen.machine().total_colors();
751                     dest[x] += (m_paletteram[dest[x]] & 0x8000) ? screen.machine().total_colors()*2 : screen.machine().total_colors();
754752
755753                  // otherwise, just add in sprite palette base
756754                  else
r17967r17968
767765
768766/***************************************************************************/
769767
770SCREEN_UPDATE_IND16( system16 )
768UINT32 segas1x_bootleg_state::screen_update_system16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
771769{
772   segas1x_bootleg_state *state = screen.machine().driver_data<segas1x_bootleg_state>();
773770
774   if (!state->m_refreshenable)
771   if (!m_refreshenable)
775772   {
776773      bitmap.fill(0, cliprect);
777774      return 0;
778775   }
779776
780777   // start the sprites drawing
781   state->m_sprites->draw_async(cliprect);
778   m_sprites->draw_async(cliprect);
782779
783780   update_page(screen.machine());
784781
785782   screen.machine().priority_bitmap.fill(0, cliprect);
786783
787   state->m_background->set_scrollx(0, -320 - state->m_bg_scrollx);
788   state->m_background->set_scrolly(0, -256 + state->m_bg_scrolly + state->m_back_yscroll);
789   state->m_foreground->set_scrollx(0, -320 - state->m_fg_scrollx);
790   state->m_foreground->set_scrolly(0, -256 + state->m_fg_scrolly + state->m_fore_yscroll);
784   m_background->set_scrollx(0, -320 - m_bg_scrollx);
785   m_background->set_scrolly(0, -256 + m_bg_scrolly + m_back_yscroll);
786   m_foreground->set_scrollx(0, -320 - m_fg_scrollx);
787   m_foreground->set_scrolly(0, -256 + m_fg_scrolly + m_fore_yscroll);
791788
792   state->m_text_layer->set_scrollx(0, 0);
793   state->m_text_layer->set_scrolly(0, 0 + state->m_text_yscroll);
789   m_text_layer->set_scrollx(0, 0);
790   m_text_layer->set_scrolly(0, 0 + m_text_yscroll);
794791
795792   /* Background */
796   state->m_background->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0x00);
793   m_background->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0x00);
797794
798795   /* Foreground */
799   state->m_foreground->draw(bitmap, cliprect, 0, 0x03);
800   state->m_foreground->draw(bitmap, cliprect, 1, 0x07);
796   m_foreground->draw(bitmap, cliprect, 0, 0x03);
797   m_foreground->draw(bitmap, cliprect, 1, 0x07);
801798
802799
803800   /* Text Layer */
804   if (state->m_textlayer_lo_max != 0)
801   if (m_textlayer_lo_max != 0)
805802   {
806      state->m_text_layer->draw(bitmap, cliprect, 1, 7);// needed for Body Slam
803      m_text_layer->draw(bitmap, cliprect, 1, 7);// needed for Body Slam
807804   }
808805
809   state->m_text_layer->draw(bitmap, cliprect, 0, 0xf);
806   m_text_layer->draw(bitmap, cliprect, 0, 0xf);
810807
811808   //draw_sprites(screen.machine(), bitmap, cliprect,0);
812809
813810
814811   // mix in sprites
815   bitmap_ind16 &sprites = state->m_sprites->bitmap();
816   for (const sparse_dirty_rect *rect = state->m_sprites->first_dirty_rect(cliprect); rect != NULL; rect = rect->next())
812   bitmap_ind16 &sprites = m_sprites->bitmap();
813   for (const sparse_dirty_rect *rect = m_sprites->first_dirty_rect(cliprect); rect != NULL; rect = rect->next())
817814      for (int y = rect->min_y; y <= rect->max_y; y++)
818815      {
819816         UINT16 *dest = &bitmap.pix(y);
r17967r17968
831828               {
832829                  // if the color is set to maximum, shadow pixels underneath us
833830                  if ((pix & 0x03f0) == 0x03f0)
834                     dest[x] += (state->m_paletteram[dest[x]] & 0x8000) ? screen.machine().total_colors()*2 : screen.machine().total_colors();
831                     dest[x] += (m_paletteram[dest[x]] & 0x8000) ? screen.machine().total_colors()*2 : screen.machine().total_colors();
835832
836833                  // otherwise, just add in sprite palette base
837834                  else
r17967r17968
845842}
846843
847844
848SCREEN_UPDATE_IND16( system18old )
845UINT32 segas1x_bootleg_state::screen_update_system18old(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
849846{
850   segas1x_bootleg_state *state = screen.machine().driver_data<segas1x_bootleg_state>();
851847
852   if (!state->m_refreshenable)
848   if (!m_refreshenable)
853849   {
854850      bitmap.fill(get_black_pen(screen.machine()), cliprect);
855851      return 0;
856852   }
857853
858854   // start the sprites drawing
859   state->m_sprites->draw_async(cliprect);
855   m_sprites->draw_async(cliprect);
860856
861857   update_page(screen.machine());
862858
r17967r17968
864860
865861   bitmap.fill(0, cliprect);
866862
867   state->m_background->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
868   state->m_background->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 1, 0);   //??
869   state->m_background->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 2, 0);   //??
870   state->m_background->draw(bitmap, cliprect, 1, 0x1);
871   state->m_background->draw(bitmap, cliprect, 2, 0x3);
863   m_background->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
864   m_background->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 1, 0);   //??
865   m_background->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 2, 0);   //??
866   m_background->draw(bitmap, cliprect, 1, 0x1);
867   m_background->draw(bitmap, cliprect, 2, 0x3);
872868
873   state->m_foreground->draw(bitmap, cliprect, 0, 0x3);
874   state->m_foreground->draw(bitmap, cliprect, 1, 0x7);
869   m_foreground->draw(bitmap, cliprect, 0, 0x3);
870   m_foreground->draw(bitmap, cliprect, 1, 0x7);
875871
876   state->m_text_layer->draw(bitmap, cliprect, 1, 0x7);
877   state->m_text_layer->draw(bitmap, cliprect, 0, 0xf);
872   m_text_layer->draw(bitmap, cliprect, 1, 0x7);
873   m_text_layer->draw(bitmap, cliprect, 0, 0xf);
878874
879875   // mix in sprites
880   bitmap_ind16 &sprites = state->m_sprites->bitmap();
881   for (const sparse_dirty_rect *rect = state->m_sprites->first_dirty_rect(cliprect); rect != NULL; rect = rect->next())
876   bitmap_ind16 &sprites = m_sprites->bitmap();
877   for (const sparse_dirty_rect *rect = m_sprites->first_dirty_rect(cliprect); rect != NULL; rect = rect->next())
882878      for (int y = rect->min_y; y <= rect->max_y; y++)
883879      {
884880         UINT16 *dest = &bitmap.pix(y);
r17967r17968
896892               {
897893                  // if the color is set to maximum, shadow pixels underneath us
898894                  if ((pix & 0x03f0) == 0x03f0)
899                     dest[x] += (state->m_paletteram[dest[x]] & 0x8000) ? screen.machine().total_colors()*2 : screen.machine().total_colors();
895                     dest[x] += (m_paletteram[dest[x]] & 0x8000) ? screen.machine().total_colors()*2 : screen.machine().total_colors();
900896
901897                  // otherwise, just add in sprite palette base
902898                  else
trunk/src/mame/video/deniam.c
r17967r17968
362362   }
363363}
364364
365SCREEN_UPDATE_IND16( deniam )
365UINT32 deniam_state::screen_update_deniam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
366366{
367   deniam_state *state = screen.machine().driver_data<deniam_state>();
368367   int bg_scrollx, bg_scrolly, fg_scrollx, fg_scrolly;
369368   int page;
370369
371   if (!state->m_display_enable)
370   if (!m_display_enable)
372371      return 0;   /* don't update (freeze display) */
373372
374   bg_scrollx = state->m_textram[state->m_bg_scrollx_reg] - state->m_bg_scrollx_offs;
375   bg_scrolly = (state->m_textram[state->m_bg_scrolly_reg] & 0xff) - state->m_bg_scrolly_offs;
376   page = state->m_textram[state->m_bg_page_reg];
373   bg_scrollx = m_textram[m_bg_scrollx_reg] - m_bg_scrollx_offs;
374   bg_scrolly = (m_textram[m_bg_scrolly_reg] & 0xff) - m_bg_scrolly_offs;
375   page = m_textram[m_bg_page_reg];
377376   set_bg_page(screen.machine(), 3, (page >>12) & 0x0f);
378377   set_bg_page(screen.machine(), 2, (page >> 8) & 0x0f);
379378   set_bg_page(screen.machine(), 1, (page >> 4) & 0x0f);
380379   set_bg_page(screen.machine(), 0, (page >> 0) & 0x0f);
381380
382   fg_scrollx = state->m_textram[state->m_fg_scrollx_reg] - state->m_fg_scrollx_offs;
383   fg_scrolly = (state->m_textram[state->m_fg_scrolly_reg] & 0xff) - state->m_fg_scrolly_offs;
384   page = state->m_textram[state->m_fg_page_reg];
381   fg_scrollx = m_textram[m_fg_scrollx_reg] - m_fg_scrollx_offs;
382   fg_scrolly = (m_textram[m_fg_scrolly_reg] & 0xff) - m_fg_scrolly_offs;
383   page = m_textram[m_fg_page_reg];
385384   set_fg_page(screen.machine(), 3, (page >>12) & 0x0f);
386385   set_fg_page(screen.machine(), 2, (page >> 8) & 0x0f);
387386   set_fg_page(screen.machine(), 1, (page >> 4) & 0x0f);
388387   set_fg_page(screen.machine(), 0, (page >> 0) & 0x0f);
389388
390   state->m_bg_tilemap->set_scrollx(0, bg_scrollx & 0x1ff);
391   state->m_bg_tilemap->set_scrolly(0, bg_scrolly & 0x0ff);
392   state->m_fg_tilemap->set_scrollx(0, fg_scrollx & 0x1ff);
393   state->m_fg_tilemap->set_scrolly(0, fg_scrolly & 0x0ff);
389   m_bg_tilemap->set_scrollx(0, bg_scrollx & 0x1ff);
390   m_bg_tilemap->set_scrolly(0, bg_scrolly & 0x0ff);
391   m_fg_tilemap->set_scrollx(0, fg_scrollx & 0x1ff);
392   m_fg_tilemap->set_scrolly(0, fg_scrolly & 0x0ff);
394393
395394   screen.machine().priority_bitmap.fill(0, cliprect);
396395
397   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
398   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
399   state->m_tx_tilemap->draw(bitmap, cliprect, 0, 4);
396   m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
397   m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
398   m_tx_tilemap->draw(bitmap, cliprect, 0, 4);
400399
401400   draw_sprites(screen.machine(), bitmap, cliprect);
402401   return 0;
trunk/src/mame/video/redalert.c
r17967r17968
183183 *
184184 *************************************/
185185
186static SCREEN_UPDATE_RGB32( redalert )
186UINT32 redalert_state::screen_update_redalert(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
187187{
188   redalert_state *state = screen.machine().driver_data<redalert_state>();
189188   pen_t pens[NUM_CHARMAP_PENS + NUM_BITMAP_PENS + 1];
190189   offs_t offs;
191190
r17967r17968
200199      UINT8 y = offs & 0xff;
201200      UINT8 x = (~offs >> 8) << 3;
202201
203      UINT8 bitmap_data = state->m_bitmap_videoram[offs];
204      UINT8 bitmap_color = state->m_bitmap_colorram[offs >> 3];
202      UINT8 bitmap_data = m_bitmap_videoram[offs];
203      UINT8 bitmap_color = m_bitmap_colorram[offs >> 3];
205204
206      UINT8 charmap_code = state->m_charmap_videoram[0x0000 | (offs >> 3)];
205      UINT8 charmap_code = m_charmap_videoram[0x0000 | (offs >> 3)];
207206      offs_t charmap_data_base = ((charmap_code & 0x7f) << 3) | (offs & 0x07);
208207
209208      /* D7 of the char code selects the char set to use */
210209      if (charmap_code & 0x80)
211210      {
212         charmap_data_1 = state->m_charmap_videoram[0x0400 | charmap_data_base];
213         charmap_data_2 = state->m_charmap_videoram[0x0c00 | charmap_data_base];
211         charmap_data_1 = m_charmap_videoram[0x0400 | charmap_data_base];
212         charmap_data_2 = m_charmap_videoram[0x0c00 | charmap_data_base];
214213      }
215214      else
216215      {
217216         charmap_data_1 = 0; /* effectively disables A0 of the color PROM */
218         charmap_data_2 = state->m_charmap_videoram[0x0800 | charmap_data_base];
217         charmap_data_2 = m_charmap_videoram[0x0800 | charmap_data_base];
219218      }
220219
221220      for (i = 0; i < 8; i++)
r17967r17968
231230         else
232231            pen = pens[((charmap_code & 0xfe) << 1) | color_prom_a0_a1];
233232
234         if ((*state->m_video_control ^ state->m_control_xor) & 0x04)
233         if ((*m_video_control ^ m_control_xor) & 0x04)
235234            bitmap.pix32(y, x) = pen;
236235         else
237236            bitmap.pix32(y ^ 0xff, x ^ 0xff) = pen;
r17967r17968
256255 *
257256 *************************************/
258257
259static SCREEN_UPDATE_RGB32( demoneye )
258UINT32 redalert_state::screen_update_demoneye(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
260259{
261   redalert_state *state = screen.machine().driver_data<redalert_state>();
262260   pen_t pens[NUM_CHARMAP_PENS + NUM_BITMAP_PENS + 1];
263261   offs_t offs;
264262
r17967r17968
273271      UINT8 y = offs & 0xff;
274272      UINT8 x = (~offs >> 8) << 3;
275273
276      UINT8 bitmap_data = state->m_bitmap_videoram[offs];
277      UINT8 bitmap_color = state->m_bitmap_colorram[offs >> 3];
274      UINT8 bitmap_data = m_bitmap_videoram[offs];
275      UINT8 bitmap_color = m_bitmap_colorram[offs >> 3];
278276
279      UINT8 charmap_code = state->m_charmap_videoram[0x1000 | (offs >> 3)];
277      UINT8 charmap_code = m_charmap_videoram[0x1000 | (offs >> 3)];
280278      offs_t charmap_data_base = ((charmap_code & 0x7f) << 3) | (offs & 0x07);
281279
282280      /* D7 of the char code selects the char set to use */
283281      if (charmap_code & 0x80)
284282      {
285         charmap_data_1 = state->m_charmap_videoram[0x0400 | charmap_data_base];
286         charmap_data_2 = state->m_charmap_videoram[0x0c00 | charmap_data_base];
283         charmap_data_1 = m_charmap_videoram[0x0400 | charmap_data_base];
284         charmap_data_2 = m_charmap_videoram[0x0c00 | charmap_data_base];
287285      }
288286      else
289287      {
290         charmap_data_1 = state->m_charmap_videoram[0x0000 | charmap_data_base];
291         charmap_data_2 = state->m_charmap_videoram[0x0800 | charmap_data_base];
288         charmap_data_1 = m_charmap_videoram[0x0000 | charmap_data_base];
289         charmap_data_2 = m_charmap_videoram[0x0800 | charmap_data_base];
292290      }
293291
294292      /* this is the mapping of the 3rd char set */
295      //charmap_data_1 = state->m_charmap_videoram[0x1400 | charmap_data_base];
296      //charmap_data_2 = state->m_charmap_videoram[0x1c00 | charmap_data_base];
293      //charmap_data_1 = m_charmap_videoram[0x1400 | charmap_data_base];
294      //charmap_data_2 = m_charmap_videoram[0x1c00 | charmap_data_base];
297295
298296      for (i = 0; i < 8; i++)
299297      {
r17967r17968
308306         else
309307            pen = pens[((charmap_code & 0xfe) << 1) | color_prom_a0_a1];
310308
311         if (*state->m_video_control & 0x04)
309         if (*m_video_control & 0x04)
312310            bitmap.pix32(y ^ 0xff, x ^ 0xff) = pen;
313311         else
314312            bitmap.pix32(y, x) = pen;
r17967r17968
331329 *
332330 *************************************/
333331
334static SCREEN_UPDATE_RGB32( panther )
332UINT32 redalert_state::screen_update_panther(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
335333{
336   redalert_state *state = screen.machine().driver_data<redalert_state>();
337334   pen_t pens[NUM_CHARMAP_PENS + NUM_BITMAP_PENS + 1];
338335   offs_t offs;
339336
r17967r17968
348345      UINT8 y = offs & 0xff;
349346      UINT8 x = (~offs >> 8) << 3;
350347
351      UINT8 bitmap_data = state->m_bitmap_videoram[offs];
352      UINT8 bitmap_color = state->m_bitmap_colorram[offs >> 3];
348      UINT8 bitmap_data = m_bitmap_videoram[offs];
349      UINT8 bitmap_color = m_bitmap_colorram[offs >> 3];
353350
354      UINT8 charmap_code = state->m_charmap_videoram[0x0000 | (offs >> 3)];
351      UINT8 charmap_code = m_charmap_videoram[0x0000 | (offs >> 3)];
355352      offs_t charmap_data_base = ((charmap_code & 0x7f) << 3) | (offs & 0x07);
356353
357354      /* D7 of the char code selects the char set to use */
358355      if (charmap_code & 0x80)
359356      {
360         charmap_data_1 = state->m_charmap_videoram[0x0400 | charmap_data_base];
361         charmap_data_2 = state->m_charmap_videoram[0x0c00 | charmap_data_base];
357         charmap_data_1 = m_charmap_videoram[0x0400 | charmap_data_base];
358         charmap_data_2 = m_charmap_videoram[0x0c00 | charmap_data_base];
362359      }
363360      else
364361      {
365362         charmap_data_1 = 0; /* effectively disables A0 of the color PROM */
366         charmap_data_2 = state->m_charmap_videoram[0x0800 | charmap_data_base];
363         charmap_data_2 = m_charmap_videoram[0x0800 | charmap_data_base];
367364      }
368365
369366      for (i = 0; i < 8; i++)
r17967r17968
379376         else
380377            pen = pens[((charmap_code & 0xfe) << 1) | color_prom_a0_a1];
381378
382         if ((*state->m_video_control ^ state->m_control_xor) & 0x04)
379         if ((*m_video_control ^ m_control_xor) & 0x04)
383380            bitmap.pix32(y, x) = pen;
384381         else
385382            bitmap.pix32(y ^ 0xff, x ^ 0xff) = pen;
r17967r17968
409406   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
410407   MCFG_SCREEN_SIZE(32*8, 32*8)
411408   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
412   MCFG_SCREEN_UPDATE_STATIC(redalert)
409   MCFG_SCREEN_UPDATE_DRIVER(redalert_state, screen_update_redalert)
413410MACHINE_CONFIG_END
414411
415412MACHINE_CONFIG_FRAGMENT( redalert_video )
r17967r17968
441438   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
442439   MCFG_SCREEN_SIZE(32*8, 32*8)
443440   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
444   MCFG_SCREEN_UPDATE_STATIC(demoneye)
441   MCFG_SCREEN_UPDATE_DRIVER(redalert_state, screen_update_demoneye)
445442MACHINE_CONFIG_END
446443
447444
r17967r17968
454451   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
455452   MCFG_SCREEN_SIZE(32*8, 32*8)
456453   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
457   MCFG_SCREEN_UPDATE_STATIC(panther)
454   MCFG_SCREEN_UPDATE_DRIVER(redalert_state, screen_update_panther)
458455MACHINE_CONFIG_END
459456
trunk/src/mame/video/mcr3.c
r17967r17968
269269 *
270270 *************************************/
271271
272SCREEN_UPDATE_IND16( mcr3 )
272UINT32 mcr3_state::screen_update_mcr3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
273273{
274   mcr3_state *state = screen.machine().driver_data<mcr3_state>();
275274   /* update the flip state */
276   state->m_bg_tilemap->set_flip(mcr_cocktail_flip ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0);
275   m_bg_tilemap->set_flip(mcr_cocktail_flip ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0);
277276
278277   /* draw the background */
279   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
278   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
280279
281280   /* draw the sprites */
282281   mcr3_update_sprites(screen.machine(), bitmap, cliprect, 0x03, 0, 0, 0);
r17967r17968
284283}
285284
286285
287SCREEN_UPDATE_IND16( spyhunt )
286UINT32 mcr3_state::screen_update_spyhunt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
288287{
289   mcr3_state *state = screen.machine().driver_data<mcr3_state>();
290288   /* for every character in the Video RAM, check if it has been modified */
291289   /* since last time and update it accordingly. */
292   state->m_bg_tilemap->set_scrollx(0, state->m_spyhunt_scrollx * 2 + state->m_spyhunt_scroll_offset);
293   state->m_bg_tilemap->set_scrolly(0, state->m_spyhunt_scrolly * 2);
294   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
290   m_bg_tilemap->set_scrollx(0, m_spyhunt_scrollx * 2 + m_spyhunt_scroll_offset);
291   m_bg_tilemap->set_scrolly(0, m_spyhunt_scrolly * 2);
292   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
295293
296294   /* draw the sprites */
297   mcr3_update_sprites(screen.machine(), bitmap, cliprect, state->m_spyhunt_sprite_color_mask, 0, -12, 0);
295   mcr3_update_sprites(screen.machine(), bitmap, cliprect, m_spyhunt_sprite_color_mask, 0, -12, 0);
298296
299297   /* render any characters on top */
300   state->m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
298   m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
301299   return 0;
302300}
trunk/src/mame/video/stadhero.c
r17967r17968
1919
2020/******************************************************************************/
2121
22SCREEN_UPDATE_IND16( stadhero )
22UINT32 stadhero_state::screen_update_stadhero(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
2323{
24   stadhero_state *state = screen.machine().driver_data<stadhero_state>();
25//  screen.machine().tilemap().set_flip_all(state->m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
24//  screen.machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
2625
2726   screen.machine().device<deco_bac06_device>("tilegen1")->set_bppmultmask(0x8, 0x7);
2827   screen.machine().device<deco_bac06_device>("tilegen1")->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
29   screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram, 0x00, 0x00, 0x0f);
30   state->m_pf1_tilemap->draw(bitmap, cliprect, 0,0);
28   screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram, 0x00, 0x00, 0x0f);
29   m_pf1_tilemap->draw(bitmap, cliprect, 0,0);
3130   return 0;
3231}
3332
trunk/src/mame/video/simpsons.c
r17967r17968
118118
119119***************************************************************************/
120120
121SCREEN_UPDATE_IND16( simpsons )
121UINT32 simpsons_state::screen_update_simpsons(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
122122{
123   simpsons_state *state = screen.machine().driver_data<simpsons_state>();
124123   int layer[3], bg_colorbase;
125124
126   bg_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI0);
127   state->m_sprite_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI1);
128   state->m_layer_colorbase[0] = k053251_get_palette_index(state->m_k053251, K053251_CI2);
129   state->m_layer_colorbase[1] = k053251_get_palette_index(state->m_k053251, K053251_CI3);
130   state->m_layer_colorbase[2] = k053251_get_palette_index(state->m_k053251, K053251_CI4);
125   bg_colorbase = k053251_get_palette_index(m_k053251, K053251_CI0);
126   m_sprite_colorbase = k053251_get_palette_index(m_k053251, K053251_CI1);
127   m_layer_colorbase[0] = k053251_get_palette_index(m_k053251, K053251_CI2);
128   m_layer_colorbase[1] = k053251_get_palette_index(m_k053251, K053251_CI3);
129   m_layer_colorbase[2] = k053251_get_palette_index(m_k053251, K053251_CI4);
131130
132   k052109_tilemap_update(state->m_k052109);
131   k052109_tilemap_update(m_k052109);
133132
134133   layer[0] = 0;
135   state->m_layerpri[0] = k053251_get_priority(state->m_k053251, K053251_CI2);
134   m_layerpri[0] = k053251_get_priority(m_k053251, K053251_CI2);
136135   layer[1] = 1;
137   state->m_layerpri[1] = k053251_get_priority(state->m_k053251, K053251_CI3);
136   m_layerpri[1] = k053251_get_priority(m_k053251, K053251_CI3);
138137   layer[2] = 2;
139   state->m_layerpri[2] = k053251_get_priority(state->m_k053251, K053251_CI4);
138   m_layerpri[2] = k053251_get_priority(m_k053251, K053251_CI4);
140139
141   konami_sortlayers3(layer, state->m_layerpri);
140   konami_sortlayers3(layer, m_layerpri);
142141
143142   screen.machine().priority_bitmap.fill(0, cliprect);
144143   bitmap.fill(16 * bg_colorbase, cliprect);
145   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, layer[0], 0, 1);
146   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, layer[1], 0, 2);
147   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, layer[2], 0, 4);
144   k052109_tilemap_draw(m_k052109, bitmap, cliprect, layer[0], 0, 1);
145   k052109_tilemap_draw(m_k052109, bitmap, cliprect, layer[1], 0, 2);
146   k052109_tilemap_draw(m_k052109, bitmap, cliprect, layer[2], 0, 4);
148147
149   k053247_sprites_draw(state->m_k053246, bitmap, cliprect);
148   k053247_sprites_draw(m_k053246, bitmap, cliprect);
150149   return 0;
151150}
trunk/src/mame/video/prehisle.c
r17967r17968
157157   }
158158}
159159
160SCREEN_UPDATE_IND16( prehisle )
160UINT32 prehisle_state::screen_update_prehisle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
161161{
162   prehisle_state *state = screen.machine().driver_data<prehisle_state>();
163162
164   state->m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
163   m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
165164   draw_sprites(screen.machine(), bitmap, cliprect, 0);
166   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
165   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
167166   draw_sprites(screen.machine(), bitmap, cliprect, 1);
168   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
167   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
169168   return 0;
170169}
trunk/src/mame/video/wwfsstar.c
r17967r17968
215215   m_fg0_tilemap->set_transparent_pen(0);
216216}
217217
218SCREEN_UPDATE_IND16( wwfsstar )
218UINT32 wwfsstar_state::screen_update_wwfsstar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
219219{
220   wwfsstar_state *state = screen.machine().driver_data<wwfsstar_state>();
221220
222   state->m_bg0_tilemap->set_scrolly(0, state->m_scrolly  );
223   state->m_bg0_tilemap->set_scrollx(0, state->m_scrollx  );
221   m_bg0_tilemap->set_scrolly(0, m_scrolly  );
222   m_bg0_tilemap->set_scrollx(0, m_scrollx  );
224223
225   state->m_bg0_tilemap->draw(bitmap, cliprect, 0,0);
224   m_bg0_tilemap->draw(bitmap, cliprect, 0,0);
226225   draw_sprites(screen.machine(), bitmap,cliprect );
227   state->m_fg0_tilemap->draw(bitmap, cliprect, 0,0);
226   m_fg0_tilemap->draw(bitmap, cliprect, 0,0);
228227
229228   return 0;
230229}
trunk/src/mame/video/model1.c
r17967r17968
14651465   state_save_register_global_array(machine(), m_listctl);
14661466}
14671467
1468SCREEN_UPDATE_RGB32(model1)
1468UINT32 model1_state::screen_update_model1(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
14691469{
1470   model1_state *state = screen.machine().driver_data<model1_state>();
1471   struct view *view = state->m_view;
1470   struct view *view = m_view;
14721471#if 0
14731472   {
14741473      int mod = 0;
r17967r17968
15341533   return 0;
15351534}
15361535
1537SCREEN_VBLANK(model1)
1536void model1_state::screen_eof_model1(screen_device &screen, bool state)
15381537{
15391538   // on rising edge
1540   if (vblank_on)
1539   if (state)
15411540   {
15421541      tgp_scan(screen.machine());
15431542      end_frame(screen.machine());
trunk/src/mame/video/taito_b.c
r17967r17968
365365g_profiler.stop();
366366}
367367
368SCREEN_UPDATE_IND16( taitob )
368UINT32 taitob_state::screen_update_taitob(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
369369{
370   taitob_state *state = screen.machine().driver_data<taitob_state>();
371370   address_space &space = screen.machine().driver_data()->generic_space();
372   UINT8 video_control = tc0180vcu_get_videoctrl(state->m_tc0180vcu, space, 0);
371   UINT8 video_control = tc0180vcu_get_videoctrl(m_tc0180vcu, space, 0);
373372
374373   if ((video_control & 0x20) == 0)
375374   {
r17967r17968
378377   }
379378
380379   /* Draw playfields */
381   tc0180vcu_tilemap_draw(state->m_tc0180vcu, bitmap, cliprect, 0, 1);
380   tc0180vcu_tilemap_draw(m_tc0180vcu, bitmap, cliprect, 0, 1);
382381
383382   draw_framebuffer(screen.machine(), bitmap, cliprect, 1);
384383
385   tc0180vcu_tilemap_draw(state->m_tc0180vcu, bitmap, cliprect, 1, 0);
384   tc0180vcu_tilemap_draw(m_tc0180vcu, bitmap, cliprect, 1, 0);
386385
387   if (state->m_pixel_bitmap)  /* hitice only */
386   if (m_pixel_bitmap)  /* hitice only */
388387   {
389      int scrollx = -2 * state->m_pixel_scroll[0]; //+320;
390      int scrolly = - state->m_pixel_scroll[1]; //+240;
388      int scrollx = -2 * m_pixel_scroll[0]; //+320;
389      int scrolly = - m_pixel_scroll[1]; //+240;
391390      /* bit 15 of pixel_scroll[0] is probably flip screen */
392391
393      copyscrollbitmap_trans(bitmap, *state->m_pixel_bitmap, 1, &scrollx, 1, &scrolly, cliprect, state->m_b_fg_color_base * 16);
392      copyscrollbitmap_trans(bitmap, *m_pixel_bitmap, 1, &scrollx, 1, &scrolly, cliprect, m_b_fg_color_base * 16);
394393   }
395394
396395   draw_framebuffer(screen.machine(), bitmap, cliprect, 0);
397396
398   tc0180vcu_tilemap_draw(state->m_tc0180vcu, bitmap, cliprect, 2, 0);
397   tc0180vcu_tilemap_draw(m_tc0180vcu, bitmap, cliprect, 2, 0);
399398
400399   return 0;
401400}
402401
403402
404403
405SCREEN_UPDATE_RGB32( realpunc )
404UINT32 taitob_state::screen_update_realpunc(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
406405{
407   taitob_state *state = screen.machine().driver_data<taitob_state>();
408406   address_space &space = screen.machine().driver_data()->generic_space();
409407   const rgb_t *palette = palette_entry_list_adjusted(screen.machine().palette);
410   UINT8 video_control = tc0180vcu_get_videoctrl(state->m_tc0180vcu, space, 0);
408   UINT8 video_control = tc0180vcu_get_videoctrl(m_tc0180vcu, space, 0);
411409   int x, y;
412410
413411   /* Video blanked? */
r17967r17968
418416   }
419417
420418   /* Draw the palettized playfields to an indexed bitmap */
421   tc0180vcu_tilemap_draw(state->m_tc0180vcu, *state->m_realpunc_bitmap, cliprect, 0, 1);
419   tc0180vcu_tilemap_draw(m_tc0180vcu, *m_realpunc_bitmap, cliprect, 0, 1);
422420
423   draw_framebuffer(screen.machine(), *state->m_realpunc_bitmap, cliprect, 1);
421   draw_framebuffer(screen.machine(), *m_realpunc_bitmap, cliprect, 1);
424422
425   tc0180vcu_tilemap_draw(state->m_tc0180vcu, *state->m_realpunc_bitmap, cliprect, 1, 0);
423   tc0180vcu_tilemap_draw(m_tc0180vcu, *m_realpunc_bitmap, cliprect, 1, 0);
426424
427   if (state->m_realpunc_video_ctrl & 0x0001)
428      draw_framebuffer(screen.machine(), *state->m_realpunc_bitmap, cliprect, 0);
425   if (m_realpunc_video_ctrl & 0x0001)
426      draw_framebuffer(screen.machine(), *m_realpunc_bitmap, cliprect, 0);
429427
430428   /* Copy the intermediate bitmap to the output bitmap, applying the palette */
431429   for (y = 0; y <= cliprect.max_y; y++)
432430      for (x = 0; x <= cliprect.max_x; x++)
433         bitmap.pix32(y, x) = palette[state->m_realpunc_bitmap->pix16(y, x)];
431         bitmap.pix32(y, x) = palette[m_realpunc_bitmap->pix16(y, x)];
434432
435433   /* Draw the 15bpp raw CRTC frame buffer directly to the output bitmap */
436   if (state->m_realpunc_video_ctrl & 0x0002)
434   if (m_realpunc_video_ctrl & 0x0002)
437435   {
438436      device_t *hd63484 = screen.machine().device("hd63484");
439437
r17967r17968
463461      }
464462   }
465463   /* Draw the 15bpp raw output of the camera ADCs (TODO) */
466   else if (state->m_realpunc_video_ctrl & 0x0004)
464   else if (m_realpunc_video_ctrl & 0x0004)
467465   {
468466      for (y = 0; y <= cliprect.max_y; y++)
469467      {
r17967r17968
473471   }
474472
475473   /* Clear the indexed bitmap and draw the final indexed layers */
476   state->m_realpunc_bitmap->fill(0, cliprect);
474   m_realpunc_bitmap->fill(0, cliprect);
477475
478   if (!(state->m_realpunc_video_ctrl & 0x0001))
479      draw_framebuffer(screen.machine(), *state->m_realpunc_bitmap, cliprect, 0);
476   if (!(m_realpunc_video_ctrl & 0x0001))
477      draw_framebuffer(screen.machine(), *m_realpunc_bitmap, cliprect, 0);
480478
481   tc0180vcu_tilemap_draw(state->m_tc0180vcu, *state->m_realpunc_bitmap, cliprect, 2, 0);
479   tc0180vcu_tilemap_draw(m_tc0180vcu, *m_realpunc_bitmap, cliprect, 2, 0);
482480
483481   /* Merge the indexed layers with the output bitmap */
484482   for (y = 0; y <= cliprect.max_y; y++)
485483   {
486484      for (x = 0; x <= cliprect.max_x; x++)
487485      {
488         if (state->m_realpunc_bitmap->pix16(y, x))
489            bitmap.pix32(y, x) = palette[state->m_realpunc_bitmap->pix16(y, x)];
486         if (m_realpunc_bitmap->pix16(y, x))
487            bitmap.pix32(y, x) = palette[m_realpunc_bitmap->pix16(y, x)];
490488      }
491489   }
492490
r17967r17968
495493
496494
497495
498SCREEN_VBLANK( taitob )
496void taitob_state::screen_eof_taitob(screen_device &screen, bool state)
499497{
500498   // rising edge
501   if (vblank_on)
499   if (state)
502500   {
503      taitob_state *state = screen.machine().driver_data<taitob_state>();
504501      address_space &space = screen.machine().driver_data()->generic_space();
505      UINT8 video_control = tc0180vcu_get_videoctrl(state->m_tc0180vcu, space, 0);
506      UINT8 framebuffer_page = tc0180vcu_get_fb_page(state->m_tc0180vcu, space, 0);
502      UINT8 video_control = tc0180vcu_get_videoctrl(m_tc0180vcu, space, 0);
503      UINT8 framebuffer_page = tc0180vcu_get_fb_page(m_tc0180vcu, space, 0);
507504
508505      if (~video_control & 0x01)
509         state->m_framebuffer[framebuffer_page]->fill(0, screen.machine().primary_screen->visible_area());
506         m_framebuffer[framebuffer_page]->fill(0, screen.machine().primary_screen->visible_area());
510507
511508      if (~video_control & 0x80)
512509      {
513510         framebuffer_page ^= 1;
514         tc0180vcu_set_fb_page(state->m_tc0180vcu, space, 0, framebuffer_page);
511         tc0180vcu_set_fb_page(m_tc0180vcu, space, 0, framebuffer_page);
515512      }
516513
517      draw_sprites(screen.machine(), *state->m_framebuffer[framebuffer_page], screen.machine().primary_screen->visible_area());
514      draw_sprites(screen.machine(), *m_framebuffer[framebuffer_page], screen.machine().primary_screen->visible_area());
518515   }
519516}
trunk/src/mame/video/actfancr.c
r17967r17968
2424
2525/******************************************************************************/
2626
27SCREEN_UPDATE_IND16( actfancr )
27UINT32 actfancr_state::screen_update_actfancr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
2828{
29   actfancr_state *state = screen.machine().driver_data<actfancr_state>();
3029
3130   /* Draw playfield */
32   //state->m_flipscreen = state->m_control_2[0] & 0x80;
33   //screen.machine().tilemap().set_flip_all(state->m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
31   //m_flipscreen = m_control_2[0] & 0x80;
32   //screen.machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
3433
3534   screen.machine().device<deco_bac06_device>("tilegen1")->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
36   screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram16, 0x00, 0x00, 0x0f);
35   screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram16, 0x00, 0x00, 0x0f);
3736   screen.machine().device<deco_bac06_device>("tilegen2")->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
3837
3938   return 0;
trunk/src/mame/video/polepos.c
r17967r17968
498498}
499499
500500
501SCREEN_UPDATE_IND16( polepos )
501UINT32 polepos_state::screen_update_polepos(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
502502{
503   polepos_state *state = screen.machine().driver_data<polepos_state>();
504503   rectangle clip = cliprect;
505504   clip.max_y = 127;
506   state->m_bg_tilemap->draw(bitmap, clip, 0,0);
505   m_bg_tilemap->draw(bitmap, clip, 0,0);
507506   draw_road(screen.machine(), bitmap);
508507   draw_sprites(screen.machine(), bitmap,cliprect);
509   state->m_tx_tilemap->draw(bitmap, cliprect, 0,0);
508   m_tx_tilemap->draw(bitmap, cliprect, 0,0);
510509   return 0;
511510}
trunk/src/mame/video/jackal.c
r17967r17968
223223   draw_sprites_region(machine, bitmap, cliprect, sr, 0x500, 1);
224224}
225225
226SCREEN_UPDATE_IND16( jackal )
226UINT32 jackal_state::screen_update_jackal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
227227{
228228   set_pens(screen.machine());
229229   draw_background(screen.machine(), bitmap, cliprect);
trunk/src/mame/video/tank8.c
r17967r17968
174174}
175175
176176
177SCREEN_UPDATE_IND16( tank8 )
177UINT32 tank8_state::screen_update_tank8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
178178{
179   tank8_state *state = screen.machine().driver_data<tank8_state>();
180   set_pens(state, screen.machine().colortable);
181   state->m_tilemap->draw(bitmap, cliprect, 0, 0);
179   set_pens(this, screen.machine().colortable);
180   m_tilemap->draw(bitmap, cliprect, 0, 0);
182181
183182   draw_sprites(screen.machine(), bitmap, cliprect);
184183   draw_bullets(screen.machine(), bitmap, cliprect);
r17967r17968
186185}
187186
188187
189SCREEN_VBLANK( tank8 )
188void tank8_state::screen_eof_tank8(screen_device &screen, bool state)
190189{
191190   // on falling edge
192   if (!vblank_on)
191   if (!state)
193192   {
194      tank8_state *state = screen.machine().driver_data<tank8_state>();
195193      int x;
196194      int y;
197195      const rectangle &visarea = screen.machine().primary_screen->visible_area();
198196
199      state->m_tilemap->draw(state->m_helper1, visarea, 0, 0);
197      m_tilemap->draw(m_helper1, visarea, 0, 0);
200198
201      state->m_helper2.fill(8, visarea);
202      state->m_helper3.fill(8, visarea);
199      m_helper2.fill(8, visarea);
200      m_helper3.fill(8, visarea);
203201
204      draw_sprites(screen.machine(), state->m_helper2, visarea);
205      draw_bullets(screen.machine(), state->m_helper3, visarea);
202      draw_sprites(screen.machine(), m_helper2, visarea);
203      draw_bullets(screen.machine(), m_helper3, visarea);
206204
207205      for (y = visarea.min_y; y <= visarea.max_y; y++)
208206      {
209207         int _state = 0;
210208
211         const UINT16* p1 = &state->m_helper1.pix16(y);
212         const UINT16* p2 = &state->m_helper2.pix16(y);
213         const UINT16* p3 = &state->m_helper3.pix16(y);
209         const UINT16* p1 = &m_helper1.pix16(y);
210         const UINT16* p2 = &m_helper2.pix16(y);
211         const UINT16* p3 = &m_helper3.pix16(y);
214212
215213         if (y % 2 != screen.machine().primary_screen->frame_number() % 2)
216214            continue; /* video display is interlaced */
r17967r17968
264262               if (p1[x] == 0x11)
265263                  index |= 0x20;
266264
267               if (y - get_y_pos(state, sprite_num) >= 8)
265               if (y - get_y_pos(this, sprite_num) >= 8)
268266                  index |= 0x40; /* collision on bottom side */
269267
270               if (x - get_x_pos(state, sprite_num) >= 8)
268               if (x - get_x_pos(this, sprite_num) >= 8)
271269                  index |= 0x80; /* collision on right side */
272270            }
273271
trunk/src/mame/video/mw8080bw.c
r17967r17968
88#include "includes/mw8080bw.h"
99
1010
11SCREEN_UPDATE_RGB32( mw8080bw )
11UINT32 mw8080bw_state::screen_update_mw8080bw(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
1212{
13   mw8080bw_state *state = screen.machine().driver_data<mw8080bw_state>();
1413   UINT8 x = 0;
1514   UINT8 y = MW8080BW_VCOUNTER_START_NO_VBLANK;
1615   UINT8 video_data = 0;
r17967r17968
5150      else if ((x & 0x07) == 0x04)
5251      {
5352         offs_t offs = ((offs_t)y << 5) | (x >> 3);
54         video_data = state->m_main_ram[offs];
53         video_data = m_main_ram[offs];
5554      }
5655   }
5756
r17967r17968
7574#define PHANTOM2_SIDE_TRENCH_LIGHT_RGB32_PEN     MAKE_RGB(0x72, 0x72, 0x72)
7675
7776
78SCREEN_UPDATE_RGB32( spcenctr )
77UINT32 mw8080bw_state::screen_update_spcenctr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
7978{
80   mw8080bw_state *state = screen.machine().driver_data<mw8080bw_state>();
8179   UINT8 line_buf[256]; /* 256x1 bit RAM */
8280
8381   UINT8 x = 0;
r17967r17968
8684   UINT8 draw_line = 0;
8785   UINT8 draw_trench = 0;
8886   UINT8 draw_floor = 0;
89   UINT8 width = state->m_spcenctr_trench_width;
87   UINT8 width = m_spcenctr_trench_width;
9088   UINT8 floor_width = width;
91   UINT8 center = state->m_spcenctr_trench_center;
89   UINT8 center = m_spcenctr_trench_center;
9290
9391   memset(line_buf, 0, 256);
9492
r17967r17968
150148
151149         /* update the trench control for the next line */
152150         offs = ((offs_t)y << 5) | 0x1f;
153         trench_control = state->m_main_ram[offs];
151         trench_control = m_main_ram[offs];
154152
155153         if (trench_control & 0x40)
156154            draw_trench = 1;
r17967r17968
168166
169167         /* add the lower 2 bits stored in the slope array to width */
170168         if (draw_trench)
171            width = width + (state->m_spcenctr_trench_slope[y & 0x0f] & 0x03);
169            width = width + (m_spcenctr_trench_slope[y & 0x0f] & 0x03);
172170
173171         /* add the higher 2 bits stored in the slope array to floor width */
174172         if (draw_floor)
175            floor_width = floor_width + ((state->m_spcenctr_trench_slope[y & 0x0f] & 0x0c) >> 2);
173            floor_width = floor_width + ((m_spcenctr_trench_slope[y & 0x0f] & 0x0c) >> 2);
176174
177175         /* next row, video_data is now 0, so the next line will start
178176               with 4 blank pixels */
r17967r17968
186184      else if ((x & 0x07) == 0x04)
187185      {
188186         offs_t offs = ((offs_t)y << 5) | (x >> 3);
189         video_data = state->m_main_ram[offs];
187         video_data = m_main_ram[offs];
190188      }
191189   }
192190
r17967r17968
219217#define PHANTOM2_RGB32_CLOUD_PEN          MAKE_RGB(0xc0, 0xc0, 0xc0)
220218
221219
222SCREEN_UPDATE_RGB32( phantom2 )
220UINT32 mw8080bw_state::screen_update_phantom2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
223221{
224   mw8080bw_state *state = screen.machine().driver_data<mw8080bw_state>();
225222   UINT8 x = 0;
226223   UINT8 y = MW8080BW_VCOUNTER_START_NO_VBLANK;
227224   UINT8 video_data = 0;
228225   UINT8 cloud_data = 0;
229226
230   UINT16 cloud_counter = state->m_phantom2_cloud_counter;
227   UINT16 cloud_counter = m_phantom2_cloud_counter;
231228
232   UINT8 *cloud_region = state->memregion("proms")->base();
229   UINT8 *cloud_region = memregion("proms")->base();
233230
234231   while (1)
235232   {
r17967r17968
303300      else if ((x & 0x07) == 0x04)
304301      {
305302         offs_t offs = ((offs_t)y << 5) | (x >> 3);
306         video_data = state->m_main_ram[offs];
303         video_data = m_main_ram[offs];
307304      }
308305   }
309306
r17967r17968
311308}
312309
313310
314SCREEN_VBLANK( phantom2 )
311void mw8080bw_state::screen_eof_phantom2(screen_device &screen, bool state)
315312{
316313   // falling edge
317   if (!vblank_on)
314   if (!state)
318315   {
319      mw8080bw_state *state = screen.machine().driver_data<mw8080bw_state>();
320316
321      state->m_phantom2_cloud_counter += MW8080BW_VTOTAL;
317      m_phantom2_cloud_counter += MW8080BW_VTOTAL;
322318
323      if (state->m_phantom2_cloud_counter >= PHANTOM2_CLOUD_COUNTER_END)
324         state->m_phantom2_cloud_counter = PHANTOM2_CLOUD_COUNTER_START + (state->m_phantom2_cloud_counter - PHANTOM2_CLOUD_COUNTER_END);
319      if (m_phantom2_cloud_counter >= PHANTOM2_CLOUD_COUNTER_END)
320         m_phantom2_cloud_counter = PHANTOM2_CLOUD_COUNTER_START + (m_phantom2_cloud_counter - PHANTOM2_CLOUD_COUNTER_END);
325321   }
326322}
327323
r17967r17968
335331
336332/* the flip screen circuit is just a couple of relays on the monitor PCB */
337333
338SCREEN_UPDATE_RGB32( invaders )
334UINT32 mw8080bw_state::screen_update_invaders(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
339335{
340   mw8080bw_state *state = screen.machine().driver_data<mw8080bw_state>();
341336   UINT8 x = 0;
342337   UINT8 y = MW8080BW_VCOUNTER_START_NO_VBLANK;
343338   UINT8 video_data = 0;
344   UINT8 flip = state->m_invaders_flip_screen;
339   UINT8 flip = m_invaders_flip_screen;
345340
346341   while (1)
347342   {
r17967r17968
387382      else if ((x & 0x07) == 0x04)
388383      {
389384         offs_t offs = ((offs_t)y << 5) | (x >> 3);
390         video_data = state->m_main_ram[offs];
385         video_data = m_main_ram[offs];
391386      }
392387   }
393388
trunk/src/mame/video/vaportra.c
r17967r17968
5050/******************************************************************************/
5151
5252
53SCREEN_UPDATE_IND16( vaportra )
53UINT32 vaportra_state::screen_update_vaportra(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
5454{
55   vaportra_state *state = screen.machine().driver_data<vaportra_state>();
5655   address_space &space = screen.machine().driver_data()->generic_space();
57   UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
58   int pri = state->m_priority[0] & 0x03;
56   UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff);
57   int pri = m_priority[0] & 0x03;
5958
60   state->flip_screen_set(!BIT(flip, 7));
61   deco16ic_pf_update(state->m_deco_tilegen1, 0, 0);
62   deco16ic_pf_update(state->m_deco_tilegen2, 0, 0);
59   flip_screen_set(!BIT(flip, 7));
60   deco16ic_pf_update(m_deco_tilegen1, 0, 0);
61   deco16ic_pf_update(m_deco_tilegen2, 0, 0);
6362
6463   screen.machine().device<deco_mxc06_device>("spritegen")->set_pri_type(1); // force priorities to be handled in a different way for this driver for now
6564
6665   /* Draw playfields */
6766   if (pri == 0)
6867   {
69      deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
70      deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 0);
71      screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram->buffer(), 0, state->m_priority[1], 0x0f);
72      deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
68      deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
69      deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 0);
70      screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram->buffer(), 0, m_priority[1], 0x0f);
71      deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
7372   }
7473   else if (pri == 1)
7574   {
76      deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
77      deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 0);
78      screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram->buffer(), 0, state->m_priority[1], 0x0f);
79      deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
75      deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
76      deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, 0, 0);
77      screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram->buffer(), 0, m_priority[1], 0x0f);
78      deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
8079   }
8180   else if (pri == 2)
8281   {
83      deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
84      deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
85      screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram->buffer(), 0, state->m_priority[1], 0x0f);
86      deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 0);
82      deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
83      deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
84      screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram->buffer(), 0, m_priority[1], 0x0f);
85      deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 0);
8786   }
8887   else
8988   {
90      deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
91      deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
92      screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram->buffer(), 0, state->m_priority[1], 0x0f);
93      deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 0);
89      deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
90      deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
91      screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram->buffer(), 0, m_priority[1], 0x0f);
92      deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, 0, 0);
9493   }
9594
96   screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram->buffer(), 1, state->m_priority[1], 0x0f);
97   deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
95   screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram->buffer(), 1, m_priority[1], 0x0f);
96   deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
9897   return 0;
9998}
trunk/src/mame/video/namcos86.c
r17967r17968
349349}
350350
351351
352SCREEN_UPDATE_IND16( namcos86 )
352UINT32 namcos86_state::screen_update_namcos86(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
353353{
354   namcos86_state *state = screen.machine().driver_data<namcos86_state>();
355354   int layer;
356355
357356   /* flip screen is embedded in the sprite control registers */
358   /* can't use state->flip_screen_set() because the visible area is asymmetrical */
359   state->flip_screen_set_no_update(state->m_spriteram[0x07f6] & 1);
360   screen.machine().tilemap().set_flip_all(state->flip_screen() ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
357   /* can't use flip_screen_set() because the visible area is asymmetrical */
358   flip_screen_set_no_update(m_spriteram[0x07f6] & 1);
359   screen.machine().tilemap().set_flip_all(flip_screen() ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
361360   set_scroll(screen.machine(), 0);
362361   set_scroll(screen.machine(), 1);
363362   set_scroll(screen.machine(), 2);
r17967r17968
365364
366365   screen.machine().priority_bitmap.fill(0, cliprect);
367366
368   bitmap.fill(screen.machine().gfx[0]->colorbase() + 8*state->m_backcolor+7, cliprect);
367   bitmap.fill(screen.machine().gfx[0]->colorbase() + 8*m_backcolor+7, cliprect);
369368
370369   for (layer = 0;layer < 8;layer++)
371370   {
r17967r17968
373372
374373      for (i = 3;i >= 0;i--)
375374      {
376         if (((state->m_xscroll[i] & 0x0e00) >> 9) == layer)
377            state->m_bg_tilemap[i]->draw(bitmap, cliprect, 0,layer,0);
375         if (((m_xscroll[i] & 0x0e00) >> 9) == layer)
376            m_bg_tilemap[i]->draw(bitmap, cliprect, 0,layer,0);
378377      }
379378   }
380379
r17967r17968
383382}
384383
385384
386SCREEN_VBLANK( namcos86 )
385void namcos86_state::screen_eof_namcos86(screen_device &screen, bool state)
387386{
388387   // rising edge
389   if (vblank_on)
388   if (state)
390389   {
391      namcos86_state *state = screen.machine().driver_data<namcos86_state>();
392      if (state->m_copy_sprites)
390      if (m_copy_sprites)
393391      {
394         UINT8 *spriteram = state->m_spriteram;
392         UINT8 *spriteram = m_spriteram;
395393         int i,j;
396394
397395         for (i = 0;i < 0x800;i += 16)
r17967r17968
400398               spriteram[i+j] = spriteram[i+j - 6];
401399         }
402400
403         state->m_copy_sprites = 0;
401         m_copy_sprites = 0;
404402      }
405403   }
406404}
trunk/src/mame/video/suna8.c
r17967r17968
427427
428428***************************************************************************/
429429
430SCREEN_UPDATE_IND16( suna8 )
430UINT32 suna8_state::screen_update_suna8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
431431{
432432   /* see hardhead, hardhea2 test mode (press button 2 for both players) */
433433   bitmap.fill(0xff, cliprect);
r17967r17968
436436#if TILEMAPS
437437   if (screen.machine().input().code_pressed(KEYCODE_Z) || screen.machine().input().code_pressed(KEYCODE_X))
438438   {
439      suna8_state *state = screen.machine().driver_data<suna8_state>();
440      int max_tiles = state->memregion("gfx1")->bytes() / (0x400 * 0x20);
439      int max_tiles = memregion("gfx1")->bytes() / (0x400 * 0x20);
441440
442      if (screen.machine().input().code_pressed_once(KEYCODE_Q))   { state->m_page--;   screen.machine().tilemap().mark_all_dirty();   }
443      if (screen.machine().input().code_pressed_once(KEYCODE_W))   { state->m_page++;   screen.machine().tilemap().mark_all_dirty();   }
444      if (screen.machine().input().code_pressed_once(KEYCODE_E))   { state->m_tiles--;   screen.machine().tilemap().mark_all_dirty();   }
445      if (screen.machine().input().code_pressed_once(KEYCODE_R))   { state->m_tiles++;   screen.machine().tilemap().mark_all_dirty();   }
446      if (screen.machine().input().code_pressed_once(KEYCODE_A))   { state->m_trombank--;   screen.machine().tilemap().mark_all_dirty();   }
447      if (screen.machine().input().code_pressed_once(KEYCODE_S))   { state->m_trombank++;   screen.machine().tilemap().mark_all_dirty();   }
441      if (screen.machine().input().code_pressed_once(KEYCODE_Q))   { m_page--;   screen.machine().tilemap().mark_all_dirty();   }
442      if (screen.machine().input().code_pressed_once(KEYCODE_W))   { m_page++;   screen.machine().tilemap().mark_all_dirty();   }
443      if (screen.machine().input().code_pressed_once(KEYCODE_E))   { m_tiles--;   screen.machine().tilemap().mark_all_dirty();   }
444      if (screen.machine().input().code_pressed_once(KEYCODE_R))   { m_tiles++;   screen.machine().tilemap().mark_all_dirty();   }
445      if (screen.machine().input().code_pressed_once(KEYCODE_A))   { m_trombank--;   screen.machine().tilemap().mark_all_dirty();   }
446      if (screen.machine().input().code_pressed_once(KEYCODE_S))   { m_trombank++;   screen.machine().tilemap().mark_all_dirty();   }
448447
449      state->m_rombank  &= 0xf;
450      state->m_page  &= (state->m_text_dim > 0)?3:7;
451      state->m_tiles %= max_tiles;
452      if (state->m_tiles < 0) state->m_tiles += max_tiles;
448      m_rombank  &= 0xf;
449      m_page  &= (m_text_dim > 0)?3:7;
450      m_tiles %= max_tiles;
451      if (m_tiles < 0) m_tiles += max_tiles;
453452
454      state->m_bg_tilemap->set_scrollx(0, 0x100 * state->m_page);
455      state->m_bg_tilemap->set_scrolly(0, 0);
456      state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
453      m_bg_tilemap->set_scrollx(0, 0x100 * m_page);
454      m_bg_tilemap->set_scrolly(0, 0);
455      m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
457456#if 1
458457   popmessage("%02X %02X %02X - p%2X g%02X r%02X",
459                  state->m_rombank, state->m_palettebank, state->m_spritebank,
460                  state->m_page, state->m_tiles, state->m_trombank);
458                  m_rombank, m_palettebank, m_spritebank,
459                  m_page, m_tiles, m_trombank);
461460#endif
462461   }
463462   else
trunk/src/mame/video/qdrmfgp.c
r17967r17968
5757
5858***************************************************************************/
5959
60SCREEN_UPDATE_IND16( qdrmfgp )
60UINT32 qdrmfgp_state::screen_update_qdrmfgp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
6161{
6262   device_t *k056832 = screen.machine().device("k056832");
6363   bitmap.fill(get_black_pen(screen.machine()), cliprect);
trunk/src/mame/video/btime.c
r17967r17968
411411}
412412
413413
414SCREEN_UPDATE_IND16( btime )
414UINT32 btime_state::screen_update_btime(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
415415{
416   btime_state *state = screen.machine().driver_data<btime_state>();
417   if (state->m_bnj_scroll1 & 0x10)
416   if (m_bnj_scroll1 & 0x10)
418417   {
419418      int i, start;
420419
421420      // Generate tile map
422      if (state->flip_screen())
421      if (flip_screen())
423422         start = 0;
424423      else
425424         start = 1;
426425
427426      for (i = 0; i < 4; i++)
428427      {
429         state->m_btime_tilemap[i] = start | (state->m_bnj_scroll1 & 0x04);
428         m_btime_tilemap[i] = start | (m_bnj_scroll1 & 0x04);
430429         start = (start + 1) & 0x03;
431430      }
432431
433      draw_background(screen.machine(), bitmap, cliprect, state->m_btime_tilemap, 0);
432      draw_background(screen.machine(), bitmap, cliprect, m_btime_tilemap, 0);
434433      draw_chars(screen.machine(), bitmap, cliprect, TRUE, 0, -1);
435434   }
436435   else
437436      draw_chars(screen.machine(), bitmap, cliprect, FALSE, 0, -1);
438437
439   draw_sprites(screen.machine(), bitmap, cliprect, 0, 1, 0, state->m_videoram, 0x20);
438   draw_sprites(screen.machine(), bitmap, cliprect, 0, 1, 0, m_videoram, 0x20);
440439
441440   return 0;
442441}
443442
444443
445SCREEN_UPDATE_IND16( eggs )
444UINT32 btime_state::screen_update_eggs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
446445{
447   btime_state *state = screen.machine().driver_data<btime_state>();
448446   draw_chars(screen.machine(), bitmap, cliprect, FALSE, 0, -1);
449   draw_sprites(screen.machine(), bitmap, cliprect, 0, 0, 0, state->m_videoram, 0x20);
447   draw_sprites(screen.machine(), bitmap, cliprect, 0, 0, 0, m_videoram, 0x20);
450448
451449   return 0;
452450}
453451
454452
455SCREEN_UPDATE_IND16( lnc )
453UINT32 btime_state::screen_update_lnc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
456454{
457   btime_state *state = screen.machine().driver_data<btime_state>();
458455   draw_chars(screen.machine(), bitmap, cliprect, FALSE, 0, -1);
459   draw_sprites(screen.machine(), bitmap, cliprect, 0, 1, 2, state->m_videoram, 0x20);
456   draw_sprites(screen.machine(), bitmap, cliprect, 0, 1, 2, m_videoram, 0x20);
460457
461458   return 0;
462459}
463460
464461
465SCREEN_UPDATE_IND16( zoar )
462UINT32 btime_state::screen_update_zoar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
466463{
467   btime_state *state = screen.machine().driver_data<btime_state>();
468   if (state->m_bnj_scroll1 & 0x04)
464   if (m_bnj_scroll1 & 0x04)
469465   {
470      draw_background(screen.machine(), bitmap, cliprect, state->m_zoar_scrollram, state->m_btime_palette);
471      draw_chars(screen.machine(), bitmap, cliprect, TRUE, state->m_btime_palette + 1, -1);
466      draw_background(screen.machine(), bitmap, cliprect, m_zoar_scrollram, m_btime_palette);
467      draw_chars(screen.machine(), bitmap, cliprect, TRUE, m_btime_palette + 1, -1);
472468   }
473469   else
474      draw_chars(screen.machine(), bitmap, cliprect, FALSE, state->m_btime_palette + 1, -1);
470      draw_chars(screen.machine(), bitmap, cliprect, FALSE, m_btime_palette + 1, -1);
475471
476472   /* The order is important for correct priorities */
477   draw_sprites(screen.machine(), bitmap, cliprect, state->m_btime_palette + 1, 1, 2, state->m_videoram + 0x1f, 0x20);
478   draw_sprites(screen.machine(), bitmap, cliprect, state->m_btime_palette + 1, 1, 2, state->m_videoram, 0x20);
473   draw_sprites(screen.machine(), bitmap, cliprect, m_btime_palette + 1, 1, 2, m_videoram + 0x1f, 0x20);
474   draw_sprites(screen.machine(), bitmap, cliprect, m_btime_palette + 1, 1, 2, m_videoram, 0x20);
479475
480476   return 0;
481477}
482478
483479
484SCREEN_UPDATE_IND16( bnj )
480UINT32 btime_state::screen_update_bnj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
485481{
486   btime_state *state = screen.machine().driver_data<btime_state>();
487   if (state->m_bnj_scroll1)
482   if (m_bnj_scroll1)
488483   {
489484      int scroll, offs;
490485
491      for (offs = state->m_bnj_backgroundram.bytes() - 1; offs >=0; offs--)
486      for (offs = m_bnj_backgroundram.bytes() - 1; offs >=0; offs--)
492487      {
493488         int sx, sy;
494489
r17967r17968
496491         sy = 16 * (((offs % 0x100) < 0x80) ? offs % 8 : (offs % 8) + 8);
497492         sx = 496 - sx;
498493
499         if (state->flip_screen())
494         if (flip_screen())
500495         {
501496            sx = 496 - sx;
502497            sy = 256 - sy;
503498         }
504499
505         drawgfx_opaque(*state->m_background_bitmap, state->m_background_bitmap->cliprect(), screen.machine().gfx[2],
506               (state->m_bnj_backgroundram[offs] >> 4) + ((offs & 0x80) >> 3) + 32,
500         drawgfx_opaque(*m_background_bitmap, m_background_bitmap->cliprect(), screen.machine().gfx[2],
501               (m_bnj_backgroundram[offs] >> 4) + ((offs & 0x80) >> 3) + 32,
507502               0,
508               state->flip_screen(), state->flip_screen(),
503               flip_screen(), flip_screen(),
509504               sx, sy);
510505      }
511506
512507      /* copy the background bitmap to the screen */
513      scroll = (state->m_bnj_scroll1 & 0x02) * 128 + 511 - state->m_bnj_scroll2;
514      if (!state->flip_screen())
508      scroll = (m_bnj_scroll1 & 0x02) * 128 + 511 - m_bnj_scroll2;
509      if (!flip_screen())
515510         scroll = 767 - scroll;
516      copyscrollbitmap(bitmap, *state->m_background_bitmap, 1, &scroll, 0, 0, cliprect);
511      copyscrollbitmap(bitmap, *m_background_bitmap, 1, &scroll, 0, 0, cliprect);
517512
518513      /* copy the low priority characters followed by the sprites
519514           then the high priority characters */
520515      draw_chars(screen.machine(), bitmap, cliprect, TRUE, 0, 1);
521      draw_sprites(screen.machine(), bitmap, cliprect, 0, 0, 0, state->m_videoram, 0x20);
516      draw_sprites(screen.machine(), bitmap, cliprect, 0, 0, 0, m_videoram, 0x20);
522517      draw_chars(screen.machine(), bitmap, cliprect, TRUE, 0, 0);
523518   }
524519   else
525520   {
526521      draw_chars(screen.machine(), bitmap, cliprect, FALSE, 0, -1);
527      draw_sprites(screen.machine(), bitmap, cliprect, 0, 0, 0, state->m_videoram, 0x20);
522      draw_sprites(screen.machine(), bitmap, cliprect, 0, 0, 0, m_videoram, 0x20);
528523   }
529524
530525   return 0;
531526}
532527
533528
534SCREEN_UPDATE_IND16( cookrace )
529UINT32 btime_state::screen_update_cookrace(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
535530{
536   btime_state *state = screen.machine().driver_data<btime_state>();
537531   int offs;
538532
539   for (offs = state->m_bnj_backgroundram.bytes() - 1; offs >=0; offs--)
533   for (offs = m_bnj_backgroundram.bytes() - 1; offs >=0; offs--)
540534   {
541535      int sx, sy;
542536
543537      sx = 31 - (offs / 32);
544538      sy = offs % 32;
545539
546      if (state->flip_screen())
540      if (flip_screen())
547541      {
548542         sx = 31 - sx;
549543         sy = 33 - sy;
550544      }
551545
552546      drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[2],
553            state->m_bnj_backgroundram[offs],
547            m_bnj_backgroundram[offs],
554548            0,
555            state->flip_screen(), state->flip_screen(),
549            flip_screen(), flip_screen(),
556550            8*sx,8*sy);
557551   }
558552
559553   draw_chars(screen.machine(), bitmap, cliprect, TRUE, 0, -1);
560   draw_sprites(screen.machine(), bitmap, cliprect, 0, 1, 0, state->m_videoram, 0x20);
554   draw_sprites(screen.machine(), bitmap, cliprect, 0, 1, 0, m_videoram, 0x20);
561555
562556   return 0;
563557}
564558
565559
566SCREEN_UPDATE_IND16( disco )
560UINT32 btime_state::screen_update_disco(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
567561{
568   btime_state *state = screen.machine().driver_data<btime_state>();
569   draw_chars(screen.machine(), bitmap, cliprect, FALSE, state->m_btime_palette, -1);
570   draw_sprites(screen.machine(), bitmap, cliprect, state->m_btime_palette, 0, 0, state->m_spriteram, 1);
562   draw_chars(screen.machine(), bitmap, cliprect, FALSE, m_btime_palette, -1);
563   draw_sprites(screen.machine(), bitmap, cliprect, m_btime_palette, 0, 0, m_spriteram, 1);
571564
572565   return 0;
573566}
trunk/src/mame/video/cps1.c
r17967r17968
27902790
27912791***************************************************************************/
27922792
2793SCREEN_UPDATE_IND16( cps1 )
2793UINT32 cps_state::screen_update_cps1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
27942794{
2795   cps_state *state = screen.machine().driver_data<cps_state>();
27962795   int layercontrol, l0, l1, l2, l3;
2797   int videocontrol = state->m_cps_a_regs[CPS1_VIDEOCONTROL];
2796   int videocontrol = m_cps_a_regs[CPS1_VIDEOCONTROL];
27982797
2799   state->flip_screen_set(videocontrol & 0x8000);
2798   flip_screen_set(videocontrol & 0x8000);
28002799
2801   layercontrol = state->m_cps_b_regs[state->m_game_config->layer_control / 2];
2800   layercontrol = m_cps_b_regs[m_game_config->layer_control / 2];
28022801
28032802   /* Get video memory base registers */
28042803   cps1_get_video_base(screen.machine());
r17967r17968
28062805   /* Find the offset of the last sprite in the sprite table */
28072806   cps1_find_last_sprite(screen.machine());
28082807
2809   if (state->m_cps_version == 2)
2808   if (m_cps_version == 2)
28102809   {
28112810      cps2_find_last_sprite(screen.machine());
28122811   }
28132812
28142813   cps1_update_transmasks(screen.machine());
28152814
2816   state->m_bg_tilemap[0]->set_scrollx(0, state->m_scroll1x);
2817   state->m_bg_tilemap[0]->set_scrolly(0, state->m_scroll1y);
2815   m_bg_tilemap[0]->set_scrollx(0, m_scroll1x);
2816   m_bg_tilemap[0]->set_scrolly(0, m_scroll1y);
28182817
28192818   if (videocontrol & 0x01)   /* linescroll enable */
28202819   {
2821      int scrly = -state->m_scroll2y;
2820      int scrly = -m_scroll2y;
28222821      int i;
28232822      int otheroffs;
28242823
2825      state->m_bg_tilemap[1]->set_scroll_rows(1024);
2824      m_bg_tilemap[1]->set_scroll_rows(1024);
28262825
2827      otheroffs = state->m_cps_a_regs[CPS1_ROWSCROLL_OFFS];
2826      otheroffs = m_cps_a_regs[CPS1_ROWSCROLL_OFFS];
28282827
28292828      for (i = 0; i < 256; i++)
2830         state->m_bg_tilemap[1]->set_scrollx((i - scrly) & 0x3ff, state->m_scroll2x + state->m_other[(i + otheroffs) & 0x3ff]);
2829         m_bg_tilemap[1]->set_scrollx((i - scrly) & 0x3ff, m_scroll2x + m_other[(i + otheroffs) & 0x3ff]);
28312830   }
28322831   else
28332832   {
2834      state->m_bg_tilemap[1]->set_scroll_rows(1);
2835      state->m_bg_tilemap[1]->set_scrollx(0, state->m_scroll2x);
2833      m_bg_tilemap[1]->set_scroll_rows(1);
2834      m_bg_tilemap[1]->set_scrollx(0, m_scroll2x);
28362835   }
2837   state->m_bg_tilemap[1]->set_scrolly(0, state->m_scroll2y);
2838   state->m_bg_tilemap[2]->set_scrollx(0, state->m_scroll3x);
2839   state->m_bg_tilemap[2]->set_scrolly(0, state->m_scroll3y);
2836   m_bg_tilemap[1]->set_scrolly(0, m_scroll2y);
2837   m_bg_tilemap[2]->set_scrollx(0, m_scroll3x);
2838   m_bg_tilemap[2]->set_scrolly(0, m_scroll3y);
28402839
28412840
28422841   /* Blank screen */
2843   if (state->m_cps_version == 1)
2842   if (m_cps_version == 1)
28442843   {
28452844      // CPS1 games use pen 0xbff as background color; this is used in 3wonders,
28462845      // mtwins (explosion during attract), mercs (intermission).
r17967r17968
28652864   l3 = (layercontrol >> 0x0c) & 03;
28662865   screen.machine().priority_bitmap.fill(0, cliprect);
28672866
2868   if (state->m_cps_version == 1)
2867   if (m_cps_version == 1)
28692868   {
28702869      cps1_render_layer(screen.machine(), bitmap, cliprect, l0, 0);
28712870
r17967r17968
28882887   {
28892888      int l0pri, l1pri, l2pri, l3pri;
28902889      int primasks[8], i;
2891      l0pri = (state->m_pri_ctrl >> 4 * l0) & 0x0f;
2892      l1pri = (state->m_pri_ctrl >> 4 * l1) & 0x0f;
2893      l2pri = (state->m_pri_ctrl >> 4 * l2) & 0x0f;
2894      l3pri = (state->m_pri_ctrl >> 4 * l3) & 0x0f;
2890      l0pri = (m_pri_ctrl >> 4 * l0) & 0x0f;
2891      l1pri = (m_pri_ctrl >> 4 * l1) & 0x0f;
2892      l2pri = (m_pri_ctrl >> 4 * l2) & 0x0f;
2893      l3pri = (m_pri_ctrl >> 4 * l3) & 0x0f;
28952894
28962895#if 0
28972896if (   (cps2_port(screen.machine(), CPS2_OBJ_BASE) != 0x7080 && cps2_port(screen.machine(), CPS2_OBJ_BASE) != 0x7000) ||
r17967r17968
29422941   return 0;
29432942}
29442943
2945SCREEN_VBLANK( cps1 )
2944void cps_state::screen_eof_cps1(screen_device &screen, bool state)
29462945{
29472946   // rising edge
2948   if (vblank_on)
2947   if (state)
29492948   {
2950      cps_state *state = screen.machine().driver_data<cps_state>();
29512949
29522950      /* Get video memory base registers */
29532951      cps1_get_video_base(screen.machine());
29542952
2955      if (state->m_cps_version == 1)
2953      if (m_cps_version == 1)
29562954      {
29572955         /* CPS1 sprites have to be delayed one frame */
2958         memcpy(state->m_buffered_obj, state->m_obj, state->m_obj_size);
2956         memcpy(m_buffered_obj, m_obj, m_obj_size);
29592957      }
29602958   }
29612959}
trunk/src/mame/video/starcrus.c
r17967r17968
400400   return 0;
401401}
402402
403SCREEN_UPDATE_IND16( starcrus )
403UINT32 starcrus_state::screen_update_starcrus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
404404{
405   starcrus_state *state = screen.machine().driver_data<starcrus_state>();
406405
407406   bitmap.fill(0, cliprect);
408407
409408   /* Draw ship 1 */
410409   drawgfx_transpen(bitmap,
411410         cliprect,
412         screen.machine().gfx[8+((state->m_s1_sprite&0x04)>>2)],
413         (state->m_s1_sprite&0x03)^0x03,
411         screen.machine().gfx[8+((m_s1_sprite&0x04)>>2)],
412         (m_s1_sprite&0x03)^0x03,
414413         0,
415         (state->m_s1_sprite&0x08)>>3, (state->m_s1_sprite&0x10)>>4,
416         state->m_s1_x, state->m_s1_y,
414         (m_s1_sprite&0x08)>>3, (m_s1_sprite&0x10)>>4,
415         m_s1_x, m_s1_y,
417416         0);
418417
419418   /* Draw ship 2 */
420419   drawgfx_transpen(bitmap,
421420         cliprect,
422         screen.machine().gfx[10+((state->m_s2_sprite&0x04)>>2)],
423         (state->m_s2_sprite&0x03)^0x03,
421         screen.machine().gfx[10+((m_s2_sprite&0x04)>>2)],
422         (m_s2_sprite&0x03)^0x03,
424423         0,
425         (state->m_s2_sprite&0x08)>>3, (state->m_s2_sprite&0x10)>>4,
426         state->m_s2_x, state->m_s2_y,
424         (m_s2_sprite&0x08)>>3, (m_s2_sprite&0x10)>>4,
425         m_s2_x, m_s2_y,
427426         0);
428427
429428   /* Draw score/projectile 1 */
430429   drawgfx_transpen(bitmap,
431430         cliprect,
432         screen.machine().gfx[(state->m_p1_sprite&0x0c)>>2],
433         (state->m_p1_sprite&0x03)^0x03,
431         screen.machine().gfx[(m_p1_sprite&0x0c)>>2],
432         (m_p1_sprite&0x03)^0x03,
434433         0,
435434         0,0,
436         state->m_p1_x, state->m_p1_y,
435         m_p1_x, m_p1_y,
437436         0);
438437
439438   /* Draw score/projectile 2 */
440439   drawgfx_transpen(bitmap,
441440         cliprect,
442         screen.machine().gfx[4+((state->m_p2_sprite&0x0c)>>2)],
443         (state->m_p2_sprite&0x03)^0x03,
441         screen.machine().gfx[4+((m_p2_sprite&0x0c)>>2)],
442         (m_p2_sprite&0x03)^0x03,
444443         0,
445444         0,0,
446         state->m_p2_x, state->m_p2_y,
445         m_p2_x, m_p2_y,
447446         0);
448447
449448   /* Collision detection */
450449   if (cliprect.max_y == screen.visible_area().max_y)
451450   {
452      state->m_collision_reg = 0x00;
451      m_collision_reg = 0x00;
453452
454453      /* Check for collisions between ship1 and ship2 */
455454      if (collision_check_s1s2(screen.machine()))
456455      {
457         state->m_collision_reg |= 0x08;
456         m_collision_reg |= 0x08;
458457      }
459458      /* Check for collisions between ship1 and projectiles */
460459      if (collision_check_s1p1p2(screen.machine()))
461460      {
462         state->m_collision_reg |= 0x02;
461         m_collision_reg |= 0x02;
463462      }
464463      /* Check for collisions between ship1 and projectiles */
465464      if (collision_check_s2p1p2(screen.machine()))
466465      {
467         state->m_collision_reg |= 0x01;
466         m_collision_reg |= 0x01;
468467      }
469468      /* Check for collisions between ship1 and projectiles */
470469      /* Note: I don't think this is used by the game */
471470      if (collision_check_p1p2(screen.machine()))
472471      {
473         state->m_collision_reg |= 0x04;
472         m_collision_reg |= 0x04;
474473      }
475474   }
476475
trunk/src/mame/video/nova2001.c
r17967r17968
339339
340340
341341
342SCREEN_UPDATE_IND16( nova2001 )
342UINT32 nova2001_state::screen_update_nova2001(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
343343{
344   nova2001_state *state = screen.machine().driver_data<nova2001_state>();
345   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
344   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
346345
347346   nova2001_draw_sprites(screen.machine(), bitmap, cliprect);
348347
349348   // according to the schematics, fg category 0 should be drawn behind sprites,
350349   // but it doesn't look right that way
351   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
352   state->m_fg_tilemap->draw(bitmap, cliprect, 1, 0);
350   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
351   m_fg_tilemap->draw(bitmap, cliprect, 1, 0);
353352
354353   return 0;
355354}
356355
357SCREEN_UPDATE_IND16( pkunwar )
356UINT32 nova2001_state::screen_update_pkunwar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
358357{
359   nova2001_state *state = screen.machine().driver_data<nova2001_state>();
360   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES, 0);
358   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES, 0);
361359
362360   pkunwar_draw_sprites(screen.machine(), bitmap, cliprect);
363361
364   state->m_bg_tilemap->draw(bitmap, cliprect, 1, 0);
362   m_bg_tilemap->draw(bitmap, cliprect, 1, 0);
365363
366364   return 0;
367365}
368366
369SCREEN_UPDATE_IND16( ninjakun )
367UINT32 nova2001_state::screen_update_ninjakun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
370368{
371   nova2001_state *state = screen.machine().driver_data<nova2001_state>();
372   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
369   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
373370
374   state->m_fg_tilemap->draw(bitmap, cliprect, 1, 0);
371   m_fg_tilemap->draw(bitmap, cliprect, 1, 0);
375372
376373   nova2001_draw_sprites(screen.machine(), bitmap, cliprect);
377374
378   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
375   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
379376
380377   return 0;
381378}
382379
383SCREEN_UPDATE_IND16( raiders5 )
380UINT32 nova2001_state::screen_update_raiders5(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
384381{
385   nova2001_state *state = screen.machine().driver_data<nova2001_state>();
386   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
382   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
387383
388384   pkunwar_draw_sprites(screen.machine(), bitmap, cliprect);
389385
390   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
386   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
391387
392388   return 0;
393389}
trunk/src/mame/video/yunsun16.c
r17967r17968
195195***************************************************************************/
196196
197197
198SCREEN_UPDATE_IND16( yunsun16 )
198UINT32 yunsun16_state::screen_update_yunsun16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
199199{
200   yunsun16_state *state = screen.machine().driver_data<yunsun16_state>();
201200
202   state->m_tilemap_0->set_scrollx(0, state->m_scrollram_0[0]);
203   state->m_tilemap_0->set_scrolly(0, state->m_scrollram_0[1]);
201   m_tilemap_0->set_scrollx(0, m_scrollram_0[0]);
202   m_tilemap_0->set_scrolly(0, m_scrollram_0[1]);
204203
205   state->m_tilemap_1->set_scrollx(0, state->m_scrollram_1[0]);
206   state->m_tilemap_1->set_scrolly(0, state->m_scrollram_1[1]);
204   m_tilemap_1->set_scrollx(0, m_scrollram_1[0]);
205   m_tilemap_1->set_scrolly(0, m_scrollram_1[1]);
207206
208   //popmessage("%04X", *state->m_priorityram);
207   //popmessage("%04X", *m_priorityram);
209208
210209   screen.machine().priority_bitmap.fill(0, cliprect);
211210
212   if ((*state->m_priorityram & 0x0c) == 4)
211   if ((*m_priorityram & 0x0c) == 4)
213212   {
214213      /* The color of the this layer's transparent pen goes below everything */
215      state->m_tilemap_0->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
216      state->m_tilemap_0->draw(bitmap, cliprect, 0, 1);
217      state->m_tilemap_1->draw(bitmap, cliprect, 0, 2);
214      m_tilemap_0->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
215      m_tilemap_0->draw(bitmap, cliprect, 0, 1);
216      m_tilemap_1->draw(bitmap, cliprect, 0, 2);
218217   }
219   else if ((*state->m_priorityram & 0x0c) == 8)
218   else if ((*m_priorityram & 0x0c) == 8)
220219   {
221220      /* The color of the this layer's transparent pen goes below everything */
222      state->m_tilemap_1->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
223      state->m_tilemap_1->draw(bitmap, cliprect, 0, 1);
224      state->m_tilemap_0->draw(bitmap, cliprect, 0, 2);
221      m_tilemap_1->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
222      m_tilemap_1->draw(bitmap, cliprect, 0, 1);
223      m_tilemap_0->draw(bitmap, cliprect, 0, 2);
225224   }
226225
227226   draw_sprites(screen.machine(), bitmap, cliprect);
trunk/src/mame/video/wiz.c
r17967r17968
201201}
202202
203203
204SCREEN_UPDATE_IND16( kungfut )
204UINT32 wiz_state::screen_update_kungfut(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
205205{
206   wiz_state *state = screen.machine().driver_data<wiz_state>();
207   bitmap.fill(state->m_bgpen, cliprect);
208   draw_background(screen.machine(), bitmap, cliprect, 2 + state->m_char_bank[0] , 0);
206   bitmap.fill(m_bgpen, cliprect);
207   draw_background(screen.machine(), bitmap, cliprect, 2 + m_char_bank[0] , 0);
209208   draw_foreground(screen.machine(), bitmap, cliprect, 0);
210   draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram2, 4);
211   draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram  , 5);
209   draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram2, 4);
210   draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram  , 5);
212211   return 0;
213212}
214213
215SCREEN_UPDATE_IND16( wiz )
214UINT32 wiz_state::screen_update_wiz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
216215{
217   wiz_state *state = screen.machine().driver_data<wiz_state>();
218216   int bank;
219217
220   bitmap.fill(state->m_bgpen, cliprect);
221   draw_background(screen.machine(), bitmap, cliprect, 2 + ((state->m_char_bank[0] << 1) | state->m_char_bank[1]), 0);
218   bitmap.fill(m_bgpen, cliprect);
219   draw_background(screen.machine(), bitmap, cliprect, 2 + ((m_char_bank[0] << 1) | m_char_bank[1]), 0);
222220   draw_foreground(screen.machine(), bitmap, cliprect, 0);
223221
224222   const rectangle spritevisiblearea(2*8, 32*8-1, 2*8, 30*8-1);
225223   const rectangle spritevisibleareaflipx(0*8, 30*8-1, 2*8, 30*8-1);
226   const rectangle &visible_area = state->m_flipx ? spritevisibleareaflipx : spritevisiblearea;
224   const rectangle &visible_area = m_flipx ? spritevisibleareaflipx : spritevisiblearea;
227225
228   bank = 7 + *state->m_sprite_bank;
226   bank = 7 + *m_sprite_bank;
229227
230   draw_sprites(screen.machine(), bitmap, visible_area, state->m_spriteram2, 6);
231   draw_sprites(screen.machine(), bitmap, visible_area, state->m_spriteram  , bank);
228   draw_sprites(screen.machine(), bitmap, visible_area, m_spriteram2, 6);
229   draw_sprites(screen.machine(), bitmap, visible_area, m_spriteram  , bank);
232230   return 0;
233231}
234232
235233
236SCREEN_UPDATE_IND16( stinger )
234UINT32 wiz_state::screen_update_stinger(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
237235{
238   wiz_state *state = screen.machine().driver_data<wiz_state>();
239   bitmap.fill(state->m_bgpen, cliprect);
240   draw_background(screen.machine(), bitmap, cliprect, 2 + state->m_char_bank[0], 1);
236   bitmap.fill(m_bgpen, cliprect);
237   draw_background(screen.machine(), bitmap, cliprect, 2 + m_char_bank[0], 1);
241238   draw_foreground(screen.machine(), bitmap, cliprect, 1);
242   draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram2, 4);
243   draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram  , 5);
239   draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram2, 4);
240   draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram  , 5);
244241   return 0;
245242}
trunk/src/mame/video/stactics.c
r17967r17968
381381 *
382382 *************************************/
383383
384static SCREEN_UPDATE_IND16( stactics )
384UINT32 stactics_state::screen_update_stactics(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
385385{
386   stactics_state *state = screen.machine().driver_data<stactics_state>();
387386
388   update_beam(state);
389   draw_background(state, bitmap, cliprect);
390   update_artwork(screen.machine(), state);
387   update_beam(this);
388   draw_background(this, bitmap, cliprect);
389   update_artwork(screen.machine(), this);
391390
392   state->m_frame_count = (state->m_frame_count + 1) & 0x0f;
391   m_frame_count = (m_frame_count + 1) & 0x0f;
393392
394393   return 0;
395394}
r17967r17968
411410   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
412411   MCFG_SCREEN_SIZE(32*8, 32*8)
413412   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1)
414   MCFG_SCREEN_UPDATE_STATIC(stactics)
413   MCFG_SCREEN_UPDATE_DRIVER(stactics_state, screen_update_stactics)
415414
416415   MCFG_PALETTE_LENGTH(0x400)
417416
trunk/src/mame/video/mermaid.c
r17967r17968
221221   }
222222}
223223
224SCREEN_UPDATE_IND16( mermaid )
224UINT32 mermaid_state::screen_update_mermaid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
225225{
226   mermaid_state *state = screen.machine().driver_data<mermaid_state>();
227226
228   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
229   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
227   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
228   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
230229   draw_sprites(screen.machine(), bitmap, cliprect);
231230   return 0;
232231}
r17967r17968
253252   return data;
254253}
255254
256SCREEN_VBLANK( mermaid )
255void mermaid_state::screen_eof_mermaid(screen_device &screen, bool state)
257256{
258257   // rising edge
259   if (vblank_on)
258   if (state)
260259   {
261      mermaid_state *state = screen.machine().driver_data<mermaid_state>();
262260      const rectangle &visarea = screen.machine().primary_screen->visible_area();
263      UINT8 *spriteram = state->m_spriteram;
261      UINT8 *spriteram = m_spriteram;
264262
265263      int offs, offs2;
266264
267      state->m_coll_bit0 = 0;
268      state->m_coll_bit1 = 0;
269      state->m_coll_bit2 = 0;
270      state->m_coll_bit3 = 0;
271      state->m_coll_bit6 = 0;
265      m_coll_bit0 = 0;
266      m_coll_bit1 = 0;
267      m_coll_bit2 = 0;
268      m_coll_bit3 = 0;
269      m_coll_bit6 = 0;
272270
273271      // check for bit 0 (sprite-sprite), 1 (sprite-foreground), 2 (sprite-background)
274272
275      for (offs = state->m_spriteram.bytes() - 4; offs >= 0; offs -= 4)
273      for (offs = m_spriteram.bytes() - 4; offs >= 0; offs -= 4)
276274      {
277275         int attr = spriteram[offs + 2];
278276         int bank = (attr & 0x30) >> 4;
r17967r17968
287285
288286         if (coll != 1) continue;
289287
290         code |= state->m_rougien_gfxbank1 * 0x2800;
291         code |= state->m_rougien_gfxbank2 * 0x2400;
288         code |= m_rougien_gfxbank1 * 0x2800;
289         code |= m_rougien_gfxbank2 * 0x2400;
292290
293         if (state->flip_screen_x())
291         if (flip_screen_x())
294292         {
295293            flipx = !flipx;
296294            sx = 240 - sx;
297295         }
298296
299         if (state->flip_screen_y())
297         if (flip_screen_y())
300298         {
301299            flipy = !flipy;
302300            sy = 240 - sy;
r17967r17968
311309
312310         // check collision sprite - background
313311
314         state->m_helper.fill(0, rect);
315         state->m_helper2.fill(0, rect);
312         m_helper.fill(0, rect);
313         m_helper2.fill(0, rect);
316314
317         state->m_bg_tilemap->draw(state->m_helper, rect, 0, 0);
315         m_bg_tilemap->draw(m_helper, rect, 0, 0);
318316
319         drawgfx_transpen(state->m_helper2, rect, screen.machine().gfx[1], code, 0, flipx, flipy, sx, sy, 0);
317         drawgfx_transpen(m_helper2, rect, screen.machine().gfx[1], code, 0, flipx, flipy, sx, sy, 0);
320318
321         state->m_coll_bit2 |= collision_check(screen.machine(), rect);
319         m_coll_bit2 |= collision_check(screen.machine(), rect);
322320
323321         // check collision sprite - foreground
324322
325         state->m_helper.fill(0, rect);
326         state->m_helper2.fill(0, rect);
323         m_helper.fill(0, rect);
324         m_helper2.fill(0, rect);
327325
328         state->m_fg_tilemap->draw(state->m_helper, rect, 0, 0);
326         m_fg_tilemap->draw(m_helper, rect, 0, 0);
329327
330         drawgfx_transpen(state->m_helper2, rect, screen.machine().gfx[1], code, 0, flipx, flipy, sx, sy, 0);
328         drawgfx_transpen(m_helper2, rect, screen.machine().gfx[1], code, 0, flipx, flipy, sx, sy, 0);
331329
332         state->m_coll_bit1 |= collision_check(screen.machine(), rect);
330         m_coll_bit1 |= collision_check(screen.machine(), rect);
333331
334332         // check collision sprite - sprite
335333
336         state->m_helper.fill(0, rect);
337         state->m_helper2.fill(0, rect);
334         m_helper.fill(0, rect);
335         m_helper2.fill(0, rect);
338336
339         for (offs2 = state->m_spriteram.bytes() - 4; offs2 >= 0; offs2 -= 4)
337         for (offs2 = m_spriteram.bytes() - 4; offs2 >= 0; offs2 -= 4)
340338            if (offs != offs2)
341339            {
342340               int attr2 = spriteram[offs2 + 2];
r17967r17968
350348
351349               if (coll2 != 0) continue;
352350
353               code2 |= state->m_rougien_gfxbank1 * 0x2800;
354               code2 |= state->m_rougien_gfxbank2 * 0x2400;
351               code2 |= m_rougien_gfxbank1 * 0x2800;
352               code2 |= m_rougien_gfxbank2 * 0x2400;
355353
356               if (state->flip_screen_x())
354               if (flip_screen_x())
357355               {
358356                  flipx2 = !flipx2;
359357                  sx2 = 240 - sx2;
360358               }
361359
362               if (state->flip_screen_y())
360               if (flip_screen_y())
363361               {
364362                  flipy2 = !flipy2;
365363                  sy2 = 240 - sy2;
366364               }
367365
368               drawgfx_transpen(state->m_helper, rect, screen.machine().gfx[1], code2, 0, flipx2, flipy2, sx2, sy2, 0);
366               drawgfx_transpen(m_helper, rect, screen.machine().gfx[1], code2, 0, flipx2, flipy2, sx2, sy2, 0);
369367            }
370368
371         drawgfx_transpen(state->m_helper2, rect, screen.machine().gfx[1], code, 0, flipx, flipy, sx, sy, 0);
369         drawgfx_transpen(m_helper2, rect, screen.machine().gfx[1], code, 0, flipx, flipy, sx, sy, 0);
372370
373         state->m_coll_bit0 |= collision_check(screen.machine(), rect);
371         m_coll_bit0 |= collision_check(screen.machine(), rect);
374372      }
375373
376374      // check for bit 3 (sprite-sprite)
377375
378      for (offs = state->m_spriteram.bytes() - 4; offs >= 0; offs -= 4)
376      for (offs = m_spriteram.bytes() - 4; offs >= 0; offs -= 4)
379377      {
380378         int attr = spriteram[offs + 2];
381379         int bank = (attr & 0x30) >> 4;
r17967r17968
390388
391389         if (coll != 2) continue;
392390
393         code |= state->m_rougien_gfxbank1 * 0x2800;
394         code |= state->m_rougien_gfxbank2 * 0x2400;
391         code |= m_rougien_gfxbank1 * 0x2800;
392         code |= m_rougien_gfxbank2 * 0x2400;
395393
396         if (state->flip_screen_x())
394         if (flip_screen_x())
397395         {
398396            flipx = !flipx;
399397            sx = 240 - sx;
400398         }
401399
402         if (state->flip_screen_y())
400         if (flip_screen_y())
403401         {
404402            flipy = !flipy;
405403            sy = 240 - sy;
r17967r17968
414412
415413         // check collision sprite - sprite
416414
417         state->m_helper.fill(0, rect);
418         state->m_helper2.fill(0, rect);
415         m_helper.fill(0, rect);
416         m_helper2.fill(0, rect);
419417
420         for (offs2 = state->m_spriteram.bytes() - 4; offs2 >= 0; offs2 -= 4)
418         for (offs2 = m_spriteram.bytes() - 4; offs2 >= 0; offs2 -= 4)
421419            if (offs != offs2)
422420            {
423421               int attr2 = spriteram[offs2 + 2];
r17967r17968
431429
432430               if (coll2 != 0) continue;
433431
434               code2 |= state->m_rougien_gfxbank1 * 0x2800;
435               code2 |= state->m_rougien_gfxbank2 * 0x2400;
432               code2 |= m_rougien_gfxbank1 * 0x2800;
433               code2 |= m_rougien_gfxbank2 * 0x2400;
436434
437               if (state->flip_screen_x())
435               if (flip_screen_x())
438436               {
439437                  flipx2 = !flipx2;
440438                  sx2 = 240 - sx2;
441439               }
442440
443               if (state->flip_screen_y())
441               if (flip_screen_y())
444442               {
445443                  flipy2 = !flipy2;
446444                  sy2 = 240 - sy2;
447445               }
448446
449               drawgfx_transpen(state->m_helper, rect, screen.machine().gfx[1], code2, 0, flipx2, flipy2, sx2, sy2, 0);
447               drawgfx_transpen(m_helper, rect, screen.machine().gfx[1], code2, 0, flipx2, flipy2, sx2, sy2, 0);
450448            }
451449
452         drawgfx_transpen(state->m_helper2, rect, screen.machine().gfx[1], code, 0, flipx, flipy, sx, sy, 0);
450         drawgfx_transpen(m_helper2, rect, screen.machine().gfx[1], code, 0, flipx, flipy, sx, sy, 0);
453451
454         state->m_coll_bit3 |= collision_check(screen.machine(), rect);
452         m_coll_bit3 |= collision_check(screen.machine(), rect);
455453      }
456454
457455      // check for bit 6
458456
459      for (offs = state->m_spriteram.bytes() - 4; offs >= 0; offs -= 4)
457      for (offs = m_spriteram.bytes() - 4; offs >= 0; offs -= 4)
460458      {
461459         int attr = spriteram[offs + 2];
462460         int bank = (attr & 0x30) >> 4;
r17967r17968
471469
472470         if (coll != 1) continue;
473471
474         code |= state->m_rougien_gfxbank1 * 0x2800;
475         code |= state->m_rougien_gfxbank2 * 0x2400;
472         code |= m_rougien_gfxbank1 * 0x2800;
473         code |= m_rougien_gfxbank2 * 0x2400;
476474
477         if (state->flip_screen_x())
475         if (flip_screen_x())
478476         {
479477            flipx = !flipx;
480478            sx = 240 - sx;
481479         }
482480
483         if (state->flip_screen_y())
481         if (flip_screen_y())
484482         {
485483            flipy = !flipy;
486484            sy = 240 - sy;
r17967r17968
495493
496494         // check collision sprite - sprite
497495
498         state->m_helper.fill(0, rect);
499         state->m_helper2.fill(0, rect);
496         m_helper.fill(0, rect);
497         m_helper2.fill(0, rect);
500498
501         for (offs2 = state->m_spriteram.bytes() - 4; offs2 >= 0; offs2 -= 4)
499         for (offs2 = m_spriteram.bytes() - 4; offs2 >= 0; offs2 -= 4)
502500            if (offs != offs2)
503501            {
504502               int attr2 = spriteram[offs2 + 2];
r17967r17968
512510
513511               if (coll2 != 2) continue;
514512
515               code2 |= state->m_rougien_gfxbank1 * 0x2800;
516               code2 |= state->m_rougien_gfxbank2 * 0x2400;
513               code2 |= m_rougien_gfxbank1 * 0x2800;
514               code2 |= m_rougien_gfxbank2 * 0x2400;
517515
518               if (state->flip_screen_x())
516               if (flip_screen_x())
519517               {
520518                  flipx2 = !flipx2;
521519                  sx2 = 240 - sx2;
522520               }
523521
524               if (state->flip_screen_y())
522               if (flip_screen_y())
525523               {
526524                  flipy2 = !flipy2;
527525                  sy2 = 240 - sy2;
528526               }
529527
530               drawgfx_transpen(state->m_helper, rect, screen.machine().gfx[1], code2, 0, flipx2, flipy2, sx2, sy2, 0);
528               drawgfx_transpen(m_helper, rect, screen.machine().gfx[1], code2, 0, flipx2, flipy2, sx2, sy2, 0);
531529            }
532530
533         drawgfx_transpen(state->m_helper2, rect, screen.machine().gfx[1], code, 0, flipx, flipy, sx, sy, 0);
531         drawgfx_transpen(m_helper2, rect, screen.machine().gfx[1], code, 0, flipx, flipy, sx, sy, 0);
534532
535         state->m_coll_bit6 |= collision_check(screen.machine(), rect);
533         m_coll_bit6 |= collision_check(screen.machine(), rect);
536534      }
537535   }
538536}
trunk/src/mame/video/gaelco3d.c
r17967r17968
427427 *
428428 *************************************/
429429
430SCREEN_UPDATE_IND16( gaelco3d )
430UINT32 gaelco3d_state::screen_update_gaelco3d(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
431431{
432   gaelco3d_state *state = screen.machine().driver_data<gaelco3d_state>();
433432   int ret;
434433
435434/*
436435    if (DISPLAY_TEXTURE && (screen.machine().input().code_pressed(KEYCODE_Z) || screen.machine().input().code_pressed(KEYCODE_X)))
437436    {
438437        static int xv = 0, yv = 0x1000;
439        UINT8 *base = state->m_texture;
440        int length = state->m_texture_size;
438        UINT8 *base = m_texture;
439        int length = m_texture_size;
441440
442441        if (screen.machine().input().code_pressed(KEYCODE_X))
443442        {
444            base = state->m_texmask;
445            length = state->m_texmask_size;
443            base = m_texmask;
444            length = m_texmask_size;
446445        }
447446
448447        if (screen.machine().input().code_pressed(KEYCODE_LEFT) && xv >= 4)
r17967r17968
471470    }
472471    else*/
473472   {
474      if (state->m_video_changed)
475         copybitmap(bitmap, state->m_poly->screenbits(), 0,1, 0,0, cliprect);
476      ret = state->m_video_changed;
477      state->m_video_changed = FALSE;
473      if (m_video_changed)
474         copybitmap(bitmap, m_poly->screenbits(), 0,1, 0,0, cliprect);
475      ret = m_video_changed;
476      m_video_changed = FALSE;
478477   }
479478
480479   logerror("---update---\n");
trunk/src/mame/video/dcon.c
r17967r17968
265265   }
266266}
267267
268SCREEN_UPDATE_IND16( dcon )
268UINT32 dcon_state::screen_update_dcon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
269269{
270   dcon_state *state = screen.machine().driver_data<dcon_state>();
271270   screen.machine().priority_bitmap.fill(0, cliprect);
272271
273272   /* Setup the tilemaps */
274   state->m_background_layer->set_scrollx(0, state->m_scroll_ram[0] );
275   state->m_background_layer->set_scrolly(0, state->m_scroll_ram[1] );
276   state->m_midground_layer->set_scrollx(0, state->m_scroll_ram[2] );
277   state->m_midground_layer->set_scrolly(0, state->m_scroll_ram[3] );
278   state->m_foreground_layer->set_scrollx(0, state->m_scroll_ram[4] );
279   state->m_foreground_layer->set_scrolly(0, state->m_scroll_ram[5] );
273   m_background_layer->set_scrollx(0, m_scroll_ram[0] );
274   m_background_layer->set_scrolly(0, m_scroll_ram[1] );
275   m_midground_layer->set_scrollx(0, m_scroll_ram[2] );
276   m_midground_layer->set_scrolly(0, m_scroll_ram[3] );
277   m_foreground_layer->set_scrollx(0, m_scroll_ram[4] );
278   m_foreground_layer->set_scrolly(0, m_scroll_ram[5] );
280279
281   if ((state->m_enable&1)!=1)
282      state->m_background_layer->draw(bitmap, cliprect, 0,0);
280   if ((m_enable&1)!=1)
281      m_background_layer->draw(bitmap, cliprect, 0,0);
283282   else
284283      bitmap.fill(15, cliprect); /* Should always be black, not pen 15 */
285284
286   state->m_midground_layer->draw(bitmap, cliprect, 0,1);
287   state->m_foreground_layer->draw(bitmap, cliprect, 0,2);
288   state->m_text_layer->draw(bitmap, cliprect, 0,4);
285   m_midground_layer->draw(bitmap, cliprect, 0,1);
286   m_foreground_layer->draw(bitmap, cliprect, 0,2);
287   m_text_layer->draw(bitmap, cliprect, 0,4);
289288
290289   draw_sprites(screen.machine(),bitmap,cliprect);
291290   return 0;
292291}
293292
294SCREEN_UPDATE_IND16( sdgndmps )
293UINT32 dcon_state::screen_update_sdgndmps(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
295294{
296   dcon_state *state = screen.machine().driver_data<dcon_state>();
297295
298296   screen.machine().priority_bitmap.fill(0, cliprect);
299297
300298   /* Gfx banking */
301   if (state->m_last_gfx_bank!=state->m_gfx_bank_select)
299   if (m_last_gfx_bank!=m_gfx_bank_select)
302300   {
303      state->m_midground_layer->mark_all_dirty();
304      state->m_last_gfx_bank=state->m_gfx_bank_select;
301      m_midground_layer->mark_all_dirty();
302      m_last_gfx_bank=m_gfx_bank_select;
305303   }
306304
307305   /* Setup the tilemaps */
308   state->m_background_layer->set_scrollx(0, state->m_scroll_ram[0]+128 );
309   state->m_background_layer->set_scrolly(0, state->m_scroll_ram[1] );
310   state->m_midground_layer->set_scrollx(0, state->m_scroll_ram[2]+128 );
311   state->m_midground_layer->set_scrolly(0, state->m_scroll_ram[3] );
312   state->m_foreground_layer->set_scrollx(0, state->m_scroll_ram[4]+128 );
313   state->m_foreground_layer->set_scrolly(0, state->m_scroll_ram[5] );
314   state->m_text_layer->set_scrollx(0, /*state->m_scroll_ram[6] + */ 128 );
315   state->m_text_layer->set_scrolly(0, /*state->m_scroll_ram[7] + */ 0 );
306   m_background_layer->set_scrollx(0, m_scroll_ram[0]+128 );
307   m_background_layer->set_scrolly(0, m_scroll_ram[1] );
308   m_midground_layer->set_scrollx(0, m_scroll_ram[2]+128 );
309   m_midground_layer->set_scrolly(0, m_scroll_ram[3] );
310   m_foreground_layer->set_scrollx(0, m_scroll_ram[4]+128 );
311   m_foreground_layer->set_scrolly(0, m_scroll_ram[5] );
312   m_text_layer->set_scrollx(0, /*m_scroll_ram[6] + */ 128 );
313   m_text_layer->set_scrolly(0, /*m_scroll_ram[7] + */ 0 );
316314
317   if ((state->m_enable&1)!=1)
318      state->m_background_layer->draw(bitmap, cliprect, 0,0);
315   if ((m_enable&1)!=1)
316      m_background_layer->draw(bitmap, cliprect, 0,0);
319317   else
320318      bitmap.fill(15, cliprect); /* Should always be black, not pen 15 */
321319
322   state->m_midground_layer->draw(bitmap, cliprect, 0,1);
323   state->m_foreground_layer->draw(bitmap, cliprect, 0,2);
324   state->m_text_layer->draw(bitmap, cliprect, 0,4);
320   m_midground_layer->draw(bitmap, cliprect, 0,1);
321   m_foreground_layer->draw(bitmap, cliprect, 0,2);
322   m_text_layer->draw(bitmap, cliprect, 0,4);
325323
326324   draw_sprites(screen.machine(),bitmap,cliprect);
327325   return 0;
trunk/src/mame/video/galaxian.c
r17967r17968
450450 *
451451 *************************************/
452452
453SCREEN_UPDATE_RGB32( galaxian )
453UINT32 galaxian_state::screen_update_galaxian(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
454454{
455   galaxian_state *state = screen.machine().driver_data<galaxian_state>();
456455   /* draw the background layer (including stars) */
457   (*state->m_draw_background_ptr)(screen.machine(), bitmap, cliprect);
456   (*m_draw_background_ptr)(screen.machine(), bitmap, cliprect);
458457
459458   /* draw the tilemap characters over top */
460   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
459   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
461460
462461   /* render the sprites next. Some custom pcbs (eg. zigzag, fantastc) have more than one sprite generator (ideally, this should be rendered in parallel) */
463   for (int i = 0; i < state->m_numspritegens; i++)
464      sprites_draw(screen.machine(), bitmap, cliprect, &state->m_spriteram[0x40 + i * 0x20]);
462   for (int i = 0; i < m_numspritegens; i++)
463      sprites_draw(screen.machine(), bitmap, cliprect, &m_spriteram[0x40 + i * 0x20]);
465464
466465   /* if we have bullets to draw, render them following */
467   if (state->m_draw_bullet_ptr != NULL)
468      bullets_draw(screen.machine(), bitmap, cliprect, &state->m_spriteram[state->m_bullets_base]);
466   if (m_draw_bullet_ptr != NULL)
467      bullets_draw(screen.machine(), bitmap, cliprect, &m_spriteram[m_bullets_base]);
469468
470469   return 0;
471470}
trunk/src/mame/video/kickgoal.c
r17967r17968
160160
161161
162162
163SCREEN_UPDATE_IND16( kickgoal )
163UINT32 kickgoal_state::screen_update_kickgoal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
164164{
165   kickgoal_state *state = screen.machine().driver_data<kickgoal_state>();
166165
167166   /* set scroll */
168   state->m_fgtm->set_scrollx(0, state->m_scrram[0]);
169   state->m_fgtm->set_scrolly(0, state->m_scrram[1]);
170   state->m_bgtm->set_scrollx(0, state->m_scrram[2]);
171   state->m_bgtm->set_scrolly(0, state->m_scrram[3]);
172   state->m_bg2tm->set_scrollx(0, state->m_scrram[4]);
173   state->m_bg2tm->set_scrolly(0, state->m_scrram[5]);
167   m_fgtm->set_scrollx(0, m_scrram[0]);
168   m_fgtm->set_scrolly(0, m_scrram[1]);
169   m_bgtm->set_scrollx(0, m_scrram[2]);
170   m_bgtm->set_scrolly(0, m_scrram[3]);
171   m_bg2tm->set_scrollx(0, m_scrram[4]);
172   m_bg2tm->set_scrolly(0, m_scrram[5]);
174173
175174   /* draw */
176   state->m_bg2tm->draw(bitmap, cliprect, 0, 0);
177   state->m_bgtm->draw(bitmap, cliprect, 0, 0);
175   m_bg2tm->draw(bitmap, cliprect, 0, 0);
176   m_bgtm->draw(bitmap, cliprect, 0, 0);
178177
179178   kickgoal_draw_sprites(screen.machine(), bitmap, cliprect);
180179
181   state->m_fgtm->draw(bitmap, cliprect, 0, 0);
180   m_fgtm->draw(bitmap, cliprect, 0, 0);
182181
183182   return 0;
184183}
trunk/src/mame/video/itech8.c
r17967r17968
602602 *
603603 *************************************/
604604
605SCREEN_UPDATE_RGB32( itech8_2layer )
605UINT32 itech8_state::screen_update_itech8_2layer(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
606606{
607   itech8_state *state = screen.machine().driver_data<itech8_state>();
608   struct tms34061_display &tms_state = state->m_tms_state;
607   struct tms34061_display &tms_state = m_tms_state;
609608   UINT32 page_offset;
610609   int x, y;
611610   const rgb_t *pens = tlc34076_get_pens(screen.machine().device("tlc34076"));
r17967r17968
640639}
641640
642641
643SCREEN_UPDATE_RGB32( itech8_grmatch )
642UINT32 itech8_state::screen_update_itech8_grmatch(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
644643{
645   itech8_state *state = screen.machine().driver_data<itech8_state>();
646   struct tms34061_display &tms_state = state->m_tms_state;
644   struct tms34061_display &tms_state = m_tms_state;
647645   UINT32 page_offset;
648646   int x, y;
649647
r17967r17968
662660   /* bottom layer @ 0x20000 is 4bpp, colors come from TMS34070, enabled via palette control */
663661   /* 4bpp pixels are packed 2 to a byte */
664662   /* xscroll is set via a separate register */
665   page_offset = (tms_state.dispstart & 0x0ffff) | state->m_grmatch_xscroll;
663   page_offset = (tms_state.dispstart & 0x0ffff) | m_grmatch_xscroll;
666664   for (y = cliprect.min_y; y <= cliprect.max_y; y++)
667665   {
668666      UINT8 *base0 = &tms_state.vram[0x00000 + ((page_offset + y * 256) & 0xffff)];
r17967r17968
675673         UINT8 pix2 = base2[x / 2];
676674
677675         if ((pix0 & 0xf0) != 0)
678            dest[x] = state->m_grmatch_palette[0][pix0 >> 4];
676            dest[x] = m_grmatch_palette[0][pix0 >> 4];
679677         else
680            dest[x] = state->m_grmatch_palette[1][pix2 >> 4];
678            dest[x] = m_grmatch_palette[1][pix2 >> 4];
681679
682680         if ((pix0 & 0x0f) != 0)
683            dest[x + 1] = state->m_grmatch_palette[0][pix0 & 0x0f];
681            dest[x + 1] = m_grmatch_palette[0][pix0 & 0x0f];
684682         else
685            dest[x + 1] = state->m_grmatch_palette[1][pix2 & 0x0f];
683            dest[x + 1] = m_grmatch_palette[1][pix2 & 0x0f];
686684      }
687685   }
688686   return 0;
689687}
690688
691689
692SCREEN_UPDATE_RGB32( itech8_2page )
690UINT32 itech8_state::screen_update_itech8_2page(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
693691{
694   itech8_state *state = screen.machine().driver_data<itech8_state>();
695   struct tms34061_display &tms_state = state->m_tms_state;
692   struct tms34061_display &tms_state = m_tms_state;
696693   UINT32 page_offset;
697694   int x, y;
698695   const rgb_t *pens = tlc34076_get_pens(screen.machine().device("tlc34076"));
r17967r17968
709706
710707   /* there are two pages, each of which is a full 8bpp */
711708   /* page index is selected by the top bit of the page_select register */
712   page_offset = ((state->m_page_select & 0x80) << 10) | (tms_state.dispstart & 0x0ffff);
709   page_offset = ((m_page_select & 0x80) << 10) | (tms_state.dispstart & 0x0ffff);
713710   for (y = cliprect.min_y; y <= cliprect.max_y; y++)
714711   {
715712      UINT8 *base = &tms_state.vram[(page_offset + y * 256) & 0x3ffff];
r17967r17968
722719}
723720
724721
725SCREEN_UPDATE_RGB32( itech8_2page_large )
722UINT32 itech8_state::screen_update_itech8_2page_large(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
726723{
727   itech8_state *state = screen.machine().driver_data<itech8_state>();
728   struct tms34061_display &tms_state = state->m_tms_state;
724   struct tms34061_display &tms_state = m_tms_state;
729725   UINT32 page_offset;
730726   int x, y;
731727   const rgb_t *pens = tlc34076_get_pens(screen.machine().device("tlc34076"));
r17967r17968
744740   /* the low 4 bits come from the bitmap directly */
745741   /* the upper 4 bits were latched on each write into a separate bitmap */
746742   /* page index is selected by the top bit of the page_select register */
747   page_offset = ((~state->m_page_select & 0x80) << 10) | (tms_state.dispstart & 0x0ffff);
743   page_offset = ((~m_page_select & 0x80) << 10) | (tms_state.dispstart & 0x0ffff);
748744   for (y = cliprect.min_y; y <= cliprect.max_y; y++)
749745   {
750746      UINT8 *base = &tms_state.vram[(page_offset + y * 256) & 0x3ffff];
trunk/src/mame/video/othldrby.c
r17967r17968
174174   }
175175}
176176
177SCREEN_UPDATE_IND16( othldrby )
177UINT32 othldrby_state::screen_update_othldrby(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
178178{
179   othldrby_state *state = screen.machine().driver_data<othldrby_state>();
180179   int layer;
181180
182   state->flip_screen_set(state->m_vreg[0x0f] & 0x80);
181   flip_screen_set(m_vreg[0x0f] & 0x80);
183182
184183   for (layer = 0; layer < 3; layer++)
185184   {
186      if (state->flip_screen())
185      if (flip_screen())
187186      {
188         state->m_bg_tilemap[layer]->set_scrollx(0, state->m_vreg[2 * layer] + 59);
189         state->m_bg_tilemap[layer]->set_scrolly(0, state->m_vreg[2 * layer + 1] + 248);
187         m_bg_tilemap[layer]->set_scrollx(0, m_vreg[2 * layer] + 59);
188         m_bg_tilemap[layer]->set_scrolly(0, m_vreg[2 * layer + 1] + 248);
190189      }
191190      else
192191      {
193         state->m_bg_tilemap[layer]->set_scrollx(0, state->m_vreg[2 * layer] - 58);
194         state->m_bg_tilemap[layer]->set_scrolly(0, state->m_vreg[2 * layer+1] + 9);
192         m_bg_tilemap[layer]->set_scrollx(0, m_vreg[2 * layer] - 58);
193         m_bg_tilemap[layer]->set_scrolly(0, m_vreg[2 * layer+1] + 9);
195194      }
196195   }
197196
r17967r17968
200199   bitmap.fill(0, cliprect);
201200
202201   for (layer = 0; layer < 3; layer++)
203      state->m_bg_tilemap[layer]->draw(bitmap, cliprect, 0, 0);
202      m_bg_tilemap[layer]->draw(bitmap, cliprect, 0, 0);
204203   draw_sprites(screen.machine(), bitmap, cliprect, 0);
205204
206205   for (layer = 0; layer < 3; layer++)
207      state->m_bg_tilemap[layer]->draw(bitmap, cliprect, 1, 0);
206      m_bg_tilemap[layer]->draw(bitmap, cliprect, 1, 0);
208207   draw_sprites(screen.machine(), bitmap, cliprect, 1);
209208
210209   for (layer = 0; layer < 3; layer++)
211      state->m_bg_tilemap[layer]->draw(bitmap, cliprect, 2, 0);
210      m_bg_tilemap[layer]->draw(bitmap, cliprect, 2, 0);
212211   draw_sprites(screen.machine(), bitmap, cliprect, 2);
213212
214213   for (layer = 0; layer < 3; layer++)
215      state->m_bg_tilemap[layer]->draw(bitmap, cliprect, 3, 0);
214      m_bg_tilemap[layer]->draw(bitmap, cliprect, 3, 0);
216215   draw_sprites(screen.machine(), bitmap, cliprect, 3);
217216
218217   return 0;
219218}
220219
221SCREEN_VBLANK( othldrby )
220void othldrby_state::screen_eof_othldrby(screen_device &screen, bool state)
222221{
223222   // rising edge
224   if (vblank_on)
223   if (state)
225224   {
226      othldrby_state *state = screen.machine().driver_data<othldrby_state>();
227225
228226      /* sprites need to be delayed two frames */
229      memcpy(state->m_buf_spriteram, state->m_buf_spriteram2, SPRITERAM_SIZE * sizeof(state->m_buf_spriteram[0]));
230      memcpy(state->m_buf_spriteram2, &state->m_vram[SPRITERAM_START], SPRITERAM_SIZE * sizeof(state->m_buf_spriteram[0]));
227      memcpy(m_buf_spriteram, m_buf_spriteram2, SPRITERAM_SIZE * sizeof(m_buf_spriteram[0]));
228      memcpy(m_buf_spriteram2, &m_vram[SPRITERAM_START], SPRITERAM_SIZE * sizeof(m_buf_spriteram[0]));
231229   }
232230}
trunk/src/mame/video/bbusters.c
r17967r17968
271271
272272/******************************************************************************/
273273
274SCREEN_UPDATE_IND16( bbuster )
274UINT32 bbusters_state::screen_update_bbuster(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
275275{
276   bbusters_state *state = screen.machine().driver_data<bbusters_state>();
277276
278   state->m_pf1_tilemap->set_scrollx(0, state->m_pf1_scroll_data[0]);
279   state->m_pf1_tilemap->set_scrolly(0, state->m_pf1_scroll_data[1]);
280   state->m_pf2_tilemap->set_scrollx(0, state->m_pf2_scroll_data[0]);
281   state->m_pf2_tilemap->set_scrolly(0, state->m_pf2_scroll_data[1]);
277   m_pf1_tilemap->set_scrollx(0, m_pf1_scroll_data[0]);
278   m_pf1_tilemap->set_scrolly(0, m_pf1_scroll_data[1]);
279   m_pf2_tilemap->set_scrollx(0, m_pf2_scroll_data[0]);
280   m_pf2_tilemap->set_scrolly(0, m_pf2_scroll_data[1]);
282281
283   state->m_pf2_tilemap->draw(bitmap, cliprect, 0, 0);
284   //draw_sprites(screen.machine(), bitmap, state->m_spriteram2->buffer(), 2, 0x8, 0x8);
285   state->m_pf1_tilemap->draw(bitmap, cliprect, 0, 0);
286   draw_sprites(screen.machine(), bitmap, state->m_spriteram2->buffer(), 2, 0, 0);
287   draw_sprites(screen.machine(), bitmap, state->m_spriteram->buffer(), 1, 0, 0);
288   state->m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
282   m_pf2_tilemap->draw(bitmap, cliprect, 0, 0);
283   //draw_sprites(screen.machine(), bitmap, m_spriteram2->buffer(), 2, 0x8, 0x8);
284   m_pf1_tilemap->draw(bitmap, cliprect, 0, 0);
285   draw_sprites(screen.machine(), bitmap, m_spriteram2->buffer(), 2, 0, 0);
286   draw_sprites(screen.machine(), bitmap, m_spriteram->buffer(), 1, 0, 0);
287   m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
289288   return 0;
290289}
291290
292SCREEN_UPDATE_IND16( mechatt )
291UINT32 bbusters_state::screen_update_mechatt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
293292{
294   bbusters_state *state = screen.machine().driver_data<bbusters_state>();
295293
296   state->m_pf1_tilemap->set_scrollx(0, state->m_pf1_scroll_data[0]);
297   state->m_pf1_tilemap->set_scrolly(0, state->m_pf1_scroll_data[1]);
298   state->m_pf2_tilemap->set_scrollx(0, state->m_pf2_scroll_data[0]);
299   state->m_pf2_tilemap->set_scrolly(0, state->m_pf2_scroll_data[1]);
294   m_pf1_tilemap->set_scrollx(0, m_pf1_scroll_data[0]);
295   m_pf1_tilemap->set_scrolly(0, m_pf1_scroll_data[1]);
296   m_pf2_tilemap->set_scrollx(0, m_pf2_scroll_data[0]);
297   m_pf2_tilemap->set_scrolly(0, m_pf2_scroll_data[1]);
300298
301   state->m_pf2_tilemap->draw(bitmap, cliprect, 0, 0);
302   state->m_pf1_tilemap->draw(bitmap, cliprect, 0, 0);
303   draw_sprites(screen.machine(), bitmap, state->m_spriteram->buffer(), 1, 0, 0);
304   state->m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
299   m_pf2_tilemap->draw(bitmap, cliprect, 0, 0);
300   m_pf1_tilemap->draw(bitmap, cliprect, 0, 0);
301   draw_sprites(screen.machine(), bitmap, m_spriteram->buffer(), 1, 0, 0);
302   m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
305303   return 0;
306304}
trunk/src/mame/video/gstriker.c
r17967r17968
525525#endif
526526
527527
528SCREEN_UPDATE_IND16(gstriker)
528UINT32 gstriker_state::screen_update_gstriker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
529529{
530   gstriker_state *state = screen.machine().driver_data<gstriker_state>();
531530   bitmap.fill(get_black_pen(screen.machine()), cliprect);
532531
533532   // Sandwitched screen/sprite0/score/sprite1. Surely wrong, probably
r17967r17968
536535
537536   CG10103_draw(screen.machine(), 0, bitmap, cliprect, 0);
538537
539   VS920A_draw(state, 0, bitmap, cliprect, 0);
538   VS920A_draw(this, 0, bitmap, cliprect, 0);
540539
541540   CG10103_draw(screen.machine(), 0, bitmap, cliprect, 1);
542541
543542#if 0
544543   popmessage("%04x %04x %04x %04x %04x %04x %04x %04x",
545      (UINT16)state->m_MB60553[0].regs[0], (UINT16)state->m_MB60553[0].regs[1], (UINT16)state->m_MB60553[0].regs[2], (UINT16)state->m_MB60553[0].regs[3],
546      (UINT16)state->m_MB60553[0].regs[4], (UINT16)state->m_MB60553[0].regs[5], (UINT16)state->m_MB60553[0].regs[6], (UINT16)state->m_MB60553[0].regs[7]
544      (UINT16)m_MB60553[0].regs[0], (UINT16)m_MB60553[0].regs[1], (UINT16)m_MB60553[0].regs[2], (UINT16)m_MB60553[0].regs[3],
545      (UINT16)m_MB60553[0].regs[4], (UINT16)m_MB60553[0].regs[5], (UINT16)m_MB60553[0].regs[6], (UINT16)m_MB60553[0].regs[7]
547546   );
548547#endif
549548
trunk/src/mame/video/snk.c
r17967r17968
940940
941941/**************************************************************/
942942
943SCREEN_UPDATE_IND16( marvins )
943UINT32 snk_state::screen_update_marvins(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
944944{
945   snk_state *state = screen.machine().driver_data<snk_state>();
946945
947   state->m_bg_tilemap->set_scrollx(0, state->m_bg_scrollx);
948   state->m_bg_tilemap->set_scrolly(0, state->m_bg_scrolly);
949   state->m_fg_tilemap->set_scrollx(0, state->m_fg_scrollx);
950   state->m_fg_tilemap->set_scrolly(0, state->m_fg_scrolly);
946   m_bg_tilemap->set_scrollx(0, m_bg_scrollx);
947   m_bg_tilemap->set_scrolly(0, m_bg_scrolly);
948   m_fg_tilemap->set_scrollx(0, m_fg_scrollx);
949   m_fg_tilemap->set_scrolly(0, m_fg_scrolly);
951950
952   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
953   marvins_draw_sprites(screen.machine(), bitmap, cliprect, state->m_sp16_scrollx, state->m_sp16_scrolly, 0, state->m_sprite_split_point>>2);
954   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
955   marvins_draw_sprites(screen.machine(), bitmap, cliprect, state->m_sp16_scrollx, state->m_sp16_scrolly, state->m_sprite_split_point>>2, 25);
956   state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
951   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
952   marvins_draw_sprites(screen.machine(), bitmap, cliprect, m_sp16_scrollx, m_sp16_scrolly, 0, m_sprite_split_point>>2);
953   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
954   marvins_draw_sprites(screen.machine(), bitmap, cliprect, m_sp16_scrollx, m_sp16_scrolly, m_sprite_split_point>>2, 25);
955   m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
957956
958957   return 0;
959958}
960959
961960
962SCREEN_UPDATE_IND16( tnk3 )
961UINT32 snk_state::screen_update_tnk3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
963962{
964   snk_state *state = screen.machine().driver_data<snk_state>();
965963
966   state->m_bg_tilemap->set_scrollx(0, state->m_bg_scrollx);
967   state->m_bg_tilemap->set_scrolly(0, state->m_bg_scrolly);
964   m_bg_tilemap->set_scrollx(0, m_bg_scrollx);
965   m_bg_tilemap->set_scrolly(0, m_bg_scrolly);
968966
969   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
970   tnk3_draw_sprites(screen.machine(), bitmap, cliprect, state->m_sp16_scrollx, state->m_sp16_scrolly);
971   state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
967   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
968   tnk3_draw_sprites(screen.machine(), bitmap, cliprect, m_sp16_scrollx, m_sp16_scrolly);
969   m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
972970
973971   return 0;
974972}
975973
976974
977SCREEN_UPDATE_IND16( ikari )
975UINT32 snk_state::screen_update_ikari(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
978976{
979   snk_state *state = screen.machine().driver_data<snk_state>();
980977
981   state->m_bg_tilemap->set_scrollx(0, state->m_bg_scrollx);
982   state->m_bg_tilemap->set_scrolly(0, state->m_bg_scrolly);
978   m_bg_tilemap->set_scrollx(0, m_bg_scrollx);
979   m_bg_tilemap->set_scrolly(0, m_bg_scrolly);
983980
984   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
981   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
985982
986   ikari_draw_sprites(screen.machine(), bitmap, cliprect,  0, state->m_sp16_scrollx, state->m_sp16_scrolly, state->m_spriteram + 0x800, 2 );
987   ikari_draw_sprites(screen.machine(), bitmap, cliprect,  0, state->m_sp32_scrollx, state->m_sp32_scrolly, state->m_spriteram,         3 );
988   ikari_draw_sprites(screen.machine(), bitmap, cliprect, 25, state->m_sp16_scrollx, state->m_sp16_scrolly, state->m_spriteram + 0x800, 2 );
983   ikari_draw_sprites(screen.machine(), bitmap, cliprect,  0, m_sp16_scrollx, m_sp16_scrolly, m_spriteram + 0x800, 2 );
984   ikari_draw_sprites(screen.machine(), bitmap, cliprect,  0, m_sp32_scrollx, m_sp32_scrolly, m_spriteram,         3 );
985   ikari_draw_sprites(screen.machine(), bitmap, cliprect, 25, m_sp16_scrollx, m_sp16_scrolly, m_spriteram + 0x800, 2 );
989986
990   state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
987   m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
991988   return 0;
992989}
993990
994991
995SCREEN_UPDATE_IND16( gwar )
992UINT32 snk_state::screen_update_gwar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
996993{
997   snk_state *state = screen.machine().driver_data<snk_state>();
998994
999   state->m_bg_tilemap->set_scrollx(0, state->m_bg_scrollx);
1000   state->m_bg_tilemap->set_scrolly(0, state->m_bg_scrolly);
995   m_bg_tilemap->set_scrollx(0, m_bg_scrollx);
996   m_bg_tilemap->set_scrolly(0, m_bg_scrolly);
1001997
1002   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
998   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
1003999
1004   tdfever_draw_sprites(screen.machine(), bitmap, cliprect, state->m_sp16_scrollx, state->m_sp16_scrolly, state->m_spriteram + 0x800, 2, 0, 0, state->m_sprite_split_point );
1005   tdfever_draw_sprites(screen.machine(), bitmap, cliprect, state->m_sp32_scrollx, state->m_sp32_scrolly, state->m_spriteram,         3, 0, 0, 32 );
1006   tdfever_draw_sprites(screen.machine(), bitmap, cliprect, state->m_sp16_scrollx, state->m_sp16_scrolly, state->m_spriteram + 0x800, 2, 0, state->m_sprite_split_point, 64 );
1000   tdfever_draw_sprites(screen.machine(), bitmap, cliprect, m_sp16_scrollx, m_sp16_scrolly, m_spriteram + 0x800, 2, 0, 0, m_sprite_split_point );
1001   tdfever_draw_sprites(screen.machine(), bitmap, cliprect, m_sp32_scrollx, m_sp32_scrolly, m_spriteram,         3, 0, 0, 32 );
1002   tdfever_draw_sprites(screen.machine(), bitmap, cliprect, m_sp16_scrollx, m_sp16_scrolly, m_spriteram + 0x800, 2, 0, m_sprite_split_point, 64 );
10071003
1008   state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
1004   m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
10091005
10101006   return 0;
10111007}
10121008
10131009
1014SCREEN_UPDATE_IND16( tdfever )
1010UINT32 snk_state::screen_update_tdfever(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
10151011{
1016   snk_state *state = screen.machine().driver_data<snk_state>();
10171012
1018   state->m_bg_tilemap->set_scrollx(0, state->m_bg_scrollx);
1019   state->m_bg_tilemap->set_scrolly(0, state->m_bg_scrolly);
1013   m_bg_tilemap->set_scrollx(0, m_bg_scrollx);
1014   m_bg_tilemap->set_scrolly(0, m_bg_scrolly);
10201015
1021   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
1016   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
10221017
1023   tdfever_draw_sprites(screen.machine(), bitmap, cliprect, state->m_sp32_scrollx, state->m_sp32_scrolly, state->m_spriteram, 2, 1, 0, 32 );
1018   tdfever_draw_sprites(screen.machine(), bitmap, cliprect, m_sp32_scrollx, m_sp32_scrolly, m_spriteram, 2, 1, 0, 32 );
10241019
1025   state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
1020   m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
10261021
10271022   return 0;
10281023}
trunk/src/mame/video/hyprduel.c
r17967r17968
670670}
671671
672672
673SCREEN_UPDATE_IND16( hyprduel )
673UINT32 hyprduel_state::screen_update_hyprduel(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
674674{
675   hyprduel_state *state = screen.machine().driver_data<hyprduel_state>();
676675   int i, pri, layers_ctrl = -1;
677   UINT16 screenctrl = *state->m_screenctrl;
676   UINT16 screenctrl = *m_screenctrl;
678677
679678   {
680679      int dirty = 0;
681680
682      memset(state->m_dirtyindex, 0, state->m_tiletable.bytes() / 4);
683      for (i = 0; i < state->m_tiletable.bytes() / 4; i++)
681      memset(m_dirtyindex, 0, m_tiletable.bytes() / 4);
682      for (i = 0; i < m_tiletable.bytes() / 4; i++)
684683      {
685         UINT32 tile_new = (state->m_tiletable[2 * i + 0] << 16 ) + state->m_tiletable[2 * i + 1];
686         UINT32 tile_old = (state->m_tiletable_old[2 * i + 0] << 16 ) + state->m_tiletable_old[2 * i + 1];
684         UINT32 tile_new = (m_tiletable[2 * i + 0] << 16 ) + m_tiletable[2 * i + 1];
685         UINT32 tile_old = (m_tiletable_old[2 * i + 0] << 16 ) + m_tiletable_old[2 * i + 1];
687686
688687         if ((tile_new ^ tile_old) & 0x0fffffff)
689688         {
690            state->m_dirtyindex[i] = 1;
689            m_dirtyindex[i] = 1;
691690            dirty = 1;
692691         }
693692      }
694      memcpy(state->m_tiletable_old, state->m_tiletable, state->m_tiletable.bytes());
693      memcpy(m_tiletable_old, m_tiletable, m_tiletable.bytes());
695694
696695      if (dirty)
697696      {
698         dirty_tiles(screen.machine(), 0, state->m_vram_0);
699         dirty_tiles(screen.machine(), 1, state->m_vram_1);
700         dirty_tiles(screen.machine(), 2, state->m_vram_2);
697         dirty_tiles(screen.machine(), 0, m_vram_0);
698         dirty_tiles(screen.machine(), 1, m_vram_1);
699         dirty_tiles(screen.machine(), 2, m_vram_2);
701700      }
702701   }
703702
704   state->m_sprite_xoffs = state->m_videoregs[0x06 / 2] - screen.width()  / 2;
705   state->m_sprite_yoffs = state->m_videoregs[0x04 / 2] - screen.height() / 2 - state->m_sprite_yoffs_sub;
703   m_sprite_xoffs = m_videoregs[0x06 / 2] - screen.width()  / 2;
704   m_sprite_yoffs = m_videoregs[0x04 / 2] - screen.height() / 2 - m_sprite_yoffs_sub;
706705
707706   /* The background color is selected by a register */
708707   screen.machine().priority_bitmap.fill(0, cliprect);
709   bitmap.fill((state->m_videoregs[0x12 / 2] & 0x0fff) + 0x1000, cliprect);
708   bitmap.fill((m_videoregs[0x12 / 2] & 0x0fff) + 0x1000, cliprect);
710709
711710   /*  Screen Control Register:
712711
r17967r17968
721720        ---- ---- ---- ---0     Flip  Screen    */
722721   if (screenctrl & 2)
723722      return 0;
724   state->flip_screen_set(screenctrl & 1);
723   flip_screen_set(screenctrl & 1);
725724
726725#if 0
727726if (screen.machine().input().code_pressed(KEYCODE_Z))
r17967r17968
737736   }
738737
739738   popmessage("%x-%x-%x:%04x %04x %04x",
740            state->m_videoregs[0x10/2]&3,(state->m_videoregs[0x10/2] & 0xc) >> 2, (state->m_videoregs[0x10/2] & 0x30) >> 4,
741            state->m_videoregs[0x02/2], state->m_videoregs[0x08/2],
742            *state->m_screenctrl);
739            m_videoregs[0x10/2]&3,(m_videoregs[0x10/2] & 0xc) >> 2, (m_videoregs[0x10/2] & 0x30) >> 4,
740            m_videoregs[0x02/2], m_videoregs[0x08/2],
741            *m_screenctrl);
743742}
744743#endif
745744
trunk/src/mame/video/arcadecl.c
r17967r17968
7777 *
7878 *************************************/
7979
80SCREEN_UPDATE_IND16( arcadecl )
80UINT32 arcadecl_state::screen_update_arcadecl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
8181{
82   arcadecl_state *state = screen.machine().driver_data<arcadecl_state>();
8382
8483   /* draw the playfield */
8584   arcadecl_bitmap_render(screen.machine(), bitmap, cliprect);
8685
8786   /* draw and merge the MO */
88   if (state->m_has_mo)
87   if (m_has_mo)
8988   {
9089      atarimo_rect_list rectlist;
9190      bitmap_ind16 *mobitmap;
trunk/src/mame/video/namconb1.c
r17967r17968
132132
133133/************************************************************************************************/
134134
135SCREEN_UPDATE_IND16( namconb1 )
135UINT32 namconb1_state::screen_update_namconb1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
136136{
137137   /* compute window for custom screen blanking */
138138   rectangle clip;
139139   //004a 016a 0021 0101 0144 0020 (nebulas ray)
140   namconb1_state *state = screen.machine().driver_data<namconb1_state>();
141   UINT32 xclip = state->m_generic_paletteram_32[0x1800/4];
142   UINT32 yclip = state->m_generic_paletteram_32[0x1804/4];
140   UINT32 xclip = m_generic_paletteram_32[0x1800/4];
141   UINT32 yclip = m_generic_paletteram_32[0x1804/4];
143142   clip.min_x = (xclip>>16)    - 0x4a;
144143   clip.max_x = (xclip&0xffff) - 0x4a - 1;
145144   clip.min_y = (yclip>>16)    - 0x21;
r17967r17968
170169
171170/****************************************************************************************************/
172171
173SCREEN_UPDATE_IND16( namconb2 )
172UINT32 namconb1_state::screen_update_namconb2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
174173{
175   namconb1_state *state = screen.machine().driver_data<namconb1_state>();
176174   /* compute window for custom screen blanking */
177175   rectangle clip;
178176   //004a016a 00210101 01440020
179   UINT32 xclip = state->m_generic_paletteram_32[0x1800/4];
180   UINT32 yclip = state->m_generic_paletteram_32[0x1804/4];
177   UINT32 xclip = m_generic_paletteram_32[0x1800/4];
178   UINT32 yclip = m_generic_paletteram_32[0x1804/4];
181179   clip.min_x = (xclip>>16)    - 0x4b;
182180   clip.max_x = (xclip&0xffff) - 0x4b - 1;
183181   clip.min_y = (yclip>>16)    - 0x21;
r17967r17968
187185
188186   bitmap.fill(get_black_pen(screen.machine()), cliprect );
189187
190   if( memcmp(state->m_tilemap_tile_bank,state->m_tilebank32,sizeof(state->m_tilemap_tile_bank))!=0 )
188   if( memcmp(m_tilemap_tile_bank,m_tilebank32,sizeof(m_tilemap_tile_bank))!=0 )
191189   {
192190      namco_tilemap_invalidate();
193      memcpy(state->m_tilemap_tile_bank,state->m_tilebank32,sizeof(state->m_tilemap_tile_bank));
191      memcpy(m_tilemap_tile_bank,m_tilebank32,sizeof(m_tilemap_tile_bank));
194192   }
195193   video_update_common( screen.machine(), bitmap, clip, 1 );
196194   return 0;
trunk/src/mame/video/flstory.c
r17967r17968
204204   }
205205}
206206
207SCREEN_UPDATE_IND16( flstory )
207UINT32 flstory_state::screen_update_flstory(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
208208{
209   flstory_state *state = screen.machine().driver_data<flstory_state>();
210   state->m_bg_tilemap->draw(bitmap, cliprect, 0 | TILEMAP_DRAW_LAYER1, 0);
211   state->m_bg_tilemap->draw(bitmap, cliprect, 1 | TILEMAP_DRAW_LAYER1, 0);
209   m_bg_tilemap->draw(bitmap, cliprect, 0 | TILEMAP_DRAW_LAYER1, 0);
210   m_bg_tilemap->draw(bitmap, cliprect, 1 | TILEMAP_DRAW_LAYER1, 0);
212211   flstory_draw_sprites(screen.machine(), bitmap, cliprect, 0x00);
213   state->m_bg_tilemap->draw(bitmap, cliprect, 0 | TILEMAP_DRAW_LAYER0, 0);
212   m_bg_tilemap->draw(bitmap, cliprect, 0 | TILEMAP_DRAW_LAYER0, 0);
214213   flstory_draw_sprites(screen.machine(), bitmap, cliprect, 0x80);
215   state->m_bg_tilemap->draw(bitmap, cliprect, 1 | TILEMAP_DRAW_LAYER0, 0);
214   m_bg_tilemap->draw(bitmap, cliprect, 1 | TILEMAP_DRAW_LAYER0, 0);
216215   return 0;
217216}
218217
r17967r17968
261260   }
262261}
263262
264SCREEN_UPDATE_IND16( victnine )
263UINT32 flstory_state::screen_update_victnine(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
265264{
266   flstory_state *state = screen.machine().driver_data<flstory_state>();
267   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
265   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
268266   victnine_draw_sprites(screen.machine(), bitmap, cliprect);
269267   return 0;
270268}
271269
272SCREEN_UPDATE_IND16( rumba )
270UINT32 flstory_state::screen_update_rumba(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
273271{
274   flstory_state *state = screen.machine().driver_data<flstory_state>();
275   state->m_bg_tilemap->draw(bitmap, cliprect, 0 | TILEMAP_DRAW_LAYER1, 0);
276   state->m_bg_tilemap->draw(bitmap, cliprect, 1 | TILEMAP_DRAW_LAYER1, 0);
272   m_bg_tilemap->draw(bitmap, cliprect, 0 | TILEMAP_DRAW_LAYER1, 0);
273   m_bg_tilemap->draw(bitmap, cliprect, 1 | TILEMAP_DRAW_LAYER1, 0);
277274   victnine_draw_sprites(screen.machine(), bitmap, cliprect);
278   state->m_bg_tilemap->draw(bitmap, cliprect, 0 | TILEMAP_DRAW_LAYER0, 0);
275   m_bg_tilemap->draw(bitmap, cliprect, 0 | TILEMAP_DRAW_LAYER0, 0);
279276   victnine_draw_sprites(screen.machine(), bitmap, cliprect);
280   state->m_bg_tilemap->draw(bitmap, cliprect, 1 | TILEMAP_DRAW_LAYER0, 0);
277   m_bg_tilemap->draw(bitmap, cliprect, 1 | TILEMAP_DRAW_LAYER0, 0);
281278   return 0;
282279}
trunk/src/mame/video/suprslam.c
r17967r17968
147147   m_screen_tilemap->set_transparent_pen(15);
148148}
149149
150SCREEN_UPDATE_IND16( suprslam )
150UINT32 suprslam_state::screen_update_suprslam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
151151{
152   suprslam_state *state = screen.machine().driver_data<suprslam_state>();
153   state->m_screen_tilemap->set_scrollx(0, state->m_screen_vregs[0x04/2] );
152   m_screen_tilemap->set_scrollx(0, m_screen_vregs[0x04/2] );
154153
155154   bitmap.fill(get_black_pen(screen.machine()), cliprect);
156   k053936_zoom_draw(state->m_k053936, bitmap, cliprect, state->m_bg_tilemap, 0, 0, 1);
157   if(!(state->m_spr_ctrl[0] & 8))
155   k053936_zoom_draw(m_k053936, bitmap, cliprect, m_bg_tilemap, 0, 0, 1);
156   if(!(m_spr_ctrl[0] & 8))
158157      draw_sprites(screen.machine(), bitmap, cliprect);
159   state->m_screen_tilemap->draw(bitmap, cliprect, 0, 0);
160   if(state->m_spr_ctrl[0] & 8)
158   m_screen_tilemap->draw(bitmap, cliprect, 0, 0);
159   if(m_spr_ctrl[0] & 8)
161160      draw_sprites(screen.machine(), bitmap, cliprect);
162161   return 0;
163162}
trunk/src/mame/video/calomega.c
r17967r17968
5959   m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(calomega_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 31);
6060}
6161
62SCREEN_UPDATE_IND16( calomega )
62UINT32 calomega_state::screen_update_calomega(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
6363{
64   calomega_state *state = screen.machine().driver_data<calomega_state>();
65   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
64   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
6665   return 0;
6766}
6867
trunk/src/mame/video/strnskil.c
r17967r17968
120120   }
121121}
122122
123SCREEN_UPDATE_IND16( strnskil )
123UINT32 strnskil_state::screen_update_strnskil(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
124124{
125   strnskil_state *state = screen.machine().driver_data<strnskil_state>();
126125   int row;
127   const UINT8 *usr1 = state->memregion("user1")->base();
126   const UINT8 *usr1 = memregion("user1")->base();
128127
129128   for (row = 0; row < 32; row++)
130129   {
131      if (state->m_scrl_ctrl != 0x07)
130      if (m_scrl_ctrl != 0x07)
132131      {
133         switch (usr1[state->m_scrl_ctrl * 32 + row])
132         switch (usr1[m_scrl_ctrl * 32 + row])
134133         {
135134         case 2:
136            state->m_bg_tilemap->set_scrollx(row, -~state->m_xscroll[1]);
135            m_bg_tilemap->set_scrollx(row, -~m_xscroll[1]);
137136            break;
138137         case 4:
139            state->m_bg_tilemap->set_scrollx(row, -~state->m_xscroll[0]);
138            m_bg_tilemap->set_scrollx(row, -~m_xscroll[0]);
140139            break;
141140         }
142141      }
143142   }
144143
145   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
144   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
146145   draw_sprites(screen.machine(), bitmap, cliprect);
147146   return 0;
148147}
trunk/src/mame/video/atetris.c
r17967r17968
6161 *
6262 *************************************/
6363
64SCREEN_UPDATE_IND16( atetris )
64UINT32 atetris_state::screen_update_atetris(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
6565{
66   atetris_state *state = screen.machine().driver_data<atetris_state>();
6766
68   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
67   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
6968   return 0;
7069}
trunk/src/mame/video/cosmic.c
r17967r17968
546546}
547547
548548
549SCREEN_UPDATE_IND16( cosmicg )
549UINT32 cosmic_state::screen_update_cosmicg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
550550{
551551   bitmap.fill(0, cliprect);
552552   draw_bitmap(screen.machine(), bitmap, cliprect);
r17967r17968
554554}
555555
556556
557SCREEN_UPDATE_IND16( panic )
557UINT32 cosmic_state::screen_update_panic(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
558558{
559559   bitmap.fill(0, cliprect);
560560   draw_bitmap(screen.machine(), bitmap, cliprect);
r17967r17968
563563}
564564
565565
566SCREEN_UPDATE_IND16( cosmica )
566UINT32 cosmic_state::screen_update_cosmica(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
567567{
568568   bitmap.fill(0, cliprect);
569569   cosmica_draw_starfield(screen, bitmap, cliprect);
r17967r17968
573573}
574574
575575
576SCREEN_UPDATE_IND16( magspot )
576UINT32 cosmic_state::screen_update_magspot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
577577{
578578   bitmap.fill(0, cliprect);
579579   draw_bitmap(screen.machine(), bitmap, cliprect);
r17967r17968
582582}
583583
584584
585SCREEN_UPDATE_IND16( devzone )
585UINT32 cosmic_state::screen_update_devzone(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
586586{
587   cosmic_state *state = screen.machine().driver_data<cosmic_state>();
588587
589588   bitmap.fill(0, cliprect);
590589
591   if (state->m_background_enable)
590   if (m_background_enable)
592591      devzone_draw_grid(screen.machine(), bitmap, cliprect);
593592
594593   draw_bitmap(screen.machine(), bitmap, cliprect);
r17967r17968
597596}
598597
599598
600SCREEN_UPDATE_IND16( nomnlnd )
599UINT32 cosmic_state::screen_update_nomnlnd(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
601600{
602   cosmic_state *state = screen.machine().driver_data<cosmic_state>();
603601
604602   /* according to the video summation logic on pg4, the trees and river
605603       have the highest priority */
r17967r17968
608606   draw_bitmap(screen.machine(), bitmap, cliprect);
609607   draw_sprites(screen.machine(), bitmap, cliprect, 0x07, 0);
610608
611   if (state->m_background_enable)
609   if (m_background_enable)
612610      nomnlnd_draw_background(screen, bitmap, cliprect);
613611
614612   return 0;
trunk/src/mame/video/shaolins.c
r17967r17968
186186   }
187187}
188188
189SCREEN_UPDATE_IND16( shaolins )
189UINT32 shaolins_state::screen_update_shaolins(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
190190{
191   shaolins_state *state = screen.machine().driver_data<shaolins_state>();
192191
193   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
192   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
194193   draw_sprites(screen.machine(), bitmap, cliprect);
195194   return 0;
196195}
trunk/src/mame/video/model2.c
r17967r17968
27172717   geo_init( machine(), (UINT32*)memregion("user2")->base() );
27182718}
27192719
2720SCREEN_UPDATE_RGB32(model2)
2720UINT32 model2_state::screen_update_model2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
27212721{
2722   model2_state *state = screen.machine().driver_data<model2_state>();
27232722   logerror("--- frame ---\n");
27242723
27252724   bitmap.fill(screen.machine().pens[0], cliprect);
2726   state->m_sys24_bitmap.fill(0, cliprect);
2725   m_sys24_bitmap.fill(0, cliprect);
27272726
27282727   segas24_tile *tile = screen.machine().device<segas24_tile>("tile");
2729   tile->draw(state->m_sys24_bitmap, cliprect, 7, 0, 0);
2730   tile->draw(state->m_sys24_bitmap, cliprect, 6, 0, 0);
2731   tile->draw(state->m_sys24_bitmap, cliprect, 5, 0, 0);
2732   tile->draw(state->m_sys24_bitmap, cliprect, 4, 0, 0);
2728   tile->draw(m_sys24_bitmap, cliprect, 7, 0, 0);
2729   tile->draw(m_sys24_bitmap, cliprect, 6, 0, 0);
2730   tile->draw(m_sys24_bitmap, cliprect, 5, 0, 0);
2731   tile->draw(m_sys24_bitmap, cliprect, 4, 0, 0);
27332732
2734   copybitmap_trans(bitmap, state->m_sys24_bitmap, 0, 0, 0, 0, cliprect, 0);
2733   copybitmap_trans(bitmap, m_sys24_bitmap, 0, 0, 0, 0, cliprect, 0);
27352734
27362735   /* tell the rasterizer we're starting a frame */
2737   model2_3d_frame_start(state);
2736   model2_3d_frame_start(this);
27382737
27392738   /* let the geometry engine do it's thing */
2740   geo_parse(state);
2739   geo_parse(this);
27412740
27422741   /* have the rasterizer output the frame */
2743   model2_3d_frame_end( state, bitmap, cliprect );
2742   model2_3d_frame_end( this, bitmap, cliprect );
27442743
2745   state->m_sys24_bitmap.fill(0, cliprect);
2746   tile->draw(state->m_sys24_bitmap, cliprect, 3, 0, 0);
2747   tile->draw(state->m_sys24_bitmap, cliprect, 2, 0, 0);
2748   tile->draw(state->m_sys24_bitmap, cliprect, 1, 0, 0);
2749   tile->draw(state->m_sys24_bitmap, cliprect, 0, 0, 0);
2744   m_sys24_bitmap.fill(0, cliprect);
2745   tile->draw(m_sys24_bitmap, cliprect, 3, 0, 0);
2746   tile->draw(m_sys24_bitmap, cliprect, 2, 0, 0);
2747   tile->draw(m_sys24_bitmap, cliprect, 1, 0, 0);
2748   tile->draw(m_sys24_bitmap, cliprect, 0, 0, 0);
27502749
2751   copybitmap_trans(bitmap, state->m_sys24_bitmap, 0, 0, 0, 0, cliprect, 0);
2750   copybitmap_trans(bitmap, m_sys24_bitmap, 0, 0, 0, 0, cliprect, 0);
27522751
27532752   return 0;
27542753}
trunk/src/mame/video/sshangha.c
r17967r17968
2828
2929/******************************************************************************/
3030
31SCREEN_UPDATE_RGB32( sshangha )
31UINT32 sshangha_state::screen_update_sshangha(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
3232{
33   sshangha_state *state = screen.machine().driver_data<sshangha_state>();
3433
35   screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x800, true);
34   screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, m_spriteram, 0x800, true);
3635
3736   // I'm pretty sure only the original has the 2nd spriteram, used for the Japanese text on the 2nd scene (non-scrolling text) in the intro of the quest (3rd in JPN) mode
38   if (state->m_spriteram2 != NULL)
39      screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, state->m_spriteram2, 0x800, true);
37   if (m_spriteram2 != NULL)
38      screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, m_spriteram2, 0x800, true);
4039
41   screen.machine().tilemap().set_flip_all(state->flip_screen_x() ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
40   screen.machine().tilemap().set_flip_all(flip_screen_x() ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
4241
4342   bitmap.fill(get_black_pen(screen.machine()), cliprect);
4443
45   deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
44   deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
4645
4746   /* the tilemap 4bpp + 4bpp = 8bpp mixing actually seems external to the tilemap, note video_control is not part of the tilemap chip */
48   if ((state->m_video_control&4)==0) {
49      deco16ic_tilemap_12_combine_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0, 1);
47   if ((m_video_control&4)==0) {
48      deco16ic_tilemap_12_combine_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0, 1);
5049      screen.machine().device<decospr_device>("spritegen1")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0200, 0x0200, 0x100, 0x1ff);
5150   }
5251   else {
5352
54      deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
53      deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
5554      screen.machine().device<decospr_device>("spritegen1")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0200, 0x0200, 0x100, 0x1ff);
56      deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
55      deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
5756   }
5857
59   if (state->m_spriteram2 != NULL)
58   if (m_spriteram2 != NULL)
6059      screen.machine().device<decospr_device>("spritegen2")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0000, 0, 0x1ff);
6160
6261   screen.machine().device<decospr_device>("spritegen1")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0200, 0, 0x1ff);
trunk/src/mame/video/wiping.c
r17967r17968
8686}
8787
8888
89SCREEN_UPDATE_IND16( wiping )
89UINT32 wiping_state::screen_update_wiping(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
9090{
91   wiping_state *state = screen.machine().driver_data<wiping_state>();
92   UINT8 *spriteram = state->m_spriteram;
91   UINT8 *spriteram = m_spriteram;
9392   int offs;
9493
9594   for (offs = 0x3ff; offs > 0; offs--)
r17967r17968
115114         sy = my - 2;
116115      }
117116
118      if (state->m_flipscreen)
117      if (m_flipscreen)
119118      {
120119         sx = 35 - sx;
121120         sy = 27 - sy;
122121      }
123122
124123      drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0],
125            state->m_videoram[offs],
126            state->m_colorram[offs] & 0x3f,
127            state->m_flipscreen,state->m_flipscreen,
124            m_videoram[offs],
125            m_colorram[offs] & 0x3f,
126            m_flipscreen,m_flipscreen,
128127            sx*8,sy*8);
129128   }
130129
r17967r17968
142141      flipy = spriteram[offs] & 0x40;
143142      flipx = spriteram[offs] & 0x80;
144143
145      if (state->m_flipscreen)
144      if (m_flipscreen)
146145      {
147146         sy = 208 - sy;
148147         flipx = !flipx;
r17967r17968
160159   /* redraw high priority chars */
161160   for (offs = 0x3ff; offs > 0; offs--)
162161   {
163      if (state->m_colorram[offs] & 0x80)
162      if (m_colorram[offs] & 0x80)
164163      {
165164         int mx,my,sx,sy;
166165
r17967r17968
183182            sy = my - 2;
184183         }
185184
186         if (state->m_flipscreen)
185         if (m_flipscreen)
187186         {
188187            sx = 35 - sx;
189188            sy = 27 - sy;
190189         }
191190
192191         drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0],
193               state->m_videoram[offs],
194               state->m_colorram[offs] & 0x3f,
195               state->m_flipscreen,state->m_flipscreen,
192               m_videoram[offs],
193               m_colorram[offs] & 0x3f,
194               m_flipscreen,m_flipscreen,
196195               sx*8,sy*8);
197196           }
198197   }
r17967r17968
207206      for (j = 0;j < 8;j++)
208207      {
209208         char buf[40];
210         sprintf(buf,"%01x",state->m_soundregs[i*8+j]&0xf);
209         sprintf(buf,"%01x",m_soundregs[i*8+j]&0xf);
211210         ui_draw_text(buf,j*10,i*8);
212211      }
213212   }
r17967r17968
217216      for (j = 0;j < 8;j++)
218217      {
219218         char buf[40];
220         sprintf(buf,"%01x",state->m_soundregs[0x2000+i*8+j]>>4);
219         sprintf(buf,"%01x",m_soundregs[0x2000+i*8+j]>>4);
221220         ui_draw_text(buf,j*10,80+i*8);
222221      }
223222   }
trunk/src/mame/video/kyugo.c
r17967r17968
209209}
210210
211211
212SCREEN_UPDATE_IND16( kyugo )
212UINT32 kyugo_state::screen_update_kyugo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
213213{
214   kyugo_state *state = screen.machine().driver_data<kyugo_state>();
215214
216   if (state->m_flipscreen)
217      state->m_bg_tilemap->set_scrollx(0, -(state->m_scroll_x_lo + (state->m_scroll_x_hi * 256)));
215   if (m_flipscreen)
216      m_bg_tilemap->set_scrollx(0, -(m_scroll_x_lo + (m_scroll_x_hi * 256)));
218217   else
219      state->m_bg_tilemap->set_scrollx(0,   state->m_scroll_x_lo + (state->m_scroll_x_hi * 256));
218      m_bg_tilemap->set_scrollx(0,   m_scroll_x_lo + (m_scroll_x_hi * 256));
220219
221   state->m_bg_tilemap->set_scrolly(0, state->m_scroll_y);
220   m_bg_tilemap->set_scrolly(0, m_scroll_y);
222221
223   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
222   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
224223   draw_sprites(screen.machine(), bitmap, cliprect);
225   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
224   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
226225   return 0;
227226}
trunk/src/mame/video/leland.c
r17967r17968
385385 *
386386 *************************************/
387387
388static SCREEN_UPDATE_IND16( leland )
388UINT32 leland_state::screen_update_leland(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
389389{
390   leland_state *state = screen.machine().driver_data<leland_state>();
391390   int y;
392391
393392   const UINT8 *bg_prom = screen.machine().root_device().memregion("user1")->base();
394393   const UINT8 *bg_gfx = screen.machine().root_device().memregion("gfx1")->base();
395   offs_t bg_gfx_bank_page_size = state->memregion("gfx1")->bytes() / 3;
396   offs_t char_bank = (((state->m_gfxbank >> 4) & 0x03) * 0x2000) & (bg_gfx_bank_page_size - 1);
397   offs_t prom_bank = ((state->m_gfxbank >> 3) & 0x01) * 0x2000;
394   offs_t bg_gfx_bank_page_size = memregion("gfx1")->bytes() / 3;
395   offs_t char_bank = (((m_gfxbank >> 4) & 0x03) * 0x2000) & (bg_gfx_bank_page_size - 1);
396   offs_t prom_bank = ((m_gfxbank >> 3) & 0x01) * 0x2000;
398397
399398   /* for each scanline in the visible region */
400399   for (y = cliprect.min_y; y <= cliprect.max_y; y++)
r17967r17968
403402      UINT8 fg_data = 0;
404403
405404      UINT16 *dst = &bitmap.pix16(y);
406      UINT8 *fg_src = &state->m_video_ram[y << 8];
405      UINT8 *fg_src = &m_video_ram[y << 8];
407406
408407      /* for each pixel on the scanline */
409408      for (x = 0; x < VIDEO_WIDTH; x++)
410409      {
411410         /* compute the effective scrolled pixel coordinates */
412         UINT16 sx = (x + state->m_xscroll) & 0x07ff;
413         UINT16 sy = (y + state->m_yscroll) & 0x07ff;
411         UINT16 sx = (x + m_xscroll) & 0x07ff;
412         UINT16 sy = (y + m_yscroll) & 0x07ff;
414413
415414         /* get the byte address this background pixel comes from */
416415         offs_t bg_prom_offs = (sx >> 3) |
r17967r17968
454453 *
455454 *************************************/
456455
457static SCREEN_UPDATE_IND16( ataxx )
456UINT32 leland_state::screen_update_ataxx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
458457{
459   leland_state *state = screen.machine().driver_data<leland_state>();
460458   int y;
461459
462460   const UINT8 *bg_gfx = screen.machine().root_device().memregion("gfx1")->base();
463   offs_t bg_gfx_bank_page_size = state->memregion("gfx1")->bytes() / 6;
461   offs_t bg_gfx_bank_page_size = memregion("gfx1")->bytes() / 6;
464462   offs_t bg_gfx_offs_mask = bg_gfx_bank_page_size - 1;
465463
466464   /* for each scanline in the visible region */
r17967r17968
470468      UINT8 fg_data = 0;
471469
472470      UINT16 *dst = &bitmap.pix16(y);
473      UINT8 *fg_src = &state->m_video_ram[y << 8];
471      UINT8 *fg_src = &m_video_ram[y << 8];
474472
475473      /* for each pixel on the scanline */
476474      for (x = 0; x < VIDEO_WIDTH; x++)
477475      {
478476         /* compute the effective scrolled pixel coordinates */
479         UINT16 sx = (x + state->m_xscroll) & 0x07ff;
480         UINT16 sy = (y + state->m_yscroll) & 0x07ff;
477         UINT16 sx = (x + m_xscroll) & 0x07ff;
478         UINT16 sy = (y + m_yscroll) & 0x07ff;
481479
482480         /* get the byte address this background pixel comes from */
483481         offs_t qram_offs = (sx >> 3) |
r17967r17968
485483                        ((sy << 6) & 0x8000);
486484
487485         offs_t bg_gfx_offs = ((sy & 0x07) |
488                          (state->m_ataxx_qram[qram_offs] << 3) |
489                          ((state->m_ataxx_qram[0x4000 | qram_offs] & 0x7f) << 11)) & bg_gfx_offs_mask;
486                          (m_ataxx_qram[qram_offs] << 3) |
487                          ((m_ataxx_qram[0x4000 | qram_offs] & 0x7f) << 11)) & bg_gfx_offs_mask;
490488
491489         /* build the pen, background is d0-d5 */
492490         pen_t pen = (((bg_gfx[bg_gfx_offs + (0 * bg_gfx_bank_page_size)] << (sx & 0x07)) & 0x80) >> 7) |   /* d0 */
r17967r17968
531529   MCFG_SCREEN_SIZE(40*8, 32*8)
532530   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1)
533531   MCFG_SCREEN_REFRESH_RATE(60)
534   MCFG_SCREEN_UPDATE_STATIC(leland)
532   MCFG_SCREEN_UPDATE_DRIVER(leland_state, screen_update_leland)
535533MACHINE_CONFIG_END
536534
537535
538536MACHINE_CONFIG_DERIVED( ataxx_video, leland_video )
539537   MCFG_VIDEO_START_OVERRIDE(leland_state,ataxx)
540538   MCFG_SCREEN_MODIFY("screen")
541   MCFG_SCREEN_UPDATE_STATIC(ataxx)
539   MCFG_SCREEN_UPDATE_DRIVER(leland_state, screen_update_ataxx)
542540MACHINE_CONFIG_END
trunk/src/mame/video/popeye.c
r17967r17968
365365   }
366366}
367367
368SCREEN_UPDATE_IND16( popeye )
368UINT32 popeye_state::screen_update_popeye(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
369369{
370   popeye_state *state = screen.machine().driver_data<popeye_state>();
371370   draw_background(screen.machine(), bitmap, cliprect);
372371   draw_sprites(screen.machine(), bitmap, cliprect);
373   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
372   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
374373   return 0;
375374}
trunk/src/mame/video/lazercmd.c
r17967r17968
5050}
5151
5252
53SCREEN_UPDATE_IND16( lazercmd )
53UINT32 lazercmd_state::screen_update_lazercmd(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
5454{
55   lazercmd_state *state = screen.machine().driver_data<lazercmd_state>();
5655   int i, x, y;
5756
5857   int video_inverted = screen.machine().root_device().ioport("DSW")->read() & 0x20;
r17967r17968
6968      sy *= VERT_CHR;
7069
7170      drawgfx_opaque(bitmap, cliprect,screen.machine().gfx[0],
72            state->m_videoram[i], video_inverted ? 1 : 0,
71            m_videoram[i], video_inverted ? 1 : 0,
7372            0,0,
7473            sx,sy);
7574   }
7675
77   x = state->m_marker_x - 1;             /* normal video lags marker by 1 pixel */
78   y = vert_scale(state->m_marker_y) - VERT_CHR; /* first line used as scratch pad */
76   x = m_marker_x - 1;             /* normal video lags marker by 1 pixel */
77   y = vert_scale(m_marker_y) - VERT_CHR; /* first line used as scratch pad */
7978   plot_pattern(screen.machine(), bitmap, x, y);
8079
8180   return 0;
trunk/src/mame/video/4enraya.c
r17967r17968
3434   m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(_4enraya_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
3535}
3636
37SCREEN_UPDATE_IND16( 4enraya )
37UINT32 _4enraya_state::screen_update_4enraya(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
3838{
39   _4enraya_state *state = screen.machine().driver_data<_4enraya_state>();
4039
41   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
40   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
4241   return 0;
4342}
trunk/src/mame/video/blockade.c
r17967r17968
2525   m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(blockade_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
2626}
2727
28SCREEN_UPDATE_IND16( blockade )
28UINT32 blockade_state::screen_update_blockade(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
2929{
30   blockade_state *state = screen.machine().driver_data<blockade_state>();
3130
32   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
31   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
3332   return 0;
3433}
trunk/src/mame/video/compgolf.c
r17967r17968
114114   }
115115}
116116
117SCREEN_UPDATE_IND16( compgolf )
117UINT32 compgolf_state::screen_update_compgolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
118118{
119   compgolf_state *state = screen.machine().driver_data<compgolf_state>();
120   int scrollx = state->m_scrollx_hi + state->m_scrollx_lo;
121   int scrolly = state->m_scrolly_hi + state->m_scrolly_lo;
119   int scrollx = m_scrollx_hi + m_scrollx_lo;
120   int scrolly = m_scrolly_hi + m_scrolly_lo;
122121
123   state->m_bg_tilemap->set_scrollx(0, scrollx);
124   state->m_bg_tilemap->set_scrolly(0, scrolly);
122   m_bg_tilemap->set_scrollx(0, scrollx);
123   m_bg_tilemap->set_scrolly(0, scrolly);
125124
126   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
127   state->m_text_tilemap->draw(bitmap, cliprect, 0, 0);
125   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
126   m_text_tilemap->draw(bitmap, cliprect, 0, 0);
128127   draw_sprites(screen.machine(), bitmap, cliprect);
129128   return 0;
130129}
trunk/src/mame/video/lordgun.c
r17967r17968
317317
318318***************************************************************************/
319319
320SCREEN_UPDATE_IND16( lordgun )
320UINT32 lordgun_state::screen_update_lordgun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
321321{
322   lordgun_state *state = screen.machine().driver_data<lordgun_state>();
323322   int layers_ctrl = -1;
324323
325324#ifdef MAME_DEBUG
r17967r17968
336335   }
337336#endif
338337
339   if (state->m_whitescreen)
338   if (m_whitescreen)
340339   {
341340      bitmap.fill(get_white_pen(screen.machine()), cliprect);
342341      return 0;
r17967r17968
346345
347346   int x, y;
348347
349   state->m_tilemap[0]->set_scrollx(0, *state->m_scroll_x[0] );
350   state->m_tilemap[0]->set_scrolly(0, *state->m_scroll_y[0] );
348   m_tilemap[0]->set_scrollx(0, *m_scroll_x[0] );
349   m_tilemap[0]->set_scrolly(0, *m_scroll_y[0] );
351350
352351   for (y = 0; y < 0x200; y++)
353      state->m_tilemap[1]->set_scrollx(y, (*state->m_scroll_x[1]) + state->m_scrollram[y * 4/2 + 2/2]);
354   state->m_tilemap[1]->set_scrolly(0, *state->m_scroll_y[1] );
352      m_tilemap[1]->set_scrollx(y, (*m_scroll_x[1]) + m_scrollram[y * 4/2 + 2/2]);
353   m_tilemap[1]->set_scrolly(0, *m_scroll_y[1] );
355354
356   state->m_tilemap[2]->set_scrollx(0, *state->m_scroll_x[2] );
357   state->m_tilemap[2]->set_scrolly(0, *state->m_scroll_y[2] );
355   m_tilemap[2]->set_scrollx(0, *m_scroll_x[2] );
356   m_tilemap[2]->set_scrolly(0, *m_scroll_y[2] );
358357
359   state->m_tilemap[3]->set_scrollx(0, *state->m_scroll_x[3] );
360   state->m_tilemap[3]->set_scrolly(0, *state->m_scroll_y[3] );
358   m_tilemap[3]->set_scrollx(0, *m_scroll_x[3] );
359   m_tilemap[3]->set_scrolly(0, *m_scroll_y[3] );
361360
362361   // Rendering:
363362
r17967r17968
368367
369368   int l;
370369   for (l = 0; l < 5; l++)
371      state->m_bitmaps[l]->fill(trans_pen, cliprect);
370      m_bitmaps[l]->fill(trans_pen, cliprect);
372371
373   if (layers_ctrl & 1)   state->m_tilemap[0]->draw(*state->m_bitmaps[0], cliprect, 0, 0);
374   if (layers_ctrl & 2)   state->m_tilemap[1]->draw(*state->m_bitmaps[1], cliprect, 0, 0);
375   if (layers_ctrl & 4)   state->m_tilemap[2]->draw(*state->m_bitmaps[2], cliprect, 0, 0);
376   if (layers_ctrl & 8)   state->m_tilemap[3]->draw(*state->m_bitmaps[3], cliprect, 0, 0);
377   if (layers_ctrl & 16)   draw_sprites(screen.machine(), *state->m_bitmaps[4], cliprect);
372   if (layers_ctrl & 1)   m_tilemap[0]->draw(*m_bitmaps[0], cliprect, 0, 0);
373   if (layers_ctrl & 2)   m_tilemap[1]->draw(*m_bitmaps[1], cliprect, 0, 0);
374   if (layers_ctrl & 4)   m_tilemap[2]->draw(*m_bitmaps[2], cliprect, 0, 0);
375   if (layers_ctrl & 8)   m_tilemap[3]->draw(*m_bitmaps[3], cliprect, 0, 0);
376   if (layers_ctrl & 16)   draw_sprites(screen.machine(), *m_bitmaps[4], cliprect);
378377
379378   // copy to screen bitmap
380379
r17967r17968
394393         // bits 0-4: layer transparency
395394         for (l = 0; l < 5; l++)
396395         {
397            pens[l] = state->m_bitmaps[l]->pix16(y, x);
396            pens[l] = m_bitmaps[l]->pix16(y, x);
398397            if (pens[l] == trans_pen)
399398               pri_addr |= 1 << layer2bit[l];
400399         }
r17967r17968
410409
411410         pri_addr &= 0x7fff;
412411
413         l   =   pri2layer[state->m_priority_ram[pri_addr] & 7];
412         l   =   pri2layer[m_priority_ram[pri_addr] & 7];
414413
415414         bitmap.pix16(y, x) = pens[l];
416415      }
trunk/src/mame/video/pushman.c
r17967r17968
116116   }
117117}
118118
119SCREEN_UPDATE_IND16( pushman )
119UINT32 pushman_state::screen_update_pushman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
120120{
121   pushman_state *state = screen.machine().driver_data<pushman_state>();
122121
123122   /* Setup the tilemaps */
124   state->m_bg_tilemap->set_scrollx(0, state->m_control[0]);
125   state->m_bg_tilemap->set_scrolly(0, 0xf00 - state->m_control[1]);
123   m_bg_tilemap->set_scrollx(0, m_control[0]);
124   m_bg_tilemap->set_scrolly(0, 0xf00 - m_control[1]);
126125
127   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
126   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
128127   draw_sprites(screen.machine(), bitmap, cliprect);
129   state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
128   m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
130129   return 0;
131130}
trunk/src/mame/video/lemmings.c
r17967r17968
4747   save_item(NAME(m_sprite_triple_buffer_1));
4848}
4949
50SCREEN_VBLANK( lemmings )
50void lemmings_state::screen_eof_lemmings(screen_device &screen, bool state)
5151{
5252   // rising edge
53   if (vblank_on)
53   if (state)
5454   {
55      lemmings_state *state = screen.machine().driver_data<lemmings_state>();
56      memcpy(state->m_sprite_triple_buffer_0, state->m_spriteram->buffer(), 0x800);
57      memcpy(state->m_sprite_triple_buffer_1, state->m_spriteram2->buffer(), 0x800);
55      memcpy(m_sprite_triple_buffer_0, m_spriteram->buffer(), 0x800);
56      memcpy(m_sprite_triple_buffer_1, m_spriteram2->buffer(), 0x800);
5857   }
5958}
6059
r17967r17968
128127   }
129128}
130129
131SCREEN_UPDATE_RGB32( lemmings )
130UINT32 lemmings_state::screen_update_lemmings(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
132131{
133   lemmings_state *state = screen.machine().driver_data<lemmings_state>();
134   int x1 = -state->m_control_data[0];
135   int x0 = -state->m_control_data[2];
132   int x1 = -m_control_data[0];
133   int x0 = -m_control_data[2];
136134   int y = 0;
137135   rectangle rect;
138136   rect.max_y = cliprect.max_y;
139137   rect.min_y = cliprect.min_y;
140138
141   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_sprite_triple_buffer_1, 0x400, true);
142   screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, state->m_sprite_triple_buffer_0, 0x400, true);
139   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_sprite_triple_buffer_1, 0x400, true);
140   screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, m_sprite_triple_buffer_0, 0x400, true);
143141
144142   bitmap.fill(get_black_pen(screen.machine()), cliprect);
145143   screen.machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0800, 0x0800, 0x300, 0xff);
146144
147145   /* Pixel layer can be windowed in hardware (two player mode) */
148   if ((state->m_control_data[6] & 2) == 0)
146   if ((m_control_data[6] & 2) == 0)
149147   {
150      lemmings_copy_bitmap(screen.machine(), bitmap, state->m_bitmap0, &x1, &y, cliprect);
148      lemmings_copy_bitmap(screen.machine(), bitmap, m_bitmap0, &x1, &y, cliprect);
151149   }
152150   else
153151   {
154152      rect.max_x = 159;
155153      rect.min_x = 0;
156      lemmings_copy_bitmap(screen.machine(), bitmap, state->m_bitmap0, &x0, &y, rect);
154      lemmings_copy_bitmap(screen.machine(), bitmap, m_bitmap0, &x0, &y, rect);
157155
158156      rect.max_x = 319;
159157      rect.min_x = 160;
160      lemmings_copy_bitmap(screen.machine(), bitmap, state->m_bitmap0, &x1, &y, rect);
158      lemmings_copy_bitmap(screen.machine(), bitmap, m_bitmap0, &x1, &y, rect);
161159   }
162160
163161   screen.machine().device<decospr_device>("spritegen2")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0800, 0x0800, 0x200, 0xff);
164162   screen.machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0800, 0x300, 0xff);
165   state->m_vram_tilemap->draw(bitmap, cliprect, 0, 0);
163   m_vram_tilemap->draw(bitmap, cliprect, 0, 0);
166164   screen.machine().device<decospr_device>("spritegen2")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0800, 0x200, 0xff);
167165   return 0;
168166}
trunk/src/mame/video/espial.c
r17967r17968
225225}
226226
227227
228SCREEN_UPDATE_IND16( espial )
228UINT32 espial_state::screen_update_espial(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
229229{
230   espial_state *state = screen.machine().driver_data<espial_state>();
231230
232   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
231   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
233232   draw_sprites(screen.machine(), bitmap, cliprect);
234233   return 0;
235234}
trunk/src/mame/video/hyperspt.c
r17967r17968
171171   }
172172}
173173
174SCREEN_UPDATE_IND16( hyperspt )
174UINT32 hyperspt_state::screen_update_hyperspt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
175175{
176   hyperspt_state *state = screen.machine().driver_data<hyperspt_state>();
177176   int row;
178177
179178   for (row = 0; row < 32; row++)
180179   {
181      int scrollx = state->m_scroll[row * 2] + (state->m_scroll[(row * 2) + 1] & 0x01) * 256;
182      if (state->flip_screen()) scrollx = -scrollx;
183      state->m_bg_tilemap->set_scrollx(row, scrollx);
180      int scrollx = m_scroll[row * 2] + (m_scroll[(row * 2) + 1] & 0x01) * 256;
181      if (flip_screen()) scrollx = -scrollx;
182      m_bg_tilemap->set_scrollx(row, scrollx);
184183   }
185184
186   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
185   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
187186   draw_sprites(screen.machine(), bitmap, cliprect);
188187   return 0;
189188}
trunk/src/mame/video/tiamc1.c
r17967r17968
176176   }
177177}
178178
179SCREEN_UPDATE_IND16( tiamc1 )
179UINT32 tiamc1_state::screen_update_tiamc1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
180180{
181   tiamc1_state *state = screen.machine().driver_data<tiamc1_state>();
182181#if 0
183182   int i;
184183
185184   for (i = 0; i < 32; i++)
186185   {
187      state->m_bg_tilemap1->set_scrolly(i, state->m_bg_vshift ^ 0xff);
188      state->m_bg_tilemap2->set_scrolly(i, state->m_bg_vshift ^ 0xff);
186      m_bg_tilemap1->set_scrolly(i, m_bg_vshift ^ 0xff);
187      m_bg_tilemap2->set_scrolly(i, m_bg_vshift ^ 0xff);
189188   }
190189
191190   for (i = 0; i < 32; i++)
192191   {
193      state->m_bg_tilemap1->set_scrollx(i, state->m_bg_hshift ^ 0xff);
194      state->m_bg_tilemap2->set_scrollx(i, state->m_bg_hshift ^ 0xff);
192      m_bg_tilemap1->set_scrollx(i, m_bg_hshift ^ 0xff);
193      m_bg_tilemap2->set_scrollx(i, m_bg_hshift ^ 0xff);
195194   }
196195#endif
197196
198   if (state->m_layers_ctrl & 0x80)
199      state->m_bg_tilemap2->draw(bitmap, cliprect, 0, 0);
197   if (m_layers_ctrl & 0x80)
198      m_bg_tilemap2->draw(bitmap, cliprect, 0, 0);
200199   else
201      state->m_bg_tilemap1->draw(bitmap, cliprect, 0, 0);
200      m_bg_tilemap1->draw(bitmap, cliprect, 0, 0);
202201
203202
204203   draw_sprites(screen.machine(), bitmap, cliprect);
trunk/src/mame/video/toaplan1.c
r17967r17968
11301130    Draw the game screen in the given bitmap_ind16.
11311131***************************************************************************/
11321132
1133SCREEN_UPDATE_IND16( rallybik )
1133UINT32 toaplan1_state::screen_update_rallybik(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
11341134{
1135   toaplan1_state *state = screen.machine().driver_data<toaplan1_state>();
11361135   int priority;
11371136
11381137   toaplan1_log_vram(screen.machine());
11391138
11401139   bitmap.fill(0x120, cliprect);
11411140
1142   state->m_pf1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 0, 0);
1143   state->m_pf1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 1, 0);
1141   m_pf1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 0, 0);
1142   m_pf1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 1, 0);
11441143
11451144   for (priority = 1; priority < 16; priority++)
11461145   {
1147      state->m_pf4_tilemap->draw(bitmap, cliprect, priority, 0);
1148      state->m_pf3_tilemap->draw(bitmap, cliprect, priority, 0);
1149      state->m_pf2_tilemap->draw(bitmap, cliprect, priority, 0);
1150      state->m_pf1_tilemap->draw(bitmap, cliprect, priority, 0);
1146      m_pf4_tilemap->draw(bitmap, cliprect, priority, 0);
1147      m_pf3_tilemap->draw(bitmap, cliprect, priority, 0);
1148      m_pf2_tilemap->draw(bitmap, cliprect, priority, 0);
1149      m_pf1_tilemap->draw(bitmap, cliprect, priority, 0);
11511150      rallybik_draw_sprites(screen.machine(), bitmap,cliprect,priority << 8);
11521151   }
11531152
11541153   return 0;
11551154}
11561155
1157SCREEN_UPDATE_IND16( toaplan1 )
1156UINT32 toaplan1_state::screen_update_toaplan1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
11581157{
1159   toaplan1_state *state = screen.machine().driver_data<toaplan1_state>();
11601158   int priority;
11611159
11621160   toaplan1_log_vram(screen.machine());
r17967r17968
11651163   bitmap.fill(0x120, cliprect);
11661164
11671165// it's really correct?
1168   state->m_pf1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 0, 0);
1169   state->m_pf1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 1, 0);
1166   m_pf1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 0, 0);
1167   m_pf1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 1, 0);
11701168
11711169   for (priority = 1; priority < 16; priority++)
11721170   {
1173      state->m_pf4_tilemap->draw(bitmap, cliprect, priority, priority, 0);
1174      state->m_pf3_tilemap->draw(bitmap, cliprect, priority, priority, 0);
1175      state->m_pf2_tilemap->draw(bitmap, cliprect, priority, priority, 0);
1176      state->m_pf1_tilemap->draw(bitmap, cliprect, priority, priority, 0);
1171      m_pf4_tilemap->draw(bitmap, cliprect, priority, priority, 0);
1172      m_pf3_tilemap->draw(bitmap, cliprect, priority, priority, 0);
1173      m_pf2_tilemap->draw(bitmap, cliprect, priority, priority, 0);
1174      m_pf1_tilemap->draw(bitmap, cliprect, priority, priority, 0);
11771175   }
11781176
11791177   draw_sprites(screen.machine(), bitmap, cliprect);
r17967r17968
11861184    assume it happens automatically every frame, at the end of vblank
11871185****************************************************************************/
11881186
1189SCREEN_VBLANK( rallybik )
1187void toaplan1_state::screen_eof_rallybik(screen_device &screen, bool state)
11901188{
11911189   // rising edge
1192   if (vblank_on)
1190   if (state)
11931191   {
1194      toaplan1_state *state = screen.machine().driver_data<toaplan1_state>();
11951192
1196      memcpy(state->m_buffered_spriteram, state->m_spriteram, state->m_spriteram.bytes());
1193      memcpy(m_buffered_spriteram, m_spriteram, m_spriteram.bytes());
11971194   }
11981195}
11991196
1200SCREEN_VBLANK( toaplan1 )
1197void toaplan1_state::screen_eof_toaplan1(screen_device &screen, bool state)
12011198{
12021199   // rising edge
1203   if (vblank_on)
1200   if (state)
12041201   {
1205      toaplan1_state *state = screen.machine().driver_data<toaplan1_state>();
12061202
1207      memcpy(state->m_buffered_spriteram, state->m_spriteram, state->m_spriteram.bytes());
1208      memcpy(state->m_buffered_spritesizeram16, state->m_spritesizeram16, TOAPLAN1_SPRITESIZERAM_SIZE);
1203      memcpy(m_buffered_spriteram, m_spriteram, m_spriteram.bytes());
1204      memcpy(m_buffered_spritesizeram16, m_spritesizeram16, TOAPLAN1_SPRITESIZERAM_SIZE);
12091205   }
12101206}
12111207
1212SCREEN_VBLANK( samesame )
1208void toaplan1_state::screen_eof_samesame(screen_device &screen, bool state)
12131209{
12141210   // rising edge
1215   if (vblank_on)
1211   if (state)
12161212   {
1217      toaplan1_state *state = screen.machine().driver_data<toaplan1_state>();
12181213
1219      memcpy(state->m_buffered_spriteram, state->m_spriteram, state->m_spriteram.bytes());
1220      memcpy(state->m_buffered_spritesizeram16, state->m_spritesizeram16, TOAPLAN1_SPRITESIZERAM_SIZE);
1214      memcpy(m_buffered_spriteram, m_spriteram, m_spriteram.bytes());
1215      memcpy(m_buffered_spritesizeram16, m_spritesizeram16, TOAPLAN1_SPRITESIZERAM_SIZE);
12211216      screen.machine().device("maincpu")->execute().set_input_line(M68K_IRQ_2, HOLD_LINE);   /* Frame done */
12221217   }
12231218}
trunk/src/mame/video/segag80r.c
r17967r17968
792792 *
793793 *************************************/
794794
795SCREEN_UPDATE_IND16( segag80r )
795UINT32 segag80r_state::screen_update_segag80r(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
796796{
797   segag80r_state *state = screen.machine().driver_data<segag80r_state>();
798797   UINT8 transparent_pens[16];
799798
800   switch (state->m_background_pcb)
799   switch (m_background_pcb)
801800   {
802801      /* foreground: opaque */
803802      /* background: none */
trunk/src/mame/video/hnayayoi.c
r17967r17968
257257}
258258
259259
260SCREEN_UPDATE_IND16( hnayayoi )
260UINT32 hnayayoi_state::screen_update_hnayayoi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
261261{
262   hnayayoi_state *state = screen.machine().driver_data<hnayayoi_state>();
263   int col0 = (state->m_palbank >>  0) & 0x0f;
264   int col1 = (state->m_palbank >>  4) & 0x0f;
265   int col2 = (state->m_palbank >>  8) & 0x0f;
266   int col3 = (state->m_palbank >> 12) & 0x0f;
262   int col0 = (m_palbank >>  0) & 0x0f;
263   int col1 = (m_palbank >>  4) & 0x0f;
264   int col2 = (m_palbank >>  8) & 0x0f;
265   int col3 = (m_palbank >> 12) & 0x0f;
267266
268   if (state->m_total_pixmaps == 4)
267   if (m_total_pixmaps == 4)
269268   {
270269      draw_layer_interleaved(screen.machine(), bitmap, cliprect, 3, 2, col1, 0);
271270      draw_layer_interleaved(screen.machine(), bitmap, cliprect, 1, 0, col0, 1);
trunk/src/mame/video/tmnt.c
r17967r17968
557557
558558***************************************************************************/
559559
560SCREEN_UPDATE_IND16( mia )
560UINT32 tmnt_state::screen_update_mia(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
561561{
562   tmnt_state *state = screen.machine().driver_data<tmnt_state>();
563562
564   k052109_tilemap_update(state->m_k052109);
563   k052109_tilemap_update(m_k052109);
565564
566   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE,0);
567   if ((state->m_tmnt_priorityflag & 1) == 1) k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 0, 0);
568   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 1, 0, 0);
569   if ((state->m_tmnt_priorityflag & 1) == 0) k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 0, 0);
570   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 0, 0, 0);
565   k052109_tilemap_draw(m_k052109, bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE,0);
566   if ((m_tmnt_priorityflag & 1) == 1) k051960_sprites_draw(m_k051960, bitmap, cliprect, 0, 0);
567   k052109_tilemap_draw(m_k052109, bitmap, cliprect, 1, 0, 0);
568   if ((m_tmnt_priorityflag & 1) == 0) k051960_sprites_draw(m_k051960, bitmap, cliprect, 0, 0);
569   k052109_tilemap_draw(m_k052109, bitmap, cliprect, 0, 0, 0);
571570
572571   return 0;
573572}
574573
575SCREEN_UPDATE_IND16( tmnt )
574UINT32 tmnt_state::screen_update_tmnt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
576575{
577   tmnt_state *state = screen.machine().driver_data<tmnt_state>();
578576
579   k052109_tilemap_update(state->m_k052109);
577   k052109_tilemap_update(m_k052109);
580578
581   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE,0);
582   if ((state->m_tmnt_priorityflag & 1) == 1) k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 0, 0);
583   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 1, 0, 0);
584   if ((state->m_tmnt_priorityflag & 1) == 0) k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 0, 0);
585   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 0, 0, 0);
579   k052109_tilemap_draw(m_k052109, bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE,0);
580   if ((m_tmnt_priorityflag & 1) == 1) k051960_sprites_draw(m_k051960, bitmap, cliprect, 0, 0);
581   k052109_tilemap_draw(m_k052109, bitmap, cliprect, 1, 0, 0);
582   if ((m_tmnt_priorityflag & 1) == 0) k051960_sprites_draw(m_k051960, bitmap, cliprect, 0, 0);
583   k052109_tilemap_draw(m_k052109, bitmap, cliprect, 0, 0, 0);
586584
587585   return 0;
588586}
589587
590588
591SCREEN_UPDATE_IND16( punkshot )
589UINT32 tmnt_state::screen_update_punkshot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
592590{
593   tmnt_state *state = screen.machine().driver_data<tmnt_state>();
594591
595   state->m_sprite_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI1);
596   state->m_layer_colorbase[0] = k053251_get_palette_index(state->m_k053251, K053251_CI2);
597   state->m_layer_colorbase[1] = k053251_get_palette_index(state->m_k053251, K053251_CI4);
598   state->m_layer_colorbase[2] = k053251_get_palette_index(state->m_k053251, K053251_CI3);
592   m_sprite_colorbase = k053251_get_palette_index(m_k053251, K053251_CI1);
593   m_layer_colorbase[0] = k053251_get_palette_index(m_k053251, K053251_CI2);
594   m_layer_colorbase[1] = k053251_get_palette_index(m_k053251, K053251_CI4);
595   m_layer_colorbase[2] = k053251_get_palette_index(m_k053251, K053251_CI3);
599596
600   k052109_tilemap_update(state->m_k052109);
597   k052109_tilemap_update(m_k052109);
601598
602   state->m_sorted_layer[0] = 0;
603   state->m_layerpri[0] = k053251_get_priority(state->m_k053251, K053251_CI2);
604   state->m_sorted_layer[1] = 1;
605   state->m_layerpri[1] = k053251_get_priority(state->m_k053251, K053251_CI4);
606   state->m_sorted_layer[2] = 2;
607   state->m_layerpri[2] = k053251_get_priority(state->m_k053251, K053251_CI3);
599   m_sorted_layer[0] = 0;
600   m_layerpri[0] = k053251_get_priority(m_k053251, K053251_CI2);
601   m_sorted_layer[1] = 1;
602   m_layerpri[1] = k053251_get_priority(m_k053251, K053251_CI4);
603   m_sorted_layer[2] = 2;
604   m_layerpri[2] = k053251_get_priority(m_k053251, K053251_CI3);
608605
609   konami_sortlayers3(state->m_sorted_layer, state->m_layerpri);
606   konami_sortlayers3(m_sorted_layer, m_layerpri);
610607
611608   screen.machine().priority_bitmap.fill(0, cliprect);
612   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, state->m_sorted_layer[0], TILEMAP_DRAW_OPAQUE, 1);
613   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, state->m_sorted_layer[1], 0, 2);
614   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, state->m_sorted_layer[2], 0, 4);
609   k052109_tilemap_draw(m_k052109, bitmap, cliprect, m_sorted_layer[0], TILEMAP_DRAW_OPAQUE, 1);
610   k052109_tilemap_draw(m_k052109, bitmap, cliprect, m_sorted_layer[1], 0, 2);
611   k052109_tilemap_draw(m_k052109, bitmap, cliprect, m_sorted_layer[2], 0, 4);
615612
616   k051960_sprites_draw(state->m_k051960, bitmap, cliprect, -1, -1);
613   k051960_sprites_draw(m_k051960, bitmap, cliprect, -1, -1);
617614   return 0;
618615}
619616
620617
621SCREEN_UPDATE_IND16( lgtnfght )
618UINT32 tmnt_state::screen_update_lgtnfght(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
622619{
623   tmnt_state *state = screen.machine().driver_data<tmnt_state>();
624620   int bg_colorbase;
625621
626   bg_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI0);
627   state->m_sprite_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI1);
628   state->m_layer_colorbase[0] = k053251_get_palette_index(state->m_k053251, K053251_CI2);
629   state->m_layer_colorbase[1] = k053251_get_palette_index(state->m_k053251, K053251_CI4);
630   state->m_layer_colorbase[2] = k053251_get_palette_index(state->m_k053251, K053251_CI3);
622   bg_colorbase = k053251_get_palette_index(m_k053251, K053251_CI0);
623   m_sprite_colorbase = k053251_get_palette_index(m_k053251, K053251_CI1);
624   m_layer_colorbase[0] = k053251_get_palette_index(m_k053251, K053251_CI2);
625   m_layer_colorbase[1] = k053251_get_palette_index(m_k053251, K053251_CI4);
626   m_layer_colorbase[2] = k053251_get_palette_index(m_k053251, K053251_CI3);
631627
632   k052109_tilemap_update(state->m_k052109);
628   k052109_tilemap_update(m_k052109);
633629
634   state->m_sorted_layer[0] = 0;
635   state->m_layerpri[0] = k053251_get_priority(state->m_k053251, K053251_CI2);
636   state->m_sorted_layer[1] = 1;
637   state->m_layerpri[1] = k053251_get_priority(state->m_k053251, K053251_CI4);
638   state->m_sorted_layer[2] = 2;
639   state->m_layerpri[2] = k053251_get_priority(state->m_k053251, K053251_CI3);
630   m_sorted_layer[0] = 0;
631   m_layerpri[0] = k053251_get_priority(m_k053251, K053251_CI2);
632   m_sorted_layer[1] = 1;
633   m_layerpri[1] = k053251_get_priority(m_k053251, K053251_CI4);
634   m_sorted_layer[2] = 2;
635   m_layerpri[2] = k053251_get_priority(m_k053251, K053251_CI3);
640636
641   konami_sortlayers3(state->m_sorted_layer, state->m_layerpri);
637   konami_sortlayers3(m_sorted_layer, m_layerpri);
642638
643639   screen.machine().priority_bitmap.fill(0, cliprect);
644640   bitmap.fill(16 * bg_colorbase, cliprect);
645   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, state->m_sorted_layer[0], 0, 1);
646   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, state->m_sorted_layer[1], 0, 2);
647   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, state->m_sorted_layer[2], 0, 4);
641   k052109_tilemap_draw(m_k052109, bitmap, cliprect, m_sorted_layer[0], 0, 1);
642   k052109_tilemap_draw(m_k052109, bitmap, cliprect, m_sorted_layer[1], 0, 2);
643   k052109_tilemap_draw(m_k052109, bitmap, cliprect, m_sorted_layer[2], 0, 4);
648644
649   k053245_sprites_draw(state->m_k053245, bitmap, cliprect);
645   k053245_sprites_draw(m_k053245, bitmap, cliprect);
650646   return 0;
651647}
652648
r17967r17968
664660      return m_glfgreat_pixel & 0xff;
665661}
666662
667SCREEN_UPDATE_IND16( glfgreat )
663UINT32 tmnt_state::screen_update_glfgreat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
668664{
669   tmnt_state *state = screen.machine().driver_data<tmnt_state>();
670665   int bg_colorbase;
671666
672   bg_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI0);
673   state->m_sprite_colorbase  = k053251_get_palette_index(state->m_k053251, K053251_CI1);
674   state->m_layer_colorbase[0] = k053251_get_palette_index(state->m_k053251, K053251_CI2);
675   state->m_layer_colorbase[1] = k053251_get_palette_index(state->m_k053251, K053251_CI3) + 8;   /* weird... */
676   state->m_layer_colorbase[2] = k053251_get_palette_index(state->m_k053251, K053251_CI4);
667   bg_colorbase = k053251_get_palette_index(m_k053251, K053251_CI0);
668   m_sprite_colorbase  = k053251_get_palette_index(m_k053251, K053251_CI1);
669   m_layer_colorbase[0] = k053251_get_palette_index(m_k053251, K053251_CI2);
670   m_layer_colorbase[1] = k053251_get_palette_index(m_k053251, K053251_CI3) + 8;   /* weird... */
671   m_layer_colorbase[2] = k053251_get_palette_index(m_k053251, K053251_CI4);
677672
678   k052109_tilemap_update(state->m_k052109);
673   k052109_tilemap_update(m_k052109);
679674
680   state->m_sorted_layer[0] = 0;
681   state->m_layerpri[0] = k053251_get_priority(state->m_k053251, K053251_CI2);
682   state->m_sorted_layer[1] = 1;
683   state->m_layerpri[1] = k053251_get_priority(state->m_k053251, K053251_CI3);
684   state->m_sorted_layer[2] = 2;
685   state->m_layerpri[2] = k053251_get_priority(state->m_k053251, K053251_CI4);
675   m_sorted_layer[0] = 0;
676   m_layerpri[0] = k053251_get_priority(m_k053251, K053251_CI2);
677   m_sorted_layer[1] = 1;
678   m_layerpri[1] = k053251_get_priority(m_k053251, K053251_CI3);
679   m_sorted_layer[2] = 2;
680   m_layerpri[2] = k053251_get_priority(m_k053251, K053251_CI4);
686681
687   konami_sortlayers3(state->m_sorted_layer, state->m_layerpri);
682   konami_sortlayers3(m_sorted_layer, m_layerpri);
688683
689684   /* not sure about the 053936 priority, but it seems to work */
690685
691686   screen.machine().priority_bitmap.fill(0, cliprect);
692687   bitmap.fill(16 * bg_colorbase, cliprect);
693   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, state->m_sorted_layer[0], 0, 1);
688   k052109_tilemap_draw(m_k052109, bitmap, cliprect, m_sorted_layer[0], 0, 1);
694689
695   if (state->m_layerpri[0] >= 0x30 && state->m_layerpri[1] < 0x30)
690   if (m_layerpri[0] >= 0x30 && m_layerpri[1] < 0x30)
696691   {
697      k053936_zoom_draw(state->m_k053936, bitmap, cliprect, state->m_roz_tilemap, 0, 1, 1);
698      state->m_glfgreat_pixel = bitmap.pix16(0x80, 0x105);
692      k053936_zoom_draw(m_k053936, bitmap, cliprect, m_roz_tilemap, 0, 1, 1);
693      m_glfgreat_pixel = bitmap.pix16(0x80, 0x105);
699694   }
700695
701   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, state->m_sorted_layer[1], 0, 2);
696   k052109_tilemap_draw(m_k052109, bitmap, cliprect, m_sorted_layer[1], 0, 2);
702697
703   if (state->m_layerpri[1] >= 0x30 && state->m_layerpri[2] < 0x30)
698   if (m_layerpri[1] >= 0x30 && m_layerpri[2] < 0x30)
704699   {
705      k053936_zoom_draw(state->m_k053936, bitmap, cliprect, state->m_roz_tilemap, 0, 1, 1);
706      state->m_glfgreat_pixel = bitmap.pix16(0x80, 0x105);
700      k053936_zoom_draw(m_k053936, bitmap, cliprect, m_roz_tilemap, 0, 1, 1);
701      m_glfgreat_pixel = bitmap.pix16(0x80, 0x105);
707702   }
708703
709   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, state->m_sorted_layer[2], 0, 4);
704   k052109_tilemap_draw(m_k052109, bitmap, cliprect, m_sorted_layer[2], 0, 4);
710705
711   if (state->m_layerpri[2] >= 0x30)
706   if (m_layerpri[2] >= 0x30)
712707   {
713      k053936_zoom_draw(state->m_k053936, bitmap, cliprect, state->m_roz_tilemap, 0, 1, 1);
714      state->m_glfgreat_pixel = bitmap.pix16(0x80, 0x105);
708      k053936_zoom_draw(m_k053936, bitmap, cliprect, m_roz_tilemap, 0, 1, 1);
709      m_glfgreat_pixel = bitmap.pix16(0x80, 0x105);
715710   }
716711
717   k053245_sprites_draw(state->m_k053245, bitmap, cliprect);
712   k053245_sprites_draw(m_k053245, bitmap, cliprect);
718713   return 0;
719714}
720715
721SCREEN_UPDATE_IND16( tmnt2 )
716UINT32 tmnt_state::screen_update_tmnt2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
722717{
723   tmnt_state *state = screen.machine().driver_data<tmnt_state>();
724718   double brt;
725719   int i, newdim, newen, cb, ce;
726720
727   newdim = state->m_dim_v | ((~state->m_dim_c & 0x10) >> 1);
728   newen  = (k053251_get_priority(state->m_k053251, 5) && k053251_get_priority(state->m_k053251, 5) != 0x3e);
721   newdim = m_dim_v | ((~m_dim_c & 0x10) >> 1);
722   newen  = (k053251_get_priority(m_k053251, 5) && k053251_get_priority(m_k053251, 5) != 0x3e);
729723
730   if (newdim != state->m_lastdim || newen != state->m_lasten)
724   if (newdim != m_lastdim || newen != m_lasten)
731725   {
732726      brt = 1.0;
733727      if (newen)
734728         brt -= (1.0 - PALETTE_DEFAULT_SHADOW_FACTOR) * newdim / 8;
735      state->m_lastdim = newdim;
736      state->m_lasten = newen;
729      m_lastdim = newdim;
730      m_lasten = newen;
737731
738732      /*
739733            Only affect the background and sprites, not text layer.
r17967r17968
744738        */
745739
746740      // find the text layer's palette range
747      cb = state->m_layer_colorbase[state->m_sorted_layer[2]] << 4;
741      cb = m_layer_colorbase[m_sorted_layer[2]] << 4;
748742      ce = cb + 128;
749743
750744      // dim all colors before it
r17967r17968
760754         palette_set_pen_contrast(screen.machine(), i, brt);
761755
762756      // toggle shadow/highlight
763      if (~state->m_dim_c & 0x10)
757      if (~m_dim_c & 0x10)
764758         palette_set_shadow_mode(screen.machine(), 1);
765759      else
766760         palette_set_shadow_mode(screen.machine(), 0);
767761   }
768762
769   SCREEN_UPDATE16_CALL(lgtnfght);
763   SCREEN_UPDATE16_CALL_MEMBER(lgtnfght);
770764   return 0;
771765}
772766
773767
774SCREEN_UPDATE_IND16( thndrx2 )
768UINT32 tmnt_state::screen_update_thndrx2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
775769{
776   tmnt_state *state = screen.machine().driver_data<tmnt_state>();
777770   int bg_colorbase;
778771
779   bg_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI0);
780   state->m_sprite_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI1);
781   state->m_layer_colorbase[0] = k053251_get_palette_index(state->m_k053251, K053251_CI2);
782   state->m_layer_colorbase[1] = k053251_get_palette_index(state->m_k053251, K053251_CI4);
783   state->m_layer_colorbase[2] = k053251_get_palette_index(state->m_k053251, K053251_CI3);
772   bg_colorbase = k053251_get_palette_index(m_k053251, K053251_CI0);
773   m_sprite_colorbase = k053251_get_palette_index(m_k053251, K053251_CI1);
774   m_layer_colorbase[0] = k053251_get_palette_index(m_k053251, K053251_CI2);
775   m_layer_colorbase[1] = k053251_get_palette_index(m_k053251, K053251_CI4);
776   m_layer_colorbase[2] = k053251_get_palette_index(m_k053251, K053251_CI3);
784777
785   k052109_tilemap_update(state->m_k052109);
778   k052109_tilemap_update(m_k052109);
786779
787   state->m_sorted_layer[0] = 0;
788   state->m_layerpri[0] = k053251_get_priority(state->m_k053251, K053251_CI2);
789   state->m_sorted_layer[1] = 1;
790   state->m_layerpri[1] = k053251_get_priority(state->m_k053251, K053251_CI4);
791   state->m_sorted_layer[2] = 2;
792   state->m_layerpri[2] = k053251_get_priority(state->m_k053251, K053251_CI3);
780   m_sorted_layer[0] = 0;
781   m_layerpri[0] = k053251_get_priority(m_k053251, K053251_CI2);
782   m_sorted_layer[1] = 1;
783   m_layerpri[1] = k053251_get_priority(m_k053251, K053251_CI4);
784   m_sorted_layer[2] = 2;
785   m_layerpri[2] = k053251_get_priority(m_k053251, K053251_CI3);
793786
794   konami_sortlayers3(state->m_sorted_layer, state->m_layerpri);
787   konami_sortlayers3(m_sorted_layer, m_layerpri);
795788
796789   screen.machine().priority_bitmap.fill(0, cliprect);
797790   bitmap.fill(16 * bg_colorbase, cliprect);
798   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, state->m_sorted_layer[0], 0, 1);
799   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, state->m_sorted_layer[1], 0, 2);
800   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, state->m_sorted_layer[2], 0, 4);
791   k052109_tilemap_draw(m_k052109, bitmap, cliprect, m_sorted_layer[0], 0, 1);
792   k052109_tilemap_draw(m_k052109, bitmap, cliprect, m_sorted_layer[1], 0, 2);
793   k052109_tilemap_draw(m_k052109, bitmap, cliprect, m_sorted_layer[2], 0, 4);
801794
802   k051960_sprites_draw(state->m_k051960, bitmap, cliprect, -1, -1);
795   k051960_sprites_draw(m_k051960, bitmap, cliprect, -1, -1);
803796   return 0;
804797}
805798
r17967r17968
811804
812805***************************************************************************/
813806
814SCREEN_VBLANK( blswhstl )
807void tmnt_state::screen_eof_blswhstl(screen_device &screen, bool state)
815808{
816809   // on rising edge
817   if (vblank_on)
810   if (state)
818811   {
819      tmnt_state *state = screen.machine().driver_data<tmnt_state>();
820      k053245_clear_buffer(state->m_k053245);
812      k053245_clear_buffer(m_k053245);
821813   }
822814}
trunk/src/mame/video/dc.c
r17967r17968
4848---- ---- ---- ---- xxxx xxxx ---- ---- Green
4949---- ---- ---- ---- ---- ---- xxxx xxxx Blue
5050*/
51#define vo_border_K ((state->pvrta_regs[VO_BORDER_COL] & 0x01000000) >> 24)
52#define vo_border_R ((state->pvrta_regs[VO_BORDER_COL] & 0x00ff0000) >> 16)
53#define vo_border_G ((state->pvrta_regs[VO_BORDER_COL] & 0x0000ff00) >> 8)
54#define vo_border_B ((state->pvrta_regs[VO_BORDER_COL] & 0x000000ff) >> 0)
51#define vo_border_K ((pvrta_regs[VO_BORDER_COL] & 0x01000000) >> 24)
52#define vo_border_R ((pvrta_regs[VO_BORDER_COL] & 0x00ff0000) >> 16)
53#define vo_border_G ((pvrta_regs[VO_BORDER_COL] & 0x0000ff00) >> 8)
54#define vo_border_B ((pvrta_regs[VO_BORDER_COL] & 0x000000ff) >> 0)
5555
5656/*
5757SPG_HBLANK
r17967r17968
9292#define spg_pclk_delay   ((state->pvrta_regs[VO_CONTROL] & 0x003f0000) >> 16)
9393#define spg_pixel_double ((state->pvrta_regs[VO_CONTROL] & 0x00000100) >> 8)
9494#define spg_field_mode   ((state->pvrta_regs[VO_CONTROL] & 0x000000f0) >> 4)
95#define spg_blank_video  ((state->pvrta_regs[VO_CONTROL] & 0x00000008) >> 3)
95#define spg_blank_video  ((pvrta_regs[VO_CONTROL] & 0x00000008) >> 3)
9696#define spg_blank_pol    ((state->pvrta_regs[VO_CONTROL] & 0x00000004) >> 2)
9797#define spg_vsync_pol    ((state->pvrta_regs[VO_CONTROL] & 0x00000002) >> 1)
9898#define spg_hsync_pol    ((state->pvrta_regs[VO_CONTROL] & 0x00000001) >> 0)
r17967r17968
26372637
26382638}
26392639
2640SCREEN_UPDATE_RGB32(dc)
2640UINT32 dc_state::screen_update_dc(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
26412641{
2642   dc_state *state = screen.machine().driver_data<dc_state>();
26432642
26442643   /******************
26452644      MAME note
r17967r17968
26812680      pvr_drawframebuffer(screen.machine(),bitmap,cliprect);
26822681
26832682   // update this here so we only do string lookup once per frame
2684   state->debug_dip_status = screen.machine().root_device().ioport("MAMEDEBUG")->read();
2683   debug_dip_status = screen.machine().root_device().ioport("MAMEDEBUG")->read();
26852684
26862685   return 0;
26872686}
trunk/src/mame/video/taxidriv.c
r17967r17968
99
1010
1111
12SCREEN_UPDATE_IND16( taxidriv )
12UINT32 taxidriv_state::screen_update_taxidriv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
1313{
14   taxidriv_state *state = screen.machine().driver_data<taxidriv_state>();
1514   int offs;
1615   int sx,sy;
1716
1817
19   if (state->m_bghide)
18   if (m_bghide)
2019   {
2120      bitmap.fill(0, cliprect);
2221
2322
2423      /* kludge to fix scroll after death */
25      state->m_scroll[0] = state->m_scroll[1] = state->m_scroll[2] = state->m_scroll[3] = 0;
26      state->m_spritectrl[2] = state->m_spritectrl[5] = state->m_spritectrl[8] = 0;
24      m_scroll[0] = m_scroll[1] = m_scroll[2] = m_scroll[3] = 0;
25      m_spritectrl[2] = m_spritectrl[5] = m_spritectrl[8] = 0;
2726   }
2827   else
2928   {
r17967r17968
3332         sy = offs / 32;
3433
3534         drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[3],
36               state->m_vram3[offs],
35               m_vram3[offs],
3736               0,
3837               0,0,
39               (sx*8-state->m_scroll[0])&0xff,(sy*8-state->m_scroll[1])&0xff);
38               (sx*8-m_scroll[0])&0xff,(sy*8-m_scroll[1])&0xff);
4039      }
4140
4241      for (offs = 0;offs < 0x400;offs++)
r17967r17968
4544         sy = offs / 32;
4645
4746         drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[2],
48               state->m_vram2[offs]+256*state->m_vram2[offs+0x400],
47               m_vram2[offs]+256*m_vram2[offs+0x400],
4948               0,
5049               0,0,
51               (sx*8-state->m_scroll[2])&0xff,(sy*8-state->m_scroll[3])&0xff,0);
50               (sx*8-m_scroll[2])&0xff,(sy*8-m_scroll[3])&0xff,0);
5251      }
5352
54      if (state->m_spritectrl[2] & 4)
53      if (m_spritectrl[2] & 4)
5554      {
5655         for (offs = 0;offs < 0x1000;offs++)
5756         {
5857            int color;
5958
60            sx = ((offs/2) % 64-state->m_spritectrl[0]-256*(state->m_spritectrl[2]&1))&0x1ff;
61            sy = ((offs/2) / 64-state->m_spritectrl[1]-128*(state->m_spritectrl[2]&2))&0x1ff;
59            sx = ((offs/2) % 64-m_spritectrl[0]-256*(m_spritectrl[2]&1))&0x1ff;
60            sy = ((offs/2) / 64-m_spritectrl[1]-128*(m_spritectrl[2]&2))&0x1ff;
6261
63            color = (state->m_vram5[offs/4]>>(2*(offs&3)))&0x03;
62            color = (m_vram5[offs/4]>>(2*(offs&3)))&0x03;
6463            if (color)
6564            {
6665               if (sx > 0 && sx < 256 && sy > 0 && sy < 256)
r17967r17968
6968         }
7069      }
7170
72      if (state->m_spritectrl[5] & 4)
71      if (m_spritectrl[5] & 4)
7372      {
7473         for (offs = 0;offs < 0x1000;offs++)
7574         {
7675            int color;
7776
78            sx = ((offs/2) % 64-state->m_spritectrl[3]-256*(state->m_spritectrl[5]&1))&0x1ff;
79            sy = ((offs/2) / 64-state->m_spritectrl[4]-128*(state->m_spritectrl[5]&2))&0x1ff;
77            sx = ((offs/2) % 64-m_spritectrl[3]-256*(m_spritectrl[5]&1))&0x1ff;
78            sy = ((offs/2) / 64-m_spritectrl[4]-128*(m_spritectrl[5]&2))&0x1ff;
8079
81            color = (state->m_vram6[offs/4]>>(2*(offs&3)))&0x03;
80            color = (m_vram6[offs/4]>>(2*(offs&3)))&0x03;
8281            if (color)
8382            {
8483               if (sx > 0 && sx < 256 && sy > 0 && sy < 256)
r17967r17968
8786         }
8887      }
8988
90      if (state->m_spritectrl[8] & 4)
89      if (m_spritectrl[8] & 4)
9190      {
9291         for (offs = 0;offs < 0x1000;offs++)
9392         {
9493            int color;
9594
96            sx = ((offs/2) % 64-state->m_spritectrl[6]-256*(state->m_spritectrl[8]&1))&0x1ff;
97            sy = ((offs/2) / 64-state->m_spritectrl[7]-128*(state->m_spritectrl[8]&2))&0x1ff;
95            sx = ((offs/2) % 64-m_spritectrl[6]-256*(m_spritectrl[8]&1))&0x1ff;
96            sy = ((offs/2) / 64-m_spritectrl[7]-128*(m_spritectrl[8]&2))&0x1ff;
9897
99            color = (state->m_vram7[offs/4]>>(2*(offs&3)))&0x03;
98            color = (m_vram7[offs/4]>>(2*(offs&3)))&0x03;
10099            if (color)
101100            {
102101               if (sx > 0 && sx < 256 && sy > 0 && sy < 256)
r17967r17968
111110         sy = offs / 32;
112111
113112         drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[1],
114               state->m_vram1[offs],
113               m_vram1[offs],
115114               0,
116115               0,0,
117116               sx*8,sy*8,0);
r17967r17968
124123         sx = (offs/2) % 64;
125124         sy = (offs/2) / 64;
126125
127         color = (state->m_vram4[offs/4]>>(2*(offs&3)))&0x03;
126         color = (m_vram4[offs/4]>>(2*(offs&3)))&0x03;
128127         if (color)
129128         {
130129            bitmap.pix16(sy, sx) = 2 * color;
r17967r17968
138137      sy = offs / 32;
139138
140139      drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[0],
141            state->m_vram0[offs],
140            m_vram0[offs],
142141            0,
143142            0,0,
144143            sx*8,sy*8,0);
trunk/src/mame/video/taitojc.c
r17967r17968
329329   m_renderer = auto_alloc(machine(), taitojc_renderer(machine(), &m_framebuffer, &m_zbuffer, m_texture));
330330}
331331
332SCREEN_UPDATE_IND16( taitojc )
332UINT32 taitojc_state::screen_update_taitojc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
333333{
334   taitojc_state *state = screen.machine().driver_data<taitojc_state>();
335334
336335   bitmap.fill(0, cliprect);
337336
r17967r17968
341340   draw_object_bank(screen.machine(), bitmap, cliprect, 2, 0);
342341
343342   // 3D layer
344   copybitmap_trans(bitmap, state->m_framebuffer, 0, 0, 0, 0, cliprect, 0);
343   copybitmap_trans(bitmap, m_framebuffer, 0, 0, 0, 0, cliprect, 0);
345344
346345   // high priority objects
347346   draw_object_bank(screen.machine(), bitmap, cliprect, 0, 1);
r17967r17968
349348   draw_object_bank(screen.machine(), bitmap, cliprect, 2, 1);
350349
351350   // text layer
352   if (state->m_objlist[0xfc4/4] & 0x10000)
353      state->m_tilemap->draw(bitmap, cliprect, 0, 0);
351   if (m_objlist[0xfc4/4] & 0x10000)
352      m_tilemap->draw(bitmap, cliprect, 0, 0);
354353
355354   return 0;
356355}
357356
358SCREEN_UPDATE_IND16( dendego )
357UINT32 taitojc_state::screen_update_dendego(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
359358{
360   taitojc_state *state = screen.machine().driver_data<taitojc_state>();
361359
362360   // update controller state in artwork
363   UINT8 btn = (state->ioport("BUTTONS")->read() & 0x77);
361   UINT8 btn = (ioport("BUTTONS")->read() & 0x77);
364362   int level;
365363   for (level = 5; level > 0; level--)
366364      if (btn == dendego_mascon_table[level]) break;
r17967r17968
368366   if (level != output_get_value("counter0"))
369367      output_set_value("counter0", level);
370368
371   btn = (state->ioport("ANALOG1")->read() & 0xff);
369   btn = (ioport("ANALOG1")->read() & 0xff);
372370   for (level = 10; level > 0; level--)
373371      if (btn >= dendego_brake_table[level]) break;
374372
375373   if (level != output_get_value("counter1"))
376374      output_set_value("counter1", level);
377375
378   return SCREEN_UPDATE16_CALL(taitojc);
376   return SCREEN_UPDATE16_CALL_MEMBER(taitojc);
379377}
380378
381379
trunk/src/mame/video/pitnrun.c
r17967r17968
207207   }
208208}
209209
210SCREEN_UPDATE_IND16( pitnrun )
210UINT32 pitnrun_state::screen_update_pitnrun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
211211{
212   pitnrun_state *state = screen.machine().driver_data<pitnrun_state>();
213212   int dx=0,dy=0;
214213   rectangle myclip=cliprect;
215214
216215#ifdef MAME_DEBUG
217216   if (screen.machine().input().code_pressed_once(KEYCODE_Q))
218217   {
219      UINT8 *ROM = state->memregion("maincpu")->base();
218      UINT8 *ROM = memregion("maincpu")->base();
220219      ROM[0x84f6]=0; /* lap 0 - normal */
221220   }
222221
r17967r17968
236235
237236   bitmap.fill(0, cliprect);
238237
239   if(!(state->m_ha&4))
240      state->m_bg->draw(bitmap, cliprect, 0,0);
238   if(!(m_ha&4))
239      m_bg->draw(bitmap, cliprect, 0,0);
241240   else
242241   {
243      dx=128-state->m_h_heed+((state->m_ha&8)<<5)+3;
244      dy=128-state->m_v_heed+((state->m_ha&0x10)<<4);
242      dx=128-m_h_heed+((m_ha&8)<<5)+3;
243      dy=128-m_v_heed+((m_ha&0x10)<<4);
245244
246      if (state->flip_screen_x())
245      if (flip_screen_x())
247246         dx=128-dx+16;
248247
249      if (state->flip_screen_y())
248      if (flip_screen_y())
250249         dy=128-dy;
251250
252251      myclip.set(dx, dx+127, dy, dy+127);
253252      myclip &= cliprect;
254253
255      state->m_bg->draw(bitmap, myclip, 0,0);
254      m_bg->draw(bitmap, myclip, 0,0);
256255   }
257256
258257   draw_sprites(screen.machine(),bitmap,myclip);
259258
260   if(state->m_ha&4)
261      copybitmap_trans(bitmap,*state->m_tmp_bitmap[state->m_ha&3],state->flip_screen_x(),state->flip_screen_y(),dx,dy,myclip, 1);
262   state->m_fg->draw(bitmap, cliprect, 0,0);
259   if(m_ha&4)
260      copybitmap_trans(bitmap,*m_tmp_bitmap[m_ha&3],flip_screen_x(),flip_screen_y(),dx,dy,myclip, 1);
261   m_fg->draw(bitmap, cliprect, 0,0);
263262   return 0;
264263}
265264
trunk/src/mame/video/midzeus2.c
r17967r17968
357357 *
358358 *************************************/
359359
360SCREEN_UPDATE_RGB32( midzeus2 )
360UINT32 midzeus_state::screen_update_midzeus2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
361361{
362362   int x, y;
363363
r17967r17968
369369   /* normal update case */
370370   if (!screen.machine().input().code_pressed(KEYCODE_W))
371371   {
372      midzeus_state *state = screen.machine().driver_data<midzeus_state>();
373      const void *base = waveram1_ptr_from_expanded_addr(state->m_zeusbase[0x38]);
372      const void *base = waveram1_ptr_from_expanded_addr(m_zeusbase[0x38]);
374373      int xoffs = screen.visible_area().min_x;
375374      for (y = cliprect.min_y; y <= cliprect.max_y; y++)
376375      {
trunk/src/mame/video/tehkanwc.c
r17967r17968
154154   }
155155}
156156
157SCREEN_UPDATE_IND16( tehkanwc )
157UINT32 tehkanwc_state::screen_update_tehkanwc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
158158{
159   tehkanwc_state *state = screen.machine().driver_data<tehkanwc_state>();
160   state->m_bg_tilemap->set_scrollx(0, state->m_scroll_x[0] + 256 * state->m_scroll_x[1]);
161   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
162   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
159   m_bg_tilemap->set_scrollx(0, m_scroll_x[0] + 256 * m_scroll_x[1]);
160   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
161   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
163162   draw_sprites(screen.machine(), bitmap, cliprect);
164   state->m_fg_tilemap->draw(bitmap, cliprect, 1, 0);
165   gridiron_draw_led(screen.machine(), bitmap, cliprect, state->m_led0, 0);
166   gridiron_draw_led(screen.machine(), bitmap, cliprect, state->m_led1, 1);
163   m_fg_tilemap->draw(bitmap, cliprect, 1, 0);
164   gridiron_draw_led(screen.machine(), bitmap, cliprect, m_led0, 0);
165   gridiron_draw_led(screen.machine(), bitmap, cliprect, m_led1, 1);
167166   return 0;
168167}
trunk/src/mame/video/bionicc.c
r17967r17968
236236   }
237237}
238238
239SCREEN_UPDATE_IND16( bionicc )
239UINT32 bionicc_state::screen_update_bionicc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
240240{
241   bionicc_state *state = screen.machine().driver_data<bionicc_state>();
242241
243242   bitmap.fill(get_black_pen(screen.machine()), cliprect);
244   state->m_fg_tilemap->draw(bitmap, cliprect, 1 | TILEMAP_DRAW_LAYER1, 0);   /* nothing in FRONT */
245   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
246   state->m_fg_tilemap->draw(bitmap, cliprect, 0 | TILEMAP_DRAW_LAYER1, 0);
243   m_fg_tilemap->draw(bitmap, cliprect, 1 | TILEMAP_DRAW_LAYER1, 0);   /* nothing in FRONT */
244   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
245   m_fg_tilemap->draw(bitmap, cliprect, 0 | TILEMAP_DRAW_LAYER1, 0);
247246   draw_sprites(screen.machine(), bitmap, cliprect);
248   state->m_fg_tilemap->draw(bitmap, cliprect, 0 | TILEMAP_DRAW_LAYER0, 0);
249   state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
247   m_fg_tilemap->draw(bitmap, cliprect, 0 | TILEMAP_DRAW_LAYER0, 0);
248   m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
250249   return 0;
251250}
trunk/src/mame/video/citycon.c
r17967r17968
135135   palette_set_color_rgb(machine, color, pal4bit(data >> 12), pal4bit(data >> 8), pal4bit(data >> 4));
136136}
137137
138SCREEN_UPDATE_IND16( citycon )
138UINT32 citycon_state::screen_update_citycon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
139139{
140   citycon_state *state = screen.machine().driver_data<citycon_state>();
141140   int offs, scroll;
142141
143142   /* Update the virtual palette to support text color code changing on every scanline. */
144143   for (offs = 0; offs < 256; offs++)
145144   {
146      int indx = state->m_linecolor[offs];
145      int indx = m_linecolor[offs];
147146      int i;
148147
149148      for (i = 0; i < 4; i++)
r17967r17968
151150   }
152151
153152
154   scroll = state->m_scroll[0] * 256 + state->m_scroll[1];
155   state->m_bg_tilemap->set_scrollx(0, scroll >> 1);
153   scroll = m_scroll[0] * 256 + m_scroll[1];
154   m_bg_tilemap->set_scrollx(0, scroll >> 1);
156155   for (offs = 6; offs < 32; offs++)
157      state->m_fg_tilemap->set_scrollx(offs, scroll);
156      m_fg_tilemap->set_scrollx(offs, scroll);
158157
159   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
160   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
158   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
159   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
161160   draw_sprites(screen.machine(), bitmap, cliprect);
162161   return 0;
163162}
trunk/src/mame/video/suprridr.c
r17967r17968
157157 *
158158 *************************************/
159159
160SCREEN_UPDATE_IND16( suprridr )
160UINT32 suprridr_state::screen_update_suprridr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
161161{
162   suprridr_state *state = screen.machine().driver_data<suprridr_state>();
163   UINT8 *spriteram = state->m_spriteram;
162   UINT8 *spriteram = m_spriteram;
164163   rectangle subclip;
165164   int i;
166165   const rectangle &visarea = screen.visible_area();
167166
168167   /* render left 4 columns with no scroll */
169168   subclip = visarea;;
170   subclip.max_x = subclip.min_x + (state->m_flipx ? 1*8 : 4*8) - 1;
169   subclip.max_x = subclip.min_x + (m_flipx ? 1*8 : 4*8) - 1;
171170   subclip &= cliprect;
172   state->m_bg_tilemap_noscroll->draw(bitmap, subclip, 0, 0);
171   m_bg_tilemap_noscroll->draw(bitmap, subclip, 0, 0);
173172
174173   /* render right 1 column with no scroll */
175174   subclip = visarea;;
176   subclip.min_x = subclip.max_x - (state->m_flipx ? 4*8 : 1*8) + 1;
175   subclip.min_x = subclip.max_x - (m_flipx ? 4*8 : 1*8) + 1;
177176   subclip &= cliprect;
178   state->m_bg_tilemap_noscroll->draw(bitmap, subclip, 0, 0);
177   m_bg_tilemap_noscroll->draw(bitmap, subclip, 0, 0);
179178
180179   /* render the middle columns normally */
181180   subclip = visarea;;
182   subclip.min_x += state->m_flipx ? 1*8 : 4*8;
183   subclip.max_x -= state->m_flipx ? 4*8 : 1*8;
181   subclip.min_x += m_flipx ? 1*8 : 4*8;
182   subclip.max_x -= m_flipx ? 4*8 : 1*8;
184183   subclip &= cliprect;
185   state->m_bg_tilemap->draw(bitmap, subclip, 0, 0);
184   m_bg_tilemap->draw(bitmap, subclip, 0, 0);
186185
187186   /* render the top layer */
188   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
187   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
189188
190189   /* draw the sprites */
191190   for (i = 0; i < 48; i++)
r17967r17968
197196      int x = spriteram[i*4+3];
198197      int y = 240 - spriteram[i*4+0];
199198
200      if (state->m_flipx)
199      if (m_flipx)
201200      {
202201         fx = !fx;
203202         x = 240 - x;
204203      }
205      if (state->m_flipy)
204      if (m_flipy)
206205      {
207206         fy = !fy;
208207         y = 240 - y;
trunk/src/mame/video/spy.c
r17967r17968
6161
6262***************************************************************************/
6363
64SCREEN_UPDATE_IND16( spy )
64UINT32 spy_state::screen_update_spy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
6565{
66   spy_state *state = screen.machine().driver_data<spy_state>();
6766
68   k052109_tilemap_update(state->m_k052109);
67   k052109_tilemap_update(m_k052109);
6968
7069   screen.machine().priority_bitmap.fill(0, cliprect);
7170
72   if (!state->m_video_enable)
73      bitmap.fill(16 * state->m_layer_colorbase[0], cliprect);
71   if (!m_video_enable)
72      bitmap.fill(16 * m_layer_colorbase[0], cliprect);
7473   else
7574   {
76      k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 1);
77      k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 2, 0, 2);
78      k051960_sprites_draw(state->m_k051960, bitmap, cliprect, -1, -1);
79      k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 0, 0, 0);
75      k052109_tilemap_draw(m_k052109, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 1);
76      k052109_tilemap_draw(m_k052109, bitmap, cliprect, 2, 0, 2);
77      k051960_sprites_draw(m_k051960, bitmap, cliprect, -1, -1);
78      k052109_tilemap_draw(m_k052109, bitmap, cliprect, 0, 0, 0);
8079   }
8180
8281   return 0;
trunk/src/mame/video/psikyo.c
r17967r17968
515515      return 0x10 * 16;
516516}
517517
518SCREEN_UPDATE_IND16( psikyo )
518UINT32 psikyo_state::screen_update_psikyo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
519519{
520   psikyo_state *state = screen.machine().driver_data<psikyo_state>();
521520   int i, layers_ctrl = -1;
522521
523522   UINT32 tm0size, tm1size;
524523
525524   UINT32 layer0_scrollx, layer0_scrolly;
526525   UINT32 layer1_scrollx, layer1_scrolly;
527   UINT32 layer0_ctrl = state->m_vregs[0x412 / 4];
528   UINT32 layer1_ctrl = state->m_vregs[0x416 / 4];
529   UINT32 spr_ctrl = state->m_spritebuf2[0x1ffe / 4];
526   UINT32 layer0_ctrl = m_vregs[0x412 / 4];
527   UINT32 layer1_ctrl = m_vregs[0x416 / 4];
528   UINT32 spr_ctrl = m_spritebuf2[0x1ffe / 4];
530529
531530   tilemap_t *tmptilemap0, *tmptilemap1;
532531
533   state->flip_screen_set(~screen.machine().root_device().ioport("DSW")->read() & 0x00010000);      // hardwired to a DSW bit
532   flip_screen_set(~screen.machine().root_device().ioport("DSW")->read() & 0x00010000);      // hardwired to a DSW bit
534533
535534   /* Layers enable (not quite right) */
536535
r17967r17968
563562*/
564563
565564   /* For gfx banking for s1945jn/gunbird/btlkroad */
566   if (state->m_ka302c_banking)
565   if (m_ka302c_banking)
567566   {
568567      psikyo_switch_banks(screen.machine(), 0, (layer0_ctrl & 0x400) >> 10);
569568      psikyo_switch_banks(screen.machine(), 1, (layer1_ctrl & 0x400) >> 10);
r17967r17968
586585   }
587586
588587   if (tm0size == 0)
589      tmptilemap0 = state->m_tilemap_0_size0;
588      tmptilemap0 = m_tilemap_0_size0;
590589   else if (tm0size == 1)
591      tmptilemap0 = state->m_tilemap_0_size1;
590      tmptilemap0 = m_tilemap_0_size1;
592591   else if (tm0size == 2)
593      tmptilemap0 = state->m_tilemap_0_size2;
592      tmptilemap0 = m_tilemap_0_size2;
594593   else
595      tmptilemap0 = state->m_tilemap_0_size3;
594      tmptilemap0 = m_tilemap_0_size3;
596595
597596   if (tm1size == 0)
598      tmptilemap1 = state->m_tilemap_1_size0;
597      tmptilemap1 = m_tilemap_1_size0;
599598   else if (tm1size == 1)
600      tmptilemap1 = state->m_tilemap_1_size1;
599      tmptilemap1 = m_tilemap_1_size1;
601600   else if (tm1size == 2)
602      tmptilemap1 = state->m_tilemap_1_size2;
601      tmptilemap1 = m_tilemap_1_size2;
603602   else
604      tmptilemap1 = state->m_tilemap_1_size3;
603      tmptilemap1 = m_tilemap_1_size3;
605604
606605   tmptilemap0->enable(~layer0_ctrl & 1);
607606   tmptilemap1->enable(~layer1_ctrl & 1);
608607
609608   /* Layers scrolling */
610609
611   layer0_scrolly = state->m_vregs[0x402 / 4];
612   layer0_scrollx = state->m_vregs[0x406 / 4];
613   layer1_scrolly = state->m_vregs[0x40a / 4];
614   layer1_scrollx = state->m_vregs[0x40e / 4];
610   layer0_scrolly = m_vregs[0x402 / 4];
611   layer0_scrollx = m_vregs[0x406 / 4];
612   layer1_scrolly = m_vregs[0x40a / 4];
613   layer1_scrollx = m_vregs[0x40e / 4];
615614
616615   tmptilemap0->set_scrolly(0, layer0_scrolly);
617616
r17967r17968
626625      {
627626         if (layer0_ctrl & 0x0200)
628627            /* per-tile rowscroll */
629            x0 = ((UINT16 *)state->m_vregs.target())[BYTE_XOR_BE(0x000/2 + i/16)];
628            x0 = ((UINT16 *)m_vregs.target())[BYTE_XOR_BE(0x000/2 + i/16)];
630629         else
631630            /* per-line rowscroll */
632            x0 = ((UINT16 *)state->m_vregs.target())[BYTE_XOR_BE(0x000/2 + i)];
631            x0 = ((UINT16 *)m_vregs.target())[BYTE_XOR_BE(0x000/2 + i)];
633632      }
634633
635634
r17967r17968
643642      {
644643         if (layer1_ctrl & 0x0200)
645644            /* per-tile rowscroll */
646            x1 = ((UINT16 *)state->m_vregs.target())[BYTE_XOR_BE(0x200/2 + i/16)];
645            x1 = ((UINT16 *)m_vregs.target())[BYTE_XOR_BE(0x200/2 + i/16)];
647646         else
648647            /* per-line rowscroll */
649            x1 = ((UINT16 *)state->m_vregs.target())[BYTE_XOR_BE(0x200/2 + i)];
648            x1 = ((UINT16 *)m_vregs.target())[BYTE_XOR_BE(0x200/2 + i)];
650649      }
651650
652651
r17967r17968
655654         layer1_scrollx + x1 );
656655   }
657656
658   state->m_tilemap_0_size0->set_transparent_pen((layer0_ctrl & 8 ? 0 : 15));
659   state->m_tilemap_0_size1->set_transparent_pen((layer0_ctrl & 8 ? 0 : 15));
660   state->m_tilemap_0_size2->set_transparent_pen((layer0_ctrl & 8 ? 0 : 15));
661   state->m_tilemap_0_size3->set_transparent_pen((layer0_ctrl & 8 ? 0 : 15));
657   m_tilemap_0_size0->set_transparent_pen((layer0_ctrl & 8 ? 0 : 15));
658   m_tilemap_0_size1->set_transparent_pen((layer0_ctrl & 8 ? 0 : 15));
659   m_tilemap_0_size2->set_transparent_pen((layer0_ctrl & 8 ? 0 : 15));
660   m_tilemap_0_size3->set_transparent_pen((layer0_ctrl & 8 ? 0 : 15));
662661
663   state->m_tilemap_1_size0->set_transparent_pen((layer1_ctrl & 8 ? 0 : 15));
664   state->m_tilemap_1_size1->set_transparent_pen((layer1_ctrl & 8 ? 0 : 15));
665   state->m_tilemap_1_size2->set_transparent_pen((layer1_ctrl & 8 ? 0 : 15));
666   state->m_tilemap_1_size3->set_transparent_pen((layer1_ctrl & 8 ? 0 : 15));
662   m_tilemap_1_size0->set_transparent_pen((layer1_ctrl & 8 ? 0 : 15));
663   m_tilemap_1_size1->set_transparent_pen((layer1_ctrl & 8 ? 0 : 15));
664   m_tilemap_1_size2->set_transparent_pen((layer1_ctrl & 8 ? 0 : 15));
665   m_tilemap_1_size3->set_transparent_pen((layer1_ctrl & 8 ? 0 : 15));
667666
668667   bitmap.fill(get_black_pen(screen.machine()), cliprect);
669668
r17967r17968
689688
690689*/
691690
692SCREEN_UPDATE_IND16( psikyo_bootleg )
691UINT32 psikyo_state::screen_update_psikyo_bootleg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
693692{
694   psikyo_state *state = screen.machine().driver_data<psikyo_state>();
695693   int i, layers_ctrl = -1;
696694
697695   UINT32 tm0size, tm1size;
698696
699697   UINT32 layer0_scrollx, layer0_scrolly;
700698   UINT32 layer1_scrollx, layer1_scrolly;
701   UINT32 layer0_ctrl = state->m_vregs[0x412 / 4];
702   UINT32 layer1_ctrl = state->m_vregs[0x416 / 4];
703   UINT32 spr_ctrl = state->m_spritebuf2[0x1ffe / 4];
699   UINT32 layer0_ctrl = m_vregs[0x412 / 4];
700   UINT32 layer1_ctrl = m_vregs[0x416 / 4];
701   UINT32 spr_ctrl = m_spritebuf2[0x1ffe / 4];
704702
705703   tilemap_t *tmptilemap0, *tmptilemap1;
706704
707   state->flip_screen_set(~screen.machine().root_device().ioport("DSW")->read() & 0x00010000);      // hardwired to a DSW bit
705   flip_screen_set(~screen.machine().root_device().ioport("DSW")->read() & 0x00010000);      // hardwired to a DSW bit
708706
709707   /* Layers enable (not quite right) */
710708
r17967r17968
737735*/
738736
739737   /* For gfx banking for s1945jn/gunbird/btlkroad */
740   if (state->m_ka302c_banking)
738   if (m_ka302c_banking)
741739   {
742740      psikyo_switch_banks(screen.machine(), 0, (layer0_ctrl & 0x400) >> 10);
743741      psikyo_switch_banks(screen.machine(), 1, (layer1_ctrl & 0x400) >> 10);
r17967r17968
760758   }
761759
762760   if (tm0size == 0)
763      tmptilemap0 = state->m_tilemap_0_size0;
761      tmptilemap0 = m_tilemap_0_size0;
764762   else if (tm0size == 1)
765      tmptilemap0 = state->m_tilemap_0_size1;
763      tmptilemap0 = m_tilemap_0_size1;
766764   else if (tm0size == 2)
767      tmptilemap0 = state->m_tilemap_0_size2;
765      tmptilemap0 = m_tilemap_0_size2;
768766   else
769      tmptilemap0 = state->m_tilemap_0_size3;
767      tmptilemap0 = m_tilemap_0_size3;
770768
771769   if (tm1size == 0)
772      tmptilemap1 = state->m_tilemap_1_size0;
770      tmptilemap1 = m_tilemap_1_size0;
773771   else if (tm1size == 1)
774      tmptilemap1 = state->m_tilemap_1_size1;
772      tmptilemap1 = m_tilemap_1_size1;
775773   else if (tm1size == 2)
776      tmptilemap1 = state->m_tilemap_1_size2;
774      tmptilemap1 = m_tilemap_1_size2;
777775   else
778      tmptilemap1 = state->m_tilemap_1_size3;
776      tmptilemap1 = m_tilemap_1_size3;
779777
780778   tmptilemap0->enable(~layer0_ctrl & 1);
781779   tmptilemap1->enable(~layer1_ctrl & 1);
782780
783781   /* Layers scrolling */
784782
785   layer0_scrolly = state->m_vregs[0x402 / 4];
786   layer0_scrollx = state->m_vregs[0x406 / 4];
787   layer1_scrolly = state->m_vregs[0x40a / 4];
788   layer1_scrollx = state->m_vregs[0x40e / 4];
783   layer0_scrolly = m_vregs[0x402 / 4];
784   layer0_scrollx = m_vregs[0x406 / 4];
785   layer1_scrolly = m_vregs[0x40a / 4];
786   layer1_scrollx = m_vregs[0x40e / 4];
789787
790788   tmptilemap0->set_scrolly(0, layer0_scrolly);
791789
r17967r17968
800798      {
801799         if (layer0_ctrl & 0x0200)
802800            /* per-tile rowscroll */
803            x0 = ((UINT16 *)state->m_vregs.target())[BYTE_XOR_BE(0x000/2 + i/16)];
801            x0 = ((UINT16 *)m_vregs.target())[BYTE_XOR_BE(0x000/2 + i/16)];
804802         else
805803            /* per-line rowscroll */
806            x0 = ((UINT16 *)state->m_vregs.target())[BYTE_XOR_BE(0x000/2 + i)];
804            x0 = ((UINT16 *)m_vregs.target())[BYTE_XOR_BE(0x000/2 + i)];
807805      }
808806
809807
r17967r17968
817815      {
818816         if (layer1_ctrl & 0x0200)
819817            /* per-tile rowscroll */
820            x1 = ((UINT16 *)state->m_vregs.target())[BYTE_XOR_BE(0x200/2 + i/16)];
818            x1 = ((UINT16 *)m_vregs.target())[BYTE_XOR_BE(0x200/2 + i/16)];
821819         else
822820            /* per-line rowscroll */
823            x1 = ((UINT16 *)state->m_vregs.target())[BYTE_XOR_BE(0x200/2 + i)];
821            x1 = ((UINT16 *)m_vregs.target())[BYTE_XOR_BE(0x200/2 + i)];
824822      }
825823
826824
r17967r17968
829827         layer1_scrollx + x1 );
830828   }
831829
832   state->m_tilemap_0_size0->set_transparent_pen((layer0_ctrl & 8 ? 0 : 15));
833   state->m_tilemap_0_size1->set_transparent_pen((layer0_ctrl & 8 ? 0 : 15));
834   state->m_tilemap_0_size2->set_transparent_pen((layer0_ctrl & 8 ? 0 : 15));
835   state->m_tilemap_0_size3->set_transparent_pen((layer0_ctrl & 8 ? 0 : 15));
830   m_tilemap_0_size0->set_transparent_pen((layer0_ctrl & 8 ? 0 : 15));
831   m_tilemap_0_size1->set_transparent_pen((layer0_ctrl & 8 ? 0 : 15));
832   m_tilemap_0_size2->set_transparent_pen((layer0_ctrl & 8 ? 0 : 15));
833   m_tilemap_0_size3->set_transparent_pen((layer0_ctrl & 8 ? 0 : 15));
836834
837   state->m_tilemap_1_size0->set_transparent_pen((layer1_ctrl & 8 ? 0 : 15));
838   state->m_tilemap_1_size1->set_transparent_pen((layer1_ctrl & 8 ? 0 : 15));
839   state->m_tilemap_1_size2->set_transparent_pen((layer1_ctrl & 8 ? 0 : 15));
840   state->m_tilemap_1_size3->set_transparent_pen((layer1_ctrl & 8 ? 0 : 15));
835   m_tilemap_1_size0->set_transparent_pen((layer1_ctrl & 8 ? 0 : 15));
836   m_tilemap_1_size1->set_transparent_pen((layer1_ctrl & 8 ? 0 : 15));
837   m_tilemap_1_size2->set_transparent_pen((layer1_ctrl & 8 ? 0 : 15));
838   m_tilemap_1_size3->set_transparent_pen((layer1_ctrl & 8 ? 0 : 15));
841839
842840   bitmap.fill(get_black_pen(screen.machine()), cliprect);
843841
r17967r17968
856854}
857855
858856
859SCREEN_VBLANK( psikyo )
857void psikyo_state::screen_eof_psikyo(screen_device &screen, bool state)
860858{
861859   // rising edge
862   if (vblank_on)
860   if (state)
863861   {
864      psikyo_state *state = screen.machine().driver_data<psikyo_state>();
865      memcpy(state->m_spritebuf2, state->m_spritebuf1, 0x2000);
866      memcpy(state->m_spritebuf1, state->m_spriteram, 0x2000);
862      memcpy(m_spritebuf2, m_spritebuf1, 0x2000);
863      memcpy(m_spritebuf1, m_spriteram, 0x2000);
867864   }
868865}
trunk/src/mame/video/ampoker2.c
r17967r17968
157157       8, 8, 64, 32);
158158}
159159
160SCREEN_UPDATE_IND16(ampoker2)
160UINT32 ampoker2_state::screen_update_ampoker2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
161161{
162   ampoker2_state *state = screen.machine().driver_data<ampoker2_state>();
163   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
162   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
164163   return 0;
165164}
trunk/src/mame/video/playmark.c
r17967r17968
493493   }
494494}
495495
496SCREEN_UPDATE_IND16( bigtwin )
496UINT32 playmark_state::screen_update_bigtwin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
497497{
498   playmark_state *state = screen.machine().driver_data<playmark_state>();
499498
500499   screen.machine().priority_bitmap.fill(0, cliprect);
501500
502   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
503   if (state->m_bg_enable)
501   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
502   if (m_bg_enable)
504503      draw_bitmap(screen.machine(), bitmap, cliprect);
505504   draw_sprites(screen.machine(), bitmap, cliprect, 4);
506   state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
505   m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
507506   return 0;
508507}
509508
510509
511SCREEN_UPDATE_IND16( bigtwinb )
510UINT32 playmark_state::screen_update_bigtwinb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
512511{
513   playmark_state *state = screen.machine().driver_data<playmark_state>();
514512
515513   // video enabled
516   if (state->m_scroll[6] & 1)
514   if (m_scroll[6] & 1)
517515   {
518      state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
519      state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
516      m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
517      m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
520518      bigtwinb_draw_sprites(screen.machine(), bitmap, cliprect, 4);
521      state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
519      m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
522520   }
523521   else
524522      bitmap.fill(get_black_pen(screen.machine()), cliprect);
525523   return 0;
526524}
527525
528SCREEN_UPDATE_IND16( excelsr )
526UINT32 playmark_state::screen_update_excelsr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
529527{
530   playmark_state *state = screen.machine().driver_data<playmark_state>();
531528
532529   screen.machine().priority_bitmap.fill(0, cliprect);
533530
534   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 1);
535   if (state->m_bg_enable)
531   m_fg_tilemap->draw(bitmap, cliprect, 0, 1);
532   if (m_bg_enable)
536533      draw_bitmap(screen.machine(), bitmap, cliprect);
537   state->m_tx_tilemap->draw(bitmap, cliprect, 0, 4);
534   m_tx_tilemap->draw(bitmap, cliprect, 0, 4);
538535   draw_sprites(screen.machine(), bitmap, cliprect, 2);
539536   return 0;
540537}
541538
542SCREEN_UPDATE_IND16( wbeachvl )
539UINT32 playmark_state::screen_update_wbeachvl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
543540{
544   playmark_state *state = screen.machine().driver_data<playmark_state>();
545541
546   if (state->m_fg_rowscroll_enable)
542   if (m_fg_rowscroll_enable)
547543   {
548544      int i;
549545
550      state->m_fg_tilemap->set_scroll_rows(512);
546      m_fg_tilemap->set_scroll_rows(512);
551547      for (i = 0; i < 256; i++)
552         state->m_fg_tilemap->set_scrollx(i + 1, state->m_rowscroll[8 * i]);
548         m_fg_tilemap->set_scrollx(i + 1, m_rowscroll[8 * i]);
553549   }
554550   else
555551   {
556      state->m_fg_tilemap->set_scroll_rows(1);
557      state->m_fg_tilemap->set_scrollx(0, state->m_fgscrollx);
552      m_fg_tilemap->set_scroll_rows(1);
553      m_fg_tilemap->set_scrollx(0, m_fgscrollx);
558554   }
559555
560556   screen.machine().priority_bitmap.fill(0, cliprect);
561557
562   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
563   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
558   m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
559   m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
564560   draw_sprites(screen.machine(), bitmap, cliprect, 0);
565   state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
561   m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
566562   return 0;
567563}
568564
569SCREEN_UPDATE_IND16( hrdtimes )
565UINT32 playmark_state::screen_update_hrdtimes(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
570566{
571   playmark_state *state = screen.machine().driver_data<playmark_state>();
572567
573568   screen.machine().priority_bitmap.fill(0, cliprect);
574569
575570   // video enabled
576   if (state->m_scroll[6] & 1)
571   if (m_scroll[6] & 1)
577572   {
578      state->m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
579      state->m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
573      m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
574      m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
580575      draw_sprites(screen.machine(), bitmap, cliprect, 2);
581      state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
576      m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
582577   }
583578   else
584579      bitmap.fill(get_black_pen(screen.machine()), cliprect);
trunk/src/mame/video/esd16.c
r17967r17968
163163
164164***************************************************************************/
165165
166SCREEN_UPDATE_IND16( hedpanic )
166UINT32 esd16_state::screen_update_hedpanic(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
167167{
168   esd16_state *state = screen.machine().driver_data<esd16_state>();
169168   int layers_ctrl = -1;
170169
171170   screen.machine().priority_bitmap.fill(0, cliprect);
r17967r17968
183182
184183   if (layers_ctrl & 1)
185184   {
186      if (state->m_head_layersize[0] & 0x0001)
185      if (m_head_layersize[0] & 0x0001)
187186      {
188         state->m_tilemap_0_16x16->set_scrollx(0, state->m_scroll_0[0]);
189         state->m_tilemap_0_16x16->set_scrolly(0, state->m_scroll_0[1]);
190         state->m_tilemap_0_16x16->draw(bitmap, cliprect, 0, 0);
187         m_tilemap_0_16x16->set_scrollx(0, m_scroll_0[0]);
188         m_tilemap_0_16x16->set_scrolly(0, m_scroll_0[1]);
189         m_tilemap_0_16x16->draw(bitmap, cliprect, 0, 0);
191190      }
192191      else
193192      {
194         state->m_tilemap_0->set_scrollx(0, state->m_scroll_0[0]);
195         state->m_tilemap_0->set_scrolly(0, state->m_scroll_0[1]);
196         state->m_tilemap_0->draw(bitmap, cliprect, 0, 0);
193         m_tilemap_0->set_scrollx(0, m_scroll_0[0]);
194         m_tilemap_0->set_scrolly(0, m_scroll_0[1]);
195         m_tilemap_0->draw(bitmap, cliprect, 0, 0);
197196      }
198197   }
199198   else
r17967r17968
204203
205204   if (layers_ctrl & 2)
206205   {
207      if (state->m_head_layersize[0] & 0x0002)
206      if (m_head_layersize[0] & 0x0002)
208207      {
209         state->m_tilemap_1_16x16->set_scrollx(0, state->m_scroll_1[0]);
210         state->m_tilemap_1_16x16->set_scrolly(0, state->m_scroll_1[1]);
211         state->m_tilemap_1_16x16->draw(bitmap, cliprect, 0, 1);
208         m_tilemap_1_16x16->set_scrollx(0, m_scroll_1[0]);
209         m_tilemap_1_16x16->set_scrolly(0, m_scroll_1[1]);
210         m_tilemap_1_16x16->draw(bitmap, cliprect, 0, 1);
212211      }
213212      else
214213      {
215         state->m_tilemap_1->set_scrollx(0, state->m_scroll_1[0]);
216         state->m_tilemap_1->set_scrolly(0, state->m_scroll_1[1]);
217         state->m_tilemap_1->draw(bitmap, cliprect, 0, 1);
214         m_tilemap_1->set_scrollx(0, m_scroll_1[0]);
215         m_tilemap_1->set_scrolly(0, m_scroll_1[1]);
216         m_tilemap_1->draw(bitmap, cliprect, 0, 1);
218217      }
219218
220219   }
221220
222   if (layers_ctrl & 4) screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x400);
221   if (layers_ctrl & 4) screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
223222
224223//  popmessage("%04x %04x %04x %04x %04x",head_unknown1[0],head_layersize[0],head_unknown3[0],head_unknown4[0],head_unknown5[0]);
225224   return 0;
trunk/src/mame/video/pgm.c
r17967r17968
637637   save_pointer(NAME(m_spritebufferram), 0xa00/2);
638638}
639639
640SCREEN_UPDATE_IND16( pgm )
640UINT32 pgm_state::screen_update_pgm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
641641{
642   pgm_state *state = screen.machine().driver_data<pgm_state>();
643642   int y;
644643
645644   bitmap.fill(0x3ff, cliprect); // ddp2 igs logo needs 0x3ff
646645
647646   screen.machine().priority_bitmap.fill(0, cliprect);
648647
649   state->m_bg_tilemap->set_scrolly(0, state->m_videoregs[0x2000/2]);
648   m_bg_tilemap->set_scrolly(0, m_videoregs[0x2000/2]);
650649
651650   for (y = 0; y < 224; y++)
652      state->m_bg_tilemap->set_scrollx((y + state->m_videoregs[0x2000 / 2]) & 0x1ff, state->m_videoregs[0x3000 / 2] + state->m_rowscrollram[y]);
651      m_bg_tilemap->set_scrollx((y + m_videoregs[0x2000 / 2]) & 0x1ff, m_videoregs[0x3000 / 2] + m_rowscrollram[y]);
653652
654653
655   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 2);
654   m_bg_tilemap->draw(bitmap, cliprect, 0, 2);
656655
657   draw_sprites(state, screen.machine(), bitmap, state->m_spritebufferram, screen.machine().priority_bitmap);
656   draw_sprites(this, screen.machine(), bitmap, m_spritebufferram, screen.machine().priority_bitmap);
658657
659   state->m_tx_tilemap->set_scrolly(0, state->m_videoregs[0x5000/2]);
660   state->m_tx_tilemap->set_scrollx(0, state->m_videoregs[0x6000/2]); // Check
658   m_tx_tilemap->set_scrolly(0, m_videoregs[0x5000/2]);
659   m_tx_tilemap->set_scrollx(0, m_videoregs[0x6000/2]); // Check
661660
662661
663   state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
662   m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
664663
665664
666665   return 0;
667666
668667}
669668
670SCREEN_VBLANK( pgm )
669void pgm_state::screen_eof_pgm(screen_device &screen, bool state)
671670{
672671   // rising edge
673   if (vblank_on)
672   if (state)
674673   {
675      pgm_state *state = screen.machine().driver_data<pgm_state>();
676674
677675      /* first 0xa00 of main ram = sprites, seems to be buffered, DMA? */
678      memcpy(state->m_spritebufferram, state->m_mainram, 0xa00);
676      memcpy(m_spritebufferram, m_mainram, 0xa00);
679677   }
680678}
trunk/src/mame/video/namcos21.c
r17967r17968
165165} /* update_palette */
166166
167167
168SCREEN_UPDATE_IND16( namcos21 )
168UINT32 namcos21_state::screen_update_namcos21(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
169169{
170   namcos21_state *state = screen.machine().driver_data<namcos21_state>();
171   UINT8 *videoram = state->m_videoram;
170   UINT8 *videoram = m_videoram;
172171   int pivot = 3;
173172   int pri;
174173   update_palette(screen.machine());
175174   bitmap.fill(0xff, cliprect );
176175
177   if( state->m_gametype != NAMCOS21_WINRUN91 )
176   if( m_gametype != NAMCOS21_WINRUN91 )
178177   { /* draw low priority 2d sprites */
179      state->c355_obj_draw(bitmap, cliprect, 2 );
180      state->c355_obj_draw(bitmap, cliprect, 14 );   //driver's eyes
178      c355_obj_draw(bitmap, cliprect, 2 );
179      c355_obj_draw(bitmap, cliprect, 14 );   //driver's eyes
181180   }
182181
183182   CopyVisiblePolyFrameBuffer( screen.machine(), bitmap, cliprect, 0x7fc0, 0x7ffe );
184183
185   if( state->m_gametype != NAMCOS21_WINRUN91 )
184   if( m_gametype != NAMCOS21_WINRUN91 )
186185   { /* draw low priority 2d sprites */
187      state->c355_obj_draw(bitmap, cliprect, 0 );
188      state->c355_obj_draw(bitmap, cliprect, 1 );
186      c355_obj_draw(bitmap, cliprect, 0 );
187      c355_obj_draw(bitmap, cliprect, 1 );
189188   }
190189
191190   CopyVisiblePolyFrameBuffer( screen.machine(), bitmap, cliprect, 0, 0x7fbf );
192191
193192
194   if( state->m_gametype != NAMCOS21_WINRUN91 )
193   if( m_gametype != NAMCOS21_WINRUN91 )
195194   { /* draw high priority 2d sprites */
196195      for( pri=pivot; pri<8; pri++ )
197196      {
198         state->c355_obj_draw(bitmap, cliprect, pri );
197         c355_obj_draw(bitmap, cliprect, pri );
199198      }
200         state->c355_obj_draw(bitmap, cliprect, 15 );   //driver's eyes
199         c355_obj_draw(bitmap, cliprect, 15 );   //driver's eyes
201200   }
202201   else
203202   { /* winrun bitmap layer */
204      int yscroll = -cliprect.min_y+(INT16)state->m_winrun_gpu_register[0x2/2];
205      int base = 0x1000+0x100*(state->m_winrun_color&0xf);
203      int yscroll = -cliprect.min_y+(INT16)m_winrun_gpu_register[0x2/2];
204      int base = 0x1000+0x100*(m_winrun_color&0xf);
206205      int sx,sy;
207206      for( sy=cliprect.min_y; sy<=cliprect.max_y; sy++ )
208207      {
trunk/src/mame/video/model3.c
r17967r17968
333333}
334334#endif
335335
336SCREEN_UPDATE_IND16( model3 )
336UINT32 model3_state::screen_update_model3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
337337{
338   model3_state *state = screen.machine().driver_data<model3_state>();
339338#if 0
340339   int layer_scroll_x[4], layer_scroll_y[4];
341340   UINT32 layer_data[4];
342341
343   layer_data[0] = BYTE_REVERSE32((UINT32)(state->m_layer_scroll[0] >> 32));
344   layer_data[1] = BYTE_REVERSE32((UINT32)(state->m_layer_scroll[0] >> 0));
345   layer_data[2] = BYTE_REVERSE32((UINT32)(state->m_layer_scroll[1] >> 32));
346   layer_data[3] = BYTE_REVERSE32((UINT32)(state->m_layer_scroll[1] >> 0));
342   layer_data[0] = BYTE_REVERSE32((UINT32)(m_layer_scroll[0] >> 32));
343   layer_data[1] = BYTE_REVERSE32((UINT32)(m_layer_scroll[0] >> 0));
344   layer_data[2] = BYTE_REVERSE32((UINT32)(m_layer_scroll[1] >> 32));
345   layer_data[3] = BYTE_REVERSE32((UINT32)(m_layer_scroll[1] >> 0));
347346   layer_scroll_x[0] = (layer_data[0] & 0x8000) ? (layer_data[0] & 0x1ff) : -(layer_data[0] & 0x1ff);
348347   layer_scroll_y[0] = (layer_data[0] & 0x8000) ? (layer_data[0] & 0x1ff) : -(layer_data[0] & 0x1ff);
349348   layer_scroll_x[1] = (layer_data[1] & 0x8000) ? (layer_data[1] & 0x1ff) : -(layer_data[1] & 0x1ff);
r17967r17968
353352   layer_scroll_x[3] = (layer_data[3] & 0x8000) ? (layer_data[3] & 0x1ff) : -(layer_data[3] & 0x1ff);
354353   layer_scroll_y[3] = (layer_data[3] & 0x8000) ? (layer_data[3] & 0x1ff) : -(layer_data[3] & 0x1ff);
355354#endif
356   state->m_screen_clip = (rectangle*)&cliprect;
355   m_screen_clip = (rectangle*)&cliprect;
357356
358   state->m_clip3d = cliprect;
357   m_clip3d = cliprect;
359358
360359   /* layer disable debug keys */
361   state->m_tick++;
362   if( state->m_tick >= 5 ) {
363      state->m_tick = 0;
360   m_tick++;
361   if( m_tick >= 5 ) {
362      m_tick = 0;
364363
365364      if( screen.machine().input().code_pressed(KEYCODE_Y) )
366         state->m_debug_layer_disable ^= 0x1;
365         m_debug_layer_disable ^= 0x1;
367366      if( screen.machine().input().code_pressed(KEYCODE_U) )
368         state->m_debug_layer_disable ^= 0x2;
367         m_debug_layer_disable ^= 0x2;
369368      if( screen.machine().input().code_pressed(KEYCODE_I) )
370         state->m_debug_layer_disable ^= 0x4;
369         m_debug_layer_disable ^= 0x4;
371370      if( screen.machine().input().code_pressed(KEYCODE_O) )
372         state->m_debug_layer_disable ^= 0x8;
371         m_debug_layer_disable ^= 0x8;
373372      if( screen.machine().input().code_pressed(KEYCODE_T) )
374         state->m_debug_layer_disable ^= 0x10;
373         m_debug_layer_disable ^= 0x10;
375374   }
376375
377376   bitmap.fill(0, cliprect);
378377
379   if (!(state->m_debug_layer_disable & 0x8))
380      draw_layer(screen.machine(), bitmap, cliprect, 3, (state->m_layer_enable >> 3) & 0x1);
378   if (!(m_debug_layer_disable & 0x8))
379      draw_layer(screen.machine(), bitmap, cliprect, 3, (m_layer_enable >> 3) & 0x1);
381380
382   if (!(state->m_debug_layer_disable & 0x4))
383      draw_layer(screen.machine(), bitmap, cliprect, 2, (state->m_layer_enable >> 2) & 0x1);
381   if (!(m_debug_layer_disable & 0x4))
382      draw_layer(screen.machine(), bitmap, cliprect, 2, (m_layer_enable >> 2) & 0x1);
384383
385   if( !(state->m_debug_layer_disable & 0x10) )
384   if( !(m_debug_layer_disable & 0x10) )
386385   {
387386#if 0
388      if(state->m_real3d_display_list) {
389         state->m_zbuffer.fill(0, cliprect);
390         state->m_bitmap3d.fill(0x8000, cliprect);
387      if(m_real3d_display_list) {
388         m_zbuffer.fill(0, cliprect);
389         m_bitmap3d.fill(0x8000, cliprect);
391390         real3d_traverse_display_list(screen.machine());
392391      }
393392#endif
394      copybitmap_trans(bitmap, state->m_bitmap3d, 0, 0, 0, 0, cliprect, 0x8000);
393      copybitmap_trans(bitmap, m_bitmap3d, 0, 0, 0, 0, cliprect, 0x8000);
395394   }
396395
397   if (!(state->m_debug_layer_disable & 0x2))
398      draw_layer(screen.machine(), bitmap, cliprect, 1, (state->m_layer_enable >> 1) & 0x1);
396   if (!(m_debug_layer_disable & 0x2))
397      draw_layer(screen.machine(), bitmap, cliprect, 1, (m_layer_enable >> 1) & 0x1);
399398
400   if (!(state->m_debug_layer_disable & 0x1))
401      draw_layer(screen.machine(), bitmap, cliprect, 0, (state->m_layer_enable >> 0) & 0x1);
399   if (!(m_debug_layer_disable & 0x1))
400      draw_layer(screen.machine(), bitmap, cliprect, 0, (m_layer_enable >> 0) & 0x1);
402401
403402   //copy_screen(bitmap, cliprect);
404403
405404   //draw_texture_sheet(bitmap, cliprect);
406405
407   state->m_real3d_display_list = 0;
406   m_real3d_display_list = 0;
408407   return 0;
409408}
410409
trunk/src/mame/video/gameplan.c
r17967r17968
6969 *
7070 *************************************/
7171
72static SCREEN_UPDATE_RGB32( gameplan )
72UINT32 gameplan_state::screen_update_gameplan(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
7373{
74   gameplan_state *state = screen.machine().driver_data<gameplan_state>();
7574   pen_t pens[GAMEPLAN_NUM_PENS];
7675   offs_t offs;
7776
7877   gameplan_get_pens(pens);
7978
80   for (offs = 0; offs < state->m_videoram_size; offs++)
79   for (offs = 0; offs < m_videoram_size; offs++)
8180   {
8281      UINT8 y = offs >> 8;
8382      UINT8 x = offs & 0xff;
8483
85      bitmap.pix32(y, x) = pens[state->m_videoram[offs] & 0x07];
84      bitmap.pix32(y, x) = pens[m_videoram[offs] & 0x07];
8685   }
8786
8887   return 0;
8988}
9089
9190
92static SCREEN_UPDATE_RGB32( leprechn )
91UINT32 gameplan_state::screen_update_leprechn(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
9392{
94   gameplan_state *state = screen.machine().driver_data<gameplan_state>();
9593   pen_t pens[LEPRECHN_NUM_PENS];
9694   offs_t offs;
9795
9896   leprechn_get_pens(pens);
9997
100   for (offs = 0; offs < state->m_videoram_size; offs++)
98   for (offs = 0; offs < m_videoram_size; offs++)
10199   {
102100      UINT8 y = offs >> 8;
103101      UINT8 x = offs & 0xff;
104102
105      bitmap.pix32(y, x) = pens[state->m_videoram[offs]];
103      bitmap.pix32(y, x) = pens[m_videoram[offs]];
106104   }
107105
108106   return 0;
r17967r17968
343341
344342   MCFG_SCREEN_ADD("screen", RASTER)
345343   MCFG_SCREEN_RAW_PARAMS(GAMEPLAN_PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
346   MCFG_SCREEN_UPDATE_STATIC(gameplan)
344   MCFG_SCREEN_UPDATE_DRIVER(gameplan_state, screen_update_gameplan)
347345MACHINE_CONFIG_END
348346
349347
350348MACHINE_CONFIG_FRAGMENT( leprechn_video )
351349   MCFG_VIDEO_START_OVERRIDE(gameplan_state,leprechn)
352350   MCFG_SCREEN_MODIFY("screen")
353   MCFG_SCREEN_UPDATE_STATIC(leprechn)
351   MCFG_SCREEN_UPDATE_DRIVER(gameplan_state, screen_update_leprechn)
354352MACHINE_CONFIG_END
355353
356354
357355MACHINE_CONFIG_DERIVED( trvquest_video, gameplan_video )
358356   MCFG_VIDEO_START_OVERRIDE(gameplan_state,trvquest)
359357   MCFG_SCREEN_MODIFY("screen")
360   MCFG_SCREEN_UPDATE_STATIC(gameplan)
358   MCFG_SCREEN_UPDATE_DRIVER(gameplan_state, screen_update_gameplan)
361359MACHINE_CONFIG_END
trunk/src/mame/video/iqblock.c
r17967r17968
8383
8484***************************************************************************/
8585
86SCREEN_UPDATE_IND16( iqblock )
86UINT32 iqblock_state::screen_update_iqblock(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
8787{
88   iqblock_state *state = screen.machine().driver_data<iqblock_state>();
89   if (!state->m_videoenable) return 0;
90   state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
91   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
88   if (!m_videoenable) return 0;
89   m_fg_tilemap->draw(bitmap, cliprect, 0,0);
90   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
9291
9392   return 0;
9493}
trunk/src/mame/video/ikki.c
r17967r17968
122122}
123123
124124
125SCREEN_UPDATE_IND16( ikki )
125UINT32 ikki_state::screen_update_ikki(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
126126{
127   ikki_state *state = screen.machine().driver_data<ikki_state>();
128127   offs_t offs;
129   UINT8 *VIDEOATTR = state->memregion("user1")->base();
128   UINT8 *VIDEOATTR = memregion("user1")->base();
130129
131130   /* draw bg layer */
132131
133   for (offs = 0; offs < (state->m_videoram.bytes() / 2); offs++)
132   for (offs = 0; offs < (m_videoram.bytes() / 2); offs++)
134133   {
135134      int color, bank;
136135
r17967r17968
144143      switch (d)
145144      {
146145         case 0x02: /* scroll area */
147            x = sx * 8 - state->m_scroll[1];
146            x = sx * 8 - m_scroll[1];
148147            if (x < 0)
149148               x += 8 * 22;
150            y = (sy * 8 + ~state->m_scroll[0]) & 0xff;
149            y = (sy * 8 + ~m_scroll[0]) & 0xff;
151150            break;
152151
153152         case 0x03: /* non-scroll area */
r17967r17968
166165            break;
167166      }
168167
169      if (state->m_flipscreen)
168      if (m_flipscreen)
170169      {
171170         x = 248 - x;
172171         y = 248 - y;
173172      }
174173
175      color = state->m_videoram[offs * 2];
174      color = m_videoram[offs * 2];
176175      bank = (color & 0xe0) << 3;
177176      color = ((color & 0x1f)<<0) | ((color & 0x80) >> 2);
178177
179178      drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0],
180         state->m_videoram[offs * 2 + 1] + bank,
179         m_videoram[offs * 2 + 1] + bank,
181180         color,
182         state->m_flipscreen,state->m_flipscreen,
181         m_flipscreen,m_flipscreen,
183182         x,y);
184183   }
185184
r17967r17968
187186
188187   /* mask sprites */
189188
190   for (offs = 0; offs < (state->m_videoram.bytes() / 2); offs++)
189   for (offs = 0; offs < (m_videoram.bytes() / 2); offs++)
191190   {
192191      int sx = offs / 32;
193192      int sy = offs % 32;
r17967r17968
201200         int y = sy * 8;
202201         int x = sx * 8;
203202
204         if (state->m_flipscreen)
203         if (m_flipscreen)
205204         {
206205            x = 248 - x;
207206            y = 248 - y;
208207         }
209208
210         color = state->m_videoram[offs * 2];
209         color = m_videoram[offs * 2];
211210         bank = (color & 0xe0) << 3;
212211         color = ((color & 0x1f)<<0) | ((color & 0x80) >> 2);
213212
214213         drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0],
215            state->m_videoram[offs * 2 + 1] + bank,
214            m_videoram[offs * 2 + 1] + bank,
216215            color,
217            state->m_flipscreen,state->m_flipscreen,
216            m_flipscreen,m_flipscreen,
218217            x,y);
219218      }
220219   }
trunk/src/mame/video/darius.c
r17967r17968
113113   return 0;
114114}
115115
116SCREEN_UPDATE_IND16( darius_left ) { return update_screen(screen, bitmap, cliprect, 36 * 8 * 0); }
117SCREEN_UPDATE_IND16( darius_middle ) { return update_screen(screen, bitmap, cliprect, 36 * 8 * 1); }
118SCREEN_UPDATE_IND16( darius_right ) { return update_screen(screen, bitmap, cliprect, 36 * 8 * 2); }
116UINT32 darius_state::screen_update_darius_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8 * 0); }
117UINT32 darius_state::screen_update_darius_middle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8 * 1); }
118UINT32 darius_state::screen_update_darius_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8 * 2); }
119119
trunk/src/mame/video/capbowl.c
r17967r17968
161161}
162162
163163
164SCREEN_UPDATE_RGB32( capbowl )
164UINT32 capbowl_state::screen_update_capbowl(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
165165{
166166   struct tms34061_display state;
167167   int x, y;
trunk/src/mame/video/cbasebal.c
r17967r17968
168168   }
169169}
170170
171SCREEN_UPDATE_IND16( cbasebal )
171UINT32 cbasebal_state::screen_update_cbasebal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
172172{
173   cbasebal_state *state = screen.machine().driver_data<cbasebal_state>();
174173
175   if (state->m_bg_on)
176      state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
174   if (m_bg_on)
175      m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
177176   else
178177      bitmap.fill(768, cliprect);
179178
180   if (state->m_obj_on)
179   if (m_obj_on)
181180      draw_sprites(screen.machine(), bitmap, cliprect);
182181
183   if (state->m_text_on)
184      state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
182   if (m_text_on)
183      m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
185184   return 0;
186185}
trunk/src/mame/video/st0016.c
r17967r17968
584584}
585585
586586
587void st0016_draw_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
587void st0016_state::st0016_draw_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
588588{
589589   draw_bgmap(screen.machine(), bitmap,cliprect,0);
590590   draw_sprites(screen.machine(), bitmap,cliprect);
591591   draw_bgmap(screen.machine(), bitmap,cliprect,1);
592592}
593593
594SCREEN_UPDATE_IND16( st0016 )
594UINT32 st0016_state::screen_update_st0016(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
595595{
596596
597597#ifdef MAME_DEBUG
trunk/src/mame/video/sbasketb.c
r17967r17968
168168   }
169169}
170170
171SCREEN_UPDATE_IND16( sbasketb )
171UINT32 sbasketb_state::screen_update_sbasketb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
172172{
173   sbasketb_state *state = screen.machine().driver_data<sbasketb_state>();
174173   int col;
175174
176175   for (col = 6; col < 32; col++)
177      state->m_bg_tilemap->set_scrolly(col, *state->m_scroll);
176      m_bg_tilemap->set_scrolly(col, *m_scroll);
178177
179   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
178   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
180179   draw_sprites(screen.machine(), bitmap, cliprect);
181180   return 0;
182181}
trunk/src/mame/video/funkyjet.c
r17967r17968
1111
1212/******************************************************************************/
1313
14SCREEN_UPDATE_IND16( funkyjet )
14UINT32 funkyjet_state::screen_update_funkyjet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
1515{
16   funkyjet_state *state = screen.machine().driver_data<funkyjet_state>();
1716   address_space &space = screen.machine().driver_data()->generic_space();
18   UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
17   UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff);
1918
20   state->flip_screen_set(BIT(flip, 7));
21   deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
19   flip_screen_set(BIT(flip, 7));
20   deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
2221
2322   bitmap.fill(768, cliprect);
24   deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
25   deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
26   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x400);
23   deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
24   deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
25   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
2726   return 0;
2827}
trunk/src/mame/video/xexex.c
r17967r17968
4545   k056832_set_layer_offs(m_k056832, 3,  6, 16);
4646}
4747
48SCREEN_UPDATE_RGB32( xexex )
48UINT32 xexex_state::screen_update_xexex(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
4949{
5050   static const int K053251_CI[4] = { K053251_CI1, K053251_CI2, K053251_CI3, K053251_CI4 };
51   xexex_state *state = screen.machine().driver_data<xexex_state>();
5251   int layer[4];
5352   int bg_colorbase, new_colorbase, plane, alpha;
5453
55   state->m_sprite_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI0);
56   bg_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI1);
57   state->m_layer_colorbase[0] = 0x70;
54   m_sprite_colorbase = k053251_get_palette_index(m_k053251, K053251_CI0);
55   bg_colorbase = k053251_get_palette_index(m_k053251, K053251_CI1);
56   m_layer_colorbase[0] = 0x70;
5857
5958   for (plane = 1; plane < 4; plane++)
6059   {
61      new_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI[plane]);
62      if (state->m_layer_colorbase[plane] != new_colorbase)
60      new_colorbase = k053251_get_palette_index(m_k053251, K053251_CI[plane]);
61      if (m_layer_colorbase[plane] != new_colorbase)
6362      {
64         state->m_layer_colorbase[plane] = new_colorbase;
65         k056832_mark_plane_dirty(state->m_k056832, plane);
63         m_layer_colorbase[plane] = new_colorbase;
64         k056832_mark_plane_dirty(m_k056832, plane);
6665      }
6766   }
6867
6968   layer[0] = 1;
70   state->m_layerpri[0] = k053251_get_priority(state->m_k053251, K053251_CI2);
69   m_layerpri[0] = k053251_get_priority(m_k053251, K053251_CI2);
7170   layer[1] = 2;
72   state->m_layerpri[1] = k053251_get_priority(state->m_k053251, K053251_CI3);
71   m_layerpri[1] = k053251_get_priority(m_k053251, K053251_CI3);
7372   layer[2] = 3;
74   state->m_layerpri[2] = k053251_get_priority(state->m_k053251, K053251_CI4);
73   m_layerpri[2] = k053251_get_priority(m_k053251, K053251_CI4);
7574   layer[3] = -1;
76   state->m_layerpri[3] = k053251_get_priority(state->m_k053251, K053251_CI1);
75   m_layerpri[3] = k053251_get_priority(m_k053251, K053251_CI1);
7776
78   konami_sortlayers4(layer, state->m_layerpri);
77   konami_sortlayers4(layer, m_layerpri);
7978
80   k054338_update_all_shadows(state->m_k054338, 0);
81   k054338_fill_backcolor(state->m_k054338, bitmap, 0);
79   k054338_update_all_shadows(m_k054338, 0);
80   k054338_fill_backcolor(m_k054338, bitmap, 0);
8281
8382   screen.machine().priority_bitmap.fill(0, cliprect);
8483
r17967r17968
8685   {
8786      if (layer[plane] < 0)
8887      {
89         state->m_k053250->draw(bitmap, cliprect, bg_colorbase, 0, 1 << plane);
88         m_k053250->draw(bitmap, cliprect, bg_colorbase, 0, 1 << plane);
9089      }
91      else if (!state->m_cur_alpha || layer[plane] != 1)
90      else if (!m_cur_alpha || layer[plane] != 1)
9291      {
93         k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, layer[plane], 0, 1 << plane);
92         k056832_tilemap_draw(m_k056832, bitmap, cliprect, layer[plane], 0, 1 << plane);
9493      }
9594   }
9695
97   k053247_sprites_draw(state->m_k053246, bitmap, cliprect);
96   k053247_sprites_draw(m_k053246, bitmap, cliprect);
9897
99   if (state->m_cur_alpha)
98   if (m_cur_alpha)
10099   {
101      alpha = k054338_set_alpha_level(state->m_k054338, 1);
100      alpha = k054338_set_alpha_level(m_k054338, 1);
102101
103102      if (alpha > 0)
104103      {
105         k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, 1, TILEMAP_DRAW_ALPHA(alpha), 0);
104         k056832_tilemap_draw(m_k056832, bitmap, cliprect, 1, TILEMAP_DRAW_ALPHA(alpha), 0);
106105      }
107106   }
108107
109   k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, 0, 0, 0);
108   k056832_tilemap_draw(m_k056832, bitmap, cliprect, 0, 0, 0);
110109   return 0;
111110}
trunk/src/mame/video/ksayakyu.c
r17967r17968
120120   m_textmap->set_transparent_pen(0);
121121}
122122
123SCREEN_UPDATE_IND16(ksayakyu)
123UINT32 ksayakyu_state::screen_update_ksayakyu(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
124124{
125   ksayakyu_state *state = screen.machine().driver_data<ksayakyu_state>();
126125
127126   bitmap.fill(0, cliprect);
128127
129   if (state->m_video_ctrl & 1)
130      state->m_tilemap->draw(bitmap, cliprect, 0, 0);
128   if (m_video_ctrl & 1)
129      m_tilemap->draw(bitmap, cliprect, 0, 0);
131130
132   state->m_textmap->draw(bitmap, cliprect, 0, 0);
131   m_textmap->draw(bitmap, cliprect, 0, 0);
133132   draw_sprites(screen.machine(), bitmap, cliprect);
134133   return 0;
135134}
trunk/src/mame/video/himesiki.c
r17967r17968
112112   }
113113}
114114
115SCREEN_UPDATE_IND16( himesiki )
115UINT32 himesiki_state::screen_update_himesiki(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
116116{
117   himesiki_state *state = screen.machine().driver_data<himesiki_state>();
118   int x = -(state->m_scrollx[0] << 8 | state->m_scrollx[1]) & 0x1ff;
119   state->m_bg_tilemap->set_scrolldx(x, x);
117   int x = -(m_scrollx[0] << 8 | m_scrollx[1]) & 0x1ff;
118   m_bg_tilemap->set_scrolldx(x, x);
120119
121   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
120   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
122121   himesiki_draw_sprites(screen.machine(), bitmap, cliprect);
123122
124123   return 0;
trunk/src/mame/video/skullxbo.c
r17967r17968
240240 *
241241 *************************************/
242242
243SCREEN_UPDATE_IND16( skullxbo )
243UINT32 skullxbo_state::screen_update_skullxbo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
244244{
245   skullxbo_state *state = screen.machine().driver_data<skullxbo_state>();
246245   atarimo_rect_list rectlist;
247246   bitmap_ind16 *mobitmap;
248247   int x, y, r;
249248
250249   /* draw the playfield */
251   state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
250   m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
252251
253252   /* draw and merge the MO */
254253   mobitmap = atarimo_render(0, cliprect, &rectlist);
r17967r17968
312311      }
313312
314313   /* add the alpha on top */
315   state->m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
314   m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
316315   return 0;
317316}
trunk/src/mame/video/battlex.c
r17967r17968
8989}
9090
9191
92SCREEN_UPDATE_IND16(battlex)
92UINT32 battlex_state::screen_update_battlex(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
9393{
94   battlex_state *state = screen.machine().driver_data<battlex_state>();
9594
96   state->m_bg_tilemap->set_scrollx(0, state->m_scroll_lsb | (state->m_scroll_msb << 8));
97   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
95   m_bg_tilemap->set_scrollx(0, m_scroll_lsb | (m_scroll_msb << 8));
96   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
9897   draw_sprites(screen.machine(), bitmap, cliprect);
9998
10099   return 0;
trunk/src/mame/video/ironhors.c
r17967r17968
234234   }
235235}
236236
237SCREEN_UPDATE_IND16( ironhors )
237UINT32 ironhors_state::screen_update_ironhors(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
238238{
239   ironhors_state *state = screen.machine().driver_data<ironhors_state>();
240239   int row;
241240
242241   for (row = 0; row < 32; row++)
243      state->m_bg_tilemap->set_scrollx(row, state->m_scroll[row]);
242      m_bg_tilemap->set_scrollx(row, m_scroll[row]);
244243
245   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
244   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
246245   draw_sprites(screen.machine(), bitmap, cliprect);
247246   return 0;
248247}
r17967r17968
345344   }
346345}
347346
348SCREEN_UPDATE_IND16( farwest)
347UINT32 ironhors_state::screen_update_farwest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
349348{
350   ironhors_state *state = screen.machine().driver_data<ironhors_state>();
351349   int row;
352350
353351   for (row = 0; row < 32; row++)
354      state->m_bg_tilemap->set_scrollx(row, state->m_scroll[row]);
352      m_bg_tilemap->set_scrollx(row, m_scroll[row]);
355353
356   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
354   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
357355   farwest_draw_sprites(screen.machine(), bitmap, cliprect);
358356   return 0;
359357}
trunk/src/mame/video/mrflea.c
r17967r17968
101101   }
102102}
103103
104SCREEN_UPDATE_IND16( mrflea )
104UINT32 mrflea_state::screen_update_mrflea(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
105105{
106106   draw_background(screen.machine(), bitmap, cliprect);
107107   draw_sprites(screen.machine(), bitmap, cliprect);
trunk/src/mame/video/epos.c
r17967r17968
7171}
7272
7373
74SCREEN_UPDATE_RGB32( epos )
74UINT32 epos_state::screen_update_epos(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
7575{
76   epos_state *state = screen.machine().driver_data<epos_state>();
7776   pen_t pens[0x20];
7877   offs_t offs;
7978
8079   get_pens(screen.machine(), pens);
8180
82   for (offs = 0; offs < state->m_videoram.bytes(); offs++)
81   for (offs = 0; offs < m_videoram.bytes(); offs++)
8382   {
84      UINT8 data = state->m_videoram[offs];
83      UINT8 data = m_videoram[offs];
8584
8685      int x = (offs % 136) * 2;
8786      int y = (offs / 136);
8887
89      bitmap.pix32(y, x + 0) = pens[(state->m_palette << 4) | (data & 0x0f)];
90      bitmap.pix32(y, x + 1) = pens[(state->m_palette << 4) | (data >> 4)];
88      bitmap.pix32(y, x + 0) = pens[(m_palette << 4) | (data & 0x0f)];
89      bitmap.pix32(y, x + 1) = pens[(m_palette << 4) | (data >> 4)];
9190   }
9291
9392   return 0;
trunk/src/mame/video/glass.c
r17967r17968
190190
191191****************************************************************************/
192192
193SCREEN_UPDATE_IND16( glass )
193UINT32 glass_state::screen_update_glass(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
194194{
195   glass_state *state = screen.machine().driver_data<glass_state>();
196195   /* set scroll registers */
197   state->m_pant[0]->set_scrolly(0, state->m_vregs[0]);
198   state->m_pant[0]->set_scrollx(0, state->m_vregs[1] + 0x04);
199   state->m_pant[1]->set_scrolly(0, state->m_vregs[2]);
200   state->m_pant[1]->set_scrollx(0, state->m_vregs[3]);
196   m_pant[0]->set_scrolly(0, m_vregs[0]);
197   m_pant[0]->set_scrollx(0, m_vregs[1] + 0x04);
198   m_pant[1]->set_scrolly(0, m_vregs[2]);
199   m_pant[1]->set_scrollx(0, m_vregs[3]);
201200
202201   /* draw layers + sprites */
203202   bitmap.fill(get_black_pen(screen.machine()), cliprect);
204   copybitmap(bitmap, *state->m_screen_bitmap, 0, 0, 0x18, 0x24, cliprect);
205   state->m_pant[1]->draw(bitmap, cliprect, 0, 0);
206   state->m_pant[0]->draw(bitmap, cliprect, 0, 0);
203   copybitmap(bitmap, *m_screen_bitmap, 0, 0, 0x18, 0x24, cliprect);
204   m_pant[1]->draw(bitmap, cliprect, 0, 0);
205   m_pant[0]->draw(bitmap, cliprect, 0, 0);
207206   draw_sprites(screen.machine(), bitmap, cliprect);
208207   return 0;
209208}
trunk/src/mame/video/mcatadv.c
r17967r17968
198198   }
199199}
200200
201SCREEN_UPDATE_IND16( mcatadv )
201UINT32 mcatadv_state::screen_update_mcatadv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
202202{
203   mcatadv_state *state = screen.machine().driver_data<mcatadv_state>();
204203   int i;
205204
206205   bitmap.fill(get_black_pen(screen.machine()), cliprect);
207206   screen.machine().priority_bitmap.fill(0, cliprect);
208207
209   if (state->m_scroll1[2] != state->m_palette_bank1)
208   if (m_scroll1[2] != m_palette_bank1)
210209   {
211      state->m_palette_bank1 = state->m_scroll1[2];
212      state->m_tilemap1->mark_all_dirty();
210      m_palette_bank1 = m_scroll1[2];
211      m_tilemap1->mark_all_dirty();
213212   }
214213
215   if (state->m_scroll2[2] != state->m_palette_bank2)
214   if (m_scroll2[2] != m_palette_bank2)
216215   {
217      state->m_palette_bank2 = state->m_scroll2[2];
218      state->m_tilemap2->mark_all_dirty();
216      m_palette_bank2 = m_scroll2[2];
217      m_tilemap2->mark_all_dirty();
219218   }
220219
221220/*
r17967r17968
231230   #ifdef MAME_DEBUG
232231         if (!screen.machine().input().code_pressed(KEYCODE_Q))
233232   #endif
234         mcatadv_draw_tilemap_part(state->m_scroll1,  state->m_videoram1, i, state->m_tilemap1, bitmap, cliprect);
233         mcatadv_draw_tilemap_part(m_scroll1,  m_videoram1, i, m_tilemap1, bitmap, cliprect);
235234
236235   #ifdef MAME_DEBUG
237236         if (!screen.machine().input().code_pressed(KEYCODE_W))
238237   #endif
239            mcatadv_draw_tilemap_part(state->m_scroll2, state->m_videoram2, i, state->m_tilemap2, bitmap, cliprect);
238            mcatadv_draw_tilemap_part(m_scroll2, m_videoram2, i, m_tilemap2, bitmap, cliprect);
240239   }
241240
242241   g_profiler.start(PROFILER_USER1);
r17967r17968
266265   save_pointer(NAME(m_vidregs_old), (0x0f + 1) / 2);
267266}
268267
269SCREEN_VBLANK( mcatadv )
268void mcatadv_state::screen_eof_mcatadv(screen_device &screen, bool state)
270269{
271270   // rising edge
272   if (vblank_on)
271   if (state)
273272   {
274      mcatadv_state *state = screen.machine().driver_data<mcatadv_state>();
275      memcpy(state->m_spriteram_old, state->m_spriteram, state->m_spriteram.bytes());
276      memcpy(state->m_vidregs_old, state->m_vidregs, 0xf);
273      memcpy(m_spriteram_old, m_spriteram, m_spriteram.bytes());
274      memcpy(m_vidregs_old, m_vidregs, 0xf);
277275   }
278276}
trunk/src/mame/video/toaplan2.c
r17967r17968
286286}
287287
288288// Dogyuun doesn't appear to require fancy mixing?
289SCREEN_UPDATE_IND16( toaplan2_dual )
289UINT32 toaplan2_state::screen_update_toaplan2_dual(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
290290{
291   toaplan2_state *state = screen.machine().driver_data<toaplan2_state>();
292291
293   if (state->m_vdp1)
292   if (m_vdp1)
294293   {
295294      bitmap.fill(0, cliprect);
296      state->m_custom_priority_bitmap.fill(0, cliprect);
297      state->m_vdp1->gp9001_render_vdp(screen.machine(), bitmap, cliprect);
295      m_custom_priority_bitmap.fill(0, cliprect);
296      m_vdp1->gp9001_render_vdp(screen.machine(), bitmap, cliprect);
298297   }
299   if (state->m_vdp0)
298   if (m_vdp0)
300299   {
301300   //  bitmap.fill(0, cliprect);
302      state->m_custom_priority_bitmap.fill(0, cliprect);
303      state->m_vdp0->gp9001_render_vdp(screen.machine(), bitmap, cliprect);
301      m_custom_priority_bitmap.fill(0, cliprect);
302      m_vdp0->gp9001_render_vdp(screen.machine(), bitmap, cliprect);
304303   }
305304
306305
r17967r17968
309308
310309
311310// renders to 2 bitmaps, and mixes output
312SCREEN_UPDATE_IND16( toaplan2_mixed )
311UINT32 toaplan2_state::screen_update_toaplan2_mixed(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
313312{
314   toaplan2_state *state = screen.machine().driver_data<toaplan2_state>();
315313
316314//  bitmap.fill(0, cliprect);
317315//  gp9001_custom_priority_bitmap->fill(0, cliprect);
318316
319   if (state->m_vdp0)
317   if (m_vdp0)
320318   {
321319      bitmap.fill(0, cliprect);
322      state->m_custom_priority_bitmap.fill(0, cliprect);
323      state->m_vdp0->gp9001_render_vdp(screen.machine(), bitmap, cliprect);
320      m_custom_priority_bitmap.fill(0, cliprect);
321      m_vdp0->gp9001_render_vdp(screen.machine(), bitmap, cliprect);
324322   }
325   if (state->m_vdp1)
323   if (m_vdp1)
326324   {
327      state->m_secondary_render_bitmap.fill(0, cliprect);
328      state->m_custom_priority_bitmap.fill(0, cliprect);
329      state->m_vdp1->gp9001_render_vdp(screen.machine(), state->m_secondary_render_bitmap, cliprect);
325      m_secondary_render_bitmap.fill(0, cliprect);
326      m_custom_priority_bitmap.fill(0, cliprect);
327      m_vdp1->gp9001_render_vdp(screen.machine(), m_secondary_render_bitmap, cliprect);
330328   }
331329
332330
r17967r17968
341339   // on that do.
342340   //
343341
344   if (state->m_vdp0 && state->m_vdp1)
342   if (m_vdp0 && m_vdp1)
345343   {
346344      int width = screen.width();
347345      int height = screen.height();
r17967r17968
352350      for (y=0;y<height;y++)
353351      {
354352         src_vdp0 = &bitmap.pix16(y);
355         src_vdp1 = &state->m_secondary_render_bitmap.pix16(y);
353         src_vdp1 = &m_secondary_render_bitmap.pix16(y);
356354
357355         for (x=0;x<width;x++)
358356         {
r17967r17968
409407   return 0;
410408}
411409
412SCREEN_UPDATE_IND16( toaplan2 )
410UINT32 toaplan2_state::screen_update_toaplan2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
413411{
414   toaplan2_state *state = screen.machine().driver_data<toaplan2_state>();
415412
416   if (state->m_vdp0)
413   if (m_vdp0)
417414   {
418415      bitmap.fill(0, cliprect);
419      state->m_custom_priority_bitmap.fill(0, cliprect);
420      state->m_vdp0->gp9001_render_vdp(screen.machine(), bitmap, cliprect);
416      m_custom_priority_bitmap.fill(0, cliprect);
417      m_vdp0->gp9001_render_vdp(screen.machine(), bitmap, cliprect);
421418   }
422419
423420   return 0;
424421}
425422
426SCREEN_UPDATE_IND16( truxton2 )
423UINT32 toaplan2_state::screen_update_truxton2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
427424{
428   toaplan2_state *state = screen.machine().driver_data<toaplan2_state>();
429425
430   SCREEN_UPDATE16_CALL(toaplan2);
431   state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
426   SCREEN_UPDATE16_CALL_MEMBER(toaplan2);
427   m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
432428   return 0;
433429}
434430
435431
436SCREEN_UPDATE_IND16( batrider )
432UINT32 toaplan2_state::screen_update_batrider(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
437433{
438   toaplan2_state *state = screen.machine().driver_data<toaplan2_state>();
439434
440   SCREEN_UPDATE16_CALL( toaplan2 );
435   SCREEN_UPDATE16_CALL_MEMBER( toaplan2 );
441436
442437   int line;
443438   rectangle clip;
r17967r17968
448443   /* used for 'for use in' and '8ing' screen on bbakraid, raizing on batrider */
449444   for (line = 0; line < 256;line++)
450445   {
451      if (state->m_tx_flip)
446      if (m_tx_flip)
452447      {
453448         clip.min_y = clip.max_y = 256 - line;
454         state->m_tx_tilemap->set_scrolly(0, 256 - line + state->m_txvideoram16_offs[256 - line]);
449         m_tx_tilemap->set_scrolly(0, 256 - line + m_txvideoram16_offs[256 - line]);
455450      }
456451      else
457452      {
458453         clip.min_y = clip.max_y = line;
459         state->m_tx_tilemap->set_scrolly(0,     - line + state->m_txvideoram16_offs[      line]);
454         m_tx_tilemap->set_scrolly(0,     - line + m_txvideoram16_offs[      line]);
460455      }
461      state->m_tx_tilemap->draw(bitmap, clip, 0, 0);
456      m_tx_tilemap->draw(bitmap, clip, 0, 0);
462457   }
463458   return 0;
464459}
465460
466461
467462
468SCREEN_UPDATE_IND16( dogyuun )
463UINT32 toaplan2_state::screen_update_dogyuun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
469464{
470   SCREEN_UPDATE16_CALL( toaplan2_dual );
465   SCREEN_UPDATE16_CALL_MEMBER( toaplan2_dual );
471466   return 0;
472467}
473468
474SCREEN_UPDATE_IND16( batsugun )
469UINT32 toaplan2_state::screen_update_batsugun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
475470{
476   SCREEN_UPDATE16_CALL( toaplan2_mixed );
471   SCREEN_UPDATE16_CALL_MEMBER( toaplan2_mixed );
477472   return 0;
478473}
479474
480SCREEN_VBLANK( toaplan2 )
475void toaplan2_state::screen_eof_toaplan2(screen_device &screen, bool state)
481476{
482477   // rising edge
483   if (vblank_on)
478   if (state)
484479   {
485      toaplan2_state *state = screen.machine().driver_data<toaplan2_state>();
486      if (state->m_vdp0) state->m_vdp0->gp9001_screen_eof();
487      if (state->m_vdp1) state->m_vdp1->gp9001_screen_eof();
480      if (m_vdp0) m_vdp0->gp9001_screen_eof();
481      if (m_vdp1) m_vdp1->gp9001_screen_eof();
488482   }
489483}
trunk/src/mame/video/cinemat.c
r17967r17968
207207 *
208208 *************************************/
209209
210SCREEN_UPDATE_RGB32( cinemat )
210UINT32 cinemat_state::screen_update_cinemat(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
211211{
212212   SCREEN_UPDATE32_CALL(vector);
213213   vector_clear_list();
r17967r17968
225225 *
226226 *************************************/
227227
228SCREEN_UPDATE_RGB32( spacewar )
228UINT32 cinemat_state::screen_update_spacewar(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
229229{
230230   int sw_option = screen.machine().root_device().ioport("INPUTS")->read();
231231
232   SCREEN_UPDATE32_CALL(cinemat);
232   SCREEN_UPDATE32_CALL_MEMBER(cinemat);
233233
234234   /* set the state of the artwork */
235235   output_set_value("pressed3", (~sw_option >> 0) & 1);
trunk/src/mame/video/mjkjidai.c
r17967r17968
125125
126126
127127
128SCREEN_UPDATE_IND16( mjkjidai )
128UINT32 mjkjidai_state::screen_update_mjkjidai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
129129{
130   mjkjidai_state *state = screen.machine().driver_data<mjkjidai_state>();
131   if (!state->m_display_enable)
130   if (!m_display_enable)
132131      bitmap.fill(get_black_pen(screen.machine()), cliprect);
133132   else
134133   {
135      state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
134      m_bg_tilemap->draw(bitmap, cliprect, 0,0);
136135      draw_sprites(screen.machine(), bitmap,cliprect);
137136   }
138137   return 0;
trunk/src/mame/video/jailbrek.c
r17967r17968
9292   }
9393}
9494
95SCREEN_UPDATE_IND16( jailbrek )
95UINT32 jailbrek_state::screen_update_jailbrek(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
9696{
97   jailbrek_state *state = screen.machine().driver_data<jailbrek_state>();
9897   int i;
9998
10099   // added support for vertical scrolling (credits).  23/1/2002  -BR
101100   // bit 2 appears to be horizontal/vertical scroll control
102   if (state->m_scroll_dir[0] & 0x04)
101   if (m_scroll_dir[0] & 0x04)
103102   {
104      state->m_bg_tilemap->set_scroll_cols(32);
105      state->m_bg_tilemap->set_scroll_rows(1);
106      state->m_bg_tilemap->set_scrollx(0, 0);
103      m_bg_tilemap->set_scroll_cols(32);
104      m_bg_tilemap->set_scroll_rows(1);
105      m_bg_tilemap->set_scrollx(0, 0);
107106
108107      for (i = 0; i < 32; i++)
109         state->m_bg_tilemap->set_scrolly(i, ((state->m_scroll_x[i + 32] << 8) + state->m_scroll_x[i]));
108         m_bg_tilemap->set_scrolly(i, ((m_scroll_x[i + 32] << 8) + m_scroll_x[i]));
110109   }
111110   else
112111   {
113      state->m_bg_tilemap->set_scroll_rows(32);
114      state->m_bg_tilemap->set_scroll_cols(1);
115      state->m_bg_tilemap->set_scrolly(0, 0);
112      m_bg_tilemap->set_scroll_rows(32);
113      m_bg_tilemap->set_scroll_cols(1);
114      m_bg_tilemap->set_scrolly(0, 0);
116115
117116      for (i = 0; i < 32; i++)
118         state->m_bg_tilemap->set_scrollx(i, ((state->m_scroll_x[i + 32] << 8) + state->m_scroll_x[i]));
117         m_bg_tilemap->set_scrollx(i, ((m_scroll_x[i + 32] << 8) + m_scroll_x[i]));
119118   }
120119
121   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
120   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
122121   draw_sprites(screen.machine(), bitmap, cliprect);
123122   return 0;
124123}
trunk/src/mame/video/gaelco.c
r17967r17968
182182
183183***************************************************************************/
184184
185SCREEN_UPDATE_IND16( maniacsq )
185UINT32 gaelco_state::screen_update_maniacsq(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
186186{
187   gaelco_state *state = screen.machine().driver_data<gaelco_state>();
188187
189188   /* set scroll registers */
190   state->m_tilemap[0]->set_scrolly(0, state->m_vregs[0]);
191   state->m_tilemap[0]->set_scrollx(0, state->m_vregs[1] + 4);
192   state->m_tilemap[1]->set_scrolly(0, state->m_vregs[2]);
193   state->m_tilemap[1]->set_scrollx(0, state->m_vregs[3]);
189   m_tilemap[0]->set_scrolly(0, m_vregs[0]);
190   m_tilemap[0]->set_scrollx(0, m_vregs[1] + 4);
191   m_tilemap[1]->set_scrolly(0, m_vregs[2]);
192   m_tilemap[1]->set_scrollx(0, m_vregs[3]);
194193
195194   screen.machine().priority_bitmap.fill(0, cliprect);
196195   bitmap.fill(0, cliprect);
197196
198   state->m_tilemap[1]->draw(bitmap, cliprect, 3, 0);
199   state->m_tilemap[0]->draw(bitmap, cliprect, 3, 0);
197   m_tilemap[1]->draw(bitmap, cliprect, 3, 0);
198   m_tilemap[0]->draw(bitmap, cliprect, 3, 0);
200199
201   state->m_tilemap[1]->draw(bitmap, cliprect, 2, 1);
202   state->m_tilemap[0]->draw(bitmap, cliprect, 2, 1);
200   m_tilemap[1]->draw(bitmap, cliprect, 2, 1);
201   m_tilemap[0]->draw(bitmap, cliprect, 2, 1);
203202
204   state->m_tilemap[1]->draw(bitmap, cliprect, 1, 2);
205   state->m_tilemap[0]->draw(bitmap, cliprect, 1, 2);
203   m_tilemap[1]->draw(bitmap, cliprect, 1, 2);
204   m_tilemap[0]->draw(bitmap, cliprect, 1, 2);
206205
207   state->m_tilemap[1]->draw(bitmap, cliprect, 0, 4);
208   state->m_tilemap[0]->draw(bitmap, cliprect, 0, 4);
206   m_tilemap[1]->draw(bitmap, cliprect, 0, 4);
207   m_tilemap[0]->draw(bitmap, cliprect, 0, 4);
209208
210209   draw_sprites(screen.machine(), bitmap, cliprect);
211210   return 0;
212211}
213212
214SCREEN_UPDATE_IND16( bigkarnk )
213UINT32 gaelco_state::screen_update_bigkarnk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
215214{
216   gaelco_state *state = screen.machine().driver_data<gaelco_state>();
217215
218216   /* set scroll registers */
219   state->m_tilemap[0]->set_scrolly(0, state->m_vregs[0]);
220   state->m_tilemap[0]->set_scrollx(0, state->m_vregs[1] + 4);
221   state->m_tilemap[1]->set_scrolly(0, state->m_vregs[2]);
222   state->m_tilemap[1]->set_scrollx(0, state->m_vregs[3]);
217   m_tilemap[0]->set_scrolly(0, m_vregs[0]);
218   m_tilemap[0]->set_scrollx(0, m_vregs[1] + 4);
219   m_tilemap[1]->set_scrolly(0, m_vregs[2]);
220   m_tilemap[1]->set_scrollx(0, m_vregs[3]);
223221
224222   screen.machine().priority_bitmap.fill(0, cliprect);
225223   bitmap.fill(0, cliprect);
226224
227   state->m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3, 0);
228   state->m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3, 0);
225   m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3, 0);
226   m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3, 0);
229227
230   state->m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3, 1);
231   state->m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3, 1);
228   m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3, 1);
229   m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3, 1);
232230
233   state->m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2, 1);
234   state->m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2, 1);
231   m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2, 1);
232   m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2, 1);
235233
236   state->m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2, 2);
237   state->m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2, 2);
234   m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2, 2);
235   m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2, 2);
238236
239   state->m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 2);
240   state->m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 2);
237   m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 2);
238   m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 2);
241239
242   state->m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 4);
243   state->m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 4);
240   m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 4);
241   m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 4);
244242
245   state->m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 4);
246   state->m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 4);
243   m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 4);
244   m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 4);
247245
248   state->m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 8);
249   state->m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 8);
246   m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 8);
247   m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 8);
250248
251249   draw_sprites(screen.machine(), bitmap, cliprect);
252250   return 0;
trunk/src/mame/video/wecleman.c
r17967r17968
10141014                            Video Updates
10151015***************************************************************************/
10161016
1017SCREEN_UPDATE_RGB32( wecleman )
1017UINT32 wecleman_state::screen_update_wecleman(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
10181018{
1019   wecleman_state *state = screen.machine().driver_data<wecleman_state>();
10201019   const pen_t *mrct;
10211020   int video_on;
10221021   int fg_x, bg_x, fg_y, bg_y;
r17967r17968
10251024
10261025   mrct = screen.machine().pens;
10271026
1028   video_on = state->m_irqctrl & 0x40;
1027   video_on = m_irqctrl & 0x40;
10291028
1030   set_led_status(screen.machine(), 0, state->m_selected_ip & 0x04);   // Start lamp
1029   set_led_status(screen.machine(), 0, m_selected_ip & 0x04);   // Start lamp
10311030
1032   fg_y = (state->m_txtram[0x0f24>>1] & (TILEMAP_DIMY - 1));
1033   bg_y = (state->m_txtram[0x0f26>>1] & (TILEMAP_DIMY - 1));
1031   fg_y = (m_txtram[0x0f24>>1] & (TILEMAP_DIMY - 1));
1032   bg_y = (m_txtram[0x0f26>>1] & (TILEMAP_DIMY - 1));
10341033
1035   cloud_sx = state->m_txtram[0xfee>>1] + 0xb0;
1034   cloud_sx = m_txtram[0xfee>>1] + 0xb0;
10361035   cloud_sy = bg_y;
10371036
1038   state->m_bg_tilemap->set_scrolly(0, bg_y -BMP_PAD);
1039   state->m_fg_tilemap->set_scrolly(0, fg_y -BMP_PAD);
1037   m_bg_tilemap->set_scrolly(0, bg_y -BMP_PAD);
1038   m_fg_tilemap->set_scrolly(0, fg_y -BMP_PAD);
10401039
10411040   for (i=0; i<(28<<2); i+=4)
10421041   {
1043      fg_x = state->m_txtram[(i+0xf80)>>1] + (0xb0 -BMP_PAD);
1044      bg_x = state->m_txtram[(i+0xf82)>>1] + (0xb0 -BMP_PAD);
1042      fg_x = m_txtram[(i+0xf80)>>1] + (0xb0 -BMP_PAD);
1043      bg_x = m_txtram[(i+0xf82)>>1] + (0xb0 -BMP_PAD);
10451044
10461045      k = i<<1;
10471046      for (j=0; j<8; j++)
10481047      {
1049         state->m_fg_tilemap->set_scrollx((fg_y + k + j) & (TILEMAP_DIMY - 1), fg_x);
1050         state->m_bg_tilemap->set_scrollx((bg_y + k + j) & (TILEMAP_DIMY - 1), bg_x);
1048         m_fg_tilemap->set_scrollx((fg_y + k + j) & (TILEMAP_DIMY - 1), fg_x);
1049         m_bg_tilemap->set_scrollx((bg_y + k + j) & (TILEMAP_DIMY - 1), bg_x);
10511050      }
10521051   }
10531052
r17967r17968
10571056
10581057   get_sprite_info(screen.machine());
10591058
1060   bitmap.fill(state->m_black_pen, cliprect);
1059   bitmap.fill(m_black_pen, cliprect);
10611060
10621061   /* Draw the road (lines which have priority 0x02) */
10631062   if (video_on) wecleman_draw_road(screen.machine(), bitmap, cliprect, 0x02);
10641063
10651064   /* Draw the background */
1066   if (video_on) state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
1065   if (video_on) m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
10671066
10681067   // draws the cloud layer; needs work
1069   if (state->m_cloud_visible)
1068   if (m_cloud_visible)
10701069   {
10711070      /* palette hacks! */
10721071      ((pen_t *)mrct)[0] = ((pen_t *)mrct)[0x40] = ((pen_t *)mrct)[0x200] = ((pen_t *)mrct)[0x205];
r17967r17968
10751074         draw_cloud(
10761075         bitmap,
10771076         screen.machine().gfx[0],
1078         state->m_pageram+0x1800,
1077         m_pageram+0x1800,
10791078         BMP_PAD, BMP_PAD,
10801079         41, 20,
10811080         cloud_sx, cloud_sy,
10821081         6, 5,
1083         state->m_cloud_blend/BLEND_STEPS, 0);
1082         m_cloud_blend/BLEND_STEPS, 0);
10841083
1085      state->m_cloud_blend += state->m_cloud_ds;
1084      m_cloud_blend += m_cloud_ds;
10861085
1087      if (state->m_cloud_blend < BLEND_MIN)
1088         { state->m_cloud_blend = BLEND_MIN; state->m_cloud_ds = 0; *state->m_videostatus |= 1; }
1089      else if (state->m_cloud_blend > BLEND_MAX)
1090         { state->m_cloud_blend = BLEND_MAX; state->m_cloud_ds = 0; state->m_cloud_visible = 0; }
1086      if (m_cloud_blend < BLEND_MIN)
1087         { m_cloud_blend = BLEND_MIN; m_cloud_ds = 0; *m_videostatus |= 1; }
1088      else if (m_cloud_blend > BLEND_MAX)
1089         { m_cloud_blend = BLEND_MAX; m_cloud_ds = 0; m_cloud_visible = 0; }
10911090   }
10921091
10931092   /* Draw the foreground */
1094   if (video_on) state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
1093   if (video_on) m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
10951094
10961095   /* Draw the road (lines which have priority 0x04) */
10971096   if (video_on) wecleman_draw_road(screen.machine(), bitmap,cliprect, 0x04);
r17967r17968
11001099   if (video_on) sprite_draw(screen.machine(), bitmap,cliprect);
11011100
11021101   /* Draw the text layer */
1103   if (video_on) state->m_txt_tilemap->draw(bitmap, cliprect, 0, 0);
1102   if (video_on) m_txt_tilemap->draw(bitmap, cliprect, 0, 0);
11041103   return 0;
11051104}
11061105
r17967r17968
11081107                                Hot Chase
11091108***************************************************************************/
11101109
1111SCREEN_UPDATE_IND16( hotchase )
1110UINT32 wecleman_state::screen_update_hotchase(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
11121111{
1113   wecleman_state *state = screen.machine().driver_data<wecleman_state>();
11141112   device_t *k051316_1 = screen.machine().device("k051316_1");
11151113   device_t *k051316_2 = screen.machine().device("k051316_2");
11161114   int video_on;
11171115
1118   video_on = state->m_irqctrl & 0x40;
1116   video_on = m_irqctrl & 0x40;
11191117
1120   set_led_status(screen.machine(), 0, state->m_selected_ip & 0x04);   // Start lamp
1118   set_led_status(screen.machine(), 0, m_selected_ip & 0x04);   // Start lamp
11211119
11221120   get_sprite_info(screen.machine());
11231121
1124   bitmap.fill(state->m_black_pen, cliprect);
1122   bitmap.fill(m_black_pen, cliprect);
11251123
11261124   /* Draw the background */
11271125   if (video_on)
trunk/src/mame/video/tankbust.c
r17967r17968
221221}
222222
223223
224SCREEN_UPDATE_IND16( tankbust )
224UINT32 tankbust_state::screen_update_tankbust(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
225225{
226   tankbust_state *state = screen.machine().driver_data<tankbust_state>();
227226#if 0
228227   int i;
229228
230229   for (i=0; i<0x800; i++)
231230   {
232      int tile_attrib = state->m_colorram[i];
231      int tile_attrib = m_colorram[i];
233232
234233      if ( (tile_attrib&8) || (tile_attrib&0x80) )
235234      {
236         state->m_bg_tilemap->mark_tile_dirty(i);
235         m_bg_tilemap->mark_tile_dirty(i);
237236      }
238237   }
239238#endif
240239
241   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
240   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
242241   draw_sprites(screen.machine(), bitmap, cliprect);
243   state->m_bg_tilemap->draw(bitmap, cliprect, 1, 0);
242   m_bg_tilemap->draw(bitmap, cliprect, 1, 0);
244243
245   state->m_txt_tilemap->draw(bitmap, cliprect, 0,0);
244   m_txt_tilemap->draw(bitmap, cliprect, 0,0);
246245   return 0;
247246}
trunk/src/mame/video/bankp.c
r17967r17968
165165   save_item(NAME(m_priority));
166166}
167167
168SCREEN_UPDATE_IND16( bankp )
168UINT32 bankp_state::screen_update_bankp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
169169{
170   bankp_state *state = screen.machine().driver_data<bankp_state>();
171170
172   if (state->flip_screen())
171   if (flip_screen())
173172   {
174      state->m_fg_tilemap->set_scrollx(0, -state->m_scroll_x);
175      state->m_bg_tilemap->set_scrollx(0, 0);
173      m_fg_tilemap->set_scrollx(0, -m_scroll_x);
174      m_bg_tilemap->set_scrollx(0, 0);
176175   }
177176   else
178177   {
179      state->m_fg_tilemap->set_scrollx(0, state->m_scroll_x);
180      state->m_bg_tilemap->set_scrollx(0, 0);
178      m_fg_tilemap->set_scrollx(0, m_scroll_x);
179      m_bg_tilemap->set_scrollx(0, 0);
181180   }
182181
183182
184183   // only one bit matters?
185   switch (state->m_priority)
184   switch (m_priority)
186185   {
187186   case 0: // combat hawk uses this
188      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
189      state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
187      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
188      m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
190189      break;
191190   case 1:
192      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
193      state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
191      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
192      m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
194193      break;
195194   case 2:
196      state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
197      state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
195      m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
196      m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
198197      break;
199198   case 3:
200      state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); // just a guess
201      state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
199      m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); // just a guess
200      m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
202201      break;
203202   }
204203   return 0;
trunk/src/mame/video/crbaloon.c
r17967r17968
144144}
145145
146146
147SCREEN_UPDATE_IND16( crbaloon )
147UINT32 crbaloon_state::screen_update_crbaloon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
148148{
149   crbaloon_state *state = screen.machine().driver_data<crbaloon_state>();
150   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
149   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
151150
152151   draw_sprite_and_check_collision(screen.machine(), bitmap);
153152
trunk/src/mame/video/pastelg.c
r17967r17968
296296
297297
298298******************************************************************************/
299SCREEN_UPDATE_IND16( pastelg )
299UINT32 pastelg_state::screen_update_pastelg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
300300{
301   pastelg_state *state = screen.machine().driver_data<pastelg_state>();
302   if (state->m_dispflag)
301   if (m_dispflag)
303302   {
304303      int x, y;
305304      int width = screen.width();
r17967r17968
307306
308307      for (y = 0; y < height; y++)
309308         for (x = 0; x < width; x++)
310            bitmap.pix16(y, x) = state->m_videoram[(y * width) + x];
309            bitmap.pix16(y, x) = m_videoram[(y * width) + x];
311310   }
312311   else
313312      bitmap.fill(0, cliprect);
trunk/src/mame/video/portrait.c
r17967r17968
184184   }
185185}
186186
187SCREEN_UPDATE_IND16( portrait )
187UINT32 portrait_state::screen_update_portrait(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
188188{
189   portrait_state *state = screen.machine().driver_data<portrait_state>();
190189   rectangle cliprect_scroll, cliprect_no_scroll;
191190
192191   cliprect_scroll = cliprect_no_scroll = cliprect;
r17967r17968
194193   cliprect_no_scroll.min_x = cliprect_no_scroll.max_x - 111;
195194   cliprect_scroll.max_x    = cliprect_scroll.min_x    + 319;
196195
197   state->m_background->set_scrolly(0, 0);
198   state->m_foreground->set_scrolly(0, 0);
199   state->m_background->draw(bitmap, cliprect_no_scroll, 0, 0);
200   state->m_foreground->draw(bitmap, cliprect_no_scroll, 0, 0);
196   m_background->set_scrolly(0, 0);
197   m_foreground->set_scrolly(0, 0);
198   m_background->draw(bitmap, cliprect_no_scroll, 0, 0);
199   m_foreground->draw(bitmap, cliprect_no_scroll, 0, 0);
201200
202   state->m_background->set_scrolly(0, state->m_scroll);
203   state->m_foreground->set_scrolly(0, state->m_scroll);
204   state->m_background->draw(bitmap, cliprect_scroll, 0, 0);
205   state->m_foreground->draw(bitmap, cliprect_scroll, 0, 0);
201   m_background->set_scrolly(0, m_scroll);
202   m_foreground->set_scrolly(0, m_scroll);
203   m_background->draw(bitmap, cliprect_scroll, 0, 0);
204   m_foreground->draw(bitmap, cliprect_scroll, 0, 0);
206205
207206   draw_sprites(screen.machine(), bitmap,cliprect);
208207   return 0;
trunk/src/mame/video/bosco.c
r17967r17968
281281}
282282
283283
284SCREEN_UPDATE_IND16( bosco )
284UINT32 bosco_state::screen_update_bosco(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
285285{
286   bosco_state *state =  screen.machine().driver_data<bosco_state>();
287286
288287   /* the radar tilemap is just 8x32. We rely on the tilemap code to repeat it across
289288       the screen, and clip it to only the position where it is supposed to be shown */
290289   rectangle fg_clip = cliprect;
291290   rectangle bg_clip = cliprect;
292   if (state->flip_screen())
291   if (flip_screen())
293292   {
294293      bg_clip.min_x = 20*8;
295294      fg_clip.max_x = 20*8-1;
r17967r17968
301300   }
302301
303302   bitmap.fill(get_black_pen(screen.machine()), cliprect);
304   draw_stars(screen.machine(),bitmap,cliprect,state->flip_screen());
303   draw_stars(screen.machine(),bitmap,cliprect,flip_screen());
305304
306   state->m_bg_tilemap->draw(bitmap, bg_clip, 0,0);
307   state->m_fg_tilemap->draw(bitmap, fg_clip, 0,0);
305   m_bg_tilemap->draw(bitmap, bg_clip, 0,0);
306   m_fg_tilemap->draw(bitmap, fg_clip, 0,0);
308307
309308   draw_sprites(screen.machine(), bitmap,cliprect);
310309
311310   /* draw the high priority characters */
312   state->m_bg_tilemap->draw(bitmap, bg_clip, 1,0);
313   state->m_fg_tilemap->draw(bitmap, fg_clip, 1,0);
311   m_bg_tilemap->draw(bitmap, bg_clip, 1,0);
312   m_fg_tilemap->draw(bitmap, fg_clip, 1,0);
314313
315314   draw_bullets(screen.machine(), bitmap,cliprect);
316315
r17967r17968
318317}
319318
320319
321SCREEN_VBLANK( bosco )
320void bosco_state::screen_eof_bosco(screen_device &screen, bool state)
322321{
323322   // falling edge
324   if (!vblank_on)
323   if (!state)
325324   {
326      bosco_state *state =  screen.machine().driver_data<bosco_state>();
327325      static const int speedsx[8] = { -1, -2, -3, 0, 3, 2, 1, 0 };
328326      static const int speedsy[8] = { 0, -1, -2, -3, 0, 3, 2, 1 };
329327
330      state->m_stars_scrollx += speedsx[state->m_bosco_starcontrol[0] & 0x07];
331      state->m_stars_scrolly += speedsy[(state->m_bosco_starcontrol[0] & 0x38) >> 3];
328      m_stars_scrollx += speedsx[m_bosco_starcontrol[0] & 0x07];
329      m_stars_scrolly += speedsy[(m_bosco_starcontrol[0] & 0x38) >> 3];
332330   }
333331}
trunk/src/mame/video/munchmo.c
r17967r17968
148148   }
149149}
150150
151SCREEN_UPDATE_IND16( mnchmobl )
151UINT32 munchmo_state::screen_update_mnchmobl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
152152{
153153   draw_background(screen.machine(), bitmap, cliprect);
154154   draw_sprites(screen.machine(), bitmap, cliprect);
trunk/src/mame/video/funkybee.c
r17967r17968
155155   }
156156}
157157
158SCREEN_UPDATE_IND16( funkybee )
158UINT32 funkybee_state::screen_update_funkybee(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
159159{
160   funkybee_state *state = screen.machine().driver_data<funkybee_state>();
161   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
160   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
162161   draw_sprites(screen.machine(), bitmap, cliprect);
163162   draw_columns(screen.machine(), bitmap, cliprect);
164163   return 0;
trunk/src/mame/video/galastrm.c
r17967r17968
432432                SCREEN REFRESH
433433**************************************************************/
434434
435SCREEN_UPDATE_IND16( galastrm )
435UINT32 galastrm_state::screen_update_galastrm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
436436{
437   galastrm_state *state = screen.machine().driver_data<galastrm_state>();
438437   device_t *tc0100scn = screen.machine().device("tc0100scn");
439438   device_t *tc0480scp = screen.machine().device("tc0480scp");
440439   UINT8 layer[5];
r17967r17968
461460
462461   bitmap.fill(0, cliprect);
463462   priority_bitmap.fill(0, clip);
464   state->m_tmpbitmaps.fill(0, clip);
463   m_tmpbitmaps.fill(0, clip);
465464
466465   tc0100scn_tilemap_draw(tc0100scn, bitmap, cliprect, pivlayer[0], 0, 0);
467466   tc0100scn_tilemap_draw(tc0100scn, bitmap, cliprect, pivlayer[1], 0, 0);
r17967r17968
469468#if 0
470469   if (layer[0]==0 && layer[1]==3 && layer[2]==2 && layer[3]==1)
471470   {
472      if (!screen.machine().input().code_pressed(KEYCODE_Z)) tc0480scp_tilemap_draw(tc0480scp, state->m_tmpbitmaps, clip, layer[0], 0, 1);
473      if (!screen.machine().input().code_pressed(KEYCODE_X)) tc0480scp_tilemap_draw(tc0480scp, state->m_tmpbitmaps, clip, layer[1], 0, 4);
474      if (!screen.machine().input().code_pressed(KEYCODE_C)) tc0480scp_tilemap_draw(tc0480scp, state->m_tmpbitmaps, clip, layer[2], 0, 4);
475      if (!screen.machine().input().code_pressed(KEYCODE_V)) tc0480scp_tilemap_draw(tc0480scp, state->m_tmpbitmaps, clip, layer[3], 0, 4);
471      if (!screen.machine().input().code_pressed(KEYCODE_Z)) tc0480scp_tilemap_draw(tc0480scp, m_tmpbitmaps, clip, layer[0], 0, 1);
472      if (!screen.machine().input().code_pressed(KEYCODE_X)) tc0480scp_tilemap_draw(tc0480scp, m_tmpbitmaps, clip, layer[1], 0, 4);
473      if (!screen.machine().input().code_pressed(KEYCODE_C)) tc0480scp_tilemap_draw(tc0480scp, m_tmpbitmaps, clip, layer[2], 0, 4);
474      if (!screen.machine().input().code_pressed(KEYCODE_V)) tc0480scp_tilemap_draw(tc0480scp, m_tmpbitmaps, clip, layer[3], 0, 4);
476475   }
477476   else
478477   {
479      if (!screen.machine().input().code_pressed(KEYCODE_Z)) tc0480scp_tilemap_draw(tc0480scp, state->m_tmpbitmaps, clip, layer[0], 0, 1);
480      if (!screen.machine().input().code_pressed(KEYCODE_X)) tc0480scp_tilemap_draw(tc0480scp, state->m_tmpbitmaps, clip, layer[1], 0, 2);
481      if (!screen.machine().input().code_pressed(KEYCODE_C)) tc0480scp_tilemap_draw(tc0480scp, state->m_tmpbitmaps, clip, layer[2], 0, 4);
482      if (!screen.machine().input().code_pressed(KEYCODE_V)) tc0480scp_tilemap_draw(tc0480scp, state->m_tmpbitmaps, clip, layer[3], 0, 8);
478      if (!screen.machine().input().code_pressed(KEYCODE_Z)) tc0480scp_tilemap_draw(tc0480scp, m_tmpbitmaps, clip, layer[0], 0, 1);
479      if (!screen.machine().input().code_pressed(KEYCODE_X)) tc0480scp_tilemap_draw(tc0480scp, m_tmpbitmaps, clip, layer[1], 0, 2);
480      if (!screen.machine().input().code_pressed(KEYCODE_C)) tc0480scp_tilemap_draw(tc0480scp, m_tmpbitmaps, clip, layer[2], 0, 4);
481      if (!screen.machine().input().code_pressed(KEYCODE_V)) tc0480scp_tilemap_draw(tc0480scp, m_tmpbitmaps, clip, layer[3], 0, 8);
483482   }
484483
485484   if (layer[0]==3 && layer[1]==0 && layer[2]==1 && layer[3]==2)
r17967r17968
492491         for (x=0; x < priority_bitmap.width; x++)
493492         {
494493            pri = &priority_bitmap.pix8(y, x);
495            if (!(*pri & 0x02) && state->m_tmpbitmaps.pix16(y, x))
494            if (!(*pri & 0x02) && m_tmpbitmaps.pix16(y, x))
496495                *pri |= 0x04;
497496         }
498497      }
499498   }
500499
501500   draw_sprites_pre(screen.machine(), 42-X_OFFSET, -571+Y_OFFSET);
502   draw_sprites(screen.machine(),state->m_tmpbitmaps,clip,primasks,1);
501   draw_sprites(screen.machine(),m_tmpbitmaps,clip,primasks,1);
503502
504   copybitmap_trans(bitmap,state->m_polybitmap,0,0, 0,0,cliprect,0);
505   state->m_polybitmap->fill(0, clip);
506   tc0610_rotate_draw(screen.machine(),state->m_polybitmap,state->m_tmpbitmaps,cliprect);
503   copybitmap_trans(bitmap,m_polybitmap,0,0, 0,0,cliprect,0);
504   m_polybitmap->fill(0, clip);
505   tc0610_rotate_draw(screen.machine(),m_polybitmap,m_tmpbitmaps,cliprect);
507506
508507   priority_bitmap.fill(0, cliprect);
509508   draw_sprites(screen.machine(),bitmap,cliprect,primasks,0);
r17967r17968
516515#else
517516   if (layer[0]==0 && layer[1]==3 && layer[2]==2 && layer[3]==1)
518517   {
519      tc0480scp_tilemap_draw(tc0480scp, state->m_tmpbitmaps, clip, layer[0], 0, 1);
520      tc0480scp_tilemap_draw(tc0480scp, state->m_tmpbitmaps, clip, layer[1], 0, 4);
521      tc0480scp_tilemap_draw(tc0480scp, state->m_tmpbitmaps, clip, layer[2], 0, 4);
522      tc0480scp_tilemap_draw(tc0480scp, state->m_tmpbitmaps, clip, layer[3], 0, 4);
518      tc0480scp_tilemap_draw(tc0480scp, m_tmpbitmaps, clip, layer[0], 0, 1);
519      tc0480scp_tilemap_draw(tc0480scp, m_tmpbitmaps, clip, layer[1], 0, 4);
520      tc0480scp_tilemap_draw(tc0480scp, m_tmpbitmaps, clip, layer[2], 0, 4);
521      tc0480scp_tilemap_draw(tc0480scp, m_tmpbitmaps, clip, layer[3], 0, 4);
523522   }
524523   else
525524   {
526      tc0480scp_tilemap_draw(tc0480scp, state->m_tmpbitmaps, clip, layer[0], 0, 1);
527      tc0480scp_tilemap_draw(tc0480scp, state->m_tmpbitmaps, clip, layer[1], 0, 2);
528      tc0480scp_tilemap_draw(tc0480scp, state->m_tmpbitmaps, clip, layer[2], 0, 4);
529      tc0480scp_tilemap_draw(tc0480scp, state->m_tmpbitmaps, clip, layer[3], 0, 8);
525      tc0480scp_tilemap_draw(tc0480scp, m_tmpbitmaps, clip, layer[0], 0, 1);
526      tc0480scp_tilemap_draw(tc0480scp, m_tmpbitmaps, clip, layer[1], 0, 2);
527      tc0480scp_tilemap_draw(tc0480scp, m_tmpbitmaps, clip, layer[2], 0, 4);
528      tc0480scp_tilemap_draw(tc0480scp, m_tmpbitmaps, clip, layer[3], 0, 8);
530529   }
531530
532531   if (layer[0]==3 && layer[1]==0 && layer[2]==1 && layer[3]==2)
r17967r17968
539538         for (x=0; x < priority_bitmap.width(); x++)
540539         {
541540            pri = &priority_bitmap.pix8(y, x);
542            if (!(*pri & 0x02) && state->m_tmpbitmaps.pix16(y, x))
541            if (!(*pri & 0x02) && m_tmpbitmaps.pix16(y, x))
543542                *pri |= 0x04;
544543         }
545544      }
546545   }
547546
548547   draw_sprites_pre(screen.machine(), 42-X_OFFSET, -571+Y_OFFSET);
549   draw_sprites(screen.machine(),state->m_tmpbitmaps,clip,primasks,1);
548   draw_sprites(screen.machine(),m_tmpbitmaps,clip,primasks,1);
550549
551   copybitmap_trans(bitmap,state->m_polybitmap,0,0, 0,0,cliprect,0);
552   state->m_polybitmap.fill(0, clip);
553   tc0610_rotate_draw(screen.machine(),state->m_polybitmap,state->m_tmpbitmaps,cliprect);
550   copybitmap_trans(bitmap,m_polybitmap,0,0, 0,0,cliprect,0);
551   m_polybitmap.fill(0, clip);
552   tc0610_rotate_draw(screen.machine(),m_polybitmap,m_tmpbitmaps,cliprect);
554553
555554   priority_bitmap.fill(0, cliprect);
556555   draw_sprites(screen.machine(),bitmap,cliprect,primasks,0);
trunk/src/mame/video/tetrisp2.c
r17967r17968
419419
420420***************************************************************************/
421421
422SCREEN_UPDATE_IND16( tetrisp2 )
422UINT32 tetrisp2_state::screen_update_tetrisp2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
423423{
424   tetrisp2_state *state = screen.machine().driver_data<tetrisp2_state>();
425424   int flipscreen;
426425   int asc_pri;
427426   int scr_pri;
428427   int rot_pri;
429428   int rot_ofsx, rot_ofsy;
430429
431   flipscreen = (state->m_systemregs[0x00] & 0x02);
430   flipscreen = (m_systemregs[0x00] & 0x02);
432431
433432   /* Black background color */
434433   bitmap.fill(0, cliprect);
435434   screen.machine().priority_bitmap.fill(0);
436435
437436   /* Flip Screen */
438   if (flipscreen != state->m_flipscreen_old)
437   if (flipscreen != m_flipscreen_old)
439438   {
440      state->m_flipscreen_old = flipscreen;
439      m_flipscreen_old = flipscreen;
441440      screen.machine().tilemap().set_flip_all(flipscreen ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0);
442441   }
443442
r17967r17968
453452      rot_ofsy = 0x400;
454453   }
455454
456   state->m_tilemap_bg->set_scrollx(0, (((state->m_scroll_bg[ 0 ] + 0x0014) + state->m_scroll_bg[ 2 ] ) & 0xffff));
457   state->m_tilemap_bg->set_scrolly(0, (((state->m_scroll_bg[ 3 ] + 0x0000) + state->m_scroll_bg[ 5 ] ) & 0xffff));
455   m_tilemap_bg->set_scrollx(0, (((m_scroll_bg[ 0 ] + 0x0014) + m_scroll_bg[ 2 ] ) & 0xffff));
456   m_tilemap_bg->set_scrolly(0, (((m_scroll_bg[ 3 ] + 0x0000) + m_scroll_bg[ 5 ] ) & 0xffff));
458457
459   state->m_tilemap_fg->set_scrollx(0, state->m_scroll_fg[ 2 ]);
460   state->m_tilemap_fg->set_scrolly(0, state->m_scroll_fg[ 5 ]);
458   m_tilemap_fg->set_scrollx(0, m_scroll_fg[ 2 ]);
459   m_tilemap_fg->set_scrolly(0, m_scroll_fg[ 5 ]);
461460
462   state->m_tilemap_rot->set_scrollx(0, (state->m_rotregs[ 0 ] - rot_ofsx));
463   state->m_tilemap_rot->set_scrolly(0, (state->m_rotregs[ 2 ] - rot_ofsy));
461   m_tilemap_rot->set_scrollx(0, (m_rotregs[ 0 ] - rot_ofsx));
462   m_tilemap_rot->set_scrolly(0, (m_rotregs[ 2 ] - rot_ofsy));
464463
465464   asc_pri = scr_pri = rot_pri = 0;
466465
467   if((state->m_priority[0x2b00 / 2] & 0x00ff) == 0x0034)
466   if((m_priority[0x2b00 / 2] & 0x00ff) == 0x0034)
468467      asc_pri++;
469468   else
470469      rot_pri++;
471470
472   if((state->m_priority[0x2e00 / 2] & 0x00ff) == 0x0034)
471   if((m_priority[0x2e00 / 2] & 0x00ff) == 0x0034)
473472      asc_pri++;
474473   else
475474      scr_pri++;
476475
477   if((state->m_priority[0x3a00 / 2] & 0x00ff) == 0x000c)
476   if((m_priority[0x3a00 / 2] & 0x00ff) == 0x000c)
478477      scr_pri++;
479478   else
480479      rot_pri++;
481480
482481   if (rot_pri == 0)
483      state->m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1);
482      m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1);
484483   else if (scr_pri == 0)
485      state->m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0);
484      m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0);
486485   else if (asc_pri == 0)
487      state->m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
486      m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
488487
489488   if (rot_pri == 1)
490      state->m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1);
489      m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1);
491490   else if (scr_pri == 1)
492      state->m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0);
491      m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0);
493492   else if (asc_pri == 1)
494      state->m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
493      m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
495494
496495   if (rot_pri == 2)
497      state->m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1);
496      m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1);
498497   else if (scr_pri == 2)
499      state->m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0);
498      m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0);
500499   else if (asc_pri == 2)
501      state->m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
500      m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
502501
503   tetrisp2_draw_sprites(   screen.machine(), bitmap, screen.machine().priority_bitmap, cliprect, state->m_priority,
504                     state->m_spriteram, state->m_spriteram.bytes(), 0, (state->m_systemregs[0x00] & 0x02)   );
502   tetrisp2_draw_sprites(   screen.machine(), bitmap, screen.machine().priority_bitmap, cliprect, m_priority,
503                     m_spriteram, m_spriteram.bytes(), 0, (m_systemregs[0x00] & 0x02)   );
505504   return 0;
506505}
507506
508SCREEN_UPDATE_IND16( rockntread )
507UINT32 tetrisp2_state::screen_update_rockntread(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
509508{
510   tetrisp2_state *state = screen.machine().driver_data<tetrisp2_state>();
511509   int flipscreen;
512510   int asc_pri;
513511   int scr_pri;
514512   int rot_pri;
515513   int rot_ofsx, rot_ofsy;
516514
517   flipscreen = (state->m_systemregs[0x00] & 0x02);
515   flipscreen = (m_systemregs[0x00] & 0x02);
518516
519517   /* Black background color */
520518   bitmap.fill(0, cliprect);
521519   screen.machine().priority_bitmap.fill(0);
522520
523521   /* Flip Screen */
524   if (flipscreen != state->m_flipscreen_old)
522   if (flipscreen != m_flipscreen_old)
525523   {
526      state->m_flipscreen_old = flipscreen;
524      m_flipscreen_old = flipscreen;
527525      screen.machine().tilemap().set_flip_all(flipscreen ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0);
528526   }
529527
r17967r17968
539537      rot_ofsy = 0x400;
540538   }
541539
542   state->m_tilemap_bg->set_scrollx(0, (((state->m_scroll_bg[ 0 ] + 0x0014) + state->m_scroll_bg[ 2 ] ) & 0xffff));
543   state->m_tilemap_bg->set_scrolly(0, (((state->m_scroll_bg[ 3 ] + 0x0000) + state->m_scroll_bg[ 5 ] ) & 0xffff));
540   m_tilemap_bg->set_scrollx(0, (((m_scroll_bg[ 0 ] + 0x0014) + m_scroll_bg[ 2 ] ) & 0xffff));
541   m_tilemap_bg->set_scrolly(0, (((m_scroll_bg[ 3 ] + 0x0000) + m_scroll_bg[ 5 ] ) & 0xffff));
544542
545   state->m_tilemap_fg->set_scrollx(0, state->m_scroll_fg[ 2 ]);
546   state->m_tilemap_fg->set_scrolly(0, state->m_scroll_fg[ 5 ]);
543   m_tilemap_fg->set_scrollx(0, m_scroll_fg[ 2 ]);
544   m_tilemap_fg->set_scrolly(0, m_scroll_fg[ 5 ]);
547545
548   state->m_tilemap_rot->set_scrollx(0, (state->m_rotregs[ 0 ] - rot_ofsx));
549   state->m_tilemap_rot->set_scrolly(0, (state->m_rotregs[ 2 ] - rot_ofsy));
546   m_tilemap_rot->set_scrollx(0, (m_rotregs[ 0 ] - rot_ofsx));
547   m_tilemap_rot->set_scrolly(0, (m_rotregs[ 2 ] - rot_ofsy));
550548
551549   asc_pri = scr_pri = rot_pri = 0;
552550
553   if((state->m_priority[0x2b00 / 2] & 0x00ff) == 0x0034)
551   if((m_priority[0x2b00 / 2] & 0x00ff) == 0x0034)
554552      asc_pri++;
555553   else
556554      rot_pri++;
557555
558   if((state->m_priority[0x2e00 / 2] & 0x00ff) == 0x0034)
556   if((m_priority[0x2e00 / 2] & 0x00ff) == 0x0034)
559557      asc_pri++;
560558   else
561559      scr_pri++;
562560
563   if((state->m_priority[0x3a00 / 2] & 0x00ff) == 0x000c)
561   if((m_priority[0x3a00 / 2] & 0x00ff) == 0x000c)
564562      scr_pri++;
565563   else
566564      rot_pri++;
567565
568566   if (rot_pri == 0)
569      state->m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1);
567      m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1);
570568   else if (scr_pri == 0)
571      state->m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0);
569      m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0);
572570   else if (asc_pri == 0)
573      state->m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
571      m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
574572
575573   if (rot_pri == 1)
576      state->m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1);
574      m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1);
577575   else if (scr_pri == 1)
578      state->m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0);
576      m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0);
579577   else if (asc_pri == 1)
580      state->m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
578      m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
581579
582580   if (rot_pri == 2)
583      state->m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1);
581      m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1);
584582   else if (scr_pri == 2)
585      state->m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0);
583      m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0);
586584   else if (asc_pri == 2)
587      state->m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
585      m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
588586
589   tetrisp2_draw_sprites(   screen.machine(), bitmap, screen.machine().priority_bitmap, cliprect, state->m_priority,
590                     state->m_spriteram, state->m_spriteram.bytes(), 0, (state->m_systemregs[0x00] & 0x02)   );
587   tetrisp2_draw_sprites(   screen.machine(), bitmap, screen.machine().priority_bitmap, cliprect, m_priority,
588                     m_spriteram, m_spriteram.bytes(), 0, (m_systemregs[0x00] & 0x02)   );
591589   return 0;
592590}
593591
594592
595593
596594
597SCREEN_UPDATE_RGB32( rocknms_left )
595UINT32 tetrisp2_state::screen_update_rocknms_left(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
598596{
599   tetrisp2_state *state = screen.machine().driver_data<tetrisp2_state>();
600597   int asc_pri;
601598   int scr_pri;
602599   int rot_pri;
603600
604   state->m_tilemap_sub_bg->set_scrollx(0, state->m_rocknms_sub_scroll_bg[ 2 ] + 0x000);
605   state->m_tilemap_sub_bg->set_scrolly(0, state->m_rocknms_sub_scroll_bg[ 5 ] + 0x000);
606   state->m_tilemap_sub_fg->set_scrollx(0, state->m_rocknms_sub_scroll_fg[ 2 ] + 0x000);
607   state->m_tilemap_sub_fg->set_scrolly(0, state->m_rocknms_sub_scroll_fg[ 5 ] + 0x000);
608   state->m_tilemap_sub_rot->set_scrollx(0, state->m_rocknms_sub_rotregs[ 0 ] + 0x400);
609   state->m_tilemap_sub_rot->set_scrolly(0, state->m_rocknms_sub_rotregs[ 2 ] + 0x400);
601   m_tilemap_sub_bg->set_scrollx(0, m_rocknms_sub_scroll_bg[ 2 ] + 0x000);
602   m_tilemap_sub_bg->set_scrolly(0, m_rocknms_sub_scroll_bg[ 5 ] + 0x000);
603   m_tilemap_sub_fg->set_scrollx(0, m_rocknms_sub_scroll_fg[ 2 ] + 0x000);
604   m_tilemap_sub_fg->set_scrolly(0, m_rocknms_sub_scroll_fg[ 5 ] + 0x000);
605   m_tilemap_sub_rot->set_scrollx(0, m_rocknms_sub_rotregs[ 0 ] + 0x400);
606   m_tilemap_sub_rot->set_scrolly(0, m_rocknms_sub_rotregs[ 2 ] + 0x400);
610607
611608   bitmap.fill(screen.machine().pens[0x0000], cliprect);
612609   screen.machine().priority_bitmap.fill(0, cliprect);
613610
614611   asc_pri = scr_pri = rot_pri = 0;
615612
616   if((state->m_rocknms_sub_priority[0x2b00 / 2] & 0x00ff) == 0x0034)
613   if((m_rocknms_sub_priority[0x2b00 / 2] & 0x00ff) == 0x0034)
617614      asc_pri++;
618615   else
619616      rot_pri++;
620617
621   if((state->m_rocknms_sub_priority[0x2e00 / 2] & 0x00ff) == 0x0034)
618   if((m_rocknms_sub_priority[0x2e00 / 2] & 0x00ff) == 0x0034)
622619      asc_pri++;
623620   else
624621      scr_pri++;
625622
626   if((state->m_rocknms_sub_priority[0x3a00 / 2] & 0x00ff) == 0x000c)
623   if((m_rocknms_sub_priority[0x3a00 / 2] & 0x00ff) == 0x000c)
627624      scr_pri++;
628625   else
629626      rot_pri++;
630627
631628   if (rot_pri == 0)
632      state->m_tilemap_sub_rot->draw(bitmap, cliprect, 0, 1 << 1);
629      m_tilemap_sub_rot->draw(bitmap, cliprect, 0, 1 << 1);
633630   else if (scr_pri == 0)
634      state->m_tilemap_sub_bg->draw(bitmap, cliprect, 0, 1 << 0);
631      m_tilemap_sub_bg->draw(bitmap, cliprect, 0, 1 << 0);
635632   else if (asc_pri == 0)
636      state->m_tilemap_sub_fg->draw(bitmap, cliprect, 0, 1 << 2);
633      m_tilemap_sub_fg->draw(bitmap, cliprect, 0, 1 << 2);
637634
638635   if (rot_pri == 1)
639      state->m_tilemap_sub_rot->draw(bitmap, cliprect, 0, 1 << 1);
636      m_tilemap_sub_rot->draw(bitmap, cliprect, 0, 1 << 1);
640637   else if (scr_pri == 1)
641      state->m_tilemap_sub_bg->draw(bitmap, cliprect, 0, 1 << 0);
638      m_tilemap_sub_bg->draw(bitmap, cliprect, 0, 1 << 0);
642639   else if (asc_pri == 1)
643      state->m_tilemap_sub_fg->draw(bitmap, cliprect, 0, 1 << 2);
640      m_tilemap_sub_fg->draw(bitmap, cliprect, 0, 1 << 2);
644641
645642   if (rot_pri == 2)
646      state->m_tilemap_sub_rot->draw(bitmap, cliprect, 0, 1 << 1);
643      m_tilemap_sub_rot->draw(bitmap, cliprect, 0, 1 << 1);
647644   else if (scr_pri == 2)
648      state->m_tilemap_sub_bg->draw(bitmap, cliprect, 0, 1 << 0);
645      m_tilemap_sub_bg->draw(bitmap, cliprect, 0, 1 << 0);
649646   else if (asc_pri == 2)
650      state->m_tilemap_sub_fg->draw(bitmap, cliprect, 0, 1 << 2);
647      m_tilemap_sub_fg->draw(bitmap, cliprect, 0, 1 << 2);
651648
652   tetrisp2_draw_sprites(   screen.machine(), bitmap, screen.machine().priority_bitmap, cliprect, state->m_priority,
653                     state->m_spriteram2, state->m_spriteram2.bytes(), 4, (state->m_systemregs[0x00] & 0x02)   );
649   tetrisp2_draw_sprites(   screen.machine(), bitmap, screen.machine().priority_bitmap, cliprect, m_priority,
650                     m_spriteram2, m_spriteram2.bytes(), 4, (m_systemregs[0x00] & 0x02)   );
654651
655652   return 0;
656653}
657654
658SCREEN_UPDATE_RGB32( rocknms_right )
655UINT32 tetrisp2_state::screen_update_rocknms_right(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
659656{
660   tetrisp2_state *state = screen.machine().driver_data<tetrisp2_state>();
661657   int asc_pri;
662658   int scr_pri;
663659   int rot_pri;
664660
665   state->m_tilemap_bg->set_scrollx(0, state->m_scroll_bg[ 2 ] + 0x000);
666   state->m_tilemap_bg->set_scrolly(0, state->m_scroll_bg[ 5 ] + 0x000);
667   state->m_tilemap_fg->set_scrollx(0, state->m_scroll_fg[ 2 ] + 0x000);
668   state->m_tilemap_fg->set_scrolly(0, state->m_scroll_fg[ 5 ] + 0x000);
669   state->m_tilemap_rot->set_scrollx(0, state->m_rotregs[ 0 ] + 0x400);
670   state->m_tilemap_rot->set_scrolly(0, state->m_rotregs[ 2 ] + 0x400);
661   m_tilemap_bg->set_scrollx(0, m_scroll_bg[ 2 ] + 0x000);
662   m_tilemap_bg->set_scrolly(0, m_scroll_bg[ 5 ] + 0x000);
663   m_tilemap_fg->set_scrollx(0, m_scroll_fg[ 2 ] + 0x000);
664   m_tilemap_fg->set_scrolly(0, m_scroll_fg[ 5 ] + 0x000);
665   m_tilemap_rot->set_scrollx(0, m_rotregs[ 0 ] + 0x400);
666   m_tilemap_rot->set_scrolly(0, m_rotregs[ 2 ] + 0x400);
671667
672668   /* Black background color */
673669   bitmap.fill(screen.machine().pens[0x0000], cliprect);
r17967r17968
675671
676672   asc_pri = scr_pri = rot_pri = 0;
677673
678   if((state->m_priority[0x2b00 / 2] & 0x00ff) == 0x0034)
674   if((m_priority[0x2b00 / 2] & 0x00ff) == 0x0034)
679675      asc_pri++;
680676   else
681677      rot_pri++;
682678
683   if((state->m_priority[0x2e00 / 2] & 0x00ff) == 0x0034)
679   if((m_priority[0x2e00 / 2] & 0x00ff) == 0x0034)
684680      asc_pri++;
685681   else
686682      scr_pri++;
687683
688   if((state->m_priority[0x3a00 / 2] & 0x00ff) == 0x000c)
684   if((m_priority[0x3a00 / 2] & 0x00ff) == 0x000c)
689685      scr_pri++;
690686   else
691687      rot_pri++;
692688
693689   if (rot_pri == 0)
694      state->m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1);
690      m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1);
695691   else if (scr_pri == 0)
696      state->m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0);
692      m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0);
697693   else if (asc_pri == 0)
698      state->m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
694      m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
699695
700696   if (rot_pri == 1)
701      state->m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1);
697      m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1);
702698   else if (scr_pri == 1)
703      state->m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0);
699      m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0);
704700   else if (asc_pri == 1)
705      state->m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
701      m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
706702
707703   if (rot_pri == 2)
708      state->m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1);
704      m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1);
709705   else if (scr_pri == 2)
710      state->m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0);
706      m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0);
711707   else if (asc_pri == 2)
712      state->m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
708      m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
713709
714   tetrisp2_draw_sprites(   screen.machine(), bitmap, screen.machine().priority_bitmap, cliprect, state->m_priority,
715                     state->m_spriteram, state->m_spriteram.bytes(), 0, (state->m_systemregs[0x00] & 0x02)   );
710   tetrisp2_draw_sprites(   screen.machine(), bitmap, screen.machine().priority_bitmap, cliprect, m_priority,
711                     m_spriteram, m_spriteram.bytes(), 0, (m_systemregs[0x00] & 0x02)   );
716712
717713   return 0;
718714}
r17967r17968
761757   ms32_rearrange_sprites(machine(), "sprites_vert");
762758}
763759
764SCREEN_UPDATE_IND16( stepstag_left )
760UINT32 stepstag_state::screen_update_stepstag_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
765761{
766   stepstag_state *state = screen.machine().driver_data<stepstag_state>();
767762
768763   bitmap.fill(0, cliprect);
769764   screen.machine().priority_bitmap.fill(0);
770765
771   tetrisp2_draw_sprites(   screen.machine(), bitmap, screen.machine().priority_bitmap, cliprect, state->m_priority,
772                     state->m_spriteram, state->m_spriteram.bytes(), 1, (state->m_systemregs[0x00] & 0x02)   );
766   tetrisp2_draw_sprites(   screen.machine(), bitmap, screen.machine().priority_bitmap, cliprect, m_priority,
767                     m_spriteram, m_spriteram.bytes(), 1, (m_systemregs[0x00] & 0x02)   );
773768   return 0;
774769}
775SCREEN_UPDATE_IND16( stepstag_right )
770UINT32 stepstag_state::screen_update_stepstag_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
776771{
777   stepstag_state *state = screen.machine().driver_data<stepstag_state>();
778772
779773   bitmap.fill(0, cliprect);
780774   screen.machine().priority_bitmap.fill(0);
781775
782   tetrisp2_draw_sprites(   screen.machine(), bitmap, screen.machine().priority_bitmap, cliprect, state->m_priority,
783                     state->m_spriteram3, state->m_spriteram3.bytes(), 1, (state->m_systemregs[0x00] & 0x02)   );
776   tetrisp2_draw_sprites(   screen.machine(), bitmap, screen.machine().priority_bitmap, cliprect, m_priority,
777                     m_spriteram3, m_spriteram3.bytes(), 1, (m_systemregs[0x00] & 0x02)   );
784778   return 0;
785779}
786780
787SCREEN_UPDATE_IND16( stepstag_mid )
781UINT32 stepstag_state::screen_update_stepstag_mid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
788782{
789   stepstag_state *state = screen.machine().driver_data<stepstag_state>();
790783
791784   bitmap.fill(0, cliprect);
792785   screen.machine().priority_bitmap.fill(0);
793786
794   tetrisp2_draw_sprites(   screen.machine(), bitmap, screen.machine().priority_bitmap, cliprect, state->m_priority,
795                     state->m_spriteram2, state->m_spriteram2.bytes(), 0, (state->m_systemregs[0x00] & 0x02)   );
787   tetrisp2_draw_sprites(   screen.machine(), bitmap, screen.machine().priority_bitmap, cliprect, m_priority,
788                     m_spriteram2, m_spriteram2.bytes(), 0, (m_systemregs[0x00] & 0x02)   );
796789
797   state->m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
790   m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
798791
799792   return 0;
800793}
trunk/src/mame/video/lastduel.c
r17967r17968
255255   }
256256}
257257
258SCREEN_UPDATE_IND16( lastduel )
258UINT32 lastduel_state::screen_update_lastduel(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
259259{
260   lastduel_state *state = screen.machine().driver_data<lastduel_state>();
261260
262   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
263   state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
261   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
262   m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
264263   draw_sprites(screen.machine(), bitmap, cliprect, 0);
265   state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
264   m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
266265   draw_sprites(screen.machine(), bitmap, cliprect, 1);
267   state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
266   m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
268267   return 0;
269268}
270269
271SCREEN_UPDATE_IND16( madgear )
270UINT32 lastduel_state::screen_update_madgear(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
272271{
273   lastduel_state *state = screen.machine().driver_data<lastduel_state>();
274272
275   if (state->m_tilemap_priority)
273   if (m_tilemap_priority)
276274   {
277      state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | TILEMAP_DRAW_OPAQUE, 0);
275      m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | TILEMAP_DRAW_OPAQUE, 0);
278276      draw_sprites(screen.machine(), bitmap, cliprect, 0);
279      state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
280      state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
277      m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
278      m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
281279      draw_sprites(screen.machine(), bitmap, cliprect, 1);
282280   }
283281   else
284282   {
285      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
286      state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
283      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
284      m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
287285      draw_sprites(screen.machine(), bitmap, cliprect, 0);
288      state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
286      m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
289287      draw_sprites(screen.machine(), bitmap, cliprect, 1);
290288   }
291   state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
289   m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
292290   return 0;
293291}
trunk/src/mame/video/alpha68k.c
r17967r17968
124124
125125/******************************************************************************/
126126
127SCREEN_UPDATE_IND16( alpha68k_II )
127UINT32 alpha68k_state::screen_update_alpha68k_II(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
128128{
129   alpha68k_state *state = screen.machine().driver_data<alpha68k_state>();
130129
131   if (state->m_last_bank != state->m_bank_base)
130   if (m_last_bank != m_bank_base)
132131      screen.machine().tilemap().mark_all_dirty();
133132
134   state->m_last_bank = state->m_bank_base;
135   screen.machine().tilemap().set_flip_all(state->m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
133   m_last_bank = m_bank_base;
134   screen.machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
136135
137136   bitmap.fill(2047, cliprect);
138137//AT
r17967r17968
141140   draw_sprites(screen.machine(), bitmap, cliprect, 2, 0x0000, 0x0800);
142141   draw_sprites(screen.machine(), bitmap, cliprect, 0, 0x0000, 0x07c0);
143142//ZT
144   state->m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
143   m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
145144   return 0;
146145}
147146
r17967r17968
270269   }
271270}
272271
273SCREEN_UPDATE_IND16( alpha68k_V )
272UINT32 alpha68k_state::screen_update_alpha68k_V(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
274273{
275   alpha68k_state *state = screen.machine().driver_data<alpha68k_state>();
276   UINT16 *spriteram = state->m_spriteram;
274   UINT16 *spriteram = m_spriteram;
277275
278   if (state->m_last_bank != state->m_bank_base)
276   if (m_last_bank != m_bank_base)
279277      screen.machine().tilemap().mark_all_dirty();
280278
281   state->m_last_bank = state->m_bank_base;
282   screen.machine().tilemap().set_flip_all(state->m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
279   m_last_bank = m_bank_base;
280   screen.machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
283281
284282   bitmap.fill(4095, cliprect);
285283
286284   /* This appears to be correct priority */
287   if (state->m_microcontroller_id == 0x8814) /* Sky Adventure */
285   if (m_microcontroller_id == 0x8814) /* Sky Adventure */
288286   {
289287      draw_sprites_V(screen.machine(), bitmap, cliprect, 0, 0x07c0, 0x0800, 0, 0x8000, 0x7fff);
290288      draw_sprites_V(screen.machine(), bitmap, cliprect, 1, 0x0000, 0x0800, 0, 0x8000, 0x7fff);
r17967r17968
307305      draw_sprites_V(screen.machine(), bitmap, cliprect, 0, 0x0000, 0x07c0, 0x8000, 0, 0x7fff);
308306   }
309307
310   state->m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
308   m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
311309   return 0;
312310}
313311
314SCREEN_UPDATE_IND16( alpha68k_V_sb )
312UINT32 alpha68k_state::screen_update_alpha68k_V_sb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
315313{
316   alpha68k_state *state = screen.machine().driver_data<alpha68k_state>();
317314
318   if (state->m_last_bank != state->m_bank_base)
315   if (m_last_bank != m_bank_base)
319316      screen.machine().tilemap().mark_all_dirty();
320317
321   state->m_last_bank = state->m_bank_base;
322   screen.machine().tilemap().set_flip_all(state->m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
318   m_last_bank = m_bank_base;
319   screen.machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
323320
324321   bitmap.fill(4095, cliprect);
325322
r17967r17968
329326   draw_sprites_V(screen.machine(), bitmap, cliprect, 2, 0x0000, 0x0800, 0x4000, 0x8000, 0x3fff);
330327   draw_sprites_V(screen.machine(), bitmap, cliprect, 0, 0x0000, 0x07c0, 0x4000, 0x8000, 0x3fff);
331328
332   state->m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
329   m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
333330   return 0;
334331}
335332
r17967r17968
363360   }
364361}
365362
366SCREEN_UPDATE_IND16( alpha68k_I )
363UINT32 alpha68k_state::screen_update_alpha68k_I(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
367364{
368   alpha68k_state *state = screen.machine().driver_data<alpha68k_state>();
369   int yshift = (state->m_microcontroller_id == 0x890a) ? 1 : 0; // The Next Space is 1 pixel off
365   int yshift = (m_microcontroller_id == 0x890a) ? 1 : 0; // The Next Space is 1 pixel off
370366
371367   bitmap.fill(get_black_pen(screen.machine()), cliprect);
372368
r17967r17968
498494   }
499495}
500496
501SCREEN_UPDATE_IND16( kyros )
497UINT32 alpha68k_state::screen_update_kyros(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
502498{
503   alpha68k_state *state = screen.machine().driver_data<alpha68k_state>();
504   colortable_entry_set_value(screen.machine().colortable, 0x100, *state->m_videoram & 0xff);
499   colortable_entry_set_value(screen.machine().colortable, 0x100, *m_videoram & 0xff);
505500   bitmap.fill(0x100, cliprect); //AT
506501
507502   kyros_draw_sprites(screen.machine(), bitmap, cliprect, 2, 0x0800);
r17967r17968
558553   }
559554}
560555
561SCREEN_UPDATE_IND16( sstingry )
556UINT32 alpha68k_state::screen_update_sstingry(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
562557{
563   alpha68k_state *state = screen.machine().driver_data<alpha68k_state>();
564   colortable_entry_set_value(screen.machine().colortable, 0x100, *state->m_videoram & 0xff);
558   colortable_entry_set_value(screen.machine().colortable, 0x100, *m_videoram & 0xff);
565559   bitmap.fill(0x100, cliprect); //AT
566560
567561   sstingry_draw_sprites(screen.machine(), bitmap, cliprect, 2, 0x0800);
trunk/src/mame/video/drgnmst.c
r17967r17968
132132   m_md_tilemap->set_scroll_rows(1024);
133133}
134134
135SCREEN_UPDATE_IND16(drgnmst)
135UINT32 drgnmst_state::screen_update_drgnmst(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
136136{
137   drgnmst_state *state = screen.machine().driver_data<drgnmst_state>();
138137   int y, rowscroll_bank;
139138
140   state->m_bg_tilemap->set_scrollx(0, state->m_vidregs[10] - 18); // verify
141   state->m_bg_tilemap->set_scrolly(0, state->m_vidregs[11]); // verify
139   m_bg_tilemap->set_scrollx(0, m_vidregs[10] - 18); // verify
140   m_bg_tilemap->set_scrolly(0, m_vidregs[11]); // verify
142141
143//  state->m_md_tilemap->set_scrollx(0, state->m_vidregs[8] - 16); // rowscrolled
144   state->m_md_tilemap->set_scrolly(0, state->m_vidregs[9]); // verify
142//  m_md_tilemap->set_scrollx(0, m_vidregs[8] - 16); // rowscrolled
143   m_md_tilemap->set_scrolly(0, m_vidregs[9]); // verify
145144
146   state->m_fg_tilemap->set_scrollx(0, state->m_vidregs[6] - 18); // verify (test mode colour test needs it)
147   state->m_fg_tilemap->set_scrolly(0, state->m_vidregs[7]); // verify
145   m_fg_tilemap->set_scrollx(0, m_vidregs[6] - 18); // verify (test mode colour test needs it)
146   m_fg_tilemap->set_scrolly(0, m_vidregs[7]); // verify
148147
149   rowscroll_bank = (state->m_vidregs[4] & 0x30) >> 4;
148   rowscroll_bank = (m_vidregs[4] & 0x30) >> 4;
150149
151150   for (y = 0; y < 1024; y++)
152      state->m_md_tilemap->set_scrollx(y, state->m_vidregs[8] - 16 + state->m_rowscrollram[y + 0x800 * rowscroll_bank]);
151      m_md_tilemap->set_scrollx(y, m_vidregs[8] - 16 + m_rowscrollram[y + 0x800 * rowscroll_bank]);
153152
154153   // todo: figure out which bits relate to the order
155   switch (state->m_vidregs2[0])
154   switch (m_vidregs2[0])
156155   {
157156      case 0x2451: // fg unsure
158157      case 0x2d9a: // fg unsure
159158      case 0x2440: // all ok
160159      case 0x245a: // fg unsure, title screen
161         state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
162         state->m_md_tilemap->draw(bitmap, cliprect, 0, 0);
163         state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
160         m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
161         m_md_tilemap->draw(bitmap, cliprect, 0, 0);
162         m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
164163         break;
165164      case 0x23c0: // all ok
166         state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
167         state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
168         state->m_md_tilemap->draw(bitmap, cliprect, 0, 0);
165         m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
166         m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
167         m_md_tilemap->draw(bitmap, cliprect, 0, 0);
169168         break;
170169      case 0x38da: // fg unsure
171170      case 0x215a: // fg unsure
172171      case 0x2140: // all ok
173         state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
174         state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
175         state->m_md_tilemap->draw(bitmap, cliprect, 0, 0);
172         m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
173         m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
174         m_md_tilemap->draw(bitmap, cliprect, 0, 0);
176175         break;
177176      case 0x2d80: // all ok
178         state->m_md_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
179         state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
180         state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
177         m_md_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
178         m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
179         m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
181180         break;
182181      default:
183         state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
184         state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
185         state->m_md_tilemap->draw(bitmap, cliprect, 0, 0);
186         logerror ("unknown video priority regs %04x\n", state->m_vidregs2[0]);
182         m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
183         m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
184         m_md_tilemap->draw(bitmap, cliprect, 0, 0);
185         logerror ("unknown video priority regs %04x\n", m_vidregs2[0]);
187186
188187   }
189188
190189   draw_sprites(screen.machine(),bitmap,cliprect);
191190
192//  popmessage ("x %04x x %04x x %04x x %04x x %04x", state->m_vidregs2[0], state->m_vidregs[12], state->m_vidregs[13], state->m_vidregs[14], state->m_vidregs[15]);
193//  popmessage ("x %04x x %04x y %04x y %04x z %04x z %04x",state->m_vidregs[0],state->m_vidregs[1],state->m_vidregs[2],state->m_vidregs[3],state->m_vidregs[4],state->m_vidregs[5]);
191//  popmessage ("x %04x x %04x x %04x x %04x x %04x", m_vidregs2[0], m_vidregs[12], m_vidregs[13], m_vidregs[14], m_vidregs[15]);
192//  popmessage ("x %04x x %04x y %04x y %04x z %04x z %04x",m_vidregs[0],m_vidregs[1],m_vidregs[2],m_vidregs[3],m_vidregs[4],m_vidregs[5]);
194193
195194   return 0;
196195}
trunk/src/mame/video/starfire.c
r17967r17968
263263   state->m_scanline_timer->adjust(machine.primary_screen->time_until_pos(y), y);
264264}
265265
266SCREEN_UPDATE_RGB32( starfire )
266UINT32 starfire_state::screen_update_starfire(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
267267{
268   starfire_state *state = screen.machine().driver_data<starfire_state>();
269    copybitmap(bitmap, state->m_starfire_screen, 0, 0, 0, 0, cliprect);
268    copybitmap(bitmap, m_starfire_screen, 0, 0, 0, 0, cliprect);
270269
271270   return 0;
272271}
trunk/src/mame/video/cischeat.c
r17967r17968
8989
9090
9191#define cischeat_tmap_SET_SCROLL(_n_) \
92   if (state->m_tmap[_n_]) \
92   if (m_tmap[_n_]) \
9393   { \
94      state->m_tmap[_n_]->set_scrollx(0, state->m_scrollx[_n_]); \
95      state->m_tmap[_n_]->set_scrolly(0, state->m_scrolly[_n_]); \
94      m_tmap[_n_]->set_scrollx(0, m_scrollx[_n_]); \
95      m_tmap[_n_]->set_scrolly(0, m_scrolly[_n_]); \
9696   }
9797
9898#define cischeat_tmap_DRAW(_n_) \
99   if ( (state->m_tmap[_n_]) && (state->m_active_layers & (1 << _n_) ) ) \
99   if ( (m_tmap[_n_]) && (m_active_layers & (1 << _n_) ) ) \
100100   { \
101      state->m_tmap[_n_]->draw(bitmap, cliprect, flag, 0 ); \
101      m_tmap[_n_]->draw(bitmap, cliprect, flag, 0 ); \
102102      flag = 0; \
103103   }
104104
r17967r17968
12271227                                Big Run
12281228**************************************************************************/
12291229
1230SCREEN_UPDATE_IND16( bigrun )
1230UINT32 cischeat_state::screen_update_bigrun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
12311231{
1232   cischeat_state *state = screen.machine().driver_data<cischeat_state>();
12331232   int i;
12341233   int active_layers1, flag;
12351234
12361235#ifdef MAME_DEBUG
12371236   /* FAKE Videoreg */
1238   state->m_active_layers = state->m_vregs[0x2400/2];
1239   if (state->m_active_layers == 0)   state->m_active_layers = 0x3f;
1237   m_active_layers = m_vregs[0x2400/2];
1238   if (m_active_layers == 0)   m_active_layers = 0x3f;
12401239#else
1241   state->m_active_layers = 0x3f;
1240   m_active_layers = 0x3f;
12421241#endif
12431242
1244   active_layers1 = state->m_active_layers;
1243   active_layers1 = m_active_layers;
12451244
12461245#ifdef MAME_DEBUG
12471246   CISCHEAT_LAYERSCTRL
r17967r17968
12551254
12561255   for (i = 7; i >= 4; i--)
12571256   {                                 /* bitmap, road, min_priority, max_priority, transparency */
1258      if (state->m_active_layers & 0x10)   cischeat_draw_road(screen.machine(),bitmap,cliprect,0,i,i,FALSE);
1259      if (state->m_active_layers & 0x20)   cischeat_draw_road(screen.machine(),bitmap,cliprect,1,i,i,TRUE);
1257      if (m_active_layers & 0x10)   cischeat_draw_road(screen.machine(),bitmap,cliprect,0,i,i,FALSE);
1258      if (m_active_layers & 0x20)   cischeat_draw_road(screen.machine(),bitmap,cliprect,1,i,i,TRUE);
12601259   }
12611260
12621261   flag = 0;
r17967r17968
12651264
12661265   for (i = 3; i >= 0; i--)
12671266   {                                 /* bitmap, road, min_priority, max_priority, transparency */
1268      if (state->m_active_layers & 0x10)   cischeat_draw_road(screen.machine(),bitmap,cliprect,0,i,i,TRUE);
1269      if (state->m_active_layers & 0x20)   cischeat_draw_road(screen.machine(),bitmap,cliprect,1,i,i,TRUE);
1267      if (m_active_layers & 0x10)   cischeat_draw_road(screen.machine(),bitmap,cliprect,0,i,i,TRUE);
1268      if (m_active_layers & 0x20)   cischeat_draw_road(screen.machine(),bitmap,cliprect,1,i,i,TRUE);
12701269   }
12711270
1272   if (state->m_active_layers & 0x08)   bigrun_draw_sprites(screen.machine(),bitmap,cliprect,15,0);
1271   if (m_active_layers & 0x08)   bigrun_draw_sprites(screen.machine(),bitmap,cliprect,15,0);
12731272
12741273   cischeat_tmap_DRAW(2)
12751274
1276   state->m_active_layers = active_layers1;
1275   m_active_layers = active_layers1;
12771276   return 0;
12781277}
12791278
r17967r17968
12821281                                Cisco Heat
12831282**************************************************************************/
12841283
1285SCREEN_UPDATE_IND16( cischeat )
1284UINT32 cischeat_state::screen_update_cischeat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
12861285{
1287   cischeat_state *state = screen.machine().driver_data<cischeat_state>();
12881286   int active_layers1, flag;
12891287
12901288#ifdef MAME_DEBUG
12911289   /* FAKE Videoreg */
1292   state->m_active_layers = state->m_vregs[0x2400/2];
1293   if (state->m_active_layers == 0)   state->m_active_layers = 0x3f;
1290   m_active_layers = m_vregs[0x2400/2];
1291   if (m_active_layers == 0)   m_active_layers = 0x3f;
12941292#else
1295   state->m_active_layers = 0x3f;
1293   m_active_layers = 0x3f;
12961294#endif
12971295
1298   active_layers1 = state->m_active_layers;
1296   active_layers1 = m_active_layers;
12991297
13001298#ifdef MAME_DEBUG
13011299   CISCHEAT_LAYERSCTRL
r17967r17968
13081306   bitmap.fill(0, cliprect);
13091307
13101308                              /* bitmap, road, priority, transparency */
1311   if (state->m_active_layers & 0x10)   cischeat_draw_road(screen.machine(),bitmap,cliprect,0,7,5,FALSE);
1312   if (state->m_active_layers & 0x20)   cischeat_draw_road(screen.machine(),bitmap,cliprect,1,7,5,TRUE);
1309   if (m_active_layers & 0x10)   cischeat_draw_road(screen.machine(),bitmap,cliprect,0,7,5,FALSE);
1310   if (m_active_layers & 0x20)   cischeat_draw_road(screen.machine(),bitmap,cliprect,1,7,5,TRUE);
13131311
13141312   flag = 0;
13151313   cischeat_tmap_DRAW(0)
13161314//  else bitmap.fill(0, cliprect);
13171315   cischeat_tmap_DRAW(1)
13181316
1319   if (state->m_active_layers & 0x08)   cischeat_draw_sprites(screen.machine(),bitmap,cliprect,15,3);
1320   if (state->m_active_layers & 0x10)   cischeat_draw_road(screen.machine(),bitmap,cliprect,0,4,1,TRUE);
1321   if (state->m_active_layers & 0x20)   cischeat_draw_road(screen.machine(),bitmap,cliprect,1,4,1,TRUE);
1322   if (state->m_active_layers & 0x08)   cischeat_draw_sprites(screen.machine(),bitmap,cliprect,2,2);
1323   if (state->m_active_layers & 0x10)   cischeat_draw_road(screen.machine(),bitmap,cliprect,0,0,0,TRUE);
1324   if (state->m_active_layers & 0x20)   cischeat_draw_road(screen.machine(),bitmap,cliprect,1,0,0,TRUE);
1325   if (state->m_active_layers & 0x08)   cischeat_draw_sprites(screen.machine(),bitmap,cliprect,1,0);
1317   if (m_active_layers & 0x08)   cischeat_draw_sprites(screen.machine(),bitmap,cliprect,15,3);
1318   if (m_active_layers & 0x10)   cischeat_draw_road(screen.machine(),bitmap,cliprect,0,4,1,TRUE);
1319   if (m_active_layers & 0x20)   cischeat_draw_road(screen.machine(),bitmap,cliprect,1,4,1,TRUE);
1320   if (m_active_layers & 0x08)   cischeat_draw_sprites(screen.machine(),bitmap,cliprect,2,2);
1321   if (m_active_layers & 0x10)   cischeat_draw_road(screen.machine(),bitmap,cliprect,0,0,0,TRUE);
1322   if (m_active_layers & 0x20)   cischeat_draw_road(screen.machine(),bitmap,cliprect,1,0,0,TRUE);
1323   if (m_active_layers & 0x08)   cischeat_draw_sprites(screen.machine(),bitmap,cliprect,1,0);
13261324   cischeat_tmap_DRAW(2)
13271325
13281326   /* for the map screen */
1329   if (state->m_active_layers & 0x08)   cischeat_draw_sprites(screen.machine(),bitmap,cliprect,0+16,0+16);
1327   if (m_active_layers & 0x08)   cischeat_draw_sprites(screen.machine(),bitmap,cliprect,0+16,0+16);
13301328
13311329
1332   state->m_active_layers = active_layers1;
1330   m_active_layers = active_layers1;
13331331   return 0;
13341332}
13351333
r17967r17968
13391337                            F1 GrandPrix Star
13401338**************************************************************************/
13411339
1342SCREEN_UPDATE_IND16( f1gpstar )
1340UINT32 cischeat_state::screen_update_f1gpstar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
13431341{
1344   cischeat_state *state = screen.machine().driver_data<cischeat_state>();
13451342   int active_layers1, flag;
13461343
13471344#ifdef MAME_DEBUG
13481345   /* FAKE Videoreg */
1349   state->m_active_layers = state->m_vregs[0x2400/2];
1350   if (state->m_active_layers == 0)   state->m_active_layers = 0x3f;
1346   m_active_layers = m_vregs[0x2400/2];
1347   if (m_active_layers == 0)   m_active_layers = 0x3f;
13511348#else
1352   state->m_active_layers = 0x3f;
1349   m_active_layers = 0x3f;
13531350#endif
13541351
1355   active_layers1 = state->m_active_layers;
1352   active_layers1 = m_active_layers;
13561353
13571354#ifdef MAME_DEBUG
13581355   CISCHEAT_LAYERSCTRL
r17967r17968
13671364/*  1: clouds 5, grad 7, road 0     2: clouds 5, grad 7, road 0, tunnel roof 0 */
13681365
13691366   /* road 1!! 0!! */               /* bitmap, road, min_priority, max_priority, transparency */
1370   if (state->m_active_layers & 0x20)   f1gpstar_draw_road(screen.machine(),bitmap,cliprect,1,6,7,TRUE);
1371   if (state->m_active_layers & 0x10)   f1gpstar_draw_road(screen.machine(),bitmap,cliprect,0,6,7,TRUE);
1367   if (m_active_layers & 0x20)   f1gpstar_draw_road(screen.machine(),bitmap,cliprect,1,6,7,TRUE);
1368   if (m_active_layers & 0x10)   f1gpstar_draw_road(screen.machine(),bitmap,cliprect,0,6,7,TRUE);
13721369
13731370   flag = 0;
13741371   cischeat_tmap_DRAW(0)
r17967r17968
13761373   cischeat_tmap_DRAW(1)
13771374
13781375   /* road 1!! 0!! */               /* bitmap, road, min_priority, max_priority, transparency */
1379   if (state->m_active_layers & 0x20)   f1gpstar_draw_road(screen.machine(),bitmap,cliprect,1,1,5,TRUE);
1380   if (state->m_active_layers & 0x10)   f1gpstar_draw_road(screen.machine(),bitmap,cliprect,0,1,5,TRUE);
1376   if (m_active_layers & 0x20)   f1gpstar_draw_road(screen.machine(),bitmap,cliprect,1,1,5,TRUE);
1377   if (m_active_layers & 0x10)   f1gpstar_draw_road(screen.machine(),bitmap,cliprect,0,1,5,TRUE);
13811378
1382   if (state->m_active_layers & 0x08)   cischeat_draw_sprites(screen.machine(),bitmap,cliprect,15,2);
1379   if (m_active_layers & 0x08)   cischeat_draw_sprites(screen.machine(),bitmap,cliprect,15,2);
13831380
13841381   /* road 1!! 0!! */               /* bitmap, road, min_priority, max_priority, transparency */
1385   if (state->m_active_layers & 0x20)   f1gpstar_draw_road(screen.machine(),bitmap,cliprect,1,0,0,TRUE);
1386   if (state->m_active_layers & 0x10)   f1gpstar_draw_road(screen.machine(),bitmap,cliprect,0,0,0,TRUE);
1382   if (m_active_layers & 0x20)   f1gpstar_draw_road(screen.machine(),bitmap,cliprect,1,0,0,TRUE);
1383   if (m_active_layers & 0x10)   f1gpstar_draw_road(screen.machine(),bitmap,cliprect,0,0,0,TRUE);
13871384
1388   if (state->m_active_layers & 0x08)   cischeat_draw_sprites(screen.machine(),bitmap,cliprect,1,1);
1385   if (m_active_layers & 0x08)   cischeat_draw_sprites(screen.machine(),bitmap,cliprect,1,1);
13891386   cischeat_tmap_DRAW(2)
1390   if (state->m_active_layers & 0x08)   cischeat_draw_sprites(screen.machine(),bitmap,cliprect,0,0);
1387   if (m_active_layers & 0x08)   cischeat_draw_sprites(screen.machine(),bitmap,cliprect,0,0);
13911388
13921389
1393   state->m_active_layers = active_layers1;
1390   m_active_layers = active_layers1;
13941391   return 0;
13951392}
13961393
r17967r17968
14001397                                Scud Hammer
14011398**************************************************************************/
14021399
1403SCREEN_UPDATE_IND16( scudhamm )
1400UINT32 cischeat_state::screen_update_scudhamm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
14041401{
1405   cischeat_state *state = screen.machine().driver_data<cischeat_state>();
14061402   int active_layers1, flag;
1407   active_layers1 = state->m_active_layers;
1408   state->m_active_layers = 0x0d;
1403   active_layers1 = m_active_layers;
1404   m_active_layers = 0x0d;
14091405
14101406#ifdef MAME_DEBUG
1411state->m_debugsprites = 0;
1407m_debugsprites = 0;
14121408if ( screen.machine().input().code_pressed(KEYCODE_Z) || screen.machine().input().code_pressed(KEYCODE_X) )
14131409{
14141410   int msk = 0;
14151411   if (screen.machine().input().code_pressed(KEYCODE_Q))   { msk |= 0x1;}
14161412   if (screen.machine().input().code_pressed(KEYCODE_W))   { msk |= 0x2;}
14171413   if (screen.machine().input().code_pressed(KEYCODE_E))   { msk |= 0x4;}
1418   if (screen.machine().input().code_pressed(KEYCODE_A))   { msk |= 0x8; state->m_debugsprites = 1;}
1419   if (screen.machine().input().code_pressed(KEYCODE_S))   { msk |= 0x8; state->m_debugsprites = 2;}
1420   if (screen.machine().input().code_pressed(KEYCODE_D))   { msk |= 0x8; state->m_debugsprites = 3;}
1421   if (screen.machine().input().code_pressed(KEYCODE_F))   { msk |= 0x8; state->m_debugsprites = 4;}
1414   if (screen.machine().input().code_pressed(KEYCODE_A))   { msk |= 0x8; m_debugsprites = 1;}
1415   if (screen.machine().input().code_pressed(KEYCODE_S))   { msk |= 0x8; m_debugsprites = 2;}
1416   if (screen.machine().input().code_pressed(KEYCODE_D))   { msk |= 0x8; m_debugsprites = 3;}
1417   if (screen.machine().input().code_pressed(KEYCODE_F))   { msk |= 0x8; m_debugsprites = 4;}
14221418
1423   if (msk != 0) state->m_active_layers &= msk;
1419   if (msk != 0) m_active_layers &= msk;
14241420#if 1
14251421   {
14261422      address_space &space = *screen.machine().device("maincpu")->memory().space(AS_PROGRAM);
14271423
14281424      popmessage("Cmd: %04X Pos:%04X Lim:%04X Inp:%04X",
1429                     state->m_scudhamm_motor_command,
1430                     state->scudhamm_motor_pos_r(space,0,0xffff),
1431                     state->scudhamm_motor_status_r(space,0,0xffff),
1432                     state->scudhamm_analog_r(space,0,0xffff) );
1425                     m_scudhamm_motor_command,
1426                     scudhamm_motor_pos_r(space,0,0xffff),
1427                     scudhamm_motor_status_r(space,0,0xffff),
1428                     scudhamm_analog_r(space,0,0xffff) );
14331429   }
14341430#endif
14351431
r17967r17968
14441440   flag = 0;
14451441   cischeat_tmap_DRAW(0)
14461442   // no layer 1
1447   if (state->m_active_layers & 0x08)   cischeat_draw_sprites(screen.machine(),bitmap,cliprect,0,15);
1443   if (m_active_layers & 0x08)   cischeat_draw_sprites(screen.machine(),bitmap,cliprect,0,15);
14481444   cischeat_tmap_DRAW(2)
14491445
1450   state->m_active_layers = active_layers1;
1446   m_active_layers = active_layers1;
14511447   return 0;
14521448}
14531449
trunk/src/mame/video/freekick.c
r17967r17968
131131   }
132132}
133133
134SCREEN_UPDATE_IND16( gigas )
134UINT32 freekick_state::screen_update_gigas(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
135135{
136   freekick_state *state = screen.machine().driver_data<freekick_state>();
137   state->m_freek_tilemap->draw(bitmap, cliprect, 0, 0);
136   m_freek_tilemap->draw(bitmap, cliprect, 0, 0);
138137   gigas_draw_sprites(screen.machine(), bitmap, cliprect);
139138   return 0;
140139}
141140
142SCREEN_UPDATE_IND16( pbillrd )
141UINT32 freekick_state::screen_update_pbillrd(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
143142{
144   freekick_state *state = screen.machine().driver_data<freekick_state>();
145   state->m_freek_tilemap->draw(bitmap, cliprect, 0, 0);
143   m_freek_tilemap->draw(bitmap, cliprect, 0, 0);
146144   pbillrd_draw_sprites(screen.machine(), bitmap, cliprect);
147145   return 0;
148146}
149147
150SCREEN_UPDATE_IND16( freekick )
148UINT32 freekick_state::screen_update_freekick(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
151149{
152   freekick_state *state = screen.machine().driver_data<freekick_state>();
153   state->m_freek_tilemap->draw(bitmap, cliprect, 0, 0);
150   m_freek_tilemap->draw(bitmap, cliprect, 0, 0);
154151   freekick_draw_sprites(screen.machine(), bitmap, cliprect);
155152   return 0;
156153}
trunk/src/mame/video/namcos22.c
r17967r17968
27792779   VIDEO_START_CALL_MEMBER(common);
27802780}
27812781
2782SCREEN_UPDATE_RGB32( namcos22s )
2782UINT32 namcos22_state::screen_update_namcos22s(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
27832783{
2784   namcos22_state *state = screen.machine().driver_data<namcos22_state>();
27852784   UpdateVideoMixer(screen.machine());
27862785   UpdatePalette(screen.machine());
27872786   namcos22s_recalc_czram(screen.machine());
r17967r17968
27892788
27902789   // background color
27912790   rgbint bg_color;
2792   rgb_comp_to_rgbint(&bg_color, nthbyte(state->m_gamma,0x08), nthbyte(state->m_gamma,0x09), nthbyte(state->m_gamma,0x0a));
2791   rgb_comp_to_rgbint(&bg_color, nthbyte(m_gamma,0x08), nthbyte(m_gamma,0x09), nthbyte(m_gamma,0x0a));
27932792   if (mixer.flags&1 && mixer.fadeFactor)
27942793   {
27952794      rgbint fade_color;
r17967r17968
27992798   bitmap.fill(rgbint_to_rgb(&bg_color), cliprect);
28002799
28012800   // layers
2802   UINT8 layer = nthbyte(state->m_gamma,0x1f);
2801   UINT8 layer = nthbyte(m_gamma,0x1f);
28032802   if (layer&4) DrawCharacterLayer(screen.machine(), bitmap, cliprect);
28042803   if (layer&2) DrawSprites(screen.machine(), bitmap, cliprect);
28052804   if (layer&1) DrawPolygons(screen.machine(), bitmap);
r17967r17968
28142813      FILE *f = fopen( "dump.txt", "wb" );
28152814      if( f )
28162815      {
2817         address_space &space = *state->m_maincpu->space(AS_PROGRAM);
2816         address_space &space = *m_maincpu->space(AS_PROGRAM);
28182817
28192818         if (1) // czram
28202819         {
r17967r17968
28242823               fprintf( f, "czram[%d] =", bank );
28252824               for( i=0; i<256; i++ )
28262825               {
2827                  fprintf( f, " %04x", state->m_banked_czram[bank][i] );
2826                  fprintf( f, " %04x", m_banked_czram[bank][i] );
28282827               }
28292828               fprintf( f, "\n" );
28302829            }
r17967r17968
28372836            fprintf(f, "spotram:\n");
28382837            for (i=0; i<256; i++)
28392838            {
2840               fprintf(f, "%02X: %04X %04X %04X %04X\n", i, state->m_spotram[i*4+0], state->m_spotram[i*4+1], state->m_spotram[i*4+2], state->m_spotram[i*4+3]);
2839               fprintf(f, "%02X: %04X %04X %04X %04X\n", i, m_spotram[i*4+0], m_spotram[i*4+1], m_spotram[i*4+2], m_spotram[i*4+3]);
28412840            }
28422841            fprintf(f, "\n");
28432842         }
r17967r17968
28572856   }
28582857#endif
28592858
2860//  popmessage("%08X %08X %08X %08X",state->m_czattr[0],state->m_czattr[1],state->m_czattr[2],state->m_czattr[3]);
2859//  popmessage("%08X %08X %08X %08X",m_czattr[0],m_czattr[1],m_czattr[2],m_czattr[3]);
28612860
28622861   return 0;
28632862}
28642863
2865SCREEN_UPDATE_RGB32( namcos22 )
2864UINT32 namcos22_state::screen_update_namcos22(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
28662865{
28672866   UpdateVideoMixer(screen.machine());
28682867   UpdatePalette(screen.machine());
r17967r17968
28792878      FILE *f = fopen( "dump.txt", "wb" );
28802879      if( f )
28812880      {
2882         address_space &space = *state->m_maincpu->space(AS_PROGRAM);
2881         address_space &space = *m_maincpu->space(AS_PROGRAM);
28832882
28842883         //Dump(space, f,0x90000000, 0x90000003, "led?" );
28852884         Dump(space, f,0x90010000, 0x90017fff, "cz_ram");
trunk/src/mame/video/redclash.c
r17967r17968
417417   }
418418}
419419
420SCREEN_VBLANK( redclash )
420void ladybug_state::screen_eof_redclash(screen_device &screen, bool state)
421421{
422422   // falling edge
423   if (!vblank_on)
423   if (!state)
424424      redclash_update_stars_state(screen.machine());
425425}
426426
427SCREEN_UPDATE_IND16( redclash )
427UINT32 ladybug_state::screen_update_redclash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
428428{
429   ladybug_state *state = screen.machine().driver_data<ladybug_state>();
430429
431430   bitmap.fill(get_black_pen(screen.machine()), cliprect);
432431   redclash_draw_stars(screen.machine(), bitmap, cliprect, 0x60, 0, 0x00, 0xff);
433432   draw_sprites(screen.machine(), bitmap, cliprect);
434433   draw_bullets(screen.machine(), bitmap, cliprect);
435   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
434   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
436435   return 0;
437436}
trunk/src/mame/video/vicdual.c
r17967r17968
2828}
2929
3030
31SCREEN_UPDATE_RGB32( vicdual_bw )
31UINT32 vicdual_state::screen_update_vicdual_bw(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
3232{
33   vicdual_state *state = screen.machine().driver_data<vicdual_state>();
3433   UINT8 x = 0;
3534   UINT8 y = cliprect.min_y;
3635   UINT8 video_data = 0;
r17967r17968
4645
4746         /* read the character code */
4847         offs = (y >> 3 << 5) | (x >> 3);
49         char_code = state->m_videoram[offs];
48         char_code = m_videoram[offs];
5049
5150         /* read the appropriate line of the character ram */
5251         offs = (char_code << 3) | (y & 0x07);
53         video_data = state->m_characterram[offs];
52         video_data = m_characterram[offs];
5453      }
5554
5655      /* plot the current pixel */
r17967r17968
7978}
8079
8180
82SCREEN_UPDATE_RGB32( vicdual_color )
81UINT32 vicdual_state::screen_update_vicdual_color(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
8382{
84   vicdual_state *state = screen.machine().driver_data<vicdual_state>();
85   UINT8 *color_prom = (UINT8 *)state->memregion("proms")->base();
83   UINT8 *color_prom = (UINT8 *)memregion("proms")->base();
8684   UINT8 x = 0;
8785   UINT8 y = cliprect.min_y;
8886   UINT8 video_data = 0;
r17967r17968
10098
10199         /* read the character code */
102100         offs = (y >> 3 << 5) | (x >> 3);
103         char_code = state->m_videoram[offs];
101         char_code = m_videoram[offs];
104102
105103         /* read the appropriate line of the character ram */
106104         offs = (char_code << 3) | (y & 0x07);
107         video_data = state->m_characterram[offs];
105         video_data = m_characterram[offs];
108106
109107         /* get the foreground and background colors from the PROM */
110         offs = (char_code >> 5) | (state->m_palette_bank << 3);
108         offs = (char_code >> 5) | (m_palette_bank << 3);
111109         back_pen = pens_from_color_prom[(color_prom[offs] >> 1) & 0x07];
112110         fore_pen = pens_from_color_prom[(color_prom[offs] >> 5) & 0x07];
113111      }
r17967r17968
138136}
139137
140138
141SCREEN_UPDATE_RGB32( vicdual_bw_or_color )
139UINT32 vicdual_state::screen_update_vicdual_bw_or_color(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
142140{
143141   if (vicdual_is_cabinet_color(screen.machine()))
144      SCREEN_UPDATE32_CALL(vicdual_color);
142      SCREEN_UPDATE32_CALL_MEMBER(vicdual_color);
145143   else
146      SCREEN_UPDATE32_CALL(vicdual_bw);
144      SCREEN_UPDATE32_CALL_MEMBER(vicdual_bw);
147145
148146   return 0;
149147}
trunk/src/mame/video/xybots.c
r17967r17968
101101 *
102102 *************************************/
103103
104SCREEN_UPDATE_IND16( xybots )
104UINT32 xybots_state::screen_update_xybots(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
105105{
106   xybots_state *state = screen.machine().driver_data<xybots_state>();
107106   atarimo_rect_list rectlist;
108107   bitmap_ind16 *mobitmap;
109108   int x, y, r;
110109
111110   /* draw the playfield */
112   state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
111   m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
113112
114113   /* draw and merge the MO */
115114   mobitmap = atarimo_render(0, cliprect, &rectlist);
r17967r17968
163162      }
164163
165164   /* add the alpha on top */
166   state->m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
165   m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
167166   return 0;
168167}
trunk/src/mame/video/galaxold.c
r17967r17968
17531753}
17541754
17551755
1756SCREEN_UPDATE_IND16( galaxold )
1756UINT32 galaxold_state::screen_update_galaxold(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
17571757{
1758   galaxold_state *state = screen.machine().driver_data<galaxold_state>();
17591758
1760   (*state->m_draw_background)(screen.machine(), bitmap, cliprect);
1759   (*m_draw_background)(screen.machine(), bitmap, cliprect);
17611760
1762   if (state->m_stars_on)
1761   if (m_stars_on)
17631762   {
1764      (*state->m_draw_stars)(screen.machine(), bitmap, cliprect);
1763      (*m_draw_stars)(screen.machine(), bitmap, cliprect);
17651764   }
17661765
17671766
1768   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
1767   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
17691768
1770   if (state->m_draw_bullets)
1769   if (m_draw_bullets)
17711770   {
17721771      draw_bullets_common(screen.machine(), bitmap, cliprect);
17731772   }
17741773
17751774
1776   draw_sprites(screen.machine(), bitmap, state->m_spriteram, state->m_spriteram.bytes());
1775   draw_sprites(screen.machine(), bitmap, m_spriteram, m_spriteram.bytes());
17771776
1778   if (state->m_spriteram2_present)
1777   if (m_spriteram2_present)
17791778   {
1780      draw_sprites(screen.machine(), bitmap, state->m_spriteram2, state->m_spriteram2.bytes());
1779      draw_sprites(screen.machine(), bitmap, m_spriteram2, m_spriteram2.bytes());
17811780   }
17821781   return 0;
17831782}
17841783
17851784
1786SCREEN_UPDATE_IND16( dambustr )
1785UINT32 galaxold_state::screen_update_dambustr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
17871786{
1788   galaxold_state *state = screen.machine().driver_data<galaxold_state>();
17891787   int i, j;
17901788   UINT8 color;
17911789
1792   (*state->m_draw_background)(screen.machine(), bitmap, cliprect);
1790   (*m_draw_background)(screen.machine(), bitmap, cliprect);
17931791
1794   if (state->m_stars_on)
1792   if (m_stars_on)
17951793   {
1796      (*state->m_draw_stars)(screen.machine(), bitmap, cliprect);
1794      (*m_draw_stars)(screen.machine(), bitmap, cliprect);
17971795   }
17981796
17991797   /* save the background for drawing it again later, if background has priority over characters */
1800   copybitmap(*state->m_dambustr_tmpbitmap, bitmap, 0, 0, 0, 0, state->m_dambustr_tmpbitmap->cliprect());
1798   copybitmap(*m_dambustr_tmpbitmap, bitmap, 0, 0, 0, 0, m_dambustr_tmpbitmap->cliprect());
18011799
1802   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
1800   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
18031801
1804   if (state->m_draw_bullets)
1802   if (m_draw_bullets)
18051803   {
18061804      draw_bullets_common(screen.machine(), bitmap, cliprect);
18071805   }
18081806
1809   draw_sprites(screen.machine(), bitmap, state->m_spriteram, state->m_spriteram.bytes());
1807   draw_sprites(screen.machine(), bitmap, m_spriteram, m_spriteram.bytes());
18101808
1811   if (state->m_dambustr_bg_priority)
1809   if (m_dambustr_bg_priority)
18121810   {
18131811      /* draw the upper part of the background, as it has priority */
18141812      dambustr_draw_upper_background(screen.machine(), bitmap, cliprect);
18151813
18161814      /* only rows with color code > 3 are stronger than the background */
1817      memset(state->m_dambustr_videoram2, 0x20, 0x0400);
1815      memset(m_dambustr_videoram2, 0x20, 0x0400);
18181816      for (i=0; i<32; i++) {
1819         color = state->m_attributesram[(i << 1) | 1] & state->m_color_mask;
1817         color = m_attributesram[(i << 1) | 1] & m_color_mask;
18201818         if (color > 3) {
18211819            for (j=0; j<32; j++)
1822               state->m_dambustr_videoram2[32*j+i] = state->m_videoram[32*j+i];
1820               m_dambustr_videoram2[32*j+i] = m_videoram[32*j+i];
18231821         };
18241822      };
1825      state->m_dambustr_tilemap2->mark_all_dirty();
1826      state->m_dambustr_tilemap2->draw(bitmap, cliprect, 0, 0);
1823      m_dambustr_tilemap2->mark_all_dirty();
1824      m_dambustr_tilemap2->draw(bitmap, cliprect, 0, 0);
18271825   };
18281826
18291827   return 0;
trunk/src/mame/video/centiped.c
r17967r17968
417417 *
418418 *************************************/
419419
420SCREEN_UPDATE_IND16( centiped )
420UINT32 centiped_state::screen_update_centiped(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
421421{
422   centiped_state *state = screen.machine().driver_data<centiped_state>();
423   UINT8 *spriteram = state->m_spriteram;
422   UINT8 *spriteram = m_spriteram;
424423   rectangle spriteclip = cliprect;
425424   int offs;
426425
427426   /* draw the background */
428   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
427   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
429428
430429   /* apply the sprite clip */
431   if (state->m_flipscreen)
430   if (m_flipscreen)
432431      spriteclip.min_x += 8;
433432   else
434433      spriteclip.max_x -= 8;
r17967r17968
443442      int x = spriteram[offs + 0x20];
444443      int y = 240 - spriteram[offs + 0x10];
445444
446      drawgfx_transmask(bitmap, spriteclip, screen.machine().gfx[1], code, color, flipx, flipy, x, y, state->m_penmask[color & 0x3f]);
445      drawgfx_transmask(bitmap, spriteclip, screen.machine().gfx[1], code, color, flipx, flipy, x, y, m_penmask[color & 0x3f]);
447446   }
448447   return 0;
449448}
450449
451450
452SCREEN_UPDATE_IND16( warlords )
451UINT32 centiped_state::screen_update_warlords(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
453452{
454   centiped_state *state = screen.machine().driver_data<centiped_state>();
455   UINT8 *spriteram = state->m_spriteram;
453   UINT8 *spriteram = m_spriteram;
456454   int upright_mode = screen.machine().root_device().ioport("IN0")->read() & 0x80;
457455   int offs;
458456
459457   /* if the cocktail/upright switch flipped, force refresh */
460   if (state->m_flipscreen != upright_mode)
458   if (m_flipscreen != upright_mode)
461459   {
462      state->m_flipscreen = upright_mode;
463      state->m_bg_tilemap->set_flip(upright_mode ? TILEMAP_FLIPX : 0);
464      state->m_bg_tilemap->mark_all_dirty();
460      m_flipscreen = upright_mode;
461      m_bg_tilemap->set_flip(upright_mode ? TILEMAP_FLIPX : 0);
462      m_bg_tilemap->mark_all_dirty();
465463   }
466464
467465   /* draw the background */
468   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
466   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
469467
470468   /* draw the sprites */
471469   for (offs = 0; offs < 0x10; offs++)
r17967r17968
495493}
496494
497495
498SCREEN_UPDATE_IND16( bullsdrt )
496UINT32 centiped_state::screen_update_bullsdrt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
499497{
500   centiped_state *state = screen.machine().driver_data<centiped_state>();
501   UINT8 *spriteram = state->m_spriteram;
498   UINT8 *spriteram = m_spriteram;
502499   rectangle spriteclip = cliprect;
503500
504501   int offs;
505502
506503   /* draw the background */
507   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
504   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
508505
509506   /* apply the sprite clip */
510   if (state->m_flipscreen)
507   if (m_flipscreen)
511508      spriteclip.min_x += 8;
512509   else
513510      spriteclip.max_x -= 8;
r17967r17968
515512   /* draw the sprites */
516513   for (offs = 0; offs < 0x10; offs++)
517514   {
518      int code = ((spriteram[offs] & 0x3e) >> 1) | ((spriteram[offs] & 0x01) << 6) | (state->m_bullsdrt_sprites_bank * 0x20);
515      int code = ((spriteram[offs] & 0x3e) >> 1) | ((spriteram[offs] & 0x01) << 6) | (m_bullsdrt_sprites_bank * 0x20);
519516      int color = spriteram[offs + 0x30];
520517      int flipy = (spriteram[offs] >> 7) & 1;
521518      int x = spriteram[offs + 0x20];
r17967r17968
530527 * This varies from Centipede, in that flipx is not in
531528 * the data, but is determined by VIDROT value at 0x2506.
532529 */
533SCREEN_UPDATE_IND16( milliped )
530UINT32 centiped_state::screen_update_milliped(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
534531{
535   centiped_state *state = screen.machine().driver_data<centiped_state>();
536   UINT8 *spriteram = state->m_spriteram;
532   UINT8 *spriteram = m_spriteram;
537533   rectangle spriteclip = cliprect;
538534   int offs;
539535
540536   /* draw the background */
541   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
537   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
542538
543539   /* apply the sprite clip */
544   if (state->m_flipscreen)
540   if (m_flipscreen)
545541      spriteclip.min_x += 8;
546542   else
547543      spriteclip.max_x -= 8;
r17967r17968
549545   /* draw the sprites */
550546   for (offs = 0; offs < 0x10; offs++)
551547   {
552      int code = ((spriteram[offs] & 0x3e) >> 1) | ((spriteram[offs] & 0x01) << 6) | (state->m_gfx_bank << 7);
548      int code = ((spriteram[offs] & 0x3e) >> 1) | ((spriteram[offs] & 0x01) << 6) | (m_gfx_bank << 7);
553549      int color = spriteram[offs + 0x30];
554      int flipx = state->m_flipscreen;
550      int flipx = m_flipscreen;
555551      int flipy = (spriteram[offs] & 0x80);
556552      int x = spriteram[offs + 0x20];
557553      int y = 240 - spriteram[offs + 0x10];
r17967r17968
559555         flipy = !flipy;
560556      }
561557
562      drawgfx_transmask(bitmap, spriteclip, screen.machine().gfx[1], code, color, flipx, flipy, x, y, state->m_penmask[color & 0x3f]);
558      drawgfx_transmask(bitmap, spriteclip, screen.machine().gfx[1], code, color, flipx, flipy, x, y, m_penmask[color & 0x3f]);
563559   }
564560   return 0;
565561}
trunk/src/mame/video/wgp.c
r17967r17968
639639                        SCREEN REFRESH
640640**************************************************************/
641641
642SCREEN_UPDATE_IND16( wgp )
642UINT32 wgp_state::screen_update_wgp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
643643{
644   wgp_state *state = screen.machine().driver_data<wgp_state>();
645644   int i;
646645   UINT8 layer[3];
647646
648647#ifdef MAME_DEBUG
649648   if (screen.machine().input().code_pressed_once (KEYCODE_V))
650649   {
651      state->m_dislayer[0] ^= 1;
652      popmessage("piv0: %01x",state->m_dislayer[0]);
650      m_dislayer[0] ^= 1;
651      popmessage("piv0: %01x",m_dislayer[0]);
653652   }
654653
655654   if (screen.machine().input().code_pressed_once (KEYCODE_B))
656655   {
657      state->m_dislayer[1] ^= 1;
658      popmessage("piv1: %01x",state->m_dislayer[1]);
656      m_dislayer[1] ^= 1;
657      popmessage("piv1: %01x",m_dislayer[1]);
659658   }
660659
661660   if (screen.machine().input().code_pressed_once (KEYCODE_N))
662661   {
663      state->m_dislayer[2] ^= 1;
664      popmessage("piv2: %01x",state->m_dislayer[2]);
662      m_dislayer[2] ^= 1;
663      popmessage("piv2: %01x",m_dislayer[2]);
665664   }
666665
667666   if (screen.machine().input().code_pressed_once (KEYCODE_M))
668667   {
669      state->m_dislayer[3] ^= 1;
670      popmessage("TC0100SCN top bg layer: %01x",state->m_dislayer[3]);
668      m_dislayer[3] ^= 1;
669      popmessage("TC0100SCN top bg layer: %01x",m_dislayer[3]);
671670   }
672671#endif
673672
674673   for (i = 0; i < 3; i++)
675674   {
676      state->m_piv_tilemap[i]->set_scrollx(0, state->m_piv_scrollx[i]);
677      state->m_piv_tilemap[i]->set_scrolly(0, state->m_piv_scrolly[i]);
675      m_piv_tilemap[i]->set_scrollx(0, m_piv_scrollx[i]);
676      m_piv_tilemap[i]->set_scrolly(0, m_piv_scrolly[i]);
678677   }
679678
680   tc0100scn_tilemap_update(state->m_tc0100scn);
679   tc0100scn_tilemap_update(m_tc0100scn);
681680
682681   bitmap.fill(0, cliprect);
683682
r17967r17968
685684   layer[1] = 1;
686685   layer[2] = 2;
687686
688   if (state->m_piv_ctrl_reg == 0x2d)
687   if (m_piv_ctrl_reg == 0x2d)
689688   {
690689      layer[1] = 2;
691690      layer[2] = 1;
r17967r17968
694693/* We should draw the following on a 1024x1024 bitmap... */
695694
696695#ifdef MAME_DEBUG
697   if (state->m_dislayer[layer[0]] == 0)
696   if (m_dislayer[layer[0]] == 0)
698697#endif
699698   wgp_piv_layer_draw(screen.machine(), bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
700699
701700#ifdef MAME_DEBUG
702   if (state->m_dislayer[layer[1]] == 0)
701   if (m_dislayer[layer[1]] == 0)
703702#endif
704703   wgp_piv_layer_draw(screen.machine(), bitmap, cliprect, layer[1], 0, 2);
705704
706705#ifdef MAME_DEBUG
707   if (state->m_dislayer[layer[2]] == 0)
706   if (m_dislayer[layer[2]] == 0)
708707#endif
709708   wgp_piv_layer_draw(screen.machine(), bitmap, cliprect, layer[2], 0, 4);
710709
711710   draw_sprites(screen.machine(), bitmap, cliprect, 16);
712711
713712/* ... then here we should apply rotation from wgp_sate_ctrl[] to the bitmap before we draw the TC0100SCN layers on it */
714   layer[0] = tc0100scn_bottomlayer(state->m_tc0100scn);
713   layer[0] = tc0100scn_bottomlayer(m_tc0100scn);
715714   layer[1] = layer[0] ^ 1;
716715   layer[2] = 2;
717716
718   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[0], 0, 0);
717   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[0], 0, 0);
719718
720719#ifdef MAME_DEBUG
721   if (state->m_dislayer[3] == 0)
720   if (m_dislayer[3] == 0)
722721#endif
723   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[1], 0, 0);
724   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[2], 0, 0);
722   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[1], 0, 0);
723   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[2], 0, 0);
725724
726725#if 0
727726   {
728727      char buf[80];
729      sprintf(buf,"wgp_piv_ctrl_reg: %04x y zoom: %04x %04x %04x",state->m_piv_ctrl_reg,
730                  state->m_piv_zoom[0],state->m_piv_zoom[1],state->m_piv_zoom[2]);
728      sprintf(buf,"wgp_piv_ctrl_reg: %04x y zoom: %04x %04x %04x",m_piv_ctrl_reg,
729                  m_piv_zoom[0],m_piv_zoom[1],m_piv_zoom[2]);
731730      popmessage(buf);
732731   }
733732#endif
trunk/src/mame/video/atarisy1.c
r17967r17968
497497 *
498498 *************************************/
499499
500SCREEN_UPDATE_IND16( atarisy1 )
500UINT32 atarisy1_state::screen_update_atarisy1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
501501{
502   atarisy1_state *state = screen.machine().driver_data<atarisy1_state>();
503502   atarimo_rect_list rectlist;
504503   bitmap_ind16 *mobitmap;
505504   int x, y, r;
506505
507506   /* draw the playfield */
508   state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
507   m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
509508
510509   /* draw and merge the MO */
511510   mobitmap = atarimo_render(0, cliprect, &rectlist);
r17967r17968
529528               else
530529               {
531530                  /* priority pens for playfield color 0 */
532                  if ((pf[x] & 0xf8) != 0 || !(state->m_playfield_priority_pens & (1 << (pf[x] & 0x07))))
531                  if ((pf[x] & 0xf8) != 0 || !(m_playfield_priority_pens & (1 << (pf[x] & 0x07))))
533532                     pf[x] = mo[x];
534533               }
535534
r17967r17968
539538      }
540539
541540   /* add the alpha on top */
542   state->m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
541   m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
543542   return 0;
544543}
545544
trunk/src/mame/video/welltris.c
r17967r17968
233233   }
234234}
235235
236SCREEN_UPDATE_IND16( welltris )
236UINT32 welltris_state::screen_update_welltris(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
237237{
238   welltris_state *state = screen.machine().driver_data<welltris_state>();
239   state->m_char_tilemap->set_scrollx(0, state->m_scrollx);
240   state->m_char_tilemap->set_scrolly(0, state->m_scrolly);
238   m_char_tilemap->set_scrollx(0, m_scrollx);
239   m_char_tilemap->set_scrolly(0, m_scrolly);
241240
242241   draw_background(screen.machine(), bitmap, cliprect);
243   state->m_char_tilemap->draw(bitmap, cliprect, 0, 0);
242   m_char_tilemap->draw(bitmap, cliprect, 0, 0);
244243   draw_sprites(screen.machine(), bitmap, cliprect);
245244   return 0;
246245}
trunk/src/mame/video/sprint8.c
r17967r17968
154154}
155155
156156
157SCREEN_UPDATE_IND16( sprint8 )
157UINT32 sprint8_state::screen_update_sprint8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
158158{
159   sprint8_state *state = screen.machine().driver_data<sprint8_state>();
160   set_pens(state, screen.machine().colortable);
161   state->m_tilemap1->draw(bitmap, cliprect, 0, 0);
159   set_pens(this, screen.machine().colortable);
160   m_tilemap1->draw(bitmap, cliprect, 0, 0);
162161   draw_sprites(screen.machine(), bitmap, cliprect);
163162   return 0;
164163}
165164
166165
167SCREEN_VBLANK( sprint8 )
166void sprint8_state::screen_eof_sprint8(screen_device &screen, bool state)
168167{
169168   // rising edge
170   if (vblank_on)
169   if (state)
171170   {
172      sprint8_state *state = screen.machine().driver_data<sprint8_state>();
173171      int x;
174172      int y;
175173      const rectangle &visarea = screen.machine().primary_screen->visible_area();
176174
177      state->m_tilemap2->draw(state->m_helper2, visarea, 0, 0);
175      m_tilemap2->draw(m_helper2, visarea, 0, 0);
178176
179      state->m_helper1.fill(0x20, visarea);
177      m_helper1.fill(0x20, visarea);
180178
181      draw_sprites(screen.machine(), state->m_helper1, visarea);
179      draw_sprites(screen.machine(), m_helper1, visarea);
182180
183181      for (y = visarea.min_y; y <= visarea.max_y; y++)
184182      {
185         const UINT16* p1 = &state->m_helper1.pix16(y);
186         const UINT16* p2 = &state->m_helper2.pix16(y);
183         const UINT16* p1 = &m_helper1.pix16(y);
184         const UINT16* p2 = &m_helper2.pix16(y);
187185
188186         for (x = visarea.min_x; x <= visarea.max_x; x++)
189187            if (p1[x] != 0x20 && p2[x] == 0x23)
trunk/src/mame/video/gumbo.c
r17967r17968
3737   m_fg_tilemap->set_transparent_pen(0xff);
3838}
3939
40SCREEN_UPDATE_IND16( gumbo )
40UINT32 gumbo_state::screen_update_gumbo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
4141{
42   gumbo_state *state = screen.machine().driver_data<gumbo_state>();
43   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
44   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
42   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
43   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
4544   return 0;
4645}
trunk/src/mame/video/ssv.c
r17967r17968
970970
971971***************************************************************************/
972972
973SCREEN_UPDATE_IND16( eaglshot )
973UINT32 ssv_state::screen_update_eaglshot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
974974{
975   return SCREEN_UPDATE16_CALL(ssv);
975   return SCREEN_UPDATE16_CALL_MEMBER(ssv);
976976}
977977
978SCREEN_UPDATE_IND16( gdfs )
978UINT32 ssv_state::screen_update_gdfs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
979979{
980   ssv_state *state = screen.machine().driver_data<ssv_state>();
981980
982   SCREEN_UPDATE16_CALL(ssv);
981   SCREEN_UPDATE16_CALL_MEMBER(ssv);
983982
984983   // draw zooming sprites
985   state->m_gdfs_st0020->st0020_draw_all(screen.machine(), bitmap, cliprect);
984   m_gdfs_st0020->st0020_draw_all(screen.machine(), bitmap, cliprect);
986985
987   state->m_gdfs_tmap->set_scrollx(0, state->m_gdfs_tmapscroll[0x0c/2]);
988   state->m_gdfs_tmap->set_scrolly(0, state->m_gdfs_tmapscroll[0x10/2]);
989   state->m_gdfs_tmap->draw(bitmap, cliprect, 0, 0);
986   m_gdfs_tmap->set_scrollx(0, m_gdfs_tmapscroll[0x0c/2]);
987   m_gdfs_tmap->set_scrolly(0, m_gdfs_tmapscroll[0x10/2]);
988   m_gdfs_tmap->draw(bitmap, cliprect, 0, 0);
990989
991990   return 0;
992991}
r17967r17968
998997   state->m_enable_video = enable;
999998}
1000999
1001SCREEN_UPDATE_IND16( ssv )
1000UINT32 ssv_state::screen_update_ssv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
10021001{
10031002   rectangle clip;
10041003
1005   ssv_state *state = screen.machine().driver_data<ssv_state>();
10061004
10071005   // Shadow
1008   if (state->m_scroll[0x76/2] & 0x0080)
1006   if (m_scroll[0x76/2] & 0x0080)
10091007   {
10101008      // 4 bit shadows (mslider, stmblade)
1011      state->m_shadow_pen_shift = 15-4;
1009      m_shadow_pen_shift = 15-4;
10121010   }
10131011   else
10141012   {
10151013      // 2 bit shadows
1016      state->m_shadow_pen_shift = 15-2;
1014      m_shadow_pen_shift = 15-2;
10171015   }
1018   state->m_shadow_pen_mask = (1 << state->m_shadow_pen_shift) - 1;
1016   m_shadow_pen_mask = (1 << m_shadow_pen_shift) - 1;
10191017
10201018   /* The background color is the first one in the palette */
10211019   bitmap.fill(0, cliprect);
10221020
10231021   // used by twineag2 and ultrax
1024   clip.min_x = (cliprect.max_x / 2 + state->m_scroll[0x62/2]) * 2 - state->m_scroll[0x64/2] * 2 + 2;
1025   clip.max_x = (cliprect.max_x / 2 + state->m_scroll[0x62/2]) * 2 - state->m_scroll[0x62/2] * 2 + 1;
1026   clip.min_y = (cliprect.max_y     + state->m_scroll[0x6a/2])     - state->m_scroll[0x6c/2]     + 1;
1027   clip.max_y = (cliprect.max_y     + state->m_scroll[0x6a/2])     - state->m_scroll[0x6a/2]        ;
1022   clip.min_x = (cliprect.max_x / 2 + m_scroll[0x62/2]) * 2 - m_scroll[0x64/2] * 2 + 2;
1023   clip.max_x = (cliprect.max_x / 2 + m_scroll[0x62/2]) * 2 - m_scroll[0x62/2] * 2 + 1;
1024   clip.min_y = (cliprect.max_y     + m_scroll[0x6a/2])     - m_scroll[0x6c/2]     + 1;
1025   clip.max_y = (cliprect.max_y     + m_scroll[0x6a/2])     - m_scroll[0x6a/2]        ;
10281026
10291027//  printf("%04x %04x %04x %04x\n",clip.min_x, clip.max_x, clip.min_y, clip.max_y);
10301028
r17967r17968
10381036   if (clip.min_y > clip.max_y)
10391037      clip.min_y = clip.max_y;
10401038
1041   if (!state->m_enable_video)
1039   if (!m_enable_video)
10421040      return 0;
10431041
10441042   draw_layer(screen.machine(), bitmap, clip, 0);   // "background layer"
trunk/src/mame/video/dec0.c
r17967r17968
4444/******************************************************************************/
4545
4646
47SCREEN_UPDATE_IND16( hbarrel )
47UINT32 dec0_state::screen_update_hbarrel(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
4848{
49   dec0_state *state = screen.machine().driver_data<dec0_state>();
5049
51   state->flip_screen_set(state->m_tilegen1->get_flip_state());
50   flip_screen_set(m_tilegen1->get_flip_state());
5251
53   state->m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
54   state->m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x08, 0x08, 0x0f);
55   state->m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
52   m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
53   m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x08, 0x08, 0x0f);
54   m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
5655
5756   /* HB always keeps pf2 on top of pf3, no need explicitly support priority register */
5857
59   state->m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x08, 0x00, 0x0f);
60   state->m_tilegen1->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
58   m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x08, 0x00, 0x0f);
59   m_tilegen1->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
6160   return 0;
6261}
6362
6463/******************************************************************************/
6564
66SCREEN_UPDATE_IND16( baddudes )
65UINT32 dec0_state::screen_update_baddudes(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
6766{
68   dec0_state *state = screen.machine().driver_data<dec0_state>();
69   state->flip_screen_set(state->m_tilegen1->get_flip_state());
67   flip_screen_set(m_tilegen1->get_flip_state());
7068
7169   /* WARNING: inverted wrt Midnight Resistance */
72   if ((state->m_pri & 0x01) == 0)
70   if ((m_pri & 0x01) == 0)
7371   {
74      state->m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
75      state->m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
72      m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
73      m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
7674
77      if (state->m_pri & 2)
78         state->m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0,0x08,0x08,0x08,0x08); // upper 8 pens of upper 8 priority marked tiles /* Foreground pens only */
75      if (m_pri & 2)
76         m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0,0x08,0x08,0x08,0x08); // upper 8 pens of upper 8 priority marked tiles /* Foreground pens only */
7977
80      state->m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x00, 0x00, 0x0f);
78      m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x00, 0x00, 0x0f);
8179
82      if (state->m_pri & 4)
83         state->m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0,0x08,0x08,0x08,0x08); // upper 8 pens of upper 8 priority marked tiles /* Foreground pens only */
80      if (m_pri & 4)
81         m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0,0x08,0x08,0x08,0x08); // upper 8 pens of upper 8 priority marked tiles /* Foreground pens only */
8482   }
8583   else
8684   {
87      state->m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
88      state->m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
85      m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
86      m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
8987
90      if (state->m_pri & 2)
91         state->m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0,0x08,0x08,0x08,0x08); // upper 8 pens of upper 8 priority marked tiles /* Foreground pens only */
88      if (m_pri & 2)
89         m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0,0x08,0x08,0x08,0x08); // upper 8 pens of upper 8 priority marked tiles /* Foreground pens only */
9290
93      state->m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x00, 0x00, 0x0f);
91      m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x00, 0x00, 0x0f);
9492
95      if (state->m_pri & 4)
96         state->m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0,0x08,0x08,0x08,0x08); // upper 8 pens of upper 8 priority marked tiles /* Foreground pens only */
93      if (m_pri & 4)
94         m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0,0x08,0x08,0x08,0x08); // upper 8 pens of upper 8 priority marked tiles /* Foreground pens only */
9795   }
9896
99   state->m_tilegen1->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
97   m_tilegen1->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
10098   return 0;
10199}
102100
103101/******************************************************************************/
104102
105SCREEN_UPDATE_IND16( robocop )
103UINT32 dec0_state::screen_update_robocop(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
106104{
107   dec0_state *state = screen.machine().driver_data<dec0_state>();
108105   int trans;
109106
110   state->flip_screen_set(state->m_tilegen1->get_flip_state());
107   flip_screen_set(m_tilegen1->get_flip_state());
111108
112   if (state->m_pri & 0x04)
109   if (m_pri & 0x04)
113110      trans = 0x08;
114111   else
115112      trans = 0x00;
116113
117   if (state->m_pri & 0x01)
114   if (m_pri & 0x01)
118115   {
119116      /* WARNING: inverted wrt Midnight Resistance */
120117      /* Robocop uses it only for the title screen, so this might be just */
121118      /* completely wrong. The top 8 bits of the register might mean */
122119      /* something (they are 0x80 in midres, 0x00 here) */
123      state->m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
120      m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
124121
125      if (state->m_pri & 0x02)
126         state->m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x08, trans, 0x0f);
122      if (m_pri & 0x02)
123         m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x08, trans, 0x0f);
127124
128      state->m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
125      m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
129126   }
130127   else
131128   {
132      state->m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
129      m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
133130
134      if (state->m_pri & 0x02)
135         state->m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x08, trans, 0x0f);
131      if (m_pri & 0x02)
132         m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x08, trans, 0x0f);
136133
137      state->m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
134      m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
138135   }
139136
140   if (state->m_pri & 0x02)
141      state->m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x08, trans^0x08, 0x0f);
137   if (m_pri & 0x02)
138      m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x08, trans^0x08, 0x0f);
142139   else
143      state->m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x00, 0x00, 0x0f);
140      m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x00, 0x00, 0x0f);
144141
145   state->m_tilegen1->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
142   m_tilegen1->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
146143   return 0;
147144}
148145
149146
150SCREEN_UPDATE_IND16( automat )
147UINT32 dec0_automat_state::screen_update_automat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
151148{
152   dec0_automat_state *state = screen.machine().driver_data<dec0_automat_state>();
153149   int trans;
154150
155151   // layer enables seem different... where are they?
156152
157153   // the bootleg doesn't write these registers, I think they're hardcoded?, so fake them for compatibility with our implementation..
158154   address_space &space = screen.machine().driver_data()->generic_space();
159   deco_bac06_pf_control_0_w(state->m_tilegen1,space,0,0x0003, 0x00ff); // 8x8
160   deco_bac06_pf_control_0_w(state->m_tilegen1,space,1,0x0003, 0x00ff);
161   deco_bac06_pf_control_0_w(state->m_tilegen1,space,2,0x0000, 0x00ff);
162   deco_bac06_pf_control_0_w(state->m_tilegen1,space,3,0x0001, 0x00ff); // dimensions
155   deco_bac06_pf_control_0_w(m_tilegen1,space,0,0x0003, 0x00ff); // 8x8
156   deco_bac06_pf_control_0_w(m_tilegen1,space,1,0x0003, 0x00ff);
157   deco_bac06_pf_control_0_w(m_tilegen1,space,2,0x0000, 0x00ff);
158   deco_bac06_pf_control_0_w(m_tilegen1,space,3,0x0001, 0x00ff); // dimensions
163159
164   deco_bac06_pf_control_0_w(state->m_tilegen2,space,0,0x0082, 0x00ff); // 16x16
165   deco_bac06_pf_control_0_w(state->m_tilegen2,space,1,0x0000, 0x00ff);
166   deco_bac06_pf_control_0_w(state->m_tilegen2,space,2,0x0000, 0x00ff);
167   deco_bac06_pf_control_0_w(state->m_tilegen2,space,3,0x0001, 0x00ff); // dimensions
160   deco_bac06_pf_control_0_w(m_tilegen2,space,0,0x0082, 0x00ff); // 16x16
161   deco_bac06_pf_control_0_w(m_tilegen2,space,1,0x0000, 0x00ff);
162   deco_bac06_pf_control_0_w(m_tilegen2,space,2,0x0000, 0x00ff);
163   deco_bac06_pf_control_0_w(m_tilegen2,space,3,0x0001, 0x00ff); // dimensions
168164
169   deco_bac06_pf_control_0_w(state->m_tilegen3,space,0,0x0082, 0x00ff); // 16x16
170   deco_bac06_pf_control_0_w(state->m_tilegen3,space,1,0x0003, 0x00ff);
171   deco_bac06_pf_control_0_w(state->m_tilegen3,space,2,0x0000, 0x00ff);
172   deco_bac06_pf_control_0_w(state->m_tilegen3,space,3,0x0001, 0x00ff); // dimensions
165   deco_bac06_pf_control_0_w(m_tilegen3,space,0,0x0082, 0x00ff); // 16x16
166   deco_bac06_pf_control_0_w(m_tilegen3,space,1,0x0003, 0x00ff);
167   deco_bac06_pf_control_0_w(m_tilegen3,space,2,0x0000, 0x00ff);
168   deco_bac06_pf_control_0_w(m_tilegen3,space,3,0x0001, 0x00ff); // dimensions
173169
174170   // scroll registers got written elsewhere, copy them across
175   deco_bac06_pf_control_1_w(state->m_tilegen1,space,0,0x0000, 0xffff); // no scroll?
176   deco_bac06_pf_control_1_w(state->m_tilegen1,space,1,0x0000, 0xffff); // no scroll?
171   deco_bac06_pf_control_1_w(m_tilegen1,space,0,0x0000, 0xffff); // no scroll?
172   deco_bac06_pf_control_1_w(m_tilegen1,space,1,0x0000, 0xffff); // no scroll?
177173
178   deco_bac06_pf_control_1_w(state->m_tilegen2,space,0,state->m_automat_scroll_regs[3] - 0x010a, 0xffff);
179   deco_bac06_pf_control_1_w(state->m_tilegen2,space,1,state->m_automat_scroll_regs[2], 0xffff);
174   deco_bac06_pf_control_1_w(m_tilegen2,space,0,m_automat_scroll_regs[3] - 0x010a, 0xffff);
175   deco_bac06_pf_control_1_w(m_tilegen2,space,1,m_automat_scroll_regs[2], 0xffff);
180176
181   deco_bac06_pf_control_1_w(state->m_tilegen3,space,0,state->m_automat_scroll_regs[1] - 0x0108, 0xffff);
182   deco_bac06_pf_control_1_w(state->m_tilegen3,space,1,state->m_automat_scroll_regs[0], 0xffff);
177   deco_bac06_pf_control_1_w(m_tilegen3,space,0,m_automat_scroll_regs[1] - 0x0108, 0xffff);
178   deco_bac06_pf_control_1_w(m_tilegen3,space,1,m_automat_scroll_regs[0], 0xffff);
183179
184180
185   state->flip_screen_set(state->m_tilegen1->get_flip_state());
181   flip_screen_set(m_tilegen1->get_flip_state());
186182
187   if (state->m_pri & 0x04)
183   if (m_pri & 0x04)
188184      trans = 0x08;
189185   else
190186      trans = 0x00;
191187
192   if (state->m_pri & 0x01)
188   if (m_pri & 0x01)
193189   {
194      state->m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
190      m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
195191
196      if (state->m_pri & 0x02)
197         state->m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x08, trans, 0x0f);
192      if (m_pri & 0x02)
193         m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x08, trans, 0x0f);
198194
199      state->m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
195      m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
200196   }
201197   else
202198   {
203      state->m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
199      m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
204200
205      if (state->m_pri & 0x02)
206         state->m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x08, trans, 0x0f);
201      if (m_pri & 0x02)
202         m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x08, trans, 0x0f);
207203
208      state->m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
204      m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
209205   }
210206
211   if (state->m_pri & 0x02)
212      state->m_spritegen->draw_sprites_bootleg(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x08, trans^0x08, 0x0f);
207   if (m_pri & 0x02)
208      m_spritegen->draw_sprites_bootleg(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x08, trans^0x08, 0x0f);
213209   else
214      state->m_spritegen->draw_sprites_bootleg(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x00, 0x00, 0x0f);
210      m_spritegen->draw_sprites_bootleg(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x00, 0x00, 0x0f);
215211
216   state->m_tilegen1->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
212   m_tilegen1->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
217213   return 0;
218214}
219215
220SCREEN_UPDATE_IND16( secretab )
216UINT32 dec0_automat_state::screen_update_secretab(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
221217{
222   dec0_automat_state *state = screen.machine().driver_data<dec0_automat_state>();
223218
224219   // layer enables seem different... where are they?
225220
226221   // the bootleg doesn't write these registers, I think they're hardcoded?, so fake them for compatibility with our implementation..
227222   address_space &space = screen.machine().driver_data()->generic_space();
228   deco_bac06_pf_control_0_w(state->m_tilegen1,space,0,0x0003, 0x00ff); // 8x8
229   deco_bac06_pf_control_0_w(state->m_tilegen1,space,1,0x0003, 0x00ff);
230   deco_bac06_pf_control_0_w(state->m_tilegen1,space,2,0x0000, 0x00ff);
231   deco_bac06_pf_control_0_w(state->m_tilegen1,space,3,0x0001, 0x00ff); // dimensions
223   deco_bac06_pf_control_0_w(m_tilegen1,space,0,0x0003, 0x00ff); // 8x8
224   deco_bac06_pf_control_0_w(m_tilegen1,space,1,0x0003, 0x00ff);
225   deco_bac06_pf_control_0_w(m_tilegen1,space,2,0x0000, 0x00ff);
226   deco_bac06_pf_control_0_w(m_tilegen1,space,3,0x0001, 0x00ff); // dimensions
232227
233   deco_bac06_pf_control_0_w(state->m_tilegen2,space,0,0x0082, 0x00ff); // 16x16
234   deco_bac06_pf_control_0_w(state->m_tilegen2,space,1,0x0000, 0x00ff);
235   deco_bac06_pf_control_0_w(state->m_tilegen2,space,2,0x0000, 0x00ff);
236   deco_bac06_pf_control_0_w(state->m_tilegen2,space,3,0x0001, 0x00ff); // dimensions
228   deco_bac06_pf_control_0_w(m_tilegen2,space,0,0x0082, 0x00ff); // 16x16
229   deco_bac06_pf_control_0_w(m_tilegen2,space,1,0x0000, 0x00ff);
230   deco_bac06_pf_control_0_w(m_tilegen2,space,2,0x0000, 0x00ff);
231   deco_bac06_pf_control_0_w(m_tilegen2,space,3,0x0001, 0x00ff); // dimensions
237232
238   deco_bac06_pf_control_0_w(state->m_tilegen3,space,0,0x0082, 0x00ff); // 16x16
239   deco_bac06_pf_control_0_w(state->m_tilegen3,space,1,0x0003, 0x00ff);
240   deco_bac06_pf_control_0_w(state->m_tilegen3,space,2,0x0000, 0x00ff);
241   deco_bac06_pf_control_0_w(state->m_tilegen3,space,3,0x0001, 0x00ff); // dimensions
233   deco_bac06_pf_control_0_w(m_tilegen3,space,0,0x0082, 0x00ff); // 16x16
234   deco_bac06_pf_control_0_w(m_tilegen3,space,1,0x0003, 0x00ff);
235   deco_bac06_pf_control_0_w(m_tilegen3,space,2,0x0000, 0x00ff);
236   deco_bac06_pf_control_0_w(m_tilegen3,space,3,0x0001, 0x00ff); // dimensions
242237
243238   // scroll registers got written elsewhere, copy them across
244   deco_bac06_pf_control_1_w(state->m_tilegen1,space,0,0x0000, 0xffff); // no scroll?
245   deco_bac06_pf_control_1_w(state->m_tilegen1,space,1,0x0000, 0xffff); // no scroll?
239   deco_bac06_pf_control_1_w(m_tilegen1,space,0,0x0000, 0xffff); // no scroll?
240   deco_bac06_pf_control_1_w(m_tilegen1,space,1,0x0000, 0xffff); // no scroll?
246241
247   deco_bac06_pf_control_1_w(state->m_tilegen2,space,0,state->m_automat_scroll_regs[3] - 0x010a, 0xffff);
248   deco_bac06_pf_control_1_w(state->m_tilegen2,space,1,state->m_automat_scroll_regs[2], 0xffff);
242   deco_bac06_pf_control_1_w(m_tilegen2,space,0,m_automat_scroll_regs[3] - 0x010a, 0xffff);
243   deco_bac06_pf_control_1_w(m_tilegen2,space,1,m_automat_scroll_regs[2], 0xffff);
249244
250   deco_bac06_pf_control_1_w(state->m_tilegen3,space,0,state->m_automat_scroll_regs[1] - 0x0108, 0xffff);
251   deco_bac06_pf_control_1_w(state->m_tilegen3,space,1,state->m_automat_scroll_regs[0], 0xffff);
245   deco_bac06_pf_control_1_w(m_tilegen3,space,0,m_automat_scroll_regs[1] - 0x0108, 0xffff);
246   deco_bac06_pf_control_1_w(m_tilegen3,space,1,m_automat_scroll_regs[0], 0xffff);
252247
253   state->flip_screen_set(state->m_tilegen1->get_flip_state());
248   flip_screen_set(m_tilegen1->get_flip_state());
254249
255   state->m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
256   state->m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
250   m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
251   m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
257252
258   state->m_spritegen->draw_sprites_bootleg(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x00, 0x00, 0x0f);
253   m_spritegen->draw_sprites_bootleg(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x00, 0x00, 0x0f);
259254
260255   /* Redraw top 8 pens of top 8 palettes over sprites */
261   if (state->m_pri&0x80)
262      state->m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0,0x08,0x08,0x08,0x08); // upper 8 pens of upper 8 priority marked tiles
256   if (m_pri&0x80)
257      m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0,0x08,0x08,0x08,0x08); // upper 8 pens of upper 8 priority marked tiles
263258
264   state->m_tilegen1->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
259   m_tilegen1->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
265260   return 0;
266261}
267262
268263
269264/******************************************************************************/
270265
271SCREEN_UPDATE_IND16( birdtry )
266UINT32 dec0_state::screen_update_birdtry(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
272267{
273   dec0_state *state = screen.machine().driver_data<dec0_state>();
274268
275   state->flip_screen_set(state->m_tilegen1->get_flip_state());
269   flip_screen_set(m_tilegen1->get_flip_state());
276270
277271   /* This game doesn't have the extra playfield chip on the game board, but
278272    the palette does show through. */
279273   bitmap.fill(screen.machine().pens[768], cliprect);
280   state->m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
281   state->m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x00, 0x00, 0x0f);
282   state->m_tilegen1->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
274   m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
275   m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x00, 0x00, 0x0f);
276   m_tilegen1->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
283277   return 0;
284278}
285279
286280/******************************************************************************/
287281
288SCREEN_UPDATE_IND16( hippodrm )
282UINT32 dec0_state::screen_update_hippodrm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
289283{
290   dec0_state *state = screen.machine().driver_data<dec0_state>();
291   state->flip_screen_set(state->m_tilegen1->get_flip_state());
284   flip_screen_set(m_tilegen1->get_flip_state());
292285
293   if (state->m_pri & 0x01)
286   if (m_pri & 0x01)
294287   {
295      state->m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
296      state->m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
288      m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
289      m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
297290   }
298291   else
299292   {
300      state->m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
301      state->m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
293      m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
294      m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
302295   }
303296
304   state->m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x00, 0x00, 0x0f);
305   state->m_tilegen1->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
297   m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x00, 0x00, 0x0f);
298   m_tilegen1->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
306299   return 0;
307300}
308301
309302/******************************************************************************/
310303
311SCREEN_UPDATE_IND16( slyspy )
304UINT32 dec0_state::screen_update_slyspy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
312305{
313   dec0_state *state = screen.machine().driver_data<dec0_state>();
314   state->flip_screen_set(state->m_tilegen1->get_flip_state());
306   flip_screen_set(m_tilegen1->get_flip_state());
315307
316   state->m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
317   state->m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
308   m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
309   m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
318310
319   state->m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x00, 0x00, 0x0f);
311   m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x00, 0x00, 0x0f);
320312
321313   /* Redraw top 8 pens of top 8 palettes over sprites */
322   if (state->m_pri&0x80)
323      state->m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0,0x08,0x08,0x08,0x08); // upper 8 pens of upper 8 priority marked tiles
314   if (m_pri&0x80)
315      m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0,0x08,0x08,0x08,0x08); // upper 8 pens of upper 8 priority marked tiles
324316
325   state->m_tilegen1->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
317   m_tilegen1->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
326318   return 0;
327319}
328320
329321/******************************************************************************/
330322
331SCREEN_UPDATE_IND16( midres )
323UINT32 dec0_state::screen_update_midres(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
332324{
333   dec0_state *state = screen.machine().driver_data<dec0_state>();
334325   int trans;
335326
336   state->flip_screen_set(state->m_tilegen1->get_flip_state());
327   flip_screen_set(m_tilegen1->get_flip_state());
337328
338   if (state->m_pri & 0x04)
329   if (m_pri & 0x04)
339330      trans = 0x00;
340331   else trans = 0x08;
341332
342   if (state->m_pri & 0x01)
333   if (m_pri & 0x01)
343334   {
344      state->m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
335      m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
345336
346      if (state->m_pri & 0x02)
347         state->m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x08, trans, 0x0f);
337      if (m_pri & 0x02)
338         m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x08, trans, 0x0f);
348339
349      state->m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
340      m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
350341   }
351342   else
352343   {
353      state->m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
344      m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
354345
355      if (state->m_pri & 0x02)
356         state->m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x08, trans, 0x0f);
346      if (m_pri & 0x02)
347         m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x08, trans, 0x0f);
357348
358      state->m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
349      m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
359350   }
360351
361   if (state->m_pri & 0x02)
362      state->m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x08, trans ^ 0x08, 0x0f);
352   if (m_pri & 0x02)
353      m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x08, trans ^ 0x08, 0x0f);
363354   else
364      state->m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x00, 0x00, 0x0f);
355      m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x00, 0x00, 0x0f);
365356
366   state->m_tilegen1->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
357   m_tilegen1->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
367358   return 0;
368359}
369360
trunk/src/mame/video/taitoair.c
r17967r17968
563563   //m_buffer3d = auto_bitmap_ind16_alloc(machine(), width, height);
564564}
565565
566SCREEN_UPDATE_IND16( taitoair )
566UINT32 taitoair_state::screen_update_taitoair(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
567567{
568   taitoair_state *state = screen.machine().driver_data<taitoair_state>();
569568
570   tc0080vco_tilemap_update(state->m_tc0080vco);
569   tc0080vco_tilemap_update(m_tc0080vco);
571570
572571   bitmap.fill(0, cliprect);
573572
r17967r17968
600599      #endif
601600   }
602601
603   tc0080vco_tilemap_draw(state->m_tc0080vco, bitmap, cliprect, 0, 0, 0);
602   tc0080vco_tilemap_draw(m_tc0080vco, bitmap, cliprect, 0, 0, 0);
604603
605604   draw_sprites(screen.machine(), bitmap, cliprect, 0);
606605
607   copybitmap_trans(bitmap, *state->m_framebuffer[1], 0, 0, 0, 0, cliprect, 0);
606   copybitmap_trans(bitmap, *m_framebuffer[1], 0, 0, 0, 0, cliprect, 0);
608607
609   tc0080vco_tilemap_draw(state->m_tc0080vco, bitmap, cliprect, 1, 0, 0);
608   tc0080vco_tilemap_draw(m_tc0080vco, bitmap, cliprect, 1, 0, 0);
610609
611610   draw_sprites(screen.machine(), bitmap, cliprect, 1);
612611
613   tc0080vco_tilemap_draw(state->m_tc0080vco, bitmap, cliprect, 2, 0, 0);
612   tc0080vco_tilemap_draw(m_tc0080vco, bitmap, cliprect, 2, 0, 0);
614613
615614   /* Hacky 3d bitmap */
616   //copybitmap_trans(bitmap, state->m_buffer3d, 0, 0, 0, 0, cliprect, 0);
617   //state->m_buffer3d->fill(0, cliprect);
615   //copybitmap_trans(bitmap, m_buffer3d, 0, 0, 0, 0, cliprect, 0);
616   //m_buffer3d->fill(0, cliprect);
618617
619618   return 0;
620619}
trunk/src/mame/video/atarig42.c
r17967r17968
177177 *
178178 *************************************/
179179
180SCREEN_UPDATE_IND16( atarig42 )
180UINT32 atarig42_state::screen_update_atarig42(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
181181{
182   atarig42_state *state = screen.machine().driver_data<atarig42_state>();
183182   bitmap_ind8 &priority_bitmap = screen.machine().priority_bitmap;
184183
185184   /* draw the playfield */
186185   priority_bitmap.fill(0, cliprect);
187   state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
188   state->m_playfield_tilemap->draw(bitmap, cliprect, 1, 1);
189   state->m_playfield_tilemap->draw(bitmap, cliprect, 2, 2);
190   state->m_playfield_tilemap->draw(bitmap, cliprect, 3, 3);
191   state->m_playfield_tilemap->draw(bitmap, cliprect, 4, 4);
192   state->m_playfield_tilemap->draw(bitmap, cliprect, 5, 5);
193   state->m_playfield_tilemap->draw(bitmap, cliprect, 6, 6);
194   state->m_playfield_tilemap->draw(bitmap, cliprect, 7, 7);
186   m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
187   m_playfield_tilemap->draw(bitmap, cliprect, 1, 1);
188   m_playfield_tilemap->draw(bitmap, cliprect, 2, 2);
189   m_playfield_tilemap->draw(bitmap, cliprect, 3, 3);
190   m_playfield_tilemap->draw(bitmap, cliprect, 4, 4);
191   m_playfield_tilemap->draw(bitmap, cliprect, 5, 5);
192   m_playfield_tilemap->draw(bitmap, cliprect, 6, 6);
193   m_playfield_tilemap->draw(bitmap, cliprect, 7, 7);
195194
196195   /* copy the motion objects on top */
197196   {
198      bitmap_ind16 *mo_bitmap = atarirle_get_vram(state->m_rle, 0);
197      bitmap_ind16 *mo_bitmap = atarirle_get_vram(m_rle, 0);
199198      int left   = cliprect.min_x;
200199      int top      = cliprect.min_y;
201200      int right   = cliprect.max_x + 1;
r17967r17968
220219   }
221220
222221   /* add the alpha on top */
223   state->m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
222   m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
224223   return 0;
225224}
226225
227SCREEN_VBLANK( atarig42 )
226void atarig42_state::screen_eof_atarig42(screen_device &screen, bool state)
228227{
229228   // rising edge
230   if (vblank_on)
229   if (state)
231230   {
232      atarig42_state *state = screen.machine().driver_data<atarig42_state>();
233231
234      atarirle_eof(state->m_rle);
232      atarirle_eof(m_rle);
235233   }
236234}
trunk/src/mame/video/tceptor.c
r17967r17968
510510}
511511
512512
513SCREEN_UPDATE_IND16( tceptor_2d )
513UINT32 tceptor_state::screen_update_tceptor_2d(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
514514{
515   tceptor_state *state = screen.machine().driver_data<tceptor_state>();
516515   rectangle rect;
517516   int pri;
518   int bg_center = 144 - ((((state->m_bg1_scroll_x + state->m_bg2_scroll_x ) & 0x1ff) - 288) / 2);
517   int bg_center = 144 - ((((m_bg1_scroll_x + m_bg2_scroll_x ) & 0x1ff) - 288) / 2);
519518
520519   // left background
521520   rect = cliprect;
522521   rect.max_x = bg_center;
523   state->m_bg1_tilemap->set_scrollx(0, state->m_bg1_scroll_x + 12);
524   state->m_bg1_tilemap->set_scrolly(0, state->m_bg1_scroll_y + 20); //32?
525   state->m_bg1_tilemap->draw(bitmap, rect, 0, 0);
522   m_bg1_tilemap->set_scrollx(0, m_bg1_scroll_x + 12);
523   m_bg1_tilemap->set_scrolly(0, m_bg1_scroll_y + 20); //32?
524   m_bg1_tilemap->draw(bitmap, rect, 0, 0);
526525
527526   // right background
528527   rect.min_x = bg_center;
529528   rect.max_x = cliprect.max_x;
530   state->m_bg2_tilemap->set_scrollx(0, state->m_bg2_scroll_x + 20);
531   state->m_bg2_tilemap->set_scrolly(0, state->m_bg2_scroll_y + 20); // 32?
532   state->m_bg2_tilemap->draw(bitmap, rect, 0, 0);
529   m_bg2_tilemap->set_scrollx(0, m_bg2_scroll_x + 20);
530   m_bg2_tilemap->set_scrolly(0, m_bg2_scroll_y + 20); // 32?
531   m_bg2_tilemap->draw(bitmap, rect, 0, 0);
533532
534533   for (pri = 0; pri < 8; pri++)
535534   {
536      state->m_c45_road->draw(bitmap, cliprect, pri * 2);
537      state->m_c45_road->draw(bitmap, cliprect, pri * 2 + 1);
535      m_c45_road->draw(bitmap, cliprect, pri * 2);
536      m_c45_road->draw(bitmap, cliprect, pri * 2 + 1);
538537      draw_sprites(screen.machine(), bitmap, cliprect, pri);
539538   }
540539
541   state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
540   m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
542541   return 0;
543542}
544543
545SCREEN_UPDATE_IND16( tceptor_3d_left )
544UINT32 tceptor_state::screen_update_tceptor_3d_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
546545{
547546   if ((screen.frame_number() & 1) == 1)
548547      return UPDATE_HAS_NOT_CHANGED;
549   return SCREEN_UPDATE16_CALL( tceptor_2d );
548   return SCREEN_UPDATE16_CALL_MEMBER( tceptor_2d );
550549}
551550
552SCREEN_UPDATE_IND16( tceptor_3d_right )
551UINT32 tceptor_state::screen_update_tceptor_3d_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
553552{
554553   if ((screen.frame_number() & 1) == 0)
555554      return UPDATE_HAS_NOT_CHANGED;
556   return SCREEN_UPDATE16_CALL( tceptor_2d );
555   return SCREEN_UPDATE16_CALL_MEMBER( tceptor_2d );
557556}
558557
559558
560SCREEN_VBLANK( tceptor )
559void tceptor_state::screen_eof_tceptor(screen_device &screen, bool state)
561560{
562561   // rising edge
563   if (vblank_on)
562   if (state)
564563   {
565      tceptor_state *state = screen.machine().driver_data<tceptor_state>();
566      memcpy(state->m_sprite_ram_buffered, state->m_sprite_ram, 0x200);
564      memcpy(m_sprite_ram_buffered, m_sprite_ram, 0x200);
567565   }
568566}
trunk/src/mame/video/vindictr.c
r17967r17968
216216 *
217217 *************************************/
218218
219SCREEN_UPDATE_IND16( vindictr )
219UINT32 vindictr_state::screen_update_vindictr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
220220{
221   vindictr_state *state = screen.machine().driver_data<vindictr_state>();
222221   atarimo_rect_list rectlist;
223222   bitmap_ind16 *mobitmap;
224223   int x, y, r;
225224
226225   /* draw the playfield */
227   state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
226   m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
228227
229228   /* draw and merge the MO */
230229   mobitmap = atarimo_render(0, cliprect, &rectlist);
r17967r17968
265264      }
266265
267266   /* add the alpha on top */
268   state->m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
267   m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
269268
270269   /* now go back and process the upper bit of MO priority */
271270   rectlist.rect -= rectlist.numrects;
trunk/src/mame/video/cop01.c
r17967r17968
201201}
202202
203203
204SCREEN_UPDATE_IND16( cop01 )
204UINT32 cop01_state::screen_update_cop01(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
205205{
206   cop01_state *state = screen.machine().driver_data<cop01_state>();
207   state->m_bg_tilemap->set_scrollx(0, state->m_vreg[1] + 256 * (state->m_vreg[2] & 1));
208   state->m_bg_tilemap->set_scrolly(0, state->m_vreg[3]);
206   m_bg_tilemap->set_scrollx(0, m_vreg[1] + 256 * (m_vreg[2] & 1));
207   m_bg_tilemap->set_scrolly(0, m_vreg[3]);
209208
210   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
209   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
211210   draw_sprites(screen.machine(), bitmap, cliprect);
212   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
213   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0 );
211   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
212   m_fg_tilemap->draw(bitmap, cliprect, 0, 0 );
214213   return 0;
215214}
trunk/src/mame/video/hanaawas.c
r17967r17968
106106   m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(hanaawas_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
107107}
108108
109SCREEN_UPDATE_IND16( hanaawas )
109UINT32 hanaawas_state::screen_update_hanaawas(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
110110{
111   hanaawas_state *state = screen.machine().driver_data<hanaawas_state>();
112   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
111   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
113112   return 0;
114113}
trunk/src/mame/video/aquarium.c
r17967r17968
151151   m_mid_tilemap->set_transparent_pen(0);
152152}
153153
154SCREEN_UPDATE_IND16(aquarium)
154UINT32 aquarium_state::screen_update_aquarium(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
155155{
156   aquarium_state *state = screen.machine().driver_data<aquarium_state>();
157   state->m_mid_tilemap->set_scrollx(0, state->m_scroll[0]);
158   state->m_mid_tilemap->set_scrolly(0, state->m_scroll[1]);
159   state->m_bak_tilemap->set_scrollx(0, state->m_scroll[2]);
160   state->m_bak_tilemap->set_scrolly(0, state->m_scroll[3]);
161   state->m_txt_tilemap->set_scrollx(0, state->m_scroll[4]);
162   state->m_txt_tilemap->set_scrolly(0, state->m_scroll[5]);
156   m_mid_tilemap->set_scrollx(0, m_scroll[0]);
157   m_mid_tilemap->set_scrolly(0, m_scroll[1]);
158   m_bak_tilemap->set_scrollx(0, m_scroll[2]);
159   m_bak_tilemap->set_scrolly(0, m_scroll[3]);
160   m_txt_tilemap->set_scrollx(0, m_scroll[4]);
161   m_txt_tilemap->set_scrolly(0, m_scroll[5]);
163162
164   state->m_bak_tilemap->draw(bitmap, cliprect, 0, 0);
165   state->m_mid_tilemap->draw(bitmap, cliprect, 0, 0);
163   m_bak_tilemap->draw(bitmap, cliprect, 0, 0);
164   m_mid_tilemap->draw(bitmap, cliprect, 0, 0);
166165
167166   draw_sprites(screen.machine(), bitmap, cliprect, 16);
168167
169   state->m_bak_tilemap->draw(bitmap, cliprect, 1, 0);
170   state->m_mid_tilemap->draw(bitmap, cliprect, 1, 0);
171   state->m_txt_tilemap->draw(bitmap, cliprect, 0, 0);
168   m_bak_tilemap->draw(bitmap, cliprect, 1, 0);
169   m_mid_tilemap->draw(bitmap, cliprect, 1, 0);
170   m_txt_tilemap->draw(bitmap, cliprect, 0, 0);
172171   return 0;
173172}
trunk/src/mame/video/metro.c
r17967r17968
714714
715715
716716
717SCREEN_UPDATE_IND16( metro )
717UINT32 metro_state::screen_update_metro(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
718718{
719   metro_state *state = screen.machine().driver_data<metro_state>();
720719   int pri, layers_ctrl = -1;
721   UINT16 screenctrl = *state->m_screenctrl;
720   UINT16 screenctrl = *m_screenctrl;
722721
723   state->m_sprite_xoffs = state->m_videoregs[0x06 / 2] - screen.width()  / 2;
724   state->m_sprite_yoffs = state->m_videoregs[0x04 / 2] - screen.height() / 2;
722   m_sprite_xoffs = m_videoregs[0x06 / 2] - screen.width()  / 2;
723   m_sprite_yoffs = m_videoregs[0x04 / 2] - screen.height() / 2;
725724
726725   /* The background color is selected by a register */
727726   screen.machine().priority_bitmap.fill(0, cliprect);
728   bitmap.fill((state->m_videoregs[0x12/2] & 0x0fff) + 0x1000, cliprect);
727   bitmap.fill((m_videoregs[0x12/2] & 0x0fff) + 0x1000, cliprect);
729728
730729   /*  Screen Control Register:
731730
r17967r17968
741740   if (screenctrl & 2)
742741      return 0;
743742
744   //state->flip_screen_set(screenctrl & 1);
745   state->m_flip_screen = screenctrl & 1;
743   //flip_screen_set(screenctrl & 1);
744   m_flip_screen = screenctrl & 1;
746745
747746   /* If the game supports 16x16 tiles, make sure that the
748747       16x16 and 8x8 tilemaps of a given layer are not simultaneously
749748       enabled! */
750   if (state->m_support_16x16)
749   if (m_support_16x16)
751750   {
752751      int layer;
753752
r17967r17968
755754      {
756755         int big = screenctrl & (0x0020 << layer);
757756
758         state->m_bg_tilemap_enable[layer] = !big;
759         state->m_bg_tilemap_enable16[layer] = big;
757         m_bg_tilemap_enable[layer] = !big;
758         m_bg_tilemap_enable16[layer] = big;
760759      }
761760   }
762761
r17967r17968
776775   }
777776
778777   popmessage("l %x-%x-%x r %04x %04x %04x",
779            (state->m_videoregs[0x10/2] & 0x30) >> 4, (state->m_videoregs[0x10/2] & 0xc) >> 2, state->m_videoregs[0x10/2] & 3,
780            state->m_videoregs[0x02/2], state->m_videoregs[0x12/2],
781            *state->m_screenctrl);
778            (m_videoregs[0x10/2] & 0x30) >> 4, (m_videoregs[0x10/2] & 0xc) >> 2, m_videoregs[0x10/2] & 3,
779            m_videoregs[0x02/2], m_videoregs[0x12/2],
780            *m_screenctrl);
782781}
783782#endif
784783
785   if (state->m_has_zoom)
786      k053936_zoom_draw(state->m_k053936, bitmap, cliprect, state->m_k053936_tilemap, 0, 0, 1);
784   if (m_has_zoom)
785      k053936_zoom_draw(m_k053936, bitmap, cliprect, m_k053936_tilemap, 0, 0, 1);
787786
788787   for (pri = 3; pri >= 0; pri--)
789788      draw_layers(screen.machine(), bitmap, cliprect, pri, layers_ctrl);
trunk/src/mame/video/angelkds.c
r17967r17968
258258
259259/* enable bits are uncertain */
260260
261SCREEN_UPDATE_IND16( angelkds )
261UINT32 angelkds_state::screen_update_angelkds(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
262262{
263   angelkds_state *state = screen.machine().driver_data<angelkds_state>();
264263   const rectangle &visarea = screen.visible_area();
265264   rectangle clip;
266265
r17967r17968
269268   /* draw top of screen */
270269   clip.set(8*0, 8*16-1, visarea.min_y, visarea.max_y);
271270
272   if ((state->m_layer_ctrl & 0x80) == 0x00)
273      state->m_bgtop_tilemap->draw(bitmap, clip, 0, 0);
271   if ((m_layer_ctrl & 0x80) == 0x00)
272      m_bgtop_tilemap->draw(bitmap, clip, 0, 0);
274273
275274   draw_sprites(screen.machine(), bitmap, clip, 0x80);
276275
277   if ((state->m_layer_ctrl & 0x20) == 0x00)
278      state->m_tx_tilemap->draw(bitmap, clip, 0, 0);
276   if ((m_layer_ctrl & 0x20) == 0x00)
277      m_tx_tilemap->draw(bitmap, clip, 0, 0);
279278
280279   /* draw bottom of screen */
281280   clip.set(8*16, 8*32-1, visarea.min_y, visarea.max_y);
282281
283   if ((state->m_layer_ctrl & 0x40) == 0x00)
284      state->m_bgbot_tilemap->draw(bitmap, clip, 0, 0);
282   if ((m_layer_ctrl & 0x40) == 0x00)
283      m_bgbot_tilemap->draw(bitmap, clip, 0, 0);
285284
286285   draw_sprites(screen.machine(), bitmap, clip, 0x40);
287286
288   if ((state->m_layer_ctrl & 0x20) == 0x00)
289      state->m_tx_tilemap->draw(bitmap, clip, 0, 0);
287   if ((m_layer_ctrl & 0x20) == 0x00)
288      m_tx_tilemap->draw(bitmap, clip, 0, 0);
290289
291290   return 0;
292291}
trunk/src/mame/video/circusc.c
r17967r17968
195195   }
196196}
197197
198SCREEN_UPDATE_IND16( circusc )
198UINT32 circusc_state::screen_update_circusc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
199199{
200   circusc_state *state = screen.machine().driver_data<circusc_state>();
201200   int i;
202201
203202   for (i = 0; i < 10; i++)
204      state->m_bg_tilemap->set_scrolly(i, 0);
203      m_bg_tilemap->set_scrolly(i, 0);
205204   for (i = 10; i < 32; i++)
206      state->m_bg_tilemap->set_scrolly(i, *state->m_scroll);
205      m_bg_tilemap->set_scrolly(i, *m_scroll);
207206
208207   bitmap.fill(0, cliprect);
209   state->m_bg_tilemap->draw(bitmap, cliprect, 1, 0);
208   m_bg_tilemap->draw(bitmap, cliprect, 1, 0);
210209   draw_sprites(screen.machine(), bitmap, cliprect);
211   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
210   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
212211   return 0;
213212}
trunk/src/mame/video/mikie.c
r17967r17968
171171   }
172172}
173173
174SCREEN_UPDATE_IND16( mikie )
174UINT32 mikie_state::screen_update_mikie(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
175175{
176   mikie_state *state = screen.machine().driver_data<mikie_state>();
177   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(0), 0);
176   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(0), 0);
178177   draw_sprites(screen.machine(), bitmap, cliprect);
179   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1), 0);
178   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1), 0);
180179   return 0;
181180}
trunk/src/mame/video/midvunit.c
r17967r17968
515515 *
516516 *************************************/
517517
518SCREEN_UPDATE_IND16( midvunit )
518UINT32 midvunit_state::screen_update_midvunit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
519519{
520   midvunit_state *state = screen.machine().driver_data<midvunit_state>();
521520   int x, y, width, xoffs;
522521   UINT32 offset;
523522
524   state->m_poly->wait("Refresh Time");
523   m_poly->wait("Refresh Time");
525524
526525   /* if the video didn't change, indicate as much */
527   if (!state->m_video_changed)
526   if (!m_video_changed)
528527      return UPDATE_HAS_NOT_CHANGED;
529   state->m_video_changed = FALSE;
528   m_video_changed = FALSE;
530529
531530   /* determine the base of the videoram */
532531#if WATCH_RENDER
533   offset = (state->m_page_control & 4) ? 0x40000 : 0x00000;
532   offset = (m_page_control & 4) ? 0x40000 : 0x00000;
534533#else
535   offset = (state->m_page_control & 1) ? 0x40000 : 0x00000;
534   offset = (m_page_control & 1) ? 0x40000 : 0x00000;
536535#endif
537536
538537   /* determine how many pixels to copy */
r17967r17968
548547   {
549548      UINT16 *dest = &bitmap.pix16(y, cliprect.min_x);
550549      for (x = 0; x < width; x++)
551         *dest++ = state->m_videoram[offset + x] & 0x7fff;
550         *dest++ = m_videoram[offset + x] & 0x7fff;
552551      offset += 512;
553552   }
554553   return 0;
trunk/src/mame/video/usgames.c
r17967r17968
6161}
6262
6363
64SCREEN_UPDATE_IND16(usgames)
64UINT32 usgames_state::screen_update_usgames(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
6565{
66   usgames_state *state = screen.machine().driver_data<usgames_state>();
67   state->m_tilemap->draw(bitmap, cliprect, 0,0);
66   m_tilemap->draw(bitmap, cliprect, 0,0);
6867   return 0;
6968}
trunk/src/mame/video/opwolf.c
r17967r17968
3535
3636/***************************************************************************/
3737
38SCREEN_UPDATE_IND16( opwolf )
38UINT32 opwolf_state::screen_update_opwolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
3939{
40   opwolf_state *state = screen.machine().driver_data<opwolf_state>();
4140   int layer[2];
4241
43   pc080sn_tilemap_update(state->m_pc080sn);
42   pc080sn_tilemap_update(m_pc080sn);
4443
4544   layer[0] = 0;
4645   layer[1] = 1;
4746
4847   screen.machine().priority_bitmap.fill(0, cliprect);
4948
50   pc080sn_tilemap_draw(state->m_pc080sn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
51   pc080sn_tilemap_draw(state->m_pc080sn, bitmap, cliprect, layer[1], 0, 2);
49   pc080sn_tilemap_draw(m_pc080sn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
50   pc080sn_tilemap_draw(m_pc080sn, bitmap, cliprect, layer[1], 0, 2);
5251
53   pc090oj_draw_sprites(state->m_pc090oj, bitmap, cliprect, 1);
52   pc090oj_draw_sprites(m_pc090oj, bitmap, cliprect, 1);
5453
55//  if (state->ioport("P1X")->read())
56//  popmessage("%d %d", machine, "P1X"), state->ioport("P1Y")->read());
54//  if (ioport("P1X")->read())
55//  popmessage("%d %d", machine(), "P1X"), ioport("P1Y")->read());
5756
5857   return 0;
5958}
trunk/src/mame/video/surpratk.c
r17967r17968
4646
4747***************************************************************************/
4848
49SCREEN_UPDATE_IND16( surpratk )
49UINT32 surpratk_state::screen_update_surpratk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
5050{
51   surpratk_state *state = screen.machine().driver_data<surpratk_state>();
5251   int layer[3], bg_colorbase;
5352
54   bg_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI0);
55   state->m_sprite_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI1);
56   state->m_layer_colorbase[0] = k053251_get_palette_index(state->m_k053251, K053251_CI2);
57   state->m_layer_colorbase[1] = k053251_get_palette_index(state->m_k053251, K053251_CI4);
58   state->m_layer_colorbase[2] = k053251_get_palette_index(state->m_k053251, K053251_CI3);
53   bg_colorbase = k053251_get_palette_index(m_k053251, K053251_CI0);
54   m_sprite_colorbase = k053251_get_palette_index(m_k053251, K053251_CI1);
55   m_layer_colorbase[0] = k053251_get_palette_index(m_k053251, K053251_CI2);
56   m_layer_colorbase[1] = k053251_get_palette_index(m_k053251, K053251_CI4);
57   m_layer_colorbase[2] = k053251_get_palette_index(m_k053251, K053251_CI3);
5958
60   k052109_tilemap_update(state->m_k052109);
59   k052109_tilemap_update(m_k052109);
6160
6261   layer[0] = 0;
63   state->m_layerpri[0] = k053251_get_priority(state->m_k053251, K053251_CI2);
62   m_layerpri[0] = k053251_get_priority(m_k053251, K053251_CI2);
6463   layer[1] = 1;
65   state->m_layerpri[1] = k053251_get_priority(state->m_k053251, K053251_CI4);
64   m_layerpri[1] = k053251_get_priority(m_k053251, K053251_CI4);
6665   layer[2] = 2;
67   state->m_layerpri[2] = k053251_get_priority(state->m_k053251, K053251_CI3);
66   m_layerpri[2] = k053251_get_priority(m_k053251, K053251_CI3);
6867
69   konami_sortlayers3(layer, state->m_layerpri);
68   konami_sortlayers3(layer, m_layerpri);
7069
7170   screen.machine().priority_bitmap.fill(0, cliprect);
7271   bitmap.fill(16 * bg_colorbase, cliprect);
73   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, layer[0], 0, 1);
74   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, layer[1], 0, 2);
75   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, layer[2], 0, 4);
72   k052109_tilemap_draw(m_k052109, bitmap, cliprect, layer[0], 0, 1);
73   k052109_tilemap_draw(m_k052109, bitmap, cliprect, layer[1], 0, 2);
74   k052109_tilemap_draw(m_k052109, bitmap, cliprect, layer[2], 0, 4);
7675
77   k053245_sprites_draw(state->m_k053244, bitmap, cliprect);
76   k053245_sprites_draw(m_k053244, bitmap, cliprect);
7877   return 0;
7978}
trunk/src/mame/video/zaccaria.c
r17967r17968
241241   }
242242}
243243
244SCREEN_UPDATE_IND16( zaccaria )
244UINT32 zaccaria_state::screen_update_zaccaria(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
245245{
246   zaccaria_state *state = screen.machine().driver_data<zaccaria_state>();
247   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
246   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
248247
249248   // 3 layers of sprites, each with their own palette and priorities
250249   // Not perfect yet, does spriteram(1) layer have a priority bit somewhere?
251   draw_sprites(screen.machine(),bitmap,cliprect,state->m_spriteram2,2,1);
252   draw_sprites(screen.machine(),bitmap,cliprect,state->m_spriteram,1,0);
253   draw_sprites(screen.machine(),bitmap,cliprect,state->m_spriteram2+0x20,0,1);
250   draw_sprites(screen.machine(),bitmap,cliprect,m_spriteram2,2,1);
251   draw_sprites(screen.machine(),bitmap,cliprect,m_spriteram,1,0);
252   draw_sprites(screen.machine(),bitmap,cliprect,m_spriteram2+0x20,0,1);
254253
255254   return 0;
256255}
trunk/src/mame/video/suna16.c
r17967r17968
217217
218218***************************************************************************/
219219
220SCREEN_UPDATE_IND16( suna16 )
220UINT32 suna16_state::screen_update_suna16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
221221{
222   suna16_state *state = screen.machine().driver_data<suna16_state>();
223222
224223   /* Suna Quiz indicates the background is the last pen */
225224   bitmap.fill(0xff, cliprect);
226   draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram, 0);
225   draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram, 0);
227226   return 0;
228227}
229228
230SCREEN_UPDATE_IND16( bestbest )
229UINT32 suna16_state::screen_update_bestbest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
231230{
232   suna16_state *state = screen.machine().driver_data<suna16_state>();
233231   int layers_ctrl = -1;
234232
235233#ifdef MAME_DEBUG
r17967r17968
243241
244242   /* Suna Quiz indicates the background is the last pen */
245243   bitmap.fill(0xff, cliprect);
246   if (layers_ctrl & 1)   draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram,  0);
247   if (layers_ctrl & 2)   draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram2, 1);
244   if (layers_ctrl & 1)   draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram,  0);
245   if (layers_ctrl & 2)   draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram2, 1);
248246   return 0;
249247}
trunk/src/mame/video/speedbal.c
r17967r17968
122122 *                                   *
123123 *************************************/
124124
125SCREEN_UPDATE_IND16( speedbal )
125UINT32 speedbal_state::screen_update_speedbal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
126126{
127   speedbal_state *state = screen.machine().driver_data<speedbal_state>();
128   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
129   state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
127   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
128   m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
130129   draw_sprites(screen.machine(), bitmap, cliprect);
131   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
132   state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
130   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
131   m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
133132   return 0;
134133}
trunk/src/mame/video/shadfrce.c
r17967r17968
151151   }
152152}
153153
154SCREEN_UPDATE_IND16( shadfrce )
154UINT32 shadfrce_state::screen_update_shadfrce(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
155155{
156   shadfrce_state *state = screen.machine().driver_data<shadfrce_state>();
157156   screen.machine().priority_bitmap.fill(0, cliprect);
158157
159   if (state->m_video_enable)
158   if (m_video_enable)
160159   {
161      state->m_bg1tilemap->draw(bitmap, cliprect, 0,0);
162      state->m_bg0tilemap->draw(bitmap, cliprect, 0,1);
160      m_bg1tilemap->draw(bitmap, cliprect, 0,0);
161      m_bg0tilemap->draw(bitmap, cliprect, 0,1);
163162      draw_sprites(screen.machine(), bitmap,cliprect);
164      state->m_fgtilemap->draw(bitmap, cliprect, 0,0);
163      m_fgtilemap->draw(bitmap, cliprect, 0,0);
165164   }
166165   else
167166   {
r17967r17968
171170   return 0;
172171}
173172
174SCREEN_VBLANK( shadfrce )
173void shadfrce_state::screen_eof_shadfrce(screen_device &screen, bool state)
175174{
176175   // rising edge
177   if (vblank_on)
176   if (state)
178177   {
179      shadfrce_state *state = screen.machine().driver_data<shadfrce_state>();
180178
181179      /* looks like sprites are *two* frames ahead */
182      memcpy(state->m_spvideoram_old, state->m_spvideoram, state->m_spvideoram.bytes());
180      memcpy(m_spvideoram_old, m_spvideoram, m_spvideoram.bytes());
183181   }
184182}
trunk/src/mame/video/tagteam.c
r17967r17968
186186   }
187187}
188188
189SCREEN_UPDATE_IND16( tagteam )
189UINT32 tagteam_state::screen_update_tagteam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
190190{
191   tagteam_state *state = screen.machine().driver_data<tagteam_state>();
192   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
191   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
193192   draw_sprites(screen.machine(), bitmap, cliprect);
194193   return 0;
195194}
trunk/src/mame/video/eolith.c
r17967r17968
3535   m_vram = auto_alloc_array(machine(), UINT32, 0x40000*2/4);
3636}
3737
38SCREEN_UPDATE_IND16( eolith )
38UINT32 eolith_state::screen_update_eolith(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
3939{
40   eolith_state *state = screen.machine().driver_data<eolith_state>();
4140   int y;
4241
4342   for (y = 0; y < 240; y++)
4443   {
4544      int x;
46      UINT32 *src = &state->m_vram[(state->m_buffer ? 0 : 0x10000) | (y * (336 / 2))];
45      UINT32 *src = &m_vram[(m_buffer ? 0 : 0x10000) | (y * (336 / 2))];
4746      UINT16 *dest = &bitmap.pix16(y);
4847
4948      for (x = 0; x < 320; x += 2)
trunk/src/mame/video/bagman.c
r17967r17968
142142   }
143143}
144144
145SCREEN_UPDATE_IND16( bagman )
145UINT32 bagman_state::screen_update_bagman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
146146{
147   bagman_state *state = screen.machine().driver_data<bagman_state>();
148147   bitmap.fill(0, cliprect);
149   if (*state->m_video_enable == 0)
148   if (*m_video_enable == 0)
150149      return 0;
151150
152   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
151   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
153152   draw_sprites(screen.machine(), bitmap, cliprect);
154153   return 0;
155154}
trunk/src/mame/video/bigevglf.c
r17967r17968
8585   }
8686}
8787
88SCREEN_UPDATE_IND16( bigevglf )
88UINT32 bigevglf_state::screen_update_bigevglf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
8989{
90   bigevglf_state *state = screen.machine().driver_data<bigevglf_state>();
9190
92   copybitmap(bitmap, state->m_tmp_bitmap[state->m_plane_visible], 0, 0, 0, 0, cliprect);
91   copybitmap(bitmap, m_tmp_bitmap[m_plane_visible], 0, 0, 0, 0, cliprect);
9392   draw_sprites(screen.machine(), bitmap, cliprect);
9493   return 0;
9594}
trunk/src/mame/video/inufuku.c
r17967r17968
225225
226226******************************************************************************/
227227
228SCREEN_UPDATE_IND16( inufuku )
228UINT32 inufuku_state::screen_update_inufuku(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
229229{
230   inufuku_state *state = screen.machine().driver_data<inufuku_state>();
231230   int i;
232231
233232   bitmap.fill(get_black_pen(screen.machine()), cliprect);
234233   screen.machine().priority_bitmap.fill(0);
235234
236   if (state->m_bg_raster)
235   if (m_bg_raster)
237236   {
238      state->m_bg_tilemap->set_scroll_rows(512);
237      m_bg_tilemap->set_scroll_rows(512);
239238      for (i = 0; i < 256; i++)
240         state->m_bg_tilemap->set_scrollx((state->m_bg_scrolly + i) & 0x1ff, state->m_bg_rasterram[i]);
239         m_bg_tilemap->set_scrollx((m_bg_scrolly + i) & 0x1ff, m_bg_rasterram[i]);
241240   }
242241   else
243242   {
244      state->m_bg_tilemap->set_scroll_rows(1);
245      state->m_bg_tilemap->set_scrollx(0, state->m_bg_scrollx);
243      m_bg_tilemap->set_scroll_rows(1);
244      m_bg_tilemap->set_scrollx(0, m_bg_scrollx);
246245   }
247   state->m_bg_tilemap->set_scrolly(0, state->m_bg_scrolly);
248   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
246   m_bg_tilemap->set_scrolly(0, m_bg_scrolly);
247   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
249248
250   state->m_tx_tilemap->set_scrollx(0, state->m_tx_scrollx);
251   state->m_tx_tilemap->set_scrolly(0, state->m_tx_scrolly);
252   state->m_tx_tilemap->draw(bitmap, cliprect, 0, 4);
249   m_tx_tilemap->set_scrollx(0, m_tx_scrollx);
250   m_tx_tilemap->set_scrolly(0, m_tx_scrolly);
251   m_tx_tilemap->draw(bitmap, cliprect, 0, 4);
253252
254253   draw_sprites(screen.machine(), bitmap, cliprect);
255254   return 0;
trunk/src/mame/video/commando.c
r17967r17968
126126   }
127127}
128128
129SCREEN_UPDATE_IND16( commando )
129UINT32 commando_state::screen_update_commando(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
130130{
131   commando_state *state = screen.machine().driver_data<commando_state>();
132131
133   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
132   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
134133   draw_sprites(screen.machine(), bitmap, cliprect);
135   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
134   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
136135   return 0;
137136}
trunk/src/mame/video/atarisy2.c
r17967r17968
316316 *
317317 *************************************/
318318
319SCREEN_UPDATE_IND16( atarisy2 )
319UINT32 atarisy2_state::screen_update_atarisy2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
320320{
321   atarisy2_state *state = screen.machine().driver_data<atarisy2_state>();
322321   bitmap_ind8 &priority_bitmap = screen.machine().priority_bitmap;
323322   atarimo_rect_list rectlist;
324323   bitmap_ind16 *mobitmap;
r17967r17968
326325
327326   /* draw the playfield */
328327   priority_bitmap.fill(0, cliprect);
329   state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
330   state->m_playfield_tilemap->draw(bitmap, cliprect, 1, 1);
331   state->m_playfield_tilemap->draw(bitmap, cliprect, 2, 2);
332   state->m_playfield_tilemap->draw(bitmap, cliprect, 3, 3);
328   m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
329   m_playfield_tilemap->draw(bitmap, cliprect, 1, 1);
330   m_playfield_tilemap->draw(bitmap, cliprect, 2, 2);
331   m_playfield_tilemap->draw(bitmap, cliprect, 3, 3);
333332
334333   /* draw and merge the MO */
335334   mobitmap = atarimo_render(0, cliprect, &rectlist);
r17967r17968
362361      }
363362
364363   /* add the alpha on top */
365   state->m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
364   m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
366365   return 0;
367366}
trunk/src/mame/video/yunsung8.c
r17967r17968
188188
189189***************************************************************************/
190190
191SCREEN_UPDATE_IND16( yunsung8 )
191UINT32 yunsung8_state::screen_update_yunsung8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
192192{
193   yunsung8_state *state = screen.machine().driver_data<yunsung8_state>();
194   int layers_ctrl = (~state->m_layers_ctrl) >> 4;
193   int layers_ctrl = (~m_layers_ctrl) >> 4;
195194
196195#ifdef MAME_DEBUG
197196if (screen.machine().input().code_pressed(KEYCODE_Z))
r17967r17968
204203#endif
205204
206205   if (layers_ctrl & 1)
207      state->m_tilemap_0->draw(bitmap, cliprect, 0, 0);
206      m_tilemap_0->draw(bitmap, cliprect, 0, 0);
208207   else
209208      bitmap.fill(0, cliprect);
210209
211210   if (layers_ctrl & 2)
212      state->m_tilemap_1->draw(bitmap, cliprect, 0, 0);
211      m_tilemap_1->draw(bitmap, cliprect, 0, 0);
213212
214213   return 0;
215214}
trunk/src/mame/video/skydiver.c
r17967r17968
200200}
201201
202202
203SCREEN_UPDATE_IND16( skydiver )
203UINT32 skydiver_state::screen_update_skydiver(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
204204{
205   skydiver_state *state = screen.machine().driver_data<skydiver_state>();
206   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
205   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
207206
208207   draw_sprites(screen.machine(), bitmap, cliprect);
209208   return 0;
trunk/src/mame/video/ninjakd2.c
r17967r17968
457457   ////// The glitch is correct behavior.
458458
459459
460SCREEN_UPDATE_IND16( ninjakd2 )
460UINT32 ninjakd2_state::screen_update_ninjakd2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
461461{
462   ninjakd2_state *state = screen.machine().driver_data<ninjakd2_state>();
463462   // updating sprites here instead than in screen_eof avoids a palette glitch
464463   // at the end of the "rainbow sky" screens.
465464   update_sprites(screen.machine());
466   state->m_sprites_updated = 1;
465   m_sprites_updated = 1;
467466
468467   bitmap.fill(0, cliprect);
469468
470   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
469   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
471470
472   copybitmap_trans(bitmap, state->m_sp_bitmap, 0, 0, 0, 0, cliprect, TRANSPARENTCODE);
471   copybitmap_trans(bitmap, m_sp_bitmap, 0, 0, 0, 0, cliprect, TRANSPARENTCODE);
473472
474   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
473   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
475474
476475   return 0;
477476}
478477
479SCREEN_UPDATE_IND16( robokid )
478UINT32 ninjakd2_state::screen_update_robokid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
480479{
481   ninjakd2_state *state = screen.machine().driver_data<ninjakd2_state>();
482480   update_sprites(screen.machine());
483   state->m_sprites_updated = 1;
481   m_sprites_updated = 1;
484482
485483   bitmap.fill(0, cliprect);
486484
487   state->m_bg0_tilemap->draw(bitmap, cliprect, 0, 0);
485   m_bg0_tilemap->draw(bitmap, cliprect, 0, 0);
488486
489   state->m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
487   m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
490488
491   copybitmap_trans(bitmap, state->m_sp_bitmap, 0, 0, 0, 0, cliprect, TRANSPARENTCODE);
489   copybitmap_trans(bitmap, m_sp_bitmap, 0, 0, 0, 0, cliprect, TRANSPARENTCODE);
492490
493   state->m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
491   m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
494492
495   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
493   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
496494
497495   return 0;
498496}
499497
500SCREEN_UPDATE_IND16( omegaf )
498UINT32 ninjakd2_state::screen_update_omegaf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
501499{
502   ninjakd2_state *state = screen.machine().driver_data<ninjakd2_state>();
503500   update_sprites(screen.machine());
504   state->m_sprites_updated = 1;
501   m_sprites_updated = 1;
505502
506503   bitmap.fill(0, cliprect);
507504
508   state->m_bg0_tilemap->draw(bitmap, cliprect, 0, 0);
505   m_bg0_tilemap->draw(bitmap, cliprect, 0, 0);
509506
510   state->m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
507   m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
511508
512   state->m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
509   m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
513510
514   copybitmap_trans(bitmap, state->m_sp_bitmap, 0, 0, 0, 0, cliprect, TRANSPARENTCODE);
511   copybitmap_trans(bitmap, m_sp_bitmap, 0, 0, 0, 0, cliprect, TRANSPARENTCODE);
515512
516   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
513   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
517514
518515   return 0;
519516}
520517
521518
522SCREEN_VBLANK( ninjakd2 )
519void ninjakd2_state::screen_eof_ninjakd2(screen_device &screen, bool state)
523520{
524521   // rising edge
525   if (vblank_on)
522   if (state)
526523   {
527      ninjakd2_state *state = screen.machine().driver_data<ninjakd2_state>();
528      if (!state->m_sprites_updated)
524      if (!m_sprites_updated)
529525         update_sprites(screen.machine());
530526
531      state->m_sprites_updated = 0;
527      m_sprites_updated = 0;
532528   }
533529}
trunk/src/mame/video/m52.c
r17967r17968
351351 *
352352 *************************************/
353353
354SCREEN_UPDATE_IND16( m52 )
354UINT32 m52_state::screen_update_m52(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
355355{
356   m52_state *state = screen.machine().driver_data<m52_state>();
357356   int offs;
358357
359358   bitmap.fill(0, cliprect);
360359
361   if (!(state->m_bgcontrol & 0x20))
360   if (!(m_bgcontrol & 0x20))
362361   {
363      if (!(state->m_bgcontrol & 0x10))
364         draw_background(screen.machine(), bitmap, cliprect, state->m_bg2xpos, state->m_bg2ypos, 2); /* distant mountains */
362      if (!(m_bgcontrol & 0x10))
363         draw_background(screen.machine(), bitmap, cliprect, m_bg2xpos, m_bg2ypos, 2); /* distant mountains */
365364
366      if (!(state->m_bgcontrol & 0x02))
367         draw_background(screen.machine(), bitmap, cliprect, state->m_bg1xpos, state->m_bg1ypos, 3); /* hills */
365      if (!(m_bgcontrol & 0x02))
366         draw_background(screen.machine(), bitmap, cliprect, m_bg1xpos, m_bg1ypos, 3); /* hills */
368367
369      if (!(state->m_bgcontrol & 0x04))
370         draw_background(screen.machine(), bitmap, cliprect, state->m_bg1xpos, state->m_bg1ypos, 4); /* cityscape */
368      if (!(m_bgcontrol & 0x04))
369         draw_background(screen.machine(), bitmap, cliprect, m_bg1xpos, m_bg1ypos, 4); /* cityscape */
371370   }
372371
373   state->m_bg_tilemap->set_flip(state->flip_screen() ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
372   m_bg_tilemap->set_flip(flip_screen() ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
374373
375   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
374   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
376375
377376   /* draw the sprites */
378377   for (offs = 0xfc; offs >= 0; offs -= 4)
379378   {
380      int sy = 257 - state->m_spriteram[offs];
381      int color = state->m_spriteram[offs + 1] & 0x3f;
382      int flipx = state->m_spriteram[offs + 1] & 0x40;
383      int flipy = state->m_spriteram[offs + 1] & 0x80;
384      int code = state->m_spriteram[offs + 2];
385      int sx = state->m_spriteram[offs + 3];
379      int sy = 257 - m_spriteram[offs];
380      int color = m_spriteram[offs + 1] & 0x3f;
381      int flipx = m_spriteram[offs + 1] & 0x40;
382      int flipy = m_spriteram[offs + 1] & 0x80;
383      int code = m_spriteram[offs + 2];
384      int sx = m_spriteram[offs + 3];
386385      rectangle clip;
387386
388387      /* sprites from offsets $00-$7F are processed in the upper half of the frame */
r17967r17968
394393         clip.min_y = 128, clip.max_y = 255;
395394
396395      /* adjust for flipping */
397      if (state->flip_screen())
396      if (flip_screen())
398397      {
399398         int temp = clip.min_y;
400399         clip.min_y = 255 - clip.max_y;
trunk/src/mame/video/warpwarp.c
r17967r17968
235235   }
236236}
237237
238SCREEN_UPDATE_IND16( geebee )
238UINT32 warpwarp_state::screen_update_geebee(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
239239{
240   warpwarp_state *state = screen.machine().driver_data<warpwarp_state>();
241   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
240   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
242241
243   draw_ball(screen.machine(), bitmap, cliprect, state->m_ball_pen);
242   draw_ball(screen.machine(), bitmap, cliprect, m_ball_pen);
244243   return 0;
245244}
trunk/src/mame/video/spacefb.c
r17967r17968
394394 *
395395 *************************************/
396396
397SCREEN_UPDATE_RGB32( spacefb )
397UINT32 spacefb_state::screen_update_spacefb(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
398398{
399399   draw_objects(screen.machine(), bitmap, cliprect);
400400   draw_starfield(screen, bitmap, cliprect);
trunk/src/mame/video/cbuster.c
r17967r17968
4848   machine().device<decospr_device>("spritegen")->alloc_sprite_bitmap();
4949}
5050
51SCREEN_UPDATE_RGB32( twocrude )
51UINT32 cbuster_state::screen_update_twocrude(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
5252{
53   cbuster_state *state = screen.machine().driver_data<cbuster_state>();
5453   address_space &space = screen.machine().driver_data()->generic_space();
55   UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
54   UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff);
5655
57   state->flip_screen_set(!BIT(flip, 7));
56   flip_screen_set(!BIT(flip, 7));
5857
59   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram16_buffer, 0x400);
58   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram16_buffer, 0x400);
6059
6160
62   deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
63   deco16ic_pf_update(state->m_deco_tilegen2, state->m_pf3_rowscroll, state->m_pf4_rowscroll);
61   deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
62   deco16ic_pf_update(m_deco_tilegen2, m_pf3_rowscroll, m_pf4_rowscroll);
6463
6564   /* Draw playfields & sprites */
66   deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
65   deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
6766   screen.machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0800, 0x0900, 0x100, 0x0ff);
6867   screen.machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0900, 0x0900, 0x500, 0x0ff);
6968
70   if (state->m_pri)
69   if (m_pri)
7170   {
72      deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
73      deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 0);
71      deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
72      deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 0);
7473   }
7574   else
7675   {
77      deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 0);
78      deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
76      deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 0);
77      deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
7978   }
8079
8180   screen.machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0900, 0x100, 0x0ff);
8281   screen.machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0100, 0x0900, 0x500, 0x0ff);
83   deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
82   deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
8483   return 0;
8584}
trunk/src/mame/video/gng.c
r17967r17968
133133   }
134134}
135135
136SCREEN_UPDATE_IND16( gng )
136UINT32 gng_state::screen_update_gng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
137137{
138   gng_state *state = screen.machine().driver_data<gng_state>();
139138
140   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
139   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
141140   draw_sprites(screen.machine(), bitmap, cliprect);
142   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
143   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
141   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
142   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
144143   return 0;
145144}
trunk/src/mame/video/ojankohs.c
r17967r17968
291291
292292******************************************************************************/
293293
294SCREEN_UPDATE_IND16( ojankohs )
294UINT32 ojankohs_state::screen_update_ojankohs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
295295{
296   ojankohs_state *state = screen.machine().driver_data<ojankohs_state>();
297296
298   state->m_tilemap->set_scrollx(0, state->m_scrollx);
299   state->m_tilemap->set_scrolly(0, state->m_scrolly);
297   m_tilemap->set_scrollx(0, m_scrollx);
298   m_tilemap->set_scrolly(0, m_scrolly);
300299
301   state->m_tilemap->draw(bitmap, cliprect, 0, 0);
300   m_tilemap->draw(bitmap, cliprect, 0, 0);
302301   return 0;
303302}
304303
305SCREEN_UPDATE_IND16( ojankoc )
304UINT32 ojankohs_state::screen_update_ojankoc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
306305{
307   ojankohs_state *state = screen.machine().driver_data<ojankohs_state>();
308306   int offs;
309307
310   if (state->m_screen_refresh)
308   if (m_screen_refresh)
311309   {
312310      address_space &space = *screen.machine().device("maincpu")->memory().space(AS_PROGRAM);
313311
314312      /* redraw bitmap */
315313      for (offs = 0; offs < 0x8000; offs++)
316314      {
317         state->ojankoc_videoram_w(space, offs, state->m_videoram[offs]);
315         ojankoc_videoram_w(space, offs, m_videoram[offs]);
318316      }
319      state->m_screen_refresh = 0;
317      m_screen_refresh = 0;
320318   }
321319
322   copybitmap(bitmap, state->m_tmpbitmap, 0, 0, 0, 0, cliprect);
320   copybitmap(bitmap, m_tmpbitmap, 0, 0, 0, 0, cliprect);
323321   return 0;
324322}
trunk/src/mame/video/n8080.c
r17967r17968
135135}
136136
137137
138SCREEN_UPDATE_IND16( spacefev )
138UINT32 n8080_state::screen_update_spacefev(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
139139{
140   n8080_state *state = screen.machine().driver_data<n8080_state>();
141   UINT8 mask = state->flip_screen() ? 0xff : 0x00;
140   UINT8 mask = flip_screen() ? 0xff : 0x00;
142141
143142   int x;
144143   int y;
145144
146   const UINT8* pRAM = state->m_videoram;
147   const UINT8* pPROM = state->memregion("proms")->base();
145   const UINT8* pRAM = m_videoram;
146   const UINT8* pPROM = memregion("proms")->base();
148147
149148   for (y = 0; y < 256; y++)
150149   {
r17967r17968
156155
157156         UINT8 color = 0;
158157
159         if (state->m_spacefev_red_screen)
158         if (m_spacefev_red_screen)
160159            color = 1;
161160         else
162161         {
r17967r17968
164163
165164            if ((x >> 3) == 0x06)
166165            {
167               color = state->m_spacefev_red_cannon ? 1 : 7;
166               color = m_spacefev_red_cannon ? 1 : 7;
168167            }
169168
170169            if ((x >> 3) == 0x1b)
r17967r17968
205204}
206205
207206
208SCREEN_UPDATE_IND16( sheriff )
207UINT32 n8080_state::screen_update_sheriff(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
209208{
210   n8080_state *state = screen.machine().driver_data<n8080_state>();
211   UINT8 mask = state->flip_screen() ? 0xff : 0x00;
209   UINT8 mask = flip_screen() ? 0xff : 0x00;
212210
213   const UINT8* pPROM = state->memregion("proms")->base();
211   const UINT8* pPROM = memregion("proms")->base();
214212
215213   int x;
216214   int y;
217215
218   const UINT8* pRAM = state->m_videoram;
216   const UINT8* pRAM = m_videoram;
219217
220218   for (y = 0; y < 256; y++)
221219   {
r17967r17968
227225
228226         UINT8 color = pPROM[32 * (y >> 3) + (x >> 3)];
229227
230         if (state->m_sheriff_color_mode == 1 && !(color & 8))
231            color = state->m_sheriff_color_data ^ 7;
228         if (m_sheriff_color_mode == 1 && !(color & 8))
229            color = m_sheriff_color_data ^ 7;
232230
233         if (state->m_sheriff_color_mode == 2)
234            color = state->m_sheriff_color_data ^ 7;
231         if (m_sheriff_color_mode == 2)
232            color = m_sheriff_color_data ^ 7;
235233
236         if (state->m_sheriff_color_mode == 3)
234         if (m_sheriff_color_mode == 3)
237235            color = 7;
238236
239237         for (n = 0; n < 8; n++)
r17967r17968
248246}
249247
250248
251SCREEN_UPDATE_IND16( helifire )
249UINT32 n8080_state::screen_update_helifire(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
252250{
253   n8080_state *state = screen.machine().driver_data<n8080_state>();
254251   int SUN_BRIGHTNESS = screen.machine().root_device().ioport("POT0")->read();
255252   int SEA_BRIGHTNESS = screen.machine().root_device().ioport("POT1")->read();
256253
257254   static const int wave[8] = { 0, 1, 2, 2, 2, 1, 0, 0 };
258255
259   unsigned saved_mv = state->m_helifire_mv;
260   unsigned saved_sc = state->m_helifire_sc;
256   unsigned saved_mv = m_helifire_mv;
257   unsigned saved_sc = m_helifire_sc;
261258
262259   int x;
263260   int y;
r17967r17968
266263   {
267264      UINT16* pLine = &bitmap.pix16(y);
268265
269      int level = 120 + wave[state->m_helifire_mv & 7];
266      int level = 120 + wave[m_helifire_mv & 7];
270267
271268      /* draw sky */
272269
r17967r17968
277274
278275      /* draw stars */
279276
280      if (state->m_helifire_mv % 8 == 4) /* upper half */
277      if (m_helifire_mv % 8 == 4) /* upper half */
281278      {
282         int step = (320 * (state->m_helifire_mv - 0)) % sizeof state->m_helifire_LSFR;
279         int step = (320 * (m_helifire_mv - 0)) % sizeof m_helifire_LSFR;
283280
284281         int data =
285            ((state->m_helifire_LSFR[step] & 1) << 6) |
286            ((state->m_helifire_LSFR[step] & 2) << 4) |
287            ((state->m_helifire_LSFR[step] & 4) << 2) |
288            ((state->m_helifire_LSFR[step] & 8) << 0);
282            ((m_helifire_LSFR[step] & 1) << 6) |
283            ((m_helifire_LSFR[step] & 2) << 4) |
284            ((m_helifire_LSFR[step] & 4) << 2) |
285            ((m_helifire_LSFR[step] & 8) << 0);
289286
290287         pLine[0x80 + data] |= 0x100;
291288      }
292289
293      if (state->m_helifire_mv % 8 == 5) /* lower half */
290      if (m_helifire_mv % 8 == 5) /* lower half */
294291      {
295         int step = (320 * (state->m_helifire_mv - 1)) % sizeof state->m_helifire_LSFR;
292         int step = (320 * (m_helifire_mv - 1)) % sizeof m_helifire_LSFR;
296293
297294         int data =
298            ((state->m_helifire_LSFR[step] & 1) << 6) |
299            ((state->m_helifire_LSFR[step] & 2) << 4) |
300            ((state->m_helifire_LSFR[step] & 4) << 2) |
301            ((state->m_helifire_LSFR[step] & 8) << 0);
295            ((m_helifire_LSFR[step] & 1) << 6) |
296            ((m_helifire_LSFR[step] & 2) << 4) |
297            ((m_helifire_LSFR[step] & 4) << 2) |
298            ((m_helifire_LSFR[step] & 8) << 0);
302299
303300         pLine[0x00 + data] |= 0x100;
304301      }
r17967r17968
320317
321318         for (n = 0; n < 8; n++)
322319         {
323            if (state->flip_screen())
320            if (flip_screen())
324321            {
325               if ((state->m_videoram[offset ^ 0x1fff] << n) & 0x80)
322               if ((m_videoram[offset ^ 0x1fff] << n) & 0x80)
326323               {
327                  pLine[x + n] = state->m_colorram[offset ^ 0x1fff] & 7;
324                  pLine[x + n] = m_colorram[offset ^ 0x1fff] & 7;
328325               }
329326            }
330327            else
331328            {
332               if ((state->m_videoram[offset] >> n) & 1)
329               if ((m_videoram[offset] >> n) & 1)
333330               {
334                  pLine[x + n] = state->m_colorram[offset] & 7;
331                  pLine[x + n] = m_colorram[offset] & 7;
335332               }
336333            }
337334         }
r17967r17968
342339      helifire_next_line(screen.machine());
343340   }
344341
345   state->m_helifire_mv = saved_mv;
346   state->m_helifire_sc = saved_sc;
342   m_helifire_mv = saved_mv;
343   m_helifire_sc = saved_sc;
347344   return 0;
348345}
349346
350347
351SCREEN_VBLANK( helifire )
348void n8080_state::screen_eof_helifire(screen_device &screen, bool state)
352349{
353350   // falling edge
354   if (!vblank_on)
351   if (!state)
355352   {
356      n8080_state *state = screen.machine().driver_data<n8080_state>();
357      int n = (screen.machine().primary_screen->frame_number() >> 1) % sizeof state->m_helifire_LSFR;
353      int n = (screen.machine().primary_screen->frame_number() >> 1) % sizeof m_helifire_LSFR;
358354
359355      int i;
360356
r17967r17968
364360         int G = (i & 2);
365361         int B = (i & 4);
366362
367         if (state->m_helifire_flash)
363         if (m_helifire_flash)
368364         {
369            if (state->m_helifire_LSFR[n] & 0x20)
365            if (m_helifire_LSFR[n] & 0x20)
370366            {
371367               G |= B;
372368            }
trunk/src/mame/video/nbmj8891.c
r17967r17968
507507
508508
509509******************************************************************************/
510SCREEN_UPDATE_IND16( nbmj8891 )
510UINT32 nbmj8891_state::screen_update_nbmj8891(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
511511{
512   nbmj8891_state *state = screen.machine().driver_data<nbmj8891_state>();
513512   int x, y;
514513
515   if (state->m_screen_refresh)
514   if (m_screen_refresh)
516515   {
517516      int width = screen.width();
518517      int height = screen.height();
519518
520      state->m_screen_refresh = 0;
519      m_screen_refresh = 0;
521520      for (y = 0; y < height; y++)
522521         for (x = 0; x < width; x++)
523522            update_pixel0(screen.machine(), x, y);
524523
525      if (state->m_gfxdraw_mode)
524      if (m_gfxdraw_mode)
526525         for (y = 0; y < height; y++)
527526            for (x = 0; x < width; x++)
528527               update_pixel1(screen.machine(), x, y);
529528   }
530529
531   if (state->m_dispflag)
530   if (m_dispflag)
532531   {
533532      int scrolly;
534      if (!state->m_flipscreen) scrolly =   state->m_scrolly;
535      else                      scrolly = (-state->m_scrolly) & 0xff;
533      if (!m_flipscreen) scrolly =   m_scrolly;
534      else                      scrolly = (-m_scrolly) & 0xff;
536535
537      if (state->m_gfxdraw_mode)
536      if (m_gfxdraw_mode)
538537      {
539         copyscrollbitmap      (bitmap, state->m_tmpbitmap0, 0, 0, 0, 0, cliprect);
540         copyscrollbitmap_trans(bitmap, state->m_tmpbitmap1, 0, 0, 1, &scrolly, cliprect, 0xff);
538         copyscrollbitmap      (bitmap, m_tmpbitmap0, 0, 0, 0, 0, cliprect);
539         copyscrollbitmap_trans(bitmap, m_tmpbitmap1, 0, 0, 1, &scrolly, cliprect, 0xff);
541540      }
542541      else
543         copyscrollbitmap(bitmap, state->m_tmpbitmap0, 0, 0, 1, &scrolly, cliprect);
542         copyscrollbitmap(bitmap, m_tmpbitmap0, 0, 0, 1, &scrolly, cliprect);
544543   }
545544   else
546545      bitmap.fill(0xff);
trunk/src/mame/video/wc90b.c
r17967r17968
125125   }
126126}
127127
128SCREEN_UPDATE_IND16( wc90b )
128UINT32 wc90b_state::screen_update_wc90b(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
129129{
130   wc90b_state *state = screen.machine().driver_data<wc90b_state>();
131   state->m_bg_tilemap->set_scrollx(0,8 * (state->m_scroll2x[0] & 0x7f) + 256 - 4 + (state->m_scroll_x_lo[0] & 0x07));
132   state->m_bg_tilemap->set_scrolly(0,state->m_scroll2y[0] + 1 + ((state->m_scroll2x[0] & 0x80) ? 256 : 0));
133   state->m_fg_tilemap->set_scrollx(0,8 * (state->m_scroll1x[0] & 0x7f) + 256 - 6 + ((state->m_scroll_x_lo[0] & 0x38) >> 3));
134   state->m_fg_tilemap->set_scrolly(0,state->m_scroll1y[0] + 1 + ((state->m_scroll1x[0] & 0x80) ? 256 : 0));
130   m_bg_tilemap->set_scrollx(0,8 * (m_scroll2x[0] & 0x7f) + 256 - 4 + (m_scroll_x_lo[0] & 0x07));
131   m_bg_tilemap->set_scrolly(0,m_scroll2y[0] + 1 + ((m_scroll2x[0] & 0x80) ? 256 : 0));
132   m_fg_tilemap->set_scrollx(0,8 * (m_scroll1x[0] & 0x7f) + 256 - 6 + ((m_scroll_x_lo[0] & 0x38) >> 3));
133   m_fg_tilemap->set_scrolly(0,m_scroll1y[0] + 1 + ((m_scroll1x[0] & 0x80) ? 256 : 0));
135134
136   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
137   state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
135   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
136   m_fg_tilemap->draw(bitmap, cliprect, 0,0);
138137   draw_sprites(screen.machine(), bitmap,cliprect, 1 );
139   state->m_tx_tilemap->draw(bitmap, cliprect, 0,0);
138   m_tx_tilemap->draw(bitmap, cliprect, 0,0);
140139   draw_sprites(screen.machine(), bitmap,cliprect, 0 );
141140   return 0;
142141}
trunk/src/mame/video/kncljoe.c
r17967r17968
234234      }
235235}
236236
237SCREEN_UPDATE_IND16( kncljoe )
237UINT32 kncljoe_state::screen_update_kncljoe(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
238238{
239   kncljoe_state *state = screen.machine().driver_data<kncljoe_state>();
240239
241   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
240   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
242241   draw_sprites(screen.machine(), bitmap, cliprect);
243242   return 0;
244243}
trunk/src/mame/video/holeland.c
r17967r17968
180180   }
181181}
182182
183SCREEN_UPDATE_IND16( holeland )
183UINT32 holeland_state::screen_update_holeland(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
184184{
185   holeland_state *state = screen.machine().driver_data<holeland_state>();
186/*state->m_bg_tilemap->mark_all_dirty(); */
187   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
185/*m_bg_tilemap->mark_all_dirty(); */
186   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
188187   holeland_draw_sprites(screen.machine(), bitmap, cliprect);
189   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
188   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
190189   return 0;
191190}
192191
193SCREEN_UPDATE_IND16( crzrally )
192UINT32 holeland_state::screen_update_crzrally(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
194193{
195   holeland_state *state = screen.machine().driver_data<holeland_state>();
196   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
194   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
197195   crzrally_draw_sprites(screen.machine(), bitmap, cliprect);
198196   return 0;
199197}
trunk/src/mame/video/spdodgeb.c
r17967r17968
204204#undef DRAW_SPRITE
205205
206206
207SCREEN_UPDATE_IND16( spdodgeb )
207UINT32 spdodgeb_state::screen_update_spdodgeb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
208208{
209   spdodgeb_state *state = screen.machine().driver_data<spdodgeb_state>();
210   state->m_bg_tilemap->set_scrollx(0,state->m_lastscroll+5);
211   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
209   m_bg_tilemap->set_scrollx(0,m_lastscroll+5);
210   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
212211   draw_sprites(screen.machine(), bitmap,cliprect);
213212   return 0;
214213}
trunk/src/mame/video/liberate.c
r17967r17968
499499
500500/***************************************************************************/
501501
502SCREEN_UPDATE_IND16( prosoccr )
502UINT32 liberate_state::screen_update_prosoccr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
503503{
504   liberate_state *state = screen.machine().driver_data<liberate_state>();
505   state->m_back_tilemap->set_scrolly(0,  state->m_io_ram[1]);
506   state->m_back_tilemap->set_scrollx(0, -state->m_io_ram[0]);
504   m_back_tilemap->set_scrolly(0,  m_io_ram[1]);
505   m_back_tilemap->set_scrollx(0, -m_io_ram[0]);
507506
508   if (state->m_background_disable)
507   if (m_background_disable)
509508      bitmap.fill(32, cliprect);
510509   else
511      state->m_back_tilemap->draw(bitmap, cliprect, 0, 0);
510      m_back_tilemap->draw(bitmap, cliprect, 0, 0);
512511
513   state->m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
512   m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
514513   prosoccr_draw_sprites(screen.machine(), bitmap, cliprect);
515514
516515   return 0;
517516}
518517
519SCREEN_UPDATE_IND16( prosport )
518UINT32 liberate_state::screen_update_prosport(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
520519{
521   liberate_state *state = screen.machine().driver_data<liberate_state>();
522   UINT8 *videoram = state->m_videoram;
523   UINT8 *colorram = state->m_colorram;
520   UINT8 *videoram = m_videoram;
521   UINT8 *colorram = m_colorram;
524522   int mx, my, tile, offs, gfx_region;
525523   int scrollx, scrolly;
526524
r17967r17968
528526
529527   offs = 0;
530528   /* TODO: what's bits 0 and 2 for? Internal scrolling state? */
531   scrolly = ((state->m_io_ram[0] & 0x8) << 5);
532   scrollx = ((state->m_io_ram[0] & 0x2) << 7) | (state->m_io_ram[1]);
529   scrolly = ((m_io_ram[0] & 0x8) << 5);
530   scrollx = ((m_io_ram[0] & 0x2) << 7) | (m_io_ram[1]);
533531
534   state->m_back_tilemap->set_scrolly(0, scrolly);
535   state->m_back_tilemap->set_scrollx(0, -scrollx);
532   m_back_tilemap->set_scrolly(0, scrolly);
533   m_back_tilemap->set_scrollx(0, -scrollx);
536534
537   state->m_back_tilemap->draw(bitmap, cliprect, 0, 0);
535   m_back_tilemap->draw(bitmap, cliprect, 0, 0);
538536
539537//  popmessage("%d %02x %02x %02x %02x %02x %02x %02x %02x",scrollx,deco16_io_ram[0],deco16_io_ram[1],deco16_io_ram[2],deco16_io_ram[3]
540538//  ,deco16_io_ram[4],deco16_io_ram[5],deco16_io_ram[6],deco16_io_ram[7]);
r17967r17968
543541   {
544542      tile = videoram[offs] + ((colorram[offs] & 0x3) << 8);
545543
546      if(state->m_io_ram[0] & 0x40) //dynamic ram-based gfxs for Pro Golf
544      if(m_io_ram[0] & 0x40) //dynamic ram-based gfxs for Pro Golf
547545         gfx_region = 3;
548546      else
549         gfx_region = ((state->m_io_ram[0] & 0x30) >> 4);
547         gfx_region = ((m_io_ram[0] & 0x30) >> 4);
550548
551549      my = (offs) % 32;
552550      mx = (offs) / 32;
r17967r17968
560558   return 0;
561559}
562560
563SCREEN_UPDATE_IND16( boomrang )
561UINT32 liberate_state::screen_update_boomrang(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
564562{
565   liberate_state *state = screen.machine().driver_data<liberate_state>();
566   state->m_back_tilemap->set_scrolly(0,  state->m_io_ram[1]);
567   state->m_back_tilemap->set_scrollx(0, -state->m_io_ram[0]);
563   m_back_tilemap->set_scrolly(0,  m_io_ram[1]);
564   m_back_tilemap->set_scrollx(0, -m_io_ram[0]);
568565
569   if (state->m_background_disable)
566   if (m_background_disable)
570567      bitmap.fill(32, cliprect);
571568   else
572      state->m_back_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
569      m_back_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
573570
574571   boomrang_draw_sprites(screen.machine(),bitmap,cliprect,8);
575   if (!state->m_background_disable)
576      state->m_back_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
572   if (!m_background_disable)
573      m_back_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
577574
578575   boomrang_draw_sprites(screen.machine(), bitmap, cliprect, 0);
579   state->m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
576   m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
580577   return 0;
581578}
582579
583SCREEN_UPDATE_IND16( liberate )
580UINT32 liberate_state::screen_update_liberate(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
584581{
585   liberate_state *state = screen.machine().driver_data<liberate_state>();
586   state->m_back_tilemap->set_scrolly(0,  state->m_io_ram[1]);
587   state->m_back_tilemap->set_scrollx(0, -state->m_io_ram[0]);
582   m_back_tilemap->set_scrolly(0,  m_io_ram[1]);
583   m_back_tilemap->set_scrollx(0, -m_io_ram[0]);
588584
589   if (state->m_background_disable)
585   if (m_background_disable)
590586      bitmap.fill(32, cliprect);
591587   else
592      state->m_back_tilemap->draw(bitmap, cliprect, 0, 0);
588      m_back_tilemap->draw(bitmap, cliprect, 0, 0);
593589
594590   liberate_draw_sprites(screen.machine(), bitmap, cliprect);
595   state->m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
591   m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
596592   return 0;
597593}
trunk/src/mame/video/gunsmoke.c
r17967r17968
169169   }
170170}
171171
172SCREEN_UPDATE_IND16( gunsmoke )
172UINT32 gunsmoke_state::screen_update_gunsmoke(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
173173{
174   gunsmoke_state *state = screen.machine().driver_data<gunsmoke_state>();
175   state->m_bg_tilemap->set_scrollx(0, state->m_scrollx[0] + 256 * state->m_scrollx[1]);
176   state->m_bg_tilemap->set_scrolly(0, state->m_scrolly[0]);
174   m_bg_tilemap->set_scrollx(0, m_scrollx[0] + 256 * m_scrollx[1]);
175   m_bg_tilemap->set_scrolly(0, m_scrolly[0]);
177176
178   if (state->m_bgon)
179      state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
177   if (m_bgon)
178      m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
180179   else
181180      bitmap.fill(get_black_pen(screen.machine()), cliprect);
182181
183   if (state->m_objon)
182   if (m_objon)
184183      draw_sprites(screen.machine(), bitmap, cliprect);
185184
186   if (state->m_chon)
187      state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
185   if (m_chon)
186      m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
188187
189188   return 0;
190189}
trunk/src/mame/video/turbo.c
r17967r17968
397397 *
398398 *************************************/
399399
400SCREEN_UPDATE_IND16( turbo )
400UINT32 turbo_state::screen_update_turbo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
401401{
402   turbo_state *state = screen.machine().driver_data<turbo_state>();
403   bitmap_ind16 &fgpixmap = state->m_fg_tilemap->pixmap();
402   bitmap_ind16 &fgpixmap = m_fg_tilemap->pixmap();
404403   const UINT8 *road_gfxdata = screen.machine().root_device().memregion("gfx3")->base();
405   const UINT8 *prom_base = state->memregion("proms")->base();
404   const UINT8 *prom_base = memregion("proms")->base();
406405   const UINT8 *pr1114 = prom_base + 0x000;
407406   const UINT8 *pr1115 = prom_base + 0x020;
408407   const UINT8 *pr1116 = prom_base + 0x040;
r17967r17968
422421      sprite_info sprinfo;
423422
424423      /* compute the Y sum between opa and the current scanline (p. 141) */
425      int va = (y + state->m_turbo_opa) & 0xff;
424      int va = (y + m_turbo_opa) & 0xff;
426425
427426      /* the upper bit of OPC inverts the road (p. 141) */
428      if (!(state->m_turbo_opc & 0x80))
427      if (!(m_turbo_opc & 0x80))
429428         va ^= 0xff;
430429
431430      /* compute the sprite information; we use y-1 since this info was computed during HBLANK */
432431      /* on the previous scanline */
433      turbo_prepare_sprites(screen.machine(), state, y, &sprinfo);
432      turbo_prepare_sprites(screen.machine(), this, y, &sprinfo);
434433
435434      /* loop over columns */
436435      for (x = 0; x <= cliprect.max_x; x += TURBO_X_SCALE)
r17967r17968
442441         UINT16 he;
443442
444443         /* load the bitmask from the sprite position for both halves of the sprites (p. 139) */
445         he = state->m_sprite_position[xx] | (state->m_sprite_position[xx + 0x100] << 8);
444         he = m_sprite_position[xx] | (m_sprite_position[xx + 0x100] << 8);
446445
447446         /* the AND of the line enable and horizontal enable is clocked and held in LST0-7 (p. 143) */
448447         he &= sprinfo.ve;
449448         sprinfo.lst |= he | (he >> 8);
450449
451450         /* compute the X sum between opb and the current column; only the carry matters (p. 141) */
452         carry = (xx + state->m_turbo_opb) >> 8;
451         carry = (xx + m_turbo_opb) >> 8;
453452
454453         /* the carry selects which inputs to use (p. 141) */
455454         if (carry)
456455         {
457            sel    = state->m_turbo_ipb;
458            coch = state->m_turbo_ipc >> 4;
456            sel    = m_turbo_ipb;
457            coch = m_turbo_ipc >> 4;
459458         }
460459         else
461460         {
462            sel    = state->m_turbo_ipa;
463            coch = state->m_turbo_ipc & 15;
461            sel    = m_turbo_ipa;
462            coch = m_turbo_ipc & 15;
464463         }
465464
466465         /* look up AREA1 and AREA2 (p. 142) */
r17967r17968
489488
490489         /* look up AREA5 (p. 141) */
491490         offs = (xx >> 3) |                     /*  A0- A4 = H3-H7 */
492               ((state->m_turbo_opc & 0x3f) << 5);   /*  A5-A10 = OPC0-5 */
491               ((m_turbo_opc & 0x3f) << 5);   /*  A5-A10 = OPC0-5 */
493492
494493         areatmp = road_gfxdata[0x4000 | offs];
495494         areatmp = (areatmp << (xx & 7)) & 0x80;
r17967r17968
505504
506505         /* also use the coch value to look up color info in IC13/PR1114 and IC21/PR1117 (p. 144) */
507506         offs = (coch & 0x0f) |                  /* A0-A3: CONT0-3 = COCH0-3 */
508               ((state->m_turbo_fbcol & 0x01) << 4);   /*    A4: COL0 */
507               ((m_turbo_fbcol & 0x01) << 4);   /*    A4: COL0 */
509508         bacol = pr1114[offs] | (pr1117[offs] << 8);
510509
511510         /* at this point, do the character lookup; due to the shift register loading in */
r17967r17968
526525            /*    CDG0-7 = D8 -D15 */
527526            /*    CDR0-7 = D16-D23 */
528527            /*    PLB0-7 = D24-D31 */
529            sprbits = turbo_get_sprite_bits(state->m_gfx1->base(), road, &sprinfo);
528            sprbits = turbo_get_sprite_bits(m_gfx1->base(), road, &sprinfo);
530529
531530            /* perform collision detection here via lookup in IC20/PR1116 (p. 144) */
532            state->m_turbo_collision |= pr1116[((sprbits >> 24) & 7) | (slipar_acciar >> 1)];
531            m_turbo_collision |= pr1116[((sprbits >> 24) & 7) | (slipar_acciar >> 1)];
533532
534533            /* look up the sprite priority in IC11/PR1122 (p. 144) */
535534            priority = ((sprbits & 0xfe000000) >> 25) |      /* A0-A6: PLB1-7 */
536                     ((state->m_turbo_fbpla & 0x07) << 7);   /* A7-A9: PLA0-2 */
535                     ((m_turbo_fbpla & 0x07) << 7);   /* A7-A9: PLA0-2 */
537536            priority = pr1122[priority];
538537
539538            /* use that to look up the overall priority in IC12/PR1123 (p. 144) */
r17967r17968
542541                ((foreraw & 0x80) >> 3) |            /*    A4: PLBE */
543542                ((forebits & 0x08) << 2) |          /*    A5: PLBF */
544543                ((babit & 0x07) << 6) |            /* A6-A8: BABIT1-3 */
545                ((state->m_turbo_fbpla & 0x08) << 6);   /*    A9: PLA3 */
544                ((m_turbo_fbpla & 0x08) << 6);   /*    A9: PLA3 */
546545            mx = pr1123[mx];
547546
548547            /* the MX output selects one of 16 inputs; build up a 16-bit pattern to match */
r17967r17968
570569                  (((~red >> mx) & 1) << 4) |      /*    A4: CDR */
571570                  (((~grn >> mx) & 1) << 5) |      /*    A5: CDG */
572571                  (((~blu >> mx) & 1) << 6) |      /*    A6: CDB */
573                  ((state->m_turbo_fbcol & 6) << 6);   /* A7-A8: COL1-2 */
572                  ((m_turbo_fbcol & 6) << 6);   /* A7-A8: COL1-2 */
574573            dest[x + ix] = pr1121[offs];
575574         }
576575      }
r17967r17968
751750 *
752751 *************************************/
753752
754SCREEN_UPDATE_IND16( subroc3d )
753UINT32 turbo_state::screen_update_subroc3d(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
755754{
756   turbo_state *state = screen.machine().driver_data<turbo_state>();
757   bitmap_ind16 &fgpixmap = state->m_fg_tilemap->pixmap();
758   const UINT8 *prom_base = state->memregion("proms")->base();
755   bitmap_ind16 &fgpixmap = m_fg_tilemap->pixmap();
756   const UINT8 *prom_base = memregion("proms")->base();
759757   const UINT8 *pr1419 = prom_base + 0x000;
760758   const UINT8 *pr1620 = prom_base + 0x200;
761759   const UINT8 *pr1450 = prom_base + 0x500;
r17967r17968
771769
772770      /* compute the sprite information; we use y-1 since this info was computed during HBLANK */
773771      /* on the previous scanline */
774      subroc3d_prepare_sprites(screen.machine(), state, y, &sprinfo);
772      subroc3d_prepare_sprites(screen.machine(), this, y, &sprinfo);
775773
776774      /* loop over columns */
777775      for (x = 0; x <= cliprect.max_x; x += TURBO_X_SCALE)
r17967r17968
783781         UINT32 sprbits;
784782
785783         /* load the bitmask from the sprite position for both halves of the sprites (p. 143) */
786         he = state->m_sprite_position[xx * 2] | (state->m_sprite_position[xx * 2 + 1] << 8);
784         he = m_sprite_position[xx * 2] | (m_sprite_position[xx * 2 + 1] << 8);
787785
788786         /* the AND of the line enable and horizontal enable is clocked and held in LST0-7 (p. 143) */
789787         he &= sprinfo.ve;
790788         sprinfo.lst |= he | (he >> 8);
791789
792790         /* at this point, do the character lookup */
793         if (!state->m_subroc3d_flip)
791         if (!m_subroc3d_flip)
794792            foreraw = fore[xx];
795793         else
796794            foreraw = fore[(pr1454[(xx >> 3) & 0x1f] << 3) | (xx & 0x07)];
r17967r17968
811809            /*    CDB0-7 = D8 -D15 */
812810            /*    CDC0-7 = D16-D23 */
813811            /*    CDD0-7 = D24-D31 */
814            sprbits = subroc3d_get_sprite_bits(state->m_gfx1->base(), &sprinfo, &plb);
812            sprbits = subroc3d_get_sprite_bits(m_gfx1->base(), &sprinfo, &plb);
815813
816814            /* MUX0-3 is selected by PLY0-3 and the sprite enable bits, and is the output */
817815            /* of IC21/PR1450 (p. 141), unless MPLB = 0, in which case the values are grounded (p. 141) */
818816            if (mplb)
819817            {
820818               offs = (plb ^ 0xff) |                  /* A0-A7: /PLB0-7 */
821                     ((state->m_subroc3d_ply & 0x02) << 7);   /*    A8: PLY1 */
822               mux = pr1450[offs] >> ((state->m_subroc3d_ply & 0x01) * 4);
819                     ((m_subroc3d_ply & 0x02) << 7);   /*    A8: PLY1 */
820               mux = pr1450[offs] >> ((m_subroc3d_ply & 0x01) * 4);
823821            }
824822            else
825823               mux = 0;
r17967r17968
837835            /* we then go through a muxer to select one of the 16 outputs computed above (p. 141) */
838836            offs = (finalbits & 0x0f) |             /* A0-A3: CD0-CD3 */
839837                  ((mux & 0x08) << 1) |            /*    A4: MUX3 */
840                  (state->m_subroc3d_col << 5);         /* A5-A8: COL0-COL3 */
838                  (m_subroc3d_col << 5);         /* A5-A8: COL0-COL3 */
841839            dest[x + ix] = pr1419[offs];
842840         }
843841      }
r17967r17968
970968 *
971969 *************************************/
972970
973SCREEN_UPDATE_IND16( buckrog )
971UINT32 turbo_state::screen_update_buckrog(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
974972{
975   turbo_state *state = screen.machine().driver_data<turbo_state>();
976   bitmap_ind16 &fgpixmap = state->m_fg_tilemap->pixmap();
973   bitmap_ind16 &fgpixmap = m_fg_tilemap->pixmap();
977974   const UINT8 *bgcolor = screen.machine().root_device().memregion("gfx3")->base();
978   const UINT8 *prom_base = state->memregion("proms")->base();
975   const UINT8 *prom_base = memregion("proms")->base();
979976   const UINT8 *pr5194 = prom_base + 0x000;
980977   const UINT8 *pr5198 = prom_base + 0x500;
981978   const UINT8 *pr5199 = prom_base + 0x700;
r17967r17968
990987
991988      /* compute the sprite information; we use y-1 since this info was computed during HBLANK */
992989      /* on the previous scanline */
993      buckrog_prepare_sprites(screen.machine(), state, y, &sprinfo);
990      buckrog_prepare_sprites(screen.machine(), this, y, &sprinfo);
994991
995992      /* loop over columns */
996993      for (x = 0; x <= cliprect.max_x; x += TURBO_X_SCALE)
r17967r17968
1002999         int palbits, offs, ix;
10031000
10041001         /* load the bitmask from the sprite position for both halves of the sprites (p. 143) */
1005         he = state->m_sprite_position[xx * 2] | (state->m_sprite_position[xx * 2 + 1] << 8);
1002         he = m_sprite_position[xx * 2] | (m_sprite_position[xx * 2 + 1] << 8);
10061003
10071004         /* the AND of the line enable and horizontal enable is clocked and held in LST0-7 (p. 143) */
10081005         he &= sprinfo.ve;
r17967r17968
10121009         foreraw = fore[(pr5194[((xx >> 3) - 1) & 0x1f] << 3) | (xx & 0x07)];
10131010         offs = ((foreraw & 0x03) << 0) |         /* A0-A1: BIT0-1 */
10141011               ((foreraw & 0xf8) >> 1) |         /* A2-A6: BANK3-7 */
1015               ((state->m_buckrog_fchg & 0x03) << 7);   /* A7-A9: FCHG0-2 */
1012               ((m_buckrog_fchg & 0x03) << 7);   /* A7-A9: FCHG0-2 */
10161013         forebits = pr5198[offs];
10171014
10181015         /* fetch the STAR bit */
1019         star = state->m_buckrog_bitmap_ram[y * 256 + xx];
1016         star = m_buckrog_bitmap_ram[y * 256 + xx];
10201017
10211018         /* now that we have done all the per-5MHz pixel work, mix the sprites at the scale factor */
10221019         for (ix = 0; ix < TURBO_X_SCALE; ix++)
r17967r17968
10271024            /*    CDB0-7 = D8 -D15 */
10281025            /*    CDC0-7 = D16-D23 */
10291026            /*    CDD0-7 = D24-D31 */
1030            sprbits = buckrog_get_sprite_bits(state->m_gfx1->base(), &sprinfo, &plb);
1027            sprbits = buckrog_get_sprite_bits(m_gfx1->base(), &sprinfo, &plb);
10311028
10321029            /* the PLB bits go into an LS148 8-to-1 decoder and become MUX0-3 (PROM board SH 2/10) */
10331030            if (plb == 0)
r17967r17968
10611058            {
10621059               offs = (cd & 0x0f) |                  /* A0-A3: CD0-3 */
10631060                     ((mux & 0x07) << 4) |            /* A4-A6: MUX0-2 */
1064                     ((state->m_buckrog_obch & 0x07) << 7);   /* A7-A9: OBCH0-2 */
1061                     ((m_buckrog_obch & 0x07) << 7);   /* A7-A9: OBCH0-2 */
10651062               palbits = pr5199[offs];
10661063            }
10671064
r17967r17968
10821079            /* otherwise, CHNG = 3 */
10831080            else
10841081            {
1085               palbits = bgcolor[y | ((state->m_buckrog_mov & 0x1f) << 8)];
1082               palbits = bgcolor[y | ((m_buckrog_mov & 0x1f) << 8)];
10861083               palbits = (palbits & 0xc0) | ((palbits & 0x30) << 4) | ((palbits & 0x0f) << 2);
10871084            }
10881085
trunk/src/mame/video/cvs.c
r17967r17968
138138}
139139
140140
141SCREEN_UPDATE_IND16( cvs )
141UINT32 cvs_state::screen_update_cvs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
142142{
143   cvs_state *state = screen.machine().driver_data<cvs_state>();
144143   static const int ram_based_char_start_indices[] = { 0xe0, 0xc0, 0x100, 0x80 };
145144   offs_t offs;
146145   int scroll[8];
r17967r17968
151150   for (offs = 0; offs < 0x0400; offs++)
152151   {
153152      int collision_color = 0x100;
154      UINT8 code = state->m_video_ram[offs];
155      UINT8 color = state->m_color_ram[offs];
153      UINT8 code = m_video_ram[offs];
154      UINT8 color = m_color_ram[offs];
156155
157156      UINT8 x = offs << 3;
158157      UINT8 y = offs >> 5 << 3;
159158
160      int gfxnum = (code < ram_based_char_start_indices[state->m_character_banking_mode]) ? 0 : 1;
159      int gfxnum = (code < ram_based_char_start_indices[m_character_banking_mode]) ? 0 : 1;
161160
162      drawgfx_opaque(state->m_background_bitmap, state->m_background_bitmap.cliprect(), screen.machine().gfx[gfxnum],
161      drawgfx_opaque(m_background_bitmap, m_background_bitmap.cliprect(), screen.machine().gfx[gfxnum],
163162            code, color,
164163            0, 0,
165164            x, y);
r17967r17968
175174            collision_color = 0x102;
176175      }
177176
178      drawgfx_opaque(state->m_collision_background, state->m_collision_background.cliprect(), screen.machine().gfx[gfxnum],
177      drawgfx_opaque(m_collision_background, m_collision_background.cliprect(), screen.machine().gfx[gfxnum],
179178            code, collision_color,
180179            0, 0,
181180            x, y);
r17967r17968
184183
185184   /* Update screen - 8 regions, fixed scrolling area */
186185   scroll[0] = 0;
187   scroll[1] = state->m_scroll_reg;
188   scroll[2] = state->m_scroll_reg;
189   scroll[3] = state->m_scroll_reg;
190   scroll[4] = state->m_scroll_reg;
191   scroll[5] = state->m_scroll_reg;
186   scroll[1] = m_scroll_reg;
187   scroll[2] = m_scroll_reg;
188   scroll[3] = m_scroll_reg;
189   scroll[4] = m_scroll_reg;
190   scroll[5] = m_scroll_reg;
192191   scroll[6] = 0;
193192   scroll[7] = 0;
194193
195   copyscrollbitmap(bitmap, state->m_background_bitmap, 0, 0, 8, scroll, cliprect);
196   copyscrollbitmap(state->m_scrolled_collision_background, state->m_collision_background, 0, 0, 8, scroll, cliprect);
194   copyscrollbitmap(bitmap, m_background_bitmap, 0, 0, 8, scroll, cliprect);
195   copyscrollbitmap(m_scrolled_collision_background, m_collision_background, 0, 0, 8, scroll, cliprect);
197196
198197   /* update the S2636 chips */
199   bitmap_ind16 &s2636_0_bitmap = s2636_update(state->m_s2636_0, cliprect);
200   bitmap_ind16 &s2636_1_bitmap = s2636_update(state->m_s2636_1, cliprect);
201   bitmap_ind16 &s2636_2_bitmap = s2636_update(state->m_s2636_2, cliprect);
198   bitmap_ind16 &s2636_0_bitmap = s2636_update(m_s2636_0, cliprect);
199   bitmap_ind16 &s2636_1_bitmap = s2636_update(m_s2636_1, cliprect);
200   bitmap_ind16 &s2636_2_bitmap = s2636_update(m_s2636_2, cliprect);
202201
203202   /* Bullet Hardware */
204203   for (offs = 8; offs < 256; offs++ )
205204   {
206      if (state->m_bullet_ram[offs] != 0)
205      if (m_bullet_ram[offs] != 0)
207206      {
208207         int ct;
209208         for (ct = 0; ct < 4; ct++)
210209         {
211            int bx = 255 - 7 - state->m_bullet_ram[offs] - ct;
210            int bx = 255 - 7 - m_bullet_ram[offs] - ct;
212211
213212            /* Bullet/Object Collision */
214213            if ((s2636_0_bitmap.pix16(offs, bx) != 0) ||
215214               (s2636_1_bitmap.pix16(offs, bx) != 0) ||
216215               (s2636_2_bitmap.pix16(offs, bx) != 0))
217               state->m_collision_register |= 0x08;
216               m_collision_register |= 0x08;
218217
219218            /* Bullet/Background Collision */
220            if (colortable_entry_get_value(screen.machine().colortable, state->m_scrolled_collision_background.pix16(offs, bx)))
221               state->m_collision_register |= 0x80;
219            if (colortable_entry_get_value(screen.machine().colortable, m_scrolled_collision_background.pix16(offs, bx)))
220               m_collision_register |= 0x80;
222221
223222            bitmap.pix16(offs, bx) = BULLET_STAR_PEN;
224223         }
r17967r17968
247246               bitmap.pix16(y, x) = SPRITE_PEN_BASE + S2636_PIXEL_COLOR(pixel);
248247
249248               /* S2636 vs. S2636 collision detection */
250               if (S2636_IS_PIXEL_DRAWN(pixel0) && S2636_IS_PIXEL_DRAWN(pixel1)) state->m_collision_register |= 0x01;
251               if (S2636_IS_PIXEL_DRAWN(pixel1) && S2636_IS_PIXEL_DRAWN(pixel2)) state->m_collision_register |= 0x02;
252               if (S2636_IS_PIXEL_DRAWN(pixel0) && S2636_IS_PIXEL_DRAWN(pixel2)) state->m_collision_register |= 0x04;
249               if (S2636_IS_PIXEL_DRAWN(pixel0) && S2636_IS_PIXEL_DRAWN(pixel1)) m_collision_register |= 0x01;
250               if (S2636_IS_PIXEL_DRAWN(pixel1) && S2636_IS_PIXEL_DRAWN(pixel2)) m_collision_register |= 0x02;
251               if (S2636_IS_PIXEL_DRAWN(pixel0) && S2636_IS_PIXEL_DRAWN(pixel2)) m_collision_register |= 0x04;
253252
254253               /* S2636 vs. background collision detection */
255               if (colortable_entry_get_value(screen.machine().colortable, state->m_scrolled_collision_background.pix16(y, x)))
254               if (colortable_entry_get_value(screen.machine().colortable, m_scrolled_collision_background.pix16(y, x)))
256255               {
257                  if (S2636_IS_PIXEL_DRAWN(pixel0)) state->m_collision_register |= 0x10;
258                  if (S2636_IS_PIXEL_DRAWN(pixel1)) state->m_collision_register |= 0x20;
259                  if (S2636_IS_PIXEL_DRAWN(pixel2)) state->m_collision_register |= 0x40;
256                  if (S2636_IS_PIXEL_DRAWN(pixel0)) m_collision_register |= 0x10;
257                  if (S2636_IS_PIXEL_DRAWN(pixel1)) m_collision_register |= 0x20;
258                  if (S2636_IS_PIXEL_DRAWN(pixel2)) m_collision_register |= 0x40;
260259               }
261260            }
262261         }
r17967r17968
264263   }
265264
266265   /* stars circuit */
267   if (state->m_stars_on)
266   if (m_stars_on)
268267      cvs_update_stars(screen.machine(), bitmap, cliprect, BULLET_STAR_PEN, 0);
269268
270269   return 0;
trunk/src/mame/video/truco.c
r17967r17968
3131   }
3232}
3333
34SCREEN_UPDATE_IND16( truco )
34UINT32 truco_state::screen_update_truco(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
3535{
36   truco_state *state = screen.machine().driver_data<truco_state>();
37   UINT8 *videoram = state->m_videoram;
36   UINT8 *videoram = m_videoram;
3837   UINT8      *vid = videoram;
3938   int x, y;
4039
trunk/src/mame/video/seta.c
r17967r17968
824824
825825
826826/* For games without tilemaps */
827SCREEN_UPDATE_IND16( seta_no_layers )
827UINT32 seta_state::screen_update_seta_no_layers(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
828828{
829829   set_pens(screen.machine());
830830   bitmap.fill(0x1f0, cliprect);
r17967r17968
10421042
10431043}
10441044
1045static SCREEN_UPDATE_IND16( seta_layers )
1045UINT32 seta_state::screen_update_seta_layers(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
10461046{
10471047   seta_layers_update(screen, bitmap, cliprect, 0x1000, 1 );
10481048   return 0;
10491049}
10501050
10511051
1052SCREEN_UPDATE_IND16( setaroul )
1052UINT32 seta_state::screen_update_setaroul(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
10531053{
10541054   bitmap.fill(0x0, cliprect);
10551055
r17967r17968
10611061   return 0;
10621062}
10631063
1064SCREEN_VBLANK( setaroul )
1064void seta_state::screen_eof_setaroul(screen_device &screen, bool state)
10651065{
10661066   // rising edge
1067   if (vblank_on)
1067   if (state)
10681068      screen.machine().device<seta001_device>("spritegen")->tnzs_eof();
10691069}
10701070
10711071
10721072
1073SCREEN_UPDATE_IND16( seta )
1073UINT32 seta_state::screen_update_seta(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
10741074{
10751075   set_pens(screen.machine());
1076   return SCREEN_UPDATE16_CALL(seta_layers);
1076   return SCREEN_UPDATE16_CALL_MEMBER(seta_layers);
10771077}
10781078
10791079
1080SCREEN_UPDATE_IND16( usclssic )
1080UINT32 seta_state::screen_update_usclssic(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
10811081{
10821082   usclssic_set_pens(screen.machine());
1083   return SCREEN_UPDATE16_CALL(seta_layers);
1083   return SCREEN_UPDATE16_CALL_MEMBER(seta_layers);
10841084}
10851085
10861086
1087SCREEN_UPDATE_IND16( inttoote )
1087UINT32 seta_state::screen_update_inttoote(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
10881088{
10891089   /* no palette to set */
1090   return SCREEN_UPDATE16_CALL(seta_layers);
1090   return SCREEN_UPDATE16_CALL_MEMBER(seta_layers);
10911091}
trunk/src/mame/video/tnzs.c
r17967r17968
4343}
4444
4545
46SCREEN_UPDATE_IND16( tnzs )
46UINT32 tnzs_state::screen_update_tnzs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
4747{
4848   bitmap.fill(0x1f0, cliprect);
4949
50   screen.machine().device<seta001_device>("spritegen")->set_fg_yoffsets( -0x12, 0x0e );
51   screen.machine().device<seta001_device>("spritegen")->set_bg_yoffsets( 0x1, -0x1 );
50   machine().device<seta001_device>("spritegen")->set_fg_yoffsets( -0x12, 0x0e );
51   machine().device<seta001_device>("spritegen")->set_bg_yoffsets( 0x1, -0x1 );
5252
53   screen.machine().device<seta001_device>("spritegen")->seta001_draw_sprites(screen.machine(), bitmap, cliprect, 0x800, 0 );
53   machine().device<seta001_device>("spritegen")->seta001_draw_sprites(screen.machine(), bitmap, cliprect, 0x800, 0 );
5454   return 0;
5555}
5656
57SCREEN_VBLANK( tnzs )
57void tnzs_state::screen_eof_tnzs(screen_device &screen, bool state)
5858{
5959   // rising edge
60   if (vblank_on)
61      screen.machine().device<seta001_device>("spritegen")->tnzs_eof();
60   if (state)
61      machine().device<seta001_device>("spritegen")->tnzs_eof();
6262}
trunk/src/mame/video/tp84.c
r17967r17968
172172}
173173
174174
175SCREEN_UPDATE_IND16( tp84 )
175UINT32 tp84_state::screen_update_tp84(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
176176{
177   tp84_state *state = screen.machine().driver_data<tp84_state>();
178177   rectangle clip = cliprect;
179178   const rectangle &visarea = screen.visible_area();
180179
r17967r17968
182181   {
183182      screen.machine().tilemap().mark_all_dirty();
184183
185      state->m_bg_tilemap->set_scrollx(0, *state->m_scroll_x);
186      state->m_bg_tilemap->set_scrolly(0, *state->m_scroll_y);
184      m_bg_tilemap->set_scrollx(0, *m_scroll_x);
185      m_bg_tilemap->set_scrolly(0, *m_scroll_y);
187186
188      screen.machine().tilemap().set_flip_all(((*state->m_flipscreen_x & 0x01) ? TILEMAP_FLIPX : 0) |
189                              ((*state->m_flipscreen_y & 0x01) ? TILEMAP_FLIPY : 0));
187      screen.machine().tilemap().set_flip_all(((*m_flipscreen_x & 0x01) ? TILEMAP_FLIPX : 0) |
188                              ((*m_flipscreen_y & 0x01) ? TILEMAP_FLIPY : 0));
190189   }
191190
192   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
191   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
193192   draw_sprites(screen.machine(), bitmap, cliprect);
194193
195194   /* draw top status region */
196195   clip.min_x = visarea.min_x;
197196   clip.max_x = visarea.min_x + 15;
198   state->m_fg_tilemap->draw(bitmap, clip, 0, 0);
197   m_fg_tilemap->draw(bitmap, clip, 0, 0);
199198
200199   /* draw bottom status region */
201200   clip.min_x = visarea.max_x - 15;
202201   clip.max_x = visarea.max_x;
203   state->m_fg_tilemap->draw(bitmap, clip, 0, 0);
202   m_fg_tilemap->draw(bitmap, clip, 0, 0);
204203
205204   return 0;
206205}
trunk/src/mame/video/vball.c
r17967r17968
156156
157157#undef DRAW_SPRITE
158158
159SCREEN_UPDATE_IND16( vb )
159UINT32 vball_state::screen_update_vb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
160160{
161   vball_state *state = screen.machine().driver_data<vball_state>();
162161   int i;
163162
164   state->m_bg_tilemap->set_scrolly(0,state->m_vb_scrolly_hi + *state->m_vb_scrolly_lo);
163   m_bg_tilemap->set_scrolly(0,m_vb_scrolly_hi + *m_vb_scrolly_lo);
165164
166165   /*To get linescrolling to work properly, we must ignore the 1st two scroll values, no idea why! -SJE */
167166   for (i = 2; i < 256; i++) {
168      state->m_bg_tilemap->set_scrollx(i,state->m_vb_scrollx[i-2]);
169      //logerror("scrollx[%d] = %d\n",i,state->m_vb_scrollx[i]);
167      m_bg_tilemap->set_scrollx(i,m_vb_scrollx[i-2]);
168      //logerror("scrollx[%d] = %d\n",i,m_vb_scrollx[i]);
170169   }
171   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
170   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
172171   draw_sprites(screen.machine(),bitmap,cliprect);
173172   return 0;
174173}
trunk/src/mame/video/rohga.c
r17967r17968
6161
6262/******************************************************************************/
6363
64SCREEN_UPDATE_IND16( rohga )
64UINT32 rohga_state::screen_update_rohga(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
6565{
66   rohga_state *state = screen.machine().driver_data<rohga_state>();
6766   address_space &space = screen.machine().driver_data()->generic_space();
68   UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
69   UINT16 priority = decocomn_priority_r(state->m_decocomn, space, 0, 0xffff);
67   UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff);
68   UINT16 priority = decocomn_priority_r(m_decocomn, space, 0, 0xffff);
7069
7170   /* Update playfields */
72   state->flip_screen_set(BIT(flip, 7));
73   deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
74   deco16ic_pf_update(state->m_deco_tilegen2, state->m_pf3_rowscroll, state->m_pf4_rowscroll);
71   flip_screen_set(BIT(flip, 7));
72   deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
73   deco16ic_pf_update(m_deco_tilegen2, m_pf3_rowscroll, m_pf4_rowscroll);
7574
7675   /* Draw playfields */
7776   screen.machine().priority_bitmap.fill(0, cliprect);
r17967r17968
8382      if (priority & 4)
8483      {
8584         // Draw as 1 8BPP layer
86         deco16ic_tilemap_12_combine_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 3);
85         deco16ic_tilemap_12_combine_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 3);
8786      }
8887      else
8988      {
9089         // Draw as 2 4BPP layers
91         deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1);
92         deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 2);
90         deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1);
91         deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 2);
9392      }
94      deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 4);
93      deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 4);
9594      break;
9695   case 1:
97      deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1);
98      deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 2);
99      deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 4);
96      deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1);
97      deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 2);
98      deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 4);
10099      break;
101100   case 2:
102      deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1);
103      deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 2);
104      deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 4);
101      deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1);
102      deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, 0, 2);
103      deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 4);
105104      break;
106105   }
107106
108   screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, state->m_spriteram->buffer(), 0x400, true);
109   deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
107   screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400, true);
108   deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
110109
111110   return 0;
112111}
r17967r17968
165164   }
166165}
167166
168SCREEN_UPDATE_RGB32( wizdfire )
167UINT32 rohga_state::screen_update_wizdfire(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
169168{
170   rohga_state *state = screen.machine().driver_data<rohga_state>();
171169   address_space &space = screen.machine().driver_data()->generic_space();
172   UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
173   UINT16 priority = decocomn_priority_r(state->m_decocomn, space, 0, 0xffff);
170   UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff);
171   UINT16 priority = decocomn_priority_r(m_decocomn, space, 0, 0xffff);
174172
175173   /* draw sprite gfx to temp bitmaps */
176   screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, state->m_spriteram2->buffer(), 0x400, true);
177   screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, state->m_spriteram->buffer(), 0x400, true);
174   screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, m_spriteram2->buffer(), 0x400, true);
175   screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400, true);
178176
179177   /* Update playfields */
180   state->flip_screen_set(BIT(flip, 7));
181   deco16ic_pf_update(state->m_deco_tilegen1, 0, 0);
182   deco16ic_pf_update(state->m_deco_tilegen2, state->m_pf3_rowscroll, state->m_pf4_rowscroll);
178   flip_screen_set(BIT(flip, 7));
179   deco16ic_pf_update(m_deco_tilegen1, 0, 0);
180   deco16ic_pf_update(m_deco_tilegen2, m_pf3_rowscroll, m_pf4_rowscroll);
183181
184182   /* Draw playfields - Palette of 2nd playfield chip visible if playfields turned off */
185183   bitmap.fill(screen.machine().pens[512], cliprect);
186184
187   deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
185   deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
188186   screen.machine().device<decospr_device>("spritegen1")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0600, 0x0600, 0x400, 0x1ff);
189   deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
187   deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
190188   screen.machine().device<decospr_device>("spritegen1")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0400, 0x0600, 0x400, 0x1ff);
191189
192190   if ((priority & 0x1f) == 0x1f) /* Wizdfire has bit 0x40 always set, Dark Seal 2 doesn't?! */
193      deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_ALPHA(0x80), 0);
191      deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_ALPHA(0x80), 0);
194192   else
195      deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 0);
193      deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 0);
196194
197195   screen.machine().device<decospr_device>("spritegen1")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0400, 0x400, 0x1ff); // 0x000 and 0x200 of 0x600
198196
199197   mixwizdfirelayer(screen.machine(), bitmap, cliprect, 4, 0x000, 0x000);
200198
201   deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
199   deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
202200   return 0;
203201}
204202
205SCREEN_UPDATE_RGB32( nitrobal )
203UINT32 rohga_state::screen_update_nitrobal(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
206204{
207   rohga_state *state = screen.machine().driver_data<rohga_state>();
208205   address_space &space = screen.machine().driver_data()->generic_space();
209   UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
206   UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff);
210207
211208   /* draw sprite gfx to temp bitmaps */
212209   screen.machine().device<decospr_device>("spritegen1")->set_alt_format(true);
213210   screen.machine().device<decospr_device>("spritegen2")->set_alt_format(true);
214   screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, state->m_spriteram2->buffer(), 0x400, false);
215   screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, state->m_spriteram->buffer(), 0x400, false);
211   screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, m_spriteram2->buffer(), 0x400, false);
212   screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400, false);
216213
217214   /* Update playfields */
218   state->flip_screen_set(BIT(flip, 7));
219   deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
220   deco16ic_pf_update(state->m_deco_tilegen2, state->m_pf3_rowscroll, state->m_pf4_rowscroll);
215   flip_screen_set(BIT(flip, 7));
216   deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
217   deco16ic_pf_update(m_deco_tilegen2, m_pf3_rowscroll, m_pf4_rowscroll);
221218
222219   /* Draw playfields - Palette of 2nd playfield chip visible if playfields turned off */
223220   bitmap.fill(screen.machine().pens[512], cliprect);
224221   screen.machine().priority_bitmap.fill(0);
225222
226223   /* pf3 and pf4 are combined into a single 8bpp bitmap */
227   deco16ic_tilemap_12_combine_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
224   deco16ic_tilemap_12_combine_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
228225
229   deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 16);
226   deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 16);
230227
231228   /* ToDo reimplement priorities + mixing / alpha, it was busted worse than this before anyway, so no big loss that we don't do it for now ;-) */
232229   screen.machine().device<decospr_device>("spritegen2")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0000, 0x600, 0xff);
233230   screen.machine().device<decospr_device>("spritegen1")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0000, 0x400, 0x1ff);
234231
235232
236   deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
233   deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
237234   return 0;
238235}
trunk/src/mame/video/plygonet.c
r17967r17968
116116   save_item(NAME(m_roz_vram));
117117}
118118
119SCREEN_UPDATE_IND16( polygonet )
119UINT32 polygonet_state::screen_update_polygonet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
120120{
121   polygonet_state *state = screen.machine().driver_data<polygonet_state>();
122121   device_t *k053936 = screen.machine().device("k053936");
123122   screen.machine().priority_bitmap.fill(0);
124123   bitmap.fill(get_black_pen(screen.machine()), cliprect);
125124
126   k053936_zoom_draw(k053936, bitmap, cliprect, state->m_roz_tilemap, 0, 0, 0);
125   k053936_zoom_draw(k053936, bitmap, cliprect, m_roz_tilemap, 0, 0, 0);
127126
128   state->m_ttl_tilemap->draw(bitmap, cliprect, 0, 1<<0);
127   m_ttl_tilemap->draw(bitmap, cliprect, 0, 1<<0);
129128   return 0;
130129}
131130
trunk/src/mame/video/higemaru.c
r17967r17968
141141   }
142142}
143143
144SCREEN_UPDATE_IND16( higemaru )
144UINT32 higemaru_state::screen_update_higemaru(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
145145{
146   higemaru_state *state = screen.machine().driver_data<higemaru_state>();
147   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
146   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
148147   draw_sprites(screen.machine(), bitmap, cliprect);
149148   return 0;
150149}
trunk/src/mame/video/batman.c
r17967r17968
190190 *
191191 *************************************/
192192
193SCREEN_UPDATE_IND16( batman )
193UINT32 batman_state::screen_update_batman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
194194{
195   batman_state *state = screen.machine().driver_data<batman_state>();
196195   bitmap_ind8 &priority_bitmap = screen.machine().priority_bitmap;
197196   atarimo_rect_list rectlist;
198197   bitmap_ind16 *mobitmap;
r17967r17968
200199
201200   /* draw the playfield */
202201   priority_bitmap.fill(0, cliprect);
203   state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 0x00);
204   state->m_playfield_tilemap->draw(bitmap, cliprect, 1, 0x01);
205   state->m_playfield_tilemap->draw(bitmap, cliprect, 2, 0x02);
206   state->m_playfield_tilemap->draw(bitmap, cliprect, 3, 0x03);
207   state->m_playfield2_tilemap->draw(bitmap, cliprect, 0, 0x80);
208   state->m_playfield2_tilemap->draw(bitmap, cliprect, 1, 0x84);
209   state->m_playfield2_tilemap->draw(bitmap, cliprect, 2, 0x88);
210   state->m_playfield2_tilemap->draw(bitmap, cliprect, 3, 0x8c);
202   m_playfield_tilemap->draw(bitmap, cliprect, 0, 0x00);
203   m_playfield_tilemap->draw(bitmap, cliprect, 1, 0x01);
204   m_playfield_tilemap->draw(bitmap, cliprect, 2, 0x02);
205   m_playfield_tilemap->draw(bitmap, cliprect, 3, 0x03);
206   m_playfield2_tilemap->draw(bitmap, cliprect, 0, 0x80);
207   m_playfield2_tilemap->draw(bitmap, cliprect, 1, 0x84);
208   m_playfield2_tilemap->draw(bitmap, cliprect, 2, 0x88);
209   m_playfield2_tilemap->draw(bitmap, cliprect, 3, 0x8c);
211210
212211   /* draw and merge the MO */
213212   mobitmap = atarimo_render(0, cliprect, &rectlist);
r17967r17968
280279      }
281280
282281   /* add the alpha on top */
283   state->m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
282   m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
284283
285284   /* now go back and process the upper bit of MO priority */
286285   rectlist.rect -= rectlist.numrects;
trunk/src/mame/video/nemesis.c
r17967r17968
412412
413413/******************************************************************************/
414414
415SCREEN_UPDATE_IND16( nemesis )
415UINT32 nemesis_state::screen_update_nemesis(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
416416{
417   nemesis_state *state = screen.machine().driver_data<nemesis_state>();
418417   int offs;
419418   rectangle clip;
420419
r17967r17968
424423   clip.min_x = 0;
425424   clip.max_x = 255;
426425
427   state->m_background->set_scroll_cols(64);
428   state->m_foreground->set_scroll_cols(64);
429   state->m_background->set_scroll_rows(1);
430   state->m_foreground->set_scroll_rows(1);
426   m_background->set_scroll_cols(64);
427   m_foreground->set_scroll_cols(64);
428   m_background->set_scroll_rows(1);
429   m_foreground->set_scroll_rows(1);
431430
432431   for (offs = 0; offs < 64; offs++)
433432   {
434433      int offset_x = offs;
435434
436      if (state->m_flipscreen)
435      if (m_flipscreen)
437436         offset_x = (offs + 0x20) & 0x3f;
438437
439      state->m_background->set_scrolly(offs, state->m_yscroll2[offset_x]);
440      state->m_foreground->set_scrolly(offs, state->m_yscroll1[offset_x]);
438      m_background->set_scrolly(offs, m_yscroll2[offset_x]);
439      m_foreground->set_scrolly(offs, m_yscroll1[offset_x]);
441440   }
442441
443442   for (offs = cliprect.min_y; offs <= cliprect.max_y; offs++)
r17967r17968
448447      clip.min_y = offs;
449448      clip.max_y = offs;
450449
451      if (state->m_flipscreen)
450      if (m_flipscreen)
452451         offset_y = 255 - offs;
453452
454      state->m_background->set_scrollx(0, (state->m_xscroll2[offset_y] & 0xff) + ((state->m_xscroll2[0x100 + offset_y] & 0x01) << 8) - (state->m_flipscreen ? 0x107 : 0));
455      state->m_foreground->set_scrollx(0, (state->m_xscroll1[offset_y] & 0xff) + ((state->m_xscroll1[0x100 + offset_y] & 0x01) << 8) - (state->m_flipscreen ? 0x107 : 0));
453      m_background->set_scrollx(0, (m_xscroll2[offset_y] & 0xff) + ((m_xscroll2[0x100 + offset_y] & 0x01) << 8) - (m_flipscreen ? 0x107 : 0));
454      m_foreground->set_scrollx(0, (m_xscroll1[offset_y] & 0xff) + ((m_xscroll1[0x100 + offset_y] & 0x01) << 8) - (m_flipscreen ? 0x107 : 0));
456455
457456      for (i = 0; i < 4; i += 2)
458457      {
459         state->m_background->draw(bitmap, clip, TILEMAP_DRAW_CATEGORY(i + 0), 1);
460         state->m_background->draw(bitmap, clip, TILEMAP_DRAW_CATEGORY(i + 1), 2);
461         state->m_foreground->draw(bitmap, clip, TILEMAP_DRAW_CATEGORY(i + 0), 1);
462         state->m_foreground->draw(bitmap, clip, TILEMAP_DRAW_CATEGORY(i + 1), 2);
458         m_background->draw(bitmap, clip, TILEMAP_DRAW_CATEGORY(i + 0), 1);
459         m_background->draw(bitmap, clip, TILEMAP_DRAW_CATEGORY(i + 1), 2);
460         m_foreground->draw(bitmap, clip, TILEMAP_DRAW_CATEGORY(i + 0), 1);
461         m_foreground->draw(bitmap, clip, TILEMAP_DRAW_CATEGORY(i + 1), 2);
463462      }
464463   }
465464
trunk/src/mame/video/cheekyms.c
r17967r17968
145145}
146146
147147
148SCREEN_UPDATE_IND16( cheekyms )
148UINT32 cheekyms_state::screen_update_cheekyms(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
149149{
150   cheekyms_state *state = screen.machine().driver_data<cheekyms_state>();
151150   int y, x;
152   int scrolly = ((*state->m_port_80 >> 3) & 0x07);
153   int flip = *state->m_port_80 & 0x80;
151   int scrolly = ((*m_port_80 >> 3) & 0x07);
152   int flip = *m_port_80 & 0x80;
154153
155154   screen.machine().tilemap().mark_all_dirty();
156155   screen.machine().tilemap().set_flip_all(flip ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
157156
158157   bitmap.fill(0, cliprect);
159   state->m_bitmap_buffer->fill(0, cliprect);
158   m_bitmap_buffer->fill(0, cliprect);
160159
161160   /* sprites go under the playfield */
162161   draw_sprites(screen.machine(), bitmap, cliprect, screen.machine().gfx[1], flip);
163162
164163   /* draw the tilemap to a temp bitmap */
165   state->m_cm_tilemap->draw(*state->m_bitmap_buffer, cliprect, 0, 0);
164   m_cm_tilemap->draw(*m_bitmap_buffer, cliprect, 0, 0);
166165
167166   /* draw the tilemap to the final bitmap applying the scroll to the man character */
168167   for (y = cliprect.min_y; y <= cliprect.max_y; y++)
r17967r17968
182181
183182         if (in_man_area)
184183         {
185            if ((y + scrolly) < 27 * 8 && state->m_bitmap_buffer->pix16(y + scrolly, x) != 0)
186               bitmap.pix16(y, x) = state->m_bitmap_buffer->pix16(y + scrolly, x);
184            if ((y + scrolly) < 27 * 8 && m_bitmap_buffer->pix16(y + scrolly, x) != 0)
185               bitmap.pix16(y, x) = m_bitmap_buffer->pix16(y + scrolly, x);
187186         }
188187         else
189188         {
190            if(state->m_bitmap_buffer->pix16(y, x) != 0)
191               bitmap.pix16(y, x) = state->m_bitmap_buffer->pix16(y, x);
189            if(m_bitmap_buffer->pix16(y, x) != 0)
190               bitmap.pix16(y, x) = m_bitmap_buffer->pix16(y, x);
192191         }
193192      }
194193   }
trunk/src/mame/video/magmax.c
r17967r17968
8484
8585
8686
87SCREEN_UPDATE_IND16( magmax )
87UINT32 magmax_state::screen_update_magmax(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
8888{
89   magmax_state *state = screen.machine().driver_data<magmax_state>();
90   UINT16 *videoram = state->m_videoram;
91   UINT16 *spriteram16 = state->m_spriteram;
89   UINT16 *videoram = m_videoram;
90   UINT16 *spriteram16 = m_spriteram;
9291   int offs;
9392
9493   /* bit 2 flip screen */
95   state->m_flipscreen = *state->m_vreg & 0x04;
94   m_flipscreen = *m_vreg & 0x04;
9695
9796   /* copy the background graphics */
98   if (*state->m_vreg & 0x40)      /* background disable */
97   if (*m_vreg & 0x40)      /* background disable */
9998      bitmap.fill(0, cliprect);
10099   else
101100   {
102101      int v;
103      UINT8 * rom18B = state->memregion("user1")->base();
104      UINT32 scroll_h = (*state->m_scroll_x) & 0x3fff;
105      UINT32 scroll_v = (*state->m_scroll_y) & 0xff;
102      UINT8 * rom18B = memregion("user1")->base();
103      UINT32 scroll_h = (*m_scroll_x) & 0x3fff;
104      UINT32 scroll_v = (*m_scroll_y) & 0xff;
106105
107106      /*clear background-over-sprites bitmap*/
108      state->m_bitmap.fill(0);
107      m_bitmap.fill(0);
109108
110109      for (v = 2*8; v < 30*8; v++) /*only for visible area*/
111110      {
r17967r17968
136135                  LS283 =   LS283 + rom18B[ map_v_scr_1fe_6 + h ] + 0xff01;
137136            }
138137
139            prom_data = state->m_prom_tab[ (LS283 >> 6) & 0xff ];
138            prom_data = m_prom_tab[ (LS283 >> 6) & 0xff ];
140139
141140            rom18D_addr &= 0x20f8;
142141            rom18D_addr += (prom_data & 0x1f00) + ((LS283 & 0x38) >>3);
r17967r17968
156155
157156            /*priority: background over sprites*/
158157            if (map_v_scr_100 && ((graph_data & 0x0c)==0x0c))
159               state->m_bitmap.pix16(v, h) = line_data[h];
158               m_bitmap.pix16(v, h) = line_data[h];
160159         }
161160
162         if (state->m_flipscreen)
161         if (m_flipscreen)
163162         {
164163            int i;
165164            UINT16 line_data_flip_x[256];
r17967r17968
173172   }
174173
175174   /* draw the sprites */
176   for (offs = 0; offs < state->m_spriteram.bytes()/2; offs += 4)
175   for (offs = 0; offs < m_spriteram.bytes()/2; offs += 4)
177176   {
178177      int sx, sy;
179178
r17967r17968
190189         sx = (spriteram16[offs + 3] & 0xff) - 0x80 + 0x100 * (attr & 0x01);
191190         sy = 239 - sy;
192191
193         if (state->m_flipscreen)
192         if (m_flipscreen)
194193         {
195194            sx = 255-16 - sx;
196195            sy = 239 - sy;
r17967r17968
199198         }
200199
201200         if (code & 0x80)   /* sprite bankswitch */
202            code += (*state->m_vreg & 0x30) * 0x8;
201            code += (*m_vreg & 0x30) * 0x8;
203202
204203         drawgfx_transmask(bitmap, cliprect, screen.machine().gfx[1],
205204               code,
r17967r17968
210209      }
211210   }
212211
213   if (!(*state->m_vreg & 0x40))      /* background disable */
214      copybitmap_trans(bitmap, state->m_bitmap, state->m_flipscreen,state->m_flipscreen,0,0, cliprect, 0);
212   if (!(*m_vreg & 0x40))      /* background disable */
213      copybitmap_trans(bitmap, m_bitmap, m_flipscreen,m_flipscreen,0,0, cliprect, 0);
215214
216215   /* draw the foreground characters */
217216   for (offs = 32*32-1; offs >= 0; offs -= 1)
218217   {
219      //int page = (*state->m_vreg>>3) & 0x1;
218      //int page = (*m_vreg>>3) & 0x1;
220219      int code;
221220
222221      code = videoram[offs /*+ page*/] & 0xff;
r17967r17968
225224         int sx = (offs % 32);
226225         int sy = (offs / 32);
227226
228         if (state->m_flipscreen)
227         if (m_flipscreen)
229228         {
230229            sx = 31 - sx;
231230            sy = 31 - sy;
r17967r17968
234233         drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0],
235234               code,
236235               0,
237               state->m_flipscreen, state->m_flipscreen,
236               m_flipscreen, m_flipscreen,
238237               8 * sx, 8 * sy, 0x0f);
239238      }
240239   }
trunk/src/mame/video/timelimt.c
r17967r17968
136136}
137137
138138
139SCREEN_UPDATE_IND16( timelimt )
139UINT32 timelimt_state::screen_update_timelimt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
140140{
141   timelimt_state *state = screen.machine().driver_data<timelimt_state>();
142   state->m_bg_tilemap->set_scrollx(0, state->m_scrollx);
143   state->m_bg_tilemap->set_scrolly(0, state->m_scrolly);
144   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
141   m_bg_tilemap->set_scrollx(0, m_scrollx);
142   m_bg_tilemap->set_scrolly(0, m_scrolly);
143   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
145144
146145   draw_sprites(screen.machine(), bitmap, cliprect);
147146
148   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
147   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
149148   return 0;
150149}
trunk/src/mame/video/warriorb.c
r17967r17968
115115   return 0;
116116}
117117
118SCREEN_UPDATE_IND16( warriorb_left ) { return update_screen(screen, bitmap, cliprect, 40 * 8 * 0, screen.machine().driver_data<warriorb_state>()->m_tc0100scn_1); }
119SCREEN_UPDATE_IND16( warriorb_right ) { return update_screen(screen, bitmap, cliprect, 40 * 8 * 1, screen.machine().driver_data<warriorb_state>()->m_tc0100scn_2); }
118UINT32 warriorb_state::screen_update_warriorb_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 40 * 8 * 0, screen.machine().driver_data<warriorb_state>()->m_tc0100scn_1); }
119UINT32 warriorb_state::screen_update_warriorb_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 40 * 8 * 1, screen.machine().driver_data<warriorb_state>()->m_tc0100scn_2); }
trunk/src/mame/video/goal92.c
r17967r17968
143143   m_tx_layer->set_transparent_pen(15);
144144}
145145
146SCREEN_UPDATE_IND16( goal92 )
146UINT32 goal92_state::screen_update_goal92(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
147147{
148   goal92_state *state = screen.machine().driver_data<goal92_state>();
149   state->m_bg_layer->set_scrollx(0, state->m_scrollram[0] + 60);
150   state->m_bg_layer->set_scrolly(0, state->m_scrollram[1] + 8);
148   m_bg_layer->set_scrollx(0, m_scrollram[0] + 60);
149   m_bg_layer->set_scrolly(0, m_scrollram[1] + 8);
151150
152   if (state->m_fg_bank & 0xff)
151   if (m_fg_bank & 0xff)
153152   {
154      state->m_fg_layer->set_scrollx(0, state->m_scrollram[0] + 60);
155      state->m_fg_layer->set_scrolly(0, state->m_scrollram[1] + 8);
153      m_fg_layer->set_scrollx(0, m_scrollram[0] + 60);
154      m_fg_layer->set_scrolly(0, m_scrollram[1] + 8);
156155   }
157156   else
158157   {
159      state->m_fg_layer->set_scrollx(0, state->m_scrollram[2] + 60);
160      state->m_fg_layer->set_scrolly(0, state->m_scrollram[3] + 8);
158      m_fg_layer->set_scrollx(0, m_scrollram[2] + 60);
159      m_fg_layer->set_scrolly(0, m_scrollram[3] + 8);
161160   }
162161
163162   bitmap.fill(get_black_pen(screen.machine()), cliprect);
164163
165   state->m_bg_layer->draw(bitmap, cliprect, 0, 0);
164   m_bg_layer->draw(bitmap, cliprect, 0, 0);
166165   draw_sprites(screen.machine(), bitmap, cliprect, 2);
167166
168   if (!(state->m_fg_bank & 0xff))
167   if (!(m_fg_bank & 0xff))
169168      draw_sprites(screen.machine(), bitmap, cliprect, 1);
170169
171   state->m_fg_layer->draw(bitmap, cliprect, 0, 0);
170   m_fg_layer->draw(bitmap, cliprect, 0, 0);
172171
173   if(state->m_fg_bank & 0xff)
172   if(m_fg_bank & 0xff)
174173      draw_sprites(screen.machine(), bitmap, cliprect, 1);
175174
176175   draw_sprites(screen.machine(), bitmap, cliprect, 0);
177176   draw_sprites(screen.machine(), bitmap, cliprect, 3);
178   state->m_tx_layer->draw(bitmap, cliprect, 0, 0);
177   m_tx_layer->draw(bitmap, cliprect, 0, 0);
179178   return 0;
180179}
181180
182SCREEN_VBLANK( goal92 )
181void goal92_state::screen_eof_goal92(screen_device &screen, bool state)
183182{
184183   // rising edge
185   if (vblank_on)
184   if (state)
186185   {
187      goal92_state *state = screen.machine().driver_data<goal92_state>();
188      memcpy(state->m_buffered_spriteram, state->m_spriteram, 0x400 * 2);
186      memcpy(m_buffered_spriteram, m_spriteram, 0x400 * 2);
189187   }
190188}
trunk/src/mame/video/bishi.c
r17967r17968
4343   m_layer_colorbase[3] = 0xc0;
4444}
4545
46SCREEN_UPDATE_RGB32(bishi)
46UINT32 bishi_state::screen_update_bishi(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
4747{
48   bishi_state *state = screen.machine().driver_data<bishi_state>();
4948   int layers[4], layerpri[4], i;/*, old;*/
5049/*  int bg_colorbase, new_colorbase, plane, dirty; */
5150   static const int pris[4] = { K55_PRIINP_0, K55_PRIINP_3, K55_PRIINP_6, K55_PRIINP_7 };
5251   static const int enables[4] = { K55_INP_VRAM_A, K55_INP_VRAM_B, K55_INP_VRAM_C, K55_INP_VRAM_D };
5352
54   k054338_update_all_shadows(state->m_k054338, 0);
55   k054338_fill_backcolor(state->m_k054338, bitmap, 0);
53   k054338_update_all_shadows(m_k054338, 0);
54   k054338_fill_backcolor(m_k054338, bitmap, 0);
5655
5756   for (i = 0; i < 4; i++)
5857   {
5958      layers[i] = i;
60      layerpri[i] = k055555_read_register(state->m_k055555, pris[i]);
59      layerpri[i] = k055555_read_register(m_k055555, pris[i]);
6160   }
6261
6362   konami_sortlayers4(layers, layerpri);
r17967r17968
6665
6766   for (i = 0; i < 4; i++)
6867   {
69      if (k055555_read_register(state->m_k055555, K55_INPUT_ENABLES) & enables[layers[i]])
68      if (k055555_read_register(m_k055555, K55_INPUT_ENABLES) & enables[layers[i]])
7069      {
71         k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, layers[i], 0, 1 << i);
70         k056832_tilemap_draw(m_k056832, bitmap, cliprect, layers[i], 0, 1 << i);
7271      }
7372   }
7473   return 0;
trunk/src/mame/video/1942.c
r17967r17968
233233
234234}
235235
236SCREEN_UPDATE_IND16( 1942 )
236UINT32 _1942_state::screen_update_1942(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
237237{
238   _1942_state *state = screen.machine().driver_data<_1942_state>();
239238
240   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
239   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
241240   draw_sprites(screen.machine(), bitmap, cliprect);
242   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
241   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
243242   return 0;
244243}
trunk/src/mame/video/poolshrk.c
r17967r17968
2525}
2626
2727
28SCREEN_UPDATE_IND16( poolshrk )
28UINT32 poolshrk_state::screen_update_poolshrk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
2929{
30   poolshrk_state *state = screen.machine().driver_data<poolshrk_state>();
3130   int i;
3231
33   state->m_bg_tilemap->mark_all_dirty();
32   m_bg_tilemap->mark_all_dirty();
3433
3534   bitmap.fill(0, cliprect);
3635
r17967r17968
3837
3938   for (i = 0; i < 16; i++)
4039   {
41      int hpos = state->m_hpos_ram[i];
42      int vpos = state->m_vpos_ram[i];
40      int hpos = m_hpos_ram[i];
41      int vpos = m_vpos_ram[i];
4342
4443      drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0], i, (i == 0) ? 0 : 1, 0, 0,
4544         248 - hpos, vpos - 15, 0);
r17967r17968
4746
4847   /* draw playfield */
4948
50   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
49   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
5150   return 0;
5251}
trunk/src/mame/video/raiden.c
r17967r17968
143143   }
144144}
145145
146SCREEN_UPDATE_IND16( raiden )
146UINT32 raiden_state::screen_update_raiden(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
147147{
148   raiden_state *state = screen.machine().driver_data<raiden_state>();
149148   /* Setup the tilemaps, alternate version has different scroll positions */
150   if (!state->m_alternate) {
151      state->m_bg_layer->set_scrollx(0, state->m_scroll_ram[0]);
152      state->m_bg_layer->set_scrolly(0, state->m_scroll_ram[1]);
153      state->m_fg_layer->set_scrollx(0, state->m_scroll_ram[2]);
154      state->m_fg_layer->set_scrolly(0, state->m_scroll_ram[3]);
149   if (!m_alternate) {
150      m_bg_layer->set_scrollx(0, m_scroll_ram[0]);
151      m_bg_layer->set_scrolly(0, m_scroll_ram[1]);
152      m_fg_layer->set_scrollx(0, m_scroll_ram[2]);
153      m_fg_layer->set_scrolly(0, m_scroll_ram[3]);
155154   }
156155   else {
157      state->m_bg_layer->set_scrolly(0, ((state->m_scroll_ram[0x01]&0x30)<<4)+((state->m_scroll_ram[0x02]&0x7f)<<1)+((state->m_scroll_ram[0x02]&0x80)>>7) );
158      state->m_bg_layer->set_scrollx(0, ((state->m_scroll_ram[0x09]&0x30)<<4)+((state->m_scroll_ram[0x0a]&0x7f)<<1)+((state->m_scroll_ram[0x0a]&0x80)>>7) );
159      state->m_fg_layer->set_scrolly(0, ((state->m_scroll_ram[0x11]&0x30)<<4)+((state->m_scroll_ram[0x12]&0x7f)<<1)+((state->m_scroll_ram[0x12]&0x80)>>7) );
160      state->m_fg_layer->set_scrollx(0, ((state->m_scroll_ram[0x19]&0x30)<<4)+((state->m_scroll_ram[0x1a]&0x7f)<<1)+((state->m_scroll_ram[0x1a]&0x80)>>7) );
156      m_bg_layer->set_scrolly(0, ((m_scroll_ram[0x01]&0x30)<<4)+((m_scroll_ram[0x02]&0x7f)<<1)+((m_scroll_ram[0x02]&0x80)>>7) );
157      m_bg_layer->set_scrollx(0, ((m_scroll_ram[0x09]&0x30)<<4)+((m_scroll_ram[0x0a]&0x7f)<<1)+((m_scroll_ram[0x0a]&0x80)>>7) );
158      m_fg_layer->set_scrolly(0, ((m_scroll_ram[0x11]&0x30)<<4)+((m_scroll_ram[0x12]&0x7f)<<1)+((m_scroll_ram[0x12]&0x80)>>7) );
159      m_fg_layer->set_scrollx(0, ((m_scroll_ram[0x19]&0x30)<<4)+((m_scroll_ram[0x1a]&0x7f)<<1)+((m_scroll_ram[0x1a]&0x80)>>7) );
161160   }
162161
163   state->m_bg_layer->draw(bitmap, cliprect, 0,0);
162   m_bg_layer->draw(bitmap, cliprect, 0,0);
164163
165164   /* Draw sprites underneath foreground */
166165   draw_sprites(screen.machine(),bitmap,cliprect,0x40);
167   state->m_fg_layer->draw(bitmap, cliprect, 0,0);
166   m_fg_layer->draw(bitmap, cliprect, 0,0);
168167
169168   /* Rest of sprites */
170169   draw_sprites(screen.machine(),bitmap,cliprect,0x80);
171170
172171   /* Text layer */
173   state->m_tx_layer->draw(bitmap, cliprect, 0,0);
172   m_tx_layer->draw(bitmap, cliprect, 0,0);
174173   return 0;
175174}
trunk/src/mame/video/bloodbro.c
r17967r17968
225225
226226
227227
228SCREEN_UPDATE_IND16( bloodbro )
228UINT32 bloodbro_state::screen_update_bloodbro(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
229229{
230   bloodbro_state *state = screen.machine().driver_data<bloodbro_state>();
231   state->m_bg_tilemap->set_scrollx(0,state->m_scroll[0x10]);   /* ? */
232   state->m_bg_tilemap->set_scrolly(0,state->m_scroll[0x11]);   /* ? */
233   state->m_fg_tilemap->set_scrollx(0,state->m_scroll[0x12]);
234   state->m_fg_tilemap->set_scrolly(0,state->m_scroll[0x13]);
230   m_bg_tilemap->set_scrollx(0,m_scroll[0x10]);   /* ? */
231   m_bg_tilemap->set_scrolly(0,m_scroll[0x11]);   /* ? */
232   m_fg_tilemap->set_scrollx(0,m_scroll[0x12]);
233   m_fg_tilemap->set_scrolly(0,m_scroll[0x13]);
235234
236235   screen.machine().priority_bitmap.fill(0, cliprect);
237236
238   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
239   state->m_fg_tilemap->draw(bitmap, cliprect, 0,1);
237   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
238   m_fg_tilemap->draw(bitmap, cliprect, 0,1);
240239   bloodbro_draw_sprites(screen.machine(),bitmap,cliprect);
241   state->m_tx_tilemap->draw(bitmap, cliprect, 0,0);
240   m_tx_tilemap->draw(bitmap, cliprect, 0,0);
242241   return 0;
243242}
244243
245SCREEN_UPDATE_IND16( weststry )
244UINT32 bloodbro_state::screen_update_weststry(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
246245{
247   bloodbro_state *state = screen.machine().driver_data<bloodbro_state>();
248//  state->m_bg_tilemap->set_scrollx(0,state->m_scroll[0x10]);    /* ? */
249//  state->m_bg_tilemap->set_scrolly(0,state->m_scroll[0x11]);    /* ? */
250//  state->m_fg_tilemap->set_scrollx(0,state->m_scroll[0x12]);
251//  state->m_fg_tilemap->set_scrolly(0,state->m_scroll[0x13]);
246//  m_bg_tilemap->set_scrollx(0,m_scroll[0x10]);    /* ? */
247//  m_bg_tilemap->set_scrolly(0,m_scroll[0x11]);    /* ? */
248//  m_fg_tilemap->set_scrollx(0,m_scroll[0x12]);
249//  m_fg_tilemap->set_scrolly(0,m_scroll[0x13]);
252250
253251   screen.machine().priority_bitmap.fill(0, cliprect);
254252
255   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
256   state->m_fg_tilemap->draw(bitmap, cliprect, 0,1);
253   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
254   m_fg_tilemap->draw(bitmap, cliprect, 0,1);
257255   weststry_draw_sprites(screen.machine(),bitmap,cliprect);
258   state->m_tx_tilemap->draw(bitmap, cliprect, 0,0);
256   m_tx_tilemap->draw(bitmap, cliprect, 0,0);
259257   return 0;
260258}
261259
262260
263SCREEN_UPDATE_IND16( skysmash )
261UINT32 bloodbro_state::screen_update_skysmash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
264262{
265   bloodbro_state *state = screen.machine().driver_data<bloodbro_state>();
266   state->m_bg_tilemap->set_scrollx(0,state->m_scroll[0x08]);
267   state->m_bg_tilemap->set_scrolly(0,state->m_scroll[0x09]);   /* ? */
268   state->m_fg_tilemap->set_scrollx(0,state->m_scroll[0x0a]);
269   state->m_fg_tilemap->set_scrolly(0,state->m_scroll[0x0b]);   /* ? */
263   m_bg_tilemap->set_scrollx(0,m_scroll[0x08]);
264   m_bg_tilemap->set_scrolly(0,m_scroll[0x09]);   /* ? */
265   m_fg_tilemap->set_scrollx(0,m_scroll[0x0a]);
266   m_fg_tilemap->set_scrolly(0,m_scroll[0x0b]);   /* ? */
270267
271268   screen.machine().priority_bitmap.fill(0, cliprect);
272269
273   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
274   state->m_fg_tilemap->draw(bitmap, cliprect, 0,1);
270   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
271   m_fg_tilemap->draw(bitmap, cliprect, 0,1);
275272   bloodbro_draw_sprites(screen.machine(),bitmap,cliprect);
276   state->m_tx_tilemap->draw(bitmap, cliprect, 0,0);
273   m_tx_tilemap->draw(bitmap, cliprect, 0,0);
277274   return 0;
278275}
279276
trunk/src/mame/video/galaxia.c
r17967r17968
107107
108108/********************************************************************************/
109109
110SCREEN_UPDATE_IND16( galaxia )
110UINT32 galaxia_state::screen_update_galaxia(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
111111{
112   galaxia_state *state = screen.machine().driver_data<galaxia_state>();
113112   int x, y;
114113
115114   bitmap_ind16 &s2636_0_bitmap = s2636_update(screen.machine().device("s2636_0"), cliprect);
r17967r17968
118117
119118   bitmap.fill(0, cliprect);
120119   cvs_update_stars(screen.machine(), bitmap, cliprect, STAR_PEN, 1);
121   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
120   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
122121
123122   for (y = cliprect.min_y; y <= cliprect.max_y; y++)
124123   {
125124      for (x = cliprect.min_x; x <= cliprect.max_x; x++)
126125      {
127         bool bullet = state->m_bullet_ram[y] && x == (state->m_bullet_ram[y] ^ 0xff);
126         bool bullet = m_bullet_ram[y] && x == (m_bullet_ram[y] ^ 0xff);
128127         bool background = (bitmap.pix16(y, x) & 3) != 0;
129128
130129         // draw bullets (guesswork)
131130         if (bullet)
132131         {
133132            // background vs. bullet collision detection
134            if (background) state->m_collision_register |= 0x80;
133            if (background) m_collision_register |= 0x80;
135134
136135            // bullet size/color/priority is guessed
137136            bitmap.pix16(y, x) = BULLET_PEN;
r17967r17968
148147         if (S2636_IS_PIXEL_DRAWN(pixel))
149148         {
150149            // S2636 vs. S2636 collision detection
151            if (S2636_IS_PIXEL_DRAWN(pixel0) && S2636_IS_PIXEL_DRAWN(pixel1)) state->m_collision_register |= 0x01;
152            if (S2636_IS_PIXEL_DRAWN(pixel1) && S2636_IS_PIXEL_DRAWN(pixel2)) state->m_collision_register |= 0x02;
153            if (S2636_IS_PIXEL_DRAWN(pixel2) && S2636_IS_PIXEL_DRAWN(pixel0)) state->m_collision_register |= 0x04;
150            if (S2636_IS_PIXEL_DRAWN(pixel0) && S2636_IS_PIXEL_DRAWN(pixel1)) m_collision_register |= 0x01;
151            if (S2636_IS_PIXEL_DRAWN(pixel1) && S2636_IS_PIXEL_DRAWN(pixel2)) m_collision_register |= 0x02;
152            if (S2636_IS_PIXEL_DRAWN(pixel2) && S2636_IS_PIXEL_DRAWN(pixel0)) m_collision_register |= 0x04;
154153
155154            // S2636 vs. bullet collision detection
156            if (bullet) state->m_collision_register |= 0x08;
155            if (bullet) m_collision_register |= 0x08;
157156
158157            // S2636 vs. background collision detection
159158            if (background)
160159            {
161160               /* bit4 causes problems on 2nd level
162                    if (S2636_IS_PIXEL_DRAWN(pixel0)) state->m_collision_register |= 0x10; */
163               if (S2636_IS_PIXEL_DRAWN(pixel1)) state->m_collision_register |= 0x20;
164               if (S2636_IS_PIXEL_DRAWN(pixel2)) state->m_collision_register |= 0x40;
161                    if (S2636_IS_PIXEL_DRAWN(pixel0)) m_collision_register |= 0x10; */
162               if (S2636_IS_PIXEL_DRAWN(pixel1)) m_collision_register |= 0x20;
163               if (S2636_IS_PIXEL_DRAWN(pixel2)) m_collision_register |= 0x40;
165164            }
166165
167166            bitmap.pix16(y, x) = S2636_PIXEL_COLOR(pixel) | SPRITE_PEN_BASE;
r17967r17968
173172}
174173
175174
176SCREEN_UPDATE_IND16( astrowar )
175UINT32 galaxia_state::screen_update_astrowar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
177176{
178177   // astrowar has only one S2636
179   galaxia_state *state = screen.machine().driver_data<galaxia_state>();
180178   int x, y;
181179
182180   bitmap_ind16 &s2636_0_bitmap = s2636_update(screen.machine().device("s2636_0"), cliprect);
183181
184182   bitmap.fill(0, cliprect);
185183   cvs_update_stars(screen.machine(), bitmap, cliprect, STAR_PEN, 1);
186   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
187   copybitmap(state->m_temp_bitmap, bitmap, 0, 0, 0, 0, cliprect);
184   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
185   copybitmap(m_temp_bitmap, bitmap, 0, 0, 0, 0, cliprect);
188186
189187   for (y = cliprect.min_y; y <= cliprect.max_y; y++)
190188   {
191189      // draw bullets (guesswork)
192      if (state->m_bullet_ram[y])
190      if (m_bullet_ram[y])
193191      {
194         UINT8 pos = state->m_bullet_ram[y] ^ 0xff;
192         UINT8 pos = m_bullet_ram[y] ^ 0xff;
195193
196194         // background vs. bullet collision detection
197         if (state->m_temp_bitmap.pix16(y, pos) & 1)
198            state->m_collision_register |= 0x02;
195         if (m_temp_bitmap.pix16(y, pos) & 1)
196            m_collision_register |= 0x02;
199197
200198         // bullet size/color/priority is guessed
201199         bitmap.pix16(y, pos) = BULLET_PEN;
r17967r17968
218216         if (S2636_IS_PIXEL_DRAWN(pixel))
219217         {
220218            // S2636 vs. background collision detection
221            if ((state->m_temp_bitmap.pix16(y, (int)(sx)) | state->m_temp_bitmap.pix16(y, (int)(sx + 0.5))) & 1)
222               state->m_collision_register |= 0x01;
219            if ((m_temp_bitmap.pix16(y, (int)(sx)) | m_temp_bitmap.pix16(y, (int)(sx + 0.5))) & 1)
220               m_collision_register |= 0x01;
223221
224222            bitmap.pix16(y, (int)(sx)) = S2636_PIXEL_COLOR(pixel) | SPRITE_PEN_BASE;
225223            bitmap.pix16(y, (int)(sx + 0.5)) = S2636_PIXEL_COLOR(pixel) | SPRITE_PEN_BASE;
trunk/src/mame/video/fromanc2.c
r17967r17968
521521
522522******************************************************************************/
523523
524SCREEN_UPDATE_IND16( fromanc2_left )
524UINT32 fromanc2_state::screen_update_fromanc2_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
525525{
526   fromanc2_state *state = screen.machine().driver_data<fromanc2_state>();
527526   int i;
528527
529528   for (i = 0; i < 4; i++)
530529   {
531      if (state->m_tilemap[0][i])
530      if (m_tilemap[0][i])
532531      {
533         state->m_tilemap[0][i]->set_scrollx(0, -state->m_scrollx[0][i]);
534         state->m_tilemap[0][i]->set_scrolly(0, -state->m_scrolly[0][i]);
535         state->m_tilemap[0][i]->draw(bitmap, cliprect, 0, 0);
532         m_tilemap[0][i]->set_scrollx(0, -m_scrollx[0][i]);
533         m_tilemap[0][i]->set_scrolly(0, -m_scrolly[0][i]);
534         m_tilemap[0][i]->draw(bitmap, cliprect, 0, 0);
536535      }
537536   }
538537
539538   return 0;
540539}
541540
542SCREEN_UPDATE_IND16( fromanc2_right )
541UINT32 fromanc2_state::screen_update_fromanc2_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
543542{
544   fromanc2_state *state = screen.machine().driver_data<fromanc2_state>();
545543   int i;
546544
547545   for (i = 0; i < 4; i++)
548546   {
549      if (state->m_tilemap[1][i])
547      if (m_tilemap[1][i])
550548      {
551         state->m_tilemap[1][i]->set_scrollx(0, -state->m_scrollx[1][i]);
552         state->m_tilemap[1][i]->set_scrolly(0, -state->m_scrolly[1][i]);
553         state->m_tilemap[1][i]->draw(bitmap, cliprect, 0, 0);
549         m_tilemap[1][i]->set_scrollx(0, -m_scrollx[1][i]);
550         m_tilemap[1][i]->set_scrolly(0, -m_scrolly[1][i]);
551         m_tilemap[1][i]->draw(bitmap, cliprect, 0, 0);
554552      }
555553   }
556554
trunk/src/mame/video/bombjack.c
r17967r17968
127127   }
128128}
129129
130SCREEN_UPDATE_IND16( bombjack )
130UINT32 bombjack_state::screen_update_bombjack(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
131131{
132   bombjack_state *state = screen.machine().driver_data<bombjack_state>();
133   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
134   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
132   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
133   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
135134   draw_sprites(screen.machine(), bitmap, cliprect);
136135   return 0;
137136}
trunk/src/mame/video/trucocl.c
r17967r17968
7676   m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(trucocl_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS,  8, 8, 32, 32 );
7777}
7878
79SCREEN_UPDATE_IND16( trucocl )
79UINT32 trucocl_state::screen_update_trucocl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
8080{
81   trucocl_state *state = screen.machine().driver_data<trucocl_state>();
82   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
81   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
8382   return 0;
8483}
trunk/src/mame/video/gridlee.c
r17967r17968
129129/* all the GRIDLEE_VBEND adjustments are needed because the hardware has a separate counting chain
130130   to address the video memory instead of using the video chain directly */
131131
132SCREEN_UPDATE_IND16( gridlee )
132UINT32 gridlee_state::screen_update_gridlee(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
133133{
134   gridlee_state *state = screen.machine().driver_data<gridlee_state>();
135   const pen_t *pens = &screen.machine().pens[state->m_palettebank_vis * 32];
134   const pen_t *pens = &screen.machine().pens[m_palettebank_vis * 32];
136135   UINT8 *gfx;
137136   int x, y, i;
138137
r17967r17968
140139   for (y = cliprect.min_y; y <= cliprect.max_y; y++)
141140   {
142141      /* non-flipped: draw directly from the bitmap */
143      if (!state->m_cocktail_flip)
144         draw_scanline8(bitmap, 0, y, 256, &state->m_local_videoram[(y - GRIDLEE_VBEND) * 256], pens + 16);
142      if (!m_cocktail_flip)
143         draw_scanline8(bitmap, 0, y, 256, &m_local_videoram[(y - GRIDLEE_VBEND) * 256], pens + 16);
145144
146145      /* flipped: x-flip the scanline into a temp buffer and draw that */
147146      else
r17967r17968
151150         int xx;
152151
153152         for (xx = 0; xx < 256; xx++)
154            temp[xx] = state->m_local_videoram[srcy * 256 + 255 - xx];
153            temp[xx] = m_local_videoram[srcy * 256 + 255 - xx];
155154         draw_scanline8(bitmap, 0, y, 256, temp, pens + 16);
156155      }
157156   }
r17967r17968
160159   gfx = screen.machine().root_device().memregion("gfx1")->base();
161160   for (i = 0; i < 32; i++)
162161   {
163      UINT8 *sprite = state->m_spriteram + i * 4;
162      UINT8 *sprite = m_spriteram + i * 4;
164163      UINT8 *src;
165164      int image = sprite[0];
166165      int ypos = sprite[2] + 17 + GRIDLEE_VBEND;
r17967r17968
175174         int currxor = 0;
176175
177176         /* adjust for flip */
178         if (state->m_cocktail_flip)
177         if (m_cocktail_flip)
179178         {
180179            ypos = 271 - ypos;
181180            currxor = 0xff;
r17967r17968
207206            src += 4;
208207
209208         /* de-adjust for flip */
210         if (state->m_cocktail_flip)
209         if (m_cocktail_flip)
211210            ypos = 271 - ypos;
212211      }
213212   }
trunk/src/mame/video/rallyx.c
r17967r17968
621621}
622622
623623
624SCREEN_UPDATE_IND16( rallyx )
624UINT32 rallyx_state::screen_update_rallyx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
625625{
626   rallyx_state *state = screen.machine().driver_data<rallyx_state>();
627626   /* the radar tilemap is just 8x32. We rely on the tilemap code to repeat it across
628627       the screen, and clip it to only the position where it is supposed to be shown */
629628   rectangle fg_clip = cliprect;
630629   rectangle bg_clip = cliprect;
631630
632   if (state->flip_screen())
631   if (flip_screen())
633632   {
634633      bg_clip.min_x = 8 * 8;
635634      fg_clip.max_x = 8 * 8 - 1;
r17967r17968
642641
643642   screen.machine().priority_bitmap.fill(0, cliprect);
644643
645   state->m_bg_tilemap->draw(bitmap, bg_clip, 0, 0);
646   state->m_fg_tilemap->draw(bitmap, fg_clip, 0, 0);
647   state->m_bg_tilemap->draw(bitmap, bg_clip, 1, 1);
648   state->m_fg_tilemap->draw(bitmap, fg_clip, 1, 1);
644   m_bg_tilemap->draw(bitmap, bg_clip, 0, 0);
645   m_fg_tilemap->draw(bitmap, fg_clip, 0, 0);
646   m_bg_tilemap->draw(bitmap, bg_clip, 1, 1);
647   m_fg_tilemap->draw(bitmap, fg_clip, 1, 1);
649648
650649   rallyx_draw_bullets(screen.machine(), bitmap, cliprect, TRUE);
651650   rallyx_draw_sprites(screen.machine(), bitmap, cliprect, 1);
r17967r17968
655654}
656655
657656
658SCREEN_UPDATE_IND16( jungler )
657UINT32 rallyx_state::screen_update_jungler(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
659658{
660   rallyx_state *state = screen.machine().driver_data<rallyx_state>();
661659   /* the radar tilemap is just 8x32. We rely on the tilemap code to repeat it across
662660       the screen, and clip it to only the position where it is supposed to be shown */
663661   rectangle fg_clip = cliprect;
664662   rectangle bg_clip = cliprect;
665663
666   if (state->flip_screen())
664   if (flip_screen())
667665   {
668666      bg_clip.min_x = 8 * 8;
669667      fg_clip.max_x = 8 * 8 - 1;
r17967r17968
677675   screen.machine().priority_bitmap.fill(0, cliprect);
678676
679677   /* tile priority doesn't seem to be supported in Jungler */
680   state->m_bg_tilemap->draw(bitmap, bg_clip, 0, 0);
681   state->m_fg_tilemap->draw(bitmap, fg_clip, 0, 0);
682   state->m_bg_tilemap->draw(bitmap, bg_clip, 1, 0);
683   state->m_fg_tilemap->draw(bitmap, fg_clip, 1, 0);
678   m_bg_tilemap->draw(bitmap, bg_clip, 0, 0);
679   m_fg_tilemap->draw(bitmap, fg_clip, 0, 0);
680   m_bg_tilemap->draw(bitmap, bg_clip, 1, 0);
681   m_fg_tilemap->draw(bitmap, fg_clip, 1, 0);
684682
685683   jungler_draw_bullets(screen.machine(), bitmap, cliprect, TRUE);
686684   rallyx_draw_sprites(screen.machine(), bitmap, cliprect, 0);
687685   jungler_draw_bullets(screen.machine(), bitmap, cliprect, FALSE);
688686
689   if (state->m_stars_enable)
687   if (m_stars_enable)
690688      draw_stars(screen.machine(), bitmap, cliprect);
691689
692690   return 0;
693691}
694692
695693
696SCREEN_UPDATE_IND16( locomotn )
694UINT32 rallyx_state::screen_update_locomotn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
697695{
698   rallyx_state *state = screen.machine().driver_data<rallyx_state>();
699696   /* the radar tilemap is just 8x32. We rely on the tilemap code to repeat it across
700697       the screen, and clip it to only the position where it is supposed to be shown */
701698   rectangle fg_clip = cliprect;
702699   rectangle bg_clip = cliprect;
703700
704   if (state->flip_screen())
701   if (flip_screen())
705702   {
706703      /* handle reduced visible area in some games */
707704      if (screen.visible_area().max_x == 32 * 8 - 1)
r17967r17968
723720
724721   screen.machine().priority_bitmap.fill(0, cliprect);
725722
726   state->m_bg_tilemap->draw(bitmap, bg_clip, 0, 0);
727   state->m_fg_tilemap->draw(bitmap, fg_clip, 0, 0);
728   state->m_bg_tilemap->draw(bitmap, bg_clip, 1, 1);
729   state->m_fg_tilemap->draw(bitmap, fg_clip, 1, 1);
723   m_bg_tilemap->draw(bitmap, bg_clip, 0, 0);
724   m_fg_tilemap->draw(bitmap, fg_clip, 0, 0);
725   m_bg_tilemap->draw(bitmap, bg_clip, 1, 1);
726   m_fg_tilemap->draw(bitmap, fg_clip, 1, 1);
730727
731728   locomotn_draw_bullets(screen.machine(), bitmap, cliprect, TRUE);
732729   locomotn_draw_sprites(screen.machine(), bitmap, cliprect, 0);
733730   locomotn_draw_bullets(screen.machine(), bitmap, cliprect, FALSE);
734731
735   if (state->m_stars_enable)
732   if (m_stars_enable)
736733      draw_stars(screen.machine(), bitmap, cliprect);
737734
738735   return 0;
trunk/src/mame/video/unico.c
r17967r17968
337337
338338***************************************************************************/
339339
340SCREEN_UPDATE_IND16( unico )
340UINT32 unico_state::screen_update_unico(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
341341{
342   unico_state *state = screen.machine().driver_data<unico_state>();
343342   int layers_ctrl = -1;
344343
345   state->m_tilemap[0]->set_scrollx(0, state->m_scroll[0x00]);
346   state->m_tilemap[0]->set_scrolly(0, state->m_scroll[0x01]);
344   m_tilemap[0]->set_scrollx(0, m_scroll[0x00]);
345   m_tilemap[0]->set_scrolly(0, m_scroll[0x01]);
347346
348   state->m_tilemap[1]->set_scrollx(0, state->m_scroll[0x05]);
349   state->m_tilemap[1]->set_scrolly(0, state->m_scroll[0x0a]);
347   m_tilemap[1]->set_scrollx(0, m_scroll[0x05]);
348   m_tilemap[1]->set_scrolly(0, m_scroll[0x0a]);
350349
351   state->m_tilemap[2]->set_scrollx(0, state->m_scroll[0x04]);
352   state->m_tilemap[2]->set_scrolly(0, state->m_scroll[0x02]);
350   m_tilemap[2]->set_scrollx(0, m_scroll[0x04]);
351   m_tilemap[2]->set_scrolly(0, m_scroll[0x02]);
353352
354353#ifdef MAME_DEBUG
355354if ( screen.machine().input().code_pressed(KEYCODE_Z) || screen.machine().input().code_pressed(KEYCODE_X) )
r17967r17968
367366   bitmap.fill(0x1f00, cliprect);
368367   screen.machine().priority_bitmap.fill(0, cliprect);
369368
370   if (layers_ctrl & 1)   state->m_tilemap[0]->draw(bitmap, cliprect, 0,1);
371   if (layers_ctrl & 2)   state->m_tilemap[1]->draw(bitmap, cliprect, 0,2);
372   if (layers_ctrl & 4)   state->m_tilemap[2]->draw(bitmap, cliprect, 0,4);
369   if (layers_ctrl & 1)   m_tilemap[0]->draw(bitmap, cliprect, 0,1);
370   if (layers_ctrl & 2)   m_tilemap[1]->draw(bitmap, cliprect, 0,2);
371   if (layers_ctrl & 4)   m_tilemap[2]->draw(bitmap, cliprect, 0,4);
373372
374373   /* Sprites are drawn last, using pdrawgfx */
375374   if (layers_ctrl & 8)   unico_draw_sprites(screen.machine(), bitmap,cliprect);
r17967r17968
377376   return 0;
378377}
379378
380SCREEN_UPDATE_IND16( zeropnt2 )
379UINT32 unico_state::screen_update_zeropnt2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
381380{
382   unico_state *state = screen.machine().driver_data<unico_state>();
383381   int layers_ctrl = -1;
384382
385   state->m_tilemap[0]->set_scrollx(0, state->m_scroll32[0] >> 16);
386   state->m_tilemap[0]->set_scrolly(0, state->m_scroll32[0] & 0xffff);
383   m_tilemap[0]->set_scrollx(0, m_scroll32[0] >> 16);
384   m_tilemap[0]->set_scrolly(0, m_scroll32[0] & 0xffff);
387385
388   state->m_tilemap[1]->set_scrollx(0, state->m_scroll32[2] & 0xffff);
389   state->m_tilemap[1]->set_scrolly(0, state->m_scroll32[5] >> 16);
386   m_tilemap[1]->set_scrollx(0, m_scroll32[2] & 0xffff);
387   m_tilemap[1]->set_scrolly(0, m_scroll32[5] >> 16);
390388
391   state->m_tilemap[2]->set_scrollx(0, state->m_scroll32[2] >> 16);
392   state->m_tilemap[2]->set_scrolly(0, state->m_scroll32[1] >> 16);
389   m_tilemap[2]->set_scrollx(0, m_scroll32[2] >> 16);
390   m_tilemap[2]->set_scrolly(0, m_scroll32[1] >> 16);
393391
394392#ifdef MAME_DEBUG
395393if ( screen.machine().input().code_pressed(KEYCODE_Z) || screen.machine().input().code_pressed(KEYCODE_X) )
r17967r17968
407405   bitmap.fill(0x1f00, cliprect);
408406   screen.machine().priority_bitmap.fill(0, cliprect);
409407
410   if (layers_ctrl & 1)   state->m_tilemap[0]->draw(bitmap, cliprect, 0,1);
411   if (layers_ctrl & 2)   state->m_tilemap[1]->draw(bitmap, cliprect, 0,2);
412   if (layers_ctrl & 4)   state->m_tilemap[2]->draw(bitmap, cliprect, 0,4);
408   if (layers_ctrl & 1)   m_tilemap[0]->draw(bitmap, cliprect, 0,1);
409   if (layers_ctrl & 2)   m_tilemap[1]->draw(bitmap, cliprect, 0,2);
410   if (layers_ctrl & 4)   m_tilemap[2]->draw(bitmap, cliprect, 0,4);
413411
414412   /* Sprites are drawn last, using pdrawgfx */
415413   if (layers_ctrl & 8)   zeropnt2_draw_sprites(screen.machine(), bitmap,cliprect);
trunk/src/mame/video/blockhl.c
r17967r17968
5252   m_sprite_colorbase = 48;
5353}
5454
55SCREEN_UPDATE_IND16( blockhl )
55UINT32 blockhl_state::screen_update_blockhl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
5656{
57   blockhl_state *state = screen.machine().driver_data<blockhl_state>();
5857
5958   screen.machine().priority_bitmap.fill(0, cliprect);
6059
61   k052109_tilemap_update(state->m_k052109);
60   k052109_tilemap_update(m_k052109);
6261
63   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE, 0);   // tile 2
64   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 1, 0, 1);   // tile 1
65   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 0, 0, 2);   // tile 0
62   k052109_tilemap_draw(m_k052109, bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE, 0);   // tile 2
63   k052109_tilemap_draw(m_k052109, bitmap, cliprect, 1, 0, 1);   // tile 1
64   k052109_tilemap_draw(m_k052109, bitmap, cliprect, 0, 0, 2);   // tile 0
6665
67   k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 0, -1);
66   k051960_sprites_draw(m_k051960, bitmap, cliprect, 0, -1);
6867   return 0;
6968}
trunk/src/mame/video/gcpinbal.c
r17967r17968
243243                        SCREEN REFRESH
244244**************************************************************/
245245
246SCREEN_UPDATE_IND16( gcpinbal )
246UINT32 gcpinbal_state::screen_update_gcpinbal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
247247{
248   gcpinbal_state *state = screen.machine().driver_data<gcpinbal_state>();
249248   int i;
250249   UINT16 tile_sets = 0;
251250   UINT8 layer[3];
r17967r17968
253252#ifdef MAME_DEBUG
254253   if (screen.machine().input().code_pressed_once(KEYCODE_V))
255254   {
256      state->m_dislayer[0] ^= 1;
257      popmessage("bg0: %01x", state->m_dislayer[0]);
255      m_dislayer[0] ^= 1;
256      popmessage("bg0: %01x", m_dislayer[0]);
258257   }
259258
260259   if (screen.machine().input().code_pressed_once(KEYCODE_B))
261260   {
262      state->m_dislayer[1] ^= 1;
263      popmessage("bg1: %01x", state->m_dislayer[1]);
261      m_dislayer[1] ^= 1;
262      popmessage("bg1: %01x", m_dislayer[1]);
264263   }
265264
266265   if (screen.machine().input().code_pressed_once(KEYCODE_N))
267266   {
268      state->m_dislayer[2] ^= 1;
269      popmessage("fg: %01x", state->m_dislayer[2]);
267      m_dislayer[2] ^= 1;
268      popmessage("fg: %01x", m_dislayer[2]);
270269   }
271270#endif
272271
273   state->m_scrollx[0] =  state->m_ioc_ram[0x14 / 2];
274   state->m_scrolly[0] =  state->m_ioc_ram[0x16 / 2];
275   state->m_scrollx[1] =  state->m_ioc_ram[0x18 / 2];
276   state->m_scrolly[1] =  state->m_ioc_ram[0x1a / 2];
277   state->m_scrollx[2] =  state->m_ioc_ram[0x1c / 2];
278   state->m_scrolly[2] =  state->m_ioc_ram[0x1e / 2];
272   m_scrollx[0] =  m_ioc_ram[0x14 / 2];
273   m_scrolly[0] =  m_ioc_ram[0x16 / 2];
274   m_scrollx[1] =  m_ioc_ram[0x18 / 2];
275   m_scrolly[1] =  m_ioc_ram[0x1a / 2];
276   m_scrollx[2] =  m_ioc_ram[0x1c / 2];
277   m_scrolly[2] =  m_ioc_ram[0x1e / 2];
279278
280   tile_sets = state->m_ioc_ram[0x88 / 2];
281   state->m_bg0_gfxset = (tile_sets & 0x400) ? 0x1000 : 0;
282   state->m_bg1_gfxset = (tile_sets & 0x800) ? 0x1000 : 0;
279   tile_sets = m_ioc_ram[0x88 / 2];
280   m_bg0_gfxset = (tile_sets & 0x400) ? 0x1000 : 0;
281   m_bg1_gfxset = (tile_sets & 0x800) ? 0x1000 : 0;
283282
284283   for (i = 0; i < 3; i++)
285284   {
286      state->m_tilemap[i]->set_scrollx(0, state->m_scrollx[i]);
287      state->m_tilemap[i]->set_scrolly(0, state->m_scrolly[i]);
285      m_tilemap[i]->set_scrollx(0, m_scrollx[i]);
286      m_tilemap[i]->set_scrolly(0, m_scrolly[i]);
288287   }
289288
290289   screen.machine().priority_bitmap.fill(0, cliprect);
r17967r17968
296295
297296
298297#ifdef MAME_DEBUG
299   if (state->m_dislayer[layer[0]] == 0)
298   if (m_dislayer[layer[0]] == 0)
300299#endif
301   state->m_tilemap[layer[0]]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1);
300   m_tilemap[layer[0]]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1);
302301
303302#ifdef MAME_DEBUG
304   if (state->m_dislayer[layer[1]] == 0)
303   if (m_dislayer[layer[1]] == 0)
305304#endif
306   state->m_tilemap[layer[1]]->draw(bitmap, cliprect, 0, 2);
305   m_tilemap[layer[1]]->draw(bitmap, cliprect, 0, 2);
307306
308307#ifdef MAME_DEBUG
309   if (state->m_dislayer[layer[2]] == 0)
308   if (m_dislayer[layer[2]] == 0)
310309#endif
311   state->m_tilemap[layer[2]]->draw(bitmap, cliprect, 0, 4);
310   m_tilemap[layer[2]]->draw(bitmap, cliprect, 0, 4);
312311
313312
314313   draw_sprites(screen.machine(), bitmap, cliprect, 16);
r17967r17968
316315#if 0
317316   {
318317//      char buf[80];
319      sprintf(buf,"bg0_gfx: %04x bg1_gfx: %04x ", state->m_bg0_gfxset, state->m_bg1_gfxset);
318      sprintf(buf,"bg0_gfx: %04x bg1_gfx: %04x ", m_bg0_gfxset, m_bg1_gfxset);
320319      popmessage(buf);
321320   }
322321#endif
trunk/src/mame/video/realbrk.c
r17967r17968
483483   }
484484}
485485
486SCREEN_UPDATE_IND16(realbrk)
486UINT32 realbrk_state::screen_update_realbrk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
487487{
488   realbrk_state *state = screen.machine().driver_data<realbrk_state>();
489488   int layers_ctrl = -1;
490489
491   state->m_tilemap_0->set_scrolly(0, state->m_vregs[0x0/2]);
492   state->m_tilemap_0->set_scrollx(0, state->m_vregs[0x2/2]);
490   m_tilemap_0->set_scrolly(0, m_vregs[0x0/2]);
491   m_tilemap_0->set_scrollx(0, m_vregs[0x2/2]);
493492
494   state->m_tilemap_1->set_scrolly(0, state->m_vregs[0x4/2]);
495   state->m_tilemap_1->set_scrollx(0, state->m_vregs[0x6/2]);
493   m_tilemap_1->set_scrolly(0, m_vregs[0x4/2]);
494   m_tilemap_1->set_scrollx(0, m_vregs[0x6/2]);
496495
497496#ifdef MAME_DEBUG
498497if ( screen.machine().input().code_pressed(KEYCODE_Z) )
r17967r17968
506505}
507506#endif
508507
509   if (state->m_disable_video)
508   if (m_disable_video)
510509   {
511510      bitmap.fill(get_black_pen(screen.machine()), cliprect);
512511      return 0;
513512   }
514513   else
515      bitmap.fill(state->m_vregs[0xc/2] & 0x7fff, cliprect);
514      bitmap.fill(m_vregs[0xc/2] & 0x7fff, cliprect);
516515
517   if (layers_ctrl & 2)   state->m_tilemap_1->draw(bitmap, cliprect, 0,0);
518   if (layers_ctrl & 1)   state->m_tilemap_0->draw(bitmap, cliprect, 0,0);
516   if (layers_ctrl & 2)   m_tilemap_1->draw(bitmap, cliprect, 0,0);
517   if (layers_ctrl & 1)   m_tilemap_0->draw(bitmap, cliprect, 0,0);
519518
520519   if (layers_ctrl & 8)   draw_sprites(screen.machine(),bitmap,cliprect);
521520
522   if (layers_ctrl & 4)   state->m_tilemap_2->draw(bitmap, cliprect, 0,0);
521   if (layers_ctrl & 4)   m_tilemap_2->draw(bitmap, cliprect, 0,0);
523522
524//  popmessage("%04x",state->m_vregs[0x8/2]);
523//  popmessage("%04x",m_vregs[0x8/2]);
525524   return 0;
526525}
527526
528527/* DaiDaiKakumei */
529SCREEN_UPDATE_IND16(dai2kaku)
528UINT32 realbrk_state::screen_update_dai2kaku(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
530529{
531   realbrk_state *state = screen.machine().driver_data<realbrk_state>();
532530   int layers_ctrl = -1;
533531   int offs, bgx0, bgy0, bgx1, bgy1;
534532
535   bgy0 = state->m_vregs[0x0/2];
536   bgx0 = state->m_vregs[0x2/2];
537   bgy1 = state->m_vregs[0x4/2];
538   bgx1 = state->m_vregs[0x6/2];
533   bgy0 = m_vregs[0x0/2];
534   bgx0 = m_vregs[0x2/2];
535   bgy1 = m_vregs[0x4/2];
536   bgx1 = m_vregs[0x6/2];
539537
540538   // bg0
541   state->m_tilemap_0->set_scroll_rows(512);
542   state->m_tilemap_0->set_scroll_cols(1);
543   if( state->m_vregs[8/2] & (0x0100)){
539   m_tilemap_0->set_scroll_rows(512);
540   m_tilemap_0->set_scroll_cols(1);
541   if( m_vregs[8/2] & (0x0100)){
544542      for(offs=0; offs<(512); offs++) {
545         state->m_tilemap_0->set_scrollx(offs, bgx0 - (state->m_vram_1ras[offs]&0x3ff) );
543         m_tilemap_0->set_scrollx(offs, bgx0 - (m_vram_1ras[offs]&0x3ff) );
546544      }
547545   } else {
548546      for(offs=0; offs<(512); offs++) {
549         state->m_tilemap_0->set_scrollx(offs, bgx0 );
547         m_tilemap_0->set_scrollx(offs, bgx0 );
550548      }
551549   }
552   state->m_tilemap_0->set_scrolly(0, bgy0 );
550   m_tilemap_0->set_scrolly(0, bgy0 );
553551
554552   // bg1
555   state->m_tilemap_1->set_scroll_rows(512);
556   state->m_tilemap_1->set_scroll_cols(1);
557   if( state->m_vregs[8/2] & (0x0001)){
553   m_tilemap_1->set_scroll_rows(512);
554   m_tilemap_1->set_scroll_cols(1);
555   if( m_vregs[8/2] & (0x0001)){
558556      for(offs=0; offs<(512); offs++) {
559         state->m_tilemap_1->set_scrollx(offs, bgx1 - (state->m_vram_1ras[offs]&0x3ff) );
557         m_tilemap_1->set_scrollx(offs, bgx1 - (m_vram_1ras[offs]&0x3ff) );
560558      }
561559   } else {
562560      for(offs=0; offs<(512); offs++) {
563         state->m_tilemap_1->set_scrollx(offs, bgx1 );
561         m_tilemap_1->set_scrollx(offs, bgx1 );
564562      }
565563   }
566   state->m_tilemap_1->set_scrolly(0, bgy1 );
564   m_tilemap_1->set_scrolly(0, bgy1 );
567565
568566#ifdef MAME_DEBUG
569567if ( screen.machine().input().code_pressed(KEYCODE_Z) )
r17967r17968
577575}
578576#endif
579577
580   if (state->m_disable_video)
578   if (m_disable_video)
581579   {
582580      bitmap.fill(get_black_pen(screen.machine()), cliprect);
583581      return 0;
584582   }
585583   else
586      bitmap.fill(state->m_vregs[0xc/2] & 0x7fff, cliprect);
584      bitmap.fill(m_vregs[0xc/2] & 0x7fff, cliprect);
587585
588586
589587
r17967r17968
591589   if (layers_ctrl & 8)   dai2kaku_draw_sprites(screen.machine(),bitmap,cliprect,2);
592590
593591   // bglow
594   if( state->m_vregs[8/2] & (0x8000)){
595      if (layers_ctrl & 1)   state->m_tilemap_0->draw(bitmap, cliprect, 0,0);
592   if( m_vregs[8/2] & (0x8000)){
593      if (layers_ctrl & 1)   m_tilemap_0->draw(bitmap, cliprect, 0,0);
596594   } else {
597      if (layers_ctrl & 2)   state->m_tilemap_1->draw(bitmap, cliprect, 0,0);
595      if (layers_ctrl & 2)   m_tilemap_1->draw(bitmap, cliprect, 0,0);
598596   }
599597
600598   // spr 1
601599   if (layers_ctrl & 8)   dai2kaku_draw_sprites(screen.machine(),bitmap,cliprect,1);
602600
603601   // bghigh
604   if( state->m_vregs[8/2] & (0x8000)){
605      if (layers_ctrl & 2)   state->m_tilemap_1->draw(bitmap, cliprect, 0,0);
602   if( m_vregs[8/2] & (0x8000)){
603      if (layers_ctrl & 2)   m_tilemap_1->draw(bitmap, cliprect, 0,0);
606604   } else {
607      if (layers_ctrl & 1)   state->m_tilemap_0->draw(bitmap, cliprect, 0,0);
605      if (layers_ctrl & 1)   m_tilemap_0->draw(bitmap, cliprect, 0,0);
608606   }
609607
610608   // spr 2
611609   if (layers_ctrl & 8)   dai2kaku_draw_sprites(screen.machine(),bitmap,cliprect,0);
612610
613611   // fix
614   if (layers_ctrl & 4)   state->m_tilemap_2->draw(bitmap, cliprect, 0,0);
612   if (layers_ctrl & 4)   m_tilemap_2->draw(bitmap, cliprect, 0,0);
615613
616//  usrintf_showmessage("%04x",state->m_vregs[0x8/2]);
614//  usrintf_showmessage("%04x",m_vregs[0x8/2]);
617615   return 0;
618616}
trunk/src/mame/video/segag80v.c
r17967r17968
334334}
335335
336336
337SCREEN_UPDATE_RGB32( segag80v )
337UINT32 segag80v_state::screen_update_segag80v(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
338338{
339339   sega_generate_vector_list(screen.machine());
340340   SCREEN_UPDATE32_CALL(vector);
trunk/src/mame/video/carjmbre.c
r17967r17968
104104   save_item(NAME(m_bgcolor));
105105}
106106
107SCREEN_UPDATE_IND16( carjmbre )
107UINT32 carjmbre_state::screen_update_carjmbre(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
108108{
109   carjmbre_state *state = screen.machine().driver_data<carjmbre_state>();
110109   int offs, troffs, sx, sy, flipx, flipy;
111110
112111   //colorram
r17967r17968
115114   //-xxx---- unused
116115   //----xxxx colour
117116
118   state->m_cj_tilemap->draw(bitmap, cliprect, 0, 0);
117   m_cj_tilemap->draw(bitmap, cliprect, 0, 0);
119118
120119   //spriteram[offs]
121120   //+0       y pos
r17967r17968
127126   //--xx---- unused
128127   //----xxxx colour
129128   //+3       x pos
130   for (offs = state->m_spriteram.bytes() - 4; offs >= 0; offs -= 4)
129   for (offs = m_spriteram.bytes() - 4; offs >= 0; offs -= 4)
131130   {
132131      //before copying the sprites to spriteram the game reorders the first
133132      //sprite to last, sprite ordering is incorrect if this isn't undone
134      troffs = (offs - 4 + state->m_spriteram.bytes()) % state->m_spriteram.bytes();
133      troffs = (offs - 4 + m_spriteram.bytes()) % m_spriteram.bytes();
135134
136135      //unused sprites are marked with ypos <= 0x02 (or >= 0xfd if screen flipped)
137      if (state->m_spriteram[troffs] > 0x02 && state->m_spriteram[troffs] < 0xfd)
136      if (m_spriteram[troffs] > 0x02 && m_spriteram[troffs] < 0xfd)
138137      {
139         sx = state->m_spriteram[troffs + 3] - 7;
140         sy = 241 - state->m_spriteram[troffs];
141         flipx = (state->m_spriteram[troffs + 2] & 0x40) >> 6;
142         flipy = (state->m_spriteram[troffs + 2] & 0x80) >> 7;
138         sx = m_spriteram[troffs + 3] - 7;
139         sy = 241 - m_spriteram[troffs];
140         flipx = (m_spriteram[troffs + 2] & 0x40) >> 6;
141         flipy = (m_spriteram[troffs + 2] & 0x80) >> 7;
143142
144         if (state->m_flipscreen)
143         if (m_flipscreen)
145144         {
146145            sx = (256 + (226 - sx)) % 256;
147146            sy = 242 - sy;
r17967r17968
150149         }
151150
152151         drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1],
153               state->m_spriteram[troffs + 1],
154               state->m_spriteram[troffs + 2] & 0xf,
152               m_spriteram[troffs + 1],
153               m_spriteram[troffs + 2] & 0xf,
155154               flipx,flipy,
156155               sx,sy,0);
157156      }
trunk/src/mame/video/gatron.c
r17967r17968
4848   m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(gatron_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 8, 16, 48, 16);
4949}
5050
51SCREEN_UPDATE_IND16( gat )
51UINT32 gatron_state::screen_update_gat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
5252{
53   gatron_state *state = screen.machine().driver_data<gatron_state>();
54   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
53   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
5554   return 0;
5655}
5756
trunk/src/mame/video/superchs.c
r17967r17968
198198                SCREEN REFRESH
199199**************************************************************/
200200
201SCREEN_UPDATE_IND16( superchs )
201UINT32 superchs_state::screen_update_superchs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
202202{
203203   device_t *tc0480scp = screen.machine().device("tc0480scp");
204204   UINT8 layer[5];
trunk/src/mame/video/bottom9.c
r17967r17968
7272
7373***************************************************************************/
7474
75SCREEN_UPDATE_IND16( bottom9 )
75UINT32 bottom9_state::screen_update_bottom9(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
7676{
77   bottom9_state *state = screen.machine().driver_data<bottom9_state>();
7877
79   k052109_tilemap_update(state->m_k052109);
78   k052109_tilemap_update(m_k052109);
8079
8180   /* note: FIX layer is not used */
82   bitmap.fill(state->m_layer_colorbase[1], cliprect);
83//  if (state->m_video_enable)
81   bitmap.fill(m_layer_colorbase[1], cliprect);
82//  if (m_video_enable)
8483   {
85      k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 1, 1);
86      k051316_zoom_draw(state->m_k051316, bitmap, cliprect, 0, 0);
87      k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 0, 0);
88      k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 2, 0, 0);
84      k051960_sprites_draw(m_k051960, bitmap, cliprect, 1, 1);
85      k051316_zoom_draw(m_k051316, bitmap, cliprect, 0, 0);
86      k051960_sprites_draw(m_k051960, bitmap, cliprect, 0, 0);
87      k052109_tilemap_draw(m_k052109, bitmap, cliprect, 2, 0, 0);
8988      /* note that priority 3 is opposite to the basic layer priority! */
9089      /* (it IS used, but hopefully has no effect) */
91      k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 2, 3);
92      k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 1, 0, 0);
90      k051960_sprites_draw(m_k051960, bitmap, cliprect, 2, 3);
91      k052109_tilemap_draw(m_k052109, bitmap, cliprect, 1, 0, 0);
9392   }
9493   return 0;
9594}
trunk/src/mame/video/battlera.c
r17967r17968
299299
300300/******************************************************************************/
301301
302SCREEN_UPDATE_IND16( battlera )
302UINT32 battlera_state::screen_update_battlera(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
303303{
304   battlera_state *state = screen.machine().driver_data<battlera_state>();
305304   int offs,code,scrollx,scrolly,mx,my;
306305
307306   /* if any tiles changed, redraw the VRAM */
308   if (screen.machine().gfx[0]->dirtyseq() != state->m_tile_dirtyseq)
307   if (screen.machine().gfx[0]->dirtyseq() != m_tile_dirtyseq)
309308   {
310      state->m_tile_dirtyseq = screen.machine().gfx[0]->dirtyseq();
311      memset(state->m_vram_dirty, 1, 0x1000);
309      m_tile_dirtyseq = screen.machine().gfx[0]->dirtyseq();
310      memset(m_vram_dirty, 1, 0x1000);
312311   }
313312
314313   mx=-1;
r17967r17968
317316   {
318317      mx++;
319318      if (mx==64) {mx=0; my++;}
320      code=state->m_HuC6270_vram[offs+1] + ((state->m_HuC6270_vram[offs] & 0x0f) << 8);
319      code=m_HuC6270_vram[offs+1] + ((m_HuC6270_vram[offs] & 0x0f) << 8);
321320
322321      /* If this tile was changed OR tilemap was changed, redraw */
323      if (state->m_vram_dirty[offs/2]) {
324         state->m_vram_dirty[offs/2]=0;
325         drawgfx_opaque(*state->m_tile_bitmap,state->m_tile_bitmap->cliprect(),screen.machine().gfx[0],
322      if (m_vram_dirty[offs/2]) {
323         m_vram_dirty[offs/2]=0;
324         drawgfx_opaque(*m_tile_bitmap,m_tile_bitmap->cliprect(),screen.machine().gfx[0],
326325               code,
327               state->m_HuC6270_vram[offs] >> 4,
326               m_HuC6270_vram[offs] >> 4,
328327               0,0,
329328               8*mx,8*my);
330         drawgfx_opaque(*state->m_front_bitmap,state->m_tile_bitmap->cliprect(),screen.machine().gfx[2],
329         drawgfx_opaque(*m_front_bitmap,m_tile_bitmap->cliprect(),screen.machine().gfx[2],
331330               0,
332331               0,   /* fill the spot with pen 256 */
333332               0,0,
334333               8*mx,8*my);
335         drawgfx_transmask(*state->m_front_bitmap,state->m_tile_bitmap->cliprect(),screen.machine().gfx[0],
334         drawgfx_transmask(*m_front_bitmap,m_tile_bitmap->cliprect(),screen.machine().gfx[0],
336335               code,
337               state->m_HuC6270_vram[offs] >> 4,
336               m_HuC6270_vram[offs] >> 4,
338337               0,0,
339338               8*mx,8*my,0x1);
340339      }
341340   }
342341
343342   /* Render bitmap */
344   scrollx=-state->m_HuC6270_registers[7];
345   scrolly=-state->m_HuC6270_registers[8]+cliprect.min_y-1;
343   scrollx=-m_HuC6270_registers[7];
344   scrolly=-m_HuC6270_registers[8]+cliprect.min_y-1;
346345
347   copyscrollbitmap(bitmap,*state->m_tile_bitmap,1,&scrollx,1,&scrolly,cliprect);
346   copyscrollbitmap(bitmap,*m_tile_bitmap,1,&scrollx,1,&scrolly,cliprect);
348347
349348   /* Todo:  Background enable (not used anyway) */
350349
351350   /* Render low priority sprites, if enabled */
352   if (state->m_sb_enable) draw_sprites(screen.machine(),bitmap,cliprect,0);
351   if (m_sb_enable) draw_sprites(screen.machine(),bitmap,cliprect,0);
353352
354353   /* Render background over sprites */
355   copyscrollbitmap_trans(bitmap,*state->m_front_bitmap,1,&scrollx,1,&scrolly,cliprect,256);
354   copyscrollbitmap_trans(bitmap,*m_front_bitmap,1,&scrollx,1,&scrolly,cliprect,256);
356355
357356   /* Render high priority sprites, if enabled */
358   if (state->m_sb_enable) draw_sprites(screen.machine(),bitmap,cliprect,1);
357   if (m_sb_enable) draw_sprites(screen.machine(),bitmap,cliprect,1);
359358
360359   return 0;
361360}
trunk/src/mame/video/flower.c
r17967r17968
160160   m_text_right_tilemap->set_scrolly(0, 16);
161161}
162162
163SCREEN_UPDATE_IND16( flower )
163UINT32 flower_state::screen_update_flower(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
164164{
165   flower_state *state = screen.machine().driver_data<flower_state>();
166165   rectangle myclip = cliprect;
167166
168   state->m_bg0_tilemap->set_scrolly(0, state->m_bg0_scroll[0]+16);
169   state->m_bg1_tilemap->set_scrolly(0, state->m_bg1_scroll[0]+16);
167   m_bg0_tilemap->set_scrolly(0, m_bg0_scroll[0]+16);
168   m_bg1_tilemap->set_scrolly(0, m_bg1_scroll[0]+16);
170169
171   state->m_bg0_tilemap->draw(bitmap, cliprect, 0,0);
172   state->m_bg1_tilemap->draw(bitmap, cliprect, 0,0);
170   m_bg0_tilemap->draw(bitmap, cliprect, 0,0);
171   m_bg1_tilemap->draw(bitmap, cliprect, 0,0);
173172
174173   draw_sprites(screen.machine(),bitmap,cliprect);
175174
176   if(state->flip_screen())
175   if(flip_screen())
177176   {
178177      myclip.min_x = cliprect.min_x;
179178      myclip.max_x = cliprect.min_x + 15;
r17967r17968
184183      myclip.max_x = cliprect.max_x;
185184   }
186185
187   state->m_text_tilemap->draw(bitmap, cliprect, 0,0);
188   state->m_text_right_tilemap->draw(bitmap, myclip, 0,0);
186   m_text_tilemap->draw(bitmap, cliprect, 0,0);
187   m_text_right_tilemap->draw(bitmap, myclip, 0,0);
189188   return 0;
190189}
191190
trunk/src/mame/video/xain.c
r17967r17968
212212   }
213213}
214214
215SCREEN_UPDATE_IND16( xain )
215UINT32 xain_state::screen_update_xain(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
216216{
217   xain_state *state = screen.machine().driver_data<xain_state>();
218   switch (state->m_pri&0x7)
217   switch (m_pri&0x7)
219218   {
220219   case 0:
221      state->m_bgram0_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
222      state->m_bgram1_tilemap->draw(bitmap, cliprect, 0,0);
220      m_bgram0_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
221      m_bgram1_tilemap->draw(bitmap, cliprect, 0,0);
223222      draw_sprites(screen.machine(), bitmap,cliprect);
224      state->m_char_tilemap->draw(bitmap, cliprect, 0,0);
223      m_char_tilemap->draw(bitmap, cliprect, 0,0);
225224      break;
226225   case 1:
227      state->m_bgram1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
228      state->m_bgram0_tilemap->draw(bitmap, cliprect, 0,0);
226      m_bgram1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
227      m_bgram0_tilemap->draw(bitmap, cliprect, 0,0);
229228      draw_sprites(screen.machine(), bitmap,cliprect);
230      state->m_char_tilemap->draw(bitmap, cliprect, 0,0);
229      m_char_tilemap->draw(bitmap, cliprect, 0,0);
231230      break;
232231   case 2:
233      state->m_char_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
234      state->m_bgram0_tilemap->draw(bitmap, cliprect, 0,0);
232      m_char_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
233      m_bgram0_tilemap->draw(bitmap, cliprect, 0,0);
235234      draw_sprites(screen.machine(), bitmap,cliprect);
236      state->m_bgram1_tilemap->draw(bitmap, cliprect, 0,0);
235      m_bgram1_tilemap->draw(bitmap, cliprect, 0,0);
237236      break;
238237   case 3:
239      state->m_char_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
240      state->m_bgram1_tilemap->draw(bitmap, cliprect, 0,0);
238      m_char_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
239      m_bgram1_tilemap->draw(bitmap, cliprect, 0,0);
241240      draw_sprites(screen.machine(), bitmap,cliprect);
242      state->m_bgram0_tilemap->draw(bitmap, cliprect, 0,0);
241      m_bgram0_tilemap->draw(bitmap, cliprect, 0,0);
243242      break;
244243   case 4:
245      state->m_bgram0_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
246      state->m_char_tilemap->draw(bitmap, cliprect, 0,0);
244      m_bgram0_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
245      m_char_tilemap->draw(bitmap, cliprect, 0,0);
247246      draw_sprites(screen.machine(), bitmap,cliprect);
248      state->m_bgram1_tilemap->draw(bitmap, cliprect, 0,0);
247      m_bgram1_tilemap->draw(bitmap, cliprect, 0,0);
249248      break;
250249   case 5:
251      state->m_bgram1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
252      state->m_char_tilemap->draw(bitmap, cliprect, 0,0);
250      m_bgram1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
251      m_char_tilemap->draw(bitmap, cliprect, 0,0);
253252      draw_sprites(screen.machine(), bitmap,cliprect);
254      state->m_bgram0_tilemap->draw(bitmap, cliprect, 0,0);
253      m_bgram0_tilemap->draw(bitmap, cliprect, 0,0);
255254      break;
256255   case 6:
257      state->m_bgram0_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
256      m_bgram0_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
258257      draw_sprites(screen.machine(), bitmap,cliprect);
259      state->m_bgram1_tilemap->draw(bitmap, cliprect, 0,0);
260      state->m_char_tilemap->draw(bitmap, cliprect, 0,0);
258      m_bgram1_tilemap->draw(bitmap, cliprect, 0,0);
259      m_char_tilemap->draw(bitmap, cliprect, 0,0);
261260      break;
262261   case 7:
263      state->m_bgram1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
262      m_bgram1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
264263      draw_sprites(screen.machine(), bitmap,cliprect);
265      state->m_bgram0_tilemap->draw(bitmap, cliprect, 0,0);
266      state->m_char_tilemap->draw(bitmap, cliprect, 0,0);
264      m_bgram0_tilemap->draw(bitmap, cliprect, 0,0);
265      m_char_tilemap->draw(bitmap, cliprect, 0,0);
267266      break;
268267   }
269268   return 0;
trunk/src/mame/video/gundealr.c
r17967r17968
123123
124124***************************************************************************/
125125
126SCREEN_UPDATE_IND16( gundealr )
126UINT32 gundealr_state::screen_update_gundealr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
127127{
128   gundealr_state *state = screen.machine().driver_data<gundealr_state>();
129   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
130   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
128   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
129   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
131130   return 0;
132131}
trunk/src/mame/video/mrdo.c
r17967r17968
254254   }
255255}
256256
257SCREEN_UPDATE_IND16( mrdo )
257UINT32 mrdo_state::screen_update_mrdo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
258258{
259   mrdo_state *state = screen.machine().driver_data<mrdo_state>();
260259
261260   bitmap.fill(0, cliprect);
262   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
263   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
261   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
262   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
264263   draw_sprites(screen.machine(), bitmap, cliprect);
265264   return 0;
266265}
trunk/src/mame/video/namcos1.c
r17967r17968
363363
364364
365365
366SCREEN_UPDATE_IND16( namcos1 )
366UINT32 namcos1_state::screen_update_namcos1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
367367{
368   namcos1_state *state = screen.machine().driver_data<namcos1_state>();
369368   int i, j, scrollx, scrolly, priority;
370369   rectangle new_clip = cliprect;
371370
372371   /* flip screen is embedded in the sprite control registers */
373   /* can't use state->flip_screen_set() because the visible area is asymmetrical */
374   state->flip_screen_set_no_update(state->m_spriteram[0x0ff6] & 1);
375   screen.machine().tilemap().set_flip_all(state->flip_screen() ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
372   /* can't use flip_screen_set() because the visible area is asymmetrical */
373   flip_screen_set_no_update(m_spriteram[0x0ff6] & 1);
374   screen.machine().tilemap().set_flip_all(flip_screen() ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
376375
377376
378377   /* background color */
379378   bitmap.fill(get_black_pen(screen.machine()), cliprect);
380379
381380   /* berabohm uses asymmetrical visibility windows to iris on the character */
382   i = ((state->m_cus116[0] << 8) | state->m_cus116[1]) - 1;         // min x
381   i = ((m_cus116[0] << 8) | m_cus116[1]) - 1;         // min x
383382   if (new_clip.min_x < i) new_clip.min_x = i;
384   i = ((state->m_cus116[2] << 8) | state->m_cus116[3]) - 1 - 1;      // max x
383   i = ((m_cus116[2] << 8) | m_cus116[3]) - 1 - 1;      // max x
385384   if (new_clip.max_x > i) new_clip.max_x = i;
386   i = ((state->m_cus116[4] << 8) | state->m_cus116[5]) - 0x11;      // min y
385   i = ((m_cus116[4] << 8) | m_cus116[5]) - 0x11;      // min y
387386   if (new_clip.min_y < i) new_clip.min_y = i;
388   i = ((state->m_cus116[6] << 8) | state->m_cus116[7]) - 0x11 - 1;   // max y
387   i = ((m_cus116[6] << 8) | m_cus116[7]) - 0x11 - 1;   // max y
389388   if (new_clip.max_y > i) new_clip.max_y = i;
390389
391390   if (new_clip.empty())
r17967r17968
394393
395394   /* set palette base */
396395   for (i = 0;i < 6;i++)
397      state->m_bg_tilemap[i]->set_palette_offset((state->m_playfield_control[i + 24] & 7) * 256);
396      m_bg_tilemap[i]->set_palette_offset((m_playfield_control[i + 24] & 7) * 256);
398397
399398   for (i = 0;i < 4;i++)
400399   {
401400      static const int disp_x[] = { 25, 27, 28, 29 };
402401
403402      j = i << 2;
404      scrollx = ( state->m_playfield_control[j+1] + (state->m_playfield_control[j+0]<<8) ) - disp_x[i];
405      scrolly = ( state->m_playfield_control[j+3] + (state->m_playfield_control[j+2]<<8) ) + 8;
403      scrollx = ( m_playfield_control[j+1] + (m_playfield_control[j+0]<<8) ) - disp_x[i];
404      scrolly = ( m_playfield_control[j+3] + (m_playfield_control[j+2]<<8) ) + 8;
406405
407      if (state->flip_screen())
406      if (flip_screen())
408407      {
409408         scrollx = -scrollx;
410409         scrolly = -scrolly;
411410      }
412411
413      state->m_bg_tilemap[i]->set_scrollx(0,scrollx);
414      state->m_bg_tilemap[i]->set_scrolly(0,scrolly);
412      m_bg_tilemap[i]->set_scrollx(0,scrollx);
413      m_bg_tilemap[i]->set_scrolly(0,scrolly);
415414   }
416415
417416
r17967r17968
423422   {
424423      for (i = 0;i < 6;i++)
425424      {
426         if (state->m_playfield_control[16 + i] == priority)
427            state->m_bg_tilemap[i]->draw(bitmap, new_clip, 0,priority,0);
425         if (m_playfield_control[16 + i] == priority)
426            m_bg_tilemap[i]->draw(bitmap, new_clip, 0,priority,0);
428427      }
429428   }
430429
r17967r17968
433432}
434433
435434
436SCREEN_VBLANK( namcos1 )
435void namcos1_state::screen_eof_namcos1(screen_device &screen, bool state)
437436{
438437   // rising edge
439   if (vblank_on)
438   if (state)
440439   {
441      namcos1_state *state = screen.machine().driver_data<namcos1_state>();
442      if (state->m_copy_sprites)
440      if (m_copy_sprites)
443441      {
444         UINT8 *spriteram = state->m_spriteram + 0x800;
442         UINT8 *spriteram = m_spriteram + 0x800;
445443         int i,j;
446444
447445         for (i = 0;i < 0x800;i += 16)
r17967r17968
450448               spriteram[i+j] = spriteram[i+j - 6];
451449         }
452450
453         state->m_copy_sprites = 0;
451         m_copy_sprites = 0;
454452      }
455453   }
456454}
trunk/src/mame/video/mainevt.c
r17967r17968
9191
9292/*****************************************************************************/
9393
94SCREEN_UPDATE_IND16( mainevt )
94UINT32 mainevt_state::screen_update_mainevt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
9595{
96   mainevt_state *state = screen.machine().driver_data<mainevt_state>();
9796
98   k052109_tilemap_update(state->m_k052109);
97   k052109_tilemap_update(m_k052109);
9998
10099   screen.machine().priority_bitmap.fill(0, cliprect);
101   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 1);
102   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 2, 1, 2);   /* low priority part of layer */
103   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 2, 0, 4);   /* high priority part of layer */
104   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 0, 0, 8);
100   k052109_tilemap_draw(m_k052109, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 1);
101   k052109_tilemap_draw(m_k052109, bitmap, cliprect, 2, 1, 2);   /* low priority part of layer */
102   k052109_tilemap_draw(m_k052109, bitmap, cliprect, 2, 0, 4);   /* high priority part of layer */
103   k052109_tilemap_draw(m_k052109, bitmap, cliprect, 0, 0, 8);
105104
106   k051960_sprites_draw(state->m_k051960, bitmap, cliprect, -1, -1);
105   k051960_sprites_draw(m_k051960, bitmap, cliprect, -1, -1);
107106   return 0;
108107}
109108
110SCREEN_UPDATE_IND16( dv )
109UINT32 mainevt_state::screen_update_dv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
111110{
112   mainevt_state *state = screen.machine().driver_data<mainevt_state>();
113111
114   k052109_tilemap_update(state->m_k052109);
112   k052109_tilemap_update(m_k052109);
115113
116   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 0);
117   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 2, 0, 0);
118   k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 0, 0);
119   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 0, 0, 0);
114   k052109_tilemap_draw(m_k052109, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 0);
115   k052109_tilemap_draw(m_k052109, bitmap, cliprect, 2, 0, 0);
116   k051960_sprites_draw(m_k051960, bitmap, cliprect, 0, 0);
117   k052109_tilemap_draw(m_k052109, bitmap, cliprect, 0, 0, 0);
120118   return 0;
121119}
trunk/src/mame/video/astrocde.c
r17967r17968
247247 *
248248 *************************************/
249249
250SCREEN_UPDATE_IND16( astrocde )
250UINT32 astrocde_state::screen_update_astrocde(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
251251{
252   astrocde_state *state = screen.machine().driver_data<astrocde_state>();
253   UINT8 *videoram = state->m_videoram;
252   UINT8 *videoram = m_videoram;
254253   UINT32 sparklebase = 0;
255   const int colormask = (state->m_video_config & AC_MONITOR_BW) ? 0 : 0x1f0;
256   int xystep = 2 - state->m_video_mode;
254   const int colormask = (m_video_config & AC_MONITOR_BW) ? 0 : 0x1f0;
255   int xystep = 2 - m_video_mode;
257256   int y;
258257
259258   /* compute the starting point of sparkle for the current frame */
260259   int width = screen.width();
261260   int height = screen.height();
262261
263   if (state->m_video_config & AC_STARS)
262   if (m_video_config & AC_STARS)
264263      sparklebase = (screen.frame_number() * (UINT64)(width * height)) % RNG_PERIOD;
265264
266265   /* iterate over scanlines */
r17967r17968
273272      int x;
274273
275274      /* compute the star and sparkle offset at the start of this line */
276      if (state->m_video_config & AC_STARS)
275      if (m_video_config & AC_STARS)
277276      {
278277         staroffs = ((effy < 0) ? (effy + 262) : effy) * width;
279278         sparkleoffs = sparklebase + y * width;
r17967r17968
285284      for (x = 0; x < 456/4; x += xystep)
286285      {
287286         int effx = x - HORZ_OFFSET/4;
288         const UINT8 *colorbase = &state->m_colors[(effx < state->m_colorsplit) ? 4 : 0];
287         const UINT8 *colorbase = &m_colors[(effx < m_colorsplit) ? 4 : 0];
289288         UINT8 data;
290289         int xx;
291290
292291         /* select either video data or background data */
293         data = (effx >= 0 && effx < 80 && effy >= 0 && effy < state->m_vblank) ? videoram[offset++] : state->m_bgdata;
292         data = (effx >= 0 && effx < 80 && effy >= 0 && effy < m_vblank) ? videoram[offset++] : m_bgdata;
294293
295294         /* iterate over the 4 pixels */
296295         for (xx = 0; xx < 4; xx++)
r17967r17968
301300            rgb_t color;
302301
303302            /* handle stars/sparkle */
304            if (state->m_video_config & AC_STARS)
303            if (m_video_config & AC_STARS)
305304            {
306305               /* if sparkle is enabled for this pixel index and either it is non-zero or a star */
307306               /* then adjust the intensity */
308               if (state->m_sparkle[pixdata] == 0)
307               if (m_sparkle[pixdata] == 0)
309308               {
310                  if (pixdata != 0 || (state->m_sparklestar[staroffs] & 0x10))
311                     luma = state->m_sparklestar[sparkleoffs] & 0x0f;
309                  if (pixdata != 0 || (m_sparklestar[staroffs] & 0x10))
310                     luma = m_sparklestar[sparkleoffs] & 0x0f;
312311                  else if (pixdata == 0)
313312                     colordata = luma = 0;
314313               }
r17967r17968
333332}
334333
335334
336SCREEN_UPDATE_IND16( profpac )
335UINT32 astrocde_state::screen_update_profpac(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
337336{
338   astrocde_state *state = screen.machine().driver_data<astrocde_state>();
339337   int y;
340338
341339   /* iterate over scanlines */
r17967r17968
343341   {
344342      int effy = mame_vpos_to_astrocade_vpos(y);
345343      UINT16 *dest = &bitmap.pix16(y);
346      UINT16 offset = state->m_profpac_vispage * 0x4000 + effy * 80;
344      UINT16 offset = m_profpac_vispage * 0x4000 + effy * 80;
347345      int x;
348346
349347      /* star with black */
r17967r17968
354352         int effx = x - HORZ_OFFSET/4;
355353
356354         /* select either video data or background data */
357         UINT16 data = (effx >= 0 && effx < 80 && effy >= 0 && effy < state->m_vblank) ? state->m_profpac_videoram[offset++] : 0;
355         UINT16 data = (effx >= 0 && effx < 80 && effy >= 0 && effy < m_vblank) ? m_profpac_videoram[offset++] : 0;
358356
359357         /* iterate over the 4 pixels */
360         *dest++ = state->m_profpac_palette[(data >> 12) & 0x0f];
361         *dest++ = state->m_profpac_palette[(data >> 8) & 0x0f];
362         *dest++ = state->m_profpac_palette[(data >> 4) & 0x0f];
363         *dest++ = state->m_profpac_palette[(data >> 0) & 0x0f];
358         *dest++ = m_profpac_palette[(data >> 12) & 0x0f];
359         *dest++ = m_profpac_palette[(data >> 8) & 0x0f];
360         *dest++ = m_profpac_palette[(data >> 4) & 0x0f];
361         *dest++ = m_profpac_palette[(data >> 0) & 0x0f];
364362      }
365363   }
366364
trunk/src/mame/video/m62.c
r17967r17968
463463   m62_start(machine(), tilemap_get_info_delegate(FUNC(m62_state::get_kungfum_bg_tile_info),this), 32, 0, 8, 8, 64, 32);
464464}
465465
466SCREEN_UPDATE_IND16( kungfum )
466UINT32 m62_state::screen_update_kungfum(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
467467{
468   m62_state *state = screen.machine().driver_data<m62_state>();
469468   int i;
470469   for (i = 0; i < 6; i++)
471470   {
472      state->m_bg_tilemap->set_scrollx(i, 0);
471      m_bg_tilemap->set_scrollx(i, 0);
473472   }
474473   for (i = 6; i < 32; i++)
475474   {
476      state->m_bg_tilemap->set_scrollx(i, state->m_m62_background_hscroll);
475      m_bg_tilemap->set_scrollx(i, m_m62_background_hscroll);
477476   }
478   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
477   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
479478   draw_sprites(screen.machine(), bitmap, cliprect, 0x1f, 0x00, 0x00);
480   state->m_bg_tilemap->draw(bitmap, cliprect, 1, 0);
479   m_bg_tilemap->draw(bitmap, cliprect, 1, 0);
481480   return 0;
482481}
483482
r17967r17968
510509   m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe);   /* split type 1 has pen 0 transparent in front half */
511510}
512511
513SCREEN_UPDATE_IND16( ldrun )
512UINT32 m62_state::screen_update_ldrun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
514513{
515   m62_state *state = screen.machine().driver_data<m62_state>();
516   state->m_bg_tilemap->set_scrollx(0, state->m_m62_background_hscroll);
517   state->m_bg_tilemap->set_scrolly(0, state->m_m62_background_vscroll);
514   m_bg_tilemap->set_scrollx(0, m_m62_background_hscroll);
515   m_bg_tilemap->set_scrolly(0, m_m62_background_vscroll);
518516
519   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
517   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
520518   draw_sprites(screen.machine(), bitmap, cliprect, 0x0f, 0x10, 0x00);
521   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
519   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
522520   draw_sprites(screen.machine(), bitmap, cliprect, 0x0f, 0x10, 0x10);
523521   return 0;
524522}
r17967r17968
555553   m_ldrun3_topbottom_mask = data & 1;
556554}
557555
558SCREEN_UPDATE_IND16( ldrun3 )
556UINT32 m62_state::screen_update_ldrun3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
559557{
560   m62_state *state = screen.machine().driver_data<m62_state>();
561   SCREEN_UPDATE16_CALL(ldrun);
558   SCREEN_UPDATE16_CALL_MEMBER(ldrun);
562559
563   if (state->m_ldrun3_topbottom_mask)
560   if (m_ldrun3_topbottom_mask)
564561   {
565562      rectangle my_cliprect = cliprect;
566563
r17967r17968
613610   m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe);   /* split type 1 has pen 0 transparent in front half */
614611}
615612
616SCREEN_UPDATE_IND16( battroad )
613UINT32 m62_state::screen_update_battroad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
617614{
618   m62_state *state = screen.machine().driver_data<m62_state>();
619   state->m_bg_tilemap->set_scrollx(0, state->m_m62_background_hscroll);
620   state->m_bg_tilemap->set_scrolly(0, state->m_m62_background_vscroll);
621   state->m_fg_tilemap->set_scrollx(0, 128);
622   state->m_fg_tilemap->set_scrolly(0, 0);
623   state->m_fg_tilemap->set_transparent_pen(0);
615   m_bg_tilemap->set_scrollx(0, m_m62_background_hscroll);
616   m_bg_tilemap->set_scrolly(0, m_m62_background_vscroll);
617   m_fg_tilemap->set_scrollx(0, 128);
618   m_fg_tilemap->set_scrolly(0, 0);
619   m_fg_tilemap->set_transparent_pen(0);
624620
625   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
621   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
626622   draw_sprites(screen.machine(), bitmap, cliprect, 0x0f, 0x10, 0x00);
627   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
623   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
628624   draw_sprites(screen.machine(), bitmap, cliprect, 0x0f, 0x10, 0x10);
629   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
625   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
630626   return 0;
631627}
632628
r17967r17968
647643   m62_start(machine(), tilemap_get_info_delegate(FUNC(m62_state::get_ldrun4_bg_tile_info),this), 1, 0, 8, 8, 64, 32);
648644}
649645
650SCREEN_UPDATE_IND16( ldrun4 )
646UINT32 m62_state::screen_update_ldrun4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
651647{
652   m62_state *state = screen.machine().driver_data<m62_state>();
653   state->m_bg_tilemap->set_scrollx(0, state->m_m62_background_hscroll - 2);
648   m_bg_tilemap->set_scrollx(0, m_m62_background_hscroll - 2);
654649
655   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
650   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
656651   draw_sprites(screen.machine(), bitmap, cliprect, 0x1f, 0x00, 0x00);
657652   return 0;
658653}
r17967r17968
688683   m62_textlayer(machine(), tilemap_get_info_delegate(FUNC(m62_state::get_lotlot_fg_tile_info),this), 1, 1, 12, 10, 32, 64);
689684}
690685
691SCREEN_UPDATE_IND16( lotlot )
686UINT32 m62_state::screen_update_lotlot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
692687{
693   m62_state *state = screen.machine().driver_data<m62_state>();
694   state->m_bg_tilemap->set_scrollx(0, state->m_m62_background_hscroll - 64);
695   state->m_bg_tilemap->set_scrolly(0, state->m_m62_background_vscroll + 32);
696   state->m_fg_tilemap->set_scrollx(0, -64);
697   state->m_fg_tilemap->set_scrolly(0, 32);
698   state->m_fg_tilemap->set_transparent_pen(0);
688   m_bg_tilemap->set_scrollx(0, m_m62_background_hscroll - 64);
689   m_bg_tilemap->set_scrolly(0, m_m62_background_vscroll + 32);
690   m_fg_tilemap->set_scrollx(0, -64);
691   m_fg_tilemap->set_scrolly(0, 32);
692   m_fg_tilemap->set_transparent_pen(0);
699693
700   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
701   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
694   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
695   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
702696   draw_sprites(screen.machine(), bitmap, cliprect, 0x1f, 0x00, 0x00);
703697   return 0;
704698}
r17967r17968
754748   m62_textlayer(machine(), tilemap_get_info_delegate(FUNC(m62_state::get_kidniki_fg_tile_info),this), 1, 1, 12, 8, 32, 64);
755749}
756750
757SCREEN_UPDATE_IND16( kidniki )
751UINT32 m62_state::screen_update_kidniki(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
758752{
759   m62_state *state = screen.machine().driver_data<m62_state>();
760   state->m_bg_tilemap->set_scrollx(0, state->m_m62_background_hscroll);
761   state->m_fg_tilemap->set_scrollx(0, -64);
762   state->m_fg_tilemap->set_scrolly(0, state->m_kidniki_text_vscroll + 128);
763   state->m_fg_tilemap->set_transparent_pen(0);
753   m_bg_tilemap->set_scrollx(0, m_m62_background_hscroll);
754   m_fg_tilemap->set_scrollx(0, -64);
755   m_fg_tilemap->set_scrolly(0, m_kidniki_text_vscroll + 128);
756   m_fg_tilemap->set_transparent_pen(0);
764757
765   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
758   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
766759   draw_sprites(screen.machine(), bitmap, cliprect, 0x1f, 0x00, 0x00);
767   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
768   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
760   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
761   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
769762   return 0;
770763}
771764
r17967r17968
805798   m62_textlayer(machine(), tilemap_get_info_delegate(FUNC(m62_state::get_spelunkr_fg_tile_info),this), 1, 1, 12, 8, 32, 32);
806799}
807800
808SCREEN_UPDATE_IND16( spelunkr )
801UINT32 m62_state::screen_update_spelunkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
809802{
810   m62_state *state = screen.machine().driver_data<m62_state>();
811   state->m_bg_tilemap->set_scrollx(0, state->m_m62_background_hscroll);
812   state->m_bg_tilemap->set_scrolly(0, state->m_m62_background_vscroll + 128);
813   state->m_fg_tilemap->set_scrollx(0, -64);
814   state->m_fg_tilemap->set_scrolly(0, 0);
815   state->m_fg_tilemap->set_transparent_pen(0);
803   m_bg_tilemap->set_scrollx(0, m_m62_background_hscroll);
804   m_bg_tilemap->set_scrolly(0, m_m62_background_vscroll + 128);
805   m_fg_tilemap->set_scrollx(0, -64);
806   m_fg_tilemap->set_scrolly(0, 0);
807   m_fg_tilemap->set_transparent_pen(0);
816808
817   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
809   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
818810   draw_sprites(screen.machine(), bitmap, cliprect, 0x1f, 0x00, 0x00);
819   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
811   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
820812   return 0;
821813}
822814
r17967r17968
848840   m62_textlayer(machine(), tilemap_get_info_delegate(FUNC(m62_state::get_spelunkr_fg_tile_info),this), 1, 1, 12, 8, 32, 32);
849841}
850842
851SCREEN_UPDATE_IND16( spelunk2 )
843UINT32 m62_state::screen_update_spelunk2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
852844{
853   m62_state *state = screen.machine().driver_data<m62_state>();
854   state->m_bg_tilemap->set_scrollx(0, state->m_m62_background_hscroll - 1);
855   state->m_bg_tilemap->set_scrolly(0, state->m_m62_background_vscroll + 128);
856   state->m_fg_tilemap->set_scrollx(0, -65);
857   state->m_fg_tilemap->set_scrolly(0, 0);
858   state->m_fg_tilemap->set_transparent_pen(0);
845   m_bg_tilemap->set_scrollx(0, m_m62_background_hscroll - 1);
846   m_bg_tilemap->set_scrolly(0, m_m62_background_vscroll + 128);
847   m_fg_tilemap->set_scrollx(0, -65);
848   m_fg_tilemap->set_scrolly(0, 0);
849   m_fg_tilemap->set_transparent_pen(0);
859850
860   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
851   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
861852   draw_sprites(screen.machine(), bitmap, cliprect, 0x1f, 0x00, 0x00);
862   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
853   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
863854   return 0;
864855}
865856
r17967r17968
894885   m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe);   /* split type 1 has pen 0 transparent in front half */
895886}
896887
897SCREEN_UPDATE_IND16( youjyudn )
888UINT32 m62_state::screen_update_youjyudn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
898889{
899   m62_state *state = screen.machine().driver_data<m62_state>();
900   state->m_bg_tilemap->set_scrollx(0, state->m_m62_background_hscroll);
901   state->m_fg_tilemap->set_scrollx(0, -64);
902   state->m_fg_tilemap->set_scrolly(0, 0);
903   state->m_fg_tilemap->set_transparent_pen(0);
890   m_bg_tilemap->set_scrollx(0, m_m62_background_hscroll);
891   m_fg_tilemap->set_scrollx(0, -64);
892   m_fg_tilemap->set_scrolly(0, 0);
893   m_fg_tilemap->set_transparent_pen(0);
904894
905   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
895   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
906896   draw_sprites(screen.machine(), bitmap, cliprect, 0x1f, 0x00, 0x00);
907   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
908   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
897   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
898   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
909899   return 0;
910900}
911901
r17967r17968
936926   m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe);   /* split type 1 has pen 0 transparent in front half */
937927}
938928
939SCREEN_UPDATE_IND16( horizon )
929UINT32 m62_state::screen_update_horizon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
940930{
941   m62_state *state = screen.machine().driver_data<m62_state>();
942931   int i;
943932   for (i = 0; i < 32; i++)
944933   {
945      state->m_bg_tilemap->set_scrollx(i, state->m_scrollram[i << 1] | (state->m_scrollram[(i << 1) | 1] << 8));
934      m_bg_tilemap->set_scrollx(i, m_scrollram[i << 1] | (m_scrollram[(i << 1) | 1] << 8));
946935   }
947   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
936   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
948937   draw_sprites(screen.machine(), bitmap, cliprect, 0x1f, 0x00, 0x00);
949   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
938   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
950939   return 0;
951940}
trunk/src/mame/video/megazone.c
r17967r17968
110110}
111111
112112
113SCREEN_UPDATE_IND16( megazone )
113UINT32 megazone_state::screen_update_megazone(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
114114{
115   megazone_state *state = screen.machine().driver_data<megazone_state>();
116115   int offs;
117116   int x, y;
118117
119118   /* for every character in the Video RAM */
120   for (offs = state->m_videoram.bytes() - 1; offs >= 0; offs--)
119   for (offs = m_videoram.bytes() - 1; offs >= 0; offs--)
121120   {
122121      int sx, sy, flipx, flipy;
123122
124123      sx = offs % 32;
125124      sy = offs / 32;
126      flipx = state->m_colorram[offs] & (1 << 6);
127      flipy = state->m_colorram[offs] & (1 << 5);
125      flipx = m_colorram[offs] & (1 << 6);
126      flipy = m_colorram[offs] & (1 << 5);
128127
129      if (state->m_flipscreen)
128      if (m_flipscreen)
130129      {
131130         sx = 31 - sx;
132131         sy = 31 - sy;
r17967r17968
134133         flipy = !flipy;
135134      }
136135
137      drawgfx_opaque(*state->m_tmpbitmap, state->m_tmpbitmap->cliprect(), screen.machine().gfx[1],
138            ((int)state->m_videoram[offs]) + ((state->m_colorram[offs] & (1 << 7) ? 256 : 0) ),
139            (state->m_colorram[offs] & 0x0f) + 0x10,
136      drawgfx_opaque(*m_tmpbitmap, m_tmpbitmap->cliprect(), screen.machine().gfx[1],
137            ((int)m_videoram[offs]) + ((m_colorram[offs] & (1 << 7) ? 256 : 0) ),
138            (m_colorram[offs] & 0x0f) + 0x10,
140139            flipx,flipy,
141140            8*sx,8*sy);
142141   }
r17967r17968
146145      int scrollx;
147146      int scrolly;
148147
149      if (state->m_flipscreen)
148      if (m_flipscreen)
150149      {
151         scrollx = *state->m_scrolly;
152         scrolly = *state->m_scrollx;
150         scrollx = *m_scrolly;
151         scrolly = *m_scrollx;
153152      }
154153      else
155154      {
156         scrollx = - *state->m_scrolly + 4 * 8; // leave space for credit&score overlay
157         scrolly = - *state->m_scrollx;
155         scrollx = - *m_scrolly + 4 * 8; // leave space for credit&score overlay
156         scrolly = - *m_scrollx;
158157      }
159158
160159
161      copyscrollbitmap(bitmap, *state->m_tmpbitmap, 1, &scrollx, 1, &scrolly, cliprect);
160      copyscrollbitmap(bitmap, *m_tmpbitmap, 1, &scrollx, 1, &scrolly, cliprect);
162161   }
163162
164163
165164   /* Draw the sprites. */
166165   {
167      UINT8 *spriteram = state->m_spriteram;
168      for (offs = state->m_spriteram.bytes() - 4; offs >= 0; offs -= 4)
166      UINT8 *spriteram = m_spriteram;
167      for (offs = m_spriteram.bytes() - 4; offs >= 0; offs -= 4)
169168      {
170169         int sx = spriteram[offs + 3];
171170         int sy = 255 - ((spriteram[offs + 1] + 16) & 0xff);
r17967r17968
173172         int flipx = ~spriteram[offs + 0] & 0x40;
174173         int flipy =  spriteram[offs + 0] & 0x80;
175174
176         if (state->m_flipscreen)
175         if (m_flipscreen)
177176         {
178177            sx = sx - 11;
179178            sy = sy + 2;
r17967r17968
200199         sx = x;
201200         sy = y;
202201
203         flipx = state->m_colorram2[offs] & (1 << 6);
204         flipy = state->m_colorram2[offs] & (1 << 5);
202         flipx = m_colorram2[offs] & (1 << 6);
203         flipy = m_colorram2[offs] & (1 << 5);
205204
206         if (state->m_flipscreen)
205         if (m_flipscreen)
207206         {
208207            sx = 35 - sx;
209208            sy = 31 - sy;
r17967r17968
215214
216215
217216         drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[1],
218               ((int)state->m_videoram2[offs]) + ((state->m_colorram2[offs] & (1 << 7) ? 256 : 0) ),
219               (state->m_colorram2[offs] & 0x0f) + 0x10,
217               ((int)m_videoram2[offs]) + ((m_colorram2[offs] & (1 << 7) ? 256 : 0) ),
218               (m_colorram2[offs] & 0x0f) + 0x10,
220219               flipx,flipy,
221220               8*sx,8*sy);
222221         offs++;
trunk/src/mame/video/toki.c
r17967r17968
251251 *
252252 *************************************/
253253
254SCREEN_UPDATE_IND16( toki )
254UINT32 toki_state::screen_update_toki(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
255255{
256   toki_state *state = screen.machine().driver_data<toki_state>();
257256   int background_y_scroll,foreground_y_scroll,background_x_scroll,foreground_x_scroll;
258257
259   background_x_scroll=((state->m_scrollram16[0x06] &0x7f) << 1)
260                         |((state->m_scrollram16[0x06] &0x80) >> 7)
261                         |((state->m_scrollram16[0x05] &0x10) << 4);
262   background_y_scroll=((state->m_scrollram16[0x0d]&0x10)<<4)+((state->m_scrollram16[0x0e]&0x7f)<<1)+((state->m_scrollram16[0x0e]&0x80)>>7);
258   background_x_scroll=((m_scrollram16[0x06] &0x7f) << 1)
259                         |((m_scrollram16[0x06] &0x80) >> 7)
260                         |((m_scrollram16[0x05] &0x10) << 4);
261   background_y_scroll=((m_scrollram16[0x0d]&0x10)<<4)+((m_scrollram16[0x0e]&0x7f)<<1)+((m_scrollram16[0x0e]&0x80)>>7);
263262
264   state->m_background_layer->set_scrollx(0, background_x_scroll );
265   state->m_background_layer->set_scrolly(0, background_y_scroll );
263   m_background_layer->set_scrollx(0, background_x_scroll );
264   m_background_layer->set_scrolly(0, background_y_scroll );
266265
267   foreground_x_scroll= ((state->m_scrollram16[0x16] &0x7f) << 1)
268                         |((state->m_scrollram16[0x16] &0x80) >> 7)
269                         |((state->m_scrollram16[0x15] &0x10) << 4);
270   foreground_y_scroll=((state->m_scrollram16[0x1d]&0x10)<<4)+((state->m_scrollram16[0x1e]&0x7f)<<1)+((state->m_scrollram16[0x1e]&0x80)>>7);
266   foreground_x_scroll= ((m_scrollram16[0x16] &0x7f) << 1)
267                         |((m_scrollram16[0x16] &0x80) >> 7)
268                         |((m_scrollram16[0x15] &0x10) << 4);
269   foreground_y_scroll=((m_scrollram16[0x1d]&0x10)<<4)+((m_scrollram16[0x1e]&0x7f)<<1)+((m_scrollram16[0x1e]&0x80)>>7);
271270
272   state->m_foreground_layer->set_scrollx(0, foreground_x_scroll );
273   state->m_foreground_layer->set_scrolly(0, foreground_y_scroll );
271   m_foreground_layer->set_scrollx(0, foreground_x_scroll );
272   m_foreground_layer->set_scrolly(0, foreground_y_scroll );
274273
275   state->flip_screen_set((state->m_scrollram16[0x28]&0x8000)==0);
274   flip_screen_set((m_scrollram16[0x28]&0x8000)==0);
276275
277   if (state->m_scrollram16[0x28]&0x100) {
278      state->m_background_layer->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
279      state->m_foreground_layer->draw(bitmap, cliprect, 0,0);
276   if (m_scrollram16[0x28]&0x100) {
277      m_background_layer->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
278      m_foreground_layer->draw(bitmap, cliprect, 0,0);
280279   } else {
281      state->m_foreground_layer->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
282      state->m_background_layer->draw(bitmap, cliprect, 0,0);
280      m_foreground_layer->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
281      m_background_layer->draw(bitmap, cliprect, 0,0);
283282   }
284283   toki_draw_sprites(screen.machine(), bitmap,cliprect);
285   state->m_text_layer->draw(bitmap, cliprect, 0,0);
284   m_text_layer->draw(bitmap, cliprect, 0,0);
286285   return 0;
287286}
288287
289SCREEN_UPDATE_IND16( tokib )
288UINT32 toki_state::screen_update_tokib(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
290289{
291   toki_state *state = screen.machine().driver_data<toki_state>();
292   state->m_foreground_layer->set_scroll_rows(1);
293   state->m_background_layer->set_scroll_rows(1);
294   state->m_background_layer->set_scrolly(0, state->m_scrollram16[0]+1 );
295   state->m_background_layer->set_scrollx(0, state->m_scrollram16[1]-0x103 );
296   state->m_foreground_layer->set_scrolly(0, state->m_scrollram16[2]+1 );
297   state->m_foreground_layer->set_scrollx(0, state->m_scrollram16[3]-0x101 );
290   m_foreground_layer->set_scroll_rows(1);
291   m_background_layer->set_scroll_rows(1);
292   m_background_layer->set_scrolly(0, m_scrollram16[0]+1 );
293   m_background_layer->set_scrollx(0, m_scrollram16[1]-0x103 );
294   m_foreground_layer->set_scrolly(0, m_scrollram16[2]+1 );
295   m_foreground_layer->set_scrollx(0, m_scrollram16[3]-0x101 );
298296
299   if (state->m_scrollram16[3]&0x2000) {
300      state->m_background_layer->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
301      state->m_foreground_layer->draw(bitmap, cliprect, 0,0);
297   if (m_scrollram16[3]&0x2000) {
298      m_background_layer->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
299      m_foreground_layer->draw(bitmap, cliprect, 0,0);
302300   } else {
303      state->m_foreground_layer->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
304      state->m_background_layer->draw(bitmap, cliprect, 0,0);
301      m_foreground_layer->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
302      m_background_layer->draw(bitmap, cliprect, 0,0);
305303   }
306304
307305   tokib_draw_sprites(screen.machine(), bitmap,cliprect);
308   state->m_text_layer->draw(bitmap, cliprect, 0,0);
306   m_text_layer->draw(bitmap, cliprect, 0,0);
309307   return 0;
310308}
trunk/src/mame/video/pass.c
r17967r17968
5252   m_fg_tilemap->set_transparent_pen(255);
5353}
5454
55SCREEN_UPDATE_IND16( pass )
55UINT32 pass_state::screen_update_pass(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
5656{
57   pass_state *state = screen.machine().driver_data<pass_state>();
5857
59   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
60   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
58   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
59   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
6160
6261   return 0;
6362}
trunk/src/mame/video/40love.c
r17967r17968
350350      copybitmap(bitmap, *state->m_tmp_bitmap2, f, f, state->m_xoffset, 0, cliprect);
351351}
352352
353SCREEN_UPDATE_IND16( fortyl )
353UINT32 fortyl_state::screen_update_fortyl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
354354{
355   fortyl_state *state = screen.machine().driver_data<fortyl_state>();
356355   draw_pixram(screen.machine(), bitmap, cliprect);
357356
358   state->m_bg_tilemap->set_scrolldy(- state->m_video_ctrl[1] + 1, - state->m_video_ctrl[1] - 1 );
359   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
357   m_bg_tilemap->set_scrolldy(- m_video_ctrl[1] + 1, - m_video_ctrl[1] - 1 );
358   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
360359
361360   draw_sprites(screen.machine(), bitmap, cliprect);
362361   return 0;
trunk/src/mame/video/renegade.c
r17967r17968
124124   }
125125}
126126
127SCREEN_UPDATE_IND16( renegade )
127UINT32 renegade_state::screen_update_renegade(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
128128{
129   renegade_state *state = screen.machine().driver_data<renegade_state>();
130   state->m_bg_tilemap->set_scrollx(0, state->m_scrollx);
131   state->m_bg_tilemap->draw(bitmap, cliprect, 0 , 0);
129   m_bg_tilemap->set_scrollx(0, m_scrollx);
130   m_bg_tilemap->draw(bitmap, cliprect, 0 , 0);
132131   draw_sprites(screen.machine(), bitmap, cliprect);
133   state->m_fg_tilemap->draw(bitmap, cliprect, 0 , 0);
132   m_fg_tilemap->draw(bitmap, cliprect, 0 , 0);
134133   return 0;
135134}
trunk/src/mame/video/galaga.c
r17967r17968
562562   }
563563}
564564
565SCREEN_UPDATE_IND16( galaga )
565UINT32 galaga_state::screen_update_galaga(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
566566{
567   galaga_state *state =  screen.machine().driver_data<galaga_state>();
568567
569568   bitmap.fill(get_black_pen(screen.machine()), cliprect);
570569   draw_stars(screen.machine(),bitmap,cliprect);
571570   draw_sprites(screen.machine(),bitmap,cliprect);
572   state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
571   m_fg_tilemap->draw(bitmap, cliprect, 0,0);
573572   return 0;
574573}
575574
576575
577576
578SCREEN_VBLANK( galaga )
577void galaga_state::screen_eof_galaga(screen_device &screen, bool state)
579578{
580579   // falling edge
581   if (!vblank_on)
580   if (!state)
582581   {
583      galaga_state *state =  screen.machine().driver_data<galaga_state>();
584582      /* this function is called by galaga_interrupt_1() */
585583      int s0,s1,s2;
586584      static const int speeds[8] = { -1, -2, -3, 0, 3, 2, 1, 0 };
587585
588      s0 = (state->m_galaga_starcontrol[0] & 1);
589      s1 = (state->m_galaga_starcontrol[1] & 1);
590      s2 = (state->m_galaga_starcontrol[2] & 1);
586      s0 = (m_galaga_starcontrol[0] & 1);
587      s1 = (m_galaga_starcontrol[1] & 1);
588      s2 = (m_galaga_starcontrol[2] & 1);
591589
592      state->m_stars_scrollx += speeds[s0 + s1*2 + s2*4];
590      m_stars_scrollx += speeds[s0 + s1*2 + s2*4];
593591   }
594592}
595593
trunk/src/mame/video/lasso.c
r17967r17968
359359}
360360
361361
362SCREEN_UPDATE_IND16( lasso )
362UINT32 lasso_state::screen_update_lasso(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
363363{
364   lasso_state *state = screen.machine().driver_data<lasso_state>();
365   palette_set_color(screen.machine(), 0, get_color(*state->m_back_color));
364   palette_set_color(screen.machine(), 0, get_color(*m_back_color));
366365   bitmap.fill(0, cliprect);
367366
368   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
367   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
369368   draw_lasso(screen.machine(), bitmap, cliprect);
370369   draw_sprites(screen.machine(), bitmap, cliprect, 0);
371370
372371   return 0;
373372}
374373
375SCREEN_UPDATE_IND16( chameleo )
374UINT32 lasso_state::screen_update_chameleo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
376375{
377   lasso_state *state = screen.machine().driver_data<lasso_state>();
378   palette_set_color(screen.machine(), 0, get_color(*state->m_back_color));
376   palette_set_color(screen.machine(), 0, get_color(*m_back_color));
379377   bitmap.fill(0, cliprect);
380378
381   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
379   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
382380   draw_sprites(screen.machine(), bitmap, cliprect, 0);
383381
384382   return 0;
385383}
386384
387385
388SCREEN_UPDATE_IND16( wwjgtin )
386UINT32 lasso_state::screen_update_wwjgtin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
389387{
390   lasso_state *state = screen.machine().driver_data<lasso_state>();
391   colortable_palette_set_color(screen.machine().colortable, 0, get_color(*state->m_back_color));
388   colortable_palette_set_color(screen.machine().colortable, 0, get_color(*m_back_color));
392389   wwjgtin_set_last_four_colors(screen.machine(), screen.machine().colortable);
393390
394   state->m_track_tilemap->set_scrollx(0, state->m_track_scroll[0] + state->m_track_scroll[1] * 256);
395   state->m_track_tilemap->set_scrolly(0, state->m_track_scroll[2] + state->m_track_scroll[3] * 256);
391   m_track_tilemap->set_scrollx(0, m_track_scroll[0] + m_track_scroll[1] * 256);
392   m_track_tilemap->set_scrolly(0, m_track_scroll[2] + m_track_scroll[3] * 256);
396393
397   if (state->m_track_enable)
398      state->m_track_tilemap->draw(bitmap, cliprect, 0, 0);
394   if (m_track_enable)
395      m_track_tilemap->draw(bitmap, cliprect, 0, 0);
399396   else
400397      bitmap.fill(get_black_pen(screen.machine()), cliprect);
401398
402399   draw_sprites(screen.machine(), bitmap, cliprect, 1);   // reverse order
403   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
400   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
404401
405402   return 0;
406403}
trunk/src/mame/video/nbmj8688.c
r17967r17968
660660******************************************************************************/
661661
662662
663SCREEN_UPDATE_IND16( mbmj8688 )
663UINT32 nbmj8688_state::screen_update_mbmj8688(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
664664{
665   nbmj8688_state *state = screen.machine().driver_data<nbmj8688_state>();
666665   int x, y;
667666
668   if (state->m_mjsikaku_screen_refresh)
667   if (m_mjsikaku_screen_refresh)
669668   {
670      state->m_mjsikaku_screen_refresh = 0;
669      m_mjsikaku_screen_refresh = 0;
671670      for (y = 0; y < 256; y++)
672671      {
673672         for (x = 0; x < 512; x++)
674673         {
675            update_pixel(state, x, y);
674            update_pixel(this, x, y);
676675         }
677676      }
678677   }
679678
680   if (state->m_mjsikaku_dispflag)
679   if (m_mjsikaku_dispflag)
681680   {
682681      int scrolly;
683      if (state->m_mjsikaku_flipscreen) scrolly =   state->m_mjsikaku_scrolly;
684      else                     scrolly = (-state->m_mjsikaku_scrolly) & 0xff;
682      if (m_mjsikaku_flipscreen) scrolly =   m_mjsikaku_scrolly;
683      else                     scrolly = (-m_mjsikaku_scrolly) & 0xff;
685684
686      copybitmap(bitmap, *state->m_mjsikaku_tmpbitmap, 0, 0, 0, scrolly,       cliprect);
687      copybitmap(bitmap, *state->m_mjsikaku_tmpbitmap, 0, 0, 0, scrolly - 256, cliprect);
685      copybitmap(bitmap, *m_mjsikaku_tmpbitmap, 0, 0, 0, scrolly,       cliprect);
686      copybitmap(bitmap, *m_mjsikaku_tmpbitmap, 0, 0, 0, scrolly - 256, cliprect);
688687   }
689688   else
690689      bitmap.fill(0);
r17967r17968
694693
695694
696695
697SCREEN_UPDATE_IND16( mbmj8688_lcd0 )
696UINT32 nbmj8688_state::screen_update_mbmj8688_lcd0(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
698697{
699   nbmj8688_state *state = screen.machine().driver_data<nbmj8688_state>();
700698   int x, y, b;
701699
702700   for (y = 0;y < 64;y++)
703701      for (x = 0;x < 60;x++)
704702      {
705         int data = state->m_HD61830B_ram[0][y * 60 + x];
703         int data = m_HD61830B_ram[0][y * 60 + x];
706704
707705         for (b = 0;b < 8;b++)
708706            bitmap.pix16(y, (8*x+b)) = (data & (1<<b)) ? 0x0000 : 0x18ff;
r17967r17968
710708   return 0;
711709}
712710
713SCREEN_UPDATE_IND16( mbmj8688_lcd1 )
711UINT32 nbmj8688_state::screen_update_mbmj8688_lcd1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
714712{
715   nbmj8688_state *state = screen.machine().driver_data<nbmj8688_state>();
716713   int x, y, b;
717714
718715   for (y = 0;y < 64;y++)
719716      for (x = 0;x < 60;x++)
720717      {
721         int data = state->m_HD61830B_ram[1][y * 60 + x];
718         int data = m_HD61830B_ram[1][y * 60 + x];
722719
723720         for (b = 0;b < 8;b++)
724721            bitmap.pix16(y, (8*x+b)) = (data & (1<<b)) ? 0x0000 : 0x18ff;
trunk/src/mame/video/taito_h.c
r17967r17968
394394
395395/**************************************************************************/
396396
397SCREEN_UPDATE_IND16( syvalion )
397UINT32 taitoh_state::screen_update_syvalion(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
398398{
399   taitoh_state *state = screen.machine().driver_data<taitoh_state>();
400399
401   tc0080vco_tilemap_update(state->m_tc0080vco);
400   tc0080vco_tilemap_update(m_tc0080vco);
402401
403402   taitoh_log_vram(screen.machine());
404403
405404   bitmap.fill(0, cliprect);
406405
407   tc0080vco_tilemap_draw(state->m_tc0080vco, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0);
408   tc0080vco_tilemap_draw(state->m_tc0080vco, bitmap, cliprect, 1, 0, 0);
406   tc0080vco_tilemap_draw(m_tc0080vco, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0);
407   tc0080vco_tilemap_draw(m_tc0080vco, bitmap, cliprect, 1, 0, 0);
409408   syvalion_draw_sprites(screen.machine(), bitmap,cliprect);
410   tc0080vco_tilemap_draw(state->m_tc0080vco, bitmap, cliprect, 2, 0, 0);
409   tc0080vco_tilemap_draw(m_tc0080vco, bitmap, cliprect, 2, 0, 0);
411410
412411   return 0;
413412}
414413
415414
416SCREEN_UPDATE_IND16( recordbr )
415UINT32 taitoh_state::screen_update_recordbr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
417416{
418   taitoh_state *state = screen.machine().driver_data<taitoh_state>();
419417
420   tc0080vco_tilemap_update(state->m_tc0080vco);
418   tc0080vco_tilemap_update(m_tc0080vco);
421419
422420   taitoh_log_vram(screen.machine());
423421
r17967r17968
425423
426424#ifdef MAME_DEBUG
427425   if (!screen.machine().input().code_pressed(KEYCODE_A))
428      tc0080vco_tilemap_draw(state->m_tc0080vco, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0);
426      tc0080vco_tilemap_draw(m_tc0080vco, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0);
429427   if (!screen.machine().input().code_pressed(KEYCODE_S))
430428      recordbr_draw_sprites(screen.machine(), bitmap, cliprect, 0);
431429   if (!screen.machine().input().code_pressed(KEYCODE_D))
432      tc0080vco_tilemap_draw(state->m_tc0080vco, bitmap, cliprect, 1, 0, 0);
430      tc0080vco_tilemap_draw(m_tc0080vco, bitmap, cliprect, 1, 0, 0);
433431   if (!screen.machine().input().code_pressed(KEYCODE_F))
434432      recordbr_draw_sprites(screen.machine(), bitmap, cliprect, 1);
435433#else
436   tc0080vco_tilemap_draw(state->m_tc0080vco, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0);
434   tc0080vco_tilemap_draw(m_tc0080vco, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0);
437435   recordbr_draw_sprites(screen.machine(), bitmap, cliprect, 0);
438   tc0080vco_tilemap_draw(state->m_tc0080vco, bitmap, cliprect, 1, 0, 0);
436   tc0080vco_tilemap_draw(m_tc0080vco, bitmap, cliprect, 1, 0, 0);
439437   recordbr_draw_sprites(screen.machine(), bitmap, cliprect, 1);
440438#endif
441439
442   tc0080vco_tilemap_draw(state->m_tc0080vco, bitmap, cliprect, 2, 0, 0);
440   tc0080vco_tilemap_draw(m_tc0080vco, bitmap, cliprect, 2, 0, 0);
443441   return 0;
444442}
445443
446444
447SCREEN_UPDATE_IND16( dleague )
445UINT32 taitoh_state::screen_update_dleague(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
448446{
449   taitoh_state *state = screen.machine().driver_data<taitoh_state>();
450447
451   tc0080vco_tilemap_update(state->m_tc0080vco);
448   tc0080vco_tilemap_update(m_tc0080vco);
452449
453450   taitoh_log_vram(screen.machine());
454451
r17967r17968
456453
457454#ifdef MAME_DEBUG
458455   if (!screen.machine().input().code_pressed(KEYCODE_A))
459      tc0080vco_tilemap_draw(state->m_tc0080vco, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0);
456      tc0080vco_tilemap_draw(m_tc0080vco, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0);
460457   if (!screen.machine().input().code_pressed(KEYCODE_S))
461458      dleague_draw_sprites(screen.machine(), bitmap, cliprect, 0);
462459   if (!screen.machine().input().code_pressed(KEYCODE_D))
463      tc0080vco_tilemap_draw(state->m_tc0080vco, bitmap, cliprect, 1, 0, 0);
460      tc0080vco_tilemap_draw(m_tc0080vco, bitmap, cliprect, 1, 0, 0);
464461   if (!screen.machine().input().code_pressed(KEYCODE_F))
465462      dleague_draw_sprites(screen.machine(), bitmap, cliprect, 1);
466463#else
467   tc0080vco_tilemap_draw(state->m_tc0080vco, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0);
464   tc0080vco_tilemap_draw(m_tc0080vco, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0);
468465   dleague_draw_sprites (screen.machine(), bitmap, cliprect, 0);
469   tc0080vco_tilemap_draw(state->m_tc0080vco, bitmap, cliprect, 1, 0, 0);
466   tc0080vco_tilemap_draw(m_tc0080vco, bitmap, cliprect, 1, 0, 0);
470467   dleague_draw_sprites (screen.machine(), bitmap, cliprect, 1);
471468#endif
472469
473   tc0080vco_tilemap_draw(state->m_tc0080vco, bitmap, cliprect, 2, 0, 0);
470   tc0080vco_tilemap_draw(m_tc0080vco, bitmap, cliprect, 2, 0, 0);
474471   return 0;
475472}
476473
trunk/src/mame/video/psychic5.c
r17967r17968
409409   state->m_bg_tilemap->draw(bitmap, clip, 0, 0);
410410}
411411
412SCREEN_UPDATE_RGB32( psychic5 )
412UINT32 psychic5_state::screen_update_psychic5(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
413413{
414   psychic5_state *state = screen.machine().driver_data<psychic5_state>();
415414   bitmap.fill(get_black_pen(screen.machine()), cliprect);
416   if (state->m_bg_status & 1)   /* Backgound enable */
415   if (m_bg_status & 1)   /* Backgound enable */
417416      draw_background(screen.machine(), bitmap, cliprect);
418   if (!(state->m_title_screen & 1))
417   if (!(m_title_screen & 1))
419418      draw_sprites(screen.machine(), bitmap, cliprect);
420   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
419   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
421420   return 0;
422421}
423422
424SCREEN_UPDATE_RGB32( bombsa )
423UINT32 psychic5_state::screen_update_bombsa(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
425424{
426   psychic5_state *state = screen.machine().driver_data<psychic5_state>();
427   if (state->m_bg_status & 1)   /* Backgound enable */
428      state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
425   if (m_bg_status & 1)   /* Backgound enable */
426      m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
429427   else
430428      bitmap.fill(screen.machine().pens[0x0ff], cliprect);
431429   draw_sprites(screen.machine(), bitmap, cliprect);
432   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
430   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
433431   return 0;
434432}
trunk/src/mame/video/8080bw.c
r17967r17968
111111}
112112
113113
114SCREEN_UPDATE_RGB32( invadpt2 )
114UINT32 _8080bw_state::screen_update_invadpt2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
115115{
116   _8080bw_state *state = screen.machine().driver_data<_8080bw_state>();
117116   pen_t pens[NUM_PENS];
118117   offs_t offs;
119118   UINT8 *prom;
r17967r17968
121120
122121   invadpt2_get_pens(pens);
123122
124   prom = state->memregion("proms")->base();
125   color_map_base = state->m_color_map ? &prom[0x0400] : &prom[0x0000];
123   prom = memregion("proms")->base();
124   color_map_base = m_color_map ? &prom[0x0400] : &prom[0x0000];
126125
127   for (offs = 0; offs < state->m_main_ram.bytes(); offs++)
126   for (offs = 0; offs < m_main_ram.bytes(); offs++)
128127   {
129128      UINT8 y = offs >> 5;
130129      UINT8 x = offs << 3;
131130
132131      offs_t color_address = (offs >> 8 << 5) | (offs & 0x1f);
133132
134      UINT8 data = state->m_main_ram[offs];
135      UINT8 fore_color = state->m_screen_red ? 1 : color_map_base[color_address] & 0x07;
133      UINT8 data = m_main_ram[offs];
134      UINT8 fore_color = m_screen_red ? 1 : color_map_base[color_address] & 0x07;
136135
137136      set_8_pixels(screen.machine(), bitmap, y, x, data, pens, fore_color, 0);
138137   }
r17967r17968
143142}
144143
145144
146SCREEN_UPDATE_RGB32( ballbomb )
145UINT32 _8080bw_state::screen_update_ballbomb(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
147146{
148   _8080bw_state *state = screen.machine().driver_data<_8080bw_state>();
149147   pen_t pens[NUM_PENS];
150148   offs_t offs;
151149   UINT8 *color_map_base;
r17967r17968
153151
154152   invadpt2_get_pens(pens);
155153
156   prom = state->memregion("proms")->base();
157   color_map_base = state->m_color_map ? &prom[0x0400] : &prom[0x0000];
154   prom = memregion("proms")->base();
155   color_map_base = m_color_map ? &prom[0x0400] : &prom[0x0000];
158156
159   for (offs = 0; offs < state->m_main_ram.bytes(); offs++)
157   for (offs = 0; offs < m_main_ram.bytes(); offs++)
160158   {
161159      UINT8 y = offs >> 5;
162160      UINT8 x = offs << 3;
163161
164162      offs_t color_address = (offs >> 8 << 5) | (offs & 0x1f);
165163
166      UINT8 data = state->m_main_ram[offs];
167      UINT8 fore_color = state->m_screen_red ? 1 : color_map_base[color_address] & 0x07;
164      UINT8 data = m_main_ram[offs];
165      UINT8 fore_color = m_screen_red ? 1 : color_map_base[color_address] & 0x07;
168166
169167      /* blue background */
170168      set_8_pixels(screen.machine(), bitmap, y, x, data, pens, fore_color, 2);
r17967r17968
176174}
177175
178176
179SCREEN_UPDATE_RGB32( schaser )
177UINT32 _8080bw_state::screen_update_schaser(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
180178{
181   _8080bw_state *state = screen.machine().driver_data<_8080bw_state>();
182179   pen_t pens[NUM_PENS];
183180   offs_t offs;
184181   UINT8 *background_map_base;
185182
186183   invadpt2_get_pens(pens);
187184
188   background_map_base = state->memregion("proms")->base();
185   background_map_base = memregion("proms")->base();
189186
190   for (offs = 0; offs < state->m_main_ram.bytes(); offs++)
187   for (offs = 0; offs < m_main_ram.bytes(); offs++)
191188   {
192189      UINT8 back_color = 0;
193190
194191      UINT8 y = offs >> 5;
195192      UINT8 x = offs << 3;
196193
197      UINT8 data = state->m_main_ram[offs];
198      UINT8 fore_color = state->m_colorram[offs & 0x1f9f] & 0x07;
194      UINT8 data = m_main_ram[offs];
195      UINT8 fore_color = m_colorram[offs & 0x1f9f] & 0x07;
199196
200      if (!state->m_schaser_background_disable)
197      if (!m_schaser_background_disable)
201198      {
202199         offs_t back_address = (offs >> 8 << 5) | (offs & 0x1f);
203200
r17967r17968
205202
206203         /* the equations derived from the schematics don't appear to produce
207204               the right colors, but this one does, at least for this PROM */
208         back_color = (((back_data & 0x0c) == 0x0c) && state->m_schaser_background_select) ? 4 : 2;
205         back_color = (((back_data & 0x0c) == 0x0c) && m_schaser_background_select) ? 4 : 2;
209206      }
210207
211208      set_8_pixels(screen.machine(), bitmap, y, x, data, pens, fore_color, back_color);
212209   }
213210
214   clear_extra_columns(screen.machine(), bitmap, pens, state->m_schaser_background_disable ? 0 : 2);
211   clear_extra_columns(screen.machine(), bitmap, pens, m_schaser_background_disable ? 0 : 2);
215212
216213   return 0;
217214}
218215
219216
220SCREEN_UPDATE_RGB32( schasercv )
217UINT32 _8080bw_state::screen_update_schasercv(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
221218{
222   _8080bw_state *state = screen.machine().driver_data<_8080bw_state>();
223219   pen_t pens[NUM_PENS];
224220   offs_t offs;
225221
226222   invadpt2_get_pens(pens);
227223
228   for (offs = 0; offs < state->m_main_ram.bytes(); offs++)
224   for (offs = 0; offs < m_main_ram.bytes(); offs++)
229225   {
230226      UINT8 y = offs >> 5;
231227      UINT8 x = offs << 3;
232228
233      UINT8 data = state->m_main_ram[offs];
234      UINT8 fore_color = state->m_colorram[offs & 0x1f9f] & 0x07;
229      UINT8 data = m_main_ram[offs];
230      UINT8 fore_color = m_colorram[offs & 0x1f9f] & 0x07;
235231
236232      /* blue background */
237233      set_8_pixels(screen.machine(), bitmap, y, x, data, pens, fore_color, 2);
r17967r17968
243239}
244240
245241
246SCREEN_UPDATE_RGB32( rollingc )
242UINT32 _8080bw_state::screen_update_rollingc(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
247243{
248   _8080bw_state *state = screen.machine().driver_data<_8080bw_state>();
249244   pen_t pens[NUM_PENS];
250245   offs_t offs;
251246
252247   invadpt2_get_pens(pens);
253248
254   for (offs = 0; offs < state->m_main_ram.bytes(); offs++)
249   for (offs = 0; offs < m_main_ram.bytes(); offs++)
255250   {
256251      UINT8 y = offs >> 5;
257252      UINT8 x = offs << 3;
258253
259      UINT8 data = state->m_main_ram[offs];
260      UINT8 fore_color = state->m_colorram[offs & 0x1f1f] & 0x07;
254      UINT8 data = m_main_ram[offs];
255      UINT8 fore_color = m_colorram[offs & 0x1f1f] & 0x07;
261256
262257      set_8_pixels(screen.machine(), bitmap, y, x, data, pens, fore_color, 0);
263258   }
r17967r17968
268263}
269264
270265
271SCREEN_UPDATE_RGB32( polaris )
266UINT32 _8080bw_state::screen_update_polaris(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
272267{
273   _8080bw_state *state = screen.machine().driver_data<_8080bw_state>();
274268   pen_t pens[NUM_PENS];
275269   offs_t offs;
276270   UINT8 *color_map_base;
r17967r17968
279273   invadpt2_get_pens(pens);
280274
281275   color_map_base = screen.machine().root_device().memregion("proms")->base();
282   cloud_gfx = state->memregion("user1")->base();
276   cloud_gfx = memregion("user1")->base();
283277
284   for (offs = 0; offs < state->m_main_ram.bytes(); offs++)
278   for (offs = 0; offs < m_main_ram.bytes(); offs++)
285279   {
286280      UINT8 y = offs >> 5;
287281      UINT8 x = offs << 3;
288282
289      UINT8 data = state->m_main_ram[offs];
283      UINT8 data = m_main_ram[offs];
290284
291285      offs_t color_address = (offs >> 8 << 5) | (offs & 0x1f);
292286
r17967r17968
297291           bits 1 and 2 are marked 'not use' (sic) */
298292
299293      UINT8 back_color = (color_map_base[color_address] & 0x01) ? 6 : 2;
300      UINT8 fore_color = ~state->m_colorram[offs & 0x1f9f] & 0x07;
294      UINT8 fore_color = ~m_colorram[offs & 0x1f9f] & 0x07;
301295
302      UINT8 cloud_y = y - state->m_polaris_cloud_pos;
296      UINT8 cloud_y = y - m_polaris_cloud_pos;
303297
304298      if ((color_map_base[color_address] & 0x08) || (cloud_y >= 64))
305299      {
r17967r17968
340334}
341335
342336
343SCREEN_UPDATE_RGB32( lupin3 )
337UINT32 _8080bw_state::screen_update_lupin3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
344338{
345   _8080bw_state *state = screen.machine().driver_data<_8080bw_state>();
346339   pen_t pens[NUM_PENS];
347340   offs_t offs;
348341
349342   invadpt2_get_pens(pens);
350343
351   for (offs = 0; offs < state->m_main_ram.bytes(); offs++)
344   for (offs = 0; offs < m_main_ram.bytes(); offs++)
352345   {
353346      UINT8 y = offs >> 5;
354347      UINT8 x = offs << 3;
355348
356      UINT8 data = state->m_main_ram[offs];
357      UINT8 fore_color = ~state->m_colorram[offs & 0x1f9f] & 0x07;
349      UINT8 data = m_main_ram[offs];
350      UINT8 fore_color = ~m_colorram[offs & 0x1f9f] & 0x07;
358351
359352      set_8_pixels(screen.machine(), bitmap, y, x, data, pens, fore_color, 0);
360353   }
r17967r17968
365358}
366359
367360
368SCREEN_UPDATE_RGB32( cosmo )
361UINT32 _8080bw_state::screen_update_cosmo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
369362{
370   _8080bw_state *state = screen.machine().driver_data<_8080bw_state>();
371363   pen_t pens[NUM_PENS];
372364   offs_t offs;
373365
374366   cosmo_get_pens(pens);
375367
376   for (offs = 0; offs < state->m_main_ram.bytes(); offs++)
368   for (offs = 0; offs < m_main_ram.bytes(); offs++)
377369   {
378370      UINT8 y = offs >> 5;
379371      UINT8 x = offs << 3;
380372
381373      offs_t color_address = (offs >> 8 << 5) | (offs & 0x1f);
382374
383      UINT8 data = state->m_main_ram[offs];
384      UINT8 fore_color = state->m_colorram[color_address] & 0x07;
375      UINT8 data = m_main_ram[offs];
376      UINT8 fore_color = m_colorram[color_address] & 0x07;
385377
386378      set_8_pixels(screen.machine(), bitmap, y, x, data, pens, fore_color, 0);
387379   }
r17967r17968
392384}
393385
394386
395SCREEN_UPDATE_RGB32( indianbt )
387UINT32 _8080bw_state::screen_update_indianbt(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
396388{
397   _8080bw_state *state = screen.machine().driver_data<_8080bw_state>();
398389   pen_t pens[NUM_PENS];
399390   offs_t offs;
400391   UINT8 *color_map_base;
r17967r17968
402393
403394   cosmo_get_pens(pens);
404395
405   prom = state->memregion("proms")->base();
406   color_map_base = state->m_color_map ? &prom[0x0400] : &prom[0x0000];
396   prom = memregion("proms")->base();
397   color_map_base = m_color_map ? &prom[0x0400] : &prom[0x0000];
407398
408   for (offs = 0; offs < state->m_main_ram.bytes(); offs++)
399   for (offs = 0; offs < m_main_ram.bytes(); offs++)
409400   {
410401      UINT8 y = offs >> 5;
411402      UINT8 x = offs << 3;
412403
413404      offs_t color_address = (offs >> 8 << 5) | (offs & 0x1f);
414405
415      UINT8 data = state->m_main_ram[offs];
406      UINT8 data = m_main_ram[offs];
416407      UINT8 fore_color = color_map_base[color_address] & 0x07;
417408
418409      set_8_pixels(screen.machine(), bitmap, y, x, data, pens, fore_color, 0);
r17967r17968
424415}
425416
426417
427SCREEN_UPDATE_RGB32( shuttlei )
418UINT32 _8080bw_state::screen_update_shuttlei(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
428419{
429   _8080bw_state *state = screen.machine().driver_data<_8080bw_state>();
430420   pen_t pens[2] = { RGB_BLACK, RGB_WHITE };
431421   offs_t offs;
432422
433   for (offs = 0; offs < state->m_main_ram.bytes(); offs++)
423   for (offs = 0; offs < m_main_ram.bytes(); offs++)
434424   {
435425      int i;
436426
437427      UINT8 y = offs >> 5;
438428      UINT8 x = offs << 3;
439429
440      UINT8 data = state->m_main_ram[offs];
430      UINT8 data = m_main_ram[offs];
441431
442432      for (i = 0; i < 8; i++)
443433      {
r17967r17968
455445}
456446
457447
458SCREEN_UPDATE_RGB32( sflush )
448UINT32 _8080bw_state::screen_update_sflush(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
459449{
460   _8080bw_state *state = screen.machine().driver_data<_8080bw_state>();
461450   pen_t pens[NUM_PENS];
462451   offs_t offs;
463452
464453   sflush_get_pens(pens);
465454
466   for (offs = 0; offs < state->m_main_ram.bytes(); offs++)
455   for (offs = 0; offs < m_main_ram.bytes(); offs++)
467456   {
468457      UINT8 y = offs >> 5;
469458      UINT8 x = offs << 3;
470459
471      UINT8 data = state->m_main_ram[offs];
472      UINT8 fore_color = state->m_colorram[offs & 0x1f9f] & 0x07;
460      UINT8 data = m_main_ram[offs];
461      UINT8 fore_color = m_colorram[offs & 0x1f9f] & 0x07;
473462
474463      set_8_pixels(screen.machine(), bitmap, y, x, data, pens, fore_color, 0);
475464   }
trunk/src/mame/video/othunder.c
r17967r17968
199199                SCREEN REFRESH
200200**************************************************************/
201201
202SCREEN_UPDATE_IND16( othunder )
202UINT32 othunder_state::screen_update_othunder(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
203203{
204   othunder_state *state = screen.machine().driver_data<othunder_state>();
205204   int layer[3];
206205
207   tc0100scn_tilemap_update(state->m_tc0100scn);
206   tc0100scn_tilemap_update(m_tc0100scn);
208207
209   layer[0] = tc0100scn_bottomlayer(state->m_tc0100scn);
208   layer[0] = tc0100scn_bottomlayer(m_tc0100scn);
210209   layer[1] = layer[0] ^ 1;
211210   layer[2] = 2;
212211
r17967r17968
215214   /* Ensure screen blanked even when bottom layer not drawn due to disable bit */
216215   bitmap.fill(0, cliprect);
217216
218   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
219   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[1], 0, 2);
220   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
217   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
218   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[1], 0, 2);
219   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
221220
222221   /* Sprites can be under/over the layer below text layer */
223222   {
trunk/src/mame/video/ginganin.c
r17967r17968
239239}
240240
241241
242SCREEN_UPDATE_IND16( ginganin )
242UINT32 ginganin_state::screen_update_ginganin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
243243{
244   ginganin_state *state = screen.machine().driver_data<ginganin_state>();
245   int layers_ctrl1 = state->m_layers_ctrl;
244   int layers_ctrl1 = m_layers_ctrl;
246245
247246#ifdef MAME_DEBUG
248247if (screen.machine().input().code_pressed(KEYCODE_Z))
r17967r17968
256255   if (msk != 0) layers_ctrl1 &= msk;
257256
258257#define SETSCROLL \
259   state->m_bg_tilemap->set_scrollx(0, state->m_posx); \
260   state->m_bg_tilemap->set_scrolly(0, state->m_posy); \
261   state->m_fg_tilemap->set_scrollx(0, state->m_posx); \
262   state->m_fg_tilemap->set_scrolly(0, state->m_posy); \
263   popmessage("B>%04X:%04X F>%04X:%04X",state->m_posx%(BG_NX*16),state->m_posy%(BG_NY*16),state->m_posx%(FG_NX*16),state->m_posy%(FG_NY*16));
258   m_bg_tilemap->set_scrollx(0, m_posx); \
259   m_bg_tilemap->set_scrolly(0, m_posy); \
260   m_fg_tilemap->set_scrollx(0, m_posx); \
261   m_fg_tilemap->set_scrolly(0, m_posy); \
262   popmessage("B>%04X:%04X F>%04X:%04X",m_posx%(BG_NX*16),m_posy%(BG_NY*16),m_posx%(FG_NX*16),m_posy%(FG_NY*16));
264263
265   if (screen.machine().input().code_pressed(KEYCODE_L))   { state->m_posx +=8; SETSCROLL }
266   if (screen.machine().input().code_pressed(KEYCODE_J))   { state->m_posx -=8; SETSCROLL }
267   if (screen.machine().input().code_pressed(KEYCODE_K))   { state->m_posy +=8; SETSCROLL }
268   if (screen.machine().input().code_pressed(KEYCODE_I))   { state->m_posy -=8; SETSCROLL }
269   if (screen.machine().input().code_pressed(KEYCODE_H))   { state->m_posx = state->m_posy = 0;   SETSCROLL }
264   if (screen.machine().input().code_pressed(KEYCODE_L))   { m_posx +=8; SETSCROLL }
265   if (screen.machine().input().code_pressed(KEYCODE_J))   { m_posx -=8; SETSCROLL }
266   if (screen.machine().input().code_pressed(KEYCODE_K))   { m_posy +=8; SETSCROLL }
267   if (screen.machine().input().code_pressed(KEYCODE_I))   { m_posy -=8; SETSCROLL }
268   if (screen.machine().input().code_pressed(KEYCODE_H))   { m_posx = m_posy = 0;   SETSCROLL }
270269
271270}
272271#endif
273272
274273
275274   if (layers_ctrl1 & 1)
276      state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
275      m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
277276   else
278277      bitmap.fill(0, cliprect);
279278
280279   if (layers_ctrl1 & 2)
281      state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
280      m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
282281   if (layers_ctrl1 & 8)
283282      draw_sprites(screen.machine(), bitmap, cliprect);
284283   if (layers_ctrl1 & 4)
285      state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
284      m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
286285
287286   return 0;
288287}
trunk/src/mame/video/tail2nos.c
r17967r17968
171171   }
172172}
173173
174SCREEN_UPDATE_IND16( tail2nos )
174UINT32 tail2nos_state::screen_update_tail2nos(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
175175{
176   tail2nos_state *state = screen.machine().driver_data<tail2nos_state>();
177176
178   if (state->m_video_enable)
177   if (m_video_enable)
179178   {
180      k051316_zoom_draw(state->m_k051316, bitmap, cliprect, 0, 0);
179      k051316_zoom_draw(m_k051316, bitmap, cliprect, 0, 0);
181180      draw_sprites(screen.machine(), bitmap, cliprect);
182      state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
181      m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
183182   }
184183   else
185184      bitmap.fill(0, cliprect);
trunk/src/mame/video/mrjong.c
r17967r17968
142142   }
143143}
144144
145SCREEN_UPDATE_IND16( mrjong )
145UINT32 mrjong_state::screen_update_mrjong(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
146146{
147   mrjong_state *state = screen.machine().driver_data<mrjong_state>();
148   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
147   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
149148   draw_sprites(screen.machine(), bitmap, cliprect);
150149   return 0;
151150}
trunk/src/mame/video/quasar.c
r17967r17968
103103   save_pointer(NAME(m_effectram), 0x400);
104104}
105105
106SCREEN_UPDATE_IND16( quasar )
106UINT32 quasar_state::screen_update_quasar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
107107{
108   quasar_state *state = screen.machine().driver_data<quasar_state>();
109108   int offs;
110109
111110   /* for every character in the video RAM */
112111   for (offs = 0; offs < 0x0400; offs++)
113112   {
114113      int ox, oy;
115      UINT8 code = state->m_video_ram[offs];
114      UINT8 code = m_video_ram[offs];
116115      UINT8 x = (offs & 0x1f) << 3;
117116      UINT8 y = (offs >> 5) << 3;
118117
119118      // While we have the current character code, draw the effects layer
120119      // intensity / on and off controlled by latch
121120
122      int forecolor = 0x208 + state->m_effectram[offs] + (256 * (((state->m_effectcontrol >> 4) ^ 3) & 3));
121      int forecolor = 0x208 + m_effectram[offs] + (256 * (((m_effectcontrol >> 4) ^ 3) & 3));
123122
124123      for (ox = 0; ox < 8; ox++)
125124         for (oy = 0; oy < 8; oy++)
r17967r17968
128127      /* Main Screen */
129128      drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[0],
130129            code,
131            state->m_color_ram[offs] & 0x3f,
130            m_color_ram[offs] & 0x3f,
132131            0,0,
133132            x,y,0);
134133
135134
136135      /* background for Collision Detection (it can only hit certain items) */
137      if((state->m_color_ram[offs] & 7) == 0)
136      if((m_color_ram[offs] & 7) == 0)
138137      {
139         drawgfx_opaque(state->m_collision_background,cliprect,screen.machine().gfx[0],
138         drawgfx_opaque(m_collision_background,cliprect,screen.machine().gfx[0],
140139               code,
141140               64,
142141               0,0,
r17967r17968
145144   }
146145
147146    /* update the S2636 chips */
148   bitmap_ind16 &s2636_0_bitmap = s2636_update(state->m_s2636_0, cliprect);
149   bitmap_ind16 &s2636_1_bitmap = s2636_update(state->m_s2636_1, cliprect);
150   bitmap_ind16 &s2636_2_bitmap = s2636_update(state->m_s2636_2, cliprect);
147   bitmap_ind16 &s2636_0_bitmap = s2636_update(m_s2636_0, cliprect);
148   bitmap_ind16 &s2636_1_bitmap = s2636_update(m_s2636_1, cliprect);
149   bitmap_ind16 &s2636_2_bitmap = s2636_update(m_s2636_2, cliprect);
151150
152151    /* Bullet Hardware */
153152    for (offs = 8; offs < 256; offs++ )
154153    {
155        if(state->m_bullet_ram[offs] != 0)
154        if(m_bullet_ram[offs] != 0)
156155        {
157156           int ct;
158157            for (ct = 0; ct < 1; ct++)
159158            {
160               int bx = 255 - 9 - state->m_bullet_ram[offs] - ct;
159               int bx = 255 - 9 - m_bullet_ram[offs] - ct;
161160
162161               /* bullet/object Collision */
163            if (s2636_0_bitmap.pix16(offs, bx) != 0) state->m_collision_register |= 0x04;
164            if (s2636_2_bitmap.pix16(offs, bx) != 0) state->m_collision_register |= 0x08;
162            if (s2636_0_bitmap.pix16(offs, bx) != 0) m_collision_register |= 0x04;
163            if (s2636_2_bitmap.pix16(offs, bx) != 0) m_collision_register |= 0x08;
165164
166165            bitmap.pix16(offs, bx) = 7;
167166            }
r17967r17968
190189               bitmap.pix16(y, x) = S2636_PIXEL_COLOR(pixel);
191190
192191               /* S2636 vs. background collision detection */
193               if (colortable_entry_get_value(screen.machine().colortable, state->m_collision_background.pix16(y, x)))
192               if (colortable_entry_get_value(screen.machine().colortable, m_collision_background.pix16(y, x)))
194193               {
195                  if (S2636_IS_PIXEL_DRAWN(pixel0)) state->m_collision_register |= 0x01;
196                  if (S2636_IS_PIXEL_DRAWN(pixel2)) state->m_collision_register |= 0x02;
194                  if (S2636_IS_PIXEL_DRAWN(pixel0)) m_collision_register |= 0x01;
195                  if (S2636_IS_PIXEL_DRAWN(pixel2)) m_collision_register |= 0x02;
197196               }
198197            }
199198         }
trunk/src/mame/video/slapshot.c
r17967r17968
427427   }
428428}
429429
430SCREEN_VBLANK( taito_no_buffer )
430void slapshot_state::screen_eof_taito_no_buffer(screen_device &screen, bool state)
431431{
432432   // rising edge
433   if (vblank_on)
433   if (state)
434434   {
435      slapshot_state *state = screen.machine().driver_data<slapshot_state>();
436435
437436      taito_update_sprites_active_area(screen.machine());
438437
439      state->m_prepare_sprites = 1;
438      m_prepare_sprites = 1;
440439   }
441440}
442441
r17967r17968
457456a bg layer given priority over some sprites.
458457********************************************************************/
459458
460SCREEN_UPDATE_IND16( slapshot )
459UINT32 slapshot_state::screen_update_slapshot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
461460{
462   slapshot_state *state = screen.machine().driver_data<slapshot_state>();
463461   address_space &space = screen.machine().driver_data()->generic_space();
464462   UINT8 layer[5];
465463   UINT8 tilepri[5];
r17967r17968
469467#ifdef MAME_DEBUG
470468   if (screen.machine().input().code_pressed_once (KEYCODE_Z))
471469   {
472      state->m_dislayer[0] ^= 1;
473      popmessage("bg0: %01x",state->m_dislayer[0]);
470      m_dislayer[0] ^= 1;
471      popmessage("bg0: %01x",m_dislayer[0]);
474472   }
475473
476474   if (screen.machine().input().code_pressed_once (KEYCODE_X))
477475   {
478      state->m_dislayer[1] ^= 1;
479      popmessage("bg1: %01x",state->m_dislayer[1]);
476      m_dislayer[1] ^= 1;
477      popmessage("bg1: %01x",m_dislayer[1]);
480478   }
481479
482480   if (screen.machine().input().code_pressed_once (KEYCODE_C))
483481   {
484      state->m_dislayer[2] ^= 1;
485      popmessage("bg2: %01x",state->m_dislayer[2]);
482      m_dislayer[2] ^= 1;
483      popmessage("bg2: %01x",m_dislayer[2]);
486484   }
487485
488486   if (screen.machine().input().code_pressed_once (KEYCODE_V))
489487   {
490      state->m_dislayer[3] ^= 1;
491      popmessage("bg3: %01x",state->m_dislayer[3]);
488      m_dislayer[3] ^= 1;
489      popmessage("bg3: %01x",m_dislayer[3]);
492490   }
493491
494492   if (screen.machine().input().code_pressed_once (KEYCODE_B))
495493   {
496      state->m_dislayer[4] ^= 1;
497      popmessage("text: %01x",state->m_dislayer[4]);
494      m_dislayer[4] ^= 1;
495      popmessage("text: %01x",m_dislayer[4]);
498496   }
499497#endif
500498
501499   taito_handle_sprite_buffering(screen.machine());
502500
503   tc0480scp_tilemap_update(state->m_tc0480scp);
501   tc0480scp_tilemap_update(m_tc0480scp);
504502
505   priority = tc0480scp_get_bg_priority(state->m_tc0480scp);
503   priority = tc0480scp_get_bg_priority(m_tc0480scp);
506504
507505   layer[0] = (priority & 0xf000) >> 12;   /* tells us which bg layer is bottom */
508506   layer[1] = (priority & 0x0f00) >>  8;
r17967r17968
510508   layer[3] = (priority & 0x000f) >>  0;   /* tells us which is top */
511509   layer[4] = 4;   /* text layer always over bg layers */
512510
513   tilepri[0] = tc0360pri_r(state->m_tc0360pri, space, 4) & 0x0f;     /* bg0 */
514   tilepri[1] = tc0360pri_r(state->m_tc0360pri, space, 4) >> 4;       /* bg1 */
515   tilepri[2] = tc0360pri_r(state->m_tc0360pri, space, 5) & 0x0f;     /* bg2 */
516   tilepri[3] = tc0360pri_r(state->m_tc0360pri, space, 5) >> 4;       /* bg3 */
511   tilepri[0] = tc0360pri_r(m_tc0360pri, space, 4) & 0x0f;     /* bg0 */
512   tilepri[1] = tc0360pri_r(m_tc0360pri, space, 4) >> 4;       /* bg1 */
513   tilepri[2] = tc0360pri_r(m_tc0360pri, space, 5) & 0x0f;     /* bg2 */
514   tilepri[3] = tc0360pri_r(m_tc0360pri, space, 5) >> 4;       /* bg3 */
517515
518516/* we actually assume text layer is on top of everything anyway, but FWIW... */
519   tilepri[layer[4]] = tc0360pri_r(state->m_tc0360pri, space, 7) & 0x0f;    /* fg (text layer) */
517   tilepri[layer[4]] = tc0360pri_r(m_tc0360pri, space, 7) & 0x0f;    /* fg (text layer) */
520518
521   spritepri[0] = tc0360pri_r(state->m_tc0360pri, space, 6) & 0x0f;
522   spritepri[1] = tc0360pri_r(state->m_tc0360pri, space, 6) >> 4;
523   spritepri[2] = tc0360pri_r(state->m_tc0360pri, space, 7) & 0x0f;
524   spritepri[3] = tc0360pri_r(state->m_tc0360pri, space, 7) >> 4;
519   spritepri[0] = tc0360pri_r(m_tc0360pri, space, 6) & 0x0f;
520   spritepri[1] = tc0360pri_r(m_tc0360pri, space, 6) >> 4;
521   spritepri[2] = tc0360pri_r(m_tc0360pri, space, 7) & 0x0f;
522   spritepri[3] = tc0360pri_r(m_tc0360pri, space, 7) >> 4;
525523
526524   screen.machine().priority_bitmap.fill(0, cliprect);
527525   bitmap.fill(0, cliprect);
528526
529527#ifdef MAME_DEBUG
530   if (state->m_dislayer[layer[0]] == 0)
528   if (m_dislayer[layer[0]] == 0)
531529#endif
532      tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[0], 0, 1);
530      tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[0], 0, 1);
533531
534532#ifdef MAME_DEBUG
535   if (state->m_dislayer[layer[1]] == 0)
533   if (m_dislayer[layer[1]] == 0)
536534#endif
537      tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[1], 0, 2);
535      tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[1], 0, 2);
538536
539537#ifdef MAME_DEBUG
540   if (state->m_dislayer[layer[2]] == 0)
538   if (m_dislayer[layer[2]] == 0)
541539#endif
542      tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[2], 0, 4);
540      tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[2], 0, 4);
543541
544542#ifdef MAME_DEBUG
545   if (state->m_dislayer[layer[3]] == 0)
543   if (m_dislayer[layer[3]] == 0)
546544#endif
547      tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[3], 0, 8);
545      tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[3], 0, 8);
548546
549547   {
550548      int primasks[4] = {0,0,0,0};
r17967r17968
568566    */
569567
570568#ifdef MAME_DEBUG
571   if (state->m_dislayer[layer[4]] == 0)
569   if (m_dislayer[layer[4]] == 0)
572570#endif
573   tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[4], 0, 0);
571   tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[4], 0, 0);
574572   return 0;
575573}
576574
trunk/src/mame/video/xyonix.c
r17967r17968
5454   m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(xyonix_state::get_xyonix_tile_info),this), TILEMAP_SCAN_ROWS, 4, 8, 80, 32);
5555}
5656
57SCREEN_UPDATE_IND16(xyonix)
57UINT32 xyonix_state::screen_update_xyonix(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
5858{
59   xyonix_state *state = screen.machine().driver_data<xyonix_state>();
6059
61   state->m_tilemap->draw(bitmap, cliprect, 0, 0);
60   m_tilemap->draw(bitmap, cliprect, 0, 0);
6261   return 0;
6362}
trunk/src/mame/video/victory.c
r17967r17968
10861086 *
10871087 *************************************/
10881088
1089SCREEN_UPDATE_IND16( victory )
1089UINT32 victory_state::screen_update_victory(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
10901090{
1091   victory_state *state = screen.machine().driver_data<victory_state>();
1092   int bgcollmask = (state->m_video_control & 4) ? 4 : 7;
1091   int bgcollmask = (m_video_control & 4) ? 4 : 7;
10931092   int count = 0;
10941093   int x, y;
10951094
r17967r17968
11041103   for (y = 0; y < 256; y++)
11051104   {
11061105      UINT16 *scanline = &bitmap.pix16(y);
1107      UINT8 sy = state->m_scrolly + y;
1108      UINT8 *fg = &state->m_fgbitmap[y * 256];
1109      UINT8 *bg = &state->m_bgbitmap[sy * 256];
1106      UINT8 sy = m_scrolly + y;
1107      UINT8 *fg = &m_fgbitmap[y * 256];
1108      UINT8 *bg = &m_bgbitmap[sy * 256];
11101109
11111110      /* do the blending */
11121111      for (x = 0; x < 256; x++)
11131112      {
11141113         int fpix = *fg++;
1115         int bpix = bg[(x + state->m_scrollx) & 255];
1114         int bpix = bg[(x + m_scrollx) & 255];
11161115         scanline[x] = bpix | (fpix << 3);
11171116         if (fpix && (bpix & bgcollmask) && count++ < 128)
11181117            screen.machine().scheduler().timer_set(screen.time_until_pos(y, x), FUNC(bgcoll_irq_callback), x | (y << 8));
trunk/src/mame/video/1943.c
r17967r17968
249249   }
250250}
251251
252SCREEN_UPDATE_IND16( 1943 )
252UINT32 _1943_state::screen_update_1943(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
253253{
254   _1943_state *state = screen.machine().driver_data<_1943_state>();
255   state->m_bg2_tilemap->set_scrollx(0, state->m_bgscrollx[0] + 256 * state->m_bgscrollx[1]);
256   state->m_bg_tilemap->set_scrollx(0, state->m_scrollx[0] + 256 * state->m_scrollx[1]);
257   state->m_bg_tilemap->set_scrolly(0, state->m_scrolly[0]);
254   m_bg2_tilemap->set_scrollx(0, m_bgscrollx[0] + 256 * m_bgscrollx[1]);
255   m_bg_tilemap->set_scrollx(0, m_scrollx[0] + 256 * m_scrollx[1]);
256   m_bg_tilemap->set_scrolly(0, m_scrolly[0]);
258257
259   if (state->m_bg2_on)
260      state->m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
258   if (m_bg2_on)
259      m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
261260   else
262261      bitmap.fill(get_black_pen(screen.machine()), cliprect);
263262
264   if (state->m_obj_on)
263   if (m_obj_on)
265264      draw_sprites(screen.machine(), bitmap, cliprect, 0);
266265
267   if (state->m_bg1_on)
268      state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
266   if (m_bg1_on)
267      m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
269268
270   if (state->m_obj_on)
269   if (m_obj_on)
271270      draw_sprites(screen.machine(), bitmap, cliprect, 1);
272271
273   if (state->m_char_on)
274      state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
272   if (m_char_on)
273      m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
275274
276275   return 0;
277276}
trunk/src/mame/video/lucky74.c
r17967r17968
235235   m_fg_tilemap->set_transparent_pen(0);
236236}
237237
238SCREEN_UPDATE_IND16( lucky74 )
238UINT32 lucky74_state::screen_update_lucky74(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
239239{
240   lucky74_state *state = screen.machine().driver_data<lucky74_state>();
241   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
242   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
240   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
241   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
243242   return 0;
244243}
245244
trunk/src/mame/video/cninja.c
r17967r17968
124124
125125/******************************************************************************/
126126
127SCREEN_UPDATE_IND16( cninja )
127UINT32 cninja_state::screen_update_cninja(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
128128{
129   cninja_state *state = screen.machine().driver_data<cninja_state>();
130129   address_space &space = screen.machine().driver_data()->generic_space();
131   UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
130   UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff);
132131
133   state->flip_screen_set(BIT(flip, 7));
134   deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
135   deco16ic_pf_update(state->m_deco_tilegen2, state->m_pf3_rowscroll, state->m_pf4_rowscroll);
132   flip_screen_set(BIT(flip, 7));
133   deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
134   deco16ic_pf_update(m_deco_tilegen2, m_pf3_rowscroll, m_pf4_rowscroll);
136135
137136   /* Draw playfields */
138137   screen.machine().priority_bitmap.fill(0, cliprect);
139138   bitmap.fill(512, cliprect);
140   deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1);
141   deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 2);
142   deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 2);
143   deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 4);
144   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram->buffer(), 0x400);
145   deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
139   deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1);
140   deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 2);
141   deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 2);
142   deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 4);
143   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400);
144   deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
146145   return 0;
147146}
148147
149SCREEN_UPDATE_IND16( cninjabl )
148UINT32 cninja_state::screen_update_cninjabl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
150149{
151   cninja_state *state = screen.machine().driver_data<cninja_state>();
152150   address_space &space = screen.machine().driver_data()->generic_space();
153   UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
151   UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff);
154152
155153   /* force layers to be enabled */
156   deco16ic_set_enable(state->m_deco_tilegen2, 0, 1 );
157   deco16ic_set_enable(state->m_deco_tilegen2, 1, 1 );
154   deco16ic_set_enable(m_deco_tilegen2, 0, 1 );
155   deco16ic_set_enable(m_deco_tilegen2, 1, 1 );
158156
159   state->flip_screen_set(BIT(flip, 7));
160   deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
161   deco16ic_pf_update(state->m_deco_tilegen2, state->m_pf3_rowscroll, state->m_pf4_rowscroll);
157   flip_screen_set(BIT(flip, 7));
158   deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
159   deco16ic_pf_update(m_deco_tilegen2, m_pf3_rowscroll, m_pf4_rowscroll);
162160
163161   /* Draw playfields */
164162   screen.machine().priority_bitmap.fill(0, cliprect);
165163   bitmap.fill(512, cliprect);
166   deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1);
167   deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 2);
168   deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 2);
169   deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 4);
164   deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1);
165   deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 2);
166   deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 2);
167   deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 4);
170168   cninjabl_draw_sprites(screen.machine(), bitmap, cliprect);
171   deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
169   deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
172170   return 0;
173171}
174172
175SCREEN_UPDATE_IND16( edrandy )
173UINT32 cninja_state::screen_update_edrandy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
176174{
177   cninja_state *state = screen.machine().driver_data<cninja_state>();
178175   address_space &space = screen.machine().driver_data()->generic_space();
179   UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
176   UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff);
180177
181   state->flip_screen_set(BIT(flip, 7));
182   deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
183   deco16ic_pf_update(state->m_deco_tilegen2, state->m_pf3_rowscroll, state->m_pf4_rowscroll);
178   flip_screen_set(BIT(flip, 7));
179   deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
180   deco16ic_pf_update(m_deco_tilegen2, m_pf3_rowscroll, m_pf4_rowscroll);
184181
185182   screen.machine().priority_bitmap.fill(0, cliprect);
186183   bitmap.fill(0, cliprect);
187   deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1);
188   deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 2);
189   deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 4);
190   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram->buffer(), 0x400);
191   deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
184   deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1);
185   deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 2);
186   deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 4);
187   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400);
188   deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
192189   return 0;
193190}
194191
195SCREEN_UPDATE_IND16( robocop2 )
192UINT32 cninja_state::screen_update_robocop2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
196193{
197   cninja_state *state = screen.machine().driver_data<cninja_state>();
198194   address_space &space = screen.machine().driver_data()->generic_space();
199   UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
200   UINT16 priority = decocomn_priority_r(state->m_decocomn, space, 0, 0xffff);
195   UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff);
196   UINT16 priority = decocomn_priority_r(m_decocomn, space, 0, 0xffff);
201197
202198   /* One of the tilemap chips can switch between 2 tilemaps at 4bpp, or 1 at 8bpp */
203199   if (priority & 4)
204200   {
205      deco16ic_set_tilemap_colour_mask(state->m_deco_tilegen1, 2, 0);
206      deco16ic_set_tilemap_colour_mask(state->m_deco_tilegen1, 3, 0);
207      deco16ic_pf12_set_gfxbank(state->m_deco_tilegen2, 0, 4);
201      deco16ic_set_tilemap_colour_mask(m_deco_tilegen1, 2, 0);
202      deco16ic_set_tilemap_colour_mask(m_deco_tilegen1, 3, 0);
203      deco16ic_pf12_set_gfxbank(m_deco_tilegen2, 0, 4);
208204   }
209205   else
210206   {
211      deco16ic_set_tilemap_colour_mask(state->m_deco_tilegen1, 2, 0xf);
212      deco16ic_set_tilemap_colour_mask(state->m_deco_tilegen1, 3, 0xf);
213      deco16ic_pf12_set_gfxbank(state->m_deco_tilegen2, 0, 2);
207      deco16ic_set_tilemap_colour_mask(m_deco_tilegen1, 2, 0xf);
208      deco16ic_set_tilemap_colour_mask(m_deco_tilegen1, 3, 0xf);
209      deco16ic_pf12_set_gfxbank(m_deco_tilegen2, 0, 2);
214210   }
215211
216212   /* Update playfields */
217   state->flip_screen_set(BIT(flip, 7));
218   deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
219   deco16ic_pf_update(state->m_deco_tilegen2, state->m_pf3_rowscroll, state->m_pf4_rowscroll);
213   flip_screen_set(BIT(flip, 7));
214   deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
215   deco16ic_pf_update(m_deco_tilegen2, m_pf3_rowscroll, m_pf4_rowscroll);
220216
221217   /* Draw playfields */
222218   screen.machine().priority_bitmap.fill(0, cliprect);
223219   bitmap.fill(0x200, cliprect);
224220
225221   if ((priority & 4) == 0)
226      deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1);
222      deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1);
227223
228224   /* Switchable priority */
229225   switch (priority & 0x8)
230226   {
231227      case 8:
232         deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 2);
233         deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 4);
228         deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 2);
229         deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 4);
234230         break;
235231      default:
236232      case 0:
237         deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 2);
238         deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 4);
233         deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 2);
234         deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 4);
239235         break;
240236   }
241237
242   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram->buffer(), 0x400);
243   deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
238   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400);
239   deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
244240   return 0;
245241}
246242
r17967r17968
250246   machine().device<decospr_device>("spritegen2")->alloc_sprite_bitmap();
251247}
252248
253SCREEN_UPDATE_RGB32( mutantf )
249UINT32 cninja_state::screen_update_mutantf(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
254250{
255   cninja_state *state = screen.machine().driver_data<cninja_state>();
256251   address_space &space = screen.machine().driver_data()->generic_space();
257   UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
258   UINT16 priority = decocomn_priority_r(state->m_decocomn, space, 0, 0xffff);
252   UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff);
253   UINT16 priority = decocomn_priority_r(m_decocomn, space, 0, 0xffff);
259254
260255
261   state->flip_screen_set(BIT(flip, 7));
262   deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
263   deco16ic_pf_update(state->m_deco_tilegen2, state->m_pf3_rowscroll, state->m_pf4_rowscroll);
256   flip_screen_set(BIT(flip, 7));
257   deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
258   deco16ic_pf_update(m_deco_tilegen2, m_pf3_rowscroll, m_pf4_rowscroll);
264259
265260   /* Draw playfields */
266261   bitmap.fill(0x400, cliprect); /* Confirmed */
267262
268263   screen.machine().device<decospr_device>("spritegen1")->set_alt_format(true);
269264   screen.machine().device<decospr_device>("spritegen2")->set_alt_format(true);
270   screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, state->m_spriteram2->buffer(), 0x400, true);
271   screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, state->m_spriteram->buffer(), 0x400, true);
265   screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, m_spriteram2->buffer(), 0x400, true);
266   screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400, true);
272267
273268
274269   /* There is no priority prom on this board, but there is a
r17967r17968
282277    The other bits may control alpha blend on the 2nd sprite chip, or
283278    layer order.
284279    */
285   deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
286   deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
287   deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 0);
280   deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
281   deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
282   deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 0);
288283
289284
290285   if (priority & 1)
r17967r17968
297292      screen.machine().device<decospr_device>("spritegen2")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0000, 1024+768, 0x0ff, 0x80);  // fixed alpha of 0x80 for this layer?
298293      screen.machine().device<decospr_device>("spritegen1")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0000, 0x100, 0x1ff);
299294   }
300   deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
295   deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
301296   return 0;
302297}
trunk/src/mame/video/pacland.c
r17967r17968
365365}
366366
367367
368SCREEN_UPDATE_IND16( pacland )
368UINT32 pacland_state::screen_update_pacland(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
369369{
370   pacland_state *state = screen.machine().driver_data<pacland_state>();
371370   int row;
372371
373372   for (row = 5; row < 29; row++)
374      state->m_fg_tilemap->set_scrollx(row, state->flip_screen() ? state->m_scroll0-7 : state->m_scroll0);
375   state->m_bg_tilemap->set_scrollx(0, state->flip_screen() ? state->m_scroll1-4 : state->m_scroll1-3);
373      m_fg_tilemap->set_scrollx(row, flip_screen() ? m_scroll0-7 : m_scroll0);
374   m_bg_tilemap->set_scrollx(0, flip_screen() ? m_scroll1-4 : m_scroll1-3);
376375
377376   /* draw high priority sprite pixels, setting priority bitmap to non-zero
378377       wherever there is a high-priority pixel; note that we draw to the bitmap
r17967r17968
381380   draw_sprites(screen.machine(), bitmap, cliprect, 0);
382381
383382   /* draw background */
384   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
383   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
385384
386385   /* draw low priority fg tiles */
387386   draw_fg(screen.machine(), bitmap, cliprect, 0);
trunk/src/mame/video/psikyo4.c
r17967r17968
127127   }
128128}
129129
130SCREEN_UPDATE_IND16( psikyo4_left )
130UINT32 psikyo4_state::screen_update_psikyo4_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
131131{
132132   bitmap.fill(0x1000, cliprect);
133133   draw_sprites(screen.machine(), bitmap, cliprect, 0x0000);
134134   return 0;
135135}
136136
137SCREEN_UPDATE_IND16( psikyo4_right )
137UINT32 psikyo4_state::screen_update_psikyo4_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
138138{
139139   bitmap.fill(0x1001, cliprect);
140140   draw_sprites(screen.machine(), bitmap, cliprect, 0x2000);
trunk/src/mame/video/rollrace.c
r17967r17968
9595   m_ra_flipx = data & 0x01;
9696}
9797
98SCREEN_UPDATE_IND16( rollrace )
98UINT32 rollrace_state::screen_update_rollrace(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
9999{
100   rollrace_state *state = screen.machine().driver_data<rollrace_state>();
101   UINT8 *spriteram = state->m_spriteram;
100   UINT8 *spriteram = m_spriteram;
102101   int offs;
103102   int sx, sy;
104103   int scroll;
105104   int col;
106   const UINT8 *mem = state->memregion("user1")->base();
105   const UINT8 *mem = memregion("user1")->base();
107106
108107   /* fill in background colour*/
109   bitmap.fill(state->m_ra_bkgpen, cliprect);
108   bitmap.fill(m_ra_bkgpen, cliprect);
110109
111110   /* draw road */
112111   for (offs = 0x3ff; offs >= 0; offs--)
113112      {
114         if(!(state->m_ra_bkgflip))
113         if(!(m_ra_bkgflip))
115114            {
116115            sy = ( 31 - offs / 32 ) ;
117116            }
r17967r17968
120119
121120         sx = ( offs%32 ) ;
122121
123         if(state->m_ra_flipx)
122         if(m_ra_flipx)
124123            sx = 31-sx ;
125124
126         if(state->m_ra_flipy)
125         if(m_ra_flipy)
127126            sy = 31-sy ;
128127
129128         drawgfx_transpen(bitmap,
130129            cliprect,screen.machine().gfx[RA_BGCHAR_BASE],
131            mem[offs + ( state->m_ra_bkgpage * 1024 )]
132            + ((( mem[offs + 0x4000 + ( state->m_ra_bkgpage * 1024 )] & 0xc0 ) >> 6 ) * 256 ) ,
133            state->m_ra_bkgcol,
134            state->m_ra_flipx,(state->m_ra_bkgflip^state->m_ra_flipy),
130            mem[offs + ( m_ra_bkgpage * 1024 )]
131            + ((( mem[offs + 0x4000 + ( m_ra_bkgpage * 1024 )] & 0xc0 ) >> 6 ) * 256 ) ,
132            m_ra_bkgcol,
133            m_ra_flipx,(m_ra_bkgflip^m_ra_flipy),
135134            sx*8,sy*8,0);
136135
137136
r17967r17968
152151      if(sx && sy)
153152      {
154153
155      if(state->m_ra_flipx)
154      if(m_ra_flipx)
156155         sx = 224 - sx;
157      if(state->m_ra_flipy)
156      if(m_ra_flipy)
158157         sy = 224 - sy;
159158
160159      if(spriteram[offs+1] & 0x80)
r17967r17968
163162      bank = (( spriteram[offs+1] & 0x40 ) >> 6 ) ;
164163
165164      if(bank)
166         bank += state->m_ra_spritebank;
165         bank += m_ra_spritebank;
167166
168167      drawgfx_transpen(bitmap, cliprect,screen.machine().gfx[ RA_SP_BASE + bank ],
169168         spriteram[offs+1] & 0x3f ,
170169         spriteram[offs+2] & 0x1f,
171         state->m_ra_flipx,!(s_flipy^state->m_ra_flipy),
170         m_ra_flipx,!(s_flipy^m_ra_flipy),
172171         sx,sy,0);
173172      }
174173   }
r17967r17968
183182      sx =  offs % 32;
184183      sy =  offs / 32;
185184
186      scroll = ( 8 * sy + state->m_colorram[2 * sx] ) % 256;
187      col = state->m_colorram[ sx * 2 + 1 ]&0x1f;
185      scroll = ( 8 * sy + m_colorram[2 * sx] ) % 256;
186      col = m_colorram[ sx * 2 + 1 ]&0x1f;
188187
189      if (!state->m_ra_flipy)
188      if (!m_ra_flipy)
190189      {
191190         scroll = (248 - scroll) % 256;
192191      }
193192
194      if (state->m_ra_flipx) sx = 31 - sx;
193      if (m_ra_flipx) sx = 31 - sx;
195194
196      drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[RA_FGCHAR_BASE + state->m_ra_chrbank]  ,
197         state->m_videoram[ offs ]  ,
195      drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[RA_FGCHAR_BASE + m_ra_chrbank]  ,
196         m_videoram[ offs ]  ,
198197         col,
199         state->m_ra_flipx,state->m_ra_flipy,
198         m_ra_flipx,m_ra_flipy,
200199         8*sx,scroll,0);
201200
202201   }
trunk/src/mame/video/popper.c
r17967r17968
235235   }
236236}
237237
238SCREEN_UPDATE_IND16( popper )
238UINT32 popper_state::screen_update_popper(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
239239{
240   popper_state *state = screen.machine().driver_data<popper_state>();
241   rectangle finalclip = state->m_tilemap_clip;
240   rectangle finalclip = m_tilemap_clip;
242241   finalclip &= cliprect;
243242
244243   //attribram
r17967r17968
247246   //-xxx---- colour for pen 0 (from second prom?)
248247   //----xxxx colour for pens 1,2,3
249248
250   state->m_p123_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
251   state->m_p0_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
252   state->m_ol_p123_tilemap->draw(bitmap, finalclip, TILEMAP_DRAW_LAYER1, 0);
253   state->m_ol_p0_tilemap->draw(bitmap, finalclip, TILEMAP_DRAW_LAYER1, 0);
249   m_p123_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
250   m_p0_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
251   m_ol_p123_tilemap->draw(bitmap, finalclip, TILEMAP_DRAW_LAYER1, 0);
252   m_ol_p0_tilemap->draw(bitmap, finalclip, TILEMAP_DRAW_LAYER1, 0);
254253
255254   draw_sprites(screen.machine(), bitmap, cliprect);
256255
257   state->m_p123_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
258   state->m_p0_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
259   state->m_ol_p123_tilemap->draw(bitmap, finalclip, TILEMAP_DRAW_LAYER0, 0);
260   state->m_ol_p0_tilemap->draw(bitmap, finalclip, TILEMAP_DRAW_LAYER0, 0);
256   m_p123_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
257   m_p0_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
258   m_ol_p123_tilemap->draw(bitmap, finalclip, TILEMAP_DRAW_LAYER0, 0);
259   m_ol_p0_tilemap->draw(bitmap, finalclip, TILEMAP_DRAW_LAYER0, 0);
261260   return 0;
262261}
trunk/src/mame/video/ladyfrog.c
r17967r17968
157157}
158158
159159
160SCREEN_UPDATE_IND16( ladyfrog )
160UINT32 ladyfrog_state::screen_update_ladyfrog(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
161161{
162   ladyfrog_state *state = screen.machine().driver_data<ladyfrog_state>();
163162
164   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
163   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
165164   draw_sprites(screen.machine(), bitmap, cliprect);
166165   return 0;
167166}
trunk/src/mame/video/sidearms.c
r17967r17968
336336   }
337337}
338338
339SCREEN_UPDATE_IND16( sidearms )
339UINT32 sidearms_state::screen_update_sidearms(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
340340{
341   sidearms_state *state = screen.machine().driver_data<sidearms_state>();
342341
343342   sidearms_draw_starfield(screen.machine(), bitmap);
344343
345   state->m_bg_tilemap->set_scrollx(0, state->m_bg_scrollx[0] + (state->m_bg_scrollx[1] << 8 & 0xf00));
346   state->m_bg_tilemap->set_scrolly(0, state->m_bg_scrolly[0] + (state->m_bg_scrolly[1] << 8 & 0xf00));
344   m_bg_tilemap->set_scrollx(0, m_bg_scrollx[0] + (m_bg_scrollx[1] << 8 & 0xf00));
345   m_bg_tilemap->set_scrolly(0, m_bg_scrolly[0] + (m_bg_scrolly[1] << 8 & 0xf00));
347346
348   if (state->m_bgon)
349      state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
347   if (m_bgon)
348      m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
350349
351   if (state->m_objon)
350   if (m_objon)
352351      draw_sprites(screen.machine(), bitmap, cliprect);
353352
354   if (state->m_charon)
355      state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
353   if (m_charon)
354      m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
356355   return 0;
357356}
trunk/src/mame/video/djboy.c
r17967r17968
5252   palette_set_color_rgb(machine(), offset / 2, pal4bit(val >> 8), pal4bit(val >> 4), pal4bit(val >> 0));
5353}
5454
55SCREEN_UPDATE_IND16( djboy )
55UINT32 djboy_state::screen_update_djboy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
5656{
5757   /**
5858     * xx------ msb x
r17967r17968
6060     * ---x---- flipscreen?
6161     * ----xxxx ROM bank
6262     */
63   djboy_state *state = screen.machine().driver_data<djboy_state>();
6463   int scroll;
6564
66   scroll = state->m_scrollx | ((state->m_videoreg & 0xc0) << 2);
67   state->m_background->set_scrollx(0, scroll - 0x391);
65   scroll = m_scrollx | ((m_videoreg & 0xc0) << 2);
66   m_background->set_scrollx(0, scroll - 0x391);
6867
69   scroll = state->m_scrolly | ((state->m_videoreg & 0x20) << 3);
70   state->m_background->set_scrolly(0, scroll);
68   scroll = m_scrolly | ((m_videoreg & 0x20) << 3);
69   m_background->set_scrolly(0, scroll);
7170
72   state->m_background->draw(bitmap, cliprect, 0, 0);
73   pandora_update(state->m_pandora, bitmap, cliprect);
71   m_background->draw(bitmap, cliprect, 0, 0);
72   pandora_update(m_pandora, bitmap, cliprect);
7473
7574   return 0;
7675}
7776
78SCREEN_VBLANK( djboy )
77void djboy_state::screen_eof_djboy(screen_device &screen, bool state)
7978{
8079   // rising edge
81   if (vblank_on)
80   if (state)
8281   {
83      djboy_state *state = screen.machine().driver_data<djboy_state>();
84      pandora_eof(state->m_pandora);
82      pandora_eof(m_pandora);
8583   }
8684}
trunk/src/mame/video/tumblep.c
r17967r17968
1919#include "video/decospr.h"
2020
2121
22SCREEN_UPDATE_IND16( tumblep )
22UINT32 tumblep_state::screen_update_tumblep(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
2323{
24   tumblep_state *state = screen.machine().driver_data<tumblep_state>();
2524   address_space &space = screen.machine().driver_data()->generic_space();
26   UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
25   UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff);
2726
28   state->flip_screen_set(BIT(flip, 7));
29   deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
27   flip_screen_set(BIT(flip, 7));
28   deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
3029
3130   bitmap.fill(256, cliprect); /* not verified */
3231
33   deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
34   deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
32   deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
33   deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
3534
36   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x400);
35   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
3736   return 0;
3837}
trunk/src/mame/video/jack.c
r17967r17968
9393   }
9494}
9595
96SCREEN_UPDATE_IND16( jack )
96UINT32 jack_state::screen_update_jack(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
9797{
98   jack_state *state = screen.machine().driver_data<jack_state>();
99   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
98   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
10099   jack_draw_sprites(screen.machine(), bitmap, cliprect);
101100   return 0;
102101}
r17967r17968
177176   }
178177}
179178
180SCREEN_UPDATE_IND16( joinem )
179UINT32 jack_state::screen_update_joinem(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
181180{
182   jack_state *state = screen.machine().driver_data<jack_state>();
183   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
181   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
184182   joinem_draw_sprites(screen.machine(), bitmap, cliprect);
185183   return 0;
186184}
trunk/src/mame/video/dogfgt.c
r17967r17968
209209}
210210
211211
212SCREEN_UPDATE_IND16( dogfgt )
212UINT32 dogfgt_state::screen_update_dogfgt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
213213{
214   dogfgt_state *state = screen.machine().driver_data<dogfgt_state>();
215214   int offs;
216215
217   if (state->m_lastflip != state->flip_screen() || state->m_lastpixcolor != state->m_pixcolor)
216   if (m_lastflip != flip_screen() || m_lastpixcolor != m_pixcolor)
218217   {
219218      address_space &space = *screen.machine().device("maincpu")->memory().space(AS_PROGRAM);
220219
221      state->m_lastflip = state->flip_screen();
222      state->m_lastpixcolor = state->m_pixcolor;
220      m_lastflip = flip_screen();
221      m_lastpixcolor = m_pixcolor;
223222
224223      for (offs = 0; offs < BITMAPRAM_SIZE; offs++)
225         state->internal_bitmapram_w(space, offs, state->m_bitmapram[offs]);
224         internal_bitmapram_w(space, offs, m_bitmapram[offs]);
226225   }
227226
228227
229   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
228   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
230229
231230   draw_sprites(screen.machine(), bitmap, cliprect);
232231
233   copybitmap_trans(bitmap, state->m_pixbitmap, 0, 0, 0, 0, cliprect, PIXMAP_COLOR_BASE + 8 * state->m_pixcolor);
232   copybitmap_trans(bitmap, m_pixbitmap, 0, 0, 0, 0, cliprect, PIXMAP_COLOR_BASE + 8 * m_pixcolor);
234233   return 0;
235234}
trunk/src/mame/video/dietgo.c
r17967r17968
33#include "includes/dietgo.h"
44#include "video/decospr.h"
55
6SCREEN_UPDATE_IND16( dietgo )
6UINT32 dietgo_state::screen_update_dietgo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
77{
8   dietgo_state *state = screen.machine().driver_data<dietgo_state>();
98   address_space &space = screen.machine().driver_data()->generic_space();
10   UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
9   UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff);
1110
12   state->flip_screen_set(BIT(flip, 7));
13   deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
11   flip_screen_set(BIT(flip, 7));
12   deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
1413
1514   bitmap.fill(256, cliprect); /* not verified */
1615
17   deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
18   deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
16   deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
17   deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
1918
20   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x400);
19   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
2120   return 0;
2221}
trunk/src/mame/video/vigilant.c
r17967r17968
261261   }
262262}
263263
264SCREEN_UPDATE_IND16( kikcubic )
264UINT32 vigilant_state::screen_update_kikcubic(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
265265{
266   vigilant_state *state = screen.machine().driver_data<vigilant_state>();
267   UINT8 *videoram = state->m_videoram;
266   UINT8 *videoram = m_videoram;
268267   int offs;
269268
270269   for (offs = 0; offs < 0x1000; offs += 2)
r17967r17968
286285   return 0;
287286}
288287
289SCREEN_UPDATE_IND16( vigilant )
288UINT32 vigilant_state::screen_update_vigilant(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
290289{
291   vigilant_state *state = screen.machine().driver_data<vigilant_state>();
292290   int i;
293291
294292   /* copy the background palette */
r17967r17968
297295      int r,g,b;
298296
299297
300      r = (state->m_generic_paletteram_8[0x400 + 16 * state->m_rear_color + i] << 3) & 0xFF;
301      g = (state->m_generic_paletteram_8[0x500 + 16 * state->m_rear_color + i] << 3) & 0xFF;
302      b = (state->m_generic_paletteram_8[0x600 + 16 * state->m_rear_color + i] << 3) & 0xFF;
298      r = (m_generic_paletteram_8[0x400 + 16 * m_rear_color + i] << 3) & 0xFF;
299      g = (m_generic_paletteram_8[0x500 + 16 * m_rear_color + i] << 3) & 0xFF;
300      b = (m_generic_paletteram_8[0x600 + 16 * m_rear_color + i] << 3) & 0xFF;
303301
304302      palette_set_color(screen.machine(),512 + i,MAKE_RGB(r,g,b));
305303
306      r = (state->m_generic_paletteram_8[0x400 + 16 * state->m_rear_color + 32 + i] << 3) & 0xFF;
307      g = (state->m_generic_paletteram_8[0x500 + 16 * state->m_rear_color + 32 + i] << 3) & 0xFF;
308      b = (state->m_generic_paletteram_8[0x600 + 16 * state->m_rear_color + 32 + i] << 3) & 0xFF;
304      r = (m_generic_paletteram_8[0x400 + 16 * m_rear_color + 32 + i] << 3) & 0xFF;
305      g = (m_generic_paletteram_8[0x500 + 16 * m_rear_color + 32 + i] << 3) & 0xFF;
306      b = (m_generic_paletteram_8[0x600 + 16 * m_rear_color + 32 + i] << 3) & 0xFF;
309307
310308      palette_set_color(screen.machine(),512 + 16 + i,MAKE_RGB(r,g,b));
311309   }
312310
313   if (state->m_rear_disable)    /* opaque foreground */
311   if (m_rear_disable)    /* opaque foreground */
314312   {
315313      draw_foreground(screen.machine(),bitmap,cliprect,0,1);
316314      draw_sprites(screen.machine(),bitmap,bottomvisiblearea);
trunk/src/mame/video/taitosj.c
r17967r17968
742742}
743743
744744
745SCREEN_UPDATE_IND16( taitosj )
745UINT32 taitosj_state::screen_update_taitosj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
746746{
747747   return video_update_common(screen.machine(), bitmap, cliprect, taitosj_copy_layer);
748748}
749749
750750
751SCREEN_UPDATE_IND16( kikstart )
751UINT32 taitosj_state::screen_update_kikstart(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
752752{
753753   return video_update_common(screen.machine(), bitmap, cliprect, kikstart_copy_layer);
754754}
trunk/src/mame/video/kingobox.c
r17967r17968
240240   }
241241}
242242
243SCREEN_UPDATE_IND16( kingofb )
243UINT32 kingofb_state::screen_update_kingofb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
244244{
245   kingofb_state *state = screen.machine().driver_data<kingofb_state>();
246245
247   state->m_bg_tilemap->set_scrolly(0, -(*state->m_scroll_y));
248   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
246   m_bg_tilemap->set_scrolly(0, -(*m_scroll_y));
247   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
249248   kingofb_draw_sprites(screen.machine(), bitmap, cliprect);
250   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
249   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
251250   return 0;
252251}
253252
r17967r17968
300299   }
301300}
302301
303SCREEN_UPDATE_IND16( ringking )
302UINT32 kingofb_state::screen_update_ringking(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
304303{
305   kingofb_state *state = screen.machine().driver_data<kingofb_state>();
306304
307   state->m_bg_tilemap->set_scrolly(0, -(*state->m_scroll_y));
308   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
305   m_bg_tilemap->set_scrolly(0, -(*m_scroll_y));
306   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
309307   ringking_draw_sprites(screen.machine(), bitmap, cliprect);
310   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
308   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
311309   return 0;
312310}
trunk/src/mame/video/galivan.c
r17967r17968
337337}
338338
339339
340SCREEN_UPDATE_IND16( galivan )
340UINT32 galivan_state::screen_update_galivan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
341341{
342   galivan_state *state = screen.machine().driver_data<galivan_state>();
343   state->m_bg_tilemap->set_scrollx(0, state->m_galivan_scrollx[0] + 256 * (state->m_galivan_scrollx[1] & 0x07));
344   state->m_bg_tilemap->set_scrolly(0, state->m_galivan_scrolly[0] + 256 * (state->m_galivan_scrolly[1] & 0x07));
342   m_bg_tilemap->set_scrollx(0, m_galivan_scrollx[0] + 256 * (m_galivan_scrollx[1] & 0x07));
343   m_bg_tilemap->set_scrolly(0, m_galivan_scrolly[0] + 256 * (m_galivan_scrolly[1] & 0x07));
345344
346   if (state->m_layers & 0x40)
345   if (m_layers & 0x40)
347346      bitmap.fill(0, cliprect);
348347   else
349      state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
348      m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
350349
351   if (state->m_layers & 0x20)
350   if (m_layers & 0x20)
352351   {
353      state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
354      state->m_tx_tilemap->draw(bitmap, cliprect, 1, 0);
352      m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
353      m_tx_tilemap->draw(bitmap, cliprect, 1, 0);
355354      draw_sprites(screen.machine(), bitmap, cliprect);
356355   }
357356   else
358357   {
359358      draw_sprites(screen.machine(), bitmap, cliprect);
360      state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
361      state->m_tx_tilemap->draw(bitmap, cliprect, 1, 0);
359      m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
360      m_tx_tilemap->draw(bitmap, cliprect, 1, 0);
362361   }
363362
364363   return 0;
365364}
366365
367SCREEN_UPDATE_IND16( ninjemak )
366UINT32 galivan_state::screen_update_ninjemak(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
368367{
369   galivan_state *state = screen.machine().driver_data<galivan_state>();
370368
371369   /* (scrollx[1] & 0x40) does something */
372   state->m_bg_tilemap->set_scrollx(0, state->m_scrollx);
373   state->m_bg_tilemap->set_scrolly(0, state->m_scrolly);
370   m_bg_tilemap->set_scrollx(0, m_scrollx);
371   m_bg_tilemap->set_scrolly(0, m_scrolly);
374372
375   if (state->m_ninjemak_dispdisable)
373   if (m_ninjemak_dispdisable)
376374      bitmap.fill(0, cliprect);
377375   else
378      state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
376      m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
379377
380378   draw_sprites(screen.machine(), bitmap, cliprect);
381   state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
379   m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
382380   return 0;
383381}
trunk/src/mame/video/nbmj8991.c
r17967r17968
298298   memset(m_videoram, 0x00, (width * height * sizeof(UINT8)));
299299}
300300
301SCREEN_UPDATE_IND16( nbmj8991_type1 )
301UINT32 nbmj8991_state::screen_update_nbmj8991_type1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
302302{
303   nbmj8991_state *state = screen.machine().driver_data<nbmj8991_state>();
304303   int x, y;
305304
306   if (state->m_screen_refresh)
305   if (m_screen_refresh)
307306   {
308307      int width = screen.machine().primary_screen->width();
309308      int height = screen.machine().primary_screen->height();
310309
311      state->m_screen_refresh = 0;
310      m_screen_refresh = 0;
312311
313312      for (y = 0; y < height; y++)
314313         for (x = 0; x < width; x++)
315314            update_pixel(screen.machine(), x, y);
316315   }
317316
318   if (state->m_dispflag)
317   if (m_dispflag)
319318   {
320319      int scrollx, scrolly;
321320
322      if (state->m_flipscreen)
321      if (m_flipscreen)
323322      {
324         scrollx = (((-state->m_scrollx) + 0x000) & 0x1ff) * 2;
325         scrolly =  ((-state->m_scrolly) - 0x00f) & 0x1ff;
323         scrollx = (((-m_scrollx) + 0x000) & 0x1ff) * 2;
324         scrolly =  ((-m_scrolly) - 0x00f) & 0x1ff;
326325      }
327326      else
328327      {
329         scrollx = (((-state->m_scrollx) - 0x100) & 0x1ff) * 2;
330         scrolly =  (( state->m_scrolly) + 0x0f1) & 0x1ff;
328         scrollx = (((-m_scrollx) - 0x100) & 0x1ff) * 2;
329         scrolly =  (( m_scrolly) + 0x0f1) & 0x1ff;
331330      }
332331
333      copyscrollbitmap(bitmap, state->m_tmpbitmap, 1, &scrollx, 1, &scrolly, cliprect);
332      copyscrollbitmap(bitmap, m_tmpbitmap, 1, &scrollx, 1, &scrolly, cliprect);
334333   }
335334   else
336335      bitmap.fill(0);
r17967r17968
338337   return 0;
339338}
340339
341SCREEN_UPDATE_IND16( nbmj8991_type2 )
340UINT32 nbmj8991_state::screen_update_nbmj8991_type2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
342341{
343   nbmj8991_state *state = screen.machine().driver_data<nbmj8991_state>();
344342   int x, y;
345343
346   if (state->m_screen_refresh)
344   if (m_screen_refresh)
347345   {
348346      int width = screen.width();
349347      int height = screen.height();
350348
351      state->m_screen_refresh = 0;
349      m_screen_refresh = 0;
352350
353351      for (y = 0; y < height; y++)
354352         for (x = 0; x < width; x++)
r17967r17968
359357   {
360358      int scrollx, scrolly;
361359
362      if (state->m_flipscreen)
360      if (m_flipscreen)
363361      {
364         scrollx = (((-state->m_scrollx) + 0x000) & 0x1ff) * 2;
365         scrolly =  ((-state->m_scrolly) - 0x00f) & 0x1ff;
362         scrollx = (((-m_scrollx) + 0x000) & 0x1ff) * 2;
363         scrolly =  ((-m_scrolly) - 0x00f) & 0x1ff;
366364      }
367365      else
368366      {
369         scrollx = (((-state->m_scrollx) - 0x100) & 0x1ff) * 2;
370         scrolly =  (( state->m_scrolly) + 0x0f1) & 0x1ff;
367         scrollx = (((-m_scrollx) - 0x100) & 0x1ff) * 2;
368         scrolly =  (( m_scrolly) + 0x0f1) & 0x1ff;
371369      }
372370
373      copyscrollbitmap(bitmap, state->m_tmpbitmap, 1, &scrollx, 1, &scrolly, cliprect);
371      copyscrollbitmap(bitmap, m_tmpbitmap, 1, &scrollx, 1, &scrolly, cliprect);
374372   }
375373   else
376374      bitmap.fill(0);
trunk/src/mame/video/esripsys.c
r17967r17968
150150   state_save_register_global(machine(), m_12sel);
151151}
152152
153SCREEN_UPDATE_RGB32( esripsys )
153UINT32 esripsys_state::screen_update_esripsys(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
154154{
155   esripsys_state *state = screen.machine().driver_data<esripsys_state>();
156   struct line_buffer_t *line_buffer = state->m_line_buffer;
155   struct line_buffer_t *line_buffer = m_line_buffer;
157156   int x, y;
158157
159   UINT8 *colour_buf = line_buffer[state->m_12sel ? 0 : 1].colour_buf;
160   UINT8 *intensity_buf = line_buffer[state->m_12sel ? 0 : 1].intensity_buf;
161   UINT8 *priority_buf = line_buffer[state->m_12sel ? 0 : 1].priority_buf;
158   UINT8 *colour_buf = line_buffer[m_12sel ? 0 : 1].colour_buf;
159   UINT8 *intensity_buf = line_buffer[m_12sel ? 0 : 1].intensity_buf;
160   UINT8 *priority_buf = line_buffer[m_12sel ? 0 : 1].priority_buf;
162161
163162   for (y = cliprect.min_y; y <= cliprect.max_y; ++y)
164163   {
r17967r17968
167166      for (x = 0; x < 512; ++x)
168167      {
169168         int idx = colour_buf[x];
170         int r = (state->m_pal_ram[idx] & 0xf);
171         int g = (state->m_pal_ram[256 + idx] & 0xf);
172         int b = (state->m_pal_ram[512 + idx] & 0xf);
169         int r = (m_pal_ram[idx] & 0xf);
170         int g = (m_pal_ram[256 + idx] & 0xf);
171         int b = (m_pal_ram[512 + idx] & 0xf);
173172         int i = intensity_buf[x];
174173
175174         *dest++ = MAKE_RGB(r*i, g*i, b*i);
176175
177176         /* Clear the line buffer as we scan out */
178177         colour_buf[x] = 0xff;
179         intensity_buf[x] = state->m_bg_intensity;
178         intensity_buf[x] = m_bg_intensity;
180179         priority_buf[x] = 0;
181180      }
182181   }
trunk/src/mame/video/blockout.c
r17967r17968
106106
107107
108108
109SCREEN_UPDATE_IND16( blockout )
109UINT32 blockout_state::screen_update_blockout(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
110110{
111   blockout_state *state = screen.machine().driver_data<blockout_state>();
112111   int x, y;
113112   pen_t color = 512;
114113
115   copybitmap(bitmap, state->m_tmpbitmap, 0, 0, 0, 0, cliprect);
114   copybitmap(bitmap, m_tmpbitmap, 0, 0, 0, 0, cliprect);
116115
117116   for (y = 0; y < 256; y++)
118117   {
119118      for (x = 0; x < 320; x += 8)
120119      {
121         int d = state->m_frontvideoram[y * 64 + (x / 8)];
120         int d = m_frontvideoram[y * 64 + (x / 8)];
122121
123122         if (d)
124123         {
trunk/src/mame/video/tsamurai.c
r17967r17968
186186   }
187187}
188188
189SCREEN_UPDATE_IND16( tsamurai )
189UINT32 tsamurai_state::screen_update_tsamurai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
190190{
191   tsamurai_state *state = screen.machine().driver_data<tsamurai_state>();
192191   int i;
193192
194193/* Do the column scroll used for the "660" logo on the title screen */
195   state->m_foreground->set_scroll_cols(32);
194   m_foreground->set_scroll_cols(32);
196195   for (i = 0 ; i < 32 ; i++)
197196   {
198      state->m_foreground->set_scrolly(i, state->m_colorram[i*2]);
197      m_foreground->set_scrolly(i, m_colorram[i*2]);
199198   }
200199/* end of column scroll code */
201200
r17967r17968
207206        Note that the background color register isn't well understood
208207        (screenshots would be helpful)
209208    */
210   bitmap.fill(state->m_bgcolor, cliprect);
211   state->m_background->draw(bitmap, cliprect, 0,0);
209   bitmap.fill(m_bgcolor, cliprect);
210   m_background->draw(bitmap, cliprect, 0,0);
212211   draw_sprites(screen.machine(), bitmap,cliprect);
213   state->m_foreground->draw(bitmap, cliprect, 0,0);
212   m_foreground->draw(bitmap, cliprect, 0,0);
214213   return 0;
215214}
216215
r17967r17968
248247   m_foreground = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(tsamurai_state::get_vsgongf_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
249248}
250249
251SCREEN_UPDATE_IND16( vsgongf )
250UINT32 tsamurai_state::screen_update_vsgongf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
252251{
253   tsamurai_state *state = screen.machine().driver_data<tsamurai_state>();
254252   #ifdef MAME_DEBUG
255253   if( screen.machine().input().code_pressed( KEYCODE_Q ) ){
256254      while( screen.machine().input().code_pressed( KEYCODE_Q ) ){
257         state->m_key_count++;
258         state->m_vsgongf_color = state->m_key_count;
259         state->m_foreground ->mark_all_dirty();
255         m_key_count++;
256         m_vsgongf_color = m_key_count;
257         m_foreground ->mark_all_dirty();
260258      }
261259   }
262260   #endif
263261
264   state->m_foreground->draw(bitmap, cliprect, 0,0);
262   m_foreground->draw(bitmap, cliprect, 0,0);
265263   draw_sprites(screen.machine(),bitmap,cliprect);
266264   return 0;
267265}
trunk/src/mame/video/canyon.c
r17967r17968
7070}
7171
7272
73SCREEN_UPDATE_IND16( canyon )
73UINT32 canyon_state::screen_update_canyon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
7474{
75   canyon_state *state = screen.machine().driver_data<canyon_state>();
7675
77   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
76   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
7877
7978   draw_sprites(screen.machine(), bitmap, cliprect);
8079
trunk/src/mame/video/splash.c
r17967r17968
254254
255255***************************************************************************/
256256
257SCREEN_UPDATE_IND16( splash )
257UINT32 splash_state::screen_update_splash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
258258{
259   splash_state *state = screen.machine().driver_data<splash_state>();
260259
261260   /* set scroll registers */
262   state->m_bg_tilemap[0]->set_scrolly(0, state->m_vregs[0]);
263   state->m_bg_tilemap[1]->set_scrolly(0, state->m_vregs[1]);
261   m_bg_tilemap[0]->set_scrolly(0, m_vregs[0]);
262   m_bg_tilemap[1]->set_scrolly(0, m_vregs[1]);
264263
265264   draw_bitmap(screen.machine(), bitmap, cliprect);
266265
267   state->m_bg_tilemap[1]->draw(bitmap, cliprect, 0, 0);
266   m_bg_tilemap[1]->draw(bitmap, cliprect, 0, 0);
268267   splash_draw_sprites(screen.machine(), bitmap, cliprect);
269   state->m_bg_tilemap[0]->draw(bitmap, cliprect, 0, 0);
268   m_bg_tilemap[0]->draw(bitmap, cliprect, 0, 0);
270269   return 0;
271270}
272271
273SCREEN_UPDATE_IND16( funystrp )
272UINT32 splash_state::screen_update_funystrp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
274273{
275   splash_state *state = screen.machine().driver_data<splash_state>();
276274
277275   /* set scroll registers */
278   state->m_bg_tilemap[0]->set_scrolly(0, state->m_vregs[0]);
279   state->m_bg_tilemap[1]->set_scrolly(0, state->m_vregs[1]);
276   m_bg_tilemap[0]->set_scrolly(0, m_vregs[0]);
277   m_bg_tilemap[1]->set_scrolly(0, m_vregs[1]);
280278
281279   draw_bitmap(screen.machine(), bitmap, cliprect);
282280
283   state->m_bg_tilemap[1]->draw(bitmap, cliprect, 0, 0);
281   m_bg_tilemap[1]->draw(bitmap, cliprect, 0, 0);
284282   /*Sprite chip is similar but not the same*/
285283   funystrp_draw_sprites(screen.machine(), bitmap, cliprect);
286   state->m_bg_tilemap[0]->draw(bitmap, cliprect, 0, 0);
284   m_bg_tilemap[0]->draw(bitmap, cliprect, 0, 0);
287285   return 0;
288286}
trunk/src/mame/video/f1gp.c
r17967r17968
236236}
237237
238238
239SCREEN_UPDATE_IND16( f1gp )
239UINT32 f1gp_state::screen_update_f1gp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
240240{
241   f1gp_state *state = screen.machine().driver_data<f1gp_state>();
242241
243242   screen.machine().priority_bitmap.fill(0, cliprect);
244243
245   k053936_zoom_draw(state->m_k053936, bitmap, cliprect, state->m_roz_tilemap, 0, 0, 1);
244   k053936_zoom_draw(m_k053936, bitmap, cliprect, m_roz_tilemap, 0, 0, 1);
246245
247   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 1);
246   m_fg_tilemap->draw(bitmap, cliprect, 0, 1);
248247
249248   /* quick kludge for "continue" screen priority */
250   if (state->m_gfxctrl == 0x00)
249   if (m_gfxctrl == 0x00)
251250   {
252251      f1gp_draw_sprites(screen.machine(), bitmap, cliprect, 0, 0x02);
253252      f1gp_draw_sprites(screen.machine(), bitmap, cliprect, 1, 0x02);
r17967r17968
329328   }
330329}
331330
332SCREEN_UPDATE_IND16( f1gpb )
331UINT32 f1gp_state::screen_update_f1gpb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
333332{
334   f1gp_state *state = screen.machine().driver_data<f1gp_state>();
335333   UINT32 startx, starty;
336334   int incxx, incxy, incyx, incyy;
337335
338   incxy = (INT16)state->m_rozregs[1];
336   incxy = (INT16)m_rozregs[1];
339337   incyx = -incxy;
340   incxx = incyy = (INT16)state->m_rozregs[3];
341   startx = state->m_rozregs[0] + 328;
342   starty = state->m_rozregs[2];
338   incxx = incyy = (INT16)m_rozregs[3];
339   startx = m_rozregs[0] + 328;
340   starty = m_rozregs[2];
343341
344   state->m_fg_tilemap->set_scrolly(0, state->m_fgregs[0] + 8);
342   m_fg_tilemap->set_scrolly(0, m_fgregs[0] + 8);
345343
346344   screen.machine().priority_bitmap.fill(0, cliprect);
347345
348   state->m_roz_tilemap->draw_roz(bitmap, cliprect,
346   m_roz_tilemap->draw_roz(bitmap, cliprect,
349347      startx << 13, starty << 13,
350348      incxx << 5, incxy << 5, incyx << 5, incyy << 5,
351349      1, 0, 0);
352350
353   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 1);
351   m_fg_tilemap->draw(bitmap, cliprect, 0, 1);
354352
355353   f1gpb_draw_sprites(screen.machine(), bitmap, cliprect);
356354
r17967r17968
430428}
431429
432430
433SCREEN_UPDATE_IND16( f1gp2 )
431UINT32 f1gp_state::screen_update_f1gp2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
434432{
435   f1gp_state *state = screen.machine().driver_data<f1gp_state>();
436433
437   if (state->m_gfxctrl & 4)   /* blank screen */
434   if (m_gfxctrl & 4)   /* blank screen */
438435      bitmap.fill(get_black_pen(screen.machine()), cliprect);
439436   else
440437   {
441      switch (state->m_gfxctrl & 3)
438      switch (m_gfxctrl & 3)
442439      {
443440         case 0:
444            k053936_zoom_draw(state->m_k053936, bitmap, cliprect, state->m_roz_tilemap, TILEMAP_DRAW_OPAQUE, 0, 1);
441            k053936_zoom_draw(m_k053936, bitmap, cliprect, m_roz_tilemap, TILEMAP_DRAW_OPAQUE, 0, 1);
445442            f1gp2_draw_sprites(screen.machine(), bitmap, cliprect);
446            state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
443            m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
447444            break;
448445         case 1:
449            k053936_zoom_draw(state->m_k053936, bitmap, cliprect, state->m_roz_tilemap, TILEMAP_DRAW_OPAQUE, 0, 1);
450            state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
446            k053936_zoom_draw(m_k053936, bitmap, cliprect, m_roz_tilemap, TILEMAP_DRAW_OPAQUE, 0, 1);
447            m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
451448            f1gp2_draw_sprites(screen.machine(), bitmap, cliprect);
452449            break;
453450         case 2:
454            state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
455            k053936_zoom_draw(state->m_k053936, bitmap, cliprect, state->m_roz_tilemap, 0, 0, 1);
451            m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
452            k053936_zoom_draw(m_k053936, bitmap, cliprect, m_roz_tilemap, 0, 0, 1);
456453            f1gp2_draw_sprites(screen.machine(), bitmap, cliprect);
457454            break;
458455#ifdef MAME_DEBUG
trunk/src/mame/video/lvcards.c
r17967r17968
110110       8, 8, 32, 32);
111111}
112112
113SCREEN_UPDATE_IND16( lvcards )
113UINT32 lvcards_state::screen_update_lvcards(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
114114{
115   lvcards_state *state = screen.machine().driver_data<lvcards_state>();
116   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
115   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
117116   return 0;
118117}
trunk/src/mame/video/route16.c
r17967r17968
6868 *  a black output.
6969 */
7070
71SCREEN_UPDATE_RGB32( route16 )
71UINT32 route16_state::screen_update_route16(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
7272{
73   route16_state *state = screen.machine().driver_data<route16_state>();
7473   offs_t offs;
7574
7675   UINT8 *color_prom1 = &screen.machine().root_device().memregion("proms")->base()[0x000];
77   UINT8 *color_prom2 = &state->memregion("proms")->base()[0x100];
76   UINT8 *color_prom2 = &memregion("proms")->base()[0x100];
7877
79   for (offs = 0; offs < state->m_videoram1.bytes(); offs++)
78   for (offs = 0; offs < m_videoram1.bytes(); offs++)
8079   {
8180      int i;
8281
8382      UINT8 y = offs >> 6;
8483      UINT8 x = offs << 2;
8584
86      UINT8 data1 = state->m_videoram1[offs];
87      UINT8 data2 = state->m_videoram2[offs];
85      UINT8 data1 = m_videoram1[offs];
86      UINT8 data2 = m_videoram2[offs];
8887
8988      for (i = 0; i < 4; i++)
9089      {
91         UINT8 color1 = color_prom1[((state->m_palette_1 << 6) & 0x80) |
92                               (state->m_palette_1 << 2) |
90         UINT8 color1 = color_prom1[((m_palette_1 << 6) & 0x80) |
91                               (m_palette_1 << 2) |
9392                              ((data1 >> 3) & 0x02) |
9493                              ((data1 >> 0) & 0x01)];
9594
9695         /* bit 7 of the 2nd color is the OR of the 1st color bits 0 and 1 - this is a guess */
97         UINT8 color2 = color_prom2[((state->m_palette_2 << 6) & 0x80) | (((color1 << 6) & 0x80) | ((color1 << 7) & 0x80)) |
98                              (state->m_palette_2 << 2) |
96         UINT8 color2 = color_prom2[((m_palette_2 << 6) & 0x80) | (((color1 << 6) & 0x80) | ((color1 << 7) & 0x80)) |
97                              (m_palette_2 << 2) |
9998                              ((data2 >> 3) & 0x02) |
10099                              ((data2 >> 0) & 0x01)];
101100
r17967r17968
104103
105104         pen_t pen = route16_make_pen(final_color);
106105
107         if (state->m_flipscreen)
106         if (m_flipscreen)
108107            bitmap.pix32(255 - y, 255 - x) = pen;
109108         else
110109            bitmap.pix32(y, x) = pen;
r17967r17968
175174}
176175
177176
178SCREEN_UPDATE_RGB32( stratvox )
177UINT32 route16_state::screen_update_stratvox(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
179178{
180179   return video_update_stratvox_ttmahjng(screen.machine(), bitmap, cliprect, route16_make_pen);
181180}
182181
183182
184SCREEN_UPDATE_RGB32( ttmahjng )
183UINT32 route16_state::screen_update_ttmahjng(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
185184{
186185   return video_update_stratvox_ttmahjng(screen.machine(), bitmap, cliprect, ttmajng_make_pen);
187186}
trunk/src/mame/video/tecmosys.c
r17967r17968
285285}
286286
287287
288SCREEN_UPDATE_RGB32(tecmosys)
288UINT32 tecmosys_state::screen_update_tecmosys(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
289289{
290   tecmosys_state *state = screen.machine().driver_data<tecmosys_state>();
291290
292291   bitmap.fill(screen.machine().pens[0x4000], cliprect);
293292
294293
295   state->m_bg0tilemap->set_scrolly(0, state->m_c80000regs[1]+16);
296   state->m_bg0tilemap->set_scrollx(0, state->m_c80000regs[0]+104);
294   m_bg0tilemap->set_scrolly(0, m_c80000regs[1]+16);
295   m_bg0tilemap->set_scrollx(0, m_c80000regs[0]+104);
297296
298   state->m_bg1tilemap->set_scrolly(0, state->m_a80000regs[1]+17);
299   state->m_bg1tilemap->set_scrollx(0, state->m_a80000regs[0]+106);
297   m_bg1tilemap->set_scrolly(0, m_a80000regs[1]+17);
298   m_bg1tilemap->set_scrollx(0, m_a80000regs[0]+106);
300299
301   state->m_bg2tilemap->set_scrolly(0, state->m_b00000regs[1]+17);
302   state->m_bg2tilemap->set_scrollx(0, state->m_b00000regs[0]+106);
300   m_bg2tilemap->set_scrolly(0, m_b00000regs[1]+17);
301   m_bg2tilemap->set_scrollx(0, m_b00000regs[0]+106);
303302
304   state->m_tmp_tilemap_composebitmap.fill(0, cliprect);
303   m_tmp_tilemap_composebitmap.fill(0, cliprect);
305304
306   state->m_tmp_tilemap_renderbitmap.fill(0, cliprect);
307   state->m_bg0tilemap->draw(state->m_tmp_tilemap_renderbitmap, cliprect, 0,0);
308   tecmosys_tilemap_copy_to_compose(state, 0x0000);
305   m_tmp_tilemap_renderbitmap.fill(0, cliprect);
306   m_bg0tilemap->draw(m_tmp_tilemap_renderbitmap, cliprect, 0,0);
307   tecmosys_tilemap_copy_to_compose(this, 0x0000);
309308
310   state->m_tmp_tilemap_renderbitmap.fill(0, cliprect);
311   state->m_bg1tilemap->draw(state->m_tmp_tilemap_renderbitmap, cliprect, 0,0);
312   tecmosys_tilemap_copy_to_compose(state, 0x4000);
309   m_tmp_tilemap_renderbitmap.fill(0, cliprect);
310   m_bg1tilemap->draw(m_tmp_tilemap_renderbitmap, cliprect, 0,0);
311   tecmosys_tilemap_copy_to_compose(this, 0x4000);
313312
314   state->m_tmp_tilemap_renderbitmap.fill(0, cliprect);
315   state->m_bg2tilemap->draw(state->m_tmp_tilemap_renderbitmap, cliprect, 0,0);
316   tecmosys_tilemap_copy_to_compose(state, 0x8000);
313   m_tmp_tilemap_renderbitmap.fill(0, cliprect);
314   m_bg2tilemap->draw(m_tmp_tilemap_renderbitmap, cliprect, 0,0);
315   tecmosys_tilemap_copy_to_compose(this, 0x8000);
317316
318   state->m_tmp_tilemap_renderbitmap.fill(0, cliprect);
319   state->m_txt_tilemap->draw(state->m_tmp_tilemap_renderbitmap, cliprect, 0,0);
320   tecmosys_tilemap_copy_to_compose(state, 0xc000);
317   m_tmp_tilemap_renderbitmap.fill(0, cliprect);
318   m_txt_tilemap->draw(m_tmp_tilemap_renderbitmap, cliprect, 0,0);
319   tecmosys_tilemap_copy_to_compose(this, 0xc000);
321320
322321
323322   tecmosys_do_final_mix(screen.machine(), bitmap);
324323
325324   // prepare sprites for NEXT frame - causes 1 frame palette errors, but prevents sprite lag in tkdensho, which is correct?
326   tecmosys_render_sprites_to_bitmap(screen.machine(), bitmap, state->m_880000regs[0x0], state->m_880000regs[0x1]);
325   tecmosys_render_sprites_to_bitmap(screen.machine(), bitmap, m_880000regs[0x0], m_880000regs[0x1]);
327326
328327   return 0;
329328}
trunk/src/mame/video/snk6502.c
r17967r17968
192192}
193193
194194
195SCREEN_UPDATE_IND16( snk6502 )
195UINT32 snk6502_state::screen_update_snk6502(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
196196{
197   snk6502_state *state = screen.machine().driver_data<snk6502_state>();
198197
199   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
200   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
198   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
199   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
201200   return 0;
202201}
203202
trunk/src/mame/video/kan_panb.c
r17967r17968
44#include "kan_panb.h"
55#include "includes/snowbros.h"
66
7SCREEN_UPDATE_IND16( honeydol )
7UINT32 snowbros_state::screen_update_honeydol(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
88{
9   snowbros_state *state = screen.machine().driver_data<snowbros_state>();
10   UINT16 *spriteram16 = state->m_bootleg_spriteram16;
9   UINT16 *spriteram16 = m_bootleg_spriteram16;
1110   int sx=0, sy=0, x=0, y=0, offs;
1211   /* sprites clip on left / right edges when scrolling, but it seems correct,
1312       no extra sprite attribute bits are set during this time, the sprite co-ordinates
r17967r17968
3332      x = dx;
3433      y = dy;
3534
36      if (state->flip_screen())
35      if (flip_screen())
3736      {
3837         sx = 240 - x;
3938         sy = 240 - y;
r17967r17968
6463      x = dx;
6564      y = dy;
6665
67      if (state->flip_screen())
66      if (flip_screen())
6867      {
6968         sx = 240 - x;
7069         sy = 240 - y;
r17967r17968
9089}
9190
9291
93SCREEN_UPDATE_IND16( twinadv )
92UINT32 snowbros_state::screen_update_twinadv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
9493{
95   snowbros_state *state = screen.machine().driver_data<snowbros_state>();
96   UINT16 *spriteram16 = state->m_bootleg_spriteram16;
94   UINT16 *spriteram16 = m_bootleg_spriteram16;
9795   int sx=0, sy=0, x=0, y=0, offs;
9896   /* sprites clip on left / right edges when scrolling, but it seems correct,
9997       no extra sprite attribute bits are set during this time, the sprite co-ordinates
r17967r17968
120118      x = dx;
121119      y = dy;
122120
123      if (state->flip_screen())
121      if (flip_screen())
124122      {
125123         sx = 240 - x;
126124         sy = 240 - y;
r17967r17968
146144}
147145
148146
149SCREEN_UPDATE_IND16( wintbob )
147UINT32 snowbros_state::screen_update_wintbob(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
150148{
151   snowbros_state *state = screen.machine().driver_data<snowbros_state>();
152   UINT16 *spriteram16 = state->m_bootleg_spriteram16;
149   UINT16 *spriteram16 = m_bootleg_spriteram16;
153150   int offs;
154151
155152   bitmap.fill(get_black_pen(screen.machine()), cliprect);
156153
157   for (offs = 0;offs < state->m_bootleg_spriteram16.bytes()/2;offs += 8)
154   for (offs = 0;offs < m_bootleg_spriteram16.bytes()/2;offs += 8)
158155   {
159156      int xpos  = spriteram16[offs] & 0xff;
160157      int ypos  = spriteram16[offs+4] & 0xff;
r17967r17968
169166
170167      if (wrapr == 8) xpos -= 256;
171168
172      if (state->flip_screen())
169      if (flip_screen())
173170      {
174171         xpos = 240 - xpos;
175172         ypos = 240 - ypos;
r17967r17968
190187}
191188
192189
193SCREEN_UPDATE_IND16( snowbro3 )
190UINT32 snowbros_state::screen_update_snowbro3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
194191{
195   snowbros_state *state = screen.machine().driver_data<snowbros_state>();
196   UINT16 *spriteram16 = state->m_bootleg_spriteram16;
192   UINT16 *spriteram16 = m_bootleg_spriteram16;
197193   int sx=0, sy=0, x=0, y=0, offs;
198194
199195   /*
r17967r17968
222218
223219   bitmap.fill(get_black_pen(screen.machine()), cliprect);
224220
225   for (offs = 0;offs < state->m_bootleg_spriteram16.bytes()/2;offs += 8)
221   for (offs = 0;offs < m_bootleg_spriteram16.bytes()/2;offs += 8)
226222   {
227223      gfx_element *gfx = screen.machine().gfx[0];
228224      int dx = spriteram16[offs+4] & 0xff;
r17967r17968
249245      if (x > 511) x &= 0x1ff;
250246      if (y > 511) y &= 0x1ff;
251247
252      if (state->flip_screen())
248      if (flip_screen())
253249      {
254250         sx = 240 - x;
255251         sy = 240 - y;
trunk/src/mame/video/polyplay.c
r17967r17968
4545}
4646
4747
48SCREEN_UPDATE_IND16( polyplay )
48UINT32 polyplay_state::screen_update_polyplay(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
4949{
50   polyplay_state *state = screen.machine().driver_data<polyplay_state>();
51   UINT8 *videoram = state->m_videoram;
50   UINT8 *videoram = m_videoram;
5251   offs_t offs;
5352
5453
trunk/src/mame/video/exzisus.c
r17967r17968
6868  Screen refresh
6969***************************************************************************/
7070
71SCREEN_UPDATE_IND16( exzisus )
71UINT32 exzisus_state::screen_update_exzisus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
7272{
73   exzisus_state *state = screen.machine().driver_data<exzisus_state>();
7473   int offs;
7574   int sx, sy, xc, yc;
7675   int gfx_num, gfx_attr, gfx_offs;
r17967r17968
8079
8180   /* ---------- 1st TC0010VCU ---------- */
8281   sx = 0;
83   for (offs = 0 ; offs < state->m_objectram0.bytes() ; offs += 4)
82   for (offs = 0 ; offs < m_objectram0.bytes() ; offs += 4)
8483    {
8584      int height;
8685
8786      /* Skip empty sprites. */
88      if ( !(*(UINT32 *)(&state->m_objectram0[offs])) )
87      if ( !(*(UINT32 *)(&m_objectram0[offs])) )
8988      {
9089         continue;
9190      }
9291
93      gfx_num = state->m_objectram0[offs + 1];
94      gfx_attr = state->m_objectram0[offs + 3];
92      gfx_num = m_objectram0[offs + 1];
93      gfx_attr = m_objectram0[offs + 3];
9594
9695      if ((gfx_num & 0x80) == 0)   /* 16x16 sprites */
9796      {
9897         gfx_offs = ((gfx_num & 0x7f) << 3);
9998         height = 2;
10099
101         sx = state->m_objectram0[offs + 2];
100         sx = m_objectram0[offs + 2];
102101         sx |= (gfx_attr & 0x40) << 2;
103102      }
104103      else   /* tilemaps (each sprite is a 16x256 column) */
r17967r17968
112111         }
113112         else
114113         {
115            sx = state->m_objectram0[offs + 2];
114            sx = m_objectram0[offs + 2];
116115            sx |= (gfx_attr & 0x40) << 2;
117116         }
118117      }
119118
120      sy = 256 - (height << 3) - (state->m_objectram0[offs]);
119      sy = 256 - (height << 3) - (m_objectram0[offs]);
121120
122121      for (xc = 0 ; xc < 2 ; xc++)
123122      {
r17967r17968
126125         {
127126            int code, color, x, y;
128127
129            code  = (state->m_videoram0[goffs + 1] << 8) | state->m_videoram0[goffs];
130            color = (state->m_videoram0[goffs + 1] >> 6) | (gfx_attr & 0x0f);
128            code  = (m_videoram0[goffs + 1] << 8) | m_videoram0[goffs];
129            color = (m_videoram0[goffs + 1] >> 6) | (gfx_attr & 0x0f);
131130            x = (sx + (xc << 3)) & 0xff;
132131            y = (sy + (yc << 3)) & 0xff;
133132
134            if (state->flip_screen())
133            if (flip_screen())
135134            {
136135               x = 248 - x;
137136               y = 248 - y;
r17967r17968
140139            drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0],
141140                  code & 0x3fff,
142141                  color,
143                  state->flip_screen(), state->flip_screen(),
142                  flip_screen(), flip_screen(),
144143                  x, y, 15);
145144            goffs += 2;
146145         }
r17967r17968
150149
151150   /* ---------- 2nd TC0010VCU ---------- */
152151   sx = 0;
153   for (offs = 0 ; offs < state->m_objectram1.bytes() ; offs += 4)
152   for (offs = 0 ; offs < m_objectram1.bytes() ; offs += 4)
154153    {
155154      int height;
156155
157156      /* Skip empty sprites. */
158      if ( !(*(UINT32 *)(&state->m_objectram1[offs])) )
157      if ( !(*(UINT32 *)(&m_objectram1[offs])) )
159158      {
160159         continue;
161160      }
162161
163      gfx_num = state->m_objectram1[offs + 1];
164      gfx_attr = state->m_objectram1[offs + 3];
162      gfx_num = m_objectram1[offs + 1];
163      gfx_attr = m_objectram1[offs + 3];
165164
166165      if ((gfx_num & 0x80) == 0)   /* 16x16 sprites */
167166      {
168167         gfx_offs = ((gfx_num & 0x7f) << 3);
169168         height = 2;
170169
171         sx = state->m_objectram1[offs + 2];
170         sx = m_objectram1[offs + 2];
172171         sx |= (gfx_attr & 0x40) << 2;
173172      }
174173      else   /* tilemaps (each sprite is a 16x256 column) */
r17967r17968
182181         }
183182         else
184183         {
185            sx = state->m_objectram1[offs + 2];
184            sx = m_objectram1[offs + 2];
186185            sx |= (gfx_attr & 0x40) << 2;
187186         }
188187      }
189      sy = 256 - (height << 3) - (state->m_objectram1[offs]);
188      sy = 256 - (height << 3) - (m_objectram1[offs]);
190189
191190      for (xc = 0 ; xc < 2 ; xc++)
192191      {
r17967r17968
195194         {
196195            int code, color, x, y;
197196
198            code  = (state->m_videoram1[goffs + 1] << 8) | state->m_videoram1[goffs];
199            color = (state->m_videoram1[goffs + 1] >> 6) | (gfx_attr & 0x0f);
197            code  = (m_videoram1[goffs + 1] << 8) | m_videoram1[goffs];
198            color = (m_videoram1[goffs + 1] >> 6) | (gfx_attr & 0x0f);
200199            x = (sx + (xc << 3)) & 0xff;
201200            y = (sy + (yc << 3)) & 0xff;
202201
203            if (state->flip_screen())
202            if (flip_screen())
204203            {
205204               x = 248 - x;
206205               y = 248 - y;
r17967r17968
209208            drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1],
210209                  code & 0x3fff,
211210                  color,
212                  state->flip_screen(), state->flip_screen(),
211                  flip_screen(), flip_screen(),
213212                  x, y, 15);
214213            goffs += 2;
215214         }
trunk/src/mame/video/exidy440.c
r17967r17968
423423 *
424424 *************************************/
425425
426static SCREEN_UPDATE_IND16( exidy440 )
426UINT32 exidy440_state::screen_update_exidy440(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
427427{
428428   /* redraw the screen */
429429   update_screen(screen, bitmap, cliprect, 0, TRUE);
r17967r17968
455455}
456456
457457
458static SCREEN_UPDATE_IND16( topsecex )
458UINT32 exidy440_state::screen_update_topsecex(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
459459{
460   exidy440_state *state = screen.machine().driver_data<exidy440_state>();
461460   /* redraw the screen */
462   update_screen(screen, bitmap, cliprect, *state->m_topsecex_yscroll, FALSE);
461   update_screen(screen, bitmap, cliprect, *m_topsecex_yscroll, FALSE);
463462
464463   return 0;
465464}
r17967r17968
479478
480479   MCFG_SCREEN_ADD("screen", RASTER)
481480   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
482   MCFG_SCREEN_UPDATE_STATIC(exidy440)
481   MCFG_SCREEN_UPDATE_DRIVER(exidy440_state, screen_update_exidy440)
483482MACHINE_CONFIG_END
484483
485484
r17967r17968
489488
490489   MCFG_SCREEN_MODIFY("screen")
491490   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, TOPSECEX_VBSTART)
492   MCFG_SCREEN_UPDATE_STATIC(topsecex)
491   MCFG_SCREEN_UPDATE_DRIVER(exidy440_state, screen_update_topsecex)
493492MACHINE_CONFIG_END
trunk/src/mame/video/tx1.c
r17967r17968
11191119   m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(CURSOR_YPOS, CURSOR_XPOS));
11201120}
11211121
1122SCREEN_VBLANK( tx1 )
1122void tx1_state::screen_eof_tx1(screen_device &screen, bool state)
11231123{
11241124   // rising edge
1125   if (vblank_on)
1125   if (state)
11261126   {
1127      tx1_state *state = screen.machine().driver_data<tx1_state>();
11281127
11291128      /* /VSYNC: Update TZ113 */
1130      state->m_vregs.slin_val += state->m_vregs.slin_inc;
1129      m_vregs.slin_val += m_vregs.slin_inc;
11311130   }
11321131}
11331132
r17967r17968
11821181   }
11831182}
11841183
1185SCREEN_UPDATE_IND16( tx1_left )
1184UINT32 tx1_state::screen_update_tx1_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
11861185{
1187   tx1_state *state = screen.machine().driver_data<tx1_state>();
11881186
1189   memset(state->m_obj_bmp, 0, 768*240);
1187   memset(m_obj_bmp, 0, 768*240);
11901188
1191   tx1_draw_char(screen.machine(), state->m_chr_bmp);
1192   tx1_draw_road(screen.machine(), state->m_rod_bmp);
1193   tx1_draw_objects(screen.machine(), state->m_obj_bmp);
1189   tx1_draw_char(screen.machine(), m_chr_bmp);
1190   tx1_draw_road(screen.machine(), m_rod_bmp);
1191   tx1_draw_objects(screen.machine(), m_obj_bmp);
11941192
11951193   tx1_combine_layers(screen.machine(), bitmap, 0);
11961194   return 0;
11971195}
11981196
1199SCREEN_UPDATE_IND16( tx1_middle )
1197UINT32 tx1_state::screen_update_tx1_middle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
12001198{
12011199   tx1_combine_layers(screen.machine(), bitmap, 1);
12021200   return 0;
12031201}
12041202
1205SCREEN_UPDATE_IND16( tx1_right )
1203UINT32 tx1_state::screen_update_tx1_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
12061204{
12071205   tx1_combine_layers(screen.machine(), bitmap, 2);
12081206   return 0;
r17967r17968
30233021   m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(CURSOR_YPOS, CURSOR_XPOS));
30243022}
30253023
3026SCREEN_VBLANK( buggyboy )
3024void tx1_state::screen_eof_buggyboy(screen_device &screen, bool state)
30273025{
30283026   // rising edge
3029   if (vblank_on)
3027   if (state)
30303028   {
3031      tx1_state *state = screen.machine().driver_data<tx1_state>();
30323029
30333030      /* /VSYNC: Update TZ113 @ 219 */
3034      state->m_vregs.slin_val += state->m_vregs.slin_inc;
3031      m_vregs.slin_val += m_vregs.slin_inc;
30353032
30363033      /* /VSYNC: Clear wave LFSR */
3037      state->m_vregs.wave_lfsr = 0;
3034      m_vregs.wave_lfsr = 0;
30383035   }
30393036}
30403037
30413038
3042SCREEN_UPDATE_IND16( buggyboy_left )
3039UINT32 tx1_state::screen_update_buggyboy_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
30433040{
3044   tx1_state *state = screen.machine().driver_data<tx1_state>();
30453041
3046   memset(state->m_obj_bmp, 0, 768*240);
3047   memset(state->m_rod_bmp, 0, 768*240);
3042   memset(m_obj_bmp, 0, 768*240);
3043   memset(m_rod_bmp, 0, 768*240);
30483044
3049   buggyboy_draw_char(screen.machine(), state->m_chr_bmp, 1);
3050   buggyboy_draw_road(screen.machine(), state->m_rod_bmp);
3051   buggyboy_draw_objs(screen.machine(), state->m_obj_bmp, 1);
3045   buggyboy_draw_char(screen.machine(), m_chr_bmp, 1);
3046   buggyboy_draw_road(screen.machine(), m_rod_bmp);
3047   buggyboy_draw_objs(screen.machine(), m_obj_bmp, 1);
30523048
30533049   bb_combine_layers(screen.machine(), bitmap, 0);
30543050   return 0;
30553051}
30563052
3057SCREEN_UPDATE_IND16( buggyboy_middle )
3053UINT32 tx1_state::screen_update_buggyboy_middle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
30583054{
30593055   bb_combine_layers(screen.machine(), bitmap, 1);
30603056   return 0;
30613057}
30623058
3063SCREEN_UPDATE_IND16( buggyboy_right )
3059UINT32 tx1_state::screen_update_buggyboy_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
30643060{
30653061   bb_combine_layers(screen.machine(), bitmap, 2);
30663062   return 0;
30673063}
30683064
3069SCREEN_UPDATE_IND16( buggybjr )
3065UINT32 tx1_state::screen_update_buggybjr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
30703066{
3071   tx1_state *state = screen.machine().driver_data<tx1_state>();
3072   memset(state->m_obj_bmp, 0, 256*240);
3067   memset(m_obj_bmp, 0, 256*240);
30733068
3074   buggyboy_draw_char(screen.machine(), state->m_chr_bmp, 0);
3075   buggybjr_draw_road(screen.machine(), state->m_rod_bmp, 0);
3076   buggyboy_draw_objs(screen.machine(), state->m_obj_bmp, 0);
3069   buggyboy_draw_char(screen.machine(), m_chr_bmp, 0);
3070   buggybjr_draw_road(screen.machine(), m_rod_bmp, 0);
3071   buggyboy_draw_objs(screen.machine(), m_obj_bmp, 0);
30773072
30783073   bb_combine_layers(screen.machine(), bitmap, -1);
30793074   return 0;
trunk/src/mame/video/dassault.c
r17967r17968
7474}
7575
7676/* are the priorities 100% correct? they're the same as they were before conversion to DECO52 sprite device, but if (for example) you walk to the side of the crates in the first part of the game you appear over them... */
77SCREEN_UPDATE_RGB32( dassault )
77UINT32 dassault_state::screen_update_dassault(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
7878{
79   dassault_state *state = screen.machine().driver_data<dassault_state>();
8079   address_space &space = screen.machine().driver_data()->generic_space();
81   UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
82   UINT16 priority = decocomn_priority_r(state->m_decocomn, space, 0, 0xffff);
80   UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff);
81   UINT16 priority = decocomn_priority_r(m_decocomn, space, 0, 0xffff);
8382
84   screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, state->m_spriteram2->buffer(), 0x400, false);
85   screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, state->m_spriteram->buffer(), 0x400, false);
83   screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, m_spriteram2->buffer(), 0x400, false);
84   screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400, false);
8685   bitmap_ind16* sprite_bitmap1 = &screen.machine().device<decospr_device>("spritegen1")->get_sprite_temp_bitmap();
8786   bitmap_ind16* sprite_bitmap2 = &screen.machine().device<decospr_device>("spritegen2")->get_sprite_temp_bitmap();
8887
8988   /* Update tilemaps */
90   state->flip_screen_set(BIT(flip, 7));
91   deco16ic_pf_update(state->m_deco_tilegen1, 0, state->m_pf2_rowscroll);
92   deco16ic_pf_update(state->m_deco_tilegen2, 0, state->m_pf4_rowscroll);
89   flip_screen_set(BIT(flip, 7));
90   deco16ic_pf_update(m_deco_tilegen1, 0, m_pf2_rowscroll);
91   deco16ic_pf_update(m_deco_tilegen2, 0, m_pf4_rowscroll);
9392
9493   /* Draw playfields/update priority bitmap */
9594   screen.machine().priority_bitmap.fill(0, cliprect);
9695   bitmap.fill(screen.machine().pens[3072], cliprect);
97   deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
96   deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
9897
9998   /* The middle playfields can be swapped priority-wise */
10099   if ((priority & 3) == 0)
101100   {
102101      mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap1, cliprect,  0x0600, 0x0600,  0x400, 0xff); // 1
103      deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 2); // 2
102      deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 2); // 2
104103      mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap1, cliprect,  0x0400, 0x0600,  0x400, 0xff); // 8
105      deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 16); // 16
104      deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 16); // 16
106105      mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap1, cliprect,  0x0200, 0x0600,  0x400, 0xff); // 32
107106      mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap2, cliprect,  0x0000, 0x0000,  0x800, 0x80); // 64?
108107      mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap1, cliprect,  0x0000, 0x0600,  0x400, 0xff); // 128
r17967r17968
111110   else if ((priority & 3) == 1)
112111   {
113112      mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap1, cliprect,  0x0600, 0x0600,  0x400, 0xff); // 1
114      deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 2); // 2
113      deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 2); // 2
115114      mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap1, cliprect,  0x0400, 0x0600,  0x400, 0xff); // 8
116115      mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap2, cliprect,  0x0000, 0x0000,  0x800, 0x80); // 16?
117116      mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap1, cliprect,  0x0200, 0x0600,  0x400, 0xff); // 32
118      deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 64); // 64
117      deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 64); // 64
119118      mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap1, cliprect,  0x0000, 0x0600,  0x400, 0xff); // 128
120119   }
121120   else if ((priority & 3) == 3)
122121   {
123122      mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap1, cliprect,  0x0600, 0x0600,  0x400, 0xff); // 1
124      deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 2); // 2
123      deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 2); // 2
125124      mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap1, cliprect,  0x0400, 0x0600,  0x400, 0xff); // 8
126      deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 16); // 16
125      deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 16); // 16
127126      mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap1, cliprect,  0x0200, 0x0600,  0x400, 0xff); // 32
128127      mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap2, cliprect,  0x0000, 0x0000,  0x800, 0x80); // 64?
129128      mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap1, cliprect,  0x0000, 0x0600,  0x400, 0xff); // 128
r17967r17968
133132      /* Unused */
134133   }
135134
136   deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
135   deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
137136   return 0;
138137}
trunk/src/mame/video/ssrj.c
r17967r17968
273273         palette_set_color_rgb(machine(), i*8+j, fakecols[i][j][0], fakecols[i][j][1], fakecols[i][j][2]);
274274}
275275
276SCREEN_UPDATE_IND16( ssrj )
276UINT32 ssrj_state::screen_update_ssrj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
277277{
278   ssrj_state *state = screen.machine().driver_data<ssrj_state>();
279278
280   state->m_tilemap1->set_scrollx(0, 0xff-state->m_scrollram[2] );
281   state->m_tilemap1->set_scrolly(0, state->m_scrollram[0] );
282   state->m_tilemap1->draw(bitmap, cliprect, 0, 0);
279   m_tilemap1->set_scrollx(0, 0xff-m_scrollram[2] );
280   m_tilemap1->set_scrolly(0, m_scrollram[0] );
281   m_tilemap1->draw(bitmap, cliprect, 0, 0);
283282   draw_objects(screen.machine(), bitmap, cliprect);
284   state->m_tilemap2->draw(bitmap, cliprect, 0, 0);
283   m_tilemap2->draw(bitmap, cliprect, 0, 0);
285284
286   if (state->m_scrollram[0x101] == 0xb) state->m_tilemap4->draw(bitmap, cliprect, 0, 0);/* hack to display 4th tilemap */
285   if (m_scrollram[0x101] == 0xb) m_tilemap4->draw(bitmap, cliprect, 0, 0);/* hack to display 4th tilemap */
287286   return 0;
288287}
289288
290SCREEN_VBLANK( ssrj )
289void ssrj_state::screen_eof_ssrj(screen_device &screen, bool state)
291290{
292291   // rising edge
293   if (vblank_on)
292   if (state)
294293   {
295      ssrj_state *state = screen.machine().driver_data<ssrj_state>();
296294
297      memcpy(state->m_buffer_spriteram, state->m_scrollram, 0x800);
295      memcpy(m_buffer_spriteram, m_scrollram, 0x800);
298296   }
299297}
trunk/src/mame/video/pingpong.c
r17967r17968
143143   }
144144}
145145
146SCREEN_UPDATE_IND16( pingpong )
146UINT32 pingpong_state::screen_update_pingpong(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
147147{
148   pingpong_state *state = screen.machine().driver_data<pingpong_state>();
149   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
148   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
150149   draw_sprites(screen.machine(), bitmap, cliprect);
151150   return 0;
152151}
trunk/src/mame/video/blstroid.c
r17967r17968
142142 *
143143 *************************************/
144144
145SCREEN_UPDATE_IND16( blstroid )
145UINT32 blstroid_state::screen_update_blstroid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
146146{
147   blstroid_state *state = screen.machine().driver_data<blstroid_state>();
148147   atarimo_rect_list rectlist;
149148   bitmap_ind16 *mobitmap;
150149   int x, y, r;
151150
152151   /* draw the playfield */
153   state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
152   m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
154153
155154   /* draw and merge the MO */
156155   mobitmap = atarimo_render(0, cliprect, &rectlist);
r17967r17968
167166                        priority address = HPPPMMMM
168167                    */
169168               int priaddr = ((pf[x] & 8) << 4) | (pf[x] & 0x70) | ((mo[x] & 0xf0) >> 4);
170               if (state->m_priorityram[priaddr] & 1)
169               if (m_priorityram[priaddr] & 1)
171170                  pf[x] = mo[x];
172171
173172               /* erase behind ourselves */
trunk/src/mame/video/gotya.c
r17967r17968
173173   draw_status_row(machine, bitmap, cliprect, 34, 15);
174174}
175175
176SCREEN_UPDATE_IND16( gotya )
176UINT32 gotya_state::screen_update_gotya(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
177177{
178   gotya_state *state = screen.machine().driver_data<gotya_state>();
179   state->m_bg_tilemap->set_scrollx(0, -(*state->m_scroll + (state->m_scroll_bit_8 * 256)) - 2 * 8);
180   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
178   m_bg_tilemap->set_scrollx(0, -(*m_scroll + (m_scroll_bit_8 * 256)) - 2 * 8);
179   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
181180   draw_sprites(screen.machine(), bitmap, cliprect);
182181   draw_status(screen.machine(), bitmap, cliprect);
183182   return 0;
trunk/src/mame/video/tatsumi.c
r17967r17968
10621062#endif
10631063/**********************************************************************/
10641064
1065SCREEN_UPDATE_RGB32( apache3 )
1065UINT32 tatsumi_state::screen_update_apache3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
10661066{
1067   tatsumi_state *state = screen.machine().driver_data<tatsumi_state>();
10681067   update_cluts(screen.machine(), 1024, 0, 2048);
10691068
1070   state->m_tx_layer->set_scrollx(0,24);
1069   m_tx_layer->set_scrollx(0,24);
10711070
10721071   bitmap.fill(screen.machine().pens[0], cliprect);
1073   draw_sky(screen.machine(), bitmap, cliprect, 256, state->m_apache3_rotate_ctrl[1]);
1072   draw_sky(screen.machine(), bitmap, cliprect, 256, m_apache3_rotate_ctrl[1]);
10741073//  draw_ground(screen.machine(), bitmap, cliprect);
1075   draw_sprites(screen.machine(), bitmap,cliprect,0, (state->m_sprite_control_ram[0x20]&0x1000) ? 0x1000 : 0);
1076   state->m_tx_layer->draw(bitmap, cliprect, 0,0);
1074   draw_sprites(screen.machine(), bitmap,cliprect,0, (m_sprite_control_ram[0x20]&0x1000) ? 0x1000 : 0);
1075   m_tx_layer->draw(bitmap, cliprect, 0,0);
10771076   return 0;
10781077}
10791078
1080SCREEN_UPDATE_RGB32( roundup5 )
1079UINT32 tatsumi_state::screen_update_roundup5(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
10811080{
1082   tatsumi_state *state = screen.machine().driver_data<tatsumi_state>();
1083//  UINT16 bg_x_scroll=state->m_roundup5_unknown1[0];
1084//  UINT16 bg_y_scroll=state->m_roundup5_unknown2[0];
1081//  UINT16 bg_x_scroll=m_roundup5_unknown1[0];
1082//  UINT16 bg_y_scroll=m_roundup5_unknown2[0];
10851083
10861084   update_cluts(screen.machine(), 1024, 512, 4096);
10871085
1088   state->m_tx_layer->set_scrollx(0,24);
1089   state->m_tx_layer->set_scrolly(0,0); //(((state->m_roundupt_crt_reg[0xe]<<8)|state->m_roundupt_crt_reg[0xf])>>5) + 96);
1086   m_tx_layer->set_scrollx(0,24);
1087   m_tx_layer->set_scrolly(0,0); //(((m_roundupt_crt_reg[0xe]<<8)|m_roundupt_crt_reg[0xf])>>5) + 96);
10901088
10911089   bitmap.fill(screen.machine().pens[384], cliprect); // todo
10921090   screen.machine().priority_bitmap.fill(0, cliprect);
10931091
1094   draw_sprites(screen.machine(), screen.machine().priority_bitmap,cliprect,1,(state->m_sprite_control_ram[0xe0]&0x1000) ? 0x1000 : 0); // Alpha pass only
1092   draw_sprites(screen.machine(), screen.machine().priority_bitmap,cliprect,1,(m_sprite_control_ram[0xe0]&0x1000) ? 0x1000 : 0); // Alpha pass only
10951093   draw_road(screen.machine(), bitmap,cliprect,screen.machine().priority_bitmap);
1096   draw_sprites(screen.machine(), bitmap,cliprect,0,(state->m_sprite_control_ram[0xe0]&0x1000) ? 0x1000 : 0); // Full pass
1097   state->m_tx_layer->draw(bitmap, cliprect, 0,0);
1094   draw_sprites(screen.machine(), bitmap,cliprect,0,(m_sprite_control_ram[0xe0]&0x1000) ? 0x1000 : 0); // Full pass
1095   m_tx_layer->draw(bitmap, cliprect, 0,0);
10981096   return 0;
10991097}
11001098
1101SCREEN_UPDATE_RGB32( cyclwarr )
1099UINT32 tatsumi_state::screen_update_cyclwarr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
11021100{
1103   tatsumi_state *state = screen.machine().driver_data<tatsumi_state>();
1104   state->m_bigfight_bank=state->m_bigfight_a40000[0];
1105   if (state->m_bigfight_bank!=state->m_bigfight_last_bank)
1101   m_bigfight_bank=m_bigfight_a40000[0];
1102   if (m_bigfight_bank!=m_bigfight_last_bank)
11061103   {
1107      state->m_layer0->mark_all_dirty();
1108      state->m_layer1->mark_all_dirty();
1109      state->m_layer2->mark_all_dirty();
1110      state->m_layer3->mark_all_dirty();
1111      state->m_bigfight_last_bank=state->m_bigfight_bank;
1104      m_layer0->mark_all_dirty();
1105      m_layer1->mark_all_dirty();
1106      m_layer2->mark_all_dirty();
1107      m_layer3->mark_all_dirty();
1108      m_bigfight_last_bank=m_bigfight_bank;
11121109   }
11131110
11141111   bitmap.fill(screen.machine().pens[0], cliprect);
11151112
1116   draw_bg(screen.machine(), bitmap, state->m_layer3, &state->m_cyclwarr_videoram1[0x000], &state->m_cyclwarr_videoram1[0x100], state->m_cyclwarr_videoram1, state->m_bigfight_a40000[0], 8, -0x80, 512, 4096);
1117   draw_bg(screen.machine(), bitmap, state->m_layer2, &state->m_cyclwarr_videoram1[0x200], &state->m_cyclwarr_videoram1[0x300], state->m_cyclwarr_videoram1, state->m_bigfight_a40000[0], 8, -0x80, 512, 4096);
1118   draw_bg(screen.machine(), bitmap, state->m_layer1, &state->m_cyclwarr_videoram0[0x000], &state->m_cyclwarr_videoram0[0x100], state->m_cyclwarr_videoram0, state->m_bigfight_a40000[0], 8, -0x40, 1024, 2048);
1113   draw_bg(screen.machine(), bitmap, m_layer3, &m_cyclwarr_videoram1[0x000], &m_cyclwarr_videoram1[0x100], m_cyclwarr_videoram1, m_bigfight_a40000[0], 8, -0x80, 512, 4096);
1114   draw_bg(screen.machine(), bitmap, m_layer2, &m_cyclwarr_videoram1[0x200], &m_cyclwarr_videoram1[0x300], m_cyclwarr_videoram1, m_bigfight_a40000[0], 8, -0x80, 512, 4096);
1115   draw_bg(screen.machine(), bitmap, m_layer1, &m_cyclwarr_videoram0[0x000], &m_cyclwarr_videoram0[0x100], m_cyclwarr_videoram0, m_bigfight_a40000[0], 8, -0x40, 1024, 2048);
11191116   update_cluts(screen.machine(), 8192, 4096, 8192);
1120   draw_sprites(screen.machine(), bitmap,cliprect,0,(state->m_sprite_control_ram[0xe0]&0x1000) ? 0x1000 : 0);
1121   draw_bg(screen.machine(), bitmap, state->m_layer0, &state->m_cyclwarr_videoram0[0x200], &state->m_cyclwarr_videoram0[0x300], state->m_cyclwarr_videoram0, state->m_bigfight_a40000[0], 0x10, -0x80, 512, 4096);
1117   draw_sprites(screen.machine(), bitmap,cliprect,0,(m_sprite_control_ram[0xe0]&0x1000) ? 0x1000 : 0);
1118   draw_bg(screen.machine(), bitmap, m_layer0, &m_cyclwarr_videoram0[0x200], &m_cyclwarr_videoram0[0x300], m_cyclwarr_videoram0, m_bigfight_a40000[0], 0x10, -0x80, 512, 4096);
11221119
11231120   return 0;
11241121}
11251122
1126SCREEN_UPDATE_RGB32( bigfight )
1123UINT32 tatsumi_state::screen_update_bigfight(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
11271124{
1128   tatsumi_state *state = screen.machine().driver_data<tatsumi_state>();
1129   state->m_bigfight_bank=state->m_bigfight_a40000[0];
1130   if (state->m_bigfight_bank!=state->m_bigfight_last_bank)
1125   m_bigfight_bank=m_bigfight_a40000[0];
1126   if (m_bigfight_bank!=m_bigfight_last_bank)
11311127   {
1132      state->m_layer0->mark_all_dirty();
1133      state->m_layer1->mark_all_dirty();
1134      state->m_layer2->mark_all_dirty();
1135      state->m_layer3->mark_all_dirty();
1136      state->m_bigfight_last_bank=state->m_bigfight_bank;
1128      m_layer0->mark_all_dirty();
1129      m_layer1->mark_all_dirty();
1130      m_layer2->mark_all_dirty();
1131      m_layer3->mark_all_dirty();
1132      m_bigfight_last_bank=m_bigfight_bank;
11371133   }
11381134
11391135   bitmap.fill(screen.machine().pens[0], cliprect);
1140   draw_bg(screen.machine(), bitmap, state->m_layer3, &state->m_cyclwarr_videoram1[0x000], &state->m_cyclwarr_videoram1[0x100], state->m_cyclwarr_videoram1, state->m_bigfight_a40000[0], 8, -0x40, 1024, 2048);
1141   draw_bg(screen.machine(), bitmap, state->m_layer2, &state->m_cyclwarr_videoram1[0x200], &state->m_cyclwarr_videoram1[0x300], state->m_cyclwarr_videoram1, state->m_bigfight_a40000[0], 8, -0x40, 1024, 2048);
1142   draw_bg(screen.machine(), bitmap, state->m_layer1, &state->m_cyclwarr_videoram0[0x000], &state->m_cyclwarr_videoram0[0x100], state->m_cyclwarr_videoram0, state->m_bigfight_a40000[0], 8, -0x40, 1024, 2048);
1136   draw_bg(screen.machine(), bitmap, m_layer3, &m_cyclwarr_videoram1[0x000], &m_cyclwarr_videoram1[0x100], m_cyclwarr_videoram1, m_bigfight_a40000[0], 8, -0x40, 1024, 2048);
1137   draw_bg(screen.machine(), bitmap, m_layer2, &m_cyclwarr_videoram1[0x200], &m_cyclwarr_videoram1[0x300], m_cyclwarr_videoram1, m_bigfight_a40000[0], 8, -0x40, 1024, 2048);
1138   draw_bg(screen.machine(), bitmap, m_layer1, &m_cyclwarr_videoram0[0x000], &m_cyclwarr_videoram0[0x100], m_cyclwarr_videoram0, m_bigfight_a40000[0], 8, -0x40, 1024, 2048);
11431139   update_cluts(screen.machine(), 8192, 4096, 8192);
1144   draw_sprites(screen.machine(), bitmap,cliprect,0,(state->m_sprite_control_ram[0xe0]&0x1000) ? 0x1000 : 0);
1145   draw_bg(screen.machine(), bitmap, state->m_layer0, &state->m_cyclwarr_videoram0[0x200], &state->m_cyclwarr_videoram0[0x300], state->m_cyclwarr_videoram0, state->m_bigfight_a40000[0], 0x10, -0x40, 1024, 2048);
1140   draw_sprites(screen.machine(), bitmap,cliprect,0,(m_sprite_control_ram[0xe0]&0x1000) ? 0x1000 : 0);
1141   draw_bg(screen.machine(), bitmap, m_layer0, &m_cyclwarr_videoram0[0x200], &m_cyclwarr_videoram0[0x300], m_cyclwarr_videoram0, m_bigfight_a40000[0], 0x10, -0x40, 1024, 2048);
11461142
11471143   return 0;
11481144}
trunk/src/mame/video/supbtime.c
r17967r17968
2121
2222/******************************************************************************/
2323
24SCREEN_UPDATE_IND16(supbtime)
24UINT32 supbtime_state::screen_update_supbtime(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
2525{
26   supbtime_state *state = screen.machine().driver_data<supbtime_state>();
2726   address_space &space = screen.machine().driver_data()->generic_space();
28   UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
27   UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff);
2928
30   state->flip_screen_set(BIT(flip, 7));
31   deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
29   flip_screen_set(BIT(flip, 7));
30   deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
3231
3332   bitmap.fill(768, cliprect);
3433
35   deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
36   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x400);
37   deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
34   deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
35   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
36   deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
3837   return 0;
3938}
trunk/src/mame/video/blmbycar.c
r17967r17968
213213
214214***************************************************************************/
215215
216SCREEN_UPDATE_IND16( blmbycar )
216UINT32 blmbycar_state::screen_update_blmbycar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
217217{
218   blmbycar_state *state = screen.machine().driver_data<blmbycar_state>();
219218   int i, layers_ctrl = -1;
220219
221   state->m_tilemap_0->set_scrolly(0, state->m_scroll_0[0]);
222   state->m_tilemap_0->set_scrollx(0, state->m_scroll_0[1]);
220   m_tilemap_0->set_scrolly(0, m_scroll_0[0]);
221   m_tilemap_0->set_scrollx(0, m_scroll_0[1]);
223222
224   state->m_tilemap_1->set_scrolly(0, state->m_scroll_1[0] + 1);
225   state->m_tilemap_1->set_scrollx(0, state->m_scroll_1[1] + 5);
223   m_tilemap_1->set_scrolly(0, m_scroll_1[0] + 1);
224   m_tilemap_1->set_scrollx(0, m_scroll_1[1] + 5);
226225
227226#ifdef MAME_DEBUG
228227if (screen.machine().input().code_pressed(KEYCODE_Z))
r17967r17968
241240
242241   if (layers_ctrl & 1)
243242      for (i = 0; i <= 1; i++)
244         state->m_tilemap_0->draw(bitmap, cliprect, i, i);
243         m_tilemap_0->draw(bitmap, cliprect, i, i);
245244   else
246245      bitmap.fill(0, cliprect);
247246
248247   if (layers_ctrl & 2)
249248      for (i = 0; i <= 1; i++)
250         state->m_tilemap_1->draw(bitmap, cliprect, i, i);
249         m_tilemap_1->draw(bitmap, cliprect, i, i);
251250
252251   if (layers_ctrl & 8)
253252      draw_sprites(screen.machine(), bitmap, cliprect);
trunk/src/mame/video/retofinv.c
r17967r17968
220220
221221
222222
223SCREEN_UPDATE_IND16( retofinv )
223UINT32 retofinv_state::screen_update_retofinv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
224224{
225   retofinv_state *state = screen.machine().driver_data<retofinv_state>();
226   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
225   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
227226   draw_sprites(screen.machine(), bitmap);
228   state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
227   m_fg_tilemap->draw(bitmap, cliprect, 0,0);
229228   return 0;
230229}
trunk/src/mame/video/gbusters.c
r17967r17968
4646}
4747
4848
49SCREEN_UPDATE_IND16( gbusters )
49UINT32 gbusters_state::screen_update_gbusters(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
5050{
51   gbusters_state *state = screen.machine().driver_data<gbusters_state>();
5251
53   k052109_tilemap_update(state->m_k052109);
52   k052109_tilemap_update(m_k052109);
5453
5554   /* sprite priority 3 = disable */
56   if (state->m_priority)
55   if (m_priority)
5756   {
58//      k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 1, 1);  /* are these used? */
59      k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE, 0);
60      k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 2, 2);
61      k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 1, 0, 0);
62      k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 0, 0);
63      k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 0, 0, 0);
57//      k051960_sprites_draw(m_k051960, bitmap, cliprect, 1, 1);  /* are these used? */
58      k052109_tilemap_draw(m_k052109, bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE, 0);
59      k051960_sprites_draw(m_k051960, bitmap, cliprect, 2, 2);
60      k052109_tilemap_draw(m_k052109, bitmap, cliprect, 1, 0, 0);
61      k051960_sprites_draw(m_k051960, bitmap, cliprect, 0, 0);
62      k052109_tilemap_draw(m_k052109, bitmap, cliprect, 0, 0, 0);
6463   }
6564   else
6665   {
67//      k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 1, 1);  /* are these used? */
68      k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 0);
69      k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 2, 2);
70      k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 2, 0, 0);
71      k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 0, 0);
72      k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 0, 0, 0);
66//      k051960_sprites_draw(m_k051960, bitmap, cliprect, 1, 1);  /* are these used? */
67      k052109_tilemap_draw(m_k052109, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 0);
68      k051960_sprites_draw(m_k051960, bitmap, cliprect, 2, 2);
69      k052109_tilemap_draw(m_k052109, bitmap, cliprect, 2, 0, 0);
70      k051960_sprites_draw(m_k051960, bitmap, cliprect, 0, 0);
71      k052109_tilemap_draw(m_k052109, bitmap, cliprect, 0, 0, 0);
7372   }
7473   return 0;
7574}
trunk/src/mame/video/meadows.c
r17967r17968
101101 *
102102 *************************************/
103103
104SCREEN_UPDATE_IND16( meadows )
104UINT32 meadows_state::screen_update_meadows(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
105105{
106   meadows_state *state = screen.machine().driver_data<meadows_state>();
107106   /* draw the background */
108   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
107   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
109108
110109   /* draw the sprites */
111110   if (screen.machine().gfx[1])
trunk/src/mame/video/bogeyman.c
r17967r17968
145145   }
146146}
147147
148SCREEN_UPDATE_IND16( bogeyman )
148UINT32 bogeyman_state::screen_update_bogeyman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
149149{
150   bogeyman_state *state = screen.machine().driver_data<bogeyman_state>();
151150
152   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
151   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
153152   draw_sprites(screen.machine(), bitmap, cliprect);
154   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
153   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
155154   return 0;
156155}
trunk/src/mame/video/srmp2.c
r17967r17968
5252}
5353
5454
55SCREEN_UPDATE_IND16( srmp2 )
55UINT32 srmp2_state::screen_update_srmp2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
5656{
57   srmp2_state *state = screen.machine().driver_data<srmp2_state>();
5857   bitmap.fill(0x1ff, cliprect);
5958
6059   screen.machine().device<seta001_device>("spritegen")->set_transpen(15);
6160
62   screen.machine().device<seta001_device>("spritegen")->set_colorbase((state->m_color_bank)?0x20:0x00);
61   screen.machine().device<seta001_device>("spritegen")->set_colorbase((m_color_bank)?0x20:0x00);
6362
6463   screen.machine().device<seta001_device>("spritegen")->set_fg_xoffsets( 0x10, 0x10 );
6564   screen.machine().device<seta001_device>("spritegen")->set_fg_yoffsets( 0x05, 0x07 );
r17967r17968
7069   return 0;
7170}
7271
73SCREEN_UPDATE_IND16( srmp3 )
72UINT32 srmp2_state::screen_update_srmp3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
7473{
75   //srmp2_state *state = screen.machine().driver_data<srmp2_state>();
7674   bitmap.fill(0x1f0, cliprect);
7775
7876   screen.machine().device<seta001_device>("spritegen")->set_fg_xoffsets( 0x10, 0x10 );
r17967r17968
8684   return 0;
8785}
8886
89SCREEN_UPDATE_IND16( mjyuugi )
87UINT32 srmp2_state::screen_update_mjyuugi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
9088{
91   //srmp2_state *state = screen.machine().driver_data<srmp2_state>();
9289   bitmap.fill(0x1f0, cliprect);
9390
9491   screen.machine().device<seta001_device>("spritegen")->set_fg_xoffsets( 0x10, 0x10 );
trunk/src/mame/video/m72.c
r17967r17968
515515   }
516516}
517517
518SCREEN_UPDATE_IND16( m72 )
518UINT32 m72_state::screen_update_m72(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
519519{
520   m72_state *state = screen.machine().driver_data<m72_state>();
521   if (state->m_video_off)
520   if (m_video_off)
522521   {
523522      bitmap.fill(get_black_pen(screen.machine()), cliprect);
524523      return 0;
525524   }
526525
527   state->m_fg_tilemap->set_scrollx(0,state->m_scrollx1);
528   state->m_fg_tilemap->set_scrolly(0,state->m_scrolly1);
526   m_fg_tilemap->set_scrollx(0,m_scrollx1);
527   m_fg_tilemap->set_scrolly(0,m_scrolly1);
529528
530   state->m_bg_tilemap->set_scrollx(0,state->m_scrollx2);
531   state->m_bg_tilemap->set_scrolly(0,state->m_scrolly2);
529   m_bg_tilemap->set_scrollx(0,m_scrollx2);
530   m_bg_tilemap->set_scrolly(0,m_scrolly2);
532531
533   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1,0);
534   state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1,0);
532   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1,0);
533   m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1,0);
535534   m72_draw_sprites(screen.machine(), bitmap,cliprect);
536   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0,0);
537   state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0,0);
535   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0,0);
536   m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0,0);
538537   return 0;
539538}
540539
541SCREEN_UPDATE_IND16( majtitle )
540UINT32 m72_state::screen_update_majtitle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
542541{
543   m72_state *state = screen.machine().driver_data<m72_state>();
544542   int i;
545543
546544
547   if (state->m_video_off)
545   if (m_video_off)
548546   {
549547      bitmap.fill(get_black_pen(screen.machine()), cliprect);
550548      return 0;
551549   }
552550
553   state->m_fg_tilemap->set_scrollx(0,state->m_scrollx1);
554   state->m_fg_tilemap->set_scrolly(0,state->m_scrolly1);
551   m_fg_tilemap->set_scrollx(0,m_scrollx1);
552   m_fg_tilemap->set_scrolly(0,m_scrolly1);
555553
556   if (state->m_majtitle_rowscroll)
554   if (m_majtitle_rowscroll)
557555   {
558      state->m_bg_tilemap->set_scroll_rows(512);
556      m_bg_tilemap->set_scroll_rows(512);
559557      for (i = 0;i < 512;i++)
560         state->m_bg_tilemap->set_scrollx((i+state->m_scrolly2)&0x1ff,
561               256 + state->m_majtitle_rowscrollram[i]);
558         m_bg_tilemap->set_scrollx((i+m_scrolly2)&0x1ff,
559               256 + m_majtitle_rowscrollram[i]);
562560   }
563561   else
564562   {
565      state->m_bg_tilemap->set_scroll_rows(1);
566      state->m_bg_tilemap->set_scrollx(0,256 + state->m_scrollx2);
563      m_bg_tilemap->set_scroll_rows(1);
564      m_bg_tilemap->set_scrollx(0,256 + m_scrollx2);
567565   }
568   state->m_bg_tilemap->set_scrolly(0,state->m_scrolly2);
566   m_bg_tilemap->set_scrolly(0,m_scrolly2);
569567
570   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1,0);
571   state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1,0);
568   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1,0);
569   m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1,0);
572570   majtitle_draw_sprites(screen.machine(), bitmap,cliprect);
573571   m72_draw_sprites(screen.machine(), bitmap,cliprect);
574   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0,0);
575   state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0,0);
572   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0,0);
573   m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0,0);
576574   return 0;
577575}
trunk/src/mame/video/pokechmp.c
r17967r17968
7272   }
7373}
7474
75SCREEN_UPDATE_IND16( pokechmp )
75UINT32 pokechmp_state::screen_update_pokechmp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
7676{
77   pokechmp_state *state = screen.machine().driver_data<pokechmp_state>();
78   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
77   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
7978   draw_sprites(screen.machine(), bitmap, cliprect);
8079   return 0;
8180}
trunk/src/mame/video/ohmygod.c
r17967r17968
9999   }
100100}
101101
102SCREEN_UPDATE_IND16( ohmygod )
102UINT32 ohmygod_state::screen_update_ohmygod(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
103103{
104   ohmygod_state *state = screen.machine().driver_data<ohmygod_state>();
105104
106   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
105   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
107106   draw_sprites(screen.machine(), bitmap, cliprect);
108107   return 0;
109108}
trunk/src/mame/video/snk68.c
r17967r17968
276276}
277277
278278
279SCREEN_UPDATE_IND16( pow )
279UINT32 snk68_state::screen_update_pow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
280280{
281   snk68_state *state = screen.machine().driver_data<snk68_state>();
282281
283282   bitmap.fill(0x7ff, cliprect);
284283
r17967r17968
287286   draw_sprites(screen.machine(), bitmap, cliprect, 3);
288287   draw_sprites(screen.machine(), bitmap, cliprect, 1);
289288
290   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
289   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
291290   return 0;
292291}
trunk/src/mame/video/madalien.c
r17967r17968
249249}
250250
251251
252static SCREEN_UPDATE_IND16( madalien )
252UINT32 madalien_state::screen_update_madalien(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
253253{
254   madalien_state *state = screen.machine().driver_data<madalien_state>();
255   int flip = BIT(screen.machine().root_device().ioport("DSW")->read(), 6) && BIT(*state->m_video_control, 0);
254   int flip = BIT(screen.machine().root_device().ioport("DSW")->read(), 6) && BIT(*m_video_control, 0);
256255
257256   // bits #0 and #1 define scrolling mode
258257   //
r17967r17968
261260   //
262261   // mode 2 - transition from B to A
263262   // mode 3 - transition from A to B
264   int scroll_mode = *state->m_scroll & 3;
263   int scroll_mode = *m_scroll & 3;
265264
266265   bitmap.fill(0, cliprect);
267266   draw_edges(screen.machine(), bitmap, cliprect, flip, scroll_mode);
r17967r17968
272271     * combined with the headlight signal through NOR gate 1A,
273272     * which is used to light up the tunnel when an alien explodes
274273    */
275   if (scroll_mode != 1 || *state->m_video_flags & 2)
274   if (scroll_mode != 1 || *m_video_flags & 2)
276275   {
277276      int x;
278277      int y;
r17967r17968
280279      int min_x = 0;
281280      int max_x = 0xff;
282281
283      if (!(*state->m_video_flags & 2))
282      if (!(*m_video_flags & 2))
284283      {
285         if (scroll_mode == 2) min_x = (*state->m_scroll & 0xfc);
286         else if (scroll_mode == 3) max_x = (*state->m_scroll & 0xfc) - 1;
284         if (scroll_mode == 2) min_x = (*m_scroll & 0xfc);
285         else if (scroll_mode == 3) max_x = (*m_scroll & 0xfc) - 1;
287286      }
288287
289288      if (flip)
r17967r17968
396395MACHINE_CONFIG_FRAGMENT( madalien_video )
397396   MCFG_SCREEN_ADD("screen", RASTER)
398397   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 336, 0, 256, 288, 0, 256)
399   MCFG_SCREEN_UPDATE_STATIC(madalien)
398   MCFG_SCREEN_UPDATE_DRIVER(madalien_state, screen_update_madalien)
400399
401400   MCFG_GFXDECODE(madalien)
402401   MCFG_PALETTE_LENGTH(0x30)
trunk/src/mame/video/aeroboto.c
r17967r17968
149149}
150150
151151
152SCREEN_UPDATE_IND16( aeroboto )
152UINT32 aeroboto_state::screen_update_aeroboto(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
153153{
154   aeroboto_state *state = screen.machine().driver_data<aeroboto_state>();
155154
156155   const rectangle splitrect1(0, 255, 0, 39);
157156   const rectangle splitrect2(0, 255, 40, 255);
158157   UINT8 *src_base, *src_colptr, *src_rowptr;
159158   int src_offsx, src_colmask, sky_color, star_color, x, y, i, j, pen;
160159
161   sky_color = star_color = *state->m_bgcolor << 2;
160   sky_color = star_color = *m_bgcolor << 2;
162161
163162   // the star field is supposed to be seen through tile pen 0 when active
164   if (!state->m_starsoff)
163   if (!m_starsoff)
165164   {
166165      if (star_color < 0xd0)
167166      {
r17967r17968
174173      bitmap.fill(sky_color, cliprect);
175174
176175      // actual scroll speed is unknown but it can be adjusted by changing the SCROLL_SPEED constant
177      state->m_sx += (char)(*state->m_starx - state->m_ox);
178      state->m_ox = *state->m_starx;
179      x = state->m_sx / SCROLL_SPEED;
176      m_sx += (char)(*m_starx - m_ox);
177      m_ox = *m_starx;
178      x = m_sx / SCROLL_SPEED;
180179
181      if (*state->m_vscroll != 0xff)
182         state->m_sy += (char)(*state->m_stary - state->m_oy);
183      state->m_oy = *state->m_stary;
184      y = state->m_sy / SCROLL_SPEED;
180      if (*m_vscroll != 0xff)
181         m_sy += (char)(*m_stary - m_oy);
182      m_oy = *m_stary;
183      y = m_sy / SCROLL_SPEED;
185184
186      src_base = state->m_stars_rom;
185      src_base = m_stars_rom;
187186
188187      for (i = 0; i < 256; i++)
189188      {
r17967r17968
203202   }
204203   else
205204   {
206      state->m_sx = state->m_ox = *state->m_starx;
207      state->m_sy = state->m_oy = *state->m_stary;
205      m_sx = m_ox = *m_starx;
206      m_sy = m_oy = *m_stary;
208207      bitmap.fill(sky_color, cliprect);
209208   }
210209
211210   for (y = 0; y < 64; y++)
212      state->m_bg_tilemap->set_scrollx(y, state->m_hscroll[y]);
211      m_bg_tilemap->set_scrollx(y, m_hscroll[y]);
213212
214213   // the playfield is part of a splitscreen and should not overlap with status display
215   state->m_bg_tilemap->set_scrolly(0, *state->m_vscroll);
216   state->m_bg_tilemap->draw(bitmap, splitrect2, 0, 0);
214   m_bg_tilemap->set_scrolly(0, *m_vscroll);
215   m_bg_tilemap->draw(bitmap, splitrect2, 0, 0);
217216
218217   draw_sprites(screen.machine(), bitmap, cliprect);
219218
220219   // the status display behaves more closely to a 40-line splitscreen than an overlay
221   state->m_bg_tilemap->set_scrolly(0, 0);
222   state->m_bg_tilemap->draw(bitmap, splitrect1, 0, 0);
220   m_bg_tilemap->set_scrolly(0, 0);
221   m_bg_tilemap->draw(bitmap, splitrect1, 0, 0);
223222   return 0;
224223}
trunk/src/mame/video/firetrap.c
r17967r17968
261261   }
262262}
263263
264SCREEN_UPDATE_IND16( firetrap )
264UINT32 firetrap_state::screen_update_firetrap(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
265265{
266   firetrap_state *state = screen.machine().driver_data<firetrap_state>();
267   state->m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
268   state->m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
266   m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
267   m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
269268   draw_sprites(screen.machine(), bitmap, cliprect);
270   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
269   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
271270   return 0;
272271}
trunk/src/mame/video/crgolf.c
r17967r17968
108108 *
109109 *************************************/
110110
111static SCREEN_UPDATE_RGB32( crgolf )
111UINT32 crgolf_state::screen_update_crgolf(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
112112{
113   crgolf_state *state = screen.machine().driver_data<crgolf_state>();
114   int flip = *state->m_screen_flip & 1;
113   int flip = *m_screen_flip & 1;
115114
116115   offs_t offs;
117116   pen_t pens[NUM_PENS];
r17967r17968
126125      UINT8 y = (offs & 0x1fe0) >> 5;
127126      UINT8 x = (offs & 0x001f) << 3;
128127
129      UINT8 data_a0 = state->m_videoram_a[0x2000 | offs];
130      UINT8 data_a1 = state->m_videoram_a[0x0000 | offs];
131      UINT8 data_a2 = state->m_videoram_a[0x4000 | offs];
132      UINT8 data_b0 = state->m_videoram_b[0x2000 | offs];
133      UINT8 data_b1 = state->m_videoram_b[0x0000 | offs];
134      UINT8 data_b2 = state->m_videoram_b[0x4000 | offs];
128      UINT8 data_a0 = m_videoram_a[0x2000 | offs];
129      UINT8 data_a1 = m_videoram_a[0x0000 | offs];
130      UINT8 data_a2 = m_videoram_a[0x4000 | offs];
131      UINT8 data_b0 = m_videoram_b[0x2000 | offs];
132      UINT8 data_b1 = m_videoram_b[0x0000 | offs];
133      UINT8 data_b2 = m_videoram_b[0x4000 | offs];
135134
136135      if (flip)
137136      {
r17967r17968
146145         UINT8 data_b = 0;
147146         UINT8 data_a = 0;
148147
149         if (~*state->m_screena_enable & 1)
148         if (~*m_screena_enable & 1)
150149            data_a = ((data_a0 & 0x80) >> 7) | ((data_a1 & 0x80) >> 6) | ((data_a2 & 0x80) >> 5);
151150
152         if (~*state->m_screenb_enable & 1)
151         if (~*m_screenb_enable & 1)
153152            data_b = ((data_b0 & 0x80) >> 7) | ((data_b1 & 0x80) >> 6) | ((data_b2 & 0x80) >> 5);
154153
155154         /* screen A has priority over B */
r17967r17968
159158            color = data_b | 0x08;
160159
161160         /* add HI bit if enabled */
162         if (*state->m_color_select)
161         if (*m_color_select)
163162            color = color | 0x10;
164163
165164         bitmap.pix32(y, x) = pens[color];
r17967r17968
197196   MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 247)
198197   MCFG_SCREEN_REFRESH_RATE(60)
199198   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
200   MCFG_SCREEN_UPDATE_STATIC(crgolf)
199   MCFG_SCREEN_UPDATE_DRIVER(crgolf_state, screen_update_crgolf)
201200MACHINE_CONFIG_END
trunk/src/mame/video/thedeep.c
r17967r17968
205205
206206***************************************************************************/
207207
208SCREEN_UPDATE_IND16( thedeep )
208UINT32 thedeep_state::screen_update_thedeep(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
209209{
210   thedeep_state *state = screen.machine().driver_data<thedeep_state>();
211   int scrollx = state->m_scroll[0] + (state->m_scroll[1]<<8);
212   int scrolly = state->m_scroll[2] + (state->m_scroll[3]<<8);
210   int scrollx = m_scroll[0] + (m_scroll[1]<<8);
211   int scrolly = m_scroll[2] + (m_scroll[3]<<8);
213212   int x;
214213
215   state->m_tilemap_0->set_scrollx(0, scrollx);
214   m_tilemap_0->set_scrollx(0, scrollx);
216215
217216   for (x = 0; x < 0x20; x++)
218217   {
219      int y = state->m_scroll2[x*2+0] + (state->m_scroll2[x*2+1]<<8);
220      state->m_tilemap_0->set_scrolly(x, y + scrolly);
218      int y = m_scroll2[x*2+0] + (m_scroll2[x*2+1]<<8);
219      m_tilemap_0->set_scrolly(x, y + scrolly);
221220   }
222221
223222   bitmap.fill(get_black_pen(screen.machine()), cliprect);
224223
225   state->m_tilemap_0->draw(bitmap, cliprect, 0,0);
224   m_tilemap_0->draw(bitmap, cliprect, 0,0);
226225   draw_sprites(screen.machine(), bitmap,cliprect);
227   state->m_tilemap_1->draw(bitmap, cliprect, 0,0);
226   m_tilemap_1->draw(bitmap, cliprect, 0,0);
228227   return 0;
229228}
trunk/src/mame/video/oneshot.c
r17967r17968
149149
150150}
151151
152SCREEN_UPDATE_IND16( oneshot )
152UINT32 oneshot_state::screen_update_oneshot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
153153{
154   oneshot_state *state = screen.machine().driver_data<oneshot_state>();
155154
156155   bitmap.fill(get_black_pen(screen.machine()), cliprect);
157156
158   state->m_mid_tilemap->set_scrollx(0, state->m_scroll[0] - 0x1f5);
159   state->m_mid_tilemap->set_scrolly(0, state->m_scroll[1]);
157   m_mid_tilemap->set_scrollx(0, m_scroll[0] - 0x1f5);
158   m_mid_tilemap->set_scrolly(0, m_scroll[1]);
160159
161   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
162   state->m_mid_tilemap->draw(bitmap, cliprect, 0, 0);
160   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
161   m_mid_tilemap->draw(bitmap, cliprect, 0, 0);
163162   draw_sprites(screen.machine(), bitmap, cliprect);
164   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
163   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
165164   draw_crosshairs(screen.machine(), bitmap, cliprect);
166165   return 0;
167166}
168167
169SCREEN_UPDATE_IND16( maddonna )
168UINT32 oneshot_state::screen_update_maddonna(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
170169{
171   oneshot_state *state = screen.machine().driver_data<oneshot_state>();
172170
173171   bitmap.fill(get_black_pen(screen.machine()), cliprect);
174172
175   state->m_mid_tilemap->set_scrolly(0, state->m_scroll[1]); // other registers aren't used so we don't know which layers they relate to
173   m_mid_tilemap->set_scrolly(0, m_scroll[1]); // other registers aren't used so we don't know which layers they relate to
176174
177   state->m_mid_tilemap->draw(bitmap, cliprect, 0, 0);
178   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
179   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
175   m_mid_tilemap->draw(bitmap, cliprect, 0, 0);
176   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
177   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
180178   draw_sprites(screen.machine(), bitmap, cliprect);
181179
182//  popmessage ("%04x %04x %04x %04x %04x %04x %04x %04x", state->m_scroll[0], state->m_scroll[1], state->m_scroll[2], state->m_scroll[3], state->m_scroll[4], state->m_scroll[5], state->m_scroll[6], state->m_scroll[7]);
180//  popmessage ("%04x %04x %04x %04x %04x %04x %04x %04x", m_scroll[0], m_scroll[1], m_scroll[2], m_scroll[3], m_scroll[4], m_scroll[5], m_scroll[6], m_scroll[7]);
183181   return 0;
184182}
trunk/src/mame/video/stlforce.c
r17967r17968
123123   }
124124}
125125
126SCREEN_UPDATE_IND16( stlforce )
126UINT32 stlforce_state::screen_update_stlforce(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
127127{
128   stlforce_state *state = screen.machine().driver_data<stlforce_state>();
129128   int i;
130129
131   if (state->m_vidattrram[6] & 1)
130   if (m_vidattrram[6] & 1)
132131   {
133132      for(i=0;i<256;i++)
134         state->m_bg_tilemap->set_scrollx(i, state->m_bg_scrollram[i]+9); //+9 for twinbrat
133         m_bg_tilemap->set_scrollx(i, m_bg_scrollram[i]+9); //+9 for twinbrat
135134   }
136135   else
137136   {
138137      for(i=0;i<256;i++)
139         state->m_bg_tilemap->set_scrollx(i, state->m_bg_scrollram[0]+9); //+9 for twinbrat
138         m_bg_tilemap->set_scrollx(i, m_bg_scrollram[0]+9); //+9 for twinbrat
140139   }
141140
142   if (state->m_vidattrram[6] & 4)
141   if (m_vidattrram[6] & 4)
143142   {
144143      for(i=0;i<256;i++)
145         state->m_mlow_tilemap->set_scrollx(i, state->m_mlow_scrollram[i]+8);
144         m_mlow_tilemap->set_scrollx(i, m_mlow_scrollram[i]+8);
146145   }
147146   else
148147   {
149148      for(i=0;i<256;i++)
150         state->m_mlow_tilemap->set_scrollx(i, state->m_mlow_scrollram[0]+8);
149         m_mlow_tilemap->set_scrollx(i, m_mlow_scrollram[0]+8);
151150   }
152151
153   if (state->m_vidattrram[6] & 0x10)
152   if (m_vidattrram[6] & 0x10)
154153   {
155154      for(i=0;i<256;i++)
156         state->m_mhigh_tilemap->set_scrollx(i, state->m_mhigh_scrollram[i]+8);
155         m_mhigh_tilemap->set_scrollx(i, m_mhigh_scrollram[i]+8);
157156   }
158157   else
159158   {
160159      for(i=0;i<256;i++)
161         state->m_mhigh_tilemap->set_scrollx(i, state->m_mhigh_scrollram[0]+8);
160         m_mhigh_tilemap->set_scrollx(i, m_mhigh_scrollram[0]+8);
162161   }
163162
164   state->m_bg_tilemap->set_scrolly(0, state->m_vidattrram[1]);
165   state->m_mlow_tilemap->set_scrolly(0, state->m_vidattrram[2]);
166   state->m_mhigh_tilemap->set_scrolly(0, state->m_vidattrram[3]);
163   m_bg_tilemap->set_scrolly(0, m_vidattrram[1]);
164   m_mlow_tilemap->set_scrolly(0, m_vidattrram[2]);
165   m_mhigh_tilemap->set_scrolly(0, m_vidattrram[3]);
167166
168   state->m_tx_tilemap->set_scrollx(0, state->m_vidattrram[0]+8);
169   state->m_tx_tilemap->set_scrolly(0,state->m_vidattrram[4]);
167   m_tx_tilemap->set_scrollx(0, m_vidattrram[0]+8);
168   m_tx_tilemap->set_scrolly(0,m_vidattrram[4]);
170169
171   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
172   state->m_mlow_tilemap->draw(bitmap, cliprect, 0,0);
173   state->m_mhigh_tilemap->draw(bitmap, cliprect, 0,0);
170   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
171   m_mlow_tilemap->draw(bitmap, cliprect, 0,0);
172   m_mhigh_tilemap->draw(bitmap, cliprect, 0,0);
174173   draw_sprites(screen.machine(), bitmap,cliprect);
175   state->m_tx_tilemap->draw(bitmap, cliprect, 0,0);
174   m_tx_tilemap->draw(bitmap, cliprect, 0,0);
176175   return 0;
177176}
178177
trunk/src/mame/video/topspeed.c
r17967r17968
109109
110110/***************************************************************************/
111111
112SCREEN_UPDATE_IND16( topspeed )
112UINT32 topspeed_state::screen_update_topspeed(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
113113{
114   topspeed_state *state = screen.machine().driver_data<topspeed_state>();
115114   UINT8 layer[4];
116115
117116#ifdef MAME_DEBUG
118117   if (screen.machine().input().code_pressed_once (KEYCODE_V))
119118   {
120      state->m_dislayer[0] ^= 1;
121      popmessage("bg: %01x", state->m_dislayer[0]);
119      m_dislayer[0] ^= 1;
120      popmessage("bg: %01x", m_dislayer[0]);
122121   }
123122
124123   if (screen.machine().input().code_pressed_once (KEYCODE_B))
125124   {
126      state->m_dislayer[1] ^= 1;
127      popmessage("fg: %01x", state->m_dislayer[1]);
125      m_dislayer[1] ^= 1;
126      popmessage("fg: %01x", m_dislayer[1]);
128127   }
129128
130129   if (screen.machine().input().code_pressed_once (KEYCODE_N))
131130   {
132      state->m_dislayer[2] ^= 1;
133      popmessage("bg2: %01x", state->m_dislayer[2]);
131      m_dislayer[2] ^= 1;
132      popmessage("bg2: %01x", m_dislayer[2]);
134133   }
135134
136135   if (screen.machine().input().code_pressed_once (KEYCODE_M))
137136   {
138      state->m_dislayer[3] ^= 1;
139      popmessage("fg2: %01x", state->m_dislayer[3]);
137      m_dislayer[3] ^= 1;
138      popmessage("fg2: %01x", m_dislayer[3]);
140139   }
141140
142141   if (screen.machine().input().code_pressed_once (KEYCODE_C))
143142   {
144      state->m_dislayer[4] ^= 1;
145      popmessage("sprites: %01x", state->m_dislayer[4]);
143      m_dislayer[4] ^= 1;
144      popmessage("sprites: %01x", m_dislayer[4]);
146145   }
147146#endif
148147
149   pc080sn_tilemap_update(state->m_pc080sn_1);
150   pc080sn_tilemap_update(state->m_pc080sn_2);
148   pc080sn_tilemap_update(m_pc080sn_1);
149   pc080sn_tilemap_update(m_pc080sn_2);
151150
152151   /* Tilemap layer priority seems hardwired (the order is odd, too) */
153152   layer[0] = 1;
r17967r17968
159158   bitmap.fill(0, cliprect);
160159
161160#ifdef MAME_DEBUG
162   if (state->m_dislayer[3] == 0)
161   if (m_dislayer[3] == 0)
163162#endif
164   pc080sn_tilemap_draw(state->m_pc080sn_2, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
163   pc080sn_tilemap_draw(m_pc080sn_2, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
165164
166165#ifdef MAME_DEBUG
167   if (state->m_dislayer[2] == 0)
166   if (m_dislayer[2] == 0)
168167#endif
169   pc080sn_tilemap_draw_special(state->m_pc080sn_2, bitmap, cliprect, layer[1], 0, 2, state->m_raster_ctrl);
168   pc080sn_tilemap_draw_special(m_pc080sn_2, bitmap, cliprect, layer[1], 0, 2, m_raster_ctrl);
170169
171170#ifdef MAME_DEBUG
172   if (state->m_dislayer[1] == 0)
171   if (m_dislayer[1] == 0)
173172#endif
174   pc080sn_tilemap_draw_special(state->m_pc080sn_1, bitmap, cliprect, layer[2], 0, 4, state->m_raster_ctrl + 0x100);
173   pc080sn_tilemap_draw_special(m_pc080sn_1, bitmap, cliprect, layer[2], 0, 4, m_raster_ctrl + 0x100);
175174
176175#ifdef MAME_DEBUG
177   if (state->m_dislayer[0] == 0)
176   if (m_dislayer[0] == 0)
178177#endif
179   pc080sn_tilemap_draw(state->m_pc080sn_1, bitmap, cliprect, layer[3], 0, 8);
178   pc080sn_tilemap_draw(m_pc080sn_1, bitmap, cliprect, layer[3], 0, 8);
180179
181180#ifdef MAME_DEBUG
182   if (state->m_dislayer[4] == 0)
181   if (m_dislayer[4] == 0)
183182#endif
184183
185184   draw_sprites(screen.machine(), bitmap,cliprect);
trunk/src/mame/video/amspdwy.c
r17967r17968
141141
142142***************************************************************************/
143143
144SCREEN_UPDATE_IND16( amspdwy )
144UINT32 amspdwy_state::screen_update_amspdwy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
145145{
146   amspdwy_state *state = screen.machine().driver_data<amspdwy_state>();
147   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
146   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
148147   draw_sprites(screen.machine(), bitmap, cliprect);
149148   return 0;
150149}
trunk/src/mame/video/fantland.c
r17967r17968
139139   }
140140}
141141
142SCREEN_UPDATE_IND16( fantland )
142UINT32 fantland_state::screen_update_fantland(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
143143{
144144   bitmap.fill(0, cliprect);
145145   draw_sprites(screen.machine(),bitmap,cliprect);
trunk/src/mame/video/atarig1.c
r17967r17968
148148 *
149149 *************************************/
150150
151SCREEN_UPDATE_IND16( atarig1 )
151UINT32 atarig1_state::screen_update_atarig1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
152152{
153   atarig1_state *state = screen.machine().driver_data<atarig1_state>();
154153
155154   /* draw the playfield */
156   state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
155   m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
157156
158157   /* copy the motion objects on top */
159   copybitmap_trans(bitmap, *atarirle_get_vram(state->m_rle, 0), 0, 0, 0, 0, cliprect, 0);
158   copybitmap_trans(bitmap, *atarirle_get_vram(m_rle, 0), 0, 0, 0, 0, cliprect, 0);
160159
161160   /* add the alpha on top */
162   state->m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
161   m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
163162   return 0;
164163}
165164
166SCREEN_VBLANK( atarig1 )
165void atarig1_state::screen_eof_atarig1(screen_device &screen, bool state)
167166{
168167   // rising edge
169   if (vblank_on)
168   if (state)
170169   {
171      atarig1_state *state = screen.machine().driver_data<atarig1_state>();
172170
173      atarirle_eof(state->m_rle);
171      atarirle_eof(m_rle);
174172   }
175173}
trunk/src/mame/video/bladestl.c
r17967r17968
7777
7878***************************************************************************/
7979
80SCREEN_UPDATE_IND16( bladestl )
80UINT32 bladestl_state::screen_update_bladestl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
8181{
82   bladestl_state *state = screen.machine().driver_data<bladestl_state>();
8382   set_pens(screen.machine());
8483
85   k007342_tilemap_update(state->m_k007342);
84   k007342_tilemap_update(m_k007342);
8685
87   k007342_tilemap_draw(state->m_k007342, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE ,0);
88   k007420_sprites_draw(state->m_k007420, bitmap, cliprect, screen.machine().gfx[1]);
89   k007342_tilemap_draw(state->m_k007342, bitmap, cliprect, 1, 1 | TILEMAP_DRAW_OPAQUE ,0);
90   k007342_tilemap_draw(state->m_k007342, bitmap, cliprect, 0, 0 ,0);
91   k007342_tilemap_draw(state->m_k007342, bitmap, cliprect, 0, 1 ,0);
86   k007342_tilemap_draw(m_k007342, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE ,0);
87   k007420_sprites_draw(m_k007420, bitmap, cliprect, screen.machine().gfx[1]);
88   k007342_tilemap_draw(m_k007342, bitmap, cliprect, 1, 1 | TILEMAP_DRAW_OPAQUE ,0);
89   k007342_tilemap_draw(m_k007342, bitmap, cliprect, 0, 0 ,0);
90   k007342_tilemap_draw(m_k007342, bitmap, cliprect, 0, 1 ,0);
9291   return 0;
9392}
trunk/src/mame/video/toobin.c
r17967r17968
225225 *
226226 *************************************/
227227
228SCREEN_UPDATE_RGB32( toobin )
228UINT32 toobin_state::screen_update_toobin(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
229229{
230   toobin_state *state = screen.machine().driver_data<toobin_state>();
231230   bitmap_ind8 &priority_bitmap = screen.machine().priority_bitmap;
232231   const rgb_t *palette = palette_entry_list_adjusted(screen.machine().palette);
233232   atarimo_rect_list rectlist;
r17967r17968
236235
237236   /* draw the playfield */
238237   priority_bitmap.fill(0, cliprect);
239   state->m_playfield_tilemap->draw(state->m_pfbitmap, cliprect, 0, 0);
240   state->m_playfield_tilemap->draw(state->m_pfbitmap, cliprect, 1, 1);
241   state->m_playfield_tilemap->draw(state->m_pfbitmap, cliprect, 2, 2);
242   state->m_playfield_tilemap->draw(state->m_pfbitmap, cliprect, 3, 3);
238   m_playfield_tilemap->draw(m_pfbitmap, cliprect, 0, 0);
239   m_playfield_tilemap->draw(m_pfbitmap, cliprect, 1, 1);
240   m_playfield_tilemap->draw(m_pfbitmap, cliprect, 2, 2);
241   m_playfield_tilemap->draw(m_pfbitmap, cliprect, 3, 3);
243242
244243   /* draw and merge the MO */
245244   mobitmap = atarimo_render(0, cliprect, &rectlist);
r17967r17968
247246   {
248247      UINT32 *dest = &bitmap.pix32(y);
249248      UINT16 *mo = &mobitmap->pix16(y);
250      UINT16 *pf = &state->m_pfbitmap.pix16(y);
249      UINT16 *pf = &m_pfbitmap.pix16(y);
251250      UINT8 *pri = &priority_bitmap.pix8(y);
252251      for (x = cliprect.min_x; x <= cliprect.max_x; x++)
253252      {
r17967r17968
272271   }
273272
274273   /* add the alpha on top */
275   state->m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
274   m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
276275   return 0;
277276}
trunk/src/mame/video/srumbler.c
r17967r17968
155155}
156156
157157
158SCREEN_UPDATE_IND16( srumbler )
158UINT32 srumbler_state::screen_update_srumbler(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
159159{
160   srumbler_state *state = screen.machine().driver_data<srumbler_state>();
161   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1,0);
160   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1,0);
162161   draw_sprites(screen.machine(), bitmap,cliprect);
163   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0,0);
164   state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
162   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0,0);
163   m_fg_tilemap->draw(bitmap, cliprect, 0,0);
165164   return 0;
166165}
trunk/src/mame/video/legionna.c
r17967r17968
409409
410410#define LAYER_DB 0
411411
412SCREEN_UPDATE_IND16( legionna )
412UINT32 legionna_state::screen_update_legionna(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
413413{
414   legionna_state *state = screen.machine().driver_data<legionna_state>();
415414   /* Setup the tilemaps */
416   state->m_background_layer->set_scrollx(0, state->m_scrollram16[0] );
417   state->m_background_layer->set_scrolly(0, state->m_scrollram16[1] );
418   state->m_midground_layer->set_scrollx(0, state->m_scrollram16[2] );
419   state->m_midground_layer->set_scrolly(0, state->m_scrollram16[3] );
420   state->m_foreground_layer->set_scrollx(0, state->m_scrollram16[4] );
421   state->m_foreground_layer->set_scrolly(0, state->m_scrollram16[5] );
422   state->m_text_layer->set_scrollx(0,  0/*state->m_scrollram16[6]*/ );
423   state->m_text_layer->set_scrolly(0,  0/*state->m_scrollram16[7]*/ );
415   m_background_layer->set_scrollx(0, m_scrollram16[0] );
416   m_background_layer->set_scrolly(0, m_scrollram16[1] );
417   m_midground_layer->set_scrollx(0, m_scrollram16[2] );
418   m_midground_layer->set_scrolly(0, m_scrollram16[3] );
419   m_foreground_layer->set_scrollx(0, m_scrollram16[4] );
420   m_foreground_layer->set_scrolly(0, m_scrollram16[5] );
421   m_text_layer->set_scrollx(0,  0/*m_scrollram16[6]*/ );
422   m_text_layer->set_scrolly(0,  0/*m_scrollram16[7]*/ );
424423
425424   screen.machine().priority_bitmap.fill(0, cliprect);
426425   bitmap.fill(get_black_pen(screen.machine()), cliprect);   /* wrong color? */
427426
428   /* state->m_layer_disable is a guess based on 'stage 1' screen in heatbrl  */
427   /* m_layer_disable is a guess based on 'stage 1' screen in heatbrl  */
429428
430   if (!(state->m_layer_disable&0x0020)) state->m_foreground_layer->draw(bitmap, cliprect, 0, 0);
431   if (!(state->m_layer_disable&0x0010)) state->m_midground_layer->draw(bitmap, cliprect, 0, 0);
432   if (!(state->m_layer_disable&0x0002)) state->m_background_layer->draw(bitmap, cliprect, 0, 1);
433   if (!(state->m_layer_disable&0x0001)) state->m_text_layer->draw(bitmap, cliprect, 0, 2);
429   if (!(m_layer_disable&0x0020)) m_foreground_layer->draw(bitmap, cliprect, 0, 0);
430   if (!(m_layer_disable&0x0010)) m_midground_layer->draw(bitmap, cliprect, 0, 0);
431   if (!(m_layer_disable&0x0002)) m_background_layer->draw(bitmap, cliprect, 0, 1);
432   if (!(m_layer_disable&0x0001)) m_text_layer->draw(bitmap, cliprect, 0, 2);
434433
435434   draw_sprites(screen.machine(),bitmap,cliprect);
436435
r17967r17968
439438}
440439
441440
442SCREEN_UPDATE_IND16( godzilla )
441UINT32 legionna_state::screen_update_godzilla(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
443442{
444   legionna_state *state = screen.machine().driver_data<legionna_state>();
445//  state->m_text_layer->set_scrollx(0, 0 );
446//  state->m_text_layer->set_scrolly(0, 112 );
443//  m_text_layer->set_scrollx(0, 0 );
444//  m_text_layer->set_scrolly(0, 112 );
447445   /* Setup the tilemaps */
448   state->m_background_layer->set_scrollx(0, state->m_scrollram16[0] );
449   state->m_background_layer->set_scrolly(0, state->m_scrollram16[1] );
450   state->m_midground_layer->set_scrollx(0, state->m_scrollram16[2] );
451   state->m_midground_layer->set_scrolly(0, state->m_scrollram16[3] );
452   state->m_foreground_layer->set_scrollx(0, state->m_scrollram16[4] );
453   state->m_foreground_layer->set_scrolly(0, state->m_scrollram16[5] );
454   state->m_text_layer->set_scrollx(0,  0/*state->m_scrollram16[6]*/ );
455   state->m_text_layer->set_scrolly(0,  0/*state->m_scrollram16[7]*/ );
446   m_background_layer->set_scrollx(0, m_scrollram16[0] );
447   m_background_layer->set_scrolly(0, m_scrollram16[1] );
448   m_midground_layer->set_scrollx(0, m_scrollram16[2] );
449   m_midground_layer->set_scrolly(0, m_scrollram16[3] );
450   m_foreground_layer->set_scrollx(0, m_scrollram16[4] );
451   m_foreground_layer->set_scrolly(0, m_scrollram16[5] );
452   m_text_layer->set_scrollx(0,  0/*m_scrollram16[6]*/ );
453   m_text_layer->set_scrolly(0,  0/*m_scrollram16[7]*/ );
456454
457455
458456   bitmap.fill(0x0200, cliprect);
459457   screen.machine().priority_bitmap.fill(0, cliprect);
460458
461   if (!(state->m_layer_disable&0x0001)) state->m_background_layer->draw(bitmap, cliprect, 0,0);
462   if (!(state->m_layer_disable&0x0002)) state->m_midground_layer->draw(bitmap, cliprect, 0,0);
463   if (!(state->m_layer_disable&0x0004)) state->m_foreground_layer->draw(bitmap, cliprect, 0,1);
464   if (!(state->m_layer_disable&0x0008)) state->m_text_layer->draw(bitmap, cliprect, 0,2);
459   if (!(m_layer_disable&0x0001)) m_background_layer->draw(bitmap, cliprect, 0,0);
460   if (!(m_layer_disable&0x0002)) m_midground_layer->draw(bitmap, cliprect, 0,0);
461   if (!(m_layer_disable&0x0004)) m_foreground_layer->draw(bitmap, cliprect, 0,1);
462   if (!(m_layer_disable&0x0008)) m_text_layer->draw(bitmap, cliprect, 0,2);
465463
466464   draw_sprites(screen.machine(),bitmap,cliprect);
467465
468466   return 0;
469467}
470468
471SCREEN_UPDATE_IND16( grainbow )
469UINT32 legionna_state::screen_update_grainbow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
472470{
473   legionna_state *state = screen.machine().driver_data<legionna_state>();
474471   /* Setup the tilemaps */
475   state->m_background_layer->set_scrollx(0, state->m_scrollram16[0] );
476   state->m_background_layer->set_scrolly(0, state->m_scrollram16[1] );
477   state->m_midground_layer->set_scrollx(0, state->m_scrollram16[2] );
478   state->m_midground_layer->set_scrolly(0, state->m_scrollram16[3] );
479   state->m_foreground_layer->set_scrollx(0, state->m_scrollram16[4] );
480   state->m_foreground_layer->set_scrolly(0, state->m_scrollram16[5] );
481   state->m_text_layer->set_scrollx(0,  0/*state->m_scrollram16[6]*/ );
482   state->m_text_layer->set_scrolly(0,  0/*state->m_scrollram16[7]*/ );
472   m_background_layer->set_scrollx(0, m_scrollram16[0] );
473   m_background_layer->set_scrolly(0, m_scrollram16[1] );
474   m_midground_layer->set_scrollx(0, m_scrollram16[2] );
475   m_midground_layer->set_scrolly(0, m_scrollram16[3] );
476   m_foreground_layer->set_scrollx(0, m_scrollram16[4] );
477   m_foreground_layer->set_scrolly(0, m_scrollram16[5] );
478   m_text_layer->set_scrollx(0,  0/*m_scrollram16[6]*/ );
479   m_text_layer->set_scrolly(0,  0/*m_scrollram16[7]*/ );
483480
484481   bitmap.fill(get_black_pen(screen.machine()), cliprect);
485482   screen.machine().priority_bitmap.fill(0, cliprect);
486483
487   if(!(state->m_layer_disable & 1))
488      state->m_background_layer->draw(bitmap, cliprect, 0,1);
484   if(!(m_layer_disable & 1))
485      m_background_layer->draw(bitmap, cliprect, 0,1);
489486
490   if(!(state->m_layer_disable & 2))
491      state->m_midground_layer->draw(bitmap, cliprect, 0,2);
487   if(!(m_layer_disable & 2))
488      m_midground_layer->draw(bitmap, cliprect, 0,2);
492489
493   if(!(state->m_layer_disable & 4))
494      state->m_foreground_layer->draw(bitmap, cliprect, 0,4);
490   if(!(m_layer_disable & 4))
491      m_foreground_layer->draw(bitmap, cliprect, 0,4);
495492
496   if(!(state->m_layer_disable & 8))
497      state->m_text_layer->draw(bitmap, cliprect, 0,8);
493   if(!(m_layer_disable & 8))
494      m_text_layer->draw(bitmap, cliprect, 0,8);
498495
499496   draw_sprites(screen.machine(),bitmap,cliprect);
500497
trunk/src/mame/video/pbaction.c
r17967r17968
124124   }
125125}
126126
127SCREEN_UPDATE_IND16( pbaction )
127UINT32 pbaction_state::screen_update_pbaction(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
128128{
129   pbaction_state *state = screen.machine().driver_data<pbaction_state>();
130129
131   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
130   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
132131   draw_sprites(screen.machine(), bitmap, cliprect);
133   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
132   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
134133   return 0;
135134}
trunk/src/mame/video/mcr68.c
r17967r17968
314314 *
315315 *************************************/
316316
317SCREEN_UPDATE_IND16( mcr68 )
317UINT32 mcr68_state::screen_update_mcr68(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
318318{
319   mcr68_state *state = screen.machine().driver_data<mcr68_state>();
320319   /* draw the background */
321   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES, 0);
320   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES, 0);
322321
323322   /* draw the low-priority sprites */
324323   mcr68_update_sprites(screen.machine(), bitmap, cliprect, 0);
325324
326325    /* redraw tiles with priority over sprites */
327   state->m_bg_tilemap->draw(bitmap, cliprect, 1, 0);
326   m_bg_tilemap->draw(bitmap, cliprect, 1, 0);
328327
329328   /* draw the high-priority sprites */
330329   mcr68_update_sprites(screen.machine(), bitmap, cliprect, 1);
r17967r17968
332331}
333332
334333
335SCREEN_UPDATE_IND16( zwackery )
334UINT32 mcr68_state::screen_update_zwackery(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
336335{
337   mcr68_state *state = screen.machine().driver_data<mcr68_state>();
338336   /* draw the background */
339   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
337   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
340338
341339   /* draw the low-priority sprites */
342340   zwackery_update_sprites(screen.machine(), bitmap, cliprect, 0);
343341
344342    /* redraw tiles with priority over sprites */
345   state->m_fg_tilemap->draw(bitmap, cliprect, 1, 0);
343   m_fg_tilemap->draw(bitmap, cliprect, 1, 0);
346344
347345   /* draw the high-priority sprites */
348346   zwackery_update_sprites(screen.machine(), bitmap, cliprect, 1);
trunk/src/mame/video/overdriv.c
r17967r17968
5050
5151***************************************************************************/
5252
53SCREEN_UPDATE_IND16( overdriv )
53UINT32 overdriv_state::screen_update_overdriv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
5454{
55   overdriv_state *state = screen.machine().driver_data<overdriv_state>();
5655
57   state->m_sprite_colorbase  = k053251_get_palette_index(state->m_k053251, K053251_CI0);
58   state->m_road_colorbase[1] = k053251_get_palette_index(state->m_k053251, K053251_CI1);
59   state->m_road_colorbase[0] = k053251_get_palette_index(state->m_k053251, K053251_CI2);
60   state->m_zoom_colorbase[1] = k053251_get_palette_index(state->m_k053251, K053251_CI3);
61   state->m_zoom_colorbase[0] = k053251_get_palette_index(state->m_k053251, K053251_CI4);
56   m_sprite_colorbase  = k053251_get_palette_index(m_k053251, K053251_CI0);
57   m_road_colorbase[1] = k053251_get_palette_index(m_k053251, K053251_CI1);
58   m_road_colorbase[0] = k053251_get_palette_index(m_k053251, K053251_CI2);
59   m_zoom_colorbase[1] = k053251_get_palette_index(m_k053251, K053251_CI3);
60   m_zoom_colorbase[0] = k053251_get_palette_index(m_k053251, K053251_CI4);
6261
6362   screen.machine().priority_bitmap.fill(0, cliprect);
6463
65   k051316_zoom_draw(state->m_k051316_1, bitmap, cliprect, 0, 0);
66   k051316_zoom_draw(state->m_k051316_2, bitmap, cliprect, 0, 1);
64   k051316_zoom_draw(m_k051316_1, bitmap, cliprect, 0, 0);
65   k051316_zoom_draw(m_k051316_2, bitmap, cliprect, 0, 1);
6766
68   k053247_sprites_draw(state->m_k053246, bitmap,cliprect);
67   k053247_sprites_draw(m_k053246, bitmap,cliprect);
6968   return 0;
7069}
trunk/src/mame/video/funworld.c
r17967r17968
191191}
192192
193193
194SCREEN_UPDATE_IND16(funworld)
194UINT32 funworld_state::screen_update_funworld(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
195195{
196   funworld_state *state = screen.machine().driver_data<funworld_state>();
197   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
196   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
198197   return 0;
199198}
trunk/src/mame/video/thunderx.c
r17967r17968
6565
6666***************************************************************************/
6767
68SCREEN_UPDATE_IND16( scontra )
68UINT32 thunderx_state::screen_update_scontra(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
6969{
70   thunderx_state *state = screen.machine().driver_data<thunderx_state>();
7170
72   k052109_tilemap_update(state->m_k052109);
71   k052109_tilemap_update(m_k052109);
7372
7473   screen.machine().priority_bitmap.fill(0, cliprect);
7574
7675   /* The background color is always from layer 1 - but it's always black anyway */
77//  bitmap.fill(16 * state->m_layer_colorbase[1], cliprect);
78   if (state->m_priority)
76//  bitmap.fill(16 * m_layer_colorbase[1], cliprect);
77   if (m_priority)
7978   {
80      k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE, 1);
81      k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 1, 0, 2);
79      k052109_tilemap_draw(m_k052109, bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE, 1);
80      k052109_tilemap_draw(m_k052109, bitmap, cliprect, 1, 0, 2);
8281   }
8382   else
8483   {
85      k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 1);
86      k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 2, 0, 2);
84      k052109_tilemap_draw(m_k052109, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 1);
85      k052109_tilemap_draw(m_k052109, bitmap, cliprect, 2, 0, 2);
8786   }
88   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 0, 0, 4);
87   k052109_tilemap_draw(m_k052109, bitmap, cliprect, 0, 0, 4);
8988
90   k051960_sprites_draw(state->m_k051960, bitmap, cliprect, -1, -1);
89   k051960_sprites_draw(m_k051960, bitmap, cliprect, -1, -1);
9190   return 0;
9291}
trunk/src/mame/video/spcforce.c
r17967r17968
1616}
1717
1818
19SCREEN_UPDATE_IND16( spcforce )
19UINT32 spcforce_state::screen_update_spcforce(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
2020{
21   spcforce_state *state = screen.machine().driver_data<spcforce_state>();
2221   int offs;
23   int flip = state->flip_screen();
22   int flip = flip_screen();
2423
2524   /* draw the characters as sprites because they could be overlapping */
2625   bitmap.fill(0, cliprect);
r17967r17968
2827   {
2928      int code,sx,sy,col;
3029
31      sy = 8 * (offs / 32) -  (state->m_scrollram[offs]       & 0x0f);
32      sx = 8 * (offs % 32) + ((state->m_scrollram[offs] >> 4) & 0x0f);
30      sy = 8 * (offs / 32) -  (m_scrollram[offs]       & 0x0f);
31      sx = 8 * (offs % 32) + ((m_scrollram[offs] >> 4) & 0x0f);
3332
34      code = state->m_videoram[offs] + ((state->m_colorram[offs] & 0x01) << 8);
35      col  = (~state->m_colorram[offs] >> 4) & 0x07;
33      code = m_videoram[offs] + ((m_colorram[offs] & 0x01) << 8);
34      col  = (~m_colorram[offs] >> 4) & 0x07;
3635
3736      if (flip)
3837      {
trunk/src/mame/video/gsword.c
r17967r17968
202202   }
203203}
204204
205SCREEN_UPDATE_IND16( gsword )
205UINT32 gsword_state::screen_update_gsword(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
206206{
207   gsword_state *state = screen.machine().driver_data<gsword_state>();
208   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
207   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
209208   draw_sprites(screen.machine(), bitmap, cliprect);
210209   return 0;
211210}
trunk/src/mame/video/mario.c
r17967r17968
202202   }
203203}
204204
205SCREEN_UPDATE_IND16( mario )
205UINT32 mario_state::screen_update_mario(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
206206{
207   mario_state   *state = screen.machine().driver_data<mario_state>();
208207   int t;
209208
210209   t = screen.machine().root_device().ioport("MONITOR")->read();
211   if (t != state->m_monitor)
210   if (t != m_monitor)
212211   {
213      state->m_monitor = t;
212      m_monitor = t;
214213      screen.machine().tilemap().mark_all_dirty();
215214   }
216215
217   state->m_bg_tilemap->set_scrollx(0, state->m_flip ? (HTOTAL-HBSTART) : 0);
218   state->m_bg_tilemap->set_scrolly(0, state->m_gfx_scroll - (state->m_flip ? 8 : 0));
216   m_bg_tilemap->set_scrollx(0, m_flip ? (HTOTAL-HBSTART) : 0);
217   m_bg_tilemap->set_scrolly(0, m_gfx_scroll - (m_flip ? 8 : 0));
219218
220   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
219   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
221220   draw_sprites(screen.machine(), bitmap, cliprect);
222221
223222   return 0;
trunk/src/mame/video/xmen.c
r17967r17968
7070
7171***************************************************************************/
7272
73SCREEN_UPDATE_IND16( xmen )
73UINT32 xmen_state::screen_update_xmen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
7474{
75   xmen_state *state = screen.machine().driver_data<xmen_state>();
7675   int layer[3], bg_colorbase;
7776
78   bg_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI4);
79   state->m_sprite_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI1);
80   state->m_layer_colorbase[0] = k053251_get_palette_index(state->m_k053251, K053251_CI3);
81   state->m_layer_colorbase[1] = k053251_get_palette_index(state->m_k053251, K053251_CI0);
82   state->m_layer_colorbase[2] = k053251_get_palette_index(state->m_k053251, K053251_CI2);
77   bg_colorbase = k053251_get_palette_index(m_k053251, K053251_CI4);
78   m_sprite_colorbase = k053251_get_palette_index(m_k053251, K053251_CI1);
79   m_layer_colorbase[0] = k053251_get_palette_index(m_k053251, K053251_CI3);
80   m_layer_colorbase[1] = k053251_get_palette_index(m_k053251, K053251_CI0);
81   m_layer_colorbase[2] = k053251_get_palette_index(m_k053251, K053251_CI2);
8382
84   k052109_tilemap_update(state->m_k052109);
83   k052109_tilemap_update(m_k052109);
8584
8685   layer[0] = 0;
87   state->m_layerpri[0] = k053251_get_priority(state->m_k053251, K053251_CI3);
86   m_layerpri[0] = k053251_get_priority(m_k053251, K053251_CI3);
8887   layer[1] = 1;
89   state->m_layerpri[1] = k053251_get_priority(state->m_k053251, K053251_CI0);
88   m_layerpri[1] = k053251_get_priority(m_k053251, K053251_CI0);
9089   layer[2] = 2;
91   state->m_layerpri[2] = k053251_get_priority(state->m_k053251, K053251_CI2);
90   m_layerpri[2] = k053251_get_priority(m_k053251, K053251_CI2);
9291
93   konami_sortlayers3(layer, state->m_layerpri);
92   konami_sortlayers3(layer, m_layerpri);
9493
9594   screen.machine().priority_bitmap.fill(0, cliprect);
9695   /* note the '+1' in the background color!!! */
9796   bitmap.fill(16 * bg_colorbase + 1, cliprect);
98   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, layer[0], 0, 1);
99   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, layer[1], 0, 2);
100   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, layer[2], 0, 4);
97   k052109_tilemap_draw(m_k052109, bitmap, cliprect, layer[0], 0, 1);
98   k052109_tilemap_draw(m_k052109, bitmap, cliprect, layer[1], 0, 2);
99   k052109_tilemap_draw(m_k052109, bitmap, cliprect, layer[2], 0, 4);
101100
102101/* this isn't supported anymore and it is unsure if still needed; keeping here for reference
103102    pdrawgfx_shadow_lowpri = 1; fix shadows of boulders in front of feet */
104   k053247_sprites_draw(state->m_k053246, bitmap, cliprect);
103   k053247_sprites_draw(m_k053246, bitmap, cliprect);
105104   return 0;
106105}
107106
108107
109SCREEN_UPDATE_IND16( xmen6p_left )
108UINT32 xmen_state::screen_update_xmen6p_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
110109{
111   xmen_state *state = screen.machine().driver_data<xmen_state>();
112110   int x, y;
113111
114112   for(y = 0; y < 32 * 8; y++)
115113   {
116114      UINT16* line_dest = &bitmap.pix16(y);
117      UINT16* line_src = &state->m_screen_left->pix16(y);
115      UINT16* line_src = &m_screen_left->pix16(y);
118116
119117      for (x = 12 * 8; x < 52 * 8; x++)
120118         line_dest[x] = line_src[x];
r17967r17968
123121   return 0;
124122}
125123
126SCREEN_UPDATE_IND16( xmen6p_right )
124UINT32 xmen_state::screen_update_xmen6p_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
127125{
128   xmen_state *state = screen.machine().driver_data<xmen_state>();
129126   int x, y;
130127
131128   for(y = 0; y < 32 * 8; y++)
132129   {
133130      UINT16* line_dest = &bitmap.pix16(y);
134      UINT16* line_src = &state->m_screen_right->pix16(y);
131      UINT16* line_src = &m_screen_right->pix16(y);
135132
136133      for (x = 12 * 8; x < 52 * 8; x++)
137134         line_dest[x] = line_src[x];
r17967r17968
141138}
142139
143140/* my lefts and rights are mixed up in several places.. */
144SCREEN_VBLANK( xmen6p )
141void xmen_state::screen_eof_xmen6p(screen_device &screen, bool state)
145142{
146143   // rising edge
147   if (vblank_on)
144   if (state)
148145   {
149      xmen_state *state = screen.machine().driver_data<xmen_state>();
150146      int layer[3], bg_colorbase;
151147      bitmap_ind16 * renderbitmap;
152148      rectangle cliprect;
r17967r17968
163159      {
164160
165161         /* copy the desired spritelist to the chip */
166         memcpy(state->m_k053247_ram, state->m_xmen6p_spriteramright, 0x1000);
162         memcpy(m_k053247_ram, m_xmen6p_spriteramright, 0x1000);
167163
168164         /* we write the entire content of the tileram to the chip to ensure
169165               everything gets marked as dirty and the desired tilemap is rendered
r17967r17968
172168         for (offset = 0; offset < (0xc000 / 2); offset++)
173169         {
174170   //          K052109_lsb_w
175            k052109_w(state->m_k052109, space, offset, state->m_xmen6p_tilemapright[offset] & 0x00ff);
171            k052109_w(m_k052109, space, offset, m_xmen6p_tilemapright[offset] & 0x00ff);
176172         }
177173
178174
179         renderbitmap = state->m_screen_right;
175         renderbitmap = m_screen_right;
180176      }
181177      else
182178      {
183179         /* copy the desired spritelist to the chip */
184         memcpy(state->m_k053247_ram, state->m_xmen6p_spriteramleft, 0x1000);
180         memcpy(m_k053247_ram, m_xmen6p_spriteramleft, 0x1000);
185181
186182         /* we write the entire content of the tileram to the chip to ensure
187183               everything gets marked as dirty and the desired tilemap is rendered
r17967r17968
191187         for (offset = 0; offset < (0xc000 / 2); offset++)
192188         {
193189   //          K052109_lsb_w
194            k052109_w(state->m_k052109, space, offset, state->m_xmen6p_tilemapleft[offset] & 0x00ff);
190            k052109_w(m_k052109, space, offset, m_xmen6p_tilemapleft[offset] & 0x00ff);
195191         }
196192
197193
198         renderbitmap = state->m_screen_left;
194         renderbitmap = m_screen_left;
199195      }
200196
201197
202      bg_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI4);
203      state->m_sprite_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI1);
204      state->m_layer_colorbase[0] = k053251_get_palette_index(state->m_k053251, K053251_CI3);
205      state->m_layer_colorbase[1] = k053251_get_palette_index(state->m_k053251, K053251_CI0);
206      state->m_layer_colorbase[2] = k053251_get_palette_index(state->m_k053251, K053251_CI2);
198      bg_colorbase = k053251_get_palette_index(m_k053251, K053251_CI4);
199      m_sprite_colorbase = k053251_get_palette_index(m_k053251, K053251_CI1);
200      m_layer_colorbase[0] = k053251_get_palette_index(m_k053251, K053251_CI3);
201      m_layer_colorbase[1] = k053251_get_palette_index(m_k053251, K053251_CI0);
202      m_layer_colorbase[2] = k053251_get_palette_index(m_k053251, K053251_CI2);
207203
208      k052109_tilemap_update(state->m_k052109);
204      k052109_tilemap_update(m_k052109);
209205
210206      layer[0] = 0;
211      state->m_layerpri[0] = k053251_get_priority(state->m_k053251, K053251_CI3);
207      m_layerpri[0] = k053251_get_priority(m_k053251, K053251_CI3);
212208      layer[1] = 1;
213      state->m_layerpri[1] = k053251_get_priority(state->m_k053251, K053251_CI0);
209      m_layerpri[1] = k053251_get_priority(m_k053251, K053251_CI0);
214210      layer[2] = 2;
215      state->m_layerpri[2] = k053251_get_priority(state->m_k053251, K053251_CI2);
211      m_layerpri[2] = k053251_get_priority(m_k053251, K053251_CI2);
216212
217      konami_sortlayers3(layer, state->m_layerpri);
213      konami_sortlayers3(layer, m_layerpri);
218214
219215      screen.machine().priority_bitmap.fill(0, cliprect);
220216      /* note the '+1' in the background color!!! */
221217      renderbitmap->fill(16 * bg_colorbase + 1, cliprect);
222      k052109_tilemap_draw(state->m_k052109, *renderbitmap, cliprect, layer[0], 0, 1);
223      k052109_tilemap_draw(state->m_k052109, *renderbitmap, cliprect, layer[1], 0, 2);
224      k052109_tilemap_draw(state->m_k052109, *renderbitmap, cliprect, layer[2], 0, 4);
218      k052109_tilemap_draw(m_k052109, *renderbitmap, cliprect, layer[0], 0, 1);
219      k052109_tilemap_draw(m_k052109, *renderbitmap, cliprect, layer[1], 0, 2);
220      k052109_tilemap_draw(m_k052109, *renderbitmap, cliprect, layer[2], 0, 4);
225221
226222   /* this isn't supported anymore and it is unsure if still needed; keeping here for reference
227223        pdrawgfx_shadow_lowpri = 1; fix shadows of boulders in front of feet */
228      k053247_sprites_draw(state->m_k053246, *renderbitmap, cliprect);
224      k053247_sprites_draw(m_k053246, *renderbitmap, cliprect);
229225   }
230226}
trunk/src/mame/video/nbmj8900.c
r17967r17968
385385
386386
387387******************************************************************************/
388SCREEN_UPDATE_IND16( nbmj8900 )
388UINT32 nbmj8900_state::screen_update_nbmj8900(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
389389{
390   nbmj8900_state *state = screen.machine().driver_data<nbmj8900_state>();
391390   int x, y;
392391
393   if (state->m_screen_refresh)
392   if (m_screen_refresh)
394393   {
395      state->m_screen_refresh = 0;
396      for (y = 0; y < state->m_screen_height; y++)
394      m_screen_refresh = 0;
395      for (y = 0; y < m_screen_height; y++)
397396      {
398         for (x = 0; x < state->m_screen_width; x++)
397         for (x = 0; x < m_screen_width; x++)
399398         {
400399            update_pixel0(screen.machine(), x, y);
401400         }
402401      }
403      if (state->m_gfxdraw_mode)
402      if (m_gfxdraw_mode)
404403      {
405         for (y = 0; y < state->m_screen_height; y++)
404         for (y = 0; y < m_screen_height; y++)
406405         {
407            for (x = 0; x < state->m_screen_width; x++)
406            for (x = 0; x < m_screen_width; x++)
408407            {
409408               update_pixel1(screen.machine(), x, y);
410409            }
r17967r17968
412411      }
413412   }
414413
415   if (state->m_dispflag)
414   if (m_dispflag)
416415   {
417416      int scrolly;
418      if (!state->m_flipscreen) scrolly =   state->m_scrolly;
419      else                      scrolly = (-state->m_scrolly) & 0xff;
417      if (!m_flipscreen) scrolly =   m_scrolly;
418      else                      scrolly = (-m_scrolly) & 0xff;
420419
421      if (state->m_gfxdraw_mode)
420      if (m_gfxdraw_mode)
422421      {
423         copyscrollbitmap(bitmap, state->m_tmpbitmap0, 0, 0, 0, 0, cliprect);
424         copyscrollbitmap_trans(bitmap, state->m_tmpbitmap1, 0, 0, 1, &scrolly, cliprect, 0xff);
422         copyscrollbitmap(bitmap, m_tmpbitmap0, 0, 0, 0, 0, cliprect);
423         copyscrollbitmap_trans(bitmap, m_tmpbitmap1, 0, 0, 1, &scrolly, cliprect, 0xff);
425424      }
426425      else
427426      {
428         copyscrollbitmap(bitmap, state->m_tmpbitmap0, 0, 0, 1, &scrolly, cliprect);
427         copyscrollbitmap(bitmap, m_tmpbitmap0, 0, 0, 1, &scrolly, cliprect);
429428      }
430429   }
431430   else
trunk/src/mame/video/silkroad.c
r17967r17968
134134   m_fg3_tilemap->set_transparent_pen(0);
135135}
136136
137SCREEN_UPDATE_IND16(silkroad)
137UINT32 silkroad_state::screen_update_silkroad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
138138{
139   silkroad_state *state = screen.machine().driver_data<silkroad_state>();
140139   screen.machine().priority_bitmap.fill(0, cliprect);
141140   bitmap.fill(0x7c0, cliprect);
142141
143   state->m_fg_tilemap->set_scrollx(0, ((state->m_regs[0] & 0xffff0000) >> 16) );
144   state->m_fg_tilemap->set_scrolly(0, (state->m_regs[0] & 0x0000ffff) >> 0 );
142   m_fg_tilemap->set_scrollx(0, ((m_regs[0] & 0xffff0000) >> 16) );
143   m_fg_tilemap->set_scrolly(0, (m_regs[0] & 0x0000ffff) >> 0 );
145144
146   state->m_fg3_tilemap->set_scrolly(0, (state->m_regs[1] & 0xffff0000) >> 16 );
147   state->m_fg3_tilemap->set_scrollx(0, (state->m_regs[2] & 0xffff0000) >> 16 );
145   m_fg3_tilemap->set_scrolly(0, (m_regs[1] & 0xffff0000) >> 16 );
146   m_fg3_tilemap->set_scrollx(0, (m_regs[2] & 0xffff0000) >> 16 );
148147
149   state->m_fg2_tilemap->set_scrolly(0, ((state->m_regs[5] & 0xffff0000) >> 16));
150   state->m_fg2_tilemap->set_scrollx(0, (state->m_regs[2] & 0x0000ffff) >> 0 );
148   m_fg2_tilemap->set_scrolly(0, ((m_regs[5] & 0xffff0000) >> 16));
149   m_fg2_tilemap->set_scrollx(0, (m_regs[2] & 0x0000ffff) >> 0 );
151150
152   state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
153   state->m_fg2_tilemap->draw(bitmap, cliprect, 0,1);
154   state->m_fg3_tilemap->draw(bitmap, cliprect, 0,2);
151   m_fg_tilemap->draw(bitmap, cliprect, 0,0);
152   m_fg2_tilemap->draw(bitmap, cliprect, 0,1);
153   m_fg3_tilemap->draw(bitmap, cliprect, 0,2);
155154   draw_sprites(screen.machine(),bitmap,cliprect);
156155
157156   if (0)
158157   {
159158       popmessage ("Regs %08x %08x %08x %08x %08x",
160      state->m_regs[0],
161      state->m_regs[1],
162      state->m_regs[2],
163      state->m_regs[4],
164      state->m_regs[5]);
159      m_regs[0],
160      m_regs[1],
161      m_regs[2],
162      m_regs[4],
163      m_regs[5]);
165164   }
166165
167166   return 0;
trunk/src/mame/video/atarifb.c
r17967r17968
173173}
174174
175175
176SCREEN_UPDATE_IND16( atarifb )
176UINT32 atarifb_state::screen_update_atarifb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
177177{
178178   draw_playfield_and_alpha(screen.machine(), bitmap, cliprect, 0, 0);
179179
r17967r17968
183183}
184184
185185
186SCREEN_UPDATE_IND16( abaseb )
186UINT32 atarifb_state::screen_update_abaseb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
187187{
188188   draw_playfield_and_alpha(screen.machine(), bitmap, cliprect, -8, 0);
189189
r17967r17968
193193}
194194
195195
196SCREEN_UPDATE_IND16( soccer )
196UINT32 atarifb_state::screen_update_soccer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
197197{
198198   draw_playfield_and_alpha(screen.machine(), bitmap, cliprect, 0, 8);
199199
trunk/src/mame/video/lethal.c
r17967r17968
100100   }
101101}
102102
103SCREEN_UPDATE_IND16(lethalen)
103UINT32 lethal_state::screen_update_lethalen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
104104{
105   lethal_state *state = screen.machine().driver_data<lethal_state>();
106105
107106   bitmap.fill(7168, cliprect);
108107   screen.machine().priority_bitmap.fill(0, cliprect);
109108
110   k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, 3, K056832_DRAW_FLAG_MIRROR, 1);
111   k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, 2, K056832_DRAW_FLAG_MIRROR, 2);
112   k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, 1, K056832_DRAW_FLAG_MIRROR, 4);
109   k056832_tilemap_draw(m_k056832, bitmap, cliprect, 3, K056832_DRAW_FLAG_MIRROR, 1);
110   k056832_tilemap_draw(m_k056832, bitmap, cliprect, 2, K056832_DRAW_FLAG_MIRROR, 2);
111   k056832_tilemap_draw(m_k056832, bitmap, cliprect, 1, K056832_DRAW_FLAG_MIRROR, 4);
113112
114   k053245_sprites_draw_lethal(state->m_k053244, bitmap, cliprect);
113   k053245_sprites_draw_lethal(m_k053244, bitmap, cliprect);
115114
116115   // force "A" layer over top of everything
117   k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, 0, K056832_DRAW_FLAG_MIRROR, 0);
116   k056832_tilemap_draw(m_k056832, bitmap, cliprect, 0, K056832_DRAW_FLAG_MIRROR, 0);
118117
119118   return 0;
120119}
trunk/src/mame/video/videopin.c
r17967r17968
3131}
3232
3333
34SCREEN_UPDATE_IND16( videopin )
34UINT32 videopin_state::screen_update_videopin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
3535{
36   videopin_state *state = screen.machine().driver_data<videopin_state>();
3736   int col;
3837   int row;
3938
40   state->m_bg_tilemap->set_scrollx(0, -8);   /* account for delayed loading of shift reg C6 */
39   m_bg_tilemap->set_scrollx(0, -8);   /* account for delayed loading of shift reg C6 */
4140
42   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
41   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
4342
4443   for (row = 0; row < 32; row++)
4544   {
4645      for (col = 0; col < 48; col++)
4746      {
48         UINT32 offset = state->m_bg_tilemap->memory_index(col, row);
47         UINT32 offset = m_bg_tilemap->memory_index(col, row);
4948
50         if (state->m_video_ram[offset] & 0x80)   /* ball bit found */
49         if (m_video_ram[offset] & 0x80)   /* ball bit found */
5150         {
5251            int x = 8 * col;
5352            int y = 8 * row;
r17967r17968
6059            rectangle rect(x, x + 15, y, y + 15);
6160            rect &= cliprect;
6261
63            x -= state->m_ball_x;
64            y -= state->m_ball_y;
62            x -= m_ball_x;
63            y -= m_ball_y;
6564
6665            /* ball placement is still 0.5 pixels off but don't tell anyone */
6766
trunk/src/mame/video/exprraid.c
r17967r17968
128128   }
129129}
130130
131SCREEN_UPDATE_IND16( exprraid )
131UINT32 exprraid_state::screen_update_exprraid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
132132{
133   exprraid_state *state = screen.machine().driver_data<exprraid_state>();
134   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
133   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
135134   draw_sprites(screen.machine(), bitmap, cliprect);
136   state->m_bg_tilemap->draw(bitmap, cliprect, 1, 0);
137   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
135   m_bg_tilemap->draw(bitmap, cliprect, 1, 0);
136   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
138137   return 0;
139138}
trunk/src/mame/video/tecmo16.c
r17967r17968
466466
467467/******************************************************************************/
468468
469SCREEN_UPDATE_RGB32( tecmo16 )
469UINT32 tecmo16_state::screen_update_tecmo16(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
470470{
471   tecmo16_state *state = screen.machine().driver_data<tecmo16_state>();
472471   screen.machine().priority_bitmap.fill(0, cliprect);
473472
474   state->m_tile_bitmap_bg.fill(0x300, cliprect);
475   state->m_tile_bitmap_fg.fill(0, cliprect);
476   state->m_sprite_bitmap.fill(0, cliprect);
473   m_tile_bitmap_bg.fill(0x300, cliprect);
474   m_tile_bitmap_fg.fill(0, cliprect);
475   m_sprite_bitmap.fill(0, cliprect);
477476
478477   /* draw tilemaps into a 16-bit bitmap */
479   state->m_bg_tilemap->draw(state->m_tile_bitmap_bg, cliprect, 0, 1);
480   state->m_fg_tilemap->draw(state->m_tile_bitmap_fg, cliprect, 0, 2);
478   m_bg_tilemap->draw(m_tile_bitmap_bg, cliprect, 0, 1);
479   m_fg_tilemap->draw(m_tile_bitmap_fg, cliprect, 0, 2);
481480   /* draw the blended tiles at a lower priority
482481       so sprites covered by them will still be drawn */
483   state->m_fg_tilemap->draw(state->m_tile_bitmap_fg, cliprect, 1, 0);
484   state->m_tx_tilemap->draw(state->m_tile_bitmap_fg, cliprect, 0, 4);
482   m_fg_tilemap->draw(m_tile_bitmap_fg, cliprect, 1, 0);
483   m_tx_tilemap->draw(m_tile_bitmap_fg, cliprect, 0, 4);
485484
486485   /* draw sprites into a 16-bit bitmap */
487   draw_sprites(screen.machine(), state->m_tile_bitmap_bg, state->m_tile_bitmap_fg, state->m_sprite_bitmap, cliprect);
486   draw_sprites(screen.machine(), m_tile_bitmap_bg, m_tile_bitmap_fg, m_sprite_bitmap, cliprect);
488487
489488   /* mix & blend the tilemaps and sprites into a 32-bit bitmap */
490   blendbitmaps(screen.machine(), bitmap, state->m_tile_bitmap_bg, state->m_tile_bitmap_fg, state->m_sprite_bitmap, 0, 0, cliprect);
489   blendbitmaps(screen.machine(), bitmap, m_tile_bitmap_bg, m_tile_bitmap_fg, m_sprite_bitmap, 0, 0, cliprect);
491490   return 0;
492491}
trunk/src/mame/video/naughtyb.c
r17967r17968
180180
181181
182182***************************************************************************/
183SCREEN_UPDATE_IND16( naughtyb )
183UINT32 naughtyb_state::screen_update_naughtyb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
184184{
185185   const rectangle scrollvisiblearea(2*8, 34*8-1, 0*8, 28*8-1);
186186   const rectangle leftvisiblearea(0*8, 2*8-1, 0*8, 28*8-1);
187187   const rectangle rightvisiblearea(34*8, 36*8-1, 0*8, 28*8-1);
188188
189   naughtyb_state *state = screen.machine().driver_data<naughtyb_state>();
190   UINT8 *videoram = state->m_videoram;
191   bitmap_ind16 &tmpbitmap = state->m_tmpbitmap;
189   UINT8 *videoram = m_videoram;
190   bitmap_ind16 &tmpbitmap = m_tmpbitmap;
192191   int offs;
193192
194193   // for every character in the Video RAM
r17967r17968
197196   {
198197      int sx,sy;
199198
200      if ( state->m_cocktail )
199      if ( m_cocktail )
201200      {
202201         if (offs < 0x700)
203202         {
r17967r17968
225224      }
226225
227226      drawgfx_opaque(tmpbitmap,tmpbitmap.cliprect(),screen.machine().gfx[0],
228            state->m_videoram2[offs] + 256 * state->m_bankreg,
229            (state->m_videoram2[offs] >> 5) + 8 * state->m_palreg,
230            state->m_cocktail,state->m_cocktail,
227            m_videoram2[offs] + 256 * m_bankreg,
228            (m_videoram2[offs] >> 5) + 8 * m_palreg,
229            m_cocktail,m_cocktail,
231230            8*sx,8*sy);
232231
233232      drawgfx_transpen(tmpbitmap,tmpbitmap.cliprect(),screen.machine().gfx[1],
234            videoram[offs] + 256*state->m_bankreg,
235            (videoram[offs] >> 5) + 8 * state->m_palreg,
236            state->m_cocktail,state->m_cocktail,
233            videoram[offs] + 256*m_bankreg,
234            (videoram[offs] >> 5) + 8 * m_palreg,
235            m_cocktail,m_cocktail,
237236            8*sx,8*sy,0);
238237   }
239238
r17967r17968
244243      copybitmap(bitmap,tmpbitmap,0,0,-66*8,0,leftvisiblearea);
245244      copybitmap(bitmap,tmpbitmap,0,0,-30*8,0,rightvisiblearea);
246245
247      scrollx = ( state->m_cocktail ) ? *state->m_scrollreg - 239 : -*state->m_scrollreg + 16;
246      scrollx = ( m_cocktail ) ? *m_scrollreg - 239 : -*m_scrollreg + 16;
248247      copyscrollbitmap(bitmap,tmpbitmap,1,&scrollx,0,0,scrollvisiblearea);
249248   }
250249   return 0;
trunk/src/mame/video/runaway.c
r17967r17968
8383
8484
8585
86SCREEN_UPDATE_IND16( runaway )
86UINT32 runaway_state::screen_update_runaway(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
8787{
88   runaway_state *state = screen.machine().driver_data<runaway_state>();
8988   int i;
9089
91   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
90   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
9291
9392   for (i = 0; i < 16; i++)
9493   {
95      unsigned code = state->m_sprite_ram[i] & 0x3f;
94      unsigned code = m_sprite_ram[i] & 0x3f;
9695
97      int x = state->m_sprite_ram[i + 0x20];
98      int y = state->m_sprite_ram[i + 0x10];
96      int x = m_sprite_ram[i + 0x20];
97      int y = m_sprite_ram[i + 0x10];
9998
100      int flipx = state->m_sprite_ram[i] & 0x40;
101      int flipy = state->m_sprite_ram[i] & 0x80;
99      int flipx = m_sprite_ram[i] & 0x40;
100      int flipy = m_sprite_ram[i] & 0x80;
102101
103      code |= (state->m_sprite_ram[i + 0x30] << 2) & 0x1c0;
102      code |= (m_sprite_ram[i + 0x30] << 2) & 0x1c0;
104103
105104      drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1],
106105         code,
r17967r17968
118117}
119118
120119
121SCREEN_UPDATE_IND16( qwak )
120UINT32 runaway_state::screen_update_qwak(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
122121{
123   runaway_state *state = screen.machine().driver_data<runaway_state>();
124122   int i;
125123
126   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
124   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
127125
128126   for (i = 0; i < 16; i++)
129127   {
130      unsigned code = state->m_sprite_ram[i] & 0x7f;
128      unsigned code = m_sprite_ram[i] & 0x7f;
131129
132      int x = state->m_sprite_ram[i + 0x20];
133      int y = state->m_sprite_ram[i + 0x10];
130      int x = m_sprite_ram[i + 0x20];
131      int y = m_sprite_ram[i + 0x10];
134132
135133      int flipx = 0;
136      int flipy = state->m_sprite_ram[i] & 0x80;
134      int flipy = m_sprite_ram[i] & 0x80;
137135
138      code |= (state->m_sprite_ram[i + 0x30] << 2) & 0x1c0;
136      code |= (m_sprite_ram[i + 0x30] << 2) & 0x1c0;
139137
140138      drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1],
141139         code,
trunk/src/mame/video/tumbleb.c
r17967r17968
322322   machine.device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, state->m_spriteram.bytes()/2);
323323}
324324
325SCREEN_UPDATE_IND16( tumblepb )
325UINT32 tumbleb_state::screen_update_tumblepb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
326326{
327   tumbleb_state *state = screen.machine().driver_data<tumbleb_state>();
328327   int offs, offs2;
329328
330   state->m_flipscreen = state->m_control_0[0] & 0x80;
331   screen.machine().tilemap().set_flip_all(state->m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
329   m_flipscreen = m_control_0[0] & 0x80;
330   screen.machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
332331
333   if (state->m_flipscreen)
332   if (m_flipscreen)
334333      offs = 1;
335334   else
336335      offs = -1;
337336
338   if (state->m_flipscreen)
337   if (m_flipscreen)
339338      offs2 = -3;
340339   else
341340      offs2 = -5;
r17967r17968
345344   return 0;
346345}
347346
348SCREEN_UPDATE_IND16( jumpkids )
347UINT32 tumbleb_state::screen_update_jumpkids(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
349348{
350   tumbleb_state *state = screen.machine().driver_data<tumbleb_state>();
351349   int offs, offs2;
352350
353   state->m_flipscreen = state->m_control_0[0] & 0x80;
354   screen.machine().tilemap().set_flip_all(state->m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
351   m_flipscreen = m_control_0[0] & 0x80;
352   screen.machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
355353
356   if (state->m_flipscreen)
354   if (m_flipscreen)
357355      offs = 1;
358356   else
359357      offs = -1;
360358
361   if (state->m_flipscreen)
359   if (m_flipscreen)
362360      offs2 = -3;
363361   else
364362      offs2 = -5;
r17967r17968
367365   return 0;
368366}
369367
370SCREEN_UPDATE_IND16( semicom )
368UINT32 tumbleb_state::screen_update_semicom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
371369{
372   tumbleb_state *state = screen.machine().driver_data<tumbleb_state>();
373370   int offs, offs2;
374371
375   state->m_flipscreen = state->m_control_0[0] & 0x80;
376   screen.machine().tilemap().set_flip_all(state->m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
372   m_flipscreen = m_control_0[0] & 0x80;
373   screen.machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
377374
378   if (state->m_flipscreen)
375   if (m_flipscreen)
379376      offs = 1;
380377   else
381378      offs = -1;
382379
383   if (state->m_flipscreen)
380   if (m_flipscreen)
384381      offs2 = -3;
385382   else
386383      offs2 = -5;
r17967r17968
389386   return 0;
390387}
391388
392SCREEN_UPDATE_IND16( semicom_altoffsets )
389UINT32 tumbleb_state::screen_update_semicom_altoffsets(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
393390{
394   tumbleb_state *state = screen.machine().driver_data<tumbleb_state>();
395391   int offsx, offsy, offsx2;
396392
397   state->m_flipscreen = state->m_control_0[0] & 0x80;
393   m_flipscreen = m_control_0[0] & 0x80;
398394
399395   offsx = -1;
400396   offsy = 2;
r17967r17968
405401   return 0;
406402}
407403
408SCREEN_UPDATE_IND16( bcstory )
404UINT32 tumbleb_state::screen_update_bcstory(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
409405{
410   tumbleb_state *state = screen.machine().driver_data<tumbleb_state>();
411406   int offs, offs2;
412407
413   state->m_flipscreen = state->m_control_0[0] & 0x80;
414   screen.machine().tilemap().set_flip_all(state->m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
408   m_flipscreen = m_control_0[0] & 0x80;
409   screen.machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
415410
416411   /* not sure of this */
417   if (state->m_flipscreen)
412   if (m_flipscreen)
418413      offs = 1;
419414   else
420415      offs = 8;
421416
422417   /* not sure of this */
423   if (state->m_flipscreen)
418   if (m_flipscreen)
424419      offs2 = -3;
425420   else
426421      offs2 = 8;
r17967r17968
429424   return 0;
430425}
431426
432SCREEN_UPDATE_IND16( semibase )
427UINT32 tumbleb_state::screen_update_semibase(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
433428{
434   tumbleb_state *state = screen.machine().driver_data<tumbleb_state>();
435429   int offs, offs2;
436430
437   state->m_flipscreen = state->m_control_0[0] & 0x80;
438   screen.machine().tilemap().set_flip_all(state->m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
431   m_flipscreen = m_control_0[0] & 0x80;
432   screen.machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
439433   offs = -1;
440434   offs2 = -2;
441435
r17967r17968
444438   return 0;
445439}
446440
447SCREEN_UPDATE_IND16( sdfight )
441UINT32 tumbleb_state::screen_update_sdfight(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
448442{
449   tumbleb_state *state = screen.machine().driver_data<tumbleb_state>();
450443   int offs, offs2;
451444
452   state->m_flipscreen = state->m_control_0[0] & 0x80;
453   screen.machine().tilemap().set_flip_all(state->m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
445   m_flipscreen = m_control_0[0] & 0x80;
446   screen.machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
454447   offs = -1;
455448   offs2 = -5; // foreground scroll..
456449
457450   tumbleb_draw_common(screen.machine(),bitmap,cliprect, offs2, -16, offs, 0);
458451
459   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, state->m_spriteram.bytes()/2);
452   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, m_spriteram.bytes()/2);
460453   return 0;
461454}
462455
463SCREEN_UPDATE_IND16( fncywld )
456UINT32 tumbleb_state::screen_update_fncywld(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
464457{
465   tumbleb_state *state = screen.machine().driver_data<tumbleb_state>();
466458   int offs, offs2;
467459
468   state->m_flipscreen = state->m_control_0[0] & 0x80;
469   screen.machine().tilemap().set_flip_all(state->m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
460   m_flipscreen = m_control_0[0] & 0x80;
461   screen.machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
470462
471   if (state->m_flipscreen)
463   if (m_flipscreen)
472464      offs = 1;
473465   else
474466      offs = -1;
475467
476   if (state->m_flipscreen)
468   if (m_flipscreen)
477469      offs2 = -3;
478470   else
479471      offs2 = -5;
r17967r17968
483475   return 0;
484476}
485477
486SCREEN_UPDATE_IND16( pangpang )
478UINT32 tumbleb_state::screen_update_pangpang(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
487479{
488   tumbleb_state *state = screen.machine().driver_data<tumbleb_state>();
489480   int offs, offs2;
490481
491   state->m_flipscreen = state->m_control_0[0] & 0x80;
492   screen.machine().tilemap().set_flip_all(state->m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
482   m_flipscreen = m_control_0[0] & 0x80;
483   screen.machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
493484
494   if (state->m_flipscreen)
485   if (m_flipscreen)
495486      offs = 1;
496487   else
497488      offs = -1;
498489
499   if (state->m_flipscreen)
490   if (m_flipscreen)
500491      offs2 = -3;
501492   else
502493      offs2 = -5;
r17967r17968
507498
508499
509500
510SCREEN_UPDATE_IND16( suprtrio )
501UINT32 tumbleb_state::screen_update_suprtrio(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
511502{
512   tumbleb_state *state = screen.machine().driver_data<tumbleb_state>();
513503
514   state->m_pf1_alt_tilemap->set_scrollx(0, -state->m_control[1] - 6);
515   state->m_pf1_alt_tilemap->set_scrolly(0, -state->m_control[2]);
516   state->m_pf2_tilemap->set_scrollx(0, -state->m_control[3] - 2);
517   state->m_pf2_tilemap->set_scrolly(0, -state->m_control[4]);
504   m_pf1_alt_tilemap->set_scrollx(0, -m_control[1] - 6);
505   m_pf1_alt_tilemap->set_scrolly(0, -m_control[2]);
506   m_pf2_tilemap->set_scrollx(0, -m_control[3] - 2);
507   m_pf2_tilemap->set_scrolly(0, -m_control[4]);
518508
519   state->m_pf2_tilemap->draw(bitmap, cliprect, 0, 0);
520   state->m_pf1_alt_tilemap->draw(bitmap, cliprect, 0, 0);
509   m_pf2_tilemap->draw(bitmap, cliprect, 0, 0);
510   m_pf1_alt_tilemap->draw(bitmap, cliprect, 0, 0);
521511
522   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, state->m_spriteram.bytes()/2);
512   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, m_spriteram.bytes()/2);
523513   return 0;
524514}
525515
trunk/src/mame/video/toypop.c
r17967r17968
270270}
271271
272272
273SCREEN_UPDATE_IND16( toypop )
273UINT32 toypop_state::screen_update_toypop(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
274274{
275   toypop_state *state = screen.machine().driver_data<toypop_state>();
276275   draw_background(screen.machine(), bitmap);
277   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
278   draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram);
276   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
277   draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram);
279278   return 0;
280279}
trunk/src/mame/video/momoko.c
r17967r17968
101101
102102/****************************************************************************/
103103
104SCREEN_UPDATE_IND16( momoko )
104UINT32 momoko_state::screen_update_momoko(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
105105{
106   momoko_state *state = screen.machine().driver_data<momoko_state>();
107106   int x, y, dx, dy, rx, ry, radr, chr, sy, fx, fy, px, py, offs, col, pri, flip ;
108   UINT8 *spriteram = state->m_spriteram;
107   UINT8 *spriteram = m_spriteram;
109108
110109   UINT8 *BG_MAP     = screen.machine().root_device().memregion("user1")->base();
111110   UINT8 *BG_COL_MAP = screen.machine().root_device().memregion("user2")->base();
112111   UINT8 *FG_MAP     = screen.machine().root_device().memregion("user3")->base();
113   UINT8 *TEXT_COLOR = state->memregion("proms")->base();
112   UINT8 *TEXT_COLOR = memregion("proms")->base();
114113
115114
116   flip = state->m_flipscreen ^ (screen.machine().root_device().ioport("FAKE")->read() & 0x01);
115   flip = m_flipscreen ^ (screen.machine().root_device().ioport("FAKE")->read() & 0x01);
117116
118117   /* draw BG layer */
119   dx = (7 - state->m_bg_scrollx[0]) & 7;
120   dy = (7 - state->m_bg_scrolly[0]) & 7;
121   rx = (state->m_bg_scrollx[0] + state->m_bg_scrollx[1] * 256) >> 3;
122   ry = (state->m_bg_scrolly[0] + state->m_bg_scrolly[1] * 256) >> 3;
118   dx = (7 - m_bg_scrollx[0]) & 7;
119   dy = (7 - m_bg_scrolly[0]) & 7;
120   rx = (m_bg_scrollx[0] + m_bg_scrollx[1] * 256) >> 3;
121   ry = (m_bg_scrolly[0] + m_bg_scrolly[1] * 256) >> 3;
123122
124   if (state->m_bg_mask == 0)
123   if (m_bg_mask == 0)
125124   {
126125      for (y = 0; y < 29; y++)
127126      {
r17967r17968
129128         {
130129            radr = ((ry + y + 2) & 0x3ff) * 128 + ((rx + x) & 0x7f);
131130            chr = BG_MAP[radr];
132            col = BG_COL_MAP[chr + state->m_bg_select * 512 + state->m_bg_priority * 256] & 0x0f;
133            chr = chr + state->m_bg_select * 512;
131            col = BG_COL_MAP[chr + m_bg_select * 512 + m_bg_priority * 256] & 0x0f;
132            chr = chr + m_bg_select * 512;
134133
135134            if (flip == 0)
136135            {
r17967r17968
186185
187186
188187   /* draw BG layer */
189   if (state->m_bg_mask ==0)
188   if (m_bg_mask ==0)
190189   {
191190      for (y = 0; y < 29; y++)
192191      {
r17967r17968
194193         {
195194            radr = ((ry + y + 2) & 0x3ff) * 128 + ((rx + x) & 0x7f) ;
196195            chr = BG_MAP[radr] ;
197            col = BG_COL_MAP[chr + state->m_bg_select * 512 + state->m_bg_priority * 256];
196            col = BG_COL_MAP[chr + m_bg_select * 512 + m_bg_priority * 256];
198197            pri = (col & 0x10) >> 1;
199198
200199            if (flip == 0)
r17967r17968
210209            if (pri != 0)
211210            {
212211               col = col & 0x0f;
213               chr = chr + state->m_bg_select * 512;
212               chr = chr + m_bg_select * 512;
214213               momoko_draw_bg_pri(screen.machine(), bitmap, chr, col, flip, flip, px, py, pri);
215214            }
216215         }
r17967r17968
219218
220219
221220   /* draw sprites (others) */
222   for (offs = 9 * 4; offs < state->m_spriteram.bytes(); offs += 4)
221   for (offs = 9 * 4; offs < m_spriteram.bytes(); offs += 4)
223222   {
224223      chr = spriteram[offs + 1] | ((spriteram[offs + 2] & 0x60) << 3);
225224      chr = ((chr & 0x380) << 1) | (chr & 0x7f);
r17967r17968
253252      for (x = 0; x < 32; x++)
254253      {
255254         sy = y;
256         if (state->m_text_mode == 0)
255         if (m_text_mode == 0)
257256            col = TEXT_COLOR[(sy >> 3) + 0x100] & 0x0f;
258257         else
259258         {
260259            if (TEXT_COLOR[y] < 0x08)
261               sy += state->m_text_scrolly;
260               sy += m_text_scrolly;
262261            col = (TEXT_COLOR[y] & 0x07) + 0x10;
263262         }
264263         dy = sy & 7;
r17967r17968
273272            py = 255 - y;
274273         }
275274         drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[0],
276            state->m_videoram[(sy >> 3) * 32 + x] * 8 + dy,
275            m_videoram[(sy >> 3) * 32 + x] * 8 + dy,
277276            col,
278277            flip,0,
279278            px,py,0);
r17967r17968
282281
283282
284283   /* draw FG layer */
285   if (state->m_fg_mask == 0)
284   if (m_fg_mask == 0)
286285   {
287      dx = (7 - state->m_fg_scrollx) & 7;
288      dy = (7 - state->m_fg_scrolly) & 7;
289      rx = state->m_fg_scrollx >> 3;
290      ry = state->m_fg_scrolly >> 3;
286      dx = (7 - m_fg_scrollx) & 7;
287      dy = (7 - m_fg_scrolly) & 7;
288      rx = m_fg_scrollx >> 3;
289      ry = m_fg_scrolly >> 3;
291290
292291      for (y = 0; y < 29; y++)
293292      {
294293         for (x = 0; x < 32; x++)
295294         {
296            radr = ((ry + y + 34) & 0x3f) * 0x20 + ((rx + x) & 0x1f) + (state->m_fg_select & 3) * 0x800;
295            radr = ((ry + y + 34) & 0x3f) * 0x20 + ((rx + x) & 0x1f) + (m_fg_select & 3) * 0x800;
297296            chr = FG_MAP[radr] ;
298297            if (flip == 0)
299298            {
trunk/src/mame/video/digdug.c
r17967r17968
308308}
309309
310310
311SCREEN_UPDATE_IND16( digdug )
311UINT32 digdug_state::screen_update_digdug(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
312312{
313   digdug_state *state =  screen.machine().driver_data<digdug_state>();
314313
315   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
316   state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
314   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
315   m_fg_tilemap->draw(bitmap, cliprect, 0,0);
317316   draw_sprites(screen.machine(),bitmap,cliprect);
318317   return 0;
319318}
trunk/src/mame/video/kchamp.c
r17967r17968
124124}
125125
126126
127SCREEN_UPDATE_IND16( kchamp )
127UINT32 kchamp_state::screen_update_kchamp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
128128{
129   kchamp_state *state = screen.machine().driver_data<kchamp_state>();
130129
131   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
130   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
132131   kchamp_draw_sprites(screen.machine(), bitmap, cliprect);
133132   return 0;
134133}
135134
136SCREEN_UPDATE_IND16( kchampvs )
135UINT32 kchamp_state::screen_update_kchampvs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
137136{
138   kchamp_state *state = screen.machine().driver_data<kchamp_state>();
139137
140   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
138   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
141139   kchampvs_draw_sprites(screen.machine(), bitmap, cliprect);
142140   return 0;
143141}
trunk/src/mame/video/ultratnk.c
r17967r17968
5454}
5555
5656
57SCREEN_UPDATE_IND16( ultratnk )
57UINT32 ultratnk_state::screen_update_ultratnk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
5858{
59   ultratnk_state *state = screen.machine().driver_data<ultratnk_state>();
60   UINT8 *videoram = state->m_videoram;
59   UINT8 *videoram = m_videoram;
6160   int i;
6261
63   state->m_playfield->draw(bitmap, cliprect, 0, 0);
62   m_playfield->draw(bitmap, cliprect, 0, 0);
6463
6564   for (i = 0; i < 4; i++)
6665   {
r17967r17968
8988}
9089
9190
92SCREEN_VBLANK( ultratnk )
91void ultratnk_state::screen_eof_ultratnk(screen_device &screen, bool state)
9392{
9493   // rising edge
95   if (vblank_on)
94   if (state)
9695   {
97      ultratnk_state *state = screen.machine().driver_data<ultratnk_state>();
9896      int i;
9997      UINT16 BG = colortable_entry_get_value(screen.machine().colortable, 0);
10098      device_t *discrete = screen.machine().device("discrete");
101      UINT8 *videoram = state->m_videoram;
99      UINT8 *videoram = m_videoram;
102100
103101      /* check for sprite-playfield collisions */
104102
r17967r17968
122120
123121         rect &= screen.machine().primary_screen->visible_area();
124122
125         state->m_playfield->draw(state->m_helper, rect, 0, 0);
123         m_playfield->draw(m_helper, rect, 0, 0);
126124
127125         if (code & 4)
128126            bank = 32;
129127
130         drawgfx_transpen(state->m_helper, rect, screen.machine().gfx[1],
128         drawgfx_transpen(m_helper, rect, screen.machine().gfx[1],
131129            (code >> 3) | bank,
132130            4,
133131            0, 0,
r17967r17968
136134
137135         for (y = rect.min_y; y <= rect.max_y; y++)
138136            for (x = rect.min_x; x <= rect.max_x; x++)
139               if (colortable_entry_get_value(screen.machine().colortable, state->m_helper.pix16(y, x)) != BG)
140                  state->m_collision[i] = 1;
137               if (colortable_entry_get_value(screen.machine().colortable, m_helper.pix16(y, x)) != BG)
138                  m_collision[i] = 1;
141139      }
142140
143141      /* update sound status */
trunk/src/mame/video/m90.c
r17967r17968
292292   markdirty(m_pf2_wide_layer,m_video_control_data[6] & 0x2,offset);
293293}
294294
295SCREEN_UPDATE_IND16( m90 )
295UINT32 m90_state::screen_update_m90(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
296296{
297   m90_state *state = screen.machine().driver_data<m90_state>();
298   UINT8 pf1_base = state->m_video_control_data[5] & 0x3;
299   UINT8 pf2_base = state->m_video_control_data[6] & 0x3;
297   UINT8 pf1_base = m_video_control_data[5] & 0x3;
298   UINT8 pf2_base = m_video_control_data[6] & 0x3;
300299   int i,pf1_enable,pf2_enable, video_enable;
301300
302   if (state->m_video_control_data[7]&0x04) video_enable=0; else video_enable=1;
303   if (state->m_video_control_data[5]&0x10) pf1_enable=0; else pf1_enable=1;
304   if (state->m_video_control_data[6]&0x10) pf2_enable=0; else pf2_enable=1;
301   if (m_video_control_data[7]&0x04) video_enable=0; else video_enable=1;
302   if (m_video_control_data[5]&0x10) pf1_enable=0; else pf1_enable=1;
303   if (m_video_control_data[6]&0x10) pf2_enable=0; else pf2_enable=1;
305304
306// state->m_pf1_layer->enable(pf1_enable);
307// state->m_pf2_layer->enable(pf2_enable);
308// state->m_pf1_wide_layer->enable(pf1_enable);
309// state->m_pf2_wide_layer->enable(pf2_enable);
305// m_pf1_layer->enable(pf1_enable);
306// m_pf2_layer->enable(pf2_enable);
307// m_pf1_wide_layer->enable(pf1_enable);
308// m_pf2_wide_layer->enable(pf2_enable);
310309
311310   /* Dirty tilemaps if VRAM base changes */
312   if (pf1_base!=state->m_last_pf1)
311   if (pf1_base!=m_last_pf1)
313312   {
314      state->m_pf1_layer->mark_all_dirty();
315      state->m_pf1_wide_layer->mark_all_dirty();
313      m_pf1_layer->mark_all_dirty();
314      m_pf1_wide_layer->mark_all_dirty();
316315   }
317   if (pf2_base!=state->m_last_pf2)
316   if (pf2_base!=m_last_pf2)
318317   {
319      state->m_pf2_layer->mark_all_dirty();
320      state->m_pf2_wide_layer->mark_all_dirty();
318      m_pf2_layer->mark_all_dirty();
319      m_pf2_wide_layer->mark_all_dirty();
321320   }
322   state->m_last_pf1=pf1_base;
323   state->m_last_pf2=pf2_base;
321   m_last_pf1=pf1_base;
322   m_last_pf2=pf2_base;
324323
325324   /* Setup scrolling */
326   if (state->m_video_control_data[5]&0x20)
325   if (m_video_control_data[5]&0x20)
327326   {
328      state->m_pf1_layer->set_scroll_rows(512);
329      state->m_pf1_wide_layer->set_scroll_rows(512);
327      m_pf1_layer->set_scroll_rows(512);
328      m_pf1_wide_layer->set_scroll_rows(512);
330329
331330      for (i=0; i<512; i++)
332         state->m_pf1_layer->set_scrollx(i, state->m_video_data[0xf000/2+i]+2);
331         m_pf1_layer->set_scrollx(i, m_video_data[0xf000/2+i]+2);
333332      for (i=0; i<512; i++)
334         state->m_pf1_wide_layer->set_scrollx(i, state->m_video_data[0xf000/2+i]+256+2);
333         m_pf1_wide_layer->set_scrollx(i, m_video_data[0xf000/2+i]+256+2);
335334
336335   }
337336   else
338337   {
339      state->m_pf1_layer->set_scroll_rows(1);
340      state->m_pf1_wide_layer->set_scroll_rows(1);
341      state->m_pf1_layer->set_scrollx(0, state->m_video_control_data[1]+2);
342      state->m_pf1_wide_layer->set_scrollx(0, state->m_video_control_data[1]+256+2);
338      m_pf1_layer->set_scroll_rows(1);
339      m_pf1_wide_layer->set_scroll_rows(1);
340      m_pf1_layer->set_scrollx(0, m_video_control_data[1]+2);
341      m_pf1_wide_layer->set_scrollx(0, m_video_control_data[1]+256+2);
343342   }
344343
345344   /* Setup scrolling */
346   if (state->m_video_control_data[6]&0x20)
345   if (m_video_control_data[6]&0x20)
347346   {
348      state->m_pf2_layer->set_scroll_rows(512);
349      state->m_pf2_wide_layer->set_scroll_rows(512);
347      m_pf2_layer->set_scroll_rows(512);
348      m_pf2_wide_layer->set_scroll_rows(512);
350349      for (i=0; i<512; i++)
351         state->m_pf2_layer->set_scrollx(i, state->m_video_data[0xf400/2+i]-2);
350         m_pf2_layer->set_scrollx(i, m_video_data[0xf400/2+i]-2);
352351      for (i=0; i<512; i++)
353         state->m_pf2_wide_layer->set_scrollx(i, state->m_video_data[0xf400/2+i]+256-2);
352         m_pf2_wide_layer->set_scrollx(i, m_video_data[0xf400/2+i]+256-2);
354353   } else {
355      state->m_pf2_layer->set_scroll_rows(1);
356      state->m_pf2_wide_layer->set_scroll_rows(1);
357      state->m_pf2_layer->set_scrollx(0, state->m_video_control_data[3]-2);
358      state->m_pf2_wide_layer->set_scrollx(0, state->m_video_control_data[3]+256-2 );
354      m_pf2_layer->set_scroll_rows(1);
355      m_pf2_wide_layer->set_scroll_rows(1);
356      m_pf2_layer->set_scrollx(0, m_video_control_data[3]-2);
357      m_pf2_wide_layer->set_scrollx(0, m_video_control_data[3]+256-2 );
359358   }
360359
361360   screen.machine().priority_bitmap.fill(0, cliprect);
r17967r17968
366365      if (pf2_enable)
367366      {
368367         // use the playfield 2 y-offset table for each scanline
369         if (state->m_video_control_data[6] & 0x40)
368         if (m_video_control_data[6] & 0x40)
370369         {
371370            int line;
372371            rectangle clip;
r17967r17968
377376            {
378377               clip.min_y = clip.max_y = line;
379378
380               if (state->m_video_control_data[6] & 0x4)
379               if (m_video_control_data[6] & 0x4)
381380               {
382                  state->m_pf2_wide_layer->set_scrolly(0, 0x200 + state->m_video_data[0xfc00/2 + line]);
383                  state->m_pf2_wide_layer->draw(bitmap, clip, 0,0);
384                  state->m_pf2_wide_layer->draw(bitmap, clip, 1,1);
381                  m_pf2_wide_layer->set_scrolly(0, 0x200 + m_video_data[0xfc00/2 + line]);
382                  m_pf2_wide_layer->draw(bitmap, clip, 0,0);
383                  m_pf2_wide_layer->draw(bitmap, clip, 1,1);
385384               } else {
386                  state->m_pf2_layer->set_scrolly(0, 0x200 + state->m_video_data[0xfc00/2 + line]);
387                  state->m_pf2_layer->draw(bitmap, clip, 0,0);
388                  state->m_pf2_layer->draw(bitmap, clip, 1,1);
385                  m_pf2_layer->set_scrolly(0, 0x200 + m_video_data[0xfc00/2 + line]);
386                  m_pf2_layer->draw(bitmap, clip, 0,0);
387                  m_pf2_layer->draw(bitmap, clip, 1,1);
389388               }
390389            }
391390         }
392391         else
393392         {
394            if (state->m_video_control_data[6] & 0x4)
393            if (m_video_control_data[6] & 0x4)
395394            {
396               state->m_pf2_wide_layer->set_scrolly(0, state->m_video_control_data[2] );
397               state->m_pf2_wide_layer->draw(bitmap, cliprect, 0,0);
398               state->m_pf2_wide_layer->draw(bitmap, cliprect, 1,1);
395               m_pf2_wide_layer->set_scrolly(0, m_video_control_data[2] );
396               m_pf2_wide_layer->draw(bitmap, cliprect, 0,0);
397               m_pf2_wide_layer->draw(bitmap, cliprect, 1,1);
399398            } else {
400               state->m_pf2_layer->set_scrolly(0, state->m_video_control_data[2] );
401               state->m_pf2_layer->draw(bitmap, cliprect, 0,0);
402               state->m_pf2_layer->draw(bitmap, cliprect, 1,1);
399               m_pf2_layer->set_scrolly(0, m_video_control_data[2] );
400               m_pf2_layer->draw(bitmap, cliprect, 0,0);
401               m_pf2_layer->draw(bitmap, cliprect, 1,1);
403402            }
404403         }
405404      }
r17967r17968
411410      if (pf1_enable)
412411      {
413412         // use the playfield 1 y-offset table for each scanline
414         if (state->m_video_control_data[5] & 0x40)
413         if (m_video_control_data[5] & 0x40)
415414         {
416415            int line;
417416            rectangle clip;
r17967r17968
422421            {
423422               clip.min_y = clip.max_y = line;
424423
425               if (state->m_video_control_data[5] & 0x4)
424               if (m_video_control_data[5] & 0x4)
426425               {
427                  state->m_pf1_wide_layer->set_scrolly(0, 0x200 + state->m_video_data[0xf800/2 + line]);
428                  state->m_pf1_wide_layer->draw(bitmap, clip, 0,0);
429                  state->m_pf1_wide_layer->draw(bitmap, clip, 1,1);
426                  m_pf1_wide_layer->set_scrolly(0, 0x200 + m_video_data[0xf800/2 + line]);
427                  m_pf1_wide_layer->draw(bitmap, clip, 0,0);
428                  m_pf1_wide_layer->draw(bitmap, clip, 1,1);
430429               } else {
431                  state->m_pf1_layer->set_scrolly(0, 0x200 + state->m_video_data[0xf800/2 + line]);
432                  state->m_pf1_layer->draw(bitmap, clip, 0,0);
433                  state->m_pf1_layer->draw(bitmap, clip, 1,1);
430                  m_pf1_layer->set_scrolly(0, 0x200 + m_video_data[0xf800/2 + line]);
431                  m_pf1_layer->draw(bitmap, clip, 0,0);
432                  m_pf1_layer->draw(bitmap, clip, 1,1);
434433               }
435434            }
436435         }
437436         else
438437         {
439            if (state->m_video_control_data[5] & 0x4)
438            if (m_video_control_data[5] & 0x4)
440439            {
441               state->m_pf1_wide_layer->set_scrolly(0, state->m_video_control_data[0] );
442               state->m_pf1_wide_layer->draw(bitmap, cliprect, 0,0);
443               state->m_pf1_wide_layer->draw(bitmap, cliprect, 1,1);
440               m_pf1_wide_layer->set_scrolly(0, m_video_control_data[0] );
441               m_pf1_wide_layer->draw(bitmap, cliprect, 0,0);
442               m_pf1_wide_layer->draw(bitmap, cliprect, 1,1);
444443            } else {
445               state->m_pf1_layer->set_scrolly(0, state->m_video_control_data[0] );
446               state->m_pf1_layer->draw(bitmap, cliprect, 0,0);
447               state->m_pf1_layer->draw(bitmap, cliprect, 1,1);
444               m_pf1_layer->set_scrolly(0, m_video_control_data[0] );
445               m_pf1_layer->draw(bitmap, cliprect, 0,0);
446               m_pf1_layer->draw(bitmap, cliprect, 1,1);
448447            }
449448         }
450449      }
r17967r17968
458457   return 0;
459458}
460459
461SCREEN_UPDATE_IND16( bomblord )
460UINT32 m90_state::screen_update_bomblord(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
462461{
463   m90_state *state = screen.machine().driver_data<m90_state>();
464462   int i;
465463   screen.machine().priority_bitmap.fill(0, cliprect);
466464   bitmap.fill(get_black_pen(screen.machine()), cliprect);
467465
468466   /* Setup scrolling */
469   if (state->m_video_control_data[6]&0x20) {
470      state->m_pf1_layer->set_scroll_rows(512);
471      state->m_pf1_wide_layer->set_scroll_rows(512);
467   if (m_video_control_data[6]&0x20) {
468      m_pf1_layer->set_scroll_rows(512);
469      m_pf1_wide_layer->set_scroll_rows(512);
472470      for (i=0; i<512; i++)
473         state->m_pf1_layer->set_scrollx(i, state->m_video_data[0xf400/2+i]-12);
471         m_pf1_layer->set_scrollx(i, m_video_data[0xf400/2+i]-12);
474472      for (i=0; i<512; i++)
475         state->m_pf1_wide_layer->set_scrollx(i, state->m_video_data[0xf400/2+i]-12+256);
473         m_pf1_wide_layer->set_scrollx(i, m_video_data[0xf400/2+i]-12+256);
476474   } else {
477      state->m_pf1_layer->set_scroll_rows(1);
478      state->m_pf1_wide_layer->set_scroll_rows(1);
479      state->m_pf1_layer->set_scrollx(0,  state->m_video_data[0xf004/2]-12);
480      state->m_pf1_wide_layer->set_scrollx(0, state->m_video_data[0xf004/2]-12 );
475      m_pf1_layer->set_scroll_rows(1);
476      m_pf1_wide_layer->set_scroll_rows(1);
477      m_pf1_layer->set_scrollx(0,  m_video_data[0xf004/2]-12);
478      m_pf1_wide_layer->set_scrollx(0, m_video_data[0xf004/2]-12 );
481479   }
482480
483   if (state->m_video_control_data[6] & 0x02) {
484      state->m_pf2_wide_layer->mark_all_dirty();
485      state->m_pf2_wide_layer->set_scrollx(0, state->m_video_data[0xf000/2]-16 );
486      state->m_pf2_wide_layer->set_scrolly(0, state->m_video_data[0xf008/2]+388 );
487      state->m_pf2_wide_layer->draw(bitmap, cliprect, 0,0);
488      state->m_pf2_wide_layer->draw(bitmap, cliprect, 1,1);
481   if (m_video_control_data[6] & 0x02) {
482      m_pf2_wide_layer->mark_all_dirty();
483      m_pf2_wide_layer->set_scrollx(0, m_video_data[0xf000/2]-16 );
484      m_pf2_wide_layer->set_scrolly(0, m_video_data[0xf008/2]+388 );
485      m_pf2_wide_layer->draw(bitmap, cliprect, 0,0);
486      m_pf2_wide_layer->draw(bitmap, cliprect, 1,1);
489487   } else {
490      state->m_pf2_layer->mark_all_dirty();
491      state->m_pf2_layer->set_scrollx(0, state->m_video_data[0xf000/2]-16 );
492      state->m_pf2_layer->set_scrolly(0, state->m_video_data[0xf008/2]-120 );
493      state->m_pf2_layer->draw(bitmap, cliprect, 0,0);
494      state->m_pf2_layer->draw(bitmap, cliprect, 1,1);
488      m_pf2_layer->mark_all_dirty();
489      m_pf2_layer->set_scrollx(0, m_video_data[0xf000/2]-16 );
490      m_pf2_layer->set_scrolly(0, m_video_data[0xf008/2]-120 );
491      m_pf2_layer->draw(bitmap, cliprect, 0,0);
492      m_pf2_layer->draw(bitmap, cliprect, 1,1);
495493   }
496494
497   if (state->m_video_control_data[6] & 0x04) {
498      state->m_pf1_wide_layer->mark_all_dirty();
499      state->m_pf1_wide_layer->set_scrolly(0, state->m_video_data[0xf00c/2]+392 );
500      state->m_pf1_wide_layer->draw(bitmap, cliprect, 0,0);
501      state->m_pf1_wide_layer->draw(bitmap, cliprect, 1,1);
495   if (m_video_control_data[6] & 0x04) {
496      m_pf1_wide_layer->mark_all_dirty();
497      m_pf1_wide_layer->set_scrolly(0, m_video_data[0xf00c/2]+392 );
498      m_pf1_wide_layer->draw(bitmap, cliprect, 0,0);
499      m_pf1_wide_layer->draw(bitmap, cliprect, 1,1);
502500   } else {
503      state->m_pf1_layer->mark_all_dirty();
504      state->m_pf1_layer->set_scrolly(0, state->m_video_data[0xf00c/2]-116 );
505      state->m_pf1_layer->draw(bitmap, cliprect, 0,0);
506      state->m_pf1_layer->draw(bitmap, cliprect, 1,1);
501      m_pf1_layer->mark_all_dirty();
502      m_pf1_layer->set_scrolly(0, m_video_data[0xf00c/2]-116 );
503      m_pf1_layer->draw(bitmap, cliprect, 0,0);
504      m_pf1_layer->draw(bitmap, cliprect, 1,1);
507505   }
508506
509507   bomblord_draw_sprites(screen.machine(),bitmap,cliprect);
r17967r17968
511509   return 0;
512510}
513511
514SCREEN_UPDATE_IND16( dynablsb )
512UINT32 m90_state::screen_update_dynablsb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
515513{
516   m90_state *state = screen.machine().driver_data<m90_state>();
517514   screen.machine().priority_bitmap.fill(0, cliprect);
518515   bitmap.fill(get_black_pen(screen.machine()), cliprect);
519516
520   if (!(state->m_video_data[0xf008/2] & 0x4000)) {
521      state->m_pf1_wide_layer->mark_all_dirty();
522      state->m_pf1_wide_layer->set_scroll_rows(1);
523      state->m_pf1_wide_layer->set_scrollx(0, state->m_video_data[0xf004/2]+64);
524      state->m_pf1_wide_layer->set_scrolly(0, state->m_video_data[0xf006/2]+512);
525      state->m_pf1_wide_layer->draw(bitmap, cliprect, 0,0);
526      state->m_pf1_wide_layer->draw(bitmap, cliprect, 1,1);
517   if (!(m_video_data[0xf008/2] & 0x4000)) {
518      m_pf1_wide_layer->mark_all_dirty();
519      m_pf1_wide_layer->set_scroll_rows(1);
520      m_pf1_wide_layer->set_scrollx(0, m_video_data[0xf004/2]+64);
521      m_pf1_wide_layer->set_scrolly(0, m_video_data[0xf006/2]+512);
522      m_pf1_wide_layer->draw(bitmap, cliprect, 0,0);
523      m_pf1_wide_layer->draw(bitmap, cliprect, 1,1);
527524   } else {
528      state->m_pf1_layer->mark_all_dirty();
529      state->m_pf1_layer->set_scroll_rows(1);
530      state->m_pf1_layer->set_scrollx(0, state->m_video_data[0xf004/2]+64);
531      state->m_pf1_layer->set_scrolly(0, state->m_video_data[0xf006/2]+4);
532      state->m_pf1_layer->draw(bitmap, cliprect, 0,0);
533      state->m_pf1_layer->draw(bitmap, cliprect, 1,1);
525      m_pf1_layer->mark_all_dirty();
526      m_pf1_layer->set_scroll_rows(1);
527      m_pf1_layer->set_scrollx(0, m_video_data[0xf004/2]+64);
528      m_pf1_layer->set_scrolly(0, m_video_data[0xf006/2]+4);
529      m_pf1_layer->draw(bitmap, cliprect, 0,0);
530      m_pf1_layer->draw(bitmap, cliprect, 1,1);
534531   }
535532
536   if (!(state->m_video_data[0xf008/2] & 0x8000)) {
537      state->m_pf2_wide_layer->mark_all_dirty();
538      state->m_pf2_wide_layer->set_scroll_rows(1);
539      state->m_pf2_wide_layer->set_scrollx(0, state->m_video_data[0xf000/2]+68);
540      state->m_pf2_wide_layer->set_scrolly(0, state->m_video_data[0xf002/2]+512);
541      state->m_pf2_wide_layer->draw(bitmap, cliprect, 0,0);
542      state->m_pf2_wide_layer->draw(bitmap, cliprect, 1,1);
533   if (!(m_video_data[0xf008/2] & 0x8000)) {
534      m_pf2_wide_layer->mark_all_dirty();
535      m_pf2_wide_layer->set_scroll_rows(1);
536      m_pf2_wide_layer->set_scrollx(0, m_video_data[0xf000/2]+68);
537      m_pf2_wide_layer->set_scrolly(0, m_video_data[0xf002/2]+512);
538      m_pf2_wide_layer->draw(bitmap, cliprect, 0,0);
539      m_pf2_wide_layer->draw(bitmap, cliprect, 1,1);
543540   } else {
544      state->m_pf2_layer->mark_all_dirty();
545      state->m_pf2_layer->set_scroll_rows(1);
546      state->m_pf2_layer->set_scrollx(0, state->m_video_data[0xf000/2]+68);
547      state->m_pf2_layer->set_scrolly(0, state->m_video_data[0xf002/2]+4);
548      state->m_pf2_layer->draw(bitmap, cliprect, 0,0);
549      state->m_pf2_layer->draw(bitmap, cliprect, 1,1);
541      m_pf2_layer->mark_all_dirty();
542      m_pf2_layer->set_scroll_rows(1);
543      m_pf2_layer->set_scrollx(0, m_video_data[0xf000/2]+68);
544      m_pf2_layer->set_scrolly(0, m_video_data[0xf002/2]+4);
545      m_pf2_layer->draw(bitmap, cliprect, 0,0);
546      m_pf2_layer->draw(bitmap, cliprect, 1,1);
550547   }
551548
552549   dynablsb_draw_sprites(screen.machine(),bitmap,cliprect);
trunk/src/mame/video/gunbustr.c
r17967r17968
201201                SCREEN REFRESH
202202**************************************************************/
203203
204SCREEN_UPDATE_IND16( gunbustr )
204UINT32 gunbustr_state::screen_update_gunbustr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
205205{
206206   device_t *tc0480scp = screen.machine().device("tc0480scp");
207207   UINT8 layer[5];
trunk/src/mame/video/scotrsht.c
r17967r17968
133133   m_bg_tilemap->set_scroll_cols(64);
134134}
135135
136SCREEN_UPDATE_IND16( scotrsht )
136UINT32 scotrsht_state::screen_update_scotrsht(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
137137{
138   scotrsht_state *state = screen.machine().driver_data<scotrsht_state>();
139138   int col;
140139
141140   for (col = 0; col < 32; col++)
142      state->m_bg_tilemap->set_scrolly(col, state->m_scroll[col]);
141      m_bg_tilemap->set_scrolly(col, m_scroll[col]);
143142
144   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
143   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
145144   draw_sprites(screen.machine(), bitmap, cliprect);
146145   return 0;
147146}
trunk/src/mame/video/taito_z.c
r17967r17968
837837}
838838
839839
840SCREEN_UPDATE_IND16( contcirc )
840UINT32 taitoz_state::screen_update_contcirc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
841841{
842   taitoz_state *state = screen.machine().driver_data<taitoz_state>();
843842   UINT8 layer[3];
844843
845   tc0100scn_tilemap_update(state->m_tc0100scn);
844   tc0100scn_tilemap_update(m_tc0100scn);
846845
847   layer[0] = tc0100scn_bottomlayer(state->m_tc0100scn);
846   layer[0] = tc0100scn_bottomlayer(m_tc0100scn);
848847   layer[1] = layer[0] ^ 1;
849848   layer[2] = 2;
850849
r17967r17968
852851
853852   bitmap.fill(0, cliprect);
854853
855   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[0], 0, 0);
856   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[1], 0, 1);
857   tc0150rod_draw(state->m_tc0150rod, bitmap, cliprect, -3, state->m_road_palbank << 6, 1, 0, 1, 2);   // -6
858   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
854   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[0], 0, 0);
855   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[1], 0, 1);
856   tc0150rod_draw(m_tc0150rod, bitmap, cliprect, -3, m_road_palbank << 6, 1, 0, 1, 2);   // -6
857   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
859858
860859   contcirc_draw_sprites_16x8(screen.machine(), bitmap, cliprect, 5);   // 7
861860   return 0;
r17967r17968
864863
865864/* Nightstr and ChaseHQ */
866865
867SCREEN_UPDATE_IND16( chasehq )
866UINT32 taitoz_state::screen_update_chasehq(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
868867{
869   taitoz_state *state = screen.machine().driver_data<taitoz_state>();
870868   UINT8 layer[3];
871869
872   tc0100scn_tilemap_update(state->m_tc0100scn);
870   tc0100scn_tilemap_update(m_tc0100scn);
873871
874   layer[0] = tc0100scn_bottomlayer(state->m_tc0100scn);
872   layer[0] = tc0100scn_bottomlayer(m_tc0100scn);
875873   layer[1] = layer[0] ^ 1;
876874   layer[2] = 2;
877875
r17967r17968
880878   /* Ensure screen blanked even when bottom layer not drawn due to disable bit */
881879   bitmap.fill(0, cliprect);
882880
883   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0);
884   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[1], 0, 1);
885   tc0150rod_draw(state->m_tc0150rod, bitmap, cliprect, -1, 0xc0, 0, 0, 1, 2);
886   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
881   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0);
882   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[1], 0, 1);
883   tc0150rod_draw(m_tc0150rod, bitmap, cliprect, -1, 0xc0, 0, 0, 1, 2);
884   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
887885
888886   chasehq_draw_sprites_16x16(screen.machine(), bitmap, cliprect, 7);
889887   return 0;
890888}
891889
892890
893SCREEN_UPDATE_IND16( bshark )
891UINT32 taitoz_state::screen_update_bshark(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
894892{
895   taitoz_state *state = screen.machine().driver_data<taitoz_state>();
896893   UINT8 layer[3];
897894
898   tc0100scn_tilemap_update(state->m_tc0100scn);
895   tc0100scn_tilemap_update(m_tc0100scn);
899896
900   layer[0] = tc0100scn_bottomlayer(state->m_tc0100scn);
897   layer[0] = tc0100scn_bottomlayer(m_tc0100scn);
901898   layer[1] = layer[0] ^ 1;
902899   layer[2] = 2;
903900
r17967r17968
906903   /* Ensure screen blanked even when bottom layer not drawn due to disable bit */
907904   bitmap.fill(0, cliprect);
908905
909   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0);
910   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[1], 0, 1);
911   tc0150rod_draw(state->m_tc0150rod, bitmap, cliprect, -1, 0xc0, 0, 1, 1, 2);
912   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
906   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0);
907   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[1], 0, 1);
908   tc0150rod_draw(m_tc0150rod, bitmap, cliprect, -1, 0xc0, 0, 1, 1, 2);
909   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
913910
914911   bshark_draw_sprites_16x8(screen.machine(), bitmap, cliprect, 8);
915912   return 0;
916913}
917914
918915
919SCREEN_UPDATE_IND16( sci )
916UINT32 taitoz_state::screen_update_sci(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
920917{
921   taitoz_state *state = screen.machine().driver_data<taitoz_state>();
922918   UINT8 layer[3];
923919
924   tc0100scn_tilemap_update(state->m_tc0100scn);
920   tc0100scn_tilemap_update(m_tc0100scn);
925921
926   layer[0] = tc0100scn_bottomlayer(state->m_tc0100scn);
922   layer[0] = tc0100scn_bottomlayer(m_tc0100scn);
927923   layer[1] = layer[0] ^ 1;
928924   layer[2] = 2;
929925
r17967r17968
932928   /* Ensure screen blanked even when bottom layer not drawn due to disable bit */
933929   bitmap.fill(0, cliprect);
934930
935   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0);
936   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[1], 0, 1);
937   tc0150rod_draw(state->m_tc0150rod, bitmap, cliprect, -1, 0xc0, 0, 0, 1, 2);
938   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
931   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0);
932   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[1], 0, 1);
933   tc0150rod_draw(m_tc0150rod, bitmap, cliprect, -1, 0xc0, 0, 0, 1, 2);
934   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
939935
940936   sci_draw_sprites_16x8(screen.machine(), bitmap, cliprect, 6);
941937   return 0;
942938}
943939
944940
945SCREEN_UPDATE_IND16( aquajack )
941UINT32 taitoz_state::screen_update_aquajack(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
946942{
947   taitoz_state *state = screen.machine().driver_data<taitoz_state>();
948943   UINT8 layer[3];
949944
950   tc0100scn_tilemap_update(state->m_tc0100scn);
945   tc0100scn_tilemap_update(m_tc0100scn);
951946
952   layer[0] = tc0100scn_bottomlayer(state->m_tc0100scn);
947   layer[0] = tc0100scn_bottomlayer(m_tc0100scn);
953948   layer[1] = layer[0] ^ 1;
954949   layer[2] = 2;
955950
r17967r17968
958953   /* Ensure screen blanked even when bottom layer not drawn due to disable bit */
959954   bitmap.fill(0, cliprect);
960955
961   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0);
962   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[1], 0, 1);
963   tc0150rod_draw(state->m_tc0150rod, bitmap, cliprect, -1, 0, 2, 1, 1, 2);
964   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
956   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0);
957   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[1], 0, 1);
958   tc0150rod_draw(m_tc0150rod, bitmap, cliprect, -1, 0, 2, 1, 1, 2);
959   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
965960
966961   aquajack_draw_sprites_16x8(screen.machine(), bitmap, cliprect, 3);
967962   return 0;
968963}
969964
970965
971SCREEN_UPDATE_IND16( spacegun )
966UINT32 taitoz_state::screen_update_spacegun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
972967{
973   taitoz_state *state = screen.machine().driver_data<taitoz_state>();
974968   UINT8 layer[3];
975969
976   tc0100scn_tilemap_update(state->m_tc0100scn);
970   tc0100scn_tilemap_update(m_tc0100scn);
977971
978   layer[0] = tc0100scn_bottomlayer(state->m_tc0100scn);
972   layer[0] = tc0100scn_bottomlayer(m_tc0100scn);
979973   layer[1] = layer[0] ^ 1;
980974   layer[2] = 2;
981975
r17967r17968
984978   /* Ensure screen blanked even when bottom layer not drawn due to disable bit */
985979   bitmap.fill(0, cliprect);
986980
987   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
988   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[1], 0, 2);
989   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
981   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
982   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[1], 0, 2);
983   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
990984
991985   spacegun_draw_sprites_16x8(screen.machine(), bitmap, cliprect, 4);
992986
r17967r17968
994988}
995989
996990
997SCREEN_UPDATE_IND16( dblaxle )
991UINT32 taitoz_state::screen_update_dblaxle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
998992{
999   taitoz_state *state = screen.machine().driver_data<taitoz_state>();
1000993   UINT8 layer[5];
1001994   UINT16 priority;
1002995
1003   tc0480scp_tilemap_update(state->m_tc0480scp);
996   tc0480scp_tilemap_update(m_tc0480scp);
1004997
1005   priority = tc0480scp_get_bg_priority(state->m_tc0480scp);
998   priority = tc0480scp_get_bg_priority(m_tc0480scp);
1006999
10071000   layer[0] = (priority & 0xf000) >> 12;   /* tells us which bg layer is bottom */
10081001   layer[1] = (priority & 0x0f00) >>  8;
r17967r17968
10151008   /* Ensure screen blanked - this shouldn't be necessary! */
10161009   bitmap.fill(0, cliprect);
10171010
1018   tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0);
1019   tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[1], 0, 0);
1020   tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[2], 0, 1);
1011   tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0);
1012   tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[1], 0, 0);
1013   tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[2], 0, 1);
10211014
1022   tc0150rod_draw(state->m_tc0150rod, bitmap, cliprect, -1, 0xc0, 0, 0, 1, 2);
1015   tc0150rod_draw(m_tc0150rod, bitmap, cliprect, -1, 0xc0, 0, 0, 1, 2);
10231016   bshark_draw_sprites_16x8(screen.machine(), bitmap, cliprect, 7);
10241017
10251018   /* This layer used for the big numeric displays */
1026   tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[3], 0, 4);
1019   tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[3], 0, 4);
10271020
1028   tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[4], 0, 0);   /* Text layer */
1021   tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[4], 0, 0);   /* Text layer */
10291022   return 0;
10301023}
10311024
10321025
1033SCREEN_UPDATE_IND16( racingb )
1026UINT32 taitoz_state::screen_update_racingb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
10341027{
1035   taitoz_state *state = screen.machine().driver_data<taitoz_state>();
10361028   UINT8 layer[5];
10371029   UINT16 priority;
10381030
1039   tc0480scp_tilemap_update(state->m_tc0480scp);
1031   tc0480scp_tilemap_update(m_tc0480scp);
10401032
1041   priority = tc0480scp_get_bg_priority(state->m_tc0480scp);
1033   priority = tc0480scp_get_bg_priority(m_tc0480scp);
10421034
10431035   layer[0] = (priority & 0xf000) >> 12;   /* tells us which bg layer is bottom */
10441036   layer[1] = (priority & 0x0f00) >>  8;
r17967r17968
10511043   /* Ensure screen blanked - this shouldn't be necessary! */
10521044   bitmap.fill(0, cliprect);
10531045
1054   tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0);
1055   tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[1], 0, 0);
1056   tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[2], 0, 2);
1057   tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[3], 0, 2);
1046   tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0);
1047   tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[1], 0, 0);
1048   tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[2], 0, 2);
1049   tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[3], 0, 2);
10581050
1059   tc0150rod_draw(state->m_tc0150rod, bitmap, cliprect, -1, 0xc0, 0, 0, 1, 2);
1051   tc0150rod_draw(m_tc0150rod, bitmap, cliprect, -1, 0xc0, 0, 0, 1, 2);
10601052   sci_draw_sprites_16x8(screen.machine(), bitmap, cliprect, 7);
10611053
1062   tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[4], 0, 4);
1054   tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[4], 0, 4);
10631055   return 0;
10641056}
trunk/src/mame/video/phoenix.c
r17967r17968
443443
444444***************************************************************************/
445445
446SCREEN_UPDATE_IND16( phoenix )
446UINT32 phoenix_state::screen_update_phoenix(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
447447{
448   phoenix_state *state = screen.machine().driver_data<phoenix_state>();
449   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
450   state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
448   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
449   m_fg_tilemap->draw(bitmap, cliprect, 0,0);
451450   return 0;
452451}
trunk/src/mame/video/msisaac.c
r17967r17968
230230   }
231231}
232232
233SCREEN_UPDATE_IND16( msisaac )
233UINT32 msisaac_state::screen_update_msisaac(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
234234{
235   msisaac_state *state = screen.machine().driver_data<msisaac_state>();
236   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
237   state->m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
235   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
236   m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
238237   draw_sprites(screen.machine(), bitmap, cliprect);
239   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
238   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
240239   return 0;
241240}
trunk/src/mame/video/markham.c
r17967r17968
115115   }
116116}
117117
118SCREEN_UPDATE_IND16( markham )
118UINT32 markham_state::screen_update_markham(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
119119{
120   markham_state *state = screen.machine().driver_data<markham_state>();
121120   int i;
122121
123122   for (i = 0; i < 32; i++)
124123   {
125124      if ((i > 3) && (i < 16))
126         state->m_bg_tilemap->set_scrollx(i, state->m_xscroll[0]);
125         m_bg_tilemap->set_scrollx(i, m_xscroll[0]);
127126      if (i >= 16)
128         state->m_bg_tilemap->set_scrollx(i, state->m_xscroll[1]);
127         m_bg_tilemap->set_scrollx(i, m_xscroll[1]);
129128   }
130129
131   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
130   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
132131   draw_sprites(screen.machine(), bitmap, cliprect);
133132   return 0;
134133}
trunk/src/mame/video/superqix.c
r17967r17968
216216   }
217217}
218218
219SCREEN_UPDATE_IND16( pbillian )
219UINT32 superqix_state::screen_update_pbillian(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
220220{
221   superqix_state *state = screen.machine().driver_data<superqix_state>();
222   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
221   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
223222   pbillian_draw_sprites(screen.machine(), bitmap,cliprect);
224223
225224   return 0;
226225}
227226
228SCREEN_UPDATE_IND16( superqix )
227UINT32 superqix_state::screen_update_superqix(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
229228{
230   superqix_state *state = screen.machine().driver_data<superqix_state>();
231   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
232   copybitmap_trans(bitmap,*state->m_fg_bitmap[state->m_show_bitmap],state->flip_screen(),state->flip_screen(),0,0,cliprect,0);
229   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
230   copybitmap_trans(bitmap,*m_fg_bitmap[m_show_bitmap],flip_screen(),flip_screen(),0,0,cliprect,0);
233231   superqix_draw_sprites(screen.machine(), bitmap,cliprect);
234   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
232   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
235233   return 0;
236234}
trunk/src/mame/video/dday.c
r17967r17968
303303
304304***************************************************************************/
305305
306SCREEN_UPDATE_IND16( dday )
306UINT32 dday_state::screen_update_dday(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
307307{
308   dday_state *state = screen.machine().driver_data<dday_state>();
309308
310   state->m_bg_tilemap->draw(state->m_main_bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
311   state->m_fg_tilemap->draw(state->m_main_bitmap, cliprect, 0, 0);
312   state->m_bg_tilemap->draw(state->m_main_bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
313   state->m_text_tilemap->draw(state->m_main_bitmap, cliprect, 0, 0);
309   m_bg_tilemap->draw(m_main_bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
310   m_fg_tilemap->draw(m_main_bitmap, cliprect, 0, 0);
311   m_bg_tilemap->draw(m_main_bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
312   m_text_tilemap->draw(m_main_bitmap, cliprect, 0, 0);
314313
315   if (state->m_sl_enable)
314   if (m_sl_enable)
316315   {
317316      /* apply shadow */
318317      int x, y;
319318
320      bitmap_ind16 &sl_bitmap = state->m_sl_tilemap->pixmap();
319      bitmap_ind16 &sl_bitmap = m_sl_tilemap->pixmap();
321320
322321      for (x = cliprect.min_x; x <= cliprect.max_x; x++)
323322         for (y = cliprect.min_y; y <= cliprect.max_y; y++)
324323         {
325            UINT16 src_pixel = state->m_main_bitmap.pix16(y, x);
324            UINT16 src_pixel = m_main_bitmap.pix16(y, x);
326325
327326            if (sl_bitmap.pix16(y, x) == 0xff)
328327               src_pixel += screen.machine().total_colors();
r17967r17968
331330         }
332331   }
333332   else
334      copybitmap(bitmap, state->m_main_bitmap, 0, 0, 0, 0, cliprect);
333      copybitmap(bitmap, m_main_bitmap, 0, 0, 0, 0, cliprect);
335334
336335   return 0;
337336}
trunk/src/mame/video/playch10.c
r17967r17968
113113
114114***************************************************************************/
115115
116SCREEN_UPDATE_IND16( playch10_single )
116UINT32 playch10_state::screen_update_playch10_single(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
117117{
118   playch10_state *state = screen.machine().driver_data<playch10_state>();
119118   ppu2c0x_device *ppu = screen.machine().device<ppu2c0x_device>("ppu");
120119
121120   rectangle top_monitor = screen.visible_area();
122121
123122   top_monitor.max_y = ( top_monitor.max_y - top_monitor.min_y ) / 2;
124123
125   if(state->m_pc10_dispmask_old != state->m_pc10_dispmask)
124   if(m_pc10_dispmask_old != m_pc10_dispmask)
126125   {
127      state->m_pc10_dispmask_old = state->m_pc10_dispmask;
126      m_pc10_dispmask_old = m_pc10_dispmask;
128127
129      if(state->m_pc10_dispmask)
130         state->m_pc10_game_mode ^= 1;
128      if(m_pc10_dispmask)
129         m_pc10_game_mode ^= 1;
131130   }
132131
133   if ( state->m_pc10_game_mode )
132   if ( m_pc10_game_mode )
134133      /* render the ppu */
135134      ppu->render(bitmap, 0, 0, 0, 0 );
136135   else
137136   {
138137      /* When the bios is accessing vram, the video circuitry can't access it */
139      if ( !state->m_pc10_sdcs )
140         state->m_bg_tilemap->draw(bitmap, top_monitor, 0, 0);
138      if ( !m_pc10_sdcs )
139         m_bg_tilemap->draw(bitmap, top_monitor, 0, 0);
141140   }
142141   return 0;
143142}
144143
145SCREEN_UPDATE_IND16( playch10_top )
144UINT32 playch10_state::screen_update_playch10_top(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
146145{
147   playch10_state *state = screen.machine().driver_data<playch10_state>();
148146   ppu2c0x_device *ppu = screen.machine().device<ppu2c0x_device>("ppu");
149147
150148   /* Single Monitor version */
151   if (state->m_pc10_bios != 1)
152      return SCREEN_UPDATE16_CALL(playch10_single);
149   if (m_pc10_bios != 1)
150      return SCREEN_UPDATE16_CALL_MEMBER(playch10_single);
153151
154   if (!state->m_pc10_dispmask)
152   if (!m_pc10_dispmask)
155153      /* render the ppu */
156154      ppu->render(bitmap, 0, 0, 0, 0);
157155   else
r17967r17968
160158   return 0;
161159}
162160
163SCREEN_UPDATE_IND16( playch10_bottom )
161UINT32 playch10_state::screen_update_playch10_bottom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
164162{
165   playch10_state *state = screen.machine().driver_data<playch10_state>();
166163
167164   /* Single Monitor version */
168   if (state->m_pc10_bios != 1)
169      return SCREEN_UPDATE16_CALL(playch10_single);
165   if (m_pc10_bios != 1)
166      return SCREEN_UPDATE16_CALL_MEMBER(playch10_single);
170167
171168   /* When the bios is accessing vram, the video circuitry can't access it */
172169
173   if ( !state->m_pc10_sdcs )
174      state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
170   if ( !m_pc10_sdcs )
171      m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
175172   else
176173      bitmap.fill(0, cliprect);
177174
trunk/src/mame/video/cyberbal.c
r17967r17968
377377}
378378
379379
380SCREEN_UPDATE_IND16( cyberbal_left )
380UINT32 cyberbal_state::screen_update_cyberbal_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
381381{
382382   return update_one_screen(screen, bitmap, cliprect, 0);
383383}
384384
385SCREEN_UPDATE_IND16( cyberbal_right )
385UINT32 cyberbal_state::screen_update_cyberbal_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
386386{
387387   return update_one_screen(screen, bitmap, cliprect, 1);
388388}
389389
390SCREEN_UPDATE_IND16( cyberbal2p )
390UINT32 cyberbal_state::screen_update_cyberbal2p(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
391391{
392392   return update_one_screen(screen, bitmap, cliprect, 0);
393393}
trunk/src/mame/video/lockon.c
r17967r17968
920920   save_pointer(NAME(m_obj_pal_ram), 2048);
921921}
922922
923SCREEN_UPDATE_IND16( lockon )
923UINT32 lockon_state::screen_update_lockon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
924924{
925   lockon_state *state = screen.machine().driver_data<lockon_state>();
926925
927926   /* If screen output is disabled, fill with black */
928   if (!BIT(state->m_ctrl_reg, 7))
927   if (!BIT(m_ctrl_reg, 7))
929928   {
930929      bitmap.fill(get_black_pen(screen.machine()), cliprect);
931930      return 0;
r17967r17968
935934   rotate_draw(screen.machine(), bitmap, cliprect);
936935
937936   /* Draw the character tilemap */
938   state->m_tilemap->draw(bitmap, cliprect, 0, 0);
937   m_tilemap->draw(bitmap, cliprect, 0, 0);
939938
940939   /* Draw the HUD */
941940   hud_draw(screen.machine(), bitmap, cliprect);
r17967r17968
943942   return 0;
944943}
945944
946SCREEN_VBLANK( lockon )
945void lockon_state::screen_eof_lockon(screen_device &screen, bool state)
947946{
948947   // on falling edge
949   if (!vblank_on)
948   if (!state)
950949   {
951      lockon_state *state = screen.machine().driver_data<lockon_state>();
952950
953951      /* Swap the frame buffers */
954      bitmap_ind16 *tmp = state->m_front_buffer;
955      state->m_front_buffer = state->m_back_buffer;
956      state->m_back_buffer = tmp;
952      bitmap_ind16 *tmp = m_front_buffer;
953      m_front_buffer = m_back_buffer;
954      m_back_buffer = tmp;
957955
958956      /* Draw the frame buffer layers */
959957      scene_draw(screen.machine());
trunk/src/mame/video/mappy.c
r17967r17968
533533}
534534
535535
536SCREEN_UPDATE_IND16( superpac )
536UINT32 mappy_state::screen_update_superpac(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
537537{
538   mappy_state *state = screen.machine().driver_data<mappy_state>();
539   bitmap_ind16 &sprite_bitmap = state->m_sprite_bitmap;
538   bitmap_ind16 &sprite_bitmap = m_sprite_bitmap;
540539   int x,y;
541540
542   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES,0);
541   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES,0);
543542
544543   sprite_bitmap.fill(15, cliprect);
545   mappy_draw_sprites(screen.machine(),sprite_bitmap,cliprect,state->m_spriteram);
544   mappy_draw_sprites(screen.machine(),sprite_bitmap,cliprect,m_spriteram);
546545   copybitmap_trans(bitmap,sprite_bitmap,0,0,0,0,cliprect,15);
547546
548547   /* Redraw the high priority characters */
549   state->m_bg_tilemap->draw(bitmap, cliprect, 1,0);
548   m_bg_tilemap->draw(bitmap, cliprect, 1,0);
550549
551550   /* sprite color 0/1 still has priority over that (ghost eyes in Pac 'n Pal) */
552551   for (y = 0;y < sprite_bitmap.height();y++)
r17967r17968
562561   return 0;
563562}
564563
565SCREEN_UPDATE_IND16( phozon )
564UINT32 mappy_state::screen_update_phozon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
566565{
567   mappy_state *state = screen.machine().driver_data<mappy_state>();
568566
569567   /* flip screen control is embedded in RAM */
570   state->flip_screen_set(state->m_spriteram[0x1f7f-0x800] & 1);
568   flip_screen_set(m_spriteram[0x1f7f-0x800] & 1);
571569
572   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES,0);
570   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES,0);
573571
574   phozon_draw_sprites(screen.machine(),bitmap,cliprect,state->m_spriteram);
572   phozon_draw_sprites(screen.machine(),bitmap,cliprect,m_spriteram);
575573
576574   /* Redraw the high priority characters */
577   state->m_bg_tilemap->draw(bitmap, cliprect, 1,0);
575   m_bg_tilemap->draw(bitmap, cliprect, 1,0);
578576   return 0;
579577}
580578
581SCREEN_UPDATE_IND16( mappy )
579UINT32 mappy_state::screen_update_mappy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
582580{
583   mappy_state *state = screen.machine().driver_data<mappy_state>();
584581   int offs;
585582
586583   for (offs = 2;offs < 34;offs++)
587      state->m_bg_tilemap->set_scrolly(offs,state->m_scroll);
584      m_bg_tilemap->set_scrolly(offs,m_scroll);
588585
589   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES,0);
586   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES,0);
590587
591   mappy_draw_sprites(screen.machine(),bitmap,cliprect,state->m_spriteram);
588   mappy_draw_sprites(screen.machine(),bitmap,cliprect,m_spriteram);
592589
593590   /* Redraw the high priority characters */
594   state->m_bg_tilemap->draw(bitmap, cliprect, 1,0);
591   m_bg_tilemap->draw(bitmap, cliprect, 1,0);
595592   return 0;
596593}
trunk/src/mame/video/rastan.c
r17967r17968
3030
3131/***************************************************************************/
3232
33SCREEN_UPDATE_IND16( rastan )
33UINT32 rastan_state::screen_update_rastan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
3434{
35   rastan_state *state = screen.machine().driver_data<rastan_state>();
3635   int layer[2];
3736
38   pc080sn_tilemap_update(state->m_pc080sn);
37   pc080sn_tilemap_update(m_pc080sn);
3938
4039   layer[0] = 0;
4140   layer[1] = 1;
4241
4342   screen.machine().priority_bitmap.fill(0, cliprect);
4443
45   pc080sn_tilemap_draw(state->m_pc080sn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
46   pc080sn_tilemap_draw(state->m_pc080sn, bitmap, cliprect, layer[1], 0, 2);
44   pc080sn_tilemap_draw(m_pc080sn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
45   pc080sn_tilemap_draw(m_pc080sn, bitmap, cliprect, layer[1], 0, 2);
4746
48   pc090oj_draw_sprites(state->m_pc090oj, bitmap, cliprect, 0);
47   pc090oj_draw_sprites(m_pc090oj, bitmap, cliprect, 0);
4948   return 0;
5049}
trunk/src/mame/video/gijoe.c
r17967r17968
7474   save_item(NAME(m_layer_pri));
7575}
7676
77SCREEN_UPDATE_IND16( gijoe )
77UINT32 gijoe_state::screen_update_gijoe(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
7878{
79   gijoe_state *state = screen.machine().driver_data<gijoe_state>();
8079   static const int K053251_CI[4] = { K053251_CI1, K053251_CI2, K053251_CI3, K053251_CI4 };
8180   int layer[4];
8281   int vrc_mode, vrc_new, colorbase_new, /*primode,*/ dirty, i;
8382   int mask = 0;
8483
8584   // update tile offsets
86   k056832_read_avac(state->m_k056832, &vrc_mode, &vrc_new);
85   k056832_read_avac(m_k056832, &vrc_mode, &vrc_new);
8786
8887   if (vrc_mode)
8988   {
9089      for (dirty = 0xf000; dirty; dirty >>= 4)
91         if ((state->m_avac_vrc & dirty) != (vrc_new & dirty))
90         if ((m_avac_vrc & dirty) != (vrc_new & dirty))
9291            mask |= dirty;
9392
94      state->m_avac_vrc = vrc_new;
95      state->m_avac_bits[0] = vrc_new << 4  & 0xf000;
96      state->m_avac_bits[1] = vrc_new       & 0xf000;
97      state->m_avac_bits[2] = vrc_new << 8  & 0xf000;
98      state->m_avac_bits[3] = vrc_new << 12 & 0xf000;
93      m_avac_vrc = vrc_new;
94      m_avac_bits[0] = vrc_new << 4  & 0xf000;
95      m_avac_bits[1] = vrc_new       & 0xf000;
96      m_avac_bits[2] = vrc_new << 8  & 0xf000;
97      m_avac_bits[3] = vrc_new << 12 & 0xf000;
9998   }
10099   else
101      state->m_avac_bits[3] = state->m_avac_bits[2] = state->m_avac_bits[1] = state->m_avac_bits[0] = 0xf000;
100      m_avac_bits[3] = m_avac_bits[2] = m_avac_bits[1] = m_avac_bits[0] = 0xf000;
102101
103102   // update color info and refresh tilemaps
104   state->m_sprite_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI0);
103   m_sprite_colorbase = k053251_get_palette_index(m_k053251, K053251_CI0);
105104
106105   for (i = 0; i < 4; i++)
107106   {
108107      dirty = 0;
109      colorbase_new = k053251_get_palette_index(state->m_k053251, K053251_CI[i]);
110      if (state->m_layer_colorbase[i] != colorbase_new)
108      colorbase_new = k053251_get_palette_index(m_k053251, K053251_CI[i]);
109      if (m_layer_colorbase[i] != colorbase_new)
111110      {
112         state->m_layer_colorbase[i] = colorbase_new;
111         m_layer_colorbase[i] = colorbase_new;
113112         dirty = 1;
114113      }
115      if (state->m_avac_occupancy[i] & mask)
114      if (m_avac_occupancy[i] & mask)
116115         dirty = 1;
117116
118117      if (dirty)
119118      {
120         state->m_avac_occupancy[i] = 0;
121         k056832_mark_plane_dirty(state->m_k056832, i);
119         m_avac_occupancy[i] = 0;
120         k056832_mark_plane_dirty(m_k056832, i);
122121      }
123122   }
124123
r17967r17968
128127        written to the layer's X-scroll register otherwise the chip expects totally
129128        different alignment values.
130129    */
131   if (k056832_read_register(state->m_k056832, 0x14) == 2)
130   if (k056832_read_register(m_k056832, 0x14) == 2)
132131   {
133      k056832_set_layer_offs(state->m_k056832, 0,  2, 0);
134      k056832_set_layer_offs(state->m_k056832, 1,  4, 0);
135      k056832_set_layer_offs(state->m_k056832, 2,  6, 0); // 7?
136      k056832_set_layer_offs(state->m_k056832, 3,  8, 0);
132      k056832_set_layer_offs(m_k056832, 0,  2, 0);
133      k056832_set_layer_offs(m_k056832, 1,  4, 0);
134      k056832_set_layer_offs(m_k056832, 2,  6, 0); // 7?
135      k056832_set_layer_offs(m_k056832, 3,  8, 0);
137136   }
138137   else
139138   {
140      k056832_set_layer_offs(state->m_k056832, 0,  0, 0);
141      k056832_set_layer_offs(state->m_k056832, 1,  8, 0);
142      k056832_set_layer_offs(state->m_k056832, 2, 14, 0);
143      k056832_set_layer_offs(state->m_k056832, 3, 16, 0); // smaller?
139      k056832_set_layer_offs(m_k056832, 0,  0, 0);
140      k056832_set_layer_offs(m_k056832, 1,  8, 0);
141      k056832_set_layer_offs(m_k056832, 2, 14, 0);
142      k056832_set_layer_offs(m_k056832, 3, 16, 0); // smaller?
144143   }
145144
146145   // seems to switch the K053251 between different priority modes, detail unknown
147   // primode = k053251_get_priority(state->m_k053251, K053251_CI1);
146   // primode = k053251_get_priority(m_k053251, K053251_CI1);
148147
149148   layer[0] = 0;
150   state->m_layer_pri[0] = 0; // not sure
149   m_layer_pri[0] = 0; // not sure
151150   layer[1] = 1;
152   state->m_layer_pri[1] = k053251_get_priority(state->m_k053251, K053251_CI2);
151   m_layer_pri[1] = k053251_get_priority(m_k053251, K053251_CI2);
153152   layer[2] = 2;
154   state->m_layer_pri[2] = k053251_get_priority(state->m_k053251, K053251_CI3);
153   m_layer_pri[2] = k053251_get_priority(m_k053251, K053251_CI3);
155154   layer[3] = 3;
156   state->m_layer_pri[3] = k053251_get_priority(state->m_k053251, K053251_CI4);
155   m_layer_pri[3] = k053251_get_priority(m_k053251, K053251_CI4);
157156
158   konami_sortlayers4(layer, state->m_layer_pri);
157   konami_sortlayers4(layer, m_layer_pri);
159158
160159   bitmap.fill(get_black_pen(screen.machine()), cliprect);
161160   screen.machine().priority_bitmap.fill(0, cliprect);
162161
163   k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, layer[0], 0, 1);
164   k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, layer[1], 0, 2);
165   k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, layer[2], 0, 4);
166   k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, layer[3], 0, 8);
162   k056832_tilemap_draw(m_k056832, bitmap, cliprect, layer[0], 0, 1);
163   k056832_tilemap_draw(m_k056832, bitmap, cliprect, layer[1], 0, 2);
164   k056832_tilemap_draw(m_k056832, bitmap, cliprect, layer[2], 0, 4);
165   k056832_tilemap_draw(m_k056832, bitmap, cliprect, layer[3], 0, 8);
167166
168   k053247_sprites_draw(state->m_k053246, bitmap, cliprect);
167   k053247_sprites_draw(m_k053246, bitmap, cliprect);
169168   return 0;
170169}
trunk/src/mame/video/rltennis.c
r17967r17968
228228   m_tmp_bitmap[BITMAP_FG_DISPLAY] = auto_bitmap_ind16_alloc(machine(), 512, 256);
229229}
230230
231SCREEN_UPDATE_IND16( rltennis )
231UINT32 rltennis_state::screen_update_rltennis(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
232232{
233   rltennis_state *state = screen.machine().driver_data<rltennis_state>();
234   copybitmap(bitmap, *state->m_tmp_bitmap[BITMAP_BG], 0, 0, 0, 0, cliprect);
235   copybitmap_trans(bitmap, *state->m_tmp_bitmap[BITMAP_FG_DISPLAY], 0, 0, 0, 0, cliprect, 0);
233   copybitmap(bitmap, *m_tmp_bitmap[BITMAP_BG], 0, 0, 0, 0, cliprect);
234   copybitmap_trans(bitmap, *m_tmp_bitmap[BITMAP_FG_DISPLAY], 0, 0, 0, 0, cliprect, 0);
236235   return 0;
237236}
trunk/src/mame/video/tigeroad.c
r17967r17968
155155   m_fg_tilemap->set_transparent_pen(3);
156156}
157157
158SCREEN_UPDATE_IND16( tigeroad )
158UINT32 tigeroad_state::screen_update_tigeroad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
159159{
160   tigeroad_state *state = screen.machine().driver_data<tigeroad_state>();
161   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
160   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
162161   draw_sprites(screen.machine(), bitmap, cliprect, 0);
163   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 1);
162   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 1);
164163   //draw_sprites(screen.machine(), bitmap, cliprect, 1); draw priority sprites?
165   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
164   m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
166165   return 0;
167166}
trunk/src/mame/video/segas32.c
r17967r17968
24042404   }
24052405}
24062406
2407SCREEN_UPDATE_RGB32( system32 )
2407UINT32 segas32_state::screen_update_system32(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
24082408{
2409   segas32_state *state = screen.machine().driver_data<segas32_state>();
24102409   UINT8 enablemask;
24112410
24122411   /* update the visible area */
2413   if (state->m_system32_videoram[0x1ff00/2] & 0x8000)
2412   if (m_system32_videoram[0x1ff00/2] & 0x8000)
24142413      screen.set_visible_area(0, 52*8-1, 0, 28*8-1);
24152414   else
24162415      screen.set_visible_area(0, 40*8-1, 0, 28*8-1);
24172416
24182417   /* if the display is off, punt */
2419   if (!state->m_system32_displayenable[0])
2418   if (!m_system32_displayenable[0])
24202419   {
24212420      bitmap.fill(get_black_pen(screen.machine()), cliprect);
24222421      return 0;
r17967r17968
24392438
24402439   /* do the mixing */
24412440   g_profiler.start(PROFILER_USER3);
2442   mix_all_layers(state, 0, 0, bitmap, cliprect, enablemask);
2441   mix_all_layers(this, 0, 0, bitmap, cliprect, enablemask);
24432442   g_profiler.stop();
24442443
24452444   if (LOG_SPRITES && screen.machine().input().code_pressed(KEYCODE_L))
r17967r17968
24502449
24512450      for (y = visarea.min_y; y <= visarea.max_y; y++)
24522451      {
2453         UINT16 *src = get_layer_scanline(state, MIXER_LAYER_SPRITES, y);
2452         UINT16 *src = get_layer_scanline(this, MIXER_LAYER_SPRITES, y);
24542453         for (x = visarea.min_x; x <= visarea.max_x; x++)
24552454            fprintf(f, "%04X ", *src++);
24562455         fprintf(f, "\n");
r17967r17968
24602459      f = fopen("nbg0.txt", "w");
24612460      for (y = visarea.min_y; y <= visarea.max_y; y++)
24622461      {
2463         UINT16 *src = get_layer_scanline(state, MIXER_LAYER_NBG0, y);
2462         UINT16 *src = get_layer_scanline(this, MIXER_LAYER_NBG0, y);
24642463         for (x = visarea.min_x; x <= visarea.max_x; x++)
24652464            fprintf(f, "%04X ", *src++);
24662465         fprintf(f, "\n");
r17967r17968
24702469      f = fopen("nbg1.txt", "w");
24712470      for (y = visarea.min_y; y <= visarea.max_y; y++)
24722471      {
2473         UINT16 *src = get_layer_scanline(state, MIXER_LAYER_NBG1, y);
2472         UINT16 *src = get_layer_scanline(this, MIXER_LAYER_NBG1, y);
24742473         for (x = visarea.min_x; x <= visarea.max_x; x++)
24752474            fprintf(f, "%04X ", *src++);
24762475         fprintf(f, "\n");
r17967r17968
24802479      f = fopen("nbg2.txt", "w");
24812480      for (y = visarea.min_y; y <= visarea.max_y; y++)
24822481      {
2483         UINT16 *src = get_layer_scanline(state, MIXER_LAYER_NBG2, y);
2482         UINT16 *src = get_layer_scanline(this, MIXER_LAYER_NBG2, y);
24842483         for (x = visarea.min_x; x <= visarea.max_x; x++)
24852484            fprintf(f, "%04X ", *src++);
24862485         fprintf(f, "\n");
r17967r17968
24902489      f = fopen("nbg3.txt", "w");
24912490      for (y = visarea.min_y; y <= visarea.max_y; y++)
24922491      {
2493         UINT16 *src = get_layer_scanline(state, MIXER_LAYER_NBG3, y);
2492         UINT16 *src = get_layer_scanline(this, MIXER_LAYER_NBG3, y);
24942493         for (x = visarea.min_x; x <= visarea.max_x; x++)
24952494            fprintf(f, "%04X ", *src++);
24962495         fprintf(f, "\n");
r17967r17968
25032502   static const char *const layername[] = { "TEXT ", "NBG0 ", "NBG1 ", "NBG2 ", "NBG3 ", "BITMAP " };
25042503   char temp[100];
25052504   int count = 0, i;
2506   sprintf(temp, "ALPHA(%d):", (state->m_mixer_control[which][0x4e/2] >> 8) & 7);
2505   sprintf(temp, "ALPHA(%d):", (m_mixer_control[which][0x4e/2] >> 8) & 7);
25072506   for (i = 0; i < 6; i++)
25082507      if (enablemask & (1 << i))
2509         if ((state->m_mixer_control[which][0x30/2 + i] & 0x1010) == 0x1010)
2508         if ((m_mixer_control[which][0x30/2 + i] & 0x1010) == 0x1010)
25102509         {
25112510            count++;
25122511            strcat(temp, layername[i]);
r17967r17968
25782577}
25792578#endif
25802579
2581   if (PRINTF_MIXER_DATA) print_mixer_data(state, 0);
2580   if (PRINTF_MIXER_DATA) print_mixer_data(this, 0);
25822581   return 0;
25832582}
25842583
r17967r17968
26452644   return 0;
26462645}
26472646
2648SCREEN_UPDATE_RGB32( multi32_left ) { return multi32_update(screen, bitmap, cliprect, 0); }
2649SCREEN_UPDATE_RGB32( multi32_right ) { return multi32_update(screen, bitmap, cliprect, 1); }
2647UINT32 segas32_state::screen_update_multi32_left(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect){ return multi32_update(screen, bitmap, cliprect, 0); }
2648UINT32 segas32_state::screen_update_multi32_right(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect){ return multi32_update(screen, bitmap, cliprect, 1); }
26502649
26512650/*
26522651
trunk/src/mame/video/slapfght.c
r17967r17968
176176}
177177
178178
179SCREEN_UPDATE_IND16( perfrman )
179UINT32 slapfght_state::screen_update_perfrman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
180180{
181   slapfght_state *state = screen.machine().driver_data<slapfght_state>();
182   state->m_pf1_tilemap->set_flip(state->m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
183   state->m_pf1_tilemap ->set_scrolly(0 , 0 );
184   if (state->m_flipscreen) {
185      state->m_pf1_tilemap ->set_scrollx(0 , 264 );
181   m_pf1_tilemap->set_flip(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
182   m_pf1_tilemap ->set_scrolly(0 , 0 );
183   if (m_flipscreen) {
184      m_pf1_tilemap ->set_scrollx(0 , 264 );
186185   }
187186   else {
188      state->m_pf1_tilemap ->set_scrollx(0 , -16 );
187      m_pf1_tilemap ->set_scrollx(0 , -16 );
189188   }
190189
191   state->m_pf1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
190   m_pf1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
192191   draw_sprites(screen.machine(), bitmap,cliprect,0);
193   state->m_pf1_tilemap->draw(bitmap, cliprect, 0,0);
192   m_pf1_tilemap->draw(bitmap, cliprect, 0,0);
194193   draw_sprites(screen.machine(), bitmap,cliprect,0x80);
195194
196195   slapfght_log_vram(screen.machine());
r17967r17968
198197}
199198
200199
201SCREEN_UPDATE_IND16( slapfight )
200UINT32 slapfght_state::screen_update_slapfight(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
202201{
203   slapfght_state *state = screen.machine().driver_data<slapfght_state>();
204   UINT8 *buffered_spriteram = state->m_spriteram->buffer();
202   UINT8 *buffered_spriteram = m_spriteram->buffer();
205203   int offs;
206204
207   screen.machine().tilemap().set_flip_all(state->m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
208   if (state->m_flipscreen) {
209      state->m_fix_tilemap->set_scrollx(0,296);
210      state->m_pf1_tilemap->set_scrollx(0,(*state->m_slapfight_scrollx_lo + 256 * *state->m_slapfight_scrollx_hi)+296 );
211      state->m_pf1_tilemap->set_scrolly(0, (*state->m_slapfight_scrolly)+15 );
212      state->m_fix_tilemap->set_scrolly(0, -1 ); /* Glitch in Tiger Heli otherwise */
205   screen.machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
206   if (m_flipscreen) {
207      m_fix_tilemap->set_scrollx(0,296);
208      m_pf1_tilemap->set_scrollx(0,(*m_slapfight_scrollx_lo + 256 * *m_slapfight_scrollx_hi)+296 );
209      m_pf1_tilemap->set_scrolly(0, (*m_slapfight_scrolly)+15 );
210      m_fix_tilemap->set_scrolly(0, -1 ); /* Glitch in Tiger Heli otherwise */
213211   }
214212   else {
215      state->m_fix_tilemap->set_scrollx(0,0);
216      state->m_pf1_tilemap->set_scrollx(0,(*state->m_slapfight_scrollx_lo + 256 * *state->m_slapfight_scrollx_hi) );
217      state->m_pf1_tilemap->set_scrolly(0, (*state->m_slapfight_scrolly)-1 );
218      state->m_fix_tilemap->set_scrolly(0, -1 ); /* Glitch in Tiger Heli otherwise */
213      m_fix_tilemap->set_scrollx(0,0);
214      m_pf1_tilemap->set_scrollx(0,(*m_slapfight_scrollx_lo + 256 * *m_slapfight_scrollx_hi) );
215      m_pf1_tilemap->set_scrolly(0, (*m_slapfight_scrolly)-1 );
216      m_fix_tilemap->set_scrolly(0, -1 ); /* Glitch in Tiger Heli otherwise */
219217   }
220218
221   state->m_pf1_tilemap->draw(bitmap, cliprect, 0,0);
219   m_pf1_tilemap->draw(bitmap, cliprect, 0,0);
222220
223221   /* Draw the sprites */
224   for (offs = 0;offs < state->m_spriteram->bytes();offs += 4)
222   for (offs = 0;offs < m_spriteram->bytes();offs += 4)
225223   {
226      if (state->m_flipscreen)
224      if (m_flipscreen)
227225         drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[2],
228226            buffered_spriteram[offs] + ((buffered_spriteram[offs+2] & 0xc0) << 2),
229227            (buffered_spriteram[offs+2] & 0x1e) >> 1,
r17967r17968
237235            (buffered_spriteram[offs+1] + ((buffered_spriteram[offs+2] & 0x01) << 8)) - 13,buffered_spriteram[offs+3],0);
238236   }
239237
240   state->m_fix_tilemap->draw(bitmap, cliprect, 0,0);
238   m_fix_tilemap->draw(bitmap, cliprect, 0,0);
241239
242240   slapfght_log_vram(screen.machine());
243241   return 0;
trunk/src/mame/video/badlands.c
r17967r17968
109109 *
110110 *************************************/
111111
112SCREEN_UPDATE_IND16( badlands )
112UINT32 badlands_state::screen_update_badlands(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
113113{
114   badlands_state *state = screen.machine().driver_data<badlands_state>();
115114   atarimo_rect_list rectlist;
116115   bitmap_ind16 *mobitmap;
117116   int x, y, r;
118117
119118   /* draw the playfield */
120   state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
119   m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
121120
122121   /* draw and merge the MO */
123122   mobitmap = atarimo_render(0, cliprect, &rectlist);
trunk/src/mame/video/psikyosh.c
r17967r17968
12541254}
12551255
12561256
1257SCREEN_UPDATE_RGB32( psikyosh ) /* Note the z-buffer on each sprite to get correct priority */
1257UINT32 psikyosh_state::screen_update_psikyosh(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)/* Note the z-buffer on each sprite to get correct priority */
12581258{
12591259   int i;
1260   psikyosh_state *state = screen.machine().driver_data<psikyosh_state>();
12611260
12621261   // show only the priority associated with a given keypress(s) and/or hide sprites/tilemaps
12631262   int pri_debug = false;
r17967r17968
12811280
12821281#ifdef DEBUG_MESSAGE
12831282popmessage   ("%08x %08x %08x %08x\n%08x %08x %08x %08x",
1284    state->m_vidregs[0], state->m_vidregs[1],
1285    state->m_vidregs[2], state->m_vidregs[3],
1286    state->m_vidregs[4], state->m_vidregs[5],
1287    state->m_vidregs[6], state->m_vidregs[7]);
1283    m_vidregs[0], m_vidregs[1],
1284    m_vidregs[2], m_vidregs[3],
1285    m_vidregs[4], m_vidregs[5],
1286    m_vidregs[6], m_vidregs[7]);
12881287#endif
12891288
1290   state->m_z_bitmap.fill(0, cliprect); /* z-buffer */
1289   m_z_bitmap.fill(0, cliprect); /* z-buffer */
12911290
12921291   psikyosh_prelineblend(screen.machine(), bitmap, cliprect); // fills screen
12931292   for (i = 0; i <= 7; i++)
trunk/src/mame/video/boogwing.c
r17967r17968
178178   }
179179}
180180
181SCREEN_UPDATE_RGB32( boogwing )
181UINT32 boogwing_state::screen_update_boogwing(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
182182{
183   boogwing_state *state = screen.machine().driver_data<boogwing_state>();
184183   address_space &space = screen.machine().driver_data()->generic_space();
185   UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
186   UINT16 priority = decocomn_priority_r(state->m_decocomn, space, 0, 0xffff);
184   UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff);
185   UINT16 priority = decocomn_priority_r(m_decocomn, space, 0, 0xffff);
187186
188187   /* Draw sprite planes to bitmaps for later mixing */
189   screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, state->m_spriteram2->buffer(), 0x400, true);
190   screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, state->m_spriteram->buffer(), 0x400, true);
188   screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, m_spriteram2->buffer(), 0x400, true);
189   screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400, true);
191190
192   state->flip_screen_set(BIT(flip, 7));
193   deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
194   deco16ic_pf_update(state->m_deco_tilegen2, state->m_pf3_rowscroll, state->m_pf4_rowscroll);
191   flip_screen_set(BIT(flip, 7));
192   deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
193   deco16ic_pf_update(m_deco_tilegen2, m_pf3_rowscroll, m_pf4_rowscroll);
195194
196195   /* Draw playfields */
197196   bitmap.fill(screen.machine().pens[0x400], cliprect); /* pen not confirmed */
r17967r17968
201200   // bit&0x4 combines playfields
202201   if ((priority & 0x7) == 0x5)
203202   {
204      deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
205      deco16ic_tilemap_12_combine_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 32);
203      deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
204      deco16ic_tilemap_12_combine_draw(m_deco_tilegen2, bitmap, cliprect, 0, 32);
206205   }
207206   else if ((priority & 0x7) == 0x1 || (priority & 0x7) == 0x2)
208207   {
209      deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
210      deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 8);
211      deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 32);
208      deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
209      deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 8);
210      deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 32);
212211   }
213212   else if ((priority & 0x7) == 0x3)
214213   {
215      deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
216      deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 8);
214      deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
215      deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 8);
217216
218217      // This mode uses playfield 3 to shadow sprites & playfield 2 (instead of
219218      // regular alpha-blending, the destination is inverted).  Not yet implemented.
220      // deco16ic_tilemap_3_draw(state->m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_ALPHA(0x80), 32);
219      // deco16ic_tilemap_3_draw(m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_ALPHA(0x80), 32);
221220   }
222221   else
223222   {
224      deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
225      deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 8);
226      deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 32);
223      deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
224      deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 8);
225      deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 32);
227226   }
228227
229228   mix_boogwing(screen.machine(), bitmap,cliprect);
230229
231   deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
230   deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
232231   return 0;
233232}
trunk/src/mame/video/quizdna.c
r17967r17968
184184   }
185185}
186186
187SCREEN_UPDATE_IND16( quizdna )
187UINT32 quizdna_state::screen_update_quizdna(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
188188{
189   quizdna_state *state = screen.machine().driver_data<quizdna_state>();
190   if (state->m_video_enable)
189   if (m_video_enable)
191190   {
192      state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
191      m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
193192      draw_sprites(screen.machine(), bitmap, cliprect);
194      state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
193      m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
195194   }
196195   else
197196      bitmap.fill(get_black_pen(screen.machine()), cliprect);
trunk/src/mame/video/offtwall.c
r17967r17968
8787 *
8888 *************************************/
8989
90SCREEN_UPDATE_IND16( offtwall )
90UINT32 offtwall_state::screen_update_offtwall(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
9191{
92   offtwall_state *state = screen.machine().driver_data<offtwall_state>();
9392   atarimo_rect_list rectlist;
9493   bitmap_ind16 *mobitmap;
9594   int x, y, r;
9695
9796   /* draw the playfield */
98   state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
97   m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
9998
10099   /* draw and merge the MO */
101100   mobitmap = atarimo_render(0, cliprect, &rectlist);
trunk/src/mame/video/equites.c
r17967r17968
449449
450450
451451
452SCREEN_UPDATE_IND16( equites )
452UINT32 equites_state::screen_update_equites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
453453{
454   equites_state *state = screen.machine().driver_data<equites_state>();
455   bitmap.fill(state->m_bgcolor, cliprect);
454   bitmap.fill(m_bgcolor, cliprect);
456455
457   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
456   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
458457
459458   equites_draw_sprites(screen.machine(), bitmap, cliprect);
460459
461   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
460   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
462461
463462   return 0;
464463}
465464
466SCREEN_UPDATE_IND16( splndrbt )
465UINT32 equites_state::screen_update_splndrbt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
467466{
468   equites_state *state = screen.machine().driver_data<equites_state>();
469   bitmap.fill(state->m_bgcolor, cliprect);
467   bitmap.fill(m_bgcolor, cliprect);
470468
471469   splndrbt_copy_bg(screen.machine(), bitmap, cliprect);
472470
473   if (state->m_fg_char_bank)
474      state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
471   if (m_fg_char_bank)
472      m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
475473
476474   splndrbt_draw_sprites(screen.machine(), bitmap, cliprect);
477475
478   if (!state->m_fg_char_bank)
479      state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
476   if (!m_fg_char_bank)
477      m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
480478
481479   return 0;
482480}
trunk/src/mame/video/gradius3.c
r17967r17968
121121
122122***************************************************************************/
123123
124SCREEN_UPDATE_IND16( gradius3 )
124UINT32 gradius3_state::screen_update_gradius3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
125125{
126   gradius3_state *state = screen.machine().driver_data<gradius3_state>();
127126
128127   /* TODO: this kludge enforces the char banks. For some reason, they don't work otherwise. */
129128   address_space &space = screen.machine().driver_data()->generic_space();
130   k052109_w(state->m_k052109, space, 0x1d80, 0x10);
131   k052109_w(state->m_k052109, space, 0x1f00, 0x32);
129   k052109_w(m_k052109, space, 0x1d80, 0x10);
130   k052109_w(m_k052109, space, 0x1f00, 0x32);
132131
133   k052109_tilemap_update(state->m_k052109);
132   k052109_tilemap_update(m_k052109);
134133
135134   screen.machine().priority_bitmap.fill(0, cliprect);
136   if (state->m_priority == 0)
135   if (m_priority == 0)
137136   {
138      k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 2);
139      k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 2, 0, 4);
140      k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 0, 0, 1);
137      k052109_tilemap_draw(m_k052109, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 2);
138      k052109_tilemap_draw(m_k052109, bitmap, cliprect, 2, 0, 4);
139      k052109_tilemap_draw(m_k052109, bitmap, cliprect, 0, 0, 1);
141140   }
142141   else
143142   {
144      k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 1);
145      k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 1, 0, 2);
146      k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 2, 0, 4);
143      k052109_tilemap_draw(m_k052109, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 1);
144      k052109_tilemap_draw(m_k052109, bitmap, cliprect, 1, 0, 2);
145      k052109_tilemap_draw(m_k052109, bitmap, cliprect, 2, 0, 4);
147146   }
148147
149   k051960_sprites_draw(state->m_k051960, bitmap, cliprect, -1, -1);
148   k051960_sprites_draw(m_k051960, bitmap, cliprect, -1, -1);
150149   return 0;
151150}
trunk/src/mame/video/decocass.c
r17967r17968
516516   machine().gfx[2]->decode(16);
517517}
518518
519SCREEN_UPDATE_IND16( decocass )
519UINT32 decocass_state::screen_update_decocass(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
520520{
521   decocass_state *state = screen.machine().driver_data<decocass_state>();
522521   int scrollx, scrolly_l, scrolly_r;
523522   rectangle clip;
524523
525524   if (0xc0 != (screen.machine().root_device().ioport("IN2")->read() & 0xc0))  /* coin slots assert an NMI */
526      state->m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
525      m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
527526
528   if (0 == (state->m_watchdog_flip & 0x04))
527   if (0 == (m_watchdog_flip & 0x04))
529528      screen.machine().watchdog_reset();
530   else if (state->m_watchdog_count-- > 0)
529   else if (m_watchdog_count-- > 0)
531530      screen.machine().watchdog_reset();
532531
533532#ifdef MAME_DEBUG
534533   {
535534      if (screen.machine().input().code_pressed_once(KEYCODE_I))
536         state->m_showmsg ^= 1;
537      if (state->m_showmsg)
535         m_showmsg ^= 1;
536      if (m_showmsg)
538537         popmessage("mode:$%02x cm:$%02x ccb:$%02x h:$%02x vl:$%02x vr:$%02x ph:$%02x pv:$%02x ch:$%02x cv:$%02x",
539            state->m_mode_set,
540            state->m_color_missiles,
541            state->m_color_center_bot,
542            state->m_back_h_shift,
543            state->m_back_vl_shift,
544            state->m_back_vr_shift,
545            state->m_part_h_shift,
546            state->m_part_v_shift,
547            state->m_center_h_shift_space,
548            state->m_center_v_shift);
538            m_mode_set,
539            m_color_missiles,
540            m_color_center_bot,
541            m_back_h_shift,
542            m_back_vl_shift,
543            m_back_vr_shift,
544            m_part_h_shift,
545            m_part_v_shift,
546            m_center_h_shift_space,
547            m_center_v_shift);
549548   }
550549#endif
551550
552551   bitmap.fill(0, cliprect);
553552
554   scrolly_l = state->m_back_vl_shift;
555   scrolly_r = 256 - state->m_back_vr_shift;
553   scrolly_l = m_back_vl_shift;
554   scrolly_r = 256 - m_back_vr_shift;
556555
557   scrollx = 256 - state->m_back_h_shift;
558   if (0 == (state->m_mode_set & 0x02))
556   scrollx = 256 - m_back_h_shift;
557   if (0 == (m_mode_set & 0x02))
559558      scrollx += 256;
560559
561560#if 0
562561/* this is wrong */
563   if (0 != state->m_back_h_shift && 0 == ((state->m_mode_set ^ (state->m_mode_set >> 1)) & 1))
562   if (0 != m_back_h_shift && 0 == ((m_mode_set ^ (m_mode_set >> 1)) & 1))
564563      scrollx += 256;
565564#endif
566565
567   if (0 == (state->m_mode_set & 0x04))
566   if (0 == (m_mode_set & 0x04))
568567      scrolly_r += 256;
569568   else
570569      scrolly_l += 256;
571570
572   state->m_bg_tilemap_l->set_scrollx(0, scrollx);
573   state->m_bg_tilemap_l->set_scrolly(0, scrolly_l);
571   m_bg_tilemap_l->set_scrollx(0, scrollx);
572   m_bg_tilemap_l->set_scrolly(0, scrolly_l);
574573
575   state->m_bg_tilemap_r->set_scrollx(0, scrollx);
576   state->m_bg_tilemap_r->set_scrolly(0, scrolly_r);
574   m_bg_tilemap_r->set_scrollx(0, scrollx);
575   m_bg_tilemap_r->set_scrolly(0, scrolly_r);
577576
578   if (state->m_mode_set & 0x08)   /* bkg_ena on ? */
577   if (m_mode_set & 0x08)   /* bkg_ena on ? */
579578   {
580      clip = state->m_bg_tilemap_l_clip;
579      clip = m_bg_tilemap_l_clip;
581580      clip &= cliprect;
582      state->m_bg_tilemap_l->draw(bitmap, clip, TILEMAP_DRAW_OPAQUE, 0);
581      m_bg_tilemap_l->draw(bitmap, clip, TILEMAP_DRAW_OPAQUE, 0);
583582
584      clip = state->m_bg_tilemap_r_clip;
583      clip = m_bg_tilemap_r_clip;
585584      clip &= cliprect;
586      state->m_bg_tilemap_r->draw(bitmap, clip, TILEMAP_DRAW_OPAQUE, 0);
585      m_bg_tilemap_r->draw(bitmap, clip, TILEMAP_DRAW_OPAQUE, 0);
587586   }
588587
589   if (state->m_mode_set & 0x20)
588   if (m_mode_set & 0x20)
590589   {
591590      draw_object(screen.machine(), bitmap, cliprect);
592591      draw_center(screen.machine(), bitmap, cliprect);
r17967r17968
595594   {
596595      draw_object(screen.machine(), bitmap, cliprect);
597596      draw_center(screen.machine(), bitmap, cliprect);
598      if (state->m_mode_set & 0x08)   /* bkg_ena on ? */
597      if (m_mode_set & 0x08)   /* bkg_ena on ? */
599598      {
600         clip = state->m_bg_tilemap_l_clip;
599         clip = m_bg_tilemap_l_clip;
601600         clip &= cliprect;
602         state->m_bg_tilemap_l->draw(bitmap, clip, 0, 0);
601         m_bg_tilemap_l->draw(bitmap, clip, 0, 0);
603602
604         clip = state->m_bg_tilemap_r_clip;
603         clip = m_bg_tilemap_r_clip;
605604         clip &= cliprect;
606         state->m_bg_tilemap_r->draw(bitmap, clip, 0, 0);
605         m_bg_tilemap_r->draw(bitmap, clip, 0, 0);
607606      }
608607   }
609   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
610   draw_sprites(screen.machine(), bitmap, cliprect, (state->m_color_center_bot >> 1) & 1, 0, 0, state->m_fgvideoram, 0x20);
611   draw_missiles(screen.machine(), bitmap, cliprect, 1, 0, state->m_colorram, 0x20);
608   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
609   draw_sprites(screen.machine(), bitmap, cliprect, (m_color_center_bot >> 1) & 1, 0, 0, m_fgvideoram, 0x20);
610   draw_missiles(screen.machine(), bitmap, cliprect, 1, 0, m_colorram, 0x20);
612611   return 0;
613612}
trunk/src/mame/video/mystwarr.c
r17967r17968
321321
322322
323323
324SCREEN_UPDATE_RGB32(mystwarr)
324UINT32 mystwarr_state::screen_update_mystwarr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
325325{
326   mystwarr_state *state = screen.machine().driver_data<mystwarr_state>();
327326   int i, old, blendmode=0;
328327
329   if (state->m_cbparam<0) state->m_cbparam=0; else if (state->m_cbparam>=32) blendmode=(1<<16|GXMIX_BLEND_FORCE)<<2; //* water hack (TEMPORARY)
328   if (m_cbparam<0) m_cbparam=0; else if (m_cbparam>=32) blendmode=(1<<16|GXMIX_BLEND_FORCE)<<2; //* water hack (TEMPORARY)
330329
331330   for (i = 0; i < 4; i++)
332331   {
333      old = state->m_layer_colorbase[i];
334      state->m_layer_colorbase[i] = K055555_get_palette_index(i)<<4;
335      if( old != state->m_layer_colorbase[i] ) K056832_mark_plane_dirty(i);
332      old = m_layer_colorbase[i];
333      m_layer_colorbase[i] = K055555_get_palette_index(i)<<4;
334      if( old != m_layer_colorbase[i] ) K056832_mark_plane_dirty(i);
336335   }
337336
338   state->m_sprite_colorbase = K055555_get_palette_index(4)<<5;
337   m_sprite_colorbase = K055555_get_palette_index(4)<<5;
339338
340339   konamigx_mixer(screen.machine(), bitmap, cliprect, 0, 0, 0, 0, blendmode, 0, 0);
341340   return 0;
342341}
343342
344SCREEN_UPDATE_RGB32(metamrph)
343UINT32 mystwarr_state::screen_update_metamrph(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
345344{
346   mystwarr_state *state = screen.machine().driver_data<mystwarr_state>();
347345   int i, old;
348346
349347   for (i = 0; i < 4; i++)
350348   {
351      old = state->m_layer_colorbase[i];
352      state->m_layer_colorbase[i] = K055555_get_palette_index(i)<<4;
353      if (old != state->m_layer_colorbase[i]) K056832_mark_plane_dirty(i);
349      old = m_layer_colorbase[i];
350      m_layer_colorbase[i] = K055555_get_palette_index(i)<<4;
351      if (old != m_layer_colorbase[i]) K056832_mark_plane_dirty(i);
354352   }
355353
356   state->m_sprite_colorbase = K055555_get_palette_index(4)<<4;
354   m_sprite_colorbase = K055555_get_palette_index(4)<<4;
357355
358356   konamigx_mixer(screen.machine(), bitmap, cliprect, 0, GXSUB_K053250 | GXSUB_4BPP, 0, 0, 0, 0, 0);
359357   return 0;
360358}
361359
362SCREEN_UPDATE_RGB32(martchmp)
360UINT32 mystwarr_state::screen_update_martchmp(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
363361{
364   mystwarr_state *state = screen.machine().driver_data<mystwarr_state>();
365362   int i, old, blendmode;
366363
367364   for (i = 0; i < 4; i++)
368365   {
369      old = state->m_layer_colorbase[i];
370      state->m_layer_colorbase[i] = K055555_get_palette_index(i)<<4;
371      if (old != state->m_layer_colorbase[i]) K056832_mark_plane_dirty(i);
366      old = m_layer_colorbase[i];
367      m_layer_colorbase[i] = K055555_get_palette_index(i)<<4;
368      if (old != m_layer_colorbase[i]) K056832_mark_plane_dirty(i);
372369   }
373370
374   state->m_sprite_colorbase = K055555_get_palette_index(4)<<5;
371   m_sprite_colorbase = K055555_get_palette_index(4)<<5;
375372
376   state->m_cbparam = K055555_read_register(K55_PRIINP_8);
377   state->m_oinprion = K055555_read_register(K55_OINPRI_ON);
373   m_cbparam = K055555_read_register(K55_PRIINP_8);
374   m_oinprion = K055555_read_register(K55_OINPRI_ON);
378375
379376   // not quite right
380   blendmode = (state->m_oinprion==0xef && K054338_read_register(K338_REG_PBLEND)) ? ((1<<16|GXMIX_BLEND_FORCE)<<2) : 0;
377   blendmode = (m_oinprion==0xef && K054338_read_register(K338_REG_PBLEND)) ? ((1<<16|GXMIX_BLEND_FORCE)<<2) : 0;
381378
382379   konamigx_mixer(screen.machine(), bitmap, cliprect, 0, 0, 0, 0, blendmode, 0, 0);
383380   return 0;
r17967r17968
487484   return ROM[offset]<<8;
488485}
489486
490SCREEN_UPDATE_RGB32(dadandrn) /* and gaiapols */
487UINT32 mystwarr_state::screen_update_dadandrn(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)/* and gaiapols */
491488{
492   mystwarr_state *state = screen.machine().driver_data<mystwarr_state>();
493489   int i, newbase, dirty, rozmode;
494490
495   if (state->m_gametype == 0)
491   if (m_gametype == 0)
496492   {
497      state->m_sprite_colorbase = (K055555_get_palette_index(4)<<4)&0x7f;
493      m_sprite_colorbase = (K055555_get_palette_index(4)<<4)&0x7f;
498494      rozmode = GXSUB_4BPP;
499495   }
500496   else
501497   {
502      state->m_sprite_colorbase = (K055555_get_palette_index(4)<<3)&0x7f;
498      m_sprite_colorbase = (K055555_get_palette_index(4)<<3)&0x7f;
503499      rozmode = GXSUB_8BPP;
504500   }
505501
r17967r17968
508504      for (i=0; i<4; i++)
509505      {
510506         newbase = K055555_get_palette_index(i)<<4;
511         if (state->m_layer_colorbase[i] != newbase)
507         if (m_layer_colorbase[i] != newbase)
512508         {
513            state->m_layer_colorbase[i] = newbase;
509            m_layer_colorbase[i] = newbase;
514510            K056832_mark_plane_dirty(i);
515511         }
516512      }
r17967r17968
520516      for (dirty=0, i=0; i<4; i++)
521517      {
522518         newbase = K055555_get_palette_index(i)<<4;
523         if (state->m_layer_colorbase[i] != newbase)
519         if (m_layer_colorbase[i] != newbase)
524520         {
525            state->m_layer_colorbase[i] = newbase;
521            m_layer_colorbase[i] = newbase;
526522            dirty = 1;
527523         }
528524      }
r17967r17968
530526
531527   }
532528
533   state->m_last_psac_colorbase = state->m_sub1_colorbase;
534   state->m_sub1_colorbase = K055555_get_palette_index(5);
529   m_last_psac_colorbase = m_sub1_colorbase;
530   m_sub1_colorbase = K055555_get_palette_index(5);
535531
536   if (state->m_last_psac_colorbase != state->m_sub1_colorbase)
532   if (m_last_psac_colorbase != m_sub1_colorbase)
537533   {
538      state->m_ult_936_tilemap->mark_all_dirty();
534      m_ult_936_tilemap->mark_all_dirty();
539535
540536      if (MW_VERBOSE)
541537         popmessage("K053936: PSAC colorbase changed");
542538   }
543539
544   konamigx_mixer(screen.machine(), bitmap, cliprect, (state->m_roz_enable) ? state->m_ult_936_tilemap : 0, rozmode, 0, 0, 0, 0, 0);
540   konamigx_mixer(screen.machine(), bitmap, cliprect, (m_roz_enable) ? m_ult_936_tilemap : 0, rozmode, 0, 0, 0, 0, 0);
545541   return 0;
546542}
trunk/src/mame/video/fromance.c
r17967r17968
410410 *
411411 *************************************/
412412
413SCREEN_UPDATE_IND16( fromance )
413UINT32 fromance_state::screen_update_fromance(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
414414{
415   fromance_state *state = screen.machine().driver_data<fromance_state>();
416415
417   state->m_bg_tilemap->set_scrollx(0, state->m_scrollx[0]);
418   state->m_bg_tilemap->set_scrolly(0, state->m_scrolly[0]);
419   state->m_fg_tilemap->set_scrollx(0, state->m_scrollx[1]);
420   state->m_fg_tilemap->set_scrolly(0, state->m_scrolly[1]);
416   m_bg_tilemap->set_scrollx(0, m_scrollx[0]);
417   m_bg_tilemap->set_scrolly(0, m_scrolly[0]);
418   m_fg_tilemap->set_scrollx(0, m_scrollx[1]);
419   m_fg_tilemap->set_scrolly(0, m_scrolly[1]);
421420
422   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
423   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
421   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
422   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
424423   return 0;
425424}
426425
427426
428SCREEN_UPDATE_IND16( pipedrm )
427UINT32 fromance_state::screen_update_pipedrm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
429428{
430   fromance_state *state = screen.machine().driver_data<fromance_state>();
431429
432430   /* there seems to be no logical mapping for the X scroll register -- maybe it's gone */
433   state->m_bg_tilemap->set_scrolly(0, state->m_scrolly[1]);
434   state->m_fg_tilemap->set_scrolly(0, state->m_scrolly[0]);
431   m_bg_tilemap->set_scrolly(0, m_scrolly[1]);
432   m_fg_tilemap->set_scrolly(0, m_scrolly[0]);
435433
436   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
437   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
434   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
435   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
438436
439437   draw_sprites(screen, bitmap, cliprect, 0);
440438   draw_sprites(screen, bitmap, cliprect, 1);
trunk/src/mame/video/skykid.c
r17967r17968
229229}
230230
231231
232SCREEN_UPDATE_IND16( skykid )
232UINT32 skykid_state::screen_update_skykid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
233233{
234   skykid_state *state = screen.machine().driver_data<skykid_state>();
235   if (state->flip_screen())
234   if (flip_screen())
236235   {
237      state->m_bg_tilemap->set_scrollx(0, 189 - (state->m_scroll_x ^ 1));
238      state->m_bg_tilemap->set_scrolly(0, 7 - state->m_scroll_y);
236      m_bg_tilemap->set_scrollx(0, 189 - (m_scroll_x ^ 1));
237      m_bg_tilemap->set_scrolly(0, 7 - m_scroll_y);
239238   }
240239   else
241240   {
242      state->m_bg_tilemap->set_scrollx(0, state->m_scroll_x + 35);
243      state->m_bg_tilemap->set_scrolly(0, state->m_scroll_y + 25);
241      m_bg_tilemap->set_scrollx(0, m_scroll_x + 35);
242      m_bg_tilemap->set_scrolly(0, m_scroll_y + 25);
244243   }
245244
246   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
245   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
247246
248   if (state->m_priority & 0x04)
247   if (m_priority & 0x04)
249248   {
250249      // textlayer priority enabled?
251      int cat, pri = state->m_priority >> 4;
250      int cat, pri = m_priority >> 4;
252251
253252      // draw low priority tiles
254      state->m_tx_tilemap->draw(bitmap, cliprect, pri, 0);
253      m_tx_tilemap->draw(bitmap, cliprect, pri, 0);
255254
256255      draw_sprites(screen.machine(), bitmap, cliprect);
257256
258257      // draw the other tiles
259258      for (cat = 0; cat < 0xf; cat++)
260         if (cat != pri) state->m_tx_tilemap->draw(bitmap, cliprect, cat, 0);
259         if (cat != pri) m_tx_tilemap->draw(bitmap, cliprect, cat, 0);
261260   }
262261   else
263262   {
264263      draw_sprites(screen.machine(), bitmap, cliprect);
265      state->m_tx_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_ALL_CATEGORIES, 0);
264      m_tx_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_ALL_CATEGORIES, 0);
266265   }
267266
268267   return 0;
trunk/src/mame/video/irobot.c
r17967r17968
346346
347347
348348
349SCREEN_UPDATE_IND16( irobot )
349UINT32 irobot_state::screen_update_irobot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
350350{
351   irobot_state *state = screen.machine().driver_data<irobot_state>();
352   UINT8 *videoram = state->m_videoram;
353   UINT8 *bitmap_base = state->m_bufsel ? state->m_polybitmap1 : state->m_polybitmap2;
351   UINT8 *videoram = m_videoram;
352   UINT8 *bitmap_base = m_bufsel ? m_polybitmap1 : m_polybitmap2;
354353   int x, y, offs;
355354
356355   /* copy the polygon bitmap */
r17967r17968
362361      for (x = 0; x < 32; x++, offs++)
363362      {
364363         int code = videoram[offs] & 0x3f;
365         int color = ((videoram[offs] & 0xc0) >> 6) | (state->m_alphamap >> 3);
364         int color = ((videoram[offs] & 0xc0) >> 6) | (m_alphamap >> 3);
366365
367366         drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[0],
368367               code, color,
trunk/src/mame/video/klax.c
r17967r17968
9999 *
100100 *************************************/
101101
102SCREEN_UPDATE_IND16( klax )
102UINT32 klax_state::screen_update_klax(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
103103{
104   klax_state *state = screen.machine().driver_data<klax_state>();
105104   atarimo_rect_list rectlist;
106105   bitmap_ind16 *mobitmap;
107106   int x, y, r;
108107
109108   /* draw the playfield */
110   state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
109   m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
111110
112111   /* draw and merge the MO */
113112   mobitmap = atarimo_render(0, cliprect, &rectlist);
trunk/src/mame/video/quizpani.c
r17967r17968
7373   m_txt_tilemap->set_transparent_pen(15);
7474}
7575
76SCREEN_UPDATE_IND16( quizpani )
76UINT32 quizpani_state::screen_update_quizpani(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
7777{
78   quizpani_state *state = screen.machine().driver_data<quizpani_state>();
79   state->m_bg_tilemap->set_scrollx(0, state->m_scrollreg[0] - 64);
80   state->m_bg_tilemap->set_scrolly(0, state->m_scrollreg[1] + 16);
81   state->m_txt_tilemap->set_scrollx(0, state->m_scrollreg[2] - 64);
82   state->m_txt_tilemap->set_scrolly(0, state->m_scrollreg[3] + 16);
78   m_bg_tilemap->set_scrollx(0, m_scrollreg[0] - 64);
79   m_bg_tilemap->set_scrolly(0, m_scrollreg[1] + 16);
80   m_txt_tilemap->set_scrollx(0, m_scrollreg[2] - 64);
81   m_txt_tilemap->set_scrolly(0, m_scrollreg[3] + 16);
8382
84   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
85   state->m_txt_tilemap->draw(bitmap, cliprect, 0,0);
83   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
84   m_txt_tilemap->draw(bitmap, cliprect, 0,0);
8685   return 0;
8786}
trunk/src/mame/video/gomoku.c
r17967r17968
144144
145145******************************************************************************/
146146
147SCREEN_UPDATE_IND16( gomoku )
147UINT32 gomoku_state::screen_update_gomoku(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
148148{
149   gomoku_state *state = screen.machine().driver_data<gomoku_state>();
150149   UINT8 *GOMOKU_BG_X = screen.machine().root_device().memregion( "user1" )->base();
151150   UINT8 *GOMOKU_BG_Y = screen.machine().root_device().memregion( "user2" )->base();
152   UINT8 *GOMOKU_BG_D = state->memregion( "user3" )->base();
151   UINT8 *GOMOKU_BG_D = memregion( "user3" )->base();
153152   int x, y;
154153   int bgram;
155154   int bgoffs;
r17967r17968
157156   int color;
158157
159158   /* draw background layer */
160   if (state->m_bg_dispsw)
159   if (m_bg_dispsw)
161160   {
162161      /* copy bg bitmap */
163      copybitmap(bitmap, state->m_bg_bitmap, 0, 0, 0, 0, cliprect);
162      copybitmap(bitmap, m_bg_bitmap, 0, 0, 0, 0, cliprect);
164163
165164      // stone
166165      for (y = 0; y < 256; y++)
r17967r17968
170169            bgoffs = ((((255 - x - 2) / 14) | (((255 - y - 10) / 14) << 4)) & 0xff);
171170
172171            bgdata = GOMOKU_BG_D[ GOMOKU_BG_X[x] + (GOMOKU_BG_Y[y] << 4) ];
173            bgram = state->m_bgram[bgoffs];
172            bgram = m_bgram[bgoffs];
174173
175174            if (bgdata & 0x04)
176175            {
r17967r17968
198197            bgoffs = ((((255 - x - 2) / 14) | (((255 - y - 10) / 14) << 4)) & 0xff);
199198
200199            bgdata = GOMOKU_BG_D[ GOMOKU_BG_X[x] + (GOMOKU_BG_Y[y] << 4) ];
201            bgram = state->m_bgram[bgoffs];
200            bgram = m_bgram[bgoffs];
202201
203202            if (bgdata & 0x08)
204203            {
r17967r17968
223222      bitmap.fill(0x20);
224223   }
225224
226   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
225   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
227226   return 0;
228227}
trunk/src/mame/video/djmain.c
r17967r17968
143143   k056832_set_layer_offs(k056832, 1, -88, -27);
144144}
145145
146SCREEN_UPDATE_RGB32( djmain )
146UINT32 djmain_state::screen_update_djmain(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
147147{
148148   device_t *k056832 = screen.machine().device("k056832");
149149   device_t *k055555 = screen.machine().device("k055555");
trunk/src/mame/video/firetrk.c
r17967r17968
347347}
348348
349349
350SCREEN_UPDATE_IND16( firetrk )
350UINT32 firetrk_state::screen_update_firetrk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
351351{
352   firetrk_state *state = screen.machine().driver_data<firetrk_state>();
353352   screen.machine().tilemap().mark_all_dirty();
354   state->m_tilemap1->set_scrollx(0, *state->m_scroll_x - 37);
355   state->m_tilemap2->set_scrollx(0, *state->m_scroll_x - 37);
356   state->m_tilemap1->set_scrolly(0, *state->m_scroll_y);
357   state->m_tilemap2->set_scrolly(0, *state->m_scroll_y);
353   m_tilemap1->set_scrollx(0, *m_scroll_x - 37);
354   m_tilemap2->set_scrollx(0, *m_scroll_x - 37);
355   m_tilemap1->set_scrolly(0, *m_scroll_y);
356   m_tilemap2->set_scrolly(0, *m_scroll_y);
358357
359358   bitmap.fill(0, cliprect);
360   state->m_tilemap1->draw(bitmap, playfield_window, 0, 0);
361   firetrk_draw_car(screen.machine(), bitmap, playfield_window, screen.machine().gfx, 0, state->m_flash);
362   firetrk_draw_car(screen.machine(), bitmap, playfield_window, screen.machine().gfx, 1, state->m_flash);
363   draw_text(bitmap, cliprect, screen.machine().gfx, state->m_alpha_num_ram + 0x00, 296, 0x10, 0x10);
364   draw_text(bitmap, cliprect, screen.machine().gfx, state->m_alpha_num_ram + 0x10,   8, 0x10, 0x10);
359   m_tilemap1->draw(bitmap, playfield_window, 0, 0);
360   firetrk_draw_car(screen.machine(), bitmap, playfield_window, screen.machine().gfx, 0, m_flash);
361   firetrk_draw_car(screen.machine(), bitmap, playfield_window, screen.machine().gfx, 1, m_flash);
362   draw_text(bitmap, cliprect, screen.machine().gfx, m_alpha_num_ram + 0x00, 296, 0x10, 0x10);
363   draw_text(bitmap, cliprect, screen.machine().gfx, m_alpha_num_ram + 0x10,   8, 0x10, 0x10);
365364
366365   if (cliprect.max_y == screen.visible_area().max_y)
367366   {
368      state->m_tilemap2->draw(state->m_helper1, playfield_window, 0, 0);
367      m_tilemap2->draw(m_helper1, playfield_window, 0, 0);
369368
370      state->m_helper2.fill(0xff, playfield_window);
371      firetrk_draw_car(screen.machine(), state->m_helper2, playfield_window, screen.machine().gfx, 0, FALSE);
372      check_collision(state, 0);
369      m_helper2.fill(0xff, playfield_window);
370      firetrk_draw_car(screen.machine(), m_helper2, playfield_window, screen.machine().gfx, 0, FALSE);
371      check_collision(this, 0);
373372
374      state->m_helper2.fill(0xff, playfield_window);
375      firetrk_draw_car(screen.machine(), state->m_helper2, playfield_window, screen.machine().gfx, 1, FALSE);
376      check_collision(state, 1);
373      m_helper2.fill(0xff, playfield_window);
374      firetrk_draw_car(screen.machine(), m_helper2, playfield_window, screen.machine().gfx, 1, FALSE);
375      check_collision(this, 1);
377376
378      *state->m_blink = FALSE;
377      *m_blink = FALSE;
379378   }
380379
381380   return 0;
382381}
383382
384383
385SCREEN_UPDATE_IND16( superbug )
384UINT32 firetrk_state::screen_update_superbug(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
386385{
387   firetrk_state *state = screen.machine().driver_data<firetrk_state>();
388386   screen.machine().tilemap().mark_all_dirty();
389   state->m_tilemap1->set_scrollx(0, *state->m_scroll_x - 37);
390   state->m_tilemap2->set_scrollx(0, *state->m_scroll_x - 37);
391   state->m_tilemap1->set_scrolly(0, *state->m_scroll_y);
392   state->m_tilemap2->set_scrolly(0, *state->m_scroll_y);
387   m_tilemap1->set_scrollx(0, *m_scroll_x - 37);
388   m_tilemap2->set_scrollx(0, *m_scroll_x - 37);
389   m_tilemap1->set_scrolly(0, *m_scroll_y);
390   m_tilemap2->set_scrolly(0, *m_scroll_y);
393391
394392   bitmap.fill(0, cliprect);
395   state->m_tilemap1->draw(bitmap, playfield_window, 0, 0);
396   superbug_draw_car(screen.machine(), bitmap, playfield_window, screen.machine().gfx, state->m_flash);
397   draw_text(bitmap, cliprect, screen.machine().gfx, state->m_alpha_num_ram + 0x00, 296, 0x10, 0x10);
398   draw_text(bitmap, cliprect, screen.machine().gfx, state->m_alpha_num_ram + 0x10,   8, 0x10, 0x10);
393   m_tilemap1->draw(bitmap, playfield_window, 0, 0);
394   superbug_draw_car(screen.machine(), bitmap, playfield_window, screen.machine().gfx, m_flash);
395   draw_text(bitmap, cliprect, screen.machine().gfx, m_alpha_num_ram + 0x00, 296, 0x10, 0x10);
396   draw_text(bitmap, cliprect, screen.machine().gfx, m_alpha_num_ram + 0x10,   8, 0x10, 0x10);
399397
400398   if (cliprect.max_y == screen.visible_area().max_y)
401399   {
402      state->m_tilemap2->draw(state->m_helper1, playfield_window, 0, 0);
400      m_tilemap2->draw(m_helper1, playfield_window, 0, 0);
403401
404      state->m_helper2.fill(0xff, playfield_window);
405      superbug_draw_car(screen.machine(), state->m_helper2, playfield_window, screen.machine().gfx, FALSE);
406      check_collision(state, 0);
402      m_helper2.fill(0xff, playfield_window);
403      superbug_draw_car(screen.machine(), m_helper2, playfield_window, screen.machine().gfx, FALSE);
404      check_collision(this, 0);
407405
408      *state->m_blink = FALSE;
406      *m_blink = FALSE;
409407   }
410408
411409   return 0;
412410}
413411
414412
415SCREEN_UPDATE_IND16( montecar )
413UINT32 firetrk_state::screen_update_montecar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
416414{
417   firetrk_state *state = screen.machine().driver_data<firetrk_state>();
418415   screen.machine().tilemap().mark_all_dirty();
419   state->m_tilemap1->set_scrollx(0, *state->m_scroll_x - 37);
420   state->m_tilemap2->set_scrollx(0, *state->m_scroll_x - 37);
421   state->m_tilemap1->set_scrolly(0, *state->m_scroll_y);
422   state->m_tilemap2->set_scrolly(0, *state->m_scroll_y);
416   m_tilemap1->set_scrollx(0, *m_scroll_x - 37);
417   m_tilemap2->set_scrollx(0, *m_scroll_x - 37);
418   m_tilemap1->set_scrolly(0, *m_scroll_y);
419   m_tilemap2->set_scrolly(0, *m_scroll_y);
423420
424421   bitmap.fill(0x2c, cliprect);
425   state->m_tilemap1->draw(bitmap, playfield_window, 0, 0);
422   m_tilemap1->draw(bitmap, playfield_window, 0, 0);
426423   montecar_draw_car(screen.machine(), bitmap, playfield_window, screen.machine().gfx, 0, FALSE);
427424   montecar_draw_car(screen.machine(), bitmap, playfield_window, screen.machine().gfx, 1, FALSE);
428   draw_text(bitmap, cliprect, screen.machine().gfx, state->m_alpha_num_ram + 0x00, 24, 0x20, 0x08);
429   draw_text(bitmap, cliprect, screen.machine().gfx, state->m_alpha_num_ram + 0x20, 16, 0x20, 0x08);
425   draw_text(bitmap, cliprect, screen.machine().gfx, m_alpha_num_ram + 0x00, 24, 0x20, 0x08);
426   draw_text(bitmap, cliprect, screen.machine().gfx, m_alpha_num_ram + 0x20, 16, 0x20, 0x08);
430427
431428   if (cliprect.max_y == screen.visible_area().max_y)
432429   {
433      state->m_tilemap2->draw(state->m_helper1, playfield_window, 0, 0);
430      m_tilemap2->draw(m_helper1, playfield_window, 0, 0);
434431
435      state->m_helper2.fill(0xff, playfield_window);
436      montecar_draw_car(screen.machine(), state->m_helper2, playfield_window, screen.machine().gfx, 0, TRUE);
437      check_collision(state, 0);
432      m_helper2.fill(0xff, playfield_window);
433      montecar_draw_car(screen.machine(), m_helper2, playfield_window, screen.machine().gfx, 0, TRUE);
434      check_collision(this, 0);
438435
439      state->m_helper2.fill(0xff, playfield_window);
440      montecar_draw_car(screen.machine(), state->m_helper2, playfield_window, screen.machine().gfx, 1, TRUE);
441      check_collision(state, 1);
436      m_helper2.fill(0xff, playfield_window);
437      montecar_draw_car(screen.machine(), m_helper2, playfield_window, screen.machine().gfx, 1, TRUE);
438      check_collision(this, 1);
442439   }
443440
444441   return 0;
trunk/src/mame/video/segas24.c
r17967r17968
2323   };
2424};
2525
26SCREEN_UPDATE_IND16(system24)
26UINT32 segas24_state::screen_update_system24(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
2727{
28   segas24_state *state = screen.machine().driver_data<segas24_state>();
2928
30   if(state->vmixer->get_reg(13) & 1) {
29   if(vmixer->get_reg(13) & 1) {
3130      bitmap.fill(get_black_pen(screen.machine()));
3231      return 0;
3332   }
r17967r17968
4039   for(int i=0; i<12; i++)
4140      order[i] = i;
4241
43   std::sort(order.begin(), order.end(), layer_sort(state->vmixer));
42   std::sort(order.begin(), order.end(), layer_sort(vmixer));
4443
4544   int spri[4];
4645   int level = 0;
4746   for(int i=0; i<12; i++)
4847      if(order[i] < 8)
49         state->vtile->draw(bitmap, cliprect, order[i], level, 0);
48         vtile->draw(bitmap, cliprect, order[i], level, 0);
5049      else {
5150         spri[order[i]-8] = level;
5251         level++;
5352      }
5453
55   state->vsprite->draw(bitmap, cliprect, spri);
54   vsprite->draw(bitmap, cliprect, spri);
5655   return 0;
5756}
trunk/src/mame/video/m57.c
r17967r17968
264264 *
265265 *************************************/
266266
267SCREEN_UPDATE_IND16( m57 )
267UINT32 m57_state::screen_update_m57(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
268268{
269269   draw_background(screen.machine(), bitmap, cliprect);
270270   draw_sprites(screen.machine(), bitmap, cliprect);
trunk/src/mame/video/mustache.c
r17967r17968
139139   }
140140}
141141
142SCREEN_UPDATE_IND16( mustache )
142UINT32 mustache_state::screen_update_mustache(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
143143{
144   mustache_state *state = screen.machine().driver_data<mustache_state>();
145   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
144   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
146145   draw_sprites(screen.machine(), bitmap, cliprect);
147146   return 0;
148147}
trunk/src/mame/video/neogeo.c
r17967r17968
917917 *
918918 *************************************/
919919
920SCREEN_UPDATE_RGB32( neogeo )
920UINT32 neogeo_state::screen_update_neogeo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
921921{
922   neogeo_state *state = screen.machine().driver_data<neogeo_state>();
923922
924923   /* fill with background color first */
925   bitmap.fill(state->m_pens[0x0fff], cliprect);
924   bitmap.fill(m_pens[0x0fff], cliprect);
926925
927926   draw_sprites(screen.machine(), bitmap, cliprect.min_y);
928927
trunk/src/mame/video/snookr10.c
r17967r17968
183183   m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(snookr10_state::apple10_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 4, 8, 128, 30);
184184}
185185
186SCREEN_UPDATE_IND16( snookr10 )
186UINT32 snookr10_state::screen_update_snookr10(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
187187{
188   snookr10_state *state = screen.machine().driver_data<snookr10_state>();
189   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
188   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
190189   return 0;
191190}
trunk/src/mame/video/konamigx.c
r17967r17968
23702370
23712371}
23722372
2373SCREEN_UPDATE_RGB32(konamigx)
2373UINT32 konamigx_state::screen_update_konamigx(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
23742374{
23752375   int i, newbank, newbase, dirty, unchained;
23762376
r17967r17968
24952495   return 0;
24962496}
24972497
2498SCREEN_UPDATE_RGB32(konamigx_left)
2498UINT32 konamigx_state::screen_update_konamigx_left(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
24992499{
25002500   /* the video gets demuxed by a board which plugs into the jamma connector */
2501   konamigx_state *state = screen.machine().driver_data<konamigx_state>();
25022501   konamigx_current_frame^=1;
25032502
25042503   if (konamigx_current_frame==1)
r17967r17968
25092508      {
25102509         for (offset=0;offset<0x4000/4;offset++)
25112510         {
2512            UINT32 coldat = state->m_generic_paletteram_32[offset];
2511            UINT32 coldat = m_generic_paletteram_32[offset];
25132512
25142513            set_color_555(screen.machine(), offset*2, 0, 5, 10,coldat >> 16);
25152514            set_color_555(screen.machine(), offset*2+1, 0, 5, 10,coldat & 0xffff);
r17967r17968
25212520         {
25222521            int r,g,b;
25232522
2524            r = (state->m_generic_paletteram_32[offset] >>16) & 0xff;
2525            g = (state->m_generic_paletteram_32[offset] >> 8) & 0xff;
2526            b = (state->m_generic_paletteram_32[offset] >> 0) & 0xff;
2523            r = (m_generic_paletteram_32[offset] >>16) & 0xff;
2524            g = (m_generic_paletteram_32[offset] >> 8) & 0xff;
2525            b = (m_generic_paletteram_32[offset] >> 0) & 0xff;
25272526
25282527            palette_set_color(screen.machine(),offset,MAKE_RGB(r,g,b));
25292528         }
25302529      }
25312530
2532      SCREEN_UPDATE_NAME(konamigx)(NULL, screen, downcast<bitmap_rgb32 &>(*dualscreen_left_tempbitmap), cliprect);
2531      screen_update_konamigx( screen, downcast<bitmap_rgb32 &>(*dualscreen_left_tempbitmap), cliprect);
25332532      copybitmap(bitmap, *dualscreen_left_tempbitmap, 0, 0, 0, 0, cliprect);
25342533   }
25352534   else
r17967r17968
25402539   return 0;
25412540}
25422541
2543SCREEN_UPDATE_RGB32(konamigx_right)
2542UINT32 konamigx_state::screen_update_konamigx_right(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
25442543{
2545   konamigx_state *state = screen.machine().driver_data<konamigx_state>();
25462544
25472545   if (konamigx_current_frame==1)
25482546   {
r17967r17968
25572555      {
25582556         for (offset=0;offset<0x4000/4;offset++)
25592557         {
2560            UINT32 coldat = state->m_subpaletteram32[offset];
2558            UINT32 coldat = m_subpaletteram32[offset];
25612559
25622560            set_color_555(screen.machine(), offset*2, 0, 5, 10,coldat >> 16);
25632561            set_color_555(screen.machine(), offset*2+1, 0, 5, 10,coldat & 0xffff);
r17967r17968
25692567         {
25702568            int r,g,b;
25712569
2572            r = (state->m_subpaletteram32[offset] >>16) & 0xff;
2573            g = (state->m_subpaletteram32[offset] >> 8) & 0xff;
2574            b = (state->m_subpaletteram32[offset] >> 0) & 0xff;
2570            r = (m_subpaletteram32[offset] >>16) & 0xff;
2571            g = (m_subpaletteram32[offset] >> 8) & 0xff;
2572            b = (m_subpaletteram32[offset] >> 0) & 0xff;
25752573
25762574            palette_set_color(screen.machine(),offset,MAKE_RGB(r,g,b));
25772575         }
25782576      }
25792577
2580      SCREEN_UPDATE_NAME(konamigx)(NULL, screen, downcast<bitmap_rgb32 &>(*dualscreen_right_tempbitmap), cliprect);
2578      screen_update_konamigx(screen, downcast<bitmap_rgb32 &>(*dualscreen_right_tempbitmap), cliprect);
25812579      copybitmap(bitmap, *dualscreen_right_tempbitmap, 0, 0, 0, 0, cliprect);
25822580   }
25832581
trunk/src/mame/video/sprcros2.c
r17967r17968
188188   }
189189}
190190
191SCREEN_UPDATE_IND16( sprcros2 )
191UINT32 sprcros2_state::screen_update_sprcros2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
192192{
193   sprcros2_state *state = screen.machine().driver_data<sprcros2_state>();
194193
195   state->m_bgtilemap->draw(bitmap, cliprect, 0, 0);
194   m_bgtilemap->draw(bitmap, cliprect, 0, 0);
196195   draw_sprites(screen.machine(), bitmap, cliprect);
197   state->m_fgtilemap->draw(bitmap, cliprect, 0, 0);
196   m_fgtilemap->draw(bitmap, cliprect, 0, 0);
198197   return 0;
199198}
trunk/src/mame/video/vectrex.c
r17967r17968
158158}
159159
160160
161SCREEN_UPDATE_RGB32(vectrex)
161UINT32 vectrex_state::screen_update_vectrex(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
162162{
163   vectrex_state *state = screen.machine().driver_data<vectrex_state>();
164163   int i;
165164
166165   vectrex_configuration(screen.machine());
167166
168167   /* start black */
169168   vector_add_point(screen.machine(),
170                state->m_points[state->m_display_start].x,
171                state->m_points[state->m_display_start].y,
172                state->m_points[state->m_display_start].col,
169                m_points[m_display_start].x,
170                m_points[m_display_start].y,
171                m_points[m_display_start].col,
173172                0);
174173
175   for (i = state->m_display_start; i != state->m_display_end; i = (i + 1) % NVECT)
174   for (i = m_display_start; i != m_display_end; i = (i + 1) % NVECT)
176175   {
177176      vector_add_point(screen.machine(),
178                   state->m_points[i].x,
179                   state->m_points[i].y,
180                   state->m_points[i].col,
181                   state->m_points[i].intensity);
177                   m_points[i].x,
178                   m_points[i].y,
179                   m_points[i].col,
180                   m_points[i].intensity);
182181   }
183182
184183   SCREEN_UPDATE32_CALL(vector);
trunk/src/mame/video/thunderj.c
r17967r17968
118118 *
119119 *************************************/
120120
121SCREEN_UPDATE_IND16( thunderj )
121UINT32 thunderj_state::screen_update_thunderj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
122122{
123   thunderj_state *state = screen.machine().driver_data<thunderj_state>();
124123   bitmap_ind8 &priority_bitmap = screen.machine().priority_bitmap;
125124   atarimo_rect_list rectlist;
126125   bitmap_ind16 *mobitmap;
r17967r17968
128127
129128   /* draw the playfield */
130129   priority_bitmap.fill(0, cliprect);
131   state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 0x00);
132   state->m_playfield_tilemap->draw(bitmap, cliprect, 1, 0x01);
133   state->m_playfield_tilemap->draw(bitmap, cliprect, 2, 0x02);
134   state->m_playfield_tilemap->draw(bitmap, cliprect, 3, 0x03);
135   state->m_playfield2_tilemap->draw(bitmap, cliprect, 0, 0x80);
136   state->m_playfield2_tilemap->draw(bitmap, cliprect, 1, 0x84);
137   state->m_playfield2_tilemap->draw(bitmap, cliprect, 2, 0x88);
138   state->m_playfield2_tilemap->draw(bitmap, cliprect, 3, 0x8c);
130   m_playfield_tilemap->draw(bitmap, cliprect, 0, 0x00);
131   m_playfield_tilemap->draw(bitmap, cliprect, 1, 0x01);
132   m_playfield_tilemap->draw(bitmap, cliprect, 2, 0x02);
133   m_playfield_tilemap->draw(bitmap, cliprect, 3, 0x03);
134   m_playfield2_tilemap->draw(bitmap, cliprect, 0, 0x80);
135   m_playfield2_tilemap->draw(bitmap, cliprect, 1, 0x84);
136   m_playfield2_tilemap->draw(bitmap, cliprect, 2, 0x88);
137   m_playfield2_tilemap->draw(bitmap, cliprect, 3, 0x8c);
139138
140139   /* draw and merge the MO */
141140   mobitmap = atarimo_render(0, cliprect, &rectlist);
r17967r17968
234233      }
235234
236235   /* add the alpha on top */
237   state->m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
236   m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
238237
239238   /* now go back and process the upper bit of MO priority */
240239   rectlist.rect -= rectlist.numrects;
trunk/src/mame/video/ultraman.c
r17967r17968
120120
121121***************************************************************************/
122122
123SCREEN_UPDATE_IND16( ultraman )
123UINT32 ultraman_state::screen_update_ultraman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
124124{
125   ultraman_state *state = screen.machine().driver_data<ultraman_state>();
126125
127   k051316_zoom_draw(state->m_k051316_3, bitmap, cliprect, 0, 0);
128   k051316_zoom_draw(state->m_k051316_2, bitmap, cliprect, 0, 0);
129   k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 0, 0);
130   k051316_zoom_draw(state->m_k051316_1, bitmap, cliprect, 0, 0);
131   k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 1, 1);
126   k051316_zoom_draw(m_k051316_3, bitmap, cliprect, 0, 0);
127   k051316_zoom_draw(m_k051316_2, bitmap, cliprect, 0, 0);
128   k051960_sprites_draw(m_k051960, bitmap, cliprect, 0, 0);
129   k051316_zoom_draw(m_k051316_1, bitmap, cliprect, 0, 0);
130   k051960_sprites_draw(m_k051960, bitmap, cliprect, 1, 1);
132131   return 0;
133132}
trunk/src/mame/video/parodius.c
r17967r17968
4545
4646***************************************************************************/
4747
48SCREEN_UPDATE_IND16( parodius )
48UINT32 parodius_state::screen_update_parodius(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
4949{
50   parodius_state *state = screen.machine().driver_data<parodius_state>();
5150   int layer[3], bg_colorbase;
5251
53   bg_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI0);
54   state->m_sprite_colorbase   = k053251_get_palette_index(state->m_k053251, K053251_CI1);
55   state->m_layer_colorbase[0] = k053251_get_palette_index(state->m_k053251, K053251_CI2);
56   state->m_layer_colorbase[1] = k053251_get_palette_index(state->m_k053251, K053251_CI4);
57   state->m_layer_colorbase[2] = k053251_get_palette_index(state->m_k053251, K053251_CI3);
52   bg_colorbase = k053251_get_palette_index(m_k053251, K053251_CI0);
53   m_sprite_colorbase   = k053251_get_palette_index(m_k053251, K053251_CI1);
54   m_layer_colorbase[0] = k053251_get_palette_index(m_k053251, K053251_CI2);
55   m_layer_colorbase[1] = k053251_get_palette_index(m_k053251, K053251_CI4);
56   m_layer_colorbase[2] = k053251_get_palette_index(m_k053251, K053251_CI3);
5857
59   k052109_tilemap_update(state->m_k052109);
58   k052109_tilemap_update(m_k052109);
6059
6160   layer[0] = 0;
62   state->m_layerpri[0] = k053251_get_priority(state->m_k053251, K053251_CI2);
61   m_layerpri[0] = k053251_get_priority(m_k053251, K053251_CI2);
6362   layer[1] = 1;
64   state->m_layerpri[1] = k053251_get_priority(state->m_k053251, K053251_CI4);
63   m_layerpri[1] = k053251_get_priority(m_k053251, K053251_CI4);
6564   layer[2] = 2;
66   state->m_layerpri[2] = k053251_get_priority(state->m_k053251, K053251_CI3);
65   m_layerpri[2] = k053251_get_priority(m_k053251, K053251_CI3);
6766
68   konami_sortlayers3(layer, state->m_layerpri);
67   konami_sortlayers3(layer, m_layerpri);
6968
7069   screen.machine().priority_bitmap.fill(0, cliprect);
7170   bitmap.fill(16 * bg_colorbase, cliprect);
72   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, layer[0], 0,1);
73   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, layer[1], 0,2);
74   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, layer[2], 0,4);
71   k052109_tilemap_draw(m_k052109, bitmap, cliprect, layer[0], 0,1);
72   k052109_tilemap_draw(m_k052109, bitmap, cliprect, layer[1], 0,2);
73   k052109_tilemap_draw(m_k052109, bitmap, cliprect, layer[2], 0,4);
7574
76   k053245_sprites_draw(state->m_k053245, bitmap, cliprect);
75   k053245_sprites_draw(m_k053245, bitmap, cliprect);
7776   return 0;
7877}
trunk/src/mame/video/ladybug.c
r17967r17968
278278   }
279279}
280280
281SCREEN_UPDATE_IND16( ladybug )
281UINT32 ladybug_state::screen_update_ladybug(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
282282{
283   ladybug_state *state = screen.machine().driver_data<ladybug_state>();
284283   int offs;
285284
286285   // clear the bg bitmap
r17967r17968
291290      int sx = offs % 4;
292291      int sy = offs / 4;
293292
294      if (state->flip_screen())
295         state->m_bg_tilemap->set_scrollx(offs, -state->m_videoram[32 * sx + sy]);
293      if (flip_screen())
294         m_bg_tilemap->set_scrollx(offs, -m_videoram[32 * sx + sy]);
296295      else
297         state->m_bg_tilemap->set_scrollx(offs, state->m_videoram[32 * sx + sy]);
296         m_bg_tilemap->set_scrollx(offs, m_videoram[32 * sx + sy]);
298297   }
299298
300   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
299   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
301300   draw_sprites(screen.machine(), bitmap, cliprect);
302301   return 0;
303302}
304303
305SCREEN_VBLANK( sraider )   /* update starfield position */
304void ladybug_state::screen_eof_sraider(screen_device &screen, bool state)/* update starfield position */
306305{
307306   // falling edge
308   if (!vblank_on)
307   if (!state)
309308      redclash_update_stars_state(screen.machine());
310309}
311310
312SCREEN_UPDATE_IND16( sraider )
311UINT32 ladybug_state::screen_update_sraider(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
313312{
314   ladybug_state *state = screen.machine().driver_data<ladybug_state>();
315313
316314   // this part is boilerplate from ladybug, not sure if hardware does this,
317315   // since it's not used
r17967r17968
324322      int sx = offs % 4;
325323      int sy = offs / 4;
326324
327      if (state->flip_screen())
328         state->m_bg_tilemap->set_scrollx(offs, -state->m_videoram[32 * sx + sy]);
325      if (flip_screen())
326         m_bg_tilemap->set_scrollx(offs, -m_videoram[32 * sx + sy]);
329327      else
330         state->m_bg_tilemap->set_scrollx(offs, state->m_videoram[32 * sx + sy]);
328         m_bg_tilemap->set_scrollx(offs, m_videoram[32 * sx + sy]);
331329   }
332330
333331   // clear the bg bitmap
334332   bitmap.fill(0, cliprect);
335333
336334   // draw the stars
337   if (state->flip_screen())
335   if (flip_screen())
338336      redclash_draw_stars(screen.machine(), bitmap, cliprect, 0x60, 1, 0x27, 0xff);
339337   else
340338      redclash_draw_stars(screen.machine(), bitmap, cliprect, 0x60, 1, 0x00, 0xd8);
341339
342340   // draw the gridlines
343   colortable_palette_set_color(screen.machine().colortable, 0x40, MAKE_RGB(state->m_grid_color & 0x40 ? 0xff : 0,
344                                                             state->m_grid_color & 0x20 ? 0xff : 0,
345                                                             state->m_grid_color & 0x10 ? 0xff : 0));
346   state->m_grid_tilemap->draw(bitmap, cliprect, 0, state->flip_screen());
341   colortable_palette_set_color(screen.machine().colortable, 0x40, MAKE_RGB(m_grid_color & 0x40 ? 0xff : 0,
342                                                             m_grid_color & 0x20 ? 0xff : 0,
343                                                             m_grid_color & 0x10 ? 0xff : 0));
344   m_grid_tilemap->draw(bitmap, cliprect, 0, flip_screen());
347345
348346   for (i = 0; i < 0x100; i++)
349347   {
350      if (state->m_grid_data[i] != 0)
348      if (m_grid_data[i] != 0)
351349      {
352350         UINT8 x = i;
353351         int height = cliprect.max_y - cliprect.min_y + 1;
354352
355         if (state->flip_screen())
353         if (flip_screen())
356354            x = ~x;
357355
358356         bitmap.plot_box(x, cliprect.min_y, 1, height, 0x81);
r17967r17968
360358   }
361359
362360   // now the chars
363   state->m_bg_tilemap->draw(bitmap, cliprect, 0, state->flip_screen());
361   m_bg_tilemap->draw(bitmap, cliprect, 0, flip_screen());
364362
365363   // now the sprites
366364   draw_sprites(screen.machine(), bitmap, cliprect);
trunk/src/mame/video/blueprnt.c
r17967r17968
119119   }
120120}
121121
122SCREEN_UPDATE_IND16( blueprnt )
122UINT32 blueprnt_state::screen_update_blueprnt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
123123{
124   blueprnt_state *state = screen.machine().driver_data<blueprnt_state>();
125124   int i;
126125
127   if (state->flip_screen())
126   if (flip_screen())
128127      for (i = 0; i < 32; i++)
129         state->m_bg_tilemap->set_scrolly(i, state->m_scrollram[32 - i]);
128         m_bg_tilemap->set_scrolly(i, m_scrollram[32 - i]);
130129   else
131130      for (i = 0; i < 32; i++)
132         state->m_bg_tilemap->set_scrolly(i, state->m_scrollram[30 - i]);
131         m_bg_tilemap->set_scrolly(i, m_scrollram[30 - i]);
133132
134133   bitmap.fill(get_black_pen(screen.machine()), cliprect);
135   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
134   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
136135   draw_sprites(screen.machine(), bitmap, cliprect);
137   state->m_bg_tilemap->draw(bitmap, cliprect, 1, 0);
136   m_bg_tilemap->draw(bitmap, cliprect, 1, 0);
138137   return 0;
139138}
trunk/src/mame/video/combatsc.c
r17967r17968
393393}
394394
395395
396SCREEN_UPDATE_IND16( combatsc )
396UINT32 combatsc_state::screen_update_combatsc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
397397{
398   combatsc_state *state = screen.machine().driver_data<combatsc_state>();
399398   int i;
400399
401400   set_pens(screen.machine());
402401
403402   address_space &space = screen.machine().driver_data()->generic_space();
404   if (k007121_ctrlram_r(state->m_k007121_1, space, 1) & 0x02)
403   if (k007121_ctrlram_r(m_k007121_1, space, 1) & 0x02)
405404   {
406      state->m_bg_tilemap[0]->set_scroll_rows(32);
405      m_bg_tilemap[0]->set_scroll_rows(32);
407406      for (i = 0; i < 32; i++)
408         state->m_bg_tilemap[0]->set_scrollx(i, state->m_scrollram0[i]);
407         m_bg_tilemap[0]->set_scrollx(i, m_scrollram0[i]);
409408   }
410409   else
411410   {
412      state->m_bg_tilemap[0]->set_scroll_rows(1);
413      state->m_bg_tilemap[0]->set_scrollx(0, k007121_ctrlram_r(state->m_k007121_1, space, 0) | ((k007121_ctrlram_r(state->m_k007121_1, space, 1) & 0x01) << 8));
411      m_bg_tilemap[0]->set_scroll_rows(1);
412      m_bg_tilemap[0]->set_scrollx(0, k007121_ctrlram_r(m_k007121_1, space, 0) | ((k007121_ctrlram_r(m_k007121_1, space, 1) & 0x01) << 8));
414413   }
415414
416   if (k007121_ctrlram_r(state->m_k007121_2, space, 1) & 0x02)
415   if (k007121_ctrlram_r(m_k007121_2, space, 1) & 0x02)
417416   {
418      state->m_bg_tilemap[1]->set_scroll_rows(32);
417      m_bg_tilemap[1]->set_scroll_rows(32);
419418      for (i = 0; i < 32; i++)
420         state->m_bg_tilemap[1]->set_scrollx(i, state->m_scrollram1[i]);
419         m_bg_tilemap[1]->set_scrollx(i, m_scrollram1[i]);
421420   }
422421   else
423422   {
424      state->m_bg_tilemap[1]->set_scroll_rows(1);
425      state->m_bg_tilemap[1]->set_scrollx(0, k007121_ctrlram_r(state->m_k007121_2, space, 0) | ((k007121_ctrlram_r(state->m_k007121_2, space, 1) & 0x01) << 8));
423      m_bg_tilemap[1]->set_scroll_rows(1);
424      m_bg_tilemap[1]->set_scrollx(0, k007121_ctrlram_r(m_k007121_2, space, 0) | ((k007121_ctrlram_r(m_k007121_2, space, 1) & 0x01) << 8));
426425   }
427426
428   state->m_bg_tilemap[0]->set_scrolly(0, k007121_ctrlram_r(state->m_k007121_1, space, 2));
429   state->m_bg_tilemap[1]->set_scrolly(0, k007121_ctrlram_r(state->m_k007121_2, space, 2));
427   m_bg_tilemap[0]->set_scrolly(0, k007121_ctrlram_r(m_k007121_1, space, 2));
428   m_bg_tilemap[1]->set_scrolly(0, k007121_ctrlram_r(m_k007121_2, space, 2));
430429
431430   screen.machine().priority_bitmap.fill(0, cliprect);
432431
433   if (state->m_priority == 0)
432   if (m_priority == 0)
434433   {
435      state->m_bg_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 0, 4);
436      state->m_bg_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 1, 8);
437      state->m_bg_tilemap[0]->draw(bitmap, cliprect, 0, 1);
438      state->m_bg_tilemap[0]->draw(bitmap, cliprect, 1, 2);
434      m_bg_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 0, 4);
435      m_bg_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 1, 8);
436      m_bg_tilemap[0]->draw(bitmap, cliprect, 0, 1);
437      m_bg_tilemap[0]->draw(bitmap, cliprect, 1, 2);
439438
440439      /* we use the priority buffer so sprites are drawn front to back */
441      draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram[1], 1, 0x0f00);
442      draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram[0], 0, 0x4444);
440      draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram[1], 1, 0x0f00);
441      draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram[0], 0, 0x4444);
443442   }
444443   else
445444   {
446      state->m_bg_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 0, 1);
447      state->m_bg_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 1, 2);
448      state->m_bg_tilemap[1]->draw(bitmap, cliprect, 1, 4);
449      state->m_bg_tilemap[1]->draw(bitmap, cliprect, 0, 8);
445      m_bg_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 0, 1);
446      m_bg_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 1, 2);
447      m_bg_tilemap[1]->draw(bitmap, cliprect, 1, 4);
448      m_bg_tilemap[1]->draw(bitmap, cliprect, 0, 8);
450449
451450      /* we use the priority buffer so sprites are drawn front to back */
452      draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram[1], 1, 0x0f00);
453      draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram[0], 0, 0x4444);
451      draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram[1], 1, 0x0f00);
452      draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram[0], 0, 0x4444);
454453   }
455454
456   if (k007121_ctrlram_r(state->m_k007121_1, space, 1) & 0x08)
455   if (k007121_ctrlram_r(m_k007121_1, space, 1) & 0x08)
457456   {
458457      for (i = 0; i < 32; i++)
459458      {
460         state->m_textlayer->set_scrollx(i, state->m_scrollram0[0x20 + i] ? 0 : TILE_LINE_DISABLED);
461         state->m_textlayer->draw(bitmap, cliprect, 0, 0);
459         m_textlayer->set_scrollx(i, m_scrollram0[0x20 + i] ? 0 : TILE_LINE_DISABLED);
460         m_textlayer->draw(bitmap, cliprect, 0, 0);
462461      }
463462   }
464463
465464   /* chop the extreme columns if necessary */
466   if (k007121_ctrlram_r(state->m_k007121_1, space, 3) & 0x40)
465   if (k007121_ctrlram_r(m_k007121_1, space, 3) & 0x40)
467466   {
468467      rectangle clip;
469468
r17967r17968
552551   }
553552}
554553
555SCREEN_UPDATE_IND16( combatscb )
554UINT32 combatsc_state::screen_update_combatscb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
556555{
557   combatsc_state *state = screen.machine().driver_data<combatsc_state>();
558556   int i;
559557
560558   set_pens(screen.machine());
561559
562560   for (i = 0; i < 32; i++)
563561   {
564      state->m_bg_tilemap[0]->set_scrollx(i, state->m_io_ram[0x040 + i] + 5);
565      state->m_bg_tilemap[1]->set_scrollx(i, state->m_io_ram[0x060 + i] + 3);
562      m_bg_tilemap[0]->set_scrollx(i, m_io_ram[0x040 + i] + 5);
563      m_bg_tilemap[1]->set_scrollx(i, m_io_ram[0x060 + i] + 3);
566564   }
567   state->m_bg_tilemap[0]->set_scrolly(0, state->m_io_ram[0x000] + 1);
568   state->m_bg_tilemap[1]->set_scrolly(0, state->m_io_ram[0x020] + 1);
565   m_bg_tilemap[0]->set_scrolly(0, m_io_ram[0x000] + 1);
566   m_bg_tilemap[1]->set_scrolly(0, m_io_ram[0x020] + 1);
569567
570   if (state->m_priority == 0)
568   if (m_priority == 0)
571569   {
572      state->m_bg_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
573      bootleg_draw_sprites(screen.machine(), bitmap,cliprect, state->m_page[0], 0);
574      state->m_bg_tilemap[0]->draw(bitmap, cliprect, 0 ,0);
575      bootleg_draw_sprites(screen.machine(), bitmap,cliprect, state->m_page[1], 1);
570      m_bg_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
571      bootleg_draw_sprites(screen.machine(), bitmap,cliprect, m_page[0], 0);
572      m_bg_tilemap[0]->draw(bitmap, cliprect, 0 ,0);
573      bootleg_draw_sprites(screen.machine(), bitmap,cliprect, m_page[1], 1);
576574   }
577575   else
578576   {
579      state->m_bg_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
580      bootleg_draw_sprites(screen.machine(), bitmap,cliprect, state->m_page[0], 0);
581      state->m_bg_tilemap[1]->draw(bitmap, cliprect, 0, 0);
582      bootleg_draw_sprites(screen.machine(), bitmap,cliprect, state->m_page[1], 1);
577      m_bg_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
578      bootleg_draw_sprites(screen.machine(), bitmap,cliprect, m_page[0], 0);
579      m_bg_tilemap[1]->draw(bitmap, cliprect, 0, 0);
580      bootleg_draw_sprites(screen.machine(), bitmap,cliprect, m_page[1], 1);
583581   }
584582
585   state->m_textlayer->draw(bitmap, cliprect, 0, 0);
583   m_textlayer->draw(bitmap, cliprect, 0, 0);
586584   return 0;
587585}
trunk/src/mame/video/rockrage.c
r17967r17968
9696
9797***************************************************************************/
9898
99SCREEN_UPDATE_IND16( rockrage )
99UINT32 rockrage_state::screen_update_rockrage(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
100100{
101   rockrage_state *state = screen.machine().driver_data<rockrage_state>();
102101
103102   set_pens(screen.machine());
104103
105   k007342_tilemap_update(state->m_k007342);
104   k007342_tilemap_update(m_k007342);
106105
107   k007342_tilemap_draw(state->m_k007342, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0);
108   k007420_sprites_draw(state->m_k007420, bitmap, cliprect, screen.machine().gfx[1]);
109   k007342_tilemap_draw(state->m_k007342, bitmap, cliprect, 0, 1 | TILEMAP_DRAW_OPAQUE, 0);
110   k007342_tilemap_draw(state->m_k007342, bitmap, cliprect, 1, 0, 0);
111   k007342_tilemap_draw(state->m_k007342, bitmap, cliprect, 1, 1, 0);
106   k007342_tilemap_draw(m_k007342, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0);
107   k007420_sprites_draw(m_k007420, bitmap, cliprect, screen.machine().gfx[1]);
108   k007342_tilemap_draw(m_k007342, bitmap, cliprect, 0, 1 | TILEMAP_DRAW_OPAQUE, 0);
109   k007342_tilemap_draw(m_k007342, bitmap, cliprect, 1, 0, 0);
110   k007342_tilemap_draw(m_k007342, bitmap, cliprect, 1, 1, 0);
112111   return 0;
113112}
trunk/src/mame/video/buggychl.c
r17967r17968
229229}
230230
231231
232SCREEN_UPDATE_IND16( buggychl )
232UINT32 buggychl_state::screen_update_buggychl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
233233{
234   buggychl_state *state = screen.machine().driver_data<buggychl_state>();
235234
236   if (state->m_sky_on)
235   if (m_sky_on)
237236      draw_sky(bitmap, cliprect);
238237   else
239238      bitmap.fill(0, cliprect);
240239
241   if (state->m_bg_on)
240   if (m_bg_on)
242241      draw_bg(screen.machine(), bitmap, cliprect);
243242
244243   draw_sprites(screen.machine(), bitmap, cliprect);
trunk/src/mame/video/gotcha.c
r17967r17968
9999
100100
101101
102SCREEN_UPDATE_IND16( gotcha )
102UINT32 gotcha_state::screen_update_gotcha(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
103103{
104   gotcha_state *state = screen.machine().driver_data<gotcha_state>();
105   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
106   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
107   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x400);
104   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
105   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
106   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
108107   return 0;
109108}
trunk/src/mame/video/starshp1.c
r17967r17968
350350}
351351
352352
353SCREEN_UPDATE_IND16( starshp1 )
353UINT32 starshp1_state::screen_update_starshp1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
354354{
355   starshp1_state *state = screen.machine().driver_data<starshp1_state>();
356   set_pens(state, screen.machine().colortable);
355   set_pens(this, screen.machine().colortable);
357356
358357   bitmap.fill(0, cliprect);
359358
360   if (state->m_starfield_kill == 0)
361      draw_starfield(state, bitmap);
359   if (m_starfield_kill == 0)
360      draw_starfield(this, bitmap);
362361
363362   draw_sprites(screen.machine(), bitmap, cliprect);
364363
365   if (state->m_circle_kill == 0 && state->m_circle_mod != 0)
364   if (m_circle_kill == 0 && m_circle_mod != 0)
366365      draw_circle(screen.machine(), bitmap);
367366
368   if (state->m_attract == 0)
367   if (m_attract == 0)
369368      draw_spaceship(screen.machine(), bitmap, cliprect);
370369
371   if (state->m_circle_kill == 0 && state->m_circle_mod == 0)
370   if (m_circle_kill == 0 && m_circle_mod == 0)
372371      draw_circle(screen.machine(), bitmap);
373372
374   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
373   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
375374
376   if (state->m_phasor != 0)
377      draw_phasor(state, bitmap);
375   if (m_phasor != 0)
376      draw_phasor(this, bitmap);
378377
379378   return 0;
380379}
381380
382381
383SCREEN_VBLANK( starshp1 )
382void starshp1_state::screen_eof_starshp1(screen_device &screen, bool state)
384383{
385384   // rising edge
386   if (vblank_on)
385   if (state)
387386   {
388      starshp1_state *state = screen.machine().driver_data<starshp1_state>();
389387      rectangle rect;
390388      const rectangle &visarea = screen.machine().primary_screen->visible_area();
391389
392      rect.min_x = get_sprite_hpos(state, 13);
393      rect.min_y = get_sprite_vpos(state, 13);
390      rect.min_x = get_sprite_hpos(this, 13);
391      rect.min_y = get_sprite_vpos(this, 13);
394392      rect.max_x = rect.min_x + screen.machine().gfx[1]->width() - 1;
395393      rect.max_y = rect.min_y + screen.machine().gfx[1]->height() - 1;
396394
397      rect &= state->m_helper.cliprect();
395      rect &= m_helper.cliprect();
398396
399      state->m_helper.fill(0, visarea);
397      m_helper.fill(0, visarea);
400398
401      if (state->m_attract == 0)
402         draw_spaceship(screen.machine(), state->m_helper, visarea);
399      if (m_attract == 0)
400         draw_spaceship(screen.machine(), m_helper, visarea);
403401
404      if (circle_collision(state, visarea))
405         state->m_collision_latch |= 1;
402      if (circle_collision(this, visarea))
403         m_collision_latch |= 1;
406404
407      if (circle_collision(state, rect))
408         state->m_collision_latch |= 2;
405      if (circle_collision(this, rect))
406         m_collision_latch |= 2;
409407
410      if (spaceship_collision(screen.machine(), state->m_helper, rect))
411         state->m_collision_latch |= 4;
408      if (spaceship_collision(screen.machine(), m_helper, rect))
409         m_collision_latch |= 4;
412410
413      if (spaceship_collision(screen.machine(), state->m_helper, visarea))
414         state->m_collision_latch |= 8;
411      if (spaceship_collision(screen.machine(), m_helper, visarea))
412         m_collision_latch |= 8;
415413   }
416414}
trunk/src/mame/video/pandoras.c
r17967r17968
172172   }
173173}
174174
175SCREEN_UPDATE_IND16( pandoras )
175UINT32 pandoras_state::screen_update_pandoras(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
176176{
177   pandoras_state *state = screen.machine().driver_data<pandoras_state>();
178   state->m_layer0->draw(bitmap, cliprect, 1 ,0);
179   draw_sprites(screen.machine(), bitmap, cliprect, &state->m_spriteram[0x800] );
180   state->m_layer0->draw(bitmap, cliprect, 0 ,0);
177   m_layer0->draw(bitmap, cliprect, 1 ,0);
178   draw_sprites(screen.machine(), bitmap, cliprect, &m_spriteram[0x800] );
179   m_layer0->draw(bitmap, cliprect, 0 ,0);
181180   return 0;
182181}
trunk/src/mame/video/bigstrkb.c
r17967r17968
121121   m_tilemap3->set_transparent_pen(15);
122122}
123123
124SCREEN_UPDATE_IND16(bigstrkb)
124UINT32 bigstrkb_state::screen_update_bigstrkb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
125125{
126   bigstrkb_state *state = screen.machine().driver_data<bigstrkb_state>();
127126
128127//  bitmap.fill(get_black_pen(screen.machine()), cliprect);
129128
130   state->m_tilemap2->set_scrollx(0, state->m_vidreg1[0]+(256-14));
131   state->m_tilemap2->set_scrolly(0, state->m_vidreg2[0]);
129   m_tilemap2->set_scrollx(0, m_vidreg1[0]+(256-14));
130   m_tilemap2->set_scrolly(0, m_vidreg2[0]);
132131
133   state->m_tilemap3->set_scrollx(0, state->m_vidreg1[1]+(256-14));
134   state->m_tilemap3->set_scrolly(0, state->m_vidreg2[1]);
132   m_tilemap3->set_scrollx(0, m_vidreg1[1]+(256-14));
133   m_tilemap3->set_scrolly(0, m_vidreg2[1]);
135134
136   state->m_tilemap2->draw(bitmap, cliprect, 0,0);
137   state->m_tilemap3->draw(bitmap, cliprect, 0,0);
135   m_tilemap2->draw(bitmap, cliprect, 0,0);
136   m_tilemap3->draw(bitmap, cliprect, 0,0);
138137
139138   draw_sprites(screen.machine(),bitmap,cliprect);
140   state->m_tilemap->draw(bitmap, cliprect, 0,0);
139   m_tilemap->draw(bitmap, cliprect, 0,0);
141140
142141//  popmessage ("Regs %08x %08x %08x %08x",bsb_vidreg2[0],bsb_vidreg2[1],bsb_vidreg2[2],bsb_vidreg2[3]);
143142   return 0;
trunk/src/mame/video/n64.c
r17967r17968
38473847   }
38483848}
38493849
3850SCREEN_UPDATE_RGB32(n64)
3850UINT32 n64_state::screen_update_n64(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
38513851{
3852   n64_state *state = screen.machine().driver_data<n64_state>();
38533852   n64_periphs *n64 = screen.machine().device<n64_periphs>("rcp");
3854    state->m_rdp->visarea = screen.visible_area();
3853    m_rdp->visarea = screen.visible_area();
38553854
38563855   //UINT16 *frame_buffer = (UINT16*)&rdram[(n64->vi_origin & 0xffffff) >> 2];
3857   //UINT8  *cvg_buffer = &state->m_rdp.HiddenBits[((n64->vi_origin & 0xffffff) >> 2) >> 1];
3856   //UINT8  *cvg_buffer = &m_rdp.HiddenBits[((n64->vi_origin & 0xffffff) >> 2) >> 1];
38583857    //int vibuffering = ((n64->vi_control & 2) && fsaa && divot);
38593858
38603859   //vibuffering = 0; // Disabled for now
r17967r17968
38913890    }
38923891    */
38933892
3894   state->m_rdp->wait();
3895   state->m_rdp->AuxBufPtr = 0;
3893   m_rdp->wait();
3894   m_rdp->AuxBufPtr = 0;
38963895
38973896    if (n64->vi_blank)
38983897    {
3899      bitmap.fill(0, state->m_rdp->visarea);
3898      bitmap.fill(0, m_rdp->visarea);
39003899        return 0;
39013900    }
39023901
3903   state->m_rdp->VideoUpdate(n64, bitmap);
3902   m_rdp->VideoUpdate(n64, bitmap);
39043903
39053904   return 0;
39063905}
trunk/src/mame/video/taito_f2.c
r17967r17968
882882}
883883
884884
885SCREEN_VBLANK( taitof2_no_buffer )
885void taitof2_state::screen_eof_taitof2_no_buffer(screen_device &screen, bool state)
886886{
887887   // rising edge
888   if (vblank_on)
888   if (state)
889889   {
890      taitof2_state *state = screen.machine().driver_data<taitof2_state>();
891890
892891      taitof2_update_sprites_active_area(screen.machine());
893892
894      state->m_prepare_sprites = 1;
893      m_prepare_sprites = 1;
895894   }
896895}
897896
898SCREEN_VBLANK( taitof2_full_buffer_delayed )
897void taitof2_state::screen_eof_taitof2_full_buffer_delayed(screen_device &screen, bool state)
899898{
900899   // rising edge
901   if (vblank_on)
900   if (state)
902901   {
903      taitof2_state *state = screen.machine().driver_data<taitof2_state>();
904      UINT16 *spriteram = state->m_spriteram;
902      UINT16 *spriteram = m_spriteram;
905903      int i;
906904
907905      taitof2_update_sprites_active_area(screen.machine());
908906
909      state->m_prepare_sprites = 0;
910      memcpy(state->m_spriteram_buffered, state->m_spriteram_delayed, state->m_spriteram.bytes());
911      for (i = 0; i < state->m_spriteram.bytes() / 2; i++)
912         state->m_spriteram_buffered[i] = spriteram[i];
913      memcpy(state->m_spriteram_delayed, spriteram, state->m_spriteram.bytes());
907      m_prepare_sprites = 0;
908      memcpy(m_spriteram_buffered, m_spriteram_delayed, m_spriteram.bytes());
909      for (i = 0; i < m_spriteram.bytes() / 2; i++)
910         m_spriteram_buffered[i] = spriteram[i];
911      memcpy(m_spriteram_delayed, spriteram, m_spriteram.bytes());
914912   }
915913}
916914
917SCREEN_VBLANK( taitof2_partial_buffer_delayed )
915void taitof2_state::screen_eof_taitof2_partial_buffer_delayed(screen_device &screen, bool state)
918916{
919917   // rising edge
920   if (vblank_on)
918   if (state)
921919   {
922      taitof2_state *state = screen.machine().driver_data<taitof2_state>();
923      UINT16 *spriteram = state->m_spriteram;
920      UINT16 *spriteram = m_spriteram;
924921      int i;
925922
926923      taitof2_update_sprites_active_area(screen.machine());
927924
928      state->m_prepare_sprites = 0;
929      memcpy(state->m_spriteram_buffered, state->m_spriteram_delayed, state->m_spriteram.bytes());
930      for (i = 0;i < state->m_spriteram.bytes() / 2; i += 4)
931         state->m_spriteram_buffered[i] = spriteram[i];
932      memcpy(state->m_spriteram_delayed, spriteram, state->m_spriteram.bytes());
925      m_prepare_sprites = 0;
926      memcpy(m_spriteram_buffered, m_spriteram_delayed, m_spriteram.bytes());
927      for (i = 0;i < m_spriteram.bytes() / 2; i += 4)
928         m_spriteram_buffered[i] = spriteram[i];
929      memcpy(m_spriteram_delayed, spriteram, m_spriteram.bytes());
933930   }
934931}
935932
936SCREEN_VBLANK( taitof2_partial_buffer_delayed_thundfox )
933void taitof2_state::screen_eof_taitof2_partial_buffer_delayed_thundfox(screen_device &screen, bool state)
937934{
938935   // rising edge
939   if (vblank_on)
936   if (state)
940937   {
941      taitof2_state *state = screen.machine().driver_data<taitof2_state>();
942      UINT16 *spriteram = state->m_spriteram;
938      UINT16 *spriteram = m_spriteram;
943939      int i;
944940
945941      taitof2_update_sprites_active_area(screen.machine());
946942
947      state->m_prepare_sprites = 0;
948      memcpy(state->m_spriteram_buffered, state->m_spriteram_delayed, state->m_spriteram.bytes());
949      for (i = 0; i < state->m_spriteram.bytes() / 2; i += 8)
943      m_prepare_sprites = 0;
944      memcpy(m_spriteram_buffered, m_spriteram_delayed, m_spriteram.bytes());
945      for (i = 0; i < m_spriteram.bytes() / 2; i += 8)
950946      {
951         state->m_spriteram_buffered[i]     = spriteram[i];
952         state->m_spriteram_buffered[i + 1] = spriteram[i + 1];
953         state->m_spriteram_buffered[i + 4] = spriteram[i + 4];
947         m_spriteram_buffered[i]     = spriteram[i];
948         m_spriteram_buffered[i + 1] = spriteram[i + 1];
949         m_spriteram_buffered[i + 4] = spriteram[i + 4];
954950      }
955      memcpy(state->m_spriteram_delayed, spriteram, state->m_spriteram.bytes());
951      memcpy(m_spriteram_delayed, spriteram, m_spriteram.bytes());
956952   }
957953}
958954
959SCREEN_VBLANK( taitof2_partial_buffer_delayed_qzchikyu )
955void taitof2_state::screen_eof_taitof2_partial_buffer_delayed_qzchikyu(screen_device &screen, bool state)
960956{
961957   // rising edge
962   if (vblank_on)
958   if (state)
963959   {
964960      /* spriteram[2] and [3] are 1 frame behind...
965961           probably thundfox_eof_callback would work fine */
966962
967      taitof2_state *state = screen.machine().driver_data<taitof2_state>();
968      UINT16 *spriteram = state->m_spriteram;
963      UINT16 *spriteram = m_spriteram;
969964      int i;
970965
971966      taitof2_update_sprites_active_area(screen.machine());
972967
973      state->m_prepare_sprites = 0;
974      memcpy(state->m_spriteram_buffered, state->m_spriteram_delayed, state->m_spriteram.bytes());
975      for (i = 0; i < state->m_spriteram.bytes() / 2; i += 8)
968      m_prepare_sprites = 0;
969      memcpy(m_spriteram_buffered, m_spriteram_delayed, m_spriteram.bytes());
970      for (i = 0; i < m_spriteram.bytes() / 2; i += 8)
976971      {
977         state->m_spriteram_buffered[i]     = spriteram[i];
978         state->m_spriteram_buffered[i + 1] = spriteram[i + 1];
979         state->m_spriteram_buffered[i + 4] = spriteram[i + 4];
980         state->m_spriteram_buffered[i + 5] = spriteram[i + 5];   // not needed?
981         state->m_spriteram_buffered[i + 6] = spriteram[i + 6];   // not needed?
982         state->m_spriteram_buffered[i + 7] = spriteram[i + 7];   // not needed?
972         m_spriteram_buffered[i]     = spriteram[i];
973         m_spriteram_buffered[i + 1] = spriteram[i + 1];
974         m_spriteram_buffered[i + 4] = spriteram[i + 4];
975         m_spriteram_buffered[i + 5] = spriteram[i + 5];   // not needed?
976         m_spriteram_buffered[i + 6] = spriteram[i + 6];   // not needed?
977         m_spriteram_buffered[i + 7] = spriteram[i + 7];   // not needed?
983978      }
984      memcpy(state->m_spriteram_delayed, spriteram, state->m_spriteram.bytes());
979      memcpy(m_spriteram_delayed, spriteram, m_spriteram.bytes());
985980   }
986981}
987982
988983
989984/* SSI */
990SCREEN_UPDATE_IND16( taitof2_ssi )
985UINT32 taitof2_state::screen_update_taitof2_ssi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
991986{
992987   taitof2_handle_sprite_buffering(screen.machine());
993988
r17967r17968
1000995}
1001996
1002997
1003SCREEN_UPDATE_IND16( taitof2_yesnoj )
998UINT32 taitof2_state::screen_update_taitof2_yesnoj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
1004999{
1005   taitof2_state *state = screen.machine().driver_data<taitof2_state>();
10061000
10071001   taitof2_handle_sprite_buffering(screen.machine());
10081002
1009   tc0100scn_tilemap_update(state->m_tc0100scn);
1003   tc0100scn_tilemap_update(m_tc0100scn);
10101004
10111005   screen.machine().priority_bitmap.fill(0, cliprect);
10121006   bitmap.fill(0, cliprect);   /* wrong color? */
10131007   draw_sprites(screen.machine(), bitmap, cliprect, NULL, 0);
1014   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, tc0100scn_bottomlayer(state->m_tc0100scn), 0, 0);
1015   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, tc0100scn_bottomlayer(state->m_tc0100scn) ^ 1, 0, 0);
1016   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, 2, 0, 0);
1008   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, tc0100scn_bottomlayer(m_tc0100scn), 0, 0);
1009   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, tc0100scn_bottomlayer(m_tc0100scn) ^ 1, 0, 0);
1010   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, 2, 0, 0);
10171011   return 0;
10181012}
10191013
10201014
1021SCREEN_UPDATE_IND16( taitof2 )
1015UINT32 taitof2_state::screen_update_taitof2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
10221016{
1023   taitof2_state *state = screen.machine().driver_data<taitof2_state>();
10241017
10251018   taitof2_handle_sprite_buffering(screen.machine());
10261019
1027   tc0100scn_tilemap_update(state->m_tc0100scn);
1020   tc0100scn_tilemap_update(m_tc0100scn);
10281021
10291022   screen.machine().priority_bitmap.fill(0, cliprect);
10301023   bitmap.fill(0, cliprect);   /* wrong color? */
1031   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, tc0100scn_bottomlayer(state->m_tc0100scn), 0, 0);
1032   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, tc0100scn_bottomlayer(state->m_tc0100scn) ^ 1, 0, 0);
1024   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, tc0100scn_bottomlayer(m_tc0100scn), 0, 0);
1025   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, tc0100scn_bottomlayer(m_tc0100scn) ^ 1, 0, 0);
10331026   draw_sprites(screen.machine(), bitmap, cliprect, NULL, 0);
1034   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, 2, 0, 0);
1027   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, 2, 0, 0);
10351028   return 0;
10361029}
10371030
10381031
1039SCREEN_UPDATE_IND16( taitof2_pri )
1032UINT32 taitof2_state::screen_update_taitof2_pri(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
10401033{
1041   taitof2_state *state = screen.machine().driver_data<taitof2_state>();
10421034   address_space &space = screen.machine().driver_data()->generic_space();
10431035   int layer[3];
10441036
10451037   taitof2_handle_sprite_buffering(screen.machine());
10461038
1047   tc0100scn_tilemap_update(state->m_tc0100scn);
1039   tc0100scn_tilemap_update(m_tc0100scn);
10481040
1049   layer[0] = tc0100scn_bottomlayer(state->m_tc0100scn);
1041   layer[0] = tc0100scn_bottomlayer(m_tc0100scn);
10501042   layer[1] = layer[0] ^ 1;
10511043   layer[2] = 2;
1052   state->m_tilepri[layer[0]] = tc0360pri_r(state->m_tc0360pri, space, 5) & 0x0f;
1053   state->m_tilepri[layer[1]] = tc0360pri_r(state->m_tc0360pri, space, 5) >> 4;
1054   state->m_tilepri[layer[2]] = tc0360pri_r(state->m_tc0360pri, space, 4) >> 4;
1044   m_tilepri[layer[0]] = tc0360pri_r(m_tc0360pri, space, 5) & 0x0f;
1045   m_tilepri[layer[1]] = tc0360pri_r(m_tc0360pri, space, 5) >> 4;
1046   m_tilepri[layer[2]] = tc0360pri_r(m_tc0360pri, space, 4) >> 4;
10551047
1056   state->m_spritepri[0] = tc0360pri_r(state->m_tc0360pri, space, 6) & 0x0f;
1057   state->m_spritepri[1] = tc0360pri_r(state->m_tc0360pri, space, 6) >> 4;
1058   state->m_spritepri[2] = tc0360pri_r(state->m_tc0360pri, space, 7) & 0x0f;
1059   state->m_spritepri[3] = tc0360pri_r(state->m_tc0360pri, space, 7) >> 4;
1048   m_spritepri[0] = tc0360pri_r(m_tc0360pri, space, 6) & 0x0f;
1049   m_spritepri[1] = tc0360pri_r(m_tc0360pri, space, 6) >> 4;
1050   m_spritepri[2] = tc0360pri_r(m_tc0360pri, space, 7) & 0x0f;
1051   m_spritepri[3] = tc0360pri_r(m_tc0360pri, space, 7) >> 4;
10601052
1061   state->m_spriteblendmode = tc0360pri_r(state->m_tc0360pri, space, 0) & 0xc0;
1053   m_spriteblendmode = tc0360pri_r(m_tc0360pri, space, 0) & 0xc0;
10621054
10631055   screen.machine().priority_bitmap.fill(0, cliprect);
10641056   bitmap.fill(0, cliprect);   /* wrong color? */
10651057
1066   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[0], 0, 1);
1067   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[1], 0, 2);
1068   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
1058   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[0], 0, 1);
1059   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[1], 0, 2);
1060   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
10691061
10701062   draw_sprites(screen.machine(), bitmap, cliprect, NULL, 1);
10711063   return 0;
r17967r17968
10841076      tc0430grw_zoom_draw(state->m_tc0430grw, bitmap, cliprect, state->m_pivot_xdisp, state->m_pivot_ydisp, priority);
10851077}
10861078
1087SCREEN_UPDATE_IND16( taitof2_pri_roz )
1079UINT32 taitof2_state::screen_update_taitof2_pri_roz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
10881080{
1089   taitof2_state *state = screen.machine().driver_data<taitof2_state>();
10901081   address_space &space = screen.machine().driver_data()->generic_space();
10911082   int tilepri[3];
10921083   int rozpri;
10931084   int layer[3];
10941085   int drawn;
10951086   int i,j;
1096   int roz_base_color = (tc0360pri_r(state->m_tc0360pri, space, 1) & 0x3f) << 2;
1087   int roz_base_color = (tc0360pri_r(m_tc0360pri, space, 1) & 0x3f) << 2;
10971088
10981089   taitof2_handle_sprite_buffering(screen.machine());
10991090
1100   if (state->m_tc0280grd != NULL)
1101      tc0280grd_tilemap_update(state->m_tc0280grd, roz_base_color);
1091   if (m_tc0280grd != NULL)
1092      tc0280grd_tilemap_update(m_tc0280grd, roz_base_color);
11021093
1103   if (state->m_tc0430grw != NULL)
1104      tc0430grw_tilemap_update(state->m_tc0430grw, roz_base_color);
1094   if (m_tc0430grw != NULL)
1095      tc0430grw_tilemap_update(m_tc0430grw, roz_base_color);
11051096
1106   tc0100scn_tilemap_update(state->m_tc0100scn);
1097   tc0100scn_tilemap_update(m_tc0100scn);
11071098
1108   rozpri = (tc0360pri_r(state->m_tc0360pri, space, 1) & 0xc0) >> 6;
1109   rozpri = (tc0360pri_r(state->m_tc0360pri, space, 8 + rozpri / 2) >> 4 * (rozpri & 1)) & 0x0f;
1099   rozpri = (tc0360pri_r(m_tc0360pri, space, 1) & 0xc0) >> 6;
1100   rozpri = (tc0360pri_r(m_tc0360pri, space, 8 + rozpri / 2) >> 4 * (rozpri & 1)) & 0x0f;
11101101
1111   layer[0] = tc0100scn_bottomlayer(state->m_tc0100scn);
1102   layer[0] = tc0100scn_bottomlayer(m_tc0100scn);
11121103   layer[1] = layer[0] ^ 1;
11131104   layer[2] = 2;
11141105
1115   tilepri[layer[0]] = tc0360pri_r(state->m_tc0360pri, space, 5) & 0x0f;
1116   tilepri[layer[1]] = tc0360pri_r(state->m_tc0360pri, space, 5) >> 4;
1117   tilepri[layer[2]] = tc0360pri_r(state->m_tc0360pri, space, 4) >> 4;
1106   tilepri[layer[0]] = tc0360pri_r(m_tc0360pri, space, 5) & 0x0f;
1107   tilepri[layer[1]] = tc0360pri_r(m_tc0360pri, space, 5) >> 4;
1108   tilepri[layer[2]] = tc0360pri_r(m_tc0360pri, space, 4) >> 4;
11181109
1119   state->m_spritepri[0] = tc0360pri_r(state->m_tc0360pri, space, 6) & 0x0f;
1120   state->m_spritepri[1] = tc0360pri_r(state->m_tc0360pri, space, 6) >> 4;
1121   state->m_spritepri[2] = tc0360pri_r(state->m_tc0360pri, space, 7) & 0x0f;
1122   state->m_spritepri[3] = tc0360pri_r(state->m_tc0360pri, space, 7) >> 4;
1110   m_spritepri[0] = tc0360pri_r(m_tc0360pri, space, 6) & 0x0f;
1111   m_spritepri[1] = tc0360pri_r(m_tc0360pri, space, 6) >> 4;
1112   m_spritepri[2] = tc0360pri_r(m_tc0360pri, space, 7) & 0x0f;
1113   m_spritepri[3] = tc0360pri_r(m_tc0360pri, space, 7) >> 4;
11231114
1124   state->m_spriteblendmode = tc0360pri_r(state->m_tc0360pri, space, 0) & 0xc0;
1115   m_spriteblendmode = tc0360pri_r(m_tc0360pri, space, 0) & 0xc0;
11251116
11261117   screen.machine().priority_bitmap.fill(0, cliprect);
11271118   bitmap.fill(0, cliprect);   /* wrong color? */
r17967r17968
11321123      if (rozpri == i)
11331124      {
11341125         draw_roz_layer(screen.machine(), bitmap, cliprect, 1 << drawn);
1135         state->m_tilepri[drawn] = i;
1126         m_tilepri[drawn] = i;
11361127         drawn++;
11371128      }
11381129
r17967r17968
11401131      {
11411132         if (tilepri[layer[j]] == i)
11421133         {
1143            tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[j], 0, 1 << drawn);
1144            state->m_tilepri[drawn] = i;
1134            tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[j], 0, 1 << drawn);
1135            m_tilepri[drawn] = i;
11451136            drawn++;
11461137         }
11471138      }
r17967r17968
11541145
11551146
11561147/* Thunderfox */
1157SCREEN_UPDATE_IND16( taitof2_thundfox )
1148UINT32 taitof2_state::screen_update_taitof2_thundfox(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
11581149{
1159   taitof2_state *state = screen.machine().driver_data<taitof2_state>();
11601150   address_space &space = screen.machine().driver_data()->generic_space();
11611151   int tilepri[2][3];
11621152   int spritepri[4];
r17967r17968
11651155
11661156   taitof2_handle_sprite_buffering(screen.machine());
11671157
1168   tc0100scn_tilemap_update(state->m_tc0100scn_1);
1169   tc0100scn_tilemap_update(state->m_tc0100scn_2);
1158   tc0100scn_tilemap_update(m_tc0100scn_1);
1159   tc0100scn_tilemap_update(m_tc0100scn_2);
11701160
1171   layer[0][0] = tc0100scn_bottomlayer(state->m_tc0100scn_1);
1161   layer[0][0] = tc0100scn_bottomlayer(m_tc0100scn_1);
11721162   layer[0][1] = layer[0][0] ^ 1;
11731163   layer[0][2] = 2;
1174   tilepri[0][layer[0][0]] = tc0360pri_r(state->m_tc0360pri, space, 5) & 0x0f;
1175   tilepri[0][layer[0][1]] = tc0360pri_r(state->m_tc0360pri, space, 5) >> 4;
1176   tilepri[0][layer[0][2]] = tc0360pri_r(state->m_tc0360pri, space, 4) >> 4;
1164   tilepri[0][layer[0][0]] = tc0360pri_r(m_tc0360pri, space, 5) & 0x0f;
1165   tilepri[0][layer[0][1]] = tc0360pri_r(m_tc0360pri, space, 5) >> 4;
1166   tilepri[0][layer[0][2]] = tc0360pri_r(m_tc0360pri, space, 4) >> 4;
11771167
1178   layer[1][0] = tc0100scn_bottomlayer(state->m_tc0100scn_2);
1168   layer[1][0] = tc0100scn_bottomlayer(m_tc0100scn_2);
11791169   layer[1][1] = layer[1][0] ^ 1;
11801170   layer[1][2] = 2;
1181   tilepri[1][layer[1][0]] = tc0360pri_r(state->m_tc0360pri, space, 9) & 0x0f;
1182   tilepri[1][layer[1][1]] = tc0360pri_r(state->m_tc0360pri, space, 9) >> 4;
1183   tilepri[1][layer[1][2]] = tc0360pri_r(state->m_tc0360pri, space, 8) >> 4;
1171   tilepri[1][layer[1][0]] = tc0360pri_r(m_tc0360pri, space, 9) & 0x0f;
1172   tilepri[1][layer[1][1]] = tc0360pri_r(m_tc0360pri, space, 9) >> 4;
1173   tilepri[1][layer[1][2]] = tc0360pri_r(m_tc0360pri, space, 8) >> 4;
11841174
1185   spritepri[0] = tc0360pri_r(state->m_tc0360pri, space, 6) & 0x0f;
1186   spritepri[1] = tc0360pri_r(state->m_tc0360pri, space, 6) >> 4;
1187   spritepri[2] = tc0360pri_r(state->m_tc0360pri, space, 7) & 0x0f;
1188   spritepri[3] = tc0360pri_r(state->m_tc0360pri, space, 7) >> 4;
1175   spritepri[0] = tc0360pri_r(m_tc0360pri, space, 6) & 0x0f;
1176   spritepri[1] = tc0360pri_r(m_tc0360pri, space, 6) >> 4;
1177   spritepri[2] = tc0360pri_r(m_tc0360pri, space, 7) & 0x0f;
1178   spritepri[3] = tc0360pri_r(m_tc0360pri, space, 7) >> 4;
11891179
11901180   screen.machine().priority_bitmap.fill(0, cliprect);
11911181   bitmap.fill(0, cliprect);   /* wrong color? */
r17967r17968
12051195      if (tilepri[0][drawn[0]] < tilepri[1][drawn[1]])
12061196      {
12071197         pick = 0;
1208         tc0100scn = state->m_tc0100scn_1;
1198         tc0100scn = m_tc0100scn_1;
12091199      }
12101200      else
12111201      {
12121202         pick = 1;
1213         tc0100scn = state->m_tc0100scn_2;
1203         tc0100scn = m_tc0100scn_2;
12141204      }
12151205
12161206      tc0100scn_tilemap_draw(tc0100scn , bitmap, cliprect, layer[pick][drawn[pick]], 0, 1 << (drawn[pick] + 2 * pick));
r17967r17968
12181208   }
12191209   while (drawn[0] < 2)
12201210   {
1221      tc0100scn_tilemap_draw(state->m_tc0100scn_1, bitmap, cliprect, layer[0][drawn[0]], 0, 1 << drawn[0]);
1211      tc0100scn_tilemap_draw(m_tc0100scn_1, bitmap, cliprect, layer[0][drawn[0]], 0, 1 << drawn[0]);
12221212      drawn[0]++;
12231213   }
12241214   while (drawn[1] < 2)
12251215   {
1226      tc0100scn_tilemap_draw(state->m_tc0100scn_2, bitmap, cliprect, layer[1][drawn[1]], 0, 1 << (drawn[1] + 2));
1216      tc0100scn_tilemap_draw(m_tc0100scn_2, bitmap, cliprect, layer[1][drawn[1]], 0, 1 << (drawn[1] + 2));
12271217      drawn[1]++;
12281218   }
12291219
r17967r17968
12511241
12521242   if (tilepri[0][2] < tilepri[1][2])
12531243   {
1254      tc0100scn_tilemap_draw(state->m_tc0100scn_1, bitmap, cliprect, layer[0][2], 0, 0);
1255      tc0100scn_tilemap_draw(state->m_tc0100scn_2, bitmap, cliprect, layer[1][2], 0, 0);
1244      tc0100scn_tilemap_draw(m_tc0100scn_1, bitmap, cliprect, layer[0][2], 0, 0);
1245      tc0100scn_tilemap_draw(m_tc0100scn_2, bitmap, cliprect, layer[1][2], 0, 0);
12561246   }
12571247   else
12581248   {
1259      tc0100scn_tilemap_draw(state->m_tc0100scn_2, bitmap, cliprect, layer[1][2], 0, 0);
1260      tc0100scn_tilemap_draw(state->m_tc0100scn_1, bitmap, cliprect, layer[0][2], 0, 0);
1249      tc0100scn_tilemap_draw(m_tc0100scn_2, bitmap, cliprect, layer[1][2], 0, 0);
1250      tc0100scn_tilemap_draw(m_tc0100scn_1, bitmap, cliprect, layer[0][2], 0, 0);
12611251   }
12621252   return 0;
12631253}
r17967r17968
12921282
12931283********************************************************************/
12941284
1295SCREEN_UPDATE_IND16( taitof2_metalb )
1285UINT32 taitof2_state::screen_update_taitof2_metalb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
12961286{
1297   taitof2_state *state = screen.machine().driver_data<taitof2_state>();
12981287   address_space &space = screen.machine().driver_data()->generic_space();
12991288   UINT8 layer[5], invlayer[4];
13001289   UINT16 priority;
13011290
13021291   taitof2_handle_sprite_buffering(screen.machine());
13031292
1304   tc0480scp_tilemap_update(state->m_tc0480scp);
1293   tc0480scp_tilemap_update(m_tc0480scp);
13051294
1306   priority = tc0480scp_get_bg_priority(state->m_tc0480scp);
1295   priority = tc0480scp_get_bg_priority(m_tc0480scp);
13071296
13081297   layer[0] = (priority & 0xf000) >> 12;   /* tells us which bg layer is bottom */
13091298   layer[1] = (priority & 0x0f00) >>  8;
r17967r17968
13161305   invlayer[layer[2]] = 2;
13171306   invlayer[layer[3]] = 3;
13181307
1319   state->m_tilepri[invlayer[0]] = tc0360pri_r(state->m_tc0360pri, space, 4) & 0x0f;   /* bg0 */
1320   state->m_tilepri[invlayer[1]] = tc0360pri_r(state->m_tc0360pri, space, 4) >> 4;   /* bg1 */
1321   state->m_tilepri[invlayer[2]] = tc0360pri_r(state->m_tc0360pri, space, 5) & 0x0f;   /* bg2 */
1322   state->m_tilepri[invlayer[3]] = tc0360pri_r(state->m_tc0360pri, space, 5) >> 4;   /* bg3 */
1323   state->m_tilepri[4] = tc0360pri_r(state->m_tc0360pri, space, 9) & 0x0f;         /* fg (text layer) */
1308   m_tilepri[invlayer[0]] = tc0360pri_r(m_tc0360pri, space, 4) & 0x0f;   /* bg0 */
1309   m_tilepri[invlayer[1]] = tc0360pri_r(m_tc0360pri, space, 4) >> 4;   /* bg1 */
1310   m_tilepri[invlayer[2]] = tc0360pri_r(m_tc0360pri, space, 5) & 0x0f;   /* bg2 */
1311   m_tilepri[invlayer[3]] = tc0360pri_r(m_tc0360pri, space, 5) >> 4;   /* bg3 */
1312   m_tilepri[4] = tc0360pri_r(m_tc0360pri, space, 9) & 0x0f;         /* fg (text layer) */
13241313
1325   state->m_spritepri[0] = tc0360pri_r(state->m_tc0360pri, space, 6) & 0x0f;
1326   state->m_spritepri[1] = tc0360pri_r(state->m_tc0360pri, space, 6) >> 4;
1327   state->m_spritepri[2] = tc0360pri_r(state->m_tc0360pri, space, 7) & 0x0f;
1328   state->m_spritepri[3] = tc0360pri_r(state->m_tc0360pri, space, 7) >> 4;
1314   m_spritepri[0] = tc0360pri_r(m_tc0360pri, space, 6) & 0x0f;
1315   m_spritepri[1] = tc0360pri_r(m_tc0360pri, space, 6) >> 4;
1316   m_spritepri[2] = tc0360pri_r(m_tc0360pri, space, 7) & 0x0f;
1317   m_spritepri[3] = tc0360pri_r(m_tc0360pri, space, 7) >> 4;
13291318
1330   state->m_spriteblendmode = tc0360pri_r(state->m_tc0360pri, space, 0) & 0xc0;
1319   m_spriteblendmode = tc0360pri_r(m_tc0360pri, space, 0) & 0xc0;
13311320
13321321   screen.machine().priority_bitmap.fill(0, cliprect);
13331322   bitmap.fill(0, cliprect);
13341323
1335   tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[0], 0 ,1);
1336   tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[1], 0, 2);
1337   tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[2], 0, 4);
1338   tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[3], 0, 8);
1339   tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[4], 0, 16);
1324   tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[0], 0 ,1);
1325   tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[1], 0, 2);
1326   tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[2], 0, 4);
1327   tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[3], 0, 8);
1328   tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[4], 0, 16);
13401329
13411330   draw_sprites(screen.machine(), bitmap, cliprect, NULL, 1);
13421331   return 0;
r17967r17968
13441333
13451334
13461335/* Deadconx, Footchmp */
1347SCREEN_UPDATE_IND16( taitof2_deadconx )
1336UINT32 taitof2_state::screen_update_taitof2_deadconx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
13481337{
1349   taitof2_state *state = screen.machine().driver_data<taitof2_state>();
13501338   address_space &space = screen.machine().driver_data()->generic_space();
13511339   UINT8 layer[5];
13521340   UINT8 tilepri[5];
r17967r17968
13551343
13561344   taitof2_handle_sprite_buffering(screen.machine());
13571345
1358   tc0480scp_tilemap_update(state->m_tc0480scp);
1346   tc0480scp_tilemap_update(m_tc0480scp);
13591347
1360   priority = tc0480scp_get_bg_priority(state->m_tc0480scp);
1348   priority = tc0480scp_get_bg_priority(m_tc0480scp);
13611349
13621350   layer[0] = (priority & 0xf000) >> 12;   /* tells us which bg layer is bottom */
13631351   layer[1] = (priority & 0x0f00) >>  8;
r17967r17968
13651353   layer[3] = (priority & 0x000f) >>  0;   /* tells us which is top */
13661354   layer[4] = 4;   /* text layer always over bg layers */
13671355
1368   tilepri[0] = tc0360pri_r(state->m_tc0360pri, space, 4) >> 4;      /* bg0 */
1369   tilepri[1] = tc0360pri_r(state->m_tc0360pri, space, 5) & 0x0f;    /* bg1 */
1370   tilepri[2] = tc0360pri_r(state->m_tc0360pri, space, 5) >> 4;      /* bg2 */
1371   tilepri[3] = tc0360pri_r(state->m_tc0360pri, space, 4) & 0x0f;    /* bg3 */
1356   tilepri[0] = tc0360pri_r(m_tc0360pri, space, 4) >> 4;      /* bg0 */
1357   tilepri[1] = tc0360pri_r(m_tc0360pri, space, 5) & 0x0f;    /* bg1 */
1358   tilepri[2] = tc0360pri_r(m_tc0360pri, space, 5) >> 4;      /* bg2 */
1359   tilepri[3] = tc0360pri_r(m_tc0360pri, space, 4) & 0x0f;    /* bg3 */
13721360
13731361/* we actually assume text layer is on top of everything anyway, but FWIW... */
1374   tilepri[layer[4]] = tc0360pri_r(state->m_tc0360pri, space, 7) >> 4;    /* fg (text layer) */
1362   tilepri[layer[4]] = tc0360pri_r(m_tc0360pri, space, 7) >> 4;    /* fg (text layer) */
13751363
1376   spritepri[0] = tc0360pri_r(state->m_tc0360pri, space, 6) & 0x0f;
1377   spritepri[1] = tc0360pri_r(state->m_tc0360pri, space, 6) >> 4;
1378   spritepri[2] = tc0360pri_r(state->m_tc0360pri, space, 7) & 0x0f;
1379   spritepri[3] = tc0360pri_r(state->m_tc0360pri, space, 7) >> 4;
1364   spritepri[0] = tc0360pri_r(m_tc0360pri, space, 6) & 0x0f;
1365   spritepri[1] = tc0360pri_r(m_tc0360pri, space, 6) >> 4;
1366   spritepri[2] = tc0360pri_r(m_tc0360pri, space, 7) & 0x0f;
1367   spritepri[3] = tc0360pri_r(m_tc0360pri, space, 7) >> 4;
13801368
13811369   screen.machine().priority_bitmap.fill(0, cliprect);
13821370   bitmap.fill(0, cliprect);
13831371
1384   tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[0], 0 ,1);
1385   tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[1], 0, 2);
1386   tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[2], 0, 4);
1387   tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[3], 0, 8);
1372   tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[0], 0 ,1);
1373   tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[1], 0, 2);
1374   tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[2], 0, 4);
1375   tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[3], 0, 8);
13881376
13891377   {
13901378      int primasks[4] = {0,0,0,0};
r17967r17968
14071395    that the FG layer is always on top of sprites.
14081396    */
14091397
1410   tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[4], 0, 0);
1398   tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[4], 0, 0);
14111399   return 0;
14121400}
trunk/src/mame/video/gberet.c
r17967r17968
163163   }
164164}
165165
166SCREEN_UPDATE_IND16( gberet )
166UINT32 gberet_state::screen_update_gberet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
167167{
168   gberet_state *state = screen.machine().driver_data<gberet_state>();
169168
170   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES, 0);
169   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES, 0);
171170   gberet_draw_sprites(screen.machine(), bitmap, cliprect);
172   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
171   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
173172   return 0;
174173}
175174
r17967r17968
218217   }
219218}
220219
221SCREEN_UPDATE_IND16( gberetb )
220UINT32 gberet_state::screen_update_gberetb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
222221{
223   gberet_state *state = screen.machine().driver_data<gberet_state>();
224   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES, 0);
222   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES, 0);
225223   gberetb_draw_sprites(screen.machine(), bitmap, cliprect);
226   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
224   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
227225   return 0;
228226}
trunk/src/mame/video/stfight.c
r17967r17968
288288}
289289
290290
291SCREEN_UPDATE_IND16( stfight )
291UINT32 stfight_state::screen_update_stfight(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
292292{
293   stfight_state *state = screen.machine().driver_data<stfight_state>();
294293   set_pens(screen.machine());
295294
296295   screen.machine().priority_bitmap.fill(0, cliprect);
297296
298   bitmap.fill(0, cliprect);   /* in case state->m_bg_tilemap is disabled */
299   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
300   state->m_fg_tilemap->draw(bitmap, cliprect, 0,1);
297   bitmap.fill(0, cliprect);   /* in case m_bg_tilemap is disabled */
298   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
299   m_fg_tilemap->draw(bitmap, cliprect, 0,1);
301300
302301   /* Draw sprites (may be obscured by foreground layer) */
303   if (state->m_vh_latch_ram[0x07] & 0x40)
302   if (m_vh_latch_ram[0x07] & 0x40)
304303      draw_sprites(screen.machine(), bitmap,cliprect);
305304
306   state->m_tx_tilemap->draw(bitmap, cliprect, 0,0);
305   m_tx_tilemap->draw(bitmap, cliprect, 0,0);
307306   return 0;
308307}
trunk/src/mame/video/gottlieb.c
r17967r17968
240240 *
241241 *************************************/
242242
243SCREEN_UPDATE_RGB32( gottlieb )
243UINT32 gottlieb_state::screen_update_gottlieb(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
244244{
245   gottlieb_state *state = screen.machine().driver_data<gottlieb_state>();
246245   /* if the background has lower priority, render it first, else clear the screen */
247   if (!state->m_background_priority)
248      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
246   if (!m_background_priority)
247      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
249248   else
250249      bitmap.fill(screen.machine().pens[0], cliprect);
251250
r17967r17968
253252   draw_sprites(screen.machine(), bitmap, cliprect);
254253
255254   /* if the background has higher priority, render it now */
256   if (state->m_background_priority)
257      state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
255   if (m_background_priority)
256      m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
258257
259258   return 0;
260259}
trunk/src/mame/video/ddragon.c
r17967r17968
233233#undef DRAW_SPRITE
234234
235235
236SCREEN_UPDATE_IND16( ddragon )
236UINT32 ddragon_state::screen_update_ddragon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
237237{
238   ddragon_state *state = screen.machine().driver_data<ddragon_state>();
239238
240   int scrollx = (state->m_scrollx_hi << 8) | *state->m_scrollx_lo;
241   int scrolly = (state->m_scrolly_hi << 8) | *state->m_scrolly_lo;
239   int scrollx = (m_scrollx_hi << 8) | *m_scrollx_lo;
240   int scrolly = (m_scrolly_hi << 8) | *m_scrolly_lo;
242241
243   state->m_bg_tilemap->set_scrollx(0, scrollx);
244   state->m_bg_tilemap->set_scrolly(0, scrolly);
242   m_bg_tilemap->set_scrollx(0, scrollx);
243   m_bg_tilemap->set_scrolly(0, scrolly);
245244
246   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
245   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
247246   draw_sprites(screen.machine(), bitmap, cliprect);
248   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
247   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
249248   return 0;
250249}
trunk/src/mame/video/asterix.c
r17967r17968
4545   *code = (*code & 0x03ff) | state->m_tilebanks[(*code >> 10) & 3];
4646}
4747
48SCREEN_UPDATE_IND16( asterix )
48UINT32 asterix_state::screen_update_asterix(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
4949{
50   asterix_state *state = screen.machine().driver_data<asterix_state>();
5150   static const int K053251_CI[4] = { K053251_CI0, K053251_CI2, K053251_CI3, K053251_CI4 };
5251   int layer[3], plane, new_colorbase;
5352
5453   /* Layer offsets are different if horizontally flipped */
55   if (k056832_read_register(state->m_k056832, 0x0) & 0x10)
54   if (k056832_read_register(m_k056832, 0x0) & 0x10)
5655   {
57      k056832_set_layer_offs(state->m_k056832, 0, 89 - 176, 0);
58      k056832_set_layer_offs(state->m_k056832, 1, 91 - 176, 0);
59      k056832_set_layer_offs(state->m_k056832, 2, 89 - 176, 0);
60      k056832_set_layer_offs(state->m_k056832, 3, 95 - 176, 0);
56      k056832_set_layer_offs(m_k056832, 0, 89 - 176, 0);
57      k056832_set_layer_offs(m_k056832, 1, 91 - 176, 0);
58      k056832_set_layer_offs(m_k056832, 2, 89 - 176, 0);
59      k056832_set_layer_offs(m_k056832, 3, 95 - 176, 0);
6160   }
6261   else
6362   {
64      k056832_set_layer_offs(state->m_k056832, 0, 89, 0);
65      k056832_set_layer_offs(state->m_k056832, 1, 91, 0);
66      k056832_set_layer_offs(state->m_k056832, 2, 89, 0);
67      k056832_set_layer_offs(state->m_k056832, 3, 95, 0);
63      k056832_set_layer_offs(m_k056832, 0, 89, 0);
64      k056832_set_layer_offs(m_k056832, 1, 91, 0);
65      k056832_set_layer_offs(m_k056832, 2, 89, 0);
66      k056832_set_layer_offs(m_k056832, 3, 95, 0);
6867   }
6968
7069
71   state->m_tilebanks[0] = (k056832_get_lookup(state->m_k056832, 0) << 10);
72   state->m_tilebanks[1] = (k056832_get_lookup(state->m_k056832, 1) << 10);
73   state->m_tilebanks[2] = (k056832_get_lookup(state->m_k056832, 2) << 10);
74   state->m_tilebanks[3] = (k056832_get_lookup(state->m_k056832, 3) << 10);
70   m_tilebanks[0] = (k056832_get_lookup(m_k056832, 0) << 10);
71   m_tilebanks[1] = (k056832_get_lookup(m_k056832, 1) << 10);
72   m_tilebanks[2] = (k056832_get_lookup(m_k056832, 2) << 10);
73   m_tilebanks[3] = (k056832_get_lookup(m_k056832, 3) << 10);
7574
7675   // update color info and refresh tilemaps
77   state->m_sprite_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI1);
76   m_sprite_colorbase = k053251_get_palette_index(m_k053251, K053251_CI1);
7877
7978   for (plane = 0; plane < 4; plane++)
8079   {
81      new_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI[plane]);
82      if (state->m_layer_colorbase[plane] != new_colorbase)
80      new_colorbase = k053251_get_palette_index(m_k053251, K053251_CI[plane]);
81      if (m_layer_colorbase[plane] != new_colorbase)
8382      {
84         state->m_layer_colorbase[plane] = new_colorbase;
85         k056832_mark_plane_dirty(state->m_k056832, plane);
83         m_layer_colorbase[plane] = new_colorbase;
84         k056832_mark_plane_dirty(m_k056832, plane);
8685      }
8786   }
8887
8988   layer[0] = 0;
90   state->m_layerpri[0] = k053251_get_priority(state->m_k053251, K053251_CI0);
89   m_layerpri[0] = k053251_get_priority(m_k053251, K053251_CI0);
9190   layer[1] = 1;
92   state->m_layerpri[1] = k053251_get_priority(state->m_k053251, K053251_CI2);
91   m_layerpri[1] = k053251_get_priority(m_k053251, K053251_CI2);
9392   layer[2] = 3;
94   state->m_layerpri[2] = k053251_get_priority(state->m_k053251, K053251_CI4);
93   m_layerpri[2] = k053251_get_priority(m_k053251, K053251_CI4);
9594
96   konami_sortlayers3(layer, state->m_layerpri);
95   konami_sortlayers3(layer, m_layerpri);
9796
9897   screen.machine().priority_bitmap.fill(0, cliprect);
9998   bitmap.fill(0, cliprect);
10099
101   k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, layer[0], K056832_DRAW_FLAG_MIRROR, 1);
102   k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, layer[1], K056832_DRAW_FLAG_MIRROR, 2);
103   k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, layer[2], K056832_DRAW_FLAG_MIRROR, 4);
100   k056832_tilemap_draw(m_k056832, bitmap, cliprect, layer[0], K056832_DRAW_FLAG_MIRROR, 1);
101   k056832_tilemap_draw(m_k056832, bitmap, cliprect, layer[1], K056832_DRAW_FLAG_MIRROR, 2);
102   k056832_tilemap_draw(m_k056832, bitmap, cliprect, layer[2], K056832_DRAW_FLAG_MIRROR, 4);
104103
105104/* this isn't supported anymore and it is unsure if still needed; keeping here for reference
106105    pdrawgfx_shadow_lowpri = 1; fix shadows in front of feet */
107   k053245_sprites_draw(state->m_k053244, bitmap, cliprect);
106   k053245_sprites_draw(m_k053244, bitmap, cliprect);
108107
109   k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, 2, K056832_DRAW_FLAG_MIRROR, 0);
108   k056832_tilemap_draw(m_k056832, bitmap, cliprect, 2, K056832_DRAW_FLAG_MIRROR, 0);
110109   return 0;
111110}
trunk/src/mame/video/tubep.c
r17967r17968
577577}
578578
579579
580SCREEN_UPDATE_IND16( tubep )
580UINT32 tubep_state::screen_update_tubep(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
581581{
582   tubep_state *state = screen.machine().driver_data<tubep_state>();
583   int DISP_ = state->m_DISP^1;
582   int DISP_ = m_DISP^1;
584583
585584   pen_t pen_base = 32; //change it later
586585
587586   UINT32 v;
588587   UINT8 *text_gfx_base = screen.machine().root_device().memregion("gfx1")->base();
589   UINT8 *romBxx = state->memregion("user1")->base() + 0x2000*state->m_background_romsel;
588   UINT8 *romBxx = memregion("user1")->base() + 0x2000*m_background_romsel;
590589
591590   /* logerror(" update: from DISP=%i y_min=%3i y_max=%3i\n", DISP_, cliprect.min_y, cliprect.max_y+1); */
592591
r17967r17968
602601
603602         sp_data2 = sp_data1;
604603         sp_data1 = sp_data0;
605         sp_data0 = state->m_spritemap[ h + v*256 +(DISP_*256*256) ];
604         sp_data0 = m_spritemap[ h + v*256 +(DISP_*256*256) ];
606605
607606         text_offs = ((v >> 3) << 6) | ((h >> 3) << 1);
608         text_code = state->m_textram[text_offs];
607         text_code = m_textram[text_offs];
609608         text_gfx_data = text_gfx_base[(text_code << 3) | (v & 0x07)];
610609
611610         if (text_gfx_data & (0x80 >> (h & 0x07)))
612            bitmap.pix16(v, h) = (state->m_textram[text_offs + 1] & 0x0f) | state->m_color_A4;
611            bitmap.pix16(v, h) = (m_textram[text_offs + 1] & 0x0f) | m_color_A4;
613612         else
614613         {
615614            UINT32 bg_data;
r17967r17968
623622            UINT8 romB_data_h = romBxx[ 0x4000 + 0x4000*rom_select + romB_addr ];
624623            /* romB_data_h = output of LS374 @B3 or @B4 */
625624
626            UINT32 VR_addr = ((romB_data_h + state->m_ls175_b7) & 0xfe) << 2;
625            UINT32 VR_addr = ((romB_data_h + m_ls175_b7) & 0xfe) << 2;
627626            /* VR_addr = output of LS157s @B1 and @B6 */
628627
629            UINT8 xor_logic = (((h^v)&0x80)>>7) ^ (state->m_background_romsel & (((v&0x80)>>7)^1));
628            UINT8 xor_logic = (((h^v)&0x80)>>7) ^ (m_background_romsel & (((v&0x80)>>7)^1));
630629
631630            /* read from ROMs: B1/2 */
632631            UINT8 romB_data_l = romBxx[ romB_addr ] ^ (xor_logic?0xff:0x00);
r17967r17968
634633
635634            UINT8 ls157_b11 = (romB_data_l >> ((rom_select==0)?4:0))&0x0f;
636635
637            UINT8 ls283_b12 = (ls157_b11 + state->m_ls175_e8) & 0x0f;
636            UINT8 ls283_b12 = (ls157_b11 + m_ls175_e8) & 0x0f;
638637
639638            VR_addr |= (ls283_b12>>1);
640639
641            bg_data = state->m_backgroundram[ VR_addr ];
640            bg_data = m_backgroundram[ VR_addr ];
642641
643642            romB_data_h>>=2;
644643
r17967r17968
648647               sp_data = sp_data1;
649648
650649            if (sp_data != 0x0f)
651               bg_data = state->m_prom2[sp_data | state->m_color_A4];
650               bg_data = m_prom2[sp_data | m_color_A4];
652651
653652            bitmap.pix16(v, h) = pen_base + bg_data*64 + romB_data_h;
654653         }
r17967r17968
734733}
735734
736735
737SCREEN_UPDATE_IND16( rjammer )
736UINT32 tubep_state::screen_update_rjammer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
738737{
739   tubep_state *state = screen.machine().driver_data<tubep_state>();
740   int DISP_ = state->m_DISP^1;
738   int DISP_ = m_DISP^1;
741739
742740   UINT32 v;
743741   UINT8 *text_gfx_base = screen.machine().root_device().memregion("gfx1")->base();
744   UINT8 *rom13D  = state->memregion("user1")->base();
742   UINT8 *rom13D  = memregion("user1")->base();
745743   UINT8 *rom11BD = rom13D+0x1000;
746744   UINT8 *rom19C  = rom13D+0x5000;
747745
r17967r17968
757755      UINT8 pal14h4_pin18;
758756      UINT8 pal14h4_pin13;
759757
760      UINT32 addr = (v*2) | state->m_page;
761      UINT32 ram_data = state->m_rjammer_backgroundram[ addr ] + 256*(state->m_rjammer_backgroundram[ addr+1 ]&0x2f);
758      UINT32 addr = (v*2) | m_page;
759      UINT32 ram_data = m_rjammer_backgroundram[ addr ] + 256*(m_rjammer_backgroundram[ addr+1 ]&0x2f);
762760
763      addr = (v>>3) | ((state->m_ls377_data&0x1f)<<5);
761      addr = (v>>3) | ((m_ls377_data&0x1f)<<5);
764762      pal14h4_pin13 = (rom19C[addr] >> ((v&7)^7) ) &1;
765763      pal14h4_pin19 = (ram_data>>13) & 1;
766764
r17967r17968
772770
773771         sp_data2 = sp_data1;
774772         sp_data1 = sp_data0;
775         sp_data0 = state->m_spritemap[ h + v*256 +(DISP_*256*256) ];
773         sp_data0 = m_spritemap[ h + v*256 +(DISP_*256*256) ];
776774
777775         text_offs = ((v >> 3) << 6) | ((h >> 3) << 1);
778         text_code = state->m_textram[text_offs];
776         text_code = m_textram[text_offs];
779777         text_gfx_data = text_gfx_base[(text_code << 3) | (v & 0x07)];
780778
781779         if (text_gfx_data & (0x80 >> (h & 0x07)))
782            bitmap.pix16(v, h) = 0x10 | (state->m_textram[text_offs + 1] & 0x0f);
780            bitmap.pix16(v, h) = 0x10 | (m_textram[text_offs + 1] & 0x0f);
783781         else
784782         {
785783            UINT32 sp_data;
r17967r17968
814812               else
815813                  bg_data = (rom11_data>>4) & 0x0f;
816814
817               addr = (h>>3) | (state->m_ls377_data<<5);
815               addr = (h>>3) | (m_ls377_data<<5);
818816               pal14h4_pin18 = (rom19C[addr] >> ((h&7)^7) ) &1;
819817
820818               /*
trunk/src/mame/video/exidy.c
r17967r17968
356356 *
357357 *************************************/
358358
359SCREEN_UPDATE_IND16( exidy )
359UINT32 exidy_state::screen_update_exidy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
360360{
361   exidy_state *state = screen.machine().driver_data<exidy_state>();
362361   /* refresh the colors from the palette (static or dynamic) */
363362   set_colors(screen.machine());
364363
365364   /* update the background and draw it */
366365   draw_background(screen.machine());
367   copybitmap(bitmap, state->m_background_bitmap, 0, 0, 0, 0, cliprect);
366   copybitmap(bitmap, m_background_bitmap, 0, 0, 0, 0, cliprect);
368367
369368   /* draw the sprites */
370369   draw_sprites(screen.machine(), bitmap, cliprect);
trunk/src/mame/video/homedata.c
r17967r17968
801801
802802***************************************************************************/
803803
804SCREEN_UPDATE_IND16( mrokumei )
804UINT32 homedata_state::screen_update_mrokumei(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
805805{
806   homedata_state *state = screen.machine().driver_data<homedata_state>();
807806   int flags,width;
808807
809808   /* blank screen */
810   if (state->m_vreg[0x3] == 0xc1 && state->m_vreg[0x4] == 0xc0 && state->m_vreg[0x5] == 0xff)
809   if (m_vreg[0x3] == 0xc1 && m_vreg[0x4] == 0xc0 && m_vreg[0x5] == 0xff)
811810   {
812811      bitmap.fill(get_black_pen(screen.machine()), cliprect);
813812      return 0;
814813   }
815814
816   flags = (state->m_vreg[1] & 0x80) ? (TILE_FLIPX | TILE_FLIPY) : 0;
817   if (flags != state->m_flipscreen)
815   flags = (m_vreg[1] & 0x80) ? (TILE_FLIPX | TILE_FLIPY) : 0;
816   if (flags != m_flipscreen)
818817   {
819      state->m_flipscreen = flags;
818      m_flipscreen = flags;
820819      screen.machine().tilemap().mark_all_dirty();
821820   }
822821
823   switch (state->m_vreg[0x3])
822   switch (m_vreg[0x3])
824823   {
825824      case 0xb7: width = 54; break;   // mjclinic
826825      case 0xae: width = 52; break;   // mrokumei
827826      case 0x9f: width = 49; break;   // hourouki, mhgaiden, mjhokite
828827      case 0x96: width = 49; break;   // mjclinic
829828      default:
830         if (state->m_vreg[0x3])
829         if (m_vreg[0x3])
831830            popmessage("unknown video control %02x %02x %02x %02x",
832               state->m_vreg[0x3],
833               state->m_vreg[0x4],
834               state->m_vreg[0x5],
835               state->m_vreg[0x6]);
831               m_vreg[0x3],
832               m_vreg[0x4],
833               m_vreg[0x5],
834               m_vreg[0x6]);
836835         width = 54;
837836         break;
838837   }
839838   screen.set_visible_area(0*8, width*8-1, 2*8, 30*8-1);
840839
841   state->m_bg_tilemap[state->m_visible_page][0]->set_scrollx(0, state->m_vreg[0xc] << 1);
840   m_bg_tilemap[m_visible_page][0]->set_scrollx(0, m_vreg[0xc] << 1);
842841
843   state->m_bg_tilemap[state->m_visible_page][0]->draw(bitmap, cliprect, 0, 0);
844   state->m_bg_tilemap[state->m_visible_page][1]->draw(bitmap, cliprect, 0, 0);
842   m_bg_tilemap[m_visible_page][0]->draw(bitmap, cliprect, 0, 0);
843   m_bg_tilemap[m_visible_page][1]->draw(bitmap, cliprect, 0, 0);
845844   return 0;
846845}
847846
848847#ifdef UNUSED_FUNCTION
849SCREEN_UPDATE_IND16( reikaids )
848UINT32 homedata_state::screen_update_reikaids(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
850849{
851   homedata_state *state = screen.machine().driver_data<homedata_state>();
852850   int flags;
853851   static const int pritable[8][4] =
854852   {
r17967r17968
864862   int pri, i;
865863
866864
867   flags = (state->m_vreg[1] & 0x80) ? (TILE_FLIPX | TILE_FLIPY) : 0;
868   if (flags != state->m_flipscreen)
865   flags = (m_vreg[1] & 0x80) ? (TILE_FLIPX | TILE_FLIPY) : 0;
866   if (flags != m_flipscreen)
869867   {
870      state->m_flipscreen = flags;
868      m_flipscreen = flags;
871869      screen.machine().tilemap().mark_all_dirty();
872870   }
873871
874872
875873   bitmap.fill(get_black_pen(screen.machine()), cliprect);
876874
877   pri = (state->m_bank & 0x70) >> 4;
875   pri = (m_bank & 0x70) >> 4;
878876   for (i = 0; i < 4; i++)
879      state->m_bg_tilemap[state->m_visible_page][pritable[pri][3 - i]]->draw(bitmap, cliprect, 0, 0);
877      m_bg_tilemap[m_visible_page][pritable[pri][3 - i]]->draw(bitmap, cliprect, 0, 0);
880878   return 0;
881879}
882880#endif
883881
884SCREEN_UPDATE_IND16( reikaids )
882UINT32 homedata_state::screen_update_reikaids(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
885883{
886   homedata_state *state = screen.machine().driver_data<homedata_state>();
887884   int flags;
888885   static const int pritable[2][8][4] =   /* table of priorities derived from the PROM */
889886   {
r17967r17968
911908
912909   int pri, i;
913910
914   flags = (state->m_vreg[1] & 0x80) ? (TILE_FLIPX | TILE_FLIPY) : 0;
915   if (flags != state->m_flipscreen)
911   flags = (m_vreg[1] & 0x80) ? (TILE_FLIPX | TILE_FLIPY) : 0;
912   if (flags != m_flipscreen)
916913   {
917      state->m_flipscreen = flags;
914      m_flipscreen = flags;
918915      screen.machine().tilemap().mark_all_dirty();
919916   }
920917
921918
922919   bitmap.fill(get_black_pen(screen.machine()), cliprect);
923920
924   pri = (state->m_blitter_bank & 0x70) >> 4;
921   pri = (m_blitter_bank & 0x70) >> 4;
925922   for (i = 0; i < 4; i++)
926      state->m_bg_tilemap[state->m_visible_page][pritable[state->m_priority][pri][3 - i]]->draw(bitmap, cliprect, 0, 0);
923      m_bg_tilemap[m_visible_page][pritable[m_priority][pri][3 - i]]->draw(bitmap, cliprect, 0, 0);
927924   return 0;
928925}
929926
930927
931SCREEN_UPDATE_IND16( pteacher )
928UINT32 homedata_state::screen_update_pteacher(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
932929{
933   homedata_state *state = screen.machine().driver_data<homedata_state>();
934930   int flags, scroll_low, scroll_high;
935931
936932
937933   /* blank screen */
938   if (state->m_vreg[0x3] == 0xc1 && state->m_vreg[0x4] == 0xc0 && state->m_vreg[0x5] == 0xff)
934   if (m_vreg[0x3] == 0xc1 && m_vreg[0x4] == 0xc0 && m_vreg[0x5] == 0xff)
939935   {
940936      bitmap.fill(get_black_pen(screen.machine()), cliprect);
941937      return 0;
942938   }
943939
944   flags = (state->m_vreg[1] & 0x80) ? (TILE_FLIPX | TILE_FLIPY) : 0;
945   if (flags != state->m_flipscreen)
940   flags = (m_vreg[1] & 0x80) ? (TILE_FLIPX | TILE_FLIPY) : 0;
941   if (flags != m_flipscreen)
946942   {
947      state->m_flipscreen = flags;
943      m_flipscreen = flags;
948944      screen.machine().tilemap().mark_all_dirty();
949945   }
950946
r17967r17968
972968       blanked = c1 c0 ff --
973969      */
974970
975   if (state->m_blitter_bank & 0x04)
971   if (m_blitter_bank & 0x04)
976972   {
977      if (state->m_vreg[0x4] == 0xae || state->m_vreg[0x4] == 0xb8)
973      if (m_vreg[0x4] == 0xae || m_vreg[0x4] == 0xb8)
978974      {
979975         /* kludge for mjkinjas */
980976         screen.set_visible_area(0*8, 42*8-1, 2*8, 30*8-1);
r17967r17968
982978      }
983979      else
984980      {
985         if (state->m_vreg[0x3] == 0xa6)
981         if (m_vreg[0x3] == 0xa6)
986982            screen.set_visible_area(0*8, 33*8-1, 2*8, 30*8-1);
987983         else
988984            screen.set_visible_area(0*8, 35*8-1, 2*8, 30*8-1);
989         scroll_low = (11 - (state->m_vreg[0x4] & 0x0f)) * 8 / 12;
985         scroll_low = (11 - (m_vreg[0x4] & 0x0f)) * 8 / 12;
990986      }
991987   }
992988   else
993989   {
994      if (state->m_vreg[0x3] == 0xa6)
990      if (m_vreg[0x3] == 0xa6)
995991         screen.set_visible_area(0*8, 51*8-1, 2*8, 30*8-1);
996992      else
997993         screen.set_visible_area(0*8, 54*8-1, 2*8, 30*8-1);
998      scroll_low = 7 - (state->m_vreg[0x4] & 0x0f);
994      scroll_low = 7 - (m_vreg[0x4] & 0x0f);
999995   }
1000   scroll_high = state->m_vreg[0xb] >> 2;
996   scroll_high = m_vreg[0xb] >> 2;
1001997
1002   state->m_bg_tilemap[state->m_visible_page][0]->set_scrollx(0, scroll_high * 8 + scroll_low);
1003   state->m_bg_tilemap[state->m_visible_page][1]->set_scrollx(0, scroll_high * 8 + scroll_low);
998   m_bg_tilemap[m_visible_page][0]->set_scrollx(0, scroll_high * 8 + scroll_low);
999   m_bg_tilemap[m_visible_page][1]->set_scrollx(0, scroll_high * 8 + scroll_low);
10041000
1005   state->m_bg_tilemap[state->m_visible_page][0]->draw(bitmap, cliprect, 0, 0);
1006   state->m_bg_tilemap[state->m_visible_page][1]->draw(bitmap, cliprect, 0, 0);
1001   m_bg_tilemap[m_visible_page][0]->draw(bitmap, cliprect, 0, 0);
1002   m_bg_tilemap[m_visible_page][1]->draw(bitmap, cliprect, 0, 0);
10071003   return 0;
10081004}
10091005
1010SCREEN_UPDATE_IND16( mirderby )
1006UINT32 homedata_state::screen_update_mirderby(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
10111007{
10121008   return 0;
10131009}
10141010
10151011
1016SCREEN_VBLANK( homedata )
1012void homedata_state::screen_eof_homedata(screen_device &screen, bool state)
10171013{
10181014   // rising edge
1019   if (vblank_on)
1015   if (state)
10201016   {
1021      homedata_state *state = screen.machine().driver_data<homedata_state>();
1022      state->m_visible_page ^= 1;
1017      m_visible_page ^= 1;
10231018   }
10241019}
trunk/src/mame/video/xxmissio.c
r17967r17968
130130}
131131
132132
133SCREEN_UPDATE_IND16( xxmissio )
133UINT32 xxmissio_state::screen_update_xxmissio(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
134134{
135   xxmissio_state *state = screen.machine().driver_data<xxmissio_state>();
136135   screen.machine().tilemap().mark_all_dirty();
137   screen.machine().tilemap().set_flip_all(state->m_flipscreen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
136   screen.machine().tilemap().set_flip_all(m_flipscreen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
138137
139   state->m_bg_tilemap->set_scrollx(0, state->m_xscroll * 2);
140   state->m_bg_tilemap->set_scrolly(0, state->m_yscroll);
138   m_bg_tilemap->set_scrollx(0, m_xscroll * 2);
139   m_bg_tilemap->set_scrolly(0, m_yscroll);
141140
142   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
141   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
143142   draw_sprites(bitmap, cliprect, screen.machine().gfx[1]);
144   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
143   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
145144
146145   return 0;
147146}
trunk/src/mame/video/mugsmash.c
r17967r17968
145145   m_tilemap2 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(mugsmash_state::get_mugsmash_tile_info2),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
146146}
147147
148SCREEN_UPDATE_IND16( mugsmash )
148UINT32 mugsmash_state::screen_update_mugsmash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
149149{
150   mugsmash_state *state = screen.machine().driver_data<mugsmash_state>();
151150
152   state->m_tilemap2->draw(bitmap, cliprect, 0, 0);
153   state->m_tilemap1->draw(bitmap, cliprect, 0, 0);
151   m_tilemap2->draw(bitmap, cliprect, 0, 0);
152   m_tilemap1->draw(bitmap, cliprect, 0, 0);
154153   draw_sprites(screen.machine(), bitmap, cliprect);
155154   return 0;
156155}
trunk/src/mame/video/pcktgal.c
r17967r17968
6565   }
6666}
6767
68SCREEN_UPDATE_IND16( pcktgal )
68UINT32 pcktgal_state::screen_update_pcktgal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
6969{
70//  state->flip_screen_set(screen.machine().device<deco_bac06_device>("tilegen1")->get_flip_state());
70//  flip_screen_set(screen.machine().device<deco_bac06_device>("tilegen1")->get_flip_state());
7171   screen.machine().device<deco_bac06_device>("tilegen1")->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
7272   draw_sprites(screen.machine(), bitmap, cliprect);
7373   return 0;
7474}
7575
76SCREEN_UPDATE_IND16( pcktgalb )
76UINT32 pcktgal_state::screen_update_pcktgalb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
7777{
7878   // the bootleg doesn't properly set the tilemap registers, because it's on non-original hardware, which probably doesn't have the flexible tilemaps.
7979   screen.machine().device<deco_bac06_device>("tilegen1")->deco_bac06_pf_draw_bootleg(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0, 2);
trunk/src/mame/video/hng64.c
r17967r17968
14301430
14311431#define IMPORTANT_DIRTY_TILEFLAG_MASK (0x0600)
14321432
1433SCREEN_UPDATE_RGB32( hng64 )
1433UINT32 hng64_state::screen_update_hng64(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
14341434{
1435   hng64_state *state = screen.machine().driver_data<hng64_state>();
1436   UINT32 *hng64_videoregs = state->m_videoregs;
1437   UINT32 *hng64_videoram = state->m_videoram;
1438   UINT32 *hng64_tcram = state->m_tcram;
1435   UINT32 *hng64_videoregs = m_videoregs;
1436   UINT32 *hng64_videoram = m_videoram;
1437   UINT32 *hng64_tcram = m_tcram;
14391438   UINT32 animmask;
14401439   UINT32 animbits;
14411440   UINT16 tileflags0, tileflags1;
r17967r17968
14551454   bitmap.fill(hng64_tcram[0x50/4] & 0x10000 ? get_black_pen(screen.machine()) : screen.machine().pens[0], cliprect); //FIXME: Is the register correct? check with HW tests
14561455   screen.machine().priority_bitmap.fill(0x00, cliprect);
14571456
1458   if (state->m_screen_dis)
1457   if (m_screen_dis)
14591458      return 0;
14601459
14611460   animmask = hng64_videoregs[0x0b];
r17967r17968
14661465   tileflags3 = hng64_videoregs[0x03]&0xffff;
14671466
14681467   /* if the auto-animation mask or bits have changed search for tiles using them and mark as dirty */
1469   if ((state->m_old_animmask != animmask) || (state->m_old_animbits != animbits))
1468   if ((m_old_animmask != animmask) || (m_old_animbits != animbits))
14701469   {
14711470      int tile_index;
14721471      for (tile_index=0;tile_index<128*128;tile_index++)
14731472      {
14741473         if (hng64_videoram[tile_index+(0x00000/4)]&0x200000)
14751474         {
1476            hng64_mark_tile_dirty(state, 0, tile_index);
1475            hng64_mark_tile_dirty(this, 0, tile_index);
14771476         }
14781477         if (hng64_videoram[tile_index+(0x10000/4)]&0x200000)
14791478         {
1480            hng64_mark_tile_dirty(state, 1, tile_index);
1479            hng64_mark_tile_dirty(this, 1, tile_index);
14811480         }
14821481         if (hng64_videoram[tile_index+(0x20000/4)]&0x200000)
14831482         {
1484            hng64_mark_tile_dirty(state, 2, tile_index);
1483            hng64_mark_tile_dirty(this, 2, tile_index);
14851484         }
14861485         if (hng64_videoram[tile_index+(0x30000/4)]&0x200000)
14871486         {
1488            hng64_mark_tile_dirty(state, 3, tile_index);
1487            hng64_mark_tile_dirty(this, 3, tile_index);
14891488         }
14901489      }
14911490
1492      state->m_old_animmask = animmask;
1493      state->m_old_animbits = animbits;
1491      m_old_animmask = animmask;
1492      m_old_animbits = animbits;
14941493   }
14951494
1496   if ((state->m_old_tileflags0&IMPORTANT_DIRTY_TILEFLAG_MASK)!=(tileflags0&IMPORTANT_DIRTY_TILEFLAG_MASK))
1495   if ((m_old_tileflags0&IMPORTANT_DIRTY_TILEFLAG_MASK)!=(tileflags0&IMPORTANT_DIRTY_TILEFLAG_MASK))
14971496   {
1498      hng64_mark_all_tiles_dirty(state, 0);
1499      state->m_old_tileflags0 = tileflags0;
1497      hng64_mark_all_tiles_dirty(this, 0);
1498      m_old_tileflags0 = tileflags0;
15001499   }
15011500
1502   if ((state->m_old_tileflags1&IMPORTANT_DIRTY_TILEFLAG_MASK)!=(tileflags1&IMPORTANT_DIRTY_TILEFLAG_MASK))
1501   if ((m_old_tileflags1&IMPORTANT_DIRTY_TILEFLAG_MASK)!=(tileflags1&IMPORTANT_DIRTY_TILEFLAG_MASK))
15031502   {
1504      hng64_mark_all_tiles_dirty(state, 1);
1505      state->m_old_tileflags1 = tileflags1;
1503      hng64_mark_all_tiles_dirty(this, 1);
1504      m_old_tileflags1 = tileflags1;
15061505   }
15071506
1508   if ((state->m_old_tileflags2&IMPORTANT_DIRTY_TILEFLAG_MASK)!=(tileflags2&IMPORTANT_DIRTY_TILEFLAG_MASK))
1507   if ((m_old_tileflags2&IMPORTANT_DIRTY_TILEFLAG_MASK)!=(tileflags2&IMPORTANT_DIRTY_TILEFLAG_MASK))
15091508   {
1510      hng64_mark_all_tiles_dirty(state, 2);
1511      state->m_old_tileflags2 = tileflags2;
1509      hng64_mark_all_tiles_dirty(this, 2);
1510      m_old_tileflags2 = tileflags2;
15121511   }
15131512
1514   if ((state->m_old_tileflags3&IMPORTANT_DIRTY_TILEFLAG_MASK)!=(tileflags3&IMPORTANT_DIRTY_TILEFLAG_MASK))
1513   if ((m_old_tileflags3&IMPORTANT_DIRTY_TILEFLAG_MASK)!=(tileflags3&IMPORTANT_DIRTY_TILEFLAG_MASK))
15151514   {
1516      hng64_mark_all_tiles_dirty(state, 3);
1517      state->m_old_tileflags3 = tileflags3;
1515      hng64_mark_all_tiles_dirty(this, 3);
1516      m_old_tileflags3 = tileflags3;
15181517   }
15191518
15201519   // mark all frames as dirty if for some reason we don't trust the above code
1521   //hng64_mark_all_tiles_dirty(state, 0);
1522   //hng64_mark_all_tiles_dirty(state, 1);
1523   //hng64_mark_all_tiles_dirty(state, 2);
1524   //hng64_mark_all_tiles_dirty(state, 3);
1520   //hng64_mark_all_tiles_dirty(this, 0);
1521   //hng64_mark_all_tiles_dirty(this, 1);
1522   //hng64_mark_all_tiles_dirty(this, 2);
1523   //hng64_mark_all_tiles_dirty(this, 3);
15251524
15261525   hng64_drawtilemap(screen.machine(),bitmap,cliprect, 3);
15271526   hng64_drawtilemap(screen.machine(),bitmap,cliprect, 2);
r17967r17968
15351534      // Blit the color buffer into the primary bitmap
15361535      for (y = cliprect.min_y; y <= cliprect.max_y; y++)
15371536      {
1538         UINT32 *src = &state->m_colorBuffer3d[y * cliprect.max_x];
1537         UINT32 *src = &m_colorBuffer3d[y * cliprect.max_x];
15391538         UINT32 *dst = &bitmap.pix32(y, cliprect.min_x);
15401539
15411540         for (x = cliprect.min_x; x <= cliprect.max_x; x++)
r17967r17968
15561555      transition_control(screen.machine(), bitmap, cliprect);
15571556
15581557   if (0)
1559      popmessage("%08x %08x %08x %08x %08x", state->m_spriteregs[0], state->m_spriteregs[1], state->m_spriteregs[2], state->m_spriteregs[3], state->m_spriteregs[4]);
1558      popmessage("%08x %08x %08x %08x %08x", m_spriteregs[0], m_spriteregs[1], m_spriteregs[2], m_spriteregs[3], m_spriteregs[4]);
15601559
15611560   if (0)
15621561   popmessage("%08x %08x TR(%04x %04x %04x %04x) SB(%04x %04x %04x %04x) %08x %08x %08x %08x %08x AA(%08x %08x) %08x %08x",
r17967r17968
15821581
15831582   if (0)
15841583   popmessage("3D: %08x %08x %08x %08x : %08x %08x %08x %08x : %08x %08x %08x %08x",
1585      state->m_3dregs[0x00/4], state->m_3dregs[0x04/4], state->m_3dregs[0x08/4], state->m_3dregs[0x0c/4],
1586      state->m_3dregs[0x10/4], state->m_3dregs[0x14/4], state->m_3dregs[0x18/4], state->m_3dregs[0x1c/4],
1587      state->m_3dregs[0x20/4], state->m_3dregs[0x24/4], state->m_3dregs[0x28/4], state->m_3dregs[0x2c/4]);
1584      m_3dregs[0x00/4], m_3dregs[0x04/4], m_3dregs[0x08/4], m_3dregs[0x0c/4],
1585      m_3dregs[0x10/4], m_3dregs[0x14/4], m_3dregs[0x18/4], m_3dregs[0x1c/4],
1586      m_3dregs[0x20/4], m_3dregs[0x24/4], m_3dregs[0x28/4], m_3dregs[0x2c/4]);
15881587
15891588   if (0)
15901589      popmessage("TC: %08x %08x %08x %08x : %08x %08x %08x %08x : %08x %08x %08x %08x : %08x %08x %08x %08x : %08x %08x %08x %08x : %08x %08x %08x %08x",
r17967r17968
16151614
16161615   if ( screen.machine().input().code_pressed_once(KEYCODE_T) )
16171616   {
1618      state->m_additive_tilemap_debug ^= 1;
1619      popmessage("blend changed %02x", state->m_additive_tilemap_debug);
1617      m_additive_tilemap_debug ^= 1;
1618      popmessage("blend changed %02x", m_additive_tilemap_debug);
16201619   }
16211620   if ( screen.machine().input().code_pressed_once(KEYCODE_Y) )
16221621   {
1623      state->m_additive_tilemap_debug ^= 2;
1624      popmessage("blend changed %02x", state->m_additive_tilemap_debug);
1622      m_additive_tilemap_debug ^= 2;
1623      popmessage("blend changed %02x", m_additive_tilemap_debug);
16251624   }
16261625   if ( screen.machine().input().code_pressed_once(KEYCODE_U) )
16271626   {
1628      state->m_additive_tilemap_debug ^= 4;
1629      popmessage("blend changed %02x", state->m_additive_tilemap_debug);
1627      m_additive_tilemap_debug ^= 4;
1628      popmessage("blend changed %02x", m_additive_tilemap_debug);
16301629   }
16311630   if ( screen.machine().input().code_pressed_once(KEYCODE_I) )
16321631   {
1633      state->m_additive_tilemap_debug ^= 8;
1634      popmessage("blend changed %02x", state->m_additive_tilemap_debug);
1632      m_additive_tilemap_debug ^= 8;
1633      popmessage("blend changed %02x", m_additive_tilemap_debug);
16351634   }
16361635
16371636   return 0;
16381637}
16391638
1640SCREEN_VBLANK( hng64 )
1639void hng64_state::screen_eof_hng64(screen_device &screen, bool state)
16411640{
16421641   // rising edge
1643   if (vblank_on)
1642   if (state)
16441643      clear3d(screen.machine());
16451644}
16461645
trunk/src/mame/video/hyhoo.c
r17967r17968
228228}
229229
230230
231SCREEN_UPDATE_RGB32( hyhoo )
231UINT32 hyhoo_state::screen_update_hyhoo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
232232{
233   hyhoo_state *state = screen.machine().driver_data<hyhoo_state>();
234   if (state->m_dispflag)
235      copybitmap(bitmap, state->m_tmpbitmap, state->m_flipscreen, state->m_flipscreen, 0, 0, cliprect);
233   if (m_dispflag)
234      copybitmap(bitmap, m_tmpbitmap, m_flipscreen, m_flipscreen, 0, 0, cliprect);
236235   else
237236      bitmap.fill(RGB_BLACK, cliprect);
238237
trunk/src/mame/video/solomon.c
r17967r17968
100100   }
101101}
102102
103SCREEN_UPDATE_IND16( solomon )
103UINT32 solomon_state::screen_update_solomon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
104104{
105   solomon_state *state = screen.machine().driver_data<solomon_state>();
106   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
107   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
105   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
106   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
108107   draw_sprites(screen.machine(), bitmap, cliprect);
109108   return 0;
110109}
trunk/src/mame/video/gladiatr.c
r17967r17968
240240
241241
242242
243SCREEN_UPDATE_IND16( ppking )
243UINT32 gladiatr_state::screen_update_ppking(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
244244{
245   gladiatr_state *state = screen.machine().driver_data<gladiatr_state>();
246   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
245   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
247246   draw_sprites(screen.machine(), bitmap,cliprect);
248247
249248   /* the fg layer just selects the upper palette bank on underlying pixels */
r17967r17968
251250      int sx = cliprect.min_x;
252251      int sy = cliprect.min_y;
253252
254      state->m_fg_tilemap ->pixmap();
255      bitmap_ind8 &flagsbitmap = state->m_fg_tilemap ->flagsmap();
253      m_fg_tilemap ->pixmap();
254      bitmap_ind8 &flagsbitmap = m_fg_tilemap ->flagsmap();
256255
257256      while( sy <= cliprect.max_y )
258257      {
259258         int x = sx;
260         int y = (sy + state->m_fg_scrolly) & 0x1ff;
259         int y = (sy + m_fg_scrolly) & 0x1ff;
261260
262261         UINT16 *dest = &bitmap.pix16(sy, sx);
263262         while( x <= cliprect.max_x )
r17967r17968
275274   return 0;
276275}
277276
278SCREEN_UPDATE_IND16( gladiatr )
277UINT32 gladiatr_state::screen_update_gladiatr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
279278{
280   gladiatr_state *state = screen.machine().driver_data<gladiatr_state>();
281   if (state->m_video_attributes & 0x20)
279   if (m_video_attributes & 0x20)
282280   {
283281      int scroll;
284282
285      scroll = state->m_bg_scrollx + ((state->m_video_attributes & 0x04) << 6);
286      state->m_bg_tilemap->set_scrollx(0, scroll ^ (state->flip_screen() ? 0x0f : 0));
287      scroll = state->m_fg_scrollx + ((state->m_video_attributes & 0x08) << 5);
288      state->m_fg_tilemap->set_scrollx(0, scroll ^ (state->flip_screen() ? 0x0f : 0));
283      scroll = m_bg_scrollx + ((m_video_attributes & 0x04) << 6);
284      m_bg_tilemap->set_scrollx(0, scroll ^ (flip_screen() ? 0x0f : 0));
285      scroll = m_fg_scrollx + ((m_video_attributes & 0x08) << 5);
286      m_fg_tilemap->set_scrollx(0, scroll ^ (flip_screen() ? 0x0f : 0));
289287
290288      // always 0 anyway
291      state->m_bg_tilemap->set_scrolly(0, state->m_bg_scrolly);
292      state->m_fg_tilemap->set_scrolly(0, state->m_fg_scrolly);
289      m_bg_tilemap->set_scrolly(0, m_bg_scrolly);
290      m_fg_tilemap->set_scrolly(0, m_fg_scrolly);
293291
294      state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
292      m_bg_tilemap->draw(bitmap, cliprect, 0,0);
295293      draw_sprites(screen.machine(), bitmap,cliprect);
296      state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
294      m_fg_tilemap->draw(bitmap, cliprect, 0,0);
297295   }
298296   else
299297      bitmap.fill(get_black_pen(screen.machine()), cliprect );
trunk/src/mame/video/macrossp.c
r17967r17968
378378   SWAP(1,2)
379379}
380380
381SCREEN_UPDATE_RGB32( macrossp )
381UINT32 macrossp_state::screen_update_macrossp(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
382382{
383   macrossp_state *state = screen.machine().driver_data<macrossp_state>();
384383   int layers[3],layerpri[3];
385384
386385   bitmap.fill(get_black_pen(screen.machine()), cliprect);
387386
388387   layers[0] = 0;
389   layerpri[0] = (state->m_scra_videoregs[0] & 0x0000c000) >> 14;
388   layerpri[0] = (m_scra_videoregs[0] & 0x0000c000) >> 14;
390389   layers[1] = 1;
391   layerpri[1] = (state->m_scrb_videoregs[0] & 0x0000c000) >> 14;
390   layerpri[1] = (m_scrb_videoregs[0] & 0x0000c000) >> 14;
392391   layers[2] = 2;
393   layerpri[2] = (state->m_scrc_videoregs[0] & 0x0000c000) >> 14;
392   layerpri[2] = (m_scrc_videoregs[0] & 0x0000c000) >> 14;
394393
395394   sortlayers(layers, layerpri);
396395
r17967r17968
401400   draw_layer(screen.machine(), bitmap, cliprect, layers[2]);
402401   draw_sprites(screen.machine(), bitmap, cliprect, 2);
403402   draw_sprites(screen.machine(), bitmap, cliprect, 3);
404   state->m_text_tilemap->draw(bitmap, cliprect, 0, 0);
403   m_text_tilemap->draw(bitmap, cliprect, 0, 0);
405404
406405#if 0
407406popmessage   ("scra - %08x %08x %08x\nscrb - %08x %08x %08x\nscrc - %08x %08x %08x",
408state->m_scra_videoregs[0]&0xffff33ff, // yyyyxxxx
409state->m_scra_videoregs[1], // ??? more scrolling?
410state->m_scra_videoregs[2], // 08 - 0b
407m_scra_videoregs[0]&0xffff33ff, // yyyyxxxx
408m_scra_videoregs[1], // ??? more scrolling?
409m_scra_videoregs[2], // 08 - 0b
411410
412state->m_scrb_videoregs[0]&0xffff33ff, // 00 - 03
413state->m_scrb_videoregs[1], // 04 - 07
414state->m_scrb_videoregs[2], // 08 - 0b
411m_scrb_videoregs[0]&0xffff33ff, // 00 - 03
412m_scrb_videoregs[1], // 04 - 07
413m_scrb_videoregs[2], // 08 - 0b
415414
416state->m_scrc_videoregs[0]&0xffff33ff, // 00 - 03
417state->m_scrc_videoregs[1], // 04 - 07
418state->m_scrc_videoregs[2]);// 08 - 0b
415m_scrc_videoregs[0]&0xffff33ff, // 00 - 03
416m_scrc_videoregs[1], // 04 - 07
417m_scrc_videoregs[2]);// 08 - 0b
419418#endif
420419   return 0;
421420}
422421
423SCREEN_VBLANK( macrossp )
422void macrossp_state::screen_eof_macrossp(screen_device &screen, bool state)
424423{
425424   // rising edge
426   if (vblank_on)
425   if (state)
427426   {
428      macrossp_state *state = screen.machine().driver_data<macrossp_state>();
429427
430428      /* looks like sprites are *two* frames ahead, like nmk16 */
431      memcpy(state->m_spriteram_old2, state->m_spriteram_old, state->m_spriteram.bytes());
432      memcpy(state->m_spriteram_old, state->m_spriteram, state->m_spriteram.bytes());
429      memcpy(m_spriteram_old2, m_spriteram_old, m_spriteram.bytes());
430      memcpy(m_spriteram_old, m_spriteram, m_spriteram.bytes());
433431   }
434432}
trunk/src/mame/video/moo.c
r17967r17968
6262   }
6363}
6464
65SCREEN_UPDATE_RGB32(moo)
65UINT32 moo_state::screen_update_moo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
6666{
67   moo_state *state = screen.machine().driver_data<moo_state>();
6867   static const int K053251_CI[4] = { K053251_CI1, K053251_CI2, K053251_CI3, K053251_CI4 };
6968   int layers[3];
7069   int new_colorbase, plane, dirty, alpha;
7170
72   state->m_sprite_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI0);
73   state->m_layer_colorbase[0] = 0x70;
71   m_sprite_colorbase = k053251_get_palette_index(m_k053251, K053251_CI0);
72   m_layer_colorbase[0] = 0x70;
7473
75   if (k056832_get_layer_association(state->m_k056832))
74   if (k056832_get_layer_association(m_k056832))
7675   {
7776      for (plane = 1; plane < 4; plane++)
7877      {
79         new_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI[plane]);
80         if (state->m_layer_colorbase[plane] != new_colorbase)
78         new_colorbase = k053251_get_palette_index(m_k053251, K053251_CI[plane]);
79         if (m_layer_colorbase[plane] != new_colorbase)
8180         {
82            state->m_layer_colorbase[plane] = new_colorbase;
83            k056832_mark_plane_dirty(state->m_k056832, plane);
81            m_layer_colorbase[plane] = new_colorbase;
82            k056832_mark_plane_dirty(m_k056832, plane);
8483         }
8584      }
8685   }
r17967r17968
8887   {
8988      for (dirty = 0, plane = 1; plane < 4; plane++)
9089      {
91         new_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI[plane]);
92         if (state->m_layer_colorbase[plane] != new_colorbase)
90         new_colorbase = k053251_get_palette_index(m_k053251, K053251_CI[plane]);
91         if (m_layer_colorbase[plane] != new_colorbase)
9392         {
94            state->m_layer_colorbase[plane] = new_colorbase;
93            m_layer_colorbase[plane] = new_colorbase;
9594            dirty = 1;
9695         }
9796      }
9897      if (dirty)
99         k056832_mark_all_tmaps_dirty(state->m_k056832);
98         k056832_mark_all_tmaps_dirty(m_k056832);
10099   }
101100
102101   layers[0] = 1;
103   state->m_layerpri[0] = k053251_get_priority(state->m_k053251, K053251_CI2);
102   m_layerpri[0] = k053251_get_priority(m_k053251, K053251_CI2);
104103   layers[1] = 2;
105   state->m_layerpri[1] = k053251_get_priority(state->m_k053251, K053251_CI3);
104   m_layerpri[1] = k053251_get_priority(m_k053251, K053251_CI3);
106105   layers[2] = 3;
107   state->m_layerpri[2] = k053251_get_priority(state->m_k053251, K053251_CI4);
106   m_layerpri[2] = k053251_get_priority(m_k053251, K053251_CI4);
108107
109   konami_sortlayers3(layers, state->m_layerpri);
108   konami_sortlayers3(layers, m_layerpri);
110109
111   k054338_update_all_shadows(state->m_k054338, 0);
112   k054338_fill_backcolor(state->m_k054338, bitmap, 0);
110   k054338_update_all_shadows(m_k054338, 0);
111   k054338_fill_backcolor(m_k054338, bitmap, 0);
113112
114113   screen.machine().priority_bitmap.fill(0, cliprect);
115114
116   if (state->m_layerpri[0] < k053251_get_priority(state->m_k053251, K053251_CI1))   /* bucky hides back layer behind background */
117      k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, layers[0], 0, 1);
115   if (m_layerpri[0] < k053251_get_priority(m_k053251, K053251_CI1))   /* bucky hides back layer behind background */
116      k056832_tilemap_draw(m_k056832, bitmap, cliprect, layers[0], 0, 1);
118117
119   k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, layers[1], 0, 2);
118   k056832_tilemap_draw(m_k056832, bitmap, cliprect, layers[1], 0, 2);
120119
121120   // Enabling alpha improves fog and fading in Moo but causes other things to disappear.
122121   // There is probably a control bit somewhere to turn off alpha blending.
123   state->m_alpha_enabled = k054338_register_r(state->m_k054338, K338_REG_CONTROL) & K338_CTL_MIXPRI; // DUMMY
122   m_alpha_enabled = k054338_register_r(m_k054338, K338_REG_CONTROL) & K338_CTL_MIXPRI; // DUMMY
124123
125   alpha = (state->m_alpha_enabled) ? k054338_set_alpha_level(state->m_k054338, 1) : 255;
124   alpha = (m_alpha_enabled) ? k054338_set_alpha_level(m_k054338, 1) : 255;
126125
127126   if (alpha > 0)
128      k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, layers[2], TILEMAP_DRAW_ALPHA(alpha), 4);
127      k056832_tilemap_draw(m_k056832, bitmap, cliprect, layers[2], TILEMAP_DRAW_ALPHA(alpha), 4);
129128
130   k053247_sprites_draw(state->m_k053246, bitmap, cliprect);
129   k053247_sprites_draw(m_k053246, bitmap, cliprect);
131130
132   k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, 0, 0, 0);
131   k056832_tilemap_draw(m_k056832, bitmap, cliprect, 0, 0, 0);
133132   return 0;
134133}
trunk/src/mame/video/goindol.c
r17967r17968
118118   }
119119}
120120
121SCREEN_UPDATE_IND16( goindol )
121UINT32 goindol_state::screen_update_goindol(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
122122{
123   goindol_state *state = screen.machine().driver_data<goindol_state>();
124   state->m_fg_tilemap->set_scrollx(0, *state->m_fg_scrollx);
125   state->m_fg_tilemap->set_scrolly(0, *state->m_fg_scrolly);
123   m_fg_tilemap->set_scrollx(0, *m_fg_scrollx);
124   m_fg_tilemap->set_scrolly(0, *m_fg_scrolly);
126125
127   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
128   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
129   draw_sprites(screen.machine(), bitmap, cliprect, 1, state->m_spriteram);
130   draw_sprites(screen.machine(), bitmap, cliprect, 0, state->m_spriteram2);
126   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
127   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
128   draw_sprites(screen.machine(), bitmap, cliprect, 1, m_spriteram);
129   draw_sprites(screen.machine(), bitmap, cliprect, 0, m_spriteram2);
131130   return 0;
132131}
trunk/src/mame/video/taito_l.c
r17967r17968
275275}
276276
277277
278SCREEN_UPDATE_IND16( taitol )
278UINT32 taitol_state::screen_update_taitol(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
279279{
280   taitol_state *state = screen.machine().driver_data<taitol_state>();
281280   int dx, dy;
282281
283   dx = state->m_rambanks[0xb3f4] | (state->m_rambanks[0xb3f5] << 8);
284   if (state->m_flipscreen)
282   dx = m_rambanks[0xb3f4] | (m_rambanks[0xb3f5] << 8);
283   if (m_flipscreen)
285284      dx = ((dx & 0xfffc) | ((dx - 3) & 0x0003)) ^ 0xf;
286   dy = state->m_rambanks[0xb3f6];
285   dy = m_rambanks[0xb3f6];
287286
288   state->m_bg18_tilemap->set_scrollx(0, -dx);
289   state->m_bg18_tilemap->set_scrolly(0, -dy);
287   m_bg18_tilemap->set_scrollx(0, -dx);
288   m_bg18_tilemap->set_scrolly(0, -dy);
290289
291   dx = state->m_rambanks[0xb3fc] | (state->m_rambanks[0xb3fd] << 8);
292   if (state->m_flipscreen)
290   dx = m_rambanks[0xb3fc] | (m_rambanks[0xb3fd] << 8);
291   if (m_flipscreen)
293292      dx = ((dx & 0xfffc) | ((dx - 3) & 0x0003)) ^ 0xf;
294   dy = state->m_rambanks[0xb3fe];
293   dy = m_rambanks[0xb3fe];
295294
296   state->m_bg19_tilemap->set_scrollx(0, -dx);
297   state->m_bg19_tilemap->set_scrolly(0, -dy);
295   m_bg19_tilemap->set_scrollx(0, -dx);
296   m_bg19_tilemap->set_scrolly(0, -dy);
298297
299   if (state->m_cur_ctrl & 0x20)   /* display enable */
298   if (m_cur_ctrl & 0x20)   /* display enable */
300299   {
301300      screen.machine().priority_bitmap.fill(0, cliprect);
302301
303      state->m_bg19_tilemap->draw(bitmap, cliprect, 0, 0);
302      m_bg19_tilemap->draw(bitmap, cliprect, 0, 0);
304303
305      if (state->m_cur_ctrl & 0x08)   /* sprites always over BG1 */
306         state->m_bg18_tilemap->draw(bitmap, cliprect, 0, 0);
304      if (m_cur_ctrl & 0x08)   /* sprites always over BG1 */
305         m_bg18_tilemap->draw(bitmap, cliprect, 0, 0);
307306      else               /* split priority */
308         state->m_bg18_tilemap->draw(bitmap, cliprect, 0,1);
307         m_bg18_tilemap->draw(bitmap, cliprect, 0,1);
309308
310309      draw_sprites(screen.machine(), bitmap, cliprect);
311310
312      state->m_ch1a_tilemap->draw(bitmap, cliprect, 0, 0);
311      m_ch1a_tilemap->draw(bitmap, cliprect, 0, 0);
313312   }
314313   else
315314      bitmap.fill(screen.machine().pens[0], cliprect);
r17967r17968
318317
319318
320319
321SCREEN_VBLANK( taitol )
320void taitol_state::screen_eof_taitol(screen_device &screen, bool state)
322321{
323322   // rising edge
324   if (vblank_on)
323   if (state)
325324   {
326      taitol_state *state = screen.machine().driver_data<taitol_state>();
327      UINT8 *spriteram = state->m_rambanks + 0xb000;
325      UINT8 *spriteram = m_rambanks + 0xb000;
328326
329      memcpy(state->m_buff_spriteram, spriteram, TAITOL_SPRITERAM_SIZE);
327      memcpy(m_buff_spriteram, spriteram, TAITOL_SPRITERAM_SIZE);
330328   }
331329}
trunk/src/mame/video/gyruss.c
r17967r17968
148148}
149149
150150
151SCREEN_UPDATE_IND16( gyruss )
151UINT32 gyruss_state::screen_update_gyruss(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
152152{
153   gyruss_state *state = screen.machine().driver_data<gyruss_state>();
154153
155154   if (cliprect.min_y == screen.visible_area().min_y)
156155   {
157156      screen.machine().tilemap().mark_all_dirty();
158      screen.machine().tilemap().set_flip_all((*state->m_flipscreen & 0x01) ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0);
157      screen.machine().tilemap().set_flip_all((*m_flipscreen & 0x01) ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0);
159158   }
160159
161   state->m_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
160   m_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
162161   draw_sprites(screen.machine(), bitmap, cliprect, screen.machine().gfx);
163   state->m_tilemap->draw(bitmap, cliprect, 0, 0);
162   m_tilemap->draw(bitmap, cliprect, 0, 0);
164163
165164   return 0;
166165}
trunk/src/mame/video/groundfx.c
r17967r17968
195195                SCREEN REFRESH
196196**************************************************************/
197197
198SCREEN_UPDATE_IND16( groundfx )
198UINT32 groundfx_state::screen_update_groundfx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
199199{
200   groundfx_state *state = screen.machine().driver_data<groundfx_state>();
201200   address_space &space = screen.machine().driver_data()->generic_space();
202201   device_t *tc0100scn = screen.machine().device("tc0100scn");
203202   device_t *tc0480scp = screen.machine().device("tc0480scp");
r17967r17968
252251      //tc0100scn_tilemap_draw(tc0100scn, bitmap, cliprect, 0, pivlayer[2], 0, 0);
253252
254253      if (tc0480scp_long_r(tc0480scp, space, 0x20 / 4, 0xffffffff) != 0x240866) /* Stupid hack for start of race */
255         tc0480scp_tilemap_draw(tc0480scp, bitmap, state->m_hack_cliprect, layer[0], 0, 0);
254         tc0480scp_tilemap_draw(tc0480scp, bitmap, m_hack_cliprect, layer[0], 0, 0);
256255      draw_sprites(screen.machine(), bitmap, cliprect, 1, 44, -574);
257256   }
258257   else
trunk/src/mame/video/fastlane.c
r17967r17968
151151
152152***************************************************************************/
153153
154SCREEN_UPDATE_IND16( fastlane )
154UINT32 fastlane_state::screen_update_fastlane(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
155155{
156   fastlane_state *state = screen.machine().driver_data<fastlane_state>();
157   rectangle finalclip0 = state->m_clip0, finalclip1 = state->m_clip1;
156   rectangle finalclip0 = m_clip0, finalclip1 = m_clip1;
158157   int i, xoffs;
159158
160159   finalclip0 &= cliprect;
r17967r17968
164163
165164   /* set scroll registers */
166165   address_space &space = screen.machine().driver_data()->generic_space();
167   xoffs = k007121_ctrlram_r(state->m_k007121, space, 0);
166   xoffs = k007121_ctrlram_r(m_k007121, space, 0);
168167   for (i = 0; i < 32; i++)
169      state->m_layer0->set_scrollx(i, state->m_k007121_regs[0x20 + i] + xoffs - 40);
168      m_layer0->set_scrollx(i, m_k007121_regs[0x20 + i] + xoffs - 40);
170169
171   state->m_layer0->set_scrolly(0, k007121_ctrlram_r(state->m_k007121, space, 2));
170   m_layer0->set_scrolly(0, k007121_ctrlram_r(m_k007121, space, 2));
172171
173   state->m_layer0->draw(bitmap, finalclip0, 0, 0);
174   k007121_sprites_draw(state->m_k007121, bitmap, cliprect, screen.machine().gfx[0], screen.machine().colortable, state->m_spriteram, 0, 40, 0, (UINT32)-1);
175   state->m_layer1->draw(bitmap, finalclip1, 0, 0);
172   m_layer0->draw(bitmap, finalclip0, 0, 0);
173   k007121_sprites_draw(m_k007121, bitmap, cliprect, screen.machine().gfx[0], screen.machine().colortable, m_spriteram, 0, 40, 0, (UINT32)-1);
174   m_layer1->draw(bitmap, finalclip1, 0, 0);
176175   return 0;
177176}
trunk/src/mame/video/kangaroo.c
r17967r17968
133133 *
134134 *************************************/
135135
136SCREEN_UPDATE_RGB32( kangaroo )
136UINT32 kangaroo_state::screen_update_kangaroo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
137137{
138   kangaroo_state *state = screen.machine().driver_data<kangaroo_state>();
139   UINT8 scrolly = state->m_video_control[6];
140   UINT8 scrollx = state->m_video_control[7];
141   UINT8 maska = (state->m_video_control[10] & 0x28) >> 3;
142   UINT8 maskb = (state->m_video_control[10] & 0x07) >> 0;
143   UINT8 xora = (state->m_video_control[9] & 0x20) ? 0xff : 0x00;
144   UINT8 xorb = (state->m_video_control[9] & 0x10) ? 0xff : 0x00;
145   UINT8 enaa = (state->m_video_control[9] & 0x08);
146   UINT8 enab = (state->m_video_control[9] & 0x04);
147   UINT8 pria = (~state->m_video_control[9] & 0x02);
148   UINT8 prib = (~state->m_video_control[9] & 0x01);
138   UINT8 scrolly = m_video_control[6];
139   UINT8 scrollx = m_video_control[7];
140   UINT8 maska = (m_video_control[10] & 0x28) >> 3;
141   UINT8 maskb = (m_video_control[10] & 0x07) >> 0;
142   UINT8 xora = (m_video_control[9] & 0x20) ? 0xff : 0x00;
143   UINT8 xorb = (m_video_control[9] & 0x10) ? 0xff : 0x00;
144   UINT8 enaa = (m_video_control[9] & 0x08);
145   UINT8 enab = (m_video_control[9] & 0x04);
146   UINT8 pria = (~m_video_control[9] & 0x02);
147   UINT8 prib = (~m_video_control[9] & 0x01);
149148   rgb_t pens[8];
150149   int x, y;
151150
r17967r17968
164163         UINT8 effya = scrolly + (y ^ xora);
165164         UINT8 effxb = (x / 2) ^ xorb;
166165         UINT8 effyb = y ^ xorb;
167         UINT8 pixa = (state->m_videoram[effya + 256 * (effxa / 4)] >> (8 * (effxa % 4) + 0)) & 0x0f;
168         UINT8 pixb = (state->m_videoram[effyb + 256 * (effxb / 4)] >> (8 * (effxb % 4) + 4)) & 0x0f;
166         UINT8 pixa = (m_videoram[effya + 256 * (effxa / 4)] >> (8 * (effxa % 4) + 0)) & 0x0f;
167         UINT8 pixb = (m_videoram[effyb + 256 * (effxb / 4)] >> (8 * (effxb % 4) + 4)) & 0x0f;
169168         UINT8 finalpens;
170169
171170         /* for each layer, contribute bits if (a) enabled, and (b) either has priority or the opposite plane is 0 */
trunk/src/mame/video/cabal.c
r17967r17968
140140}
141141
142142
143SCREEN_UPDATE_IND16( cabal )
143UINT32 cabal_state::screen_update_cabal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
144144{
145   cabal_state *state = screen.machine().driver_data<cabal_state>();
146   state->m_background_layer->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
145   m_background_layer->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
147146   draw_sprites(screen.machine(),bitmap,cliprect);
148   state->m_text_layer->draw(bitmap, cliprect, 0,0);
147   m_text_layer->draw(bitmap, cliprect, 0,0);
149148   return 0;
150149}
151150
trunk/src/mame/video/suprloco.c
r17967r17968
259259   }
260260}
261261
262SCREEN_UPDATE_IND16( suprloco )
262UINT32 suprloco_state::screen_update_suprloco(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
263263{
264   suprloco_state *state = screen.machine().driver_data<suprloco_state>();
265   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
264   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
266265   draw_sprites(screen.machine(),bitmap,cliprect);
267   state->m_bg_tilemap->draw(bitmap, cliprect, 1,0);
266   m_bg_tilemap->draw(bitmap, cliprect, 1,0);
268267   return 0;
269268}
trunk/src/mame/video/m92.c
r17967r17968
531531}
532532
533533
534SCREEN_UPDATE_IND16( m92 )
534UINT32 m92_state::screen_update_m92(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
535535{
536536   screen.machine().priority_bitmap.fill(0, cliprect);
537537   bitmap.fill(0, cliprect);
r17967r17968
541541   draw_sprites(screen.machine(), bitmap, cliprect);
542542
543543   /* Flipscreen appears hardwired to the dipswitch - strange */
544   m92_state *state = screen.machine().driver_data<m92_state>();
545544   if (screen.machine().root_device().ioport("DSW")->read() & 0x100)
546      state->flip_screen_set(0);
545      flip_screen_set(0);
547546   else
548      state->flip_screen_set(1);
547      flip_screen_set(1);
549548   return 0;
550549}
551550
552SCREEN_UPDATE_IND16( ppan )
551UINT32 m92_state::screen_update_ppan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
553552{
554553   screen.machine().priority_bitmap.fill(0, cliprect);
555554   bitmap.fill(0, cliprect);
r17967r17968
559558   ppan_draw_sprites(screen.machine(), bitmap, cliprect);
560559
561560   /* Flipscreen appears hardwired to the dipswitch - strange */
562   m92_state *state = screen.machine().driver_data<m92_state>();
563561   if (screen.machine().root_device().ioport("DSW")->read() & 0x100)
564      state->flip_screen_set(0);
562      flip_screen_set(0);
565563   else
566      state->flip_screen_set(1);
564      flip_screen_set(1);
567565   return 0;
568566}
trunk/src/mame/video/m58.c
r17967r17968
300300 *
301301 *************************************/
302302
303SCREEN_UPDATE_IND16( yard )
303UINT32 m58_state::screen_update_yard(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
304304{
305   m58_state *state = screen.machine().driver_data<m58_state>();
306305
307   state->m_bg_tilemap->set_scrollx(0, (*state->m_yard_scroll_x_high * 0x100) + *state->m_yard_scroll_x_low);
308   state->m_bg_tilemap->set_scrolly(0, *state->m_yard_scroll_y_low);
306   m_bg_tilemap->set_scrollx(0, (*m_yard_scroll_x_high * 0x100) + *m_yard_scroll_x_low);
307   m_bg_tilemap->set_scrolly(0, *m_yard_scroll_y_low);
309308
310   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
309   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
311310   draw_sprites(screen.machine(), bitmap, cliprect);
312311   draw_panel(screen.machine(), bitmap, cliprect);
313312   return 0;
trunk/src/mame/video/vendetta.c
r17967r17968
5252
5353***************************************************************************/
5454
55SCREEN_UPDATE_IND16( vendetta )
55UINT32 vendetta_state::screen_update_vendetta(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
5656{
57   vendetta_state *state = screen.machine().driver_data<vendetta_state>();
5857   int layer[3];
5958
60   state->m_sprite_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI1);
61   state->m_layer_colorbase[0] = k053251_get_palette_index(state->m_k053251, K053251_CI2);
62   state->m_layer_colorbase[1] = k053251_get_palette_index(state->m_k053251, K053251_CI3);
63   state->m_layer_colorbase[2] = k053251_get_palette_index(state->m_k053251, K053251_CI4);
59   m_sprite_colorbase = k053251_get_palette_index(m_k053251, K053251_CI1);
60   m_layer_colorbase[0] = k053251_get_palette_index(m_k053251, K053251_CI2);
61   m_layer_colorbase[1] = k053251_get_palette_index(m_k053251, K053251_CI3);
62   m_layer_colorbase[2] = k053251_get_palette_index(m_k053251, K053251_CI4);
6463
65   k052109_tilemap_update(state->m_k052109);
64   k052109_tilemap_update(m_k052109);
6665
6766   layer[0] = 0;
68   state->m_layerpri[0] = k053251_get_priority(state->m_k053251, K053251_CI2);
67   m_layerpri[0] = k053251_get_priority(m_k053251, K053251_CI2);
6968   layer[1] = 1;
70   state->m_layerpri[1] = k053251_get_priority(state->m_k053251, K053251_CI3);
69   m_layerpri[1] = k053251_get_priority(m_k053251, K053251_CI3);
7170   layer[2] = 2;
72   state->m_layerpri[2] = k053251_get_priority(state->m_k053251, K053251_CI4);
71   m_layerpri[2] = k053251_get_priority(m_k053251, K053251_CI4);
7372
74   konami_sortlayers3(layer, state->m_layerpri);
73   konami_sortlayers3(layer, m_layerpri);
7574
7675   screen.machine().priority_bitmap.fill(0, cliprect);
77   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
78   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, layer[1], 0, 2);
79   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, layer[2], 0, 4);
76   k052109_tilemap_draw(m_k052109, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
77   k052109_tilemap_draw(m_k052109, bitmap, cliprect, layer[1], 0, 2);
78   k052109_tilemap_draw(m_k052109, bitmap, cliprect, layer[2], 0, 4);
8079
81   k053247_sprites_draw(state->m_k053246, bitmap, cliprect);
80   k053247_sprites_draw(m_k053246, bitmap, cliprect);
8281   return 0;
8382}
trunk/src/mame/video/fcombat.c
r17967r17968
133133
134134
135135
136SCREEN_UPDATE_IND16( fcombat )
136UINT32 fcombat_state::screen_update_fcombat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
137137{
138   fcombat_state *state = screen.machine().driver_data<fcombat_state>();
139138   int sx, sy, offs, i;
140139
141140   /* draw background */
142   state->m_bgmap->set_scrolly(0, state->m_fcombat_sh);
143   state->m_bgmap->set_scrollx(0, state->m_fcombat_sv - 24);
141   m_bgmap->set_scrolly(0, m_fcombat_sh);
142   m_bgmap->set_scrollx(0, m_fcombat_sv - 24);
144143
145   state->m_bgmap->mark_all_dirty();
146   state->m_bgmap->draw(bitmap, cliprect, 0, 0);
144   m_bgmap->mark_all_dirty();
145   m_bgmap->draw(bitmap, cliprect, 0, 0);
147146   //draw_background(bitmap, cliprect);
148147
149148   /* draw sprites */
150   for (i = 0; i < state->m_spriteram.bytes(); i += 4)
149   for (i = 0; i < m_spriteram.bytes(); i += 4)
151150   {
152      int flags = state->m_spriteram[i + 0];
153      int y = state->m_spriteram[i + 1] ^ 255;
154      int code = state->m_spriteram[i + 2] + ((flags & 0x20) << 3);
155      int x = state->m_spriteram[i + 3] * 2 + 72;
151      int flags = m_spriteram[i + 0];
152      int y = m_spriteram[i + 1] ^ 255;
153      int code = m_spriteram[i + 2] + ((flags & 0x20) << 3);
154      int x = m_spriteram[i + 3] * 2 + 72;
156155
157156      int xflip = flags & 0x80;
158157      int yflip = flags & 0x40;
r17967r17968
160159      int wide = flags & 0x08;
161160      int code2 = code;
162161
163      int color = ((flags >> 1) & 0x03) | ((code >> 5) & 0x04) | (code & 0x08) | (state->m_sprite_palette * 16);
162      int color = ((flags >> 1) & 0x03) | ((code >> 5) & 0x04) | (code & 0x08) | (m_sprite_palette * 16);
164163            gfx_element *gfx = screen.machine().gfx[1];
165164
166      if (state->m_cocktail_flip)
165      if (m_cocktail_flip)
167166      {
168167         x = 64 * 8 - gfx->width() - x;
169168         y = 32 * 8 - gfx->height() - y;
r17967r17968
199198   for (sy = VISIBLE_Y_MIN/8; sy < VISIBLE_Y_MAX/8; sy++)
200199      for (sx = VISIBLE_X_MIN/8; sx < VISIBLE_X_MAX/8; sx++)
201200      {
202         int x = state->m_cocktail_flip ? (63 * 8 - 8 * sx) : 8 * sx;
203         int y = state->m_cocktail_flip ? (31 * 8 - 8 * sy) : 8 * sy;
201         int x = m_cocktail_flip ? (63 * 8 - 8 * sx) : 8 * sx;
202         int y = m_cocktail_flip ? (31 * 8 - 8 * sy) : 8 * sy;
204203
205204         offs = sx + sy * 64;
206205         drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0],
207            state->m_videoram[offs] + 256 * state->m_char_bank,
208            ((state->m_videoram[offs] & 0xf0) >> 4) + state->m_char_palette * 16,
209            state->m_cocktail_flip, state->m_cocktail_flip, x, y, 0);
206            m_videoram[offs] + 256 * m_char_bank,
207            ((m_videoram[offs] & 0xf0) >> 4) + m_char_palette * 16,
208            m_cocktail_flip, m_cocktail_flip, x, y, 0);
210209      }
211210   return 0;
212211}
trunk/src/mame/video/thoop2.c
r17967r17968
195195
196196***************************************************************************/
197197
198SCREEN_UPDATE_IND16( thoop2 )
198UINT32 thoop2_state::screen_update_thoop2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
199199{
200   thoop2_state *state = screen.machine().driver_data<thoop2_state>();
201200   /* set scroll registers */
202   state->m_pant[0]->set_scrolly(0, state->m_vregs[0]);
203   state->m_pant[0]->set_scrollx(0, state->m_vregs[1]+4);
204   state->m_pant[1]->set_scrolly(0, state->m_vregs[2]);
205   state->m_pant[1]->set_scrollx(0, state->m_vregs[3]);
201   m_pant[0]->set_scrolly(0, m_vregs[0]);
202   m_pant[0]->set_scrollx(0, m_vregs[1]+4);
203   m_pant[1]->set_scrolly(0, m_vregs[2]);
204   m_pant[1]->set_scrollx(0, m_vregs[3]);
206205
207206   thoop2_sort_sprites(screen.machine());
208207
209208   bitmap.fill(0, cliprect );
210209
211   state->m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3,0);
212   state->m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3,0);
210   m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3,0);
211   m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3,0);
213212   draw_sprites(screen.machine(), bitmap,cliprect,3);
214   state->m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3,0);
215   state->m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3,0);
213   m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3,0);
214   m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3,0);
216215
217   state->m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2,0);
218   state->m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2,0);
216   m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2,0);
217   m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2,0);
219218   draw_sprites(screen.machine(), bitmap,cliprect,2);
220   state->m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2,0);
221   state->m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2,0);
219   m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2,0);
220   m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2,0);
222221
223   state->m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1,0);
224   state->m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1,0);
222   m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1,0);
223   m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1,0);
225224   draw_sprites(screen.machine(), bitmap,cliprect,1);
226   state->m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1,0);
227   state->m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1,0);
225   m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1,0);
226   m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1,0);
228227
229   state->m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0,0);
230   state->m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0,0);
228   m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0,0);
229   m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0,0);
231230   draw_sprites(screen.machine(), bitmap,cliprect,0);
232   state->m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0,0);
233   state->m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0,0);
231   m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0,0);
232   m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0,0);
234233
235234   draw_sprites(screen.machine(), bitmap,cliprect,4);
236235   return 0;
trunk/src/mame/video/wwfwfest.c
r17967r17968
247247   m_bg1_dx[1] = -2;
248248}
249249
250SCREEN_UPDATE_IND16( wwfwfest )
250UINT32 wwfwfest_state::screen_update_wwfwfest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
251251{
252   wwfwfest_state *state = screen.machine().driver_data<wwfwfest_state>();
253   if (state->m_pri == 0x0078) {
254      state->m_bg0_tilemap->set_scrolly(0, state->m_bg0_scrolly  );
255      state->m_bg0_tilemap->set_scrollx(0, state->m_bg0_scrollx  + state->m_bg0_dx);
256      state->m_bg1_tilemap->set_scrolly(0, state->m_bg1_scrolly  );
257      state->m_bg1_tilemap->set_scrollx(0, state->m_bg1_scrollx  + state->m_bg1_dx[0]);
252   if (m_pri == 0x0078) {
253      m_bg0_tilemap->set_scrolly(0, m_bg0_scrolly  );
254      m_bg0_tilemap->set_scrollx(0, m_bg0_scrollx  + m_bg0_dx);
255      m_bg1_tilemap->set_scrolly(0, m_bg1_scrolly  );
256      m_bg1_tilemap->set_scrollx(0, m_bg1_scrollx  + m_bg1_dx[0]);
258257   } else {
259      state->m_bg1_tilemap->set_scrolly(0, state->m_bg0_scrolly  );
260      state->m_bg1_tilemap->set_scrollx(0, state->m_bg0_scrollx  + state->m_bg1_dx[1]);
261      state->m_bg0_tilemap->set_scrolly(0, state->m_bg1_scrolly  );
262      state->m_bg0_tilemap->set_scrollx(0, state->m_bg1_scrollx  + state->m_bg0_dx);
258      m_bg1_tilemap->set_scrolly(0, m_bg0_scrolly  );
259      m_bg1_tilemap->set_scrollx(0, m_bg0_scrollx  + m_bg1_dx[1]);
260      m_bg0_tilemap->set_scrolly(0, m_bg1_scrolly  );
261      m_bg0_tilemap->set_scrollx(0, m_bg1_scrollx  + m_bg0_dx);
263262   }
264263
265264   /* todo : which bits of pri are significant to the order */
266265
267   if (state->m_pri == 0x007b) {
268      state->m_bg0_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
269      state->m_bg1_tilemap->draw(bitmap, cliprect, 0,0);
266   if (m_pri == 0x007b) {
267      m_bg0_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
268      m_bg1_tilemap->draw(bitmap, cliprect, 0,0);
270269      draw_sprites(screen.machine(), bitmap,cliprect);
271      state->m_fg0_tilemap->draw(bitmap, cliprect, 0,0);
270      m_fg0_tilemap->draw(bitmap, cliprect, 0,0);
272271   }
273272
274   if (state->m_pri == 0x007c) {
275      state->m_bg0_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
273   if (m_pri == 0x007c) {
274      m_bg0_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
276275      draw_sprites(screen.machine(), bitmap,cliprect);
277      state->m_bg1_tilemap->draw(bitmap, cliprect, 0,0);
278      state->m_fg0_tilemap->draw(bitmap, cliprect, 0,0);
276      m_bg1_tilemap->draw(bitmap, cliprect, 0,0);
277      m_fg0_tilemap->draw(bitmap, cliprect, 0,0);
279278   }
280279
281   if (state->m_pri == 0x0078) {
282      state->m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
283      state->m_bg0_tilemap->draw(bitmap, cliprect, 0,0);
280   if (m_pri == 0x0078) {
281      m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
282      m_bg0_tilemap->draw(bitmap, cliprect, 0,0);
284283      draw_sprites(screen.machine(), bitmap,cliprect);
285      state->m_fg0_tilemap->draw(bitmap, cliprect, 0,0);
284      m_fg0_tilemap->draw(bitmap, cliprect, 0,0);
286285   }
287286   return 0;
288287}
trunk/src/mame/video/marineb.c
r17967r17968
169169}
170170
171171
172SCREEN_UPDATE_IND16( marineb )
172UINT32 marineb_state::screen_update_marineb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
173173{
174   marineb_state *state = screen.machine().driver_data<marineb_state>();
175174   int offs;
176175
177176   set_tilemap_scrolly(screen.machine(), 24);
178   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
177   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
179178
180179   /* draw the sprites */
181180   for (offs = 0x0f; offs >= 0; offs--)
r17967r17968
190189      else
191190         offs2 = 0x03d8 - 8 + offs;
192191
193      code = state->m_videoram[offs2];
194      sx = state->m_videoram[offs2 + 0x20];
195      sy = state->m_colorram[offs2];
196      col = (state->m_colorram[offs2 + 0x20] & 0x0f) + 16 * state->m_palette_bank;
192      code = m_videoram[offs2];
193      sx = m_videoram[offs2 + 0x20];
194      sy = m_colorram[offs2];
195      col = (m_colorram[offs2 + 0x20] & 0x0f) + 16 * m_palette_bank;
197196      flipx = code & 0x02;
198197      flipy = !(code & 0x01);
199198
r17967r17968
210209         code >>= 2;
211210      }
212211
213      if (!state->m_flipscreen_y)
212      if (!m_flipscreen_y)
214213      {
215214         sy = 256 - screen.machine().gfx[gfx]->width() - sy;
216215         flipy = !flipy;
217216      }
218217
219      if (state->m_flipscreen_x)
218      if (m_flipscreen_x)
220219      {
221220         sx++;
222221      }
r17967r17968
231230}
232231
233232
234SCREEN_UPDATE_IND16( changes )
233UINT32 marineb_state::screen_update_changes(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
235234{
236   marineb_state *state = screen.machine().driver_data<marineb_state>();
237235   int offs, sx, sy, code, col, flipx, flipy;
238236
239237   set_tilemap_scrolly(screen.machine(), 26);
240   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
238   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
241239
242240   /* draw the small sprites */
243241   for (offs = 0x05; offs >= 0; offs--)
r17967r17968
246244
247245      offs2 = 0x001a + offs;
248246
249      code = state->m_videoram[offs2];
250      sx = state->m_videoram[offs2 + 0x20];
251      sy = state->m_colorram[offs2];
252      col = (state->m_colorram[offs2 + 0x20] & 0x0f) + 16 * state->m_palette_bank;
247      code = m_videoram[offs2];
248      sx = m_videoram[offs2 + 0x20];
249      sy = m_colorram[offs2];
250      col = (m_colorram[offs2 + 0x20] & 0x0f) + 16 * m_palette_bank;
253251      flipx = code & 0x02;
254252      flipy = !(code & 0x01);
255253
256      if (!state->m_flipscreen_y)
254      if (!m_flipscreen_y)
257255      {
258256         sy = 256 - screen.machine().gfx[1]->width() - sy;
259257         flipy = !flipy;
260258      }
261259
262      if (state->m_flipscreen_x)
260      if (m_flipscreen_x)
263261      {
264262         sx++;
265263      }
r17967r17968
273271
274272   /* draw the big sprite */
275273
276   code = state->m_videoram[0x3df];
277   sx = state->m_videoram[0x3ff];
278   sy = state->m_colorram[0x3df];
279   col = state->m_colorram[0x3ff];
274   code = m_videoram[0x3df];
275   sx = m_videoram[0x3ff];
276   sy = m_colorram[0x3df];
277   col = m_colorram[0x3ff];
280278   flipx = code & 0x02;
281279   flipy = !(code & 0x01);
282280
283   if (!state->m_flipscreen_y)
281   if (!m_flipscreen_y)
284282   {
285283      sy = 256 - screen.machine().gfx[2]->width() - sy;
286284      flipy = !flipy;
287285   }
288286
289   if (state->m_flipscreen_x)
287   if (m_flipscreen_x)
290288   {
291289      sx++;
292290   }
r17967r17968
310308}
311309
312310
313SCREEN_UPDATE_IND16( springer )
311UINT32 marineb_state::screen_update_springer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
314312{
315   marineb_state *state = screen.machine().driver_data<marineb_state>();
316313   int offs;
317314
318315   set_tilemap_scrolly(screen.machine(), 0);
319   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
316   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
320317
321318   /* draw the sprites */
322319   for (offs = 0x0f; offs >= 0; offs--)
r17967r17968
328325
329326      offs2 = 0x0010 + offs;
330327
331      code = state->m_videoram[offs2];
332      sx = 240 - state->m_videoram[offs2 + 0x20];
333      sy = state->m_colorram[offs2];
334      col = (state->m_colorram[offs2 + 0x20] & 0x0f) + 16 * state->m_palette_bank;
328      code = m_videoram[offs2];
329      sx = 240 - m_videoram[offs2 + 0x20];
330      sy = m_colorram[offs2];
331      col = (m_colorram[offs2 + 0x20] & 0x0f) + 16 * m_palette_bank;
335332      flipx = !(code & 0x02);
336333      flipy = !(code & 0x01);
337334
r17967r17968
349346         code >>= 2;
350347      }
351348
352      if (!state->m_flipscreen_y)
349      if (!m_flipscreen_y)
353350      {
354351         sy = 256 - screen.machine().gfx[gfx]->width() - sy;
355352         flipy = !flipy;
356353      }
357354
358      if (!state->m_flipscreen_x)
355      if (!m_flipscreen_x)
359356      {
360357         sx--;
361358      }
r17967r17968
370367}
371368
372369
373SCREEN_UPDATE_IND16( hoccer )
370UINT32 marineb_state::screen_update_hoccer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
374371{
375   marineb_state *state = screen.machine().driver_data<marineb_state>();
376372   int offs;
377373
378374   set_tilemap_scrolly(screen.machine(), 0);
379   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
375   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
380376
381377   /* draw the sprites */
382378   for (offs = 0x07; offs >= 0; offs--)
r17967r17968
385381
386382      offs2 = 0x0018 + offs;
387383
388      code = state->m_spriteram[offs2];
389      sx = state->m_spriteram[offs2 + 0x20];
390      sy = state->m_colorram[offs2];
391      col = state->m_colorram[offs2 + 0x20];
384      code = m_spriteram[offs2];
385      sx = m_spriteram[offs2 + 0x20];
386      sy = m_colorram[offs2];
387      col = m_colorram[offs2 + 0x20];
392388      flipx = code & 0x02;
393389      flipy = !(code & 0x01);
394390
395      if (!state->m_flipscreen_y)
391      if (!m_flipscreen_y)
396392      {
397393         sy = 256 - screen.machine().gfx[1]->width() - sy;
398394         flipy = !flipy;
399395      }
400396
401      if (state->m_flipscreen_x)
397      if (m_flipscreen_x)
402398      {
403399         sx = 256 - screen.machine().gfx[1]->width() - sx;
404400         flipx = !flipx;
r17967r17968
414410}
415411
416412
417SCREEN_UPDATE_IND16( hopprobo )
413UINT32 marineb_state::screen_update_hopprobo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
418414{
419   marineb_state *state = screen.machine().driver_data<marineb_state>();
420415   int offs;
421416
422417   set_tilemap_scrolly(screen.machine(), 0);
423   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
418   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
424419
425420   /* draw the sprites */
426421   for (offs = 0x0f; offs >= 0; offs--)
r17967r17968
432427
433428      offs2 = 0x0010 + offs;
434429
435      code = state->m_videoram[offs2];
436      sx = state->m_videoram[offs2 + 0x20];
437      sy = state->m_colorram[offs2];
438      col = (state->m_colorram[offs2 + 0x20] & 0x0f) + 16 * state->m_palette_bank;
430      code = m_videoram[offs2];
431      sx = m_videoram[offs2 + 0x20];
432      sy = m_colorram[offs2];
433      col = (m_colorram[offs2 + 0x20] & 0x0f) + 16 * m_palette_bank;
439434      flipx = code & 0x02;
440435      flipy = !(code & 0x01);
441436
r17967r17968
452447         code >>= 2;
453448      }
454449
455      if (!state->m_flipscreen_y)
450      if (!m_flipscreen_y)
456451      {
457452         sy = 256 - screen.machine().gfx[gfx]->width() - sy;
458453         flipy = !flipy;
459454      }
460455
461      if (!state->m_flipscreen_x)
456      if (!m_flipscreen_x)
462457      {
463458         sx--;
464459      }
trunk/src/mame/video/pktgaldx.c
r17967r17968
55
66/* Video on the orginal */
77
8SCREEN_UPDATE_IND16( pktgaldx )
8UINT32 pktgaldx_state::screen_update_pktgaldx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
99{
10   pktgaldx_state *state = screen.machine().driver_data<pktgaldx_state>();
1110   address_space &space = screen.machine().driver_data()->generic_space();
12   UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
11   UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff);
1312
14   state->flip_screen_set(BIT(flip, 7));
15   deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
13   flip_screen_set(BIT(flip, 7));
14   deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
1615
1716   bitmap.fill(0, cliprect); /* not Confirmed */
1817   screen.machine().priority_bitmap.fill(0);
1918
20   deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
21   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x400, true);
22   deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
19   deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
20   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400, true);
21   deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
2322   return 0;
2423}
2524
2625/* Video for the bootleg */
2726
28SCREEN_UPDATE_IND16( pktgaldb )
27UINT32 pktgaldx_state::screen_update_pktgaldb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
2928{
30   pktgaldx_state *state = screen.machine().driver_data<pktgaldx_state>();
3129   int x, y;
3230   int offset = 0;
3331   int tileno;
r17967r17968
3836   /* the bootleg seems to treat the tilemaps as sprites */
3937   for (offset = 0; offset < 0x1600 / 2; offset += 8)
4038   {
41      tileno = state->m_pktgaldb_sprites[offset + 3] | (state->m_pktgaldb_sprites[offset + 2] << 16);
42      colour = state->m_pktgaldb_sprites[offset + 1] >> 1;
43      x = state->m_pktgaldb_sprites[offset + 0];
44      y = state->m_pktgaldb_sprites[offset + 4];
39      tileno = m_pktgaldb_sprites[offset + 3] | (m_pktgaldb_sprites[offset + 2] << 16);
40      colour = m_pktgaldb_sprites[offset + 1] >> 1;
41      x = m_pktgaldb_sprites[offset + 0];
42      y = m_pktgaldb_sprites[offset + 4];
4543
4644      x -= 0xc2;
4745      y &= 0x1ff;
r17967r17968
5250
5351   for (offset = 0x1600/2; offset < 0x2000 / 2; offset += 8)
5452   {
55      tileno = state->m_pktgaldb_sprites[offset + 3] | (state->m_pktgaldb_sprites[offset + 2] << 16);
56      colour = state->m_pktgaldb_sprites[offset + 1] >> 1;
57      x = state->m_pktgaldb_sprites[offset + 0] & 0x1ff;
58      y = state->m_pktgaldb_sprites[offset + 4] & 0x0ff;
53      tileno = m_pktgaldb_sprites[offset + 3] | (m_pktgaldb_sprites[offset + 2] << 16);
54      colour = m_pktgaldb_sprites[offset + 1] >> 1;
55      x = m_pktgaldb_sprites[offset + 0] & 0x1ff;
56      y = m_pktgaldb_sprites[offset + 4] & 0x0ff;
5957
6058      x -= 0xc2;
6159      y &= 0x1ff;
r17967r17968
6664
6765   for (offset = 0x2000/2; offset < 0x4000 / 2; offset += 8)
6866   {
69      tileno = state->m_pktgaldb_sprites[offset + 3] | (state->m_pktgaldb_sprites[offset + 2] << 16);
70      colour = state->m_pktgaldb_sprites[offset + 1] >> 1;
71      x = state->m_pktgaldb_sprites[offset + 0] & 0x1ff;
72      y = state->m_pktgaldb_sprites[offset + 4] & 0x0ff;
67      tileno = m_pktgaldb_sprites[offset + 3] | (m_pktgaldb_sprites[offset + 2] << 16);
68      colour = m_pktgaldb_sprites[offset + 1] >> 1;
69      x = m_pktgaldb_sprites[offset + 0] & 0x1ff;
70      y = m_pktgaldb_sprites[offset + 4] & 0x0ff;
7371
7472      x -= 0xc2;
7573      y &= 0x1ff;
trunk/src/mame/video/timeplt.c
r17967r17968
204204 *
205205 *************************************/
206206
207SCREEN_UPDATE_IND16( timeplt )
207UINT32 timeplt_state::screen_update_timeplt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
208208{
209   timeplt_state *state = screen.machine().driver_data<timeplt_state>();
210209
211   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
210   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
212211   draw_sprites(screen.machine(), bitmap, cliprect);
213   state->m_bg_tilemap->draw(bitmap, cliprect, 1, 0);
212   m_bg_tilemap->draw(bitmap, cliprect, 1, 0);
214213   return 0;
215214}
trunk/src/mame/video/atarigx2.c
r17967r17968
175175 *
176176 *************************************/
177177
178SCREEN_UPDATE_IND16( atarigx2 )
178UINT32 atarigx2_state::screen_update_atarigx2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
179179{
180   atarigx2_state *state = screen.machine().driver_data<atarigx2_state>();
181180   bitmap_ind8 &priority_bitmap = screen.machine().priority_bitmap;
182181
183182   /* draw the playfield */
184183   priority_bitmap.fill(0, cliprect);
185   state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
186   state->m_playfield_tilemap->draw(bitmap, cliprect, 1, 1);
187   state->m_playfield_tilemap->draw(bitmap, cliprect, 2, 2);
188   state->m_playfield_tilemap->draw(bitmap, cliprect, 3, 3);
189   state->m_playfield_tilemap->draw(bitmap, cliprect, 4, 4);
190   state->m_playfield_tilemap->draw(bitmap, cliprect, 5, 5);
191   state->m_playfield_tilemap->draw(bitmap, cliprect, 6, 6);
192   state->m_playfield_tilemap->draw(bitmap, cliprect, 7, 7);
184   m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
185   m_playfield_tilemap->draw(bitmap, cliprect, 1, 1);
186   m_playfield_tilemap->draw(bitmap, cliprect, 2, 2);
187   m_playfield_tilemap->draw(bitmap, cliprect, 3, 3);
188   m_playfield_tilemap->draw(bitmap, cliprect, 4, 4);
189   m_playfield_tilemap->draw(bitmap, cliprect, 5, 5);
190   m_playfield_tilemap->draw(bitmap, cliprect, 6, 6);
191   m_playfield_tilemap->draw(bitmap, cliprect, 7, 7);
193192
194193   /* copy the motion objects on top */
195194   {
196      bitmap_ind16 *mo_bitmap = atarirle_get_vram(state->m_rle, 0);
195      bitmap_ind16 *mo_bitmap = atarirle_get_vram(m_rle, 0);
197196      int left   = cliprect.min_x;
198197      int top      = cliprect.min_y;
199198      int right   = cliprect.max_x + 1;
r17967r17968
213212   }
214213
215214   /* add the alpha on top */
216   state->m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
215   m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
217216   return 0;
218217}
219218
220SCREEN_VBLANK( atarigx2 )
219void atarigx2_state::screen_eof_atarigx2(screen_device &screen, bool state)
221220{
222221   // rising edge
223   if (vblank_on)
222   if (state)
224223   {
225      atarigx2_state *state = screen.machine().driver_data<atarigx2_state>();
226224
227      atarirle_eof(state->m_rle);
225      atarirle_eof(m_rle);
228226   }
229227}
trunk/src/mame/video/fuukifg2.c
r17967r17968
282282   }
283283}
284284
285SCREEN_UPDATE_IND16( fuuki16 )
285UINT32 fuuki16_state::screen_update_fuuki16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
286286{
287   fuuki16_state *state = screen.machine().driver_data<fuuki16_state>();
288287   UINT16 layer0_scrollx, layer0_scrolly;
289288   UINT16 layer1_scrollx, layer1_scrolly;
290289   UINT16 layer2_scrollx, layer2_scrolly;
r17967r17968
302301      { 2, 0, 1 },
303302      { 2, 1, 0 }};
304303
305   int tm_front  = pri_table[state->m_priority[0] & 0x0f][0];
306   int tm_middle = pri_table[state->m_priority[0] & 0x0f][1];
307   int tm_back   = pri_table[state->m_priority[0] & 0x0f][2];
304   int tm_front  = pri_table[m_priority[0] & 0x0f][0];
305   int tm_middle = pri_table[m_priority[0] & 0x0f][1];
306   int tm_back   = pri_table[m_priority[0] & 0x0f][2];
308307
309   state->flip_screen_set(state->m_vregs[0x1e / 2] & 1);
308   flip_screen_set(m_vregs[0x1e / 2] & 1);
310309
311310   /* Layers scrolling */
312311
313   scrolly_offs = state->m_vregs[0xc / 2] - (state->flip_screen() ? 0x103 : 0x1f3);
314   scrollx_offs = state->m_vregs[0xe / 2] - (state->flip_screen() ? 0x2a7 : 0x3f6);
312   scrolly_offs = m_vregs[0xc / 2] - (flip_screen() ? 0x103 : 0x1f3);
313   scrollx_offs = m_vregs[0xe / 2] - (flip_screen() ? 0x2a7 : 0x3f6);
315314
316   layer0_scrolly = state->m_vregs[0x0 / 2] + scrolly_offs;
317   layer0_scrollx = state->m_vregs[0x2 / 2] + scrollx_offs;
318   layer1_scrolly = state->m_vregs[0x4 / 2] + scrolly_offs;
319   layer1_scrollx = state->m_vregs[0x6 / 2] + scrollx_offs;
315   layer0_scrolly = m_vregs[0x0 / 2] + scrolly_offs;
316   layer0_scrollx = m_vregs[0x2 / 2] + scrollx_offs;
317   layer1_scrolly = m_vregs[0x4 / 2] + scrolly_offs;
318   layer1_scrollx = m_vregs[0x6 / 2] + scrollx_offs;
320319
321   layer2_scrolly = state->m_vregs[0x8 / 2];
322   layer2_scrollx = state->m_vregs[0xa / 2];
320   layer2_scrolly = m_vregs[0x8 / 2];
321   layer2_scrollx = m_vregs[0xa / 2];
323322
324   state->m_tilemap[0]->set_scrollx(0, layer0_scrollx);
325   state->m_tilemap[0]->set_scrolly(0, layer0_scrolly);
326   state->m_tilemap[1]->set_scrollx(0, layer1_scrollx);
327   state->m_tilemap[1]->set_scrolly(0, layer1_scrolly);
323   m_tilemap[0]->set_scrollx(0, layer0_scrollx);
324   m_tilemap[0]->set_scrolly(0, layer0_scrolly);
325   m_tilemap[1]->set_scrollx(0, layer1_scrollx);
326   m_tilemap[1]->set_scrolly(0, layer1_scrolly);
328327
329   state->m_tilemap[2]->set_scrollx(0, layer2_scrollx + 0x10);
330   state->m_tilemap[2]->set_scrolly(0, layer2_scrolly /*+ 0x02*/);
331   state->m_tilemap[3]->set_scrollx(0, layer2_scrollx + 0x10);
332   state->m_tilemap[3]->set_scrolly(0, layer2_scrolly /*+ 0x02*/);
328   m_tilemap[2]->set_scrollx(0, layer2_scrollx + 0x10);
329   m_tilemap[2]->set_scrolly(0, layer2_scrolly /*+ 0x02*/);
330   m_tilemap[3]->set_scrollx(0, layer2_scrollx + 0x10);
331   m_tilemap[3]->set_scrolly(0, layer2_scrolly /*+ 0x02*/);
333332
334333   /* The backmost tilemap decides the background color(s) but sprites can
335334       go below the opaque pixels of that tilemap. We thus need to mark the
trunk/src/mame/video/vulgus.c
r17967r17968
212212   }
213213}
214214
215SCREEN_UPDATE_IND16( vulgus )
215UINT32 vulgus_state::screen_update_vulgus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
216216{
217   vulgus_state *state = screen.machine().driver_data<vulgus_state>();
218   state->m_bg_tilemap->set_scrollx(0, state->m_scroll_low[1] + 256 * state->m_scroll_high[1]);
219   state->m_bg_tilemap->set_scrolly(0, state->m_scroll_low[0] + 256 * state->m_scroll_high[0]);
217   m_bg_tilemap->set_scrollx(0, m_scroll_low[1] + 256 * m_scroll_high[1]);
218   m_bg_tilemap->set_scrolly(0, m_scroll_low[0] + 256 * m_scroll_high[0]);
220219
221   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
220   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
222221   draw_sprites(screen.machine(), bitmap,cliprect);
223   state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
222   m_fg_tilemap->draw(bitmap, cliprect, 0,0);
224223   return 0;
225224}
trunk/src/mame/video/sderby.c
r17967r17968
101101   m_fg_tilemap->set_transparent_pen(0);
102102}
103103
104SCREEN_UPDATE_IND16( sderby )
104UINT32 sderby_state::screen_update_sderby(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
105105{
106   sderby_state *state = screen.machine().driver_data<sderby_state>();
107106
108   state->m_tilemap->draw(bitmap, cliprect, 0,0);
107   m_tilemap->draw(bitmap, cliprect, 0,0);
109108   draw_sprites(screen.machine(), bitmap,cliprect,0);
110   state->m_md_tilemap->draw(bitmap, cliprect, 0,0);
111   state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
109   m_md_tilemap->draw(bitmap, cliprect, 0,0);
110   m_fg_tilemap->draw(bitmap, cliprect, 0,0);
112111   return 0;
113112}
114113
115SCREEN_UPDATE_IND16( pmroulet )
114UINT32 sderby_state::screen_update_pmroulet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
116115{
117   sderby_state *state = screen.machine().driver_data<sderby_state>();
118116
119   state->m_tilemap->draw(bitmap, cliprect, 0,0);
120   state->m_md_tilemap->draw(bitmap, cliprect, 0,0);
117   m_tilemap->draw(bitmap, cliprect, 0,0);
118   m_md_tilemap->draw(bitmap, cliprect, 0,0);
121119   draw_sprites(screen.machine(), bitmap,cliprect,0);
122   state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
120   m_fg_tilemap->draw(bitmap, cliprect, 0,0);
123121   return 0;
124122}
125123
trunk/src/mame/video/circus.c
r17967r17968
108108   draw_line(bitmap, cliprect, 231, 192, 248, 192, 0);
109109}
110110
111SCREEN_UPDATE_IND16( circus )
111UINT32 circus_state::screen_update_circus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
112112{
113   circus_state *state = screen.machine().driver_data<circus_state>();
114   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
113   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
115114   circus_draw_fg(screen.machine(), bitmap, cliprect);
116115   draw_sprite_collision(screen.machine(), bitmap, cliprect);
117116   return 0;
r17967r17968
179178         state->m_clown_y + 8, state->m_clown_x + 8, 0);
180179}
181180
182SCREEN_UPDATE_IND16( robotbwl )
181UINT32 circus_state::screen_update_robotbwl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
183182{
184   circus_state *state = screen.machine().driver_data<circus_state>();
185   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
183   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
186184   robotbwl_draw_scoreboard(bitmap, cliprect);
187185   robotbwl_draw_bowling_alley(bitmap, cliprect);
188186   robotbwl_draw_ball(screen.machine(), bitmap, cliprect);
r17967r17968
200198      state->m_clown_y, state->m_clown_x - 1, 0);
201199}
202200
203SCREEN_UPDATE_IND16( crash )
201UINT32 circus_state::screen_update_crash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
204202{
205   circus_state *state = screen.machine().driver_data<circus_state>();
206   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
203   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
207204   crash_draw_car(screen.machine(), bitmap, cliprect);
208205   return 0;
209206}
210207
211SCREEN_UPDATE_IND16( ripcord )
208UINT32 circus_state::screen_update_ripcord(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
212209{
213   circus_state *state = screen.machine().driver_data<circus_state>();
214   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
210   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
215211   draw_sprite_collision(screen.machine(), bitmap, cliprect);
216212   return 0;
217213}
trunk/src/mame/video/zac2650.c
r17967r17968
201201//  if(SpriteCollision(machine, 2,4)) state->m_CollisionSprite |= 0x01;   /* Not Used */
202202}
203203
204SCREEN_UPDATE_IND16( tinvader )
204UINT32 zac2650_state::screen_update_tinvader(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
205205{
206   zac2650_state *state = screen.machine().driver_data<zac2650_state>();
207   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
206   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
208207   draw_sprites(screen.machine(), bitmap, cliprect);
209208   return 0;
210209}
trunk/src/mame/video/shangha3.c
r17967r17968
254254}
255255
256256
257SCREEN_UPDATE_IND16( shangha3 )
257UINT32 shangha3_state::screen_update_shangha3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
258258{
259   shangha3_state *state = screen.machine().driver_data<shangha3_state>();
260259
261   copybitmap(bitmap, state->m_rawbitmap, 0, 0, 0, 0, cliprect);
260   copybitmap(bitmap, m_rawbitmap, 0, 0, 0, 0, cliprect);
262261   return 0;
263262}
trunk/src/mame/video/vastar.c
r17967r17968
187187   }
188188}
189189
190SCREEN_UPDATE_IND16( vastar )
190UINT32 vastar_state::screen_update_vastar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
191191{
192   vastar_state *state = screen.machine().driver_data<vastar_state>();
193192   int i;
194193
195194
196195   for (i = 0;i < 32;i++)
197196   {
198      state->m_bg1_tilemap->set_scrolly(i,state->m_bg1_scroll[i]);
199      state->m_bg2_tilemap->set_scrolly(i,state->m_bg2_scroll[i]);
197      m_bg1_tilemap->set_scrolly(i,m_bg1_scroll[i]);
198      m_bg2_tilemap->set_scrolly(i,m_bg2_scroll[i]);
200199   }
201200
202   switch (*state->m_sprite_priority)
201   switch (*m_sprite_priority)
203202   {
204203   case 0:
205      state->m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
204      m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
206205      draw_sprites(screen.machine(), bitmap,cliprect);
207      state->m_bg2_tilemap->draw(bitmap, cliprect, 0,0);
208      state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
206      m_bg2_tilemap->draw(bitmap, cliprect, 0,0);
207      m_fg_tilemap->draw(bitmap, cliprect, 0,0);
209208      break;
210209
211210   case 2:
212      state->m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
211      m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
213212      draw_sprites(screen.machine(), bitmap,cliprect);
214      state->m_bg1_tilemap->draw(bitmap, cliprect, 0,0);
215      state->m_bg2_tilemap->draw(bitmap, cliprect, 0,0);
216      state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
213      m_bg1_tilemap->draw(bitmap, cliprect, 0,0);
214      m_bg2_tilemap->draw(bitmap, cliprect, 0,0);
215      m_fg_tilemap->draw(bitmap, cliprect, 0,0);
217216      break;
218217
219218   case 3:
220      state->m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
221      state->m_bg2_tilemap->draw(bitmap, cliprect, 0,0);
222      state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
219      m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
220      m_bg2_tilemap->draw(bitmap, cliprect, 0,0);
221      m_fg_tilemap->draw(bitmap, cliprect, 0,0);
223222      draw_sprites(screen.machine(), bitmap,cliprect);
224223      break;
225224
226225   default:
227      logerror("Unimplemented priority %X\n", *state->m_sprite_priority);
226      logerror("Unimplemented priority %X\n", *m_sprite_priority);
228227      break;
229228   }
230229   return 0;
trunk/src/mame/video/taotaido.c
r17967r17968
192192}
193193
194194
195SCREEN_UPDATE_IND16(taotaido)
195UINT32 taotaido_state::screen_update_taotaido(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
196196{
197   taotaido_state *state = screen.machine().driver_data<taotaido_state>();
198//  state->m_bg_tilemap->set_scrollx(0,(state->m_scrollram[0x380/2]>>4)); // the values put here end up being wrong every other frame
199//  state->m_bg_tilemap->set_scrolly(0,(state->m_scrollram[0x382/2]>>4)); // the values put here end up being wrong every other frame
197//  m_bg_tilemap->set_scrollx(0,(m_scrollram[0x380/2]>>4)); // the values put here end up being wrong every other frame
198//  m_bg_tilemap->set_scrolly(0,(m_scrollram[0x382/2]>>4)); // the values put here end up being wrong every other frame
200199
201200   /* not amazingly efficient however it should be functional for row select and linescroll */
202201   int line;
r17967r17968
209208   {
210209      clip.min_y = clip.max_y = line;
211210
212      state->m_bg_tilemap->set_scrollx(0,((state->m_scrollram[(0x00+4*line)/2])>>4)+30);
213      state->m_bg_tilemap->set_scrolly(0,((state->m_scrollram[(0x02+4*line)/2])>>4)-line);
211      m_bg_tilemap->set_scrollx(0,((m_scrollram[(0x00+4*line)/2])>>4)+30);
212      m_bg_tilemap->set_scrolly(0,((m_scrollram[(0x02+4*line)/2])>>4)-line);
214213
215      state->m_bg_tilemap->draw(bitmap, clip, 0,0);
214      m_bg_tilemap->draw(bitmap, clip, 0,0);
216215   }
217216
218217   draw_sprites(screen.machine(), bitmap,cliprect);
219218   return 0;
220219}
221220
222SCREEN_VBLANK( taotaido )
221void taotaido_state::screen_eof_taotaido(screen_device &screen, bool state)
223222{
224223   // rising edge
225   if (vblank_on)
224   if (state)
226225   {
227      taotaido_state *state = screen.machine().driver_data<taotaido_state>();
228226      /* sprites need to be delayed by 2 frames? */
229227
230      memcpy(state->m_spriteram2_older,state->m_spriteram2_old,0x10000);
231      memcpy(state->m_spriteram2_old,state->m_spriteram2,0x10000);
228      memcpy(m_spriteram2_older,m_spriteram2_old,0x10000);
229      memcpy(m_spriteram2_old,m_spriteram2,0x10000);
232230
233      memcpy(state->m_spriteram_older,state->m_spriteram_old,0x2000);
234      memcpy(state->m_spriteram_old,state->m_spriteram,0x2000);
231      memcpy(m_spriteram_older,m_spriteram_old,0x2000);
232      memcpy(m_spriteram_old,m_spriteram,0x2000);
235233   }
236234}
trunk/src/mame/video/relief.c
r17967r17968
105105 *
106106 *************************************/
107107
108SCREEN_UPDATE_IND16( relief )
108UINT32 relief_state::screen_update_relief(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
109109{
110   relief_state *state = screen.machine().driver_data<relief_state>();
111110   bitmap_ind8 &priority_bitmap = screen.machine().priority_bitmap;
112111   atarimo_rect_list rectlist;
113112   bitmap_ind16 *mobitmap;
r17967r17968
115114
116115   /* draw the playfield */
117116   priority_bitmap.fill(0, cliprect);
118   state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
119   state->m_playfield2_tilemap->draw(bitmap, cliprect, 0, 1);
117   m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
118   m_playfield2_tilemap->draw(bitmap, cliprect, 0, 1);
120119
121120   /* draw and merge the MO */
122121   mobitmap = atarimo_render(0, cliprect, &rectlist);
trunk/src/mame/video/taito_f3.c
r17967r17968
505505
506506/******************************************************************************/
507507
508SCREEN_VBLANK( f3 )
508void taito_f3_state::screen_eof_f3(screen_device &screen, bool state)
509509{
510510   // rising edge
511   if (vblank_on)
511   if (state)
512512   {
513      taito_f3_state *state = screen.machine().driver_data<taito_f3_state>();
514      if (state->m_sprite_lag==2)
513      if (m_sprite_lag==2)
515514      {
516515         if (screen.machine().video().skip_this_frame() == 0)
517516         {
518            get_sprite_info(screen.machine(), state->m_spriteram16_buffered);
517            get_sprite_info(screen.machine(), m_spriteram16_buffered);
519518         }
520         memcpy(state->m_spriteram16_buffered,state->m_spriteram,0x10000);
519         memcpy(m_spriteram16_buffered,m_spriteram,0x10000);
521520      }
522      else if (state->m_sprite_lag==1)
521      else if (m_sprite_lag==1)
523522      {
524523         if (screen.machine().video().skip_this_frame() == 0)
525524         {
526            get_sprite_info(screen.machine(), state->m_spriteram);
525            get_sprite_info(screen.machine(), m_spriteram);
527526         }
528527      }
529528   }
r17967r17968
31493148
31503149/******************************************************************************/
31513150
3152SCREEN_UPDATE_RGB32( f3 )
3151UINT32 taito_f3_state::screen_update_f3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
31533152{
3154   taito_f3_state *state = screen.machine().driver_data<taito_f3_state>();
31553153   UINT32 sy_fix[5],sx_fix[5];
31563154
3157   state->m_f3_skip_this_frame=0;
3158   screen.machine().tilemap().set_flip_all(state->m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
3155   m_f3_skip_this_frame=0;
3156   screen.machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
31593157
31603158   /* Setup scroll */
3161   sy_fix[0]=((state->m_f3_control_0[4]&0xffff)<< 9) + (1<<16);
3162   sy_fix[1]=((state->m_f3_control_0[5]&0xffff)<< 9) + (1<<16);
3163   sy_fix[2]=((state->m_f3_control_0[6]&0xffff)<< 9) + (1<<16);
3164   sy_fix[3]=((state->m_f3_control_0[7]&0xffff)<< 9) + (1<<16);
3165   sx_fix[0]=((state->m_f3_control_0[0]&0xffc0)<<10) - (6<<16);
3166   sx_fix[1]=((state->m_f3_control_0[1]&0xffc0)<<10) - (10<<16);
3167   sx_fix[2]=((state->m_f3_control_0[2]&0xffc0)<<10) - (14<<16);
3168   sx_fix[3]=((state->m_f3_control_0[3]&0xffc0)<<10) - (18<<16);
3169   sx_fix[4]=-(state->m_f3_control_1[4])+41;
3170   sy_fix[4]=-(state->m_f3_control_1[5]&0x1ff);
3159   sy_fix[0]=((m_f3_control_0[4]&0xffff)<< 9) + (1<<16);
3160   sy_fix[1]=((m_f3_control_0[5]&0xffff)<< 9) + (1<<16);
3161   sy_fix[2]=((m_f3_control_0[6]&0xffff)<< 9) + (1<<16);
3162   sy_fix[3]=((m_f3_control_0[7]&0xffff)<< 9) + (1<<16);
3163   sx_fix[0]=((m_f3_control_0[0]&0xffc0)<<10) - (6<<16);
3164   sx_fix[1]=((m_f3_control_0[1]&0xffc0)<<10) - (10<<16);
3165   sx_fix[2]=((m_f3_control_0[2]&0xffc0)<<10) - (14<<16);
3166   sx_fix[3]=((m_f3_control_0[3]&0xffc0)<<10) - (18<<16);
3167   sx_fix[4]=-(m_f3_control_1[4])+41;
3168   sy_fix[4]=-(m_f3_control_1[5]&0x1ff);
31713169
3172   sx_fix[0]-=((state->m_f3_control_0[0]&0x003f)<<10)+0x0400-0x10000;
3173   sx_fix[1]-=((state->m_f3_control_0[1]&0x003f)<<10)+0x0400-0x10000;
3174   sx_fix[2]-=((state->m_f3_control_0[2]&0x003f)<<10)+0x0400-0x10000;
3175   sx_fix[3]-=((state->m_f3_control_0[3]&0x003f)<<10)+0x0400-0x10000;
3170   sx_fix[0]-=((m_f3_control_0[0]&0x003f)<<10)+0x0400-0x10000;
3171   sx_fix[1]-=((m_f3_control_0[1]&0x003f)<<10)+0x0400-0x10000;
3172   sx_fix[2]-=((m_f3_control_0[2]&0x003f)<<10)+0x0400-0x10000;
3173   sx_fix[3]-=((m_f3_control_0[3]&0x003f)<<10)+0x0400-0x10000;
31763174
3177   if (state->m_flipscreen)
3175   if (m_flipscreen)
31783176   {
31793177      sy_fix[0]= 0x3000000-sy_fix[0];
31803178      sy_fix[1]= 0x3000000-sy_fix[1];
r17967r17968
31883186      sy_fix[4]=-sy_fix[4];
31893187   }
31903188
3191   state->m_pri_alp_bitmap.fill(0, cliprect);
3189   m_pri_alp_bitmap.fill(0, cliprect);
31923190
31933191   /* sprites */
3194   if (state->m_sprite_lag==0)
3195      get_sprite_info(screen.machine(), state->m_spriteram);
3192   if (m_sprite_lag==0)
3193      get_sprite_info(screen.machine(), m_spriteram);
31963194
31973195   /* Update sprite buffer */
31983196   draw_sprites(screen.machine(), bitmap,cliprect);
31993197
32003198   /* Parse sprite, alpha & clipping parts of lineram */
3201   get_spritealphaclip_info(state);
3199   get_spritealphaclip_info(this);
32023200
32033201   /* Parse playfield effects */
3204   get_line_ram_info(screen.machine(), state->m_pf1_tilemap,sx_fix[0],sy_fix[0],0,state->m_f3_pf_data_1);
3205   get_line_ram_info(screen.machine(), state->m_pf2_tilemap,sx_fix[1],sy_fix[1],1,state->m_f3_pf_data_2);
3206   get_line_ram_info(screen.machine(), state->m_pf3_tilemap,sx_fix[2],sy_fix[2],2,state->m_f3_pf_data_3);
3207   get_line_ram_info(screen.machine(), state->m_pf4_tilemap,sx_fix[3],sy_fix[3],3,state->m_f3_pf_data_4);
3208   get_vram_info(screen.machine(), state->m_vram_layer,state->m_pixel_layer,sx_fix[4],sy_fix[4]);
3202   get_line_ram_info(screen.machine(), m_pf1_tilemap,sx_fix[0],sy_fix[0],0,m_f3_pf_data_1);
3203   get_line_ram_info(screen.machine(), m_pf2_tilemap,sx_fix[1],sy_fix[1],1,m_f3_pf_data_2);
3204   get_line_ram_info(screen.machine(), m_pf3_tilemap,sx_fix[2],sy_fix[2],2,m_f3_pf_data_3);
3205   get_line_ram_info(screen.machine(), m_pf4_tilemap,sx_fix[3],sy_fix[3],3,m_f3_pf_data_4);
3206   get_vram_info(screen.machine(), m_vram_layer,m_pixel_layer,sx_fix[4],sy_fix[4]);
32093207
32103208   /* Draw final framebuffer */
32113209   scanline_draw(screen.machine(), bitmap,cliprect);
trunk/src/mame/video/gaelco2.c
r17967r17968
429429
430430***************************************************************************/
431431
432SCREEN_UPDATE_IND16( gaelco2 )
432UINT32 gaelco2_state::screen_update_gaelco2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
433433{
434   gaelco2_state *state = screen.machine().driver_data<gaelco2_state>();
435434   int i;
436435
437436   /* read scroll values */
438   int scroll0x = state->m_videoram[0x2802/2] + 0x14;
439   int scroll1x = state->m_videoram[0x2806/2] + 0x10;
440   int scroll0y = state->m_videoram[0x2800/2] + 0x01;
441   int scroll1y = state->m_videoram[0x2804/2] + 0x01;
437   int scroll0x = m_videoram[0x2802/2] + 0x14;
438   int scroll1x = m_videoram[0x2806/2] + 0x10;
439   int scroll0y = m_videoram[0x2800/2] + 0x01;
440   int scroll1y = m_videoram[0x2804/2] + 0x01;
442441
443442   /* set y scroll registers */
444   state->m_pant[0]->set_scrolly(0, scroll0y & 0x1ff);
445   state->m_pant[1]->set_scrolly(0, scroll1y & 0x1ff);
443   m_pant[0]->set_scrolly(0, scroll0y & 0x1ff);
444   m_pant[1]->set_scrolly(0, scroll1y & 0x1ff);
446445
447446   /* set x linescroll registers */
448447   for (i = 0; i < 512; i++){
449      state->m_pant[0]->set_scrollx(i & 0x1ff, (state->m_vregs[0] & 0x8000) ? (state->m_videoram[(0x2000/2) + i] + 0x14) & 0x3ff : scroll0x & 0x3ff);
450      state->m_pant[1]->set_scrollx(i & 0x1ff, (state->m_vregs[1] & 0x8000) ? (state->m_videoram[(0x2400/2) + i] + 0x10) & 0x3ff : scroll1x & 0x3ff);
448      m_pant[0]->set_scrollx(i & 0x1ff, (m_vregs[0] & 0x8000) ? (m_videoram[(0x2000/2) + i] + 0x14) & 0x3ff : scroll0x & 0x3ff);
449      m_pant[1]->set_scrollx(i & 0x1ff, (m_vregs[1] & 0x8000) ? (m_videoram[(0x2400/2) + i] + 0x10) & 0x3ff : scroll1x & 0x3ff);
451450   }
452451
453452   /* draw screen */
454453   bitmap.fill(0, cliprect);
455454
456   state->m_pant[1]->draw(bitmap, cliprect, 0, 0);
457   state->m_pant[0]->draw(bitmap, cliprect, 0, 0);
455   m_pant[1]->draw(bitmap, cliprect, 0, 0);
456   m_pant[0]->draw(bitmap, cliprect, 0, 0);
458457   draw_sprites(screen, bitmap, cliprect, 0, 0);
459458   return 0;
460459}
r17967r17968
489488   return 0;
490489}
491490
492SCREEN_UPDATE_IND16( gaelco2_left ) { return dual_update(screen, bitmap, cliprect, 0); }
493SCREEN_UPDATE_IND16( gaelco2_right ) { return dual_update(screen, bitmap, cliprect, 1); }
491UINT32 gaelco2_state::screen_update_gaelco2_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return dual_update(screen, bitmap, cliprect, 0); }
492UINT32 gaelco2_state::screen_update_gaelco2_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return dual_update(screen, bitmap, cliprect, 1); }
trunk/src/mame/video/homerun.c
r17967r17968
134134   }
135135}
136136
137SCREEN_UPDATE_IND16(homerun)
137UINT32 homerun_state::screen_update_homerun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
138138{
139   homerun_state *state = screen.machine().driver_data<homerun_state>();
140139
141   state->m_tilemap->set_scrolly(0, state->m_scrolly);
142   state->m_tilemap->set_scrollx(0, state->m_scrollx);
140   m_tilemap->set_scrolly(0, m_scrolly);
141   m_tilemap->set_scrollx(0, m_scrollx);
143142
144   state->m_tilemap->draw(bitmap, cliprect, 0, 0);
143   m_tilemap->draw(bitmap, cliprect, 0, 0);
145144   draw_sprites(screen.machine(), bitmap, cliprect);
146145
147146   return 0;
trunk/src/mame/video/champbas.c
r17967r17968
277277
278278
279279
280SCREEN_UPDATE_IND16( champbas )
280UINT32 champbas_state::screen_update_champbas(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
281281{
282   champbas_state *state = screen.machine().driver_data<champbas_state>();
283   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
282   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
284283   champbas_draw_sprites(screen.machine(), bitmap, cliprect);
285284   return 0;
286285}
287286
288SCREEN_UPDATE_IND16( exctsccr )
287UINT32 champbas_state::screen_update_exctsccr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
289288{
290   champbas_state *state = screen.machine().driver_data<champbas_state>();
291   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
289   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
292290   exctsccr_draw_sprites(screen.machine(), bitmap, cliprect);
293291   return 0;
294292}
trunk/src/mame/video/baraduke.c
r17967r17968
303303}
304304
305305
306SCREEN_UPDATE_IND16( baraduke )
306UINT32 baraduke_state::screen_update_baraduke(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
307307{
308   baraduke_state *state = screen.machine().driver_data<baraduke_state>();
309   UINT8 *spriteram = state->m_spriteram + 0x1800;
308   UINT8 *spriteram = m_spriteram + 0x1800;
310309   int back;
311310
312311   /* flip screen is embedded in the sprite control registers */
313   /* can't use state->flip_screen_set() because the visible area is asymmetrical */
314   state->flip_screen_set_no_update(spriteram[0x07f6] & 0x01);
315   screen.machine().tilemap().set_flip_all(state->flip_screen() ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0);
312   /* can't use flip_screen_set() because the visible area is asymmetrical */
313   flip_screen_set_no_update(spriteram[0x07f6] & 0x01);
314   screen.machine().tilemap().set_flip_all(flip_screen() ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0);
316315   set_scroll(screen.machine(), 0);
317316   set_scroll(screen.machine(), 1);
318317
319   if (((state->m_xscroll[0] & 0x0e00) >> 9) == 6)
318   if (((m_xscroll[0] & 0x0e00) >> 9) == 6)
320319      back = 1;
321320   else
322321      back = 0;
323322
324   state->m_bg_tilemap[back]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
323   m_bg_tilemap[back]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
325324   draw_sprites(screen.machine(), bitmap,cliprect,0);
326   state->m_bg_tilemap[back ^ 1]->draw(bitmap, cliprect, 0,0);
325   m_bg_tilemap[back ^ 1]->draw(bitmap, cliprect, 0,0);
327326   draw_sprites(screen.machine(), bitmap,cliprect,1);
328327
329   state->m_tx_tilemap->draw(bitmap, cliprect, 0,0);
328   m_tx_tilemap->draw(bitmap, cliprect, 0,0);
330329   return 0;
331330}
332331
333332
334SCREEN_VBLANK( baraduke )
333void baraduke_state::screen_eof_baraduke(screen_device &screen, bool state)
335334{
336335   // rising edge
337   if (vblank_on)
336   if (state)
338337   {
339      baraduke_state *state = screen.machine().driver_data<baraduke_state>();
340      if (state->m_copy_sprites)
338      if (m_copy_sprites)
341339      {
342         UINT8 *spriteram = state->m_spriteram + 0x1800;
340         UINT8 *spriteram = m_spriteram + 0x1800;
343341         int i,j;
344342
345343         for (i = 0;i < 0x800;i += 16)
r17967r17968
348346               spriteram[i+j] = spriteram[i+j - 6];
349347         }
350348
351         state->m_copy_sprites = 0;
349         m_copy_sprites = 0;
352350      }
353351   }
354352}
trunk/src/mame/video/ssozumo.c
r17967r17968
176176   }
177177}
178178
179SCREEN_UPDATE_IND16( ssozumo )
179UINT32 ssozumo_state::screen_update_ssozumo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
180180{
181   ssozumo_state *state = screen.machine().driver_data<ssozumo_state>();
182181
183   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
184   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
182   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
183   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
185184   draw_sprites(screen.machine(), bitmap, cliprect);
186185   return 0;
187186}
trunk/src/mame/video/mcr.c
r17967r17968
395395 *
396396 *************************************/
397397
398SCREEN_UPDATE_IND16( mcr )
398UINT32 mcr_state::screen_update_mcr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
399399{
400400   /* update the flip state */
401401   bg_tilemap->set_flip(mcr_cocktail_flip ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0);
trunk/src/mame/video/m107.c
r17967r17968
380380
381381/*****************************************************************************/
382382
383SCREEN_UPDATE_IND16( m107 )
383UINT32 m107_state::screen_update_m107(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
384384{
385385   m107_update_scroll_positions(screen.machine());
386386   m107_screenrefresh(screen.machine(), bitmap, cliprect);
trunk/src/mame/video/ninjaw.c
r17967r17968
127127   return 0;
128128}
129129
130SCREEN_UPDATE_IND16( ninjaw_left ) { return update_screen(screen, bitmap, cliprect, 36 * 8 * 0, screen.machine().driver_data<ninjaw_state>()->m_tc0100scn_1); }
131SCREEN_UPDATE_IND16( ninjaw_middle ) { return update_screen(screen, bitmap, cliprect, 36 * 8 * 1, screen.machine().driver_data<ninjaw_state>()->m_tc0100scn_2); }
132SCREEN_UPDATE_IND16( ninjaw_right ) { return update_screen(screen, bitmap, cliprect, 36 * 8 * 2, screen.machine().driver_data<ninjaw_state>()->m_tc0100scn_3); }
130UINT32 ninjaw_state::screen_update_ninjaw_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8 * 0, screen.machine().driver_data<ninjaw_state>()->m_tc0100scn_1); }
131UINT32 ninjaw_state::screen_update_ninjaw_middle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8 * 1, screen.machine().driver_data<ninjaw_state>()->m_tc0100scn_2); }
132UINT32 ninjaw_state::screen_update_ninjaw_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8 * 2, screen.machine().driver_data<ninjaw_state>()->m_tc0100scn_3); }
trunk/src/mame/video/matmania.c
r17967r17968
125125
126126
127127
128SCREEN_UPDATE_IND16( matmania )
128UINT32 matmania_state::screen_update_matmania(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
129129{
130   matmania_state *state = screen.machine().driver_data<matmania_state>();
131   UINT8 *spriteram = state->m_spriteram;
130   UINT8 *spriteram = m_spriteram;
132131   int offs;
133132
134133
135134   /* Update the tiles in the left tile ram bank */
136   for (offs = state->m_videoram.bytes() - 1; offs >= 0; offs--)
135   for (offs = m_videoram.bytes() - 1; offs >= 0; offs--)
137136   {
138137      int sx = 15 - offs / 32;
139138      int sy = offs % 32;
140139
141      drawgfx_opaque(*state->m_tmpbitmap, state->m_tmpbitmap->cliprect(), screen.machine().gfx[1],
142            state->m_videoram[offs] + ((state->m_colorram[offs] & 0x08) << 5),
143            (state->m_colorram[offs] & 0x30) >> 4,
140      drawgfx_opaque(*m_tmpbitmap, m_tmpbitmap->cliprect(), screen.machine().gfx[1],
141            m_videoram[offs] + ((m_colorram[offs] & 0x08) << 5),
142            (m_colorram[offs] & 0x30) >> 4,
144143            0,sy >= 16,   /* flip horizontally tiles on the right half of the bitmap */
145144            16 * sx, 16 * sy);
146145   }
147146
148147   /* Update the tiles in the right tile ram bank */
149   for (offs = state->m_videoram3.bytes() - 1; offs >= 0; offs--)
148   for (offs = m_videoram3.bytes() - 1; offs >= 0; offs--)
150149   {
151150      int sx = 15 - offs / 32;
152151      int sy = offs % 32;
153152
154      drawgfx_opaque(*state->m_tmpbitmap2, state->m_tmpbitmap2->cliprect(), screen.machine().gfx[1],
155            state->m_videoram3[offs] + ((state->m_colorram3[offs] & 0x08) << 5),
156            (state->m_colorram3[offs] & 0x30) >> 4,
153      drawgfx_opaque(*m_tmpbitmap2, m_tmpbitmap2->cliprect(), screen.machine().gfx[1],
154            m_videoram3[offs] + ((m_colorram3[offs] & 0x08) << 5),
155            (m_colorram3[offs] & 0x30) >> 4,
157156            0,sy >= 16,   /* flip horizontally tiles on the right half of the bitmap */
158157            16*sx,16*sy);
159158   }
160159
161160   /* copy the temporary bitmap to the screen */
162161   {
163      int scrolly = -*state->m_scroll;
164      if (state->m_pageselect[0] & 0x01) // maniach sets 0x20 sometimes, which must have a different meaning
165         copyscrollbitmap(bitmap, *state->m_tmpbitmap2, 0, 0, 1, &scrolly, cliprect);
162      int scrolly = -*m_scroll;
163      if (m_pageselect[0] & 0x01) // maniach sets 0x20 sometimes, which must have a different meaning
164         copyscrollbitmap(bitmap, *m_tmpbitmap2, 0, 0, 1, &scrolly, cliprect);
166165      else
167         copyscrollbitmap(bitmap, *state->m_tmpbitmap, 0, 0, 1, &scrolly, cliprect);
166         copyscrollbitmap(bitmap, *m_tmpbitmap, 0, 0, 1, &scrolly, cliprect);
168167   }
169168
170169
171170   /* Draw the sprites */
172   for (offs = 0; offs < state->m_spriteram.bytes(); offs += 4)
171   for (offs = 0; offs < m_spriteram.bytes(); offs += 4)
173172   {
174173      if (spriteram[offs] & 0x01)
175174      {
r17967r17968
183182
184183
185184   /* draw the frontmost playfield. They are characters, but draw them as sprites */
186   for (offs = state->m_videoram2.bytes() - 1; offs >= 0; offs--)
185   for (offs = m_videoram2.bytes() - 1; offs >= 0; offs--)
187186   {
188187      int sx = 31 - offs / 32;
189188      int sy = offs % 32;
190189
191190      drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[0],
192            state->m_videoram2[offs] + 256 * (state->m_colorram2[offs] & 0x07),
193            (state->m_colorram2[offs] & 0x30) >> 4,
191            m_videoram2[offs] + 256 * (m_colorram2[offs] & 0x07),
192            (m_colorram2[offs] & 0x30) >> 4,
194193            0,0,
195194            8*sx,8*sy,0);
196195   }
197196   return 0;
198197}
199198
200SCREEN_UPDATE_IND16( maniach )
199UINT32 matmania_state::screen_update_maniach(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
201200{
202   matmania_state *state = screen.machine().driver_data<matmania_state>();
203   UINT8 *spriteram = state->m_spriteram;
201   UINT8 *spriteram = m_spriteram;
204202   int offs;
205203
206204
207205   /* Update the tiles in the left tile ram bank */
208   for (offs = state->m_videoram.bytes() - 1; offs >= 0; offs--)
206   for (offs = m_videoram.bytes() - 1; offs >= 0; offs--)
209207   {
210208      int sx = 15 - offs / 32;
211209      int sy = offs % 32;
212210
213      drawgfx_opaque(*state->m_tmpbitmap, state->m_tmpbitmap->cliprect(), screen.machine().gfx[1],
214            state->m_videoram[offs] + ((state->m_colorram[offs] & 0x03) << 8),
215            (state->m_colorram[offs] & 0x30) >> 4,
211      drawgfx_opaque(*m_tmpbitmap, m_tmpbitmap->cliprect(), screen.machine().gfx[1],
212            m_videoram[offs] + ((m_colorram[offs] & 0x03) << 8),
213            (m_colorram[offs] & 0x30) >> 4,
216214            0,sy >= 16,   /* flip horizontally tiles on the right half of the bitmap */
217215            16*sx,16*sy);
218216   }
219217
220218   /* Update the tiles in the right tile ram bank */
221   for (offs = state->m_videoram3.bytes() - 1; offs >= 0; offs--)
219   for (offs = m_videoram3.bytes() - 1; offs >= 0; offs--)
222220   {
223221      int sx = 15 - offs / 32;
224222      int sy = offs % 32;
225223
226      drawgfx_opaque(*state->m_tmpbitmap2, state->m_tmpbitmap2->cliprect(), screen.machine().gfx[1],
227            state->m_videoram3[offs] + ((state->m_colorram3[offs] & 0x03) << 8),
228            (state->m_colorram3[offs] & 0x30) >> 4,
224      drawgfx_opaque(*m_tmpbitmap2, m_tmpbitmap2->cliprect(), screen.machine().gfx[1],
225            m_videoram3[offs] + ((m_colorram3[offs] & 0x03) << 8),
226            (m_colorram3[offs] & 0x30) >> 4,
229227            0,sy >= 16,   /* flip horizontally tiles on the right half of the bitmap */
230228            16*sx,16*sy);
231229   }
r17967r17968
233231
234232   /* copy the temporary bitmap to the screen */
235233   {
236      int scrolly = -*state->m_scroll;
234      int scrolly = -*m_scroll;
237235
238      if (state->m_pageselect[0] & 0x01) // this sets 0x20 sometimes, which must have a different meaning
239         copyscrollbitmap(bitmap, *state->m_tmpbitmap2, 0, 0, 1, &scrolly, cliprect);
236      if (m_pageselect[0] & 0x01) // this sets 0x20 sometimes, which must have a different meaning
237         copyscrollbitmap(bitmap, *m_tmpbitmap2, 0, 0, 1, &scrolly, cliprect);
240238      else
241         copyscrollbitmap(bitmap, *state->m_tmpbitmap, 0, 0, 1, &scrolly, cliprect);
239         copyscrollbitmap(bitmap, *m_tmpbitmap, 0, 0, 1, &scrolly, cliprect);
242240   }
243241
244242
245243   /* Draw the sprites */
246   for (offs = 0; offs < state->m_spriteram.bytes(); offs += 4)
244   for (offs = 0; offs < m_spriteram.bytes(); offs += 4)
247245   {
248246      if (spriteram[offs] & 0x01)
249247      {
r17967r17968
257255
258256
259257   /* draw the frontmost playfield. They are characters, but draw them as sprites */
260   for (offs = state->m_videoram2.bytes() - 1; offs >= 0; offs--)
258   for (offs = m_videoram2.bytes() - 1; offs >= 0; offs--)
261259   {
262260      int sx = 31 - offs / 32;
263261      int sy = offs % 32;
264262
265263      drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[0],
266            state->m_videoram2[offs] + 256 * (state->m_colorram2[offs] & 0x07),
267            (state->m_colorram2[offs] & 0x30) >> 4,
264            m_videoram2[offs] + 256 * (m_colorram2[offs] & 0x07),
265            (m_colorram2[offs] & 0x30) >> 4,
268266            0,0,
269267            8*sx,8*sy,0);
270268   }
trunk/src/mame/video/arkanoid.c
r17967r17968
196196}
197197
198198
199SCREEN_UPDATE_IND16( arkanoid )
199UINT32 arkanoid_state::screen_update_arkanoid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
200200{
201   arkanoid_state *state = screen.machine().driver_data<arkanoid_state>();
202201
203   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
202   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
204203   draw_sprites(screen.machine(), bitmap, cliprect);
205204   return 0;
206205}
207206
208SCREEN_UPDATE_IND16( hexa )
207UINT32 arkanoid_state::screen_update_hexa(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
209208{
210   arkanoid_state *state = screen.machine().driver_data<arkanoid_state>();
211209
212   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
210   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
213211   return 0;
214212}
trunk/src/mame/video/twin16.c
r17967r17968
514514   state_save_register_global(machine(), m_sprite_busy);
515515}
516516
517SCREEN_UPDATE_IND16( twin16 )
517UINT32 twin16_state::screen_update_twin16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
518518{
519   twin16_state *state = screen.machine().driver_data<twin16_state>();
520519   int text_flip=0;
521   if (state->m_video_register&TWIN16_SCREEN_FLIPX) text_flip|=TILEMAP_FLIPX;
522   if (state->m_video_register&TWIN16_SCREEN_FLIPY) text_flip|=TILEMAP_FLIPY;
520   if (m_video_register&TWIN16_SCREEN_FLIPX) text_flip|=TILEMAP_FLIPX;
521   if (m_video_register&TWIN16_SCREEN_FLIPY) text_flip|=TILEMAP_FLIPY;
523522
524523   screen.machine().priority_bitmap.fill(0, cliprect);
525524   draw_layer( screen.machine(), bitmap, 1 );
526525   draw_layer( screen.machine(), bitmap, 0 );
527526   draw_sprites( screen.machine(), bitmap );
528527
529   if (text_flip) state->m_text_tilemap->set_flip(text_flip);
530   state->m_text_tilemap->draw(bitmap, cliprect, 0, 0);
528   if (text_flip) m_text_tilemap->set_flip(text_flip);
529   m_text_tilemap->draw(bitmap, cliprect, 0, 0);
531530   return 0;
532531}
533532
534SCREEN_VBLANK( twin16 )
533void twin16_state::screen_eof_twin16(screen_device &screen, bool state)
535534{
536535   // rising edge
537   if (vblank_on)
536   if (state)
538537   {
539      twin16_state *state = screen.machine().driver_data<twin16_state>();
540538      twin16_set_sprite_timer(screen.machine());
541539
542540      if (twin16_spriteram_process_enable(screen.machine())) {
543         if (state->m_need_process_spriteram) twin16_spriteram_process(screen.machine());
544         state->m_need_process_spriteram = 1;
541         if (m_need_process_spriteram) twin16_spriteram_process(screen.machine());
542         m_need_process_spriteram = 1;
545543
546544         /* if the sprite preprocessor is used, sprite ram is copied to an external buffer first,
547545            as evidenced by 1-frame sprite lag in gradius2 and devilw otherwise, though there's probably
548546            more to it than that */
549         memcpy(&state->m_spriteram->buffer()[0x1800],state->m_sprite_buffer,0x800*sizeof(UINT16));
550         memcpy(state->m_sprite_buffer,&state->m_spriteram->live()[0x1800],0x800*sizeof(UINT16));
547         memcpy(&m_spriteram->buffer()[0x1800],m_sprite_buffer,0x800*sizeof(UINT16));
548         memcpy(m_sprite_buffer,&m_spriteram->live()[0x1800],0x800*sizeof(UINT16));
551549      }
552550      else {
553         state->m_spriteram->copy();
551         m_spriteram->copy();
554552      }
555553   }
556554}
trunk/src/mame/video/megasys1.c
r17967r17968
917917***************************************************************************/
918918
919919
920SCREEN_UPDATE_IND16( megasys1 )
920UINT32 megasys1_state::screen_update_megasys1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
921921{
922   megasys1_state *state = screen.machine().driver_data<megasys1_state>();
923922   int i,flag,pri,primask;
924923   int active_layers;
925924
926   if (state->m_hardware_type_z)
925   if (m_hardware_type_z)
927926   {
928927      /* no layer 2 and fixed layers order? */
929928      active_layers = 0x000b;
r17967r17968
934933      int reallyactive = 0;
935934
936935      /* get layers order */
937      pri = state->m_layers_order[(state->m_active_layers & 0x0f0f) >> 8];
936      pri = m_layers_order[(m_active_layers & 0x0f0f) >> 8];
938937
939938#ifdef MAME_DEBUG
940939      if (pri == 0xfffff)
941940      {
942         popmessage("Pri: %04X - Flag: %04X", state->m_active_layers, state->m_sprite_flag);
941         popmessage("Pri: %04X - Flag: %04X", m_active_layers, m_sprite_flag);
943942      }
944943#endif
945944
r17967r17968
949948      for (i = 0;i < 5;i++)
950949         reallyactive |= 1 << ((pri >> (4*i)) & 0x0f);
951950
952      active_layers = state->m_active_layers & reallyactive;
951      active_layers = m_active_layers & reallyactive;
953952      active_layers |= 1 << ((pri & 0xf0000) >> 16);   // bottom layer can't be disabled
954953   }
955954
956   screen.machine().tilemap().set_flip_all((state->m_screen_flag & 1) ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0 );
955   screen.machine().tilemap().set_flip_all((m_screen_flag & 1) ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0 );
957956
958957   for (i = 0;i < 3;i++)
959958   {
960      if (state->m_tmap[i])
959      if (m_tmap[i])
961960      {
962         state->m_tmap[i]->enable(active_layers & (1 << i));
961         m_tmap[i]->enable(active_layers & (1 << i));
963962
964         state->m_tmap[i]->set_scrollx(0,state->m_scrollx[i]);
965         state->m_tmap[i]->set_scrolly(0,state->m_scrolly[i]);
963         m_tmap[i]->set_scrollx(0,m_scrollx[i]);
964         m_tmap[i]->set_scrolly(0,m_scrolly[i]);
966965      }
967966   }
968967
r17967r17968
981980         case 0:
982981         case 1:
983982         case 2:
984            if ( (state->m_tmap[layer]) && (active_layers & (1 << layer) ) )
983            if ( (m_tmap[layer]) && (active_layers & (1 << layer) ) )
985984            {
986               state->m_tmap[layer]->draw(bitmap, cliprect, flag,primask);
985               m_tmap[layer]->draw(bitmap, cliprect, flag,primask);
987986               flag = 0;
988987            }
989988            break;
r17967r17968
995994               bitmap.fill(0, cliprect);
996995            }
997996
998            if (state->m_sprite_flag & 0x100)   /* sprites are split */
997            if (m_sprite_flag & 0x100)   /* sprites are split */
999998            {
1000999               /* following tilemaps will obscure this sprites layer */
10011000               primask |= 1 << (layer-3);
r17967r17968
10131012   return 0;
10141013}
10151014
1016SCREEN_VBLANK( megasys1 )
1015void megasys1_state::screen_eof_megasys1(screen_device &screen, bool state)
10171016{
10181017   // rising edge
1019   if (vblank_on)
1018   if (state)
10201019   {
1021      megasys1_state *state = screen.machine().driver_data<megasys1_state>();
10221020      /* Sprite are TWO frames ahead, like NMK16 HW. */
1023   //state->m_objectram
1024      memcpy(state->m_buffer2_objectram,state->m_buffer_objectram, 0x2000);
1025      memcpy(state->m_buffer_objectram, state->m_objectram, 0x2000);
1021   //m_objectram
1022      memcpy(m_buffer2_objectram,m_buffer_objectram, 0x2000);
1023      memcpy(m_buffer_objectram, m_objectram, 0x2000);
10261024   //spriteram16
1027      memcpy(state->m_buffer2_spriteram16, state->m_buffer_spriteram16, 0x2000);
1028      memcpy(state->m_buffer_spriteram16, state->m_spriteram, 0x2000);
1025      memcpy(m_buffer2_spriteram16, m_buffer_spriteram16, 0x2000);
1026      memcpy(m_buffer_spriteram16, m_spriteram, 0x2000);
10291027   }
10301028
10311029}
trunk/src/mame/video/crshrace.c
r17967r17968
178178}
179179
180180
181SCREEN_UPDATE_IND16( crshrace )
181UINT32 crshrace_state::screen_update_crshrace(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
182182{
183   crshrace_state *state = screen.machine().driver_data<crshrace_state>();
184183
185   if (state->m_gfxctrl & 0x04)   /* display disable? */
184   if (m_gfxctrl & 0x04)   /* display disable? */
186185   {
187186      bitmap.fill(get_black_pen(screen.machine()), cliprect);
188187      return 0;
r17967r17968
190189
191190   bitmap.fill(0x1ff, cliprect);
192191
193   switch (state->m_gfxctrl & 0xfb)
192   switch (m_gfxctrl & 0xfb)
194193   {
195194      case 0x00:   /* high score screen */
196195         draw_sprites(screen.machine(), bitmap, cliprect);
r17967r17968
204203         draw_sprites(screen.machine(), bitmap, cliprect);
205204         break;
206205      default:
207         popmessage("gfxctrl = %02x", state->m_gfxctrl);
206         popmessage("gfxctrl = %02x", m_gfxctrl);
208207         break;
209208   }
210209   return 0;
211210}
212211
213SCREEN_VBLANK( crshrace )
212void crshrace_state::screen_eof_crshrace(screen_device &screen, bool state)
214213{
215   crshrace_state *state = screen.machine().driver_data<crshrace_state>();
216   state->m_spriteram->vblank_copy_rising(screen, vblank_on);
217   state->m_spriteram2->vblank_copy_rising(screen, vblank_on);
214   m_spriteram->vblank_copy_rising(screen, state);
215   m_spriteram2->vblank_copy_rising(screen, state);
218216}
trunk/src/mame/video/airbustr.c
r17967r17968
125125}
126126
127127
128SCREEN_UPDATE_IND16( airbustr )
128UINT32 airbustr_state::screen_update_airbustr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
129129{
130   airbustr_state *state = screen.machine().driver_data<airbustr_state>();
131130
132   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
133   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
131   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
132   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
134133
135134   // copy the sprite bitmap to the screen
136   pandora_update(state->m_pandora, bitmap, cliprect);
135   pandora_update(m_pandora, bitmap, cliprect);
137136
138137   return 0;
139138}
140139
141SCREEN_VBLANK( airbustr )
140void airbustr_state::screen_eof_airbustr(screen_device &screen, bool state)
142141{
143142   // rising edge
144   if (vblank_on)
143   if (state)
145144   {
146      airbustr_state *state = screen.machine().driver_data<airbustr_state>();
147145
148146      // update the sprite bitmap
149      pandora_eof(state->m_pandora);
147      pandora_eof(m_pandora);
150148   }
151149}
152150
trunk/src/mame/video/clshroad.c
r17967r17968
321321
322322***************************************************************************/
323323
324SCREEN_UPDATE_IND16( clshroad )
324UINT32 clshroad_state::screen_update_clshroad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
325325{
326   clshroad_state *state = screen.machine().driver_data<clshroad_state>();
327   int scrollx  = state->m_vregs[ 0 ] + (state->m_vregs[ 1 ] << 8);
328//  int priority = state->m_vregs[ 2 ];
326   int scrollx  = m_vregs[ 0 ] + (m_vregs[ 1 ] << 8);
327//  int priority = m_vregs[ 2 ];
329328
330329   /* Only horizontal scrolling (these 2 layers use the same value) */
331   state->m_tilemap_0a->set_scrollx(0, scrollx);
332   state->m_tilemap_0b->set_scrollx(0, scrollx);
330   m_tilemap_0a->set_scrollx(0, scrollx);
331   m_tilemap_0b->set_scrollx(0, scrollx);
333332
334   state->m_tilemap_0a->draw(bitmap, cliprect, 0,0);   // Opaque
335   state->m_tilemap_0b->draw(bitmap, cliprect, 0,0);
333   m_tilemap_0a->draw(bitmap, cliprect, 0,0);   // Opaque
334   m_tilemap_0b->draw(bitmap, cliprect, 0,0);
336335   draw_sprites(screen.machine(),bitmap,cliprect);
337   state->m_tilemap_1->draw(bitmap, cliprect, 0,0);
336   m_tilemap_1->draw(bitmap, cliprect, 0,0);
338337   return 0;
339338}
trunk/src/mame/video/pacman.c
r17967r17968
208208}
209209
210210
211SCREEN_UPDATE_IND16( pacman )
211UINT32 pacman_state::screen_update_pacman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
212212{
213   pacman_state *state = screen.machine().driver_data<pacman_state>();
214   if (state->m_bgpriority != 0)
213   if (m_bgpriority != 0)
215214      bitmap.fill(0, cliprect);
216215   else
217      state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
216      m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
218217
219   if( state->m_spriteram != NULL )
218   if( m_spriteram != NULL )
220219   {
221      UINT8 *spriteram = state->m_spriteram;
222      UINT8 *spriteram_2 = state->m_spriteram2;
220      UINT8 *spriteram = m_spriteram;
221      UINT8 *spriteram_2 = m_spriteram2;
223222      int offs;
224223
225224      rectangle spriteclip(2*8, 34*8-1, 0*8, 28*8-1);
r17967r17968
227226
228227      /* Draw the sprites. Note that it is important to draw them exactly in this */
229228      /* order, to have the correct priorities. */
230      for (offs = state->m_spriteram.bytes() - 2;offs > 2*2;offs -= 2)
229      for (offs = m_spriteram.bytes() - 2;offs > 2*2;offs -= 2)
231230      {
232231         int color;
233232         int sx,sy;
234233         UINT8 fx,fy;
235234
236         if(state->m_inv_spr)
235         if(m_inv_spr)
237236         {
238237            sx = spriteram_2[offs + 1];
239238            sy = 240 - (spriteram_2[offs]);
r17967r17968
244243            sy = spriteram_2[offs] - 31;
245244         }
246245
247         fx = (spriteram[offs] & 1) ^ state->m_inv_spr;
248         fy = (spriteram[offs] & 2) ^ ((state->m_inv_spr) << 1);
246         fx = (spriteram[offs] & 1) ^ m_inv_spr;
247         fy = (spriteram[offs] & 2) ^ ((m_inv_spr) << 1);
249248
250         color = ( spriteram[offs + 1] & 0x1f ) | (state->m_colortablebank << 5) | (state->m_palettebank << 6 );
249         color = ( spriteram[offs + 1] & 0x1f ) | (m_colortablebank << 5) | (m_palettebank << 6 );
251250
252251         drawgfx_transmask(bitmap,spriteclip,screen.machine().gfx[1],
253               ( spriteram[offs] >> 2 ) | (state->m_spritebank << 6),
252               ( spriteram[offs] >> 2 ) | (m_spritebank << 6),
254253               color,
255254               fx,fy,
256255               sx,sy,
r17967r17968
258257
259258         /* also plot the sprite with wraparound (tunnel in Crush Roller) */
260259         drawgfx_transmask(bitmap,spriteclip,screen.machine().gfx[1],
261               ( spriteram[offs] >> 2 ) | (state->m_spritebank << 6),
260               ( spriteram[offs] >> 2 ) | (m_spritebank << 6),
262261               color,
263262               fx,fy,
264263               sx - 256,sy,
r17967r17968
272271         int sx,sy;
273272         UINT8 fx,fy;
274273
275         if(state->m_inv_spr)
274         if(m_inv_spr)
276275         {
277276            sx = spriteram_2[offs + 1];
278277            sy = 240 - (spriteram_2[offs]);
r17967r17968
282281            sx = 272 - spriteram_2[offs + 1];
283282            sy = spriteram_2[offs] - 31;
284283         }
285         color = ( spriteram[offs + 1] & 0x1f ) | (state->m_colortablebank << 5) | (state->m_palettebank << 6 );
284         color = ( spriteram[offs + 1] & 0x1f ) | (m_colortablebank << 5) | (m_palettebank << 6 );
286285
287         fx = (spriteram[offs] & 1) ^ state->m_inv_spr;
288         fy = (spriteram[offs] & 2) ^ ((state->m_inv_spr) << 1);
286         fx = (spriteram[offs] & 1) ^ m_inv_spr;
287         fy = (spriteram[offs] & 2) ^ ((m_inv_spr) << 1);
289288
290289         drawgfx_transmask(bitmap,spriteclip,screen.machine().gfx[1],
291               ( spriteram[offs] >> 2 ) | (state->m_spritebank << 6),
290               ( spriteram[offs] >> 2 ) | (m_spritebank << 6),
292291               color,
293292               fx,fy,
294               sx,sy + state->m_xoffsethack,
293               sx,sy + m_xoffsethack,
295294               colortable_get_transpen_mask(screen.machine().colortable, screen.machine().gfx[1], color & 0x3f, 0));
296295
297296         /* also plot the sprite with wraparound (tunnel in Crush Roller) */
298297         drawgfx_transmask(bitmap,spriteclip,screen.machine().gfx[1],
299               ( spriteram[offs] >> 2 ) | (state->m_spritebank << 6),
298               ( spriteram[offs] >> 2 ) | (m_spritebank << 6),
300299               color,
301300               fy,fx,         //FIXME: flipping bits are really supposed to be inverted here?
302               sx - 256,sy + state->m_xoffsethack,
301               sx - 256,sy + m_xoffsethack,
303302               colortable_get_transpen_mask(screen.machine().colortable, screen.machine().gfx[1], color & 0x3f, 0));
304303      }
305304   }
306305
307   if (state->m_bgpriority != 0)
308      state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
306   if (m_bgpriority != 0)
307      m_bg_tilemap->draw(bitmap, cliprect, 0,0);
309308   return 0;
310309}
311310
r17967r17968
400399   m_bg_tilemap->set_scroll_cols(32);
401400}
402401
403SCREEN_UPDATE_IND16( s2650games )
402UINT32 pacman_state::screen_update_s2650games(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
404403{
405   pacman_state *state = screen.machine().driver_data<pacman_state>();
406   UINT8 *spriteram = state->m_spriteram;
407   UINT8 *spriteram_2 = state->m_spriteram2;
404   UINT8 *spriteram = m_spriteram;
405   UINT8 *spriteram_2 = m_spriteram2;
408406   int offs;
409407
410   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
408   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
411409
412   for (offs = state->m_spriteram.bytes() - 2;offs > 2*2;offs -= 2)
410   for (offs = m_spriteram.bytes() - 2;offs > 2*2;offs -= 2)
413411   {
414412      int color;
415413      int sx,sy;
r17967r17968
421419
422420      /* TODO: ?? */
423421      drawgfx_transmask(bitmap,cliprect,screen.machine().gfx[1],
424            (spriteram[offs] >> 2) | ((state->m_s2650_spriteram[offs] & 3) << 6),
422            (spriteram[offs] >> 2) | ((m_s2650_spriteram[offs] & 3) << 6),
425423            color,
426424            spriteram[offs] & 1,spriteram[offs] & 2,
427425            sx,sy,
r17967r17968
441439
442440      /* TODO: ?? */
443441      drawgfx_transmask(bitmap,cliprect,screen.machine().gfx[1],
444            (spriteram[offs] >> 2) | ((state->m_s2650_spriteram[offs] & 3)<<6),
442            (spriteram[offs] >> 2) | ((m_s2650_spriteram[offs] & 3)<<6),
445443            color,
446444            spriteram[offs] & 1,spriteram[offs] & 2,
447            sx,sy + state->m_xoffsethack,
445            sx,sy + m_xoffsethack,
448446            colortable_get_transpen_mask(screen.machine().colortable, screen.machine().gfx[1], color & 0x3f, 0));
449447   }
450448   return 0;
trunk/src/mame/video/dcheese.c
r17967r17968
115115 *
116116 *************************************/
117117
118SCREEN_UPDATE_IND16( dcheese )
118UINT32 dcheese_state::screen_update_dcheese(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
119119{
120   dcheese_state *state = screen.machine().driver_data<dcheese_state>();
121120   int x, y;
122121
123122   /* update the pixels */
124123   for (y = cliprect.min_y; y <= cliprect.max_y; y++)
125124   {
126125      UINT16 *dest = &bitmap.pix16(y);
127      UINT16 *src = &state->m_dstbitmap->pix16((y + state->m_blitter_vidparam[0x28/2]) % DSTBITMAP_HEIGHT);
126      UINT16 *src = &m_dstbitmap->pix16((y + m_blitter_vidparam[0x28/2]) % DSTBITMAP_HEIGHT);
128127
129128      for (x = cliprect.min_x; x <= cliprect.max_x; x++)
130129         dest[x] = src[x];
trunk/src/mame/video/chqflag.c
r17967r17968
6868
6969***************************************************************************/
7070
71SCREEN_UPDATE_IND16( chqflag )
71UINT32 chqflag_state::screen_update_chqflag(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
7272{
73   chqflag_state *state = screen.machine().driver_data<chqflag_state>();
7473
7574   bitmap.fill(0, cliprect);
7675
77   k051316_zoom_draw(state->m_k051316_2, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
78   k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 0, 0);
79   k051316_zoom_draw(state->m_k051316_2, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
80   k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 1, 1);
81   k051316_zoom_draw(state->m_k051316_1, bitmap, cliprect, 0, 0);
76   k051316_zoom_draw(m_k051316_2, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
77   k051960_sprites_draw(m_k051960, bitmap, cliprect, 0, 0);
78   k051316_zoom_draw(m_k051316_2, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
79   k051960_sprites_draw(m_k051960, bitmap, cliprect, 1, 1);
80   k051316_zoom_draw(m_k051316_1, bitmap, cliprect, 0, 0);
8281   return 0;
8382}
trunk/src/mame/video/bwing.c
r17967r17968
282282}
283283
284284
285SCREEN_UPDATE_IND16( bwing )
285UINT32 bwing_state::screen_update_bwing(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
286286{
287   bwing_state *state = screen.machine().driver_data<bwing_state>();
288287   unsigned x, y, shiftx;
289288
290   if (state->m_mapmask & 0x20)
289   if (m_mapmask & 0x20)
291290   {
292      state->m_mapflip = TILEMAP_FLIPX;
291      m_mapflip = TILEMAP_FLIPX;
293292      shiftx = -8;
294293   }
295294   else
296295   {
297      state->m_mapflip = TILEMAP_FLIPY;
296      m_mapflip = TILEMAP_FLIPY;
298297      shiftx = 8;
299298   }
300299
301300   // draw background
302   if (!(state->m_mapmask & 1))
301   if (!(m_mapmask & 1))
303302   {
304      state->m_bgmap->set_flip(state->m_mapflip);
305      x = ((state->m_sreg[1]<<2 & 0x300) + state->m_sreg[2] + shiftx) & 0x3ff;
306      state->m_bgmap->set_scrollx(0, x);
307      y = (state->m_sreg[1]<<4 & 0x300) + state->m_sreg[3];
308      state->m_bgmap->set_scrolly(0, y);
309      state->m_bgmap->draw(bitmap, cliprect, 0, 0);
303      m_bgmap->set_flip(m_mapflip);
304      x = ((m_sreg[1]<<2 & 0x300) + m_sreg[2] + shiftx) & 0x3ff;
305      m_bgmap->set_scrollx(0, x);
306      y = (m_sreg[1]<<4 & 0x300) + m_sreg[3];
307      m_bgmap->set_scrolly(0, y);
308      m_bgmap->draw(bitmap, cliprect, 0, 0);
310309   }
311310   else
312311      bitmap.fill(get_black_pen(screen.machine()), cliprect);
313312
314313   // draw low priority sprites
315   draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram, 0);
314   draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram, 0);
316315
317316   // draw foreground
318   if (!(state->m_mapmask & 2))
317   if (!(m_mapmask & 2))
319318   {
320      state->m_fgmap->set_flip(state->m_mapflip);
321      x = ((state->m_sreg[1] << 6 & 0x300) + state->m_sreg[4] + shiftx) & 0x3ff;
322      state->m_fgmap->set_scrollx(0, x);
323      y = (state->m_sreg[1] << 8 & 0x300) + state->m_sreg[5];
324      state->m_fgmap->set_scrolly(0, y);
325      state->m_fgmap->draw(bitmap, cliprect, 0, 0);
319      m_fgmap->set_flip(m_mapflip);
320      x = ((m_sreg[1] << 6 & 0x300) + m_sreg[4] + shiftx) & 0x3ff;
321      m_fgmap->set_scrollx(0, x);
322      y = (m_sreg[1] << 8 & 0x300) + m_sreg[5];
323      m_fgmap->set_scrolly(0, y);
324      m_fgmap->draw(bitmap, cliprect, 0, 0);
326325   }
327326
328327   // draw high priority sprites
329   draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram, 1);
328   draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram, 1);
330329
331330   // draw text layer
332//  if (state->m_mapmask & 4)
331//  if (m_mapmask & 4)
333332   {
334      state->m_charmap->set_flip(state->m_mapflip);
335      state->m_charmap->draw(bitmap, cliprect, 0, 0);
333      m_charmap->set_flip(m_mapflip);
334      m_charmap->draw(bitmap, cliprect, 0, 0);
336335   }
337336   return 0;
338337}
trunk/src/mame/video/sf.c
r17967r17968
212212}
213213
214214
215SCREEN_UPDATE_IND16( sf )
215UINT32 sf_state::screen_update_sf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
216216{
217   sf_state *state = screen.machine().driver_data<sf_state>();
218217
219   if (state->m_sf_active & 0x20)
220      state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
218   if (m_sf_active & 0x20)
219      m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
221220   else
222221      bitmap.fill(0, cliprect);
223222
224   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
223   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
225224
226   if (state->m_sf_active & 0x80)
225   if (m_sf_active & 0x80)
227226      draw_sprites(screen.machine(), bitmap, cliprect);
228227
229   state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
228   m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
230229   return 0;
231230}
trunk/src/mame/video/lsasquad.c
r17967r17968
198198   }
199199}
200200
201SCREEN_UPDATE_IND16( lsasquad )
201UINT32 lsasquad_state::screen_update_lsasquad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
202202{
203   lsasquad_state *state = screen.machine().driver_data<lsasquad_state>();
204203   bitmap.fill(511, cliprect);
205204
206   draw_layer(screen.machine(), bitmap, cliprect, state->m_scrollram + 0x000);
207   draw_layer(screen.machine(), bitmap, cliprect, state->m_scrollram + 0x080);
205   draw_layer(screen.machine(), bitmap, cliprect, m_scrollram + 0x000);
206   draw_layer(screen.machine(), bitmap, cliprect, m_scrollram + 0x080);
208207   draw_sprites(screen.machine(), bitmap, cliprect);
209   draw_layer(screen.machine(), bitmap, cliprect, state->m_scrollram + 0x100);
208   draw_layer(screen.machine(), bitmap, cliprect, m_scrollram + 0x100);
210209   return 0;
211210}
212211
213212
214SCREEN_UPDATE_IND16( daikaiju )
213UINT32 lsasquad_state::screen_update_daikaiju(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
215214{
216215   bitmap.fill(511, cliprect);
217216   drawbg(screen.machine(), bitmap, cliprect, 0); // bottom
trunk/src/mame/video/dooyong.c
r17967r17968
498498}
499499
500500
501SCREEN_UPDATE_IND16( lastday )
501UINT32 dooyong_state::screen_update_lastday(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
502502{
503   dooyong_state *state = screen.machine().driver_data<dooyong_state>();
504503   bitmap.fill(get_black_pen(screen.machine()), cliprect);
505504   screen.machine().priority_bitmap.fill(0, cliprect);
506505
507   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
508   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
509   state->m_tx_tilemap->draw(bitmap, cliprect, 0, 4);
506   m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
507   m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
508   m_tx_tilemap->draw(bitmap, cliprect, 0, 4);
510509
511   if (!state->m_sprites_disabled)
510   if (!m_sprites_disabled)
512511      draw_sprites(screen.machine(), bitmap, cliprect, 0);
513512   return 0;
514513}
515514
516SCREEN_UPDATE_IND16( gulfstrm )
515UINT32 dooyong_state::screen_update_gulfstrm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
517516{
518   dooyong_state *state = screen.machine().driver_data<dooyong_state>();
519517   bitmap.fill(get_black_pen(screen.machine()), cliprect);
520518   screen.machine().priority_bitmap.fill(0, cliprect);
521519
522   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
523   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
524   state->m_tx_tilemap->draw(bitmap, cliprect, 0, 4);
520   m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
521   m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
522   m_tx_tilemap->draw(bitmap, cliprect, 0, 4);
525523
526524   draw_sprites(screen.machine(), bitmap, cliprect, 1);
527525   return 0;
528526}
529527
530SCREEN_UPDATE_IND16( pollux )
528UINT32 dooyong_state::screen_update_pollux(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
531529{
532   dooyong_state *state = screen.machine().driver_data<dooyong_state>();
533530   bitmap.fill(get_black_pen(screen.machine()), cliprect);
534531   screen.machine().priority_bitmap.fill(0, cliprect);
535532
536   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
537   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
538   state->m_tx_tilemap->draw(bitmap, cliprect, 0, 4);
533   m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
534   m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
535   m_tx_tilemap->draw(bitmap, cliprect, 0, 4);
539536
540537   draw_sprites(screen.machine(), bitmap, cliprect, 2);
541538   return 0;
542539}
543540
544SCREEN_UPDATE_IND16( flytiger )
541UINT32 dooyong_state::screen_update_flytiger(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
545542{
546   dooyong_state *state = screen.machine().driver_data<dooyong_state>();
547543   bitmap.fill(get_black_pen(screen.machine()), cliprect);
548544   screen.machine().priority_bitmap.fill(0, cliprect);
549545
550   if (state->m_flytiger_pri)
546   if (m_flytiger_pri)
551547   {
552      state->m_fg_tilemap->draw(bitmap, cliprect, 0, 1);
553      state->m_bg_tilemap->draw(bitmap, cliprect, 0, 2);
548      m_fg_tilemap->draw(bitmap, cliprect, 0, 1);
549      m_bg_tilemap->draw(bitmap, cliprect, 0, 2);
554550   }
555551   else
556552   {
557      state->m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
558      state->m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
553      m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
554      m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
559555   }
560   state->m_tx_tilemap->draw(bitmap, cliprect, 0, 4);
556   m_tx_tilemap->draw(bitmap, cliprect, 0, 4);
561557
562558   draw_sprites(screen.machine(), bitmap, cliprect, 4);
563559   return 0;
564560}
565561
566562
567SCREEN_UPDATE_IND16( bluehawk )
563UINT32 dooyong_state::screen_update_bluehawk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
568564{
569   dooyong_state *state = screen.machine().driver_data<dooyong_state>();
570565   bitmap.fill(get_black_pen(screen.machine()), cliprect);
571566   screen.machine().priority_bitmap.fill(0, cliprect);
572567
573   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
574   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
575   state->m_fg2_tilemap->draw(bitmap, cliprect, 0, 4);
576   state->m_tx_tilemap->draw(bitmap, cliprect, 0, 4);
568   m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
569   m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
570   m_fg2_tilemap->draw(bitmap, cliprect, 0, 4);
571   m_tx_tilemap->draw(bitmap, cliprect, 0, 4);
577572
578573   draw_sprites(screen.machine(), bitmap, cliprect, 3);
579574   return 0;
580575}
581576
582SCREEN_UPDATE_IND16( primella )
577UINT32 dooyong_state::screen_update_primella(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
583578{
584   dooyong_state *state = screen.machine().driver_data<dooyong_state>();
585579   bitmap.fill(get_black_pen(screen.machine()), cliprect);
586580
587   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
588   if (state->m_tx_pri) state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
589   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
590   if (!state->m_tx_pri) state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
581   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
582   if (m_tx_pri) m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
583   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
584   if (!m_tx_pri) m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
591585   return 0;
592586}
593587
594SCREEN_UPDATE_IND16( rshark )
588UINT32 dooyong_state::screen_update_rshark(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
595589{
596   dooyong_state *state = screen.machine().driver_data<dooyong_state>();
597590   bitmap.fill(get_black_pen(screen.machine()), cliprect);
598591   screen.machine().priority_bitmap.fill(0, cliprect);
599592
600   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
601   state->m_bg2_tilemap->draw(bitmap, cliprect, 0, (state->m_rshark_pri ? 2 : 1));
602   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
603   state->m_fg2_tilemap->draw(bitmap, cliprect, 0, 2);
593   m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
594   m_bg2_tilemap->draw(bitmap, cliprect, 0, (m_rshark_pri ? 2 : 1));
595   m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
596   m_fg2_tilemap->draw(bitmap, cliprect, 0, 2);
604597
605598   rshark_draw_sprites(screen.machine(), bitmap, cliprect);
606599   return 0;
607600}
608601
609SCREEN_UPDATE_IND16( popbingo )
602UINT32 dooyong_state::screen_update_popbingo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
610603{
611   dooyong_state *state = screen.machine().driver_data<dooyong_state>();
612604   bitmap.fill(get_black_pen(screen.machine()), cliprect);
613605   screen.machine().priority_bitmap.fill(0, cliprect);
614606
615   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
607   m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
616608
617609   rshark_draw_sprites(screen.machine(), bitmap, cliprect);
618610   return 0;
trunk/src/mame/video/cave.c
r17967r17968
15271527}
15281528
15291529
1530SCREEN_UPDATE_IND16( cave )
1530UINT32 cave_state::screen_update_cave(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
15311531{
1532   cave_state *state = screen.machine().driver_data<cave_state>();
15331532   int pri, pri2, GFX;
15341533   int layers_ctrl = -1;
15351534
15361535   set_pens(screen.machine());
15371536
1538   state->m_blit.baseaddr = reinterpret_cast<UINT8 *>(bitmap.raw_pixptr(0));
1539   state->m_blit.line_offset = bitmap.rowbytes();
1540   state->m_blit.baseaddr_zbuf = reinterpret_cast<UINT8 *>(state->m_sprite_zbuf.raw_pixptr(0));
1541   state->m_blit.line_offset_zbuf = state->m_sprite_zbuf.rowbytes();
1537   m_blit.baseaddr = reinterpret_cast<UINT8 *>(bitmap.raw_pixptr(0));
1538   m_blit.line_offset = bitmap.rowbytes();
1539   m_blit.baseaddr_zbuf = reinterpret_cast<UINT8 *>(m_sprite_zbuf.raw_pixptr(0));
1540   m_blit.line_offset_zbuf = m_sprite_zbuf.rowbytes();
15421541
15431542   /* Choose the tilemap to display (8x8 tiles or 16x16 tiles) */
15441543   for (GFX = 0; GFX < 4; GFX++)
15451544   {
1546      if (state->m_tilemap[GFX])
1545      if (m_tilemap[GFX])
15471546      {
1548         state->m_tiledim[GFX] = state->m_vctrl[GFX][1] & 0x2000;
1549         if (state->m_tiledim[GFX] != state->m_old_tiledim[GFX])
1550            state->m_tilemap[GFX]->mark_all_dirty();
1551         state->m_old_tiledim[GFX] = state->m_tiledim[GFX];
1547         m_tiledim[GFX] = m_vctrl[GFX][1] & 0x2000;
1548         if (m_tiledim[GFX] != m_old_tiledim[GFX])
1549            m_tilemap[GFX]->mark_all_dirty();
1550         m_old_tiledim[GFX] = m_tiledim[GFX];
15521551      }
15531552   }
15541553
r17967r17968
15751574#if 1
15761575      /* Show the video registers (cave_videoregs) */
15771576      popmessage("%04X %04X %04X %04X %04X %04X %04X %04X",
1578         state->m_videoregs[0], state->m_videoregs[1], state->m_videoregs[2], state->m_videoregs[3],
1579         state->m_videoregs[4], state->m_videoregs[5], state->m_videoregs[6], state->m_videoregs[7] );
1577         m_videoregs[0], m_videoregs[1], m_videoregs[2], m_videoregs[3],
1578         m_videoregs[4], m_videoregs[5], m_videoregs[6], m_videoregs[7] );
15801579#endif
15811580      /* Show the scroll / flags registers of the selected layer */
1582      if ((state->m_tilemap[0]) && (msk & 0x000f))   popmessage("x:%04X y:%04X f:%04X", state->m_vctrl[0][0],state->m_vctrl[0][1],state->m_vctrl[0][2]);
1583      if ((state->m_tilemap[1]) && (msk & 0x00f0))   popmessage("x:%04X y:%04X f:%04X", state->m_vctrl[1][0],state->m_vctrl[1][1],state->m_vctrl[1][2]);
1584      if ((state->m_tilemap[2]) && (msk & 0x0f00))   popmessage("x:%04X y:%04X f:%04X", state->m_vctrl[2][0],state->m_vctrl[2][1],state->m_vctrl[2][2]);
1585      if ((state->m_tilemap[3]) && (msk & 0xf000))   popmessage("x:%04X y:%04X f:%04X", state->m_vctrl[3][0],state->m_vctrl[3][1],state->m_vctrl[3][2]);
1581      if ((m_tilemap[0]) && (msk & 0x000f))   popmessage("x:%04X y:%04X f:%04X", m_vctrl[0][0],m_vctrl[0][1],m_vctrl[0][2]);
1582      if ((m_tilemap[1]) && (msk & 0x00f0))   popmessage("x:%04X y:%04X f:%04X", m_vctrl[1][0],m_vctrl[1][1],m_vctrl[1][2]);
1583      if ((m_tilemap[2]) && (msk & 0x0f00))   popmessage("x:%04X y:%04X f:%04X", m_vctrl[2][0],m_vctrl[2][1],m_vctrl[2][2]);
1584      if ((m_tilemap[3]) && (msk & 0xf000))   popmessage("x:%04X y:%04X f:%04X", m_vctrl[3][0],m_vctrl[3][1],m_vctrl[3][2]);
15861585   }
15871586
15881587   /* Show the row / "column" scroll enable flags, when they change state */
1589   state->m_rasflag = 0;
1588   m_rasflag = 0;
15901589   for (GFX = 0; GFX < 4; GFX++)
15911590   {
1592      if (state->m_tilemap[GFX])
1591      if (m_tilemap[GFX])
15931592      {
1594         state->m_rasflag |= (state->m_vctrl[GFX][0] & 0x4000) ? 0x0001 << (4*GFX) : 0;
1595         state->m_rasflag |= (state->m_vctrl[GFX][1] & 0x4000) ? 0x0002 << (4*GFX) : 0;
1593         m_rasflag |= (m_vctrl[GFX][0] & 0x4000) ? 0x0001 << (4*GFX) : 0;
1594         m_rasflag |= (m_vctrl[GFX][1] & 0x4000) ? 0x0002 << (4*GFX) : 0;
15961595      }
15971596   }
15981597
1599   if (state->m_rasflag != state->m_old_rasflag)
1598   if (m_rasflag != m_old_rasflag)
16001599   {
16011600      popmessage("Line Effect: 0:%c%c 1:%c%c 2:%c%c 3:%c%c",
1602         (state->m_rasflag & 0x0001) ? 'x' : ' ', (state->m_rasflag & 0x0002) ? 'y' : ' ',
1603         (state->m_rasflag & 0x0010) ? 'x' : ' ', (state->m_rasflag & 0x0020) ? 'y' : ' ',
1604         (state->m_rasflag & 0x0100) ? 'x' : ' ', (state->m_rasflag & 0x0200) ? 'y' : ' ',
1605         (state->m_rasflag & 0x1000) ? 'x' : ' ', (state->m_rasflag & 0x2000) ? 'y' : ' ' );
1606      state->m_old_rasflag = state->m_rasflag;
1601         (m_rasflag & 0x0001) ? 'x' : ' ', (m_rasflag & 0x0002) ? 'y' : ' ',
1602         (m_rasflag & 0x0010) ? 'x' : ' ', (m_rasflag & 0x0020) ? 'y' : ' ',
1603         (m_rasflag & 0x0100) ? 'x' : ' ', (m_rasflag & 0x0200) ? 'y' : ' ',
1604         (m_rasflag & 0x1000) ? 'x' : ' ', (m_rasflag & 0x2000) ? 'y' : ' ' );
1605      m_old_rasflag = m_rasflag;
16071606   }
16081607}
16091608#endif
16101609
16111610   cave_sprite_check(screen, cliprect);
16121611
1613   bitmap.fill(state->m_background_color, cliprect);
1612   bitmap.fill(m_background_color, cliprect);
16141613
16151614   /*
16161615        Tiles and sprites are ordered by priority (0 back, 3 front) with
r17967r17968
16261625    */
16271626   for (pri = 0; pri <= 3; pri++)   // tile / sprite priority
16281627   {
1629      if (layers_ctrl & (1 << (pri + 16)))   (*state->m_sprite_draw)(screen.machine(), pri);
1628      if (layers_ctrl & (1 << (pri + 16)))   (*m_sprite_draw)(screen.machine(), pri);
16301629
16311630      for (pri2 = 0; pri2 <= 3; pri2++)   // priority of the whole layer
16321631      {
trunk/src/mame/video/brkthru.c
r17967r17968
245245   }
246246}
247247
248SCREEN_UPDATE_IND16( brkthru )
248UINT32 brkthru_state::screen_update_brkthru(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
249249{
250   brkthru_state *state = screen.machine().driver_data<brkthru_state>();
251250
252   state->m_bg_tilemap->set_scrollx(0, state->m_bgscroll);
253   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
251   m_bg_tilemap->set_scrollx(0, m_bgscroll);
252   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
254253
255254   /* low priority sprites */
256255   draw_sprites(screen.machine(), bitmap, cliprect, 0x01);
257256
258257   /* draw background over low priority sprites */
259   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
258   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
260259
261260   /* high priority sprites */
262261   draw_sprites(screen.machine(), bitmap, cliprect, 0x09);
263262
264263   /* fg layer */
265   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
264   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
266265
267/*  show_register(bitmap, 8, 8, (UINT32)state->m_flipscreen); */
266/*  show_register(bitmap, 8, 8, (UINT32)m_flipscreen); */
268267
269268   return 0;
270269}
trunk/src/mame/video/williams.c
r17967r17968
168168 *
169169 *************************************/
170170
171SCREEN_UPDATE_RGB32( williams )
171UINT32 williams_state::screen_update_williams(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
172172{
173   williams_state *state = screen.machine().driver_data<williams_state>();
174173   rgb_t pens[16];
175174   int x, y;
176175
177176   /* precompute the palette */
178177   for (x = 0; x < 16; x++)
179      pens[x] = state->m_palette_lookup[state->m_generic_paletteram_8[x]];
178      pens[x] = m_palette_lookup[m_generic_paletteram_8[x]];
180179
181180   /* loop over rows */
182181   for (y = cliprect.min_y; y <= cliprect.max_y; y++)
183182   {
184      UINT8 *source = &state->m_videoram[y];
183      UINT8 *source = &m_videoram[y];
185184      UINT32 *dest = &bitmap.pix32(y);
186185
187186      /* loop over columns */
r17967r17968
196195}
197196
198197
199SCREEN_UPDATE_RGB32( blaster )
198UINT32 williams_state::screen_update_blaster(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
200199{
201   williams_state *state = screen.machine().driver_data<williams_state>();
202200   rgb_t pens[16];
203201   int x, y;
204202
205203   /* precompute the palette */
206204   for (x = 0; x < 16; x++)
207      pens[x] = state->m_palette_lookup[state->m_generic_paletteram_8[x]];
205      pens[x] = m_palette_lookup[m_generic_paletteram_8[x]];
208206
209207   /* if we're blitting from the top, start with a 0 for color 0 */
210   if (cliprect.min_y == screen.visible_area().min_y || !(state->m_blaster_video_control & 1))
211      state->m_blaster_color0 = state->m_palette_lookup[state->m_blaster_palette_0[0] ^ 0xff];
208   if (cliprect.min_y == screen.visible_area().min_y || !(m_blaster_video_control & 1))
209      m_blaster_color0 = m_palette_lookup[m_blaster_palette_0[0] ^ 0xff];
212210
213211   /* loop over rows */
214212   for (y = cliprect.min_y; y <= cliprect.max_y; y++)
215213   {
216      int erase_behind = state->m_blaster_video_control & state->m_blaster_scanline_control[y] & 2;
217      UINT8 *source = &state->m_videoram[y];
214      int erase_behind = m_blaster_video_control & m_blaster_scanline_control[y] & 2;
215      UINT8 *source = &m_videoram[y];
218216      UINT32 *dest = &bitmap.pix32(y);
219217
220218      /* latch a new color0 pen? */
221      if (state->m_blaster_video_control & state->m_blaster_scanline_control[y] & 1)
222         state->m_blaster_color0 = state->m_palette_lookup[state->m_blaster_palette_0[y] ^ 0xff];
219      if (m_blaster_video_control & m_blaster_scanline_control[y] & 1)
220         m_blaster_color0 = m_palette_lookup[m_blaster_palette_0[y] ^ 0xff];
223221
224222      /* loop over columns */
225223      for (x = cliprect.min_x & ~1; x <= cliprect.max_x; x += 2)
r17967r17968
231229            source[(x/2) * 256] = 0;
232230
233231         /* now draw */
234         dest[x+0] = (pix & 0xf0) ? pens[pix >> 4] : state->m_blaster_color0 | pens[0];
235         dest[x+1] = (pix & 0x0f) ? pens[pix & 0x0f] : state->m_blaster_color0 | pens[0];
232         dest[x+0] = (pix & 0xf0) ? pens[pix >> 4] : m_blaster_color0 | pens[0];
233         dest[x+1] = (pix & 0x0f) ? pens[pix & 0x0f] : m_blaster_color0 | pens[0];
236234      }
237235   }
238236   return 0;
239237}
240238
241239
242SCREEN_UPDATE_RGB32( williams2 )
240UINT32 williams_state::screen_update_williams2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
243241{
244   williams_state *state = screen.machine().driver_data<williams_state>();
245242   rgb_t pens[16];
246243   int x, y;
247244
248245   /* draw the background */
249   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
246   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
250247
251248   /* fetch the relevant pens */
252249   for (x = 1; x < 16; x++)
253      pens[x] = palette_get_color(screen.machine(), state->m_williams2_fg_color * 16 + x);
250      pens[x] = palette_get_color(screen.machine(), m_williams2_fg_color * 16 + x);
254251
255252   /* loop over rows */
256253   for (y = cliprect.min_y; y <= cliprect.max_y; y++)
257254   {
258      UINT8 *source = &state->m_videoram[y];
255      UINT8 *source = &m_videoram[y];
259256      UINT32 *dest = &bitmap.pix32(y);
260257
261258      /* loop over columns */
trunk/src/mame/video/fuukifg3.c
r17967r17968
305305   }
306306}
307307
308SCREEN_UPDATE_IND16( fuuki32 )
308UINT32 fuuki32_state::screen_update_fuuki32(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
309309{
310   fuuki32_state *state = screen.machine().driver_data<fuuki32_state>();
311310   UINT16 layer0_scrollx, layer0_scrolly;
312311   UINT16 layer1_scrollx, layer1_scrolly;
313312   UINT16 layer2_scrollx, layer2_scrolly;
r17967r17968
325324      { 2, 0, 1 }, // Title etc. - 0>1 (0,1,2 or 0,2,1 or 2,0,1)
326325      { 2, 1, 0 }}; // Char Select, prison stage 1>0 (leaves 1,2,0 or 2,1,0)
327326
328   int tm_front  = pri_table[(state->m_priority[0] >> 16) & 0x0f][0];
329   int tm_middle = pri_table[(state->m_priority[0] >> 16) & 0x0f][1];
330   int tm_back   = pri_table[(state->m_priority[0] >> 16) & 0x0f][2];
327   int tm_front  = pri_table[(m_priority[0] >> 16) & 0x0f][0];
328   int tm_middle = pri_table[(m_priority[0] >> 16) & 0x0f][1];
329   int tm_back   = pri_table[(m_priority[0] >> 16) & 0x0f][2];
331330
332   state->flip_screen_set((state->m_vregs[0x1e / 4] & 0x0000ffff) & 1);
331   flip_screen_set((m_vregs[0x1e / 4] & 0x0000ffff) & 1);
333332
334333   /* Layers scrolling */
335334
336   scrolly_offs = ((state->m_vregs[0xc / 4] & 0xffff0000) >> 16) - (state->flip_screen() ? 0x103 : 0x1f3);
337   scrollx_offs =  (state->m_vregs[0xc / 4] & 0x0000ffff) - (state->flip_screen() ? 0x2c7 : 0x3f6);
335   scrolly_offs = ((m_vregs[0xc / 4] & 0xffff0000) >> 16) - (flip_screen() ? 0x103 : 0x1f3);
336   scrollx_offs =  (m_vregs[0xc / 4] & 0x0000ffff) - (flip_screen() ? 0x2c7 : 0x3f6);
338337
339   layer0_scrolly = ((state->m_vregs[0x0 / 4] & 0xffff0000) >> 16) + scrolly_offs;
340   layer0_scrollx = ((state->m_vregs[0x0 / 4] & 0x0000ffff)) + scrollx_offs;
341   layer1_scrolly = ((state->m_vregs[0x4 / 4] & 0xffff0000) >> 16) + scrolly_offs;
342   layer1_scrollx = ((state->m_vregs[0x4 / 4] & 0x0000ffff)) + scrollx_offs;
338   layer0_scrolly = ((m_vregs[0x0 / 4] & 0xffff0000) >> 16) + scrolly_offs;
339   layer0_scrollx = ((m_vregs[0x0 / 4] & 0x0000ffff)) + scrollx_offs;
340   layer1_scrolly = ((m_vregs[0x4 / 4] & 0xffff0000) >> 16) + scrolly_offs;
341   layer1_scrollx = ((m_vregs[0x4 / 4] & 0x0000ffff)) + scrollx_offs;
343342
344   layer2_scrolly = ((state->m_vregs[0x8 / 4] & 0xffff0000) >> 16);
345   layer2_scrollx = ((state->m_vregs[0x8 / 4] & 0x0000ffff));
343   layer2_scrolly = ((m_vregs[0x8 / 4] & 0xffff0000) >> 16);
344   layer2_scrollx = ((m_vregs[0x8 / 4] & 0x0000ffff));
346345
347   state->m_tilemap[0]->set_scrollx(0, layer0_scrollx);
348   state->m_tilemap[0]->set_scrolly(0, layer0_scrolly);
349   state->m_tilemap[1]->set_scrollx(0, layer1_scrollx);
350   state->m_tilemap[1]->set_scrolly(0, layer1_scrolly);
346   m_tilemap[0]->set_scrollx(0, layer0_scrollx);
347   m_tilemap[0]->set_scrolly(0, layer0_scrolly);
348   m_tilemap[1]->set_scrollx(0, layer1_scrollx);
349   m_tilemap[1]->set_scrolly(0, layer1_scrolly);
351350
352   state->m_tilemap[2]->set_scrollx(0, layer2_scrollx);
353   state->m_tilemap[2]->set_scrolly(0, layer2_scrolly);
354   state->m_tilemap[3]->set_scrollx(0, layer2_scrollx);
355   state->m_tilemap[3]->set_scrolly(0, layer2_scrolly);
351   m_tilemap[2]->set_scrollx(0, layer2_scrollx);
352   m_tilemap[2]->set_scrolly(0, layer2_scrolly);
353   m_tilemap[3]->set_scrollx(0, layer2_scrollx);
354   m_tilemap[3]->set_scrolly(0, layer2_scrolly);
356355
357356   /* The bg colour is the last pen i.e. 0x1fff */
358357   bitmap.fill((0x800 * 4) - 1, cliprect);
r17967r17968
366365   return 0;
367366}
368367
369SCREEN_VBLANK( fuuki32 )
368void fuuki32_state::screen_eof_fuuki32(screen_device &screen, bool state)
370369{
371370   // rising edge
372   if (vblank_on)
371   if (state)
373372   {
374      fuuki32_state *state = screen.machine().driver_data<fuuki32_state>();
375373
376374      /* Buffer sprites and tilebank by 2 frames */
377      state->m_spr_buffered_tilebank[1] = state->m_spr_buffered_tilebank[0];
378      state->m_spr_buffered_tilebank[0] = state->m_tilebank[0];
379      memcpy(state->m_buf_spriteram2, state->m_buf_spriteram, state->m_spriteram.bytes());
380      memcpy(state->m_buf_spriteram, state->m_spriteram, state->m_spriteram.bytes());
375      m_spr_buffered_tilebank[1] = m_spr_buffered_tilebank[0];
376      m_spr_buffered_tilebank[0] = m_tilebank[0];
377      memcpy(m_buf_spriteram2, m_buf_spriteram, m_spriteram.bytes());
378      memcpy(m_buf_spriteram, m_spriteram, m_spriteram.bytes());
381379   }
382380}
trunk/src/mame/video/dec8.c
r17967r17968
263263
264264/******************************************************************************/
265265
266SCREEN_UPDATE_IND16( cobracom )
266UINT32 dec8_state::screen_update_cobracom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
267267{
268   dec8_state *state = screen.machine().driver_data<dec8_state>();
269268
270   state->flip_screen_set(state->m_bg_control[0] >> 7);
269   flip_screen_set(m_bg_control[0] >> 7);
271270
272271   screen.machine().device<deco_bac06_device>("tilegen1")->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
273   screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram16, 0x04, 0x00, 0x03);
272   screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram16, 0x04, 0x00, 0x03);
274273   screen.machine().device<deco_bac06_device>("tilegen2")->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
275   screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram16, 0x04, 0x04, 0x03);
276   state->m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
274   screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram16, 0x04, 0x04, 0x03);
275   m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
277276   return 0;
278277}
279278
r17967r17968
307306
308307/******************************************************************************/
309308
310SCREEN_UPDATE_IND16( ghostb )
309UINT32 dec8_state::screen_update_ghostb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
311310{
312   dec8_state *state = screen.machine().driver_data<dec8_state>();
313311   screen.machine().device<deco_bac06_device>("tilegen1")->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
314   screen.machine().device<deco_karnovsprites_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram16, 0x400, 0);
315   state->m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
312   screen.machine().device<deco_karnovsprites_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram16, 0x400, 0);
313   m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
316314   return 0;
317315}
318316
r17967r17968
340338
341339/******************************************************************************/
342340
343SCREEN_UPDATE_IND16( oscar )
341UINT32 dec8_state::screen_update_oscar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
344342{
345   dec8_state *state = screen.machine().driver_data<dec8_state>();
346   state->flip_screen_set(state->m_bg_control[1] >> 7);
343   flip_screen_set(m_bg_control[1] >> 7);
347344
348345   // we mimic the priority scheme in dec0.c, this was originally a bit different, so this could be wrong
349346   screen.machine().device<deco_bac06_device>("tilegen1")->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
350   screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram16, 0x00, 0x00, 0x0f);
347   screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram16, 0x00, 0x00, 0x0f);
351348   screen.machine().device<deco_bac06_device>("tilegen1")->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x08,0x08,0x08,0x08);
352   state->m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
349   m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
353350   return 0;
354351}
355352
r17967r17968
379376
380377/******************************************************************************/
381378
382SCREEN_UPDATE_IND16( lastmisn )
379UINT32 dec8_state::screen_update_lastmisn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
383380{
384   dec8_state *state = screen.machine().driver_data<dec8_state>();
385   state->m_bg_tilemap->set_scrollx(0, ((state->m_scroll2[0] << 8)+ state->m_scroll2[1]));
386   state->m_bg_tilemap->set_scrolly(0, ((state->m_scroll2[2] << 8)+ state->m_scroll2[3]));
381   m_bg_tilemap->set_scrollx(0, ((m_scroll2[0] << 8)+ m_scroll2[1]));
382   m_bg_tilemap->set_scrolly(0, ((m_scroll2[2] << 8)+ m_scroll2[3]));
387383
388   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
389   screen.machine().device<deco_karnovsprites_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram16, 0x400, 0);
390   state->m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
384   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
385   screen.machine().device<deco_karnovsprites_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram16, 0x400, 0);
386   m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
391387   return 0;
392388}
393389
394SCREEN_UPDATE_IND16( shackled )
390UINT32 dec8_state::screen_update_shackled(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
395391{
396   dec8_state *state = screen.machine().driver_data<dec8_state>();
397   state->m_bg_tilemap->set_scrollx(0, ((state->m_scroll2[0] << 8) + state->m_scroll2[1]));
398   state->m_bg_tilemap->set_scrolly(0, ((state->m_scroll2[2] << 8) + state->m_scroll2[3]));
392   m_bg_tilemap->set_scrollx(0, ((m_scroll2[0] << 8) + m_scroll2[1]));
393   m_bg_tilemap->set_scrolly(0, ((m_scroll2[2] << 8) + m_scroll2[3]));
399394
400   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 0);
401   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 0);
402   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 0);
403   screen.machine().device<deco_karnovsprites_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram16, 0x400, 0);
404   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 0);
405   state->m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
395   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 0);
396   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 0);
397   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 0);
398   screen.machine().device<deco_karnovsprites_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram16, 0x400, 0);
399   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 0);
400   m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
406401   return 0;
407402}
408403
r17967r17968
464459
465460/******************************************************************************/
466461
467SCREEN_UPDATE_IND16( srdarwin )
462UINT32 dec8_state::screen_update_srdarwin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
468463{
469   dec8_state *state = screen.machine().driver_data<dec8_state>();
470   state->m_bg_tilemap->set_scrollx(0, (state->m_scroll2[0] << 8) + state->m_scroll2[1]);
464   m_bg_tilemap->set_scrollx(0, (m_scroll2[0] << 8) + m_scroll2[1]);
471465
472   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
466   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
473467   srdarwin_draw_sprites(screen.machine(), bitmap, cliprect, 0); //* (srdarwin37b5gre)
474   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
468   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
475469   srdarwin_draw_sprites(screen.machine(), bitmap, cliprect, 1);
476   state->m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
470   m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
477471   return 0;
478472}
479473
r17967r17968
526520
527521/******************************************************************************/
528522
529SCREEN_UPDATE_IND16( gondo )
523UINT32 dec8_state::screen_update_gondo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
530524{
531   dec8_state *state = screen.machine().driver_data<dec8_state>();
532   state->m_bg_tilemap->set_scrollx(0, ((state->m_scroll2[0] << 8) + state->m_scroll2[1]));
533   state->m_bg_tilemap->set_scrolly(0, ((state->m_scroll2[2] << 8) + state->m_scroll2[3]));
525   m_bg_tilemap->set_scrollx(0, ((m_scroll2[0] << 8) + m_scroll2[1]));
526   m_bg_tilemap->set_scrolly(0, ((m_scroll2[2] << 8) + m_scroll2[3]));
534527
535   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
536   screen.machine().device<deco_karnovsprites_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram16, 0x400, 2);
537   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
538   screen.machine().device<deco_karnovsprites_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram16, 0x400, 1);
539   state->m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
528   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
529   screen.machine().device<deco_karnovsprites_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram16, 0x400, 2);
530   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
531   screen.machine().device<deco_karnovsprites_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram16, 0x400, 1);
532   m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
540533   return 0;
541534}
542535
543SCREEN_UPDATE_IND16( garyoret )
536UINT32 dec8_state::screen_update_garyoret(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
544537{
545   dec8_state *state = screen.machine().driver_data<dec8_state>();
546   state->m_bg_tilemap->set_scrollx(0, ((state->m_scroll2[0] << 8) + state->m_scroll2[1]));
547   state->m_bg_tilemap->set_scrolly(0, ((state->m_scroll2[2] << 8) + state->m_scroll2[3]));
538   m_bg_tilemap->set_scrollx(0, ((m_scroll2[0] << 8) + m_scroll2[1]));
539   m_bg_tilemap->set_scrolly(0, ((m_scroll2[2] << 8) + m_scroll2[3]));
548540
549   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
550   screen.machine().device<deco_karnovsprites_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram16, 0x400, 0);
551   state->m_bg_tilemap->draw(bitmap, cliprect, 1, 0);
552   state->m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
541   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
542   screen.machine().device<deco_karnovsprites_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram16, 0x400, 0);
543   m_bg_tilemap->draw(bitmap, cliprect, 1, 0);
544   m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
553545   return 0;
554546}
555547
trunk/src/mame/video/tbowl.c
r17967r17968
199199}
200200
201201
202SCREEN_UPDATE_IND16( tbowl_left )
202UINT32 tbowl_state::screen_update_tbowl_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
203203{
204   tbowl_state *state = screen.machine().driver_data<tbowl_state>();
205204
206   state->m_bg_tilemap->set_scrollx(0, state->m_xscroll );
207   state->m_bg_tilemap->set_scrolly(0, state->m_yscroll );
208   state->m_bg2_tilemap->set_scrollx(0, state->m_bg2xscroll );
209   state->m_bg2_tilemap->set_scrolly(0, state->m_bg2yscroll );
210   state->m_tx_tilemap->set_scrollx(0, 0 );
211   state->m_tx_tilemap->set_scrolly(0, 0 );
205   m_bg_tilemap->set_scrollx(0, m_xscroll );
206   m_bg_tilemap->set_scrolly(0, m_yscroll );
207   m_bg2_tilemap->set_scrollx(0, m_bg2xscroll );
208   m_bg2_tilemap->set_scrolly(0, m_bg2yscroll );
209   m_tx_tilemap->set_scrollx(0, 0 );
210   m_tx_tilemap->set_scrolly(0, 0 );
212211
213212   bitmap.fill(0x100, cliprect); /* is there a register controling the colour? looks odd when screen is blank */
214   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
213   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
215214   draw_sprites(screen.machine(), bitmap,cliprect, 0);
216   state->m_bg2_tilemap->draw(bitmap, cliprect, 0,0);
217   state->m_tx_tilemap->draw(bitmap, cliprect, 0,0);
215   m_bg2_tilemap->draw(bitmap, cliprect, 0,0);
216   m_tx_tilemap->draw(bitmap, cliprect, 0,0);
218217
219218   return 0;
220219}
221220
222SCREEN_UPDATE_IND16( tbowl_right )
221UINT32 tbowl_state::screen_update_tbowl_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
223222{
224   tbowl_state *state = screen.machine().driver_data<tbowl_state>();
225223
226   state->m_bg_tilemap->set_scrollx(0, state->m_xscroll+32*8 );
227   state->m_bg_tilemap->set_scrolly(0, state->m_yscroll );
228   state->m_bg2_tilemap->set_scrollx(0, state->m_bg2xscroll+32*8 );
229   state->m_bg2_tilemap->set_scrolly(0, state->m_bg2yscroll );
230   state->m_tx_tilemap->set_scrollx(0, 32*8 );
231   state->m_tx_tilemap->set_scrolly(0, 0 );
224   m_bg_tilemap->set_scrollx(0, m_xscroll+32*8 );
225   m_bg_tilemap->set_scrolly(0, m_yscroll );
226   m_bg2_tilemap->set_scrollx(0, m_bg2xscroll+32*8 );
227   m_bg2_tilemap->set_scrolly(0, m_bg2yscroll );
228   m_tx_tilemap->set_scrollx(0, 32*8 );
229   m_tx_tilemap->set_scrolly(0, 0 );
232230
233231   bitmap.fill(0x100, cliprect); /* is there a register controling the colour? looks odd when screen is blank */
234   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
232   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
235233   draw_sprites(screen.machine(), bitmap,cliprect, 32*8);
236   state->m_bg2_tilemap->draw(bitmap, cliprect, 0,0);
237   state->m_tx_tilemap->draw(bitmap, cliprect, 0,0);
234   m_bg2_tilemap->draw(bitmap, cliprect, 0,0);
235   m_tx_tilemap->draw(bitmap, cliprect, 0,0);
238236
239237   return 0;
240238}
trunk/src/mame/video/battlane.c
r17967r17968
225225   }
226226}
227227
228SCREEN_UPDATE_IND16( battlane )
228UINT32 battlane_state::screen_update_battlane(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
229229{
230   battlane_state *state = screen.machine().driver_data<battlane_state>();
231230
232   state->m_bg_tilemap->mark_all_dirty(); // HACK
231   m_bg_tilemap->mark_all_dirty(); // HACK
233232
234   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
233   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
235234   draw_sprites(screen.machine(), bitmap, cliprect);
236235   draw_fg_bitmap(screen.machine(), bitmap);
237236   return 0;
trunk/src/mame/video/atarigt.c
r17967r17968
503503*/
504504
505505
506SCREEN_UPDATE_RGB32( atarigt )
506UINT32 atarigt_state::screen_update_atarigt(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
507507{
508   atarigt_state *state = screen.machine().driver_data<atarigt_state>();
509   bitmap_ind16 *mo_bitmap = atarirle_get_vram(state->m_rle, 0);
510   bitmap_ind16 *tm_bitmap = atarirle_get_vram(state->m_rle, 1);
508   bitmap_ind16 *mo_bitmap = atarirle_get_vram(m_rle, 0);
509   bitmap_ind16 *tm_bitmap = atarirle_get_vram(m_rle, 1);
511510   UINT16 *cram, *tram;
512511   int color_latch;
513512   UINT32 *mram;
514513   int x, y;
515514
516515   /* draw the playfield */
517   state->m_playfield_tilemap->draw(*state->m_pf_bitmap, cliprect, 0, 0);
516   m_playfield_tilemap->draw(*m_pf_bitmap, cliprect, 0, 0);
518517
519518   /* draw the alpha layer */
520   state->m_alpha_tilemap->draw(*state->m_an_bitmap, cliprect, 0, 0);
519   m_alpha_tilemap->draw(*m_an_bitmap, cliprect, 0, 0);
521520
522521   /* cache pointers */
523   color_latch = state->m_colorram[0x30000/2];
524   cram = (UINT16 *)&state->m_colorram[0x00000/2] + 0x2000 * ((color_latch >> 3) & 1);
525   tram = (UINT16 *)&state->m_colorram[0x20000/2] + 0x1000 * ((color_latch >> 4) & 3);
526   mram = state->m_expanded_mram + 0x2000 * ((color_latch >> 6) & 3);
522   color_latch = m_colorram[0x30000/2];
523   cram = (UINT16 *)&m_colorram[0x00000/2] + 0x2000 * ((color_latch >> 3) & 1);
524   tram = (UINT16 *)&m_colorram[0x20000/2] + 0x1000 * ((color_latch >> 4) & 3);
525   mram = m_expanded_mram + 0x2000 * ((color_latch >> 6) & 3);
527526
528527   /* now do the nasty blend */
529528   for (y = cliprect.min_y; y <= cliprect.max_y; y++)
530529   {
531      UINT16 *an = &state->m_an_bitmap->pix16(y);
532      UINT16 *pf = &state->m_pf_bitmap->pix16(y);
530      UINT16 *an = &m_an_bitmap->pix16(y);
531      UINT16 *pf = &m_pf_bitmap->pix16(y);
533532      UINT16 *mo = &mo_bitmap->pix16(y);
534533      UINT16 *tm = &tm_bitmap->pix16(y);
535534      UINT32 *dst = &bitmap.pix32(y);
536535
537536      /* Primal Rage: no TRAM, slightly different priorities */
538      if (state->m_is_primrage)
537      if (m_is_primrage)
539538      {
540539         for (x = cliprect.min_x; x <= cliprect.max_x; x++)
541540         {
r17967r17968
629628   return 0;
630629}
631630
632SCREEN_VBLANK( atarigt )
631void atarigt_state::screen_eof_atarigt(screen_device &screen, bool state)
633632{
634633   // rising edge
635   if (vblank_on)
634   if (state)
636635   {
637      atarigt_state *state = screen.machine().driver_data<atarigt_state>();
638636
639      atarirle_eof(state->m_rle);
637      atarirle_eof(m_rle);
640638   }
641639}
trunk/src/mame/video/thepit.c
r17967r17968
276276}
277277
278278
279SCREEN_UPDATE_IND16( thepit )
279UINT32 thepit_state::screen_update_thepit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
280280{
281   thepit_state *state = screen.machine().driver_data<thepit_state>();
282281   offs_t offs;
283282
284283   for (offs = 0; offs < 32; offs++)
285284   {
286      int xshift = state->m_flip_screen_x ? 128 : 0;
287      int yshift = state->m_flip_screen_y ? -8 : 0;
285      int xshift = m_flip_screen_x ? 128 : 0;
286      int yshift = m_flip_screen_y ? -8 : 0;
288287
289      state->m_tilemap->set_scrollx(offs, xshift);
290      state->m_solid_tilemap->set_scrollx(offs, xshift);
288      m_tilemap->set_scrollx(offs, xshift);
289      m_solid_tilemap->set_scrollx(offs, xshift);
291290
292      state->m_tilemap->set_scrolly(offs, yshift + state->m_attributesram[offs << 1]);
293      state->m_solid_tilemap->set_scrolly(offs, yshift + state->m_attributesram[offs << 1]);
291      m_tilemap->set_scrolly(offs, yshift + m_attributesram[offs << 1]);
292      m_solid_tilemap->set_scrolly(offs, yshift + m_attributesram[offs << 1]);
294293   }
295294
296295   /* low priority tiles */
297   state->m_solid_tilemap->draw(bitmap, cliprect, 0, 0);
298   state->m_tilemap->draw(bitmap, cliprect, 0, 0);
296   m_solid_tilemap->draw(bitmap, cliprect, 0, 0);
297   m_tilemap->draw(bitmap, cliprect, 0, 0);
299298
300299   /* low priority sprites */
301300   draw_sprites(screen.machine(), bitmap, cliprect, 0);
302301
303302   /* high priority tiles */
304   state->m_solid_tilemap->draw(bitmap, cliprect, 1, 1);
303   m_solid_tilemap->draw(bitmap, cliprect, 1, 1);
305304
306305   /* high priority sprites */
307306   draw_sprites(screen.machine(), bitmap, cliprect, 1);
trunk/src/mame/video/rpunch.c
r17967r17968
263263 *
264264 *************************************/
265265
266SCREEN_UPDATE_IND16( rpunch )
266UINT32 rpunch_state::screen_update_rpunch(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
267267{
268   rpunch_state *state = screen.machine().driver_data<rpunch_state>();
269268   int effbins;
270269
271270   /* this seems like the most plausible explanation */
272   effbins = (state->m_bins > state->m_gins) ? state->m_gins : state->m_bins;
271   effbins = (m_bins > m_gins) ? m_gins : m_bins;
273272
274   state->m_background[0]->draw(bitmap, cliprect, 0,0);
273   m_background[0]->draw(bitmap, cliprect, 0,0);
275274   draw_sprites(screen.machine(), bitmap, cliprect, 0, effbins);
276   state->m_background[1]->draw(bitmap, cliprect, 0,0);
277   draw_sprites(screen.machine(), bitmap, cliprect, effbins, state->m_gins);
278   if (state->m_bitmapram)
275   m_background[1]->draw(bitmap, cliprect, 0,0);
276   draw_sprites(screen.machine(), bitmap, cliprect, effbins, m_gins);
277   if (m_bitmapram)
279278      draw_bitmap(screen.machine(), bitmap, cliprect);
280279   return 0;
281280}
trunk/src/mame/video/cloud9.c
r17967r17968
241241 *
242242 *************************************/
243243
244SCREEN_UPDATE_IND16( cloud9 )
244UINT32 cloud9_state::screen_update_cloud9(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
245245{
246   cloud9_state *state = screen.machine().driver_data<cloud9_state>();
247   UINT8 *spriteaddr = state->m_spriteram;
248   int flip = state->m_video_control[5] ? 0xff : 0x00;   /* PLAYER2 */
246   UINT8 *spriteaddr = m_spriteram;
247   int flip = m_video_control[5] ? 0xff : 0x00;   /* PLAYER2 */
249248   pen_t black = get_black_pen(screen.machine());
250249   int x, y, offs;
251250
252251   /* draw the sprites */
253   state->m_spritebitmap.fill(0x00, cliprect);
252   m_spritebitmap.fill(0x00, cliprect);
254253   for (offs = 0; offs < 0x20; offs++)
255254      if (spriteaddr[offs + 0x00] != 0)
256255      {
r17967r17968
261260         int which = spriteaddr[offs + 0x20];
262261         int color = 0;
263262
264         drawgfx_transpen(state->m_spritebitmap, cliprect, screen.machine().gfx[0], which, color, xflip, yflip, x, y, 0);
263         drawgfx_transpen(m_spritebitmap, cliprect, screen.machine().gfx[0], which, color, xflip, yflip, x, y, 0);
265264         if (x >= 256 - 16)
266            drawgfx_transpen(state->m_spritebitmap, cliprect, screen.machine().gfx[0], which, color, xflip, yflip, x - 256, y, 0);
265            drawgfx_transpen(m_spritebitmap, cliprect, screen.machine().gfx[0], which, color, xflip, yflip, x - 256, y, 0);
267266      }
268267
269268   /* draw the bitmap to the screen, looping over Y */
r17967r17968
272271      UINT16 *dst = &bitmap.pix16(y);
273272
274273      /* if we're in the VBLANK region, just fill with black */
275      if (~state->m_syncprom[y] & 2)
274      if (~m_syncprom[y] & 2)
276275      {
277276         for (x = cliprect.min_x; x <= cliprect.max_x; x++)
278277            dst[x] = black;
r17967r17968
281280      /* non-VBLANK region: merge the sprites and the bitmap */
282281      else
283282      {
284         UINT16 *mosrc = &state->m_spritebitmap.pix16(y);
283         UINT16 *mosrc = &m_spritebitmap.pix16(y);
285284         int effy = y ^ flip;
286285         UINT8 *src[2];
287286
288287         /* two videoram arrays */
289         src[0] = &state->m_videoram[0x4000 | (effy * 64)];
290         src[1] = &state->m_videoram[0x0000 | (effy * 64)];
288         src[0] = &m_videoram[0x4000 | (effy * 64)];
289         src[1] = &m_videoram[0x0000 | (effy * 64)];
291290
292291         /* loop over X */
293292         for (x = cliprect.min_x; x <= cliprect.max_x; x++)
r17967r17968
310309                  pix = mopix | 0x10;
311310
312311               /* the high bit is the bank select */
313               pix |= state->m_video_control[7] << 5;
312               pix |= m_video_control[7] << 5;
314313
315314               /* store the pixel value and also a priority value based on the topmost bit */
316315               dst[x] = pix;
trunk/src/mame/video/changela.c
r17967r17968
721721   state->m_scanline_timer->adjust(machine.primary_screen->time_until_pos(sy), sy);
722722}
723723
724SCREEN_UPDATE_IND16( changela )
724UINT32 changela_state::screen_update_changela(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
725725{
726   changela_state *state = screen.machine().driver_data<changela_state>();
727   copybitmap(bitmap, state->m_river_bitmap, 0, 0, 0, 0, cliprect);
728   copybitmap_trans(bitmap, state->m_obj0_bitmap,  0, 0, 0, 0, cliprect, 0);
729   copybitmap_trans(bitmap, state->m_tree0_bitmap, 0, 0, 0, 0, cliprect, 0);
730   copybitmap_trans(bitmap, state->m_tree1_bitmap, 0, 0, 0, 0, cliprect, 0);
726   copybitmap(bitmap, m_river_bitmap, 0, 0, 0, 0, cliprect);
727   copybitmap_trans(bitmap, m_obj0_bitmap,  0, 0, 0, 0, cliprect, 0);
728   copybitmap_trans(bitmap, m_tree0_bitmap, 0, 0, 0, 0, cliprect, 0);
729   copybitmap_trans(bitmap, m_tree1_bitmap, 0, 0, 0, 0, cliprect, 0);
731730   draw_obj1(screen.machine(), bitmap);
732731
733732   return 0;
trunk/src/mame/video/crimfght.c
r17967r17968
7474
7575***************************************************************************/
7676
77SCREEN_UPDATE_IND16( crimfght )
77UINT32 crimfght_state::screen_update_crimfght(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
7878{
79   crimfght_state *state = screen.machine().driver_data<crimfght_state>();
8079
81   k052109_tilemap_update(state->m_k052109);
80   k052109_tilemap_update(m_k052109);
8281
83   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 0);
84   k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 2, 2);
85   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 2, 0, 0);
86   k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 1, 1);
87   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 0, 0, 0);
88   k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 0, 0);
82   k052109_tilemap_draw(m_k052109, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 0);
83   k051960_sprites_draw(m_k051960, bitmap, cliprect, 2, 2);
84   k052109_tilemap_draw(m_k052109, bitmap, cliprect, 2, 0, 0);
85   k051960_sprites_draw(m_k051960, bitmap, cliprect, 1, 1);
86   k052109_tilemap_draw(m_k052109, bitmap, cliprect, 0, 0, 0);
87   k051960_sprites_draw(m_k051960, bitmap, cliprect, 0, 0);
8988   return 0;
9089}
trunk/src/mame/video/asuka.c
r17967r17968
1818                        SCREEN REFRESH
1919**************************************************************/
2020
21SCREEN_UPDATE_IND16( asuka )
21UINT32 asuka_state::screen_update_asuka(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
2222{
23   asuka_state *state = screen.machine().driver_data<asuka_state>();
2423   UINT8 layer[3];
2524
26   tc0100scn_tilemap_update(state->m_tc0100scn);
25   tc0100scn_tilemap_update(m_tc0100scn);
2726
28   layer[0] = tc0100scn_bottomlayer(state->m_tc0100scn);
27   layer[0] = tc0100scn_bottomlayer(m_tc0100scn);
2928   layer[1] = layer[0] ^ 1;
3029   layer[2] = 2;
3130
r17967r17968
3433   /* Ensure screen blanked even when bottom layer not drawn due to disable bit */
3534   bitmap.fill(0, cliprect);
3635
37   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
38   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[1], 0, 2);
39   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
36   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
37   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[1], 0, 2);
38   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
4039
4140   /* Sprites may be over or under top bg layer */
42   pc090oj_draw_sprites(state->m_pc090oj, bitmap, cliprect, 2);
41   pc090oj_draw_sprites(m_pc090oj, bitmap, cliprect, 2);
4342   return 0;
4443}
4544
4645
47SCREEN_UPDATE_IND16( bonzeadv )
46UINT32 asuka_state::screen_update_bonzeadv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
4847{
49   asuka_state *state = screen.machine().driver_data<asuka_state>();
5048   UINT8 layer[3];
5149
52   tc0100scn_tilemap_update(state->m_tc0100scn);
50   tc0100scn_tilemap_update(m_tc0100scn);
5351
54   layer[0] = tc0100scn_bottomlayer(state->m_tc0100scn);
52   layer[0] = tc0100scn_bottomlayer(m_tc0100scn);
5553   layer[1] = layer[0] ^ 1;
5654   layer[2] = 2;
5755
r17967r17968
6058   /* Ensure screen blanked even when bottom layer not drawn due to disable bit */
6159   bitmap.fill(0, cliprect);
6260
63   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
64   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[1], 0, 2);
65   tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
61   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
62   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[1], 0, 2);
63   tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
6664
6765   /* Sprites are always over both bg layers */
68   pc090oj_draw_sprites(state->m_pc090oj, bitmap, cliprect, 0);
66   pc090oj_draw_sprites(m_pc090oj, bitmap, cliprect, 0);
6967   return 0;
7068}
trunk/src/mame/video/triplhnt.c
r17967r17968
103103}
104104
105105
106SCREEN_UPDATE_IND16( triplhnt )
106UINT32 triplhnt_state::screen_update_triplhnt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
107107{
108   triplhnt_state *state = screen.machine().driver_data<triplhnt_state>();
109108   device_t *discrete = screen.machine().device("discrete");
110109
111   state->m_bg_tilemap->mark_all_dirty();
110   m_bg_tilemap->mark_all_dirty();
112111
113   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
112   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
114113
115114   draw_sprites(screen.machine(), bitmap, cliprect);
116115
117116   address_space &space = screen.machine().driver_data()->generic_space();
118   discrete_sound_w(discrete, space, TRIPLHNT_BEAR_ROAR_DATA, state->m_playfield_ram[0xfa] & 15);
119   discrete_sound_w(discrete, space, TRIPLHNT_SHOT_DATA, state->m_playfield_ram[0xfc] & 15);
117   discrete_sound_w(discrete, space, TRIPLHNT_BEAR_ROAR_DATA, m_playfield_ram[0xfa] & 15);
118   discrete_sound_w(discrete, space, TRIPLHNT_SHOT_DATA, m_playfield_ram[0xfc] & 15);
120119   return 0;
121120}
trunk/src/mame/video/pooyan.c
r17967r17968
189189 *
190190 *************************************/
191191
192SCREEN_UPDATE_IND16( pooyan )
192UINT32 pooyan_state::screen_update_pooyan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
193193{
194   pooyan_state *state = screen.machine().driver_data<pooyan_state>();
195194
196   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
195   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
197196   draw_sprites(screen.machine(), bitmap, cliprect);
198197   return 0;
199198}
trunk/src/mame/video/sidepckt.c
r17967r17968
138138}
139139
140140
141SCREEN_UPDATE_IND16( sidepckt )
141UINT32 sidepckt_state::screen_update_sidepckt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
142142{
143   sidepckt_state *state = screen.machine().driver_data<sidepckt_state>();
144   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1,0);
143   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1,0);
145144   draw_sprites(screen.machine(), bitmap,cliprect);
146   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0,0);
145   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0,0);
147146   return 0;
148147}
trunk/src/mame/video/rollerg.c
r17967r17968
5858
5959***************************************************************************/
6060
61SCREEN_UPDATE_IND16( rollerg )
61UINT32 rollerg_state::screen_update_rollerg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
6262{
63   rollerg_state *state = screen.machine().driver_data<rollerg_state>();
6463   int bg_colorbase = 16;
6564
6665   screen.machine().priority_bitmap.fill(0, cliprect);
6766   bitmap.fill(16 * bg_colorbase, cliprect);
68   k051316_zoom_draw(state->m_k051316, bitmap, cliprect, 0, 1);
69   k053245_sprites_draw(state->m_k053244, bitmap, cliprect);
67   k051316_zoom_draw(m_k051316, bitmap, cliprect, 0, 1);
68   k053245_sprites_draw(m_k053244, bitmap, cliprect);
7069   return 0;
7170}
trunk/src/mame/video/wolfpack.c
r17967r17968
237237}
238238
239239
240SCREEN_UPDATE_IND16( wolfpack )
240UINT32 wolfpack_state::screen_update_wolfpack(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
241241{
242   wolfpack_state *state = screen.machine().driver_data<wolfpack_state>();
243242   int i;
244243   int j;
245244
246245   UINT8 color = 0x48;
247   if (state->m_ship_size & 0x10) color += 0x13;
248   if (state->m_ship_size & 0x20) color += 0x22;
249   if (state->m_ship_size & 0x40) color += 0x3a;
250   if (state->m_ship_size & 0x80) color += 0x48;
246   if (m_ship_size & 0x10) color += 0x13;
247   if (m_ship_size & 0x20) color += 0x22;
248   if (m_ship_size & 0x40) color += 0x3a;
249   if (m_ship_size & 0x80) color += 0x48;
251250
252251   colortable_palette_set_color(screen.machine().colortable, 3, MAKE_RGB(color,color,color));
253252   colortable_palette_set_color(screen.machine().colortable, 7, MAKE_RGB(color < 0xb8 ? color + 0x48 : 0xff,
254253                                                        color < 0xb8 ? color + 0x48 : 0xff,
255254                                                        color < 0xb8 ? color + 0x48 : 0xff));
256255
257   bitmap.fill(state->m_video_invert, cliprect);
256   bitmap.fill(m_video_invert, cliprect);
258257
259258   for (i = 0; i < 8; i++)
260259      for (j = 0; j < 32; j++)
261260      {
262         int code = state->m_alpha_num_ram[32 * i + j];
261         int code = m_alpha_num_ram[32 * i + j];
263262
264263         drawgfx_opaque(bitmap, cliprect,
265264            screen.machine().gfx[0],
266265            code,
267            state->m_video_invert,
266            m_video_invert,
268267            0, 0,
269268            16 * j,
270269            192 + 8 * i);
r17967r17968
278277}
279278
280279
281SCREEN_VBLANK( wolfpack )
280void wolfpack_state::screen_eof_wolfpack(screen_device &screen, bool state)
282281{
283282   // rising edge
284   if (vblank_on)
283   if (state)
285284   {
286      wolfpack_state *state = screen.machine().driver_data<wolfpack_state>();
287285
288286      int x;
289287      int y;
290288
291      state->m_helper.fill(0);
289      m_helper.fill(0);
292290
293      draw_ship(screen.machine(), state->m_helper, state->m_helper.cliprect());
291      draw_ship(screen.machine(), m_helper, m_helper.cliprect());
294292
295      for (y = 128; y < 224 - state->m_torpedo_v; y++)
293      for (y = 128; y < 224 - m_torpedo_v; y++)
296294      {
297         int x1 = 248 - state->m_torpedo_h - 1;
298         int x2 = 248 - state->m_torpedo_h + 1;
295         int x1 = 248 - m_torpedo_h - 1;
296         int x2 = 248 - m_torpedo_h + 1;
299297
300298         for (x = 2 * x1; x < 2 * x2; x++)
301299         {
302            if (x < 0 || x >= state->m_helper.width())
300            if (x < 0 || x >= m_helper.width())
303301               continue;
304            if (y < 0 || y >= state->m_helper.height())
302            if (y < 0 || y >= m_helper.height())
305303               continue;
306304
307            if (state->m_helper.pix16(y, x))
308               state->m_collision = 1;
305            if (m_helper.pix16(y, x))
306               m_collision = 1;
309307         }
310308      }
311309
312      state->m_current_index += 0x300 * 262;
310      m_current_index += 0x300 * 262;
313311   }
314312}
trunk/src/mame/video/pirates.c
r17967r17968
100100   }
101101}
102102
103SCREEN_UPDATE_IND16(pirates)
103UINT32 pirates_state::screen_update_pirates(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
104104{
105   pirates_state *state = screen.machine().driver_data<pirates_state>();
106   state->m_bg_tilemap->set_scrollx(0,state->m_scroll[0]);
107   state->m_fg_tilemap->set_scrollx(0,state->m_scroll[0]);
108   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
109   state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
105   m_bg_tilemap->set_scrollx(0,m_scroll[0]);
106   m_fg_tilemap->set_scrollx(0,m_scroll[0]);
107   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
108   m_fg_tilemap->draw(bitmap, cliprect, 0,0);
110109   draw_sprites(screen.machine(),bitmap,cliprect);
111   state->m_tx_tilemap->draw(bitmap, cliprect, 0,0);
110   m_tx_tilemap->draw(bitmap, cliprect, 0,0);
112111   return 0;
113112}
trunk/src/mame/video/tankbatt.c
r17967r17968
9999   }
100100}
101101
102SCREEN_UPDATE_IND16( tankbatt )
102UINT32 tankbatt_state::screen_update_tankbatt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
103103{
104   tankbatt_state *state = screen.machine().driver_data<tankbatt_state>();
105   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
104   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
106105   draw_bullets(screen.machine(), bitmap, cliprect);
107106   return 0;
108107}
trunk/src/mame/video/exerion.c
r17967r17968
348348 *
349349 *************************************/
350350
351SCREEN_UPDATE_IND16( exerion )
351UINT32 exerion_state::screen_update_exerion(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
352352{
353   exerion_state *state = screen.machine().driver_data<exerion_state>();
354353   int sx, sy, offs, i;
355354
356355   /* draw background */
357356   draw_background(screen.machine(), bitmap, cliprect);
358357
359358   /* draw sprites */
360   for (i = 0; i < state->m_spriteram.bytes(); i += 4)
359   for (i = 0; i < m_spriteram.bytes(); i += 4)
361360   {
362      int flags = state->m_spriteram[i + 0];
363      int y = state->m_spriteram[i + 1] ^ 255;
364      int code = state->m_spriteram[i + 2];
365      int x = state->m_spriteram[i + 3] * 2 + 72;
361      int flags = m_spriteram[i + 0];
362      int y = m_spriteram[i + 1] ^ 255;
363      int code = m_spriteram[i + 2];
364      int x = m_spriteram[i + 3] * 2 + 72;
366365
367366      int xflip = flags & 0x80;
368367      int yflip = flags & 0x40;
r17967r17968
370369      int wide = flags & 0x08;
371370      int code2 = code;
372371
373      int color = ((flags >> 1) & 0x03) | ((code >> 5) & 0x04) | (code & 0x08) | (state->m_sprite_palette * 16);
372      int color = ((flags >> 1) & 0x03) | ((code >> 5) & 0x04) | (code & 0x08) | (m_sprite_palette * 16);
374373      gfx_element *gfx = doubled ? screen.machine().gfx[2] : screen.machine().gfx[1];
375374
376      if (state->m_cocktail_flip)
375      if (m_cocktail_flip)
377376      {
378377         x = 64*8 - gfx->width() - x;
379378         y = 32*8 - gfx->height() - y;
r17967r17968
403402   for (sy = cliprect.min_y/8; sy <= cliprect.max_y/8; sy++)
404403      for (sx = VISIBLE_X_MIN/8; sx < VISIBLE_X_MAX/8; sx++)
405404      {
406         int x = state->m_cocktail_flip ? (63*8 - 8*sx) : 8*sx;
407         int y = state->m_cocktail_flip ? (31*8 - 8*sy) : 8*sy;
405         int x = m_cocktail_flip ? (63*8 - 8*sx) : 8*sx;
406         int y = m_cocktail_flip ? (31*8 - 8*sy) : 8*sy;
408407
409408         offs = sx + sy * 64;
410409         drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0],
411            state->m_videoram[offs] + 256 * state->m_char_bank,
412            ((state->m_videoram[offs] & 0xf0) >> 4) + state->m_char_palette * 16,
413            state->m_cocktail_flip, state->m_cocktail_flip, x, y, 0);
410            m_videoram[offs] + 256 * m_char_bank,
411            ((m_videoram[offs] & 0xf0) >> 4) + m_char_palette * 16,
412            m_cocktail_flip, m_cocktail_flip, x, y, 0);
414413      }
415414
416415   return 0;
trunk/src/mame/video/wrally.c
r17967r17968
173173
174174***************************************************************************/
175175
176SCREEN_UPDATE_IND16( wrally )
176UINT32 wrally_state::screen_update_wrally(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
177177{
178   wrally_state *state = screen.machine().driver_data<wrally_state>();
179178   /* set scroll registers */
180   if (!state->flip_screen()) {
181      state->m_pant[0]->set_scrolly(0, state->m_vregs[0]);
182      state->m_pant[0]->set_scrollx(0, state->m_vregs[1]+4);
183      state->m_pant[1]->set_scrolly(0, state->m_vregs[2]);
184      state->m_pant[1]->set_scrollx(0, state->m_vregs[3]);
179   if (!flip_screen()) {
180      m_pant[0]->set_scrolly(0, m_vregs[0]);
181      m_pant[0]->set_scrollx(0, m_vregs[1]+4);
182      m_pant[1]->set_scrolly(0, m_vregs[2]);
183      m_pant[1]->set_scrollx(0, m_vregs[3]);
185184   } else {
186      state->m_pant[0]->set_scrolly(0, 248 - state->m_vregs[0]);
187      state->m_pant[0]->set_scrollx(0, 1024 - state->m_vregs[1] - 4);
188      state->m_pant[1]->set_scrolly(0, 248 - state->m_vregs[2]);
189      state->m_pant[1]->set_scrollx(0, 1024 - state->m_vregs[3]);
185      m_pant[0]->set_scrolly(0, 248 - m_vregs[0]);
186      m_pant[0]->set_scrollx(0, 1024 - m_vregs[1] - 4);
187      m_pant[1]->set_scrolly(0, 248 - m_vregs[2]);
188      m_pant[1]->set_scrollx(0, 1024 - m_vregs[3]);
190189   }
191190
192191   /* draw tilemaps + sprites */
193   state->m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
194   state->m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(0) | TILEMAP_DRAW_LAYER0,0);
195   state->m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(0) | TILEMAP_DRAW_LAYER1,0);
192   m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
193   m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(0) | TILEMAP_DRAW_LAYER0,0);
194   m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(0) | TILEMAP_DRAW_LAYER1,0);
196195
197   state->m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1),0);
198   state->m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1) | TILEMAP_DRAW_LAYER0,0);
196   m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1),0);
197   m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1) | TILEMAP_DRAW_LAYER0,0);
199198
200199   draw_sprites(screen.machine(),bitmap,cliprect,0);
201200
202   state->m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1) | TILEMAP_DRAW_LAYER1,0);
201   m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1) | TILEMAP_DRAW_LAYER1,0);
203202
204203   draw_sprites(screen.machine(),bitmap,cliprect,1);
205204
trunk/src/mame/video/mosaic.c
r17967r17968
7575
7676
7777
78SCREEN_UPDATE_IND16( mosaic )
78UINT32 mosaic_state::screen_update_mosaic(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
7979{
80   mosaic_state *state = screen.machine().driver_data<mosaic_state>();
8180
82   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
83   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
81   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
82   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
8483   return 0;
8584}
trunk/src/mame/video/subs.c
r17967r17968
3737}
3838
3939
40SCREEN_UPDATE_IND16( subs_left )
40UINT32 subs_state::screen_update_subs_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
4141{
42   subs_state *state = screen.machine().driver_data<subs_state>();
43   UINT8 *videoram = state->m_videoram;
44   UINT8 *spriteram = state->m_spriteram;
42   UINT8 *videoram = m_videoram;
43   UINT8 *spriteram = m_spriteram;
4544   int offs;
4645
4746   device_t *discrete = screen.machine().device("discrete");
r17967r17968
120119   return 0;
121120}
122121
123SCREEN_UPDATE_IND16( subs_right )
122UINT32 subs_state::screen_update_subs_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
124123{
125   subs_state *state = screen.machine().driver_data<subs_state>();
126   UINT8 *videoram = state->m_videoram;
127   UINT8 *spriteram = state->m_spriteram;
124   UINT8 *videoram = m_videoram;
125   UINT8 *spriteram = m_spriteram;
128126   int offs;
129127
130128   /* for every character in the Video RAM, check if it has been modified */
trunk/src/mame/video/crospang.c
r17967r17968
115115   m_fg_layer->set_transparent_pen(0);
116116}
117117
118SCREEN_UPDATE_IND16( crospang )
118UINT32 crospang_state::screen_update_crospang(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
119119{
120   crospang_state *state = screen.machine().driver_data<crospang_state>();
121   state->m_bg_layer->draw(bitmap, cliprect, 0, 0);
122   state->m_fg_layer->draw(bitmap, cliprect, 0, 0);
123   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x400);
120   m_bg_layer->draw(bitmap, cliprect, 0, 0);
121   m_fg_layer->draw(bitmap, cliprect, 0, 0);
122   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
124123   return 0;
125124}
trunk/src/mame/video/darkmist.c
r17967r17968
127127   m_txtilemap->set_transparent_pen(0);
128128}
129129
130SCREEN_UPDATE_IND16( darkmist)
130UINT32 darkmist_state::screen_update_darkmist(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
131131{
132   darkmist_state *state = screen.machine().driver_data<darkmist_state>();
133   UINT8 *spriteram = state->m_spriteram;
132   UINT8 *spriteram = m_spriteram;
134133
135#define DM_GETSCROLL(n) (((state->m_scroll[(n)]<<1)&0xff) + ((state->m_scroll[(n)]&0x80)?1:0) +( ((state->m_scroll[(n)-1]<<4) | (state->m_scroll[(n)-1]<<12) )&0xff00))
134#define DM_GETSCROLL(n) (((m_scroll[(n)]<<1)&0xff) + ((m_scroll[(n)]&0x80)?1:0) +( ((m_scroll[(n)-1]<<4) | (m_scroll[(n)-1]<<12) )&0xff00))
136135
137136   set_pens(screen.machine());
138137
139   state->m_bgtilemap->set_scrollx(0, DM_GETSCROLL(0x2));
140   state->m_bgtilemap->set_scrolly(0, DM_GETSCROLL(0x6));
141   state->m_fgtilemap->set_scrollx(0, DM_GETSCROLL(0xa));
142   state->m_fgtilemap->set_scrolly(0, DM_GETSCROLL(0xe));
138   m_bgtilemap->set_scrollx(0, DM_GETSCROLL(0x2));
139   m_bgtilemap->set_scrolly(0, DM_GETSCROLL(0x6));
140   m_fgtilemap->set_scrollx(0, DM_GETSCROLL(0xa));
141   m_fgtilemap->set_scrolly(0, DM_GETSCROLL(0xe));
143142
144143   bitmap.fill(get_black_pen(screen.machine()), cliprect);
145144
146   if(state->m_hw & DISPLAY_BG)
147      state->m_bgtilemap->draw(bitmap, cliprect, 0,0);
145   if(m_hw & DISPLAY_BG)
146      m_bgtilemap->draw(bitmap, cliprect, 0,0);
148147
149   if(state->m_hw & DISPLAY_FG)
150      state->m_fgtilemap->draw(bitmap, cliprect, 0,0);
148   if(m_hw & DISPLAY_FG)
149      m_fgtilemap->draw(bitmap, cliprect, 0,0);
151150
152   if(state->m_hw & DISPLAY_SPR)
151   if(m_hw & DISPLAY_SPR)
153152   {
154153/*
155154    Sprites
r17967r17968
163162
164163*/
165164      int i,fx,fy,tile,palette;
166      for(i=0;i<state->m_spriteram.bytes();i+=32)
165      for(i=0;i<m_spriteram.bytes();i+=32)
167166      {
168167         fy=spriteram[i+1]&0x40;
169168         fx=spriteram[i+1]&0x80;
r17967r17968
171170         tile=spriteram[i+0];
172171
173172         if(spriteram[i+1]&0x20)
174            tile += (*state->m_spritebank << 8);
173            tile += (*m_spritebank << 8);
175174
176175         palette=((spriteram[i+1])>>1)&0xf;
177176
r17967r17968
190189      }
191190   }
192191
193   if(state->m_hw & DISPLAY_TXT)
192   if(m_hw & DISPLAY_TXT)
194193   {
195      state->m_txtilemap->mark_all_dirty();
196      state->m_txtilemap->draw(bitmap, cliprect, 0,0);
194      m_txtilemap->mark_all_dirty();
195      m_txtilemap->draw(bitmap, cliprect, 0,0);
197196   }
198197
199198
trunk/src/mame/video/ajax.c
r17967r17968
8686
8787***************************************************************************/
8888
89SCREEN_UPDATE_IND16( ajax )
89UINT32 ajax_state::screen_update_ajax(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
9090{
91   ajax_state *state = screen.machine().driver_data<ajax_state>();
9291
93   k052109_tilemap_update(state->m_k052109);
92   k052109_tilemap_update(m_k052109);
9493
9594   screen.machine().priority_bitmap.fill(0, cliprect);
9695
9796   bitmap.fill(get_black_pen(screen.machine()), cliprect);
98   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 2, 0, 1);
99   if (state->m_priority)
97   k052109_tilemap_draw(m_k052109, bitmap, cliprect, 2, 0, 1);
98   if (m_priority)
10099   {
101100      /* basic layer order is B, zoom, A, F */
102      k051316_zoom_draw(state->m_k051316, bitmap, cliprect, 0, 4);
103      k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 1, 0, 2);
101      k051316_zoom_draw(m_k051316, bitmap, cliprect, 0, 4);
102      k052109_tilemap_draw(m_k052109, bitmap, cliprect, 1, 0, 2);
104103   }
105104   else
106105   {
107106      /* basic layer order is B, A, zoom, F */
108      k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 1, 0, 2);
109      k051316_zoom_draw(state->m_k051316, bitmap, cliprect, 0, 4);
107      k052109_tilemap_draw(m_k052109, bitmap, cliprect, 1, 0, 2);
108      k051316_zoom_draw(m_k051316, bitmap, cliprect, 0, 4);
110109   }
111   k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 0, 0, 8);
110   k052109_tilemap_draw(m_k052109, bitmap, cliprect, 0, 0, 8);
112111
113   k051960_sprites_draw(state->m_k051960, bitmap, cliprect, -1, -1);
112   k051960_sprites_draw(m_k051960, bitmap, cliprect, -1, -1);
114113   return 0;
115114}
trunk/src/mame/video/funybubl.c
r17967r17968
7272}
7373
7474
75SCREEN_UPDATE_IND16(funybubl)
75UINT32 funybubl_state::screen_update_funybubl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
7676{
77   funybubl_state *state = screen.machine().driver_data<funybubl_state>();
7877   int x, y, offs;
7978   offs = 0;
8079
r17967r17968
8786      {
8887         int data;
8988
90         data = state->m_banked_vram[offs] | (state->m_banked_vram[offs + 1] << 8);
89         data = m_banked_vram[offs] | (m_banked_vram[offs + 1] << 8);
9190         drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0], data & 0x7fff, (data & 0x8000) ? 2 : 1, 0, 0, x*8, y*8, 0);
9291         offs += 2;
9392      }
r17967r17968
103102      fp = fopen("funnybubsprites", "w+b");
104103      if (fp)
105104      {
106         fwrite(&state->m_banked_vram[0x1000], 0x1000, 1, fp);
105         fwrite(&m_banked_vram[0x1000], 0x1000, 1, fp);
107106         fclose(fp);
108107      }
109108   }
trunk/src/mame/video/shisen.c
r17967r17968
5757       8, 8, 64, 32);
5858}
5959
60SCREEN_UPDATE_IND16( sichuan2 )
60UINT32 shisen_state::screen_update_sichuan2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
6161{
62   shisen_state *state = screen.machine().driver_data<shisen_state>();
6362
6463   // on Irem boards, screen flip is handled in both hardware and software.
6564   // this game doesn't have cocktail mode so if there's software control we don't
6665   // know where it is mapped.
67   state->flip_screen_set(~screen.machine().root_device().ioport("DSW2")->read() & 1);
66   flip_screen_set(~screen.machine().root_device().ioport("DSW2")->read() & 1);
6867
6968
70   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
69   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
7170   return 0;
7271}
trunk/src/mame/video/tutankhm.c
r17967r17968
5757 *
5858 *************************************/
5959
60SCREEN_UPDATE_RGB32( tutankhm )
60UINT32 tutankhm_state::screen_update_tutankhm(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
6161{
62   tutankhm_state *state = screen.machine().driver_data<tutankhm_state>();
63   int xorx = state->m_flip_x ? 255 : 0;
64   int xory = state->m_flip_y ? 255 : 0;
62   int xorx = m_flip_x ? 255 : 0;
63   int xory = m_flip_y ? 255 : 0;
6564   pen_t pens[NUM_PENS];
6665   int x, y;
6766
r17967r17968
7473      for (x = cliprect.min_x; x <= cliprect.max_x; x++)
7574      {
7675         UINT8 effx = x ^ xorx;
77         UINT8 yscroll = (effx < 192) ? *state->m_scroll : 0;
76         UINT8 yscroll = (effx < 192) ? *m_scroll : 0;
7877         UINT8 effy = (y ^ xory) + yscroll;
79         UINT8 vrambyte = state->m_videoram[effy * 128 + effx / 2];
78         UINT8 vrambyte = m_videoram[effy * 128 + effx / 2];
8079         UINT8 shifted = vrambyte >> (4 * (effx % 2));
8180         dst[x] = pens[shifted & 0x0f];
8281      }
trunk/src/mame/video/nmk16.c
r17967r17968
782782
783783***************************************************************************/
784784
785SCREEN_UPDATE_IND16( macross )
785UINT32 nmk16_state::screen_update_macross(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
786786{
787787  return nmk16_bg_spr_tx_update(screen, bitmap, cliprect);
788788}
789789
790SCREEN_UPDATE_IND16( manybloc )
790UINT32 nmk16_state::screen_update_manybloc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
791791{
792792  return nmk16_bg_sprflip_tx_update(screen, bitmap, cliprect);
793793}
794794
795SCREEN_UPDATE_IND16( tharrier )
795UINT32 nmk16_state::screen_update_tharrier(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
796796{
797   nmk16_state *state = screen.machine().driver_data<nmk16_state>();
798797   /* I think the protection device probably copies this to the regs... */
799   UINT16 tharrier_scroll = state->m_mainram[0x9f00/2];
798   UINT16 tharrier_scroll = m_mainram[0x9f00/2];
800799
801   state->m_bg_tilemap0->set_scrollx(0,tharrier_scroll);
800   m_bg_tilemap0->set_scrollx(0,tharrier_scroll);
802801
803802  return nmk16_bg_sprflip_tx_update(screen, bitmap, cliprect);
804803}
805804
806SCREEN_UPDATE_IND16( tdragon2 )
805UINT32 nmk16_state::screen_update_tdragon2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
807806{
808807   static int bittbl[8] = {
809808    4, 6, 5, 7, 3, 2, 1, 0
r17967r17968
812811  return nmk16_complexbg_sprswap_tx_update(screen, bitmap, cliprect, bittbl);
813812}
814813
815SCREEN_UPDATE_IND16( gunnail )
814UINT32 nmk16_state::screen_update_gunnail(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
816815{
817816   static int bittbl[8] = {
818817    7, 6, 5, 4, 3, 2, 1, 0
r17967r17968
821820  return nmk16_complexbg_sprswap_tx_update(screen, bitmap, cliprect, bittbl);
822821}
823822
824SCREEN_UPDATE_IND16( bioship )
823UINT32 nmk16_state::screen_update_bioship(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
825824{
826825  return nmk16_bioshipbg_sprflip_tx_update(screen, bitmap, cliprect);
827826}
828827
829SCREEN_UPDATE_IND16( strahl )
828UINT32 nmk16_state::screen_update_strahl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
830829{
831830  return nmk16_bg_fg_spr_tx_update(screen, bitmap, cliprect);
832831}
833832
834SCREEN_UPDATE_IND16( bjtwin )
833UINT32 nmk16_state::screen_update_bjtwin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
835834{
836835  return nmk16_bg_spr_update(screen, bitmap, cliprect);
837836}
838837
839SCREEN_VBLANK( nmk )
838void nmk16_state::screen_eof_nmk(screen_device &screen, bool state)
840839{
841840   // rising edge
842   if (vblank_on)
841   if (state)
843842   {
844      nmk16_state *state = screen.machine().driver_data<nmk16_state>();
845843      /* sprites are DMA'd from Main RAM to a private buffer automatically
846844           (or at least this is how I interpret the datasheet) */
847845
848846      /* -- I actually see little evidence to support this, sprite lag
849847              in some games should be checked on real boards */
850848
851   //  memcpy(state->m_spriteram_old2,state->m_spriteram_old,0x1000);
852      memcpy(state->m_spriteram_old2,state->m_mainram+0x8000/2,0x1000);
849   //  memcpy(m_spriteram_old2,m_spriteram_old,0x1000);
850      memcpy(m_spriteram_old2,m_mainram+0x8000/2,0x1000);
853851   }
854852}
855853
856SCREEN_VBLANK( strahl )
854void nmk16_state::screen_eof_strahl(screen_device &screen, bool state)
857855{
858856   // rising edge
859   if (vblank_on)
857   if (state)
860858   {
861      nmk16_state *state = screen.machine().driver_data<nmk16_state>();
862859      /* sprites are DMA'd from Main RAM to a private buffer automatically
863860           (or at least this is how I interpret the datasheet) */
864861
r17967r17968
867864
868865      /* strahl sprites are allocated in memory range FF000-FFFFF */
869866
870      memcpy(state->m_spriteram_old2,state->m_mainram+0xF000/2,0x1000);
867      memcpy(m_spriteram_old2,m_mainram+0xF000/2,0x1000);
871868   }
872869}
873870
r17967r17968
993990   nmk16_draw_sprites_flipsupported(machine, bitmap,cliprect,0);
994991}
995992
996SCREEN_UPDATE_IND16( afega )      {   video_update(screen.machine(),bitmap,cliprect, 1, -0x100,+0x000, 0x0001);   return 0; }
997SCREEN_UPDATE_IND16( bubl2000 )   {   video_update(screen.machine(),bitmap,cliprect, 0, -0x100,+0x000, 0x0001);   return 0; }   // no flipscreen support, I really would confirmation from the schematics
998SCREEN_UPDATE_IND16( redhawkb )   {   video_update(screen.machine(),bitmap,cliprect, 0, +0x000,+0x100, 0x0001);   return 0; }
999SCREEN_UPDATE_IND16( redhawki )   {   redhawki_video_update(screen.machine(),bitmap,cliprect); return 0;} // strange scroll regs
993UINT32 nmk16_state::screen_update_afega(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){   video_update(screen.machine(),bitmap,cliprect, 1, -0x100,+0x000, 0x0001);   return 0; }
994UINT32 nmk16_state::screen_update_bubl2000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){   video_update(screen.machine(),bitmap,cliprect, 0, -0x100,+0x000, 0x0001);   return 0; }   // no flipscreen support, I really would confirmation from the schematics
995UINT32 nmk16_state::screen_update_redhawkb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){   video_update(screen.machine(),bitmap,cliprect, 0, +0x000,+0x100, 0x0001);   return 0; }
996UINT32 nmk16_state::screen_update_redhawki(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){   redhawki_video_update(screen.machine(),bitmap,cliprect); return 0;} // strange scroll regs
1000997
1001SCREEN_UPDATE_IND16( firehawk )
998UINT32 nmk16_state::screen_update_firehawk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
1002999{
1003   nmk16_state *state = screen.machine().driver_data<nmk16_state>();
1004   state->m_bg_tilemap0->set_scrolly(0, state->m_afega_scroll_1[1] + 0x100);
1005   state->m_bg_tilemap0->set_scrollx(0, state->m_afega_scroll_1[0]);
1000   m_bg_tilemap0->set_scrolly(0, m_afega_scroll_1[1] + 0x100);
1001   m_bg_tilemap0->set_scrollx(0, m_afega_scroll_1[0]);
10061002
1007   state->m_bg_tilemap0->draw(bitmap, cliprect, 0,0);
1003   m_bg_tilemap0->draw(bitmap, cliprect, 0,0);
10081004
10091005   nmk16_draw_sprites_flipsupported(screen.machine(), bitmap,cliprect,3);
10101006   nmk16_draw_sprites_flipsupported(screen.machine(), bitmap,cliprect,2);
10111007   nmk16_draw_sprites_flipsupported(screen.machine(), bitmap,cliprect,1);
10121008   nmk16_draw_sprites_flipsupported(screen.machine(), bitmap,cliprect,0);
10131009
1014   state->m_tx_tilemap->draw(bitmap, cliprect, 0,0);
1010   m_tx_tilemap->draw(bitmap, cliprect, 0,0);
10151011   return 0;
10161012}
10171013
trunk/src/mame/video/nitedrvr.c
r17967r17968
6969   }
7070}
7171
72SCREEN_UPDATE_IND16( nitedrvr )
72UINT32 nitedrvr_state::screen_update_nitedrvr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
7373{
74   nitedrvr_state *state = screen.machine().driver_data<nitedrvr_state>();
7574
76   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
75   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
7776   draw_roadway(screen.machine(), bitmap);
7877   return 0;
7978}
trunk/src/mame/video/m10.c
r17967r17968
130130
131131***************************************************************************/
132132
133SCREEN_UPDATE_IND16( m10 )
133UINT32 m10_state::screen_update_m10(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
134134{
135   m10_state *state = screen.machine().driver_data<m10_state>();
136135   int offs;
137136   static const int color[4]= { 3, 3, 5, 5 };
138137   static const int xpos[4] = { 4*8, 26*8, 7*8, 6*8};
r17967r17968
141140   bitmap.fill(0, cliprect);
142141
143142   for (i = 0; i < 4; i++)
144      if (state->m_flip)
145         drawgfx_opaque(bitmap, cliprect, state->m_back_gfx, i, color[i], 1, 1, 31 * 8 - xpos[i], 6);
143      if (m_flip)
144         drawgfx_opaque(bitmap, cliprect, m_back_gfx, i, color[i], 1, 1, 31 * 8 - xpos[i], 6);
146145      else
147         drawgfx_opaque(bitmap, cliprect, state->m_back_gfx, i, color[i], 0, 0, xpos[i], 0);
146         drawgfx_opaque(bitmap, cliprect, m_back_gfx, i, color[i], 0, 0, xpos[i], 0);
148147
149   if (state->m_bottomline)
148   if (m_bottomline)
150149   {
151150      int y;
152151
r17967r17968
154153         plot_pixel_m10(screen.machine(), bitmap, 16, y, 1);
155154   }
156155
157   for (offs = state->m_videoram.bytes() - 1; offs >= 0; offs--)
158      state->m_tx_tilemap->mark_tile_dirty(offs);
156   for (offs = m_videoram.bytes() - 1; offs >= 0; offs--)
157      m_tx_tilemap->mark_tile_dirty(offs);
159158
160   state->m_tx_tilemap->set_flip(state->m_flip ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
161   state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
159   m_tx_tilemap->set_flip(m_flip ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
160   m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
162161
163162   return 0;
164163}
r17967r17968
170169
171170***************************************************************************/
172171
173SCREEN_UPDATE_IND16( m15 )
172UINT32 m10_state::screen_update_m15(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
174173{
175   m10_state *state = screen.machine().driver_data<m10_state>();
176174   int offs;
177175
178   for (offs = state->m_videoram.bytes() - 1; offs >= 0; offs--)
179      state->m_tx_tilemap->mark_tile_dirty(offs);
176   for (offs = m_videoram.bytes() - 1; offs >= 0; offs--)
177      m_tx_tilemap->mark_tile_dirty(offs);
180178
181   //state->m_tx_tilemap->mark_all_dirty();
182   state->m_tx_tilemap->set_flip(state->m_flip ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
183   state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
179   //m_tx_tilemap->mark_all_dirty();
180   m_tx_tilemap->set_flip(m_flip ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
181   m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
184182
185183   return 0;
186184}
trunk/src/mame/drivers/bfcobra.c
r17967r17968
299299   DECLARE_DRIVER_INIT(bfcobra);
300300   virtual void machine_reset();
301301   virtual void video_start();
302   UINT32 screen_update_bfcobra(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
302303};
303304
304305
r17967r17968
366367   }
367368}
368369
369static SCREEN_UPDATE_RGB32( bfcobra )
370UINT32 bfcobra_state::screen_update_bfcobra(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
370371{
371   bfcobra_state *state = screen.machine().driver_data<bfcobra_state>();
372372   int x, y;
373373   UINT8  *src;
374374   UINT32 *dest;
r17967r17968
378378
379379   /* Select screen has to be programmed into two registers */
380380   /* No idea what happens if the registers are different */
381   if (state->m_flip_8 & 0x40 && state->m_flip_22 & 0x40)
381   if (m_flip_8 & 0x40 && m_flip_22 & 0x40)
382382      offset = 0x10000;
383383   else
384384      offset = 0;
385385
386   if(state->m_videomode & 0x20)
386   if(m_videomode & 0x20)
387387   {
388      hirescol = state->m_col3bit;
389      lorescol = state->m_col7bit;
388      hirescol = m_col3bit;
389      lorescol = m_col7bit;
390390   }
391   else if(state->m_videomode & 0x40)
391   else if(m_videomode & 0x40)
392392   {
393      hirescol = state->m_col4bit;
394      lorescol = state->m_col6bit;
393      hirescol = m_col4bit;
394      lorescol = m_col6bit;
395395   }
396396   else
397397   {
398      hirescol = state->m_col4bit;
399      lorescol = state->m_col8bit;
398      hirescol = m_col4bit;
399      lorescol = m_col8bit;
400400   }
401401
402402   for (y = cliprect.min_y; y <= cliprect.max_y; ++y)
403403   {
404      UINT16 y_offset = (y + state->m_v_scroll) * 256;
405      src = &state->m_video_ram[offset + y_offset];
404      UINT16 y_offset = (y + m_v_scroll) * 256;
405      src = &m_video_ram[offset + y_offset];
406406      dest = &bitmap.pix32(y);
407407
408408      for (x = cliprect.min_x; x <= cliprect.max_x / 2; ++x)
409409      {
410         UINT8 x_offset = x + state->m_h_scroll;
410         UINT8 x_offset = x + m_h_scroll;
411411         UINT8 pen = *(src + x_offset);
412412
413         if ( ( state->m_videomode & 0x81 ) == 1 || (state->m_videomode & 0x80 && pen & 0x80) )
413         if ( ( m_videomode & 0x81 ) == 1 || (m_videomode & 0x80 && pen & 0x80) )
414414         {
415415            *dest++ = screen.machine().pens[hirescol[pen & 0x0f]];
416416            *dest++ = screen.machine().pens[hirescol[(pen >> 4) & 0x0f]];
r17967r17968
17941794   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
17951795   MCFG_SCREEN_SIZE(512, 256)
17961796   MCFG_SCREEN_VISIBLE_AREA(0, 512 - 1, 0, 256 - 1)
1797   MCFG_SCREEN_UPDATE_STATIC(bfcobra)
1797   MCFG_SCREEN_UPDATE_DRIVER(bfcobra_state, screen_update_bfcobra)
17981798
17991799   MCFG_PALETTE_LENGTH(256)
18001800
trunk/src/mame/drivers/sbugger.c
r17967r17968
254254   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
255255   MCFG_SCREEN_SIZE(64*8, 32*8)
256256   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
257   MCFG_SCREEN_UPDATE_STATIC(sbugger)
257   MCFG_SCREEN_UPDATE_DRIVER(sbugger_state, screen_update_sbugger)
258258
259259   MCFG_PALETTE_LENGTH(512)
260260
trunk/src/mame/drivers/nycaptor.c
r17967r17968
854854   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
855855   MCFG_SCREEN_SIZE(32*8, 32*8)
856856   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
857   MCFG_SCREEN_UPDATE_STATIC(nycaptor)
857   MCFG_SCREEN_UPDATE_DRIVER(nycaptor_state, screen_update_nycaptor)
858858
859859   MCFG_GFXDECODE(nycaptor)
860860   MCFG_PALETTE_LENGTH(512)
r17967r17968
912912   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
913913   MCFG_SCREEN_SIZE(32*8, 32*8)
914914   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
915   MCFG_SCREEN_UPDATE_STATIC(nycaptor)
915   MCFG_SCREEN_UPDATE_DRIVER(nycaptor_state, screen_update_nycaptor)
916916
917917   MCFG_GFXDECODE(nycaptor)
918918   MCFG_PALETTE_LENGTH(512)
r17967r17968
966966   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
967967   MCFG_SCREEN_SIZE(32*8, 32*8)
968968   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
969   MCFG_SCREEN_UPDATE_STATIC(nycaptor)
969   MCFG_SCREEN_UPDATE_DRIVER(nycaptor_state, screen_update_nycaptor)
970970
971971   MCFG_GFXDECODE(nycaptor)
972972   MCFG_PALETTE_LENGTH(512)
trunk/src/mame/drivers/mitchell.c
r17967r17968
11281128   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
11291129   MCFG_SCREEN_SIZE(64*8, 32*8)
11301130   MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
1131   MCFG_SCREEN_UPDATE_STATIC(pang)
1131   MCFG_SCREEN_UPDATE_DRIVER(mitchell_state, screen_update_pang)
11321132
11331133   MCFG_GFXDECODE(mgakuen)
11341134   MCFG_PALETTE_LENGTH(1024)   /* less colors than the others */
r17967r17968
11711171   MCFG_PALETTE_LENGTH(2048)
11721172
11731173   MCFG_VIDEO_START_OVERRIDE(mitchell_state,pang)
1174   MCFG_SCREEN_UPDATE_STATIC(pang)
1174   MCFG_SCREEN_UPDATE_DRIVER(mitchell_state, screen_update_pang)
11751175
11761176   /* sound hardware */
11771177   MCFG_SPEAKER_STANDARD_MONO("mono")
r17967r17968
12711271   MCFG_PALETTE_LENGTH(2048)
12721272
12731273   MCFG_VIDEO_START_OVERRIDE(mitchell_state,pang)
1274   MCFG_SCREEN_UPDATE_STATIC(pang)
1274   MCFG_SCREEN_UPDATE_DRIVER(mitchell_state, screen_update_pang)
12751275
12761276   /* sound hardware */
12771277   MCFG_SPEAKER_STANDARD_MONO("mono")
r17967r17968
13031303   MCFG_PALETTE_LENGTH(2048)
13041304
13051305   MCFG_VIDEO_START_OVERRIDE(mitchell_state,pang)
1306   MCFG_SCREEN_UPDATE_STATIC(pang)
1306   MCFG_SCREEN_UPDATE_DRIVER(mitchell_state, screen_update_pang)
13071307
13081308   /* sound hardware */
13091309   MCFG_SPEAKER_STANDARD_MONO("mono")
r17967r17968
13551355   MCFG_PALETTE_LENGTH(2048)
13561356
13571357   MCFG_VIDEO_START_OVERRIDE(mitchell_state,pang)
1358   MCFG_SCREEN_UPDATE_STATIC(pang)
1358   MCFG_SCREEN_UPDATE_DRIVER(mitchell_state, screen_update_pang)
13591359
13601360   /* sound hardware */
13611361   MCFG_SPEAKER_STANDARD_MONO("mono")
trunk/src/mame/drivers/blktiger.c
r17967r17968
334334   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
335335   MCFG_SCREEN_SIZE(32*8, 32*8)
336336   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
337   MCFG_SCREEN_UPDATE_STATIC(blktiger)
337   MCFG_SCREEN_UPDATE_DRIVER(blktiger_state, screen_update_blktiger)
338338   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
339339
340340   MCFG_GFXDECODE(blktiger)
trunk/src/mame/drivers/dynduke.c
r17967r17968
294294   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
295295   MCFG_SCREEN_SIZE(32*8, 32*8)
296296   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
297   MCFG_SCREEN_UPDATE_STATIC(dynduke)
297   MCFG_SCREEN_UPDATE_DRIVER(dynduke_state, screen_update_dynduke)
298298   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
299299
300300   MCFG_GFXDECODE(dynduke)
trunk/src/mame/drivers/mgolf.c
r17967r17968
3838   virtual void machine_reset();
3939   virtual void video_start();
4040   virtual void palette_init();
41   UINT32 screen_update_mgolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4142};
4243
4344
r17967r17968
6263}
6364
6465
65static SCREEN_UPDATE_IND16( mgolf )
66UINT32 mgolf_state::screen_update_mgolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
6667{
67   mgolf_state *state = screen.machine().driver_data<mgolf_state>();
6868   int i;
6969
7070   /* draw playfield */
71   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
71   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
7272
7373   /* draw sprites */
7474   for (i = 0; i < 2; i++)
7575   {
7676      drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1],
77         state->m_video_ram[0x399 + 4 * i],
77         m_video_ram[0x399 + 4 * i],
7878         i,
7979         0, 0,
80         state->m_video_ram[0x390 + 2 * i] - 7,
81         state->m_video_ram[0x398 + 4 * i] - 16, 0);
80         m_video_ram[0x390 + 2 * i] - 7,
81         m_video_ram[0x398 + 4 * i] - 16, 0);
8282
8383      drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1],
84         state->m_video_ram[0x39b + 4 * i],
84         m_video_ram[0x39b + 4 * i],
8585         i,
8686         0, 0,
87         state->m_video_ram[0x390 + 2 * i] - 15,
88         state->m_video_ram[0x39a + 4 * i] - 16, 0);
87         m_video_ram[0x390 + 2 * i] - 15,
88         m_video_ram[0x39a + 4 * i] - 16, 0);
8989   }
9090   return 0;
9191}
r17967r17968
335335   MCFG_SCREEN_REFRESH_RATE(60)
336336   MCFG_SCREEN_SIZE(256, 262)
337337   MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 223)
338   MCFG_SCREEN_UPDATE_STATIC(mgolf)
338   MCFG_SCREEN_UPDATE_DRIVER(mgolf_state, screen_update_mgolf)
339339
340340   MCFG_GFXDECODE(mgolf)
341341   MCFG_PALETTE_LENGTH(4)
trunk/src/mame/drivers/deco_mlc.c
r17967r17968
391391   MCFG_SCREEN_REFRESH_RATE(58)
392392   MCFG_SCREEN_SIZE(40*8, 32*8)
393393   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
394   MCFG_SCREEN_UPDATE_STATIC(mlc)
395   MCFG_SCREEN_VBLANK_STATIC(mlc)
394   MCFG_SCREEN_UPDATE_DRIVER(deco_mlc_state, screen_update_mlc)
395   MCFG_SCREEN_VBLANK_DRIVER(deco_mlc_state, screen_eof_mlc)
396396
397397   MCFG_GFXDECODE(deco_mlc)
398398   MCFG_PALETTE_LENGTH(2048)
r17967r17968
423423   MCFG_SCREEN_REFRESH_RATE(58)
424424   MCFG_SCREEN_SIZE(40*8, 32*8)
425425   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
426   MCFG_SCREEN_UPDATE_STATIC(mlc)
427   MCFG_SCREEN_VBLANK_STATIC(mlc)
426   MCFG_SCREEN_UPDATE_DRIVER(deco_mlc_state, screen_update_mlc)
427   MCFG_SCREEN_VBLANK_DRIVER(deco_mlc_state, screen_eof_mlc)
428428
429429   MCFG_GFXDECODE(deco_mlc)
430430   MCFG_PALETTE_LENGTH(2048)
trunk/src/mame/drivers/pasha2.c
r17967r17968
109109   virtual void machine_start();
110110   virtual void machine_reset();
111111   virtual void video_start();
112   UINT32 screen_update_pasha2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
112113};
113114
114115
r17967r17968
349350   save_item(NAME(m_bitmap1));
350351}
351352
352static SCREEN_UPDATE_IND16( pasha2 )
353UINT32 pasha2_state::screen_update_pasha2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
353354{
354   pasha2_state *state = screen.machine().driver_data<pasha2_state>();
355355   int x, y, count;
356356   int color;
357357
r17967r17968
364364      {
365365         if (x * 2 < cliprect.max_x)
366366         {
367            color = (state->m_bitmap0[count + (state->m_vbuffer ^ 1) * 0x20000 / 2] & 0xff00) >> 8;
367            color = (m_bitmap0[count + (m_vbuffer ^ 1) * 0x20000 / 2] & 0xff00) >> 8;
368368            bitmap.pix16(y, x * 2 + 0) = color + 0x100;
369369
370            color = state->m_bitmap0[count + (state->m_vbuffer ^ 1) * 0x20000 / 2] & 0xff;
370            color = m_bitmap0[count + (m_vbuffer ^ 1) * 0x20000 / 2] & 0xff;
371371            bitmap.pix16(y, x * 2 + 1) = color + 0x100;
372372         }
373373
r17967r17968
382382      {
383383         if (x * 2 < cliprect.max_x)
384384         {
385            color = state->m_bitmap1[count + (state->m_vbuffer ^ 1) * 0x20000 / 2] & 0xff;
385            color = m_bitmap1[count + (m_vbuffer ^ 1) * 0x20000 / 2] & 0xff;
386386            if (color != 0)
387387               bitmap.pix16(y, x * 2 + 1) = color;
388388
389            color = (state->m_bitmap1[count + (state->m_vbuffer ^ 1) * 0x20000 / 2] & 0xff00) >> 8;
389            color = (m_bitmap1[count + (m_vbuffer ^ 1) * 0x20000 / 2] & 0xff00) >> 8;
390390            if (color != 0)
391391               bitmap.pix16(y, x * 2 + 0) = color;
392392         }
r17967r17968
428428   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
429429   MCFG_SCREEN_SIZE(512, 512)
430430   MCFG_SCREEN_VISIBLE_AREA(0, 383, 0, 239)
431   MCFG_SCREEN_UPDATE_STATIC(pasha2)
431   MCFG_SCREEN_UPDATE_DRIVER(pasha2_state, screen_update_pasha2)
432432
433433   MCFG_PALETTE_LENGTH(0x200)
434434
trunk/src/mame/drivers/skyfox.c
r17967r17968
252252   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)   // we're using PORT_VBLANK
253253   MCFG_SCREEN_SIZE(512, 256)
254254   MCFG_SCREEN_VISIBLE_AREA(0+0x60, 320-1+0x60, 0+16, 256-1-16)   // from $30*2 to $CC*2+8
255   MCFG_SCREEN_UPDATE_STATIC(skyfox)
255   MCFG_SCREEN_UPDATE_DRIVER(skyfox_state, screen_update_skyfox)
256256
257257   MCFG_GFXDECODE(skyfox)
258258   MCFG_PALETTE_LENGTH(256+256)   /* 256 static colors (+256 for the background??) */
trunk/src/mame/drivers/bublbobl.c
r17967r17968
781781   /* video hardware */
782782   MCFG_SCREEN_ADD("screen", RASTER)
783783   MCFG_SCREEN_RAW_PARAMS(MAIN_XTAL/4, 384, 0, 256, 264, 16, 240)
784   MCFG_SCREEN_UPDATE_STATIC(bublbobl)
784   MCFG_SCREEN_UPDATE_DRIVER(bublbobl_state, screen_update_bublbobl)
785785
786786   MCFG_GFXDECODE(bublbobl)
787787   MCFG_PALETTE_LENGTH(256)
r17967r17968
862862   /* video hardware */
863863   MCFG_SCREEN_ADD("screen", RASTER)
864864   MCFG_SCREEN_RAW_PARAMS(MAIN_XTAL/4, 384, 0, 256, 264, 16, 240)
865   MCFG_SCREEN_UPDATE_STATIC(bublbobl)
865   MCFG_SCREEN_UPDATE_DRIVER(bublbobl_state, screen_update_bublbobl)
866866
867867   MCFG_GFXDECODE(bublbobl)
868868   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/fgoal.c
r17967r17968
372372   MCFG_SCREEN_REFRESH_RATE(60)
373373   MCFG_SCREEN_SIZE(256, 263)
374374   MCFG_SCREEN_VISIBLE_AREA(0, 255, 16, 255)
375   MCFG_SCREEN_UPDATE_STATIC(fgoal)
375   MCFG_SCREEN_UPDATE_DRIVER(fgoal_state, screen_update_fgoal)
376376
377377   MCFG_GFXDECODE(fgoal)
378378   MCFG_PALETTE_LENGTH(128 + 16 + 1)
trunk/src/mame/drivers/coinmstr.c
r17967r17968
5555   DECLARE_DRIVER_INIT(coinmstr);
5656   TILE_GET_INFO_MEMBER(get_bg_tile_info);
5757   virtual void video_start();
58   UINT32 screen_update_coinmstr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5859};
5960
6061
r17967r17968
920921   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);
921922}
922923
923static SCREEN_UPDATE_IND16( coinmstr )
924UINT32 coinmstr_state::screen_update_coinmstr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
924925{
925   coinmstr_state *state = screen.machine().driver_data<coinmstr_state>();
926   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
926   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
927927   return 0;
928928}
929929
r17967r17968
10221022   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
10231023   MCFG_SCREEN_SIZE(64*8, 64*8)
10241024   MCFG_SCREEN_VISIBLE_AREA(0*8, 46*8-1, 0*8, 32*8-1)
1025   MCFG_SCREEN_UPDATE_STATIC(coinmstr)
1025   MCFG_SCREEN_UPDATE_DRIVER(coinmstr_state, screen_update_coinmstr)
10261026
10271027   MCFG_GFXDECODE(coinmstr)
10281028   MCFG_PALETTE_LENGTH(46*32*4)
trunk/src/mame/drivers/docastle.c
r17967r17968
620620   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
621621   MCFG_SCREEN_SIZE(32*8, 32*8)
622622   MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 28*8-1)
623   MCFG_SCREEN_UPDATE_STATIC(docastle)
623   MCFG_SCREEN_UPDATE_DRIVER(docastle_state, screen_update_docastle)
624624
625625   MCFG_GFXDECODE(docastle)
626626   MCFG_PALETTE_LENGTH(512)
trunk/src/mame/drivers/expro02.c
r17967r17968
182182   virtual void machine_reset();
183183   virtual void video_start();
184184   virtual void palette_init();
185   UINT32 screen_update_galsnew(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
185186};
186187
187188
r17967r17968
196197      palette_set_color_rgb(machine(),2048 + i,pal5bit(i >> 5),pal5bit(i >> 10),pal5bit(i >> 0));
197198}
198199
199SCREEN_UPDATE_IND16( galsnew )
200UINT32 expro02_state::screen_update_galsnew(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
200201{
201   expro02_state *state = screen.machine().driver_data<expro02_state>();
202202//  kaneko16_fill_bitmap(screen.machine(),bitmap,cliprect);
203203   int y,x;
204204   int count;
r17967r17968
211211
212212      for (x=0;x<256;x++)
213213      {
214         UINT16 dat = (state->m_galsnew_fg_pixram[count] & 0xfffe)>>1;
214         UINT16 dat = (m_galsnew_fg_pixram[count] & 0xfffe)>>1;
215215         dat+=2048;
216216         dest[x] = dat;
217217         count++;
r17967r17968
225225
226226      for (x=0;x<256;x++)
227227      {
228         UINT16 dat = (state->m_galsnew_bg_pixram[count]);
228         UINT16 dat = (m_galsnew_bg_pixram[count]);
229229         //dat &=0x3ff;
230230         if (dat)
231231            dest[x] = dat;
r17967r17968
240240
241241   screen.machine().priority_bitmap.fill(0, cliprect);
242242
243   state->m_view2_0->kaneko16_prepare(bitmap, cliprect);
243   m_view2_0->kaneko16_prepare(bitmap, cliprect);
244244
245245   for ( i = 0; i < 8; i++ )
246246   {
247      state->m_view2_0->render_tilemap_chip(bitmap,cliprect,i);
247      m_view2_0->render_tilemap_chip(bitmap,cliprect,i);
248248   }
249249
250   state->m_kaneko_spr->kaneko16_render_sprites(screen.machine(),bitmap,cliprect, state->m_spriteram, state->m_spriteram.bytes());
250   m_kaneko_spr->kaneko16_render_sprites(screen.machine(),bitmap,cliprect, m_spriteram, m_spriteram.bytes());
251251   return 0;
252252}
253253
r17967r17968
557557   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
558558   MCFG_SCREEN_SIZE(256, 256)
559559   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-32-1)
560   MCFG_SCREEN_UPDATE_STATIC(galsnew)
560   MCFG_SCREEN_UPDATE_DRIVER(expro02_state, screen_update_galsnew)
561561
562562   MCFG_GFXDECODE(1x4bit_1x4bit)
563563   MCFG_PALETTE_LENGTH(2048 + 32768)
trunk/src/mame/drivers/mainsnk.c
r17967r17968
404404   MCFG_SCREEN_REFRESH_RATE(60)
405405   MCFG_SCREEN_SIZE(36*8, 28*8)
406406   MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 28*8-1)
407   MCFG_SCREEN_UPDATE_STATIC(mainsnk)
407   MCFG_SCREEN_UPDATE_DRIVER(mainsnk_state, screen_update_mainsnk)
408408
409409   MCFG_GFXDECODE(mainsnk)
410410   MCFG_PALETTE_LENGTH(0x400)
trunk/src/mame/drivers/rampart.c
r17967r17968
362362   /* note: these parameters are from published specs, not derived */
363363   /* the board uses an SOS-2 chip to generate video signals */
364364   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 456, 0+12, 336+12, 262, 0, 240)
365   MCFG_SCREEN_UPDATE_STATIC(rampart)
365   MCFG_SCREEN_UPDATE_DRIVER(rampart_state, screen_update_rampart)
366366
367367   MCFG_VIDEO_START_OVERRIDE(rampart_state,rampart)
368368
trunk/src/mame/drivers/magicard.c
r17967r17968
217217   DECLARE_DRIVER_INIT(magicard);
218218   virtual void machine_reset();
219219   virtual void video_start();
220   UINT32 screen_update_magicard(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
220221};
221222
222223
r17967r17968
412413
413414}
414415
415static SCREEN_UPDATE_RGB32(magicard)
416UINT32 magicard_state::screen_update_magicard(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
416417{
417418   magicard_state *state = screen.machine().driver_data<magicard_state>();
418419   int x,y;
r17967r17968
433434         {
434435            UINT32 color;
435436
436            color = ((state->m_magicram[count]) & 0x000f)>>0;
437            color = ((m_magicram[count]) & 0x000f)>>0;
437438
438439            if(cliprect.contains((x*4)+3, y))
439440               bitmap.pix32(y, (x*4)+3) = screen.machine().pens[color];
440441
441            color = ((state->m_magicram[count]) & 0x00f0)>>4;
442            color = ((m_magicram[count]) & 0x00f0)>>4;
442443
443444            if(cliprect.contains((x*4)+2, y))
444445               bitmap.pix32(y, (x*4)+2) = screen.machine().pens[color];
445446
446            color = ((state->m_magicram[count]) & 0x0f00)>>8;
447            color = ((m_magicram[count]) & 0x0f00)>>8;
447448
448449            if(cliprect.contains((x*4)+1, y))
449450               bitmap.pix32(y, (x*4)+1) = screen.machine().pens[color];
450451
451            color = ((state->m_magicram[count]) & 0xf000)>>12;
452            color = ((m_magicram[count]) & 0xf000)>>12;
452453
453454            if(cliprect.contains((x*4)+0, y))
454455               bitmap.pix32(y, (x*4)+0) = screen.machine().pens[color];
r17967r17968
465466         {
466467            UINT32 color;
467468
468            color = ((state->m_magicram[count]) & 0x00ff)>>0;
469            color = ((m_magicram[count]) & 0x00ff)>>0;
469470
470471            if(cliprect.contains((x*2)+1, y))
471472               bitmap.pix32(y, (x*2)+1) = screen.machine().pens[color];
472473
473            color = ((state->m_magicram[count]) & 0xff00)>>8;
474            color = ((m_magicram[count]) & 0xff00)>>8;
474475
475476            if(cliprect.contains((x*2)+0, y))
476477               bitmap.pix32(y, (x*2)+0) = screen.machine().pens[color];
r17967r17968
725726   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
726727   MCFG_SCREEN_SIZE(400, 300)
727728   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-1) //dynamic resolution,TODO
728   MCFG_SCREEN_UPDATE_STATIC(magicard)
729   MCFG_SCREEN_UPDATE_DRIVER(magicard_state, screen_update_magicard)
729730
730731   MCFG_PALETTE_LENGTH(0x100)
731732
trunk/src/mame/drivers/yiear.c
r17967r17968
299299   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
300300   MCFG_SCREEN_SIZE(32*8, 32*8)
301301   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
302   MCFG_SCREEN_UPDATE_STATIC(yiear)
302   MCFG_SCREEN_UPDATE_DRIVER(yiear_state, screen_update_yiear)
303303
304304   MCFG_GFXDECODE(yiear)
305305   MCFG_PALETTE_LENGTH(32)
trunk/src/mame/drivers/murogem.c
r17967r17968
120120   required_shared_ptr<UINT8> m_videoram;
121121   DECLARE_WRITE8_MEMBER(outport_w);
122122   virtual void palette_init();
123   UINT32 screen_update_murogem(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
123124};
124125
125126
r17967r17968
202203void murogem_state::palette_init()
203204{}
204205
205static SCREEN_UPDATE_IND16(murogem)
206UINT32 murogem_state::screen_update_murogem(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
206207{
207   murogem_state *state = screen.machine().driver_data<murogem_state>();
208208   int xx,yy,count;
209209   count = 0x000;
210210
r17967r17968
214214   {
215215      for(xx=0;xx<32;xx++)
216216      {
217         int tileno = state->m_videoram[count]&0x3f;
218         int attr = state->m_videoram[count+0x400]&0x0f;
217         int tileno = m_videoram[count]&0x3f;
218         int attr = m_videoram[count+0x400]&0x0f;
219219
220220         drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[0],tileno,attr,0,0,xx*8,yy*8,0);
221221
r17967r17968
255255   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
256256   MCFG_SCREEN_SIZE((39+1)*8, (38+1)*8)
257257   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
258   MCFG_SCREEN_UPDATE_STATIC(murogem)
258   MCFG_SCREEN_UPDATE_DRIVER(murogem_state, screen_update_murogem)
259259
260260   MCFG_GFXDECODE(murogem)
261261   MCFG_PALETTE_LENGTH(0x100)
trunk/src/mame/drivers/snowbros.c
r17967r17968
8282}
8383
8484
85static SCREEN_UPDATE_IND16( snowbros )
85UINT32 snowbros_state::screen_update_snowbros(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
8686{
8787   device_t *pandora = screen.machine().device("pandora");
8888
r17967r17968
9393}
9494
9595
96static SCREEN_VBLANK( snowbros )
96void snowbros_state::screen_eof_snowbros(screen_device &screen, bool state)
9797{
9898   // rising edge
99   if (vblank_on)
99   if (state)
100100   {
101101      device_t *pandora = screen.machine().device("pandora");
102102      pandora_eof(pandora);
r17967r17968
15561556   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
15571557   MCFG_SCREEN_SIZE(32*8, 262)
15581558   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1559   MCFG_SCREEN_UPDATE_STATIC(snowbros)
1560   MCFG_SCREEN_VBLANK_STATIC(snowbros)
1559   MCFG_SCREEN_UPDATE_DRIVER(snowbros_state, screen_update_snowbros)
1560   MCFG_SCREEN_VBLANK_DRIVER(snowbros_state, screen_eof_snowbros)
15611561
15621562   MCFG_GFXDECODE(snowbros)
15631563   MCFG_PALETTE_LENGTH(256)
r17967r17968
15851585   /* video hardware */
15861586   MCFG_GFXDECODE(wb)
15871587   MCFG_SCREEN_MODIFY("screen")
1588   MCFG_SCREEN_UPDATE_STATIC(wintbob)
1588   MCFG_SCREEN_UPDATE_DRIVER(snowbros_state, screen_update_wintbob)
15891589   MCFG_SCREEN_VBLANK_NONE()
15901590MACHINE_CONFIG_END
15911591
r17967r17968
16661666   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
16671667   MCFG_SCREEN_SIZE(32*8, 262)
16681668   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1669   MCFG_SCREEN_UPDATE_STATIC(honeydol)
1669   MCFG_SCREEN_UPDATE_DRIVER(snowbros_state, screen_update_honeydol)
16701670
16711671   MCFG_GFXDECODE(honeydol)
16721672   MCFG_PALETTE_LENGTH(0x800/2)
r17967r17968
17031703   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
17041704   MCFG_SCREEN_SIZE(32*8, 262)
17051705   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1706   MCFG_SCREEN_UPDATE_STATIC(twinadv)
1706   MCFG_SCREEN_UPDATE_DRIVER(snowbros_state, screen_update_twinadv)
17071707
17081708   MCFG_GFXDECODE(twinadv)
17091709   MCFG_PALETTE_LENGTH(0x100)
r17967r17968
17751775   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
17761776   MCFG_SCREEN_SIZE(32*8, 32*8)
17771777   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1778   MCFG_SCREEN_UPDATE_STATIC(snowbro3)
1778   MCFG_SCREEN_UPDATE_DRIVER(snowbros_state, screen_update_snowbro3)
17791779
17801780   MCFG_GFXDECODE(sb3)
17811781   MCFG_PALETTE_LENGTH(512)
trunk/src/mame/drivers/nbmj9195.c
r17967r17968
31833183   MCFG_SCREEN_REFRESH_RATE(60)
31843184   MCFG_SCREEN_SIZE(1024, 512)      /* no way this is correct */
31853185   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 240-1)
3186   MCFG_SCREEN_UPDATE_STATIC(nbmj9195)
3186   MCFG_SCREEN_UPDATE_DRIVER(nbmj9195_state, screen_update_nbmj9195)
31873187
31883188   MCFG_PALETTE_LENGTH(256)
31893189
r17967r17968
32203220
32213221   MCFG_VIDEO_START_OVERRIDE(nbmj9195_state,nbmj9195_nb22090)
32223222   MCFG_SCREEN_MODIFY("screen")
3223   MCFG_SCREEN_UPDATE_STATIC(nbmj9195)
3223   MCFG_SCREEN_UPDATE_DRIVER(nbmj9195_state, screen_update_nbmj9195)
32243224MACHINE_CONFIG_END
32253225
32263226
trunk/src/mame/drivers/sonson.c
r17967r17968
256256   MCFG_SCREEN_REFRESH_RATE(60)
257257   MCFG_SCREEN_SIZE(32*8, 32*8)
258258   MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 1*8, 31*8-1)
259   MCFG_SCREEN_UPDATE_STATIC(sonson)
259   MCFG_SCREEN_UPDATE_DRIVER(sonson_state, screen_update_sonson)
260260
261261   MCFG_GFXDECODE(sonson)
262262   MCFG_PALETTE_LENGTH(64*4+32*8)
trunk/src/mame/drivers/sslam.c
r17967r17968
718718   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
719719   MCFG_SCREEN_SIZE(64*8, 32*8)
720720   MCFG_SCREEN_VISIBLE_AREA(1*8, 39*8-1, 1*8, 31*8-1)
721   MCFG_SCREEN_UPDATE_STATIC(sslam)
721   MCFG_SCREEN_UPDATE_DRIVER(sslam_state, screen_update_sslam)
722722
723723   MCFG_GFXDECODE(sslam)
724724   MCFG_PALETTE_LENGTH(0x800)
r17967r17968
748748   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
749749   MCFG_SCREEN_SIZE(64*8, 32*8)
750750   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
751   MCFG_SCREEN_UPDATE_STATIC(powerbls)
751   MCFG_SCREEN_UPDATE_DRIVER(sslam_state, screen_update_powerbls)
752752
753753   MCFG_GFXDECODE(powerbls)
754754   MCFG_PALETTE_LENGTH(0x200)
trunk/src/mame/drivers/hcastle.c
r17967r17968
224224   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)   /* frames per second verified by comparison with real board */)
225225   MCFG_SCREEN_SIZE(32*8, 32*8)
226226   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
227   MCFG_SCREEN_UPDATE_STATIC(hcastle)
227   MCFG_SCREEN_UPDATE_DRIVER(hcastle_state, screen_update_hcastle)
228228
229229   MCFG_GFXDECODE(hcastle)
230230   MCFG_PALETTE_LENGTH(2*8*16*16)
trunk/src/mame/drivers/copsnrob.c
r17967r17968
276276   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
277277   MCFG_SCREEN_SIZE(32*8, 32*8)
278278   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 26*8-1)
279   MCFG_SCREEN_UPDATE_STATIC(copsnrob)
279   MCFG_SCREEN_UPDATE_DRIVER(copsnrob_state, screen_update_copsnrob)
280280
281281   MCFG_GFXDECODE(copsnrob)
282282   MCFG_PALETTE_LENGTH(2)
trunk/src/mame/drivers/cntsteer.c
r17967r17968
9090   DECLARE_MACHINE_RESET(zerotrgt);
9191   DECLARE_VIDEO_START(zerotrgt);
9292   DECLARE_PALETTE_INIT(zerotrgt);
93   UINT32 screen_update_cntsteer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
94   UINT32 screen_update_zerotrgt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
9395};
9496
9597
r17967r17968
278280   }
279281}
280282
281static SCREEN_UPDATE_IND16( zerotrgt )
283UINT32 cntsteer_state::screen_update_zerotrgt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
282284{
283   cntsteer_state *state = screen.machine().driver_data<cntsteer_state>();
284285
285   if (state->m_disable_roz)
286      bitmap.fill(screen.machine().pens[8 * state->m_bg_color_bank], cliprect);
286   if (m_disable_roz)
287      bitmap.fill(screen.machine().pens[8 * m_bg_color_bank], cliprect);
287288   else
288289   {
289290      int p1, p2, p3, p4;
290291      int rot_val, x, y;
291      rot_val = state->m_rotation_sign ? (-state->m_rotation_x) : (state->m_rotation_x);
292      rot_val = m_rotation_sign ? (-m_rotation_x) : (m_rotation_x);
292293
293//      popmessage("%d %02x %02x", rot_val, state->m_rotation_sign, state->m_rotation_x);
294//      popmessage("%d %02x %02x", rot_val, m_rotation_sign, m_rotation_x);
294295
295296      if (rot_val > 90) { rot_val = 90; }
296297      if (rot_val < -90) { rot_val = -90; }
r17967r17968
312313      p3 = 65536 * 1 * sin(2 * M_PI * (rot_val) / 1024);
313314      p4 = -65536 * 1 * cos(2 * M_PI * (rot_val) / 1024);
314315
315      x = -256 - (state->m_scrollx | state->m_scrollx_hi);
316      y = 256 + (state->m_scrolly | state->m_scrolly_hi);
316      x = -256 - (m_scrollx | m_scrollx_hi);
317      y = 256 + (m_scrolly | m_scrolly_hi);
317318
318      state->m_bg_tilemap->draw_roz(bitmap, cliprect,
319      m_bg_tilemap->draw_roz(bitmap, cliprect,
319320                  (x << 16), (y << 16),
320321                  p1, p2,
321322                  p3, p4,
r17967r17968
324325   }
325326
326327   zerotrgt_draw_sprites(screen.machine(), bitmap, cliprect);
327   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
328   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
328329
329330   return 0;
330331}
331332
332static SCREEN_UPDATE_IND16( cntsteer )
333UINT32 cntsteer_state::screen_update_cntsteer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
333334{
334   cntsteer_state *state = screen.machine().driver_data<cntsteer_state>();
335335
336   if (state->m_disable_roz)
337      bitmap.fill(screen.machine().pens[8 * state->m_bg_color_bank], cliprect);
336   if (m_disable_roz)
337      bitmap.fill(screen.machine().pens[8 * m_bg_color_bank], cliprect);
338338   else
339339   {
340340      int p1, p2, p3, p4;
341341      int rot_val, x, y;
342342
343      rot_val = (state->m_rotation_x) | ((state->m_rotation_sign & 3) << 8);
344      rot_val = (state->m_rotation_sign & 4) ? (rot_val) : (-rot_val);
345//      popmessage("%d %02x %02x", rot_val, state->m_rotation_sign, state->m_rotation_x);
343      rot_val = (m_rotation_x) | ((m_rotation_sign & 3) << 8);
344      rot_val = (m_rotation_sign & 4) ? (rot_val) : (-rot_val);
345//      popmessage("%d %02x %02x", rot_val, m_rotation_sign, m_rotation_x);
346346
347347      /*
348348        (u, v) = (a + cx + dy, b - dx + cy) when (x, y)=screen and (u, v) = tilemap
r17967r17968
361361      p3 = 65536 * 1 * sin(2 * M_PI * (rot_val) / 1024);
362362      p4 = -65536 * 1 * cos(2 * M_PI * (rot_val) / 1024);
363363
364      x = 256 + (state->m_scrollx | state->m_scrollx_hi);
365      y = 256 - (state->m_scrolly | state->m_scrolly_hi);
364      x = 256 + (m_scrollx | m_scrollx_hi);
365      y = 256 - (m_scrolly | m_scrolly_hi);
366366
367      state->m_bg_tilemap->draw_roz(bitmap, cliprect,
367      m_bg_tilemap->draw_roz(bitmap, cliprect,
368368                  (x << 16), (y << 16),
369369                  p1, p2,
370370                  p3, p4,
r17967r17968
373373   }
374374
375375   cntsteer_draw_sprites(screen.machine(), bitmap, cliprect);
376   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
376   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
377377
378378   return 0;
379379}
r17967r17968
902902   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
903903   MCFG_SCREEN_SIZE(256, 256)
904904   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
905   MCFG_SCREEN_UPDATE_STATIC(cntsteer)
905   MCFG_SCREEN_UPDATE_DRIVER(cntsteer_state, screen_update_cntsteer)
906906
907907   MCFG_QUANTUM_TIME(attotime::from_hz(6000))
908908
r17967r17968
951951   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
952952   MCFG_SCREEN_SIZE(256, 256)
953953   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
954   MCFG_SCREEN_UPDATE_STATIC(zerotrgt)
954   MCFG_SCREEN_UPDATE_DRIVER(cntsteer_state, screen_update_zerotrgt)
955955
956956   MCFG_GFXDECODE(zerotrgt)
957957   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/nexus3d.c
r17967r17968
5050   DECLARE_DRIVER_INIT(nexus3d);
5151   virtual void machine_reset();
5252   virtual void video_start();
53   UINT32 screen_update_nexus3d(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
5354};
5455
5556
r17967r17968
183184
184185}
185186
186SCREEN_UPDATE_RGB32(nexus3d)
187UINT32 nexus3d_state::screen_update_nexus3d(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
187188{
188189   return 0;
189190}
r17967r17968
204205   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
205206   MCFG_SCREEN_SIZE(320, 256)
206207   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-1)
207   MCFG_SCREEN_UPDATE_STATIC(nexus3d)
208   MCFG_SCREEN_UPDATE_DRIVER(nexus3d_state, screen_update_nexus3d)
208209
209210   MCFG_PALETTE_LENGTH(256)
210211
trunk/src/mame/drivers/bking.c
r17967r17968
485485   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
486486   MCFG_SCREEN_SIZE(32*8, 32*8)
487487   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
488   MCFG_SCREEN_UPDATE_STATIC(bking)
489   MCFG_SCREEN_VBLANK_STATIC(bking)
488   MCFG_SCREEN_UPDATE_DRIVER(bking_state, screen_update_bking)
489   MCFG_SCREEN_VBLANK_DRIVER(bking_state, screen_eof_bking)
490490
491491   MCFG_GFXDECODE(bking)
492492   MCFG_PALETTE_LENGTH(4*8+4*4+4*2+4*2)
trunk/src/mame/drivers/dblewing.c
r17967r17968
8383   DECLARE_DRIVER_INIT(dblewing);
8484   virtual void machine_start();
8585   virtual void machine_reset();
86   UINT32 screen_update_dblewing(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8687};
8788
8889UINT16 dblwings_pri_callback(UINT16 x)
r17967r17968
101102
102103
103104
104static SCREEN_UPDATE_IND16(dblewing)
105UINT32 dblewing_state::screen_update_dblewing(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
105106{
106   dblewing_state *state = screen.machine().driver_data<dblewing_state>();
107   address_space &space = state->generic_space();
108   UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
107   address_space &space = generic_space();
108   UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff);
109109
110   state->flip_screen_set(BIT(flip, 7));
111   deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
110   flip_screen_set(BIT(flip, 7));
111   deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
112112
113113   bitmap.fill(0, cliprect); /* not Confirmed */
114114   screen.machine().priority_bitmap.fill(0);
115115
116   deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 2);
117   deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 4);
118   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x400);
116   deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 2);
117   deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 4);
118   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
119119   return 0;
120120}
121121
r17967r17968
656656   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
657657   MCFG_SCREEN_SIZE(64*8, 32*8)
658658   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
659   MCFG_SCREEN_UPDATE_STATIC(dblewing)
659   MCFG_SCREEN_UPDATE_DRIVER(dblewing_state, screen_update_dblewing)
660660
661661   MCFG_PALETTE_LENGTH(4096)
662662   MCFG_GFXDECODE(dblewing)
trunk/src/mame/drivers/arabian.c
r17967r17968
374374   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
375375   MCFG_SCREEN_SIZE(256, 256)
376376   MCFG_SCREEN_VISIBLE_AREA(0, 255, 11, 244)
377   MCFG_SCREEN_UPDATE_STATIC(arabian)
377   MCFG_SCREEN_UPDATE_DRIVER(arabian_state, screen_update_arabian)
378378
379379   MCFG_PALETTE_LENGTH(256*32)
380380
trunk/src/mame/drivers/taito_o.c
r17967r17968
261261   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
262262   MCFG_SCREEN_SIZE(64*16, 64*16)
263263   MCFG_SCREEN_VISIBLE_AREA(0*16, 32*16-1, 3*16, 31*16-1)
264   MCFG_SCREEN_UPDATE_STATIC(parentj)
264   MCFG_SCREEN_UPDATE_DRIVER(taitoo_state, screen_update_parentj)
265265
266266   MCFG_GFXDECODE(parentj)
267267   MCFG_PALETTE_LENGTH(33*16)
trunk/src/mame/drivers/labyrunr.c
r17967r17968
207207   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
208208   MCFG_SCREEN_SIZE(37*8, 32*8)
209209   MCFG_SCREEN_VISIBLE_AREA(0*8, 35*8-1, 2*8, 30*8-1)
210   MCFG_SCREEN_UPDATE_STATIC(labyrunr)
210   MCFG_SCREEN_UPDATE_DRIVER(labyrunr_state, screen_update_labyrunr)
211211
212212   MCFG_GFXDECODE(labyrunr)
213213   MCFG_PALETTE_LENGTH(2*8*16*16)
trunk/src/mame/drivers/shougi.c
r17967r17968
111111   DECLARE_WRITE8_MEMBER(nmi_enable_w);
112112   DECLARE_READ8_MEMBER(dummy_r);
113113   virtual void palette_init();
114   UINT32 screen_update_shougi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
114115};
115116
116117
r17967r17968
174175
175176
176177
177static SCREEN_UPDATE_IND16( shougi )
178UINT32 shougi_state::screen_update_shougi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
178179{
179   shougi_state *state = screen.machine().driver_data<shougi_state>();
180180   int offs;
181181
182182   for (offs = 0;offs <0x4000; offs++)
r17967r17968
188188      //if (flipscreen[0]) sx = 31 - sx;
189189      //if (flipscreen[1]) sy = 31 - sy;
190190
191      data1 = state->m_videoram[offs];            /* color */
192      data2 = state->m_videoram[0x4000 + offs];   /* pixel data */
191      data1 = m_videoram[offs];            /* color */
192      data2 = m_videoram[0x4000 + offs];   /* pixel data */
193193
194194      for (x=0; x<4; x++) /*4 pixels per byte (2 bitplanes in 2 nibbles: 1st=bits 7-4, 2nd=bits 3-0)*/
195195      {
r17967r17968
425425   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
426426   MCFG_SCREEN_SIZE(256, 256)
427427   MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 255)
428   MCFG_SCREEN_UPDATE_STATIC(shougi)
428   MCFG_SCREEN_UPDATE_DRIVER(shougi_state, screen_update_shougi)
429429
430430   MCFG_PALETTE_LENGTH(32)
431431
trunk/src/mame/drivers/thief.c
r17967r17968
447447   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
448448   MCFG_SCREEN_SIZE(32*8, 32*8)
449449   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 24*8-1)
450   MCFG_SCREEN_UPDATE_STATIC(thief)
450   MCFG_SCREEN_UPDATE_DRIVER(thief_state, screen_update_thief)
451451
452452   MCFG_TMS9927_ADD("tms", MASTER_CLOCK/4, tms9927_intf)
453453
r17967r17968
482482   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
483483   MCFG_SCREEN_SIZE(32*8, 32*8)
484484   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
485   MCFG_SCREEN_UPDATE_STATIC(thief)
485   MCFG_SCREEN_UPDATE_DRIVER(thief_state, screen_update_thief)
486486
487487   MCFG_TMS9927_ADD("tms", MASTER_CLOCK/4, tms9927_intf)
488488
r17967r17968
517517   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
518518   MCFG_SCREEN_SIZE(32*8, 32*8)
519519   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
520   MCFG_SCREEN_UPDATE_STATIC(thief)
520   MCFG_SCREEN_UPDATE_DRIVER(thief_state, screen_update_thief)
521521
522522   MCFG_TMS9927_ADD("tms", MASTER_CLOCK/4, tms9927_intf)
523523
trunk/src/mame/drivers/hornet.c
r17967r17968
369369   virtual void machine_start();
370370   virtual void machine_reset();
371371   DECLARE_MACHINE_RESET(hornet_2board);
372   UINT32 screen_update_hornet(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
373   UINT32 screen_update_hornet_2board(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
372374};
373375
374376
r17967r17968
420422{
421423}
422424
423static SCREEN_UPDATE_RGB32( hornet )
425UINT32 hornet_state::screen_update_hornet(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
424426{
425   hornet_state *state = screen.machine().driver_data<hornet_state>();
426427   device_t *voodoo = screen.machine().device("voodoo0");
427428   device_t *k037122 = screen.machine().device("k037122_1");
428429
r17967r17968
430431
431432   k037122_tile_draw(k037122, bitmap, cliprect);
432433
433   draw_7segment_led(bitmap, 3, 3, state->m_led_reg0);
434   draw_7segment_led(bitmap, 9, 3, state->m_led_reg1);
434   draw_7segment_led(bitmap, 3, 3, m_led_reg0);
435   draw_7segment_led(bitmap, 9, 3, m_led_reg1);
435436   return 0;
436437}
437438
438static SCREEN_UPDATE_RGB32( hornet_2board )
439UINT32 hornet_state::screen_update_hornet_2board(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
439440{
440   hornet_state *state = screen.machine().driver_data<hornet_state>();
441441   if (strcmp(screen.tag(), ":lscreen") == 0)
442442   {
443443      device_t *k037122 = screen.machine().device("k037122_1");
r17967r17968
457457      k037122_tile_draw(k037122, bitmap, cliprect);
458458   }
459459
460   draw_7segment_led(bitmap, 3, 3, state->m_led_reg0);
461   draw_7segment_led(bitmap, 9, 3, state->m_led_reg1);
460   draw_7segment_led(bitmap, 3, 3, m_led_reg0);
461   draw_7segment_led(bitmap, 9, 3, m_led_reg1);
462462   return 0;
463463}
464464
r17967r17968
10161016   MCFG_SCREEN_REFRESH_RATE(60)
10171017   MCFG_SCREEN_SIZE(64*8, 48*8)
10181018   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 48*8-1)
1019   MCFG_SCREEN_UPDATE_STATIC(hornet)
1019   MCFG_SCREEN_UPDATE_DRIVER(hornet_state, screen_update_hornet)
10201020
10211021   MCFG_PALETTE_LENGTH(65536)
10221022
r17967r17968
11061106   MCFG_SCREEN_REFRESH_RATE(60)
11071107   MCFG_SCREEN_SIZE(512, 384)
11081108   MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383)
1109   MCFG_SCREEN_UPDATE_STATIC(hornet_2board)
1109   MCFG_SCREEN_UPDATE_DRIVER(hornet_state, screen_update_hornet_2board)
11101110
11111111   MCFG_SCREEN_ADD("rscreen", RASTER)
11121112   MCFG_SCREEN_REFRESH_RATE(60)
11131113   MCFG_SCREEN_SIZE(512, 384)
11141114   MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383)
1115   MCFG_SCREEN_UPDATE_STATIC(hornet_2board)
1115   MCFG_SCREEN_UPDATE_DRIVER(hornet_state, screen_update_hornet_2board)
11161116MACHINE_CONFIG_END
11171117
11181118static MACHINE_CONFIG_DERIVED( terabrst, hornet_2board )
trunk/src/mame/drivers/pipedrm.c
r17967r17968
653653   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
654654   MCFG_SCREEN_SIZE(44*8, 30*8)
655655   MCFG_SCREEN_VISIBLE_AREA(0*8, 44*8-1, 0*8, 30*8-1)
656   MCFG_SCREEN_UPDATE_STATIC(pipedrm)
656   MCFG_SCREEN_UPDATE_DRIVER(fromance_state, screen_update_pipedrm)
657657
658658   MCFG_GFXDECODE(pipedrm)
659659   MCFG_PALETTE_LENGTH(2048)
r17967r17968
692692   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
693693   MCFG_SCREEN_SIZE(44*8, 30*8)
694694   MCFG_SCREEN_VISIBLE_AREA(0*8, 44*8-1, 0*8, 30*8-1)
695   MCFG_SCREEN_UPDATE_STATIC(fromance)
695   MCFG_SCREEN_UPDATE_DRIVER(fromance_state, screen_update_fromance)
696696
697697   MCFG_GFXDECODE(hatris)
698698   MCFG_PALETTE_LENGTH(2048)
trunk/src/mame/drivers/ccastles.c
r17967r17968
484484
485485   MCFG_SCREEN_ADD("screen", RASTER)
486486   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, 0, HTOTAL - 1, VTOTAL, 0, VTOTAL - 1)   /* will be adjusted later */
487   MCFG_SCREEN_UPDATE_STATIC(ccastles)
487   MCFG_SCREEN_UPDATE_DRIVER(ccastles_state, screen_update_ccastles)
488488
489489
490490   /* sound hardware */
trunk/src/mame/drivers/ddragon3.c
r17967r17968
602602   /* video hardware */
603603   MCFG_SCREEN_ADD("screen", RASTER)
604604   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 448, 0, 320, 272, 8, 248)   /* HTOTAL and VTOTAL are guessed */
605   MCFG_SCREEN_UPDATE_STATIC(ddragon3)
605   MCFG_SCREEN_UPDATE_DRIVER(ddragon3_state, screen_update_ddragon3)
606606
607607   MCFG_GFXDECODE(ddragon3)
608608   MCFG_PALETTE_LENGTH(768)
r17967r17968
636636   MCFG_CPU_PROGRAM_MAP(ctribe_sound_map)
637637
638638   MCFG_SCREEN_MODIFY("screen")
639   MCFG_SCREEN_UPDATE_STATIC(ctribe)
639   MCFG_SCREEN_UPDATE_DRIVER(ddragon3_state, screen_update_ctribe)
640640
641641   MCFG_SOUND_MODIFY("ym2151")
642642   MCFG_SOUND_ROUTES_RESET()
trunk/src/mame/drivers/hotstuff.c
r17967r17968
2121   DECLARE_WRITE8_MEMBER(ioboard_data_w);
2222   DECLARE_WRITE8_MEMBER(ioboard_reg_w);
2323   virtual void video_start();
24   UINT32 screen_update_hotstuff(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
2425};
2526
2627
r17967r17968
3031
3132/* the first 0x20 bytes in every 0x200 (each line) of video ram are the colour data, providing a palette of 16 RGB444 colours for that line */
3233
33SCREEN_UPDATE_RGB32( hotstuff )
34UINT32 hotstuff_state::screen_update_hotstuff(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
3435{
35   hotstuff_state *state = screen.machine().driver_data<hotstuff_state>();
3636   int count, y,yyy,x,xxx;
3737   UINT16 row_palette_data[0x10];
3838   rgb_t row_palette_data_as_rgb32_pen_data[0x10];
r17967r17968
4747
4848      for (p=0;p<0x10;p++)
4949      {
50         row_palette_data[p] = state->m_bitmapram[count+p];
50         row_palette_data[p] = m_bitmapram[count+p];
5151
5252         row_palette_data_as_rgb32_pen_data[p] = MAKE_RGB( (row_palette_data[p] & 0x0f00)>>4, (row_palette_data[p] & 0x00f0)>>0, (row_palette_data[p] & 0x000f)<<4  );
5353
r17967r17968
5656      for(x = 0; x < xxx; x++)
5757      {
5858         {
59            bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(state->m_bitmapram[count] &0xf000)>>12];
59            bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(m_bitmapram[count] &0xf000)>>12];
6060            x++;
61            bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(state->m_bitmapram[count] &0x0f00)>>8];
61            bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(m_bitmapram[count] &0x0f00)>>8];
6262            x++;
63            bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(state->m_bitmapram[count] &0x00f0)>>4];
63            bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(m_bitmapram[count] &0x00f0)>>4];
6464            x++;
65            bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(state->m_bitmapram[count] &0x000f)>>0];
65            bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(m_bitmapram[count] &0x000f)>>0];
6666         }
6767
6868         count++;
r17967r17968
133133   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
134134   MCFG_SCREEN_SIZE(128*8, 64*8)
135135   MCFG_SCREEN_VISIBLE_AREA((0x10*4)+8, 101*8-1, 0*8, 33*8-1)
136   MCFG_SCREEN_UPDATE_STATIC(hotstuff)
136   MCFG_SCREEN_UPDATE_DRIVER(hotstuff_state, screen_update_hotstuff)
137137
138138   MCFG_PALETTE_LENGTH(0x200)
139139
trunk/src/mame/drivers/discoboy.c
r17967r17968
8686   virtual void machine_start();
8787   virtual void machine_reset();
8888   virtual void video_start();
89   UINT32 screen_update_discoboy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8990};
9091
9192
r17967r17968
142143}
143144
144145
145static SCREEN_UPDATE_IND16( discoboy )
146UINT32 discoboy_state::screen_update_discoboy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
146147{
147   discoboy_state *state = screen.machine().driver_data<discoboy_state>();
148148   UINT16 x, y;
149149   int i;
150150   int count = 0;
r17967r17968
153153   {
154154      UINT16 pal;
155155      int r, g, b;
156      pal = state->m_ram_1[i] | (state->m_ram_1[i + 1] << 8);
156      pal = m_ram_1[i] | (m_ram_1[i + 1] << 8);
157157
158158      b = ((pal >> 0) & 0xf) << 4;
159159      g = ((pal >> 4) & 0xf) << 4;
r17967r17968
166166   {
167167      UINT16 pal;
168168      int r,g,b;
169      pal = state->m_ram_2[i] | (state->m_ram_2[i + 1] << 8);
169      pal = m_ram_2[i] | (m_ram_2[i + 1] << 8);
170170
171171      b = ((pal >> 0) & 0xf) << 4;
172172      g = ((pal >> 4) & 0xf) << 4;
r17967r17968
181181   {
182182      for (x = 0; x < 64; x++)
183183      {
184         UINT16 tileno = state->m_ram_3[count] | (state->m_ram_3[count + 1] << 8);
184         UINT16 tileno = m_ram_3[count] | (m_ram_3[count + 1] << 8);
185185
186186         if (tileno > 0x2000)
187187         {
188            if ((state->m_gfxbank & 0x40) == 0x40)
188            if ((m_gfxbank & 0x40) == 0x40)
189189               tileno = 0x2000 + (tileno & 0x1fff) + 0x2000;
190190            else
191191               tileno = 0x2000 + (tileno & 0x1fff) + 0x0000;
192192         }
193193
194         drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[1], tileno, state->m_ram_att[count / 2], 0, 0, x*8, y*8);
194         drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[1], tileno, m_ram_att[count / 2], 0, 0, x*8, y*8);
195195         count += 2;
196196      }
197197   }
r17967r17968
511511   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
512512   MCFG_SCREEN_SIZE(512, 256)
513513   MCFG_SCREEN_VISIBLE_AREA(8*8, 512-1-8*8, 0+8, 256-1-8)
514   MCFG_SCREEN_UPDATE_STATIC(discoboy)
514   MCFG_SCREEN_UPDATE_DRIVER(discoboy_state, screen_update_discoboy)
515515
516516   MCFG_GFXDECODE(discoboy)
517517   MCFG_PALETTE_LENGTH(0x1000)
trunk/src/mame/drivers/wildpkr.c
r17967r17968
176176   virtual void machine_start();
177177   virtual void video_start();
178178   virtual void palette_init();
179   UINT32 screen_update_wildpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
179180};
180181
181182
r17967r17968
187188{
188189}
189190
190static SCREEN_UPDATE_IND16( wildpkr )
191UINT32 wildpkr_state::screen_update_wildpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
191192{
192//  wildpkr_state *state = screen.machine().driver_data<wildpkr_state>();
193193   return 0;
194194}
195195
r17967r17968
284284   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
285285   MCFG_SCREEN_SIZE(512, 512)
286286   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 512-1)
287   MCFG_SCREEN_UPDATE_STATIC(wildpkr)
287   MCFG_SCREEN_UPDATE_DRIVER(wildpkr_state, screen_update_wildpkr)
288288
289289//  MCFG_HD63484_ADD("hd63484", wildpkr_hd63484_intf)
290290   MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map)
trunk/src/mame/drivers/mediagx.c
r17967r17968
185185   virtual void machine_start();
186186   virtual void machine_reset();
187187   virtual void video_start();
188   UINT32 screen_update_mediagx(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
188189};
189190
190191// Display controller registers
r17967r17968
379380   }
380381}
381382
382static SCREEN_UPDATE_RGB32(mediagx)
383UINT32 mediagx_state::screen_update_mediagx(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
383384{
384   mediagx_state *state = screen.machine().driver_data<mediagx_state>();
385385   bitmap.fill(0, cliprect);
386386
387387   draw_framebuffer(screen.machine(), bitmap, cliprect);
388388
389   if (state->m_disp_ctrl_reg[DC_OUTPUT_CFG] & 0x1)   // don't show MDA text screen on 16-bit mode. this is basically a hack
389   if (m_disp_ctrl_reg[DC_OUTPUT_CFG] & 0x1)   // don't show MDA text screen on 16-bit mode. this is basically a hack
390390   {
391391      draw_cga(screen.machine(), bitmap, cliprect);
392392   }
r17967r17968
11921192   MCFG_SCREEN_REFRESH_RATE(60)
11931193   MCFG_SCREEN_SIZE(640, 480)
11941194   MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 239)
1195   MCFG_SCREEN_UPDATE_STATIC(mediagx)
1195   MCFG_SCREEN_UPDATE_DRIVER(mediagx_state, screen_update_mediagx)
11961196
11971197   MCFG_GFXDECODE(CGA)
11981198   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/summit.c
r17967r17968
3232   DECLARE_WRITE8_MEMBER(out_w);
3333   virtual void video_start();
3434   virtual void palette_init();
35   UINT32 screen_update_summit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3536};
3637
3738
r17967r17968
3940{
4041}
4142
42static SCREEN_UPDATE_IND16(summit)
43UINT32 summit_state::screen_update_summit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
4344{
44   summit_state *state = screen.machine().driver_data<summit_state>();
4545   gfx_element *gfx = screen.machine().gfx[0];
4646   int count = 0x0000;
4747
r17967r17968
5252   {
5353      for (x=0;x<32;x++)
5454      {
55         int tile = (state->m_vram[count] | ((state->m_attr[count]&1)<<8) );
55         int tile = (m_vram[count] | ((m_attr[count]&1)<<8) );
5656         drawgfx_opaque(bitmap,cliprect,gfx,tile,0,0,0,x*8,y*8);
5757
5858         count++;
r17967r17968
308308   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
309309   MCFG_SCREEN_SIZE(256, 256)
310310   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1)
311   MCFG_SCREEN_UPDATE_STATIC(summit)
311   MCFG_SCREEN_UPDATE_DRIVER(summit_state, screen_update_summit)
312312
313313   MCFG_GFXDECODE(summit)
314314
trunk/src/mame/drivers/ambush.c
r17967r17968
240240   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
241241   MCFG_SCREEN_SIZE(32*8, 32*8)
242242   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-3)  /* The -3 makes the cocktail mode perfect */
243   MCFG_SCREEN_UPDATE_STATIC(ambush)
243   MCFG_SCREEN_UPDATE_DRIVER(ambush_state, screen_update_ambush)
244244
245245   MCFG_GFXDECODE(ambush)
246246   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/orbit.c
r17967r17968
307307   /* video hardware */
308308   MCFG_SCREEN_ADD("screen", RASTER)
309309   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK*2, 384*2, 0, 256*2, 261*2, 0, 240*2)
310   MCFG_SCREEN_UPDATE_STATIC(orbit)
310   MCFG_SCREEN_UPDATE_DRIVER(orbit_state, screen_update_orbit)
311311
312312   MCFG_GFXDECODE(orbit)
313313   MCFG_PALETTE_LENGTH(2)
trunk/src/mame/drivers/policetr.c
r17967r17968
427427   MCFG_SCREEN_REFRESH_RATE(60)
428428   MCFG_SCREEN_SIZE(400, 262)   /* needs to be verified */
429429   MCFG_SCREEN_VISIBLE_AREA(0, 393, 0, 239)
430   MCFG_SCREEN_UPDATE_STATIC(policetr)
430   MCFG_SCREEN_UPDATE_DRIVER(policetr_state, screen_update_policetr)
431431
432432   MCFG_PALETTE_LENGTH(256)
433433
trunk/src/mame/drivers/skimaxx.c
r17967r17968
7373   DECLARE_READ32_MEMBER(skimaxx_analog_r);
7474   virtual void machine_reset();
7575   virtual void video_start();
76   UINT32 screen_update_skimaxx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7677};
7778
7879
r17967r17968
149150   membank("bank1")->configure_entry(1, m_bg_buffer_front);
150151}
151152
152static SCREEN_UPDATE_IND16( skimaxx )
153UINT32 skimaxx_state::screen_update_skimaxx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
153154{
154//  popmessage("%02x %02x", state->ioport("X")->read(), state->ioport("Y")->read() );
155//  popmessage("%02x %02x", ioport("X")->read(), ioport("Y")->read() );
155156
156157   SCREEN_UPDATE16_CALL(tms340x0_ind16);
157158
r17967r17968
542543   MCFG_SCREEN_SIZE(0x400, 0x100)
543544   MCFG_SCREEN_VISIBLE_AREA(0, 0x280-1, 0, 0xf0-1)
544545//  MCFG_SCREEN_UPDATE_STATIC(tms340x0_ind16)
545   MCFG_SCREEN_UPDATE_STATIC(skimaxx)
546   MCFG_SCREEN_UPDATE_DRIVER(skimaxx_state, screen_update_skimaxx)
546547
547548
548549//  MCFG_GFXDECODE( skimaxx )
trunk/src/mame/drivers/mwarr.c
r17967r17968
9999   virtual void machine_start();
100100   virtual void machine_reset();
101101   virtual void video_start();
102   UINT32 screen_update_mwarr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
102103};
103104
104105
r17967r17968
480481   }
481482}
482483
483static SCREEN_UPDATE_IND16( mwarr )
484UINT32 mwarr_state::screen_update_mwarr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
484485{
485   mwarr_state *state = screen.machine().driver_data<mwarr_state>();
486486   int i;
487487
488488   screen.machine().priority_bitmap.fill(0, cliprect);
489489
490   if (BIT(state->m_vidattrram[6], 0))
490   if (BIT(m_vidattrram[6], 0))
491491   {
492492      for (i = 0; i < 256; i++)
493         state->m_bg_tilemap->set_scrollx(i, state->m_bg_scrollram[i] + 20);
493         m_bg_tilemap->set_scrollx(i, m_bg_scrollram[i] + 20);
494494   }
495495   else
496496   {
497497      for (i = 0; i < 256; i++)
498         state->m_bg_tilemap->set_scrollx(i, state->m_bg_scrollram[0] + 19);
498         m_bg_tilemap->set_scrollx(i, m_bg_scrollram[0] + 19);
499499   }
500500
501   if (BIT(state->m_vidattrram[6], 2))
501   if (BIT(m_vidattrram[6], 2))
502502   {
503503      for (i = 0; i < 256; i++)
504         state->m_mlow_tilemap->set_scrollx(i, state->m_mlow_scrollram[i] + 19);
504         m_mlow_tilemap->set_scrollx(i, m_mlow_scrollram[i] + 19);
505505   }
506506   else
507507   {
508508      for (i = 0; i < 256; i++)
509         state->m_mlow_tilemap->set_scrollx(i, state->m_mlow_scrollram[0] + 19);
509         m_mlow_tilemap->set_scrollx(i, m_mlow_scrollram[0] + 19);
510510   }
511511
512   if (BIT(state->m_vidattrram[6], 4))
512   if (BIT(m_vidattrram[6], 4))
513513   {
514514      for (i = 0; i < 256; i++)
515         state->m_mhigh_tilemap->set_scrollx(i, state->m_mhigh_scrollram[i] + 19);
515         m_mhigh_tilemap->set_scrollx(i, m_mhigh_scrollram[i] + 19);
516516   }
517517   else
518518   {
519519      for (i = 0; i < 256; i++)
520         state->m_mhigh_tilemap->set_scrollx(i, state->m_mhigh_scrollram[0] + 19);
520         m_mhigh_tilemap->set_scrollx(i, m_mhigh_scrollram[0] + 19);
521521   }
522522
523   state->m_bg_tilemap->set_scrolly(0, state->m_vidattrram[1] + 1);
524   state->m_mlow_tilemap->set_scrolly(0, state->m_vidattrram[2] + 1);
525   state->m_mhigh_tilemap->set_scrolly(0, state->m_vidattrram[3] + 1);
523   m_bg_tilemap->set_scrolly(0, m_vidattrram[1] + 1);
524   m_mlow_tilemap->set_scrolly(0, m_vidattrram[2] + 1);
525   m_mhigh_tilemap->set_scrolly(0, m_vidattrram[3] + 1);
526526
527   state->m_tx_tilemap->set_scrollx(0, state->m_vidattrram[0] + 16);
528   state->m_tx_tilemap->set_scrolly(0, state->m_vidattrram[4] + 1);
527   m_tx_tilemap->set_scrollx(0, m_vidattrram[0] + 16);
528   m_tx_tilemap->set_scrolly(0, m_vidattrram[4] + 1);
529529
530   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0x01);
531   state->m_mlow_tilemap->draw(bitmap, cliprect, 0, 0x02);
532   state->m_mhigh_tilemap->draw(bitmap, cliprect, 0, 0x04);
533   state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0x10);
530   m_bg_tilemap->draw(bitmap, cliprect, 0, 0x01);
531   m_mlow_tilemap->draw(bitmap, cliprect, 0, 0x02);
532   m_mhigh_tilemap->draw(bitmap, cliprect, 0, 0x04);
533   m_tx_tilemap->draw(bitmap, cliprect, 0, 0x10);
534534   draw_sprites(screen.machine(), bitmap, cliprect);
535535   return 0;
536536}
r17967r17968
567567   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
568568   MCFG_SCREEN_SIZE(64*8, 32*8)
569569   MCFG_SCREEN_VISIBLE_AREA(8+1, 48*8-1-8-1, 0, 30*8-1)
570   MCFG_SCREEN_UPDATE_STATIC(mwarr)
570   MCFG_SCREEN_UPDATE_DRIVER(mwarr_state, screen_update_mwarr)
571571
572572   MCFG_GFXDECODE(mwarr)
573573   MCFG_PALETTE_LENGTH(0x800)
trunk/src/mame/drivers/gaplus.c
r17967r17968
583583   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
584584   MCFG_SCREEN_SIZE(36*8, 28*8)
585585   MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
586   MCFG_SCREEN_UPDATE_STATIC(gaplus)
587   MCFG_SCREEN_VBLANK_STATIC(gaplus)
586   MCFG_SCREEN_UPDATE_DRIVER(gaplus_state, screen_update_gaplus)
587   MCFG_SCREEN_VBLANK_DRIVER(gaplus_state, screen_eof_gaplus)
588588
589589   MCFG_GFXDECODE(gaplus)
590590   MCFG_PALETTE_LENGTH(64*4+64*8)
trunk/src/mame/drivers/carpolo.c
r17967r17968
273273   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
274274   MCFG_SCREEN_SIZE(256, 256)
275275   MCFG_SCREEN_VISIBLE_AREA(0, 239, 0, 255)
276   MCFG_SCREEN_UPDATE_STATIC(carpolo)
277   MCFG_SCREEN_VBLANK_STATIC(carpolo)
276   MCFG_SCREEN_UPDATE_DRIVER(carpolo_state, screen_update_carpolo)
277   MCFG_SCREEN_VBLANK_DRIVER(carpolo_state, screen_eof_carpolo)
278278
279279   MCFG_GFXDECODE(carpolo)
280280   MCFG_PALETTE_LENGTH(12*2+2*16+4*2)
trunk/src/mame/drivers/vroulet.c
r17967r17968
6262   DECLARE_WRITE8_MEMBER(ppi8255_c_w);
6363   TILE_GET_INFO_MEMBER(get_bg_tile_info);
6464   virtual void video_start();
65   UINT32 screen_update_vroulet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6566};
6667
6768
r17967r17968
115116      8, 8, 32, 32);
116117}
117118
118static SCREEN_UPDATE_IND16(vroulet)
119UINT32 vroulet_state::screen_update_vroulet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
119120{
120   vroulet_state *state = screen.machine().driver_data<vroulet_state>();
121   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
121   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
122122   drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0], 0x320, 1, 0, 0,
123      state->m_ball[1], state->m_ball[0] - 12, 0);
123      m_ball[1], m_ball[0] - 12, 0);
124124   return 0;
125125}
126126
r17967r17968
302302   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
303303   MCFG_SCREEN_SIZE(32*8, 32*8)
304304   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
305   MCFG_SCREEN_UPDATE_STATIC(vroulet)
305   MCFG_SCREEN_UPDATE_DRIVER(vroulet_state, screen_update_vroulet)
306306
307307   MCFG_GFXDECODE(vroulet)
308308   MCFG_PALETTE_LENGTH(128*4)
trunk/src/mame/drivers/speedatk.c
r17967r17968
335335   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
336336   MCFG_SCREEN_SIZE(320, 256)
337337   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
338   MCFG_SCREEN_UPDATE_STATIC(speedatk)
338   MCFG_SCREEN_UPDATE_DRIVER(speedatk_state, screen_update_speedatk)
339339
340340   MCFG_MC6845_ADD("crtc", H46505, MASTER_CLOCK/16, mc6845_intf)   /* hand tuned to get ~60 fps */
341341
trunk/src/mame/drivers/coinmvga.c
r17967r17968
236236   DECLARE_DRIVER_INIT(cmrltv75);
237237   virtual void video_start();
238238   virtual void palette_init();
239   UINT32 screen_update_coinmvga(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
239240};
240241
241242
r17967r17968
249250}
250251
251252
252static SCREEN_UPDATE_IND16( coinmvga )
253UINT32 coinmvga_state::screen_update_coinmvga(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
253254{
254   coinmvga_state *state = screen.machine().driver_data<coinmvga_state>();
255255   gfx_element *gfx = screen.machine().gfx[0];
256256   int count = 0x04000/2;
257257
r17967r17968
262262   {
263263      for (x=0;x<128;x++)
264264      {
265         int tile = state->m_vram[count];
265         int tile = m_vram[count];
266266         //int colour = tile>>12;
267267         drawgfx_opaque(bitmap,cliprect,gfx,tile,0,0,0,x*8,y*8);
268268
r17967r17968
683683   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
684684   MCFG_SCREEN_SIZE(640,480)
685685   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
686   MCFG_SCREEN_UPDATE_STATIC(coinmvga)
686   MCFG_SCREEN_UPDATE_DRIVER(coinmvga_state, screen_update_coinmvga)
687687
688688   MCFG_GFXDECODE(coinmvga)
689689
trunk/src/mame/drivers/twins.c
r17967r17968
7171   DECLARE_READ16_MEMBER(twinsa_unk_r);
7272   DECLARE_VIDEO_START(twins);
7373   DECLARE_VIDEO_START(twinsa);
74   UINT32 screen_update_twins(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
75   UINT32 screen_update_twinsa(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7476};
7577
7678
r17967r17968
116118   m_pal = auto_alloc_array(machine(), UINT16, 0x100);
117119}
118120
119static SCREEN_UPDATE_IND16(twins)
121UINT32 twins_state::screen_update_twins(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
120122{
121   twins_state *state = screen.machine().driver_data<twins_state>();
122123   int y,x,count;
123124   int i;
124125   static const int xxx=320,yyy=204;
r17967r17968
128129   for (i=0;i<0x100;i++)
129130   {
130131      int dat,r,g,b;
131      dat = state->m_pal[i];
132      dat = m_pal[i];
132133
133134      r = dat & 0x1f;
134135      r = BITSWAP8(r,7,6,5,0,1,2,3,4);
r17967r17968
143144   }
144145
145146   count=0;
146   UINT8 *videoram = reinterpret_cast<UINT8 *>(state->m_videoram.target());
147   UINT8 *videoram = reinterpret_cast<UINT8 *>(m_videoram.target());
147148   for (y=0;y<yyy;y++)
148149   {
149150      for(x=0;x<xxx;x++)
r17967r17968
200201   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
201202   MCFG_SCREEN_SIZE(320,256)
202203   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1)
203   MCFG_SCREEN_UPDATE_STATIC(twins)
204   MCFG_SCREEN_UPDATE_DRIVER(twins_state, screen_update_twins)
204205
205206   MCFG_PALETTE_LENGTH(0x100)
206207
r17967r17968
222223   m_pal = auto_alloc_array(machine(), UINT16, 0x1000);
223224}
224225
225static SCREEN_UPDATE_IND16(twinsa)
226UINT32 twins_state::screen_update_twinsa(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
226227{
227   twins_state *state = screen.machine().driver_data<twins_state>();
228228   int y,x,count;
229229   int i;
230230   static const int xxx=320,yyy=204;
r17967r17968
234234   for (i=0;i<0x1000-3;i+=3)
235235   {
236236      int r,g,b;
237      r = state->m_pal[i];
238      g = state->m_pal[i+1];
239      b = state->m_pal[i+2];
237      r = m_pal[i];
238      g = m_pal[i+1];
239      b = m_pal[i+2];
240240
241241      palette_set_color_rgb(screen.machine(),i/3, pal6bit(r), pal6bit(g), pal6bit(b));
242242   }
243243
244244   count=0;
245   UINT8 *videoram = reinterpret_cast<UINT8 *>(state->m_videoram.target());
245   UINT8 *videoram = reinterpret_cast<UINT8 *>(m_videoram.target());
246246   for (y=0;y<yyy;y++)
247247   {
248248      for(x=0;x<xxx;x++)
r17967r17968
289289   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
290290   MCFG_SCREEN_SIZE(320,256)
291291   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1)
292   MCFG_SCREEN_UPDATE_STATIC(twinsa)
292   MCFG_SCREEN_UPDATE_DRIVER(twins_state, screen_update_twinsa)
293293
294294   MCFG_PALETTE_LENGTH(0x1000)
295295
trunk/src/mame/drivers/powerins.c
r17967r17968
356356   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
357357   MCFG_SCREEN_SIZE(320, 256)
358358   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0+16, 256-16-1)
359   MCFG_SCREEN_UPDATE_STATIC(powerins)
359   MCFG_SCREEN_UPDATE_DRIVER(powerins_state, screen_update_powerins)
360360
361361   MCFG_GFXDECODE(powerins)
362362   MCFG_PALETTE_LENGTH(2048)
trunk/src/mame/drivers/cultures.c
r17967r17968
5656   virtual void machine_start();
5757   virtual void machine_reset();
5858   virtual void video_start();
59   UINT32 screen_update_cultures(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5960};
6061
6162
r17967r17968
9899   m_bg2_tilemap->set_scrolldy(255, 0);
99100}
100101
101static SCREEN_UPDATE_IND16( cultures )
102UINT32 cultures_state::screen_update_cultures(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
102103{
103   cultures_state *state = screen.machine().driver_data<cultures_state>();
104104   int attr;
105105
106106   // tilemaps attributes
107   attr = (state->m_bg0_regs_x[3] & 1 ? TILEMAP_FLIPX : 0) | (state->m_bg0_regs_y[3] & 1 ? TILEMAP_FLIPY : 0);
108   state->m_bg0_tilemap->set_flip(attr);
107   attr = (m_bg0_regs_x[3] & 1 ? TILEMAP_FLIPX : 0) | (m_bg0_regs_y[3] & 1 ? TILEMAP_FLIPY : 0);
108   m_bg0_tilemap->set_flip(attr);
109109
110   attr = (state->m_bg1_regs_x[3] & 1 ? TILEMAP_FLIPX : 0) | (state->m_bg1_regs_y[3] & 1 ? TILEMAP_FLIPY : 0);
111   state->m_bg1_tilemap->set_flip(attr);
110   attr = (m_bg1_regs_x[3] & 1 ? TILEMAP_FLIPX : 0) | (m_bg1_regs_y[3] & 1 ? TILEMAP_FLIPY : 0);
111   m_bg1_tilemap->set_flip(attr);
112112
113   attr = (state->m_bg2_regs_x[3] & 1 ? TILEMAP_FLIPX : 0) | (state->m_bg2_regs_y[3] & 1 ? TILEMAP_FLIPY : 0);
114   state->m_bg2_tilemap->set_flip(attr);
113   attr = (m_bg2_regs_x[3] & 1 ? TILEMAP_FLIPX : 0) | (m_bg2_regs_y[3] & 1 ? TILEMAP_FLIPY : 0);
114   m_bg2_tilemap->set_flip(attr);
115115
116116   // tilemaps scrolls
117   state->m_bg0_tilemap->set_scrollx(0, (state->m_bg0_regs_x[2] << 8) + state->m_bg0_regs_x[0]);
118   state->m_bg1_tilemap->set_scrollx(0, (state->m_bg1_regs_x[2] << 8) + state->m_bg1_regs_x[0]);
119   state->m_bg2_tilemap->set_scrollx(0, (state->m_bg2_regs_x[2] << 8) + state->m_bg2_regs_x[0]);
120   state->m_bg0_tilemap->set_scrolly(0, (state->m_bg0_regs_y[2] << 8) + state->m_bg0_regs_y[0]);
121   state->m_bg1_tilemap->set_scrolly(0, (state->m_bg1_regs_y[2] << 8) + state->m_bg1_regs_y[0]);
122   state->m_bg2_tilemap->set_scrolly(0, (state->m_bg2_regs_y[2] << 8) + state->m_bg2_regs_y[0]);
117   m_bg0_tilemap->set_scrollx(0, (m_bg0_regs_x[2] << 8) + m_bg0_regs_x[0]);
118   m_bg1_tilemap->set_scrollx(0, (m_bg1_regs_x[2] << 8) + m_bg1_regs_x[0]);
119   m_bg2_tilemap->set_scrollx(0, (m_bg2_regs_x[2] << 8) + m_bg2_regs_x[0]);
120   m_bg0_tilemap->set_scrolly(0, (m_bg0_regs_y[2] << 8) + m_bg0_regs_y[0]);
121   m_bg1_tilemap->set_scrolly(0, (m_bg1_regs_y[2] << 8) + m_bg1_regs_y[0]);
122   m_bg2_tilemap->set_scrolly(0, (m_bg2_regs_y[2] << 8) + m_bg2_regs_y[0]);
123123
124   state->m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
125   state->m_bg0_tilemap->draw(bitmap, cliprect, 0, 0);
126   state->m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
124   m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
125   m_bg0_tilemap->draw(bitmap, cliprect, 0, 0);
126   m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
127127
128128   return 0;
129129}
r17967r17968
407407   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
408408   MCFG_SCREEN_SIZE(64*8, 32*8)
409409   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 30*8-1)
410   MCFG_SCREEN_UPDATE_STATIC(cultures)
410   MCFG_SCREEN_UPDATE_DRIVER(cultures_state, screen_update_cultures)
411411
412412   MCFG_GFXDECODE(culture)
413413   MCFG_PALETTE_LENGTH(0x2000)
trunk/src/mame/drivers/5clown.c
r17967r17968
486486   TILE_GET_INFO_MEMBER(get_fclown_tile_info);
487487   virtual void video_start();
488488   virtual void palette_init();
489   UINT32 screen_update_fclown(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
489490};
490491
491492
r17967r17968
537538}
538539
539540
540static SCREEN_UPDATE_IND16( fclown )
541UINT32 _5clown_state::screen_update_fclown(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
541542{
542   _5clown_state *state = screen.machine().driver_data<_5clown_state>();
543   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
543   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
544544   return 0;
545545}
546546
r17967r17968
10811081   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
10821082   MCFG_SCREEN_SIZE((39+1)*8, (31+1)*8)
10831083   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
1084   MCFG_SCREEN_UPDATE_STATIC(fclown)
1084   MCFG_SCREEN_UPDATE_DRIVER(_5clown_state, screen_update_fclown)
10851085
10861086   MCFG_GFXDECODE(fclown)
10871087   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/tgtpanic.c
r17967r17968
2323   required_shared_ptr<UINT8> m_ram;
2424   UINT8 m_color;
2525   DECLARE_WRITE8_MEMBER(color_w);
26   UINT32 screen_update_tgtpanic(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
2627};
2728
2829
r17967r17968
3233 *
3334 *************************************/
3435
35static SCREEN_UPDATE_RGB32( tgtpanic )
36UINT32 tgtpanic_state::screen_update_tgtpanic(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
3637{
37   tgtpanic_state *state = screen.machine().driver_data<tgtpanic_state>();
3838   UINT32 colors[4];
3939   UINT32 offs;
4040   UINT32 x, y;
4141
4242   colors[0] = 0;
4343   colors[1] = 0xffffffff;
44   colors[2] = MAKE_RGB(pal1bit(state->m_color >> 2), pal1bit(state->m_color >> 1), pal1bit(state->m_color >> 0));
45   colors[3] = MAKE_RGB(pal1bit(state->m_color >> 6), pal1bit(state->m_color >> 5), pal1bit(state->m_color >> 4));
44   colors[2] = MAKE_RGB(pal1bit(m_color >> 2), pal1bit(m_color >> 1), pal1bit(m_color >> 0));
45   colors[3] = MAKE_RGB(pal1bit(m_color >> 6), pal1bit(m_color >> 5), pal1bit(m_color >> 4));
4646
4747   for (offs = 0; offs < 0x2000; ++offs)
4848   {
49      UINT8 val = state->m_ram[offs];
49      UINT8 val = m_ram[offs];
5050
5151      y = (offs & 0x7f) << 1;
5252      x = (offs >> 7) << 2;
r17967r17968
142142   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* Unverified */
143143   MCFG_SCREEN_SIZE(256, 256)
144144   MCFG_SCREEN_VISIBLE_AREA(0, 192 - 1, 0, 192 - 1)
145   MCFG_SCREEN_UPDATE_STATIC(tgtpanic)
145   MCFG_SCREEN_UPDATE_DRIVER(tgtpanic_state, screen_update_tgtpanic)
146146MACHINE_CONFIG_END
147147
148148
trunk/src/mame/drivers/exedexes.c
r17967r17968
243243   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
244244   MCFG_SCREEN_SIZE(32*8, 32*8)
245245   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
246   MCFG_SCREEN_UPDATE_STATIC(exedexes)
246   MCFG_SCREEN_UPDATE_DRIVER(exedexes_state, screen_update_exedexes)
247247   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
248248
249249   MCFG_GFXDECODE(exedexes)
trunk/src/mame/drivers/seta2.c
r17967r17968
20362036   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
20372037   MCFG_SCREEN_SIZE(0x200, 0x200)
20382038   MCFG_SCREEN_VISIBLE_AREA(0x40, 0x1c0-1, 0x80, 0x170-1)
2039   MCFG_SCREEN_UPDATE_STATIC(seta2)
2040   MCFG_SCREEN_VBLANK_STATIC(seta2)
2039   MCFG_SCREEN_UPDATE_DRIVER(seta2_state, screen_update_seta2)
2040   MCFG_SCREEN_VBLANK_DRIVER(seta2_state, screen_eof_seta2)
20412041
20422042   MCFG_GFXDECODE(seta2)
20432043   MCFG_PALETTE_LENGTH(0x8000+0xf0)   // extra 0xf0 because we might draw 256-color object with 16-color granularity
r17967r17968
22312231   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))   // not accurate
22322232   MCFG_SCREEN_SIZE(0x200, 0x200)
22332233   MCFG_SCREEN_VISIBLE_AREA(0x0+1, 0x140-1+1, 0x80, 0x170-1)
2234   MCFG_SCREEN_UPDATE_STATIC(seta2)
2235   MCFG_SCREEN_VBLANK_STATIC(seta2)
2234   MCFG_SCREEN_UPDATE_DRIVER(seta2_state, screen_update_seta2)
2235   MCFG_SCREEN_VBLANK_DRIVER(seta2_state, screen_eof_seta2)
22362236
22372237   MCFG_GFXDECODE(funcube)
22382238   MCFG_PALETTE_LENGTH(0x8000+0xf0)   // extra 0xf0 because we might draw 256-color object with 16-color granularity
r17967r17968
22822282   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
22832283   MCFG_SCREEN_SIZE(0x200, 0x200)
22842284   MCFG_SCREEN_VISIBLE_AREA(0x40, 0x1c0-1, 0x80, 0x170-1)
2285   MCFG_SCREEN_UPDATE_STATIC(seta2)
2286   MCFG_SCREEN_VBLANK_STATIC(seta2)
2285   MCFG_SCREEN_UPDATE_DRIVER(seta2_state, screen_update_seta2)
2286   MCFG_SCREEN_VBLANK_DRIVER(seta2_state, screen_eof_seta2)
22872287
22882288   MCFG_GFXDECODE(funcube)
22892289   MCFG_PALETTE_LENGTH(0x8000+0xf0)   // extra 0xf0 because we might draw 256-color object with 16-color granularity
trunk/src/mame/drivers/flkatck.c
r17967r17968
236236   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
237237   MCFG_SCREEN_SIZE(37*8, 32*8)
238238   MCFG_SCREEN_VISIBLE_AREA(0*8, 35*8-1, 2*8, 30*8-1)
239   MCFG_SCREEN_UPDATE_STATIC(flkatck)
239   MCFG_SCREEN_UPDATE_DRIVER(flkatck_state, screen_update_flkatck)
240240
241241   MCFG_GFXDECODE(flkatck)
242242   MCFG_PALETTE_LENGTH(512)
trunk/src/mame/drivers/contra.c
r17967r17968
206206   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
207207   MCFG_SCREEN_SIZE(37*8, 32*8)
208208   MCFG_SCREEN_VISIBLE_AREA(0*8, 35*8-1, 2*8, 30*8-1)
209   MCFG_SCREEN_UPDATE_STATIC(contra)
209   MCFG_SCREEN_UPDATE_DRIVER(contra_state, screen_update_contra)
210210
211211   MCFG_GFXDECODE(contra)
212212   MCFG_PALETTE_LENGTH(2*8*16*16)
trunk/src/mame/drivers/paradise.c
r17967r17968
717717   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */   /* we're using PORT_VBLANK */)
718718   MCFG_SCREEN_SIZE(256, 256)
719719   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-1-16)
720   MCFG_SCREEN_UPDATE_STATIC(paradise)
720   MCFG_SCREEN_UPDATE_DRIVER(paradise_state, screen_update_paradise)
721721
722722   MCFG_GFXDECODE(paradise)
723723   MCFG_PALETTE_LENGTH(0x800 + 16)
r17967r17968
749749
750750   MCFG_GFXDECODE(torus)
751751   MCFG_SCREEN_MODIFY("screen")
752   MCFG_SCREEN_UPDATE_STATIC(torus)
752   MCFG_SCREEN_UPDATE_DRIVER(paradise_state, screen_update_torus)
753753
754754   MCFG_DEVICE_REMOVE("oki2")
755755MACHINE_CONFIG_END
r17967r17968
764764   MCFG_GFXDECODE(madball)
765765
766766   MCFG_SCREEN_MODIFY("screen")
767   MCFG_SCREEN_UPDATE_STATIC(madball)
767   MCFG_SCREEN_UPDATE_DRIVER(paradise_state, screen_update_madball)
768768
769769   MCFG_DEVICE_REMOVE("oki2")
770770MACHINE_CONFIG_END
trunk/src/mame/drivers/balsente.c
r17967r17968
12221222
12231223   MCFG_SCREEN_ADD("screen", RASTER)
12241224   MCFG_SCREEN_RAW_PARAMS(BALSENTE_PIXEL_CLOCK, BALSENTE_HTOTAL, BALSENTE_HBEND, BALSENTE_HBSTART, BALSENTE_VTOTAL, BALSENTE_VBEND, BALSENTE_VBSTART)
1225   MCFG_SCREEN_UPDATE_STATIC(balsente)
1225   MCFG_SCREEN_UPDATE_DRIVER(balsente_state, screen_update_balsente)
12261226
12271227   MCFG_PALETTE_LENGTH(1024)
12281228
trunk/src/mame/drivers/galpani3.c
r17967r17968
112112   {
113113   }
114114   virtual void video_start();
115   UINT32 screen_update_galpani3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
115116};
116117
117118
r17967r17968
188189}
189190
190191
191static SCREEN_UPDATE_RGB32(galpani3)
192UINT32 galpani3_state::screen_update_galpani3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
192193{
193   galpani3_state *state = screen.machine().driver_data<galpani3_state>();
194194   int x,y;
195195   UINT16* src1;
196196   UINT32* dst;
r17967r17968
199199
200200   bitmap.fill(0x0000, cliprect);
201201
202//  popmessage("%02x %02x", state->m_grap2_0->m_framebuffer_bright2, state->m_grap2_1->m_framebuffer_bright2);
202//  popmessage("%02x %02x", m_grap2_0->m_framebuffer_bright2, m_grap2_1->m_framebuffer_bright2);
203203
204204
205205
r17967r17968
207207      int drawy, drawx;
208208      for (drawy=0;drawy<512;drawy++)
209209      {
210         UINT16* srcline1 = state->m_grap2_0->m_framebuffer + ((drawy+state->m_grap2_0->m_framebuffer_scrolly+11)&0x1ff) * 0x200;
211         UINT16* srcline2 = state->m_grap2_1->m_framebuffer + ((drawy+state->m_grap2_1->m_framebuffer_scrolly+11)&0x1ff) * 0x200;
212         UINT16* srcline3 = state->m_grap2_2->m_framebuffer + ((drawy+state->m_grap2_2->m_framebuffer_scrolly+11)&0x1ff) * 0x200;
210         UINT16* srcline1 = m_grap2_0->m_framebuffer + ((drawy+m_grap2_0->m_framebuffer_scrolly+11)&0x1ff) * 0x200;
211         UINT16* srcline2 = m_grap2_1->m_framebuffer + ((drawy+m_grap2_1->m_framebuffer_scrolly+11)&0x1ff) * 0x200;
212         UINT16* srcline3 = m_grap2_2->m_framebuffer + ((drawy+m_grap2_2->m_framebuffer_scrolly+11)&0x1ff) * 0x200;
213213
214         UINT16*  priline  = state->m_priority_buffer + ((drawy+state->m_priority_buffer_scrolly+11)&0x1ff) * 0x200;
214         UINT16*  priline  = m_priority_buffer + ((drawy+m_priority_buffer_scrolly+11)&0x1ff) * 0x200;
215215
216216         for (drawx=0;drawx<512;drawx++)
217217         {
218            int srcoffs1 = (drawx+state->m_grap2_0->m_framebuffer_scrollx+67)&0x1ff;
219            int srcoffs2 = (drawx+state->m_grap2_1->m_framebuffer_scrollx+67)&0x1ff;
220            int srcoffs3 = (drawx+state->m_grap2_2->m_framebuffer_scrollx+67)&0x1ff;
218            int srcoffs1 = (drawx+m_grap2_0->m_framebuffer_scrollx+67)&0x1ff;
219            int srcoffs2 = (drawx+m_grap2_1->m_framebuffer_scrollx+67)&0x1ff;
220            int srcoffs3 = (drawx+m_grap2_2->m_framebuffer_scrollx+67)&0x1ff;
221221
222            int prioffs  = (drawx+state->m_priority_buffer_scrollx+66)&0x1ff;
222            int prioffs  = (drawx+m_priority_buffer_scrollx+66)&0x1ff;
223223
224224            UINT8 dat1 = srcline1[srcoffs1];
225225            UINT8 dat2 = srcline2[srcoffs2];
r17967r17968
234234            // this is all wrong
235235            if (pridat==0x0f) // relates to the area you've drawn over
236236            {
237               if (dat1 && state->m_grap2_0->m_framebuffer_enable)
237               if (dat1 && m_grap2_0->m_framebuffer_enable)
238238               {
239239                  dst[0] = paldata[dat1+0x4000];
240240               }
241241
242               if (dat2 && state->m_grap2_1->m_framebuffer_enable)
242               if (dat2 && m_grap2_1->m_framebuffer_enable)
243243               {
244244                  dst[0] = paldata[dat2+0x4100];
245245               }
r17967r17968
254254               /* this isn't right, but the registers have something to do with
255255                       alpha / mixing, and bit 0x8000 of the palette is DEFINITELY alpha
256256                       enable -- see fading in intro */
257               if (dat1 && state->m_grap2_0->m_framebuffer_enable)
257               if (dat1 && m_grap2_0->m_framebuffer_enable)
258258               {
259259                  UINT16 pen = dat1+0x4000;
260260                  UINT32 pal = paldata[pen];
r17967r17968
266266                     g = (pal & 0x0000ff00)>>8;
267267                     b = (pal & 0x000000ff)>>0;
268268
269                     r = (r * state->m_grap2_0->m_framebuffer_bright2) / 0xff;
270                     g = (g * state->m_grap2_0->m_framebuffer_bright2) / 0xff;
271                     b = (b * state->m_grap2_0->m_framebuffer_bright2) / 0xff;
269                     r = (r * m_grap2_0->m_framebuffer_bright2) / 0xff;
270                     g = (g * m_grap2_0->m_framebuffer_bright2) / 0xff;
271                     b = (b * m_grap2_0->m_framebuffer_bright2) / 0xff;
272272
273273                     pal = (r & 0x000000ff)<<16;
274274                     pal |=(g & 0x000000ff)<<8;
r17967r17968
282282                  }
283283               }
284284
285               if (dat2 && state->m_grap2_1->m_framebuffer_enable)
285               if (dat2 && m_grap2_1->m_framebuffer_enable)
286286               {
287287                  UINT16 pen = dat2+0x4100;
288288                  UINT32 pal = paldata[pen];
r17967r17968
294294                     g = (pal & 0x0000ff00)>>8;
295295                     b = (pal & 0x000000ff)>>0;
296296
297                     r = (r * state->m_grap2_1->m_framebuffer_bright2) / 0xff;
298                     g = (g * state->m_grap2_1->m_framebuffer_bright2) / 0xff;
299                     b = (b * state->m_grap2_1->m_framebuffer_bright2) / 0xff;
297                     r = (r * m_grap2_1->m_framebuffer_bright2) / 0xff;
298                     g = (g * m_grap2_1->m_framebuffer_bright2) / 0xff;
299                     b = (b * m_grap2_1->m_framebuffer_bright2) / 0xff;
300300
301301                     pal = (r & 0x000000ff)<<16;
302302                     pal |=(g & 0x000000ff)<<8;
r17967r17968
310310                  }
311311               }
312312
313               if (dat3 && state->m_grap2_2->m_framebuffer_enable)
313               if (dat3 && m_grap2_2->m_framebuffer_enable)
314314               {
315315                  dst[0] = paldata[dat3+0x4200];
316316               }
r17967r17968
344344   }
345345
346346
347   state->m_sprite_bitmap_1.fill(0x0000, cliprect);
347   m_sprite_bitmap_1.fill(0x0000, cliprect);
348348
349   state->m_spritegen->skns_draw_sprites(screen.machine(), state->m_sprite_bitmap_1, cliprect, &state->m_spriteram32[0], 0x4000, screen.machine().root_device().memregion("gfx1")->base(), screen.machine().root_device().memregion ("gfx1")->bytes(), state->m_spc_regs );
349   m_spritegen->skns_draw_sprites(screen.machine(), m_sprite_bitmap_1, cliprect, &m_spriteram32[0], 0x4000, screen.machine().root_device().memregion("gfx1")->base(), screen.machine().root_device().memregion ("gfx1")->bytes(), m_spc_regs );
350350
351351   // ignoring priority bits for now..
352352   for (y=0;y<240;y++)
353353   {
354      src1 = &state->m_sprite_bitmap_1.pix16(y);
354      src1 = &m_sprite_bitmap_1.pix16(y);
355355      dst =  &bitmap.pix32(y);
356356
357357      for (x=0;x<320;x++)
r17967r17968
518518   MCFG_SCREEN_SIZE(64*8, 64*8)
519519   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1)
520520   //MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 64*8-1)
521   MCFG_SCREEN_UPDATE_STATIC(galpani3)
521   MCFG_SCREEN_UPDATE_DRIVER(galpani3_state, screen_update_galpani3)
522522
523523   MCFG_EEPROM_93C46_ADD("eeprom")
524524
trunk/src/mame/drivers/itgambl2.c
r17967r17968
6969   virtual void machine_reset();
7070   virtual void video_start();
7171   virtual void palette_init();
72   UINT32 screen_update_itgambl2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
7273};
7374
7475
r17967r17968
8485}
8586
8687/* (dirty) debug code for looking 8bpps blitter-based gfxs */
87static SCREEN_UPDATE_RGB32( itgambl2 )
88UINT32 itgambl2_state::screen_update_itgambl2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
8889{
89   itgambl2_state *state = screen.machine().driver_data<itgambl2_state>();
9090   int x,y,count;
91   const UINT8 *blit_ram = state->memregion("gfx1")->base();
91   const UINT8 *blit_ram = memregion("gfx1")->base();
9292
9393   if(screen.machine().input().code_pressed(KEYCODE_Z))
94      state->m_test_x++;
94      m_test_x++;
9595
9696   if(screen.machine().input().code_pressed(KEYCODE_X))
97      state->m_test_x--;
97      m_test_x--;
9898
9999   if(screen.machine().input().code_pressed(KEYCODE_A))
100      state->m_test_y++;
100      m_test_y++;
101101
102102   if(screen.machine().input().code_pressed(KEYCODE_S))
103      state->m_test_y--;
103      m_test_y--;
104104
105105   if(screen.machine().input().code_pressed(KEYCODE_Q))
106      state->m_start_offs+=0x200;
106      m_start_offs+=0x200;
107107
108108   if(screen.machine().input().code_pressed(KEYCODE_W))
109      state->m_start_offs-=0x200;
109      m_start_offs-=0x200;
110110
111111   if(screen.machine().input().code_pressed(KEYCODE_E))
112      state->m_start_offs++;
112      m_start_offs++;
113113
114114   if(screen.machine().input().code_pressed(KEYCODE_R))
115      state->m_start_offs--;
115      m_start_offs--;
116116
117   popmessage("%d %d %04x",state->m_test_x,state->m_test_y,state->m_start_offs);
117   popmessage("%d %d %04x",m_test_x,m_test_y,m_start_offs);
118118
119119   bitmap.fill(get_black_pen(screen.machine()), cliprect);
120120
121   count = (state->m_start_offs);
121   count = (m_start_offs);
122122
123   for(y=0;y<state->m_test_y;y++)
123   for(y=0;y<m_test_y;y++)
124124   {
125      for(x=0;x<state->m_test_x;x++)
125      for(x=0;x<m_test_x;x++)
126126      {
127127         UINT32 color;
128128
r17967r17968
273273   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
274274   MCFG_SCREEN_SIZE(512, 256)
275275   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
276   MCFG_SCREEN_UPDATE_STATIC( itgambl2 )
276   MCFG_SCREEN_UPDATE_DRIVER(itgambl2_state, screen_update_itgambl2)
277277
278278
279279   MCFG_GFXDECODE(itgambl2)
trunk/src/mame/drivers/fitfight.c
r17967r17968
751751   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
752752   MCFG_SCREEN_SIZE(40*8, 32*8)
753753   MCFG_SCREEN_VISIBLE_AREA(2*8, 39*8-1, 2*8, 30*8-1)
754   MCFG_SCREEN_UPDATE_STATIC(fitfight)
754   MCFG_SCREEN_UPDATE_DRIVER(fitfight_state, screen_update_fitfight)
755755
756756   MCFG_PALETTE_LENGTH(0x800)
757757
r17967r17968
776776   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
777777   MCFG_SCREEN_SIZE(40*8, 32*8)
778778   MCFG_SCREEN_VISIBLE_AREA(2*8, 39*8-1, 2*8, 30*8-1)
779   MCFG_SCREEN_UPDATE_STATIC(fitfight)
779   MCFG_SCREEN_UPDATE_DRIVER(fitfight_state, screen_update_fitfight)
780780
781781   MCFG_PALETTE_LENGTH(0x2000)
782782
trunk/src/mame/drivers/terracre.c
r17967r17968
542542   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
543543   MCFG_SCREEN_SIZE(32*8, 32*8)
544544   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
545   MCFG_SCREEN_UPDATE_STATIC(amazon)
545   MCFG_SCREEN_UPDATE_DRIVER(terracre_state, screen_update_amazon)
546546
547547   MCFG_GFXDECODE(terracre)
548548   MCFG_PALETTE_LENGTH(1*16+16*16+16*256)
r17967r17968
575575   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
576576   MCFG_SCREEN_SIZE(32*8, 32*8)
577577   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
578   MCFG_SCREEN_UPDATE_STATIC(amazon)
578   MCFG_SCREEN_UPDATE_DRIVER(terracre_state, screen_update_amazon)
579579
580580   MCFG_GFXDECODE(terracre)
581581   MCFG_PALETTE_LENGTH(1*16+16*16+16*256)
r17967r17968
608608   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
609609   MCFG_SCREEN_SIZE(32*8, 32*8)
610610   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
611   MCFG_SCREEN_UPDATE_STATIC(amazon)
611   MCFG_SCREEN_UPDATE_DRIVER(terracre_state, screen_update_amazon)
612612
613613   MCFG_GFXDECODE(terracre)
614614   MCFG_PALETTE_LENGTH(1*16+16*16+16*256)
trunk/src/mame/drivers/ddribble.c
r17967r17968
302302   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
303303/*  MCFG_SCREEN_SIZE(64*8, 32*8)
304304    MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) */
305   MCFG_SCREEN_UPDATE_STATIC(ddribble)
305   MCFG_SCREEN_UPDATE_DRIVER(ddribble_state, screen_update_ddribble)
306306
307307   MCFG_GFXDECODE(ddribble)
308308   MCFG_PALETTE_LENGTH(64 + 256)
trunk/src/mame/drivers/meyc8080.c
r17967r17968
8484   DECLARE_WRITE8_MEMBER(meyc8080_dac_2_w);
8585   DECLARE_WRITE8_MEMBER(meyc8080_dac_3_w);
8686   DECLARE_WRITE8_MEMBER(meyc8080_dac_4_w);
87   UINT32 screen_update_meyc8080(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
8788};
8889
8990
r17967r17968
9394 *
9495 *************************************/
9596
96static SCREEN_UPDATE_RGB32( meyc8080 )
97UINT32 meyc8080_state::screen_update_meyc8080(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
9798{
98   meyc8080_state *state = screen.machine().driver_data<meyc8080_state>();
9999   offs_t offs;
100100
101   for (offs = 0; offs < state->m_videoram_0.bytes(); offs++)
101   for (offs = 0; offs < m_videoram_0.bytes(); offs++)
102102   {
103103      int i;
104104
105105      UINT8 y = offs >> 5;
106106      UINT8 x = offs << 3;
107107
108      UINT8 data0 = state->m_videoram_0[offs];
109      UINT8 data1 = state->m_videoram_1[offs];
110      UINT8 data2 = state->m_videoram_2[offs];
108      UINT8 data0 = m_videoram_0[offs];
109      UINT8 data1 = m_videoram_1[offs];
110      UINT8 data2 = m_videoram_2[offs];
111111
112112      /* weird equations, but it matches every flyer screenshot -
113113           perhaphs they used a look-up PROM? */
r17967r17968
588588   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 32*8-1)
589589   MCFG_SCREEN_REFRESH_RATE(60)
590590   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
591   MCFG_SCREEN_UPDATE_STATIC(meyc8080)
591   MCFG_SCREEN_UPDATE_DRIVER(meyc8080_state, screen_update_meyc8080)
592592
593593   /* audio hardware */
594594   MCFG_SPEAKER_STANDARD_MONO("mono")
trunk/src/mame/drivers/malzak.c
r17967r17968
366366   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
367367   MCFG_SCREEN_SIZE(480, 512)   /* vert size is a guess */
368368   MCFG_SCREEN_VISIBLE_AREA(0, 479, 0, 479)
369   MCFG_SCREEN_UPDATE_STATIC(malzak)
369   MCFG_SCREEN_UPDATE_DRIVER(malzak_state, screen_update_malzak)
370370
371371   MCFG_GFXDECODE(malzak)
372372   MCFG_PALETTE_LENGTH(128)
trunk/src/mame/drivers/deco32.c
r17967r17968
17481748   MCFG_SCREEN_REFRESH_RATE(60)
17491749   MCFG_SCREEN_SIZE(42*8, 32*8)
17501750   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
1751   MCFG_SCREEN_UPDATE_STATIC(captaven)
1752   MCFG_SCREEN_VBLANK_STATIC(captaven)
1751   MCFG_SCREEN_UPDATE_DRIVER(deco32_state, screen_update_captaven)
1752   MCFG_SCREEN_VBLANK_DRIVER(deco32_state, screen_eof_captaven)
17531753
17541754   MCFG_GFXDECODE(captaven)
17551755   MCFG_PALETTE_LENGTH(2048)
r17967r17968
17991799   MCFG_SCREEN_REFRESH_RATE(60)
18001800   MCFG_SCREEN_SIZE(42*8, 32*8)
18011801   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
1802   MCFG_SCREEN_UPDATE_STATIC(fghthist)
1802   MCFG_SCREEN_UPDATE_DRIVER(deco32_state, screen_update_fghthist)
18031803
18041804   MCFG_GFXDECODE(fghthist)
18051805   MCFG_PALETTE_LENGTH(2048)
r17967r17968
18451845   MCFG_SCREEN_REFRESH_RATE(60)
18461846   MCFG_SCREEN_SIZE(42*8, 32*8)
18471847   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
1848   MCFG_SCREEN_UPDATE_STATIC(fghthist)
1848   MCFG_SCREEN_UPDATE_DRIVER(deco32_state, screen_update_fghthist)
18491849
18501850   MCFG_GFXDECODE(fghthist)
18511851   MCFG_PALETTE_LENGTH(2048)
r17967r17968
19581958   MCFG_SCREEN_REFRESH_RATE(60)
19591959   MCFG_SCREEN_SIZE(42*8, 32*8)
19601960   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
1961   MCFG_SCREEN_UPDATE_STATIC(dragngun)
1962   MCFG_SCREEN_VBLANK_STATIC(dragngun)
1961   MCFG_SCREEN_UPDATE_DRIVER(dragngun_state, screen_update_dragngun)
1962   MCFG_SCREEN_VBLANK_DRIVER(dragngun_state, screen_eof_dragngun)
19631963
19641964   MCFG_BUFFERED_SPRITERAM32_ADD("spriteram")
19651965
r17967r17968
20342034   MCFG_SCREEN_REFRESH_RATE(60)
20352035   MCFG_SCREEN_SIZE(42*8, 32*8+22)
20362036   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
2037   MCFG_SCREEN_UPDATE_STATIC(dragngun)
2038   MCFG_SCREEN_VBLANK_STATIC(dragngun)
2037   MCFG_SCREEN_UPDATE_DRIVER(dragngun_state, screen_update_dragngun)
2038   MCFG_SCREEN_VBLANK_DRIVER(dragngun_state, screen_eof_dragngun)
20392039
20402040   MCFG_BUFFERED_SPRITERAM32_ADD("spriteram")
20412041
r17967r17968
21192119   MCFG_SCREEN_SIZE(42*8, 32*8)
21202120   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
21212121
2122   MCFG_SCREEN_UPDATE_STATIC(nslasher)
2122   MCFG_SCREEN_UPDATE_DRIVER(deco32_state, screen_update_nslasher)
21232123
21242124   MCFG_DECO16IC_ADD("tilegen1", tattass_deco16ic_tilegen1_intf)
21252125   MCFG_DECO16IC_ADD("tilegen2", tattass_deco16ic_tilegen2_intf)
r17967r17968
21582158   MCFG_SCREEN_REFRESH_RATE(60)
21592159   MCFG_SCREEN_SIZE(42*8, 32*8)
21602160   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
2161   MCFG_SCREEN_UPDATE_STATIC(nslasher)
2161   MCFG_SCREEN_UPDATE_DRIVER(deco32_state, screen_update_nslasher)
21622162
21632163   MCFG_DECO16IC_ADD("tilegen1", tattass_deco16ic_tilegen1_intf)
21642164   MCFG_DECO16IC_ADD("tilegen2", tattass_deco16ic_tilegen2_intf)
trunk/src/mame/drivers/midzeus.c
r17967r17968
11021102
11031103   MCFG_SCREEN_ADD("screen", RASTER)
11041104   MCFG_SCREEN_RAW_PARAMS(MIDZEUS_VIDEO_CLOCK/8, 529, 0, 400, 278, 0, 256)
1105   MCFG_SCREEN_UPDATE_STATIC(midzeus)
1105   MCFG_SCREEN_UPDATE_DRIVER(midzeus_state, screen_update_midzeus)
11061106
11071107   MCFG_VIDEO_START_OVERRIDE(midzeus_state,midzeus)
11081108
r17967r17968
11401140   /* video hardware */
11411141   MCFG_SCREEN_ADD("screen", RASTER)
11421142   MCFG_SCREEN_RAW_PARAMS(MIDZEUS_VIDEO_CLOCK/4, 666, 0, 512, 438, 0, 400)
1143   MCFG_SCREEN_UPDATE_STATIC(midzeus2)
1143   MCFG_SCREEN_UPDATE_DRIVER(midzeus_state, screen_update_midzeus2)
11441144
11451145   MCFG_VIDEO_START_OVERRIDE(midzeus_state,midzeus2)
11461146
trunk/src/mame/drivers/drw80pkr.c
r17967r17968
7070   virtual void machine_start();
7171   virtual void video_start();
7272   virtual void palette_init();
73   UINT32 screen_update_drw80pkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7374};
7475
7576
r17967r17968
339340   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);
340341}
341342
342static SCREEN_UPDATE_IND16( drw80pkr )
343UINT32 drw80pkr_state::screen_update_drw80pkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
343344{
344   drw80pkr_state *state = screen.machine().driver_data<drw80pkr_state>();
345   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
345   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
346346
347347   return 0;
348348}
r17967r17968
477477   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
478478   MCFG_SCREEN_SIZE((31+1)*8, (31+1)*8)
479479   MCFG_SCREEN_VISIBLE_AREA(0*8, 24*8-1, 0*8, 27*8-1)
480   MCFG_SCREEN_UPDATE_STATIC(drw80pkr)
480   MCFG_SCREEN_UPDATE_DRIVER(drw80pkr_state, screen_update_drw80pkr)
481481
482482   MCFG_GFXDECODE(drw80pkr)
483483   MCFG_PALETTE_LENGTH(16*16)
trunk/src/mame/drivers/argus.c
r17967r17968
559559   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)   /* This value is referred to psychic5 driver */)
560560   MCFG_SCREEN_SIZE(32*16, 32*16)
561561   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
562   MCFG_SCREEN_UPDATE_STATIC(argus)
562   MCFG_SCREEN_UPDATE_DRIVER(argus_state, screen_update_argus)
563563
564564   MCFG_GFXDECODE(argus)
565565   MCFG_PALETTE_LENGTH(896)
r17967r17968
603603   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)   /* This value is referred to psychic5 driver */)
604604   MCFG_SCREEN_SIZE(32*16, 32*16)
605605   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
606   MCFG_SCREEN_UPDATE_STATIC(valtric)
606   MCFG_SCREEN_UPDATE_DRIVER(argus_state, screen_update_valtric)
607607
608608   MCFG_GFXDECODE(valtric)
609609   MCFG_PALETTE_LENGTH(768)
r17967r17968
647647   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)   /* This value is taken from psychic5 driver */)
648648   MCFG_SCREEN_SIZE(32*16, 32*16)
649649   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
650   MCFG_SCREEN_UPDATE_STATIC(butasan)
650   MCFG_SCREEN_UPDATE_DRIVER(argus_state, screen_update_butasan)
651651
652652   MCFG_GFXDECODE(butasan)
653653   MCFG_PALETTE_LENGTH(768)
trunk/src/mame/drivers/superdq.c
r17967r17968
5151   virtual void machine_reset();
5252   virtual void video_start();
5353   virtual void palette_init();
54   UINT32 screen_update_superdq(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
5455};
5556
5657TILE_GET_INFO_MEMBER(superdq_state::get_tile_info)
r17967r17968
6667   m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(superdq_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
6768}
6869
69static SCREEN_UPDATE_RGB32( superdq )
70UINT32 superdq_state::screen_update_superdq(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
7071{
71   superdq_state *state = screen.machine().driver_data<superdq_state>();
7272
73   state->m_tilemap->draw(bitmap, cliprect, 0, 0);
73   m_tilemap->draw(bitmap, cliprect, 0, 0);
7474
7575   return 0;
7676}
r17967r17968
349349
350350
351351   MCFG_LASERDISC_LDV1000_ADD("laserdisc")
352   MCFG_LASERDISC_OVERLAY_STATIC(256, 256, superdq)
352   MCFG_LASERDISC_OVERLAY_DRIVER(256, 256, superdq_state, screen_update_superdq)
353353
354354   /* video hardware */
355355   MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc")
trunk/src/mame/drivers/bestleag.c
r17967r17968
5151   TILE_GET_INFO_MEMBER(get_fg_tile_info);
5252   TILEMAP_MAPPER_MEMBER(bsb_bg_scan);
5353   virtual void video_start();
54   UINT32 screen_update_bestleag(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
55   UINT32 screen_update_bestleaw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5456};
5557
5658
r17967r17968
172174   }
173175}
174176
175static SCREEN_UPDATE_IND16(bestleag)
177UINT32 bestleag_state::screen_update_bestleag(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
176178{
177   bestleag_state *state = screen.machine().driver_data<bestleag_state>();
178   state->m_bg_tilemap->set_scrollx(0,(state->m_vregs[0x00/2] & 0xfff) + (state->m_vregs[0x08/2] & 0x7) - 3);
179   state->m_bg_tilemap->set_scrolly(0,state->m_vregs[0x02/2]);
180   state->m_tx_tilemap->set_scrollx(0,state->m_vregs[0x04/2]);
181   state->m_tx_tilemap->set_scrolly(0,state->m_vregs[0x06/2]);
182   state->m_fg_tilemap->set_scrollx(0,state->m_vregs[0x08/2] & 0xfff8);
183   state->m_fg_tilemap->set_scrolly(0,state->m_vregs[0x0a/2]);
179   m_bg_tilemap->set_scrollx(0,(m_vregs[0x00/2] & 0xfff) + (m_vregs[0x08/2] & 0x7) - 3);
180   m_bg_tilemap->set_scrolly(0,m_vregs[0x02/2]);
181   m_tx_tilemap->set_scrollx(0,m_vregs[0x04/2]);
182   m_tx_tilemap->set_scrolly(0,m_vregs[0x06/2]);
183   m_fg_tilemap->set_scrollx(0,m_vregs[0x08/2] & 0xfff8);
184   m_fg_tilemap->set_scrolly(0,m_vregs[0x0a/2]);
184185
185   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
186   state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
186   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
187   m_fg_tilemap->draw(bitmap, cliprect, 0,0);
187188   draw_sprites(screen.machine(),bitmap,cliprect);
188   state->m_tx_tilemap->draw(bitmap, cliprect, 0,0);
189   m_tx_tilemap->draw(bitmap, cliprect, 0,0);
189190   return 0;
190191}
191192
192static SCREEN_UPDATE_IND16(bestleaw)
193UINT32 bestleag_state::screen_update_bestleaw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
193194{
194   bestleag_state *state = screen.machine().driver_data<bestleag_state>();
195   state->m_bg_tilemap->set_scrollx(0,state->m_vregs[0x08/2]);
196   state->m_bg_tilemap->set_scrolly(0,state->m_vregs[0x0a/2]);
197   state->m_tx_tilemap->set_scrollx(0,state->m_vregs[0x00/2]);
198   state->m_tx_tilemap->set_scrolly(0,state->m_vregs[0x02/2]);
199   state->m_fg_tilemap->set_scrollx(0,state->m_vregs[0x04/2]);
200   state->m_fg_tilemap->set_scrolly(0,state->m_vregs[0x06/2]);
195   m_bg_tilemap->set_scrollx(0,m_vregs[0x08/2]);
196   m_bg_tilemap->set_scrolly(0,m_vregs[0x0a/2]);
197   m_tx_tilemap->set_scrollx(0,m_vregs[0x00/2]);
198   m_tx_tilemap->set_scrolly(0,m_vregs[0x02/2]);
199   m_fg_tilemap->set_scrollx(0,m_vregs[0x04/2]);
200   m_fg_tilemap->set_scrolly(0,m_vregs[0x06/2]);
201201
202   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
203   state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
202   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
203   m_fg_tilemap->draw(bitmap, cliprect, 0,0);
204204   draw_sprites(screen.machine(),bitmap,cliprect);
205   state->m_tx_tilemap->draw(bitmap, cliprect, 0,0);
205   m_tx_tilemap->draw(bitmap, cliprect, 0,0);
206206   return 0;
207207}
208208
r17967r17968
372372   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
373373   MCFG_SCREEN_SIZE(32*8, 32*8)
374374   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
375   MCFG_SCREEN_UPDATE_STATIC(bestleag)
375   MCFG_SCREEN_UPDATE_DRIVER(bestleag_state, screen_update_bestleag)
376376
377377   MCFG_GFXDECODE(bestleag)
378378   MCFG_PALETTE_LENGTH(0x800)
r17967r17968
387387
388388static MACHINE_CONFIG_DERIVED( bestleaw, bestleag )
389389   MCFG_SCREEN_MODIFY("screen")
390   MCFG_SCREEN_UPDATE_STATIC(bestleaw)
390   MCFG_SCREEN_UPDATE_DRIVER(bestleag_state, screen_update_bestleaw)
391391MACHINE_CONFIG_END
392392
393393
trunk/src/mame/drivers/zaxxon.c
r17967r17968
973973
974974   MCFG_SCREEN_ADD("screen", RASTER)
975975   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
976   MCFG_SCREEN_UPDATE_STATIC(zaxxon)
976   MCFG_SCREEN_UPDATE_DRIVER(zaxxon_state, screen_update_zaxxon)
977977
978978MACHINE_CONFIG_END
979979
r17967r17968
990990
991991   /* video hardware */
992992   MCFG_SCREEN_MODIFY("screen")
993   MCFG_SCREEN_UPDATE_STATIC(futspy)
993   MCFG_SCREEN_UPDATE_DRIVER(zaxxon_state, screen_update_futspy)
994994
995995   /* sound hardware */
996996   MCFG_SPEAKER_STANDARD_MONO("mono")
r17967r17968
10081008   /* video hardware */
10091009   MCFG_VIDEO_START_OVERRIDE(zaxxon_state,razmataz)
10101010   MCFG_SCREEN_MODIFY("screen")
1011   MCFG_SCREEN_UPDATE_STATIC(razmataz)
1011   MCFG_SCREEN_UPDATE_DRIVER(zaxxon_state, screen_update_razmataz)
10121012
10131013   /* sound hardware */
10141014   MCFG_SPEAKER_STANDARD_MONO("mono")
r17967r17968
10321032   MCFG_PALETTE_LENGTH(512)
10331033   MCFG_VIDEO_START_OVERRIDE(zaxxon_state,congo)
10341034   MCFG_SCREEN_MODIFY("screen")
1035   MCFG_SCREEN_UPDATE_STATIC(congo)
1035   MCFG_SCREEN_UPDATE_DRIVER(zaxxon_state, screen_update_congo)
10361036
10371037   /* sound hardware */
10381038   MCFG_SPEAKER_STANDARD_MONO("mono")
trunk/src/mame/drivers/norautp.c
r17967r17968
563563}
564564
565565
566static SCREEN_UPDATE_IND16( norautp )
566UINT32 norautp_state::screen_update_norautp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
567567{
568   norautp_state *state = screen.machine().driver_data<norautp_state>();
569568   int x, y, count;
570569
571570   count = 0;
r17967r17968
579578      {
580579         for(x = 0; x < 16; x++)
581580         {
582            int tile = state->m_np_vram[count] & 0x3f;
583            int colour = (state->m_np_vram[count] & 0xc0) >> 6;
581            int tile = m_np_vram[count] & 0x3f;
582            int colour = (m_np_vram[count] & 0xc0) >> 6;
584583
585584            drawgfx_opaque(bitmap,cliprect, screen.machine().gfx[1], tile, colour, 0, 0, (x * 32) + 8, y * 32);
586585
r17967r17968
591590      {
592591         for(x = 0; x < 32; x++)
593592         {
594            int tile = state->m_np_vram[count] & 0x3f;
595            int colour = (state->m_np_vram[count] & 0xc0) >> 6;
593            int tile = m_np_vram[count] & 0x3f;
594            int colour = (m_np_vram[count] & 0xc0) >> 6;
596595
597596            drawgfx_opaque(bitmap,cliprect, screen.machine().gfx[0], tile, colour, 0, 0, x * 16, y * 32);
598597
r17967r17968
12651264   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
12661265   MCFG_SCREEN_SIZE(32*16, 32*16)
12671266   MCFG_SCREEN_VISIBLE_AREA(2*16, 31*16-1, (0*16) + 8, 16*16-1)   /* the hardware clips the top 8 pixels */
1268   MCFG_SCREEN_UPDATE_STATIC(norautp)
1267   MCFG_SCREEN_UPDATE_DRIVER(norautp_state, screen_update_norautp)
12691268
12701269   MCFG_GFXDECODE(norautp)
12711270
trunk/src/mame/drivers/shangkid.c
r17967r17968
384384   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
385385   MCFG_SCREEN_SIZE(40*8, 28*8)
386386   MCFG_SCREEN_VISIBLE_AREA(16, 319-16, 0, 223)
387   MCFG_SCREEN_UPDATE_STATIC(shangkid)
387   MCFG_SCREEN_UPDATE_DRIVER(shangkid_state, screen_update_shangkid)
388388
389389   MCFG_GFXDECODE(chinhero)
390390   MCFG_PALETTE_LENGTH(256)
r17967r17968
463463   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
464464   MCFG_SCREEN_SIZE(256+32, 256)
465465   MCFG_SCREEN_VISIBLE_AREA(0, 255+32, 16, 255-16)
466   MCFG_SCREEN_UPDATE_STATIC(dynamski)
466   MCFG_SCREEN_UPDATE_DRIVER(shangkid_state, screen_update_dynamski)
467467
468468   MCFG_GFXDECODE(dynamski)
469469   MCFG_PALETTE_LENGTH(16*4+16*4)
trunk/src/mame/drivers/shtzone.c
r17967r17968
5858   virtual void machine_start();
5959   virtual void machine_reset();
6060   virtual void video_start();
61   UINT32 screen_update_shtzone(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6162};
6263
6364static ADDRESS_MAP_START( shtzone_map, AS_PROGRAM, 8, shtzone_state )
r17967r17968
8687}
8788
8889
89SCREEN_UPDATE_IND16( shtzone )
90UINT32 shtzone_state::screen_update_shtzone(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
9091{
9192
9293   return 0;
r17967r17968
108109   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
109110   MCFG_SCREEN_SIZE(256, 256)
110111   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1)
111   MCFG_SCREEN_UPDATE_STATIC(shtzone)
112   MCFG_SCREEN_UPDATE_DRIVER(shtzone_state, screen_update_shtzone)
112113
113114   MCFG_PALETTE_LENGTH(0x100)
114115
trunk/src/mame/drivers/fastfred.c
r17967r17968
659659   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))   //CLOCK/16/60
660660   MCFG_SCREEN_SIZE(32*8, 32*8)
661661   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
662   MCFG_SCREEN_UPDATE_STATIC(fastfred)
662   MCFG_SCREEN_UPDATE_DRIVER(fastfred_state, screen_update_fastfred)
663663
664664   MCFG_GFXDECODE(fastfred)
665665   MCFG_PALETTE_LENGTH(32*8)
r17967r17968
706706
707707   MCFG_VIDEO_START_OVERRIDE(fastfred_state,imago)
708708   MCFG_SCREEN_MODIFY("screen")
709   MCFG_SCREEN_UPDATE_STATIC(imago)
709   MCFG_SCREEN_UPDATE_DRIVER(fastfred_state, screen_update_imago)
710710MACHINE_CONFIG_END
711711
712712#undef CLOCK
trunk/src/mame/drivers/karnov.c
r17967r17968
820820   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
821821   MCFG_SCREEN_SIZE(32*8, 32*8)
822822   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
823   MCFG_SCREEN_UPDATE_STATIC(karnov)
823   MCFG_SCREEN_UPDATE_DRIVER(karnov_state, screen_update_karnov)
824824
825825   MCFG_GFXDECODE(karnov)
826826   MCFG_PALETTE_LENGTH(1024)
r17967r17968
861861   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
862862   MCFG_SCREEN_SIZE(32*8, 32*8)
863863   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
864   MCFG_SCREEN_UPDATE_STATIC(karnov)
864   MCFG_SCREEN_UPDATE_DRIVER(karnov_state, screen_update_karnov)
865865
866866   MCFG_GFXDECODE(karnov)
867867   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/lwings.c
r17967r17968
798798   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
799799   MCFG_SCREEN_SIZE(32*8, 32*8)
800800   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
801   MCFG_SCREEN_UPDATE_STATIC(lwings)
801   MCFG_SCREEN_UPDATE_DRIVER(lwings_state, screen_update_lwings)
802802   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
803803
804804   MCFG_GFXDECODE(lwings)
r17967r17968
841841
842842   MCFG_VIDEO_START_OVERRIDE(lwings_state,trojan)
843843   MCFG_SCREEN_MODIFY("screen")
844   MCFG_SCREEN_UPDATE_STATIC(trojan)
844   MCFG_SCREEN_UPDATE_DRIVER(lwings_state, screen_update_trojan)
845845
846846   /* sound hardware */
847847   MCFG_SOUND_ADD("5205", MSM5205, XTAL_384kHz)   /* verified on PCB */
trunk/src/mame/drivers/punchout.c
r17967r17968
962962   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
963963   MCFG_SCREEN_SIZE(32*8, 32*8)
964964   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
965   MCFG_SCREEN_UPDATE_STATIC(punchout_top)
965   MCFG_SCREEN_UPDATE_DRIVER(punchout_state, screen_update_punchout_top)
966966
967967   MCFG_SCREEN_ADD("bottom", RASTER)
968968   MCFG_SCREEN_REFRESH_RATE(60)
969969   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
970970   MCFG_SCREEN_SIZE(32*8, 32*8)
971971   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
972   MCFG_SCREEN_UPDATE_STATIC(punchout_bottom)
972   MCFG_SCREEN_UPDATE_DRIVER(punchout_state, screen_update_punchout_bottom)
973973
974974
975975   /* sound hardware */
r17967r17968
996996
997997   MCFG_VIDEO_START_OVERRIDE(punchout_state,armwrest)
998998   MCFG_SCREEN_MODIFY("top")
999   MCFG_SCREEN_UPDATE_STATIC(armwrest_top)
999   MCFG_SCREEN_UPDATE_DRIVER(punchout_state, screen_update_armwrest_top)
10001000   MCFG_SCREEN_MODIFY("bottom")
1001   MCFG_SCREEN_UPDATE_STATIC(armwrest_bottom)
1001   MCFG_SCREEN_UPDATE_DRIVER(punchout_state, screen_update_armwrest_bottom)
10021002MACHINE_CONFIG_END
10031003
10041004
trunk/src/mame/drivers/kopunch.c
r17967r17968
198198   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
199199   MCFG_SCREEN_SIZE(32*8, 32*8)
200200   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
201   MCFG_SCREEN_UPDATE_STATIC(kopunch)
201   MCFG_SCREEN_UPDATE_DRIVER(kopunch_state, screen_update_kopunch)
202202
203203   MCFG_GFXDECODE(kopunch)
204204   MCFG_PALETTE_LENGTH(8)
trunk/src/mame/drivers/news.c
r17967r17968
139139   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
140140   MCFG_SCREEN_SIZE(256, 256)
141141   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1)
142   MCFG_SCREEN_UPDATE_STATIC(news)
142   MCFG_SCREEN_UPDATE_DRIVER(news_state, screen_update_news)
143143
144144   MCFG_GFXDECODE(news)
145145   MCFG_PALETTE_LENGTH(0x100)
trunk/src/mame/drivers/atvtrack.c
r17967r17968
8585   virtual void machine_start();
8686   virtual void machine_reset();
8787   virtual void video_start();
88   UINT32 screen_update_atvtrack(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
8889};
8990
9091static void logbinary(UINT32 data,int high=31,int low=0)
r17967r17968
318319{
319320}
320321
321SCREEN_UPDATE_RGB32(atvtrack)
322UINT32 atvtrack_state::screen_update_atvtrack(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
322323{
323324   return 0;
324325}
r17967r17968
401402   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))  /* not accurate */
402403   MCFG_SCREEN_SIZE(640, 480)
403404   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
404   MCFG_SCREEN_UPDATE_STATIC(atvtrack)
405   MCFG_SCREEN_UPDATE_DRIVER(atvtrack_state, screen_update_atvtrack)
405406
406407   MCFG_PALETTE_LENGTH(0x1000)
407408
trunk/src/mame/drivers/cclimber.c
r17967r17968
997997   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
998998   MCFG_SCREEN_SIZE(32*8, 32*8)
999999   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1000   MCFG_SCREEN_UPDATE_STATIC(cclimber)
1000   MCFG_SCREEN_UPDATE_DRIVER(cclimber_state, screen_update_cclimber)
10011001
10021002   MCFG_GFXDECODE(cclimber)
10031003   MCFG_PALETTE_LENGTH(16*4+8*4)
r17967r17968
10471047   MCFG_PALETTE_LENGTH(16*4+8*4+256)
10481048   MCFG_PALETTE_INIT_OVERRIDE(cclimber_state,yamato)
10491049   MCFG_SCREEN_MODIFY("screen")
1050   MCFG_SCREEN_UPDATE_STATIC(yamato)
1050   MCFG_SCREEN_UPDATE_DRIVER(cclimber_state, screen_update_yamato)
10511051
10521052   /* audio hardware */
10531053   MCFG_SPEAKER_STANDARD_MONO("mono")
r17967r17968
10731073
10741074   MCFG_VIDEO_START_OVERRIDE(cclimber_state,toprollr)
10751075   MCFG_SCREEN_MODIFY("screen")
1076   MCFG_SCREEN_UPDATE_STATIC(toprollr)
1076   MCFG_SCREEN_UPDATE_DRIVER(cclimber_state, screen_update_toprollr)
10771077MACHINE_CONFIG_END
10781078
10791079
r17967r17968
10951095   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
10961096   MCFG_SCREEN_SIZE(32*8, 32*8)
10971097   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1098   MCFG_SCREEN_UPDATE_STATIC(swimmer)
1098   MCFG_SCREEN_UPDATE_DRIVER(cclimber_state, screen_update_swimmer)
10991099
11001100   MCFG_GFXDECODE(swimmer)
11011101   MCFG_PALETTE_LENGTH(32*8+4*8+1)
trunk/src/mame/drivers/xorworld.c
r17967r17968
188188   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
189189   MCFG_SCREEN_SIZE(32*8, 32*8)
190190   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
191   MCFG_SCREEN_UPDATE_STATIC(xorworld)
191   MCFG_SCREEN_UPDATE_DRIVER(xorworld_state, screen_update_xorworld)
192192
193193   MCFG_GFXDECODE(xorworld)
194194   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/cloak.c
r17967r17968
349349   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
350350   MCFG_SCREEN_SIZE(32*8, 32*8)
351351   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 3*8, 32*8-1)
352   MCFG_SCREEN_UPDATE_STATIC(cloak)
352   MCFG_SCREEN_UPDATE_DRIVER(cloak_state, screen_update_cloak)
353353
354354   MCFG_GFXDECODE(cloak)
355355   MCFG_PALETTE_LENGTH(64)
trunk/src/mame/drivers/foodf.c
r17967r17968
371371
372372   MCFG_SCREEN_ADD("screen", RASTER)
373373   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 384, 0, 256, 259, 0, 224)
374   MCFG_SCREEN_UPDATE_STATIC(foodf)
374   MCFG_SCREEN_UPDATE_DRIVER(foodf_state, screen_update_foodf)
375375
376376   MCFG_VIDEO_START_OVERRIDE(foodf_state,foodf)
377377
trunk/src/mame/drivers/skyraid.c
r17967r17968
229229   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(22 * 1000000 / 15750))
230230   MCFG_SCREEN_SIZE(512, 240)
231231   MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 239)
232   MCFG_SCREEN_UPDATE_STATIC(skyraid)
232   MCFG_SCREEN_UPDATE_DRIVER(skyraid_state, screen_update_skyraid)
233233
234234   MCFG_GFXDECODE(skyraid)
235235
trunk/src/mame/drivers/aliens.c
r17967r17968
270270   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
271271   MCFG_SCREEN_SIZE(64*8, 32*8)
272272   MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
273   MCFG_SCREEN_UPDATE_STATIC(aliens)
273   MCFG_SCREEN_UPDATE_DRIVER(aliens_state, screen_update_aliens)
274274
275275   MCFG_PALETTE_LENGTH(512)
276276
trunk/src/mame/drivers/beezer.c
r17967r17968
9999   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
100100   MCFG_SCREEN_SIZE(384, 256)
101101   MCFG_SCREEN_VISIBLE_AREA(16, 304-1, 0, 240-1) // 288 x 240, correct?
102   MCFG_SCREEN_UPDATE_STATIC(beezer)
102   MCFG_SCREEN_UPDATE_DRIVER(beezer_state, screen_update_beezer)
103103
104104   MCFG_PALETTE_LENGTH(16)
105105
trunk/src/mame/drivers/88games.c
r17967r17968
386386   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
387387   MCFG_SCREEN_SIZE(64*8, 32*8)
388388   MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 )
389   MCFG_SCREEN_UPDATE_STATIC(88games)
389   MCFG_SCREEN_UPDATE_DRIVER(_88games_state, screen_update_88games)
390390
391391   MCFG_PALETTE_LENGTH(2048)
392392
trunk/src/mame/drivers/ddenlovr.c
r17967r17968
12891289   }
12901290}
12911291
1292SCREEN_UPDATE_IND16(ddenlovr)
1292UINT32 dynax_state::screen_update_ddenlovr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
12931293{
1294   dynax_state *state = screen.machine().driver_data<dynax_state>();
12951294
12961295   static const int order[24][4] =
12971296   {
r17967r17968
13031302
13041303   int pri;
13051304
1306   int enab = state->m_ddenlovr_layer_enable;
1307   int enab2 = state->m_ddenlovr_layer_enable2;
1305   int enab = m_ddenlovr_layer_enable;
1306   int enab2 = m_ddenlovr_layer_enable2;
13081307
13091308#if 0
13101309   static int base = 0x0;
13111310   const UINT8 *gfx = screen.machine().root_device().memregion("blitter")->base();
13121311   int next;
1313   memset(state->m_ddenlovr_pixmap[0], 0, 512 * 512);
1314   memset(state->m_ddenlovr_pixmap[1], 0, 512 * 512);
1315   memset(state->m_ddenlovr_pixmap[2], 0, 512 * 512);
1316   memset(state->m_ddenlovr_pixmap[3], 0, 512 * 512);
1317   state->m_ddenlovr_dest_layer = 8;
1318   state->m_ddenlovr_blit_pen = 0;
1319   state->m_ddenlovr_blit_pen_mode = 0;
1320   state->m_ddenlovr_blit_y = 5;
1321   state->m_ddenlovr_clip_ctrl = 0x0f;
1312   memset(m_ddenlovr_pixmap[0], 0, 512 * 512);
1313   memset(m_ddenlovr_pixmap[1], 0, 512 * 512);
1314   memset(m_ddenlovr_pixmap[2], 0, 512 * 512);
1315   memset(m_ddenlovr_pixmap[3], 0, 512 * 512);
1316   m_ddenlovr_dest_layer = 8;
1317   m_ddenlovr_blit_pen = 0;
1318   m_ddenlovr_blit_pen_mode = 0;
1319   m_ddenlovr_blit_y = 5;
1320   m_ddenlovr_clip_ctrl = 0x0f;
13221321   next = blit_draw(screen.machine(), base, 0);
13231322   popmessage("GFX %06x", base);
13241323   if (screen.machine().input().code_pressed(KEYCODE_S)) base = next;
r17967r17968
13291328   if (screen.machine().input().code_pressed_once(KEYCODE_F)) { base++; while ((gfx[base] & 0xf0) != 0x30) base++; }
13301329#endif
13311330
1332   bitmap.fill(state->m_ddenlovr_bgcolor, cliprect);
1331   bitmap.fill(m_ddenlovr_bgcolor, cliprect);
13331332
13341333#ifdef MAME_DEBUG
13351334   if (screen.machine().input().code_pressed(KEYCODE_Z))
r17967r17968
13451344
13461345      mask2 = 0;
13471346
1348      if (state->m_extra_layers)
1347      if (m_extra_layers)
13491348      {
13501349         if (screen.machine().input().code_pressed(KEYCODE_A))   mask2 |= 1;
13511350         if (screen.machine().input().code_pressed(KEYCODE_S))   mask2 |= 2;
r17967r17968
13551354
13561355      if (mask || mask2)
13571356      {
1358         state->m_ddenlovr_layer_enable &= mask;
1359         state->m_ddenlovr_layer_enable2 &= mask2;
1357         m_ddenlovr_layer_enable &= mask;
1358         m_ddenlovr_layer_enable2 &= mask2;
13601359      }
13611360   }
13621361#endif
13631362
1364   pri = state->m_ddenlovr_priority;
1363   pri = m_ddenlovr_priority;
13651364
13661365   if (pri >= 24)
13671366   {
r17967r17968
13741373   copylayer(screen.machine(), bitmap, cliprect, order[pri][2]);
13751374   copylayer(screen.machine(), bitmap, cliprect, order[pri][3]);
13761375
1377   if (state->m_extra_layers)
1376   if (m_extra_layers)
13781377   {
1379      pri = state->m_ddenlovr_priority2;
1378      pri = m_ddenlovr_priority2;
13801379
13811380      if (pri >= 24)
13821381      {
r17967r17968
13901389      copylayer(screen.machine(), bitmap, cliprect, order[pri][3] + 4);
13911390   }
13921391
1393   state->m_ddenlovr_layer_enable = enab;
1394   state->m_ddenlovr_layer_enable2 = enab2;
1392   m_ddenlovr_layer_enable = enab;
1393   m_ddenlovr_layer_enable2 = enab2;
13951394
13961395   return 0;
13971396}
r17967r17968
85138512   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
85148513   MCFG_SCREEN_SIZE(336, 256)
85158514   MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 5, 256-16+5-1)
8516   MCFG_SCREEN_UPDATE_STATIC(ddenlovr)
8515   MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_ddenlovr)
85178516
85188517   MCFG_PALETTE_LENGTH(0x100)
85198518
r17967r17968
86378636   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
86388637   MCFG_SCREEN_SIZE(336, 256+22)
86398638   MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 5, 256-16+5-1)
8640   MCFG_SCREEN_UPDATE_STATIC(ddenlovr)
8639   MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_ddenlovr)
86418640
86428641   MCFG_PALETTE_LENGTH(0x100)
86438642
r17967r17968
87288727   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
87298728   MCFG_SCREEN_SIZE(336, 256+22)
87308729   MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 5, 256-16+5-1)
8731   MCFG_SCREEN_UPDATE_STATIC(ddenlovr)
8730   MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_ddenlovr)
87328731
87338732   MCFG_PALETTE_LENGTH(0x100)
87348733
r17967r17968
88128811   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
88138812   MCFG_SCREEN_SIZE(336, 256+22)
88148813   MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 5, 256-11-1)
8815   MCFG_SCREEN_UPDATE_STATIC(ddenlovr)
8814   MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_ddenlovr)
88168815
88178816   MCFG_PALETTE_LENGTH(0x200)
88188817
r17967r17968
92289227   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
92299228   MCFG_SCREEN_SIZE(336, 256)
92309229   MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 5, 256-11-1)
9231   MCFG_SCREEN_UPDATE_STATIC(ddenlovr)
9230   MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_ddenlovr)
92329231
92339232   MCFG_PALETTE_LENGTH(0x200)
92349233
r17967r17968
92699268   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
92709269   MCFG_SCREEN_SIZE(336, 256+22)
92719270   MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 0+5, 256-12-1)
9272   MCFG_SCREEN_UPDATE_STATIC(ddenlovr)
9271   MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_ddenlovr)
92739272
92749273   MCFG_PALETTE_LENGTH(0x100)
92759274
r17967r17968
93149313   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
93159314   MCFG_SCREEN_SIZE(336, 256+22)
93169315   MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 0+5, 256-12-1)
9317   MCFG_SCREEN_UPDATE_STATIC(ddenlovr)
9316   MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_ddenlovr)
93189317
93199318   MCFG_PALETTE_LENGTH(0x100)
93209319
r17967r17968
93889387   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
93899388   MCFG_SCREEN_SIZE(336, 256+22)
93909389   MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 0+5, 256-12-1)
9391   MCFG_SCREEN_UPDATE_STATIC(ddenlovr)
9390   MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_ddenlovr)
93929391
93939392   MCFG_PALETTE_LENGTH(0x100)
93949393
r17967r17968
94359434   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
94369435   MCFG_SCREEN_SIZE(336, 256+22)
94379436   MCFG_SCREEN_VISIBLE_AREA(0, 336-1-1, 1, 256-15-1)
9438   MCFG_SCREEN_UPDATE_STATIC(ddenlovr)
9437   MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_ddenlovr)
94399438
94409439   MCFG_PALETTE_LENGTH(0x200)
94419440
trunk/src/mame/drivers/chinagat.c
r17967r17968
587587   /* video hardware */
588588   MCFG_SCREEN_ADD("screen", RASTER)
589589   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240)   /* based on ddragon driver */
590   MCFG_SCREEN_UPDATE_STATIC(ddragon)
590   MCFG_SCREEN_UPDATE_DRIVER(ddragon_state, screen_update_ddragon)
591591
592592   MCFG_GFXDECODE(chinagat)
593593   MCFG_PALETTE_LENGTH(384)
r17967r17968
631631   /* video hardware */
632632   MCFG_SCREEN_ADD("screen", RASTER)
633633   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240)   /* based on ddragon driver */
634   MCFG_SCREEN_UPDATE_STATIC(ddragon)
634   MCFG_SCREEN_UPDATE_DRIVER(ddragon_state, screen_update_ddragon)
635635
636636   MCFG_GFXDECODE(chinagat)
637637   MCFG_PALETTE_LENGTH(384)
r17967r17968
672672   /* video hardware */
673673   MCFG_SCREEN_ADD("screen", RASTER)
674674   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240)   /* based on ddragon driver */
675   MCFG_SCREEN_UPDATE_STATIC(ddragon)
675   MCFG_SCREEN_UPDATE_DRIVER(ddragon_state, screen_update_ddragon)
676676
677677   MCFG_GFXDECODE(chinagat)
678678   MCFG_PALETTE_LENGTH(384)
trunk/src/mame/drivers/kaneko16.c
r17967r17968
16541654   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
16551655   MCFG_SCREEN_SIZE(256, 256)
16561656   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1)
1657   MCFG_SCREEN_UPDATE_STATIC(berlwall)
1657   MCFG_SCREEN_UPDATE_DRIVER(kaneko16_berlwall_state, screen_update_berlwall)
16581658
16591659   MCFG_GFXDECODE(1x4bit_1x4bit)
16601660   MCFG_PALETTE_LENGTH(2048 + 32768)   /* 32768 static colors for the bg */
r17967r17968
17081708   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
17091709   MCFG_SCREEN_SIZE(256, 256)
17101710   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1)
1711   MCFG_SCREEN_UPDATE_STATIC(kaneko16)
1711   MCFG_SCREEN_UPDATE_DRIVER(kaneko16_berlwall_state, screen_update_kaneko16)
17121712
17131713   MCFG_GFXDECODE(1x4bit_2x4bit)
17141714   MCFG_PALETTE_LENGTH(2048)
r17967r17968
17771777   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
17781778   MCFG_SCREEN_SIZE(320, 240)
17791779   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1 -8)
1780   MCFG_SCREEN_UPDATE_STATIC(kaneko16)
1780   MCFG_SCREEN_UPDATE_DRIVER(kaneko16_berlwall_state, screen_update_kaneko16)
17811781
17821782   MCFG_GFXDECODE(1x4bit_1x4bit)
17831783   MCFG_PALETTE_LENGTH(2048)
r17967r17968
18371837   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
18381838   MCFG_SCREEN_SIZE(320, 240)
18391839   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
1840   MCFG_SCREEN_UPDATE_STATIC(kaneko16)
1840   MCFG_SCREEN_UPDATE_DRIVER(kaneko16_berlwall_state, screen_update_kaneko16)
18411841
18421842   MCFG_GFXDECODE(1x8bit_2x4bit)
18431843   MCFG_PALETTE_LENGTH(32768)
r17967r17968
19551955   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
19561956   MCFG_SCREEN_SIZE(256, 256)
19571957   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1)
1958   MCFG_SCREEN_UPDATE_STATIC(kaneko16)
1958   MCFG_SCREEN_UPDATE_DRIVER(kaneko16_berlwall_state, screen_update_kaneko16)
19591959
19601960   MCFG_GFXDECODE(1x4bit_2x4bit)
19611961   MCFG_PALETTE_LENGTH(2048)
r17967r17968
20792079   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
20802080   MCFG_SCREEN_SIZE(320, 240)
20812081   MCFG_SCREEN_VISIBLE_AREA(40, 296-1, 16, 240-1)
2082   MCFG_SCREEN_UPDATE_STATIC(kaneko16)
2082   MCFG_SCREEN_UPDATE_DRIVER(kaneko16_berlwall_state, screen_update_kaneko16)
20832083
20842084   MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
20852085
trunk/src/mame/drivers/cybertnk.c
r17967r17968
219219   TILE_GET_INFO_MEMBER(get_tilemap1_tile_info);
220220   TILE_GET_INFO_MEMBER(get_tilemap2_tile_info);
221221   virtual void video_start();
222   UINT32 screen_update_cybertnk_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
223   UINT32 screen_update_cybertnk_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
222224};
223225
224226/* tile format
r17967r17968
498500   return 0;
499501}
500502
501static SCREEN_UPDATE_IND16( cybertnk_left ) { return update_screen(screen, bitmap, cliprect, 0); }
502static SCREEN_UPDATE_IND16( cybertnk_right ) { return update_screen(screen, bitmap, cliprect, -256); }
503UINT32 cybertnk_state::screen_update_cybertnk_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 0); }
504UINT32 cybertnk_state::screen_update_cybertnk_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, -256); }
503505
504506
505507WRITE16_MEMBER(cybertnk_state::tilemap0_vram_w)
r17967r17968
851853   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
852854   MCFG_SCREEN_SIZE(32*8, 32*8)
853855   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
854   MCFG_SCREEN_UPDATE_STATIC(cybertnk_left)
856   MCFG_SCREEN_UPDATE_DRIVER(cybertnk_state, screen_update_cybertnk_left)
855857
856858   MCFG_SCREEN_ADD("rscreen", RASTER)
857859   MCFG_SCREEN_REFRESH_RATE(60)
858860   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
859861   MCFG_SCREEN_SIZE(32*8, 32*8)
860862   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
861   MCFG_SCREEN_UPDATE_STATIC(cybertnk_right)
863   MCFG_SCREEN_UPDATE_DRIVER(cybertnk_state, screen_update_cybertnk_right)
862864
863865   MCFG_GFXDECODE(cybertnk)
864866   MCFG_PALETTE_LENGTH(0x4000)
trunk/src/mame/drivers/wc90.c
r17967r17968
326326   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
327327   MCFG_SCREEN_SIZE(32*8, 32*8)
328328   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
329   MCFG_SCREEN_UPDATE_STATIC(wc90)
329   MCFG_SCREEN_UPDATE_DRIVER(wc90_state, screen_update_wc90)
330330
331331   MCFG_GFXDECODE(wc90)
332332   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/gauntlet.c
r17967r17968
532532   /* note: these parameters are from published specs, not derived */
533533   /* the board uses a SYNGEN chip to generate video signals */
534534   MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
535   MCFG_SCREEN_UPDATE_STATIC(gauntlet)
535   MCFG_SCREEN_UPDATE_DRIVER(gauntlet_state, screen_update_gauntlet)
536536
537537   MCFG_VIDEO_START_OVERRIDE(gauntlet_state,gauntlet)
538538
trunk/src/mame/drivers/ms32.c
r17967r17968
14081408   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
14091409   MCFG_SCREEN_SIZE(40*8, 28*8)
14101410   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
1411   MCFG_SCREEN_UPDATE_STATIC(ms32)
1411   MCFG_SCREEN_UPDATE_DRIVER(ms32_state, screen_update_ms32)
14121412
14131413   MCFG_GFXDECODE(ms32)
14141414   MCFG_PALETTE_LENGTH(0x10000)
trunk/src/mame/drivers/darkseal.c
r17967r17968
274274   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
275275   MCFG_SCREEN_SIZE(32*8, 32*8)
276276   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
277   MCFG_SCREEN_UPDATE_STATIC(darkseal)
277   MCFG_SCREEN_UPDATE_DRIVER(darkseal_state, screen_update_darkseal)
278278
279279   MCFG_GFXDECODE(darkseal)
280280   MCFG_PALETTE_LENGTH(2048)
trunk/src/mame/drivers/deniam.c
r17967r17968
286286   MCFG_SCREEN_SIZE(512, 256)
287287   //MCFG_SCREEN_VISIBLE_AREA(24*8, 64*8-1, 0*8, 28*8-1) // looks better but doesn't match hardware
288288   MCFG_SCREEN_VISIBLE_AREA(24*8-4, 64*8-5, 0*8, 28*8-1)
289   MCFG_SCREEN_UPDATE_STATIC(deniam)
289   MCFG_SCREEN_UPDATE_DRIVER(deniam_state, screen_update_deniam)
290290
291291   MCFG_GFXDECODE(deniam)
292292   MCFG_PALETTE_LENGTH(2048)
r17967r17968
318318   MCFG_SCREEN_SIZE(512, 256)
319319   //MCFG_SCREEN_VISIBLE_AREA(24*8, 64*8-1, 0*8, 28*8-1) // looks better but doesn't match hardware
320320   MCFG_SCREEN_VISIBLE_AREA(24*8-4, 64*8-5, 0*8, 28*8-1)
321   MCFG_SCREEN_UPDATE_STATIC(deniam)
321   MCFG_SCREEN_UPDATE_DRIVER(deniam_state, screen_update_deniam)
322322
323323   MCFG_GFXDECODE(deniam)
324324   MCFG_PALETTE_LENGTH(2048)
trunk/src/mame/drivers/mcr3.c
r17967r17968
11011101   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
11021102   MCFG_SCREEN_SIZE(32*16, 30*16)
11031103   MCFG_SCREEN_VISIBLE_AREA(0*16, 32*16-1, 0*16, 30*16-1)
1104   MCFG_SCREEN_UPDATE_STATIC(mcr3)
1104   MCFG_SCREEN_UPDATE_DRIVER(mcr3_state, screen_update_mcr3)
11051105
11061106   MCFG_GFXDECODE(mcr3)
11071107   MCFG_PALETTE_LENGTH(64)
r17967r17968
11521152   MCFG_SCREEN_MODIFY("screen")
11531153   MCFG_SCREEN_SIZE(30*16, 30*16)
11541154   MCFG_SCREEN_VISIBLE_AREA(0, 30*16-1, 0, 30*16-1)
1155   MCFG_SCREEN_UPDATE_STATIC(spyhunt)
1155   MCFG_SCREEN_UPDATE_DRIVER(mcr3_state, screen_update_spyhunt)
11561156   MCFG_GFXDECODE(spyhunt)
11571157   MCFG_PALETTE_LENGTH(64+4)
11581158
trunk/src/mame/drivers/pipeline.c
r17967r17968
101101   TILE_GET_INFO_MEMBER(get_tile_info2);
102102   virtual void video_start();
103103   virtual void palette_init();
104   UINT32 screen_update_pipeline(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
104105};
105106
106107
r17967r17968
135136   m_tilemap2->set_transparent_pen(0);
136137}
137138
138static SCREEN_UPDATE_IND16( pipeline )
139UINT32 pipeline_state::screen_update_pipeline(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
139140{
140   pipeline_state *state = screen.machine().driver_data<pipeline_state>();
141   state->m_tilemap1->draw(bitmap, cliprect, 0,0);
142   state->m_tilemap2->draw(bitmap, cliprect, 0,0);
141   m_tilemap1->draw(bitmap, cliprect, 0,0);
142   m_tilemap2->draw(bitmap, cliprect, 0,0);
143143   return 0;
144144}
145145
r17967r17968
413413   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
414414   MCFG_SCREEN_SIZE(512, 512)
415415   MCFG_SCREEN_VISIBLE_AREA(0, 319, 16, 239)
416   MCFG_SCREEN_UPDATE_STATIC(pipeline)
416   MCFG_SCREEN_UPDATE_DRIVER(pipeline_state, screen_update_pipeline)
417417
418418   MCFG_GFXDECODE(pipeline)
419419
trunk/src/mame/drivers/stadhero.c
r17967r17968
240240   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
241241   MCFG_SCREEN_SIZE(32*8, 32*8)
242242   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
243   MCFG_SCREEN_UPDATE_STATIC(stadhero)
243   MCFG_SCREEN_UPDATE_DRIVER(stadhero_state, screen_update_stadhero)
244244
245245   MCFG_GFXDECODE(stadhero)
246246   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/atlantis.c
r17967r17968
4848   DECLARE_DRIVER_INIT(mwskins);
4949   virtual void machine_start();
5050   virtual void machine_reset();
51   UINT32 screen_update_mwskins(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5152};
5253
5354
r17967r17968
8586 *
8687 *************************************/
8788
88static SCREEN_UPDATE_IND16( mwskins )
89UINT32 atlantis_state::screen_update_mwskins(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
8990{
9091   return 0;
9192}
r17967r17968
166167   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
167168   MCFG_SCREEN_SIZE(320, 240)
168169   MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
169   MCFG_SCREEN_UPDATE_STATIC(mwskins)
170   MCFG_SCREEN_UPDATE_DRIVER(atlantis_state, screen_update_mwskins)
170171
171172   MCFG_PALETTE_INIT(BBBBB_GGGGG_RRRRR)
172173   MCFG_PALETTE_LENGTH(32768)
trunk/src/mame/drivers/wwfsstar.c
r17967r17968
434434   /* video hardware */
435435   MCFG_SCREEN_ADD("screen", RASTER)
436436   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 320, 0, 256, 272, 8, 248)   /* HTOTAL and VTOTAL are guessed */
437   MCFG_SCREEN_UPDATE_STATIC(wwfsstar)
437   MCFG_SCREEN_UPDATE_DRIVER(wwfsstar_state, screen_update_wwfsstar)
438438
439439   MCFG_GFXDECODE(wwfsstar)
440440   MCFG_PALETTE_LENGTH(384)
trunk/src/mame/drivers/taito_b.c
r17967r17968
20562056   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
20572057   MCFG_SCREEN_SIZE(64*8, 32*8)
20582058   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
2059   MCFG_SCREEN_UPDATE_STATIC(taitob)
2060   MCFG_SCREEN_VBLANK_STATIC(taitob)
2059   MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob)
2060   MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
20612061
20622062   MCFG_GFXDECODE(taito_b)
20632063   MCFG_PALETTE_LENGTH(4096)
r17967r17968
21002100   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
21012101   MCFG_SCREEN_SIZE(64*8, 32*8)
21022102   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
2103   MCFG_SCREEN_UPDATE_STATIC(taitob)
2104   MCFG_SCREEN_VBLANK_STATIC(taitob)
2103   MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob)
2104   MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
21052105
21062106   MCFG_GFXDECODE(taito_b)
21072107   MCFG_PALETTE_LENGTH(4096)
r17967r17968
21442144   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
21452145   MCFG_SCREEN_SIZE(64*8, 32*8)
21462146   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
2147   MCFG_SCREEN_UPDATE_STATIC(taitob)
2148   MCFG_SCREEN_VBLANK_STATIC(taitob)
2147   MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob)
2148   MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
21492149
21502150   MCFG_GFXDECODE(taito_b)
21512151   MCFG_PALETTE_LENGTH(4096)
r17967r17968
21882188   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
21892189   MCFG_SCREEN_SIZE(64*8, 32*8)
21902190   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
2191   MCFG_SCREEN_UPDATE_STATIC(taitob)
2192   MCFG_SCREEN_VBLANK_STATIC(taitob)
2191   MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob)
2192   MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
21932193
21942194   MCFG_GFXDECODE(taito_b)
21952195   MCFG_PALETTE_LENGTH(4096)
r17967r17968
22312231   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
22322232   MCFG_SCREEN_SIZE(64*8, 32*8)
22332233   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
2234   MCFG_SCREEN_UPDATE_STATIC(taitob)
2235   MCFG_SCREEN_VBLANK_STATIC(taitob)
2234   MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob)
2235   MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
22362236
22372237   MCFG_GFXDECODE(taito_b)
22382238   MCFG_PALETTE_LENGTH(4096)
r17967r17968
22752275   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
22762276   MCFG_SCREEN_SIZE(64*8, 32*8)
22772277   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
2278   MCFG_SCREEN_UPDATE_STATIC(taitob)
2279   MCFG_SCREEN_VBLANK_STATIC(taitob)
2278   MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob)
2279   MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
22802280
22812281   MCFG_GFXDECODE(taito_b)
22822282   MCFG_PALETTE_LENGTH(4096)
r17967r17968
23242324   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
23252325   MCFG_SCREEN_SIZE(64*8, 32*8)
23262326   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
2327   MCFG_SCREEN_UPDATE_STATIC(taitob)
2328   MCFG_SCREEN_VBLANK_STATIC(taitob)
2327   MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob)
2328   MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
23292329
23302330   MCFG_GFXDECODE(rambo3)
23312331   MCFG_PALETTE_LENGTH(4096)
r17967r17968
23682368   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
23692369   MCFG_SCREEN_SIZE(64*8, 32*8)
23702370   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
2371   MCFG_SCREEN_UPDATE_STATIC(taitob)
2372   MCFG_SCREEN_VBLANK_STATIC(taitob)
2371   MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob)
2372   MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
23732373
23742374   MCFG_GFXDECODE(taito_b)
23752375   MCFG_PALETTE_LENGTH(4096)
r17967r17968
24152415   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
24162416   MCFG_SCREEN_SIZE(64*8, 32*8)
24172417   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
2418   MCFG_SCREEN_UPDATE_STATIC(taitob)
2419   MCFG_SCREEN_VBLANK_STATIC(taitob)
2418   MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob)
2419   MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
24202420
24212421   MCFG_GFXDECODE(taito_b)
24222422   MCFG_PALETTE_LENGTH(4096)
r17967r17968
24632463   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
24642464   MCFG_SCREEN_SIZE(64*8, 32*8)
24652465   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
2466   MCFG_SCREEN_UPDATE_STATIC(taitob)
2467   MCFG_SCREEN_VBLANK_STATIC(taitob)
2466   MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob)
2467   MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
24682468
24692469   MCFG_GFXDECODE(taito_b)
24702470   MCFG_PALETTE_LENGTH(4096)
r17967r17968
25072507   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
25082508   MCFG_SCREEN_SIZE(64*8, 32*8)
25092509   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
2510   MCFG_SCREEN_UPDATE_STATIC(taitob)
2511   MCFG_SCREEN_VBLANK_STATIC(taitob)
2510   MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob)
2511   MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
25122512
25132513   MCFG_GFXDECODE(taito_b)
25142514   MCFG_PALETTE_LENGTH(4096)
r17967r17968
25552555   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
25562556   MCFG_SCREEN_SIZE(64*8, 32*8)
25572557   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
2558   MCFG_SCREEN_UPDATE_STATIC(taitob)
2559   MCFG_SCREEN_VBLANK_STATIC(taitob)
2558   MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob)
2559   MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
25602560
25612561   MCFG_GFXDECODE(taito_b)
25622562   MCFG_PALETTE_LENGTH(4096)
r17967r17968
25992599   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
26002600   MCFG_SCREEN_SIZE(64*8, 32*8)
26012601   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
2602   MCFG_SCREEN_UPDATE_STATIC(taitob)
2603   MCFG_SCREEN_VBLANK_STATIC(taitob)
2602   MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob)
2603   MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
26042604
26052605   MCFG_GFXDECODE(taito_b)
26062606   MCFG_PALETTE_LENGTH(4096)
r17967r17968
26462646   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
26472647   MCFG_SCREEN_SIZE(64*8, 32*8)
26482648   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
2649   MCFG_SCREEN_UPDATE_STATIC(taitob)
2650   MCFG_SCREEN_VBLANK_STATIC(taitob)
2649   MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob)
2650   MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
26512651
26522652   MCFG_GFXDECODE(taito_b)
26532653   MCFG_PALETTE_LENGTH(4096)
r17967r17968
26912691   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
26922692   MCFG_SCREEN_SIZE(64*8, 32*8)
26932693   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
2694   MCFG_SCREEN_UPDATE_STATIC(taitob)
2695   MCFG_SCREEN_VBLANK_STATIC(taitob)
2694   MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob)
2695   MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
26962696
26972697   MCFG_GFXDECODE(taito_b)
26982698   MCFG_PALETTE_LENGTH(4096)
r17967r17968
27352735   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
27362736   MCFG_SCREEN_SIZE(64*8, 32*8)
27372737   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
2738   MCFG_SCREEN_UPDATE_STATIC(taitob)
2739   MCFG_SCREEN_VBLANK_STATIC(taitob)
2738   MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob)
2739   MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
27402740
27412741   MCFG_GFXDECODE(taito_b)
27422742   MCFG_PALETTE_LENGTH(4096)
r17967r17968
27882788   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
27892789   MCFG_SCREEN_SIZE(64*8, 32*8)
27902790   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
2791   MCFG_SCREEN_UPDATE_STATIC(taitob)
2792   MCFG_SCREEN_VBLANK_STATIC(taitob)
2791   MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob)
2792   MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
27932793
27942794   MCFG_GFXDECODE(taito_b)
27952795   MCFG_PALETTE_LENGTH(4096)
r17967r17968
28392839   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
28402840   MCFG_SCREEN_SIZE(64*8, 32*8)
28412841   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
2842   MCFG_SCREEN_UPDATE_STATIC(taitob)
2843   MCFG_SCREEN_VBLANK_STATIC(taitob)
2842   MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob)
2843   MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
28442844
28452845   MCFG_GFXDECODE(taito_b)
28462846   MCFG_PALETTE_LENGTH(4096)
r17967r17968
28882888   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
28892889   MCFG_SCREEN_SIZE(64*8, 32*8)
28902890   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
2891   MCFG_SCREEN_UPDATE_STATIC(taitob)
2892   MCFG_SCREEN_VBLANK_STATIC(taitob)
2891   MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob)
2892   MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
28932893
28942894   MCFG_GFXDECODE(taito_b)
28952895   MCFG_PALETTE_LENGTH(4096)
28962896
28972897   MCFG_VIDEO_START_OVERRIDE(taitob_state,realpunc)
2898   MCFG_SCREEN_UPDATE_STATIC(realpunc)
2898   MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_realpunc)
28992899
29002900   MCFG_HD63484_ADD("hd63484", realpunc_hd63484_intf)
29012901
trunk/src/mame/drivers/jackal.c
r17967r17968
372372   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
373373   MCFG_SCREEN_SIZE(32*8, 32*8)
374374   MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1)
375   MCFG_SCREEN_UPDATE_STATIC(jackal)
375   MCFG_SCREEN_UPDATE_DRIVER(jackal_state, screen_update_jackal)
376376
377377   MCFG_GFXDECODE(jackal)
378378   MCFG_PALETTE_LENGTH(0x300)
trunk/src/mame/drivers/viper.c
r17967r17968
303303static timer_device *ds2430_bit_timer;
304304
305305
306static SCREEN_UPDATE_RGB32(viper)
307{
308   device_t *device = screen.machine().device("voodoo");
309   return voodoo_update(device, bitmap, cliprect) ? 0 : UPDATE_HAS_NOT_CHANGED;
310}
311
312306class viper_state : public driver_device
313307{
314308public:
r17967r17968
352346   DECLARE_DRIVER_INIT(vipercf);
353347   virtual void machine_start();
354348   virtual void machine_reset();
349   UINT32 screen_update_viper(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
355350};
356351
352UINT32 viper_state::screen_update_viper(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
353{
354   device_t *device = screen.machine().device("voodoo");
355   return voodoo_update(device, bitmap, cliprect) ? 0 : UPDATE_HAS_NOT_CHANGED;
356}
357
357358UINT32 m_mpc8240_regs[256/4];
358359
359360/*****************************************************************************/
r17967r17968
20102011
20112012   MCFG_PALETTE_LENGTH(65536)
20122013
2013   MCFG_SCREEN_UPDATE_STATIC(viper)
2014   MCFG_SCREEN_UPDATE_DRIVER(viper_state, screen_update_viper)
20142015
20152016   MCFG_TIMER_ADD("ds2430_timer2", NULL)
20162017
trunk/src/mame/drivers/mw8080bw.c
r17967r17968
231231   /* video hardware */
232232   MCFG_SCREEN_ADD("screen", RASTER)
233233   MCFG_SCREEN_RAW_PARAMS(MW8080BW_PIXEL_CLOCK, MW8080BW_HTOTAL, MW8080BW_HBEND, MW8080BW_HPIXCOUNT, MW8080BW_VTOTAL, MW8080BW_VBEND, MW8080BW_VBSTART)
234   MCFG_SCREEN_UPDATE_STATIC(mw8080bw)
234   MCFG_SCREEN_UPDATE_DRIVER(mw8080bw_state, screen_update_mw8080bw)
235235MACHINE_CONFIG_END
236236
237237
r17967r17968
22692269
22702270   /* video hardware */
22712271   MCFG_SCREEN_MODIFY("screen")
2272   MCFG_SCREEN_UPDATE_STATIC(spcenctr)
2272   MCFG_SCREEN_UPDATE_DRIVER(mw8080bw_state, screen_update_spcenctr)
22732273
22742274   /* audio hardware */
22752275   MCFG_FRAGMENT_ADD(spcenctr_audio)
r17967r17968
23562356
23572357   /* video hardware */
23582358   MCFG_SCREEN_MODIFY("screen")
2359   MCFG_SCREEN_UPDATE_STATIC(phantom2)
2360   MCFG_SCREEN_VBLANK_STATIC(phantom2)
2359   MCFG_SCREEN_UPDATE_DRIVER(mw8080bw_state, screen_update_phantom2)
2360   MCFG_SCREEN_VBLANK_DRIVER(mw8080bw_state, screen_eof_phantom2)
23612361
23622362   /* add shifter */
23632363   MCFG_MB14241_ADD("mb14241")
r17967r17968
27052705
27062706   /* video hardware */
27072707   MCFG_SCREEN_MODIFY("screen")
2708   MCFG_SCREEN_UPDATE_STATIC(invaders)
2708   MCFG_SCREEN_UPDATE_DRIVER(mw8080bw_state, screen_update_invaders)
27092709
27102710   /* add shifter */
27112711   MCFG_MB14241_ADD("mb14241")
trunk/src/mame/drivers/pinkiri8.c
r17967r17968
7676   DECLARE_READ8_MEMBER(ronjan_patched_prot_r);
7777   DECLARE_DRIVER_INIT(ronjan);
7878   virtual void video_start();
79   UINT32 screen_update_pinkiri8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7980};
8081
8182
r17967r17968
201202
202203*/
203204
204static SCREEN_UPDATE_IND16( pinkiri8 )
205UINT32 pinkiri8_state::screen_update_pinkiri8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
205206{
206   pinkiri8_state *state = screen.machine().driver_data<pinkiri8_state>();
207207   int col_bank;
208208   gfx_element *gfx = screen.machine().gfx[0];
209209
210210   /* update palette */
211211   for (int pen = 0; pen < 0x800 ; pen++)
212212   {
213      UINT16 val = (state->m_janshi_paletteram[pen]) | (state->m_janshi_paletteram2[pen]<<8);
213      UINT16 val = (m_janshi_paletteram[pen]) | (m_janshi_paletteram2[pen]<<8);
214214      int r = (val & 0x001f) >> 0;
215215      int g = (val & 0x03e0) >> 5;
216216      int b = (val & 0x7c00) >> 10;
r17967r17968
230230      for (i=0x00;i<0x40;i+=2)
231231      {
232232
233         printf("%02x, ", state->m_janshi_widthflags[i+1]);
233         printf("%02x, ", m_janshi_widthflags[i+1]);
234234
235235         count2++;
236236
r17967r17968
248248
249249
250250
251   //popmessage("%02x",state->m_janshi_crtc_regs[0x0a]);
252   col_bank = (state->m_janshi_crtc_regs[0x0a] & 0x40) >> 6;
251   //popmessage("%02x",m_janshi_crtc_regs[0x0a]);
252   col_bank = (m_janshi_crtc_regs[0x0a] & 0x40) >> 6;
253253
254254   bitmap.fill(get_black_pen(screen.machine()), cliprect);
255255
r17967r17968
263263      {
264264         for(x=0;x<32;x++)
265265         {
266            tile = state->m_janshi_back_vram[count+1]<<8 | state->m_janshi_back_vram[count+0];
267            attr = state->m_janshi_back_vram[count+2] ^ 0xf0;
266            tile = m_janshi_back_vram[count+1]<<8 | m_janshi_back_vram[count+0];
267            attr = m_janshi_back_vram[count+2] ^ 0xf0;
268268            col = (attr >> 4) | 0x10;
269269
270270            drawgfx_transpen(bitmap,cliprect,gfx,tile,col,0,0,x*16,y*8,0);
r17967r17968
300300
301301          */
302302
303         spr_offs = ((state->m_janshi_vram1[(i*4)+0] & 0xff) | (state->m_janshi_vram1[(i*4)+1]<<8)) & 0xffff;
304         col = (state->m_janshi_vram1[(i*4)+2] & 0xf8) >> 3;
305         x =   state->m_janshi_vram1[(i*4)+3];
303         spr_offs = ((m_janshi_vram1[(i*4)+0] & 0xff) | (m_janshi_vram1[(i*4)+1]<<8)) & 0xffff;
304         col = (m_janshi_vram1[(i*4)+2] & 0xf8) >> 3;
305         x =   m_janshi_vram1[(i*4)+3];
306306
307307         x &= 0xff;
308308         x *= 2;
309309
310//          unk2 = state->m_janshi_vram2[(i*2)+1];
311         y = (state->m_janshi_vram2[(i*2)+0]);
310//          unk2 = m_janshi_vram2[(i*2)+1];
311         y = (m_janshi_vram2[(i*2)+0]);
312312
313313         y = 0x100-y;
314314
r17967r17968
321321
322322
323323         // these bits seem to somehow determine the sprite height / widths for the sprite ram region?
324         int bit = state->m_janshi_widthflags[(i/0x20)*2 + 1];
324         int bit = m_janshi_widthflags[(i/0x20)*2 + 1];
325325
326326         if (bit)
327327         {
r17967r17968
11391139   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
11401140   MCFG_SCREEN_SIZE(64*8, 64*8)
11411141   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 64*8-1)
1142   MCFG_SCREEN_UPDATE_STATIC(pinkiri8)
1142   MCFG_SCREEN_UPDATE_DRIVER(pinkiri8_state, screen_update_pinkiri8)
11431143
11441144   MCFG_GFXDECODE(pinkiri8)
11451145   MCFG_PALETTE_LENGTH(0x2000)
trunk/src/mame/drivers/suna8.c
r17967r17968
16371637   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
16381638   MCFG_SCREEN_SIZE(256, 256)
16391639   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1)
1640   MCFG_SCREEN_UPDATE_STATIC(suna8)
1640   MCFG_SCREEN_UPDATE_DRIVER(suna8_state, screen_update_suna8)
16411641
16421642   MCFG_GFXDECODE(suna8)
16431643   MCFG_PALETTE_LENGTH(256)
r17967r17968
17011701   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
17021702   MCFG_SCREEN_SIZE(256, 256)
17031703   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1)
1704   MCFG_SCREEN_UPDATE_STATIC(suna8)
1704   MCFG_SCREEN_UPDATE_DRIVER(suna8_state, screen_update_suna8)
17051705
17061706   MCFG_GFXDECODE(suna8)
17071707   MCFG_PALETTE_LENGTH(256)
r17967r17968
17801780   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)   // we're using PORT_VBLANK
17811781   MCFG_SCREEN_SIZE(256, 256)
17821782   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1)
1783   MCFG_SCREEN_UPDATE_STATIC(suna8)
1783   MCFG_SCREEN_UPDATE_DRIVER(suna8_state, screen_update_suna8)
17841784
17851785   MCFG_GFXDECODE(suna8)
17861786   MCFG_PALETTE_LENGTH(256 * 2)   // 2 x Palette RAM
r17967r17968
18811881   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
18821882   MCFG_SCREEN_SIZE(256, 256)
18831883   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1)
1884   MCFG_SCREEN_UPDATE_STATIC(suna8)
1884   MCFG_SCREEN_UPDATE_DRIVER(suna8_state, screen_update_suna8)
18851885
18861886   MCFG_GFXDECODE(suna8)
18871887   MCFG_PALETTE_LENGTH(256)
r17967r17968
19281928   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
19291929   MCFG_SCREEN_SIZE(256, 256)
19301930   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1)
1931   MCFG_SCREEN_UPDATE_STATIC(suna8)
1931   MCFG_SCREEN_UPDATE_DRIVER(suna8_state, screen_update_suna8)
19321932
19331933   MCFG_GFXDECODE(suna8)
19341934   MCFG_PALETTE_LENGTH(512)
trunk/src/mame/drivers/namcos86.c
r17967r17968
10121012   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
10131013   MCFG_SCREEN_SIZE(64*8, 32*8)
10141014   MCFG_SCREEN_VISIBLE_AREA(3 + 8*8, 3 + 44*8-1, 2*8, 30*8-1)
1015   MCFG_SCREEN_UPDATE_STATIC(namcos86)
1016   MCFG_SCREEN_VBLANK_STATIC(namcos86)
1015   MCFG_SCREEN_UPDATE_DRIVER(namcos86_state, screen_update_namcos86)
1016   MCFG_SCREEN_VBLANK_DRIVER(namcos86_state, screen_eof_namcos86)
10171017
10181018   MCFG_GFXDECODE(namcos86)
10191019   MCFG_PALETTE_LENGTH(4096)
trunk/src/mame/drivers/vaportra.c
r17967r17968
278278   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
279279   MCFG_SCREEN_SIZE(32*8, 32*8)
280280   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
281   MCFG_SCREEN_UPDATE_STATIC(vaportra)
281   MCFG_SCREEN_UPDATE_DRIVER(vaportra_state, screen_update_vaportra)
282282   MCFG_GFXDECODE(vaportra)
283283   MCFG_PALETTE_LENGTH(1280)
284284
trunk/src/mame/drivers/chanbara.c
r17967r17968
9292   virtual void machine_reset();
9393   virtual void video_start();
9494   virtual void palette_init();
95   UINT32 screen_update_chanbara(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
9596};
9697
9798
r17967r17968
206207   }
207208}
208209
209static SCREEN_UPDATE_IND16( chanbara )
210UINT32 chanbara_state::screen_update_chanbara(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
210211{
211   chanbara_state *state = screen.machine().driver_data<chanbara_state>();
212212
213   state->m_bg2_tilemap->set_scrolly(0, state->m_scroll | (state->m_scrollhi << 8));
214   state->m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
213   m_bg2_tilemap->set_scrolly(0, m_scroll | (m_scrollhi << 8));
214   m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
215215   draw_sprites(screen.machine(), bitmap, cliprect);
216   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
216   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
217217   return 0;
218218}
219219
r17967r17968
415415   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
416416   MCFG_SCREEN_SIZE(32*8, 32*8)
417417   MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 2*8, 30*8-1)
418   MCFG_SCREEN_UPDATE_STATIC(chanbara)
418   MCFG_SCREEN_UPDATE_DRIVER(chanbara_state, screen_update_chanbara)
419419
420420   MCFG_GFXDECODE(chanbara)
421421   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/btime.c
r17967r17968
14681468   /* video hardware */
14691469   MCFG_SCREEN_ADD("screen", RASTER)
14701470   MCFG_SCREEN_RAW_PARAMS(HCLK, 384, 8, 248, 272, 8, 248)
1471   MCFG_SCREEN_UPDATE_STATIC(btime)
1471   MCFG_SCREEN_UPDATE_DRIVER(btime_state, screen_update_btime)
14721472
14731473   MCFG_MACHINE_START_OVERRIDE(btime_state,btime)
14741474   MCFG_MACHINE_RESET_OVERRIDE(btime_state,btime)
r17967r17968
15141514   MCFG_PALETTE_LENGTH(16)
15151515
15161516   MCFG_SCREEN_MODIFY("screen")
1517   MCFG_SCREEN_UPDATE_STATIC(cookrace)
1517   MCFG_SCREEN_UPDATE_DRIVER(btime_state, screen_update_cookrace)
15181518MACHINE_CONFIG_END
15191519
15201520
r17967r17968
15321532
15331533   MCFG_PALETTE_INIT_OVERRIDE(btime_state,lnc)
15341534   MCFG_SCREEN_MODIFY("screen")
1535   MCFG_SCREEN_UPDATE_STATIC(lnc)
1535   MCFG_SCREEN_UPDATE_DRIVER(btime_state, screen_update_lnc)
15361536MACHINE_CONFIG_END
15371537
15381538
r17967r17968
15421542
15431543   /* video hardware */
15441544   MCFG_SCREEN_MODIFY("screen")
1545   MCFG_SCREEN_UPDATE_STATIC(eggs)
1545   MCFG_SCREEN_UPDATE_DRIVER(btime_state, screen_update_eggs)
15461546MACHINE_CONFIG_END
15471547
15481548
r17967r17968
15691569
15701570   MCFG_VIDEO_START_OVERRIDE(btime_state,bnj)
15711571   MCFG_SCREEN_MODIFY("screen")
1572   MCFG_SCREEN_UPDATE_STATIC(bnj)
1572   MCFG_SCREEN_UPDATE_DRIVER(btime_state, screen_update_bnj)
15731573MACHINE_CONFIG_END
15741574
15751575
r17967r17968
15971597   MCFG_PALETTE_LENGTH(64)
15981598
15991599   MCFG_SCREEN_MODIFY("screen")
1600   MCFG_SCREEN_UPDATE_STATIC(zoar)
1600   MCFG_SCREEN_UPDATE_DRIVER(btime_state, screen_update_zoar)
16011601
16021602   MCFG_SOUND_REPLACE("ay1", AY8910, HCLK1)
16031603   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.23)
r17967r17968
16231623   MCFG_PALETTE_LENGTH(32)
16241624
16251625   MCFG_SCREEN_MODIFY("screen")
1626   MCFG_SCREEN_UPDATE_STATIC(disco)
1626   MCFG_SCREEN_UPDATE_DRIVER(btime_state, screen_update_disco)
16271627MACHINE_CONFIG_END
16281628
16291629
trunk/src/mame/drivers/m14.c
r17967r17968
8585   virtual void machine_reset();
8686   virtual void video_start();
8787   virtual void palette_init();
88   UINT32 screen_update_m14(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8889};
8990
9091
r17967r17968
133134   m_m14_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(m14_state::m14_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
134135}
135136
136static SCREEN_UPDATE_IND16( m14 )
137UINT32 m14_state::screen_update_m14(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
137138{
138   m14_state *state = screen.machine().driver_data<m14_state>();
139139
140   state->m_m14_tilemap->draw(bitmap, cliprect, 0, 0);
140   m_m14_tilemap->draw(bitmap, cliprect, 0, 0);
141141   return 0;
142142}
143143
r17967r17968
349349   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) //not accurate
350350   MCFG_SCREEN_SIZE(32*8, 32*8)
351351   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
352   MCFG_SCREEN_UPDATE_STATIC(m14)
352   MCFG_SCREEN_UPDATE_DRIVER(m14_state, screen_update_m14)
353353   MCFG_GFXDECODE(m14)
354354   MCFG_PALETTE_LENGTH(0x20)
355355
trunk/src/mame/drivers/nova2001.c
r17967r17968
690690   MCFG_SCREEN_REFRESH_RATE(60)
691691   MCFG_SCREEN_SIZE(32*8, 32*8)
692692   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 28*8-1)
693   MCFG_SCREEN_UPDATE_STATIC(nova2001)
693   MCFG_SCREEN_UPDATE_DRIVER(nova2001_state, screen_update_nova2001)
694694
695695   MCFG_GFXDECODE(nova2001)
696696   MCFG_PALETTE_LENGTH(0x200)
r17967r17968
731731   MCFG_SCREEN_REFRESH_RATE(60)
732732   MCFG_SCREEN_SIZE(32*8, 32*8)
733733   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 28*8-1 )
734   MCFG_SCREEN_UPDATE_STATIC(ninjakun)
734   MCFG_SCREEN_UPDATE_DRIVER(nova2001_state, screen_update_ninjakun)
735735
736736   MCFG_GFXDECODE(ninjakun)
737737   MCFG_PALETTE_LENGTH(0x300)
r17967r17968
763763   MCFG_SCREEN_REFRESH_RATE(60)
764764   MCFG_SCREEN_SIZE(32*8, 32*8)
765765   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 28*8-1)
766   MCFG_SCREEN_UPDATE_STATIC(pkunwar)
766   MCFG_SCREEN_UPDATE_DRIVER(nova2001_state, screen_update_pkunwar)
767767
768768   MCFG_GFXDECODE(pkunwar)
769769   MCFG_PALETTE_LENGTH(0x200)
r17967r17968
802802   MCFG_SCREEN_REFRESH_RATE(60)
803803   MCFG_SCREEN_SIZE(32*8, 32*8)
804804   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 28*8-1)
805   MCFG_SCREEN_UPDATE_STATIC(raiders5)
805   MCFG_SCREEN_UPDATE_DRIVER(nova2001_state, screen_update_raiders5)
806806
807807   MCFG_GFXDECODE(raiders5)
808808   MCFG_PALETTE_LENGTH(0x300)
trunk/src/mame/drivers/jantotsu.c
r17967r17968
130130   virtual void machine_reset();
131131   virtual void video_start();
132132   virtual void palette_init();
133   UINT32 screen_update_jantotsu(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
133134};
134135
135136
r17967r17968
145146   save_item(NAME(m_bitmap));
146147}
147148
148static SCREEN_UPDATE_RGB32(jantotsu)
149UINT32 jantotsu_state::screen_update_jantotsu(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
149150{
150   jantotsu_state *state = screen.machine().driver_data<jantotsu_state>();
151151   int x, y, i;
152152   int count = 0;
153153   UINT8 pen_i;
154154
155   if(!state->m_display_on)
155   if(!m_display_on)
156156      return 0;
157157
158158   for (y = 0; y < 256; y++)
r17967r17968
163163
164164         for (i = 0; i < 8; i++)
165165         {
166            color = state->m_col_bank;
166            color = m_col_bank;
167167
168168            for(pen_i = 0;pen_i<4;pen_i++)
169               color |= (((state->m_bitmap[count + pen_i*0x2000]) >> (7 - i)) & 1) << pen_i;
169               color |= (((m_bitmap[count + pen_i*0x2000]) >> (7 - i)) & 1) << pen_i;
170170
171171            if (cliprect.contains(x + i, y))
172172               bitmap.pix32(y, x + i) = screen.machine().pens[color];
r17967r17968
528528   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) //not accurate
529529   MCFG_SCREEN_SIZE(256, 256)
530530   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1)
531   MCFG_SCREEN_UPDATE_STATIC(jantotsu)
531   MCFG_SCREEN_UPDATE_DRIVER(jantotsu_state, screen_update_jantotsu)
532532
533533   MCFG_PALETTE_LENGTH(0x20)
534534
trunk/src/mame/drivers/mermaid.c
r17967r17968
461461   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
462462   MCFG_SCREEN_SIZE(32*8, 32*8)
463463   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
464   MCFG_SCREEN_UPDATE_STATIC(mermaid)
465   MCFG_SCREEN_VBLANK_STATIC(mermaid)
464   MCFG_SCREEN_UPDATE_DRIVER(mermaid_state, screen_update_mermaid)
465   MCFG_SCREEN_VBLANK_DRIVER(mermaid_state, screen_eof_mermaid)
466466
467467   MCFG_GFXDECODE(mermaid)
468468   MCFG_PALETTE_LENGTH(4*16+2*2)
trunk/src/mame/drivers/avalnche.c
r17967r17968
4444 *
4545 *************************************/
4646
47static SCREEN_UPDATE_RGB32( avalnche )
47UINT32 avalnche_state::screen_update_avalnche(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
4848{
49   avalnche_state *state = screen.machine().driver_data<avalnche_state>();
5049   offs_t offs;
5150
52   for (offs = 0; offs < state->m_videoram.bytes(); offs++)
51   for (offs = 0; offs < m_videoram.bytes(); offs++)
5352   {
5453      int i;
5554
5655      UINT8 x = offs << 3;
5756      int y = offs >> 5;
58      UINT8 data = state->m_videoram[offs];
57      UINT8 data = m_videoram[offs];
5958
6059      for (i = 0; i < 8; i++)
6160      {
6261         pen_t pen;
6362
64         if (state->m_avalance_video_inverted)
63         if (m_avalance_video_inverted)
6564            pen = (data & 0x80) ? RGB_WHITE : RGB_BLACK;
6665         else
6766            pen = (data & 0x80) ? RGB_BLACK : RGB_WHITE;
r17967r17968
258257   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
259258   MCFG_SCREEN_SIZE(32*8, 32*8)
260259   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 32*8-1)
261   MCFG_SCREEN_UPDATE_STATIC(avalnche)
260   MCFG_SCREEN_UPDATE_DRIVER(avalnche_state, screen_update_avalnche)
262261
263262   /* sound hardware */
264263   MCFG_SPEAKER_STANDARD_MONO("mono")
trunk/src/mame/drivers/gaelco3d.c
r17967r17968
10191019   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
10201020   MCFG_SCREEN_SIZE(576, 432)
10211021   MCFG_SCREEN_VISIBLE_AREA(0, 575, 0, 431)
1022   MCFG_SCREEN_UPDATE_STATIC(gaelco3d)
1022   MCFG_SCREEN_UPDATE_DRIVER(gaelco3d_state, screen_update_gaelco3d)
10231023
10241024   MCFG_PALETTE_LENGTH(32768)
10251025
trunk/src/mame/drivers/dcon.c
r17967r17968
263263   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
264264   MCFG_SCREEN_SIZE(40*8, 32*8)
265265   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
266   MCFG_SCREEN_UPDATE_STATIC(dcon)
266   MCFG_SCREEN_UPDATE_DRIVER(dcon_state, screen_update_dcon)
267267
268268   MCFG_GFXDECODE(dcon)
269269   MCFG_PALETTE_LENGTH(2048)
r17967r17968
290290   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
291291   MCFG_SCREEN_SIZE(40*8, 32*8)
292292   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
293   MCFG_SCREEN_UPDATE_STATIC(sdgndmps)
293   MCFG_SCREEN_UPDATE_DRIVER(dcon_state, screen_update_sdgndmps)
294294
295295   MCFG_GFXDECODE(dcon)
296296   MCFG_PALETTE_LENGTH(2048)
trunk/src/mame/drivers/photon2.c
r17967r17968
3535   virtual void machine_reset();
3636   virtual void video_start();
3737   virtual void palette_init();
38   UINT32 screen_update_spectrum(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
39   void screen_eof_spectrum(screen_device &screen, bool state);
3840};
3941
4042
r17967r17968
106108
107109/* Code to change the FLASH status every 25 frames. Note this must be
108110   independent of frame skip etc. */
109static SCREEN_VBLANK( spectrum )
111void photon2_state::screen_eof_spectrum(screen_device &screen, bool state)
110112{
111113   // rising edge
112   if (vblank_on)
114   if (state)
113115   {
114      photon2_state *state = screen.machine().driver_data<photon2_state>();
115       state->m_spectrum_frame_number++;
116       if (state->m_spectrum_frame_number >= 25)
116       m_spectrum_frame_number++;
117       if (m_spectrum_frame_number >= 25)
117118       {
118           state->m_spectrum_frame_number = 0;
119           state->m_spectrum_flash_invert = !state->m_spectrum_flash_invert;
119           m_spectrum_frame_number = 0;
120           m_spectrum_flash_invert = !m_spectrum_flash_invert;
120121       }
121122   }
122123}
r17967r17968
126127   bitmap.pix16(y, x) = (UINT16)color;
127128}
128129
129static SCREEN_UPDATE_IND16( spectrum )
130UINT32 photon2_state::screen_update_spectrum(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
130131{
131   photon2_state *state = screen.machine().driver_data<photon2_state>();
132132    /* for now do a full-refresh */
133133    int x, y, b, scrx, scry;
134134    unsigned short ink, pap;
135135    unsigned char *attr, *scr;
136136//  int full_refresh = 1;
137137
138    scr=state->m_spectrum_video_ram;
138    scr=m_spectrum_video_ram;
139139
140   bitmap.fill(state->m_spectrum_port_fe & 0x07, cliprect);
140   bitmap.fill(m_spectrum_port_fe & 0x07, cliprect);
141141
142142    for (y=0; y<192; y++)
143143    {
144144        scrx=SPEC_LEFT_BORDER;
145145        scry=((y&7) * 8) + ((y&0x38)>>3) + (y&0xC0);
146        attr=state->m_spectrum_video_ram + ((scry>>3)*32) + 0x1800;
146        attr=m_spectrum_video_ram + ((scry>>3)*32) + 0x1800;
147147
148148        for (x=0;x<32;x++)
149149        {
150150            /* Get ink and paper colour with bright */
151                if (state->m_spectrum_flash_invert && (*attr & 0x80))
151                if (m_spectrum_flash_invert && (*attr & 0x80))
152152                {
153153                        ink=((*attr)>>3) & 0x0f;
154154                        pap=((*attr) & 0x07) + (((*attr)>>3) & 0x08);
r17967r17968
331331   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
332332   MCFG_SCREEN_SIZE(SPEC_SCREEN_WIDTH, SPEC_SCREEN_HEIGHT)
333333   MCFG_SCREEN_VISIBLE_AREA(0, SPEC_SCREEN_WIDTH-1, 0, SPEC_SCREEN_HEIGHT-1)
334   MCFG_SCREEN_UPDATE_STATIC( spectrum )
335   MCFG_SCREEN_VBLANK_STATIC( spectrum )
334   MCFG_SCREEN_UPDATE_DRIVER(photon2_state, screen_update_spectrum)
335   MCFG_SCREEN_VBLANK_DRIVER(photon2_state, screen_eof_spectrum)
336336
337337   MCFG_PALETTE_LENGTH(16)
338338
trunk/src/mame/drivers/gstriker.c
r17967r17968
555555   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(5000) /* hand-tuned, it needs a bit */)
556556   MCFG_SCREEN_SIZE(64*8, 64*8)
557557   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
558   MCFG_SCREEN_UPDATE_STATIC(gstriker)
558   MCFG_SCREEN_UPDATE_DRIVER(gstriker_state, screen_update_gstriker)
559559
560560   MCFG_GFXDECODE(gstriker)
561561   MCFG_PALETTE_LENGTH(0x800)
r17967r17968
593593   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(5000) /* hand-tuned, it needs a bit */)
594594   MCFG_SCREEN_SIZE(64*8, 64*8)
595595   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
596   MCFG_SCREEN_UPDATE_STATIC(gstriker)
596   MCFG_SCREEN_UPDATE_DRIVER(gstriker_state, screen_update_gstriker)
597597
598598   MCFG_GFXDECODE(gstriker)
599599   MCFG_PALETTE_LENGTH(0x2000)
trunk/src/mame/drivers/snk.c
r17967r17968
36453645   MCFG_SCREEN_REFRESH_RATE(60)
36463646   MCFG_SCREEN_SIZE(36*8, 28*8)
36473647   MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 28*8-1)
3648   MCFG_SCREEN_UPDATE_STATIC(marvins)
3648   MCFG_SCREEN_UPDATE_DRIVER(snk_state, screen_update_marvins)
36493649
36503650   MCFG_GFXDECODE(marvins)
36513651   MCFG_PALETTE_LENGTH(0x400)
r17967r17968
37143714   MCFG_SCREEN_REFRESH_RATE(60)
37153715   MCFG_SCREEN_SIZE(36*8, 28*8)
37163716   MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 28*8-1)
3717   MCFG_SCREEN_UPDATE_STATIC(tnk3)
3717   MCFG_SCREEN_UPDATE_DRIVER(snk_state, screen_update_tnk3)
37183718
37193719   MCFG_GFXDECODE(tnk3)
37203720   MCFG_PALETTE_LENGTH(0x400)
r17967r17968
37923792   MCFG_SCREEN_REFRESH_RATE(60)
37933793   MCFG_SCREEN_SIZE(36*8, 28*8)
37943794   MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 28*8-1)
3795   MCFG_SCREEN_UPDATE_STATIC(tnk3)
3795   MCFG_SCREEN_UPDATE_DRIVER(snk_state, screen_update_tnk3)
37963796
37973797   MCFG_GFXDECODE(tnk3)
37983798   MCFG_PALETTE_LENGTH(0x400)
r17967r17968
38763876   MCFG_SCREEN_REFRESH_RATE(60)
38773877   MCFG_SCREEN_SIZE(36*8, 28*8)
38783878   MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 28*8-1)
3879   MCFG_SCREEN_UPDATE_STATIC(ikari)
3879   MCFG_SCREEN_UPDATE_DRIVER(snk_state, screen_update_ikari)
38803880
38813881   MCFG_GFXDECODE(ikari)
38823882   MCFG_PALETTE_LENGTH(0x400)
r17967r17968
39323932   // this visible area matches the psychos pcb
39333933   MCFG_SCREEN_SIZE(50*8, 28*8)
39343934   MCFG_SCREEN_VISIBLE_AREA(0*8, 50*8-1, 0*8, 28*8-1)
3935   MCFG_SCREEN_UPDATE_STATIC(gwar)
3935   MCFG_SCREEN_UPDATE_DRIVER(snk_state, screen_update_gwar)
39363936
39373937   MCFG_GFXDECODE(gwar)
39383938   MCFG_PALETTE_LENGTH(0x400)
r17967r17968
40364036   MCFG_SCREEN_REFRESH_RATE(60)
40374037   MCFG_SCREEN_SIZE(50*8, 28*8)
40384038   MCFG_SCREEN_VISIBLE_AREA(0*8, 50*8-1, 0*8, 28*8-1)
4039   MCFG_SCREEN_UPDATE_STATIC(tdfever)
4039   MCFG_SCREEN_UPDATE_DRIVER(snk_state, screen_update_tdfever)
40404040
40414041   MCFG_GFXDECODE(tdfever)
40424042   MCFG_PALETTE_LENGTH(0x400)
trunk/src/mame/drivers/highvdeo.c
r17967r17968
125125   DECLARE_DRIVER_INIT(fashion);
126126   DECLARE_DRIVER_INIT(ciclone);
127127   DECLARE_VIDEO_START(tourvisn);
128   UINT32 screen_update_tourvisn(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
129   UINT32 screen_update_brasil(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
128130};
129131
130132
r17967r17968
135137
136138}
137139
138static SCREEN_UPDATE_RGB32(tourvisn)
140UINT32 highvdeo_state::screen_update_tourvisn(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
139141{
140   highvdeo_state *state = screen.machine().driver_data<highvdeo_state>();
141142   int x,y,count;
142143
143144   count = (0/2);
r17967r17968
148149      {
149150         UINT32 color;
150151
151         color = ((state->m_blit_ram[count]) & 0x00ff)>>0;
152         color = ((m_blit_ram[count]) & 0x00ff)>>0;
152153
153154         if(cliprect.contains((x*2)+0, y))
154155            bitmap.pix32(y, (x*2)+0) = screen.machine().pens[color];
155156
156         color = ((state->m_blit_ram[count]) & 0xff00)>>8;
157         color = ((m_blit_ram[count]) & 0xff00)>>8;
157158
158159         if(cliprect.contains((x*2)+1, y))
159160            bitmap.pix32(y, (x*2)+1) = screen.machine().pens[color];
r17967r17968
166167}
167168
168169/*Later HW, RGB565 instead of RAM-based pens (+ ramdac).*/
169static SCREEN_UPDATE_RGB32(brasil)
170UINT32 highvdeo_state::screen_update_brasil(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
170171{
171   highvdeo_state *state = screen.machine().driver_data<highvdeo_state>();
172172   int x,y,count;
173173
174174   count = (0/2);
r17967r17968
182182         UINT32 g;
183183         UINT32 r;
184184
185         color = (state->m_blit_ram[count]) & 0xffff;
185         color = (m_blit_ram[count]) & 0xffff;
186186
187187         b = (color & 0x001f) << 3;
188188         g = (color & 0x07e0) >> 3;
r17967r17968
938938   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
939939   MCFG_SCREEN_SIZE(400, 300)
940940   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1)
941   MCFG_SCREEN_UPDATE_STATIC(tourvisn)
941   MCFG_SCREEN_UPDATE_DRIVER(highvdeo_state, screen_update_tourvisn)
942942
943943   MCFG_PALETTE_LENGTH(0x100)
944944
r17967r17968
10041004   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
10051005   MCFG_SCREEN_SIZE(400, 300)
10061006   MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 300-1)
1007   MCFG_SCREEN_UPDATE_STATIC(brasil)
1007   MCFG_SCREEN_UPDATE_DRIVER(highvdeo_state, screen_update_brasil)
10081008
10091009   MCFG_PALETTE_LENGTH(0x100)
10101010
trunk/src/mame/drivers/nsmpoker.c
r17967r17968
8282   TILE_GET_INFO_MEMBER(get_bg_tile_info);
8383   virtual void video_start();
8484   virtual void palette_init();
85   UINT32 screen_update_nsmpoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8586};
8687
8788
r17967r17968
127128}
128129
129130
130static SCREEN_UPDATE_IND16( nsmpoker )
131UINT32 nsmpoker_state::screen_update_nsmpoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
131132{
132   nsmpoker_state *state = screen.machine().driver_data<nsmpoker_state>();
133   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
133   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
134134   return 0;
135135}
136136
r17967r17968
406406   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
407407   MCFG_SCREEN_SIZE(32*8, 32*8)
408408   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
409   MCFG_SCREEN_UPDATE_STATIC(nsmpoker)
409   MCFG_SCREEN_UPDATE_DRIVER(nsmpoker_state, screen_update_nsmpoker)
410410
411411   MCFG_GFXDECODE(nsmpoker)
412412
trunk/src/mame/drivers/namconb1.c
r17967r17968
10241024   MCFG_SCREEN_REFRESH_RATE(59.7)
10251025   MCFG_SCREEN_SIZE(NAMCONB1_HTOTAL, NAMCONB1_VTOTAL)
10261026   MCFG_SCREEN_VISIBLE_AREA(0, NAMCONB1_HBSTART-1, 0, NAMCONB1_VBSTART-1)
1027   MCFG_SCREEN_UPDATE_STATIC(namconb1)
1027   MCFG_SCREEN_UPDATE_DRIVER(namconb1_state, screen_update_namconb1)
10281028
10291029   MCFG_GFXDECODE(namconb1)
10301030   MCFG_PALETTE_LENGTH(0x2000)
r17967r17968
10561056   MCFG_SCREEN_REFRESH_RATE(59.7)
10571057   MCFG_SCREEN_SIZE(NAMCONB1_HTOTAL, NAMCONB1_VTOTAL)
10581058   MCFG_SCREEN_VISIBLE_AREA(0, NAMCONB1_HBSTART-1, 0, NAMCONB1_VBSTART-1)
1059   MCFG_SCREEN_UPDATE_STATIC(namconb2)
1059   MCFG_SCREEN_UPDATE_DRIVER(namconb1_state, screen_update_namconb2)
10601060
10611061   MCFG_GFXDECODE(2)
10621062   MCFG_PALETTE_LENGTH(0x2000)
trunk/src/mame/drivers/fcrash.c
r17967r17968
217217   }
218218}
219219
220static SCREEN_UPDATE_IND16( fcrash )
220UINT32 cps_state::screen_update_fcrash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
221221{
222   cps_state *state = screen.machine().driver_data<cps_state>();
223222   int layercontrol, l0, l1, l2, l3;
224   int videocontrol = state->m_cps_a_regs[0x22 / 2];
223   int videocontrol = m_cps_a_regs[0x22 / 2];
225224
226225
227   state->flip_screen_set(videocontrol & 0x8000);
226   flip_screen_set(videocontrol & 0x8000);
228227
229   layercontrol = state->m_cps_b_regs[0x20 / 2];
228   layercontrol = m_cps_b_regs[0x20 / 2];
230229
231230   /* Get video memory base registers */
232231   cps1_get_video_base(screen.machine());
r17967r17968
236235
237236   fcrash_update_transmasks(screen.machine());
238237
239   state->m_bg_tilemap[0]->set_scrollx(0, state->m_scroll1x - 62);
240   state->m_bg_tilemap[0]->set_scrolly(0, state->m_scroll1y);
238   m_bg_tilemap[0]->set_scrollx(0, m_scroll1x - 62);
239   m_bg_tilemap[0]->set_scrolly(0, m_scroll1y);
241240
242241   if (videocontrol & 0x01)   /* linescroll enable */
243242   {
244      int scrly = -state->m_scroll2y;
243      int scrly = -m_scroll2y;
245244      int i;
246245      int otheroffs;
247246
248      state->m_bg_tilemap[1]->set_scroll_rows(1024);
247      m_bg_tilemap[1]->set_scroll_rows(1024);
249248
250      otheroffs = state->m_cps_a_regs[CPS1_ROWSCROLL_OFFS];
249      otheroffs = m_cps_a_regs[CPS1_ROWSCROLL_OFFS];
251250
252251      for (i = 0; i < 256; i++)
253         state->m_bg_tilemap[1]->set_scrollx((i - scrly) & 0x3ff, state->m_scroll2x + state->m_other[(i + otheroffs) & 0x3ff]);
252         m_bg_tilemap[1]->set_scrollx((i - scrly) & 0x3ff, m_scroll2x + m_other[(i + otheroffs) & 0x3ff]);
254253   }
255254   else
256255   {
257      state->m_bg_tilemap[1]->set_scroll_rows(1);
258      state->m_bg_tilemap[1]->set_scrollx(0, state->m_scroll2x - 60);
256      m_bg_tilemap[1]->set_scroll_rows(1);
257      m_bg_tilemap[1]->set_scrollx(0, m_scroll2x - 60);
259258   }
260   state->m_bg_tilemap[1]->set_scrolly(0, state->m_scroll2y);
261   state->m_bg_tilemap[2]->set_scrollx(0, state->m_scroll3x - 64);
262   state->m_bg_tilemap[2]->set_scrolly(0, state->m_scroll3y);
259   m_bg_tilemap[1]->set_scrolly(0, m_scroll2y);
260   m_bg_tilemap[2]->set_scrollx(0, m_scroll3x - 64);
261   m_bg_tilemap[2]->set_scrolly(0, m_scroll3y);
263262
264263
265264   /* turn all tilemaps on regardless of settings in get_video_base() */
266265   /* write a custom get_video_base for this bootleg hardware? */
267   state->m_bg_tilemap[0]->enable(1);
268   state->m_bg_tilemap[1]->enable(1);
269   state->m_bg_tilemap[2]->enable(1);
266   m_bg_tilemap[0]->enable(1);
267   m_bg_tilemap[1]->enable(1);
268   m_bg_tilemap[2]->enable(1);
270269
271270   /* Blank screen */
272271   bitmap.fill(0xbff, cliprect);
r17967r17968
298297}
299298
300299// doesn't have the scroll offsets like fcrash
301static SCREEN_UPDATE_IND16( kodb )
300UINT32 cps_state::screen_update_kodb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
302301{
303   cps_state *state = screen.machine().driver_data<cps_state>();
304302   int layercontrol, l0, l1, l2, l3;
305   int videocontrol = state->m_cps_a_regs[0x22 / 2];
303   int videocontrol = m_cps_a_regs[0x22 / 2];
306304
307   state->flip_screen_set(videocontrol & 0x8000);
305   flip_screen_set(videocontrol & 0x8000);
308306
309   layercontrol = state->m_cps_b_regs[0x20 / 2];
307   layercontrol = m_cps_b_regs[0x20 / 2];
310308
311309   /* Get video memory base registers */
312310   cps1_get_video_base(screen.machine());
r17967r17968
316314
317315   fcrash_update_transmasks(screen.machine());
318316
319   state->m_bg_tilemap[0]->set_scrollx(0, state->m_scroll1x);
320   state->m_bg_tilemap[0]->set_scrolly(0, state->m_scroll1y);
317   m_bg_tilemap[0]->set_scrollx(0, m_scroll1x);
318   m_bg_tilemap[0]->set_scrolly(0, m_scroll1y);
321319
322320   if (videocontrol & 0x01)   /* linescroll enable */
323321   {
324      int scrly= -state->m_scroll2y;
322      int scrly= -m_scroll2y;
325323      int i;
326324      int otheroffs;
327325
328      state->m_bg_tilemap[1]->set_scroll_rows(1024);
326      m_bg_tilemap[1]->set_scroll_rows(1024);
329327
330      otheroffs = state->m_cps_a_regs[CPS1_ROWSCROLL_OFFS];
328      otheroffs = m_cps_a_regs[CPS1_ROWSCROLL_OFFS];
331329
332330      for (i = 0; i < 256; i++)
333         state->m_bg_tilemap[1]->set_scrollx((i - scrly) & 0x3ff, state->m_scroll2x + state->m_other[(i + otheroffs) & 0x3ff]);
331         m_bg_tilemap[1]->set_scrollx((i - scrly) & 0x3ff, m_scroll2x + m_other[(i + otheroffs) & 0x3ff]);
334332   }
335333   else
336334   {
337      state->m_bg_tilemap[1]->set_scroll_rows(1);
338      state->m_bg_tilemap[1]->set_scrollx(0, state->m_scroll2x);
335      m_bg_tilemap[1]->set_scroll_rows(1);
336      m_bg_tilemap[1]->set_scrollx(0, m_scroll2x);
339337   }
340338
341   state->m_bg_tilemap[1]->set_scrolly(0, state->m_scroll2y);
342   state->m_bg_tilemap[2]->set_scrollx(0, state->m_scroll3x);
343   state->m_bg_tilemap[2]->set_scrolly(0, state->m_scroll3y);
339   m_bg_tilemap[1]->set_scrolly(0, m_scroll2y);
340   m_bg_tilemap[2]->set_scrollx(0, m_scroll3x);
341   m_bg_tilemap[2]->set_scrolly(0, m_scroll3y);
344342
345343
346344   /* turn all tilemaps on regardless of settings in get_video_base() */
347345   /* write a custom get_video_base for this bootleg hardware? */
348   state->m_bg_tilemap[0]->enable(1);
349   state->m_bg_tilemap[1]->enable(1);
350   state->m_bg_tilemap[2]->enable(1);
346   m_bg_tilemap[0]->enable(1);
347   m_bg_tilemap[1]->enable(1);
348   m_bg_tilemap[2]->enable(1);
351349
352350   /* Blank screen */
353351   bitmap.fill(0xbff, cliprect);
r17967r17968
742740   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
743741   MCFG_SCREEN_SIZE(64*8, 32*8)
744742   MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
745   MCFG_SCREEN_UPDATE_STATIC(fcrash)
746   MCFG_SCREEN_VBLANK_STATIC(cps1)
743   MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash)
744   MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1)
747745
748746   MCFG_GFXDECODE(cps1)
749747   MCFG_PALETTE_LENGTH(4096)
r17967r17968
792790   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
793791   MCFG_SCREEN_SIZE(64*8, 32*8)
794792   MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
795   MCFG_SCREEN_UPDATE_STATIC(kodb)
796   MCFG_SCREEN_VBLANK_STATIC(cps1)
793   MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_kodb)
794   MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1)
797795
798796   MCFG_GFXDECODE(cps1)
799797   MCFG_PALETTE_LENGTH(0xc00)
r17967r17968
948946   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
949947   MCFG_SCREEN_SIZE(64*8, 32*8)
950948   MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
951   MCFG_SCREEN_UPDATE_STATIC(kodb)
952   MCFG_SCREEN_VBLANK_STATIC(cps1)
949   MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_kodb)
950   MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1)
953951
954952   MCFG_GFXDECODE(cps1)
955953   MCFG_PALETTE_LENGTH(0xc00)
trunk/src/mame/drivers/f-32.c
r17967r17968
2929   required_device<e132xn_device>   m_maincpu;
3030   required_shared_ptr<UINT32> m_videoram;
3131   DECLARE_READ32_MEMBER(f32_input_port_1_r);
32   UINT32 screen_update_mosaicf2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3233};
3334
3435
35static SCREEN_UPDATE_IND16( mosaicf2 )
36UINT32 mosaicf2_state::screen_update_mosaicf2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
3637{
37   mosaicf2_state *state = screen.machine().driver_data<mosaicf2_state>();
3838   offs_t offs;
3939
4040   for (offs = 0; offs < 0x10000; offs++)
r17967r17968
4444
4545      if ((x < 0xa0) && (y < 0xe0))
4646      {
47         bitmap.pix16(y, (x * 2) + 0) = (state->m_videoram[offs] >> 16) & 0x7fff;
48         bitmap.pix16(y, (x * 2) + 1) = (state->m_videoram[offs] >>  0) & 0x7fff;
47         bitmap.pix16(y, (x * 2) + 0) = (m_videoram[offs] >> 16) & 0x7fff;
48         bitmap.pix16(y, (x * 2) + 1) = (m_videoram[offs] >>  0) & 0x7fff;
4949      }
5050   }
5151
r17967r17968
147147   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
148148   MCFG_SCREEN_SIZE(512, 512)
149149   MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 223)
150   MCFG_SCREEN_UPDATE_STATIC(mosaicf2)
150   MCFG_SCREEN_UPDATE_DRIVER(mosaicf2_state, screen_update_mosaicf2)
151151
152152   MCFG_PALETTE_INIT(RRRRR_GGGGG_BBBBB)
153153   MCFG_PALETTE_LENGTH(32768)
trunk/src/mame/drivers/strnskil.c
r17967r17968
367367   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
368368   MCFG_SCREEN_SIZE(32*8+3*8, 32*8+3*8)
369369   MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1)
370   MCFG_SCREEN_UPDATE_STATIC(strnskil)
370   MCFG_SCREEN_UPDATE_DRIVER(strnskil_state, screen_update_strnskil)
371371
372372   MCFG_GFXDECODE(strnskil)
373373   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/cosmic.c
r17967r17968
10251025
10261026   MCFG_PALETTE_INIT_OVERRIDE(cosmic_state,panic)
10271027   MCFG_SCREEN_MODIFY("screen")
1028   MCFG_SCREEN_UPDATE_STATIC(panic)
1028   MCFG_SCREEN_UPDATE_DRIVER(cosmic_state, screen_update_panic)
10291029
10301030   /* sound hardware */
10311031   MCFG_SPEAKER_STANDARD_MONO("mono")
r17967r17968
10501050
10511051   MCFG_PALETTE_INIT_OVERRIDE(cosmic_state,cosmica)
10521052   MCFG_SCREEN_MODIFY("screen")
1053   MCFG_SCREEN_UPDATE_STATIC(cosmica)
1053   MCFG_SCREEN_UPDATE_DRIVER(cosmic_state, screen_update_cosmica)
10541054
10551055   /* sound hardware */
10561056   MCFG_SPEAKER_STANDARD_MONO("mono")
r17967r17968
10831083   MCFG_SCREEN_REFRESH_RATE(60)
10841084   MCFG_SCREEN_SIZE(32*8, 32*8)
10851085   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 28*8-1)
1086   MCFG_SCREEN_UPDATE_STATIC(cosmicg)
1086   MCFG_SCREEN_UPDATE_DRIVER(cosmic_state, screen_update_cosmicg)
10871087
10881088   MCFG_PALETTE_LENGTH(16)
10891089
r17967r17968
11121112
11131113   MCFG_PALETTE_INIT_OVERRIDE(cosmic_state,magspot)
11141114   MCFG_SCREEN_MODIFY("screen")
1115   MCFG_SCREEN_UPDATE_STATIC(magspot)
1115   MCFG_SCREEN_UPDATE_DRIVER(cosmic_state, screen_update_magspot)
11161116
11171117   /* sound hardware */
11181118   MCFG_SPEAKER_STANDARD_MONO("mono")
r17967r17968
11281128
11291129   /* video hardware */
11301130   MCFG_SCREEN_MODIFY("screen")
1131   MCFG_SCREEN_UPDATE_STATIC(devzone)
1131   MCFG_SCREEN_UPDATE_DRIVER(cosmic_state, screen_update_devzone)
11321132MACHINE_CONFIG_END
11331133
11341134
r17967r17968
11441144
11451145   MCFG_PALETTE_INIT_OVERRIDE(cosmic_state,nomnlnd)
11461146   MCFG_SCREEN_MODIFY("screen")
1147   MCFG_SCREEN_UPDATE_STATIC(nomnlnd)
1147   MCFG_SCREEN_UPDATE_DRIVER(cosmic_state, screen_update_nomnlnd)
11481148
11491149   /* sound hardware */
11501150   MCFG_SPEAKER_STANDARD_MONO("mono")
trunk/src/mame/drivers/model2.c
r17967r17968
20012001   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
20022002   MCFG_SCREEN_SIZE(62*8, 48*8)
20032003   MCFG_SCREEN_VISIBLE_AREA(0*8, 62*8-1, 0*8, 48*8-1)
2004   MCFG_SCREEN_UPDATE_STATIC(model2)
2004   MCFG_SCREEN_UPDATE_DRIVER(model2_state, screen_update_model2)
20052005
20062006   MCFG_PALETTE_LENGTH(8192)
20072007
r17967r17968
20592059   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
20602060   MCFG_SCREEN_SIZE(62*8, 48*8)
20612061   MCFG_SCREEN_VISIBLE_AREA(0*8, 62*8-1, 0*8, 48*8-1)
2062   MCFG_SCREEN_UPDATE_STATIC(model2)
2062   MCFG_SCREEN_UPDATE_DRIVER(model2_state, screen_update_model2)
20632063
20642064   MCFG_PALETTE_LENGTH(8192)
20652065
r17967r17968
21622162   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
21632163   MCFG_SCREEN_SIZE(62*8, 48*8)
21642164   MCFG_SCREEN_VISIBLE_AREA(0*8, 62*8-1, 0*8, 48*8-1)
2165   MCFG_SCREEN_UPDATE_STATIC(model2)
2165   MCFG_SCREEN_UPDATE_DRIVER(model2_state, screen_update_model2)
21662166
21672167   MCFG_PALETTE_LENGTH(8192)
21682168
r17967r17968
22092209   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
22102210   MCFG_SCREEN_SIZE(62*8, 48*8)
22112211   MCFG_SCREEN_VISIBLE_AREA(0*8, 62*8-1, 0*8, 48*8-1)
2212   MCFG_SCREEN_UPDATE_STATIC(model2)
2212   MCFG_SCREEN_UPDATE_DRIVER(model2_state, screen_update_model2)
22132213
22142214   MCFG_PALETTE_LENGTH(8192)
22152215
trunk/src/mame/drivers/majorpkr.c
r17967r17968
493493   TILE_GET_INFO_MEMBER(bg_get_tile_info);
494494   TILE_GET_INFO_MEMBER(fg_get_tile_info);
495495   virtual void video_start();
496   UINT32 screen_update_majorpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
496497};
497498
498499
r17967r17968
536537}
537538
538539
539static SCREEN_UPDATE_IND16(majorpkr)
540UINT32 majorpkr_state::screen_update_majorpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
540541{
541   majorpkr_state *state = screen.machine().driver_data<majorpkr_state>();
542542
543543   bitmap.fill(get_black_pen(screen.machine()), cliprect);
544544
r17967r17968
550550   custom_clip = cliprect;
551551   custom_clip.max_x -= 16;
552552
553   state->m_bg_tilemap->draw(bitmap, custom_clip, 0, 0);
554   state->m_fg_tilemap->draw(bitmap, custom_clip, 0, 0);
553   m_bg_tilemap->draw(bitmap, custom_clip, 0, 0);
554   m_fg_tilemap->draw(bitmap, custom_clip, 0, 0);
555555
556   if (state->m_flip_state == 1)
556   if (m_flip_state == 1)
557557   {
558      state->m_bg_tilemap->set_flip(TILEMAP_FLIPX | TILEMAP_FLIPY);
559      state->m_fg_tilemap->set_flip(TILEMAP_FLIPX | TILEMAP_FLIPY);
558      m_bg_tilemap->set_flip(TILEMAP_FLIPX | TILEMAP_FLIPY);
559      m_fg_tilemap->set_flip(TILEMAP_FLIPX | TILEMAP_FLIPY);
560560   }
561561
562562   return 0;
r17967r17968
10461046   MCFG_GFXDECODE(majorpkr)
10471047   MCFG_PALETTE_LENGTH(0x100 * 16)
10481048
1049   MCFG_SCREEN_UPDATE_STATIC(majorpkr)
1049   MCFG_SCREEN_UPDATE_DRIVER(majorpkr_state, screen_update_majorpkr)
10501050
10511051   MCFG_MC6845_ADD("crtc", MC6845, CRTC_CLOCK, mc6845_intf) /* verified */
10521052
trunk/src/mame/drivers/sshangha.c
r17967r17968
408408   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
409409   MCFG_SCREEN_SIZE(40*8, 32*8)
410410   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
411   MCFG_SCREEN_UPDATE_STATIC(sshangha)
411   MCFG_SCREEN_UPDATE_DRIVER(sshangha_state, screen_update_sshangha)
412412
413413   MCFG_GFXDECODE(sshangha)
414414   MCFG_PALETTE_LENGTH(0x4000)
trunk/src/mame/drivers/wiping.c
r17967r17968
297297   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
298298   MCFG_SCREEN_SIZE(36*8, 28*8)
299299   MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
300   MCFG_SCREEN_UPDATE_STATIC(wiping)
300   MCFG_SCREEN_UPDATE_DRIVER(wiping_state, screen_update_wiping)
301301
302302   MCFG_GFXDECODE(wiping)
303303   MCFG_PALETTE_LENGTH(64*4+64*4)
trunk/src/mame/drivers/sshot.c
r17967r17968
174174   TILE_GET_INFO_MEMBER(get_supershot_text_tile_info);
175175   virtual void video_start();
176176   virtual void palette_init();
177   UINT32 screen_update_supershot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
177178};
178179
179180/*************************************
r17967r17968
194195   m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(supershot_state::get_supershot_text_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
195196}
196197
197static SCREEN_UPDATE_IND16( supershot )
198UINT32 supershot_state::screen_update_supershot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
198199{
199   supershot_state *state = screen.machine().driver_data<supershot_state>();
200   state->m_tilemap->draw(bitmap, cliprect, 0, 0);
200   m_tilemap->draw(bitmap, cliprect, 0, 0);
201201   return 0;
202202}
203203
r17967r17968
340340   MCFG_SCREEN_SIZE((32)*8, (32)*8)
341341   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
342342
343   MCFG_SCREEN_UPDATE_STATIC(supershot)
343   MCFG_SCREEN_UPDATE_DRIVER(supershot_state, screen_update_supershot)
344344
345345   MCFG_GFXDECODE(supershot)
346346   MCFG_PALETTE_LENGTH(2)
trunk/src/mame/drivers/popeye.c
r17967r17968
436436   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
437437   MCFG_SCREEN_SIZE(32*16, 32*16)
438438   MCFG_SCREEN_VISIBLE_AREA(0*16, 32*16-1, 2*16, 30*16-1)
439   MCFG_SCREEN_UPDATE_STATIC(popeye)
439   MCFG_SCREEN_UPDATE_DRIVER(popeye_state, screen_update_popeye)
440440
441441   MCFG_GFXDECODE(popeye)
442442   MCFG_PALETTE_LENGTH(16+16*2+64*4)
trunk/src/mame/drivers/gstream.c
r17967r17968
183183   virtual void machine_start();
184184   virtual void machine_reset();
185185   virtual void video_start();
186   UINT32 screen_update_gstream(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
186187};
187188
188189
r17967r17968
480481   m_tilemap2->set_transparent_pen(0);
481482}
482483
483static SCREEN_UPDATE_IND16(gstream)
484UINT32 gstream_state::screen_update_gstream(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
484485{
485486   /* The tilemaps and sprite are interleaved together.
486487       Even Words are tilemap tiles
r17967r17968
496497       are being set ?!
497498   */
498499
499   gstream_state *state = screen.machine().driver_data<gstream_state>();
500500   int i;
501501
502   //popmessage("(1) %08x %08x (2) %08x %08x (3) %08x %08x", state->m_tmap1_scrollx, state->m_tmap1_scrolly, state->m_tmap2_scrollx, state->m_tmap2_scrolly, state->m_tmap3_scrollx, state->m_tmap3_scrolly );
502   //popmessage("(1) %08x %08x (2) %08x %08x (3) %08x %08x", m_tmap1_scrollx, m_tmap1_scrolly, m_tmap2_scrollx, m_tmap2_scrolly, m_tmap3_scrollx, m_tmap3_scrolly );
503503
504   state->m_tilemap3->set_scrollx(0, state->m_tmap3_scrollx >> 16);
505   state->m_tilemap3->set_scrolly(0, state->m_tmap3_scrolly >> 16);
504   m_tilemap3->set_scrollx(0, m_tmap3_scrollx >> 16);
505   m_tilemap3->set_scrolly(0, m_tmap3_scrolly >> 16);
506506
507   state->m_tilemap1->set_scrollx(0, state->m_tmap1_scrollx >> 16);
508   state->m_tilemap1->set_scrolly(0, state->m_tmap1_scrolly >> 16);
507   m_tilemap1->set_scrollx(0, m_tmap1_scrollx >> 16);
508   m_tilemap1->set_scrolly(0, m_tmap1_scrolly >> 16);
509509
510   state->m_tilemap2->set_scrollx(0, state->m_tmap2_scrollx >> 16);
511   state->m_tilemap2->set_scrolly(0, state->m_tmap2_scrolly >> 16);
510   m_tilemap2->set_scrollx(0, m_tmap2_scrollx >> 16);
511   m_tilemap2->set_scrolly(0, m_tmap2_scrolly >> 16);
512512
513   state->m_tilemap3->draw(bitmap, cliprect, 0, 0);
514   state->m_tilemap2->draw(bitmap, cliprect, 0, 0);
515   state->m_tilemap1->draw(bitmap, cliprect, 0, 0);
513   m_tilemap3->draw(bitmap, cliprect, 0, 0);
514   m_tilemap2->draw(bitmap, cliprect, 0, 0);
515   m_tilemap1->draw(bitmap, cliprect, 0, 0);
516516
517517   for (i = 0x0000 / 4; i < 0x4000 / 4; i += 4)
518518   {
519519      /* Upper bits are used by the tilemaps */
520      int code = state->m_vram[i + 0] & 0xffff;
521      int x = state->m_vram[i + 1] & 0xffff;
522      int y = state->m_vram[i + 2] & 0xffff;
523      int col = state->m_vram[i + 3] & 0x1f;
520      int code = m_vram[i + 0] & 0xffff;
521      int x = m_vram[i + 1] & 0xffff;
522      int y = m_vram[i + 2] & 0xffff;
523      int col = m_vram[i + 3] & 0x1f;
524524
525525      /* co-ordinates are signed */
526526      if (x & 0x8000) x -= 0x10000;
r17967r17968
576576   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
577577   MCFG_SCREEN_SIZE(320, 240)
578578   MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
579   MCFG_SCREEN_UPDATE_STATIC(gstream)
579   MCFG_SCREEN_UPDATE_DRIVER(gstream_state, screen_update_gstream)
580580
581581   MCFG_PALETTE_LENGTH(0x1000 + 0x400 + 0x400 + 0x400) // sprites + 3 bg layers
582582   MCFG_GFXDECODE(gstream)
trunk/src/mame/drivers/4enraya.c
r17967r17968
330330   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
331331   MCFG_SCREEN_SIZE(32*8, 32*8)
332332   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
333   MCFG_SCREEN_UPDATE_STATIC(4enraya)
333   MCFG_SCREEN_UPDATE_DRIVER(_4enraya_state, screen_update_4enraya)
334334
335335   MCFG_GFXDECODE(4enraya)
336336
trunk/src/mame/drivers/compgolf.c
r17967r17968
257257   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
258258   MCFG_SCREEN_SIZE(256, 256)
259259   MCFG_SCREEN_VISIBLE_AREA(1*8, 32*8-1, 1*8, 31*8-1)
260   MCFG_SCREEN_UPDATE_STATIC(compgolf)
260   MCFG_SCREEN_UPDATE_DRIVER(compgolf_state, screen_update_compgolf)
261261
262262   MCFG_PALETTE_LENGTH(0x100)
263263   MCFG_GFXDECODE(compgolf)
trunk/src/mame/drivers/cps2.c
r17967r17968
12411241
12421242   MCFG_SCREEN_ADD("screen", RASTER)
12431243   MCFG_SCREEN_RAW_PARAMS(XTAL_8MHz, 518, 64, 448, 259, 16, 240)
1244   MCFG_SCREEN_UPDATE_STATIC(cps1)
1245   MCFG_SCREEN_VBLANK_STATIC(cps1)
1244   MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_cps1)
1245   MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1)
12461246/*
12471247    Measured clocks:
12481248        V = 59.6376Hz
trunk/src/mame/drivers/igs017.c
r17967r17968
155155   DECLARE_MACHINE_RESET(iqblocka);
156156   DECLARE_MACHINE_RESET(mgcs);
157157   DECLARE_MACHINE_RESET(lhzb2a);
158   UINT32 screen_update_igs017(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
158159};
159160
160161
r17967r17968
409410   return 0;
410411}
411412
412static SCREEN_UPDATE_IND16( igs017 )
413UINT32 igs017_state::screen_update_igs017(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
413414{
414   igs017_state *state = screen.machine().driver_data<igs017_state>();
415415   int layers_ctrl = -1;
416416
417417#ifdef MAME_DEBUG
r17967r17968
430430
431431   bitmap.fill(get_black_pen(screen.machine()), cliprect);
432432
433   if (state->m_video_disable)
433   if (m_video_disable)
434434      return 0;
435435
436   if (layers_ctrl & 1)   state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
436   if (layers_ctrl & 1)   m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
437437
438438   if (layers_ctrl & 4)   draw_sprites(screen.machine(), bitmap, cliprect);
439439
440   if (layers_ctrl & 2)   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
440   if (layers_ctrl & 2)   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
441441
442442   return 0;
443443}
r17967r17968
32693269   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
32703270   MCFG_SCREEN_SIZE(512, 256)
32713271   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 240-1)
3272   MCFG_SCREEN_UPDATE_STATIC(igs017)
3272   MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017)
32733273
32743274   MCFG_GFXDECODE(igs017)
32753275   MCFG_PALETTE_LENGTH(0x100*2)
r17967r17968
33343334   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
33353335   MCFG_SCREEN_SIZE(512, 256)
33363336   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 240-1)
3337   MCFG_SCREEN_UPDATE_STATIC(igs017)
3337   MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017)
33383338
33393339   MCFG_GFXDECODE(igs017_flipped)
33403340   MCFG_PALETTE_LENGTH(0x100*2)
r17967r17968
33743374   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
33753375   MCFG_SCREEN_SIZE(512, 256)
33763376   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 240-1)
3377   MCFG_SCREEN_UPDATE_STATIC(igs017)
3377   MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017)
33783378
33793379   MCFG_GFXDECODE(igs017_swapped)
33803380   MCFG_PALETTE_LENGTH(0x100*2)
r17967r17968
34113411   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
34123412   MCFG_SCREEN_SIZE(512, 256)
34133413   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-16-1)
3414   MCFG_SCREEN_UPDATE_STATIC(igs017)
3414   MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017)
34153415
34163416   MCFG_GFXDECODE(igs017_swapped)
34173417   MCFG_PALETTE_LENGTH(0x100*2)
r17967r17968
34423442   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
34433443   MCFG_SCREEN_SIZE(512, 256)
34443444   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 240-1)
3445   MCFG_SCREEN_UPDATE_STATIC(igs017)
3445   MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017)
34463446
34473447   MCFG_GFXDECODE(igs017)
34483448   MCFG_PALETTE_LENGTH(0x100*2)
r17967r17968
34823482   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
34833483   MCFG_SCREEN_SIZE(512, 256)
34843484   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-16-1)
3485   MCFG_SCREEN_UPDATE_STATIC(igs017)
3485   MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017)
34863486
34873487   MCFG_GFXDECODE(igs017)
34883488   MCFG_PALETTE_LENGTH(0x100*2)
r17967r17968
35343534   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
35353535   MCFG_SCREEN_SIZE(512, 256)
35363536   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-16-1)
3537   MCFG_SCREEN_UPDATE_STATIC(igs017)
3537   MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017)
35383538
35393539   MCFG_GFXDECODE(igs017_swapped)
35403540   MCFG_PALETTE_LENGTH(0x100*2)
r17967r17968
35653565   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
35663566   MCFG_SCREEN_SIZE(512, 256)
35673567   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 240-1)
3568   MCFG_SCREEN_UPDATE_STATIC(igs017)
3568   MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017)
35693569
35703570   MCFG_GFXDECODE(igs017)
35713571   MCFG_PALETTE_LENGTH(0x100*2)
trunk/src/mame/drivers/pushman.c
r17967r17968
449449   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
450450   MCFG_SCREEN_SIZE(32*8, 32*8)
451451   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
452   MCFG_SCREEN_UPDATE_STATIC(pushman)
452   MCFG_SCREEN_UPDATE_DRIVER(pushman_state, screen_update_pushman)
453453
454454   MCFG_GFXDECODE(pushman)
455455   MCFG_PALETTE_LENGTH(1024)
r17967r17968
495495   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
496496   MCFG_SCREEN_SIZE(32*8, 32*8)
497497   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
498   MCFG_SCREEN_UPDATE_STATIC(pushman)
498   MCFG_SCREEN_UPDATE_DRIVER(pushman_state, screen_update_pushman)
499499
500500   MCFG_GFXDECODE(pushman)
501501   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/monzagp.c
r17967r17968
5555   DECLARE_WRITE8_MEMBER(port3_w);
5656   virtual void video_start();
5757   virtual void palette_init();
58   UINT32 screen_update_monzagp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5859};
5960
6061
r17967r17968
6970   m_vram = auto_alloc_array(machine(), UINT8, 0x10000);
7071}
7172
72static SCREEN_UPDATE_IND16(monzagp)
73UINT32 monzagp_state::screen_update_monzagp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
7374{
74   monzagp_state *state = screen.machine().driver_data<monzagp_state>();
7575   int x,y;
7676
7777   if(screen.machine().input().code_pressed_once(KEYCODE_Z))
78      state->m_bank--;
78      m_bank--;
7979
8080   if(screen.machine().input().code_pressed_once(KEYCODE_X))
81      state->m_bank++;
81      m_bank++;
8282
8383   if(screen.machine().input().code_pressed_once(KEYCODE_Q))
8484   {
85      state->m_screenw--;
86      printf("%x\n",state->m_screenw);
85      m_screenw--;
86      printf("%x\n",m_screenw);
8787   }
8888
8989   if(screen.machine().input().code_pressed_once(KEYCODE_W))
9090   {
91      state->m_screenw++;
92      printf("%x\n",state->m_screenw);
91      m_screenw++;
92      printf("%x\n",m_screenw);
9393   }
9494
9595   if(screen.machine().input().code_pressed_once(KEYCODE_A))
9696   {
9797      FILE * p=fopen("vram.bin","wb");
98      fwrite(&state->m_vram[0],1,0x10000,p);
98      fwrite(&m_vram[0],1,0x10000,p);
9999      fclose(p);
100100   }
101101
r17967r17968
104104   {
105105      for(x=0;x<256;x++)
106106      {
107         drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[state->m_bank&1],
108            state->m_vram[y*state->m_screenw+x],
109            //(state->m_vram[y*state->m_screenw+x]&0x3f)+(state->m_bank>>1)*64,
107         drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[m_bank&1],
108            m_vram[y*m_screenw+x],
109            //(m_vram[y*m_screenw+x]&0x3f)+(m_bank>>1)*64,
110110            0,
111111            0, 0,
112112            x*8,y*8,
r17967r17968
267267   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
268268   MCFG_SCREEN_SIZE(32*8, 32*8)
269269   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
270   MCFG_SCREEN_UPDATE_STATIC(monzagp)
270   MCFG_SCREEN_UPDATE_DRIVER(monzagp_state, screen_update_monzagp)
271271
272272   MCFG_PALETTE_LENGTH(0x200)
273273
trunk/src/mame/drivers/hyperspt.c
r17967r17968
307307   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
308308   MCFG_SCREEN_SIZE(32*8, 32*8)
309309   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
310   MCFG_SCREEN_UPDATE_STATIC(hyperspt)
310   MCFG_SCREEN_UPDATE_DRIVER(hyperspt_state, screen_update_hyperspt)
311311
312312   MCFG_GFXDECODE(hyperspt)
313313   MCFG_PALETTE_LENGTH(16*16+16*16)
trunk/src/mame/drivers/hnayayoi.c
r17967r17968
572572   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
573573   MCFG_SCREEN_SIZE(512, 256)
574574   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
575   MCFG_SCREEN_UPDATE_STATIC(hnayayoi)
575   MCFG_SCREEN_UPDATE_DRIVER(hnayayoi_state, screen_update_hnayayoi)
576576
577577   MCFG_PALETTE_LENGTH(256)
578578
trunk/src/mame/drivers/shanghai.c
r17967r17968
3838   DECLARE_READ16_MEMBER(kothello_hd63484_status_r);
3939   virtual void video_start();
4040   DECLARE_PALETTE_INIT(shanghai);
41   UINT32 screen_update_shanghai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4142};
4243
4344
r17967r17968
7576{
7677}
7778
78static SCREEN_UPDATE_IND16( shanghai )
79UINT32 shanghai_state::screen_update_shanghai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
7980{
8081   device_t *hd63484 = screen.machine().device("hd63484");
8182   int x, y, b, src;
r17967r17968
452453   MCFG_SCREEN_REFRESH_RATE(30)
453454   MCFG_SCREEN_SIZE(384, 280)
454455   MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 280-1) // Base Screen is 384 pixel
455   MCFG_SCREEN_UPDATE_STATIC(shanghai)
456   MCFG_SCREEN_UPDATE_DRIVER(shanghai_state, screen_update_shanghai)
456457
457458   MCFG_PALETTE_LENGTH(256)
458459
r17967r17968
485486   MCFG_SCREEN_REFRESH_RATE(30)
486487   MCFG_SCREEN_SIZE(384, 280)
487488   MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 280-1) // Base Screen is 384 pixel
488   MCFG_SCREEN_UPDATE_STATIC(shanghai)
489   MCFG_SCREEN_UPDATE_DRIVER(shanghai_state, screen_update_shanghai)
489490
490491   MCFG_PALETTE_LENGTH(256)
491492
r17967r17968
522523   MCFG_SCREEN_REFRESH_RATE(30)
523524   MCFG_SCREEN_SIZE(384, 280)
524525   MCFG_SCREEN_VISIBLE_AREA(8, 384-1, 0, 250-1) // Base Screen is 376 pixel
525   MCFG_SCREEN_UPDATE_STATIC(shanghai)
526   MCFG_SCREEN_UPDATE_DRIVER(shanghai_state, screen_update_shanghai)
526527
527528   MCFG_PALETTE_LENGTH(256)
528529
trunk/src/mame/drivers/amaticmg.c
r17967r17968
452452   virtual void video_start();
453453   virtual void palette_init();
454454   DECLARE_PALETTE_INIT(amaticmg2);
455   UINT32 screen_update_amaticmg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
456   UINT32 screen_update_amaticmg2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
455457};
456458
457459
r17967r17968
463465{
464466}
465467
466static SCREEN_UPDATE_IND16( amaticmg )
468UINT32 amaticmg_state::screen_update_amaticmg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
467469{
468   amaticmg_state *state = screen.machine().driver_data<amaticmg_state>();
469470   gfx_element *gfx = screen.machine().gfx[0];
470471   int y,x;
471472   int count = 0;
r17967r17968
474475   {
475476      for (x=0;x<96;x++)
476477      {
477         UINT16 tile = state->m_vram[count];
478         UINT16 tile = m_vram[count];
478479         UINT8 color;
479480
480         tile += ((state->m_attr[count]&0x0f)<<8);
481         tile += ((m_attr[count]&0x0f)<<8);
481482         /* TODO: this looks so out of place ... */
482         color = (state->m_attr[count]&0xf0)>>3;
483         color = (m_attr[count]&0xf0)>>3;
483484
484485         drawgfx_opaque(bitmap,cliprect,gfx,tile,color,0,0,x*4,y*8);
485486         count++;
r17967r17968
489490   return 0;
490491}
491492
492static SCREEN_UPDATE_IND16( amaticmg2 )
493UINT32 amaticmg_state::screen_update_amaticmg2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
493494{
494   amaticmg_state *state = screen.machine().driver_data<amaticmg_state>();
495495   gfx_element *gfx = screen.machine().gfx[0];
496496   int y,x;
497497   int count = 16;
r17967r17968
500500   {
501501      for (x=0;x<96;x++)
502502      {
503         UINT16 tile = state->m_vram[count];
503         UINT16 tile = m_vram[count];
504504         UINT8 color;
505505
506         tile += ((state->m_attr[count]&0xff)<<8);
506         tile += ((m_attr[count]&0xff)<<8);
507507         color = 0;
508508
509509         drawgfx_opaque(bitmap,cliprect,gfx,tile,color,0,0,x*4,y*8);
r17967r17968
881881   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
882882   MCFG_SCREEN_SIZE(512, 256)
883883   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
884   MCFG_SCREEN_UPDATE_STATIC(amaticmg)
884   MCFG_SCREEN_UPDATE_DRIVER(amaticmg_state, screen_update_amaticmg)
885885
886886   MCFG_MC6845_ADD("crtc", MC6845, CRTC_CLOCK, mc6845_intf)
887887
r17967r17968
919919   MCFG_CPU_VBLANK_INT("screen", amaticmg2_irq)
920920
921921   MCFG_SCREEN_MODIFY("screen")
922   MCFG_SCREEN_UPDATE_STATIC(amaticmg2)
922   MCFG_SCREEN_UPDATE_DRIVER(amaticmg_state, screen_update_amaticmg2)
923923
924924   MCFG_GFXDECODE(amaticmg2)
925925   MCFG_PALETTE_INIT_OVERRIDE(amaticmg_state,amaticmg2)
trunk/src/mame/drivers/scramble.c
r17967r17968
13441344   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
13451345   MCFG_SCREEN_SIZE(32*8, 32*8)
13461346   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1347   MCFG_SCREEN_UPDATE_STATIC(galaxold)
1347   MCFG_SCREEN_UPDATE_DRIVER(scramble_state, screen_update_galaxold)
13481348
13491349   MCFG_GFXDECODE(scramble)
13501350   MCFG_PALETTE_LENGTH(32+64+2+1)   /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */
r17967r17968
15721572   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
15731573   MCFG_SCREEN_SIZE(32*8, 32*8)
15741574   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1575   MCFG_SCREEN_UPDATE_STATIC(galaxold)
1575   MCFG_SCREEN_UPDATE_DRIVER(scramble_state, screen_update_galaxold)
15761576
15771577   MCFG_GFXDECODE(ad2083)
15781578   MCFG_PALETTE_LENGTH(32+64+2+8)   /* 32 for characters, 64 for stars, 2 for bullets, 8 for background */
trunk/src/mame/drivers/taxidriv.c
r17967r17968
395395   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
396396   MCFG_SCREEN_SIZE(32*8, 32*8)
397397   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 27*8-1)
398   MCFG_SCREEN_UPDATE_STATIC(taxidriv)
398   MCFG_SCREEN_UPDATE_DRIVER(taxidriv_state, screen_update_taxidriv)
399399
400400   MCFG_GFXDECODE(taxidriv)
401401   MCFG_PALETTE_LENGTH(16)
trunk/src/mame/drivers/avt.c
r17967r17968
444444   TILE_GET_INFO_MEMBER(get_bg_tile_info);
445445   virtual void video_start();
446446   virtual void palette_init();
447   UINT32 screen_update_avt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
447448};
448449
449450#define mc6845_h_char_total    (state->m_crtc_vreg[0])
450#define mc6845_h_display      (state->m_crtc_vreg[1])
451#define mc6845_h_display      (m_crtc_vreg[1])
451452#define mc6845_h_sync_pos      (state->m_crtc_vreg[2])
452453#define mc6845_sync_width      (state->m_crtc_vreg[3])
453454#define mc6845_v_char_total      (state->m_crtc_vreg[4])
454455#define mc6845_v_total_adj      (state->m_crtc_vreg[5])
455#define mc6845_v_display      (state->m_crtc_vreg[6])
456#define mc6845_v_display      (m_crtc_vreg[6])
456457#define mc6845_v_sync_pos      (state->m_crtc_vreg[7])
457458#define mc6845_mode_ctrl      (state->m_crtc_vreg[8])
458459#define mc6845_tile_height      (state->m_crtc_vreg[9]+1)
r17967r17968
504505}
505506
506507
507static SCREEN_UPDATE_IND16( avt )
508UINT32 avt_state::screen_update_avt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
508509{
509   avt_state *state = screen.machine().driver_data<avt_state>();
510510   int x,y;
511511   int count;
512512   gfx_element *gfx = screen.machine().gfx[0];
r17967r17968
517517   {
518518      for(x=0;x<mc6845_h_display;x++)
519519      {
520         UINT16 tile = state->m_videoram[count] | ((state->m_colorram[count] & 1) << 8);
521         UINT8 color = (state->m_colorram[count] & 0xf0) >> 4;
520         UINT16 tile = m_videoram[count] | ((m_colorram[count] & 1) << 8);
521         UINT8 color = (m_colorram[count] & 0xf0) >> 4;
522522
523523         drawgfx_opaque(bitmap,cliprect,gfx,tile,color,0,0,x*8,(y*8));
524524
525525         count++;
526526      }
527527   }
528   //state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
528   //m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
529529   return 0;
530530}
531531
r17967r17968
902902   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
903903   MCFG_SCREEN_SIZE(32*8, 32*8)
904904   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)   /* 240x224 (through CRTC) */
905   MCFG_SCREEN_UPDATE_STATIC(avt)
905   MCFG_SCREEN_UPDATE_DRIVER(avt_state, screen_update_avt)
906906
907907   MCFG_GFXDECODE(avt)
908908
trunk/src/mame/drivers/mole.c
r17967r17968
7474   virtual void machine_reset();
7575   virtual void video_start();
7676   virtual void palette_init();
77   UINT32 screen_update_mole(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7778};
7879
7980
r17967r17968
122123   flip_screen_set(data & 0x01);
123124}
124125
125static SCREEN_UPDATE_IND16( mole )
126UINT32 mole_state::screen_update_mole(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
126127{
127   mole_state *state = screen.machine().driver_data<mole_state>();
128128
129   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
129   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
130130   return 0;
131131}
132132
r17967r17968
325325   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
326326   MCFG_SCREEN_SIZE(40*8, 25*8)
327327   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 25*8-1)
328   MCFG_SCREEN_UPDATE_STATIC(mole)
328   MCFG_SCREEN_UPDATE_DRIVER(mole_state, screen_update_mole)
329329
330330   MCFG_GFXDECODE(mole)
331331   MCFG_PALETTE_LENGTH(8)
trunk/src/mame/drivers/pitnrun.c
r17967r17968
250250   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
251251   MCFG_SCREEN_SIZE(256, 256)
252252   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
253   MCFG_SCREEN_UPDATE_STATIC(pitnrun)
253   MCFG_SCREEN_UPDATE_DRIVER(pitnrun_state, screen_update_pitnrun)
254254
255255   MCFG_GFXDECODE(pitnrun)
256256   MCFG_PALETTE_LENGTH(32*3)
trunk/src/mame/drivers/missb2.c
r17967r17968
3838   DECLARE_DRIVER_INIT(missb2);
3939   DECLARE_MACHINE_START(missb2);
4040   DECLARE_MACHINE_RESET(missb2);
41   UINT32 screen_update_missb2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4142};
4243
4344
4445/* Video Hardware */
4546
46static SCREEN_UPDATE_IND16( missb2 )
47UINT32 missb2_state::screen_update_missb2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
4748{
48   missb2_state *state = screen.machine().driver_data<missb2_state>();
4949   int offs;
5050   int sx, sy, xc, yc;
5151   int gfx_num, gfx_attr, gfx_offs;
r17967r17968
5959
6060   bitmap.fill(255, cliprect);
6161
62   if (!state->m_video_enable)
62   if (!m_video_enable)
6363      return 0;
6464
6565   /* background map register */
66   //popmessage("%02x",(*state->m_bgvram) & 0x1f);
67   for (bg_offs = ((*state->m_bgvram) << 4); bg_offs < (((*state->m_bgvram) << 4) | 0xf); bg_offs++)
66   //popmessage("%02x",(*m_bgvram) & 0x1f);
67   for (bg_offs = ((*m_bgvram) << 4); bg_offs < (((*m_bgvram) << 4) | 0xf); bg_offs++)
6868   {
6969      drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[1],
7070            bg_offs,
r17967r17968
7777   sx = 0;
7878
7979   prom = screen.machine().root_device().memregion("proms")->base();
80   for (offs = 0; offs < state->m_objectram.bytes(); offs += 4)
80   for (offs = 0; offs < m_objectram.bytes(); offs += 4)
8181   {
8282      /* skip empty sprites */
8383      /* this is dword aligned so the UINT32 * cast shouldn't give problems */
8484      /* on any architecture */
85      if (*(UINT32 *)(&state->m_objectram[offs]) == 0)
85      if (*(UINT32 *)(&m_objectram[offs]) == 0)
8686         continue;
8787
88      gfx_num = state->m_objectram[offs + 1];
89      gfx_attr = state->m_objectram[offs + 3];
88      gfx_num = m_objectram[offs + 1];
89      gfx_attr = m_objectram[offs + 3];
9090      prom_line = prom + 0x80 + ((gfx_num & 0xe0) >> 1);
9191
9292      gfx_offs = ((gfx_num & 0x1f) * 0x80);
9393      if ((gfx_num & 0xa0) == 0xa0)
9494         gfx_offs |= 0x1000;
9595
96      sy = -state->m_objectram[offs + 0];
96      sy = -m_objectram[offs + 0];
9797
9898      for (yc = 0; yc < 32; yc++)
9999      {
r17967r17968
101101
102102         if (!(prom_line[yc / 2] & 0x04))   /* next column */
103103         {
104            sx = state->m_objectram[offs + 2];
104            sx = m_objectram[offs + 2];
105105            if (gfx_attr & 0x40) sx -= 256;
106106         }
107107
r17967r17968
111111
112112            goffs = gfx_offs + xc * 0x40 + (yc & 7) * 0x02 +
113113                  (prom_line[yc/2] & 0x03) * 0x10;
114            code = state->m_videoram[goffs] + 256 * (state->m_videoram[goffs + 1] & 0x03) + 1024 * (gfx_attr & 0x0f);
115            //color = (state->m_videoram[goffs + 1] & 0x3c) >> 2;
116            flipx = state->m_videoram[goffs + 1] & 0x40;
117            flipy = state->m_videoram[goffs + 1] & 0x80;
114            code = m_videoram[goffs] + 256 * (m_videoram[goffs + 1] & 0x03) + 1024 * (gfx_attr & 0x0f);
115            //color = (m_videoram[goffs + 1] & 0x3c) >> 2;
116            flipx = m_videoram[goffs + 1] & 0x40;
117            flipy = m_videoram[goffs + 1] & 0x80;
118118            x = sx + xc * 8;
119119            y = (sy + yc * 8) & 0xff;
120120
121            if (state->flip_screen())
121            if (flip_screen())
122122            {
123123               x = 248 - x;
124124               y = 248 - y;
r17967r17968
484484   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
485485   MCFG_SCREEN_SIZE(32*8, 32*8)
486486   MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 2*8, 30*8-1)
487   MCFG_SCREEN_UPDATE_STATIC(missb2)
487   MCFG_SCREEN_UPDATE_DRIVER(missb2_state, screen_update_missb2)
488488
489489   MCFG_GFXDECODE(missb2)
490490   MCFG_PALETTE_LENGTH(512)
trunk/src/mame/drivers/tehkanwc.c
r17967r17968
661661   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
662662   MCFG_SCREEN_SIZE(32*8, 32*8)
663663   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
664   MCFG_SCREEN_UPDATE_STATIC(tehkanwc)
664   MCFG_SCREEN_UPDATE_DRIVER(tehkanwc_state, screen_update_tehkanwc)
665665
666666   MCFG_GFXDECODE(tehkanwc)
667667   MCFG_PALETTE_LENGTH(768)
trunk/src/mame/drivers/bionicc.c
r17967r17968
371371   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
372372   MCFG_SCREEN_SIZE(32*8, 32*8)
373373   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
374   MCFG_SCREEN_UPDATE_STATIC(bionicc)
374   MCFG_SCREEN_UPDATE_DRIVER(bionicc_state, screen_update_bionicc)
375375   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
376376
377377   MCFG_GFXDECODE(bionicc)
trunk/src/mame/drivers/photon.c
r17967r17968
3636   DECLARE_WRITE8_MEMBER(pk8000_84_portc_w);
3737   virtual void machine_reset();
3838   virtual void video_start();
39   UINT32 screen_update_photon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3940};
4041
4142
r17967r17968
205206{
206207}
207208
208static SCREEN_UPDATE_IND16( photon )
209UINT32 photon_state::screen_update_photon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
209210{
210211   return pk8000_video_update(screen, bitmap, cliprect, screen.machine().root_device().memregion("maincpu")->base());
211212}
r17967r17968
225226    MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
226227    MCFG_SCREEN_SIZE(256+32, 192+32)
227228    MCFG_SCREEN_VISIBLE_AREA(0, 256+32-1, 0, 192+32-1)
228    MCFG_SCREEN_UPDATE_STATIC(photon)
229   MCFG_SCREEN_UPDATE_DRIVER(photon_state, screen_update_photon)
229230    MCFG_PALETTE_LENGTH(16)
230231    MCFG_PALETTE_INIT(pk8000)
231232
trunk/src/mame/drivers/citycon.c
r17967r17968
219219   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
220220   MCFG_SCREEN_SIZE(32*8, 32*8)
221221   MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1)
222   MCFG_SCREEN_UPDATE_STATIC(citycon)
222   MCFG_SCREEN_UPDATE_DRIVER(citycon_state, screen_update_citycon)
223223
224224   MCFG_GFXDECODE(citycon)
225225   MCFG_PALETTE_LENGTH(640+1024)   /* 640 real palette + 1024 virtual palette */
trunk/src/mame/drivers/sigmab52.c
r17967r17968
149149   virtual void machine_start();
150150   virtual void video_start();
151151   virtual void palette_init();
152   UINT32 screen_update_jwildb52(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
152153};
153154
154155
r17967r17968
165166}
166167
167168
168static SCREEN_UPDATE_IND16( jwildb52 )
169UINT32 sigmab52_state::screen_update_jwildb52(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
169170{
170171   device_t *hd63484 = screen.machine().device("hd63484");
171172
r17967r17968
605606   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
606607   MCFG_SCREEN_SIZE(1024, 1024)
607608   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 384-1)
608   MCFG_SCREEN_UPDATE_STATIC(jwildb52)
609   MCFG_SCREEN_UPDATE_DRIVER(sigmab52_state, screen_update_jwildb52)
609610
610611   MCFG_HD63484_ADD("hd63484", jwildb52_hd63484_intf)
611612
trunk/src/mame/drivers/playmark.c
r17967r17968
10841084   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
10851085   MCFG_SCREEN_SIZE(64*8, 64*8)
10861086   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
1087   MCFG_SCREEN_UPDATE_STATIC(bigtwin)
1087   MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_bigtwin)
10881088
10891089   MCFG_GFXDECODE(playmark)
10901090   MCFG_PALETTE_LENGTH(1024)
r17967r17968
11181118   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
11191119   MCFG_SCREEN_SIZE(64*8, 64*8)
11201120   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
1121   MCFG_SCREEN_UPDATE_STATIC(bigtwinb)
1121   MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_bigtwinb)
11221122
11231123   MCFG_GFXDECODE(bigtwinb)
11241124   MCFG_PALETTE_LENGTH(1024)
r17967r17968
11551155   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
11561156   MCFG_SCREEN_SIZE(64*8, 64*8)
11571157   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
1158   MCFG_SCREEN_UPDATE_STATIC(wbeachvl)
1158   MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_wbeachvl)
11591159
11601160   MCFG_GFXDECODE(wbeachvl)
11611161   MCFG_PALETTE_LENGTH(2048)
r17967r17968
11891189   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
11901190   MCFG_SCREEN_SIZE(64*8, 64*8)
11911191   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
1192   MCFG_SCREEN_UPDATE_STATIC(excelsr)
1192   MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_excelsr)
11931193
11941194   MCFG_GFXDECODE(excelsr)
11951195   MCFG_PALETTE_LENGTH(1024)
r17967r17968
12261226   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
12271227   MCFG_SCREEN_SIZE(64*8, 64*8)
12281228   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
1229   MCFG_SCREEN_UPDATE_STATIC(hrdtimes)
1229   MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_hrdtimes)
12301230
12311231   MCFG_GFXDECODE(hrdtimes)
12321232   MCFG_PALETTE_LENGTH(1024)
r17967r17968
12601260   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
12611261   MCFG_SCREEN_SIZE(64*8, 64*8)
12621262   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
1263   MCFG_SCREEN_UPDATE_STATIC(hrdtimes)
1263   MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_hrdtimes)
12641264
12651265   MCFG_GFXDECODE(hrdtimes)
12661266   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/dynadice.c
r17967r17968
6565   virtual void machine_reset();
6666   virtual void video_start();
6767   virtual void palette_init();
68   UINT32 screen_update_dynadice(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6869};
6970
7071
r17967r17968
212213   m_bg_tilemap->set_scrollx(0, -16);
213214}
214215
215static SCREEN_UPDATE_IND16( dynadice )
216UINT32 dynadice_state::screen_update_dynadice(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
216217{
217   dynadice_state *state = screen.machine().driver_data<dynadice_state>();
218218   rectangle myclip = cliprect;
219219   myclip.max_x = 15;
220   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
221   state->m_top_tilemap->draw(bitmap, myclip, 0, 0);
220   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
221   m_top_tilemap->draw(bitmap, myclip, 0, 0);
222222   return 0;
223223}
224224
r17967r17968
259259   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
260260   MCFG_SCREEN_SIZE(256+16, 256)
261261   MCFG_SCREEN_VISIBLE_AREA(0*8, 34*8-1, 3*8, 28*8-1)
262   MCFG_SCREEN_UPDATE_STATIC(dynadice)
262   MCFG_SCREEN_UPDATE_DRIVER(dynadice_state, screen_update_dynadice)
263263
264264   MCFG_GFXDECODE(dynadice)
265265   MCFG_PALETTE_LENGTH(8)
trunk/src/mame/drivers/ampoker2.c
r17967r17968
11821182    */
11831183   MCFG_SCREEN_SIZE(64*8, 32*8)
11841184   MCFG_SCREEN_VISIBLE_AREA(20*8, 56*8-1, 2*8, 32*8-1)
1185   MCFG_SCREEN_UPDATE_STATIC(ampoker2)
1185   MCFG_SCREEN_UPDATE_DRIVER(ampoker2_state, screen_update_ampoker2)
11861186
11871187   MCFG_GFXDECODE(ampoker2)
11881188   MCFG_PALETTE_LENGTH(512)
trunk/src/mame/drivers/pgm.c
r17967r17968
539539   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
540540   MCFG_SCREEN_SIZE(64*8, 64*8)
541541   MCFG_SCREEN_VISIBLE_AREA(0*8, 56*8-1, 0*8, 28*8-1)
542   MCFG_SCREEN_UPDATE_STATIC(pgm)
543   MCFG_SCREEN_VBLANK_STATIC(pgm)
542   MCFG_SCREEN_UPDATE_DRIVER(pgm_state, screen_update_pgm)
543   MCFG_SCREEN_VBLANK_DRIVER(pgm_state, screen_eof_pgm)
544544
545545   MCFG_GFXDECODE(pgm)
546546   MCFG_PALETTE_LENGTH(0x1200/2)
trunk/src/mame/drivers/namcos21.c
r17967r17968
15261526   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
15271527   MCFG_SCREEN_SIZE(NAMCOS21_POLY_FRAME_WIDTH,NAMCOS21_POLY_FRAME_HEIGHT)
15281528   MCFG_SCREEN_VISIBLE_AREA(0,495,0,479)
1529   MCFG_SCREEN_UPDATE_STATIC(namcos21)
1529   MCFG_SCREEN_UPDATE_DRIVER(namcos21_state, screen_update_namcos21)
15301530
15311531   MCFG_GFXDECODE(namcos21)
15321532   MCFG_PALETTE_LENGTH(NAMCOS21_NUM_COLORS)
r17967r17968
15811581   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
15821582   MCFG_SCREEN_SIZE(NAMCOS21_POLY_FRAME_WIDTH,NAMCOS21_POLY_FRAME_HEIGHT)
15831583   MCFG_SCREEN_VISIBLE_AREA(0,495,0,479)
1584   MCFG_SCREEN_UPDATE_STATIC(namcos21)
1584   MCFG_SCREEN_UPDATE_DRIVER(namcos21_state, screen_update_namcos21)
15851585
15861586   MCFG_GFXDECODE(namcos21)
15871587   MCFG_PALETTE_LENGTH(NAMCOS21_NUM_COLORS)
r17967r17968
16401640   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
16411641   MCFG_SCREEN_SIZE(NAMCOS21_POLY_FRAME_WIDTH,NAMCOS21_POLY_FRAME_HEIGHT)
16421642   MCFG_SCREEN_VISIBLE_AREA(0,495,0,479)
1643   MCFG_SCREEN_UPDATE_STATIC(namcos21)
1643   MCFG_SCREEN_UPDATE_DRIVER(namcos21_state, screen_update_namcos21)
16441644
16451645   MCFG_PALETTE_LENGTH(NAMCOS21_NUM_COLORS)
16461646
trunk/src/mame/drivers/jangou.c
r17967r17968
8989   DECLARE_MACHINE_RESET(jngolady);
9090   DECLARE_MACHINE_START(common);
9191   DECLARE_MACHINE_RESET(common);
92   UINT32 screen_update_jangou(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
9293};
9394
9495
r17967r17968
145146   save_item(NAME(m_blit_buffer));
146147}
147148
148static SCREEN_UPDATE_IND16( jangou )
149UINT32 jangou_state::screen_update_jangou(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
149150{
150   jangou_state *state = screen.machine().driver_data<jangou_state>();
151151   int x, y;
152152
153153   for (y = cliprect.min_y; y <= cliprect.max_y; ++y)
154154   {
155      UINT8 *src = &state->m_blit_buffer[y * 512 / 2 + cliprect.min_x];
155      UINT8 *src = &m_blit_buffer[y * 512 / 2 + cliprect.min_x];
156156      UINT16 *dst = &bitmap.pix16(y, cliprect.min_x);
157157
158158      for (x = cliprect.min_x; x <= cliprect.max_x; x += 2)
r17967r17968
10051005   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) //not accurate
10061006   MCFG_SCREEN_SIZE(256, 256)
10071007   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1)
1008   MCFG_SCREEN_UPDATE_STATIC(jangou)
1008   MCFG_SCREEN_UPDATE_DRIVER(jangou_state, screen_update_jangou)
10091009
10101010   MCFG_PALETTE_LENGTH(32)
10111011
trunk/src/mame/drivers/darius.c
r17967r17968
944944   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
945945   MCFG_SCREEN_SIZE(36*8, 32*8)
946946   MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 29*8-1)
947   MCFG_SCREEN_UPDATE_STATIC(darius_left)
947   MCFG_SCREEN_UPDATE_DRIVER(darius_state, screen_update_darius_left)
948948
949949   MCFG_SCREEN_ADD("mscreen", RASTER)
950950   MCFG_SCREEN_REFRESH_RATE(60)
951951   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
952952   MCFG_SCREEN_SIZE(36*8, 32*8)
953953   MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 29*8-1)
954   MCFG_SCREEN_UPDATE_STATIC(darius_middle)
954   MCFG_SCREEN_UPDATE_DRIVER(darius_state, screen_update_darius_middle)
955955
956956   MCFG_SCREEN_ADD("rscreen", RASTER)
957957   MCFG_SCREEN_REFRESH_RATE(60)
958958   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
959959   MCFG_SCREEN_SIZE(36*8, 32*8)
960960   MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 29*8-1)
961   MCFG_SCREEN_UPDATE_STATIC(darius_right)
961   MCFG_SCREEN_UPDATE_DRIVER(darius_state, screen_update_darius_right)
962962
963963
964964   MCFG_PC080SN_ADD("pc080sn", darius_pc080sn_intf)
trunk/src/mame/drivers/capbowl.c
r17967r17968
376376   MCFG_SCREEN_SIZE(360, 256)
377377   MCFG_SCREEN_VISIBLE_AREA(0, 359, 0, 244)
378378   MCFG_SCREEN_REFRESH_RATE(57)
379   MCFG_SCREEN_UPDATE_STATIC(capbowl)
379   MCFG_SCREEN_UPDATE_DRIVER(capbowl_state, screen_update_capbowl)
380380
381381   /* sound hardware */
382382   MCFG_SPEAKER_STANDARD_MONO("mono")
trunk/src/mame/drivers/ikki.c
r17967r17968
276276   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
277277   MCFG_SCREEN_SIZE(32*8, 32*8+3*8)
278278   MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1)
279   MCFG_SCREEN_UPDATE_STATIC(ikki)
279   MCFG_SCREEN_UPDATE_DRIVER(ikki_state, screen_update_ikki)
280280
281281   MCFG_GFXDECODE(ikki)
282282   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/kinst.c
r17967r17968
162162   DECLARE_DRIVER_INIT(kinst2);
163163   virtual void machine_start();
164164   virtual void machine_reset();
165   UINT32 screen_update_kinst(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
165166};
166167
167168
r17967r17968
242243 *
243244 *************************************/
244245
245static SCREEN_UPDATE_IND16( kinst )
246UINT32 kinst_state::screen_update_kinst(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
246247{
247   kinst_state *state = screen.machine().driver_data<kinst_state>();
248248   int y;
249249
250250   /* loop over rows and copy to the destination */
251251   for (y = cliprect.min_y; y <= cliprect.max_y; y++)
252252   {
253      UINT32 *src = &state->m_video_base[640/4 * y];
253      UINT32 *src = &m_video_base[640/4 * y];
254254      UINT16 *dest = &bitmap.pix16(y, cliprect.min_x);
255255      int x;
256256
r17967r17968
688688   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
689689   MCFG_SCREEN_SIZE(320, 240)
690690   MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
691   MCFG_SCREEN_UPDATE_STATIC(kinst)
691   MCFG_SCREEN_UPDATE_DRIVER(kinst_state, screen_update_kinst)
692692
693693   MCFG_PALETTE_INIT(BBBBB_GGGGG_RRRRR)
694694   MCFG_PALETTE_LENGTH(32768)
trunk/src/mame/drivers/sub.c
r17967r17968
133133   DECLARE_WRITE8_MEMBER(nmi_mask_w);
134134   virtual void video_start();
135135   virtual void palette_init();
136   UINT32 screen_update_sub(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
136137};
137138
138139void sub_state::video_start()
139140{
140141}
141142
142static SCREEN_UPDATE_IND16(sub)
143UINT32 sub_state::screen_update_sub(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
143144{
144   sub_state *state = screen.machine().driver_data<sub_state>();
145145   gfx_element *gfx = screen.machine().gfx[0];
146146   gfx_element *gfx_1 = screen.machine().gfx[1];
147147   int y,x;
r17967r17968
151151   {
152152      for (x=0;x<32;x++)
153153      {
154         UINT16 tile = state->m_vid[count];
154         UINT16 tile = m_vid[count];
155155         UINT8 col;
156         UINT8 y_offs = state->m_scrolly[x];
156         UINT8 y_offs = m_scrolly[x];
157157
158         tile += (state->m_attr[count]&0xe0)<<3;
159         col = (state->m_attr[count]&0x1f);
158         tile += (m_attr[count]&0xe0)<<3;
159         col = (m_attr[count]&0x1f);
160160
161161         drawgfx_opaque(bitmap,cliprect,gfx,tile,col+0x40,0,0,x*8,(y*8)-y_offs);
162162         drawgfx_opaque(bitmap,cliprect,gfx,tile,col+0x40,0,0,x*8,(y*8)-y_offs+256);
r17967r17968
177177    1 --cc cccc color
178178    */
179179   {
180      UINT8 *spriteram = state->m_spriteram;
181      UINT8 *spriteram_2 = state->m_spriteram2;
180      UINT8 *spriteram = m_spriteram;
181      UINT8 *spriteram_2 = m_spriteram2;
182182      UINT8 x,y,spr_offs,i,col,fx,fy;
183183
184184      for(i=0;i<0x40;i+=2)
r17967r17968
202202   {
203203      for (x=0;x<32;x++)
204204      {
205         UINT16 tile = state->m_vid[count];
205         UINT16 tile = m_vid[count];
206206         UINT8 col;
207         UINT8 y_offs = state->m_scrolly[x];
207         UINT8 y_offs = m_scrolly[x];
208208
209         tile += (state->m_attr[count]&0xe0)<<3;
210         col = (state->m_attr[count]&0x1f);
209         tile += (m_attr[count]&0xe0)<<3;
210         col = (m_attr[count]&0x1f);
211211
212212         if(x >= 28)
213213         {
r17967r17968
446446   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
447447   MCFG_SCREEN_SIZE(256, 256)
448448   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1)
449   MCFG_SCREEN_UPDATE_STATIC(sub)
449   MCFG_SCREEN_UPDATE_DRIVER(sub_state, screen_update_sub)
450450
451451   MCFG_GFXDECODE(sub)
452452   MCFG_PALETTE_LENGTH(0x400)
trunk/src/mame/drivers/cbasebal.c
r17967r17968
290290   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
291291   MCFG_SCREEN_SIZE(64*8, 32*8)
292292   MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
293   MCFG_SCREEN_UPDATE_STATIC(cbasebal)
293   MCFG_SCREEN_UPDATE_DRIVER(cbasebal_state, screen_update_cbasebal)
294294
295295   MCFG_GFXDECODE(cbasebal)
296296   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/st0016.c
r17967r17968
454454   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
455455   MCFG_SCREEN_SIZE(48*8, 48*8)
456456   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 48*8-1)
457   MCFG_SCREEN_UPDATE_STATIC(st0016)
457   MCFG_SCREEN_UPDATE_DRIVER(st0016_state, screen_update_st0016)
458458
459459   MCFG_GFXDECODE(st0016)
460460   MCFG_PALETTE_LENGTH(16*16*4+1)
trunk/src/mame/drivers/mpoker.c
r17967r17968
197197   DECLARE_WRITE8_MEMBER(sound_w);
198198   virtual void video_start();
199199   virtual void palette_init();
200   UINT32 screen_update_mpoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
200201};
201202
202203
r17967r17968
205206
206207}
207208
208static SCREEN_UPDATE_IND16(mpoker)
209UINT32 mpoker_state::screen_update_mpoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
209210{
210   mpoker_state *state = screen.machine().driver_data<mpoker_state>();
211211   int y,x;
212212   int count;
213213   gfx_element *gfx = screen.machine().gfx[0];
r17967r17968
217217   {
218218      for (x=0;x<32;x++)
219219      {
220         UINT16 dat = state->m_video[count];
221         UINT16 col = state->m_video[count+0x400] & 0x7f;
220         UINT16 dat = m_video[count];
221         UINT16 col = m_video[count+0x400] & 0x7f;
222222         drawgfx_opaque(bitmap,cliprect,gfx,dat,col,0,0,x*16,y*16);
223223         count++;
224224      }
r17967r17968
596596   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
597597   MCFG_SCREEN_SIZE(512, 256)
598598   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
599   MCFG_SCREEN_UPDATE_STATIC(mpoker)
599   MCFG_SCREEN_UPDATE_DRIVER(mpoker_state, screen_update_mpoker)
600600
601601   MCFG_GFXDECODE(mpoker)
602602   MCFG_PALETTE_LENGTH(0x200)
trunk/src/mame/drivers/sbasketb.c
r17967r17968
210210   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
211211   MCFG_SCREEN_SIZE(32*8, 32*8)
212212   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
213   MCFG_SCREEN_UPDATE_STATIC(sbasketb)
213   MCFG_SCREEN_UPDATE_DRIVER(sbasketb_state, screen_update_sbasketb)
214214
215215   MCFG_GFXDECODE(sbasketb)
216216   MCFG_PALETTE_LENGTH(16*16+16*16*16)
trunk/src/mame/drivers/skyarmy.c
r17967r17968
5353   TILE_GET_INFO_MEMBER(get_skyarmy_tile_info);
5454   virtual void video_start();
5555   virtual void palette_init();
56   UINT32 screen_update_skyarmy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5657};
5758
5859WRITE8_MEMBER(skyarmy_state::skyarmy_flip_screen_x_w)
r17967r17968
124125}
125126
126127
127static SCREEN_UPDATE_IND16( skyarmy )
128UINT32 skyarmy_state::screen_update_skyarmy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
128129{
129   skyarmy_state *state = screen.machine().driver_data<skyarmy_state>();
130   UINT8 *spriteram = state->m_spriteram;
130   UINT8 *spriteram = m_spriteram;
131131   int sx, sy, flipx, flipy, offs,pal;
132132   int i;
133133
134134   for(i=0;i<0x20;i++)
135      state->m_tilemap->set_scrolly(i,state->m_scrollram[i]);
135      m_tilemap->set_scrolly(i,m_scrollram[i]);
136136
137   state->m_tilemap->draw(bitmap, cliprect, 0,0);
137   m_tilemap->draw(bitmap, cliprect, 0,0);
138138
139139   for (offs = 0 ; offs < 0x40; offs+=4)
140140   {
r17967r17968
293293   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
294294   MCFG_SCREEN_SIZE(32*8,32*8)
295295   MCFG_SCREEN_VISIBLE_AREA(0*8,32*8-1,1*8,31*8-1)
296   MCFG_SCREEN_UPDATE_STATIC(skyarmy)
296   MCFG_SCREEN_UPDATE_DRIVER(skyarmy_state, screen_update_skyarmy)
297297
298298   MCFG_GFXDECODE(skyarmy)
299299   MCFG_PALETTE_LENGTH(32)
trunk/src/mame/drivers/ksayakyu.c
r17967r17968
286286   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
287287   MCFG_SCREEN_SIZE(256, 256)
288288   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
289   MCFG_SCREEN_UPDATE_STATIC(ksayakyu)
289   MCFG_SCREEN_UPDATE_DRIVER(ksayakyu_state, screen_update_ksayakyu)
290290
291291   MCFG_GFXDECODE(ksayakyu)
292292   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/suprgolf.c
r17967r17968
6868   TILE_GET_INFO_MEMBER(get_tile_info);
6969   virtual void machine_reset();
7070   virtual void video_start();
71   UINT32 screen_update_suprgolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7172};
7273
7374TILE_GET_INFO_MEMBER(suprgolf_state::get_tile_info)
r17967r17968
9495   m_tilemap->set_transparent_pen(15);
9596}
9697
97static SCREEN_UPDATE_IND16( suprgolf )
98UINT32 suprgolf_state::screen_update_suprgolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
9899{
99   suprgolf_state *state = screen.machine().driver_data<suprgolf_state>();
100100   int x,y,count,color;
101101   bitmap.fill(get_black_pen(screen.machine()), cliprect);
102102
r17967r17968
107107      {
108108         for(x=0;x<512;x++)
109109         {
110            color = state->m_bg_fb[count];
110            color = m_bg_fb[count];
111111
112112            if(x <= cliprect.max_x && y <= cliprect.max_y)
113113               bitmap.pix16(y, x) = screen.machine().pens[(color & 0x7ff)];
r17967r17968
124124      {
125125         for(x=0;x<512;x++)
126126         {
127            color = state->m_fg_fb[count];
127            color = m_fg_fb[count];
128128
129            if(((state->m_fg_fb[count] & 0x0f) != 0x0f) && (x <= cliprect.max_x && y <= cliprect.max_y))
129            if(((m_fg_fb[count] & 0x0f) != 0x0f) && (x <= cliprect.max_x && y <= cliprect.max_y))
130130               bitmap.pix16(y, x) = screen.machine().pens[(color & 0x7ff)];
131131
132132            count++;
r17967r17968
134134      }
135135   }
136136
137   state->m_tilemap->draw(bitmap, cliprect, 0,0);
137   m_tilemap->draw(bitmap, cliprect, 0,0);
138138
139139   return 0;
140140}
r17967r17968
528528   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
529529   MCFG_SCREEN_SIZE(256, 256)
530530   MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 191)
531   MCFG_SCREEN_UPDATE_STATIC(suprgolf)
531   MCFG_SCREEN_UPDATE_DRIVER(suprgolf_state, screen_update_suprgolf)
532532
533533   MCFG_GFXDECODE(suprgolf)
534534   MCFG_PALETTE_LENGTH(0x800)
trunk/src/mame/drivers/himesiki.c
r17967r17968
305305   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
306306   MCFG_SCREEN_SIZE(32*8, 32*8)
307307   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 24*8-1)
308   MCFG_SCREEN_UPDATE_STATIC(himesiki)
308   MCFG_SCREEN_UPDATE_DRIVER(himesiki_state, screen_update_himesiki)
309309
310310   MCFG_GFXDECODE(himesiki)
311311   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/battlex.c
r17967r17968
259259   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
260260   MCFG_SCREEN_SIZE(32*8, 32*8)
261261   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
262   MCFG_SCREEN_UPDATE_STATIC(battlex)
262   MCFG_SCREEN_UPDATE_DRIVER(battlex_state, screen_update_battlex)
263263
264264   MCFG_GFXDECODE(battlex)
265265   MCFG_PALETTE_LENGTH(64)
trunk/src/mame/drivers/adp.c
r17967r17968
183183   DECLARE_MACHINE_START(skattv);
184184   DECLARE_MACHINE_RESET(skattv);
185185   DECLARE_PALETTE_INIT(adp);
186   UINT32 screen_update_adp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
186187};
187188
188189
r17967r17968
203204
204205
205206#if 0
206static SCREEN_UPDATE_IND16( adp )
207UINT32 adp_state::screen_update_adp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
207208{
208   adp_state *state = screen.machine().driver_data<adp_state>();
209209
210   state->m_h63484->update_screen(bitmap, cliprect);
210   m_h63484->update_screen(bitmap, cliprect);
211211
212212   #if 0
213   adp_state *state = screen.machine().driver_data<adp_state>();
214213   int x, y, b, src;
215214
216   b = ((hd63484_regs_r(state->m_hd63484, 0xcc/2, 0xffff) & 0x000f) << 16) + hd63484_regs_r(state->m_hd63484, 0xce/2, 0xffff);
215   b = ((hd63484_regs_r(m_hd63484, 0xcc/2, 0xffff) & 0x000f) << 16) + hd63484_regs_r(m_hd63484, 0xce/2, 0xffff);
217216
218217   for (y = 0;y < 280;y++)
219218   {
220      for (x = 0 ; x < (hd63484_regs_r(state->m_hd63484, 0xca/2, 0xffff) & 0x0fff) * 4 ; x += 4)
219      for (x = 0 ; x < (hd63484_regs_r(m_hd63484, 0xca/2, 0xffff) & 0x0fff) * 4 ; x += 4)
221220      {
222221         b &= (HD63484_RAM_SIZE - 1);
223         src = hd63484_ram_r(state->m_hd63484, b, 0xffff);
222         src = hd63484_ram_r(m_hd63484, b, 0xffff);
224223         bitmap.pix16(y, x    ) = ((src & 0x000f) >>  0) << 0;
225224         bitmap.pix16(y, x + 1) = ((src & 0x00f0) >>  4) << 0;
226225         bitmap.pix16(y, x + 2) = ((src & 0x0f00) >>  8) << 0;
r17967r17968
229228      }
230229   }
231230if (!screen.machine().input().code_pressed(KEYCODE_O)) // debug: toggle window
232   if ((hd63484_regs_r(state->m_hd63484, 0x06/2, 0xffff) & 0x0300) == 0x0300)
231   if ((hd63484_regs_r(m_hd63484, 0x06/2, 0xffff) & 0x0300) == 0x0300)
233232   {
234      int sy = (hd63484_regs_r(state->m_hd63484, 0x94/2, 0xffff) & 0x0fff) - (hd63484_regs_r(state->m_hd63484, 0x88/2, 0xffff) >> 8);
235      int h = hd63484_regs_r(state->m_hd63484, 0x96/2, 0xffff) & 0x0fff;
236      int sx = ((hd63484_regs_r(state->m_hd63484, 0x92/2, 0xffff) >> 8) - (hd63484_regs_r(state->m_hd63484, 0x84/2, 0xffff) >> 8)) * 2 * 2;
237      int w = (hd63484_regs_r(state->m_hd63484, 0x92/2, 0xffff) & 0xff) * 2;
233      int sy = (hd63484_regs_r(m_hd63484, 0x94/2, 0xffff) & 0x0fff) - (hd63484_regs_r(m_hd63484, 0x88/2, 0xffff) >> 8);
234      int h = hd63484_regs_r(m_hd63484, 0x96/2, 0xffff) & 0x0fff;
235      int sx = ((hd63484_regs_r(m_hd63484, 0x92/2, 0xffff) >> 8) - (hd63484_regs_r(m_hd63484, 0x84/2, 0xffff) >> 8)) * 2 * 2;
236      int w = (hd63484_regs_r(m_hd63484, 0x92/2, 0xffff) & 0xff) * 2;
238237      if (sx < 0) sx = 0;   // not sure about this (shangha2 title screen)
239238
240      b = (((hd63484_regs_r(state->m_hd63484, 0xdc/2, 0xffff) & 0x000f) << 16) + hd63484_regs_r(state->m_hd63484, 0xde/2, 0xffff));
239      b = (((hd63484_regs_r(m_hd63484, 0xdc/2, 0xffff) & 0x000f) << 16) + hd63484_regs_r(m_hd63484, 0xde/2, 0xffff));
241240
242241      for (y = sy ; y <= sy + h && y < 280 ; y++)
243242      {
244         for (x = 0 ; x < (hd63484_regs_r(state->m_hd63484, 0xca/2, 0xffff) & 0x0fff) * 4 ; x += 4)
243         for (x = 0 ; x < (hd63484_regs_r(m_hd63484, 0xca/2, 0xffff) & 0x0fff) * 4 ; x += 4)
245244         {
246245            b &= (HD63484_RAM_SIZE - 1);
247            src = hd63484_ram_r(state->m_hd63484, b, 0xffff);
246            src = hd63484_ram_r(m_hd63484, b, 0xffff);
248247
249            if (x <= w && x + sx >= 0 && x + sx < (hd63484_regs_r(state->m_hd63484, 0xca/2, 0xffff) & 0x0fff) * 4)
248            if (x <= w && x + sx >= 0 && x + sx < (hd63484_regs_r(m_hd63484, 0xca/2, 0xffff) & 0x0fff) * 4)
250249            {
251250               bitmap.pix16(y, x + sx    ) = ((src & 0x000f) >>  0) << 0;
252251               bitmap.pix16(y, x + sx + 1) = ((src & 0x00f0) >>  4) << 0;
trunk/src/mame/drivers/pcxt.c
r17967r17968
124124   DECLARE_DRIVER_INIT(tetriskr);
125125   DECLARE_DRIVER_INIT(filetto);
126126   virtual void machine_reset();
127   UINT32 screen_update_tetriskr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
127128};
128129
129static SCREEN_UPDATE_RGB32( tetriskr )
130UINT32 pcxt_state::screen_update_tetriskr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
130131{
131   pcxt_state *state = screen.machine().driver_data<pcxt_state>();
132132   int x,y;
133133   int yi;
134   const UINT8 *bg_rom = state->memregion("gfx2")->base();
134   const UINT8 *bg_rom = memregion("gfx2")->base();
135135
136136   //popmessage("%04x",m_start_offs);
137137
r17967r17968
151151               color = 0;
152152               /* TODO: first byte seems bogus? */
153153               for(pen_i = 0;pen_i<4;pen_i++)
154                  color |= ((bg_rom[y*320/8+x+(pen_i*0x20000)+yi*0x400+state->m_bg_bank*0x2000+1] >> (7-xi)) & 1) << pen_i;
154                  color |= ((bg_rom[y*320/8+x+(pen_i*0x20000)+yi*0x400+m_bg_bank*0x2000+1] >> (7-xi)) & 1) << pen_i;
155155
156156               if(cliprect.contains(x*8+xi, y*8+yi))
157157                  bitmap.pix32(y*8+yi, x*8+xi) = screen.machine().pens[color];
r17967r17968
766766
767767   MCFG_DEVICE_MODIFY("screen")
768768   MCFG_VIDEO_START(pc_cga_superimpose)
769   MCFG_SCREEN_UPDATE_STATIC(tetriskr)
769   MCFG_SCREEN_UPDATE_DRIVER(pcxt_state, screen_update_tetriskr)
770770
771771   MCFG_DEVICE_REMOVE("voice")
772772MACHINE_CONFIG_END
trunk/src/mame/drivers/mcatadv.c
r17967r17968
457457   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
458458   MCFG_SCREEN_SIZE(320, 256)
459459   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
460   MCFG_SCREEN_UPDATE_STATIC(mcatadv)
461   MCFG_SCREEN_VBLANK_STATIC(mcatadv) // Buffer Spriteram
460   MCFG_SCREEN_UPDATE_DRIVER(mcatadv_state, screen_update_mcatadv)
461   MCFG_SCREEN_VBLANK_DRIVER(mcatadv_state, screen_eof_mcatadv)
462462
463463   MCFG_GFXDECODE(mcatadv)
464464   MCFG_PALETTE_LENGTH(0x2000/2)
trunk/src/mame/drivers/toaplan2.c
r17967r17968
30453045   MCFG_SCREEN_REFRESH_RATE(60)
30463046   MCFG_SCREEN_SIZE(432, 262)
30473047   MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
3048   MCFG_SCREEN_UPDATE_STATIC(toaplan2)
3049   MCFG_SCREEN_VBLANK_STATIC(toaplan2)
3048   MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_toaplan2)
3049   MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
30503050
30513051   MCFG_GFXDECODE(toaplan2)
30523052   MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
r17967r17968
30863086   MCFG_SCREEN_REFRESH_RATE(60)
30873087   MCFG_SCREEN_SIZE(432, 262)
30883088   MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
3089   MCFG_SCREEN_UPDATE_STATIC(toaplan2)
3090   MCFG_SCREEN_VBLANK_STATIC(toaplan2)
3089   MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_toaplan2)
3090   MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
30913091
30923092   MCFG_GFXDECODE(toaplan2)
30933093   MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
r17967r17968
31763176   MCFG_SCREEN_REFRESH_RATE( (double)(XTAL_27MHz / 4) / (432 * 263) )   /* 27MHz Oscillator */
31773177   MCFG_SCREEN_SIZE(432, 262)
31783178   MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
3179   MCFG_SCREEN_UPDATE_STATIC(dogyuun)
3180   MCFG_SCREEN_VBLANK_STATIC(toaplan2)
3179   MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_dogyuun)
3180   MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
31813181
31823182   MCFG_GFXDECODE(t2dualvdp)
31833183   MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
r17967r17968
32203220   MCFG_SCREEN_REFRESH_RATE(60)
32213221   MCFG_SCREEN_SIZE(432, 262)
32223222   MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
3223   MCFG_SCREEN_UPDATE_STATIC(toaplan2)
3224   MCFG_SCREEN_VBLANK_STATIC(toaplan2)
3223   MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_toaplan2)
3224   MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
32253225
32263226   MCFG_GFXDECODE(toaplan2)
32273227   MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
r17967r17968
32573257   MCFG_SCREEN_REFRESH_RATE(60)
32583258   MCFG_SCREEN_SIZE(432, 262)
32593259   MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
3260   MCFG_SCREEN_UPDATE_STATIC(toaplan2)
3261   MCFG_SCREEN_VBLANK_STATIC(toaplan2)
3260   MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_toaplan2)
3261   MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
32623262
32633263   MCFG_GFXDECODE(toaplan2)
32643264   MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
r17967r17968
32943294   MCFG_SCREEN_REFRESH_RATE( (double)(XTAL_27MHz / 4) / (432 * 263) )   /* 27MHz Oscillator */
32953295   MCFG_SCREEN_SIZE(432, 262)
32963296   MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
3297   MCFG_SCREEN_UPDATE_STATIC(truxton2)
3298   MCFG_SCREEN_VBLANK_STATIC(toaplan2)
3297   MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_truxton2)
3298   MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
32993299
33003300   MCFG_GFXDECODE(truxton2)
33013301   MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
r17967r17968
33493349   MCFG_SCREEN_REFRESH_RATE(60)
33503350   MCFG_SCREEN_SIZE(432, 262)
33513351   MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
3352   MCFG_SCREEN_UPDATE_STATIC(toaplan2)
3353   MCFG_SCREEN_VBLANK_STATIC(toaplan2)
3352   MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_toaplan2)
3353   MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
33543354
33553355   MCFG_GFXDECODE(toaplan2)
33563356   MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
r17967r17968
33903390   MCFG_SCREEN_REFRESH_RATE(60)
33913391   MCFG_SCREEN_SIZE(432, 262)
33923392   MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
3393   MCFG_SCREEN_UPDATE_STATIC(toaplan2)
3394   MCFG_SCREEN_VBLANK_STATIC(toaplan2)
3393   MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_toaplan2)
3394   MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
33953395
33963396   MCFG_GFXDECODE(toaplan2)
33973397   MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
r17967r17968
34713471   MCFG_SCREEN_REFRESH_RATE( (double)(XTAL_27MHz / 4) / (432 * 263) )   /* 27MHz Oscillator */
34723472   MCFG_SCREEN_SIZE(432, 262)
34733473   MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
3474   MCFG_SCREEN_UPDATE_STATIC(truxton2)
3475   MCFG_SCREEN_VBLANK_STATIC(toaplan2)
3474   MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_truxton2)
3475   MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
34763476
34773477   MCFG_GFXDECODE(truxton2)
34783478   MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
r17967r17968
35083508   MCFG_SCREEN_REFRESH_RATE(60)
35093509   MCFG_SCREEN_SIZE(432, 262)
35103510   MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
3511   MCFG_SCREEN_UPDATE_STATIC(truxton2)
3512   MCFG_SCREEN_VBLANK_STATIC(toaplan2)
3511   MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_truxton2)
3512   MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
35133513
35143514   MCFG_GFXDECODE(fixeightbl)
35153515   MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
r17967r17968
35483548   MCFG_SCREEN_REFRESH_RATE( (double)(XTAL_27MHz / 4) / (432 * 263) )   /* verified on pcb */
35493549   MCFG_SCREEN_SIZE(432, 262)
35503550   MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
3551   MCFG_SCREEN_UPDATE_STATIC(toaplan2)
3552   MCFG_SCREEN_VBLANK_STATIC(toaplan2)
3551   MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_toaplan2)
3552   MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
35533553
35543554   MCFG_GFXDECODE(toaplan2)
35553555   MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
r17967r17968
35863586   MCFG_SCREEN_REFRESH_RATE(60)
35873587   MCFG_SCREEN_SIZE(432, 262)
35883588   MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
3589   MCFG_SCREEN_UPDATE_STATIC(batsugun)
3590   MCFG_SCREEN_VBLANK_STATIC(toaplan2)
3589   MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_batsugun)
3590   MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
35913591
35923592   MCFG_GFXDECODE(t2dualvdp)
35933593   MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
r17967r17968
36243624   MCFG_SCREEN_REFRESH_RATE(60)
36253625   MCFG_SCREEN_SIZE(432, 262)
36263626   MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
3627   MCFG_SCREEN_UPDATE_STATIC(toaplan2)
3628   MCFG_SCREEN_VBLANK_STATIC(toaplan2)
3627   MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_toaplan2)
3628   MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
36293629
36303630   MCFG_GFXDECODE(toaplan2)
36313631   MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
r17967r17968
36673667   MCFG_SCREEN_REFRESH_RATE(60)
36683668   MCFG_SCREEN_SIZE(432, 262)
36693669   MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
3670   MCFG_SCREEN_UPDATE_STATIC(truxton2)
3671   MCFG_SCREEN_VBLANK_STATIC(toaplan2)
3670   MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_truxton2)
3671   MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
36723672
36733673   MCFG_GFXDECODE(raizing)
36743674   MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
r17967r17968
37103710   MCFG_SCREEN_REFRESH_RATE(60)
37113711   MCFG_SCREEN_SIZE(432, 262)
37123712   MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
3713   MCFG_SCREEN_UPDATE_STATIC(truxton2)
3714   MCFG_SCREEN_VBLANK_STATIC(toaplan2)
3713   MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_truxton2)
3714   MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
37153715
37163716   MCFG_GFXDECODE(raizing)
37173717   MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
r17967r17968
37643764   MCFG_SCREEN_REFRESH_RATE(60)
37653765   MCFG_SCREEN_SIZE(432, 262)
37663766   MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
3767   MCFG_SCREEN_UPDATE_STATIC(truxton2)
3768   MCFG_SCREEN_VBLANK_STATIC(toaplan2)
3767   MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_truxton2)
3768   MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
37693769
37703770   MCFG_GFXDECODE(raizing)
37713771   MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
r17967r17968
38143814   MCFG_SCREEN_REFRESH_RATE(60)
38153815   MCFG_SCREEN_SIZE(432, 262)
38163816   MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
3817   MCFG_SCREEN_UPDATE_STATIC(batrider)
3817   MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_batrider)
38183818
38193819   MCFG_GFXDECODE(batrider)
38203820   MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
r17967r17968
38653865   MCFG_SCREEN_REFRESH_RATE(60)
38663866   MCFG_SCREEN_SIZE(432, 262)
38673867   MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
3868   MCFG_SCREEN_UPDATE_STATIC(batrider)
3868   MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_batrider)
38693869
38703870   MCFG_GFXDECODE(batrider)
38713871   MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
trunk/src/mame/drivers/cinemat.c
r17967r17968
999999   MCFG_SCREEN_REFRESH_RATE(MASTER_CLOCK/4/16/16/16/16/2)
10001000   MCFG_SCREEN_SIZE(1024, 768)
10011001   MCFG_SCREEN_VISIBLE_AREA(0, 1023, 0, 767)
1002   MCFG_SCREEN_UPDATE_STATIC(cinemat)
1002   MCFG_SCREEN_UPDATE_DRIVER(cinemat_state, screen_update_cinemat)
10031003
10041004MACHINE_CONFIG_END
10051005
r17967r17968
10451045static MACHINE_CONFIG_DERIVED( spacewar, cinemat_nojmi_4k )
10461046   MCFG_FRAGMENT_ADD(spacewar_sound)
10471047   MCFG_SCREEN_MODIFY("screen")
1048   MCFG_SCREEN_UPDATE_STATIC(spacewar)
1048   MCFG_SCREEN_UPDATE_DRIVER(cinemat_state, screen_update_spacewar)
10491049MACHINE_CONFIG_END
10501050
10511051
trunk/src/mame/drivers/mjkjidai.c
r17967r17968
456456   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
457457   MCFG_SCREEN_SIZE(64*8, 32*8)
458458   MCFG_SCREEN_VISIBLE_AREA(3*8, 61*8-1, 2*8, 30*8-1)
459   MCFG_SCREEN_UPDATE_STATIC(mjkjidai)
459   MCFG_SCREEN_UPDATE_DRIVER(mjkjidai_state, screen_update_mjkjidai)
460460
461461   MCFG_GFXDECODE(mjkjidai)
462462   MCFG_PALETTE_LENGTH(0x100)
trunk/src/mame/drivers/jailbrek.c
r17967r17968
281281
282282   MCFG_SCREEN_ADD("screen", RASTER)
283283   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 396, 8, 248, 256, 16, 240)
284   MCFG_SCREEN_UPDATE_STATIC(jailbrek)
284   MCFG_SCREEN_UPDATE_DRIVER(jailbrek_state, screen_update_jailbrek)
285285
286286
287287   /* sound hardware */
trunk/src/mame/drivers/gaelco.c
r17967r17968
520520   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
521521   MCFG_SCREEN_SIZE(32*16, 32*16)
522522   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1)
523   MCFG_SCREEN_UPDATE_STATIC(bigkarnk)
523   MCFG_SCREEN_UPDATE_DRIVER(gaelco_state, screen_update_bigkarnk)
524524
525525   MCFG_GFXDECODE(0x100000)
526526   MCFG_PALETTE_LENGTH(1024)
r17967r17968
551551   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
552552   MCFG_SCREEN_SIZE(32*16, 32*16)
553553   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1)
554   MCFG_SCREEN_UPDATE_STATIC(maniacsq)
554   MCFG_SCREEN_UPDATE_DRIVER(gaelco_state, screen_update_maniacsq)
555555
556556   MCFG_GFXDECODE(0x100000)
557557   MCFG_PALETTE_LENGTH(1024)
r17967r17968
581581   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
582582   MCFG_SCREEN_SIZE(32*16, 32*16)
583583   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1)
584   MCFG_SCREEN_UPDATE_STATIC(maniacsq)
584   MCFG_SCREEN_UPDATE_DRIVER(gaelco_state, screen_update_maniacsq)
585585
586586   MCFG_GFXDECODE(0x100000)
587587   MCFG_PALETTE_LENGTH(1024)
r17967r17968
611611   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
612612   MCFG_SCREEN_SIZE(32*16, 32*16)
613613   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1)
614   MCFG_SCREEN_UPDATE_STATIC(maniacsq)
614   MCFG_SCREEN_UPDATE_DRIVER(gaelco_state, screen_update_maniacsq)
615615
616616   MCFG_GFXDECODE(0x100000)
617617   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/wecleman.c
r17967r17968
10741074   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
10751075   MCFG_SCREEN_SIZE(320 +16, 256)
10761076   MCFG_SCREEN_VISIBLE_AREA(0 +8, 320-1 +8, 0 +8, 224-1 +8)
1077   MCFG_SCREEN_UPDATE_STATIC(wecleman)
1077   MCFG_SCREEN_UPDATE_DRIVER(wecleman_state, screen_update_wecleman)
10781078
10791079   MCFG_GFXDECODE(wecleman)
10801080
r17967r17968
11581158   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
11591159   MCFG_SCREEN_SIZE(320 +16, 256)
11601160   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
1161   MCFG_SCREEN_UPDATE_STATIC(hotchase)
1161   MCFG_SCREEN_UPDATE_DRIVER(wecleman_state, screen_update_hotchase)
11621162
11631163   MCFG_GFXDECODE(hotchase)
11641164   MCFG_PALETTE_LENGTH(2048*2)
trunk/src/mame/drivers/dmndrby.c
r17967r17968
8080   TILE_GET_INFO_MEMBER(get_dmndrby_tile_info);
8181   virtual void video_start();
8282   virtual void palette_init();
83   UINT32 screen_update_dderby(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8384};
8485
8586
r17967r17968
345346
346347}
347348
348static SCREEN_UPDATE_IND16(dderby)
349UINT32 dmndrby_state::screen_update_dderby(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
349350{
350   dmndrby_state *state = screen.machine().driver_data<dmndrby_state>();
351351   int x,y,count;
352352   int off,scrolly;
353353   gfx_element *gfx = screen.machine().gfx[0];
r17967r17968
363363can we draw it with the tilemap? maybe not, the layout is a litle strange
364364
365365*/
366//  base = state->m_scroll_ram[0];
366//  base = m_scroll_ram[0];
367367
368   off=0x1900-(state->m_bg*0x100)+(state->m_scroll_ram[1])*0x100;
369   scrolly = 0xff-(state->m_scroll_ram[0]);
370   if(state->m_scroll_ram[1]==0xff) off=0x1800;
368   off=0x1900-(m_bg*0x100)+(m_scroll_ram[1])*0x100;
369   scrolly = 0xff-(m_scroll_ram[0]);
370   if(m_scroll_ram[1]==0xff) off=0x1800;
371371   for(x=0;x<16;x++) {
372372      for(y=0;y<16;y++) {
373         int chr = state->m_racetrack_tilemap_rom[off];
374         int col = state->m_racetrack_tilemap_rom[off+0x2000]&0x1f;
375         int flipx = state->m_racetrack_tilemap_rom[off+0x2000]&0x40;
373         int chr = m_racetrack_tilemap_rom[off];
374         int col = m_racetrack_tilemap_rom[off+0x2000]&0x1f;
375         int flipx = m_racetrack_tilemap_rom[off+0x2000]&0x40;
376376         drawgfx_opaque(bitmap,cliprect,track,chr,col,flipx,0,y*16+scrolly,x*16);
377377         // draw another bit of track
378378         // a rubbish way of doing it
379         chr = state->m_racetrack_tilemap_rom[off-0x100];
380         col = state->m_racetrack_tilemap_rom[off+0x1f00]&0x1f;
381         flipx = state->m_racetrack_tilemap_rom[off+0x1f00]&0x40;
379         chr = m_racetrack_tilemap_rom[off-0x100];
380         col = m_racetrack_tilemap_rom[off+0x1f00]&0x1f;
381         flipx = m_racetrack_tilemap_rom[off+0x1f00]&0x40;
382382         drawgfx_opaque(bitmap,cliprect,track,chr,col,flipx,0,y*16-256+scrolly,x*16);
383383         off++;
384384      }
r17967r17968
399399      int a=0;
400400      int b=0;
401401      int base = count*4;
402      int sprx=state->m_sprite_ram[base+3];
403      int spry=state->m_sprite_ram[base+2];
404      //state->m_sprite_ram[base+1];
405      int col = (state->m_sprite_ram[base+1]&0x1f);
406      int anim = (state->m_sprite_ram[base]&0x3)*0x40; // animation frame - probably wrong but seems right
407      int horse = (state->m_sprite_ram[base+1]&0x7)*8+7;  // horse label from 1 - 6
402      int sprx=m_sprite_ram[base+3];
403      int spry=m_sprite_ram[base+2];
404      //m_sprite_ram[base+1];
405      int col = (m_sprite_ram[base+1]&0x1f);
406      int anim = (m_sprite_ram[base]&0x3)*0x40; // animation frame - probably wrong but seems right
407      int horse = (m_sprite_ram[base+1]&0x7)*8+7;  // horse label from 1 - 6
408408
409409      for (a=0;a<8 ;a++)
410410      {
r17967r17968
427427      for(x=0;x<32;x++)
428428      {
429429         int tileno,bank,color;
430         tileno=state->m_dderby_vidchars[count];
431         bank=(state->m_dderby_vidattribs[count]&0x20)>>5;
430         tileno=m_dderby_vidchars[count];
431         bank=(m_dderby_vidattribs[count]&0x20)>>5;
432432         tileno|=(bank<<8);
433         color=((state->m_dderby_vidattribs[count])&0x1f);
433         color=((m_dderby_vidattribs[count])&0x1f);
434434
435435         drawgfx_transpen(bitmap,cliprect,gfx,tileno,color,0,0,x*8,y*8,(tileno == 0x38) ? 0 : -1);
436436
r17967r17968
527527   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
528528   MCFG_SCREEN_SIZE(256, 256)
529529   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1)
530   MCFG_SCREEN_UPDATE_STATIC(dderby)
530   MCFG_SCREEN_UPDATE_DRIVER(dmndrby_state, screen_update_dderby)
531531
532532   MCFG_GFXDECODE(dmndrby)
533533   MCFG_PALETTE_LENGTH(0x300)
trunk/src/mame/drivers/crbaloon.c
r17967r17968
384384   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
385385   MCFG_SCREEN_SIZE(32*8, 32*8)
386386   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
387   MCFG_SCREEN_UPDATE_STATIC(crbaloon)
387   MCFG_SCREEN_UPDATE_DRIVER(crbaloon_state, screen_update_crbaloon)
388388
389389   /* audio hardware */
390390   MCFG_FRAGMENT_ADD(crbaloon_audio)
trunk/src/mame/drivers/portrait.c
r17967r17968
256256   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
257257   MCFG_SCREEN_SIZE(64*8, 64*8)
258258   MCFG_SCREEN_VISIBLE_AREA(0*8, 54*8-1, 0*8, 40*8-1)
259   MCFG_SCREEN_UPDATE_STATIC(portrait)
259   MCFG_SCREEN_UPDATE_DRIVER(portrait_state, screen_update_portrait)
260260
261261   MCFG_GFXDECODE(portrait)
262262   MCFG_PALETTE_LENGTH(0x800)
trunk/src/mame/drivers/munchmo.c
r17967r17968
343343   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
344344   MCFG_SCREEN_SIZE(256+32+32, 256)
345345   MCFG_SCREEN_VISIBLE_AREA(0, 255+32+32,0, 255-16)
346   MCFG_SCREEN_UPDATE_STATIC(mnchmobl)
346   MCFG_SCREEN_UPDATE_DRIVER(munchmo_state, screen_update_mnchmobl)
347347
348348   MCFG_GFXDECODE(mnchmobl)
349349   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/funkybee.c
r17967r17968
305305   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
306306   MCFG_SCREEN_SIZE(32*8, 32*8)
307307   MCFG_SCREEN_VISIBLE_AREA(12, 32*8-8-1, 0*8, 28*8-1)
308   MCFG_SCREEN_UPDATE_STATIC(funkybee)
308   MCFG_SCREEN_UPDATE_DRIVER(funkybee_state, screen_update_funkybee)
309309
310310   MCFG_GFXDECODE(funkybee)
311311   MCFG_PALETTE_LENGTH(32)
trunk/src/mame/drivers/lastduel.c
r17967r17968
516516   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
517517   MCFG_SCREEN_SIZE(64*8, 32*8)
518518   MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
519   MCFG_SCREEN_UPDATE_STATIC(lastduel)
519   MCFG_SCREEN_UPDATE_DRIVER(lastduel_state, screen_update_lastduel)
520520   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
521521
522522   MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
r17967r17968
559559   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
560560   MCFG_SCREEN_SIZE(64*8, 32*8)
561561   MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
562   MCFG_SCREEN_UPDATE_STATIC(madgear)
562   MCFG_SCREEN_UPDATE_DRIVER(lastduel_state, screen_update_madgear)
563563   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
564564
565565   MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
trunk/src/mame/drivers/drgnmst.c
r17967r17968
411411   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
412412   MCFG_SCREEN_SIZE(64*8, 32*8)
413413   MCFG_SCREEN_VISIBLE_AREA(8*8, 56*8-1, 2*8, 30*8-1)
414   MCFG_SCREEN_UPDATE_STATIC(drgnmst)
414   MCFG_SCREEN_UPDATE_DRIVER(drgnmst_state, screen_update_drgnmst)
415415
416416   MCFG_PALETTE_LENGTH(0x2000)
417417
trunk/src/mame/drivers/cmmb.c
r17967r17968
6666   DECLARE_READ8_MEMBER(kludge_r);
6767   virtual void machine_reset();
6868   virtual void video_start();
69   UINT32 screen_update_cmmb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6970};
7071
7172
r17967r17968
7475
7576}
7677
77static SCREEN_UPDATE_IND16( cmmb )
78UINT32 cmmb_state::screen_update_cmmb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
7879{
79   cmmb_state *state = screen.machine().driver_data<cmmb_state>();
80   UINT8 *videoram = state->m_videoram;
80   UINT8 *videoram = m_videoram;
8181   gfx_element *gfx = screen.machine().gfx[0];
8282   int count = 0x00000;
8383
r17967r17968
325325   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // unknown
326326   MCFG_SCREEN_SIZE(32*8, 32*8)
327327   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
328   MCFG_SCREEN_UPDATE_STATIC(cmmb)
328   MCFG_SCREEN_UPDATE_DRIVER(cmmb_state, screen_update_cmmb)
329329
330330   MCFG_GFXDECODE(cmmb)
331331   MCFG_PALETTE_LENGTH(512)
trunk/src/mame/drivers/starfire.c
r17967r17968
268268   /* video hardware */
269269   MCFG_SCREEN_ADD("screen", RASTER)
270270   MCFG_SCREEN_RAW_PARAMS(STARFIRE_PIXEL_CLOCK, STARFIRE_HTOTAL, STARFIRE_HBEND, STARFIRE_HBSTART, STARFIRE_VTOTAL, STARFIRE_VBEND, STARFIRE_VBSTART)
271   MCFG_SCREEN_UPDATE_STATIC(starfire)
271   MCFG_SCREEN_UPDATE_DRIVER(starfire_state, screen_update_starfire)
272272
273273
274274   /* audio hardware */
trunk/src/mame/drivers/boxer.c
r17967r17968
4949   virtual void machine_start();
5050   virtual void machine_reset();
5151   virtual void palette_init();
52   UINT32 screen_update_boxer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5253};
5354
5455/*************************************
r17967r17968
170171}
171172
172173
173static SCREEN_UPDATE_IND16( boxer )
174UINT32 boxer_state::screen_update_boxer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
174175{
175   boxer_state *state = screen.machine().driver_data<boxer_state>();
176176   int i, j;
177177
178178   bitmap.fill(1, cliprect);
r17967r17968
181181   {
182182      for (j = 0; j < 32; j++)
183183      {
184         UINT8 code = state->m_tile_ram[32 * i + j];
184         UINT8 code = m_tile_ram[32 * i + j];
185185
186186         drawgfx_transpen(bitmap, cliprect,
187187            screen.machine().gfx[2],
r17967r17968
455455   MCFG_SCREEN_REFRESH_RATE(60)
456456   MCFG_SCREEN_SIZE(256, 262)
457457   MCFG_SCREEN_VISIBLE_AREA(8, 247, 0, 239)
458   MCFG_SCREEN_UPDATE_STATIC(boxer)
458   MCFG_SCREEN_UPDATE_DRIVER(boxer_state, screen_update_boxer)
459459
460460   MCFG_GFXDECODE(boxer)
461461   MCFG_PALETTE_LENGTH(4)
trunk/src/mame/drivers/roul.c
r17967r17968
8282   DECLARE_WRITE8_MEMBER(ball_w);
8383   virtual void video_start();
8484   virtual void palette_init();
85   UINT32 screen_update_roul(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8586};
8687
8788
r17967r17968
214215   m_videobuf = auto_alloc_array_clear(machine(), UINT8, VIDEOBUF_SIZE);
215216}
216217
217static SCREEN_UPDATE_IND16(roul)
218UINT32 roul_state::screen_update_roul(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
218219{
219   roul_state *state = screen.machine().driver_data<roul_state>();
220220   int i,j;
221221   for (i = 0; i < 256; i++)
222222      for (j = 0; j < 256; j++)
223         bitmap.pix16(j, i) = state->m_videobuf[j * 256 + 255 - i];
223         bitmap.pix16(j, i) = m_videobuf[j * 256 + 255 - i];
224224   return 0;
225225}
226226
r17967r17968
294294   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
295295   MCFG_SCREEN_SIZE(32*8, 32*8)
296296   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
297   MCFG_SCREEN_UPDATE_STATIC(roul)
297   MCFG_SCREEN_UPDATE_DRIVER(roul_state, screen_update_roul)
298298
299299   MCFG_PALETTE_LENGTH(0x100)
300300
trunk/src/mame/drivers/freekick.c
r17967r17968
642642   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
643643   MCFG_SCREEN_SIZE(32*8, 32*8)
644644   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
645   MCFG_SCREEN_UPDATE_STATIC(pbillrd)
645   MCFG_SCREEN_UPDATE_DRIVER(freekick_state, screen_update_pbillrd)
646646
647647   MCFG_PALETTE_LENGTH(0x200)
648648   MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
r17967r17968
687687   MCFG_I8255A_ADD( "ppi8255_1", ppi8255_1_intf )
688688
689689   MCFG_SCREEN_MODIFY("screen")
690   MCFG_SCREEN_UPDATE_STATIC(freekick)
690   MCFG_SCREEN_UPDATE_DRIVER(freekick_state, screen_update_freekick)
691691MACHINE_CONFIG_END
692692
693693static MACHINE_CONFIG_DERIVED( gigas, base )
r17967r17968
700700   MCFG_MACHINE_RESET_OVERRIDE(freekick_state,freekick)
701701
702702   MCFG_SCREEN_MODIFY("screen")
703   MCFG_SCREEN_UPDATE_STATIC(gigas)
703   MCFG_SCREEN_UPDATE_DRIVER(freekick_state, screen_update_gigas)
704704MACHINE_CONFIG_END
705705
706706static MACHINE_CONFIG_DERIVED( oigas, gigas )
trunk/src/mame/drivers/cischeat.c
r17967r17968
15841584   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
15851585   MCFG_SCREEN_SIZE(256, 256)
15861586   MCFG_SCREEN_VISIBLE_AREA(0, 256-1,   0+16, 256-16-1)
1587   MCFG_SCREEN_UPDATE_STATIC(bigrun)
1587   MCFG_SCREEN_UPDATE_DRIVER(cischeat_state, screen_update_bigrun)
15881588
15891589   MCFG_GFXDECODE(bigrun)
15901590   MCFG_PALETTE_LENGTH(16*16 * 3 + 64*16 * 2 + 64*16)   /* scroll 0,1,2; road 0,1; sprites */
r17967r17968
16261626   /* video hardware */
16271627   MCFG_SCREEN_MODIFY("screen")
16281628   MCFG_SCREEN_VISIBLE_AREA(0, 256-1,   0+16, 256-16-8-1)
1629   MCFG_SCREEN_UPDATE_STATIC(cischeat)
1629   MCFG_SCREEN_UPDATE_DRIVER(cischeat_state, screen_update_cischeat)
16301630
16311631   MCFG_GFXDECODE(cischeat)
16321632   MCFG_PALETTE_LENGTH(32*16 * 3 + 64*16 * 2 + 128*16)   /* scroll 0,1,2; road 0,1; sprites */
r17967r17968
16591659
16601660   MCFG_VIDEO_START_OVERRIDE(cischeat_state,f1gpstar)
16611661   MCFG_SCREEN_MODIFY("screen")
1662   MCFG_SCREEN_UPDATE_STATIC(f1gpstar)
1662   MCFG_SCREEN_UPDATE_DRIVER(cischeat_state, screen_update_f1gpstar)
16631663MACHINE_CONFIG_END
16641664
16651665
r17967r17968
17171717   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500 * 3) /* not accurate */)
17181718   MCFG_SCREEN_SIZE(256, 256)
17191719   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0 +16, 256-1 -16)
1720   MCFG_SCREEN_UPDATE_STATIC(scudhamm)
1720   MCFG_SCREEN_UPDATE_DRIVER(cischeat_state, screen_update_scudhamm)
17211721
17221722   MCFG_GFXDECODE(scudhamm)
17231723   MCFG_PALETTE_LENGTH(16*16+16*16+128*16)
trunk/src/mame/drivers/redclash.c
r17967r17968
365365   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
366366   MCFG_SCREEN_SIZE(32*8, 32*8)
367367   MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 28*8-1)
368   MCFG_SCREEN_UPDATE_STATIC(redclash)
369   MCFG_SCREEN_VBLANK_STATIC(redclash)
368   MCFG_SCREEN_UPDATE_DRIVER(ladybug_state, screen_update_redclash)
369   MCFG_SCREEN_VBLANK_DRIVER(ladybug_state, screen_eof_redclash)
370370
371371   MCFG_GFXDECODE(redclash)
372372   MCFG_PALETTE_LENGTH(4*8+4*16+32)
r17967r17968
393393   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
394394   MCFG_SCREEN_SIZE(32*8, 32*8)
395395   MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 28*8-1)
396   MCFG_SCREEN_UPDATE_STATIC(redclash)
397   MCFG_SCREEN_VBLANK_STATIC(redclash)
396   MCFG_SCREEN_UPDATE_DRIVER(ladybug_state, screen_update_redclash)
397   MCFG_SCREEN_VBLANK_DRIVER(ladybug_state, screen_eof_redclash)
398398
399399   MCFG_GFXDECODE(redclash)
400400   MCFG_PALETTE_LENGTH(4*8+4*16+32)
trunk/src/mame/drivers/vicdual.c
r17967r17968
295295
296296   /* video hardware */
297297   MCFG_SCREEN_MODIFY("screen")
298   MCFG_SCREEN_UPDATE_STATIC(vicdual_bw)
298   MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_bw)
299299
300300   /* audio hardware */
301301   MCFG_SPEAKER_STANDARD_MONO("mono")
r17967r17968
383383
384384   /* video hardware */
385385   MCFG_SCREEN_MODIFY("screen")
386   MCFG_SCREEN_UPDATE_STATIC(vicdual_bw)
386   MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_bw)
387387
388388MACHINE_CONFIG_END
389389
r17967r17968
486486
487487   /* video hardware */
488488   MCFG_SCREEN_MODIFY("screen")
489   MCFG_SCREEN_UPDATE_STATIC(vicdual_bw)
489   MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_bw)
490490
491491   /* audio hardware */
492492   MCFG_SPEAKER_STANDARD_MONO("mono")
r17967r17968
674674
675675   /* video hardware */
676676   MCFG_SCREEN_MODIFY("screen")
677   MCFG_SCREEN_UPDATE_STATIC(vicdual_bw_or_color)
677   MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_bw_or_color)
678678
679679   /* audio hardware */
680680   MCFG_SPEAKER_STANDARD_MONO("mono")
r17967r17968
686686
687687   /* video hardware */
688688   MCFG_SCREEN_MODIFY("screen")
689   MCFG_SCREEN_UPDATE_STATIC(vicdual_bw) // no colour prom on PCB, must be bw?
689   MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_bw)
690690MACHINE_CONFIG_END
691691
692692
r17967r17968
700700
701701   /* video hardware */
702702   MCFG_SCREEN_MODIFY("screen")
703   MCFG_SCREEN_UPDATE_STATIC(vicdual_bw_or_color)
703   MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_bw_or_color)
704704
705705MACHINE_CONFIG_END
706706
r17967r17968
894894
895895   /* video hardware */
896896   MCFG_SCREEN_MODIFY("screen")
897   MCFG_SCREEN_UPDATE_STATIC(vicdual_color)
897   MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_color)
898898
899899   /* audio hardware */
900900   MCFG_SPEAKER_STANDARD_MONO("mono")
r17967r17968
907907   /* basic machine hardware */
908908   /* video hardware */
909909   MCFG_SCREEN_MODIFY("screen")
910   MCFG_SCREEN_UPDATE_STATIC(vicdual_bw)
910   MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_bw)
911911MACHINE_CONFIG_END
912912
913913
r17967r17968
920920
921921   /* video hardware */
922922   MCFG_SCREEN_MODIFY("screen")
923   MCFG_SCREEN_UPDATE_STATIC(vicdual_color)
923   MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_color)
924924
925925MACHINE_CONFIG_END
926926
r17967r17968
19041904
19051905   /* video hardware */
19061906   MCFG_SCREEN_MODIFY("screen")
1907   MCFG_SCREEN_UPDATE_STATIC(vicdual_color)
1907   MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_color)
19081908
19091909MACHINE_CONFIG_END
19101910
r17967r17968
21512151
21522152   /* video hardware */
21532153   MCFG_SCREEN_MODIFY("screen")
2154   MCFG_SCREEN_UPDATE_STATIC(vicdual_color)
2154   MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_color)
21552155
21562156MACHINE_CONFIG_END
21572157
r17967r17968
22462246
22472247   /* video hardware */
22482248   MCFG_SCREEN_MODIFY("screen")
2249   MCFG_SCREEN_UPDATE_STATIC(vicdual_color)
2249   MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_color)
22502250
22512251MACHINE_CONFIG_END
22522252
r17967r17968
23452345
23462346   /* video hardware */
23472347   MCFG_SCREEN_MODIFY("screen")
2348   MCFG_SCREEN_UPDATE_STATIC(vicdual_color)
2348   MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_color)
23492349
23502350   /* audio hardware */
23512351   MCFG_SPEAKER_STANDARD_MONO("mono")
trunk/src/mame/drivers/xybots.c
r17967r17968
210210   /* note: these parameters are from published specs, not derived */
211211   /* the board uses a SYNGEN chip to generate video signals */
212212   MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
213   MCFG_SCREEN_UPDATE_STATIC(xybots)
213   MCFG_SCREEN_UPDATE_DRIVER(xybots_state, screen_update_xybots)
214214
215215   MCFG_VIDEO_START_OVERRIDE(xybots_state,xybots)
216216
trunk/src/mame/drivers/speglsht.c
r17967r17968
133133   DECLARE_DRIVER_INIT(speglsht);
134134   DECLARE_MACHINE_RESET(speglsht);
135135   DECLARE_VIDEO_START(speglsht);
136   UINT32 screen_update_speglsht(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
136137};
137138
138139
r17967r17968
348349      bitmap.pix32(y, x) = (b) | ((g)<<8) | ((r)<<16); \
349350}
350351
351static SCREEN_UPDATE_RGB32(speglsht)
352UINT32 speglsht_state::screen_update_speglsht(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
352353{
353   speglsht_state *state = screen.machine().driver_data<speglsht_state>();
354354   int x,y,dy;
355355
356   dy=(state->m_videoreg&0x20)?(256*512):0; //visible frame
356   dy=(m_videoreg&0x20)?(256*512):0; //visible frame
357357
358358   for(y=0;y<256;y++)
359359   {
360360      for(x=0;x<512;x++)
361361      {
362362         int tmp=dy+y*512+x;
363         PLOT_PIXEL_RGB(x-67,y-5,(state->m_framebuffer[tmp]>>0)&0xff,(state->m_framebuffer[tmp]>>8)&0xff,(state->m_framebuffer[tmp]>>16)&0xff);
363         PLOT_PIXEL_RGB(x-67,y-5,(m_framebuffer[tmp]>>0)&0xff,(m_framebuffer[tmp]>>8)&0xff,(m_framebuffer[tmp]>>16)&0xff);
364364      }
365365   }
366366
367367   //draw st0016 gfx to temporary bitmap (indexed 16)
368   state->m_bitmap->fill(0);
369   st0016_draw_screen(screen, *state->m_bitmap, cliprect);
368   m_bitmap->fill(0);
369   st0016_draw_screen(screen, *m_bitmap, cliprect);
370370
371371   //copy temporary bitmap to rgb 32 bit bitmap
372372   for(y=cliprect.min_y; y<cliprect.max_y;y++)
373373   {
374      UINT16 *srcline = &state->m_bitmap->pix16(y);
374      UINT16 *srcline = &m_bitmap->pix16(y);
375375      for(x=cliprect.min_x; x<cliprect.max_x;x++)
376376      {
377377         if(srcline[x])
r17967r17968
407407   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
408408   MCFG_SCREEN_SIZE(512, 512)
409409   MCFG_SCREEN_VISIBLE_AREA(0, 319, 8, 239-8)
410   MCFG_SCREEN_UPDATE_STATIC(speglsht)
410   MCFG_SCREEN_UPDATE_DRIVER(speglsht_state, screen_update_speglsht)
411411
412412   MCFG_GFXDECODE(speglsht)
413413   MCFG_PALETTE_LENGTH(16*16*4+1)
trunk/src/mame/drivers/centiped.c
r17967r17968
17661766   MCFG_SCREEN_REFRESH_RATE(60)
17671767   MCFG_SCREEN_SIZE(32*8, 32*8)
17681768   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1)
1769   MCFG_SCREEN_UPDATE_STATIC(centiped)
1769   MCFG_SCREEN_UPDATE_DRIVER(centiped_state, screen_update_centiped)
17701770
17711771   MCFG_GFXDECODE(centiped)
17721772   MCFG_PALETTE_LENGTH(4+4*4*4*4)
r17967r17968
18461846
18471847   MCFG_VIDEO_START_OVERRIDE(centiped_state,milliped)
18481848   MCFG_SCREEN_MODIFY("screen")
1849   MCFG_SCREEN_UPDATE_STATIC(milliped)
1849   MCFG_SCREEN_UPDATE_DRIVER(centiped_state, screen_update_milliped)
18501850
18511851   /* sound hardware */
18521852   MCFG_POKEY_REPLACE("pokey", 12096000/8)
r17967r17968
18831883   MCFG_PALETTE_INIT_OVERRIDE(centiped_state,warlords)
18841884   MCFG_VIDEO_START_OVERRIDE(centiped_state,warlords)
18851885   MCFG_SCREEN_MODIFY("screen")
1886   MCFG_SCREEN_UPDATE_STATIC(warlords)
1886   MCFG_SCREEN_UPDATE_DRIVER(centiped_state, screen_update_warlords)
18871887
18881888   /* sound hardware */
18891889   MCFG_POKEY_REPLACE("pokey", 12096000/8)
r17967r17968
18981898   MCFG_CPU_MODIFY("maincpu")
18991899   MCFG_CPU_PROGRAM_MAP(mazeinv_map)
19001900   MCFG_SCREEN_MODIFY("screen")
1901   MCFG_SCREEN_UPDATE_STATIC(centiped)
1901   MCFG_SCREEN_UPDATE_DRIVER(centiped_state, screen_update_centiped)
19021902MACHINE_CONFIG_END
19031903
19041904
r17967r17968
19161916   MCFG_SCREEN_REFRESH_RATE(60)
19171917   MCFG_SCREEN_SIZE(32*8, 32*8)
19181918   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1)
1919   MCFG_SCREEN_UPDATE_STATIC(bullsdrt)
1919   MCFG_SCREEN_UPDATE_DRIVER(centiped_state, screen_update_bullsdrt)
19201920
19211921   MCFG_GFXDECODE(centiped)
19221922   MCFG_PALETTE_LENGTH(4+4*4*4*4)
trunk/src/mame/drivers/magicfly.c
r17967r17968
438438   virtual void video_start();
439439   virtual void palette_init();
440440   DECLARE_VIDEO_START(7mezzo);
441   UINT32 screen_update_magicfly(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
441442};
442443
443444
r17967r17968
518519   m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(magicfly_state::get_7mezzo_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 29);
519520}
520521
521static SCREEN_UPDATE_IND16( magicfly )
522UINT32 magicfly_state::screen_update_magicfly(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
522523{
523   magicfly_state *state = screen.machine().driver_data<magicfly_state>();
524   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
524   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
525525   return 0;
526526}
527527
r17967r17968
814814   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
815815   MCFG_SCREEN_SIZE((39+1)*8, (31+1)*8)            /* Taken from MC6845 init, registers 00 & 04. Normally programmed with (value-1). */
816816   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 29*8-1)   /* Taken from MC6845 init, registers 01 & 06. */
817   MCFG_SCREEN_UPDATE_STATIC(magicfly)
817   MCFG_SCREEN_UPDATE_DRIVER(magicfly_state, screen_update_magicfly)
818818
819819   MCFG_GFXDECODE(magicfly)
820820   MCFG_PALETTE_LENGTH(32)
trunk/src/mame/drivers/wgp.c
r17967r17968
10141014   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
10151015   MCFG_SCREEN_SIZE(40*8, 32*8)
10161016   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
1017   MCFG_SCREEN_UPDATE_STATIC(wgp)
1017   MCFG_SCREEN_UPDATE_DRIVER(wgp_state, screen_update_wgp)
10181018
10191019   MCFG_GFXDECODE(wgp)
10201020   MCFG_PALETTE_LENGTH(4096)
trunk/src/mame/drivers/welltris.c
r17967r17968
719719   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
720720   MCFG_SCREEN_SIZE(512, 256)
721721   MCFG_SCREEN_VISIBLE_AREA(15, 367-1, 8, 248-1)
722   MCFG_SCREEN_UPDATE_STATIC(welltris)
722   MCFG_SCREEN_UPDATE_DRIVER(welltris_state, screen_update_welltris)
723723
724724   MCFG_GFXDECODE(welltris)
725725   MCFG_PALETTE_LENGTH(2048)
trunk/src/mame/drivers/scregg.c
r17967r17968
270270   /* video hardware */
271271   MCFG_SCREEN_ADD("screen", RASTER)
272272   MCFG_SCREEN_RAW_PARAMS(XTAL_12MHz/2, 384, 8, 248, 272, 8, 248)
273   MCFG_SCREEN_UPDATE_STATIC(eggs)
273   MCFG_SCREEN_UPDATE_DRIVER(scregg_state, screen_update_eggs)
274274
275275   MCFG_GFXDECODE(scregg)
276276   MCFG_PALETTE_LENGTH(8)
r17967r17968
302302   /* video hardware */
303303   MCFG_SCREEN_ADD("screen", RASTER)
304304   MCFG_SCREEN_RAW_PARAMS(XTAL_12MHz/2, 384, 8, 248, 272, 8, 248)
305   MCFG_SCREEN_UPDATE_STATIC(eggs)
305   MCFG_SCREEN_UPDATE_DRIVER(scregg_state, screen_update_eggs)
306306
307307   MCFG_GFXDECODE(scregg)
308308   MCFG_PALETTE_LENGTH(8)
trunk/src/mame/drivers/taitoair.c
r17967r17968
730730   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
731731   MCFG_SCREEN_SIZE(64*16, 64*16)
732732   MCFG_SCREEN_VISIBLE_AREA(0*16, 32*16-1, 3*16, 28*16-1)
733   MCFG_SCREEN_UPDATE_STATIC(taitoair)
733   MCFG_SCREEN_UPDATE_DRIVER(taitoair_state, screen_update_taitoair)
734734
735735   MCFG_GFXDECODE(airsys)
736736   MCFG_PALETTE_LENGTH(512*16+512*16)
trunk/src/mame/drivers/tceptor.c
r17967r17968
398398   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
399399   MCFG_SCREEN_SIZE(38*8, 32*8)
400400   MCFG_SCREEN_VISIBLE_AREA(2*8, 34*8-1 + 2*8, 0*8, 28*8-1 + 0)
401   MCFG_SCREEN_UPDATE_STATIC(tceptor_2d)
401   MCFG_SCREEN_UPDATE_DRIVER(tceptor_state, screen_update_tceptor_2d)
402402
403403   MCFG_SCREEN_ADD("3dleft", RASTER)
404404   MCFG_SCREEN_REFRESH_RATE(60.606060)
405405   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
406406   MCFG_SCREEN_SIZE(38*8, 32*8)
407407   MCFG_SCREEN_VISIBLE_AREA(2*8, 34*8-1 + 2*8, 0*8, 28*8-1 + 0)
408   MCFG_SCREEN_UPDATE_STATIC(tceptor_3d_left)
408   MCFG_SCREEN_UPDATE_DRIVER(tceptor_state, screen_update_tceptor_3d_left)
409409
410410   MCFG_SCREEN_ADD("3dright", RASTER)
411411   MCFG_SCREEN_REFRESH_RATE(60.606060)
412412   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
413413   MCFG_SCREEN_SIZE(38*8, 32*8)
414414   MCFG_SCREEN_VISIBLE_AREA(2*8, 34*8-1 + 2*8, 0*8, 28*8-1 + 0)
415   MCFG_SCREEN_UPDATE_STATIC(tceptor_3d_right)
416   MCFG_SCREEN_VBLANK_STATIC(tceptor)
415   MCFG_SCREEN_UPDATE_DRIVER(tceptor_state, screen_update_tceptor_3d_right)
416   MCFG_SCREEN_VBLANK_DRIVER(tceptor_state, screen_eof_tceptor)
417417
418418
419419
trunk/src/mame/drivers/aquarium.c
r17967r17968
331331   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
332332   MCFG_SCREEN_SIZE(64*8, 64*8)
333333   MCFG_SCREEN_VISIBLE_AREA(2*8, 42*8-1, 2*8, 34*8-1)
334   MCFG_SCREEN_UPDATE_STATIC(aquarium)
334   MCFG_SCREEN_UPDATE_DRIVER(aquarium_state, screen_update_aquarium)
335335
336336   MCFG_GFXDECODE(aquarium)
337337   MCFG_PALETTE_LENGTH(0x1000/2)
trunk/src/mame/drivers/gal3.c
r17967r17968
159159   DECLARE_READ32_MEMBER(rso_r);
160160   DECLARE_WRITE32_MEMBER(rso_w);
161161   DECLARE_VIDEO_START(gal3);
162   UINT32 screen_update_gal3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
162163};
163164
164165
r17967r17968
193194   }
194195} /* update_palette */
195196
196static SCREEN_UPDATE_RGB32(gal3)
197UINT32 gal3_state::screen_update_gal3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
197198{
198   gal3_state *state = screen.machine().driver_data<gal3_state>();
199199   int i;
200200   char mst[18], slv[18];
201201   static int pivot = 15;
r17967r17968
208208
209209   for( pri=0; pri<pivot; pri++ )
210210   {
211      state->c355_obj_draw(bitmap, cliprect, pri);
211      c355_obj_draw(bitmap, cliprect, pri);
212212   }
213213
214214/*  CopyVisiblePolyFrameBuffer( bitmap, cliprect,0,0x7fbf );
215215
216216    for( pri=pivot; pri<15; pri++ )
217217    {
218        state->c355_obj_draw(bitmap, cliprect, pri);
218        c355_obj_draw(bitmap, cliprect, pri);
219219    }*/
220220
221221   // CPU Diag LEDs
222222   mst[17]='\0', slv[17]='\0';
223/// printf("mst=0x%x\tslv=0x%x\n", state->m_led_mst, state->m_led_slv);
223/// printf("mst=0x%x\tslv=0x%x\n", m_led_mst, m_led_slv);
224224   for(i=16;i<32;i++)
225225   {
226226      int t;
r17967r17968
230230         t=i+1;
231231      mst[8]=' '; slv[8]=' ';
232232
233      if(state->m_led_mst&(1<<i))
233      if(m_led_mst&(1<<i))
234234         mst[t-16]='*';
235235      else
236236         mst[t-16]='O';
237237
238      if(state->m_led_slv&(1<<i))
238      if(m_led_slv&(1<<i))
239239         slv[t-16]='*';
240240      else
241241         slv[t-16]='O';
r17967r17968
658658   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
659659   MCFG_SCREEN_SIZE(64*8, 64*8)
660660   MCFG_SCREEN_VISIBLE_AREA(0*8, 512-1, 0*8, 512-1)
661   MCFG_SCREEN_UPDATE_STATIC(gal3)
661   MCFG_SCREEN_UPDATE_DRIVER(gal3_state, screen_update_gal3)
662662
663663   MCFG_SCREEN_ADD("rscreen", RASTER)
664664   MCFG_SCREEN_REFRESH_RATE(60)
665665   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
666666   MCFG_SCREEN_SIZE(64*8, 64*8)
667667   MCFG_SCREEN_VISIBLE_AREA(0*8, 512-1, 0*8, 512-1)
668   MCFG_SCREEN_UPDATE_STATIC(gal3)
668   MCFG_SCREEN_UPDATE_DRIVER(gal3_state, screen_update_gal3)
669669
670670   MCFG_GFXDECODE(namcos21)
671671   MCFG_PALETTE_LENGTH(NAMCOS21_NUM_COLORS)
trunk/src/mame/drivers/metro.c
r17967r17968
34333433   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
34343434   MCFG_SCREEN_SIZE(320, 224)
34353435   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
3436   MCFG_SCREEN_UPDATE_STATIC(metro)
3436   MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
34373437
34383438   MCFG_GFXDECODE(i4220)
34393439   MCFG_PALETTE_LENGTH(8192)
r17967r17968
34673467   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
34683468   MCFG_SCREEN_SIZE(320, 224)
34693469   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
3470   MCFG_SCREEN_UPDATE_STATIC(metro)
3470   MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
34713471
34723472   MCFG_GFXDECODE(i4220)
34733473   MCFG_PALETTE_LENGTH(8192)
r17967r17968
35013501   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
35023502   MCFG_SCREEN_SIZE(320, 224)
35033503   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
3504   MCFG_SCREEN_UPDATE_STATIC(metro)
3504   MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
35053505
35063506   MCFG_GFXDECODE(i4220)
35073507   MCFG_PALETTE_LENGTH(8192)
r17967r17968
35353535   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
35363536   MCFG_SCREEN_SIZE(320, 224)
35373537   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
3538   MCFG_SCREEN_UPDATE_STATIC(metro)
3538   MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
35393539
35403540   MCFG_GFXDECODE(i4220)
35413541   MCFG_PALETTE_LENGTH(8192)
r17967r17968
35693569   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
35703570   MCFG_SCREEN_SIZE(320, 224)
35713571   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
3572   MCFG_SCREEN_UPDATE_STATIC(metro)
3572   MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
35733573
35743574   MCFG_GFXDECODE(i4220)
35753575   MCFG_PALETTE_LENGTH(8192)
r17967r17968
36073607   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
36083608   MCFG_SCREEN_SIZE(320, 224)
36093609   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
3610   MCFG_SCREEN_UPDATE_STATIC(metro)
3610   MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
36113611
36123612   MCFG_GFXDECODE(i4220)
36133613   MCFG_PALETTE_LENGTH(8192)
r17967r17968
36503650   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
36513651   MCFG_SCREEN_SIZE(320, 224)
36523652   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
3653   MCFG_SCREEN_UPDATE_STATIC(metro)
3653   MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
36543654
36553655   MCFG_GFXDECODE(i4100)
36563656   MCFG_PALETTE_LENGTH(8192)
r17967r17968
36923692   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
36933693   MCFG_SCREEN_SIZE(320, 240)
36943694   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
3695   MCFG_SCREEN_UPDATE_STATIC(metro)
3695   MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
36963696
36973697   MCFG_GFXDECODE(i4100)
36983698   MCFG_PALETTE_LENGTH(8192)
r17967r17968
37343734   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
37353735   MCFG_SCREEN_SIZE(320, 240)
37363736   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
3737   MCFG_SCREEN_UPDATE_STATIC(metro)
3737   MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
37383738
37393739   MCFG_GFXDECODE(i4220)
37403740   MCFG_PALETTE_LENGTH(8192)
r17967r17968
37763776   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
37773777   MCFG_SCREEN_SIZE(360, 224)
37783778   MCFG_SCREEN_VISIBLE_AREA(0, 360-1, 0, 224-1)
3779   MCFG_SCREEN_UPDATE_STATIC(metro)
3779   MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
37803780
37813781   MCFG_GFXDECODE(i4100)
37823782   MCFG_PALETTE_LENGTH(8192)
r17967r17968
38173817   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
38183818   MCFG_SCREEN_SIZE(360, 224)
38193819   MCFG_SCREEN_VISIBLE_AREA(0, 360-1, 0, 224-1)
3820   MCFG_SCREEN_UPDATE_STATIC(metro)
3820   MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
38213821
38223822   MCFG_GFXDECODE(i4100)
38233823   MCFG_PALETTE_LENGTH(8192)
r17967r17968
38523852   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
38533853   MCFG_SCREEN_SIZE(320, 224)
38543854   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
3855   MCFG_SCREEN_UPDATE_STATIC(metro)
3855   MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
38563856
38573857   MCFG_GFXDECODE(i4300)
38583858   MCFG_PALETTE_LENGTH(8192)
r17967r17968
38883888   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
38893889   MCFG_SCREEN_SIZE(384, 224)
38903890   MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 224-1)
3891   MCFG_SCREEN_UPDATE_STATIC(metro)
3891   MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
38923892
38933893   MCFG_GFXDECODE(i4300)
38943894   MCFG_PALETTE_LENGTH(8192)
r17967r17968
39253925   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
39263926   MCFG_SCREEN_SIZE(320, 240)
39273927   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
3928   MCFG_SCREEN_UPDATE_STATIC(metro)
3928   MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
39293929
39303930   MCFG_GFXDECODE(i4300)
39313931   MCFG_PALETTE_LENGTH(8192)
r17967r17968
39623962   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
39633963   MCFG_SCREEN_SIZE(320, 240)
39643964   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
3965   MCFG_SCREEN_UPDATE_STATIC(metro)
3965   MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
39663966
39673967   MCFG_GFXDECODE(i4300)
39683968   MCFG_PALETTE_LENGTH(8192)
r17967r17968
40044004   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
40054005   MCFG_SCREEN_SIZE(360, 224)
40064006   MCFG_SCREEN_VISIBLE_AREA(0, 360-1, 0, 224-1)
4007   MCFG_SCREEN_UPDATE_STATIC(metro)
4007   MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
40084008
40094009   MCFG_GFXDECODE(i4100)
40104010   MCFG_PALETTE_LENGTH(8192)
r17967r17968
40464046   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
40474047   MCFG_SCREEN_SIZE(360, 224)
40484048   MCFG_SCREEN_VISIBLE_AREA(0, 360-1, 0, 224-1)
4049   MCFG_SCREEN_UPDATE_STATIC(metro)
4049   MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
40504050
40514051   MCFG_GFXDECODE(i4100)
40524052   MCFG_PALETTE_LENGTH(8192)
r17967r17968
40884088   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
40894089   MCFG_SCREEN_SIZE(320, 224)
40904090   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
4091   MCFG_SCREEN_UPDATE_STATIC(metro)
4091   MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
40924092
40934093   MCFG_GFXDECODE(i4100)
40944094   MCFG_PALETTE_LENGTH(8192)
r17967r17968
41314131   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
41324132   MCFG_SCREEN_SIZE(360, 224)
41334133   MCFG_SCREEN_VISIBLE_AREA(0, 360-1, 0, 224-1)
4134   MCFG_SCREEN_UPDATE_STATIC(metro)
4134   MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
41354135
41364136   MCFG_GFXDECODE(i4100)
41374137   MCFG_PALETTE_LENGTH(8192)
r17967r17968
41734173   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
41744174   MCFG_SCREEN_SIZE(320, 224)
41754175   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
4176   MCFG_SCREEN_UPDATE_STATIC(metro)
4176   MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
41774177
41784178   MCFG_GFXDECODE(i4100)
41794179   MCFG_PALETTE_LENGTH(8192)
r17967r17968
42094209   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
42104210   MCFG_SCREEN_SIZE(512, 256)
42114211   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
4212   MCFG_SCREEN_UPDATE_STATIC(metro)
4212   MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
42134213
42144214   MCFG_GFXDECODE(i4300)
42154215   MCFG_PALETTE_LENGTH(8192)
r17967r17968
42544254   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
42554255   MCFG_SCREEN_SIZE(320, 224)
42564256   MCFG_SCREEN_VISIBLE_AREA(8, 320-8-1, 0, 224-1)
4257   MCFG_SCREEN_UPDATE_STATIC(metro)
4257   MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
42584258
42594259   MCFG_GFXDECODE(blzntrnd)
42604260   MCFG_PALETTE_LENGTH(8192)
r17967r17968
43024302   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
43034303   MCFG_SCREEN_SIZE(320, 224)
43044304   MCFG_SCREEN_VISIBLE_AREA(8, 320-8-1, 0, 224-1)
4305   MCFG_SCREEN_UPDATE_STATIC(metro)
4305   MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
43064306
43074307   MCFG_GFXDECODE(gstrik2)
43084308   MCFG_PALETTE_LENGTH(8192)
r17967r17968
43404340   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
43414341   MCFG_SCREEN_SIZE(320, 224)
43424342   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
4343   MCFG_SCREEN_UPDATE_STATIC(metro)
4343   MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
43444344
43454345   MCFG_GFXDECODE(i4300)
43464346   MCFG_PALETTE_LENGTH(8192)
trunk/src/mame/drivers/angelkds.c
r17967r17968
617617   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
618618   MCFG_SCREEN_SIZE(32*8, 32*8)
619619   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
620   MCFG_SCREEN_UPDATE_STATIC(angelkds)
620   MCFG_SCREEN_UPDATE_DRIVER(angelkds_state, screen_update_angelkds)
621621
622622   MCFG_GFXDECODE(angelkds)
623623   MCFG_PALETTE_LENGTH(0x100)
trunk/src/mame/drivers/jrpacman.c
r17967r17968
302302   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
303303   MCFG_SCREEN_SIZE(36*8, 28*8)
304304   MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
305   MCFG_SCREEN_UPDATE_STATIC(pacman)
305   MCFG_SCREEN_UPDATE_DRIVER(jrpacman_state, screen_update_pacman)
306306
307307   MCFG_GFXDECODE(jrpacman)
308308   MCFG_PALETTE_LENGTH(128*4)
trunk/src/mame/drivers/nightgal.c
r17967r17968
8080   virtual void machine_reset();
8181   virtual void video_start();
8282   virtual void palette_init();
83   UINT32 screen_update_nightgal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8384};
8485
8586
r17967r17968
9596   save_item(NAME(m_blit_buffer));
9697}
9798
98static SCREEN_UPDATE_IND16( nightgal )
99UINT32 nightgal_state::screen_update_nightgal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
99100{
100   nightgal_state *state = screen.machine().driver_data<nightgal_state>();
101101   int x, y;
102102
103103   for (y = cliprect.min_y; y <= cliprect.max_y; ++y)
104104   {
105      UINT8 *src = &state->m_blit_buffer[y * 512 / 2 + cliprect.min_x];
105      UINT8 *src = &m_blit_buffer[y * 512 / 2 + cliprect.min_x];
106106      UINT16 *dst = &bitmap.pix16(y, cliprect.min_x);
107107
108108      for (x = cliprect.min_x; x <= cliprect.max_x; x += 2)
r17967r17968
883883   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
884884   MCFG_SCREEN_SIZE(256, 256)
885885   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1)
886   MCFG_SCREEN_UPDATE_STATIC(nightgal)
886   MCFG_SCREEN_UPDATE_DRIVER(nightgal_state, screen_update_nightgal)
887887
888888   MCFG_PALETTE_LENGTH(0x10)
889889
trunk/src/mame/drivers/maygayv1.c
r17967r17968
241241   virtual void machine_start();
242242   virtual void machine_reset();
243243   virtual void video_start();
244   UINT32 screen_update_maygayv1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
245   void screen_eof_maygayv1(screen_device &screen, bool state);
244246};
245247
246248
r17967r17968
293295}
294296
295297
296static SCREEN_UPDATE_IND16( maygayv1 )
298UINT32 maygayv1_state::screen_update_maygayv1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
297299{
298   maygayv1_state *state = screen.machine().driver_data<maygayv1_state>();
299   i82716_t &i82716 = state->m_i82716;
300   i82716_t &i82716 = m_i82716;
300301   UINT16 *atable = &i82716.dram[VREG(ATBA)];
301302   UINT16 *otable = &i82716.dram[VREG(ODTBA) & 0xfc00];  // both must be bank 0
302303
r17967r17968
424425   return 0;
425426}
426427
427static SCREEN_VBLANK( maygayv1 )
428void maygayv1_state::screen_eof_maygayv1(screen_device &screen, bool state)
428429{
429430   // rising edge
430   if (vblank_on)
431   if (state)
431432   {
432      maygayv1_state *state = screen.machine().driver_data<maygayv1_state>();
433      i82716_t &i82716 = state->m_i82716;
433      i82716_t &i82716 = m_i82716;
434434      // UCF
435435      if (VREG(VCR0) & VCR0_UCF)
436436      {
r17967r17968
10541054   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
10551055   MCFG_SCREEN_SIZE(640, 300)
10561056   MCFG_SCREEN_VISIBLE_AREA(0, 640 - 1, 0, 300 - 1)
1057   MCFG_SCREEN_UPDATE_STATIC(maygayv1)
1058   MCFG_SCREEN_VBLANK_STATIC(maygayv1)
1057   MCFG_SCREEN_UPDATE_DRIVER(maygayv1_state, screen_update_maygayv1)
1058   MCFG_SCREEN_VBLANK_DRIVER(maygayv1_state, screen_eof_maygayv1)
10591059
10601060   MCFG_PALETTE_LENGTH(16)
10611061
trunk/src/mame/drivers/rgum.c
r17967r17968
3232   UINT8 m_hbeat;
3333   DECLARE_CUSTOM_INPUT_MEMBER(rgum_heartbeat_r);
3434   virtual void video_start();
35   UINT32 screen_update_royalgum(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3536};
3637
3738
r17967r17968
3940{
4041}
4142
42static SCREEN_UPDATE_IND16(royalgum)
43UINT32 rgum_state::screen_update_royalgum(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
4344{
44   rgum_state *state = screen.machine().driver_data<rgum_state>();
4545   int x,y,count;
4646   gfx_element *gfx = screen.machine().gfx[0];
4747
r17967r17968
5151   {
5252      for(x=0;x<66;x++)
5353      {
54         int tile = state->m_vram[count] | ((state->m_cram[count] & 0xf) <<8);
54         int tile = m_vram[count] | ((m_cram[count] & 0xf) <<8);
5555
5656         drawgfx_opaque(bitmap,cliprect,gfx,tile,0,0,0,x*8,y*8);
5757
r17967r17968
276276   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
277277   MCFG_SCREEN_SIZE(256, 256)
278278   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1)
279   MCFG_SCREEN_UPDATE_STATIC(royalgum)
279   MCFG_SCREEN_UPDATE_DRIVER(rgum_state, screen_update_royalgum)
280280
281281   MCFG_MC6845_ADD("crtc", MC6845, 24000000/16, mc6845_intf)   /* unknown clock & type, hand tuned to get ~50 fps (?) */
282282
trunk/src/mame/drivers/surpratk.c
r17967r17968
241241   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
242242   MCFG_SCREEN_SIZE(64*8, 32*8)
243243   MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
244   MCFG_SCREEN_UPDATE_STATIC(surpratk)
244   MCFG_SCREEN_UPDATE_DRIVER(surpratk_state, screen_update_surpratk)
245245
246246   MCFG_PALETTE_LENGTH(2048)
247247
trunk/src/mame/drivers/zaccaria.c
r17967r17968
606606   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
607607   MCFG_SCREEN_SIZE(32*8, 32*8)
608608   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
609   MCFG_SCREEN_UPDATE_STATIC(zaccaria)
609   MCFG_SCREEN_UPDATE_DRIVER(zaccaria_state, screen_update_zaccaria)
610610
611611   MCFG_GFXDECODE(zaccaria)
612612   MCFG_PALETTE_LENGTH(32*8+32*8)
trunk/src/mame/drivers/speedbal.c
r17967r17968
238238   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
239239   MCFG_SCREEN_SIZE(32*8, 32*8)
240240   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
241   MCFG_SCREEN_UPDATE_STATIC(speedbal)
241   MCFG_SCREEN_UPDATE_DRIVER(speedbal_state, screen_update_speedbal)
242242
243243   MCFG_GFXDECODE(speedbal)
244244   MCFG_PALETTE_LENGTH(768)
trunk/src/mame/drivers/jongkyo.c
r17967r17968
5858   virtual void machine_reset();
5959   virtual void video_start();
6060   virtual void palette_init();
61   UINT32 screen_update_jongkyo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6162};
6263
6364
r17967r17968
7273
7374}
7475
75static SCREEN_UPDATE_IND16( jongkyo )
76UINT32 jongkyo_state::screen_update_jongkyo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
7677{
77   jongkyo_state *state = screen.machine().driver_data<jongkyo_state>();
7878   int y;
7979
8080   for (y = 0; y < 256; ++y)
r17967r17968
8888         UINT8 data2;
8989         UINT8 data3;
9090
91   //      data3 = state->m_videoram2[x/4 + y*64]; // wrong
91   //      data3 = m_videoram2[x/4 + y*64]; // wrong
9292
9393   // good mahjong tiles
9494         data3 = 0x0f; // we're missing 2 bits.. there must be another piece of video ram somewhere or we can't use all the colours (6bpp).. banked somehow?
r17967r17968
9797
9898
9999
100         data1 = state->m_videoram[0x4000 + x / 4 + y * 64];
101         data2 = state->m_videoram[x / 4 + y * 64];
100         data1 = m_videoram[0x4000 + x / 4 + y * 64];
101         data2 = m_videoram[x / 4 + y * 64];
102102
103103         for (b = 0; b < 4; ++b)
104104         {
r17967r17968
503503   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
504504   MCFG_SCREEN_SIZE(256, 256)
505505   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 8, 256-8-1)
506   MCFG_SCREEN_UPDATE_STATIC(jongkyo)
506   MCFG_SCREEN_UPDATE_DRIVER(jongkyo_state, screen_update_jongkyo)
507507
508508   MCFG_PALETTE_LENGTH(0x100)
509509
trunk/src/mame/drivers/littlerb.c
r17967r17968
202202      // edfc / fffc alternating (display double buffering?)
203203   }
204204   virtual void video_start();
205   UINT32 screen_update_littlerb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
205206};
206207
207208
r17967r17968
554555
555556
556557/* sprite format / offset could be completely wrong, this is just based on our (currently incorrect) vram access */
557static SCREEN_UPDATE_IND16(littlerb)
558UINT32 littlerb_state::screen_update_littlerb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
558559{
559   littlerb_state *state = screen.machine().driver_data<littlerb_state>();
560560   bitmap.fill(0, cliprect);
561561
562   copybitmap_trans(bitmap, *state->m_temp_bitmap_sprites_back, 0, 0, 0, 0, cliprect, 0);
563   copybitmap_trans(bitmap, *state->m_temp_bitmap_sprites, 0, 0, 0, 0, cliprect, 0);
562   copybitmap_trans(bitmap, *m_temp_bitmap_sprites_back, 0, 0, 0, 0, cliprect, 0);
563   copybitmap_trans(bitmap, *m_temp_bitmap_sprites, 0, 0, 0, 0, cliprect, 0);
564564
565565   return 0;
566566}
r17967r17968
834834   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
835835   MCFG_SCREEN_SIZE(512+22, 312)
836836   MCFG_SCREEN_VISIBLE_AREA(0*8, 336-1, 0*8, 288-1)
837   MCFG_SCREEN_UPDATE_STATIC(littlerb)
837   MCFG_SCREEN_UPDATE_DRIVER(littlerb_state, screen_update_littlerb)
838838
839839
840840   MCFG_PALETTE_LENGTH(0x100)
trunk/src/mame/drivers/tagteam.c
r17967r17968
221221   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(3072))
222222   MCFG_SCREEN_SIZE(32*8, 32*8)
223223   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
224   MCFG_SCREEN_UPDATE_STATIC(tagteam)
224   MCFG_SCREEN_UPDATE_DRIVER(tagteam_state, screen_update_tagteam)
225225
226226   MCFG_GFXDECODE(tagteam)
227227   MCFG_PALETTE_LENGTH(32)
trunk/src/mame/drivers/eolith.c
r17967r17968
592592   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
593593   MCFG_SCREEN_SIZE(512, 262)
594594   MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
595   MCFG_SCREEN_UPDATE_STATIC(eolith)
595   MCFG_SCREEN_UPDATE_DRIVER(eolith_state, screen_update_eolith)
596596
597597   MCFG_PALETTE_INIT(RRRRR_GGGGG_BBBBB)
598598   MCFG_PALETTE_LENGTH(32768)
trunk/src/mame/drivers/namcos23.c
r17967r17968
14341434   DECLARE_MACHINE_START(s23);
14351435   DECLARE_VIDEO_START(ss23);
14361436   DECLARE_MACHINE_RESET(gmen);
1437   UINT32 screen_update_ss23(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
14371438};
14381439
14391440
r17967r17968
24182419   m_render.polymgr = poly_alloc(machine(), 10000, sizeof(namcos23_render_data), 0);
24192420}
24202421
2421static SCREEN_UPDATE_RGB32( ss23 )
2422UINT32 namcos23_state::screen_update_ss23(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
24222423{
2423   namcos23_state *state = screen.machine().driver_data<namcos23_state>();
24242424   bitmap.fill(get_black_pen(screen.machine()), cliprect);
24252425
24262426   render_run( screen.machine(), bitmap );
r17967r17968
24282428   gfx_element *gfx = screen.machine().gfx[0];
24292429   gfx->mark_all_dirty();
24302430
2431   state->m_bgtilemap->draw(bitmap, cliprect, 0/*flags*/, 0/*priority*/ ); /* opaque */
2431   m_bgtilemap->draw(bitmap, cliprect, 0/*flags*/, 0/*priority*/ ); /* opaque */
24322432   return 0;
24332433}
24342434
r17967r17968
31663166   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // Not in any way accurate
31673167   MCFG_SCREEN_SIZE(640, 480)
31683168   MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479)
3169   MCFG_SCREEN_UPDATE_STATIC(ss23)
3169   MCFG_SCREEN_UPDATE_DRIVER(namcos23_state, screen_update_ss23)
31703170
31713171   MCFG_PALETTE_LENGTH(0x8000)
31723172
r17967r17968
32113211   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // Not in any way accurate
32123212   MCFG_SCREEN_SIZE(640, 480)
32133213   MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479)
3214   MCFG_SCREEN_UPDATE_STATIC(ss23)
3214   MCFG_SCREEN_UPDATE_DRIVER(namcos23_state, screen_update_ss23)
32153215
32163216   MCFG_PALETTE_LENGTH(0x8000)
32173217
r17967r17968
32523252   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // Not in any way accurate
32533253   MCFG_SCREEN_SIZE(640, 480)
32543254   MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479)
3255   MCFG_SCREEN_UPDATE_STATIC(ss23)
3255   MCFG_SCREEN_UPDATE_DRIVER(namcos23_state, screen_update_ss23)
32563256
32573257   MCFG_PALETTE_LENGTH(0x8000)
32583258
trunk/src/mame/drivers/commando.c
r17967r17968
260260   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
261261   MCFG_SCREEN_SIZE(32*8, 32*8)
262262   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
263   MCFG_SCREEN_UPDATE_STATIC(commando)
263   MCFG_SCREEN_UPDATE_DRIVER(commando_state, screen_update_commando)
264264   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
265265
266266   MCFG_GFXDECODE(commando)
trunk/src/mame/drivers/atarisy2.c
r17967r17968
12791279
12801280   MCFG_SCREEN_ADD("screen", RASTER)
12811281   MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK/2, 640, 0, 512, 416, 0, 384)
1282   MCFG_SCREEN_UPDATE_STATIC(atarisy2)
1282   MCFG_SCREEN_UPDATE_DRIVER(atarisy2_state, screen_update_atarisy2)
12831283
12841284   MCFG_VIDEO_START_OVERRIDE(atarisy2_state,atarisy2)
12851285
trunk/src/mame/drivers/skydiver.c
r17967r17968
388388   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
389389   MCFG_SCREEN_SIZE(32*8, 32*8)
390390   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
391   MCFG_SCREEN_UPDATE_STATIC(skydiver)
391   MCFG_SCREEN_UPDATE_DRIVER(skydiver_state, screen_update_skydiver)
392392
393393   MCFG_GFXDECODE(skydiver)
394394   MCFG_PALETTE_LENGTH(sizeof(colortable_source) / sizeof(colortable_source[0]))
trunk/src/mame/drivers/ninjakd2.c
r17967r17968
951951   MCFG_SCREEN_REFRESH_RATE(59.61)    /* verified on pcb */
952952   MCFG_SCREEN_SIZE(32*8, 32*8)
953953   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 28*8-1)
954   MCFG_SCREEN_UPDATE_STATIC(ninjakd2)
955   MCFG_SCREEN_VBLANK_STATIC(ninjakd2)
954   MCFG_SCREEN_UPDATE_DRIVER(ninjakd2_state, screen_update_ninjakd2)
955   MCFG_SCREEN_VBLANK_DRIVER(ninjakd2_state, screen_eof_ninjakd2)
956956
957957   MCFG_GFXDECODE(ninjakd2)
958958   MCFG_PALETTE_LENGTH(0x300)
r17967r17968
10211021
10221022   MCFG_VIDEO_START_OVERRIDE(ninjakd2_state,robokid)
10231023   MCFG_SCREEN_MODIFY("screen")
1024   MCFG_SCREEN_UPDATE_STATIC(robokid)
1024   MCFG_SCREEN_UPDATE_DRIVER(ninjakd2_state, screen_update_robokid)
10251025MACHINE_CONFIG_END
10261026
10271027static MACHINE_CONFIG_DERIVED( omegaf, robokid )
r17967r17968
10361036   /* video hardware */
10371037   MCFG_VIDEO_START_OVERRIDE(ninjakd2_state,omegaf)
10381038   MCFG_SCREEN_MODIFY("screen")
1039   MCFG_SCREEN_UPDATE_STATIC(omegaf)
1039   MCFG_SCREEN_UPDATE_DRIVER(ninjakd2_state, screen_update_omegaf)
10401040MACHINE_CONFIG_END
10411041
10421042
trunk/src/mame/drivers/mjsister.c
r17967r17968
6060   virtual void machine_start();
6161   virtual void machine_reset();
6262   virtual void video_start();
63   UINT32 screen_update_mjsister(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6364};
6465
6566
r17967r17968
127128   }
128129}
129130
130static SCREEN_UPDATE_IND16( mjsister )
131UINT32 mjsister_state::screen_update_mjsister(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
131132{
132   mjsister_state *state = screen.machine().driver_data<mjsister_state>();
133   int flip = state->m_flip_screen;
133   int flip = m_flip_screen;
134134   int i, j;
135135
136   if (state->m_screen_redraw)
136   if (m_screen_redraw)
137137   {
138138      int offs;
139139
140140      for (offs = 0; offs < 0x8000; offs++)
141141      {
142         mjsister_plot0(screen.machine(), offs, state->m_videoram0[offs]);
143         mjsister_plot1(screen.machine(), offs, state->m_videoram1[offs]);
142         mjsister_plot0(screen.machine(), offs, m_videoram0[offs]);
143         mjsister_plot1(screen.machine(), offs, m_videoram1[offs]);
144144      }
145      state->m_screen_redraw = 0;
145      m_screen_redraw = 0;
146146   }
147147
148   if (state->m_video_enable)
148   if (m_video_enable)
149149   {
150150      for (i = 0; i < 256; i++)
151151         for (j = 0; j < 4; j++)
152            bitmap.pix16(i, 256 + j) = state->m_colorbank * 0x20;
152            bitmap.pix16(i, 256 + j) = m_colorbank * 0x20;
153153
154      copybitmap(bitmap, *state->m_tmpbitmap0, flip, flip, 0, 0, cliprect);
155      copybitmap_trans(bitmap, *state->m_tmpbitmap1, flip, flip, 2, 0, cliprect, 0);
154      copybitmap(bitmap, *m_tmpbitmap0, flip, flip, 0, 0, cliprect);
155      copybitmap_trans(bitmap, *m_tmpbitmap1, flip, flip, 2, 0, cliprect, 0);
156156   }
157157   else
158158      bitmap.fill(get_black_pen(screen.machine()), cliprect);
r17967r17968
508508   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
509509   MCFG_SCREEN_SIZE(256+4, 256)
510510   MCFG_SCREEN_VISIBLE_AREA(0, 255+4, 8, 247)
511   MCFG_SCREEN_UPDATE_STATIC(mjsister)
511   MCFG_SCREEN_UPDATE_DRIVER(mjsister_state, screen_update_mjsister)
512512
513513   MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
514514   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/yunsung8.c
r17967r17968
515515   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
516516   MCFG_SCREEN_SIZE(512, 256)
517517   MCFG_SCREEN_VISIBLE_AREA(0+64, 512-64-1, 0+8, 256-8-1)
518   MCFG_SCREEN_UPDATE_STATIC(yunsung8)
518   MCFG_SCREEN_UPDATE_DRIVER(yunsung8_state, screen_update_yunsung8)
519519
520520   MCFG_GFXDECODE(yunsung8)
521521   MCFG_PALETTE_LENGTH(2048)
trunk/src/mame/drivers/warpwarp.c
r17967r17968
737737   /* video hardware */
738738   MCFG_SCREEN_ADD("screen", RASTER)
739739   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 272, 264, 0, 224)
740   MCFG_SCREEN_UPDATE_STATIC(geebee)
740   MCFG_SCREEN_UPDATE_DRIVER(warpwarp_state, screen_update_geebee)
741741
742742   MCFG_GFXDECODE(1k)
743743   MCFG_PALETTE_LENGTH(4*2)
r17967r17968
772772   /* video hardware */
773773   MCFG_SCREEN_ADD("screen", RASTER)
774774   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 272, 264, 0, 224)
775   MCFG_SCREEN_UPDATE_STATIC(geebee)
775   MCFG_SCREEN_UPDATE_DRIVER(warpwarp_state, screen_update_geebee)
776776
777777   MCFG_GFXDECODE(color)
778778   MCFG_PALETTE_LENGTH(2*256+1)
trunk/src/mame/drivers/spacefb.c
r17967r17968
345345
346346   MCFG_SCREEN_ADD("screen", RASTER)
347347   MCFG_SCREEN_RAW_PARAMS(SPACEFB_PIXEL_CLOCK, SPACEFB_HTOTAL, SPACEFB_HBEND, SPACEFB_HBSTART, SPACEFB_VTOTAL, SPACEFB_VBEND, SPACEFB_VBSTART)
348   MCFG_SCREEN_UPDATE_STATIC(spacefb)
348   MCFG_SCREEN_UPDATE_DRIVER(spacefb_state, screen_update_spacefb)
349349
350350   /* audio hardware */
351351   MCFG_FRAGMENT_ADD(spacefb_audio)
trunk/src/mame/drivers/m52.c
r17967r17968
405405
406406   MCFG_SCREEN_ADD("screen", RASTER)
407407   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 136, 376, 282, 22, 274)
408   MCFG_SCREEN_UPDATE_STATIC(m52)
408   MCFG_SCREEN_UPDATE_DRIVER(m52_state, screen_update_m52)
409409
410410
411411   /* sound hardware */
trunk/src/mame/drivers/wheelfir.c
r17967r17968
284284   virtual void machine_start();
285285   virtual void machine_reset();
286286   virtual void video_start();
287   UINT32 screen_update_wheelfir(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
288   void screen_eof_wheelfir(screen_device &screen, bool state);
287289};
288290
289291
r17967r17968
574576   m_tmp_bitmap[1] = auto_bitmap_ind16_alloc(machine(), 512, 512);
575577}
576578
577static SCREEN_UPDATE_IND16(wheelfir)
579UINT32 wheelfir_state::screen_update_wheelfir(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
578580{
579   wheelfir_state *state = screen.machine().driver_data<wheelfir_state>();
580581
581582   bitmap.fill(0, cliprect);
582583
583584   for(int y=0;y<NUM_SCANLINES;++y)
584585   {
585      UINT16 *source = &state->m_tmp_bitmap[LAYER_BG]->pix16(( (state->m_scanlines[y].y)&511));
586      UINT16 *source = &m_tmp_bitmap[LAYER_BG]->pix16(( (m_scanlines[y].y)&511));
586587      UINT16 *dest = &bitmap.pix16(y);
587588
588589      for (int x=0;x<336;x++)
589590      {
590591
591         dest[x] = source[ (x+(state->m_scanlines[y].x)) &511];
592         dest[x] = source[ (x+(m_scanlines[y].x)) &511];
592593
593594      }
594595   }
595596
596   copybitmap_trans(bitmap, *state->m_tmp_bitmap[LAYER_FG], 0, 0, 0, 0, cliprect, 0);
597   copybitmap_trans(bitmap, *m_tmp_bitmap[LAYER_FG], 0, 0, 0, 0, cliprect, 0);
597598
598599/*
599600    {
600        state->m_tmp_bitmap[LAYER_BG]->fill(0, screen.visible_area());
601        m_tmp_bitmap[LAYER_BG]->fill(0, screen.visible_area());
601602
602603    }
603604*/
r17967r17968
605606   return 0;
606607}
607608
608static SCREEN_VBLANK( wheelfir )
609void wheelfir_state::screen_eof_wheelfir(screen_device &screen, bool state)
609610{
610611   // rising edge
611   if (vblank_on)
612   if (state)
612613   {
613      wheelfir_state *state = screen.machine().driver_data<wheelfir_state>();
614      state->m_tmp_bitmap[LAYER_FG]->fill(0, screen.visible_area());
614      m_tmp_bitmap[LAYER_FG]->fill(0, screen.visible_area());
615615   }
616616}
617617
r17967r17968
828828   MCFG_SCREEN_REFRESH_RATE(60)
829829   MCFG_SCREEN_SIZE(336, NUM_SCANLINES+NUM_VBLANK_LINES)
830830   MCFG_SCREEN_VISIBLE_AREA(0,335, 0, NUM_SCANLINES-1)
831   MCFG_SCREEN_UPDATE_STATIC(wheelfir)
832   MCFG_SCREEN_VBLANK_STATIC(wheelfir)
831   MCFG_SCREEN_UPDATE_DRIVER(wheelfir_state, screen_update_wheelfir)
832   MCFG_SCREEN_VBLANK_DRIVER(wheelfir_state, screen_eof_wheelfir)
833833
834834   MCFG_PALETTE_LENGTH(NUM_COLORS)
835835
trunk/src/mame/drivers/onetwo.c
r17967r17968
7575   TILE_GET_INFO_MEMBER(get_fg_tile_info);
7676   virtual void machine_start();
7777   virtual void video_start();
78   UINT32 screen_update_onetwo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7879};
7980
8081
r17967r17968
100101   m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(onetwo_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
101102}
102103
103static SCREEN_UPDATE_IND16( onetwo )
104UINT32 onetwo_state::screen_update_onetwo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
104105{
105   onetwo_state *state = screen.machine().driver_data<onetwo_state>();
106   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
106   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
107107   return 0;
108108}
109109
r17967r17968
375375   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(16))
376376   MCFG_SCREEN_SIZE(512, 256)
377377   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
378   MCFG_SCREEN_UPDATE_STATIC(onetwo)
378   MCFG_SCREEN_UPDATE_DRIVER(onetwo_state, screen_update_onetwo)
379379
380380   MCFG_GFXDECODE(onetwo)
381381   MCFG_PALETTE_LENGTH(0x80)
trunk/src/mame/drivers/gng.c
r17967r17968
358358   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
359359   MCFG_SCREEN_SIZE(32*8, 32*8)
360360   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
361   MCFG_SCREEN_UPDATE_STATIC(gng)
361   MCFG_SCREEN_UPDATE_DRIVER(gng_state, screen_update_gng)
362362   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
363363
364364   MCFG_GFXDECODE(gng)
trunk/src/mame/drivers/nbmj8891.c
r17967r17968
26122612   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
26132613   MCFG_SCREEN_SIZE(512, 256)
26142614   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 8, 248-1)
2615   MCFG_SCREEN_UPDATE_STATIC(nbmj8891)
2615   MCFG_SCREEN_UPDATE_DRIVER(nbmj8891_state, screen_update_nbmj8891)
26162616
26172617   MCFG_PALETTE_LENGTH(256)
26182618
trunk/src/mame/drivers/mpu4plasma.c
r17967r17968
3030   {
3131
3232   }
33   UINT32 screen_update_mpu4plasma(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3334};
3435
3536
r17967r17968
4849   AM_RANGE(0xffff04, 0xffff05) AM_WRITE( mpu4plasma_unk_w )
4950ADDRESS_MAP_END
5051
51SCREEN_UPDATE_IND16( mpu4plasma )
52UINT32 mpu4plasma_state::screen_update_mpu4plasma(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
5253{
5354   // don't know if this really gets drawn straight from ram..
54   mpu4plasma_state *state = screen.machine().driver_data<mpu4plasma_state>();
5555   int base = 0x1600 / 2;
5656
57   UINT16* rambase = state->m_plasmaram;
57   UINT16* rambase = m_plasmaram;
5858   UINT16* dst_bitmap;
5959
6060   int i,y,x,p;
r17967r17968
9494   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
9595   MCFG_SCREEN_SIZE(64*8, 32*8)
9696   MCFG_SCREEN_VISIBLE_AREA(0, 128-1, 0*8, 40-1)
97   MCFG_SCREEN_UPDATE_STATIC(mpu4plasma)
97   MCFG_SCREEN_UPDATE_DRIVER(mpu4plasma_state, screen_update_mpu4plasma)
9898
9999   MCFG_PALETTE_LENGTH(0x200)
100100MACHINE_CONFIG_END
trunk/src/mame/drivers/wc90b.c
r17967r17968
381381   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
382382   MCFG_SCREEN_SIZE(32*8, 32*8)
383383   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
384   MCFG_SCREEN_UPDATE_STATIC(wc90b)
384   MCFG_SCREEN_UPDATE_DRIVER(wc90b_state, screen_update_wc90b)
385385
386386   MCFG_GFXDECODE(wc90b)
387387   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/holeland.c
r17967r17968
288288   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
289289   MCFG_SCREEN_SIZE(32*16, 32*16)
290290   MCFG_SCREEN_VISIBLE_AREA(0*16, 32*16-1, 2*16, 30*16-1)
291   MCFG_SCREEN_UPDATE_STATIC(holeland)
291   MCFG_SCREEN_UPDATE_DRIVER(holeland_state, screen_update_holeland)
292292
293293   MCFG_GFXDECODE(holeland)
294294   MCFG_PALETTE_LENGTH(256)
r17967r17968
358358   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
359359   MCFG_SCREEN_SIZE(32*8, 32*8)
360360   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
361   MCFG_SCREEN_UPDATE_STATIC(crzrally)
361   MCFG_SCREEN_UPDATE_DRIVER(holeland_state, screen_update_crzrally)
362362
363363   MCFG_GFXDECODE(crzrally)
364364   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/liberate.c
r17967r17968
840840   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 529ms Vblank duration?? */)
841841   MCFG_SCREEN_SIZE(32*8, 32*8)
842842   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
843   MCFG_SCREEN_UPDATE_STATIC(liberate)
843   MCFG_SCREEN_UPDATE_DRIVER(liberate_state, screen_update_liberate)
844844
845845   MCFG_GFXDECODE(liberate)
846846   MCFG_PALETTE_LENGTH(33)
r17967r17968
870870
871871   MCFG_VIDEO_START_OVERRIDE(liberate_state,boomrang)
872872   MCFG_SCREEN_MODIFY("screen")
873   MCFG_SCREEN_UPDATE_STATIC(boomrang)
873   MCFG_SCREEN_UPDATE_DRIVER(liberate_state, screen_update_boomrang)
874874MACHINE_CONFIG_END
875875
876876static MACHINE_CONFIG_DERIVED( prosoccr, liberate )
r17967r17968
889889
890890   MCFG_SCREEN_MODIFY("screen")
891891   MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 0*8, 32*8-1)
892   MCFG_SCREEN_UPDATE_STATIC(prosoccr)
892   MCFG_SCREEN_UPDATE_DRIVER(liberate_state, screen_update_prosoccr)
893893
894894   MCFG_GFXDECODE(prosoccr)
895895
r17967r17968
919919   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1529) /* 529ms Vblank duration?? */)
920920   MCFG_SCREEN_SIZE(32*8, 32*8)
921921   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
922   MCFG_SCREEN_UPDATE_STATIC(prosport)
922   MCFG_SCREEN_UPDATE_DRIVER(liberate_state, screen_update_prosport)
923923
924924   MCFG_GFXDECODE(prosport)
925925   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/gunsmoke.c
r17967r17968
314314   MCFG_GFXDECODE(gunsmoke)
315315   MCFG_PALETTE_LENGTH(32*4+16*16+16*16)
316316
317   MCFG_SCREEN_UPDATE_STATIC(gunsmoke)
317   MCFG_SCREEN_UPDATE_DRIVER(gunsmoke_state, screen_update_gunsmoke)
318318
319319   /* sound hardware */
320320   MCFG_SPEAKER_STANDARD_MONO("mono")
trunk/src/mame/drivers/truco.c
r17967r17968
469469   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
470470   MCFG_SCREEN_SIZE(256, 192)
471471   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 192-1)
472   MCFG_SCREEN_UPDATE_STATIC(truco)
472   MCFG_SCREEN_UPDATE_DRIVER(truco_state, screen_update_truco)
473473
474474   MCFG_PALETTE_LENGTH(16)
475475
trunk/src/mame/drivers/seta.c
r17967r17968
15951595 Sprites Buffering
15961596
15971597*/
1598static SCREEN_VBLANK( seta_buffer_sprites )
1598void seta_state::screen_eof_seta_buffer_sprites(screen_device &screen, bool state)
15991599{
16001600   // rising edge
1601   if (vblank_on)
1601   if (state)
16021602   {
1603      //seta_state *state = machine.driver_data<seta_state>();
16041603      screen.machine().device<seta001_device>("spritegen")->setac_eof();
16051604   }
16061605}
r17967r17968
74997498   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
75007499   MCFG_SCREEN_SIZE(64*8, 32*8)
75017500   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
7502   MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) /* just draw the sprites */
7501   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
75037502
75047503   MCFG_GFXDECODE(tndrcade)
75057504   MCFG_PALETTE_LENGTH(512)   /* sprites only */
r17967r17968
75497548   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
75507549   MCFG_SCREEN_SIZE(64*8, 32*8)
75517550   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
7552   MCFG_SCREEN_UPDATE_STATIC(seta)
7551   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
75537552
75547553   MCFG_GFXDECODE(downtown)
75557554   MCFG_PALETTE_LENGTH(512)
r17967r17968
75917590   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
75927591   MCFG_SCREEN_SIZE(64*8, 32*8)
75937592   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
7594   MCFG_SCREEN_UPDATE_STATIC(seta)
7593   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
75957594
75967595   MCFG_GFXDECODE(downtown)
75977596   MCFG_PALETTE_LENGTH(512)
r17967r17968
76507649   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
76517650   MCFG_SCREEN_SIZE(64*8, 33*8)
76527651   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
7653   MCFG_SCREEN_UPDATE_STATIC(usclssic)
7652   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_usclssic)
76547653
76557654   MCFG_GFXDECODE(usclssic)
76567655   MCFG_PALETTE_LENGTH(16*32 + 64*32*2)      /* sprites, layer */
r17967r17968
76997698   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
77007699   MCFG_SCREEN_SIZE(64*8, 32*8)
77017700   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
7702   MCFG_SCREEN_UPDATE_STATIC(seta)
7701   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
77037702
77047703   MCFG_GFXDECODE(downtown)
77057704   MCFG_PALETTE_LENGTH(512)
r17967r17968
77397738   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
77407739   MCFG_SCREEN_SIZE(64*8, 32*8)
77417740   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
7742   MCFG_SCREEN_UPDATE_STATIC(seta)
7741   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
77437742
77447743   MCFG_GFXDECODE(downtown)
77457744   MCFG_PALETTE_LENGTH(512)
r17967r17968
77757774   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
77767775   MCFG_SCREEN_SIZE(64*8, 32*8)
77777776   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
7778   MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) /* just draw the sprites */
7777   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
77797778
77807779   MCFG_GFXDECODE(tndrcade)
77817780   MCFG_PALETTE_LENGTH(512)   /* sprites only */
r17967r17968
78177816   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
78187817   MCFG_SCREEN_SIZE(64*8, 32*8)
78197818   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
7820   MCFG_SCREEN_UPDATE_STATIC(seta)
7821   MCFG_SCREEN_VBLANK_STATIC(seta_buffer_sprites)      /* Blandia uses sprite buffering */
7819   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
7820   MCFG_SCREEN_VBLANK_DRIVER(seta_state, screen_eof_seta_buffer_sprites)
78227821
78237822   MCFG_GFXDECODE(blandia)
78247823   MCFG_PALETTE_LENGTH((16*32+64*32*4)*2)   /* sprites, layer1, layer2, palette effect */
r17967r17968
78507849   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
78517850   MCFG_SCREEN_SIZE(64*8, 32*8)
78527851   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
7853   MCFG_SCREEN_UPDATE_STATIC(seta)
7854   MCFG_SCREEN_VBLANK_STATIC(seta_buffer_sprites)      /* Blandia uses sprite buffering */
7852   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
7853   MCFG_SCREEN_VBLANK_DRIVER(seta_state, screen_eof_seta_buffer_sprites)
78557854
78567855   MCFG_GFXDECODE(blandia)
78577856   MCFG_PALETTE_LENGTH((16*32+64*32*4)*2)   /* sprites, layer1, layer2, palette effect */
r17967r17968
78887887   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
78897888   MCFG_SCREEN_SIZE(64*8, 32*8)
78907889   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
7891   MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) /* just draw the sprites */
7890   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
78927891
78937892   MCFG_GFXDECODE(tndrcade)
78947893   MCFG_PALETTE_LENGTH(512)   /* sprites only */
r17967r17968
79247923   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
79257924   MCFG_SCREEN_SIZE(64*8, 32*8)
79267925   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
7927   MCFG_SCREEN_UPDATE_STATIC(seta)
7926   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
79287927
79297928   MCFG_GFXDECODE(msgundam)
79307929   MCFG_PALETTE_LENGTH(512 * 3)   /* sprites, layer1, layer2 */
r17967r17968
79657964   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
79667965   MCFG_SCREEN_SIZE(64*8, 32*8)
79677966   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
7968   MCFG_SCREEN_UPDATE_STATIC(seta)
7969   MCFG_SCREEN_VBLANK_STATIC(seta_buffer_sprites)   /* qzkklogy uses sprite buffering */
7967   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
7968   MCFG_SCREEN_VBLANK_DRIVER(seta_state, screen_eof_seta_buffer_sprites)
79707969
79717970   MCFG_GFXDECODE(downtown)
79727971   MCFG_PALETTE_LENGTH(512)
r17967r17968
80007999   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
80018000   MCFG_SCREEN_SIZE(64*8, 32*8)
80028001   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
8003   MCFG_SCREEN_UPDATE_STATIC(seta)
8004   MCFG_SCREEN_VBLANK_STATIC(seta_buffer_sprites)   /* qzkklogy uses sprite buffering */
8002   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
8003   MCFG_SCREEN_VBLANK_DRIVER(seta_state, screen_eof_seta_buffer_sprites)
80058004
80068005   MCFG_GFXDECODE(qzkklgy2)
80078006   MCFG_PALETTE_LENGTH(512)
r17967r17968
80518050   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
80528051   MCFG_SCREEN_SIZE(64*8, 32*8)
80538052   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
8054   MCFG_SCREEN_UPDATE_STATIC(setaroul)
8055   MCFG_SCREEN_VBLANK_STATIC(setaroul)   /* qzkklogy uses sprite buffering */
8053   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_setaroul)
8054   MCFG_SCREEN_VBLANK_DRIVER(seta_state, screen_eof_setaroul)
80568055
80578056   MCFG_GFXDECODE(setaroul)
80588057   MCFG_PALETTE_LENGTH(512)
r17967r17968
80898088   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
80908089   MCFG_SCREEN_SIZE(64*8, 32*8)
80918090   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
8092   MCFG_SCREEN_UPDATE_STATIC(seta)
8091   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
80938092
80948093   MCFG_GFXDECODE(msgundam)
80958094   MCFG_PALETTE_LENGTH(512 * 3)   /* sprites, layer1, layer2 */
r17967r17968
81308129   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
81318130   MCFG_SCREEN_SIZE(64*8, 32*8)
81328131   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
8133   MCFG_SCREEN_UPDATE_STATIC(seta)
8132   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
81348133
81358134   MCFG_GFXDECODE(zingzip)
81368135   MCFG_PALETTE_LENGTH(16*32+16*32+64*32*2)   /* sprites, layer2, layer1 */
r17967r17968
81918190   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
81928191   MCFG_SCREEN_SIZE(64*8, 32*8)
81938192   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
8194   MCFG_SCREEN_UPDATE_STATIC(seta)
8193   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
81958194
81968195   MCFG_GFXDECODE(jjsquawk)
81978196   MCFG_PALETTE_LENGTH(16*32+64*32*4)   /* sprites, layer2, layer1 */
r17967r17968
82328231   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
82338232   MCFG_SCREEN_SIZE(64*8, 32*8)
82348233   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
8235   MCFG_SCREEN_UPDATE_STATIC(seta)
8234   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
82368235
82378236   MCFG_GFXDECODE(jjsquawk)
82388237   MCFG_PALETTE_LENGTH(16*32+64*32*4)   /* sprites, layer2, layer1 */
r17967r17968
82648263   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
82658264   MCFG_SCREEN_SIZE(64*8, 32*8)
82668265   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
8267   MCFG_SCREEN_UPDATE_STATIC(seta)
8266   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
82688267
82698268   MCFG_GFXDECODE(jjsquawk)
82708269   MCFG_PALETTE_LENGTH(16*32+64*32*4)   /* sprites, layer2, layer1 */
r17967r17968
83058304   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
83068305   MCFG_SCREEN_SIZE(64*8, 32*8)
83078306   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
8308   MCFG_SCREEN_UPDATE_STATIC(seta)
8307   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
83098308
83108309   MCFG_GFXDECODE(msgundam)
83118310   MCFG_PALETTE_LENGTH(512 * 3)   /* sprites, layer2, layer1 */
r17967r17968
83428341   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
83438342   MCFG_SCREEN_SIZE(64*8, 32*8)
83448343   MCFG_SCREEN_VISIBLE_AREA(1*8, 39*8-1, 1*8, 31*8-1)
8345   MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) /* just draw the sprites */
8344   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
83468345
83478346   MCFG_GFXDECODE(orbs)
83488347   MCFG_PALETTE_LENGTH(512)   /* sprites only */
r17967r17968
83808379   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
83818380   MCFG_SCREEN_SIZE(64*8, 32*8)
83828381   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
8383   MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) /* just draw the sprites */
8382   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
83848383
83858384   MCFG_GFXDECODE(orbs)
83868385   MCFG_PALETTE_LENGTH(512)   /* sprites only */
r17967r17968
84168415   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
84178416   MCFG_SCREEN_SIZE(64*8, 32*8)
84188417   MCFG_SCREEN_VISIBLE_AREA(1*8, 39*8-1, 1*8, 31*8-1)
8419   MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) /* just draw the sprites */
8418   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
84208419
84218420   MCFG_GFXDECODE(tndrcade)
84228421   MCFG_PALETTE_LENGTH(512)   /* sprites only */
r17967r17968
84578456   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
84588457   MCFG_SCREEN_SIZE(64*8, 32*8)
84598458   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
8460   MCFG_SCREEN_UPDATE_STATIC(seta)
8459   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
84618460
84628461   MCFG_GFXDECODE(jjsquawk)
84638462   MCFG_PALETTE_LENGTH(16*32+64*32*4)   /* sprites, layer2, layer1 */
r17967r17968
84998498   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
85008499   MCFG_SCREEN_SIZE(64*8, 32*8)
85018500   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
8502   MCFG_SCREEN_UPDATE_STATIC(seta)
8501   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
85038502
85048503   MCFG_GFXDECODE(msgundam)
85058504   MCFG_PALETTE_LENGTH(512 * 3)   /* sprites, layer2, layer1 */
r17967r17968
85458544   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
85468545   MCFG_SCREEN_SIZE(64*8, 32*8)
85478546   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
8548   MCFG_SCREEN_UPDATE_STATIC(seta)
8549   MCFG_SCREEN_VBLANK_STATIC(seta_buffer_sprites)   /* msgundam uses sprite buffering */
8547   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
8548   MCFG_SCREEN_VBLANK_DRIVER(seta_state, screen_eof_seta_buffer_sprites)
85508549
85518550   MCFG_GFXDECODE(msgundam)
85528551   MCFG_PALETTE_LENGTH(512 * 3)   /* sprites, layer2, layer1 */
r17967r17968
85838582   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
85848583   MCFG_SCREEN_SIZE(64*8, 32*8)
85858584   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
8586   MCFG_SCREEN_UPDATE_STATIC(seta)
8585   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
85878586
85888587   MCFG_GFXDECODE(msgundam)
85898588   MCFG_PALETTE_LENGTH(512 * 3)   /* sprites, layer2, layer1 */
r17967r17968
86208619   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
86218620   MCFG_SCREEN_SIZE(64*8, 32*8)
86228621   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
8623   MCFG_SCREEN_UPDATE_STATIC(seta)
8622   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
86248623
86258624   MCFG_GFXDECODE(msgundam)
86268625   MCFG_PALETTE_LENGTH(512 * 3)   /* sprites, layer2, layer1 */
r17967r17968
86558654   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
86568655   MCFG_SCREEN_SIZE(64*8, 32*8)
86578656   MCFG_SCREEN_VISIBLE_AREA(0*8, 56*8-1, 1*8, 31*8-1)
8658   MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) /* just draw the sprites */
8657   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
86598658
86608659   MCFG_GFXDECODE(tndrcade)
86618660   MCFG_PALETTE_LENGTH(512)   /* sprites only */
r17967r17968
86948693   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
86958694   MCFG_SCREEN_SIZE(64*8, 32*8)
86968695   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
8697   MCFG_SCREEN_UPDATE_STATIC(seta)
8696   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
86988697
86998698   MCFG_GFXDECODE(msgundam)
87008699   MCFG_PALETTE_LENGTH(512 * 3)   /* sprites, layer1, layer2 */
r17967r17968
87338732   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
87348733   MCFG_SCREEN_SIZE(64*8, 32*8)
87358734   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
8736   MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) /* just draw the sprites */
8735   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
87378736
87388737   MCFG_GFXDECODE(tndrcade)
87398738   MCFG_PALETTE_LENGTH(512)   /* sprites only */
r17967r17968
88048803   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
88058804   MCFG_SCREEN_SIZE(64*8, 32*8)
88068805   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
8807   MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) /* just draw the sprites */
8806   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
88088807
88098808   MCFG_GFXDECODE(wiggie)
88108809   MCFG_PALETTE_LENGTH(512)   /* sprites only */
r17967r17968
88388837   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
88398838   MCFG_SCREEN_SIZE(64*8, 32*8)
88408839   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
8841   MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) /* just draw the sprites */
8840   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
88428841
88438842   MCFG_GFXDECODE(tndrcade)
88448843   MCFG_PALETTE_LENGTH(512)   /* sprites only */
r17967r17968
88748873   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
88758874   MCFG_SCREEN_SIZE(64*8, 32*8)
88768875   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
8877   MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) /* just draw the sprites */
8876   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
88788877
88798878   MCFG_GFXDECODE(tndrcade)
88808879   MCFG_PALETTE_LENGTH(512)
r17967r17968
89148913   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
89158914   MCFG_SCREEN_SIZE(64*8, 32*8)
89168915   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
8917   MCFG_SCREEN_UPDATE_STATIC(seta)
8916   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
89188917
89198918   MCFG_GFXDECODE(msgundam)
89208919   MCFG_PALETTE_LENGTH(512 * 3)   /* sprites, layer2, layer1 */
r17967r17968
89638962   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
89648963   MCFG_SCREEN_SIZE(64*8, 32*8)
89658964   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
8966   MCFG_SCREEN_UPDATE_STATIC(seta)
8965   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
89678966
89688967   MCFG_GFXDECODE(msgundam)
89698968   MCFG_PALETTE_LENGTH(512 * 3)   /* sprites, layer1, layer2 */
r17967r17968
90069005   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
90079006   MCFG_SCREEN_SIZE(64*8, 32*8)
90089007   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
9009   MCFG_SCREEN_UPDATE_STATIC(seta)
9008   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
90109009
90119010   MCFG_GFXDECODE(zingzip)
90129011   MCFG_PALETTE_LENGTH(16*32+16*32+64*32*2)   /* sprites, layer2, layer1 */
r17967r17968
90599058   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
90609059   MCFG_SCREEN_SIZE(64*8, 32*8)
90619060   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
9062   MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) /* just draw the sprites */
9061   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
90639062
90649063   MCFG_GFXDECODE(tndrcade)
90659064   MCFG_PALETTE_LENGTH(2048)   /* sprites only */
r17967r17968
91079106   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
91089107   MCFG_SCREEN_SIZE(64*8, 32*8)
91099108   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
9110   MCFG_SCREEN_UPDATE_STATIC(seta)
9109   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
91119110
91129111   MCFG_GFXDECODE(crazyfgt)
91139112   MCFG_PALETTE_LENGTH(16*32+64*32*4)   /* sprites, layer1, layer2 */
r17967r17968
92049203   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
92059204   MCFG_SCREEN_SIZE(64*8, 32*8)
92069205   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
9207   MCFG_SCREEN_UPDATE_STATIC(inttoote)
9206   MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_inttoote)
92089207
92099208   MCFG_GFXDECODE(inttoote)
92109209   MCFG_PALETTE_LENGTH(512 * 1)
trunk/src/mame/drivers/laserbat.c
r17967r17968
494494   save_item(NAME(m_colorram));
495495}
496496
497static SCREEN_UPDATE_IND16( laserbat )
497UINT32 laserbat_state::screen_update_laserbat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
498498{
499   laserbat_state *state = screen.machine().driver_data<laserbat_state>();
500499   int y;
501500
502   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
501   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
503502
504503   /* update the S2636 chips */
505   bitmap_ind16 &s2636_1_bitmap = s2636_update(state->m_s2636_1, cliprect);
506   bitmap_ind16 &s2636_2_bitmap = s2636_update(state->m_s2636_2, cliprect);
507   bitmap_ind16 &s2636_3_bitmap = s2636_update(state->m_s2636_3, cliprect);
504   bitmap_ind16 &s2636_1_bitmap = s2636_update(m_s2636_1, cliprect);
505   bitmap_ind16 &s2636_2_bitmap = s2636_update(m_s2636_2, cliprect);
506   bitmap_ind16 &s2636_3_bitmap = s2636_update(m_s2636_3, cliprect);
508507
509508   /* copy the S2636 images into the main bitmap */
510509   for (y = cliprect.min_y; y <= cliprect.max_y; y++)
r17967r17968
528527      }
529528   }
530529
531   if (state->m_sprite_enable)
530   if (m_sprite_enable)
532531      drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[1],
533              state->m_sprite_code,
534            state->m_sprite_color,
532              m_sprite_code,
533            m_sprite_color,
535534            0,0,
536            state->m_sprite_x - 6,state->m_sprite_y,0);
535            m_sprite_x - 6,m_sprite_y,0);
537536
538537   return 0;
539538}
r17967r17968
760759   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
761760   MCFG_SCREEN_SIZE(256, 256)
762761   MCFG_SCREEN_VISIBLE_AREA(1*8, 29*8-1, 2*8, 32*8-1)
763   MCFG_SCREEN_UPDATE_STATIC(laserbat)
762   MCFG_SCREEN_UPDATE_DRIVER(laserbat_state, screen_update_laserbat)
764763
765764   MCFG_GFXDECODE(laserbat)
766765   MCFG_PALETTE_LENGTH(1024)
r17967r17968
804803   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
805804   MCFG_SCREEN_SIZE(256, 256)
806805   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 32*8-1)
807   MCFG_SCREEN_UPDATE_STATIC(laserbat)
806   MCFG_SCREEN_UPDATE_DRIVER(laserbat_state, screen_update_laserbat)
808807
809808   MCFG_GFXDECODE(laserbat)
810809   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/tp84.c
r17967r17968
328328   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
329329   MCFG_SCREEN_SIZE(32*8, 32*8)
330330   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
331   MCFG_SCREEN_UPDATE_STATIC(tp84)
331   MCFG_SCREEN_UPDATE_DRIVER(tp84_state, screen_update_tp84)
332332
333333   MCFG_GFXDECODE(tp84)
334334   MCFG_PALETTE_LENGTH(4096)
trunk/src/mame/drivers/vball.c
r17967r17968
419419   MCFG_SCREEN_ADD("screen", RASTER)
420420   MCFG_SCREEN_SIZE(32*8, 32*8)
421421   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 8, 248)   /* based on ddragon driver */
422   MCFG_SCREEN_UPDATE_STATIC(vb)
422   MCFG_SCREEN_UPDATE_DRIVER(vball_state, screen_update_vb)
423423
424424   MCFG_GFXDECODE(vb)
425425   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/naomi.c
r17967r17968
25262526   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
25272527   MCFG_SCREEN_SIZE(640, 480)
25282528   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
2529   MCFG_SCREEN_UPDATE_STATIC(dc)
2529   MCFG_SCREEN_UPDATE_DRIVER(dc_state, screen_update_dc)
25302530
25312531   MCFG_PALETTE_LENGTH(0x1000)
25322532
trunk/src/mame/drivers/cheekyms.c
r17967r17968
139139   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
140140   MCFG_SCREEN_SIZE(32*8, 32*8)
141141   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 28*8-1)
142   MCFG_SCREEN_UPDATE_STATIC(cheekyms)
142   MCFG_SCREEN_UPDATE_DRIVER(cheekyms_state, screen_update_cheekyms)
143143
144144   MCFG_GFXDECODE(cheekyms)
145145   MCFG_PALETTE_LENGTH(0xc0)
trunk/src/mame/drivers/megatech.c
r17967r17968
446446}
447447
448448//attotime::never
449static SCREEN_UPDATE_RGB32(mtnew)
449UINT32 mtech_state::screen_update_mtnew(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
450450{
451   mtech_state *state = screen.machine().driver_data<mtech_state>();
452451
453452   /* if we're running an sms game then use the SMS update.. maybe this should be moved to the megadrive emulation core as compatibility mode is a feature of the chip */
454   if (!state->m_current_game_is_sms)
453   if (!m_current_game_is_sms)
455454      SCREEN_UPDATE32_CALL(megadriv);
456455   else
457456      SCREEN_UPDATE32_CALL(megatech_md_sms);
458457   return 0;
459458}
460459
461static SCREEN_VBLANK(mtnew)
460void mtech_state::screen_eof_mtnew(screen_device &screen, bool state)
462461{
463   mtech_state *state = screen.machine().driver_data<mtech_state>();
464   if (!state->m_current_game_is_sms)
462   bool vblank_on = state;
463   if (!m_current_game_is_sms)
465464      SCREEN_VBLANK_CALL(megadriv);
466465   else
467466      SCREEN_VBLANK_CALL(megatech_md_sms);
r17967r17968
476475   megatech_select_game(machine(), 0);
477476}
478477
479static SCREEN_UPDATE_RGB32( megatech_menu )
478UINT32 mtech_state::screen_update_megatech_menu(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
480479{
481   mtech_state *state = screen.machine().driver_data<mtech_state>();
482   state->m_vdp1->screen_update(screen,bitmap,cliprect);
480   m_vdp1->screen_update(screen,bitmap,cliprect);
483481   return 0;
484482}
485483
r17967r17968
522520   MCFG_SCREEN_RAW_PARAMS(XTAL_10_738635MHz/2, \
523521      SEGA315_5124_WIDTH , SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256, \
524522      SEGA315_5124_HEIGHT_NTSC, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT + 224)
525   MCFG_SCREEN_UPDATE_STATIC( megatech_menu )   /* Combines and copies a bitmap */
523   MCFG_SCREEN_UPDATE_DRIVER(mtech_state, screen_update_megatech_menu)
526524
527525   MCFG_PALETTE_LENGTH(SEGA315_5124_PALETTE_SIZE)
528526   MCFG_PALETTE_INIT(sega315_5124)
r17967r17968
531529
532530
533531   MCFG_SCREEN_MODIFY("megadriv")
534   MCFG_SCREEN_UPDATE_STATIC(mtnew)
535   MCFG_SCREEN_VBLANK_STATIC(mtnew)
532   MCFG_SCREEN_UPDATE_DRIVER(mtech_state, screen_update_mtnew)
533   MCFG_SCREEN_VBLANK_DRIVER(mtech_state, screen_eof_mtnew)
536534
537535   /* sound hardware */
538536   MCFG_SOUND_ADD("sn2", SN76496, MASTER_CLOCK/15)
trunk/src/mame/drivers/timelimt.c
r17967r17968
245245   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
246246   MCFG_SCREEN_SIZE(32*8, 32*8)
247247   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
248   MCFG_SCREEN_UPDATE_STATIC(timelimt)
248   MCFG_SCREEN_UPDATE_DRIVER(timelimt_state, screen_update_timelimt)
249249
250250   MCFG_GFXDECODE(timelimt)
251251   MCFG_PALETTE_LENGTH(64+32)
trunk/src/mame/drivers/champbwl.c
r17967r17968
171171   DECLARE_MACHINE_START(champbwl);
172172   DECLARE_MACHINE_RESET(champbwl);
173173   DECLARE_MACHINE_START(doraemon);
174   UINT32 screen_update_champbwl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
175   UINT32 screen_update_doraemon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
176   void screen_eof_champbwl(screen_device &screen, bool state);
177   void screen_eof_doraemon(screen_device &screen, bool state);
174178};
175179
176180
r17967r17968
452456
453457}
454458
455SCREEN_UPDATE_IND16( champbwl )
459UINT32 champbwl_state::screen_update_champbwl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
456460{
457461   bitmap.fill(0x1f0, cliprect);
458462
r17967r17968
463467   return 0;
464468}
465469
466SCREEN_VBLANK( champbwl )
470void champbwl_state::screen_eof_champbwl(screen_device &screen, bool state)
467471{
468472   // rising edge
469   if (vblank_on)
473   if (state)
470474      screen.machine().device<seta001_device>("spritegen")->tnzs_eof();
471475}
472476
r17967r17968
491495   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
492496   MCFG_SCREEN_SIZE(64*8, 32*8)
493497   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
494   MCFG_SCREEN_UPDATE_STATIC(champbwl)
495   MCFG_SCREEN_VBLANK_STATIC(champbwl)
498   MCFG_SCREEN_UPDATE_DRIVER(champbwl_state, screen_update_champbwl)
499   MCFG_SCREEN_VBLANK_DRIVER(champbwl_state, screen_eof_champbwl)
496500
497501   MCFG_GFXDECODE(champbwl)
498502   MCFG_PALETTE_LENGTH(512)
r17967r17968
511515
512516
513517
514static SCREEN_UPDATE_IND16( doraemon )
518UINT32 champbwl_state::screen_update_doraemon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
515519{
516520   bitmap.fill(0x1f0, cliprect);
517521
r17967r17968
522526   return 0;
523527}
524528
525static SCREEN_VBLANK( doraemon )
529void champbwl_state::screen_eof_doraemon(screen_device &screen, bool state)
526530{
527531   // rising edge
528   if (vblank_on)
532   if (state)
529533      screen.machine().device<seta001_device>("spritegen")->setac_eof();
530534}
531535
r17967r17968
554558   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
555559   MCFG_SCREEN_SIZE(320, 256)
556560   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-16-1)
557   MCFG_SCREEN_UPDATE_STATIC(doraemon)
558   MCFG_SCREEN_VBLANK_STATIC(doraemon)
561   MCFG_SCREEN_UPDATE_DRIVER(champbwl_state, screen_update_doraemon)
562   MCFG_SCREEN_VBLANK_DRIVER(champbwl_state, screen_eof_doraemon)
559563
560564   MCFG_GFXDECODE(champbwl)
561565   MCFG_PALETTE_LENGTH(512)
trunk/src/mame/drivers/vamphalf.c
r17967r17968
164164   DECLARE_DRIVER_INIT(vamphalf);
165165   DECLARE_DRIVER_INIT(wyvernwg);
166166   DECLARE_DRIVER_INIT(luplup);
167   UINT32 screen_update_common(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
168   UINT32 screen_update_aoh(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
167169};
168170
169171READ16_MEMBER(vamphalf_state::eeprom_r)
r17967r17968
752754}
753755
754756
755static SCREEN_UPDATE_IND16( common )
757UINT32 vamphalf_state::screen_update_common(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
756758{
757759   vamphalf_handle_flipped_visible_area(screen);
758760   bitmap.fill(0, cliprect);
r17967r17968
760762   return 0;
761763}
762764
763static SCREEN_UPDATE_IND16( aoh )
765UINT32 vamphalf_state::screen_update_aoh(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
764766{
765767//  vamphalf_handle_flipped_visible_area(screen); // not on this?
766768   bitmap.fill(0, cliprect);
r17967r17968
993995   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
994996   MCFG_SCREEN_SIZE(512, 256)
995997   MCFG_SCREEN_VISIBLE_AREA(31, 350, 16, 251)
996   MCFG_SCREEN_UPDATE_STATIC(common)
998   MCFG_SCREEN_UPDATE_DRIVER(vamphalf_state, screen_update_common)
997999
9981000   MCFG_PALETTE_LENGTH(0x8000)
9991001   MCFG_GFXDECODE(vamphalf)
r17967r17968
11241126   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
11251127   MCFG_SCREEN_SIZE(512, 512)
11261128   MCFG_SCREEN_VISIBLE_AREA(64, 511-64, 16, 255-16)
1127   MCFG_SCREEN_UPDATE_STATIC(aoh)
1129   MCFG_SCREEN_UPDATE_DRIVER(vamphalf_state, screen_update_aoh)
11281130
11291131   MCFG_PALETTE_LENGTH(0x8000)
11301132   MCFG_GFXDECODE(vamphalf)
trunk/src/mame/drivers/bishi.c
r17967r17968
422422   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1200))
423423   MCFG_SCREEN_SIZE(64*8, 32*8)
424424   MCFG_SCREEN_VISIBLE_AREA(29, 29+288-1, 16, 16+224-1)
425   MCFG_SCREEN_UPDATE_STATIC(bishi)
425   MCFG_SCREEN_UPDATE_DRIVER(bishi_state, screen_update_bishi)
426426
427427   MCFG_PALETTE_LENGTH(4096)
428428
trunk/src/mame/drivers/1942.c
r17967r17968
274274   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
275275   MCFG_SCREEN_SIZE(32*8, 32*8)
276276   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
277   MCFG_SCREEN_UPDATE_STATIC(1942)
277   MCFG_SCREEN_UPDATE_DRIVER(_1942_state, screen_update_1942)
278278
279279
280280   /* sound hardware */
trunk/src/mame/drivers/poolshrk.c
r17967r17968
223223   MCFG_SCREEN_REFRESH_RATE(60)
224224   MCFG_SCREEN_SIZE(256, 256)
225225   MCFG_SCREEN_VISIBLE_AREA(1, 255, 24, 255)
226   MCFG_SCREEN_UPDATE_STATIC(poolshrk)
226   MCFG_SCREEN_UPDATE_DRIVER(poolshrk_state, screen_update_poolshrk)
227227
228228   MCFG_GFXDECODE(poolshrk)
229229   MCFG_PALETTE_LENGTH(4)
trunk/src/mame/drivers/mayumi.c
r17967r17968
4545   virtual void machine_start();
4646   virtual void machine_reset();
4747   virtual void video_start();
48   UINT32 screen_update_mayumi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4849};
4950
5051
r17967r17968
7374   m_tilemap->mark_tile_dirty(offset & 0x7ff);
7475}
7576
76static SCREEN_UPDATE_IND16( mayumi )
77UINT32 mayumi_state::screen_update_mayumi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
7778{
78   mayumi_state *state = screen.machine().driver_data<mayumi_state>();
79   state->m_tilemap->draw(bitmap, cliprect, 0, 0);
79   m_tilemap->draw(bitmap, cliprect, 0, 0);
8080   return 0;
8181}
8282
r17967r17968
410410   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
411411   MCFG_SCREEN_SIZE(64*8, 32*8)
412412   MCFG_SCREEN_VISIBLE_AREA(2*8, 62*8-1, 2*8, 30*8-1)
413   MCFG_SCREEN_UPDATE_STATIC(mayumi)
413   MCFG_SCREEN_UPDATE_DRIVER(mayumi_state, screen_update_mayumi)
414414
415415   MCFG_GFXDECODE(mayumi)
416416   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/raiden.c
r17967r17968
267267   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
268268   MCFG_SCREEN_SIZE(32*8, 32*8)
269269   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
270   MCFG_SCREEN_UPDATE_STATIC(raiden)
270   MCFG_SCREEN_UPDATE_DRIVER(raiden_state, screen_update_raiden)
271271   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
272272
273273   MCFG_GFXDECODE(raiden)
trunk/src/mame/drivers/bloodbro.c
r17967r17968
449449   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
450450   MCFG_SCREEN_SIZE(32*8, 32*8)
451451   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
452   MCFG_SCREEN_UPDATE_STATIC(bloodbro)
452   MCFG_SCREEN_UPDATE_DRIVER(bloodbro_state, screen_update_bloodbro)
453453
454454   MCFG_GFXDECODE(bloodbro)
455455   MCFG_PALETTE_LENGTH(2048)
r17967r17968
469469   MCFG_PALETTE_LENGTH(1024)
470470
471471   MCFG_SCREEN_MODIFY("screen")
472   MCFG_SCREEN_UPDATE_STATIC(weststry)
472   MCFG_SCREEN_UPDATE_DRIVER(bloodbro_state, screen_update_weststry)
473473MACHINE_CONFIG_END
474474
475475static MACHINE_CONFIG_DERIVED( skysmash, bloodbro )
r17967r17968
478478   MCFG_CPU_VBLANK_INT("screen", irq2_line_hold)
479479
480480   MCFG_SCREEN_MODIFY("screen")
481   MCFG_SCREEN_UPDATE_STATIC(skysmash)
481   MCFG_SCREEN_UPDATE_DRIVER(bloodbro_state, screen_update_skysmash)
482482MACHINE_CONFIG_END
483483
484484/* ROMs */
trunk/src/mame/drivers/vegaeo.c
r17967r17968
4141   DECLARE_WRITE8_MEMBER(qs1000_p3_w);
4242   DECLARE_DRIVER_INIT(vegaeo);
4343   DECLARE_VIDEO_START(vega);
44   UINT32 screen_update_vega(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4445};
4546
4647READ8_MEMBER( vegaeo_state::qs1000_p1_r )
r17967r17968
194195   m_vega_vram = auto_alloc_array(machine(), UINT32, 0x14000*2/4);
195196}
196197
197static SCREEN_UPDATE_IND16( vega )
198UINT32 vegaeo_state::screen_update_vega(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
198199{
199   vegaeo_state *state = screen.machine().driver_data<vegaeo_state>();
200200   int x,y,count;
201201   int color;
202202
r17967r17968
205205   {
206206      for (x=0;x < 320/4;x++)
207207      {
208         color = state->m_vega_vram[count + (0x14000/4) * (state->m_vega_vbuffer ^ 1)] & 0xff;
208         color = m_vega_vram[count + (0x14000/4) * (m_vega_vbuffer ^ 1)] & 0xff;
209209         bitmap.pix16(y, x*4 + 3) = color;
210210
211         color = (state->m_vega_vram[count + (0x14000/4) * (state->m_vega_vbuffer ^ 1)] & 0xff00) >> 8;
211         color = (m_vega_vram[count + (0x14000/4) * (m_vega_vbuffer ^ 1)] & 0xff00) >> 8;
212212         bitmap.pix16(y, x*4 + 2) = color;
213213
214         color = (state->m_vega_vram[count + (0x14000/4) * (state->m_vega_vbuffer ^ 1)] & 0xff0000) >> 16;
214         color = (m_vega_vram[count + (0x14000/4) * (m_vega_vbuffer ^ 1)] & 0xff0000) >> 16;
215215         bitmap.pix16(y, x*4 + 1) = color;
216216
217         color = (state->m_vega_vram[count + (0x14000/4) * (state->m_vega_vbuffer ^ 1)] & 0xff000000) >> 24;
217         color = (m_vega_vram[count + (0x14000/4) * (m_vega_vbuffer ^ 1)] & 0xff000000) >> 24;
218218         bitmap.pix16(y, x*4 + 0) = color;
219219
220220         count++;
r17967r17968
261261   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
262262   MCFG_SCREEN_SIZE(512, 262)
263263   MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
264   MCFG_SCREEN_UPDATE_STATIC(vega)
264   MCFG_SCREEN_UPDATE_DRIVER(vegaeo_state, screen_update_vega)
265265
266266   MCFG_PALETTE_LENGTH(256)
267267
trunk/src/mame/drivers/galaxia.c
r17967r17968
305305   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
306306   MCFG_SCREEN_SIZE(256, 256)
307307   MCFG_SCREEN_VISIBLE_AREA(0*8, 30*8-1, 2*8, 32*8-1)
308   MCFG_SCREEN_UPDATE_STATIC(galaxia)
308   MCFG_SCREEN_UPDATE_DRIVER(galaxia_state, screen_update_galaxia)
309309
310310   MCFG_GFXDECODE(galaxia)
311311   MCFG_PALETTE_LENGTH(0x18+2)
r17967r17968
345345   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
346346   MCFG_SCREEN_SIZE(256, 256)
347347   MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 32*8-1)
348   MCFG_SCREEN_UPDATE_STATIC(astrowar)
348   MCFG_SCREEN_UPDATE_DRIVER(galaxia_state, screen_update_astrowar)
349349
350350   MCFG_GFXDECODE(astrowar)
351351   MCFG_PALETTE_LENGTH(0x18+2)
trunk/src/mame/drivers/fromanc2.c
r17967r17968
570570   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
571571   MCFG_SCREEN_SIZE(512, 512)
572572   MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1)
573   MCFG_SCREEN_UPDATE_STATIC(fromanc2_left)
573   MCFG_SCREEN_UPDATE_DRIVER(fromanc2_state, screen_update_fromanc2_left)
574574
575575   MCFG_SCREEN_ADD("rscreen", RASTER)
576576   MCFG_SCREEN_REFRESH_RATE(60)
577577   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
578578   MCFG_SCREEN_SIZE(512, 512)
579579   MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1)
580   MCFG_SCREEN_UPDATE_STATIC(fromanc2_right)
580   MCFG_SCREEN_UPDATE_DRIVER(fromanc2_state, screen_update_fromanc2_right)
581581
582582   MCFG_VIDEO_START_OVERRIDE(fromanc2_state,fromanc2)
583583
r17967r17968
620620   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
621621   MCFG_SCREEN_SIZE(512, 512)
622622   MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1)
623   MCFG_SCREEN_UPDATE_STATIC(fromanc2_left)
623   MCFG_SCREEN_UPDATE_DRIVER(fromanc2_state, screen_update_fromanc2_left)
624624
625625   MCFG_SCREEN_ADD("rscreen", RASTER)
626626   MCFG_SCREEN_REFRESH_RATE(60)
627627   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
628628   MCFG_SCREEN_SIZE(512, 512)
629629   MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1)
630   MCFG_SCREEN_UPDATE_STATIC(fromanc2_right)
630   MCFG_SCREEN_UPDATE_DRIVER(fromanc2_state, screen_update_fromanc2_right)
631631
632632   MCFG_VIDEO_START_OVERRIDE(fromanc2_state,fromancr)
633633
r17967r17968
667667   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
668668   MCFG_SCREEN_SIZE(2048, 256)
669669   MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1)
670   MCFG_SCREEN_UPDATE_STATIC(fromanc2_left)
670   MCFG_SCREEN_UPDATE_DRIVER(fromanc2_state, screen_update_fromanc2_left)
671671
672672   MCFG_SCREEN_ADD("rscreen", RASTER)
673673   MCFG_SCREEN_REFRESH_RATE(60)
674674   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
675675   MCFG_SCREEN_SIZE(512, 512)
676676   MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1)
677   MCFG_SCREEN_UPDATE_STATIC(fromanc2_right)
677   MCFG_SCREEN_UPDATE_DRIVER(fromanc2_state, screen_update_fromanc2_right)
678678
679679   MCFG_VIDEO_START_OVERRIDE(fromanc2_state,fromanc4)
680680
trunk/src/mame/drivers/rallyx.c
r17967r17968
923923   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
924924   MCFG_SCREEN_SIZE(36*8, 32*8)
925925   MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 2*8, 30*8-1)
926   MCFG_SCREEN_UPDATE_STATIC(rallyx)
926   MCFG_SCREEN_UPDATE_DRIVER(rallyx_state, screen_update_rallyx)
927927
928928   MCFG_GFXDECODE(rallyx)
929929   MCFG_PALETTE_LENGTH(64*4+4)
r17967r17968
961961   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)   /* frames per second, vblank duration */)
962962   MCFG_SCREEN_SIZE(36*8, 32*8)
963963   MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 2*8, 30*8-1)
964   MCFG_SCREEN_UPDATE_STATIC(jungler)
964   MCFG_SCREEN_UPDATE_DRIVER(rallyx_state, screen_update_jungler)
965965
966966   MCFG_GFXDECODE(jungler)
967967   MCFG_PALETTE_LENGTH(64*4+4+64)
r17967r17968
981981   /* video hardware */
982982   MCFG_VIDEO_START_OVERRIDE(rallyx_state,locomotn)
983983   MCFG_SCREEN_MODIFY("screen")
984   MCFG_SCREEN_UPDATE_STATIC(locomotn)
984   MCFG_SCREEN_UPDATE_DRIVER(rallyx_state, screen_update_locomotn)
985985MACHINE_CONFIG_END
986986
987987
r17967r17968
992992   /* video hardware */
993993   MCFG_SCREEN_MODIFY("screen")
994994   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
995   MCFG_SCREEN_UPDATE_STATIC(locomotn)
995   MCFG_SCREEN_UPDATE_DRIVER(rallyx_state, screen_update_locomotn)
996996   MCFG_VIDEO_START_OVERRIDE(rallyx_state,locomotn)
997997MACHINE_CONFIG_END
998998
r17967r17968
10041004   /* video hardware */
10051005   MCFG_SCREEN_MODIFY("screen")
10061006   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1007   MCFG_SCREEN_UPDATE_STATIC(locomotn)
1007   MCFG_SCREEN_UPDATE_DRIVER(rallyx_state, screen_update_locomotn)
10081008   MCFG_VIDEO_START_OVERRIDE(rallyx_state,commsega)
10091009MACHINE_CONFIG_END
10101010
trunk/src/mame/drivers/gridlee.c
r17967r17968
432432   /* video hardware */
433433   MCFG_SCREEN_ADD("screen", RASTER)
434434   MCFG_SCREEN_RAW_PARAMS(GRIDLEE_PIXEL_CLOCK, GRIDLEE_HTOTAL, GRIDLEE_HBEND, GRIDLEE_HBSTART, GRIDLEE_VTOTAL, GRIDLEE_VBEND, GRIDLEE_VBSTART)
435   MCFG_SCREEN_UPDATE_STATIC(gridlee)
435   MCFG_SCREEN_UPDATE_DRIVER(gridlee_state, screen_update_gridlee)
436436
437437   MCFG_PALETTE_LENGTH(2048)
438438
trunk/src/mame/drivers/bnstars.c
r17967r17968
155155   TILE_GET_INFO_MEMBER(get_ms32_roz1_tile_info);
156156   virtual void machine_reset();
157157   virtual void video_start();
158   UINT32 screen_update_bnstars_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
159   UINT32 screen_update_bnstars_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
158160};
159161
160162
r17967r17968
530532
531533
532534
533static SCREEN_UPDATE_IND16(bnstars_left)
535UINT32 bnstars_state::screen_update_bnstars_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
534536{
535   bnstars_state *state = screen.machine().driver_data<bnstars_state>();
536537
537538   screen.machine().priority_bitmap.fill(0, cliprect);
538539
539540   bitmap.fill(0, cliprect);   /* bg color */
540541
541542
542   state->m_ms32_bg_tilemap[0]->set_scrollx(0, state->m_ms32_bg0_scroll[0x00/4] + state->m_ms32_bg0_scroll[0x08/4] + 0x10 );
543   state->m_ms32_bg_tilemap[0]->set_scrolly(0, state->m_ms32_bg0_scroll[0x0c/4] + state->m_ms32_bg0_scroll[0x14/4] );
544   state->m_ms32_bg_tilemap[0]->draw(bitmap, cliprect, 0,1);
543   m_ms32_bg_tilemap[0]->set_scrollx(0, m_ms32_bg0_scroll[0x00/4] + m_ms32_bg0_scroll[0x08/4] + 0x10 );
544   m_ms32_bg_tilemap[0]->set_scrolly(0, m_ms32_bg0_scroll[0x0c/4] + m_ms32_bg0_scroll[0x14/4] );
545   m_ms32_bg_tilemap[0]->draw(bitmap, cliprect, 0,1);
545546
546547   draw_roz(screen.machine(),bitmap,cliprect,2,0);
547548
548   state->m_ms32_tx_tilemap[0]->set_scrollx(0, state->m_ms32_tx0_scroll[0x00/4] + state->m_ms32_tx0_scroll[0x08/4] + 0x18);
549   state->m_ms32_tx_tilemap[0]->set_scrolly(0, state->m_ms32_tx0_scroll[0x0c/4] + state->m_ms32_tx0_scroll[0x14/4]);
550   state->m_ms32_tx_tilemap[0]->draw(bitmap, cliprect, 0,4);
549   m_ms32_tx_tilemap[0]->set_scrollx(0, m_ms32_tx0_scroll[0x00/4] + m_ms32_tx0_scroll[0x08/4] + 0x18);
550   m_ms32_tx_tilemap[0]->set_scrolly(0, m_ms32_tx0_scroll[0x0c/4] + m_ms32_tx0_scroll[0x14/4]);
551   m_ms32_tx_tilemap[0]->draw(bitmap, cliprect, 0,4);
551552
552553
553   draw_sprites(screen.machine(),bitmap,cliprect, state->m_ms32_spram, 0x20000, 0);
554   draw_sprites(screen.machine(),bitmap,cliprect, m_ms32_spram, 0x20000, 0);
554555
555556   return 0;
556557}
557558
558static SCREEN_UPDATE_IND16(bnstars_right)
559UINT32 bnstars_state::screen_update_bnstars_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
559560{
560   bnstars_state *state = screen.machine().driver_data<bnstars_state>();
561561
562562   screen.machine().priority_bitmap.fill(0, cliprect);
563563
564564   bitmap.fill(0x8000+0, cliprect);   /* bg color */
565565
566566
567   state->m_ms32_bg_tilemap[1]->set_scrollx(0, state->m_ms32_bg1_scroll[0x00/4] + state->m_ms32_bg1_scroll[0x08/4] + 0x10 );
568   state->m_ms32_bg_tilemap[1]->set_scrolly(0, state->m_ms32_bg1_scroll[0x0c/4] + state->m_ms32_bg1_scroll[0x14/4] );
569   state->m_ms32_bg_tilemap[1]->draw(bitmap, cliprect, 0,1);
567   m_ms32_bg_tilemap[1]->set_scrollx(0, m_ms32_bg1_scroll[0x00/4] + m_ms32_bg1_scroll[0x08/4] + 0x10 );
568   m_ms32_bg_tilemap[1]->set_scrolly(0, m_ms32_bg1_scroll[0x0c/4] + m_ms32_bg1_scroll[0x14/4] );
569   m_ms32_bg_tilemap[1]->draw(bitmap, cliprect, 0,1);
570570
571571   draw_roz(screen.machine(),bitmap,cliprect,2,1);
572572
573   state->m_ms32_tx_tilemap[1]->set_scrollx(0, state->m_ms32_tx1_scroll[0x00/4] + state->m_ms32_tx1_scroll[0x08/4] + 0x18);
574   state->m_ms32_tx_tilemap[1]->set_scrolly(0, state->m_ms32_tx1_scroll[0x0c/4] + state->m_ms32_tx1_scroll[0x14/4]);
575   state->m_ms32_tx_tilemap[1]->draw(bitmap, cliprect, 0,4);
573   m_ms32_tx_tilemap[1]->set_scrollx(0, m_ms32_tx1_scroll[0x00/4] + m_ms32_tx1_scroll[0x08/4] + 0x18);
574   m_ms32_tx_tilemap[1]->set_scrolly(0, m_ms32_tx1_scroll[0x0c/4] + m_ms32_tx1_scroll[0x14/4]);
575   m_ms32_tx_tilemap[1]->draw(bitmap, cliprect, 0,4);
576576
577   draw_sprites(screen.machine(),bitmap,cliprect, state->m_ms32_spram+(0x20000/4), 0x20000, 4);
577   draw_sprites(screen.machine(),bitmap,cliprect, m_ms32_spram+(0x20000/4), 0x20000, 4);
578578
579579   return 0;
580580}
r17967r17968
13961396   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
13971397   MCFG_SCREEN_SIZE(40*8, 32*8)
13981398   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
1399   MCFG_SCREEN_UPDATE_STATIC(bnstars_left)
1399   MCFG_SCREEN_UPDATE_DRIVER(bnstars_state, screen_update_bnstars_left)
14001400
14011401   MCFG_SCREEN_ADD("rscreen", RASTER)
14021402   MCFG_SCREEN_REFRESH_RATE(60)
14031403   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
14041404   MCFG_SCREEN_SIZE(40*8, 32*8)
14051405   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
1406   MCFG_SCREEN_UPDATE_STATIC(bnstars_right)
1406   MCFG_SCREEN_UPDATE_DRIVER(bnstars_state, screen_update_bnstars_right)
14071407
14081408
14091409   /* sound hardware */
trunk/src/mame/drivers/dai3wksi.c
r17967r17968
6767   DECLARE_WRITE8_MEMBER(dai3wksi_audio_3_w);
6868   virtual void machine_start();
6969   virtual void machine_reset();
70   UINT32 screen_update_dai3wksi(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
7071};
7172
7273
r17967r17968
128129}
129130
130131
131static SCREEN_UPDATE_RGB32( dai3wksi )
132UINT32 dai3wksi_state::screen_update_dai3wksi(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
132133{
133   dai3wksi_state *state = screen.machine().driver_data<dai3wksi_state>();
134134   offs_t offs;
135135   pen_t pens[8];
136136
137137   dai3wksi_get_pens(pens);
138138
139   for (offs = 0; offs < state->m_dai3wksi_videoram.bytes(); offs++)
139   for (offs = 0; offs < m_dai3wksi_videoram.bytes(); offs++)
140140   {
141141      offs_t i;
142142
143143      UINT8 x = offs << 2;
144144      UINT8 y = offs >> 6;
145      UINT8 data = state->m_dai3wksi_videoram[offs];
145      UINT8 data = m_dai3wksi_videoram[offs];
146146      UINT8 color;
147      int value = (x >> 2) + ((y >> 5) << 6) + 64 * 8 * (state->m_dai3wksi_redterop ? 1 : 0);
147      int value = (x >> 2) + ((y >> 5) << 6) + 64 * 8 * (m_dai3wksi_redterop ? 1 : 0);
148148
149      if (state->m_dai3wksi_redscreen)
149      if (m_dai3wksi_redscreen)
150150      {
151151         color = 0x02;
152152      }
153153      else
154154      {
155         if (state->ioport("IN2")->read() & 0x03)
155         if (ioport("IN2")->read() & 0x03)
156156            color = vr_prom2[value];
157157         else
158158            color = vr_prom1[value];
r17967r17968
162162      {
163163         pen_t pen = (data & (1 << i)) ? pens[color] : pens[0];
164164
165         if (state->m_dai3wksi_flipscreen)
165         if (m_dai3wksi_flipscreen)
166166            bitmap.pix32(255-y, 255-x) = pen;
167167         else
168168            bitmap.pix32(y, x) = pen;
r17967r17968
599599   MCFG_SCREEN_SIZE(256, 256)
600600   MCFG_SCREEN_VISIBLE_AREA(4, 251, 8, 247)
601601   MCFG_SCREEN_REFRESH_RATE(60)
602   MCFG_SCREEN_UPDATE_STATIC(dai3wksi)
602   MCFG_SCREEN_UPDATE_DRIVER(dai3wksi_state, screen_update_dai3wksi)
603603
604604   MCFG_SPEAKER_STANDARD_MONO("mono")
605605
trunk/src/mame/drivers/realbrk.c
r17967r17968
768768   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
769769   MCFG_SCREEN_SIZE(0x140, 0xe0)
770770   MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xe0-1)
771   MCFG_SCREEN_UPDATE_STATIC(realbrk)
771   MCFG_SCREEN_UPDATE_DRIVER(realbrk_state, screen_update_realbrk)
772772
773773   MCFG_GFXDECODE(realbrk)
774774   MCFG_PALETTE_LENGTH(0x8000)
r17967r17968
802802
803803   MCFG_GFXDECODE(dai2kaku)
804804   MCFG_SCREEN_MODIFY("screen")
805   MCFG_SCREEN_UPDATE_STATIC(dai2kaku)
805   MCFG_SCREEN_UPDATE_DRIVER(realbrk_state, screen_update_dai2kaku)
806806MACHINE_CONFIG_END
807807
808808
trunk/src/mame/drivers/diverboy.c
r17967r17968
7070   DECLARE_WRITE8_MEMBER(okibank_w);
7171   virtual void machine_start();
7272   virtual void video_start();
73   UINT32 screen_update_diverboy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7374};
7475
7576
r17967r17968
113114   }
114115}
115116
116static SCREEN_UPDATE_IND16(diverboy)
117UINT32 diverboy_state::screen_update_diverboy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
117118{
118119//  bitmap.fill(get_black_pen(screen.machine()), cliprect);
119120   draw_sprites(screen.machine(), bitmap, cliprect);
r17967r17968
269270   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
270271   MCFG_SCREEN_SIZE(64*8, 32*8)
271272   MCFG_SCREEN_VISIBLE_AREA(0*8+4, 40*8+1, 2*8, 32*8-1)
272   MCFG_SCREEN_UPDATE_STATIC(diverboy)
273   MCFG_SCREEN_UPDATE_DRIVER(diverboy_state, screen_update_diverboy)
273274
274275   MCFG_PALETTE_LENGTH(0x400)
275276
trunk/src/mame/drivers/arcadia.c
r17967r17968
325325   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
326326   MCFG_SCREEN_SIZE(512*2, 262)
327327   MCFG_SCREEN_VISIBLE_AREA((129-8)*2, (449+8-1)*2, 44-8, 244+8-1)
328   MCFG_SCREEN_UPDATE_STATIC(amiga)
328   MCFG_SCREEN_UPDATE_DRIVER(amiga_state, screen_update_amiga)
329329
330330   MCFG_PALETTE_LENGTH(4096)
331331   MCFG_PALETTE_INIT_OVERRIDE(arcadia_amiga_state,amiga)
trunk/src/mame/drivers/carjmbre.c
r17967r17968
217217   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
218218   MCFG_SCREEN_SIZE(32*8, 32*8)
219219   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
220   MCFG_SCREEN_UPDATE_STATIC(carjmbre)
220   MCFG_SCREEN_UPDATE_DRIVER(carjmbre_state, screen_update_carjmbre)
221221
222222   MCFG_GFXDECODE(carjmbre)
223223   MCFG_PALETTE_LENGTH(64)
trunk/src/mame/drivers/vmetal.c
r17967r17968
120120   TILE_GET_INFO_MEMBER(get_vmetal_mid1tilemap_tile_info);
121121   TILE_GET_INFO_MEMBER(get_vmetal_mid2tilemap_tile_info);
122122   DECLARE_VIDEO_START(varia);
123   UINT32 screen_update_varia(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
123124};
124125
125126
r17967r17968
456457   expand_gfx1(machine());
457458}
458459
459static SCREEN_UPDATE_IND16(varia)
460UINT32 vmetal_state::screen_update_varia(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
460461{
461   vmetal_state *state = screen.machine().driver_data<vmetal_state>();
462462
463463   bitmap.fill(get_black_pen(screen.machine()), cliprect);
464464   screen.machine().priority_bitmap.fill(0, cliprect);
465465
466   state->m_mid2tilemap->set_scrollx(0, state->m_vmetal_videoregs[0x06a/2]-64 /*+ state->m_vmetal_videoregs[0x066/2]*/);
467   state->m_mid1tilemap->set_scrollx(0, state->m_vmetal_videoregs[0x07a/2]-64 /*+ state->m_vmetal_videoregs[0x076/2]*/);
468   state->m_texttilemap->set_scrollx(0, -64 /*+ state->m_vmetal_videoregs[0x076/2]*/);
466   m_mid2tilemap->set_scrollx(0, m_vmetal_videoregs[0x06a/2]-64 /*+ m_vmetal_videoregs[0x066/2]*/);
467   m_mid1tilemap->set_scrollx(0, m_vmetal_videoregs[0x07a/2]-64 /*+ m_vmetal_videoregs[0x076/2]*/);
468   m_texttilemap->set_scrollx(0, -64 /*+ m_vmetal_videoregs[0x076/2]*/);
469469
470   state->m_mid2tilemap->set_scrolly(0, -64);
471   state->m_mid1tilemap->set_scrolly(0, -64);
472   state->m_texttilemap->set_scrolly(0, -64);
470   m_mid2tilemap->set_scrolly(0, -64);
471   m_mid1tilemap->set_scrolly(0, -64);
472   m_texttilemap->set_scrolly(0, -64);
473473
474   state->m_mid1tilemap->draw(bitmap, cliprect, 0, 0);
475   state->m_mid2tilemap->draw(bitmap, cliprect, 0, 0);
474   m_mid1tilemap->draw(bitmap, cliprect, 0, 0);
475   m_mid2tilemap->draw(bitmap, cliprect, 0, 0);
476476   metro_draw_sprites(screen.machine(), bitmap, cliprect);
477   state->m_texttilemap->draw(bitmap, cliprect, 0, 0);
477   m_texttilemap->draw(bitmap, cliprect, 0, 0);
478478   return 0;
479479}
480480
r17967r17968
492492   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
493493   MCFG_SCREEN_SIZE(2048, 2048)
494494   MCFG_SCREEN_VISIBLE_AREA(0+64, 319+64, 0+64, 223+64)
495   MCFG_SCREEN_UPDATE_STATIC(varia)
495   MCFG_SCREEN_UPDATE_DRIVER(vmetal_state, screen_update_varia)
496496
497497   MCFG_GFXDECODE(vmetal)
498498   MCFG_PALETTE_LENGTH(0x4000)
trunk/src/mame/drivers/superchs.c
r17967r17968
344344   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
345345   MCFG_SCREEN_SIZE(40*8, 32*8)
346346   MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 2*8, 32*8-1)
347   MCFG_SCREEN_UPDATE_STATIC(superchs)
347   MCFG_SCREEN_UPDATE_DRIVER(superchs_state, screen_update_superchs)
348348
349349   MCFG_GFXDECODE(superchs)
350350   MCFG_PALETTE_LENGTH(8192)
trunk/src/mame/drivers/battlera.c
r17967r17968
245245   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
246246   MCFG_SCREEN_SIZE(32*8, 32*8)
247247   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 30*8-1)
248   MCFG_SCREEN_UPDATE_STATIC(battlera)
248   MCFG_SCREEN_UPDATE_DRIVER(battlera_state, screen_update_battlera)
249249
250250   MCFG_GFXDECODE(battlera)
251251   MCFG_PALETTE_LENGTH(512)
trunk/src/mame/drivers/flower.c
r17967r17968
270270   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
271271   MCFG_SCREEN_SIZE(34*8, 33*8)
272272   MCFG_SCREEN_VISIBLE_AREA(0*8, 34*8-1, 0*8, 28*8-1)
273   MCFG_SCREEN_UPDATE_STATIC(flower)
273   MCFG_SCREEN_UPDATE_DRIVER(flower_state, screen_update_flower)
274274
275275   MCFG_GFXDECODE(flower)
276276
trunk/src/mame/drivers/xain.c
r17967r17968
596596   /* video hardware */
597597   MCFG_SCREEN_ADD("screen", RASTER)
598598   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 8, 248)   /* based on ddragon driver */
599   MCFG_SCREEN_UPDATE_STATIC(xain)
599   MCFG_SCREEN_UPDATE_DRIVER(xain_state, screen_update_xain)
600600
601601   MCFG_GFXDECODE(xain)
602602   MCFG_PALETTE_LENGTH(512)
trunk/src/mame/drivers/namcos1.c
r17967r17968
11111111   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
11121112   MCFG_SCREEN_SIZE(64*8, 64*8)
11131113   MCFG_SCREEN_VISIBLE_AREA(9 + 8*8, 9 + 44*8-1, 2*8, 30*8-1)
1114   MCFG_SCREEN_UPDATE_STATIC(namcos1)
1115   MCFG_SCREEN_VBLANK_STATIC(namcos1)
1114   MCFG_SCREEN_UPDATE_DRIVER(namcos1_state, screen_update_namcos1)
1115   MCFG_SCREEN_VBLANK_DRIVER(namcos1_state, screen_eof_namcos1)
11161116
11171117   MCFG_GFXDECODE(namcos1)
11181118   MCFG_PALETTE_LENGTH(0x2000)
trunk/src/mame/drivers/mrdo.c
r17967r17968
191191   /* video hardware */
192192   MCFG_SCREEN_ADD("screen", RASTER)
193193   MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK/4, 312, 8, 248, 262, 32, 224)
194   MCFG_SCREEN_UPDATE_STATIC(mrdo)
194   MCFG_SCREEN_UPDATE_DRIVER(mrdo_state, screen_update_mrdo)
195195
196196   MCFG_GFXDECODE(mrdo)
197197   MCFG_PALETTE_LENGTH(64*4+16*4)
trunk/src/mame/drivers/gundealr.c
r17967r17968
419419   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
420420   MCFG_SCREEN_SIZE(32*8, 32*8)
421421   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
422   MCFG_SCREEN_UPDATE_STATIC(gundealr)
422   MCFG_SCREEN_UPDATE_DRIVER(gundealr_state, screen_update_gundealr)
423423
424424   MCFG_GFXDECODE(gundealr)
425425   MCFG_PALETTE_LENGTH(512)
trunk/src/mame/drivers/firefox.c
r17967r17968
9898   TILE_GET_INFO_MEMBER(bgtile_get_info);
9999   virtual void machine_start();
100100   virtual void video_start();
101   UINT32 screen_update_firefox(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
101102};
102103
103104
r17967r17968
214215}
215216
216217
217static SCREEN_UPDATE_RGB32( firefox )
218UINT32 firefox_state::screen_update_firefox(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
218219{
219   firefox_state *state = screen.machine().driver_data<firefox_state>();
220220   int sprite;
221221   int gfxtop = screen.visible_area().min_y;
222222
r17967r17968
224224
225225   for( sprite = 0; sprite < 32; sprite++ )
226226   {
227      UINT8 *sprite_data = state->m_spriteram + ( 0x200 * state->m_sprite_bank ) + ( sprite * 16 );
227      UINT8 *sprite_data = m_spriteram + ( 0x200 * m_sprite_bank ) + ( sprite * 16 );
228228      int flags = sprite_data[ 0 ];
229229      int y = sprite_data[ 1 ] + ( 256 * ( ( flags >> 0 ) & 1 ) );
230230      int x = sprite_data[ 2 ] + ( 256 * ( ( flags >> 1 ) & 1 ) );
r17967r17968
245245      }
246246   }
247247
248   state->m_bgtiles->draw(bitmap, cliprect, 0, 0 );
248   m_bgtiles->draw(bitmap, cliprect, 0, 0 );
249249
250250   return 0;
251251}
r17967r17968
716716
717717
718718   MCFG_LASERDISC_22VP931_ADD("laserdisc")
719   MCFG_LASERDISC_OVERLAY_STATIC(64*8, 525, firefox)
719   MCFG_LASERDISC_OVERLAY_DRIVER(64*8, 525, firefox_state, screen_update_firefox)
720720   MCFG_LASERDISC_OVERLAY_CLIP(7*8, 53*8-1, 44, 480+44)
721721
722722   MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc")
trunk/src/mame/drivers/mainevt.c
r17967r17968
469469   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
470470   MCFG_SCREEN_SIZE(64*8, 32*8)
471471   MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
472   MCFG_SCREEN_UPDATE_STATIC(mainevt)
472   MCFG_SCREEN_UPDATE_DRIVER(mainevt_state, screen_update_mainevt)
473473
474474   MCFG_PALETTE_LENGTH(256)
475475
r17967r17968
527527   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
528528   MCFG_SCREEN_SIZE(64*8, 32*8)
529529   MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 )
530   MCFG_SCREEN_UPDATE_STATIC(dv)
530   MCFG_SCREEN_UPDATE_DRIVER(mainevt_state, screen_update_dv)
531531
532532   MCFG_PALETTE_LENGTH(256)
533533
trunk/src/mame/drivers/toki.c
r17967r17968
431431   MCFG_SCREEN_REFRESH_RATE(59.61)    /* verified on pcb */
432432   MCFG_SCREEN_SIZE(32*8, 32*8)
433433   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)   /* verified */
434   MCFG_SCREEN_UPDATE_STATIC(toki)
434   MCFG_SCREEN_UPDATE_DRIVER(toki_state, screen_update_toki)
435435   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
436436
437437   MCFG_GFXDECODE(toki)
r17967r17968
460460   MCFG_SCREEN_REFRESH_RATE(60)
461461   MCFG_SCREEN_SIZE(32*8, 32*8)
462462   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)   /* verified */
463   MCFG_SCREEN_UPDATE_STATIC(tokib)
463   MCFG_SCREEN_UPDATE_DRIVER(toki_state, screen_update_tokib)
464464   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
465465
466466   MCFG_GFXDECODE(tokib)
trunk/src/mame/drivers/deco156.c
r17967r17968
5454   DECLARE_DRIVER_INIT(hvysmsh);
5555   DECLARE_DRIVER_INIT(wcvol95);
5656   virtual void video_start();
57   UINT32 screen_update_wcvol95(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
5758};
5859
5960
r17967r17968
6869}
6970
7071
71static SCREEN_UPDATE_RGB32( wcvol95 )
72UINT32 deco156_state::screen_update_wcvol95(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
7273{
7374   //FIXME: flip_screen_x should not be written!
74   deco156_state *state = screen.machine().driver_data<deco156_state>();
75   state->flip_screen_set_no_update(1);
75   flip_screen_set_no_update(1);
7676
7777   screen.machine().priority_bitmap.fill(0);
7878   bitmap.fill(0);
7979
80   deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
80   deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
8181
82   deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
83   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x800);
84   deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
82   deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
83   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x800);
84   deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
8585   return 0;
8686}
8787
r17967r17968
363363   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
364364   MCFG_SCREEN_SIZE(40*8, 32*8)
365365   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
366   MCFG_SCREEN_UPDATE_STATIC(wcvol95)
366   MCFG_SCREEN_UPDATE_DRIVER(deco156_state, screen_update_wcvol95)
367367
368368   MCFG_GFXDECODE(hvysmsh)
369369   MCFG_PALETTE_LENGTH(1024)
r17967r17968
400400   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
401401   MCFG_SCREEN_SIZE(40*8, 32*8)
402402   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
403   MCFG_SCREEN_UPDATE_STATIC(wcvol95)
403   MCFG_SCREEN_UPDATE_DRIVER(deco156_state, screen_update_wcvol95)
404404
405405   MCFG_GFXDECODE(hvysmsh)
406406   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/dwarfd.c
r17967r17968
349349   virtual void machine_reset();
350350   virtual void video_start();
351351   virtual void palette_init();
352   UINT32 screen_update_dwarfd(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
352353};
353354
354355
r17967r17968
847848}
848849
849850
850static SCREEN_UPDATE_RGB32( dwarfd )
851UINT32 dwarfd_state::screen_update_dwarfd(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
851852{
852853   bitmap.fill(get_black_pen(screen.machine()), cliprect);
853854   drawCrt(screen.machine(), bitmap, cliprect);
r17967r17968
10801081   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
10811082   MCFG_SCREEN_SIZE(272*2, 200+4*8)
10821083   MCFG_SCREEN_VISIBLE_AREA(0, 272*2-1, 0, 200-1)
1083   MCFG_SCREEN_UPDATE_STATIC(dwarfd)
1084   MCFG_SCREEN_UPDATE_DRIVER(dwarfd_state, screen_update_dwarfd)
10841085
10851086   MCFG_GFXDECODE(dwarfd)
10861087   MCFG_PALETTE_LENGTH(0x100)
trunk/src/mame/drivers/renegade.c
r17967r17968
950950   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)*2)  /* not accurate */
951951    MCFG_SCREEN_SIZE(32*8, 32*8)
952952    MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 0, 30*8-1)
953    MCFG_SCREEN_UPDATE_STATIC(renegade)
953   MCFG_SCREEN_UPDATE_DRIVER(renegade_state, screen_update_renegade)
954954
955955    MCFG_GFXDECODE(renegade)
956956    MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/junofrst.c
r17967r17968
451451   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
452452   MCFG_SCREEN_SIZE(32*8, 32*8)
453453   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)   /* not sure about the visible area */
454   MCFG_SCREEN_UPDATE_STATIC(tutankhm)
454   MCFG_SCREEN_UPDATE_DRIVER(junofrst_state, screen_update_tutankhm)
455455
456456   /* sound hardware */
457457   MCFG_SPEAKER_STANDARD_MONO("mono")
trunk/src/mame/drivers/caswin.c
r17967r17968
6868   TILE_GET_INFO_MEMBER(get_sc0_tile_info);
6969   virtual void video_start();
7070   virtual void palette_init();
71   UINT32 screen_update_vvillage(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7172};
7273
7374
r17967r17968
8990   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);
9091}
9192
92static SCREEN_UPDATE_IND16(vvillage)
93UINT32 caswin_state::screen_update_vvillage(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
9394{
94   caswin_state *state = screen.machine().driver_data<caswin_state>();
95   state->m_sc0_tilemap->draw(bitmap, cliprect, 0,0);
95   m_sc0_tilemap->draw(bitmap, cliprect, 0,0);
9696   return 0;
9797}
9898
r17967r17968
313313   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
314314   MCFG_SCREEN_SIZE(256, 256)
315315   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1)
316   MCFG_SCREEN_UPDATE_STATIC(vvillage)
316   MCFG_SCREEN_UPDATE_DRIVER(caswin_state, screen_update_vvillage)
317317
318318   MCFG_NVRAM_ADD_0FILL("nvram")
319319
trunk/src/mame/drivers/nbmj8688.c
r17967r17968
29212921   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
29222922   MCFG_SCREEN_SIZE(512, 256)
29232923   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 240-1)
2924   MCFG_SCREEN_UPDATE_STATIC(mbmj8688)
2924   MCFG_SCREEN_UPDATE_DRIVER(nbmj8688_state, screen_update_mbmj8688)
29252925
29262926   MCFG_PALETTE_LENGTH(4096)
29272927
r17967r17968
30373037   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
30383038   MCFG_SCREEN_SIZE(512, 256)
30393039   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 240-1)
3040   MCFG_SCREEN_UPDATE_STATIC(mbmj8688)
3040   MCFG_SCREEN_UPDATE_DRIVER(nbmj8688_state, screen_update_mbmj8688)
30413041
30423042   MCFG_SCREEN_ADD("lcd0", RASTER)
30433043   MCFG_SCREEN_REFRESH_RATE(60)
30443044   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
30453045   MCFG_SCREEN_SIZE(480, 64)
30463046   MCFG_SCREEN_VISIBLE_AREA(0, 480-1, 0, 64-1)
3047   MCFG_SCREEN_UPDATE_STATIC(mbmj8688_lcd0)
3047   MCFG_SCREEN_UPDATE_DRIVER(nbmj8688_state, screen_update_mbmj8688_lcd0)
30483048
30493049   MCFG_SCREEN_ADD("lcd1", RASTER)
30503050   MCFG_SCREEN_REFRESH_RATE(60)
30513051   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
30523052   MCFG_SCREEN_SIZE(480, 64)
30533053   MCFG_SCREEN_VISIBLE_AREA(0, 480-1, 0, 64-1)
3054   MCFG_SCREEN_UPDATE_STATIC(mbmj8688_lcd1)
3054   MCFG_SCREEN_UPDATE_DRIVER(nbmj8688_state, screen_update_mbmj8688_lcd1)
30553055
30563056   MCFG_VIDEO_START_OVERRIDE(nbmj8688_state,mbmj8688_pure_16bit_LCD)
30573057
trunk/src/mame/drivers/hitpoker.c
r17967r17968
8181   DECLARE_READ8_MEMBER(test_r);
8282   DECLARE_DRIVER_INIT(hitpoker);
8383   virtual void video_start();
84   UINT32 screen_update_hitpoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8485};
8586
8687
r17967r17968
9394   m_colorram = auto_alloc_array(machine(), UINT8, 0x2000);
9495}
9596
96static SCREEN_UPDATE_IND16(hitpoker)
97UINT32 hitpoker_state::screen_update_hitpoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
9798{
98   hitpoker_state *state = screen.machine().driver_data<hitpoker_state>();
9999   int count = 0;
100100   int y,x;
101101
r17967r17968
107107      {
108108         int tile,color,gfx_bpp;
109109
110         tile = (((state->m_videoram[count]<<8)|(state->m_videoram[count+1])) & 0x3fff);
111         gfx_bpp = (state->m_colorram[count] & 0x80)>>7; //flag between 4 and 8 bpp
112         color = gfx_bpp ? ((state->m_colorram[count] & 0x70)>>4) : (state->m_colorram[count] & 0xf);
110         tile = (((m_videoram[count]<<8)|(m_videoram[count+1])) & 0x3fff);
111         gfx_bpp = (m_colorram[count] & 0x80)>>7; //flag between 4 and 8 bpp
112         color = gfx_bpp ? ((m_colorram[count] & 0x70)>>4) : (m_colorram[count] & 0xf);
113113
114114         drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[gfx_bpp],tile,color,0,0,x*8,y*8);
115115
r17967r17968
505505   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // not accurate
506506   MCFG_SCREEN_SIZE(648, 480) //setted by the CRTC
507507   MCFG_SCREEN_VISIBLE_AREA(0, 648-1, 0, 240-1)
508   MCFG_SCREEN_UPDATE_STATIC(hitpoker)
508   MCFG_SCREEN_UPDATE_DRIVER(hitpoker_state, screen_update_hitpoker)
509509
510510   MCFG_MC6845_ADD("crtc", H46505, CRTC_CLOCK/2, mc6845_intf)   /* hand tuned to get ~60 fps */
511511
trunk/src/mame/drivers/taito_h.c
r17967r17968
582582   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
583583   MCFG_SCREEN_SIZE(64*16, 64*16)
584584   MCFG_SCREEN_VISIBLE_AREA(0*16, 32*16-1, 3*16, 28*16-1)
585   MCFG_SCREEN_UPDATE_STATIC(syvalion)
585   MCFG_SCREEN_UPDATE_DRIVER(taitoh_state, screen_update_syvalion)
586586
587587   MCFG_GFXDECODE(syvalion)
588588   MCFG_PALETTE_LENGTH(33*16)
r17967r17968
623623   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
624624   MCFG_SCREEN_SIZE(64*16, 64*16)
625625   MCFG_SCREEN_VISIBLE_AREA(1*16, 21*16-1, 2*16, 17*16-1)
626   MCFG_SCREEN_UPDATE_STATIC(recordbr)
626   MCFG_SCREEN_UPDATE_DRIVER(taitoh_state, screen_update_recordbr)
627627
628628   MCFG_GFXDECODE(recordbr)
629629   MCFG_PALETTE_LENGTH(32*16)
r17967r17968
664664   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
665665   MCFG_SCREEN_SIZE(64*16, 64*16)
666666   MCFG_SCREEN_VISIBLE_AREA(1*16, 21*16-1, 2*16, 17*16-1)
667   MCFG_SCREEN_UPDATE_STATIC(dleague)
667   MCFG_SCREEN_UPDATE_DRIVER(taitoh_state, screen_update_dleague)
668668
669669   MCFG_GFXDECODE(dleague)
670670   MCFG_PALETTE_LENGTH(33*16)
trunk/src/mame/drivers/ginganin.c
r17967r17968
275275   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
276276   MCFG_SCREEN_SIZE(256, 256)
277277   MCFG_SCREEN_VISIBLE_AREA(0, 255, 0 + 16 , 255 - 16)
278   MCFG_SCREEN_UPDATE_STATIC(ginganin)
278   MCFG_SCREEN_UPDATE_DRIVER(ginganin_state, screen_update_ginganin)
279279
280280   MCFG_GFXDECODE(ginganin)
281281   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/tail2nos.c
r17967r17968
251251   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
252252   MCFG_SCREEN_SIZE(64*8, 32*8)
253253   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
254   MCFG_SCREEN_UPDATE_STATIC(tail2nos)
254   MCFG_SCREEN_UPDATE_DRIVER(tail2nos_state, screen_update_tail2nos)
255255
256256   MCFG_GFXDECODE(tail2nos)
257257   MCFG_PALETTE_LENGTH(2048)
trunk/src/mame/drivers/m79amb.c
r17967r17968
7878   DECLARE_READ8_MEMBER(gray5bit_controller1_r);
7979   DECLARE_WRITE8_MEMBER(m79amb_8002_w);
8080   DECLARE_DRIVER_INIT(m79amb);
81   UINT32 screen_update_ramtek(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
8182};
8283
8384
r17967r17968
8687   m_videoram[offset] = data & ~*m_mask;
8788}
8889
89static SCREEN_UPDATE_RGB32( ramtek )
90UINT32 m79amb_state::screen_update_ramtek(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
9091{
91   m79amb_state *state = screen.machine().driver_data<m79amb_state>();
9292   offs_t offs;
9393
9494   for (offs = 0; offs < 0x2000; offs++)
9595   {
9696      int i;
9797
98      UINT8 data = state->m_videoram[offs];
98      UINT8 data = m_videoram[offs];
9999      int y = offs >> 5;
100100      int x = (offs & 0x1f) << 3;
101101
r17967r17968
220220   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
221221   MCFG_SCREEN_SIZE(32*8, 32*8)
222222   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 32*8-1)
223   MCFG_SCREEN_UPDATE_STATIC(ramtek)
223   MCFG_SCREEN_UPDATE_DRIVER(m79amb_state, screen_update_ramtek)
224224
225225   /* sound hardware */
226226   MCFG_SPEAKER_STANDARD_MONO("mono")
trunk/src/mame/drivers/mrjong.c
r17967r17968
209209   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
210210   MCFG_SCREEN_SIZE(32*8, 32*8)
211211   MCFG_SCREEN_VISIBLE_AREA(0*8, 30*8-1, 2*8, 30*8-1)
212   MCFG_SCREEN_UPDATE_STATIC(mrjong)
212   MCFG_SCREEN_UPDATE_DRIVER(mrjong_state, screen_update_mrjong)
213213
214214   MCFG_GFXDECODE(mrjong)
215215   MCFG_PALETTE_LENGTH(4*32)
trunk/src/mame/drivers/slapshot.c
r17967r17968
559559   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
560560   MCFG_SCREEN_SIZE(40*8, 32*8)
561561   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
562   MCFG_SCREEN_UPDATE_STATIC(slapshot)
563   MCFG_SCREEN_VBLANK_STATIC(taito_no_buffer)
562   MCFG_SCREEN_UPDATE_DRIVER(slapshot_state, screen_update_slapshot)
563   MCFG_SCREEN_VBLANK_DRIVER(slapshot_state, screen_eof_taito_no_buffer)
564564
565565   MCFG_GFXDECODE(slapshot)
566566   MCFG_PALETTE_LENGTH(8192)
r17967r17968
605605   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
606606   MCFG_SCREEN_SIZE(40*8, 32*8)
607607   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
608   MCFG_SCREEN_UPDATE_STATIC(slapshot)
609   MCFG_SCREEN_VBLANK_STATIC(taito_no_buffer)
608   MCFG_SCREEN_UPDATE_DRIVER(slapshot_state, screen_update_slapshot)
609   MCFG_SCREEN_VBLANK_DRIVER(slapshot_state, screen_eof_taito_no_buffer)
610610
611611   MCFG_GFXDECODE(slapshot)
612612   MCFG_PALETTE_LENGTH(8192)
trunk/src/mame/drivers/meritm.c
r17967r17968
239239   DECLARE_MACHINE_START(meritm_crt250_crt252_crt258);
240240   DECLARE_MACHINE_START(meritm_crt260);
241241   DECLARE_MACHINE_START(merit_common);
242   UINT32 screen_update_meritm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
242243};
243244
244245
r17967r17968
461462   state_save_register_global(machine(), m_interrupt_vdp1_state);
462463}
463464
464static SCREEN_UPDATE_IND16( meritm )
465UINT32 meritm_state::screen_update_meritm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
465466{
466   meritm_state *state = screen.machine().driver_data<meritm_state>();
467467   if(screen.machine().input().code_pressed_once(KEYCODE_Q))
468468   {
469      state->m_layer0_enabled^=1;
470      popmessage("Layer 0 %sabled",state->m_layer0_enabled ? "en" : "dis");
469      m_layer0_enabled^=1;
470      popmessage("Layer 0 %sabled",m_layer0_enabled ? "en" : "dis");
471471   }
472472   if(screen.machine().input().code_pressed_once(KEYCODE_W))
473473   {
474      state->m_layer1_enabled^=1;
475      popmessage("Layer 1 %sabled",state->m_layer1_enabled ? "en" : "dis");
474      m_layer1_enabled^=1;
475      popmessage("Layer 1 %sabled",m_layer1_enabled ? "en" : "dis");
476476   }
477477
478478   bitmap.fill(get_black_pen(screen.machine()), cliprect);
479479
480   if ( state->m_layer0_enabled )
480   if ( m_layer0_enabled )
481481   {
482      copybitmap(bitmap, state->m_v9938_0->get_bitmap(), 0, 0, 0, 0, cliprect);
482      copybitmap(bitmap, m_v9938_0->get_bitmap(), 0, 0, 0, 0, cliprect);
483483   }
484484
485   if ( state->m_layer1_enabled )
485   if ( m_layer1_enabled )
486486   {
487      copybitmap_trans(bitmap, state->m_v9938_1->get_bitmap(), 0, 0, -6, -12, cliprect, state->m_v9938_1->get_transpen());
487      copybitmap_trans(bitmap, m_v9938_1->get_bitmap(), 0, 0, -6, -12, cliprect, m_v9938_1->get_transpen());
488488   }
489489   return 0;
490490}
r17967r17968
11981198
11991199   MCFG_SCREEN_SIZE(MSX2_TOTAL_XRES_PIXELS, 262*2)
12001200   MCFG_SCREEN_VISIBLE_AREA(MSX2_XBORDER_PIXELS - MSX2_VISIBLE_XBORDER_PIXELS, MSX2_TOTAL_XRES_PIXELS - MSX2_XBORDER_PIXELS + MSX2_VISIBLE_XBORDER_PIXELS - 1, MSX2_YBORDER_PIXELS - MSX2_VISIBLE_YBORDER_PIXELS, MSX2_TOTAL_YRES_PIXELS - MSX2_YBORDER_PIXELS + MSX2_VISIBLE_YBORDER_PIXELS - 1)
1201   MCFG_SCREEN_UPDATE_STATIC(meritm)
1201   MCFG_SCREEN_UPDATE_DRIVER(meritm_state, screen_update_meritm)
12021202   MCFG_PALETTE_LENGTH(512)
12031203
12041204   MCFG_PALETTE_INIT( v9938 )
trunk/src/mame/drivers/koftball.c
r17967r17968
6565   TILE_GET_INFO_MEMBER(get_t1_tile_info);
6666   TILE_GET_INFO_MEMBER(get_t2_tile_info);
6767   virtual void video_start();
68   UINT32 screen_update_koftball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6869};
6970
7071
r17967r17968
9697   m_tilemap_1->set_transparent_pen(0);
9798}
9899
99static SCREEN_UPDATE_IND16( koftball )
100UINT32 koftball_state::screen_update_koftball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
100101{
101   koftball_state *state = screen.machine().driver_data<koftball_state>();
102   state->m_tilemap_2->draw(bitmap, cliprect, 0, 0);
103   state->m_tilemap_1->draw(bitmap, cliprect, 0, 0);
102   m_tilemap_2->draw(bitmap, cliprect, 0, 0);
103   m_tilemap_1->draw(bitmap, cliprect, 0, 0);
104104   return 0;
105105}
106106
r17967r17968
248248   MCFG_SCREEN_ADD("screen", RASTER)
249249   MCFG_SCREEN_REFRESH_RATE(60)
250250   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
251   MCFG_SCREEN_UPDATE_STATIC(koftball)
251   MCFG_SCREEN_UPDATE_DRIVER(koftball_state, screen_update_koftball)
252252
253253   MCFG_GFXDECODE(koftball)
254254
trunk/src/mame/drivers/victory.c
r17967r17968
224224   MCFG_SCREEN_ADD("screen", RASTER)
225225   /* using the standard Exidy video parameters for now, needs to be confirmed */
226226   MCFG_SCREEN_RAW_PARAMS(VICTORY_PIXEL_CLOCK, VICTORY_HTOTAL, VICTORY_HBEND, VICTORY_HBSTART, VICTORY_VTOTAL, VICTORY_VBEND, VICTORY_VBSTART)
227   MCFG_SCREEN_UPDATE_STATIC(victory)
227   MCFG_SCREEN_UPDATE_DRIVER(victory_state, screen_update_victory)
228228
229229   MCFG_PALETTE_LENGTH(64)
230230
trunk/src/mame/drivers/atarisy4.c
r17967r17968
5858   virtual void video_start();
5959   virtual void video_reset();
6060   DECLARE_MACHINE_RESET(airrace);
61   UINT32 screen_update_atarisy4(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
6162};
6263
6364
r17967r17968
155156   gpu.vblank_wait = 0;
156157}
157158
158static SCREEN_UPDATE_RGB32( atarisy4 )
159UINT32 atarisy4_state::screen_update_atarisy4(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
159160{
160   atarisy4_state *state = screen.machine().driver_data<atarisy4_state>();
161161   int y;
162162   UINT32 offset = 0;
163163
r17967r17968
174174
175175   for (y = cliprect.min_y; y <= cliprect.max_y; ++y)
176176   {
177      UINT16 *src = &state->m_screen_ram[(offset + (4096 * y)) / 2];
177      UINT16 *src = &m_screen_ram[(offset + (4096 * y)) / 2];
178178      UINT32 *dest = &bitmap.pix32(y, cliprect.min_x);
179179      int x;
180180
r17967r17968
740740   MCFG_SCREEN_ADD("screen", RASTER)
741741   MCFG_SCREEN_RAW_PARAMS(32000000/2, 660, 0, 512, 404, 0, 384)
742742   MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
743   MCFG_SCREEN_UPDATE_STATIC(atarisy4)
743   MCFG_SCREEN_UPDATE_DRIVER(atarisy4_state, screen_update_atarisy4)
744744   MCFG_PALETTE_LENGTH(256)
745745
746746MACHINE_CONFIG_END
trunk/src/mame/drivers/lucky74.c
r17967r17968
13791379   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
13801380   MCFG_SCREEN_SIZE(64*8, 32*8)
13811381   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 1*8, 30*8-1)
1382   MCFG_SCREEN_UPDATE_STATIC(lucky74)
1382   MCFG_SCREEN_UPDATE_DRIVER(lucky74_state, screen_update_lucky74)
13831383
13841384   MCFG_GFXDECODE(lucky74)
13851385
trunk/src/mame/drivers/wardner.c
r17967r17968
414414
415415   MCFG_SCREEN_ADD("screen", RASTER)
416416   MCFG_SCREEN_RAW_PARAMS(XTAL_14MHz/2, 446, 0, 320, 286, 0, 240)
417   MCFG_SCREEN_UPDATE_STATIC(toaplan0)
417   MCFG_SCREEN_UPDATE_DRIVER(wardner_state, screen_update_toaplan0)
418418   MCFG_SCREEN_VBLANK_DEVICE("spriteram8", buffered_spriteram8_device, vblank_copy_rising)
419419
420420   MCFG_GFXDECODE(wardner)
trunk/src/mame/drivers/cninja.c
r17967r17968
919919   MCFG_SCREEN_REFRESH_RATE(58)
920920   MCFG_SCREEN_SIZE(32*8, 32*8)
921921   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
922   MCFG_SCREEN_UPDATE_STATIC(cninja)
922   MCFG_SCREEN_UPDATE_DRIVER(cninja_state, screen_update_cninja)
923923
924924   MCFG_GFXDECODE(cninja)
925925   MCFG_PALETTE_LENGTH(2048)
r17967r17968
971971   MCFG_SCREEN_REFRESH_RATE(58)
972972   MCFG_SCREEN_SIZE(32*8, 32*8)
973973   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
974   MCFG_SCREEN_UPDATE_STATIC(cninja)
974   MCFG_SCREEN_UPDATE_DRIVER(cninja_state, screen_update_cninja)
975975
976976   MCFG_GFXDECODE(cninja)
977977   MCFG_PALETTE_LENGTH(2048)
r17967r17968
10231023   MCFG_SCREEN_REFRESH_RATE(58)
10241024   MCFG_SCREEN_SIZE(32*8, 32*8)
10251025   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
1026   MCFG_SCREEN_UPDATE_STATIC(cninjabl)
1026   MCFG_SCREEN_UPDATE_DRIVER(cninja_state, screen_update_cninjabl)
10271027
10281028   MCFG_GFXDECODE(cninjabl)
10291029   MCFG_PALETTE_LENGTH(2048)
r17967r17968
10661066   MCFG_SCREEN_REFRESH_RATE(58)
10671067   MCFG_SCREEN_SIZE(32*8, 32*8)
10681068   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
1069   MCFG_SCREEN_UPDATE_STATIC(edrandy)
1069   MCFG_SCREEN_UPDATE_DRIVER(cninja_state, screen_update_edrandy)
10701070
10711071   MCFG_GFXDECODE(cninja)
10721072   MCFG_PALETTE_LENGTH(2048)
r17967r17968
11181118   MCFG_SCREEN_REFRESH_RATE(60)
11191119   MCFG_SCREEN_SIZE(40*8, 32*8)
11201120   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
1121   MCFG_SCREEN_UPDATE_STATIC(robocop2)
1121   MCFG_SCREEN_UPDATE_DRIVER(cninja_state, screen_update_robocop2)
11221122
11231123   MCFG_GFXDECODE(robocop2)
11241124   MCFG_PALETTE_LENGTH(2048)
r17967r17968
11711171   MCFG_SCREEN_REFRESH_RATE(60)
11721172   MCFG_SCREEN_SIZE(40*8, 32*8)
11731173   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
1174   MCFG_SCREEN_UPDATE_STATIC(mutantf)
1174   MCFG_SCREEN_UPDATE_DRIVER(cninja_state, screen_update_mutantf)
11751175
11761176   MCFG_VIDEO_START_OVERRIDE(cninja_state,mutantf)
11771177
trunk/src/mame/drivers/missile.c
r17967r17968
381381   DECLARE_DRIVER_INIT(suprmatk);
382382   virtual void machine_start();
383383   virtual void machine_reset();
384   UINT32 screen_update_missile(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
384385};
385386
386387
r17967r17968
666667 *
667668 *************************************/
668669
669static SCREEN_UPDATE_IND16( missile )
670UINT32 missile_state::screen_update_missile(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
670671{
671   missile_state *state = screen.machine().driver_data<missile_state>();
672   UINT8 *videoram = state->m_videoram;
672   UINT8 *videoram = m_videoram;
673673   int x, y;
674674
675675   /* draw the bitmap to the screen, looping over Y */
r17967r17968
677677   {
678678      UINT16 *dst = &bitmap.pix16(y);
679679
680      int effy = state->m_flipscreen ? ((256+24 - y) & 0xff) : y;
680      int effy = m_flipscreen ? ((256+24 - y) & 0xff) : y;
681681      UINT8 *src = &videoram[effy * 64];
682682      UINT8 *src3 = NULL;
683683
r17967r17968
10441044
10451045   MCFG_SCREEN_ADD("screen", RASTER)
10461046   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
1047   MCFG_SCREEN_UPDATE_STATIC(missile)
1047   MCFG_SCREEN_UPDATE_DRIVER(missile_state, screen_update_missile)
10481048
10491049   /* sound hardware */
10501050   MCFG_SPEAKER_STANDARD_MONO("mono")
trunk/src/mame/drivers/go2000.c
r17967r17968
5353   DECLARE_WRITE8_MEMBER(go2000_pcm_1_bankswitch_w);
5454   virtual void machine_start();
5555   virtual void video_start();
56   UINT32 screen_update_go2000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5657};
5758
5859
r17967r17968
174175{
175176}
176177
177static SCREEN_UPDATE_IND16(go2000)
178UINT32 go2000_state::screen_update_go2000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
178179{
179   go2000_state *state = screen.machine().driver_data<go2000_state>();
180180   int x,y;
181181   int count = 0;
182182
r17967r17968
185185   {
186186      for (y = 0; y < 32; y++)
187187      {
188         int tile = state->m_videoram[count];
189         int attr = state->m_videoram2[count];
188         int tile = m_videoram[count];
189         int attr = m_videoram2[count];
190190         drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], tile, attr, 0, 0, x * 8, y * 8);
191191         count++;
192192      }
r17967r17968
197197   {
198198      for (y = 0; y < 32; y++)
199199      {
200         int tile = state->m_videoram[count];
201         int attr = state->m_videoram2[count];
200         int tile = m_videoram[count];
201         int attr = m_videoram2[count];
202202         drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0], tile, attr, 0, 0, x * 8, y * 8, 0xf);
203203         count++;
204204      }
r17967r17968
219219      int dx, dy;
220220      int flipx, y0;
221221
222      int y = state->m_videoram[offs + 0 + 0x00000 / 2];
223      int x = state->m_videoram[offs + 1 + 0x00000 / 2];
224      int dim = state->m_videoram2[offs + 0 + 0x00000 / 2];
222      int y = m_videoram[offs + 0 + 0x00000 / 2];
223      int x = m_videoram[offs + 1 + 0x00000 / 2];
224      int dim = m_videoram2[offs + 0 + 0x00000 / 2];
225225
226226      int bank   =   (x >> 12) & 0xf;
227227
r17967r17968
270270         for (dx = 0; dx < dimx * 8; dx += 8)
271271         {
272272            int addr = (srcpg * 0x20 * 0x20) + ((srcx + tile_x) & 0x1f) * 0x20 + ((srcy + tile_y) & 0x1f);
273            int tile = state->m_videoram[addr + 0x00000 / 2];
274            int attr = state->m_videoram2[addr + 0x00000 / 2];
273            int tile = m_videoram[addr + 0x00000 / 2];
274            int attr = m_videoram2[addr + 0x00000 / 2];
275275
276276            int sx = x + dx;
277277            int sy = (y + dy) & 0xff;
r17967r17968
282282            if (flipx)
283283               tile_flipx = !tile_flipx;
284284
285            if (state->flip_screen())
285            if (flip_screen())
286286            {
287287               sx = max_x - sx;
288288               sy = max_y - sy;
r17967r17968
340340   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
341341   MCFG_SCREEN_SIZE(64*8, 32*8)
342342   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
343   MCFG_SCREEN_UPDATE_STATIC(go2000)
343   MCFG_SCREEN_UPDATE_DRIVER(go2000_state, screen_update_go2000)
344344
345345   MCFG_PALETTE_LENGTH(0x800)
346346
trunk/src/mame/drivers/jack.c
r17967r17968
826826   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
827827   MCFG_SCREEN_SIZE(32*8, 32*8)
828828   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
829   MCFG_SCREEN_UPDATE_STATIC(jack)
829   MCFG_SCREEN_UPDATE_DRIVER(jack_state, screen_update_jack)
830830
831831   MCFG_GFXDECODE(jack)
832832   MCFG_PALETTE_LENGTH(32)
r17967r17968
867867
868868   MCFG_SCREEN_MODIFY("screen")
869869   MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1)
870   MCFG_SCREEN_UPDATE_STATIC(joinem)
870   MCFG_SCREEN_UPDATE_DRIVER(jack_state, screen_update_joinem)
871871
872872   MCFG_PALETTE_INIT_OVERRIDE(jack_state,joinem)
873873   MCFG_VIDEO_START_OVERRIDE(jack_state,joinem)
r17967r17968
886886
887887   MCFG_SCREEN_MODIFY("screen")
888888   MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1)
889   MCFG_SCREEN_UPDATE_STATIC(joinem)
889   MCFG_SCREEN_UPDATE_DRIVER(jack_state, screen_update_joinem)
890890
891891   MCFG_PALETTE_INIT_OVERRIDE(jack_state,joinem)
892892   MCFG_VIDEO_START_OVERRIDE(jack_state,joinem)
trunk/src/mame/drivers/dogfgt.c
r17967r17968
256256   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
257257   MCFG_SCREEN_SIZE(32*8, 32*8)
258258   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
259   MCFG_SCREEN_UPDATE_STATIC(dogfgt)
259   MCFG_SCREEN_UPDATE_DRIVER(dogfgt_state, screen_update_dogfgt)
260260
261261   MCFG_GFXDECODE(dogfgt)
262262   MCFG_PALETTE_LENGTH(16+64)
trunk/src/mame/drivers/vigilant.c
r17967r17968
496496   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
497497   MCFG_SCREEN_SIZE(64*8, 32*8)
498498   MCFG_SCREEN_VISIBLE_AREA(16*8, (64-16)*8-1, 0*8, 32*8-1 )
499   MCFG_SCREEN_UPDATE_STATIC(vigilant)
499   MCFG_SCREEN_UPDATE_DRIVER(vigilant_state, screen_update_vigilant)
500500
501501   MCFG_GFXDECODE(vigilant)
502502   MCFG_PALETTE_LENGTH(512+32)   /* 512 real palette, 32 virtual palette */
r17967r17968
536536   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
537537   MCFG_SCREEN_SIZE(64*8, 32*8)
538538   MCFG_SCREEN_VISIBLE_AREA(16*8, (64-16)*8-1, 0*8, 32*8-1 )
539   MCFG_SCREEN_UPDATE_STATIC(vigilant)
539   MCFG_SCREEN_UPDATE_DRIVER(vigilant_state, screen_update_vigilant)
540540
541541   MCFG_GFXDECODE(buccanrs)
542542   MCFG_PALETTE_LENGTH(512+32)   /* 512 real palette, 32 virtual palette */
r17967r17968
592592   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
593593   MCFG_SCREEN_SIZE(64*8, 32*8)
594594   MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 0*8, 32*8-1 )
595   MCFG_SCREEN_UPDATE_STATIC(kikcubic)
595   MCFG_SCREEN_UPDATE_DRIVER(vigilant_state, screen_update_kikcubic)
596596
597597   MCFG_GFXDECODE(kikcubic)
598598   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/taitosj.c
r17967r17968
18081808   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
18091809   MCFG_SCREEN_SIZE(32*8, 32*8)
18101810   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1811   MCFG_SCREEN_UPDATE_STATIC(taitosj)
1811   MCFG_SCREEN_UPDATE_DRIVER(taitosj_state, screen_update_taitosj)
18121812
18131813   MCFG_GFXDECODE(taitosj)
18141814   MCFG_PALETTE_LENGTH(64)
r17967r17968
18591859   MCFG_CPU_PROGRAM_MAP(kikstart_main_map)
18601860
18611861   MCFG_SCREEN_MODIFY("screen")
1862   MCFG_SCREEN_UPDATE_STATIC(kikstart)
1862   MCFG_SCREEN_UPDATE_DRIVER(taitosj_state, screen_update_kikstart)
18631863MACHINE_CONFIG_END
18641864
18651865
trunk/src/mame/drivers/nbmj8991.c
r17967r17968
14811481   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
14821482   MCFG_SCREEN_SIZE(1024, 512)
14831483   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 240-1)
1484   MCFG_SCREEN_UPDATE_STATIC(nbmj8991_type1)
1484   MCFG_SCREEN_UPDATE_DRIVER(nbmj8991_state, screen_update_nbmj8991_type1)
14851485
14861486   MCFG_PALETTE_LENGTH(256)
14871487
r17967r17968
15141514   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
15151515   MCFG_SCREEN_SIZE(1024, 512)
15161516   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 240-1)
1517   MCFG_SCREEN_UPDATE_STATIC(nbmj8991_type2)
1517   MCFG_SCREEN_UPDATE_DRIVER(nbmj8991_state, screen_update_nbmj8991_type2)
15181518
15191519   MCFG_PALETTE_LENGTH(256)
15201520
trunk/src/mame/drivers/galivan.c
r17967r17968
452452   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
453453   MCFG_SCREEN_SIZE(32*8, 32*8)
454454   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
455   MCFG_SCREEN_UPDATE_STATIC(galivan)
455   MCFG_SCREEN_UPDATE_DRIVER(galivan_state, screen_update_galivan)
456456
457457   MCFG_GFXDECODE(galivan)
458458   MCFG_PALETTE_LENGTH(8*16+16*16+256*16)
r17967r17968
494494   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
495495   MCFG_SCREEN_SIZE(32*8, 32*8)
496496   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
497   MCFG_SCREEN_UPDATE_STATIC(ninjemak)
497   MCFG_SCREEN_UPDATE_DRIVER(galivan_state, screen_update_ninjemak)
498498
499499   MCFG_GFXDECODE(ninjemak)
500500   MCFG_PALETTE_LENGTH(8*16+16*16+256*16)
trunk/src/mame/drivers/meyc8088.c
r17967r17968
6363
6464   DECLARE_WRITE_LINE_MEMBER(meyc8088_sound_out);
6565   virtual void palette_init();
66   UINT32 screen_update_meyc8088(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
67   void screen_eof_meyc8088(screen_device &screen, bool state);
6668};
6769
6870
r17967r17968
122124   auto_free(machine(), rgb);
123125}
124126
125static SCREEN_UPDATE_IND16( meyc8088 )
127UINT32 meyc8088_state::screen_update_meyc8088(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
126128{
127   meyc8088_state *state = screen.machine().driver_data<meyc8088_state>();
128129   UINT8 v[5];
129   v[4] = state->m_status << 2 & 0x10; // video5: color prom d4
130   v[4] = m_status << 2 & 0x10; // video5: color prom d4
130131
131   if (~state->m_status & 2)
132   if (~m_status & 2)
132133   {
133134      // screen off
134135      bitmap.fill(v[4]);
r17967r17968
140141      UINT8 y = (offs-0x800) >> 6;
141142      UINT8 x = (offs-0x800) << 2;
142143
143      v[0] = state->m_vram[offs|0x0000]; // video1: color prom d0
144      v[1] = state->m_vram[offs|0x0001]; // video2: color prom d1
145      v[2] = state->m_vram[offs|0x4000]; // video3: color prom d2
146      v[3] = state->m_vram[offs|0x4001]; // video4: color prom d3
144      v[0] = m_vram[offs|0x0000]; // video1: color prom d0
145      v[1] = m_vram[offs|0x0001]; // video2: color prom d1
146      v[2] = m_vram[offs|0x4000]; // video3: color prom d2
147      v[3] = m_vram[offs|0x4001]; // video4: color prom d3
147148
148149      for (int i = 0; i < 8; i++)
149150         bitmap.pix16(y, x | i) = ((v[0] << i) >> 7 & 1) | ((v[1] << i) >> 6 & 2) | ((v[2] << i) >> 5 & 4) | ((v[3] << i) >> 4 & 8) | v[4];
r17967r17968
152153   return 0;
153154}
154155
155static SCREEN_VBLANK( meyc8088 )
156void meyc8088_state::screen_eof_meyc8088(screen_device &screen, bool state)
156157{
157   meyc8088_state *state = screen.machine().driver_data<meyc8088_state>();
158
158   device_execute_interface *intf;
159   m_maincpu->interface(intf);
159160   // INTR on LC255 (pulses at start and end of vblank), INTA hardwired to $20
160   generic_pulse_irq_line_and_vector(state->m_maincpu, 0, 0x20, 1);
161   generic_pulse_irq_line_and_vector(*intf, 0, 0x20, 1);
161162}
162163
163164
r17967r17968
386387   /* video hardware */
387388   MCFG_SCREEN_ADD("screen", RASTER)
388389   MCFG_SCREEN_RAW_PARAMS(XTAL_15MHz/3, 320, 0, 256, 261, 0, 224)
389   MCFG_SCREEN_UPDATE_STATIC(meyc8088)
390   MCFG_SCREEN_VBLANK_STATIC(meyc8088)
390   MCFG_SCREEN_UPDATE_DRIVER(meyc8088_state, screen_update_meyc8088)
391   MCFG_SCREEN_VBLANK_DRIVER(meyc8088_state, screen_eof_meyc8088)
391392
392393   MCFG_PALETTE_LENGTH(32)
393394
trunk/src/mame/drivers/deshoros.c
r17967r17968
5959   virtual void machine_start();
6060   virtual void machine_reset();
6161   virtual void video_start();
62public:   
63   UINT32 screen_update_destiny(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6264};
6365
6466
r17967r17968
7274   m_led_array[20] = 0;
7375}
7476
75static SCREEN_UPDATE_IND16( destiny )
77UINT32 destiny_state::screen_update_destiny(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
7678{
77   destiny_state *state = screen.machine().driver_data<destiny_state>();
78   popmessage("%s",state->m_led_array);
79   popmessage("%s",m_led_array);
7980   return 0;
8081}
8182
r17967r17968
268269   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
269270   MCFG_SCREEN_SIZE(48*8, 16*8)
270271   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 16*8-1)
271   MCFG_SCREEN_UPDATE_STATIC(destiny)
272   MCFG_SCREEN_UPDATE_DRIVER(destiny_state, screen_update_destiny)
272273   MCFG_PALETTE_LENGTH(16)
273274
274275
trunk/src/mame/drivers/canyon.c
r17967r17968
248248   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(22 * 1000000 / 15750))
249249   MCFG_SCREEN_SIZE(256, 240)
250250   MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239)
251   MCFG_SCREEN_UPDATE_STATIC(canyon)
251   MCFG_SCREEN_UPDATE_DRIVER(canyon_state, screen_update_canyon)
252252
253253   MCFG_GFXDECODE(canyon)
254254   MCFG_PALETTE_LENGTH(4)
trunk/src/mame/drivers/igs_m027.c
r17967r17968
5858   TILE_GET_INFO_MEMBER(get_tx_tilemap_tile_info);
5959   TILE_GET_INFO_MEMBER(get_bg_tilemap_tile_info);
6060   virtual void video_start();
61   UINT32 screen_update_igs_majhong(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6162};
6263
6364
r17967r17968
181182   logerror("Video START OK!\n");
182183}
183184
184static SCREEN_UPDATE_IND16(igs_majhong)
185UINT32 igs_m027_state::screen_update_igs_majhong(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
185186{
186   igs_m027_state *state = screen.machine().driver_data<igs_m027_state>();
187187   //??????????
188188   bitmap.fill(get_black_pen(screen.machine()), cliprect);
189189
190190   //??????
191   state->m_igs_bg_tilemap->draw(bitmap, cliprect, 0,0);
191   m_igs_bg_tilemap->draw(bitmap, cliprect, 0,0);
192192
193193   //CG??????
194194
195195   //??????
196   state->m_igs_tx_tilemap->draw(bitmap, cliprect, 0,0);
196   m_igs_tx_tilemap->draw(bitmap, cliprect, 0,0);
197197   //fprintf(stdout,"Video UPDATE OK!\n");
198198   return 0;
199199}
r17967r17968
379379   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
380380   MCFG_SCREEN_SIZE(512, 256)
381381   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
382   MCFG_SCREEN_UPDATE_STATIC( igs_majhong )
382   MCFG_SCREEN_UPDATE_DRIVER(igs_m027_state, screen_update_igs_majhong)
383383
384384   MCFG_PALETTE_LENGTH(0x200)
385385
trunk/src/mame/drivers/splash.c
r17967r17968
508508   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
509509   MCFG_SCREEN_SIZE(64*8, 64*8)
510510   MCFG_SCREEN_VISIBLE_AREA(2*8, 48*8-1, 2*8, 32*8-1)
511   MCFG_SCREEN_UPDATE_STATIC(splash)
511   MCFG_SCREEN_UPDATE_DRIVER(splash_state, screen_update_splash)
512512
513513   MCFG_GFXDECODE(splash)
514514   MCFG_PALETTE_LENGTH(2048)
r17967r17968
565565   MCFG_SCREEN_SIZE(64*8, 64*8)
566566   MCFG_SCREEN_VISIBLE_AREA(2*8, 48*8-1, 2*8, 32*8-1)
567567
568   MCFG_SCREEN_UPDATE_STATIC(splash)
568   MCFG_SCREEN_UPDATE_DRIVER(splash_state, screen_update_splash)
569569
570570   MCFG_GFXDECODE(splash)
571571   MCFG_PALETTE_LENGTH(2048)
r17967r17968
644644   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
645645   MCFG_SCREEN_SIZE(64*8, 64*8)
646646   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 32*8-1)
647   MCFG_SCREEN_UPDATE_STATIC(funystrp)
647   MCFG_SCREEN_UPDATE_DRIVER(splash_state, screen_update_funystrp)
648648
649649   MCFG_GFXDECODE(splash)
650650   MCFG_PALETTE_LENGTH(2048)
trunk/src/mame/drivers/buster.c
r17967r17968
2323   DECLARE_READ8_MEMBER(test_r);
2424   virtual void video_start();
2525   virtual void palette_init();
26   UINT32 screen_update_buster(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2627};
2728
2829
r17967r17968
3031{
3132}
3233
33static SCREEN_UPDATE_IND16(buster)
34UINT32 buster_state::screen_update_buster(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
3435{
35   buster_state *state = screen.machine().driver_data<buster_state>();
3636   gfx_element *gfx = screen.machine().gfx[0];
3737   int count = 0x0000;
3838
r17967r17968
4343   {
4444      for (x=0;x<32;x++)
4545      {
46         int tile = (state->m_vram[count+1])|(state->m_vram[count]<<8);
46         int tile = (m_vram[count+1])|(m_vram[count]<<8);
4747         //int colour = tile>>12;
4848         drawgfx_opaque(bitmap,cliprect,gfx,tile,0,0,0,x*8,y*4);
4949
r17967r17968
341341   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
342342   MCFG_SCREEN_SIZE(256, 256)
343343   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1)
344   MCFG_SCREEN_UPDATE_STATIC(buster)
344   MCFG_SCREEN_UPDATE_DRIVER(buster_state, screen_update_buster)
345345   MCFG_MC6845_ADD("crtc", MC6845, XTAL_3_579545MHz/4, mc6845_intf) //unknown clock / type
346346
347347   MCFG_GFXDECODE(buster)
trunk/src/mame/drivers/subsino2.c
r17967r17968
165165   DECLARE_VIDEO_START(mtrain);
166166   DECLARE_MACHINE_RESET(am188em);
167167   DECLARE_VIDEO_START(xtrain);
168   UINT32 screen_update_subsino2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
168169};
169170
170171
r17967r17968
631632   m_ss9601_reelrects[2].set(0, 0, 0x18*8, 256-16-1);
632633}
633634
634static SCREEN_UPDATE_IND16( subsino2 )
635UINT32 subsino2_state::screen_update_subsino2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
635636{
636   subsino2_state *state = screen.machine().driver_data<subsino2_state>();
637   int layers_ctrl = ~state->m_ss9601_disable;
637   int layers_ctrl = ~m_ss9601_disable;
638638   int y;
639639
640640#ifdef MAME_DEBUG
r17967r17968
650650   // Line Scroll / Reel Control
651651   int mask_y[2] = {0, 0};
652652   bool l0_reel = false;
653   switch ( state->m_ss9601_scrollctrl )
653   switch ( m_ss9601_scrollctrl )
654654   {
655655      case 0xbf:
656656         mask_y[0] = ~(32-1);
r17967r17968
669669   // Scroll
670670   for (int i = 0; i < 2; i++)
671671   {
672      layer_t *l = &state->m_layers[i];
672      layer_t *l = &m_layers[i];
673673
674674      l->tmap->set_scroll_cols(1);
675675      l->tmap->set_scroll_rows(0x200);
r17967r17968
691691
692692   if (layers_ctrl & 1)
693693   {
694      layer_t *l = &state->m_layers[0];
694      layer_t *l = &m_layers[0];
695695
696696      if (l0_reel)
697697      {
r17967r17968
700700
701701         for (int r = 0; r < 3; r++)
702702         {
703            rectangle visible = state->m_ss9601_reelrects[r];
703            rectangle visible = m_ss9601_reelrects[r];
704704
705705            for (int x = 0; x < 0x40; x++)
706706            {
r17967r17968
708708               visible.max_x = 8 * (x+1) - 1;
709709
710710               int reeladdr = (visible.min_y / 0x10) * 0x80 + x;
711               UINT16 reelscroll = (state->m_ss9601_reelrams[VRAM_HI][reeladdr] << 8) + state->m_ss9601_reelrams[VRAM_LO][reeladdr];
711               UINT16 reelscroll = (m_ss9601_reelrams[VRAM_HI][reeladdr] << 8) + m_ss9601_reelrams[VRAM_LO][reeladdr];
712712
713713               l->tmap->set_scrollx(0, (reelscroll >> 9) * 8 + l->scroll_x - visible.min_x);
714714
r17967r17968
746746      }
747747   }
748748
749   if (layers_ctrl & 2)   state->m_layers[1].tmap->draw(bitmap, cliprect, 0, 0);
749   if (layers_ctrl & 2)   m_layers[1].tmap->draw(bitmap, cliprect, 0, 0);
750750
751//  popmessage("scrl: %03x,%03x - %03x,%03x dis: %02x siz: %02x ctrl: %02x", state->m_layers[0].scroll_x,state->m_layers[0].scroll_y, state->m_layers[1].scroll_x,state->m_layers[1].scroll_y, state->m_ss9601_disable, state->m_ss9601_tilesize, state->m_ss9601_scrollctrl);
751//  popmessage("scrl: %03x,%03x - %03x,%03x dis: %02x siz: %02x ctrl: %02x", m_layers[0].scroll_x,m_layers[0].scroll_y, m_layers[1].scroll_x,m_layers[1].scroll_y, m_ss9601_disable, m_ss9601_tilesize, m_ss9601_scrollctrl);
752752
753753   return 0;
754754}
r17967r17968
21882188   MCFG_SCREEN_SIZE( 512, 256 )
21892189   MCFG_SCREEN_VISIBLE_AREA( 0, 512-1, 0, 256-16-1 )
21902190   MCFG_SCREEN_REFRESH_RATE( 60 )
2191   MCFG_SCREEN_UPDATE_STATIC( subsino2 )
2191   MCFG_SCREEN_UPDATE_DRIVER(subsino2_state, screen_update_subsino2)
21922192
21932193   MCFG_GFXDECODE( ss9601 )
21942194   MCFG_PALETTE_LENGTH( 256 )
r17967r17968
22162216   MCFG_SCREEN_VISIBLE_AREA( 0, 512-1, 0, 256-32-1 )
22172217   MCFG_SCREEN_REFRESH_RATE( 58.7270 )
22182218   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)   // game reads vblank state
2219   MCFG_SCREEN_UPDATE_STATIC( subsino2 )
2219   MCFG_SCREEN_UPDATE_DRIVER(subsino2_state, screen_update_subsino2)
22202220
22212221   MCFG_GFXDECODE( ss9601 )
22222222   MCFG_PALETTE_LENGTH( 256 )
r17967r17968
22492249   MCFG_SCREEN_VISIBLE_AREA( 0, 512-1, 0, 256-16-1 )
22502250   MCFG_SCREEN_REFRESH_RATE( 58.7270 )
22512251   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)   // game reads vblank state
2252   MCFG_SCREEN_UPDATE_STATIC( subsino2 )
2252   MCFG_SCREEN_UPDATE_DRIVER(subsino2_state, screen_update_subsino2)
22532253
22542254   MCFG_GFXDECODE( ss9601 )
22552255   MCFG_PALETTE_LENGTH( 256 )
r17967r17968
22862286   MCFG_SCREEN_VISIBLE_AREA( 0, 512-1, 0, 256-16-1 )
22872287   MCFG_SCREEN_REFRESH_RATE( 58.7270 )
22882288   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)   // game reads vblank state
2289   MCFG_SCREEN_UPDATE_STATIC( subsino2 )
2289   MCFG_SCREEN_UPDATE_DRIVER(subsino2_state, screen_update_subsino2)
22902290
22912291   MCFG_GFXDECODE( ss9601 )
22922292   MCFG_PALETTE_LENGTH( 256 )
trunk/src/mame/drivers/m63.c
r17967r17968
183183   DECLARE_MACHINE_RESET(m63);
184184   DECLARE_VIDEO_START(m63);
185185   DECLARE_PALETTE_INIT(m63);
186   UINT32 screen_update_m63(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
186187};
187188
188189
r17967r17968
359360   }
360361}
361362
362static SCREEN_UPDATE_IND16( m63 )
363UINT32 m63_state::screen_update_m63(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
363364{
364   m63_state *state = screen.machine().driver_data<m63_state>();
365365
366366   int col;
367367
368368   for (col = 0; col < 32; col++)
369      state->m_bg_tilemap->set_scrolly(col, state->m_scrollram[col * 8]);
369      m_bg_tilemap->set_scrolly(col, m_scrollram[col * 8]);
370370
371   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
371   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
372372   draw_sprites(screen.machine(), bitmap, cliprect);
373   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
373   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
374374   return 0;
375375}
376376
r17967r17968
784784   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
785785   MCFG_SCREEN_SIZE(32*8, 32*8)
786786   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
787   MCFG_SCREEN_UPDATE_STATIC(m63)
787   MCFG_SCREEN_UPDATE_DRIVER(m63_state, screen_update_m63)
788788
789789   MCFG_GFXDECODE(m63)
790790   MCFG_PALETTE_LENGTH(256+4)
r17967r17968
828828   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
829829   MCFG_SCREEN_SIZE(32*8, 32*8)
830830   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
831   MCFG_SCREEN_UPDATE_STATIC(m63)
831   MCFG_SCREEN_UPDATE_DRIVER(m63_state, screen_update_m63)
832832
833833   MCFG_GFXDECODE(fghtbskt)
834834   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/route16.c
r17967r17968
612612   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1)
613613   MCFG_SCREEN_REFRESH_RATE(57)
614614   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)   /* frames per second, vblank duration */
615   MCFG_SCREEN_UPDATE_STATIC(route16)
615   MCFG_SCREEN_UPDATE_DRIVER(route16_state, screen_update_route16)
616616
617617   /* sound hardware */
618618   MCFG_SPEAKER_STANDARD_MONO("mono")
r17967r17968
640640
641641   /* video hardware */
642642   MCFG_SCREEN_MODIFY("screen")
643   MCFG_SCREEN_UPDATE_STATIC(stratvox)
643   MCFG_SCREEN_UPDATE_DRIVER(route16_state, screen_update_stratvox)
644644
645645   /* sound hardware */
646646   MCFG_SOUND_MODIFY("ay8910")
r17967r17968
678678
679679   /* video hardware */
680680   MCFG_SCREEN_MODIFY("screen")
681   MCFG_SCREEN_UPDATE_STATIC(ttmahjng)
681   MCFG_SCREEN_UPDATE_DRIVER(route16_state, screen_update_ttmahjng)
682682MACHINE_CONFIG_END
683683
684684
trunk/src/mame/drivers/pgm2.c
r17967r17968
3636   virtual void machine_start();
3737   virtual void machine_reset();
3838   virtual void video_start();
39   UINT32 screen_update_pgm2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
40   void screen_eof_pgm2(screen_device &screen, bool state);
3941};
4042
4143static ADDRESS_MAP_START( pgm2_map, AS_PROGRAM, 32, pgm2_state )
r17967r17968
4547static INPUT_PORTS_START( pgm2 )
4648INPUT_PORTS_END
4749
48static SCREEN_UPDATE_IND16(pgm2)
50UINT32 pgm2_state::screen_update_pgm2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
4951{
5052   return 0;
5153}
5254
53static SCREEN_VBLANK(pgm2)
55void pgm2_state::screen_eof_pgm2(screen_device &screen, bool state)
5456{
5557
5658}
r17967r17968
139141   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
140142   MCFG_SCREEN_SIZE(64*8, 64*8)
141143   MCFG_SCREEN_VISIBLE_AREA(0*8, 56*8-1, 0*8, 28*8-1)
142   MCFG_SCREEN_UPDATE_STATIC(pgm2)
143   MCFG_SCREEN_VBLANK_STATIC(pgm2)
144   MCFG_SCREEN_UPDATE_DRIVER(pgm2_state, screen_update_pgm2)
145   MCFG_SCREEN_VBLANK_DRIVER(pgm2_state, screen_eof_pgm2)
144146
145147   MCFG_PALETTE_LENGTH(0x1000)
146148
trunk/src/mame/drivers/tecmosys.c
r17967r17968
474474   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(3000))
475475   MCFG_SCREEN_SIZE(64*8, 64*8)
476476   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1)
477   MCFG_SCREEN_UPDATE_STATIC(tecmosys)
477   MCFG_SCREEN_UPDATE_DRIVER(tecmosys_state, screen_update_tecmosys)
478478
479479   MCFG_PALETTE_LENGTH(0x4000+0x800)
480480
trunk/src/mame/drivers/snk6502.c
r17967r17968
835835   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
836836   MCFG_SCREEN_SIZE(32*8, 32*8)
837837   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
838   MCFG_SCREEN_UPDATE_STATIC(snk6502)
838   MCFG_SCREEN_UPDATE_DRIVER(snk6502_state, screen_update_snk6502)
839839
840840   MCFG_GFXDECODE(sasuke)
841841   MCFG_PALETTE_LENGTH(32)
r17967r17968
908908   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
909909   MCFG_SCREEN_SIZE(32*8, 32*8)
910910   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
911   MCFG_SCREEN_UPDATE_STATIC(snk6502)
911   MCFG_SCREEN_UPDATE_DRIVER(snk6502_state, screen_update_snk6502)
912912
913913   MCFG_GFXDECODE(vanguard)
914914   MCFG_PALETTE_LENGTH(64)
trunk/src/mame/drivers/polyplay.c
r17967r17968
285285   MCFG_SCREEN_REFRESH_RATE(50)
286286   MCFG_SCREEN_SIZE(64*8, 32*8)
287287   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
288   MCFG_SCREEN_UPDATE_STATIC(polyplay)
288   MCFG_SCREEN_UPDATE_DRIVER(polyplay_state, screen_update_polyplay)
289289
290290   MCFG_GFXDECODE(polyplay)
291291   MCFG_PALETTE_LENGTH(10)
trunk/src/mame/drivers/dassault.c
r17967r17968
524524   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
525525   MCFG_SCREEN_SIZE(40*8, 32*8)
526526   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
527   MCFG_SCREEN_UPDATE_STATIC(dassault)
527   MCFG_SCREEN_UPDATE_DRIVER(dassault_state, screen_update_dassault)
528528
529529
530530   MCFG_GFXDECODE(dassault)
trunk/src/mame/drivers/dambustr.c
r17967r17968
261261   MCFG_SCREEN_REFRESH_RATE(16000.0/132/2)
262262   MCFG_SCREEN_SIZE(32*8, 32*8)
263263   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
264   MCFG_SCREEN_UPDATE_STATIC(dambustr)
264   MCFG_SCREEN_UPDATE_DRIVER(dambustr_state, screen_update_dambustr)
265265
266266   MCFG_GFXDECODE(dambustr)
267267   MCFG_PALETTE_LENGTH(32+2+64+8)      /* 32 for the characters, 2 for the bullets, 64 for the stars, 8 for the background */
trunk/src/mame/drivers/tatsumi.c
r17967r17968
893893   /* video hardware */
894894   MCFG_SCREEN_ADD("screen", RASTER)
895895   MCFG_SCREEN_RAW_PARAMS(CLOCK_2 / 8, 400, 0, 320, 280, 0, 240) // TODO: Hook up CRTC
896   MCFG_SCREEN_UPDATE_STATIC(apache3)
896   MCFG_SCREEN_UPDATE_DRIVER(tatsumi_state, screen_update_apache3)
897897
898898   MCFG_GFXDECODE(apache3)
899899   MCFG_PALETTE_LENGTH(1024 + 4096) /* 1024 real colours, and 4096 arranged as series of cluts */
r17967r17968
934934   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
935935   MCFG_SCREEN_SIZE(40*8, 32*8)
936936   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1)
937   MCFG_SCREEN_UPDATE_STATIC(roundup5)
937   MCFG_SCREEN_UPDATE_DRIVER(tatsumi_state, screen_update_roundup5)
938938
939939   MCFG_GFXDECODE(roundup5)
940940   MCFG_PALETTE_LENGTH(1024 + 4096) /* 1024 real colours, and 4096 arranged as series of cluts */
r17967r17968
976976   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
977977   MCFG_SCREEN_SIZE(40*8, 32*8)
978978   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1)
979   MCFG_SCREEN_UPDATE_STATIC(cyclwarr)
979   MCFG_SCREEN_UPDATE_DRIVER(tatsumi_state, screen_update_cyclwarr)
980980
981981   MCFG_GFXDECODE(cyclwarr)
982982   MCFG_PALETTE_LENGTH(8192 + 8192)
r17967r17968
10181018   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
10191019   MCFG_SCREEN_SIZE(40*8, 32*8)
10201020   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1)
1021   MCFG_SCREEN_UPDATE_STATIC(bigfight)
1021   MCFG_SCREEN_UPDATE_DRIVER(tatsumi_state, screen_update_bigfight)
10221022
10231023   MCFG_GFXDECODE(cyclwarr)
10241024   MCFG_PALETTE_LENGTH(8192 + 8192)
trunk/src/mame/drivers/supbtime.c
r17967r17968
357357   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
358358   MCFG_SCREEN_SIZE(40*8, 32*8)
359359   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
360   MCFG_SCREEN_UPDATE_STATIC(supbtime)
360   MCFG_SCREEN_UPDATE_DRIVER(supbtime_state, screen_update_supbtime)
361361
362362   MCFG_GFXDECODE(supbtime)
363363   MCFG_PALETTE_LENGTH(1024)
r17967r17968
398398   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
399399   MCFG_SCREEN_SIZE(40*8, 32*8)
400400   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
401   MCFG_SCREEN_UPDATE_STATIC(supbtime)
401   MCFG_SCREEN_UPDATE_DRIVER(supbtime_state, screen_update_supbtime)
402402
403403   MCFG_GFXDECODE(supbtime)
404404   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/toratora.c
r17967r17968
5757   DECLARE_WRITE_LINE_MEMBER(sn2_ca2_u2_u3_w);
5858   virtual void machine_start();
5959   virtual void machine_reset();
60   UINT32 screen_update_toratora(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
6061};
6162
6263
r17967r17968
7980 *
8081 *************************************/
8182
82static SCREEN_UPDATE_RGB32( toratora )
83UINT32 toratora_state::screen_update_toratora(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
8384{
84   toratora_state *state = screen.machine().driver_data<toratora_state>();
8585   offs_t offs;
8686
87   for (offs = 0; offs < state->m_videoram.bytes(); offs++)
87   for (offs = 0; offs < m_videoram.bytes(); offs++)
8888   {
8989      int i;
9090
9191      UINT8 y = offs >> 5;
9292      UINT8 x = offs << 3;
93      UINT8 data = state->m_videoram[offs];
93      UINT8 data = m_videoram[offs];
9494
9595      for (i = 0; i < 8; i++)
9696      {
r17967r17968
102102      }
103103
104104      /* the video system clears as it writes out the pixels */
105      if (state->m_clear_tv)
106         state->m_videoram[offs] = 0;
105      if (m_clear_tv)
106         m_videoram[offs] = 0;
107107   }
108108
109   state->m_clear_tv = 0;
109   m_clear_tv = 0;
110110
111111   return 0;
112112}
r17967r17968
462462   MCFG_SCREEN_VISIBLE_AREA(0,256-1,8,248-1)
463463   MCFG_SCREEN_REFRESH_RATE(60)
464464   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
465   MCFG_SCREEN_UPDATE_STATIC(toratora)
465   MCFG_SCREEN_UPDATE_DRIVER(toratora_state, screen_update_toratora)
466466
467467   /* audio hardware */
468468   MCFG_SPEAKER_STANDARD_MONO("mono")
trunk/src/mame/drivers/blmbycar.c
r17967r17968
366366   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
367367   MCFG_SCREEN_SIZE(0x180, 0x100)
368368   MCFG_SCREEN_VISIBLE_AREA(0, 0x180-1, 0, 0x100-1)
369   MCFG_SCREEN_UPDATE_STATIC(blmbycar)
369   MCFG_SCREEN_UPDATE_DRIVER(blmbycar_state, screen_update_blmbycar)
370370
371371   MCFG_GFXDECODE(blmbycar)
372372   MCFG_PALETTE_LENGTH(0x300)
r17967r17968
409409   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
410410   MCFG_SCREEN_SIZE(0x180, 0x100)
411411   MCFG_SCREEN_VISIBLE_AREA(0, 0x180-1, 16, 0x100-1)
412   MCFG_SCREEN_UPDATE_STATIC(blmbycar)
412   MCFG_SCREEN_UPDATE_DRIVER(blmbycar_state, screen_update_blmbycar)
413413
414414   MCFG_GFXDECODE(blmbycar)
415415   MCFG_PALETTE_LENGTH(0x300)
trunk/src/mame/drivers/mpu4dealem.c
r17967r17968
3030   optional_shared_ptr<UINT8> m_dealem_videoram;
3131   DECLARE_MACHINE_RESET(dealem_vid);
3232   DECLARE_PALETTE_INIT(dealem);
33   UINT32 screen_update_dealem(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3334};
3435
3536
r17967r17968
112113}
113114
114115
115static SCREEN_UPDATE_IND16(dealem)
116UINT32 mpu4dealem_state::screen_update_dealem(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
116117{
117   mpu4dealem_state *state = screen.machine().driver_data<mpu4dealem_state>();
118118   int x,y;
119119   int count = 0;
120120
r17967r17968
122122   {
123123      for (x = 0; x < 40; x++)
124124      {
125         int tile = state->m_dealem_videoram[count + 0x1000] | (state->m_dealem_videoram[count] << 8);
125         int tile = m_dealem_videoram[count + 0x1000] | (m_dealem_videoram[count] << 8);
126126         count++;
127127         drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0],tile,0,0,0,x * 8,y * 8);
128128      }
r17967r17968
225225   MCFG_SCREEN_SIZE((54+1)*8, (32+1)*8)               /* Taken from 6845 init, registers 00 & 04. Normally programmed with (value-1) */
226226   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 31*8-1)      /* Taken from 6845 init, registers 01 & 06 */
227227   MCFG_SCREEN_REFRESH_RATE(56)                     /* Measured accurately from the flip-flop, but 6845 handles this */
228   MCFG_SCREEN_UPDATE_STATIC(dealem)
228   MCFG_SCREEN_UPDATE_DRIVER(mpu4dealem_state, screen_update_dealem)
229229
230230   MCFG_GFXDECODE(dealem)
231231
trunk/src/mame/drivers/gbusters.c
r17967r17968
317317   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
318318   MCFG_SCREEN_SIZE(64*8, 32*8)
319319   MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
320   MCFG_SCREEN_UPDATE_STATIC(gbusters)
320   MCFG_SCREEN_UPDATE_DRIVER(gbusters_state, screen_update_gbusters)
321321
322322   MCFG_PALETTE_LENGTH(1024)
323323
trunk/src/mame/drivers/megaplay.c
r17967r17968
617617//  VIDEO_START_CALL_MEMBER(megaplay_normal);
618618}
619619
620static SCREEN_UPDATE_RGB32(megplay)
620UINT32 mplay_state::screen_update_megplay(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
621621{
622622   //printf("megplay vu\n");
623623   SCREEN_UPDATE32_CALL(megadriv);
r17967r17968
637637   MACHINE_RESET_CALL_LEGACY(megatech_bios);
638638}
639639
640static SCREEN_VBLANK( megaplay )
640void mplay_state::screen_eof_megaplay(screen_device &screen, bool state)
641641{
642   bool vblank_on = state;
642643   SCREEN_VBLANK_CALL(megadriv);
643644   SCREEN_VBLANK_CALL(megatech_bios);
644645}
r17967r17968
664665   /* New update functions to handle the extra layer */
665666   MCFG_VIDEO_START_OVERRIDE(mplay_state,megplay)
666667   MCFG_SCREEN_MODIFY("megadriv")
667   MCFG_SCREEN_UPDATE_STATIC(megplay)
668   MCFG_SCREEN_VBLANK_STATIC( megaplay )
668   MCFG_SCREEN_UPDATE_DRIVER(mplay_state, screen_update_megplay)
669   MCFG_SCREEN_VBLANK_DRIVER(mplay_state, screen_eof_megaplay)
669670MACHINE_CONFIG_END
670671
671672
trunk/src/mame/drivers/bogeyman.c
r17967r17968
252252   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
253253   MCFG_SCREEN_SIZE(32*8, 32*8)
254254   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
255   MCFG_SCREEN_UPDATE_STATIC(bogeyman)
255   MCFG_SCREEN_UPDATE_DRIVER(bogeyman_state, screen_update_bogeyman)
256256
257257   MCFG_GFXDECODE(bogeyman)
258258   MCFG_PALETTE_LENGTH(16+256)
trunk/src/mame/drivers/m72.c
r17967r17968
18221822
18231823   MCFG_SCREEN_ADD("screen", RASTER)
18241824   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
1825   MCFG_SCREEN_UPDATE_STATIC(m72)
1825   MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m72)
18261826
18271827   MCFG_VIDEO_START_OVERRIDE(m72_state,m72)
18281828
r17967r17968
18771877
18781878   MCFG_SCREEN_ADD("screen", RASTER)
18791879   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
1880   MCFG_SCREEN_UPDATE_STATIC(m72)
1880   MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m72)
18811881
18821882   MCFG_VIDEO_START_OVERRIDE(m72_state,m72)
18831883
r17967r17968
19141914
19151915   MCFG_SCREEN_ADD("screen", RASTER)
19161916   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
1917   MCFG_SCREEN_UPDATE_STATIC(m72)
1917   MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m72)
19181918
19191919   MCFG_VIDEO_START_OVERRIDE(m72_state,xmultipl)
19201920
r17967r17968
19551955
19561956   MCFG_SCREEN_ADD("screen", RASTER)
19571957   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
1958   MCFG_SCREEN_UPDATE_STATIC(m72)
1958   MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m72)
19591959
19601960   MCFG_VIDEO_START_OVERRIDE(m72_state,m72)
19611961
r17967r17968
19961996
19971997   MCFG_SCREEN_ADD("screen", RASTER)
19981998   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
1999   MCFG_SCREEN_UPDATE_STATIC(m72)
1999   MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m72)
20002000
20012001   MCFG_VIDEO_START_OVERRIDE(m72_state,hharry)
20022002
r17967r17968
20372037
20382038   MCFG_SCREEN_ADD("screen", RASTER)
20392039   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
2040   MCFG_SCREEN_UPDATE_STATIC(m72)
2040   MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m72)
20412041
20422042   MCFG_VIDEO_START_OVERRIDE(m72_state,m72)
20432043
r17967r17968
20782078
20792079   MCFG_SCREEN_ADD("screen", RASTER)
20802080   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
2081   MCFG_SCREEN_UPDATE_STATIC(m72)
2081   MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m72)
20822082
20832083   MCFG_VIDEO_START_OVERRIDE(m72_state,rtype2)
20842084
r17967r17968
21192119
21202120   MCFG_SCREEN_ADD("screen", RASTER)
21212121   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
2122   MCFG_SCREEN_UPDATE_STATIC(majtitle)
2122   MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_majtitle)
21232123
21242124   MCFG_VIDEO_START_OVERRIDE(m72_state,majtitle)
21252125
r17967r17968
21602160
21612161   MCFG_SCREEN_ADD("screen", RASTER)
21622162   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
2163   MCFG_SCREEN_UPDATE_STATIC(m72)
2163   MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m72)
21642164
21652165   MCFG_VIDEO_START_OVERRIDE(m72_state,hharry)
21662166
r17967r17968
22012201
22022202   MCFG_SCREEN_ADD("screen", RASTER)
22032203   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
2204   MCFG_SCREEN_UPDATE_STATIC(m72)
2204   MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m72)
22052205
22062206   MCFG_VIDEO_START_OVERRIDE(m72_state,hharryu)
22072207
r17967r17968
22422242
22432243   MCFG_SCREEN_ADD("screen", RASTER)
22442244   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
2245   MCFG_SCREEN_UPDATE_STATIC(m72)
2245   MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m72)
22462246
22472247   MCFG_VIDEO_START_OVERRIDE(m72_state,m72)
22482248
r17967r17968
22832283
22842284   MCFG_SCREEN_ADD("screen", RASTER)
22852285   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
2286   MCFG_SCREEN_UPDATE_STATIC(m72)
2286   MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m72)
22872287
22882288   MCFG_VIDEO_START_OVERRIDE(m72_state,poundfor)
22892289
r17967r17968
23242324
23252325   MCFG_SCREEN_ADD("screen", RASTER)
23262326   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
2327   MCFG_SCREEN_UPDATE_STATIC(m72)
2327   MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m72)
23282328
23292329   MCFG_VIDEO_START_OVERRIDE(m72_state,poundfor)
23302330
trunk/src/mame/drivers/pokechmp.c
r17967r17968
218218   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
219219   MCFG_SCREEN_SIZE(32*8, 32*8)
220220   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
221   MCFG_SCREEN_UPDATE_STATIC(pokechmp)
221   MCFG_SCREEN_UPDATE_DRIVER(pokechmp_state, screen_update_pokechmp)
222222
223223   MCFG_GFXDECODE(pokechmp)
224224   MCFG_PALETTE_LENGTH(0x400)
trunk/src/mame/drivers/mastboy.c
r17967r17968
478478   DECLARE_DRIVER_INIT(mastboy);
479479   virtual void machine_reset();
480480   virtual void video_start();
481   UINT32 screen_update_mastboy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
481482};
482483
483484
r17967r17968
488489   machine().gfx[0]->set_source(m_vram);
489490}
490491
491static SCREEN_UPDATE_IND16(mastboy)
492UINT32 mastboy_state::screen_update_mastboy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
492493{
493   mastboy_state *state = screen.machine().driver_data<mastboy_state>();
494494   int y,x,i;
495495   int count = 0x000;
496496
497497   for (i=0;i<0x200;i+=2)
498498   {
499      int coldat = state->m_colram[i+1] |  (state->m_colram[i+0]<<8);
499      int coldat = m_colram[i+1] |  (m_colram[i+0]<<8);
500500
501501      palette_set_color_rgb(screen.machine(),i/2,pal4bit(coldat>>8),pal4bit(coldat>>12),pal4bit(coldat>>4));
502502   }
r17967r17968
506506      for (x=0;x<32;x++)
507507      {
508508         /* bytes 0 and 3 seem to be unused for rendering , they appear to contain data the game uses internally */
509         int tileno = (state->m_tileram[count+1]|(state->m_tileram[count+2]<<8))&0xfff;
510         int attr = (state->m_tileram[count+2]&0xf0)>>4;
509         int tileno = (m_tileram[count+1]|(m_tileram[count+2]<<8))&0xfff;
510         int attr = (m_tileram[count+2]&0xf0)>>4;
511511         gfx_element *gfx;
512512
513513         if (tileno&0x800)
r17967r17968
899899   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
900900   MCFG_SCREEN_SIZE(256, 256)
901901   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1)
902   MCFG_SCREEN_UPDATE_STATIC(mastboy)
902   MCFG_SCREEN_UPDATE_DRIVER(mastboy_state, screen_update_mastboy)
903903
904904   MCFG_GFXDECODE(mastboy)
905905   MCFG_PALETTE_LENGTH(0x100)
trunk/src/mame/drivers/jclub2.c
r17967r17968
143143   DECLARE_VIDEO_START(darkhors);
144144   DECLARE_VIDEO_START(jclub2);
145145   DECLARE_VIDEO_START(jclub2o);
146   UINT32 screen_update_darkhors(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
147   UINT32 screen_update_jclub2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
148   UINT32 screen_update_jclub2o(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
146149};
147150
148151
r17967r17968
157160***************************************************************************/
158161
159162
160static SCREEN_UPDATE_IND16( darkhors );
161163
162164
165
163166TILE_GET_INFO_MEMBER(darkhors_state::get_tile_info_0)
164167{
165168   UINT16 tile      =   m_tmapram[tile_index] >> 16;
r17967r17968
230233   machine().gfx[0]->set_granularity(64); /* 256 colour sprites with palette selectable on 64 colour boundaries */
231234}
232235
233static SCREEN_UPDATE_IND16( darkhors )
236UINT32 darkhors_state::screen_update_darkhors(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
234237{
235   darkhors_state *state = screen.machine().driver_data<darkhors_state>();
236238   int layers_ctrl = -1;
237239
238240#if DARKHORS_DEBUG
r17967r17968
248250
249251   bitmap.fill(get_black_pen(screen.machine()), cliprect);
250252
251   state->m_tmap->set_scrollx(0, (state->m_tmapscroll[0] >> 16) - 5);
252   state->m_tmap->set_scrolly(0, (state->m_tmapscroll[0] & 0xffff) - 0xff );
253   if (layers_ctrl & 1)   state->m_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
253   m_tmap->set_scrollx(0, (m_tmapscroll[0] >> 16) - 5);
254   m_tmap->set_scrolly(0, (m_tmapscroll[0] & 0xffff) - 0xff );
255   if (layers_ctrl & 1)   m_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
254256
255   state->m_tmap2->set_scrollx(0, (state->m_tmapscroll2[0] >> 16) - 5);
256   state->m_tmap2->set_scrolly(0, (state->m_tmapscroll2[0] & 0xffff) - 0xff );
257   if (layers_ctrl & 2)   state->m_tmap2->draw(bitmap, cliprect, 0, 0);
257   m_tmap2->set_scrollx(0, (m_tmapscroll2[0] >> 16) - 5);
258   m_tmap2->set_scrolly(0, (m_tmapscroll2[0] & 0xffff) - 0xff );
259   if (layers_ctrl & 2)   m_tmap2->draw(bitmap, cliprect, 0, 0);
258260
259261   if (layers_ctrl & 4)   draw_sprites(screen.machine(),bitmap,cliprect);
260262
261263#if DARKHORS_DEBUG
262264#if 0
263265   popmessage("%04X-%04X %04X-%04X %04X-%04X %04X-%04X %04X-%04X %04X-%04X",
264      state->m_tmapscroll[0] >> 16, state->m_tmapscroll[0] & 0xffff,
265      state->m_tmapscroll[1] >> 16, state->m_tmapscroll[1] & 0xffff,
266      state->m_tmapscroll[2] >> 16, state->m_tmapscroll[2] & 0xffff,
267      state->m_tmapscroll[3] >> 16, state->m_tmapscroll[3] & 0xffff,
268      state->m_tmapscroll[4] >> 16, state->m_tmapscroll[4] & 0xffff,
269      state->m_tmapscroll[5] >> 16, state->m_tmapscroll[5] & 0xffff
266      m_tmapscroll[0] >> 16, m_tmapscroll[0] & 0xffff,
267      m_tmapscroll[1] >> 16, m_tmapscroll[1] & 0xffff,
268      m_tmapscroll[2] >> 16, m_tmapscroll[2] & 0xffff,
269      m_tmapscroll[3] >> 16, m_tmapscroll[3] & 0xffff,
270      m_tmapscroll[4] >> 16, m_tmapscroll[4] & 0xffff,
271      m_tmapscroll[5] >> 16, m_tmapscroll[5] & 0xffff
270272   );
271273#endif
272274#endif
r17967r17968
698700   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
699701   MCFG_SCREEN_SIZE(0x190, 0x100+16)
700702   MCFG_SCREEN_VISIBLE_AREA(0, 0x190-1, 8, 0x100-8-1)
701   MCFG_SCREEN_UPDATE_STATIC(darkhors)
703   MCFG_SCREEN_UPDATE_DRIVER(darkhors_state, screen_update_darkhors)
702704
703705   MCFG_GFXDECODE(darkhors)
704706   MCFG_PALETTE_LENGTH(0x10000)
r17967r17968
719721
720722}
721723
722static SCREEN_UPDATE_IND16(jclub2)
724UINT32 darkhors_state::screen_update_jclub2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
723725{
724   darkhors_state *state = screen.machine().driver_data<darkhors_state>();
725726
726727   // this isn't an st0020..
727   state->m_gdfs_st0020->st0020_draw_all(screen.machine(), bitmap, cliprect);
728   m_gdfs_st0020->st0020_draw_all(screen.machine(), bitmap, cliprect);
728729
729730   return 0;
730731}
r17967r17968
742743   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
743744   MCFG_SCREEN_SIZE(0x190, 0x100+16)
744745   MCFG_SCREEN_VISIBLE_AREA(0, 0x190-1, 8, 0x100-8-1)
745   MCFG_SCREEN_UPDATE_STATIC(jclub2)
746   MCFG_SCREEN_UPDATE_DRIVER(darkhors_state, screen_update_jclub2)
746747
747748   // NOT an ST0020 but instead ST0032, ram format isn't compatible at least
748749   MCFG_DEVICE_ADD("st0020_spr", ST0020_SPRITES, 0)
r17967r17968
785786
786787}
787788
788static SCREEN_UPDATE_IND16(jclub2o)
789UINT32 darkhors_state::screen_update_jclub2o(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
789790{
790   darkhors_state *state = screen.machine().driver_data<darkhors_state>();
791   state->m_gdfs_st0020->st0020_draw_all(screen.machine(), bitmap, cliprect);
791   m_gdfs_st0020->st0020_draw_all(screen.machine(), bitmap, cliprect);
792792   return 0;
793793}
794794
r17967r17968
810810   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
811811   MCFG_SCREEN_SIZE(0x190, 0x100)
812812   MCFG_SCREEN_VISIBLE_AREA(0, 0x190-1, 8, 0x100-8-1)
813   MCFG_SCREEN_UPDATE_STATIC(jclub2o)
813   MCFG_SCREEN_UPDATE_DRIVER(darkhors_state, screen_update_jclub2o)
814814
815815   MCFG_PALETTE_LENGTH(0x10000)
816816   MCFG_DEVICE_ADD("st0020_spr", ST0020_SPRITES, 0)
trunk/src/mame/drivers/rmhaihai.c
r17967r17968
5959   TILE_GET_INFO_MEMBER(get_bg_tile_info);
6060   virtual void video_start();
6161   DECLARE_MACHINE_RESET(themj);
62   UINT32 screen_update_rmhaihai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6263};
6364
6465
r17967r17968
9091      8, 8, 64, 32);
9192}
9293
93static SCREEN_UPDATE_IND16( rmhaihai )
94UINT32 rmhaihai_state::screen_update_rmhaihai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
9495{
95   rmhaihai_state *state = screen.machine().driver_data<rmhaihai_state>();
96   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
96   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
9797   return 0;
9898}
9999
r17967r17968
477477   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
478478   MCFG_SCREEN_SIZE(64*8, 32*8)
479479   MCFG_SCREEN_VISIBLE_AREA(4*8, 60*8-1, 2*8, 30*8-1)
480   MCFG_SCREEN_UPDATE_STATIC(rmhaihai)
480   MCFG_SCREEN_UPDATE_DRIVER(rmhaihai_state, screen_update_rmhaihai)
481481
482482   MCFG_GFXDECODE(rmhaihai)
483483   MCFG_PALETTE_LENGTH(0x100)
trunk/src/mame/drivers/topspeed.c
r17967r17968
769769   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
770770   MCFG_SCREEN_SIZE(40*8, 32*8)
771771   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
772   MCFG_SCREEN_UPDATE_STATIC(topspeed)
772   MCFG_SCREEN_UPDATE_DRIVER(topspeed_state, screen_update_topspeed)
773773
774774   MCFG_GFXDECODE(topspeed)
775775   MCFG_PALETTE_LENGTH(8192)
trunk/src/mame/drivers/amspdwy.c
r17967r17968
288288   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
289289   MCFG_SCREEN_SIZE(256, 256)
290290   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1)
291   MCFG_SCREEN_UPDATE_STATIC(amspdwy)
291   MCFG_SCREEN_UPDATE_DRIVER(amspdwy_state, screen_update_amspdwy)
292292
293293   MCFG_GFXDECODE(amspdwy)
294294   MCFG_PALETTE_LENGTH(32)
trunk/src/mame/drivers/segae.c
r17967r17968
347347   int m_last2;
348348   int m_diff1;
349349   int m_diff2;
350   UINT32 screen_update_systeme(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
350351};
351352
352353class fantzn2_state : public systeme_state
r17967r17968
10741075};
10751076
10761077
1077static SCREEN_UPDATE_RGB32( systeme )
1078UINT32 systeme_state::screen_update_systeme(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
10781079{
1079   systeme_state *state = screen.machine().driver_data<systeme_state>();
1080   bitmap_rgb32 &vdp1_bitmap = state->m_vdp1->get_bitmap();
1081   bitmap_rgb32 &vdp2_bitmap = state->m_vdp2->get_bitmap();
1082   bitmap_ind8 &vdp2_y1 = state->m_vdp2->get_y1_bitmap();
1080   bitmap_rgb32 &vdp1_bitmap = m_vdp1->get_bitmap();
1081   bitmap_rgb32 &vdp2_bitmap = m_vdp2->get_bitmap();
1082   bitmap_ind8 &vdp2_y1 = m_vdp2->get_y1_bitmap();
10831083
10841084   for( int y = cliprect.min_y; y <= cliprect.max_y; y++ )
10851085   {
r17967r17968
11181118   MCFG_SCREEN_RAW_PARAMS(XTAL_10_738635MHz/2, \
11191119      SEGA315_5124_WIDTH , SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256, \
11201120      SEGA315_5124_HEIGHT_NTSC, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_192_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_192_TBORDER_HEIGHT + 192)
1121   MCFG_SCREEN_UPDATE_STATIC( systeme )   /* Combines and copies a bitmap */
1121   MCFG_SCREEN_UPDATE_DRIVER(systeme_state, screen_update_systeme)
11221122
11231123   MCFG_PALETTE_LENGTH(SEGA315_5124_PALETTE_SIZE)
11241124   MCFG_PALETTE_INIT(sega315_5124)
trunk/src/mame/drivers/fantland.c
r17967r17968
865865   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
866866   MCFG_SCREEN_SIZE(352,256)
867867   MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 256-1)
868   MCFG_SCREEN_UPDATE_STATIC(fantland)
868   MCFG_SCREEN_UPDATE_DRIVER(fantland_state, screen_update_fantland)
869869
870870   MCFG_GFXDECODE(fantland)
871871   MCFG_PALETTE_LENGTH(256)
r17967r17968
915915   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
916916   MCFG_SCREEN_SIZE(352,256)
917917   MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 256-1)
918   MCFG_SCREEN_UPDATE_STATIC(fantland)
918   MCFG_SCREEN_UPDATE_DRIVER(fantland_state, screen_update_fantland)
919919
920920   MCFG_GFXDECODE(fantland)
921921   MCFG_PALETTE_LENGTH(256)
r17967r17968
10191019   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
10201020   MCFG_SCREEN_SIZE(352,256)
10211021   MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 256-1)
1022   MCFG_SCREEN_UPDATE_STATIC(fantland)
1022   MCFG_SCREEN_UPDATE_DRIVER(fantland_state, screen_update_fantland)
10231023
10241024   MCFG_GFXDECODE(fantland)
10251025   MCFG_PALETTE_LENGTH(256)
r17967r17968
10591059   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
10601060   MCFG_SCREEN_SIZE(256,224)
10611061   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 224-1)
1062   MCFG_SCREEN_UPDATE_STATIC(fantland)
1062   MCFG_SCREEN_UPDATE_DRIVER(fantland_state, screen_update_fantland)
10631063
10641064   MCFG_GFXDECODE(fantland)
10651065   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/atarig1.c
r17967r17968
463463   MCFG_SCREEN_ADD("screen", RASTER)
464464   /* note: these parameters are from published specs, not derived */
465465   MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
466   MCFG_SCREEN_UPDATE_STATIC(atarig1)
467   MCFG_SCREEN_VBLANK_STATIC(atarig1)
466   MCFG_SCREEN_UPDATE_DRIVER(atarig1_state, screen_update_atarig1)
467   MCFG_SCREEN_VBLANK_DRIVER(atarig1_state, screen_eof_atarig1)
468468
469469   MCFG_VIDEO_START_OVERRIDE(atarig1_state,atarig1)
470470
trunk/src/mame/drivers/toobin.c
r17967r17968
237237
238238   MCFG_SCREEN_ADD("screen", RASTER)
239239   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 640, 0, 512, 416, 0, 384)
240   MCFG_SCREEN_UPDATE_STATIC(toobin)
240   MCFG_SCREEN_UPDATE_DRIVER(toobin_state, screen_update_toobin)
241241
242242   MCFG_GFXDECODE(toobin)
243243   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/albazc.c
r17967r17968
3434   DECLARE_WRITE8_MEMBER(albazc_vregs_w);
3535   virtual void video_start();
3636   virtual void palette_init();
37   UINT32 screen_update_hanaroku(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3738};
3839
3940
r17967r17968
8788   }
8889}
8990
90static SCREEN_UPDATE_IND16(hanaroku)
91UINT32 albazc_state::screen_update_hanaroku(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
9192{
9293   bitmap.fill(0x1f0, cliprect);   // ???
9394   draw_sprites(screen.machine(), bitmap, cliprect);
r17967r17968
278279   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
279280   MCFG_SCREEN_SIZE(64*8, 64*8)
280281   MCFG_SCREEN_VISIBLE_AREA(0, 48*8-1, 2*8, 30*8-1)
281   MCFG_SCREEN_UPDATE_STATIC(hanaroku)
282   MCFG_SCREEN_UPDATE_DRIVER(albazc_state, screen_update_hanaroku)
282283
283284   MCFG_GFXDECODE(hanaroku)
284285   MCFG_PALETTE_LENGTH(0x200)
trunk/src/mame/drivers/legionna.c
r17967r17968
10641064   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
10651065   MCFG_SCREEN_SIZE(36*8, 36*8)
10661066   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1067   MCFG_SCREEN_UPDATE_STATIC(legionna)
1067   MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_legionna)
10681068
10691069   MCFG_GFXDECODE(legionna)
10701070   MCFG_PALETTE_LENGTH(128*16)
r17967r17968
10941094   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
10951095   MCFG_SCREEN_SIZE(36*8, 36*8)
10961096   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
1097   MCFG_SCREEN_UPDATE_STATIC(legionna)
1097   MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_legionna)
10981098
10991099   MCFG_GFXDECODE(heatbrl)
11001100   MCFG_PALETTE_LENGTH(128*16)
r17967r17968
11231123   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
11241124   MCFG_SCREEN_SIZE(42*8, 36*8)
11251125   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
1126   MCFG_SCREEN_UPDATE_STATIC(godzilla)
1126   MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_godzilla)
11271127
11281128   MCFG_GFXDECODE(heatbrl)
11291129   MCFG_PALETTE_LENGTH(128*16)
r17967r17968
11521152   MCFG_SCREEN_REFRESH_RATE(61)
11531153   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
11541154   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 32*8-1)
1155   MCFG_SCREEN_UPDATE_STATIC(godzilla)
1155   MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_godzilla)
11561156
11571157   MCFG_GFXDECODE(heatbrl)
11581158   MCFG_PALETTE_LENGTH(128*16)
r17967r17968
11811181   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
11821182   MCFG_SCREEN_SIZE(64*8, 36*8)
11831183   MCFG_SCREEN_VISIBLE_AREA(2*8, 42*8-1, 2*8, 30*8-1)
1184   MCFG_SCREEN_UPDATE_STATIC(grainbow)
1184   MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_grainbow)
11851185
11861186   MCFG_GFXDECODE(grainbow)
11871187   MCFG_PALETTE_LENGTH(128*16)
r17967r17968
12111211   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
12121212   MCFG_SCREEN_SIZE(42*8, 36*8)
12131213   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 32*8-1)
1214   MCFG_SCREEN_UPDATE_STATIC(grainbow)
1214   MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_grainbow)
12151215
12161216   MCFG_GFXDECODE(cupsoc)
12171217   MCFG_PALETTE_LENGTH(128*16)
r17967r17968
12491249   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
12501250   MCFG_SCREEN_SIZE(42*8, 36*8)
12511251   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 32*8-1)
1252   MCFG_SCREEN_UPDATE_STATIC(grainbow)
1252   MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_grainbow)
12531253
12541254   MCFG_GFXDECODE(heatbrl_csb)
12551255   MCFG_PALETTE_LENGTH(128*16)
trunk/src/mame/drivers/midas.c
r17967r17968
7878   DECLARE_DRIVER_INIT(livequiz);
7979   TILE_GET_INFO_MEMBER(get_tile_info);
8080   virtual void video_start();
81   UINT32 screen_update_midas(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8182};
8283
8384
8485
85static SCREEN_UPDATE_IND16( midas );
8686
8787
88
8889TILE_GET_INFO_MEMBER(midas_state::get_tile_info)
8990{
9091   UINT16 code = m_gfxram[ tile_index + 0x7000 ];
r17967r17968
184185   }
185186}
186187
187static SCREEN_UPDATE_IND16( midas )
188UINT32 midas_state::screen_update_midas(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
188189{
189   midas_state *state = screen.machine().driver_data<midas_state>();
190190   int layers_ctrl = -1;
191191
192192#ifdef MAME_DEBUG
193193   if ( screen.machine().input().code_pressed(KEYCODE_Z) )
194194   {
195195      int msk = 0;
196      if (screen.machine().input().code_pressed(KEYCODE_Q))   msk |= 1 << 0;   // for state->m_tmap
196      if (screen.machine().input().code_pressed(KEYCODE_Q))   msk |= 1 << 0;   // for m_tmap
197197      if (screen.machine().input().code_pressed(KEYCODE_A))   msk |= 1 << 1;   // for sprites
198198      if (msk != 0) layers_ctrl &= msk;
199199   }
r17967r17968
202202   bitmap.fill(4095, cliprect);
203203
204204   if (layers_ctrl & 2)   draw_sprites(screen.machine(), bitmap,cliprect);
205   if (layers_ctrl & 1)   state->m_tmap->draw(bitmap, cliprect, 0, 0);
205   if (layers_ctrl & 1)   m_tmap->draw(bitmap, cliprect, 0, 0);
206206
207207   return 0;
208208}
r17967r17968
711711   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
712712   MCFG_SCREEN_SIZE(320, 256)
713713   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-16-1)
714   MCFG_SCREEN_UPDATE_STATIC(midas)
714   MCFG_SCREEN_UPDATE_DRIVER(midas_state, screen_update_midas)
715715
716716   MCFG_GFXDECODE(midas)
717717   MCFG_PALETTE_LENGTH(0x10000)
r17967r17968
744744   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
745745   MCFG_SCREEN_SIZE(320, 256)
746746   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-16-1)
747   MCFG_SCREEN_UPDATE_STATIC(midas)
747   MCFG_SCREEN_UPDATE_DRIVER(midas_state, screen_update_midas)
748748
749749   MCFG_GFXDECODE(midas)
750750   MCFG_PALETTE_LENGTH(0x10000)
trunk/src/mame/drivers/aristmk4.c
r17967r17968
321321   virtual void video_start();
322322   virtual void palette_init();
323323   DECLARE_PALETTE_INIT(lions);
324   UINT32 screen_update_aristmk4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
324325};
325326
326327/* Partial Cashcade protocol */
r17967r17968
370371   }
371372}
372373
373static SCREEN_UPDATE_IND16(aristmk4)
374UINT32 aristmk4_state::screen_update_aristmk4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
374375{
375   aristmk4_state *state = screen.machine().driver_data<aristmk4_state>();
376376   gfx_element *gfx = screen.machine().gfx[0];
377377   int x,y;
378378   int count = 0;
r17967r17968
386386   {
387387      for (x=38;x--;)
388388      {
389      color = ((state->m_mkiv_vram[count]) & 0xe0) >> 5;
390         tile = (state->m_mkiv_vram[count+1]|state->m_mkiv_vram[count]<<8) & 0x3ff;
391         bgtile = (state->m_mkiv_vram[count+1]|state->m_mkiv_vram[count]<<8) & 0xff; // first 256 tiles
389      color = ((m_mkiv_vram[count]) & 0xe0) >> 5;
390         tile = (m_mkiv_vram[count+1]|m_mkiv_vram[count]<<8) & 0x3ff;
391         bgtile = (m_mkiv_vram[count+1]|m_mkiv_vram[count]<<8) & 0xff; // first 256 tiles
392392         uBackgroundColour(screen.machine());   // read sw7
393393         gfx->decode(bgtile);   // force the machine to update only the first 256 tiles.
394394                        // as we only update the background, not the entire display.
395         flipx = ((state->m_mkiv_vram[count]) & 0x04);
396         flipy = ((state->m_mkiv_vram[count]) & 0x08);
395         flipx = ((m_mkiv_vram[count]) & 0x04);
396         flipy = ((m_mkiv_vram[count]) & 0x08);
397397         drawgfx_opaque(bitmap,cliprect,gfx,tile,color,flipx,flipy,(38-x-1)<<3,(27-y-1)<<3);
398398         count+=2;
399399      }
r17967r17968
16991699   MCFG_GFXDECODE(aristmk4)
17001700   MCFG_PALETTE_LENGTH(512)
17011701
1702   MCFG_SCREEN_UPDATE_STATIC(aristmk4)
1702   MCFG_SCREEN_UPDATE_DRIVER(aristmk4_state, screen_update_aristmk4)
17031703
17041704   MCFG_I8255A_ADD( "ppi8255_0", ppi8255_intf )
17051705   MCFG_VIA6522_ADD("via6522_0", 0, via_interface)   /* 1 MHz.(only 1 or 2 MHz.are valid) */
trunk/src/mame/drivers/thunderx.c
r17967r17968
674674   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
675675   MCFG_SCREEN_SIZE(64*8, 32*8)
676676   MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
677   MCFG_SCREEN_UPDATE_STATIC(scontra)
677   MCFG_SCREEN_UPDATE_DRIVER(thunderx_state, screen_update_scontra)
678678
679679   MCFG_PALETTE_LENGTH(1024)
680680
r17967r17968
717717   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
718718   MCFG_SCREEN_SIZE(64*8, 32*8)
719719   MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
720   MCFG_SCREEN_UPDATE_STATIC(scontra)
720   MCFG_SCREEN_UPDATE_DRIVER(thunderx_state, screen_update_scontra)
721721
722722   MCFG_PALETTE_LENGTH(1024)
723723
trunk/src/mame/drivers/galaxi.c
r17967r17968
9494   virtual void machine_start();
9595   virtual void machine_reset();
9696   virtual void video_start();
97   UINT32 screen_update_galaxi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
9798};
9899
99100
r17967r17968
181182   m_bg3_tmap->set_scrolldx(-8, 0);
182183}
183184
184static SCREEN_UPDATE_IND16(galaxi)
185UINT32 galaxi_state::screen_update_galaxi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
185186{
186   galaxi_state *state = screen.machine().driver_data<galaxi_state>();
187187   int layers_ctrl = -1;
188188
189189#ifdef MAME_DEBUG
r17967r17968
199199   }
200200#endif
201201
202   if (layers_ctrl & 1)   state->m_bg1_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
202   if (layers_ctrl & 1)   m_bg1_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
203203   else            bitmap.fill(get_black_pen(screen.machine()), cliprect);
204   if (layers_ctrl & 2)   state->m_bg2_tmap->draw(bitmap, cliprect, 0, 0);
205   if (layers_ctrl & 4)   state->m_bg3_tmap->draw(bitmap, cliprect, 0, 0);
206   if (layers_ctrl & 8)   state->m_bg4_tmap->draw(bitmap, cliprect, 0, 0);
204   if (layers_ctrl & 2)   m_bg2_tmap->draw(bitmap, cliprect, 0, 0);
205   if (layers_ctrl & 4)   m_bg3_tmap->draw(bitmap, cliprect, 0, 0);
206   if (layers_ctrl & 8)   m_bg4_tmap->draw(bitmap, cliprect, 0, 0);
207207
208   if (layers_ctrl & 16)   state->m_fg_tmap->draw(bitmap, cliprect, 0, 0);
208   if (layers_ctrl & 16)   m_fg_tmap->draw(bitmap, cliprect, 0, 0);
209209
210210   return 0;
211211}
r17967r17968
416416   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
417417   MCFG_SCREEN_SIZE(512, 256)
418418   MCFG_SCREEN_VISIBLE_AREA(16*5, 512-16*2-1, 16*1, 256-1)
419   MCFG_SCREEN_UPDATE_STATIC(galaxi)
419   MCFG_SCREEN_UPDATE_DRIVER(galaxi_state, screen_update_galaxi)
420420
421421   MCFG_GFXDECODE(galaxi)
422422   MCFG_PALETTE_LENGTH(0x400)
trunk/src/mame/drivers/videopin.c
r17967r17968
333333   MCFG_SCREEN_REFRESH_RATE(60)
334334   MCFG_SCREEN_SIZE(304, 263)
335335   MCFG_SCREEN_VISIBLE_AREA(0, 303, 0, 255)
336   MCFG_SCREEN_UPDATE_STATIC(videopin)
336   MCFG_SCREEN_UPDATE_DRIVER(videopin_state, screen_update_videopin)
337337
338338   MCFG_GFXDECODE(videopin)
339339   MCFG_PALETTE_LENGTH(2)
trunk/src/mame/drivers/murogmbl.c
r17967r17968
4848   required_shared_ptr<UINT8> m_video;
4949   virtual void video_start();
5050   virtual void palette_init();
51   UINT32 screen_update_murogmbl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5152};
5253
5354
r17967r17968
9495
9596}
9697
97static SCREEN_UPDATE_IND16(murogmbl)
98UINT32 murogmbl_state::screen_update_murogmbl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
9899{
99   murogmbl_state *state = screen.machine().driver_data<murogmbl_state>();
100100   gfx_element *gfx = screen.machine().gfx[0];
101101   int count = 0;
102102
r17967r17968
106106   {
107107      for (x = 0; x < 32; x++)
108108      {
109         int tile = state->m_video[count];
109         int tile = m_video[count];
110110         drawgfx_opaque(bitmap, cliprect, gfx, tile, 0, 0, 0, x * 8, y * 8);
111111
112112         count++;
r17967r17968
194194   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
195195   MCFG_SCREEN_SIZE(64*8, 32*8)
196196   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
197   MCFG_SCREEN_UPDATE_STATIC(murogmbl)
197   MCFG_SCREEN_UPDATE_DRIVER(murogmbl_state, screen_update_murogmbl)
198198
199199   MCFG_PALETTE_LENGTH(0x100)
200200
trunk/src/mame/drivers/runaway.c
r17967r17968
359359   MCFG_SCREEN_REFRESH_RATE(60)
360360   MCFG_SCREEN_SIZE(256, 263)
361361   MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239)
362   MCFG_SCREEN_UPDATE_STATIC(runaway)
362   MCFG_SCREEN_UPDATE_DRIVER(runaway_state, screen_update_runaway)
363363
364364   MCFG_GFXDECODE(runaway)
365365   MCFG_PALETTE_LENGTH(16)
r17967r17968
387387
388388   MCFG_VIDEO_START_OVERRIDE(runaway_state,qwak)
389389   MCFG_SCREEN_MODIFY("screen")
390   MCFG_SCREEN_UPDATE_STATIC(qwak)
390   MCFG_SCREEN_UPDATE_DRIVER(runaway_state, screen_update_qwak)
391391
392392MACHINE_CONFIG_END
393393
trunk/src/mame/drivers/toypop.c
r17967r17968
572572   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
573573   MCFG_SCREEN_SIZE(36*8, 28*8)
574574   MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
575   MCFG_SCREEN_UPDATE_STATIC(toypop)
575   MCFG_SCREEN_UPDATE_DRIVER(toypop_state, screen_update_toypop)
576576
577577   MCFG_GFXDECODE(toypop)
578578   MCFG_PALETTE_LENGTH(128*4+64*4+16*2)
trunk/src/mame/drivers/tumbleb.c
r17967r17968
19881988   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
19891989   MCFG_SCREEN_SIZE(40*8, 32*8)
19901990   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
1991   MCFG_SCREEN_UPDATE_STATIC(tumblepb)
1991   MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_tumblepb)
19921992
19931993   MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
19941994   decospr_device::set_gfx_region(*device, 3);
r17967r17968
20232023   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
20242024   MCFG_SCREEN_SIZE(40*8, 32*8)
20252025   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
2026   MCFG_SCREEN_UPDATE_STATIC(tumblepb)
2026   MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_tumblepb)
20272027
20282028   MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
20292029   decospr_device::set_gfx_region(*device, 3);
r17967r17968
20612061   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
20622062   MCFG_SCREEN_SIZE(40*8, 32*8)
20632063   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
2064   MCFG_SCREEN_UPDATE_STATIC(jumpkids)
2064   MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_jumpkids)
20652065
20662066   MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
20672067   decospr_device::set_gfx_region(*device, 3);
r17967r17968
20952095   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
20962096   MCFG_SCREEN_SIZE(40*8, 32*8)
20972097   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
2098   MCFG_SCREEN_UPDATE_STATIC(fncywld)
2098   MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_fncywld)
20992099
21002100   MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
21012101   decospr_device::set_gfx_region(*device, 3);
r17967r17968
21652165   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2400)) // ?? cookbib needs it above ~2400 or the Joystick on the How to Play screen is the wrong colour?!
21662166   MCFG_SCREEN_SIZE(40*8, 32*8)
21672167   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
2168   MCFG_SCREEN_UPDATE_STATIC(semicom)
2168   MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_semicom)
21692169
21702170   MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
21712171   decospr_device::set_gfx_region(*device, 3);
r17967r17968
21912191
21922192static MACHINE_CONFIG_DERIVED( cookbib, htchctch )
21932193   MCFG_SCREEN_MODIFY("screen")
2194   MCFG_SCREEN_UPDATE_STATIC( semicom_altoffsets )
2194   MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_semicom_altoffsets)
21952195MACHINE_CONFIG_END
21962196
21972197static MACHINE_CONFIG_DERIVED( cookbib_mcu, htchctch )
r17967r17968
22032203
22042204   /* video hardware */
22052205   MCFG_SCREEN_MODIFY("screen")
2206   MCFG_SCREEN_UPDATE_STATIC( semicom_altoffsets )
2206   MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_semicom_altoffsets)
22072207MACHINE_CONFIG_END
22082208
22092209static MACHINE_CONFIG_DERIVED( bcstory, htchctch )
22102210   MCFG_SCREEN_MODIFY("screen")
2211   MCFG_SCREEN_UPDATE_STATIC(bcstory)
2211   MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_bcstory)
22122212
22132213   MCFG_SOUND_REPLACE("ymsnd", YM2151, 3427190)
22142214   MCFG_SOUND_CONFIG(semicom_ym2151_interface)
r17967r17968
22182218
22192219static MACHINE_CONFIG_DERIVED( semibase, bcstory )
22202220   MCFG_SCREEN_MODIFY("screen")
2221   MCFG_SCREEN_UPDATE_STATIC(semibase )
2221   MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_semibase)
22222222MACHINE_CONFIG_END
22232223
22242224static MACHINE_CONFIG_DERIVED( sdfight, bcstory )
22252225   MCFG_VIDEO_START_OVERRIDE(tumbleb_state,sdfight)
22262226   MCFG_SCREEN_MODIFY("screen")
2227   MCFG_SCREEN_UPDATE_STATIC(sdfight)
2227   MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_sdfight)
22282228MACHINE_CONFIG_END
22292229
22302230
r17967r17968
22582258   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
22592259   MCFG_SCREEN_SIZE(40*8, 32*8)
22602260   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8-1, 31*8-2)
2261   MCFG_SCREEN_UPDATE_STATIC(suprtrio)
2261   MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_suprtrio)
22622262
22632263   MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
22642264   decospr_device::set_gfx_region(*device, 3);
r17967r17968
22932293   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1529))
22942294   MCFG_SCREEN_SIZE(40*8, 32*8)
22952295   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
2296   MCFG_SCREEN_UPDATE_STATIC(pangpang)
2296   MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_pangpang)
22972297
22982298   MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
22992299   decospr_device::set_gfx_region(*device, 3);
trunk/src/mame/drivers/cd32.c
r17967r17968
782782   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
783783   MCFG_SCREEN_SIZE(512*2, 312)
784784   MCFG_SCREEN_VISIBLE_AREA((129-8-8)*2, (449+8-1+8)*2, 44-8, 300+8-1)
785   MCFG_SCREEN_UPDATE_STATIC(amiga_aga)
785   MCFG_SCREEN_UPDATE_DRIVER(amiga_state, screen_update_amiga_aga)
786786
787787   MCFG_VIDEO_START_OVERRIDE(cd32_state,amiga_aga)
788788
trunk/src/mame/drivers/bmcpokr.c
r17967r17968
6060   required_device<cpu_device> m_maincpu;
6161   required_shared_ptr<UINT16> m_videoram;
6262   virtual void video_start();
63   UINT32 screen_update_bmcpokr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6364};
6465
6566
r17967r17968
198199   GFXDECODE_ENTRY( "gfx1", 0, tiles8x8_layout, 0, 16 )
199200GFXDECODE_END
200201
201SCREEN_UPDATE_IND16( bmcpokr )
202UINT32 bmcpokr_state::screen_update_bmcpokr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
202203{
203   bmcpokr_state *state = screen.machine().driver_data<bmcpokr_state>();
204204   gfx_element *gfx = screen.machine().gfx[0];
205205
206206   int count = 0;
r17967r17968
208208   {
209209      for (int x=0;x<64;x++)
210210      {
211         UINT16 data = state->m_videoram[count];
211         UINT16 data = m_videoram[count];
212212         count++;
213213
214214         drawgfx_opaque(bitmap,cliprect,gfx,data,0,0,0,x*8,y*8);
r17967r17968
235235   MCFG_SCREEN_ADD("screen", RASTER)
236236   MCFG_SCREEN_REFRESH_RATE(60)
237237   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
238   MCFG_SCREEN_UPDATE_STATIC(bmcpokr)
238   MCFG_SCREEN_UPDATE_DRIVER(bmcpokr_state, screen_update_bmcpokr)
239239
240240   MCFG_GFXDECODE(bmcpokr)
241241
trunk/src/mame/drivers/taitotz.c
r17967r17968
524524   virtual void machine_start();
525525   virtual void machine_reset();
526526   virtual void video_start();
527   UINT32 screen_update_taitotz(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
527528};
528529
529530
r17967r17968
12791280   wait("render_polygons");
12801281}
12811282
1282static SCREEN_UPDATE_RGB32( taitotz )
1283UINT32 taitotz_state::screen_update_taitotz(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
12831284{
1284   taitotz_state *state = screen.machine().driver_data<taitotz_state>();
12851285
12861286   bitmap.fill(0x000000, cliprect);
1287   state->m_renderer->set_fb(&bitmap);
1288   state->m_renderer->render_displaylist(screen.machine(), cliprect);
1287   m_renderer->set_fb(&bitmap);
1288   m_renderer->render_displaylist(screen.machine(), cliprect);
12891289
12901290
1291   UINT16 *screen_src = (UINT16*)&state->m_screen_ram[state->m_scr_base];
1291   UINT16 *screen_src = (UINT16*)&m_screen_ram[m_scr_base];
12921292
12931293   for (int j=0; j < 384; j++)
12941294   {
r17967r17968
25022502   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
25032503   MCFG_SCREEN_SIZE(512, 384)
25042504   MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383)
2505   MCFG_SCREEN_UPDATE_STATIC(taitotz)
2505   MCFG_SCREEN_UPDATE_DRIVER(taitotz_state, screen_update_taitotz)
25062506
25072507MACHINE_CONFIG_END
25082508
trunk/src/mame/drivers/cabaret.c
r17967r17968
5555   TILE_GET_INFO_MEMBER(get_fg_tile_info);
5656   virtual void machine_reset();
5757   virtual void video_start();
58   UINT32 screen_update_cabaret(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5859};
5960
6061
r17967r17968
112113}
113114
114115
115static SCREEN_UPDATE_IND16(cabaret)
116UINT32 cabaret_state::screen_update_cabaret(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
116117{
117   cabaret_state *state = screen.machine().driver_data<cabaret_state>();
118118   bitmap.fill(get_black_pen(screen.machine()), cliprect);
119119
120   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
120   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
121121
122   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
122   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
123123
124124   return 0;
125125}
r17967r17968
345345   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
346346   MCFG_SCREEN_SIZE(512, 256)
347347   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
348   MCFG_SCREEN_UPDATE_STATIC(cabaret)
348   MCFG_SCREEN_UPDATE_DRIVER(cabaret_state, screen_update_cabaret)
349349
350350   MCFG_GFXDECODE(cabaret)
351351   MCFG_PALETTE_LENGTH(0x800)
trunk/src/mame/drivers/momoko.c
r17967r17968
275275   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
276276   MCFG_SCREEN_SIZE(32*8, 32*8)
277277   MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 29*8-1)
278   MCFG_SCREEN_UPDATE_STATIC(momoko)
278   MCFG_SCREEN_UPDATE_DRIVER(momoko_state, screen_update_momoko)
279279
280280   MCFG_GFXDECODE(momoko)
281281   MCFG_PALETTE_LENGTH(512)
trunk/src/mame/drivers/kchamp.c
r17967r17968
430430   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
431431   MCFG_SCREEN_SIZE(32*8, 32*8)
432432   MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 2*8, 30*8-1)
433   MCFG_SCREEN_UPDATE_STATIC(kchampvs)
433   MCFG_SCREEN_UPDATE_DRIVER(kchamp_state, screen_update_kchampvs)
434434
435435   MCFG_GFXDECODE(kchamp)
436436   MCFG_PALETTE_LENGTH(256)
r17967r17968
477477   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
478478   MCFG_SCREEN_SIZE(32*8, 32*8)
479479   MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 2*8, 30*8-1)
480   MCFG_SCREEN_UPDATE_STATIC(kchamp)
480   MCFG_SCREEN_UPDATE_DRIVER(kchamp_state, screen_update_kchamp)
481481
482482   MCFG_GFXDECODE(kchamp)
483483   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/olibochu.c
r17967r17968
8686   virtual void machine_reset();
8787   virtual void video_start();
8888   virtual void palette_init();
89   UINT32 screen_update_olibochu(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8990};
9091
9192
r17967r17968
226227   }
227228}
228229
229static SCREEN_UPDATE_IND16( olibochu )
230UINT32 olibochu_state::screen_update_olibochu(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
230231{
231   olibochu_state *state = screen.machine().driver_data<olibochu_state>();
232   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
232   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
233233   draw_sprites(screen.machine(), bitmap, cliprect);
234234   return 0;
235235}
r17967r17968
463463   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
464464   MCFG_SCREEN_SIZE(32*8, 32*8)
465465   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
466   MCFG_SCREEN_UPDATE_STATIC(olibochu)
466   MCFG_SCREEN_UPDATE_DRIVER(olibochu_state, screen_update_olibochu)
467467
468468   MCFG_GFXDECODE(olibochu)
469469   MCFG_PALETTE_LENGTH(512)
trunk/src/mame/drivers/ultratnk.c
r17967r17968
301301   /* video hardware */
302302   MCFG_SCREEN_ADD("screen", RASTER)
303303   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, 0, 256, VTOTAL, 0, 224)
304   MCFG_SCREEN_UPDATE_STATIC(ultratnk)
305   MCFG_SCREEN_VBLANK_STATIC(ultratnk)
304   MCFG_SCREEN_UPDATE_DRIVER(ultratnk_state, screen_update_ultratnk)
305   MCFG_SCREEN_VBLANK_DRIVER(ultratnk_state, screen_eof_ultratnk)
306306
307307   MCFG_GFXDECODE(ultratnk)
308308   MCFG_PALETTE_LENGTH(10)
trunk/src/mame/drivers/m90.c
r17967r17968
732732   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
733733   MCFG_SCREEN_SIZE(64*8, 64*8)
734734   MCFG_SCREEN_VISIBLE_AREA(6*8, 54*8-1, 17*8, 47*8-1)
735   MCFG_SCREEN_UPDATE_STATIC(m90)
735   MCFG_SCREEN_UPDATE_DRIVER(m90_state, screen_update_m90)
736736
737737   MCFG_GFXDECODE(m90)
738738   MCFG_PALETTE_LENGTH(512)
r17967r17968
818818
819819   MCFG_SCREEN_MODIFY("screen")
820820   MCFG_SCREEN_VISIBLE_AREA(10*8, 50*8-1, 17*8, 47*8-1)
821   MCFG_SCREEN_UPDATE_STATIC(bomblord)
821   MCFG_SCREEN_UPDATE_DRIVER(m90_state, screen_update_bomblord)
822822
823823   MCFG_VIDEO_START_OVERRIDE(m90_state,bomblord)
824824MACHINE_CONFIG_END
r17967r17968
837837   MCFG_SCREEN_MODIFY("screen")
838838   MCFG_SCREEN_SIZE(320, 240)
839839   MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
840   MCFG_SCREEN_UPDATE_STATIC(dynablsb)
840   MCFG_SCREEN_UPDATE_DRIVER(m90_state, screen_update_dynablsb)
841841
842842   MCFG_VIDEO_START_OVERRIDE(m90_state,dynablsb)
843843
trunk/src/mame/drivers/tugboat.c
r17967r17968
4949   DECLARE_WRITE8_MEMBER(tugboat_ctrl_w);
5050   virtual void machine_reset();
5151   virtual void palette_init();
52   UINT32 screen_update_tugboat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5253};
5354
5455
r17967r17968
132133   }
133134}
134135
135static SCREEN_UPDATE_IND16( tugboat )
136UINT32 tugboat_state::screen_update_tugboat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
136137{
137   tugboat_state *state = screen.machine().driver_data<tugboat_state>();
138   int startaddr0 = state->m_hd46505_0_reg[0x0c]*256 + state->m_hd46505_0_reg[0x0d];
139   int startaddr1 = state->m_hd46505_1_reg[0x0c]*256 + state->m_hd46505_1_reg[0x0d];
138   int startaddr0 = m_hd46505_0_reg[0x0c]*256 + m_hd46505_0_reg[0x0d];
139   int startaddr1 = m_hd46505_1_reg[0x0c]*256 + m_hd46505_1_reg[0x0d];
140140
141141
142142   draw_tilemap(screen.machine(), bitmap,cliprect,startaddr0,0,1,FALSE);
r17967r17968
343343   MCFG_SCREEN_REFRESH_RATE(60)
344344   MCFG_SCREEN_SIZE(32*8,32*8)
345345   MCFG_SCREEN_VISIBLE_AREA(1*8,31*8-1,2*8,30*8-1)
346   MCFG_SCREEN_UPDATE_STATIC(tugboat)
346   MCFG_SCREEN_UPDATE_DRIVER(tugboat_state, screen_update_tugboat)
347347
348348   MCFG_GFXDECODE(tugboat)
349349   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/kingdrby.c
r17967r17968
110110   virtual void video_start();
111111   DECLARE_PALETTE_INIT(kingdrby);
112112   DECLARE_PALETTE_INIT(kingdrbb);
113   UINT32 screen_update_kingdrby(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
113114};
114115
115116
r17967r17968
227228   }
228229}
229230
230static SCREEN_UPDATE_IND16(kingdrby)
231UINT32 kingdrby_state::screen_update_kingdrby(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
231232{
232   kingdrby_state *state = screen.machine().driver_data<kingdrby_state>();
233233   const rectangle &visarea = screen.visible_area();
234234   rectangle clip;
235   state->m_sc0_tilemap->set_scrollx(0, state->m_vram[0x342]);
236   state->m_sc0_tilemap->set_scrolly(0, state->m_vram[0x341]);
237   state->m_sc1_tilemap->set_scrollx(0, state->m_vram[0x342]);
238   state->m_sc1_tilemap->set_scrolly(0, state->m_vram[0x341]);
239   state->m_sc0w_tilemap->set_scrolly(0, 32);
235   m_sc0_tilemap->set_scrollx(0, m_vram[0x342]);
236   m_sc0_tilemap->set_scrolly(0, m_vram[0x341]);
237   m_sc1_tilemap->set_scrollx(0, m_vram[0x342]);
238   m_sc1_tilemap->set_scrolly(0, m_vram[0x341]);
239   m_sc0w_tilemap->set_scrolly(0, 32);
240240
241241   /* maybe it needs two window tilemaps? (one at the top, the other at the bottom)*/
242242   clip.set(visarea.min_x, 256, 192, visarea.max_y);
243243
244244   /*TILEMAP_DRAW_CATEGORY + TILEMAP_DRAW_OPAQUE doesn't suit well?*/
245   state->m_sc0_tilemap->draw(bitmap, cliprect, 0,0);
245   m_sc0_tilemap->draw(bitmap, cliprect, 0,0);
246246   draw_sprites(screen.machine(),bitmap,cliprect);
247   state->m_sc1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1),0);
248   state->m_sc0w_tilemap->draw(bitmap, clip, 0,0);
247   m_sc1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1),0);
248   m_sc0w_tilemap->draw(bitmap, clip, 0,0);
249249
250250   return 0;
251251}
r17967r17968
10441044   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
10451045   MCFG_SCREEN_SIZE(256, 256)
10461046   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 224-1)   /* controlled by CRTC */
1047   MCFG_SCREEN_UPDATE_STATIC(kingdrby)
1047   MCFG_SCREEN_UPDATE_DRIVER(kingdrby_state, screen_update_kingdrby)
10481048
10491049
10501050   MCFG_MC6845_ADD("crtc", MC6845, CLK_1/32, mc6845_intf)   /* 53.333 Hz. guess */
trunk/src/mame/drivers/phoenix.c
r17967r17968
461461   /* video hardware */
462462   MCFG_SCREEN_ADD("screen", RASTER)
463463   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
464   MCFG_SCREEN_UPDATE_STATIC(phoenix)
464   MCFG_SCREEN_UPDATE_DRIVER(phoenix_state, screen_update_phoenix)
465465
466466   MCFG_GFXDECODE(phoenix)
467467   MCFG_PALETTE_LENGTH(256)
r17967r17968
534534     */
535535   MCFG_SCREEN_ADD("screen", RASTER)
536536   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
537   MCFG_SCREEN_UPDATE_STATIC(phoenix)
537   MCFG_SCREEN_UPDATE_DRIVER(phoenix_state, screen_update_phoenix)
538538
539539   MCFG_GFXDECODE(phoenix)
540540   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/r2dx_v33.c
r17967r17968
7070   tilemap_t *m_fg_tilemap;
7171   tilemap_t *m_tx_tilemap;
7272   virtual void video_start();
73   UINT32 screen_update_rdx_v33(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7374};
7475
7576
r17967r17968
213214   m_tx_tilemap->set_transparent_pen(15);
214215}
215216
216static SCREEN_UPDATE_IND16( rdx_v33 )
217UINT32 r2dx_v33_state::screen_update_rdx_v33(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
217218{
218   r2dx_v33_state *state = screen.machine().driver_data<r2dx_v33_state>();
219219   bitmap.fill(get_black_pen(screen.machine()), cliprect);
220220
221   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
222   state->m_md_tilemap->draw(bitmap, cliprect, 0, 0);
223   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
221   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
222   m_md_tilemap->draw(bitmap, cliprect, 0, 0);
223   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
224224
225225   draw_sprites(screen.machine(),bitmap,cliprect,0);
226226
227   state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
227   m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
228228
229229   /* debug DMA processing */
230230   if(0)
r17967r17968
258258         }
259259
260260         popmessage("%08x 1",src_addr);
261         state->m_bg_tilemap->mark_all_dirty();
261         m_bg_tilemap->mark_all_dirty();
262262         frame = 0;
263263         src_addr+=0x800;
264264      }
r17967r17968
704704   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
705705   MCFG_SCREEN_SIZE(64*8, 64*8)
706706   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1)
707   MCFG_SCREEN_UPDATE_STATIC(rdx_v33)
707   MCFG_SCREEN_UPDATE_DRIVER(r2dx_v33_state, screen_update_rdx_v33)
708708
709709   MCFG_GFXDECODE(rdx_v33)
710710   MCFG_PALETTE_LENGTH(2048)
r17967r17968
737737   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate *//2)
738738   MCFG_SCREEN_SIZE(64*8, 64*8)
739739   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0, 32*8-1)
740   MCFG_SCREEN_UPDATE_STATIC(rdx_v33)
740   MCFG_SCREEN_UPDATE_DRIVER(r2dx_v33_state, screen_update_rdx_v33)
741741   MCFG_GFXDECODE(rdx_v33)
742742   MCFG_PALETTE_LENGTH(2048)
743743
trunk/src/mame/drivers/lastfght.c
r17967r17968
124124   virtual void machine_start();
125125   virtual void machine_reset();
126126   virtual void video_start();
127   UINT32 screen_update_lastfght(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
127128};
128129
129130
r17967r17968
143144}
144145
145146
146static SCREEN_UPDATE_IND16( lastfght )
147UINT32 lastfght_state::screen_update_lastfght(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
147148{
148   lastfght_state *state = screen.machine().driver_data<lastfght_state>();
149149
150150#ifdef MAME_DEBUG
151151#if 1
r17967r17968
154154   UINT8 *gfxdata = screen.machine().root_device().memregion("gfx1")->base();
155155   UINT8 data;
156156
157   if (screen.machine().input().code_pressed_once(KEYCODE_ENTER))   state->m_view_roms ^= 1;
158   if (state->m_view_roms)
157   if (screen.machine().input().code_pressed_once(KEYCODE_ENTER))   m_view_roms ^= 1;
158   if (m_view_roms)
159159   {
160      if (screen.machine().input().code_pressed_once(KEYCODE_PGDN))   state->m_base += 512 * 256;
161      if (screen.machine().input().code_pressed_once(KEYCODE_PGUP))   state->m_base -= 512 * 256;
162      state->m_base %= state->memregion("gfx1")->bytes();
160      if (screen.machine().input().code_pressed_once(KEYCODE_PGDN))   m_base += 512 * 256;
161      if (screen.machine().input().code_pressed_once(KEYCODE_PGUP))   m_base -= 512 * 256;
162      m_base %= memregion("gfx1")->bytes();
163163
164      count = state->m_base;
164      count = m_base;
165165
166166      bitmap.fill(get_black_pen(screen.machine()), cliprect );
167167      for (y = 0 ; y < 256; y++)
r17967r17968
173173            count++;
174174         }
175175      }
176      popmessage("%x", state->m_base);
176      popmessage("%x", m_base);
177177      return 0;
178178   }
179179#endif
180180#endif
181181
182   copybitmap(bitmap, state->m_bitmap[state->m_dest ^ 1], 0, 0, 0, 0, cliprect);
182   copybitmap(bitmap, m_bitmap[m_dest ^ 1], 0, 0, 0, 0, cliprect);
183183
184184   return 0;
185185}
r17967r17968
594594   MCFG_SCREEN_SIZE( 512, 256 )
595595   MCFG_SCREEN_VISIBLE_AREA( 0, 512-1, 0, 256-16-1 )
596596   MCFG_SCREEN_REFRESH_RATE( 60 )
597   MCFG_SCREEN_UPDATE_STATIC( lastfght )
597   MCFG_SCREEN_UPDATE_DRIVER(lastfght_state, screen_update_lastfght)
598598
599599MACHINE_CONFIG_END
600600
trunk/src/mame/drivers/embargo.c
r17967r17968
2929   DECLARE_WRITE8_MEMBER(input_select_w);
3030   virtual void machine_start();
3131   virtual void machine_reset();
32   UINT32 screen_update_embargo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
3233};
3334
3435
r17967r17968
3839 *
3940 *************************************/
4041
41static SCREEN_UPDATE_RGB32( embargo )
42UINT32 embargo_state::screen_update_embargo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
4243{
43   embargo_state *state = screen.machine().driver_data<embargo_state>();
4444   offs_t offs;
4545
46   for (offs = 0; offs < state->m_videoram.bytes(); offs++)
46   for (offs = 0; offs < m_videoram.bytes(); offs++)
4747   {
4848      int i;
4949
5050      UINT8 x = offs << 3;
5151      UINT8 y = offs >> 5;
52      UINT8 data = state->m_videoram[offs];
52      UINT8 data = m_videoram[offs];
5353
5454      for (i = 0; i < 8; i++)
5555      {
r17967r17968
265265   MCFG_SCREEN_SIZE(256, 256)
266266   MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239)
267267   MCFG_SCREEN_REFRESH_RATE(60)
268   MCFG_SCREEN_UPDATE_STATIC(embargo)
268   MCFG_SCREEN_UPDATE_DRIVER(embargo_state, screen_update_embargo)
269269
270270MACHINE_CONFIG_END
271271
trunk/src/mame/drivers/superqix.c
r17967r17968
10141014   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
10151015   MCFG_SCREEN_SIZE(256, 256)
10161016   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1017   MCFG_SCREEN_UPDATE_STATIC(pbillian)
1017   MCFG_SCREEN_UPDATE_DRIVER(superqix_state, screen_update_pbillian)
10181018
10191019   MCFG_GFXDECODE(pbillian)
10201020   MCFG_PALETTE_LENGTH(512)
r17967r17968
10481048   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
10491049   MCFG_SCREEN_SIZE(256, 256)
10501050   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1051   MCFG_SCREEN_UPDATE_STATIC(pbillian)
1051   MCFG_SCREEN_UPDATE_DRIVER(superqix_state, screen_update_pbillian)
10521052
10531053   MCFG_GFXDECODE(pbillian)
10541054   MCFG_PALETTE_LENGTH(512)
r17967r17968
10861086   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
10871087   MCFG_SCREEN_SIZE(32*8, 32*8)
10881088   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1089   MCFG_SCREEN_UPDATE_STATIC(superqix)
1089   MCFG_SCREEN_UPDATE_DRIVER(superqix_state, screen_update_superqix)
10901090
10911091   MCFG_GFXDECODE(sqix)
10921092   MCFG_PALETTE_LENGTH(256)
r17967r17968
11291129   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
11301130   MCFG_SCREEN_SIZE(32*8, 32*8)
11311131   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1132   MCFG_SCREEN_UPDATE_STATIC(superqix)
1132   MCFG_SCREEN_UPDATE_DRIVER(superqix_state, screen_update_superqix)
11331133
11341134   MCFG_GFXDECODE(sqix)
11351135   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/markham.c
r17967r17968
208208   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
209209   MCFG_SCREEN_SIZE(32*8, 32*8)
210210   MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1)
211   MCFG_SCREEN_UPDATE_STATIC(markham)
211   MCFG_SCREEN_UPDATE_DRIVER(markham_state, screen_update_markham)
212212
213213   MCFG_GFXDECODE(markham)
214214   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/dday.c
r17967r17968
267267   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
268268   MCFG_SCREEN_SIZE(32*8, 32*8)
269269   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
270   MCFG_SCREEN_UPDATE_STATIC(dday)
270   MCFG_SCREEN_UPDATE_DRIVER(dday_state, screen_update_dday)
271271
272272   MCFG_GFXDECODE(dday)
273273   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/vega.c
r17967r17968
148148   virtual void machine_start();
149149   virtual void machine_reset();
150150   virtual void palette_init();
151   UINT32 screen_update_vega(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
151152};
152153
153154WRITE8_MEMBER(vega_state::extern_w)
r17967r17968
547548
548549}
549550
550static SCREEN_UPDATE_IND16( vega )
551UINT32 vega_state::screen_update_vega(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
551552{
552   vega_state *state = screen.machine().driver_data<vega_state>();
553   ++state->m_frame_counter;
553   ++m_frame_counter;
554554
555555   bitmap.fill(0, cliprect);
556556
557   draw_tilemap(state, screen, bitmap, cliprect);
557   draw_tilemap(this, screen, bitmap, cliprect);
558558
559559
560560   {
561561      int x,y;
562562      int idx=0;
563      UINT8 *color_lookup = state->memregion("proms")->base() + 0x200;
563      UINT8 *color_lookup = memregion("proms")->base() + 0x200;
564564
565565      for(y=0;y<25;++y)
566566         for(x=0;x<40;++x)
567567         {
568568
569            int character=state->m_txt_ram[idx];
569            int character=m_txt_ram[idx];
570570            //int color=BITSWAP8(color_lookup[character],7,6,5,4,0,1,2,3)>>1;
571571            int color=color_lookup[character]&0xf;
572572            /*
r17967r17968
593593      for(int i=OBJ_0;i<OBJ_PLAYER;++i)
594594      {
595595
596         int x0=255-state->m_obj[i].m_x;
597         int y0=255-state->m_obj[i].m_y;
598         int num=state->m_obj[i].m_type&7;
599         int flip=state->m_obj[i].m_type&8;
596         int x0=255-m_obj[i].m_x;
597         int y0=255-m_obj[i].m_y;
598         int num=m_obj[i].m_type&7;
599         int flip=m_obj[i].m_type&8;
600600
601601         num*=4*8;
602602         for(int x=0;x<8;++x)
r17967r17968
623623
624624
625625   {
626      if(BIT(state->m_obj[OBJ_PLAYER].m_type,5))
626      if(BIT(m_obj[OBJ_PLAYER].m_type,5))
627627      {
628         int x0=state->m_obj[OBJ_PLAYER].m_x;
629         int y0=255-state->m_obj[OBJ_PLAYER].m_y-32;
628         int x0=m_obj[OBJ_PLAYER].m_x;
629         int y0=255-m_obj[OBJ_PLAYER].m_y-32;
630630
631         UINT8 *sprite_lookup = state->memregion("proms")->base();
631         UINT8 *sprite_lookup = memregion("proms")->base();
632632
633633
634634         for(int x=0;x<16;++x)
635635         {
636            int prom_data=sprite_lookup[ ((state->m_obj[OBJ_PLAYER].m_type&0xf)<<2)|((x>>2)&3)|(((state->m_frame_counter>>1)&3)<<6) ];
636            int prom_data=sprite_lookup[ ((m_obj[OBJ_PLAYER].m_type&0xf)<<2)|((x>>2)&3)|(((m_frame_counter>>1)&3)<<6) ];
637637
638638            int xor_line=( ! (( ! ((BIT(prom_data,1))&(BIT(prom_data,2))&(BIT(prom_data,3))&(BIT(x,2)) ) ) &
639                        ( (BIT(prom_data,2)) | (BIT(prom_data,3)) | ( BIT(state->m_obj[OBJ_PLAYER].m_type,4)) ) ));
639                        ( (BIT(prom_data,2)) | (BIT(prom_data,3)) | ( BIT(m_obj[OBJ_PLAYER].m_type,4)) ) ));
640640
641641            int strip_num=((prom_data)&0x7)|(   ((x&3)^(xor_line?0x3:0))  <<3)|((BIT(prom_data,3))<<5);
642642
r17967r17968
860860
861861   MCFG_GFXDECODE(test_decode)
862862
863   MCFG_SCREEN_UPDATE_STATIC(vega)
863   MCFG_SCREEN_UPDATE_DRIVER(vega_state, screen_update_vega)
864864
865865   /* sound hardware */
866866
trunk/src/mame/drivers/cyberbal.c
r17967r17968
457457   /* note: these parameters are from published specs, not derived */
458458   /* the board uses an SOS-2 chip to generate video signals */
459459   MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz, 456*2, 0, 336*2, 262, 0, 240)
460   MCFG_SCREEN_UPDATE_STATIC(cyberbal_left)
460   MCFG_SCREEN_UPDATE_DRIVER(cyberbal_state, screen_update_cyberbal_left)
461461
462462   MCFG_SCREEN_ADD("rscreen", RASTER)
463463   /* note: these parameters are from published specs, not derived */
464464   /* the board uses an SOS-2 chip to generate video signals */
465465   MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz, 456*2, 0, 336*2, 262, 0, 240)
466   MCFG_SCREEN_UPDATE_STATIC(cyberbal_right)
466   MCFG_SCREEN_UPDATE_DRIVER(cyberbal_state, screen_update_cyberbal_right)
467467
468468   MCFG_VIDEO_START_OVERRIDE(cyberbal_state,cyberbal)
469469
r17967r17968
503503   /* note: these parameters are from published specs, not derived */
504504   /* the board uses an SOS-2 chip to generate video signals */
505505   MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz, 456*2, 0, 336*2, 262, 0, 240)
506   MCFG_SCREEN_UPDATE_STATIC(cyberbal2p)
506   MCFG_SCREEN_UPDATE_DRIVER(cyberbal_state, screen_update_cyberbal2p)
507507
508508   MCFG_VIDEO_START_OVERRIDE(cyberbal_state,cyberbal2p)
509509
trunk/src/mame/drivers/lockon.c
r17967r17968
527527
528528   MCFG_SCREEN_ADD("screen", RASTER)
529529   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
530   MCFG_SCREEN_UPDATE_STATIC(lockon)
531   MCFG_SCREEN_VBLANK_STATIC(lockon)
530   MCFG_SCREEN_UPDATE_DRIVER(lockon_state, screen_update_lockon)
531   MCFG_SCREEN_VBLANK_DRIVER(lockon_state, screen_eof_lockon)
532532
533533   MCFG_GFXDECODE(lockon)
534534   MCFG_PALETTE_LENGTH(1024 + 2048)
trunk/src/mame/drivers/warpsped.c
r17967r17968
106106   TILE_GET_INFO_MEMBER(get_warpspeed_starfield_tile_info);
107107   virtual void video_start();
108108   virtual void palette_init();
109   UINT32 screen_update_warpspeed(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
109110};
110111
111112WRITE8_MEMBER(warpspeed_state::warpspeed_hardware_w)
r17967r17968
208209   }
209210}
210211
211static SCREEN_UPDATE_IND16( warpspeed )
212UINT32 warpspeed_state::screen_update_warpspeed(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
212213{
213   warpspeed_state *state = screen.machine().driver_data<warpspeed_state>();
214214
215   state->m_starfield_tilemap->draw(bitmap, cliprect, 0, 0);
216   warpspeed_draw_circles(bitmap, state);
217   state->m_text_tilemap->draw(bitmap, cliprect, 0, 0);
215   m_starfield_tilemap->draw(bitmap, cliprect, 0, 0);
216   warpspeed_draw_circles(bitmap, this);
217   m_text_tilemap->draw(bitmap, cliprect, 0, 0);
218218   return 0;
219219}
220220
r17967r17968
318318   MCFG_SCREEN_SIZE((32)*8, (32)*8)
319319   MCFG_SCREEN_VISIBLE_AREA(4*8, 32*8-1, 8*8, 32*8-1)
320320
321   MCFG_SCREEN_UPDATE_STATIC(warpspeed)
321   MCFG_SCREEN_UPDATE_DRIVER(warpspeed_state, screen_update_warpspeed)
322322
323323   MCFG_GFXDECODE(warpspeed)
324324   MCFG_PALETTE_LENGTH(2+8)
trunk/src/mame/drivers/gijoe.c
r17967r17968
312312   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
313313   MCFG_SCREEN_SIZE(64*8, 32*8)
314314   MCFG_SCREEN_VISIBLE_AREA(24, 24+288-1, 16, 16+224-1)
315   MCFG_SCREEN_UPDATE_STATIC(gijoe)
315   MCFG_SCREEN_UPDATE_DRIVER(gijoe_state, screen_update_gijoe)
316316
317317   MCFG_PALETTE_LENGTH(2048)
318318
trunk/src/mame/drivers/tigeroad.c
r17967r17968
536536   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
537537   MCFG_SCREEN_SIZE(32*8, 32*8)
538538   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
539   MCFG_SCREEN_UPDATE_STATIC(tigeroad)
539   MCFG_SCREEN_UPDATE_DRIVER(tigeroad_state, screen_update_tigeroad)
540540   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
541541
542542   MCFG_GFXDECODE(tigeroad)
trunk/src/mame/drivers/rltennis.c
r17967r17968
192192   MCFG_SCREEN_SIZE(320, 240)
193193   MCFG_SCREEN_VISIBLE_AREA(0,319, 0, 239)
194194
195   MCFG_SCREEN_UPDATE_STATIC(rltennis)
195   MCFG_SCREEN_UPDATE_DRIVER(rltennis_state, screen_update_rltennis)
196196   MCFG_PALETTE_LENGTH(256)
197197
198198   MCFG_NVRAM_ADD_0FILL("nvram")
trunk/src/mame/drivers/spaceg.c
r17967r17968
190190   DECLARE_WRITE8_MEMBER(zvideoram_w);
191191   DECLARE_READ8_MEMBER(spaceg_colorram_r);
192192   virtual void palette_init();
193   UINT32 screen_update_spaceg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
193194};
194195
195196/*************************************
r17967r17968
297298}
298299
299300
300static SCREEN_UPDATE_IND16( spaceg )
301UINT32 spaceg_state::screen_update_spaceg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
301302{
302   spaceg_state *state = screen.machine().driver_data<spaceg_state>();
303303   offs_t offs;
304304
305305   for (offs = 0; offs < 0x2000; offs++)
306306   {
307307      int i;
308      UINT8 data = state->m_videoram[offs];
308      UINT8 data = m_videoram[offs];
309309      int y = offs & 0xff;
310310      int x = (offs >> 8) << 3;
311311
312312      for (i = 0; i < 8; i++)
313313      {
314         bitmap.pix16(y, x) = (data & 0x80) ? state->m_colorram[offs] : 0;
314         bitmap.pix16(y, x) = (data & 0x80) ? m_colorram[offs] : 0;
315315
316316         x++;
317317         data <<= 1;
r17967r17968
436436   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
437437   MCFG_SCREEN_SIZE(256, 256)
438438   MCFG_SCREEN_VISIBLE_AREA(0, 255, 32, 255)
439   MCFG_SCREEN_UPDATE_STATIC( spaceg )
439   MCFG_SCREEN_UPDATE_DRIVER(spaceg_state, screen_update_spaceg)
440440
441441   MCFG_PALETTE_LENGTH(16+128-16)
442442
trunk/src/mame/drivers/segas32.c
r17967r17968
22142214   MCFG_SCREEN_REFRESH_RATE(60)
22152215   MCFG_SCREEN_SIZE(52*8, 262)
22162216   MCFG_SCREEN_VISIBLE_AREA(0*8, 52*8-1, 0*8, 28*8-1)
2217   MCFG_SCREEN_UPDATE_STATIC(system32)
2217   MCFG_SCREEN_UPDATE_DRIVER(segas32_state, screen_update_system32)
22182218
22192219   MCFG_VIDEO_START_OVERRIDE(segas32_state,system32)
22202220
r17967r17968
22742274   MCFG_SCREEN_REFRESH_RATE(60)
22752275   MCFG_SCREEN_SIZE(52*8, 262)
22762276   MCFG_SCREEN_VISIBLE_AREA(0*8, 52*8-1, 0*8, 28*8-1)
2277   MCFG_SCREEN_UPDATE_STATIC(multi32_left)
2277   MCFG_SCREEN_UPDATE_DRIVER(segas32_state, screen_update_multi32_left)
22782278
22792279   MCFG_SCREEN_ADD("rscreen", RASTER)
22802280   MCFG_SCREEN_REFRESH_RATE(60)
22812281   MCFG_SCREEN_SIZE(52*8, 262)
22822282   MCFG_SCREEN_VISIBLE_AREA(0*8, 52*8-1, 0*8, 28*8-1)
2283   MCFG_SCREEN_UPDATE_STATIC(multi32_right)
2283   MCFG_SCREEN_UPDATE_DRIVER(segas32_state, screen_update_multi32_right)
22842284
22852285   MCFG_VIDEO_START_OVERRIDE(segas32_state,multi32)
22862286
trunk/src/mame/drivers/looping.c
r17967r17968
142142   virtual void machine_start();
143143   virtual void video_start();
144144   virtual void palette_init();
145   UINT32 screen_update_looping(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
145146};
146147
147148
r17967r17968
303304}
304305
305306
306static SCREEN_UPDATE_IND16( looping )
307UINT32 looping_state::screen_update_looping(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
307308{
308   looping_state *state = screen.machine().driver_data<looping_state>();
309   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
309   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
310310
311311   draw_sprites(screen.machine(), bitmap, cliprect);
312312   return 0;
r17967r17968
658658   /* video hardware */
659659   MCFG_SCREEN_ADD("screen", RASTER)
660660   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
661   MCFG_SCREEN_UPDATE_STATIC(looping)
661   MCFG_SCREEN_UPDATE_DRIVER(looping_state, screen_update_looping)
662662
663663   MCFG_GFXDECODE(looping)
664664   MCFG_PALETTE_LENGTH(32)
trunk/src/mame/drivers/1945kiii.c
r17967r17968
7777   TILE_GET_INFO_MEMBER(get_k3_bg_tile_info);
7878   virtual void machine_start();
7979   virtual void video_start();
80   UINT32 screen_update_k3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8081};
8182
8283
r17967r17968
123124   }
124125}
125126
126static SCREEN_UPDATE_IND16(k3)
127UINT32 k3_state::screen_update_k3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
127128{
128   k3_state *state = screen.machine().driver_data<k3_state>();
129   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
129   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
130130   draw_sprites(screen.machine(), bitmap, cliprect);
131131   return 0;
132132}
r17967r17968
267267   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
268268   MCFG_SCREEN_SIZE(64*8, 64*8)
269269   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
270   MCFG_SCREEN_UPDATE_STATIC(k3)
270   MCFG_SCREEN_UPDATE_DRIVER(k3_state, screen_update_k3)
271271
272272   MCFG_PALETTE_LENGTH(0x800)
273273
trunk/src/mame/drivers/badlands.c
r17967r17968
520520   /* note: these parameters are from published specs, not derived */
521521   /* the board uses an SOS-2 chip to generate video signals */
522522   MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
523   MCFG_SCREEN_UPDATE_STATIC(badlands)
523   MCFG_SCREEN_UPDATE_DRIVER(badlands_state, screen_update_badlands)
524524
525525   MCFG_VIDEO_START_OVERRIDE(badlands_state,badlands)
526526
r17967r17968
726726   /* note: these parameters are from published specs, not derived */
727727   /* the board uses an SOS-2 chip to generate video signals */
728728   MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
729   MCFG_SCREEN_UPDATE_STATIC(badlands)
729   MCFG_SCREEN_UPDATE_DRIVER(badlands_state, screen_update_badlands)
730730
731731   MCFG_VIDEO_START_OVERRIDE(badlands_state,badlands)
732732
trunk/src/mame/drivers/slapfght.c
r17967r17968
767767   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
768768   MCFG_SCREEN_SIZE(64*8, 32*8)
769769   MCFG_SCREEN_VISIBLE_AREA(1*8, 34*8-1, 2*8, 32*8-1)
770   MCFG_SCREEN_UPDATE_STATIC(perfrman)
770   MCFG_SCREEN_UPDATE_DRIVER(slapfght_state, screen_update_perfrman)
771771   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
772772
773773   MCFG_GFXDECODE(perfrman)
r17967r17968
813813   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
814814   MCFG_SCREEN_SIZE(64*8, 32*8)
815815   MCFG_SCREEN_VISIBLE_AREA(1*8, 36*8-1, 2*8, 32*8-1)
816   MCFG_SCREEN_UPDATE_STATIC(slapfight)
816   MCFG_SCREEN_UPDATE_DRIVER(slapfght_state, screen_update_slapfight)
817817   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
818818
819819   MCFG_GFXDECODE(slapfght)
r17967r17968
861861   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
862862   MCFG_SCREEN_SIZE(64*8, 32*8)
863863   MCFG_SCREEN_VISIBLE_AREA(1*8, 36*8-1, 2*8, 32*8-1)
864   MCFG_SCREEN_UPDATE_STATIC(slapfight)
864   MCFG_SCREEN_UPDATE_DRIVER(slapfght_state, screen_update_slapfight)
865865   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
866866
867867   MCFG_GFXDECODE(slapfght)
r17967r17968
910910   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
911911   MCFG_SCREEN_SIZE(64*8, 32*8)
912912   MCFG_SCREEN_VISIBLE_AREA(1*8, 36*8-1, 2*8, 32*8-1)
913   MCFG_SCREEN_UPDATE_STATIC(slapfight)
913   MCFG_SCREEN_UPDATE_DRIVER(slapfght_state, screen_update_slapfight)
914914   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
915915
916916   MCFG_GFXDECODE(slapfght)
trunk/src/mame/drivers/psikyosh.c
r17967r17968
822822   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
823823   MCFG_SCREEN_SIZE(64*8, 32*8)
824824   MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 0, 28*8-1)
825   MCFG_SCREEN_UPDATE_STATIC(psikyosh)
825   MCFG_SCREEN_UPDATE_DRIVER(psikyosh_state, screen_update_psikyosh)
826826   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram32_device, vblank_copy_rising)
827827
828828   MCFG_GFXDECODE(psikyosh)
trunk/src/mame/drivers/astinvad.c
r17967r17968
8181   DECLARE_MACHINE_START(spaceint);
8282   DECLARE_MACHINE_RESET(spaceint);
8383   DECLARE_VIDEO_START(spaceint);
84   UINT32 screen_update_astinvad(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
85   UINT32 screen_update_spaceint(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
8486};
8587
8688
r17967r17968
167169}
168170
169171
170static SCREEN_UPDATE_RGB32( astinvad )
172UINT32 astinvad_state::screen_update_astinvad(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
171173{
172   astinvad_state *state = screen.machine().driver_data<astinvad_state>();
173   const UINT8 *color_prom = state->memregion("proms")->base();
174   UINT8 yoffs = state->m_flip_yoffs & state->m_screen_flip;
174   const UINT8 *color_prom = memregion("proms")->base();
175   UINT8 yoffs = m_flip_yoffs & m_screen_flip;
175176   int x, y;
176177
177178   /* render the visible pixels */
178179   for (y = cliprect.min_y; y <= cliprect.max_y; y++)
179180      for (x = cliprect.min_x & ~7; x <= cliprect.max_x; x += 8)
180181      {
181         UINT8 color = color_prom[((y & 0xf8) << 2) | (x >> 3)] >> (state->m_screen_flip ? 0 : 4);
182         UINT8 data = state->m_videoram[(((y ^ state->m_screen_flip) + yoffs) << 5) | ((x ^ state->m_screen_flip) >> 3)];
183         plot_byte(screen.machine(), bitmap, y, x, data, state->m_screen_red ? 1 : color);
182         UINT8 color = color_prom[((y & 0xf8) << 2) | (x >> 3)] >> (m_screen_flip ? 0 : 4);
183         UINT8 data = m_videoram[(((y ^ m_screen_flip) + yoffs) << 5) | ((x ^ m_screen_flip) >> 3)];
184         plot_byte(screen.machine(), bitmap, y, x, data, m_screen_red ? 1 : color);
184185      }
185186
186187   return 0;
187188}
188189
189190
190static SCREEN_UPDATE_RGB32( spaceint )
191UINT32 astinvad_state::screen_update_spaceint(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
191192{
192   astinvad_state *state = screen.machine().driver_data<astinvad_state>();
193   const UINT8 *color_prom = state->memregion("proms")->base();
193   const UINT8 *color_prom = memregion("proms")->base();
194194   int offs;
195195
196   for (offs = 0; offs < state->m_videoram.bytes(); offs++)
196   for (offs = 0; offs < m_videoram.bytes(); offs++)
197197   {
198      UINT8 data = state->m_videoram[offs];
199      UINT8 color = state->m_colorram[offs];
198      UINT8 data = m_videoram[offs];
199      UINT8 color = m_colorram[offs];
200200
201201      UINT8 y = ~offs;
202202      UINT8 x = offs >> 8 << 3;
r17967r17968
601601   /* video hardware */
602602   MCFG_SCREEN_ADD("screen", RASTER)
603603   MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK, 320, 0, 256, 256, 32, 256)
604   MCFG_SCREEN_UPDATE_STATIC(astinvad)
604   MCFG_SCREEN_UPDATE_DRIVER(astinvad_state, screen_update_astinvad)
605605
606606   /* sound hardware */
607607   MCFG_SPEAKER_STANDARD_MONO("mono")
r17967r17968
637637   MCFG_SCREEN_SIZE(32*8, 32*8)
638638   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
639639   MCFG_SCREEN_REFRESH_RATE(60)
640   MCFG_SCREEN_UPDATE_STATIC(spaceint)
640   MCFG_SCREEN_UPDATE_DRIVER(astinvad_state, screen_update_spaceint)
641641
642642   /* sound hardware */
643643   MCFG_SPEAKER_STANDARD_MONO("mono")
trunk/src/mame/drivers/supertnk.c
r17967r17968
125125   DECLARE_DRIVER_INIT(supertnk);
126126   virtual void machine_reset();
127127   virtual void video_start();
128   UINT32 screen_update_supertnk(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
128129};
129130
130131
r17967r17968
245246}
246247
247248
248static SCREEN_UPDATE_RGB32( supertnk )
249UINT32 supertnk_state::screen_update_supertnk(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
249250{
250   supertnk_state *state = screen.machine().driver_data<supertnk_state>();
251251   offs_t offs;
252252
253253   for (offs = 0; offs < 0x2000; offs++)
r17967r17968
257257      UINT8 y = offs >> 5;
258258      UINT8 x = offs << 3;
259259
260      UINT8 data0 = state->m_videoram[0][offs];
261      UINT8 data1 = state->m_videoram[1][offs];
262      UINT8 data2 = state->m_videoram[2][offs];
260      UINT8 data0 = m_videoram[0][offs];
261      UINT8 data1 = m_videoram[1][offs];
262      UINT8 data2 = m_videoram[2][offs];
263263
264264      for (i = 0; i < 8; i++)
265265      {
266266         UINT8 color = ((data0 & 0x80) >> 5) | ((data1 & 0x80) >> 6) | ((data2 & 0x80) >> 7);
267         bitmap.pix32(y, x) = state->m_pens[color];
267         bitmap.pix32(y, x) = m_pens[color];
268268
269269         data0 = data0 << 1;
270270         data1 = data1 << 1;
r17967r17968
439439   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
440440   MCFG_SCREEN_REFRESH_RATE(60)
441441   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
442   MCFG_SCREEN_UPDATE_STATIC(supertnk)
442   MCFG_SCREEN_UPDATE_DRIVER(supertnk_state, screen_update_supertnk)
443443
444444   /* audio hardware */
445445   MCFG_SPEAKER_STANDARD_MONO("mono")
trunk/src/mame/drivers/quizdna.c
r17967r17968
455455   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
456456   MCFG_SCREEN_SIZE(64*8, 32*8)
457457   MCFG_SCREEN_VISIBLE_AREA(8*8, 56*8-1, 2*8, 30*8-1)
458   MCFG_SCREEN_UPDATE_STATIC(quizdna)
458   MCFG_SCREEN_UPDATE_DRIVER(quizdna_state, screen_update_quizdna)
459459
460460   MCFG_GFXDECODE(quizdna)
461461   MCFG_PALETTE_LENGTH(2048)
trunk/src/mame/drivers/boogwing.c
r17967r17968
354354   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
355355   MCFG_SCREEN_SIZE(40*8, 32*8)
356356   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
357   MCFG_SCREEN_UPDATE_STATIC(boogwing)
357   MCFG_SCREEN_UPDATE_DRIVER(boogwing_state, screen_update_boogwing)
358358
359359   MCFG_PALETTE_LENGTH(2048)
360360   MCFG_GFXDECODE(boogwing)
trunk/src/mame/drivers/offtwall.c
r17967r17968
417417   /* note: these parameters are from published specs, not derived */
418418   /* the board uses a VAD chip to generate video signals */
419419   MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
420   MCFG_SCREEN_UPDATE_STATIC(offtwall)
420   MCFG_SCREEN_UPDATE_DRIVER(offtwall_state, screen_update_offtwall)
421421
422422   MCFG_VIDEO_START_OVERRIDE(offtwall_state,offtwall)
423423
trunk/src/mame/drivers/esh.c
r17967r17968
4949   DECLARE_DRIVER_INIT(esh);
5050   virtual void machine_start();
5151   virtual void palette_init();
52   UINT32 screen_update_esh(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
5253};
5354
5455
r17967r17968
5758
5859
5960/* VIDEO GOODS */
60static SCREEN_UPDATE_RGB32( esh )
61UINT32 esh_state::screen_update_esh(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
6162{
62   esh_state *state = screen.machine().driver_data<esh_state>();
6363   int charx, chary;
6464
6565   /* clear */
r17967r17968
7272      {
7373         int current_screen_character = (chary*32) + charx;
7474
75         int palIndex  = (state->m_tile_control_ram[current_screen_character] & 0x0f);
76         int tileOffs  = (state->m_tile_control_ram[current_screen_character] & 0x10) >> 4;
77         //int blinkLine = (state->m_tile_control_ram[current_screen_character] & 0x40) >> 6;
78         //int blinkChar = (state->m_tile_control_ram[current_screen_character] & 0x80) >> 7;
75         int palIndex  = (m_tile_control_ram[current_screen_character] & 0x0f);
76         int tileOffs  = (m_tile_control_ram[current_screen_character] & 0x10) >> 4;
77         //int blinkLine = (m_tile_control_ram[current_screen_character] & 0x40) >> 6;
78         //int blinkChar = (m_tile_control_ram[current_screen_character] & 0x80) >> 7;
7979
8080         drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0],
81               state->m_tile_ram[current_screen_character] + (0x100 * tileOffs),
81               m_tile_ram[current_screen_character] + (0x100 * tileOffs),
8282               palIndex,
8383               0, 0, charx*8, chary*8, 0);
8484      }
r17967r17968
308308
309309
310310   MCFG_LASERDISC_LDV1000_ADD("laserdisc")
311   MCFG_LASERDISC_OVERLAY_STATIC(256, 256, esh)
311   MCFG_LASERDISC_OVERLAY_DRIVER(256, 256, esh_state, screen_update_esh)
312312
313313   /* video hardware */
314314   MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc")
trunk/src/mame/drivers/fromance.c
r17967r17968
10181018   MCFG_SCREEN_REFRESH_RATE(60)
10191019   MCFG_SCREEN_SIZE(512, 256)
10201020   MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1)
1021   MCFG_SCREEN_UPDATE_STATIC(fromance)
1021   MCFG_SCREEN_UPDATE_DRIVER(fromance_state, screen_update_fromance)
10221022
10231023   MCFG_GFXDECODE(fromance)
10241024   MCFG_PALETTE_LENGTH(1024)
r17967r17968
10561056   MCFG_SCREEN_REFRESH_RATE(60)
10571057   MCFG_SCREEN_SIZE(512, 256)
10581058   MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1)
1059   MCFG_SCREEN_UPDATE_STATIC(fromance)
1059   MCFG_SCREEN_UPDATE_DRIVER(fromance_state, screen_update_fromance)
10601060
10611061   MCFG_GFXDECODE(fromance)
10621062   MCFG_PALETTE_LENGTH(2048)
r17967r17968
10941094   MCFG_SCREEN_REFRESH_RATE(60)
10951095   MCFG_SCREEN_SIZE(512, 256)
10961096   MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1)
1097   MCFG_SCREEN_UPDATE_STATIC(fromance)
1097   MCFG_SCREEN_UPDATE_DRIVER(fromance_state, screen_update_fromance)
10981098
10991099   MCFG_GFXDECODE(fromance)
11001100   MCFG_PALETTE_LENGTH(2048)
trunk/src/mame/drivers/skykid.c
r17967r17968
461461   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
462462   MCFG_SCREEN_SIZE(36*8, 28*8)
463463   MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
464   MCFG_SCREEN_UPDATE_STATIC(skykid)
464   MCFG_SCREEN_UPDATE_DRIVER(skykid_state, screen_update_skykid)
465465
466466   MCFG_GFXDECODE(skykid)
467467   MCFG_PALETTE_LENGTH(64*4+128*4+64*8)
trunk/src/mame/drivers/halleys.c
r17967r17968
264264   virtual void machine_reset();
265265   virtual void video_start();
266266   virtual void palette_init();
267   UINT32 screen_update_halleys(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
268   UINT32 screen_update_benberob(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
267269};
268270
269271
r17967r17968
14791481}
14801482
14811483
1482static SCREEN_UPDATE_IND16( halleys )
1484UINT32 halleys_state::screen_update_halleys(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
14831485{
1484   halleys_state *state = screen.machine().driver_data<halleys_state>();
14851486   int i, j;
14861487
1487   if (state->m_stars_enabled)
1488   if (m_stars_enabled)
14881489   {
1489      copy_scroll_op(bitmap, state->m_render_layer[5], *state->m_scrollx0, *state->m_scrolly0);
1490      copy_scroll_xp(bitmap, state->m_render_layer[4], *state->m_scrollx1, *state->m_scrolly1);
1490      copy_scroll_op(bitmap, m_render_layer[5], *m_scrollx0, *m_scrolly0);
1491      copy_scroll_xp(bitmap, m_render_layer[4], *m_scrollx1, *m_scrolly1);
14911492   }
14921493   else
1493      bitmap.fill(state->m_bgcolor, cliprect);
1494      bitmap.fill(m_bgcolor, cliprect);
14941495
14951496#ifdef MAME_DEBUG
1496   if (screen.machine().root_device().ioport("DEBUG")->read()) copy_scroll_xp(bitmap, state->m_render_layer[3], *state->m_scrollx0, *state->m_scrolly0); // not used???
1497   if (screen.machine().root_device().ioport("DEBUG")->read()) copy_scroll_xp(bitmap, m_render_layer[3], *m_scrollx0, *m_scrolly0); // not used???
14971498#endif
14981499
1499   copy_scroll_xp(bitmap, state->m_render_layer[2], *state->m_scrollx1, *state->m_scrolly1);
1500   copy_fixed_2b (bitmap, state->m_render_layer[1]);
1501   copy_fixed_xp (bitmap, state->m_render_layer[0]);
1500   copy_scroll_xp(bitmap, m_render_layer[2], *m_scrollx1, *m_scrolly1);
1501   copy_fixed_2b (bitmap, m_render_layer[1]);
1502   copy_fixed_xp (bitmap, m_render_layer[0]);
15021503
15031504   // HALF-HACK: apply RGB filter when the following conditions are met
1504   i = state->m_io_ram[0xa0];
1505   j = state->m_io_ram[0xa1];
1506   if (state->m_io_ram[0x2b] && (i>0xc6 && i<0xfe) && (j==0xc0 || j==0xed)) filter_bitmap(screen.machine(), bitmap, i);
1505   i = m_io_ram[0xa0];
1506   j = m_io_ram[0xa1];
1507   if (m_io_ram[0x2b] && (i>0xc6 && i<0xfe) && (j==0xc0 || j==0xed)) filter_bitmap(screen.machine(), bitmap, i);
15071508   return 0;
15081509}
15091510
15101511
1511static SCREEN_UPDATE_IND16( benberob )
1512UINT32 halleys_state::screen_update_benberob(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
15121513{
1513   halleys_state *state = screen.machine().driver_data<halleys_state>();
1514   if (state->m_io_ram[0xa0] & 0x80)
1515      copy_scroll_op(bitmap, state->m_render_layer[2], *state->m_scrollx1, *state->m_scrolly1);
1514   if (m_io_ram[0xa0] & 0x80)
1515      copy_scroll_op(bitmap, m_render_layer[2], *m_scrollx1, *m_scrolly1);
15161516   else
1517      bitmap.fill(state->m_bgcolor, cliprect);
1517      bitmap.fill(m_bgcolor, cliprect);
15181518
1519   copy_fixed_xp (bitmap, state->m_render_layer[1]);
1520   copy_fixed_xp (bitmap, state->m_render_layer[0]);
1519   copy_fixed_xp (bitmap, m_render_layer[1]);
1520   copy_fixed_xp (bitmap, m_render_layer[0]);
15211521   return 0;
15221522}
15231523
r17967r17968
19731973   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
19741974   MCFG_SCREEN_SIZE(SCREEN_WIDTH, SCREEN_HEIGHT)
19751975   MCFG_SCREEN_VISIBLE_AREA(VIS_MINX, VIS_MAXX, VIS_MINY, VIS_MAXY)
1976   MCFG_SCREEN_UPDATE_STATIC(halleys)
1976   MCFG_SCREEN_UPDATE_DRIVER(halleys_state, screen_update_halleys)
19771977
19781978   MCFG_PALETTE_LENGTH(PALETTE_SIZE)
19791979
r17967r17968
20032003   MCFG_TIMER_CALLBACK(benberob_scanline)
20042004
20052005   MCFG_SCREEN_MODIFY("screen")
2006   MCFG_SCREEN_UPDATE_STATIC(benberob)
2006   MCFG_SCREEN_UPDATE_DRIVER(halleys_state, screen_update_benberob)
20072007MACHINE_CONFIG_END
20082008
20092009
trunk/src/mame/drivers/djmain.c
r17967r17968
14711471   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
14721472   MCFG_SCREEN_SIZE(64*8, 64*8)
14731473   MCFG_SCREEN_VISIBLE_AREA(12, 512-12-1, 0, 384-1)
1474   MCFG_SCREEN_UPDATE_STATIC(djmain)
1474   MCFG_SCREEN_UPDATE_DRIVER(djmain_state, screen_update_djmain)
14751475
14761476   MCFG_PALETTE_LENGTH(0x4440/4)
14771477   MCFG_GFXDECODE(djmain)
trunk/src/mame/drivers/mustache.c
r17967r17968
201201   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
202202   MCFG_SCREEN_SIZE(32*8, 32*8)
203203   MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 0, 31*8-1)
204   MCFG_SCREEN_UPDATE_STATIC(mustache)
204   MCFG_SCREEN_UPDATE_DRIVER(mustache_state, screen_update_mustache)
205205
206206   MCFG_GFXDECODE(mustache)
207207   MCFG_PALETTE_LENGTH(8*16+16*8)
trunk/src/mame/drivers/neogeo.c
r17967r17968
13751375
13761376   MCFG_SCREEN_ADD("screen", RASTER)
13771377   MCFG_SCREEN_RAW_PARAMS(NEOGEO_PIXEL_CLOCK, NEOGEO_HTOTAL, NEOGEO_HBEND, NEOGEO_HBSTART, NEOGEO_VTOTAL, NEOGEO_VBEND, NEOGEO_VBSTART)
1378   MCFG_SCREEN_UPDATE_STATIC(neogeo)
1378   MCFG_SCREEN_UPDATE_DRIVER(neogeo_state, screen_update_neogeo)
13791379
13801380   /* audio hardware */
13811381   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
trunk/src/mame/drivers/snookr10.c
r17967r17968
701701   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
702702   MCFG_SCREEN_SIZE(96*4, 30*8)
703703   MCFG_SCREEN_VISIBLE_AREA(0*4, 96*4-1, 0*8, 30*8-1)
704   MCFG_SCREEN_UPDATE_STATIC(snookr10)
704   MCFG_SCREEN_UPDATE_DRIVER(snookr10_state, screen_update_snookr10)
705705
706706   MCFG_GFXDECODE(snookr10)
707707
trunk/src/mame/drivers/statriv2.c
r17967r17968
109109   virtual void video_start();
110110   virtual void palette_init();
111111   DECLARE_VIDEO_START(vertical);
112   UINT32 screen_update_statriv2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
112113};
113114
114115
r17967r17968
191192 *
192193 *************************************/
193194
194static SCREEN_UPDATE_IND16( statriv2 )
195UINT32 statriv2_state::screen_update_statriv2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
195196{
196   statriv2_state *state = screen.machine().driver_data<statriv2_state>();
197197   if (tms9927_screen_reset(screen.machine().device("tms")))
198198      bitmap.fill(get_black_pen(screen.machine()), cliprect);
199199   else
200      state->m_tilemap->draw(bitmap, cliprect, 0, 0);
200      m_tilemap->draw(bitmap, cliprect, 0, 0);
201201   return 0;
202202}
203203
r17967r17968
612612   /* video hardware */
613613   MCFG_SCREEN_ADD("screen", RASTER)
614614   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 384, 0, 320, 270, 0, 240)
615   MCFG_SCREEN_UPDATE_STATIC(statriv2)
615   MCFG_SCREEN_UPDATE_DRIVER(statriv2_state, screen_update_statriv2)
616616
617617   MCFG_TMS9927_ADD("tms", MASTER_CLOCK/2, tms9927_intf)
618618
trunk/src/mame/drivers/carrera.c
r17967r17968
6262   required_shared_ptr<UINT8> m_tileram;
6363   DECLARE_READ8_MEMBER(unknown_r);
6464   virtual void palette_init();
65   UINT32 screen_update_carrera(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6566};
6667
6768
r17967r17968
247248   GFXDECODE_ENTRY( "gfx1", 0, tiles8x8_layout, 0, 1 )
248249GFXDECODE_END
249250
250static SCREEN_UPDATE_IND16(carrera)
251UINT32 carrera_state::screen_update_carrera(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
251252{
252   carrera_state *state = screen.machine().driver_data<carrera_state>();
253253
254254   int x,y;
255255   int count = 0;
r17967r17968
258258   {
259259      for (x=0;x<64;x++)
260260      {
261         int tile = state->m_tileram[count&0x7ff] | state->m_tileram[(count&0x7ff)+0x800]<<8;
261         int tile = m_tileram[count&0x7ff] | m_tileram[(count&0x7ff)+0x800]<<8;
262262
263263         drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0],tile,0,0,0,x*8,y*8);
264264         count++;
r17967r17968
338338   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
339339   MCFG_SCREEN_SIZE(512, 256)
340340   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
341   MCFG_SCREEN_UPDATE_STATIC(carrera)
341   MCFG_SCREEN_UPDATE_DRIVER(carrera_state, screen_update_carrera)
342342
343343   MCFG_MC6845_ADD("crtc", MC6845, MASTER_CLOCK / 16, mc6845_intf)
344344
trunk/src/mame/drivers/vectrex.c
r17967r17968
106106   MCFG_SCREEN_REFRESH_RATE(60)
107107   MCFG_SCREEN_SIZE(400, 300)
108108   MCFG_SCREEN_VISIBLE_AREA(0, 399, 0, 299)
109   MCFG_SCREEN_UPDATE_STATIC(vectrex)
109   MCFG_SCREEN_UPDATE_DRIVER(vectrex_state, screen_update_vectrex)
110110
111111
112112   /* sound hardware */
trunk/src/mame/drivers/ultraman.c
r17967r17968
235235   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
236236   MCFG_SCREEN_SIZE(64*8, 32*8)
237237   MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
238   MCFG_SCREEN_UPDATE_STATIC(ultraman)
238   MCFG_SCREEN_UPDATE_DRIVER(ultraman_state, screen_update_ultraman)
239239
240240   MCFG_PALETTE_LENGTH(8192)
241241
trunk/src/mame/drivers/d9final.c
r17967r17968
4545   TILE_GET_INFO_MEMBER(get_sc0_tile_info);
4646   virtual void machine_reset();
4747   virtual void video_start();
48   UINT32 screen_update_d9final(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4849};
4950
5051
r17967r17968
6667   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);
6768}
6869
69static SCREEN_UPDATE_IND16(d9final)
70UINT32 d9final_state::screen_update_d9final(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
7071{
71   d9final_state *state = screen.machine().driver_data<d9final_state>();
72   state->m_sc0_tilemap->draw(bitmap, cliprect, 0,0);
72   m_sc0_tilemap->draw(bitmap, cliprect, 0,0);
7373   return 0;
7474}
7575
r17967r17968
293293   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
294294   MCFG_SCREEN_SIZE(512, 256)
295295   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 256-16-1)
296   MCFG_SCREEN_UPDATE_STATIC(d9final)
296   MCFG_SCREEN_UPDATE_DRIVER(d9final_state, screen_update_d9final)
297297
298298   MCFG_GFXDECODE(d9final)
299299   MCFG_PALETTE_LENGTH(0x400)
trunk/src/mame/drivers/ladybug.c
r17967r17968
788788   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
789789   MCFG_SCREEN_SIZE(32*8, 32*8)
790790   MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 28*8-1)
791   MCFG_SCREEN_UPDATE_STATIC(ladybug)
791   MCFG_SCREEN_UPDATE_DRIVER(ladybug_state, screen_update_ladybug)
792792
793793   MCFG_GFXDECODE(ladybug)
794794   MCFG_PALETTE_LENGTH(4*8+4*16)
r17967r17968
830830   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
831831   MCFG_SCREEN_SIZE(32*8, 32*8)
832832   MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 28*8-1)
833   MCFG_SCREEN_UPDATE_STATIC(sraider)
834   MCFG_SCREEN_VBLANK_STATIC(sraider)
833   MCFG_SCREEN_UPDATE_DRIVER(ladybug_state, screen_update_sraider)
834   MCFG_SCREEN_VBLANK_DRIVER(ladybug_state, screen_eof_sraider)
835835
836836   MCFG_GFXDECODE(sraider)
837837   MCFG_PALETTE_LENGTH(4*8+4*16+32+2)
trunk/src/mame/drivers/blueprnt.c
r17967r17968
310310   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
311311   MCFG_SCREEN_SIZE(32*8, 32*8)
312312   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
313   MCFG_SCREEN_UPDATE_STATIC(blueprnt)
313   MCFG_SCREEN_UPDATE_DRIVER(blueprnt_state, screen_update_blueprnt)
314314
315315   MCFG_GFXDECODE(blueprnt)
316316   MCFG_PALETTE_LENGTH(128*4+8)
trunk/src/mame/drivers/aristmk6.c
r17967r17968
1818   UINT8 m_type;
1919   DECLARE_READ64_MEMBER(test_r);
2020   virtual void video_start();
21   UINT32 screen_update_aristmk6(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
2122};
2223
2324
r17967r17968
2526{
2627}
2728
28SCREEN_UPDATE_RGB32(aristmk6)
29UINT32 aristmk6_state::screen_update_aristmk6(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
2930{
30   aristmk6_state *state = screen.machine().driver_data<aristmk6_state>();
3131
3232   int x,y,count;
33   const UINT8 *blit_ram = state->memregion("maincpu")->base();
33   const UINT8 *blit_ram = memregion("maincpu")->base();
3434
3535   if(screen.machine().input().code_pressed(KEYCODE_Z))
36      state->m_test_x++;
36      m_test_x++;
3737
3838   if(screen.machine().input().code_pressed(KEYCODE_X))
39      state->m_test_x--;
39      m_test_x--;
4040
4141   if(screen.machine().input().code_pressed(KEYCODE_A))
42      state->m_test_y++;
42      m_test_y++;
4343
4444   if(screen.machine().input().code_pressed(KEYCODE_S))
45      state->m_test_y--;
45      m_test_y--;
4646
4747   if(screen.machine().input().code_pressed(KEYCODE_Q))
48      state->m_start_offs+=0x2000;
48      m_start_offs+=0x2000;
4949
5050   if(screen.machine().input().code_pressed(KEYCODE_W))
51      state->m_start_offs-=0x2000;
51      m_start_offs-=0x2000;
5252
5353   if(screen.machine().input().code_pressed(KEYCODE_E))
54      state->m_start_offs++;
54      m_start_offs++;
5555
5656   if(screen.machine().input().code_pressed(KEYCODE_R))
57      state->m_start_offs--;
57      m_start_offs--;
5858
5959   if(screen.machine().input().code_pressed_once(KEYCODE_L))
60      state->m_type^=1;
60      m_type^=1;
6161
62   popmessage("%d %d %04x %d",state->m_test_x,state->m_test_y,state->m_start_offs,state->m_type);
62   popmessage("%d %d %04x %d",m_test_x,m_test_y,m_start_offs,m_type);
6363
6464   bitmap.fill(get_black_pen(screen.machine()), cliprect);
6565
66   count = (state->m_start_offs);
66   count = (m_start_offs);
6767
68   for(y=0;y<state->m_test_y;y++)
68   for(y=0;y<m_test_y;y++)
6969   {
70      for(x=0;x<state->m_test_x;x++)
70      for(x=0;x<m_test_x;x++)
7171      {
72         if(state->m_type)
72         if(m_type)
7373         {
7474            UINT16 vram;
7575            int r,g,b;
r17967r17968
143143   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))  /* not accurate */
144144   MCFG_SCREEN_SIZE(640, 480)
145145   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
146   MCFG_SCREEN_UPDATE_STATIC(aristmk6)
146   MCFG_SCREEN_UPDATE_DRIVER(aristmk6_state, screen_update_aristmk6)
147147
148148   MCFG_PALETTE_LENGTH(0x1000)
149149
trunk/src/mame/drivers/ttchamp.c
r17967r17968
8484
8585
8686   virtual void video_start();
87   UINT32 screen_update_ttchamp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8788};
8889
8990
r17967r17968
9798
9899}
99100
100static SCREEN_UPDATE_IND16(ttchamp)
101UINT32 ttchamp_state::screen_update_ttchamp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
101102{
102   ttchamp_state *state = screen.machine().driver_data<ttchamp_state>();
103103   int y,x,count;
104104//  int i;
105105   static const int xxx=320,yyy=204;
r17967r17968
114114//      b = (dat>>10)&0x1f;
115115//      g = (dat>>5)&0x1f;
116116//      r = (dat>>0)&0x1f;
117//      palette_set_color_rgb(machine,i,pal5bit(r),pal5bit(g),pal5bit(b));
117//      palette_set_color_rgb(machine(),i,pal5bit(r),pal5bit(g),pal5bit(b));
118118//  }
119119
120120   count=0;
121   UINT8 *videoram = (UINT8*)state->m_peno_vram;
121   UINT8 *videoram = (UINT8*)m_peno_vram;
122122   for (y=0;y<yyy;y++)
123123   {
124124      for(x=0;x<xxx;x++)
r17967r17968
287287   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
288288   MCFG_SCREEN_SIZE(1024,1024)
289289   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1)
290   MCFG_SCREEN_UPDATE_STATIC(ttchamp)
290   MCFG_SCREEN_UPDATE_DRIVER(ttchamp_state, screen_update_ttchamp)
291291
292292   MCFG_PALETTE_LENGTH(0x8000)
293293
trunk/src/mame/drivers/buggychl.c
r17967r17968
412412   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
413413   MCFG_SCREEN_SIZE(32*8, 32*8)
414414   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
415   MCFG_SCREEN_UPDATE_STATIC(buggychl)
415   MCFG_SCREEN_UPDATE_DRIVER(buggychl_state, screen_update_buggychl)
416416
417417   MCFG_GFXDECODE(buggychl)
418418   MCFG_PALETTE_LENGTH(128+128)
trunk/src/mame/drivers/starshp1.c
r17967r17968
306306
307307   MCFG_SCREEN_ADD("screen", RASTER)
308308   MCFG_SCREEN_RAW_PARAMS(STARSHP1_PIXEL_CLOCK, STARSHP1_HTOTAL, STARSHP1_HBEND, STARSHP1_HBSTART, STARSHP1_VTOTAL, STARSHP1_VBEND, STARSHP1_VBSTART)
309   MCFG_SCREEN_UPDATE_STATIC(starshp1)
310   MCFG_SCREEN_VBLANK_STATIC(starshp1)
309   MCFG_SCREEN_UPDATE_DRIVER(starshp1_state, screen_update_starshp1)
310   MCFG_SCREEN_VBLANK_DRIVER(starshp1_state, screen_eof_starshp1)
311311
312312   MCFG_GFXDECODE(starshp1)
313313   MCFG_PALETTE_LENGTH(19)
trunk/src/mame/drivers/gotcha.c
r17967r17968
291291   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
292292   MCFG_SCREEN_SIZE(40*8, 32*8)
293293   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
294   MCFG_SCREEN_UPDATE_STATIC(gotcha)
294   MCFG_SCREEN_UPDATE_DRIVER(gotcha_state, screen_update_gotcha)
295295
296296   MCFG_GFXDECODE(gotcha)
297297   MCFG_PALETTE_LENGTH(768)
trunk/src/mame/drivers/taito_f2.c
r17967r17968
30533053   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)   /* frames per second, vblank duration */)
30543054   MCFG_SCREEN_SIZE(40*8, 32*8)
30553055   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
3056   MCFG_SCREEN_UPDATE_STATIC(taitof2)
3057   MCFG_SCREEN_VBLANK_STATIC(taitof2_no_buffer)
3056   MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2)
3057   MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_no_buffer)
30583058
30593059   MCFG_GFXDECODE(taitof2)
30603060   MCFG_PALETTE_LENGTH(4096)
r17967r17968
30993099   MCFG_GFXDECODE(finalb)
31003100   MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_finalb)
31013101   MCFG_SCREEN_MODIFY("screen")
3102   MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed)
3102   MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_partial_buffer_delayed)
31033103
31043104   MCFG_TC0100SCN_ADD("tc0100scn", finalb_tc0100scn_intf)
31053105   MCFG_TC0110PCR_ADD("tc0110pcr", taitof2_tc0110pcr_intf)
r17967r17968
31163116   MCFG_GFXDECODE(pivot)
31173117   MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_dondokod)
31183118   MCFG_SCREEN_MODIFY("screen")
3119   MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed)
3120   MCFG_SCREEN_UPDATE_STATIC(taitof2_pri_roz)
3119   MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_partial_buffer_delayed)
3120   MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri_roz)
31213121
31223122   MCFG_TC0100SCN_ADD("tc0100scn", dondokod_tc0100scn_intf)
31233123   MCFG_TC0430GRW_ADD("tc0280grd", taitof2_tc0280grd_intf)
r17967r17968
31343134   /* video hardware */
31353135   MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_megab)
31363136   MCFG_SCREEN_MODIFY("screen")
3137   MCFG_SCREEN_UPDATE_STATIC(taitof2_pri)
3137   MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri)
31383138
31393139   MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf)
31403140   MCFG_TC0360PRI_ADD("tc0360pri")
r17967r17968
31513151   MCFG_GFXDECODE(thundfox)
31523152   MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_thundfox)
31533153   MCFG_SCREEN_MODIFY("screen")
3154   MCFG_SCREEN_UPDATE_STATIC(taitof2_thundfox)
3155   MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed_thundfox)
3154   MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_thundfox)
3155   MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_partial_buffer_delayed_thundfox)
31563156
31573157   MCFG_TC0100SCN_ADD("tc0100scn_1", thundfox_tc0100scn_intf_1)
31583158   MCFG_TC0100SCN_ADD("tc0100scn_2", thundfox_tc0100scn_intf_2)
r17967r17968
31703170   MCFG_GFXDECODE(pivot)
31713171   MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_dondokod)
31723172   MCFG_SCREEN_MODIFY("screen")
3173   MCFG_SCREEN_UPDATE_STATIC(taitof2_pri_roz)
3173   MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri_roz)
31743174
31753175   MCFG_TC0100SCN_ADD("tc0100scn", dondokod_tc0100scn_intf)
31763176   MCFG_TC0430GRW_ADD("tc0280grd", taitof2_tc0280grd_intf)
r17967r17968
31873187   /* video hardware */
31883188   MCFG_GFXDECODE(yuyugogo)
31893189   MCFG_SCREEN_MODIFY("screen")
3190   MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed)
3190   MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_partial_buffer_delayed)
31913191
31923192   MCFG_TC0100SCN_ADD("tc0100scn", taitof2_tc0100scn_intf)
31933193   MCFG_TC0110PCR_ADD("tc0110pcr", taitof2_tc0110pcr_intf)
r17967r17968
32033203   /* video hardware */
32043204   MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_megab)
32053205   MCFG_SCREEN_MODIFY("screen")
3206   MCFG_SCREEN_UPDATE_STATIC(taitof2_pri)
3207   MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed)
3206   MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri)
3207   MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_partial_buffer_delayed)
32083208
32093209   MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf)
32103210   MCFG_TC0360PRI_ADD("tc0360pri")
r17967r17968
32203220   /* video hardware */
32213221   MCFG_GFXDECODE(yuyugogo)
32223222   MCFG_SCREEN_MODIFY("screen")
3223   MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed)
3223   MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_partial_buffer_delayed)
32243224
32253225   MCFG_TC0100SCN_ADD("tc0100scn", taitof2_tc0100scn_intf)
32263226   MCFG_TC0110PCR_ADD("tc0110pcr", taitof2_tc0110pcr_intf)
r17967r17968
32363236   /* video hardware */
32373237   MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_ssi)
32383238   MCFG_SCREEN_MODIFY("screen")
3239   MCFG_SCREEN_UPDATE_STATIC(taitof2_ssi)
3240   MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed_thundfox)   // buffer_delayed_thundfox instead of buffer_delayed fixes the butterfly powerup
3239   MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_ssi)
3240   MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_partial_buffer_delayed_thundfox)
32413241
32423242   MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf)
32433243MACHINE_CONFIG_END
r17967r17968
32523252   /* video hardware */
32533253   MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_gunfront)
32543254   MCFG_SCREEN_MODIFY("screen")
3255   MCFG_SCREEN_UPDATE_STATIC(taitof2_pri)
3256   MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed)
3255   MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri)
3256   MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_partial_buffer_delayed)
32573257
32583258   MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf)
32593259   MCFG_TC0360PRI_ADD("tc0360pri")
r17967r17968
32693269   /* video hardware */
32703270   MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_growl)
32713271   MCFG_SCREEN_MODIFY("screen")
3272   MCFG_SCREEN_UPDATE_STATIC(taitof2_pri)
3272   MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri)
32733273
32743274   MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf)
32753275   MCFG_TC0360PRI_ADD("tc0360pri")
r17967r17968
33003300   MCFG_GFXDECODE(deadconx)
33013301   MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_footchmp)
33023302   MCFG_SCREEN_MODIFY("screen")
3303   MCFG_SCREEN_UPDATE_STATIC(taitof2_deadconx)
3304   MCFG_SCREEN_VBLANK_STATIC(taitof2_full_buffer_delayed)
3303   MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_deadconx)
3304   MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_full_buffer_delayed)
33053305
33063306   MCFG_TC0480SCP_ADD("tc0480scp", footchmp_tc0480scp_intf)
33073307   MCFG_TC0360PRI_ADD("tc0360pri")
r17967r17968
33243324   MCFG_GFXDECODE(deadconx)
33253325   MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_hthero)
33263326   MCFG_SCREEN_MODIFY("screen")
3327   MCFG_SCREEN_UPDATE_STATIC(taitof2_deadconx)
3328   MCFG_SCREEN_VBLANK_STATIC(taitof2_full_buffer_delayed)
3327   MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_deadconx)
3328   MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_full_buffer_delayed)
33293329
33303330   MCFG_TC0360PRI_ADD("tc0360pri")
33313331   MCFG_TC0480SCP_ADD("tc0480scp", hthero_tc0480scp_intf)
r17967r17968
33413341   /* video hardware */
33423342   MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_koshien)
33433343   MCFG_SCREEN_MODIFY("screen")
3344   MCFG_SCREEN_UPDATE_STATIC(taitof2_pri)
3344   MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri)
33453345
33463346   MCFG_TC0100SCN_ADD("tc0100scn", koshien_tc0100scn_intf)
33473347   MCFG_TC0360PRI_ADD("tc0360pri")
r17967r17968
33583358   MCFG_GFXDECODE(yuyugogo)
33593359   MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_yuyugogo)
33603360   MCFG_SCREEN_MODIFY("screen")
3361   MCFG_SCREEN_UPDATE_STATIC(taitof2_yesnoj)
3361   MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_yesnoj)
33623362
33633363   MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf)
33643364MACHINE_CONFIG_END
r17967r17968
33733373   /* video hardware */
33743374   MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_ninjak)
33753375   MCFG_SCREEN_MODIFY("screen")
3376   MCFG_SCREEN_UPDATE_STATIC(taitof2_pri)
3376   MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri)
33773377
33783378   MCFG_TC0100SCN_ADD("tc0100scn", finalb_tc0100scn_intf)
33793379   MCFG_TC0360PRI_ADD("tc0360pri")
r17967r17968
33893389   /* video hardware */
33903390   MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_solfigtr)
33913391   MCFG_SCREEN_MODIFY("screen")
3392   MCFG_SCREEN_UPDATE_STATIC(taitof2_pri)
3392   MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri)
33933393
33943394   MCFG_TC0100SCN_ADD("tc0100scn", solfigtr_tc0100scn_intf)
33953395   MCFG_TC0360PRI_ADD("tc0360pri")
r17967r17968
34043404
34053405   /* video hardware */
34063406   MCFG_SCREEN_MODIFY("screen")
3407   MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed)
3407   MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_partial_buffer_delayed)
34083408
34093409   MCFG_TC0100SCN_ADD("tc0100scn", taitof2_tc0100scn_intf)
34103410MACHINE_CONFIG_END
r17967r17968
34203420   MCFG_GFXDECODE(pivot)
34213421   MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_pulirula)
34223422   MCFG_SCREEN_MODIFY("screen")
3423   MCFG_SCREEN_UPDATE_STATIC(taitof2_pri_roz)
3423   MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri_roz)
34243424
34253425   MCFG_TC0100SCN_ADD("tc0100scn", dondokod_tc0100scn_intf)
34263426   MCFG_TC0430GRW_ADD("tc0430grw", taitof2_tc0430grw_intf)
r17967r17968
34393439   MCFG_PALETTE_LENGTH(8192)
34403440   MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_metalb)
34413441   MCFG_SCREEN_MODIFY("screen")
3442   MCFG_SCREEN_UPDATE_STATIC(taitof2_metalb)
3442   MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_metalb)
34433443
34443444   MCFG_TC0480SCP_ADD("tc0480scp", metalb_tc0480scp_intf)
34453445   MCFG_TC0360PRI_ADD("tc0360pri")
r17967r17968
34553455   /* video hardware */
34563456   MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_qzchikyu)
34573457   MCFG_SCREEN_MODIFY("screen")
3458   MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed_qzchikyu)
3458   MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_partial_buffer_delayed_qzchikyu)
34593459
34603460   MCFG_TC0100SCN_ADD("tc0100scn", qzchikyu_tc0100scn_intf)
34613461MACHINE_CONFIG_END
r17967r17968
34713471   MCFG_GFXDECODE(yuyugogo)
34723472   MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_yesnoj)
34733473   MCFG_SCREEN_MODIFY("screen")
3474   MCFG_SCREEN_UPDATE_STATIC(taitof2_yesnoj)
3474   MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_yesnoj)
34753475
34763476   MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf)
34773477MACHINE_CONFIG_END
r17967r17968
34873487   MCFG_GFXDECODE(deadconx)
34883488   MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_deadconx)
34893489   MCFG_SCREEN_MODIFY("screen")
3490   MCFG_SCREEN_UPDATE_STATIC(taitof2_deadconx)
3490   MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_deadconx)
34913491
34923492   MCFG_TC0480SCP_ADD("tc0480scp", deadconx_tc0480scp_intf)
34933493   MCFG_TC0360PRI_ADD("tc0360pri")
r17967r17968
35043504   MCFG_GFXDECODE(deadconx)
35053505   MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_deadconxj)
35063506   MCFG_SCREEN_MODIFY("screen")
3507   MCFG_SCREEN_UPDATE_STATIC(taitof2_deadconx)
3507   MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_deadconx)
35083508
35093509   MCFG_TC0480SCP_ADD("tc0480scp", deadconxj_tc0480scp_intf)
35103510   MCFG_TC0360PRI_ADD("tc0360pri")
r17967r17968
35203520   /* video hardware */
35213521   MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_dinorex)
35223522   MCFG_SCREEN_MODIFY("screen")
3523   MCFG_SCREEN_UPDATE_STATIC(taitof2_pri)
3523   MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri)
35243524
35253525   MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf)
35263526   MCFG_TC0360PRI_ADD("tc0360pri")
r17967r17968
35363536   /* video hardware */
35373537   MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_quiz)
35383538   MCFG_SCREEN_MODIFY("screen")
3539   MCFG_SCREEN_UPDATE_STATIC(taitof2_pri)
3539   MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri)
35403540
35413541   MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf)
35423542   MCFG_TC0360PRI_ADD("tc0360pri")
r17967r17968
35523552   /* video hardware */
35533553   MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_quiz)
35543554   MCFG_SCREEN_MODIFY("screen")
3555   MCFG_SCREEN_UPDATE_STATIC(taitof2_pri)
3555   MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri)
35563556
35573557   MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf)
35583558   MCFG_TC0360PRI_ADD("tc0360pri")
r17967r17968
35683568   /* video hardware */
35693569   MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_quiz)
35703570   MCFG_SCREEN_MODIFY("screen")
3571   MCFG_SCREEN_UPDATE_STATIC(taitof2_pri)
3571   MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri)
35723572
35733573   MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf)
35743574   MCFG_TC0360PRI_ADD("tc0360pri")
r17967r17968
35853585   MCFG_GFXDECODE(pivot)
35863586   MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_driftout)
35873587   MCFG_SCREEN_MODIFY("screen")
3588   MCFG_SCREEN_UPDATE_STATIC(taitof2_pri_roz)
3588   MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri_roz)
35893589
35903590   MCFG_TC0100SCN_ADD("tc0100scn", dondokod_tc0100scn_intf)
35913591   MCFG_TC0430GRW_ADD("tc0430grw", taitof2_tc0430grw_intf)
r17967r17968
36133613   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
36143614   MCFG_SCREEN_SIZE(40*8, 32*8)
36153615   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
3616   MCFG_SCREEN_UPDATE_STATIC(taitof2_pri_roz)
3617   MCFG_SCREEN_VBLANK_STATIC(taitof2_no_buffer)
3616   MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri_roz)
3617   MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_no_buffer)
36183618
36193619   MCFG_GFXDECODE(pivot)
36203620   MCFG_PALETTE_LENGTH(4096)
r17967r17968
36623662   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
36633663   MCFG_SCREEN_SIZE(40*8, 32*8)
36643664   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
3665   MCFG_SCREEN_UPDATE_STATIC(taitof2_pri_roz)
3666   MCFG_SCREEN_VBLANK_STATIC(taitof2_no_buffer)
3665   MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri_roz)
3666   MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_no_buffer)
36673667
36683668   MCFG_GFXDECODE(pivot)
36693669   MCFG_PALETTE_LENGTH(4096)
trunk/src/mame/drivers/pandoras.c
r17967r17968
366366   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
367367   MCFG_SCREEN_SIZE(32*8, 32*8)
368368   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
369   MCFG_SCREEN_UPDATE_STATIC(pandoras)
369   MCFG_SCREEN_UPDATE_DRIVER(pandoras_state, screen_update_pandoras)
370370
371371   MCFG_GFXDECODE(pandoras)
372372   MCFG_PALETTE_LENGTH(16*16+16*16)
trunk/src/mame/drivers/gottlieb.c
r17967r17968
17191719   /* video hardware */
17201720   MCFG_SCREEN_ADD("screen", RASTER)
17211721   MCFG_SCREEN_RAW_PARAMS(SYSTEM_CLOCK/4, GOTTLIEB_VIDEO_HCOUNT, 0, GOTTLIEB_VIDEO_HBLANK, GOTTLIEB_VIDEO_VCOUNT, 0, GOTTLIEB_VIDEO_VBLANK)
1722   MCFG_SCREEN_UPDATE_STATIC(gottlieb)
1722   MCFG_SCREEN_UPDATE_DRIVER(gottlieb_state, screen_update_gottlieb)
17231723
17241724   MCFG_GFXDECODE(gfxdecode)
17251725   MCFG_PALETTE_LENGTH(16)
r17967r17968
17481748
17491749   MCFG_LASERDISC_PR8210_ADD("laserdisc")
17501750   MCFG_LASERDISC_AUDIO(laserdisc_audio_delegate(FUNC(laserdisc_audio_process), device))
1751   MCFG_LASERDISC_OVERLAY_STATIC(GOTTLIEB_VIDEO_HCOUNT, GOTTLIEB_VIDEO_VCOUNT, gottlieb)
1751   MCFG_LASERDISC_OVERLAY_DRIVER(GOTTLIEB_VIDEO_HCOUNT, GOTTLIEB_VIDEO_VCOUNT, gottlieb_state, screen_update_gottlieb)
17521752   MCFG_LASERDISC_OVERLAY_CLIP(0, GOTTLIEB_VIDEO_HBLANK-1, 0, GOTTLIEB_VIDEO_VBLANK-8)
17531753   MCFG_SOUND_ROUTE(0, "mono", 1.0)
17541754   /* right channel is processed as data */
r17967r17968
18291829
18301830   MCFG_LASERDISC_PR8210_ADD("laserdisc")
18311831   MCFG_LASERDISC_AUDIO(laserdisc_audio_delegate(FUNC(laserdisc_audio_process), device))
1832   MCFG_LASERDISC_OVERLAY_STATIC(GOTTLIEB_VIDEO_HCOUNT, GOTTLIEB_VIDEO_VCOUNT, gottlieb)
1832   MCFG_LASERDISC_OVERLAY_DRIVER(GOTTLIEB_VIDEO_HCOUNT, GOTTLIEB_VIDEO_VCOUNT, gottlieb_state, screen_update_gottlieb)
18331833   MCFG_LASERDISC_OVERLAY_CLIP(0, GOTTLIEB_VIDEO_HBLANK-1, 0, GOTTLIEB_VIDEO_VBLANK-8)
18341834   MCFG_SOUND_ROUTE(0, "mono", 1.0)
18351835   /* right channel is processed as data */
trunk/src/mame/drivers/psattack.c
r17967r17968
9090   virtual void machine_start();
9191   virtual void machine_reset();
9292   virtual void video_start();
93   UINT32 screen_update_psattack(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
94   void screen_eof_psattack(screen_device &screen, bool state);
9395};
9496
9597
r17967r17968
124126}
125127
126128
127static SCREEN_UPDATE_IND16(psattack)
129UINT32 psattack_state::screen_update_psattack(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
128130{
129131   return 0;
130132}
131133
132static SCREEN_VBLANK(psattack)
134void psattack_state::screen_eof_psattack(screen_device &screen, bool state)
133135{
134136
135137}
r17967r17968
186188   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
187189   MCFG_SCREEN_SIZE(320, 240)
188190   MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
189   MCFG_SCREEN_UPDATE_STATIC(psattack)
190   MCFG_SCREEN_VBLANK_STATIC(psattack)
191   MCFG_SCREEN_UPDATE_DRIVER(psattack_state, screen_update_psattack)
192   MCFG_SCREEN_VBLANK_DRIVER(psattack_state, screen_eof_psattack)
191193
192194
193195   MCFG_PALETTE_INIT(RRRRR_GGGGGG_BBBBB)
trunk/src/mame/drivers/ddragon.c
r17967r17968
985985
986986   MCFG_SCREEN_ADD("screen", RASTER)
987987   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240)
988   MCFG_SCREEN_UPDATE_STATIC(ddragon)
988   MCFG_SCREEN_UPDATE_DRIVER(ddragon_state, screen_update_ddragon)
989989
990990   MCFG_VIDEO_START_OVERRIDE(ddragon_state,ddragon)
991991
r17967r17968
10481048
10491049   MCFG_SCREEN_ADD("screen", RASTER)
10501050   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240)
1051   MCFG_SCREEN_UPDATE_STATIC(ddragon)
1051   MCFG_SCREEN_UPDATE_DRIVER(ddragon_state, screen_update_ddragon)
10521052
10531053   MCFG_VIDEO_START_OVERRIDE(ddragon_state,ddragon)
10541054
r17967r17968
10941094
10951095   MCFG_SCREEN_ADD("screen", RASTER)
10961096   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240)
1097   MCFG_SCREEN_UPDATE_STATIC(ddragon)
1097   MCFG_SCREEN_UPDATE_DRIVER(ddragon_state, screen_update_ddragon)
10981098
10991099   MCFG_VIDEO_START_OVERRIDE(ddragon_state,ddragon)
11001100
trunk/src/mame/drivers/acommand.c
r17967r17968
9292   TILE_GET_INFO_MEMBER(ac_get_bg_tile_info);
9393   TILE_GET_INFO_MEMBER(ac_get_tx_tile_info);
9494   virtual void video_start();
95   UINT32 screen_update_acommand(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
9596};
9697
9798
r17967r17968
249250}
250251
251252
252static SCREEN_UPDATE_IND16( acommand )
253UINT32 acommand_state::screen_update_acommand(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
253254{
254   acommand_state *state = screen.machine().driver_data<acommand_state>();
255   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
255   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
256256   draw_sprites(screen.machine(),bitmap,cliprect,0,0);
257   state->m_tx_tilemap->draw(bitmap, cliprect, 0,0);
257   m_tx_tilemap->draw(bitmap, cliprect, 0,0);
258258
259259   /*Order might be wrong,but these for sure are the led numbers tested*/
260   draw_led(bitmap,  0, 20, (state->m_led0 & 0x0f00) >> 8);
261   draw_led(bitmap,  6, 20, (state->m_led0 & 0x00f0) >> 4);
262   draw_led(bitmap, 12, 20, (state->m_led0 & 0x000f));
260   draw_led(bitmap,  0, 20, (m_led0 & 0x0f00) >> 8);
261   draw_led(bitmap,  6, 20, (m_led0 & 0x00f0) >> 4);
262   draw_led(bitmap, 12, 20, (m_led0 & 0x000f));
263263
264   draw_led(bitmap, 256-18,20,(state->m_led0 & 0xf000) >> 12);
265   draw_led(bitmap, 256-12,20,(state->m_led1 & 0xf0) >> 4);
266   draw_led(bitmap, 256-6,20, (state->m_led1 & 0xf));
264   draw_led(bitmap, 256-18,20,(m_led0 & 0xf000) >> 12);
265   draw_led(bitmap, 256-12,20,(m_led1 & 0xf0) >> 4);
266   draw_led(bitmap, 256-6,20, (m_led1 & 0xf));
267267   return 0;
268268}
269269
r17967r17968
609609   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
610610   MCFG_SCREEN_SIZE(32*8, 32*8)
611611   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
612   MCFG_SCREEN_UPDATE_STATIC(acommand)
612   MCFG_SCREEN_UPDATE_DRIVER(acommand_state, screen_update_acommand)
613613
614614   MCFG_GFXDECODE(acommand)
615615   MCFG_PALETTE_LENGTH(0x4000)
trunk/src/mame/drivers/asterix.c
r17967r17968
307307   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
308308   MCFG_SCREEN_SIZE(64*8, 32*8)
309309   MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
310   MCFG_SCREEN_UPDATE_STATIC(asterix)
310   MCFG_SCREEN_UPDATE_DRIVER(asterix_state, screen_update_asterix)
311311
312312   MCFG_PALETTE_LENGTH(2048)
313313
trunk/src/mame/drivers/ppmast93.c
r17967r17968
155155   TILE_GET_INFO_MEMBER(get_ppmast93_bg_tile_info);
156156   TILE_GET_INFO_MEMBER(get_ppmast93_fg_tile_info);
157157   virtual void video_start();
158   UINT32 screen_update_ppmast93(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
158159};
159160
160161
r17967r17968
353354   m_fg_tilemap->set_transparent_pen(0);
354355}
355356
356static SCREEN_UPDATE_IND16( ppmast93 )
357UINT32 ppmast93_state::screen_update_ppmast93(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
357358{
358   ppmast93_state *state = screen.machine().driver_data<ppmast93_state>();
359   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
360   state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
359   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
360   m_fg_tilemap->draw(bitmap, cliprect, 0,0);
361361   return 0;
362362}
363363
r17967r17968
379379   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
380380   MCFG_SCREEN_SIZE(256, 256)
381381   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1)
382   MCFG_SCREEN_UPDATE_STATIC(ppmast93)
382   MCFG_SCREEN_UPDATE_DRIVER(ppmast93_state, screen_update_ppmast93)
383383
384384   MCFG_GFXDECODE(ppmast93)
385385
trunk/src/mame/drivers/goldnpkr.c
r17967r17968
10041004   DECLARE_PALETTE_INIT(witchcrd);
10051005   DECLARE_VIDEO_START(wcrdxtnd);
10061006   DECLARE_PALETTE_INIT(wcrdxtnd);
1007   UINT32 screen_update_goldnpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
10071008};
10081009
10091010
r17967r17968
10701071   m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(goldnpkr_state::wcrdxtnd_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
10711072}
10721073
1073static SCREEN_UPDATE_IND16( goldnpkr )
1074UINT32 goldnpkr_state::screen_update_goldnpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
10741075{
1075   goldnpkr_state *state = screen.machine().driver_data<goldnpkr_state>();
1076   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
1076   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
10771077   return 0;
10781078}
10791079
r17967r17968
35873587   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
35883588   MCFG_SCREEN_SIZE((39+1)*8, (31+1)*8)                  /* From MC6845 init, registers 00 & 04 (programmed with value-1). */
35893589   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 29*8-1)    /* From MC6845 init, registers 01 & 06. */
3590   MCFG_SCREEN_UPDATE_STATIC(goldnpkr)
3590   MCFG_SCREEN_UPDATE_DRIVER(goldnpkr_state, screen_update_goldnpkr)
35913591
35923592   MCFG_MC6845_ADD("crtc", MC6845, CPU_CLOCK, mc6845_intf)   /* 68B45 or 6845s @ CPU clock */
35933593
trunk/src/mame/drivers/xxmissio.c
r17967r17968
301301   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
302302   MCFG_SCREEN_SIZE(64*8, 32*8)
303303   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 4*8, 28*8-1)
304   MCFG_SCREEN_UPDATE_STATIC(xxmissio)
304   MCFG_SCREEN_UPDATE_DRIVER(xxmissio_state, screen_update_xxmissio)
305305
306306   MCFG_GFXDECODE(xxmissio)
307307   MCFG_PALETTE_LENGTH(768)
trunk/src/mame/drivers/hyhoo.c
r17967r17968
255255   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
256256   MCFG_SCREEN_SIZE(512, 256)
257257   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 240-1)
258   MCFG_SCREEN_UPDATE_STATIC(hyhoo)
258   MCFG_SCREEN_UPDATE_DRIVER(hyhoo_state, screen_update_hyhoo)
259259
260260
261261   /* sound hardware */
trunk/src/mame/drivers/moo.c
r17967r17968
535535   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1200))    // should give IRQ4 sufficient time to update scroll registers
536536   MCFG_SCREEN_SIZE(64*8, 32*8)
537537   MCFG_SCREEN_VISIBLE_AREA(40, 40+384-1, 16, 16+224-1)
538   MCFG_SCREEN_UPDATE_STATIC(moo)
538   MCFG_SCREEN_UPDATE_DRIVER(moo_state, screen_update_moo)
539539
540540   MCFG_PALETTE_LENGTH(2048)
541541
r17967r17968
578578   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1200)) // should give IRQ4 sufficient time to update scroll registers
579579   MCFG_SCREEN_SIZE(64*8, 32*8)
580580   MCFG_SCREEN_VISIBLE_AREA(40, 40+384-1, 16, 16+224-1)
581   MCFG_SCREEN_UPDATE_STATIC(moo)
581   MCFG_SCREEN_UPDATE_DRIVER(moo_state, screen_update_moo)
582582
583583   MCFG_PALETTE_LENGTH(2048)
584584
trunk/src/mame/drivers/taito_l.c
r17967r17968
18641864   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
18651865   MCFG_SCREEN_SIZE(40*8, 32*8)
18661866   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
1867   MCFG_SCREEN_UPDATE_STATIC(taitol)
1868   MCFG_SCREEN_VBLANK_STATIC(taitol)
1867   MCFG_SCREEN_UPDATE_DRIVER(taitol_state, screen_update_taitol)
1868   MCFG_SCREEN_VBLANK_DRIVER(taitol_state, screen_eof_taitol)
18691869
18701870   MCFG_GFXDECODE(2)
18711871   MCFG_PALETTE_LENGTH(256)
r17967r17968
19561956   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
19571957   MCFG_SCREEN_SIZE(40*8, 32*8)
19581958   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
1959   MCFG_SCREEN_UPDATE_STATIC(taitol)
1960   MCFG_SCREEN_VBLANK_STATIC(taitol)
1959   MCFG_SCREEN_UPDATE_DRIVER(taitol_state, screen_update_taitol)
1960   MCFG_SCREEN_VBLANK_DRIVER(taitol_state, screen_eof_taitol)
19611961
19621962   MCFG_GFXDECODE(2)
19631963   MCFG_PALETTE_LENGTH(256)
r17967r17968
20022002   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
20032003   MCFG_SCREEN_SIZE(40*8, 32*8)
20042004   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
2005   MCFG_SCREEN_UPDATE_STATIC(taitol)
2006   MCFG_SCREEN_VBLANK_STATIC(taitol)
2005   MCFG_SCREEN_UPDATE_DRIVER(taitol_state, screen_update_taitol)
2006   MCFG_SCREEN_VBLANK_DRIVER(taitol_state, screen_eof_taitol)
20072007
20082008   MCFG_GFXDECODE(1)
20092009   MCFG_PALETTE_LENGTH(256)
r17967r17968
20952095   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
20962096   MCFG_SCREEN_SIZE(40*8, 32*8)
20972097   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
2098   MCFG_SCREEN_UPDATE_STATIC(taitol)
2099   MCFG_SCREEN_VBLANK_STATIC(taitol)
2098   MCFG_SCREEN_UPDATE_DRIVER(taitol_state, screen_update_taitol)
2099   MCFG_SCREEN_VBLANK_DRIVER(taitol_state, screen_eof_taitol)
21002100
21012101   MCFG_GFXDECODE(2)
21022102   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/eolith16.c
r17967r17968
3333   DECLARE_DRIVER_INIT(eolith16);
3434   DECLARE_VIDEO_START(eolith16);
3535   DECLARE_PALETTE_INIT(eolith16);
36   UINT32 screen_update_eolith16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3637};
3738
3839
r17967r17968
126127   m_vram = auto_alloc_array(machine(), UINT16, 0x10000);
127128}
128129
129static SCREEN_UPDATE_IND16( eolith16 )
130UINT32 eolith16_state::screen_update_eolith16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
130131{
131   eolith16_state *state = screen.machine().driver_data<eolith16_state>();
132132   int x,y,count;
133133   int color;
134134
r17967r17968
137137   {
138138      for (x=0;x < 320/2;x++)
139139      {
140         color = state->m_vram[count + (0x10000/2) * (state->m_vbuffer ^ 1)] & 0xff;
140         color = m_vram[count + (0x10000/2) * (m_vbuffer ^ 1)] & 0xff;
141141         bitmap.pix16(y, x*2 + 0) = color;
142142
143         color = (state->m_vram[count + (0x10000/2) * (state->m_vbuffer ^ 1)] & 0xff00) >> 8;
143         color = (m_vram[count + (0x10000/2) * (m_vbuffer ^ 1)] & 0xff00) >> 8;
144144         bitmap.pix16(y, x*2 + 1) = color;
145145
146146         count++;
r17967r17968
189189   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
190190   MCFG_SCREEN_SIZE(512, 262)
191191   MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 199)
192   MCFG_SCREEN_UPDATE_STATIC(eolith16)
192   MCFG_SCREEN_UPDATE_DRIVER(eolith16_state, screen_update_eolith16)
193193
194194   MCFG_PALETTE_LENGTH(256)
195195
trunk/src/mame/drivers/groundfx.c
r17967r17968
376376   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
377377   MCFG_SCREEN_SIZE(40*8, 32*8)
378378   MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 3*8, 32*8-1)
379   MCFG_SCREEN_UPDATE_STATIC(groundfx)
379   MCFG_SCREEN_UPDATE_DRIVER(groundfx_state, screen_update_groundfx)
380380
381381   MCFG_GFXDECODE(groundfx)
382382   MCFG_PALETTE_LENGTH(16384)
trunk/src/mame/drivers/segald.c
r17967r17968
5858   DECLARE_WRITE8_MEMBER(astron_io_bankswitch_w);
5959   DECLARE_DRIVER_INIT(astron);
6060   virtual void machine_start();
61   UINT32 screen_update_astron(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
6162};
6263
6364/* VIDEO GOODS */
r17967r17968
106107}
107108
108109
109static SCREEN_UPDATE_RGB32( astron )
110UINT32 segald_state::screen_update_astron(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
110111{
111112   bitmap.fill(0, cliprect);
112113
r17967r17968
376377
377378
378379   MCFG_LASERDISC_LDV1000_ADD("laserdisc")
379   MCFG_LASERDISC_OVERLAY_STATIC(256, 256, astron)
380   MCFG_LASERDISC_OVERLAY_DRIVER(256, 256, segald_state, screen_update_astron)
380381
381382   /* video hardware */
382383   MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc")
trunk/src/mame/drivers/srmp5.c
r17967r17968
102102   DECLARE_READ8_MEMBER(cmd2_r);
103103   DECLARE_READ8_MEMBER(cmd_stat8_r);
104104   DECLARE_DRIVER_INIT(srmp5);
105   UINT32 screen_update_srmp5(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
105106};
106107
107108
108static SCREEN_UPDATE_RGB32( srmp5 )
109UINT32 srmp5_state::screen_update_srmp5(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
109110{
110   srmp5_state *state = screen.machine().driver_data<srmp5_state>();
111111   int x,y,address,xs,xs2,ys,ys2,height,width,xw,yw,xb,yb,sizex,sizey;
112   UINT16 *sprite_list=state->m_sprram;
113   UINT16 *sprite_list_end=&state->m_sprram[0x4000]; //guess
114   UINT8 *pixels=(UINT8 *)state->m_tileram;
112   UINT16 *sprite_list=m_sprram;
113   UINT16 *sprite_list_end=&m_sprram[0x4000]; //guess
114   UINT8 *pixels=(UINT8 *)m_tileram;
115115
116116//Table surface seems to be tiles, but display corrupts when switching the scene if always ON.
117117//Currently the tiles are OFF.
118118#ifdef BG_ENABLE
119   UINT8 tile_width  = (state->m_vidregs[2] >> 0) & 0xFF;
120   UINT8 tile_height = (state->m_vidregs[2] >> 8) & 0xFF;
119   UINT8 tile_width  = (m_vidregs[2] >> 0) & 0xFF;
120   UINT8 tile_height = (m_vidregs[2] >> 8) & 0xFF;
121121   if(tile_width && tile_height)
122122   {
123123      // 16x16 tile
r17967r17968
137137                  UINT8 pen = pixels[address];
138138                  if(pen)
139139                  {
140                     UINT16 pixdata=state->m_palram[pen];
140                     UINT16 pixdata=m_palram[pen];
141141                     bitmap.pix32(yw * 16 + y, xw * 16 + x) = ((pixdata&0x7c00)>>7) | ((pixdata&0x3e0)<<6) | ((pixdata&0x1f)<<19);
142142                  }
143143                  address++;
r17967r17968
152152
153153   while((sprite_list[SUBLIST_OFFSET]&SPRITE_LIST_END_MARKER)==0 && sprite_list<sprite_list_end)
154154   {
155      UINT16 *sprite_sublist=&state->m_sprram[sprite_list[SUBLIST_OFFSET]<<SUBLIST_OFFSET_SHIFT];
155      UINT16 *sprite_sublist=&m_sprram[sprite_list[SUBLIST_OFFSET]<<SUBLIST_OFFSET_SHIFT];
156156      UINT16 sublist_length=sprite_list[SUBLIST_LENGTH];
157157      INT16 global_x,global_y;
158158
r17967r17968
189189                        {
190190                           if(cliprect.contains(xb+xs2, yb+ys2))
191191                           {
192                              UINT16 pixdata=state->m_palram[pen+((sprite_sublist[SPRITE_PALETTE]&0xff)<<8)];
192                              UINT16 pixdata=m_palram[pen+((sprite_sublist[SPRITE_PALETTE]&0xff)<<8)];
193193                              bitmap.pix32(yb+ys2, xb+xs2) = ((pixdata&0x7c00)>>7) | ((pixdata&0x3e0)<<6) | ((pixdata&0x1f)<<19);
194194                           }
195195                        }
r17967r17968
210210      int i;
211211      for(i = 0; i < 0x2000; i++)
212212      {
213         if (state->m_tileduty[i] == 1)
213         if (m_tileduty[i] == 1)
214214         {
215215            screen.machine().gfx[0]->decode(i);
216            state->m_tileduty[i] = 0;
216            m_tileduty[i] = 0;
217217         }
218218      }
219219   }
r17967r17968
573573   MCFG_SCREEN_REFRESH_RATE(60)
574574   MCFG_SCREEN_SIZE(96*8, 64*8)
575575   MCFG_SCREEN_VISIBLE_AREA(0*8, 42*8-1, 2*8, 32*8-1)
576   MCFG_SCREEN_UPDATE_STATIC(srmp5)
576   MCFG_SCREEN_UPDATE_DRIVER(srmp5_state, screen_update_srmp5)
577577
578578   MCFG_PALETTE_LENGTH(0x1800)
579579#ifdef DEBUG_CHAR
trunk/src/mame/drivers/suprloco.c
r17967r17968
183183   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(5000))
184184   MCFG_SCREEN_SIZE(32*8, 32*8)
185185   MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 0*8, 28*8-1)
186   MCFG_SCREEN_UPDATE_STATIC(suprloco)
186   MCFG_SCREEN_UPDATE_DRIVER(suprloco_state, screen_update_suprloco)
187187
188188   MCFG_GFXDECODE(suprloco)
189189   MCFG_PALETTE_LENGTH(512+256)
trunk/src/mame/drivers/m92.c
r17967r17968
954954   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
955955   MCFG_SCREEN_SIZE(512, 256)
956956   MCFG_SCREEN_VISIBLE_AREA(80, 511-112, 8, 247) /* 320 x 240 */
957   MCFG_SCREEN_UPDATE_STATIC(m92)
957   MCFG_SCREEN_UPDATE_DRIVER(m92_state, screen_update_m92)
958958
959959   MCFG_GFXDECODE(m92)
960960   MCFG_PALETTE_LENGTH(2048)
r17967r17968
10401040   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
10411041   MCFG_SCREEN_SIZE(512, 256)
10421042   MCFG_SCREEN_VISIBLE_AREA(80, 511-112, 8, 247) /* 320 x 240 */
1043   MCFG_SCREEN_UPDATE_STATIC(ppan)
1043   MCFG_SCREEN_UPDATE_DRIVER(m92_state, screen_update_ppan)
10441044
10451045   MCFG_GFXDECODE(m92)
10461046   MCFG_PALETTE_LENGTH(2048)
trunk/src/mame/drivers/m58.c
r17967r17968
201201
202202   MCFG_SCREEN_ADD("screen", RASTER)
203203   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 256, 282, 42, 266)
204   MCFG_SCREEN_UPDATE_STATIC(yard)
204   MCFG_SCREEN_UPDATE_DRIVER(m58_state, screen_update_yard)
205205
206206
207207   /* sound hardware */
trunk/src/mame/drivers/fcombat.c
r17967r17968
298298   /* video hardware */
299299   MCFG_SCREEN_ADD("screen", RASTER)
300300   MCFG_SCREEN_RAW_PARAMS(FCOMBAT_PIXEL_CLOCK, FCOMBAT_HTOTAL, FCOMBAT_HBEND, FCOMBAT_HBSTART, FCOMBAT_VTOTAL, FCOMBAT_VBEND, FCOMBAT_VBSTART)
301   MCFG_SCREEN_UPDATE_STATIC(fcombat)
301   MCFG_SCREEN_UPDATE_DRIVER(fcombat_state, screen_update_fcombat)
302302
303303   MCFG_GFXDECODE(fcombat)
304304   MCFG_PALETTE_LENGTH(256*3)
trunk/src/mame/drivers/destroyr.c
r17967r17968
5151   virtual void machine_start();
5252   virtual void machine_reset();
5353   virtual void palette_init();
54   UINT32 screen_update_destroyr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5455};
5556
5657
57static SCREEN_UPDATE_IND16( destroyr )
58UINT32 destroyr_state::screen_update_destroyr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
5859{
59   destroyr_state *state = screen.machine().driver_data<destroyr_state>();
6060   int i, j;
6161
6262   bitmap.fill(0, cliprect);
r17967r17968
6464   /* draw major objects */
6565   for (i = 0; i < 16; i++)
6666   {
67      int attr = state->m_major_obj_ram[2 * i + 0] ^ 0xff;
68      int horz = state->m_major_obj_ram[2 * i + 1];
67      int attr = m_major_obj_ram[2 * i + 0] ^ 0xff;
68      int horz = m_major_obj_ram[2 * i + 1];
6969
7070      int num = attr & 3;
7171      int scan = attr & 4;
r17967r17968
9090   {
9191      for (j = 0; j < 32; j++)
9292      {
93         int num = state->m_alpha_num_ram[32 * i + j];
93         int num = m_alpha_num_ram[32 * i + j];
9494
9595         drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0], num, 0, 0, 0, 8 * j, 8 * i, 0);
9696      }
r17967r17968
9999   /* draw minor objects */
100100   for (i = 0; i < 2; i++)
101101   {
102      int num = i << 4 | (state->m_minor_obj_ram[i + 0] & 0xf);
103      int horz = 256 - state->m_minor_obj_ram[i + 2];
104      int vert = 256 - state->m_minor_obj_ram[i + 4];
102      int num = i << 4 | (m_minor_obj_ram[i + 0] & 0xf);
103      int horz = 256 - m_minor_obj_ram[i + 2];
104      int vert = 256 - m_minor_obj_ram[i + 4];
105105
106106      drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1], num, 0, 0, 0, horz, vert, 0);
107107   }
r17967r17968
109109   /* draw waves */
110110   for (i = 0; i < 4; i++)
111111   {
112      drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[3], state->m_wavemod ? 1 : 0, 0, 0, 0, 64 * i, 0x4e, 0);
112      drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[3], m_wavemod ? 1 : 0, 0, 0, 0, 64 * i, 0x4e, 0);
113113   }
114114
115115   /* draw cursor */
116116   for (i = 0; i < 256; i++)
117117   {
118118      if (i & 4)
119         bitmap.pix16(state->m_cursor ^ 0xff, i) = 7;
119         bitmap.pix16(m_cursor ^ 0xff, i) = 7;
120120   }
121121   return 0;
122122}
r17967r17968
460460   MCFG_SCREEN_REFRESH_RATE(60)
461461   MCFG_SCREEN_SIZE(256, 262)
462462   MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239)
463   MCFG_SCREEN_UPDATE_STATIC(destroyr)
463   MCFG_SCREEN_UPDATE_DRIVER(destroyr_state, screen_update_destroyr)
464464
465465   MCFG_GFXDECODE(destroyr)
466466   MCFG_PALETTE_LENGTH(8)
trunk/src/mame/drivers/wwfwfest.c
r17967r17968
397397
398398   MCFG_SCREEN_ADD("screen", RASTER)
399399   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 320, 272, 8, 248)   /* HTOTAL and VTOTAL are guessed */
400   MCFG_SCREEN_UPDATE_STATIC(wwfwfest)
400   MCFG_SCREEN_UPDATE_DRIVER(wwfwfest_state, screen_update_wwfwfest)
401401   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
402402
403403   MCFG_GFXDECODE(wwfwfest)
trunk/src/mame/drivers/feversoc.c
r17967r17968
7878   DECLARE_WRITE32_MEMBER(output_w);
7979   DECLARE_DRIVER_INIT(feversoc);
8080   virtual void video_start();
81   UINT32 screen_update_feversoc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8182};
8283
8384
r17967r17968
8889
8990}
9091
91static SCREEN_UPDATE_IND16( feversoc )
92UINT32 feversoc_state::screen_update_feversoc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
9293{
93   feversoc_state *state = screen.machine().driver_data<feversoc_state>();
94   UINT32 *spriteram32 = state->m_spriteram;
94   UINT32 *spriteram32 = m_spriteram;
9595   int offs,spr_offs,colour,sx,sy,h,w,dx,dy;
9696
9797   bitmap.fill(screen.machine().pens[0], cliprect); //black pen
r17967r17968
264264   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
265265   MCFG_SCREEN_SIZE(40*8, 32*8)
266266   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) //dynamic resolution?
267   MCFG_SCREEN_UPDATE_STATIC(feversoc)
267   MCFG_SCREEN_UPDATE_DRIVER(feversoc_state, screen_update_feversoc)
268268
269269   MCFG_GFXDECODE(feversoc)
270270   MCFG_PALETTE_LENGTH(0x1000)
trunk/src/mame/drivers/multigam.c
r17967r17968
144144   DECLARE_MACHINE_START(multigm3);
145145   DECLARE_MACHINE_RESET(multigm3);
146146   DECLARE_MACHINE_START(supergm3);
147   UINT32 screen_update_multigam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
147148};
148149
149150
r17967r17968
11141115{
11151116}
11161117
1117static SCREEN_UPDATE_IND16( multigam )
1118UINT32 multigam_state::screen_update_multigam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
11181119{
11191120   /* render the ppu */
11201121   ppu2c0x_device *ppu = screen.machine().device<ppu2c0x_device>("ppu");
r17967r17968
12031204   MCFG_SCREEN_REFRESH_RATE(60)
12041205   MCFG_SCREEN_SIZE(32*8, 262)
12051206   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1)
1206   MCFG_SCREEN_UPDATE_STATIC(multigam)
1207   MCFG_SCREEN_UPDATE_DRIVER(multigam_state, screen_update_multigam)
12071208
12081209   MCFG_GFXDECODE(multigam)
12091210   MCFG_PALETTE_LENGTH(8*4*16)
trunk/src/mame/drivers/fuukifg2.c
r17967r17968
478478   MCFG_SCREEN_REFRESH_RATE(60)
479479   MCFG_SCREEN_SIZE(320, 256)
480480   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-16-1)
481   MCFG_SCREEN_UPDATE_STATIC(fuuki16)
481   MCFG_SCREEN_UPDATE_DRIVER(fuuki16_state, screen_update_fuuki16)
482482
483483   MCFG_GFXDECODE(fuuki16)
484484   MCFG_PALETTE_LENGTH(0x800*4)
trunk/src/mame/drivers/vulgus.c
r17967r17968
225225   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
226226   MCFG_SCREEN_SIZE(32*8, 32*8)
227227   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
228   MCFG_SCREEN_UPDATE_STATIC(vulgus)
228   MCFG_SCREEN_UPDATE_DRIVER(vulgus_state, screen_update_vulgus)
229229
230230   MCFG_GFXDECODE(vulgus)
231231   MCFG_PALETTE_LENGTH(64*4+16*16+4*32*8)
trunk/src/mame/drivers/sderby.c
r17967r17968
506506   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
507507   MCFG_SCREEN_SIZE(64*8, 64*8)
508508   MCFG_SCREEN_VISIBLE_AREA(4*8, 44*8-1, 3*8, 33*8-1)
509   MCFG_SCREEN_UPDATE_STATIC(sderby)
509   MCFG_SCREEN_UPDATE_DRIVER(sderby_state, screen_update_sderby)
510510
511511   MCFG_GFXDECODE(sderby)
512512   MCFG_PALETTE_LENGTH(0x1000)
r17967r17968
529529   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
530530   MCFG_SCREEN_SIZE(64*8, 64*8)
531531   MCFG_SCREEN_VISIBLE_AREA(4*8, 44*8-1, 3*8, 33*8-1)
532   MCFG_SCREEN_UPDATE_STATIC(sderby)
532   MCFG_SCREEN_UPDATE_DRIVER(sderby_state, screen_update_sderby)
533533
534534   MCFG_GFXDECODE(sderby)
535535   MCFG_PALETTE_LENGTH(0x1000)
r17967r17968
552552   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
553553   MCFG_SCREEN_SIZE(64*8, 64*8)
554554   MCFG_SCREEN_VISIBLE_AREA(4*8, 44*8-1, 3*8, 33*8-1)
555   MCFG_SCREEN_UPDATE_STATIC(pmroulet)
555   MCFG_SCREEN_UPDATE_DRIVER(sderby_state, screen_update_pmroulet)
556556
557557   MCFG_GFXDECODE(sderby)
558558   MCFG_PALETTE_LENGTH(0x1000)
r17967r17968
575575   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
576576   MCFG_SCREEN_SIZE(64*8, 64*8)
577577   MCFG_SCREEN_VISIBLE_AREA(4*8, 44*8-1, 3*8, 33*8-1)
578   MCFG_SCREEN_UPDATE_STATIC(pmroulet)
578   MCFG_SCREEN_UPDATE_DRIVER(sderby_state, screen_update_pmroulet)
579579
580580   MCFG_GFXDECODE(sderby)
581581   MCFG_PALETTE_LENGTH(0x1000)
trunk/src/mame/drivers/vcombat.c
r17967r17968
124124   DECLARE_DRIVER_INIT(vcombat);
125125   DECLARE_MACHINE_RESET(vcombat);
126126   DECLARE_MACHINE_RESET(shadfgtr);
127   UINT32 screen_update_vcombat_main(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
128   UINT32 screen_update_vcombat_aux(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
127129};
128130
129131static UINT32 update_screen(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int index)
r17967r17968
175177   return 0;
176178}
177179
178static SCREEN_UPDATE_RGB32( vcombat_main ) { return update_screen(screen, bitmap, cliprect, 0); }
179static SCREEN_UPDATE_RGB32( vcombat_aux ) { return update_screen(screen, bitmap, cliprect, 1); }
180UINT32 vcombat_state::screen_update_vcombat_main(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 0); }
181UINT32 vcombat_state::screen_update_vcombat_aux(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 1); }
180182
181183
182184WRITE16_MEMBER(vcombat_state::main_video_write)
r17967r17968
612614
613615   MCFG_SCREEN_ADD("screen", RASTER)
614616   MCFG_SCREEN_RAW_PARAMS(XTAL_12MHz / 2, 400, 0, 256, 291, 0, 208)
615   MCFG_SCREEN_UPDATE_STATIC(vcombat_main)
617   MCFG_SCREEN_UPDATE_DRIVER(vcombat_state, screen_update_vcombat_main)
616618
617619   MCFG_SCREEN_ADD("aux", RASTER)
618620   MCFG_SCREEN_RAW_PARAMS(XTAL_12MHz / 2, 400, 0, 256, 291, 0, 208)
619   MCFG_SCREEN_UPDATE_STATIC(vcombat_aux)
621   MCFG_SCREEN_UPDATE_DRIVER(vcombat_state, screen_update_vcombat_aux)
620622
621623   MCFG_SPEAKER_STANDARD_MONO("mono")
622624
r17967r17968
647649
648650   MCFG_SCREEN_ADD("screen", RASTER)
649651   MCFG_SCREEN_RAW_PARAMS(XTAL_20MHz / 4, 320, 0, 256, 277, 0, 224)
650   MCFG_SCREEN_UPDATE_STATIC(vcombat_main)
652   MCFG_SCREEN_UPDATE_DRIVER(vcombat_state, screen_update_vcombat_main)
651653
652654   MCFG_SPEAKER_STANDARD_MONO("mono")
653655
trunk/src/mame/drivers/shangha3.c
r17967r17968
481481   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
482482   MCFG_SCREEN_SIZE(24*16, 16*16)
483483   MCFG_SCREEN_VISIBLE_AREA(0*16, 24*16-1, 1*16, 15*16-1)
484   MCFG_SCREEN_UPDATE_STATIC(shangha3)
484   MCFG_SCREEN_UPDATE_DRIVER(shangha3_state, screen_update_shangha3)
485485
486486   MCFG_GFXDECODE(shangha3)
487487   MCFG_PALETTE_LENGTH(2048)
r17967r17968
518518   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
519519   MCFG_SCREEN_SIZE(24*16, 16*16)
520520   MCFG_SCREEN_VISIBLE_AREA(0*16, 24*16-1, 1*16, 15*16-1)
521   MCFG_SCREEN_UPDATE_STATIC(shangha3)
521   MCFG_SCREEN_UPDATE_DRIVER(shangha3_state, screen_update_shangha3)
522522
523523   MCFG_GFXDECODE(shangha3)
524524   MCFG_PALETTE_LENGTH(2048)
r17967r17968
556556   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
557557   MCFG_SCREEN_SIZE(24*16, 16*16)
558558   MCFG_SCREEN_VISIBLE_AREA(0*16, 24*16-1, 1*16, 15*16-1)
559   MCFG_SCREEN_UPDATE_STATIC(shangha3)
559   MCFG_SCREEN_UPDATE_DRIVER(shangha3_state, screen_update_shangha3)
560560
561561   MCFG_GFXDECODE(shangha3)
562562   MCFG_PALETTE_LENGTH(2048)
trunk/src/mame/drivers/pkscram.c
r17967r17968
4444   virtual void machine_start();
4545   virtual void machine_reset();
4646   virtual void video_start();
47   UINT32 screen_update_pkscramble(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4748};
4849
4950
r17967r17968
243244   m_fg_tilemap->set_transparent_pen(15);
244245}
245246
246static SCREEN_UPDATE_IND16( pkscramble )
247UINT32 pkscram_state::screen_update_pkscramble(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
247248{
248   pkscram_state *state = screen.machine().driver_data<pkscram_state>();
249   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
250   state->m_md_tilemap->draw(bitmap, cliprect, 0,0);
251   state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
249   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
250   m_md_tilemap->draw(bitmap, cliprect, 0,0);
251   m_fg_tilemap->draw(bitmap, cliprect, 0,0);
252252   return 0;
253253}
254254
r17967r17968
316316   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
317317   MCFG_SCREEN_SIZE(32*8, 32*8)
318318   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 24*8-1)
319   MCFG_SCREEN_UPDATE_STATIC(pkscramble)
319   MCFG_SCREEN_UPDATE_DRIVER(pkscram_state, screen_update_pkscramble)
320320
321321   MCFG_PALETTE_LENGTH(0x800)
322322   MCFG_GFXDECODE(pkscram)
trunk/src/mame/drivers/vastar.c
r17967r17968
319319   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
320320   MCFG_SCREEN_SIZE(32*8, 32*8)
321321   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
322   MCFG_SCREEN_UPDATE_STATIC(vastar)
322   MCFG_SCREEN_UPDATE_DRIVER(vastar_state, screen_update_vastar)
323323
324324   MCFG_GFXDECODE(vastar)
325325   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/39in1.c
r17967r17968
7474   DECLARE_READ32_MEMBER(prot_cheater_r);
7575   DECLARE_DRIVER_INIT(39in1);
7676   virtual void machine_start();
77   UINT32 screen_update_39in1(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
7778};
7879
7980
r17967r17968
15171518   PORT_SERVICE_NO_TOGGLE( 0x80000000, IP_ACTIVE_LOW )
15181519INPUT_PORTS_END
15191520
1520static SCREEN_UPDATE_RGB32( 39in1 )
1521UINT32 _39in1_state::screen_update_39in1(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
15211522{
1522   _39in1_state *state = screen.machine().driver_data<_39in1_state>();
15231523   int x = 0;
15241524   int y = 0;
15251525
1526   for(y = 0; y <= (state->m_lcd_regs.lccr2 & PXA255_LCCR2_LPP); y++)
1526   for(y = 0; y <= (m_lcd_regs.lccr2 & PXA255_LCCR2_LPP); y++)
15271527   {
15281528      UINT32 *d = &bitmap.pix32(y);
1529      for(x = 0; x <= (state->m_lcd_regs.lccr1 & PXA255_LCCR1_PPL); x++)
1529      for(x = 0; x <= (m_lcd_regs.lccr1 & PXA255_LCCR1_PPL); x++)
15301530      {
1531         d[x] = state->m_pxa255_lcd_palette[state->m_pxa255_lcd_framebuffer[y*((state->m_lcd_regs.lccr1 & PXA255_LCCR1_PPL) + 1) + x]];
1531         d[x] = m_pxa255_lcd_palette[m_pxa255_lcd_framebuffer[y*((m_lcd_regs.lccr1 & PXA255_LCCR1_PPL) + 1) + x]];
15321532      }
15331533   }
15341534   return 0;
r17967r17968
16001600   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
16011601   MCFG_SCREEN_SIZE(1024, 1024)
16021602   MCFG_SCREEN_VISIBLE_AREA(0, 295, 0, 479)
1603   MCFG_SCREEN_UPDATE_STATIC(39in1)
1603   MCFG_SCREEN_UPDATE_DRIVER(_39in1_state, screen_update_39in1)
16041604
16051605   MCFG_PALETTE_LENGTH(256)
16061606
trunk/src/mame/drivers/fortecar.c
r17967r17968
343343   virtual void machine_reset();
344344   virtual void video_start();
345345   virtual void palette_init();
346   UINT32 screen_update_fortecar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
346347};
347348
348349
r17967r17968
350351{
351352}
352353
353static SCREEN_UPDATE_IND16(fortecar)
354UINT32 fortecar_state::screen_update_fortecar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
354355{
355   fortecar_state *state = screen.machine().driver_data<fortecar_state>();
356356   int x,y,count;
357357   count = 0;
358358
r17967r17968
362362      {
363363         int tile,color,bpp;
364364
365         tile = (state->m_vram[(count*4)+1] | (state->m_vram[(count*4)+2]<<8)) & 0xfff;
366         color = state->m_vram[(count*4)+3] & 0x1f;
367         bpp = (state->m_vram[(count*4)+3] & 0x20) >> 5;
365         tile = (m_vram[(count*4)+1] | (m_vram[(count*4)+2]<<8)) & 0xfff;
366         color = m_vram[(count*4)+3] & 0x1f;
367         bpp = (m_vram[(count*4)+3] & 0x20) >> 5;
368368
369369         if(bpp)
370370            color&=0x3;
r17967r17968
701701   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
702702   MCFG_SCREEN_SIZE(640, 256)
703703   MCFG_SCREEN_VISIBLE_AREA(0, 600-1, 0, 240-1)   /* driven by CRTC */
704   MCFG_SCREEN_UPDATE_STATIC(fortecar)
704   MCFG_SCREEN_UPDATE_DRIVER(fortecar_state, screen_update_fortecar)
705705
706706
707707   MCFG_EEPROM_ADD("eeprom", forte_eeprom_intf)
trunk/src/mame/drivers/gunpey.c
r17967r17968
9494   DECLARE_DRIVER_INIT(gunpey);
9595   virtual void video_start();
9696   virtual void palette_init();
97   UINT32 screen_update_gunpey(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
9798};
9899
99100
r17967r17968
102103   m_blit_buffer = auto_alloc_array(machine(), UINT16, 512*512);
103104}
104105
105static SCREEN_UPDATE_RGB32( gunpey )
106UINT32 gunpey_state::screen_update_gunpey(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
106107{
107   gunpey_state *state = screen.machine().driver_data<gunpey_state>();
108   UINT16 *blit_buffer = state->m_blit_buffer;
108   UINT16 *blit_buffer = m_blit_buffer;
109109   int x,y;
110110   int count;
111111
r17967r17968
375375   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
376376   MCFG_SCREEN_SIZE(512, 512)
377377   MCFG_SCREEN_VISIBLE_AREA(0*8, 512-1, 0*8, 512-1)
378   MCFG_SCREEN_UPDATE_STATIC(gunpey)
378   MCFG_SCREEN_UPDATE_DRIVER(gunpey_state, screen_update_gunpey)
379379
380380   MCFG_PALETTE_LENGTH(0x800)
381381
trunk/src/mame/drivers/superwng.c
r17967r17968
7373   virtual void machine_reset();
7474   virtual void video_start();
7575   virtual void palette_init();
76   UINT32 screen_update_superwng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7677};
7778
7879TILE_GET_INFO_MEMBER(superwng_state::get_bg_tile_info)
r17967r17968
112113   m_bg_tilemap->set_scrollx(0, 64);
113114}
114115
115static SCREEN_UPDATE_IND16( superwng )
116UINT32 superwng_state::screen_update_superwng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
116117{
117   superwng_state *state = screen.machine().driver_data<superwng_state>();
118118
119   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
119   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
120120   rectangle tmp = cliprect;
121121
122   if (state->flip_screen())
122   if (flip_screen())
123123   {
124124      tmp.min_x += 32;
125      state->m_fg_tilemap->draw(bitmap, tmp, 0, 0);
125      m_fg_tilemap->draw(bitmap, tmp, 0, 0);
126126   }
127127   else
128128   {
129129      tmp.max_x -= 32;
130      state->m_fg_tilemap->draw(bitmap, tmp, 0, 0);
130      m_fg_tilemap->draw(bitmap, tmp, 0, 0);
131131   }
132132
133133   //sprites
r17967r17968
143143                   x      ?
144144                    xxxx  color
145145        */
146      if (~state->m_videoram_bg[i] & 1)
146      if (~m_videoram_bg[i] & 1)
147147         continue;
148148
149      int code = (state->m_videoram_bg[i] >> 2) | 0x40;
150      int flip = ~state->m_videoram_bg[i] >> 1 & 1;
151      int sx = 240 - state->m_videoram_bg[i + 1];
152      int sy = state->m_colorram_bg[i];
153      int color = state->m_colorram_bg[i + 1] & 0xf;
149      int code = (m_videoram_bg[i] >> 2) | 0x40;
150      int flip = ~m_videoram_bg[i] >> 1 & 1;
151      int sx = 240 - m_videoram_bg[i + 1];
152      int sy = m_colorram_bg[i];
153      int color = m_colorram_bg[i + 1] & 0xf;
154154
155155      drawgfx_transpen(bitmap, cliprect,screen.machine().gfx[1],
156156                  code,
r17967r17968
483483   MCFG_GFXDECODE(superwng)
484484
485485   MCFG_PALETTE_LENGTH(0x40)
486   MCFG_SCREEN_UPDATE_STATIC(superwng)
486   MCFG_SCREEN_UPDATE_DRIVER(superwng_state, screen_update_superwng)
487487
488488   MCFG_SPEAKER_STANDARD_MONO("mono")
489489
trunk/src/mame/drivers/cyclemb.c
r17967r17968
119119   virtual void machine_reset();
120120   virtual void video_start();
121121   virtual void palette_init();
122   UINT32 screen_update_cyclemb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
123   UINT32 screen_update_skydest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
122124};
123125
124126
r17967r17968
357359   }
358360}
359361
360static SCREEN_UPDATE_IND16( cyclemb )
362UINT32 cyclemb_state::screen_update_cyclemb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
361363{
362364   cyclemb_draw_tilemap(screen,bitmap,cliprect);
363365   cyclemb_draw_sprites(screen,bitmap,cliprect);
364366   return 0;
365367}
366368
367static SCREEN_UPDATE_IND16( skydest )
369UINT32 cyclemb_state::screen_update_skydest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
368370{
369371   bitmap.fill(0, cliprect);
370372
r17967r17968
917919   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
918920   MCFG_SCREEN_SIZE(32*8, 32*8)
919921   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
920   MCFG_SCREEN_UPDATE_STATIC(cyclemb)
922   MCFG_SCREEN_UPDATE_DRIVER(cyclemb_state, screen_update_cyclemb)
921923
922924   MCFG_GFXDECODE(cyclemb)
923925   MCFG_PALETTE_LENGTH(256)
r17967r17968
938940   MCFG_SCREEN_MODIFY("screen")
939941   MCFG_SCREEN_SIZE(64*8, 32*8)
940942   MCFG_SCREEN_VISIBLE_AREA(2*8, 34*8-1, 2*8, 30*8-1)
941   MCFG_SCREEN_UPDATE_STATIC(skydest)
943   MCFG_SCREEN_UPDATE_DRIVER(cyclemb_state, screen_update_skydest)
942944
943945//  MCFG_PALETTE_INIT_OVERRIDE(cyclemb_state,skydest)
944946MACHINE_CONFIG_END
trunk/src/mame/drivers/baraduke.c
r17967r17968
394394   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
395395   MCFG_SCREEN_SIZE(64*8, 32*8)
396396   MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 2*8, 30*8-1)
397   MCFG_SCREEN_UPDATE_STATIC(baraduke)
398   MCFG_SCREEN_VBLANK_STATIC(baraduke)
397   MCFG_SCREEN_UPDATE_DRIVER(baraduke_state, screen_update_baraduke)
398   MCFG_SCREEN_VBLANK_DRIVER(baraduke_state, screen_eof_baraduke)
399399
400400   MCFG_GFXDECODE(baraduke)
401401   MCFG_PALETTE_LENGTH(2048)
trunk/src/mame/drivers/guab.c
r17967r17968
9898   virtual void machine_start();
9999   virtual void machine_reset();
100100   virtual void video_start();
101   UINT32 screen_update_guab(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
101102};
102103
103104
r17967r17968
258259}
259260
260261
261static SCREEN_UPDATE_IND16( guab )
262UINT32 guab_state::screen_update_guab(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
262263{
263264   int x, y;
264265   struct tms34061_display state;
r17967r17968
824825   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
825826   MCFG_SCREEN_SIZE(64*8, 32*8)
826827   MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1)
827   MCFG_SCREEN_UPDATE_STATIC(guab)
828   MCFG_SCREEN_UPDATE_DRIVER(guab_state, screen_update_guab)
828829
829830   MCFG_PALETTE_LENGTH(16)
830831
trunk/src/mame/drivers/bingor.c
r17967r17968
454454   DECLARE_READ16_MEMBER(test_r);
455455   DECLARE_READ8_MEMBER(test8_r);
456456   virtual void video_start();
457   UINT32 screen_update_bingor(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
457458};
458459
459460
r17967r17968
461462{
462463}
463464
464static SCREEN_UPDATE_RGB32(bingor)
465UINT32 bingor_state::screen_update_bingor(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
465466{
466   bingor_state *state = screen.machine().driver_data<bingor_state>();
467467   int x,y,count;
468468
469469   bitmap.fill(get_black_pen(screen.machine()), cliprect);
r17967r17968
476476      {
477477         UINT32 color;
478478
479         color = (state->m_blit_ram[count] & 0xf000)>>12;
479         color = (m_blit_ram[count] & 0xf000)>>12;
480480
481481         if(cliprect.contains(x+3, y))
482482            bitmap.pix32(y, x+3) = screen.machine().pens[color];
483483
484         color = (state->m_blit_ram[count] & 0x0f00)>>8;
484         color = (m_blit_ram[count] & 0x0f00)>>8;
485485
486486         if(cliprect.contains(x+2, y))
487487            bitmap.pix32(y, x+2) = screen.machine().pens[color];
488488
489         color = (state->m_blit_ram[count] & 0x00f0)>>4;
489         color = (m_blit_ram[count] & 0x00f0)>>4;
490490
491491         if(cliprect.contains(x+1, y))
492492            bitmap.pix32(y, x+1) = screen.machine().pens[color];
493493
494         color = (state->m_blit_ram[count] & 0x000f)>>0;
494         color = (m_blit_ram[count] & 0x000f)>>0;
495495
496496         if(cliprect.contains(x+0, y))
497497            bitmap.pix32(y, x+0) = screen.machine().pens[color];
r17967r17968
635635   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
636636   MCFG_SCREEN_SIZE(400, 300)
637637   MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 300-1)
638   MCFG_SCREEN_UPDATE_STATIC(bingor)
638   MCFG_SCREEN_UPDATE_DRIVER(bingor_state, screen_update_bingor)
639639
640640   MCFG_PALETTE_LENGTH(0x100)
641641
trunk/src/mame/drivers/mcr.c
r17967r17968
18441844   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
18451845   MCFG_SCREEN_SIZE(32*16, 30*16)
18461846   MCFG_SCREEN_VISIBLE_AREA(0*16, 32*16-1, 0*16, 30*16-1)
1847   MCFG_SCREEN_UPDATE_STATIC(mcr)
1847   MCFG_SCREEN_UPDATE_DRIVER(mcr_state, screen_update_mcr)
18481848
18491849   MCFG_GFXDECODE(mcr)
18501850   MCFG_PALETTE_LENGTH(32)
trunk/src/mame/drivers/beaminv.c
r17967r17968
7979   DECLARE_READ8_MEMBER(controller_r);
8080   virtual void machine_start();
8181   virtual void machine_reset();
82   UINT32 screen_update_beaminv(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
8283};
8384
8485
r17967r17968
168169 *
169170 *************************************/
170171
171static SCREEN_UPDATE_RGB32( beaminv )
172UINT32 beaminv_state::screen_update_beaminv(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
172173{
173   beaminv_state *state = screen.machine().driver_data<beaminv_state>();
174174   offs_t offs;
175175
176   for (offs = 0; offs < state->m_videoram.bytes(); offs++)
176   for (offs = 0; offs < m_videoram.bytes(); offs++)
177177   {
178178      int i;
179179
180180      UINT8 y = offs;
181181      UINT8 x = offs >> 8 << 3;
182      UINT8 data = state->m_videoram[offs];
182      UINT8 data = m_videoram[offs];
183183
184184      for (i = 0; i < 8; i++)
185185      {
r17967r17968
342342   MCFG_SCREEN_SIZE(256, 256)
343343   MCFG_SCREEN_VISIBLE_AREA(0, 247, 16, 231)
344344   MCFG_SCREEN_REFRESH_RATE(60)
345   MCFG_SCREEN_UPDATE_STATIC(beaminv)
345   MCFG_SCREEN_UPDATE_DRIVER(beaminv_state, screen_update_beaminv)
346346
347347MACHINE_CONFIG_END
348348
trunk/src/mame/drivers/matmania.c
r17967r17968
325325   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
326326   MCFG_SCREEN_SIZE(32*8, 32*8)
327327   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
328   MCFG_SCREEN_UPDATE_STATIC(matmania)
328   MCFG_SCREEN_UPDATE_DRIVER(matmania_state, screen_update_matmania)
329329
330330   MCFG_GFXDECODE(matmania)
331331   MCFG_PALETTE_LENGTH(64+16)
r17967r17968
414414   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
415415   MCFG_SCREEN_SIZE(32*8, 32*8)
416416   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
417   MCFG_SCREEN_UPDATE_STATIC(maniach)
417   MCFG_SCREEN_UPDATE_DRIVER(matmania_state, screen_update_maniach)
418418
419419   MCFG_GFXDECODE(maniach)
420420   MCFG_PALETTE_LENGTH(64+16)
trunk/src/mame/drivers/mpu4vid.c
r17967r17968
268268   DECLARE_MACHINE_START(mpu4_vid);
269269   DECLARE_MACHINE_RESET(mpu4_vid);
270270   DECLARE_VIDEO_START(mpu4_vid);
271   UINT32 screen_update_mpu4_vid(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
271272};
272273
273274
r17967r17968
511512
512513
513514
514static SCREEN_UPDATE_RGB32(mpu4_vid)
515UINT32 mpu4vid_state::screen_update_mpu4_vid(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
515516{
516   mpu4vid_state *state = screen.machine().driver_data<mpu4vid_state>();
517517
518518   bitmap.fill(0, cliprect);
519519
520   state->m_scn2674->scn2574_draw(screen.machine(), bitmap, cliprect, state->m_vid_mainram );
520   m_scn2674->scn2574_draw(screen.machine(), bitmap, cliprect, m_vid_mainram );
521521
522522   return 0;
523523}
r17967r17968
15181518   MCFG_SCREEN_VISIBLE_AREA(0, (63*8)+(0)-1, 0, (37*8)+0-1)
15191519
15201520   MCFG_SCREEN_REFRESH_RATE(50)
1521   MCFG_SCREEN_UPDATE_STATIC(mpu4_vid)
1521   MCFG_SCREEN_UPDATE_DRIVER(mpu4vid_state, screen_update_mpu4_vid)
15221522
15231523   MCFG_DEVICE_ADD("scn2674_vid", SCN2674_VIDEO, 0)
15241524   scn2674_device::set_irq_update_callback(*device, update_mpu68_interrupts);
trunk/src/mame/drivers/clshroad.c
r17967r17968
244244   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
245245   MCFG_SCREEN_SIZE(0x120, 0x100)
246246   MCFG_SCREEN_VISIBLE_AREA(0, 0x120-1, 0x0+16, 0x100-16-1)
247   MCFG_SCREEN_UPDATE_STATIC(clshroad)
247   MCFG_SCREEN_UPDATE_DRIVER(clshroad_state, screen_update_clshroad)
248248
249249   MCFG_GFXDECODE(firebatl)
250250   MCFG_PALETTE_LENGTH(512+64*4)
r17967r17968
277277   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
278278   MCFG_SCREEN_SIZE(0x120, 0x100)
279279   MCFG_SCREEN_VISIBLE_AREA(0, 0x120-1, 0x0+16, 0x100-16-1)
280   MCFG_SCREEN_UPDATE_STATIC(clshroad)
280   MCFG_SCREEN_UPDATE_DRIVER(clshroad_state, screen_update_clshroad)
281281
282282   MCFG_GFXDECODE(clshroad)
283283   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/dcheese.c
r17967r17968
424424   MCFG_SCREEN_REFRESH_RATE(60)
425425   MCFG_SCREEN_SIZE(360, 262)   /* guess, need to see what the games write to the vid registers */
426426   MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
427   MCFG_SCREEN_UPDATE_STATIC(dcheese)
427   MCFG_SCREEN_UPDATE_DRIVER(dcheese_state, screen_update_dcheese)
428428
429429   MCFG_PALETTE_LENGTH(65534)
430430
trunk/src/mame/drivers/chqflag.c
r17967r17968
373373   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
374374   MCFG_SCREEN_SIZE(64*8, 32*8)
375375   MCFG_SCREEN_VISIBLE_AREA(12*8, (64-14)*8-1, 2*8, 30*8-1 )
376   MCFG_SCREEN_UPDATE_STATIC(chqflag)
376   MCFG_SCREEN_UPDATE_DRIVER(chqflag_state, screen_update_chqflag)
377377
378378   MCFG_PALETTE_LENGTH(1024)
379379
trunk/src/mame/drivers/lsasquad.c
r17967r17968
640640   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
641641   MCFG_SCREEN_SIZE(32*8, 32*8)
642642   MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 2*8, 30*8-1)
643   MCFG_SCREEN_UPDATE_STATIC(lsasquad)
643   MCFG_SCREEN_UPDATE_DRIVER(lsasquad_state, screen_update_lsasquad)
644644
645645   MCFG_GFXDECODE(lsasquad)
646646   MCFG_PALETTE_LENGTH(512)
r17967r17968
701701   MCFG_PALETTE_LENGTH(512)
702702
703703   MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
704   MCFG_SCREEN_UPDATE_STATIC(daikaiju)
704   MCFG_SCREEN_UPDATE_DRIVER(lsasquad_state, screen_update_daikaiju)
705705
706706   /* sound hardware */
707707   MCFG_SPEAKER_STANDARD_MONO("mono")
trunk/src/mame/drivers/dooyong.c
r17967r17968
882882   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
883883   MCFG_SCREEN_SIZE(64*8, 32*8)
884884   MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
885   MCFG_SCREEN_UPDATE_STATIC(lastday)
885   MCFG_SCREEN_UPDATE_DRIVER(dooyong_state, screen_update_lastday)
886886   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
887887
888888   MCFG_GFXDECODE(lastday)
r17967r17968
924924   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
925925   MCFG_SCREEN_SIZE(64*8, 32*8)
926926   MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
927   MCFG_SCREEN_UPDATE_STATIC(gulfstrm)
927   MCFG_SCREEN_UPDATE_DRIVER(dooyong_state, screen_update_gulfstrm)
928928   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
929929
930930   MCFG_GFXDECODE(lastday)
r17967r17968
957957   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
958958   MCFG_SCREEN_SIZE(64*8, 32*8)
959959   MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
960   MCFG_SCREEN_UPDATE_STATIC(pollux)
960   MCFG_SCREEN_UPDATE_DRIVER(dooyong_state, screen_update_pollux)
961961   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
962962
963963   MCFG_GFXDECODE(lastday)
r17967r17968
989989   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
990990   MCFG_SCREEN_SIZE(64*8, 32*8)
991991   MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
992   MCFG_SCREEN_UPDATE_STATIC(bluehawk)
992   MCFG_SCREEN_UPDATE_DRIVER(dooyong_state, screen_update_bluehawk)
993993   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
994994
995995   MCFG_GFXDECODE(bluehawk)
r17967r17968
10211021   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
10221022   MCFG_SCREEN_SIZE(64*8, 32*8)
10231023   MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
1024   MCFG_SCREEN_UPDATE_STATIC(flytiger)
1024   MCFG_SCREEN_UPDATE_DRIVER(dooyong_state, screen_update_flytiger)
10251025   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
10261026
10271027   MCFG_GFXDECODE(flytiger)
r17967r17968
10511051   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
10521052   MCFG_SCREEN_SIZE(64*8, 32*8)
10531053   MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 0*8, 32*8-1 )
1054   MCFG_SCREEN_UPDATE_STATIC(primella)
1054   MCFG_SCREEN_UPDATE_DRIVER(dooyong_state, screen_update_primella)
10551055
10561056   MCFG_GFXDECODE(primella)
10571057   MCFG_PALETTE_LENGTH(1024)
r17967r17968
10921092   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
10931093   MCFG_SCREEN_SIZE(64*8, 32*8)
10941094   MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
1095   MCFG_SCREEN_UPDATE_STATIC(rshark)
1095   MCFG_SCREEN_UPDATE_DRIVER(dooyong_state, screen_update_rshark)
10961096   MCFG_SCREEN_VBLANK_DEVICE("spriteram16", buffered_spriteram16_device, vblank_copy_rising)
10971097
10981098   MCFG_GFXDECODE(rshark)
r17967r17968
11221122   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
11231123   MCFG_SCREEN_SIZE(64*8, 32*8)
11241124   MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
1125   MCFG_SCREEN_UPDATE_STATIC(rshark)
1125   MCFG_SCREEN_UPDATE_DRIVER(dooyong_state, screen_update_rshark)
11261126   MCFG_SCREEN_VBLANK_DEVICE("spriteram16", buffered_spriteram16_device, vblank_copy_rising)
11271127
11281128   MCFG_GFXDECODE(rshark)
r17967r17968
11521152   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
11531153   MCFG_SCREEN_SIZE(64*8, 32*8)
11541154   MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
1155   MCFG_SCREEN_UPDATE_STATIC(popbingo)
1155   MCFG_SCREEN_UPDATE_DRIVER(dooyong_state, screen_update_popbingo)
11561156   MCFG_SCREEN_VBLANK_DEVICE("spriteram16", buffered_spriteram16_device, vblank_copy_rising)
11571157
11581158   MCFG_GFXDECODE(popbingo)
trunk/src/mame/drivers/cham24.c
r17967r17968
8888   virtual void machine_reset();
8989   virtual void video_start();
9090   virtual void palette_init();
91   UINT32 screen_update_cham24(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
9192};
9293
9394
r17967r17968
302303{
303304}
304305
305static SCREEN_UPDATE_IND16( cham24 )
306UINT32 cham24_state::screen_update_cham24(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
306307{
307308   /* render the ppu */
308309   ppu2c0x_device *ppu = screen.machine().device<ppu2c0x_device>("ppu");
r17967r17968
354355   MCFG_SCREEN_REFRESH_RATE(60)
355356   MCFG_SCREEN_SIZE(32*8, 262)
356357   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1)
357   MCFG_SCREEN_UPDATE_STATIC(cham24)
358   MCFG_SCREEN_UPDATE_DRIVER(cham24_state, screen_update_cham24)
358359
359360   MCFG_GFXDECODE(cham24)
360361   MCFG_PALETTE_LENGTH(8*4*16)
trunk/src/mame/drivers/silvmil.c
r17967r17968
111111   virtual void machine_start();
112112   virtual void machine_reset();
113113   virtual void video_start();
114   UINT32 screen_update_silvmil(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
114115};
115116
116117
r17967r17968
148149   m_fg_layer->set_transparent_pen(0);
149150}
150151
151SCREEN_UPDATE_IND16( silvmil )
152UINT32 silvmil_state::screen_update_silvmil(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
152153{
153   silvmil_state *state = screen.machine().driver_data<silvmil_state>();
154154
155   state->m_bg_layer->draw(bitmap, cliprect, 0, 0);
156   state->m_fg_layer->draw(bitmap, cliprect, 0, 0);
157   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x400);
155   m_bg_layer->draw(bitmap, cliprect, 0, 0);
156   m_fg_layer->draw(bitmap, cliprect, 0, 0);
157   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
158158   return 0;
159159}
160160
r17967r17968
330330   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
331331   MCFG_SCREEN_SIZE(64*8, 64*8)
332332   MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 0, 30*8-1)
333   MCFG_SCREEN_UPDATE_STATIC(silvmil)
333   MCFG_SCREEN_UPDATE_DRIVER(silvmil_state, screen_update_silvmil)
334334
335335   MCFG_PALETTE_LENGTH(0x300)
336336   MCFG_GFXDECODE(silvmil)
trunk/src/mame/drivers/brkthru.c
r17967r17968
407407   /* not sure; assuming to be the same as darwin */
408408   MCFG_SCREEN_ADD("screen", RASTER)
409409   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 384, 8, 248, 272, 8, 248)
410   MCFG_SCREEN_UPDATE_STATIC(brkthru)
410   MCFG_SCREEN_UPDATE_DRIVER(brkthru_state, screen_update_brkthru)
411411
412412
413413   /* sound hardware */
r17967r17968
454454                  = 15.625kHz / (240 + 32)
455455                  = 57.444855Hz
456456        tuned by Shingo SUZUKI(VSyncMAME Project) 2000/10/19 */
457   MCFG_SCREEN_UPDATE_STATIC(brkthru)
457   MCFG_SCREEN_UPDATE_DRIVER(brkthru_state, screen_update_brkthru)
458458
459459
460460   /* sound hardware */
trunk/src/mame/drivers/rbmk.c
r17967r17968
7878   DECLARE_WRITE8_MEMBER(mcu_io_mux_w);
7979   DECLARE_WRITE16_MEMBER(eeprom_w);
8080   virtual void video_start();
81   UINT32 screen_update_rbmk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8182};
8283
8384
r17967r17968
497498{
498499}
499500
500static SCREEN_UPDATE_IND16(rbmk)
501UINT32 rbmk_state::screen_update_rbmk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
501502{
502   rbmk_state *state = screen.machine().driver_data<rbmk_state>();
503503   int x,y;
504504   int count = 0;
505505
r17967r17968
507507   {
508508      for (x=0;x<64;x++)
509509      {
510         int tile = state->m_gms_vidram2[count+0x600];
511         drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0],(tile&0xfff)+((state->m_tilebank&0x10)>>4)*0x1000,tile>>12,0,0,x*8,y*32);
510         int tile = m_gms_vidram2[count+0x600];
511         drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0],(tile&0xfff)+((m_tilebank&0x10)>>4)*0x1000,tile>>12,0,0,x*8,y*32);
512512         count++;
513513      }
514514   }
r17967r17968
519519   {
520520      for (x=0;x<64;x++)
521521      {
522         int tile = state->m_gms_vidram[count];
523         drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[1],(tile&0xfff)+((state->m_tilebank>>1)&3)*0x1000,tile>>12,0,0,x*8,y*8,0);
522         int tile = m_gms_vidram[count];
523         drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[1],(tile&0xfff)+((m_tilebank>>1)&3)*0x1000,tile>>12,0,0,x*8,y*8,0);
524524         count++;
525525      }
526526   }
r17967r17968
550550   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
551551   MCFG_SCREEN_SIZE(64*8, 32*8)
552552   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
553   MCFG_SCREEN_UPDATE_STATIC(rbmk)
553   MCFG_SCREEN_UPDATE_DRIVER(rbmk_state, screen_update_rbmk)
554554
555555   MCFG_PALETTE_LENGTH(0x800)
556556
trunk/src/mame/drivers/thepit.c
r17967r17968
661661
662662   MCFG_SCREEN_ADD("screen", RASTER)
663663   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
664   MCFG_SCREEN_UPDATE_STATIC(thepit)
664   MCFG_SCREEN_UPDATE_DRIVER(thepit_state, screen_update_thepit)
665665
666666
667667   /* sound hardware */
trunk/src/mame/drivers/trvmadns.c
r17967r17968
8686   TILE_GET_INFO_MEMBER(get_bg_tile_info);
8787   virtual void machine_reset();
8888   virtual void video_start();
89   UINT32 screen_update_trvmadns(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8990};
9091
9192
r17967r17968
291292   machine().gfx[0]->set_source(m_gfxram);
292293}
293294
294static SCREEN_UPDATE_IND16( trvmadns )
295UINT32 trvmadns_state::screen_update_trvmadns(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
295296{
296   trvmadns_state *state = screen.machine().driver_data<trvmadns_state>();
297297   int x,y,count;
298298   gfx_element *gfx = screen.machine().gfx[0];
299299
r17967r17968
305305   {
306306      for (x=0;x<32;x++)
307307      {
308         int attr = state->m_tileram[count*2+0];
309         int tile = state->m_tileram[count*2+1] | ((attr & 0x01) << 8);
308         int attr = m_tileram[count*2+0];
309         int tile = m_tileram[count*2+1] | ((attr & 0x01) << 8);
310310         int color = (attr & 0x18) >> 3;
311311         int flipx = attr & 4;
312312         int flipy = attr & 2;
r17967r17968
323323   {
324324      for (x=0;x<32;x++)
325325      {
326         int attr = state->m_tileram[count*2+0];
327         int tile = state->m_tileram[count*2+1] | ((attr & 0x01) << 8);
326         int attr = m_tileram[count*2+0];
327         int tile = m_tileram[count*2+1] | ((attr & 0x01) << 8);
328328         int color = (attr & 0x18) >> 3;
329329         int flipx = attr & 4;
330330         int flipy = attr & 2;
r17967r17968
356356   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
357357   MCFG_SCREEN_SIZE(256, 256)
358358   MCFG_SCREEN_VISIBLE_AREA(0*8, 31*8-1, 0*8, 30*8-1)
359   MCFG_SCREEN_UPDATE_STATIC(trvmadns)
359   MCFG_SCREEN_UPDATE_DRIVER(trvmadns_state, screen_update_trvmadns)
360360
361361   MCFG_GFXDECODE(trvmadns)
362362   MCFG_PALETTE_LENGTH(16)
trunk/src/mame/drivers/rpunch.c
r17967r17968
476476   MCFG_SCREEN_REFRESH_RATE(60)
477477   MCFG_SCREEN_SIZE(304, 224)
478478   MCFG_SCREEN_VISIBLE_AREA(8, 303-8, 0, 223-8)
479   MCFG_SCREEN_UPDATE_STATIC(rpunch)
479   MCFG_SCREEN_UPDATE_DRIVER(rpunch_state, screen_update_rpunch)
480480
481481   MCFG_GFXDECODE(rpunch)
482482   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/cloud9.c
r17967r17968
436436   MCFG_SCREEN_SIZE(HTOTAL, VTOTAL)
437437   MCFG_SCREEN_VBLANK_TIME(0)         /* VBLANK is handled manually */
438438   MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 231)
439   MCFG_SCREEN_UPDATE_STATIC(cloud9)
439   MCFG_SCREEN_UPDATE_DRIVER(cloud9_state, screen_update_cloud9)
440440
441441
442442   /* sound hardware */
trunk/src/mame/drivers/albazg.c
r17967r17968
7676   virtual void machine_start();
7777   virtual void machine_reset();
7878   virtual void video_start();
79   UINT32 screen_update_yumefuda(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7980};
8081
8182TILE_GET_INFO_MEMBER(albazg_state::y_get_bg_tile_info)
r17967r17968
9697   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);
9798}
9899
99static SCREEN_UPDATE_IND16( yumefuda )
100UINT32 albazg_state::screen_update_yumefuda(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
100101{
101   albazg_state *state = screen.machine().driver_data<albazg_state>();
102   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
102   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
103103   return 0;
104104}
105105
r17967r17968
395395   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
396396   MCFG_SCREEN_SIZE(32*8, 32*8)
397397   MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 0, 32*8-1)
398   MCFG_SCREEN_UPDATE_STATIC( yumefuda )
398   MCFG_SCREEN_UPDATE_DRIVER(albazg_state, screen_update_yumefuda)
399399
400400   MCFG_MC6845_ADD("crtc", H46505, MASTER_CLOCK/16, mc6845_intf)   /* hand tuned to get ~60 fps */
401401
trunk/src/mame/drivers/bingoc.c
r17967r17968
4646   DECLARE_WRITE16_MEMBER(main_sound_latch_w);
4747   DECLARE_WRITE8_MEMBER(bingoc_play_w);
4848   virtual void video_start();
49   UINT32 screen_update_bingoc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4950};
5051
5152
r17967r17968
5657
5758}
5859
59static SCREEN_UPDATE_IND16(bingoc)
60UINT32 bingoc_state::screen_update_bingoc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
6061{
6162   return 0;
6263}
r17967r17968
160161   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
161162   MCFG_SCREEN_SIZE(512, 256)
162163   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
163   MCFG_SCREEN_UPDATE_STATIC(bingoc)
164   MCFG_SCREEN_UPDATE_DRIVER(bingoc_state, screen_update_bingoc)
164165
165166   MCFG_PALETTE_LENGTH(0x100)
166167
trunk/src/mame/drivers/changela.c
r17967r17968
515515   MCFG_SCREEN_REFRESH_RATE(60)
516516   MCFG_SCREEN_SIZE(32*8, 262)  /* vert size is a guess */
517517   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 32*8-1)
518   MCFG_SCREEN_UPDATE_STATIC(changela)
518   MCFG_SCREEN_UPDATE_DRIVER(changela_state, screen_update_changela)
519519
520520   MCFG_PALETTE_LENGTH(0x40)
521521
trunk/src/mame/drivers/sstrangr.c
r17967r17968
2424   UINT8 m_flip_screen;
2525   UINT8 *m_proms;
2626   DECLARE_WRITE8_MEMBER(port_w);
27   UINT32 screen_update_sstrangr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
28   UINT32 screen_update_sstrngr2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
2729};
2830
2931
r17967r17968
3436 *
3537 *************************************/
3638
37static SCREEN_UPDATE_RGB32( sstrangr )
39UINT32 sstrangr_state::screen_update_sstrangr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
3840{
39   sstrangr_state *state = screen.machine().driver_data<sstrangr_state>();
4041   offs_t offs;
4142
4243   for (offs = 0; offs < 0x2000; offs++)
r17967r17968
4546
4647      UINT8 x = offs << 3;
4748      int y = offs >> 5;
48      UINT8 data = state->m_ram[offs];
49      UINT8 data = m_ram[offs];
4950
5051      for (i = 0; i < 8; i++)
5152      {
5253         pen_t pen;
5354
54         if (state->m_flip_screen)
55         if (m_flip_screen)
5556         {
5657            pen = (data & 0x80) ? RGB_WHITE : RGB_BLACK;
5758            data = data << 1;
r17967r17968
8384}
8485
8586
86static SCREEN_UPDATE_RGB32( sstrngr2 )
87UINT32 sstrangr_state::screen_update_sstrngr2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
8788{
88   sstrangr_state *state = screen.machine().driver_data<sstrangr_state>();
8989   pen_t pens[NUM_PENS];
9090   offs_t offs;
9191   UINT8 *color_map_base;
9292
9393   get_pens(pens);
9494
95   color_map_base = &state->memregion("proms")->base()[state->m_flip_screen ? 0x0000 : 0x0200];
95   color_map_base = &memregion("proms")->base()[m_flip_screen ? 0x0000 : 0x0200];
9696
9797   for (offs = 0; offs < 0x2000; offs++)
9898   {
r17967r17968
103103
104104      offs_t color_address = (offs >> 9 << 5) | (offs & 0x1f);
105105
106      UINT8 data = state->m_ram[offs];
106      UINT8 data = m_ram[offs];
107107      UINT8 fore_color = color_map_base[color_address] & 0x07;
108108
109109      for (i = 0; i < 8; i++)
110110      {
111111         UINT8 color;
112112
113         if (state->m_flip_screen)
113         if (m_flip_screen)
114114         {
115115            color = (data & 0x80) ? fore_color : 0;
116116            data = data << 1;
r17967r17968
204204   MCFG_SCREEN_SIZE(32*8, 262)      /* vert size is a guess, taken from mw8080bw */
205205   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 32*8-1)
206206   MCFG_SCREEN_REFRESH_RATE(60)
207   MCFG_SCREEN_UPDATE_STATIC(sstrangr)
207   MCFG_SCREEN_UPDATE_DRIVER(sstrangr_state, screen_update_sstrangr)
208208
209209   /* sound hardware */
210210
r17967r17968
267267
268268   /* video hardware */
269269   MCFG_SCREEN_MODIFY("screen")
270   MCFG_SCREEN_UPDATE_STATIC(sstrngr2)
270   MCFG_SCREEN_UPDATE_DRIVER(sstrangr_state, screen_update_sstrngr2)
271271
272272MACHINE_CONFIG_END
273273
trunk/src/mame/drivers/backfire.c
r17967r17968
7979   DECLARE_DRIVER_INIT(backfire);
8080   virtual void machine_start();
8181   virtual void video_start();
82   UINT32 screen_update_backfire_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
83   UINT32 screen_update_backfire_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8284};
8385
8486//UINT32 *backfire_180010, *backfire_188010;
r17967r17968
108110
109111
110112
111static SCREEN_UPDATE_IND16( backfire_left )
113UINT32 backfire_state::screen_update_backfire_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
112114{
113   backfire_state *state = screen.machine().driver_data<backfire_state>();
114115
115116   //FIXME: flip_screen_x should not be written!
116   state->flip_screen_set_no_update(1);
117   flip_screen_set_no_update(1);
117118
118119   /* screen 1 uses pf1 as the forground and pf3 as the background */
119120   /* screen 2 uses pf2 as the foreground and pf4 as the background */
120   deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
121   deco16ic_pf_update(state->m_deco_tilegen2, state->m_pf3_rowscroll, state->m_pf4_rowscroll);
121   deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
122   deco16ic_pf_update(m_deco_tilegen2, m_pf3_rowscroll, m_pf4_rowscroll);
122123
123124   screen.machine().priority_bitmap.fill(0);
124125   bitmap.fill(0x100, cliprect);
125126
126   if (state->m_left_priority[0] == 0)
127   if (m_left_priority[0] == 0)
127128   {
128      deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 1);
129      deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 2);
130      screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram_1, 0x800);
129      deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 1);
130      deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 2);
131      screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram_1, 0x800);
131132   }
132   else if (state->m_left_priority[0] == 2)
133   else if (m_left_priority[0] == 2)
133134   {
134      deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 2);
135      deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 4);
136      screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram_1, 0x800);
135      deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 2);
136      deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 4);
137      screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram_1, 0x800);
137138   }
138139   else
139      popmessage( "unknown left priority %08x", state->m_left_priority[0]);
140      popmessage( "unknown left priority %08x", m_left_priority[0]);
140141
141142   return 0;
142143}
143144
144static SCREEN_UPDATE_IND16( backfire_right )
145UINT32 backfire_state::screen_update_backfire_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
145146{
146   backfire_state *state = screen.machine().driver_data<backfire_state>();
147147
148148   //FIXME: flip_screen_x should not be written!
149   state->flip_screen_set_no_update(1);
149   flip_screen_set_no_update(1);
150150
151151   /* screen 1 uses pf1 as the forground and pf3 as the background */
152152   /* screen 2 uses pf2 as the foreground and pf4 as the background */
153   deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
154   deco16ic_pf_update(state->m_deco_tilegen2, state->m_pf3_rowscroll, state->m_pf4_rowscroll);
153   deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
154   deco16ic_pf_update(m_deco_tilegen2, m_pf3_rowscroll, m_pf4_rowscroll);
155155
156156   screen.machine().priority_bitmap.fill(0);
157157   bitmap.fill(0x500, cliprect);
158158
159   if (state->m_right_priority[0] == 0)
159   if (m_right_priority[0] == 0)
160160   {
161      deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 1);
162      deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 2);
163      screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, state->m_spriteram_2, 0x800);
161      deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, 0, 1);
162      deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 2);
163      screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, m_spriteram_2, 0x800);
164164   }
165   else if (state->m_right_priority[0] == 2)
165   else if (m_right_priority[0] == 2)
166166   {
167      deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 2);
168      deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 4);
169      screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, state->m_spriteram_2, 0x800);
167      deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 2);
168      deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, 0, 4);
169      screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, m_spriteram_2, 0x800);
170170   }
171171   else
172      popmessage( "unknown right priority %08x", state->m_right_priority[0]);
172      popmessage( "unknown right priority %08x", m_right_priority[0]);
173173
174174   return 0;
175175}
r17967r17968
515515   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
516516   MCFG_SCREEN_SIZE(40*8, 32*8)
517517   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
518   MCFG_SCREEN_UPDATE_STATIC(backfire_left)
518   MCFG_SCREEN_UPDATE_DRIVER(backfire_state, screen_update_backfire_left)
519519
520520   MCFG_SCREEN_ADD("rscreen", RASTER)
521521   MCFG_SCREEN_REFRESH_RATE(60)
522522   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
523523   MCFG_SCREEN_SIZE(40*8, 32*8)
524524   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
525   MCFG_SCREEN_UPDATE_STATIC(backfire_right)
525   MCFG_SCREEN_UPDATE_DRIVER(backfire_state, screen_update_backfire_right)
526526
527527
528528   MCFG_DECO16IC_ADD("tilegen1", backfire_deco16ic_tilegen1_intf)
trunk/src/mame/drivers/sidepckt.c
r17967r17968
402402   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */  /* VERIFY:  May be 55 or 56 */)
403403   MCFG_SCREEN_SIZE(32*8, 32*8)
404404   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
405   MCFG_SCREEN_UPDATE_STATIC(sidepckt)
405   MCFG_SCREEN_UPDATE_DRIVER(sidepckt_state, screen_update_sidepckt)
406406
407407   MCFG_GFXDECODE(sidepckt)
408408   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/cubeqst.c
r17967r17968
5656   virtual void machine_reset();
5757   virtual void video_start();
5858   virtual void palette_init();
59   UINT32 screen_update_cubeqst(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
5960};
6061
6162
r17967r17968
110111}
111112
112113/* TODO: This is a simplified version of what actually happens */
113static SCREEN_UPDATE_RGB32( cubeqst )
114UINT32 cubeqst_state::screen_update_cubeqst(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
114115{
115   cubeqst_state *state = screen.machine().driver_data<cubeqst_state>();
116116   int y;
117117
118118   /*
r17967r17968
121121    */
122122
123123   /* Bit 3 selects LD/#GRAPHICS */
124   bitmap.fill(state->m_colormap[255], cliprect);
124   bitmap.fill(m_colormap[255], cliprect);
125125
126126   /* TODO: Add 1 for linebuffering? */
127127   for (y = cliprect.min_y; y <= cliprect.max_y; ++y)
r17967r17968
133133      UINT32 pen;
134134
135135      /* Zap the depth buffer */
136      memset(state->m_depth_buffer, 0xff, 512);
136      memset(m_depth_buffer, 0xff, 512);
137137
138138      /* Process all the spans on this scanline */
139139      if (y < 256)
r17967r17968
170170            }
171171
172172            /* Draw the span, testing for depth */
173            pen = state->m_colormap[state->m_generic_paletteram_16[color]];
173            pen = m_colormap[m_generic_paletteram_16[color]];
174174            for (x = h1; x <= h2; ++x)
175175            {
176               if (!(state->m_depth_buffer[x] < depth))
176               if (!(m_depth_buffer[x] < depth))
177177               {
178178                  dest[x] = pen;
179                  state->m_depth_buffer[x] = depth;
179                  m_depth_buffer[x] = depth;
180180               }
181181            }
182182         }
r17967r17968
532532   MCFG_NVRAM_ADD_0FILL("nvram")
533533
534534   MCFG_LASERDISC_SIMUTREK_ADD("laserdisc")
535   MCFG_LASERDISC_OVERLAY_STATIC(CUBEQST_HBLANK, CUBEQST_VCOUNT, cubeqst)
535   MCFG_LASERDISC_OVERLAY_DRIVER(CUBEQST_HBLANK, CUBEQST_VCOUNT, cubeqst_state, screen_update_cubeqst)
536536   MCFG_LASERDISC_OVERLAY_CLIP(0, 320-1, 0, 256-8)
537537   MCFG_LASERDISC_OVERLAY_POSITION(0.002f, -0.018f)
538538   MCFG_LASERDISC_OVERLAY_SCALE(1.0f, 1.030f)
trunk/src/mame/drivers/exerion.c
r17967r17968
418418   /* video hardware */
419419   MCFG_SCREEN_ADD("screen", RASTER)
420420   MCFG_SCREEN_RAW_PARAMS(EXERION_PIXEL_CLOCK, EXERION_HTOTAL, EXERION_HBEND, EXERION_HBSTART, EXERION_VTOTAL, EXERION_VBEND, EXERION_VBSTART)
421   MCFG_SCREEN_UPDATE_STATIC(exerion)
421   MCFG_SCREEN_UPDATE_DRIVER(exerion_state, screen_update_exerion)
422422
423423   MCFG_GFXDECODE(exerion)
424424   MCFG_PALETTE_LENGTH(256*3)
trunk/src/mame/drivers/mosaic.c
r17967r17968
276276   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
277277   MCFG_SCREEN_SIZE(64*8, 32*8)
278278   MCFG_SCREEN_VISIBLE_AREA(8*8, 48*8-1, 2*8, 30*8-1)
279   MCFG_SCREEN_UPDATE_STATIC(mosaic)
279   MCFG_SCREEN_UPDATE_DRIVER(mosaic_state, screen_update_mosaic)
280280
281281   MCFG_GFXDECODE(mosaic)
282282   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/meijinsn.c
r17967r17968
9696   virtual void machine_reset();
9797   virtual void video_start();
9898   virtual void palette_init();
99   UINT32 screen_update_meijinsn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
99100};
100101
101102
r17967r17968
290291}
291292
292293
293static SCREEN_UPDATE_IND16(meijinsn)
294UINT32 meijinsn_state::screen_update_meijinsn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
294295{
295   meijinsn_state *state = screen.machine().driver_data<meijinsn_state>();
296296   int offs;
297297
298298   for (offs = 0; offs < 0x4000; offs++)
r17967r17968
302302      sx = offs >> 8;
303303      sy = offs & 0xff;
304304
305      data1 = state->m_videoram[offs] >> 8;
306      data2 = state->m_videoram[offs] & 0xff;
305      data1 = m_videoram[offs] >> 8;
306      data2 = m_videoram[offs] & 0xff;
307307
308308      for (x = 0; x < 4; x++)
309309      {
r17967r17968
371371   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
372372   MCFG_SCREEN_SIZE(32*8, 32*8)
373373   MCFG_SCREEN_VISIBLE_AREA(12, 243, 2*8, 30*8-1)
374   MCFG_SCREEN_UPDATE_STATIC(meijinsn)
374   MCFG_SCREEN_UPDATE_DRIVER(meijinsn_state, screen_update_meijinsn)
375375
376376   MCFG_PALETTE_LENGTH(32)
377377
trunk/src/mame/drivers/ltcasino.c
r17967r17968
3434   DECLARE_DRIVER_INIT(mv4in1);
3535   TILE_GET_INFO_MEMBER(get_ltcasino_tile_info);
3636   virtual void video_start();
37   UINT32 screen_update_ltcasino(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3738};
3839
3940
r17967r17968
635636GFXDECODE_END
636637
637638
638static SCREEN_UPDATE_IND16(ltcasino)
639UINT32 ltcasino_state::screen_update_ltcasino(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
639640{
640   ltcasino_state *state = screen.machine().driver_data<ltcasino_state>();
641   state->m_tilemap->draw(bitmap, cliprect, 0,0);
641   m_tilemap->draw(bitmap, cliprect, 0,0);
642642   return 0;
643643}
644644
r17967r17968
655655   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
656656   MCFG_SCREEN_SIZE(64*8, 32*8)
657657   MCFG_SCREEN_VISIBLE_AREA(6*8, 58*8-1, 0, 32*8-1)
658   MCFG_SCREEN_UPDATE_STATIC(ltcasino)
658   MCFG_SCREEN_UPDATE_DRIVER(ltcasino_state, screen_update_ltcasino)
659659
660660   MCFG_GFXDECODE(ltcasino)
661661   MCFG_PALETTE_LENGTH(0x100)
trunk/src/mame/drivers/astrocorp.c
r17967r17968
6464   DECLARE_DRIVER_INIT(showhanc);
6565   DECLARE_DRIVER_INIT(showhand);
6666   DECLARE_VIDEO_START(astrocorp);
67   UINT32 screen_update_astrocorp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6768};
6869
6970/***************************************************************************
r17967r17968
150151   }
151152}
152153
153static SCREEN_UPDATE_IND16(astrocorp)
154UINT32 astrocorp_state::screen_update_astrocorp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
154155{
155   astrocorp_state *state = screen.machine().driver_data<astrocorp_state>();
156156
157   if (state->m_screen_enable & 1)
158      copybitmap(bitmap, state->m_bitmap, 0,0,0,0, cliprect);
157   if (m_screen_enable & 1)
158      copybitmap(bitmap, m_bitmap, 0,0,0,0, cliprect);
159159   else
160160      bitmap.fill(get_black_pen(screen.machine()), cliprect);
161161
r17967r17968
487487   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
488488   MCFG_SCREEN_SIZE(320, 240)
489489   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
490   MCFG_SCREEN_UPDATE_STATIC(astrocorp)
490   MCFG_SCREEN_UPDATE_DRIVER(astrocorp_state, screen_update_astrocorp)
491491
492492   MCFG_GFXDECODE(astrocorp)
493493   MCFG_PALETTE_LENGTH(0x100)
r17967r17968
538538   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
539539   MCFG_SCREEN_SIZE(0x200, 0x100)
540540   MCFG_SCREEN_VISIBLE_AREA(0, 0x200-1, 0, 0xf0-1)
541   MCFG_SCREEN_UPDATE_STATIC(astrocorp)
541   MCFG_SCREEN_UPDATE_DRIVER(astrocorp_state, screen_update_astrocorp)
542542
543543   MCFG_GFXDECODE(astrocorp)
544544   MCFG_PALETTE_LENGTH(0x100)
trunk/src/mame/drivers/coolridr.c
r17967r17968
319319   DECLARE_DRIVER_INIT(coolridr);
320320   virtual void machine_reset();
321321   virtual void video_start();
322   UINT32 screen_update_coolridr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
322323};
323324
324325
r17967r17968
331332   m_test_offs = 0x2000;
332333}
333334
334static SCREEN_UPDATE_RGB32(coolridr)
335UINT32 coolridr_state::screen_update_coolridr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
335336{
336   coolridr_state *state = screen.machine().driver_data<coolridr_state>();
337337   /* planes seems to basically be at 0x8000 and 0x28000... */
338338   gfx_element *gfx = screen.machine().gfx[2];
339339   UINT32 count;
r17967r17968
341341
342342
343343   if(screen.machine().input().code_pressed(KEYCODE_Z))
344      state->m_test_offs+=4;
344      m_test_offs+=4;
345345
346346   if(screen.machine().input().code_pressed(KEYCODE_X))
347      state->m_test_offs-=4;
347      m_test_offs-=4;
348348
349349   if(screen.machine().input().code_pressed(KEYCODE_C))
350      state->m_test_offs+=0x40;
350      m_test_offs+=0x40;
351351
352352   if(screen.machine().input().code_pressed(KEYCODE_V))
353      state->m_test_offs-=0x40;
353      m_test_offs-=0x40;
354354
355355   if(screen.machine().input().code_pressed(KEYCODE_B))
356      state->m_test_offs+=0x400;
356      m_test_offs+=0x400;
357357
358358   if(screen.machine().input().code_pressed(KEYCODE_N))
359      state->m_test_offs-=0x400;
359      m_test_offs-=0x400;
360360
361361   if(screen.machine().input().code_pressed_once(KEYCODE_A))
362      state->m_color++;
362      m_color++;
363363
364364   if(screen.machine().input().code_pressed_once(KEYCODE_S))
365      state->m_color--;
365      m_color--;
366366
367   if(state->m_test_offs > 0x100000*4)
368      state->m_test_offs = 0;
367   if(m_test_offs > 0x100000*4)
368      m_test_offs = 0;
369369
370   count = state->m_test_offs/4;
370   count = m_test_offs/4;
371371
372   popmessage("%08x %04x",state->m_test_offs,state->m_color);
372   popmessage("%08x %04x",m_test_offs,m_color);
373373
374374   for (y=0;y<64;y++)
375375   {
r17967r17968
377377      {
378378         int tile;
379379
380         tile = (state->m_h1_vram[count] & 0x0fff0000) >> 16;
381         drawgfx_opaque(bitmap,cliprect,gfx,tile,state->m_color,0,0,(x+0)*16,y*16);
380         tile = (m_h1_vram[count] & 0x0fff0000) >> 16;
381         drawgfx_opaque(bitmap,cliprect,gfx,tile,m_color,0,0,(x+0)*16,y*16);
382382
383         tile = (state->m_h1_vram[count] & 0x00000fff) >> 0;
384         drawgfx_opaque(bitmap,cliprect,gfx,tile,state->m_color,0,0,(x+1)*16,y*16);
383         tile = (m_h1_vram[count] & 0x00000fff) >> 0;
384         drawgfx_opaque(bitmap,cliprect,gfx,tile,m_color,0,0,(x+1)*16,y*16);
385385
386386         count++;
387387      }
388388   }
389389
390   copybitmap_trans(bitmap, state->m_temp_bitmap_sprites, 0, 0, 0, 0, cliprect, 0);
391   state->m_temp_bitmap_sprites.fill(0, cliprect);
390   copybitmap_trans(bitmap, m_temp_bitmap_sprites, 0, 0, 0, 0, cliprect, 0);
391   m_temp_bitmap_sprites.fill(0, cliprect);
392392
393393
394394   return 0;
r17967r17968
11811181   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
11821182   MCFG_SCREEN_SIZE(128*8+22, 64*8+44)
11831183   MCFG_SCREEN_VISIBLE_AREA(0*8, 128*8-1, 0*8, 64*8-1) //TODO: these are just two different screens
1184   MCFG_SCREEN_UPDATE_STATIC(coolridr)
1184   MCFG_SCREEN_UPDATE_DRIVER(coolridr_state, screen_update_coolridr)
11851185
11861186   MCFG_PALETTE_LENGTH(0x10000)
11871187
trunk/src/mame/drivers/blitz.c
r17967r17968
313313   TILE_GET_INFO_MEMBER(get_bg_tile_info);
314314   virtual void video_start();
315315   virtual void palette_init();
316   UINT32 screen_update_megadpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
316317};
317318
318319
r17967r17968
359360   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);
360361}
361362
362static SCREEN_UPDATE_IND16( megadpkr )
363UINT32 blitz_state::screen_update_megadpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
363364{
364   blitz_state *state = screen.machine().driver_data<blitz_state>();
365   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
365   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
366366   return 0;
367367}
368368
r17967r17968
810810   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
811811   MCFG_SCREEN_SIZE((32)*8, (32)*8)
812812   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
813   MCFG_SCREEN_UPDATE_STATIC(megadpkr)
813   MCFG_SCREEN_UPDATE_DRIVER(blitz_state, screen_update_megadpkr)
814814
815815   MCFG_MC6845_ADD("crtc", MC6845, CPU_CLOCK, mc6845_intf)
816816
trunk/src/mame/drivers/cobra.c
r17967r17968
720720   DECLARE_DRIVER_INIT(cobra);
721721   virtual void machine_reset();
722722   virtual void video_start();
723   UINT32 screen_update_cobra(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
723724};
724725
725726void cobra_renderer::render_color_scan(INT32 scanline, const extent_t &extent, const cobra_polydata &extradata, int threadid)
r17967r17968
994995   m_renderer->gfx_init(machine());
995996}
996997
997SCREEN_UPDATE_RGB32( cobra )
998UINT32 cobra_state::screen_update_cobra(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
998999{
999   cobra_state *cobra = screen.machine().driver_data<cobra_state>();
10001000
1001   if (cobra->m_has_psac)
1001   if (m_has_psac)
10021002   {
10031003      device_t *k001604 = screen.machine().device("k001604");
10041004
r17967r17968
10061006      k001604_draw_front_layer(k001604, bitmap, cliprect);
10071007   }
10081008
1009   cobra->m_renderer->display(&bitmap, cliprect);
1009   m_renderer->display(&bitmap, cliprect);
10101010   return 0;
10111011}
10121012
r17967r17968
32603260   MCFG_SCREEN_SIZE(512, 400)
32613261   MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 399)
32623262   MCFG_PALETTE_LENGTH(65536)
3263   MCFG_SCREEN_UPDATE_STATIC(cobra)
3263   MCFG_SCREEN_UPDATE_DRIVER(cobra_state, screen_update_cobra)
32643264
32653265   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
32663266
trunk/src/mame/drivers/tutankhm.c
r17967r17968
232232   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
233233   MCFG_SCREEN_SIZE(32*8, 32*8)
234234   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)   /* not sure about the visible area */
235   MCFG_SCREEN_UPDATE_STATIC(tutankhm)
235   MCFG_SCREEN_UPDATE_DRIVER(tutankhm_state, screen_update_tutankhm)
236236
237237   /* sound hardware */
238238   MCFG_FRAGMENT_ADD(timeplt_sound)
trunk/src/mame/drivers/nitedrvr.c
r17967r17968
151151   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
152152   MCFG_SCREEN_SIZE(32*8, 32*8)
153153   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
154   MCFG_SCREEN_UPDATE_STATIC(nitedrvr)
154   MCFG_SCREEN_UPDATE_DRIVER(nitedrvr_state, screen_update_nitedrvr)
155155
156156   MCFG_GFXDECODE(nitedrvr)
157157   MCFG_PALETTE_LENGTH(2)
trunk/src/mame/drivers/targeth.c
r17967r17968
184184   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
185185   MCFG_SCREEN_SIZE(64*16, 32*16)            /* 1024x512 */
186186   MCFG_SCREEN_VISIBLE_AREA(0, 24*16-1, 16, 16*16-1)   /* 400x240 */
187   MCFG_SCREEN_UPDATE_STATIC(targeth)
187   MCFG_SCREEN_UPDATE_DRIVER(targeth_state, screen_update_targeth)
188188
189189   MCFG_GFXDECODE(0x080000)
190190   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/intrscti.c
r17967r17968
2626//  DECLARE_READ8_MEMBER(unk_r);
2727   DECLARE_DRIVER_INIT(intrscti);
2828   virtual void video_start();
29   UINT32 screen_update_intrscti(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2930};
3031
3132void intrscti_state::video_start()
3233{
3334}
3435
35static SCREEN_UPDATE_IND16(intrscti)
36UINT32 intrscti_state::screen_update_intrscti(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
3637{
37   intrscti_state *state = screen.machine().driver_data<intrscti_state>();
3838   int y,x;
3939   int count;
4040
r17967r17968
4646      for (x=0;x<32;x++)
4747      {
4848         int dat;
49         dat = state->m_vram[count];
49         dat = m_vram[count];
5050         drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[0],dat/*+0x100*/,0,0,0,x*8,y*8,0);
5151         count++;
5252      }
r17967r17968
5858      for (x=0;x<32;x++)
5959      {
6060         int dat;
61         dat = state->m_vram[count];
61         dat = m_vram[count];
6262         drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[0],dat+0x100,0,0,0,x*8,y*8,0);
6363         count++;
6464      }
r17967r17968
171171   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
172172   MCFG_SCREEN_SIZE(256, 256)
173173   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1)
174   MCFG_SCREEN_UPDATE_STATIC(intrscti)
174   MCFG_SCREEN_UPDATE_DRIVER(intrscti_state, screen_update_intrscti)
175175
176176   MCFG_GFXDECODE(intrscti)
177177   MCFG_PALETTE_LENGTH(0x100)
trunk/src/mame/drivers/rainbow.c
r17967r17968
690690   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
691691   MCFG_SCREEN_SIZE(40*8, 32*8)
692692   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
693   MCFG_SCREEN_UPDATE_STATIC(rainbow)
693   MCFG_SCREEN_UPDATE_DRIVER(rbisland_state, screen_update_rainbow)
694694
695695   MCFG_GFXDECODE(rbisland)
696696   MCFG_PALETTE_LENGTH(8192)
r17967r17968
730730   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
731731   MCFG_SCREEN_SIZE(40*8, 32*8)
732732   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
733   MCFG_SCREEN_UPDATE_STATIC(jumping)
733   MCFG_SCREEN_UPDATE_DRIVER(rbisland_state, screen_update_jumping)
734734
735735   MCFG_GFXDECODE(jumping)
736736   MCFG_PALETTE_LENGTH(8192)
trunk/src/mame/drivers/galspnbl.c
r17967r17968
242242   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
243243   MCFG_SCREEN_SIZE(512, 256)
244244   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 240-1)
245   MCFG_SCREEN_UPDATE_STATIC(galspnbl)
245   MCFG_SCREEN_UPDATE_DRIVER(galspnbl_state, screen_update_galspnbl)
246246
247247   MCFG_GFXDECODE(galspnbl)
248248   MCFG_PALETTE_LENGTH(1024 + 32768)
trunk/src/mame/drivers/tunhunt.c
r17967r17968
305305   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
306306   MCFG_SCREEN_SIZE(256, 256-16)
307307   MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 255-16)
308   MCFG_SCREEN_UPDATE_STATIC(tunhunt)
308   MCFG_SCREEN_UPDATE_DRIVER(tunhunt_state, screen_update_tunhunt)
309309
310310   MCFG_GFXDECODE(tunhunt)
311311   MCFG_PALETTE_LENGTH(0x1a)
trunk/src/mame/drivers/tryout.c
r17967r17968
200200   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
201201   MCFG_SCREEN_SIZE(256, 256)
202202   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
203   MCFG_SCREEN_UPDATE_STATIC(tryout)
203   MCFG_SCREEN_UPDATE_DRIVER(tryout_state, screen_update_tryout)
204204
205205   MCFG_GFXDECODE(tryout)
206206   MCFG_PALETTE_LENGTH(0x20)
trunk/src/mame/drivers/rungun.c
r17967r17968
420420   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
421421   MCFG_SCREEN_SIZE(64*8, 32*8)
422422   MCFG_SCREEN_VISIBLE_AREA(88, 88+384-1, 24, 24+224-1)
423   MCFG_SCREEN_UPDATE_STATIC(rng)
423   MCFG_SCREEN_UPDATE_DRIVER(rungun_state, screen_update_rng)
424424
425425   MCFG_PALETTE_LENGTH(1024)
426426
trunk/src/mame/drivers/sfbonus.c
r17967r17968
453453   TILE_GET_INFO_MEMBER(get_sfbonus_reel4_tile_info);
454454   virtual void machine_reset();
455455   virtual void video_start();
456   UINT32 screen_update_sfbonus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
456457};
457458
458459
r17967r17968
10591060
10601061}
10611062
1062static SCREEN_UPDATE_IND16(sfbonus)
1063UINT32 sfbonus_state::screen_update_sfbonus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
10631064{
1064   sfbonus_state *state = screen.machine().driver_data<sfbonus_state>();
10651065
1066   int globalyscroll = (state->m_vregs[2] | state->m_vregs[3]<<8);
1067   int globalxscroll = (state->m_vregs[0] | state->m_vregs[1]<<8);
1068   UINT8* front_rowscroll = &state->m_videoram[0x200];
1066   int globalyscroll = (m_vregs[2] | m_vregs[3]<<8);
1067   int globalxscroll = (m_vregs[0] | m_vregs[1]<<8);
1068   UINT8* front_rowscroll = &m_videoram[0x200];
10691069   ioport_constructor ipt;
10701070   int i;
10711071
r17967r17968
10741074   globalxscroll += 8;
10751075
10761076   bitmap.fill(screen.machine().pens[0], cliprect);
1077   state->m_temp_reel_bitmap->fill(screen.machine().pens[0], cliprect);
1077   m_temp_reel_bitmap->fill(screen.machine().pens[0], cliprect);
10781078
10791079   /* render reels to bitmap */
1080   sfbonus_draw_reel_layer(screen,*state->m_temp_reel_bitmap,cliprect,0);
1080   sfbonus_draw_reel_layer(screen,*m_temp_reel_bitmap,cliprect,0);
10811081
10821082   {
10831083      int y,x;
r17967r17968
10861086      {
10871087         for (x=0;x<512;x++)
10881088         {
1089            UINT16* src = &state->m_temp_reel_bitmap->pix16(y, x);
1089            UINT16* src = &m_temp_reel_bitmap->pix16(y, x);
10901090            UINT16* dst = &bitmap.pix16(y, x);
10911091
10921092            if ((src[0]&0x100)==0x000)
r17967r17968
10961096   }
10971097
10981098   /* Normal Tilemap */
1099   state->m_tilemap->set_scrolly(0, globalyscroll );
1099   m_tilemap->set_scrolly(0, globalyscroll );
11001100   for (i=0;i<64;i++)
11011101   {
11021102      int scroll;
11031103      scroll = front_rowscroll[(i*2)+0x000] | (front_rowscroll[(i*2)+0x001]<<8);
1104      state->m_tilemap->set_scrollx(i, scroll+globalxscroll );
1104      m_tilemap->set_scrollx(i, scroll+globalxscroll );
11051105   }
1106   state->m_tilemap->draw(bitmap, cliprect, 0,0);
1106   m_tilemap->draw(bitmap, cliprect, 0,0);
11071107
11081108   {
11091109      int y,x;
r17967r17968
11121112      {
11131113         for (x=0;x<512;x++)
11141114         {
1115            UINT16* src = &state->m_temp_reel_bitmap->pix16(y, x);
1115            UINT16* src = &m_temp_reel_bitmap->pix16(y, x);
11161116            UINT16* dst = &bitmap.pix16(y, x);
11171117
11181118            if ((src[0]&0x100)==0x100)
r17967r17968
11221122   }
11231123#if 0
11241124    popmessage("%02x %02x %02x %02x %02x %02x %02x %02x -- %02x -- %02x %02x -- %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x",
1125    state->m_3800_regs[0],
1126    state->m_3800_regs[1],
1127    state->m_3800_regs[2],
1128    state->m_3800_regs[3],
1129    state->m_3800_regs[4],
1130    state->m_3800_regs[5],
1131    state->m_3800_regs[6],
1132    state->m_3800_regs[7],
1133    state->m_3000_regs[0],
1134    state->m_2801_regs[0],
1135    state->m_2c01_regs[0],
1136    state->m_vregs[8],
1137    state->m_vregs[0],
1138    state->m_vregs[10],
1139    state->m_vregs[11],
1140    state->m_vregs[12],
1141    state->m_vregs[13],
1142    state->m_vregs[14],
1143    state->m_vregs[15],
1144    state->m_vregs[16],
1145    state->m_vregs[17],
1146    state->m_vregs[18],
1147    state->m_vregs[19],
1148    state->m_vregs[20],
1149    state->m_vregs[21],
1150    state->m_vregs[22],
1151    state->m_vregs[23],
1152    state->m_vregs[24],
1153    state->m_vregs[25],
1154    state->m_vregs[26],
1155    state->m_vregs[27],
1156    state->m_vregs[28],
1157    state->m_vregs[29],
1158    state->m_vregs[30],
1159    state->m_vregs[31]
1125    m_3800_regs[0],
1126    m_3800_regs[1],
1127    m_3800_regs[2],
1128    m_3800_regs[3],
1129    m_3800_regs[4],
1130    m_3800_regs[5],
1131    m_3800_regs[6],
1132    m_3800_regs[7],
1133    m_3000_regs[0],
1134    m_2801_regs[0],
1135    m_2c01_regs[0],
1136    m_vregs[8],
1137    m_vregs[0],
1138    m_vregs[10],
1139    m_vregs[11],
1140    m_vregs[12],
1141    m_vregs[13],
1142    m_vregs[14],
1143    m_vregs[15],
1144    m_vregs[16],
1145    m_vregs[17],
1146    m_vregs[18],
1147    m_vregs[19],
1148    m_vregs[20],
1149    m_vregs[21],
1150    m_vregs[22],
1151    m_vregs[23],
1152    m_vregs[24],
1153    m_vregs[25],
1154    m_vregs[26],
1155    m_vregs[27],
1156    m_vregs[28],
1157    m_vregs[29],
1158    m_vregs[30],
1159    m_vregs[31]
11601160    );
11611161
11621162    popmessage("-- %02x %02x %02x %02x %02x %02x %02x %02x",
1163    state->m_1800_regs[0],
1164    state->m_1800_regs[1],
1165    state->m_1800_regs[2],
1166    state->m_1800_regs[3],
1167    state->m_1800_regs[4],
1168    state->m_1800_regs[5],
1169    state->m_1800_regs[6],
1170    state->m_1800_regs[7]);
1163    m_1800_regs[0],
1164    m_1800_regs[1],
1165    m_1800_regs[2],
1166    m_1800_regs[3],
1167    m_1800_regs[4],
1168    m_1800_regs[5],
1169    m_1800_regs[6],
1170    m_1800_regs[7]);
11711171#endif
11721172
11731173   ipt = screen.machine().system().ipt;
r17967r17968
11751175      || (ipt == INPUT_PORTS_NAME(amcoe2_poker)))
11761176   {
11771177      // based on pirpok2
1178      output_set_lamp_value(0, (state->m_1800_regs[6] & 0x1) >> 0);
1179      output_set_lamp_value(1, (state->m_1800_regs[6] & 0x4) >> 2);
1180      output_set_lamp_value(2, (state->m_1800_regs[5] & 0x4) >> 2);
1181      output_set_lamp_value(3, (state->m_1800_regs[5] & 0x1) >> 0);
1182      output_set_lamp_value(4, (state->m_1800_regs[4] & 0x4) >> 2);
1183      output_set_lamp_value(5, (state->m_1800_regs[4] & 0x1) >> 0);
1178      output_set_lamp_value(0, (m_1800_regs[6] & 0x1) >> 0);
1179      output_set_lamp_value(1, (m_1800_regs[6] & 0x4) >> 2);
1180      output_set_lamp_value(2, (m_1800_regs[5] & 0x4) >> 2);
1181      output_set_lamp_value(3, (m_1800_regs[5] & 0x1) >> 0);
1182      output_set_lamp_value(4, (m_1800_regs[4] & 0x4) >> 2);
1183      output_set_lamp_value(5, (m_1800_regs[4] & 0x1) >> 0);
11841184   }
11851185   else if ((ipt == INPUT_PORTS_NAME(amcoe1_reels3)) || (ipt == INPUT_PORTS_NAME(amcoe1_reels4))
11861186      || (ipt == INPUT_PORTS_NAME(amcoe1_poker)))
11871187   {
1188      output_set_lamp_value(0, (state->m_1800_regs[0] & 0x2) >> 1);
1189      output_set_lamp_value(1, (state->m_1800_regs[4] & 0x2) >> 1);
1190      output_set_lamp_value(2, (state->m_1800_regs[3] & 0x2) >> 1);
1191      output_set_lamp_value(3, (state->m_1800_regs[6] & 0x4) >> 2);
1192      output_set_lamp_value(4, (state->m_1800_regs[4] & 0x4) >> 2);
1193      output_set_lamp_value(5, (state->m_1800_regs[3] & 0x4) >> 2);
1188      output_set_lamp_value(0, (m_1800_regs[0] & 0x2) >> 1);
1189      output_set_lamp_value(1, (m_1800_regs[4] & 0x2) >> 1);
1190      output_set_lamp_value(2, (m_1800_regs[3] & 0x2) >> 1);
1191      output_set_lamp_value(3, (m_1800_regs[6] & 0x4) >> 2);
1192      output_set_lamp_value(4, (m_1800_regs[4] & 0x4) >> 2);
1193      output_set_lamp_value(5, (m_1800_regs[3] & 0x4) >> 2);
11941194   }
11951195
11961196   return 0;
r17967r17968
13721372   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
13731373   MCFG_SCREEN_SIZE(128*8, 64*8)
13741374   MCFG_SCREEN_VISIBLE_AREA(0*8, 512-1, 0*8, 288-1)
1375   MCFG_SCREEN_UPDATE_STATIC(sfbonus)
1375   MCFG_SCREEN_UPDATE_DRIVER(sfbonus_state, screen_update_sfbonus)
13761376
13771377   MCFG_PALETTE_LENGTH(0x100*2) // *2 for priority workaraound / custom drawing
13781378
trunk/src/mame/drivers/crystal.c
r17967r17968
190190   DECLARE_DRIVER_INIT(evosocc);
191191   virtual void machine_start();
192192   virtual void machine_reset();
193   UINT32 screen_update_crystal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
194   void screen_eof_crystal(screen_device &screen, bool state);
193195};
194196
195197static void IntReq( running_machine &machine, int num )
r17967r17968
647649}
648650
649651
650static SCREEN_UPDATE_IND16( crystal )
652UINT32 crystal_state::screen_update_crystal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
651653{
652   crystal_state *state = screen.machine().driver_data<crystal_state>();
653654   address_space &space = *screen.machine().device("maincpu")->memory().space(AS_PROGRAM);
654655   int DoFlip;
655656
r17967r17968
664665
665666   if (GetVidReg(space, 0x8e) & 1)
666667   {
667      Front = (UINT16*) (state->m_frameram + B1 / 4);
668      Back  = (UINT16*) (state->m_frameram + B0 / 4);
668      Front = (UINT16*) (m_frameram + B1 / 4);
669      Back  = (UINT16*) (m_frameram + B0 / 4);
669670   }
670671   else
671672   {
672      Front = (UINT16*) (state->m_frameram + B0 / 4);
673      Back  = (UINT16*) (state->m_frameram + B1 / 4);
673      Front = (UINT16*) (m_frameram + B0 / 4);
674      Back  = (UINT16*) (m_frameram + B1 / 4);
674675   }
675676
676677   Visible  = (UINT16*) Front;
677678   // ERROR: This cast is NOT endian-safe without the use of BYTE/WORD/DWORD_XOR_* macros!
678   DrawDest = reinterpret_cast<UINT16 *>(state->m_frameram.target());
679   DrawDest = reinterpret_cast<UINT16 *>(m_frameram.target());
679680
680681
681682   if (GetVidReg(space, 0x8c) & 0x80)
r17967r17968
693694   while ((head & 0x7ff) != (tail & 0x7ff))
694695   {
695696      // ERROR: This cast is NOT endian-safe without the use of BYTE/WORD/DWORD_XOR_* macros!
696      DoFlip = vrender0_ProcessPacket(state->m_vr0video, 0x03800000 + head * 64, DrawDest, reinterpret_cast<UINT8*>(state->m_textureram.target()));
697      DoFlip = vrender0_ProcessPacket(m_vr0video, 0x03800000 + head * 64, DrawDest, reinterpret_cast<UINT8*>(m_textureram.target()));
697698      head++;
698699      head &= 0x7ff;
699700      if (DoFlip)
r17967r17968
710711   return 0;
711712}
712713
713static SCREEN_VBLANK(crystal)
714void crystal_state::screen_eof_crystal(screen_device &screen, bool state)
714715{
715716   // rising edge
716   if (vblank_on)
717   if (state)
717718   {
718      crystal_state *state = screen.machine().driver_data<crystal_state>();
719719      address_space &space = *screen.machine().device("maincpu")->memory().space(AS_PROGRAM);
720720      UINT16 head, tail;
721721      int DoFlip = 0;
r17967r17968
735735      SetVidReg(space, 0x82, head);
736736      if (DoFlip)
737737      {
738         if (state->m_FlipCount)
739            state->m_FlipCount--;
738         if (m_FlipCount)
739            m_FlipCount--;
740740
741741      }
742742   }
r17967r17968
851851   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
852852   MCFG_SCREEN_SIZE(320, 240)
853853   MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
854   MCFG_SCREEN_UPDATE_STATIC(crystal)
855   MCFG_SCREEN_VBLANK_STATIC(crystal)
854   MCFG_SCREEN_UPDATE_DRIVER(crystal_state, screen_update_crystal)
855   MCFG_SCREEN_VBLANK_DRIVER(crystal_state, screen_eof_crystal)
856856
857857   MCFG_VIDEO_VRENDER0_ADD("vr0", vr0video_config)
858858
trunk/src/mame/drivers/eprom.c
r17967r17968
426426   /* note: these parameters are from published specs, not derived */
427427   /* the board uses a SYNGEN chip to generate video signals */
428428   MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
429   MCFG_SCREEN_UPDATE_STATIC(eprom)
429   MCFG_SCREEN_UPDATE_DRIVER(eprom_state, screen_update_eprom)
430430
431431   MCFG_VIDEO_START_OVERRIDE(eprom_state,eprom)
432432
r17967r17968
457457   /* note: these parameters are from published specs, not derived */
458458   /* the board uses a SYNGEN chip to generate video signals */
459459   MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
460   MCFG_SCREEN_UPDATE_STATIC(eprom)
460   MCFG_SCREEN_UPDATE_DRIVER(eprom_state, screen_update_eprom)
461461
462462   MCFG_VIDEO_START_OVERRIDE(eprom_state,eprom)
463463
r17967r17968
488488   /* note: these parameters are from published specs, not derived */
489489   /* the board uses a SYNGEN chip to generate video signals */
490490   MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
491   MCFG_SCREEN_UPDATE_STATIC(guts)
491   MCFG_SCREEN_UPDATE_DRIVER(eprom_state, screen_update_guts)
492492
493493   MCFG_VIDEO_START_OVERRIDE(eprom_state,guts)
494494
trunk/src/mame/drivers/madmotor.c
r17967r17968
264264   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */ /* frames per second, vblank duration taken from Burger Time */)
265265   MCFG_SCREEN_SIZE(32*8, 32*8)
266266   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
267   MCFG_SCREEN_UPDATE_STATIC(madmotor)
267   MCFG_SCREEN_UPDATE_DRIVER(madmotor_state, screen_update_madmotor)
268268
269269   MCFG_GFXDECODE(madmotor)
270270   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/chinsan.c
r17967r17968
7575   virtual void machine_reset();
7676   virtual void video_start();
7777   virtual void palette_init();
78   UINT32 screen_update_chinsan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7879};
7980
8081
r17967r17968
9798{
9899}
99100
100static SCREEN_UPDATE_IND16( chinsan )
101UINT32 chinsan_state::screen_update_chinsan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
101102{
102   chinsan_state *state = screen.machine().driver_data<chinsan_state>();
103103   int y, x, count;
104104   count = 0;
105105   for (y = 0; y < 32; y++)
r17967r17968
107107      for (x = 0; x < 64; x++)
108108      {
109109         int tileno, colour;
110         tileno = state->m_video[count] | (state->m_video[count + 0x800] << 8);
111         colour = state->m_video[count + 0x1000] >> 3;
110         tileno = m_video[count] | (m_video[count + 0x800] << 8);
111         colour = m_video[count + 0x1000] >> 3;
112112         drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0],tileno,colour,0,0,x*8,y*8);
113113         count++;
114114      }
r17967r17968
614614   MCFG_SCREEN_REFRESH_RATE(60)
615615   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
616616   MCFG_SCREEN_VISIBLE_AREA(24, 512-24-1, 16, 256-16-1)
617   MCFG_SCREEN_UPDATE_STATIC(chinsan)
617   MCFG_SCREEN_UPDATE_DRIVER(chinsan_state, screen_update_chinsan)
618618
619619   MCFG_GFXDECODE(chinsan)
620620   MCFG_PALETTE_LENGTH(0x100)
trunk/src/mame/drivers/famibox.c
r17967r17968
109109   virtual void machine_reset();
110110   virtual void video_start();
111111   virtual void palette_init();
112   UINT32 screen_update_famibox(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
112113};
113114
114115/******************************************************
r17967r17968
538539{
539540}
540541
541static SCREEN_UPDATE_IND16( famibox )
542UINT32 famibox_state::screen_update_famibox(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
542543{
543544   /* render the ppu */
544545   ppu2c0x_device *ppu = screen.machine().device<ppu2c0x_device>("ppu");
r17967r17968
589590   MCFG_SCREEN_REFRESH_RATE(60)
590591   MCFG_SCREEN_SIZE(32*8, 262)
591592   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1)
592   MCFG_SCREEN_UPDATE_STATIC(famibox)
593   MCFG_SCREEN_UPDATE_DRIVER(famibox_state, screen_update_famibox)
593594
594595   MCFG_GFXDECODE(famibox)
595596   MCFG_PALETTE_LENGTH(8*4*16)
trunk/src/mame/drivers/cshooter.c
r17967r17968
119119   virtual void video_start();
120120   DECLARE_MACHINE_RESET(cshooter);
121121   DECLARE_MACHINE_RESET(airraid);
122   UINT32 screen_update_cshooter(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
122123};
123124
124125
r17967r17968
150151   m_txtilemap->set_transparent_pen(3);
151152}
152153
153static SCREEN_UPDATE_IND16(cshooter)
154UINT32 cshooter_state::screen_update_cshooter(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
154155{
155   cshooter_state *state = screen.machine().driver_data<cshooter_state>();
156156   bitmap.fill(0/*get_black_pen(screen.screen.machine(, cliprect))*/);
157   state->m_txtilemap->mark_all_dirty();
157   m_txtilemap->mark_all_dirty();
158158
159159   //sprites
160160   {
161      UINT8 *spriteram = state->m_spriteram;
161      UINT8 *spriteram = m_spriteram;
162162      int i;
163      for(i=0;i<state->m_spriteram.bytes();i+=4)
163      for(i=0;i<m_spriteram.bytes();i+=4)
164164      {
165165         if(spriteram[i+3]!=0)
166166         {
r17967r17968
193193      }
194194   }
195195
196   state->m_txtilemap->mark_all_dirty();
197   state->m_txtilemap->draw(bitmap, cliprect, 0,0);
196   m_txtilemap->mark_all_dirty();
197   m_txtilemap->draw(bitmap, cliprect, 0,0);
198198   return 0;
199199}
200200
r17967r17968
452452   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
453453   MCFG_SCREEN_SIZE(256, 256)
454454   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-1-16)
455   MCFG_SCREEN_UPDATE_STATIC(cshooter)
455   MCFG_SCREEN_UPDATE_DRIVER(cshooter_state, screen_update_cshooter)
456456
457457   MCFG_GFXDECODE(cshooter)
458458   MCFG_PALETTE_LENGTH(0x1000)
r17967r17968
478478   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
479479   MCFG_SCREEN_SIZE(256, 256)
480480   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-1-16)
481   MCFG_SCREEN_UPDATE_STATIC(cshooter)
481   MCFG_SCREEN_UPDATE_DRIVER(cshooter_state, screen_update_cshooter)
482482
483483   MCFG_GFXDECODE(cshooter)
484484   MCFG_PALETTE_LENGTH(0x1000)
trunk/src/mame/drivers/rocnrope.c
r17967r17968
208208   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
209209   MCFG_SCREEN_SIZE(32*8, 32*8)
210210   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
211   MCFG_SCREEN_UPDATE_STATIC(rocnrope)
211   MCFG_SCREEN_UPDATE_DRIVER(rocnrope_state, screen_update_rocnrope)
212212
213213   MCFG_GFXDECODE(rocnrope)
214214   MCFG_PALETTE_LENGTH(16*16+16*16)
trunk/src/mame/drivers/aerofgt.c
r17967r17968
13431343   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
13441344   MCFG_SCREEN_SIZE(64*8, 32*8)
13451345   MCFG_SCREEN_VISIBLE_AREA(0*8+4, 44*8+4-1, 0*8, 30*8-1)
1346   MCFG_SCREEN_UPDATE_STATIC(pspikes)
1346   MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_pspikes)
13471347
13481348   MCFG_GFXDECODE(pspikes)
13491349   MCFG_PALETTE_LENGTH(2048)
r17967r17968
13791379   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
13801380   MCFG_SCREEN_SIZE(64*8, 32*8)
13811381   MCFG_SCREEN_VISIBLE_AREA(0*8, 320-1, 0*8+4, 224+4-1)
1382   MCFG_SCREEN_UPDATE_STATIC(spikes91)
1382   MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_spikes91)
13831383
13841384   MCFG_GFXDECODE(spikes91)
13851385   MCFG_PALETTE_LENGTH(2048)
r17967r17968
14111411   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
14121412   MCFG_SCREEN_SIZE(64*8, 32*8)
14131413   MCFG_SCREEN_VISIBLE_AREA(0*8+4, 44*8+4-1, 0*8, 30*8-1)
1414   MCFG_SCREEN_UPDATE_STATIC(pspikesb)
1414   MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_pspikesb)
14151415
14161416   MCFG_GFXDECODE(pspikesb)
14171417   MCFG_PALETTE_LENGTH(2048)
r17967r17968
14411441   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
14421442   MCFG_SCREEN_SIZE(64*8, 32*8)
14431443   MCFG_SCREEN_VISIBLE_AREA(0*8+4, 44*8+4-1, 0*8, 30*8-1)
1444   MCFG_SCREEN_UPDATE_STATIC(pspikes)
1444   MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_pspikes)
14451445
14461446   MCFG_GFXDECODE(pspikes)
14471447   MCFG_PALETTE_LENGTH(2048)
r17967r17968
14761476   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
14771477   MCFG_SCREEN_SIZE(64*8, 32*8)
14781478   MCFG_SCREEN_VISIBLE_AREA(1*8, 45*8-1, 0*8, 30*8-1)
1479   MCFG_SCREEN_UPDATE_STATIC(karatblz)
1479   MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_karatblz)
14801480
14811481   MCFG_GFXDECODE(turbofrc)
14821482   MCFG_PALETTE_LENGTH(1024)
r17967r17968
15151515   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
15161516   MCFG_SCREEN_SIZE(64*8, 32*8)
15171517   MCFG_SCREEN_VISIBLE_AREA(1*8, 45*8-1, 0*8, 30*8-1)
1518   MCFG_SCREEN_UPDATE_STATIC(spinlbrk)
1518   MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_spinlbrk)
15191519
15201520   MCFG_GFXDECODE(turbofrc)
15211521   MCFG_PALETTE_LENGTH(1024)
r17967r17968
15541554   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
15551555   MCFG_SCREEN_SIZE(64*8, 32*8)
15561556   MCFG_SCREEN_VISIBLE_AREA(0*8, 44*8-1, 0*8, 30*8-1)
1557   MCFG_SCREEN_UPDATE_STATIC(turbofrc)
1557   MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_turbofrc)
15581558
15591559   MCFG_GFXDECODE(turbofrc)
15601560   MCFG_PALETTE_LENGTH(1024)
r17967r17968
15941594            /* wrong but improves sprite-background synchronization */
15951595   MCFG_SCREEN_SIZE(64*8, 32*8)
15961596   MCFG_SCREEN_VISIBLE_AREA(0*8+12, 40*8-1+12, 0*8, 28*8-1)
1597   MCFG_SCREEN_UPDATE_STATIC(turbofrc)
1597   MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_turbofrc)
15981598
15991599   MCFG_GFXDECODE(aerofgtb)
16001600   MCFG_PALETTE_LENGTH(1024)
r17967r17968
16341634            /* wrong but improves sprite-background synchronization */
16351635   MCFG_SCREEN_SIZE(64*8, 32*8)
16361636   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
1637   MCFG_SCREEN_UPDATE_STATIC(aerofgt)
1637   MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_aerofgt)
16381638
16391639   MCFG_GFXDECODE(aerofgt)
16401640   MCFG_PALETTE_LENGTH(1024)
r17967r17968
16721672            /* wrong but improves sprite-background synchronization */
16731673   MCFG_SCREEN_SIZE(64*8, 32*8)
16741674   MCFG_SCREEN_VISIBLE_AREA(0*8+12, 40*8-1+12, 0*8, 28*8-1)
1675   MCFG_SCREEN_UPDATE_STATIC(aerfboot)
1675   MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_aerfboot)
16761676
16771677   MCFG_GFXDECODE(aerfboot)
16781678   MCFG_PALETTE_LENGTH(1024)
r17967r17968
17031703            /* wrong but improves sprite-background synchronization */
17041704   MCFG_SCREEN_SIZE(64*8, 32*8)
17051705   MCFG_SCREEN_VISIBLE_AREA(0*8+12, 40*8-1+12, 0*8, 28*8-1)
1706   MCFG_SCREEN_UPDATE_STATIC(aerfboo2)
1706   MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_aerfboo2)
17071707
17081708   MCFG_GFXDECODE(aerfboo2)
17091709   MCFG_PALETTE_LENGTH(1024)
r17967r17968
17361736   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
17371737   MCFG_SCREEN_SIZE(64*8, 64*8)
17381738   MCFG_SCREEN_VISIBLE_AREA(0*8+14, 44*8-1+4, 0*8, 30*8-1)
1739   MCFG_SCREEN_UPDATE_STATIC(wbbc97)
1739   MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_wbbc97)
17401740
17411741   MCFG_GFXDECODE(wbbc97)
17421742   MCFG_PALETTE_LENGTH(2048)
trunk/src/mame/drivers/quakeat.c
r17967r17968
7676   DECLARE_READ8_MEMBER(get_slave_ack);
7777   virtual void machine_start();
7878   virtual void video_start();
79   UINT32 screen_update_quake(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7980};
8081
8182
r17967r17968
8384{
8485}
8586
86static SCREEN_UPDATE_IND16(quake)
87UINT32 quakeat_state::screen_update_quake(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
8788{
8889   return 0;
8990}
r17967r17968
182183   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
183184   MCFG_SCREEN_SIZE(64*8, 32*8)
184185   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
185   MCFG_SCREEN_UPDATE_STATIC(quake)
186   MCFG_SCREEN_UPDATE_DRIVER(quakeat_state, screen_update_quake)
186187
187188   MCFG_PALETTE_LENGTH(0x100)
188189
trunk/src/mame/drivers/ultrsprt.c
r17967r17968
3535   DECLARE_WRITE16_MEMBER(K056800_68k_w);
3636   DECLARE_CUSTOM_INPUT_MEMBER(analog_ctrl_r);
3737   virtual void machine_start();
38   UINT32 screen_update_ultrsprt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3839};
3940
4041
4142
4243
43static SCREEN_UPDATE_IND16( ultrsprt )
44UINT32 ultrsprt_state::screen_update_ultrsprt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
4445{
45   ultrsprt_state *state = screen.machine().driver_data<ultrsprt_state>();
4646   int i, j;
4747
48   UINT8 *ram = reinterpret_cast<UINT8 *>(state->m_vram.target());
48   UINT8 *ram = reinterpret_cast<UINT8 *>(m_vram.target());
4949
5050   for (j=0; j < 400; j++)
5151   {
r17967r17968
243243   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
244244   MCFG_SCREEN_SIZE(512, 400)
245245   MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 399)
246   MCFG_SCREEN_UPDATE_STATIC(ultrsprt)
246   MCFG_SCREEN_UPDATE_DRIVER(ultrsprt_state, screen_update_ultrsprt)
247247
248248   MCFG_PALETTE_LENGTH(8192)
249249
trunk/src/mame/drivers/hitme.c
r17967r17968
6565}
6666
6767
68static SCREEN_UPDATE_IND16( hitme )
68UINT32 hitme_state::screen_update_hitme(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
6969{
70   hitme_state *state = screen.machine().driver_data<hitme_state>();
7170   /* the card width resistor comes from an input port, scaled to the range 0-25 kOhms */
7271   double width_resist = screen.machine().root_device().ioport("WIDTH")->read() * 25000 / 100;
7372   /* this triggers a oneshot for the following length of time */
r17967r17968
8079   offs_t offs = 0;
8180
8281   /* start by drawing the tilemap */
83   state->m_tilemap->draw(bitmap, cliprect, 0, 0);
82   m_tilemap->draw(bitmap, cliprect, 0, 0);
8483
8584   /* now loop over and invert anything */
8685   for (y = 0; y < 19; y++)
r17967r17968
8988      for (inv = x = 0; x < 40; x++, offs++)
9089      {
9190         /* if the high bit is set, reset the oneshot */
92         if (state->m_videoram[y * 40 + x] & 0x80)
91         if (m_videoram[y * 40 + x] & 0x80)
9392            inv = width_pixels;
9493
9594         /* invert pixels until we run out */
r17967r17968
113112}
114113
115114
116static SCREEN_UPDATE_IND16( barricad )
115UINT32 hitme_state::screen_update_barricad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
117116{
118   hitme_state *state = screen.machine().driver_data<hitme_state>();
119   state->m_tilemap->draw(bitmap, cliprect, 0, 0);
117   m_tilemap->draw(bitmap, cliprect, 0, 0);
120118   return 0;
121119}
122120
r17967r17968
326324   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
327325   MCFG_SCREEN_SIZE(40*8, 19*10)
328326   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 19*10-1)
329   MCFG_SCREEN_UPDATE_STATIC(hitme)
327   MCFG_SCREEN_UPDATE_DRIVER(hitme_state, screen_update_hitme)
330328
331329   MCFG_GFXDECODE(hitme)
332330   MCFG_PALETTE_LENGTH(2)
r17967r17968
355353   MCFG_SCREEN_MODIFY("screen")
356354   MCFG_SCREEN_SIZE(32*8, 24*8)
357355   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 24*8-1)
358   MCFG_SCREEN_UPDATE_STATIC(barricad)
356   MCFG_SCREEN_UPDATE_DRIVER(hitme_state, screen_update_barricad)
359357
360358   MCFG_GFXDECODE(barricad)
361359
trunk/src/mame/drivers/senjyo.c
r17967r17968
589589   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
590590   MCFG_SCREEN_SIZE(32*8, 32*8)
591591   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
592   MCFG_SCREEN_UPDATE_STATIC(senjyo)
592   MCFG_SCREEN_UPDATE_DRIVER(senjyo_state, screen_update_senjyo)
593593
594594   MCFG_GFXDECODE(senjyo)
595595   MCFG_PALETTE_LENGTH(512+2)   /* 512 real palette + 2 for the radar */
trunk/src/mame/drivers/spool99.c
r17967r17968
117117   DECLARE_DRIVER_INIT(spool99);
118118   TILE_GET_INFO_MEMBER(get_spool99_tile_info);
119119   virtual void video_start();
120   UINT32 screen_update_spool99(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
120121};
121122
122123TILE_GET_INFO_MEMBER(spool99_state::get_spool99_tile_info)
r17967r17968
137138   m_sc0_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(spool99_state::get_spool99_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
138139}
139140
140static SCREEN_UPDATE_IND16(spool99)
141UINT32 spool99_state::screen_update_spool99(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
141142{
142   spool99_state *state = screen.machine().driver_data<spool99_state>();
143143
144   state->m_sc0_tilemap->draw(bitmap, cliprect, 0,0);
144   m_sc0_tilemap->draw(bitmap, cliprect, 0,0);
145145   return 0;
146146}
147147
r17967r17968
361361   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
362362   MCFG_SCREEN_SIZE(64*8, 32*8)
363363   MCFG_SCREEN_VISIBLE_AREA(7*8, 55*8-1, 1*8, 31*8-1) //384x240,raw guess
364   MCFG_SCREEN_UPDATE_STATIC(spool99)
364   MCFG_SCREEN_UPDATE_DRIVER(spool99_state, screen_update_spool99)
365365
366366   MCFG_PALETTE_LENGTH(0x200)
367367
trunk/src/mame/drivers/simpl156.c
r17967r17968
435435   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(800))
436436   MCFG_SCREEN_SIZE(64*8, 32*8)
437437   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
438   MCFG_SCREEN_UPDATE_STATIC(simpl156)
438   MCFG_SCREEN_UPDATE_DRIVER(simpl156_state, screen_update_simpl156)
439439
440440   MCFG_PALETTE_LENGTH(4096)
441441   MCFG_GFXDECODE(simpl156)
trunk/src/mame/drivers/lgp.c
r17967r17968
8686   DECLARE_WRITE8_MEMBER(ldp_write);
8787   DECLARE_DRIVER_INIT(lgp);
8888   virtual void machine_start();
89   UINT32 screen_update_lgp(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
8990};
9091
9192
r17967r17968
9596
9697
9798/* VIDEO GOODS */
98static SCREEN_UPDATE_RGB32( lgp )
99UINT32 lgp_state::screen_update_lgp(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
99100{
100   lgp_state *state = screen.machine().driver_data<lgp_state>();
101101   int charx, chary;
102102
103103   /* make color 0 transparent */
r17967r17968
116116         /* Somewhere there's a flag that offsets the tilemap by 0x100*x */
117117         /* Palette is likely set somewhere as well (tile_control_ram?) */
118118         drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0],
119               state->m_tile_ram[current_screen_character],
119               m_tile_ram[current_screen_character],
120120               0,
121121               0, 0, charx*8, chary*8, 0);
122122      }
r17967r17968
369369
370370
371371   MCFG_LASERDISC_LDV1000_ADD("laserdisc")
372   MCFG_LASERDISC_OVERLAY_STATIC(256, 256, lgp)
372   MCFG_LASERDISC_OVERLAY_DRIVER(256, 256, lgp_state, screen_update_lgp)
373373
374374   /* video hardware */
375375   MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc")
trunk/src/mame/drivers/deadang.c
r17967r17968
253253   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
254254   MCFG_SCREEN_SIZE(32*8, 32*8)
255255   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
256   MCFG_SCREEN_UPDATE_STATIC(deadang)
256   MCFG_SCREEN_UPDATE_DRIVER(deadang_state, screen_update_deadang)
257257
258258   MCFG_GFXDECODE(deadang)
259259   MCFG_PALETTE_LENGTH(2048)
trunk/src/mame/drivers/twincobr.c
r17967r17968
587587
588588   MCFG_SCREEN_ADD("screen", RASTER)
589589   MCFG_SCREEN_RAW_PARAMS(XTAL_28MHz/4, 446, 0, 320, 286, 0, 240)
590   MCFG_SCREEN_UPDATE_STATIC(toaplan0)
590   MCFG_SCREEN_UPDATE_DRIVER(twincobr_state, screen_update_toaplan0)
591591   MCFG_SCREEN_VBLANK_DEVICE("spriteram16", buffered_spriteram16_device, vblank_copy_rising)
592592
593593   MCFG_GFXDECODE(twincobr)
trunk/src/mame/drivers/hexion.c
r17967r17968
235235   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
236236   MCFG_SCREEN_SIZE(64*8, 36*8)
237237   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
238   MCFG_SCREEN_UPDATE_STATIC(hexion)
238   MCFG_SCREEN_UPDATE_DRIVER(hexion_state, screen_update_hexion)
239239
240240   MCFG_GFXDECODE(hexion)
241241   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/battlnts.c
r17967r17968
260260   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
261261   MCFG_SCREEN_SIZE(32*8, 32*8)
262262   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
263   MCFG_SCREEN_UPDATE_STATIC(battlnts)
263   MCFG_SCREEN_UPDATE_DRIVER(battlnts_state, screen_update_battlnts)
264264
265265   MCFG_GFXDECODE(battlnts)
266266   MCFG_PALETTE_LENGTH(128)
trunk/src/mame/drivers/multfish.c
r17967r17968
239239   virtual void machine_reset();
240240   virtual void video_start();
241241   DECLARE_MACHINE_RESET(island2a);
242   UINT32 screen_update_multfish(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
242243};
243244
244245TILE_GET_INFO_MEMBER(multfish_state::get_multfish_tile_info)
r17967r17968
280281   m_reel_tilemap->set_scroll_cols(64);
281282}
282283
283static SCREEN_UPDATE_IND16(multfish)
284UINT32 multfish_state::screen_update_multfish(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
284285{
285   multfish_state *state = screen.machine().driver_data<multfish_state>();
286286   int i;
287287
288288   bitmap.fill(get_black_pen(screen.machine()), cliprect);
289289
290   if (!state->m_disp_enable) return 0;
290   if (!m_disp_enable) return 0;
291291
292292   /* Draw lower part of static tilemap (low pri tiles) */
293   state->m_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1),0);
293   m_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1),0);
294294
295295   /* Setup the column scroll and draw the reels */
296296   for (i=0;i<64;i++)
297297   {
298      int colscroll = (state->m_vid[i*2] | state->m_vid[i*2+1] << 8);
299      state->m_reel_tilemap->set_scrolly(i, colscroll );
298      int colscroll = (m_vid[i*2] | m_vid[i*2+1] << 8);
299      m_reel_tilemap->set_scrolly(i, colscroll );
300300   }
301   state->m_reel_tilemap->draw(bitmap, cliprect, 0,0);
301   m_reel_tilemap->draw(bitmap, cliprect, 0,0);
302302
303303   /* Draw upper part of static tilemap (high pri tiles) */
304   state->m_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(0),0);
304   m_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(0),0);
305305
306306   return 0;
307307}
r17967r17968
11081108   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
11091109   MCFG_SCREEN_SIZE(64*16, 32*16)
11101110   MCFG_SCREEN_VISIBLE_AREA(17*16, 1024-16*7-1, 1*16, 32*16-1*16-1)
1111   MCFG_SCREEN_UPDATE_STATIC(multfish)
1111   MCFG_SCREEN_UPDATE_DRIVER(multfish_state, screen_update_multfish)
11121112   MCFG_GFXDECODE(multfish)
11131113   MCFG_PALETTE_LENGTH(0x1000)
11141114
trunk/src/mame/drivers/galpani2.c
r17967r17968
597597   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
598598   MCFG_SCREEN_SIZE(320, 256)
599599   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-1-16)
600   MCFG_SCREEN_UPDATE_STATIC(galpani2)
600   MCFG_SCREEN_UPDATE_DRIVER(galpani2_state, screen_update_galpani2)
601601
602602   MCFG_GFXDECODE(galpani2)
603603   MCFG_PALETTE_LENGTH(0x4000 + 0x200 + 0x8000)   // sprites, bg8, bg15
trunk/src/mame/drivers/sprint2.c
r17967r17968
507507   MCFG_SCREEN_REFRESH_RATE(60)
508508   MCFG_SCREEN_SIZE(512, 262)
509509   MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 223)
510   MCFG_SCREEN_UPDATE_STATIC(sprint2)
511   MCFG_SCREEN_VBLANK_STATIC(sprint2)
510   MCFG_SCREEN_UPDATE_DRIVER(sprint2_state, screen_update_sprint2)
511   MCFG_SCREEN_VBLANK_DRIVER(sprint2_state, screen_eof_sprint2)
512512
513513   MCFG_GFXDECODE(sprint2)
514514   MCFG_PALETTE_LENGTH(12)
trunk/src/mame/drivers/dragrace.c
r17967r17968
343343   MCFG_SCREEN_REFRESH_RATE(60)
344344   MCFG_SCREEN_SIZE(256, 262)
345345   MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239)
346   MCFG_SCREEN_UPDATE_STATIC(dragrace)
346   MCFG_SCREEN_UPDATE_DRIVER(dragrace_state, screen_update_dragrace)
347347
348348   MCFG_GFXDECODE(dragrace)
349349   MCFG_PALETTE_LENGTH(16)
trunk/src/mame/drivers/seibuspi.c
r17967r17968
18701870   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
18711871   MCFG_SCREEN_SIZE(64*8, 32*8)
18721872   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1)
1873   MCFG_SCREEN_UPDATE_STATIC(spi)
1873   MCFG_SCREEN_UPDATE_DRIVER(seibuspi_state, screen_update_spi)
18741874
18751875   MCFG_GFXDECODE(spi)
18761876   MCFG_PALETTE_LENGTH(6144)
r17967r17968
22102210   MCFG_PALETTE_LENGTH(6144)
22112211
22122212   MCFG_VIDEO_START_OVERRIDE(seibuspi_state,spi)
2213   MCFG_SCREEN_UPDATE_STATIC(spi)
2213   MCFG_SCREEN_UPDATE_DRIVER(seibuspi_state, screen_update_spi)
22142214
22152215   MCFG_SPEAKER_STANDARD_MONO("mono")
22162216
r17967r17968
22652265   MCFG_PALETTE_LENGTH(8192)
22662266
22672267   MCFG_VIDEO_START_OVERRIDE(seibuspi_state,sys386f2)
2268   MCFG_SCREEN_UPDATE_STATIC(sys386f2)
2268   MCFG_SCREEN_UPDATE_DRIVER(seibuspi_state, screen_update_sys386f2)
22692269
22702270   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
22712271
trunk/src/mame/drivers/sauro.c
r17967r17968
407407
408408   MCFG_VIDEO_START_OVERRIDE(sauro_state,trckydoc)
409409   MCFG_SCREEN_MODIFY("screen")
410   MCFG_SCREEN_UPDATE_STATIC(trckydoc)
410   MCFG_SCREEN_UPDATE_DRIVER(sauro_state, screen_update_trckydoc)
411411
412412MACHINE_CONFIG_END
413413
r17967r17968
425425
426426   MCFG_VIDEO_START_OVERRIDE(sauro_state,sauro)
427427   MCFG_SCREEN_MODIFY("screen")
428   MCFG_SCREEN_UPDATE_STATIC(sauro)
428   MCFG_SCREEN_UPDATE_DRIVER(sauro_state, screen_update_sauro)
429429
430430   MCFG_SOUND_ADD("speech", SP0256, 3120000)
431431   MCFG_SOUND_CONFIG(sauro_sp256)
trunk/src/mame/drivers/timetrv.c
r17967r17968
4242   DECLARE_READ8_MEMBER(in_r);
4343   DECLARE_READ8_MEMBER(ld_r);
4444   virtual void video_start();
45   UINT32 screen_update_timetrv(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
4546};
4647
4748
r17967r17968
5152
5253}
5354
54static SCREEN_UPDATE_RGB32( timetrv )
55UINT32 timetrv_state::screen_update_timetrv(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
5556{
56   timetrv_state *state = screen.machine().driver_data<timetrv_state>();
57   popmessage("%s%s",reinterpret_cast<char *>(state->m_led_vram_lo.target()),reinterpret_cast<char *>(state->m_led_vram_hi.target()));
57   popmessage("%s%s",reinterpret_cast<char *>(m_led_vram_lo.target()),reinterpret_cast<char *>(m_led_vram_hi.target()));
5858   return 0;
5959}
6060
r17967r17968
159159   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
160160   MCFG_SCREEN_SIZE(512, 512)
161161   MCFG_SCREEN_VISIBLE_AREA(0*8, 512-1, 0*8, 512-1)
162   MCFG_SCREEN_UPDATE_STATIC(timetrv)
162   MCFG_SCREEN_UPDATE_DRIVER(timetrv_state, screen_update_timetrv)
163163
164164   MCFG_PALETTE_LENGTH(512)
165165
trunk/src/mame/drivers/drmicro.c
r17967r17968
274274   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
275275   MCFG_SCREEN_SIZE(32*8, 32*8)
276276   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
277   MCFG_SCREEN_UPDATE_STATIC(drmicro)
277   MCFG_SCREEN_UPDATE_DRIVER(drmicro_state, screen_update_drmicro)
278278
279279   MCFG_GFXDECODE(drmicro)
280280   MCFG_PALETTE_LENGTH(512)
trunk/src/mame/drivers/system1.c
r17967r17968
21632163
21642164   MCFG_SCREEN_ADD("screen", RASTER)
21652165   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 640, 0, 512, 260, 0, 224)
2166   MCFG_SCREEN_UPDATE_STATIC(system1)
2166   MCFG_SCREEN_UPDATE_DRIVER(system1_state, screen_update_system1)
21672167
21682168   MCFG_GFXDECODE(system1)
21692169   MCFG_PALETTE_LENGTH(2048)
r17967r17968
22522252   /* video hardware */
22532253   MCFG_VIDEO_START_OVERRIDE(system1_state,system2)
22542254   MCFG_SCREEN_MODIFY("screen")
2255   MCFG_SCREEN_UPDATE_STATIC(system2)
2255   MCFG_SCREEN_UPDATE_DRIVER(system1_state, screen_update_system2)
22562256MACHINE_CONFIG_END
22572257
22582258static MACHINE_CONFIG_DERIVED( sys2m, sys2 )
r17967r17968
22642264
22652265   /* video hardware */
22662266   MCFG_SCREEN_MODIFY("screen")
2267   MCFG_SCREEN_UPDATE_STATIC(system2_rowscroll)
2267   MCFG_SCREEN_UPDATE_DRIVER(system1_state, screen_update_system2_rowscroll)
22682268MACHINE_CONFIG_END
22692269
22702270static MACHINE_CONFIG_DERIVED( sys2rowm, sys2row )
trunk/src/mame/drivers/quizo.c
r17967r17968
4242   DECLARE_WRITE8_MEMBER(port60_w);
4343   DECLARE_DRIVER_INIT(quizo);
4444   virtual void palette_init();
45   UINT32 screen_update_quizo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4546};
4647
4748
r17967r17968
7980   }
8081}
8182
82static SCREEN_UPDATE_IND16( quizo )
83UINT32 quizo_state::screen_update_quizo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
8384{
84   quizo_state *state = screen.machine().driver_data<quizo_state>();
85   UINT8 *videoram = state->m_videoram;
85   UINT8 *videoram = m_videoram;
8686   int x,y;
8787   for(y=0;y<200;y++)
8888   {
r17967r17968
216216   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
217217   MCFG_SCREEN_SIZE(320, 200)
218218   MCFG_SCREEN_VISIBLE_AREA(0*8, 320-1, 0*8, 200-1)
219   MCFG_SCREEN_UPDATE_STATIC(quizo)
219   MCFG_SCREEN_UPDATE_DRIVER(quizo_state, screen_update_quizo)
220220
221221   MCFG_PALETTE_LENGTH(16)
222222
trunk/src/mame/drivers/niyanpai.c
r17967r17968
960960   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
961961   MCFG_SCREEN_SIZE(1024, 512)
962962   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 240-1)
963   MCFG_SCREEN_UPDATE_STATIC(niyanpai)
963   MCFG_SCREEN_UPDATE_DRIVER(niyanpai_state, screen_update_niyanpai)
964964
965965   MCFG_PALETTE_LENGTH(256*3)
966966
trunk/src/mame/drivers/tmmjprd.c
r17967r17968
6767   DECLARE_WRITE32_MEMBER(tmmjprd_brt_2_w);
6868   DECLARE_WRITE32_MEMBER(tmmjprd_eeprom_write);
6969   virtual void video_start();
70   UINT32 screen_update_tmmjprd_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
71   UINT32 screen_update_tmmjprd_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7072};
7173
7274
r17967r17968
289291
290292}
291293
292static SCREEN_UPDATE_IND16( tmmjprd_left )
294UINT32 tmmjprd_state::screen_update_tmmjprd_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
293295{
294   tmmjprd_state *state = screen.machine().driver_data<tmmjprd_state>();
295   UINT8* gfxroms = state->memregion("gfx2")->base();
296   UINT8* gfxroms = memregion("gfx2")->base();
296297
297298   bitmap.fill(get_black_pen(screen.machine()), cliprect);
298299
299   ttmjprd_draw_tilemap( screen.machine(), bitmap, cliprect, state->m_tilemap_ram[3], state->m_tilemap_regs[3], gfxroms );
300   ttmjprd_draw_tilemap( screen.machine(), bitmap, cliprect, m_tilemap_ram[3], m_tilemap_regs[3], gfxroms );
300301   draw_sprites(screen.machine(),bitmap,cliprect, 1);
301   ttmjprd_draw_tilemap( screen.machine(), bitmap, cliprect, state->m_tilemap_ram[2], state->m_tilemap_regs[2], gfxroms );
302   ttmjprd_draw_tilemap( screen.machine(), bitmap, cliprect, m_tilemap_ram[2], m_tilemap_regs[2], gfxroms );
302303
303304   /*
304305    popmessage("%08x %08x %08x %08x %08x %08x",
305    state->m_tilemap_regs[2][0],
306    state->m_tilemap_regs[2][1],
307    state->m_tilemap_regs[2][2],
308    state->m_tilemap_regs[2][3],
309    state->m_tilemap_regs[2][4],
310    state->m_tilemap_regs[2][5]);
306    m_tilemap_regs[2][0],
307    m_tilemap_regs[2][1],
308    m_tilemap_regs[2][2],
309    m_tilemap_regs[2][3],
310    m_tilemap_regs[2][4],
311    m_tilemap_regs[2][5]);
311312    */
312313
313314/*
314315    popmessage("%08x %08x %08x %08x %08x %08x %08x",
315    state->m_spriteregs[0],
316    state->m_spriteregs[1],
317    state->m_spriteregs[2],
318    state->m_spriteregs[3],
319    state->m_spriteregs[4],
320    state->m_spriteregs[5],
321    state->m_spriteregs[6]);
316    m_spriteregs[0],
317    m_spriteregs[1],
318    m_spriteregs[2],
319    m_spriteregs[3],
320    m_spriteregs[4],
321    m_spriteregs[5],
322    m_spriteregs[6]);
322323*/
323324
324325   return 0;
325326}
326327
327static SCREEN_UPDATE_IND16( tmmjprd_right )
328UINT32 tmmjprd_state::screen_update_tmmjprd_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
328329{
329   tmmjprd_state *state = screen.machine().driver_data<tmmjprd_state>();
330   UINT8* gfxroms = state->memregion("gfx2")->base();
330   UINT8* gfxroms = memregion("gfx2")->base();
331331
332332   bitmap.fill(get_black_pen(screen.machine()), cliprect);
333333
334   ttmjprd_draw_tilemap( screen.machine(), bitmap, cliprect, state->m_tilemap_ram[1], state->m_tilemap_regs[1], gfxroms );
334   ttmjprd_draw_tilemap( screen.machine(), bitmap, cliprect, m_tilemap_ram[1], m_tilemap_regs[1], gfxroms );
335335   draw_sprites(screen.machine(),bitmap,cliprect, 0);
336   ttmjprd_draw_tilemap( screen.machine(), bitmap, cliprect, state->m_tilemap_ram[0], state->m_tilemap_regs[0], gfxroms );
336   ttmjprd_draw_tilemap( screen.machine(), bitmap, cliprect, m_tilemap_ram[0], m_tilemap_regs[0], gfxroms );
337337
338338   return 0;
339339}
r17967r17968
770770   MCFG_SCREEN_SIZE(64*16, 64*16)
771771   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
772772   //MCFG_SCREEN_VISIBLE_AREA(0*8, 64*16-1, 0*8, 64*16-1)
773   MCFG_SCREEN_UPDATE_STATIC(tmmjprd_left)
773   MCFG_SCREEN_UPDATE_DRIVER(tmmjprd_state, screen_update_tmmjprd_left)
774774
775775   MCFG_SCREEN_ADD("rscreen", RASTER)
776776   MCFG_SCREEN_REFRESH_RATE(60)
r17967r17968
778778   MCFG_SCREEN_SIZE(64*16, 64*16)
779779   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
780780   //MCFG_SCREEN_VISIBLE_AREA(0*8, 64*16-1, 0*8, 64*16-1)
781   MCFG_SCREEN_UPDATE_STATIC(tmmjprd_right)
781   MCFG_SCREEN_UPDATE_DRIVER(tmmjprd_state, screen_update_tmmjprd_right)
782782
783783
784784   /* sound hardware */
trunk/src/mame/drivers/suprnova.c
r17967r17968
777777   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
778778   MCFG_SCREEN_SIZE(340,262)
779779   MCFG_SCREEN_VISIBLE_AREA(0,319,0,239)
780   MCFG_SCREEN_UPDATE_STATIC(skns)
781   MCFG_SCREEN_VBLANK_STATIC(skns)
780   MCFG_SCREEN_UPDATE_DRIVER(skns_state, screen_update_skns)
781   MCFG_SCREEN_VBLANK_DRIVER(skns_state, screen_eof_skns)
782782
783783   MCFG_PALETTE_LENGTH(32768)
784784   MCFG_GFXDECODE(skns_bg)
trunk/src/mame/drivers/witch.c
r17967r17968
238238   TILE_GET_INFO_MEMBER(get_gfx0a_tile_info);
239239   TILE_GET_INFO_MEMBER(get_gfx1_tile_info);
240240   virtual void video_start();
241   UINT32 screen_update_witch(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
241242};
242243
243244
r17967r17968
764765
765766}
766767
767static SCREEN_UPDATE_IND16(witch)
768UINT32 witch_state::screen_update_witch(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
768769{
769   witch_state *state = screen.machine().driver_data<witch_state>();
770   state->m_gfx1_tilemap->set_scrollx(0, state->m_scrollx-7 ); //offset to have it aligned with the sprites
771   state->m_gfx1_tilemap->set_scrolly(0, state->m_scrolly+8 );
770   m_gfx1_tilemap->set_scrollx(0, m_scrollx-7 ); //offset to have it aligned with the sprites
771   m_gfx1_tilemap->set_scrolly(0, m_scrolly+8 );
772772
773773
774774
775   state->m_gfx1_tilemap->draw(bitmap, cliprect, 0,0);
776   state->m_gfx0a_tilemap->draw(bitmap, cliprect, 0,0);
775   m_gfx1_tilemap->draw(bitmap, cliprect, 0,0);
776   m_gfx0a_tilemap->draw(bitmap, cliprect, 0,0);
777777   draw_sprites(screen.machine(), bitmap, cliprect);
778   state->m_gfx0b_tilemap->draw(bitmap, cliprect, 0,0);
778   m_gfx0b_tilemap->draw(bitmap, cliprect, 0,0);
779779   return 0;
780780}
781781
r17967r17968
808808   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
809809   MCFG_SCREEN_SIZE(256, 256)
810810   MCFG_SCREEN_VISIBLE_AREA(8, 256-1-8, 8*4, 256-8*4-1)
811   MCFG_SCREEN_UPDATE_STATIC(witch)
811   MCFG_SCREEN_UPDATE_DRIVER(witch_state, screen_update_witch)
812812
813813   MCFG_GFXDECODE(witch)
814814   MCFG_PALETTE_LENGTH(0x800)
trunk/src/mame/drivers/namcofl.c
r17967r17968
604604   MCFG_SCREEN_REFRESH_RATE(60)
605605   MCFG_SCREEN_SIZE(NAMCOFL_HTOTAL, NAMCOFL_VTOTAL)
606606   MCFG_SCREEN_VISIBLE_AREA(0, NAMCOFL_HBSTART-1, 0, NAMCOFL_VBSTART-1)
607   MCFG_SCREEN_UPDATE_STATIC(namcofl)
607   MCFG_SCREEN_UPDATE_DRIVER(namcofl_state, screen_update_namcofl)
608608
609609   MCFG_PALETTE_LENGTH(8192)
610610
trunk/src/mame/drivers/luckgrln.c
r17967r17968
150150   TILE_GET_INFO_MEMBER(get_luckgrln_reel3_tile_info);
151151   TILE_GET_INFO_MEMBER(get_luckgrln_reel4_tile_info);
152152   virtual void video_start();
153   UINT32 screen_update_luckgrln(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
153154};
154155
155156
r17967r17968
287288   m_reel4_tilemap->set_transparent_pen(0 );
288289}
289290
290static SCREEN_UPDATE_IND16(luckgrln)
291UINT32 luckgrln_state::screen_update_luckgrln(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
291292{
292   luckgrln_state *state = screen.machine().driver_data<luckgrln_state>();
293293   int y,x;
294294   int count = 0;
295295   const rectangle &visarea = screen.visible_area();
r17967r17968
301301
302302   for (i= 0;i < 64;i++)
303303   {
304      state->m_reel1_tilemap->set_scrolly(i, state->m_reel1_scroll[i]);
305      state->m_reel2_tilemap->set_scrolly(i, state->m_reel2_scroll[i]);
306      state->m_reel3_tilemap->set_scrolly(i, state->m_reel3_scroll[i]);
307      state->m_reel4_tilemap->set_scrolly(i, state->m_reel4_scroll[i]);
304      m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i]);
305      m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i]);
306      m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i]);
307      m_reel4_tilemap->set_scrolly(i, m_reel4_scroll[i]);
308308   }
309309
310310
r17967r17968
318318
319319      for (x=0;x<64;x++)
320320      {
321         UINT16 tile = (state->m_luck_vram1[count] & 0xff);
322         UINT16 tile_high = (state->m_luck_vram2[count]);
323         UINT16 tileattr = (state->m_luck_vram3[count]);
321         UINT16 tile = (m_luck_vram1[count] & 0xff);
322         UINT16 tile_high = (m_luck_vram2[count]);
323         UINT16 tileattr = (m_luck_vram3[count]);
324324         UINT8 col = 0;
325325         UINT8 region = 0;
326326         UINT8 bgenable;
r17967r17968
332332         if (clip.max_x>visarea.max_x) clip.max_x = visarea.max_x;
333333
334334         /*
335              state->m_luck_vram1  tttt tttt   (t = low tile bits)
336              state->m_luck_vram2  tttt ppp?   (t = high tile bits) (p = pal select)?
335              m_luck_vram1  tttt tttt   (t = low tile bits)
336              m_luck_vram2  tttt ppp?   (t = high tile bits) (p = pal select)?
337337
338338
339339             */
r17967r17968
344344         // ?? low bit is used too
345345         col = tile_high&0xf;
346346
347         // --ss fbt-   state->m_luck_vram3
347         // --ss fbt-   m_luck_vram3
348348         // - = unused?
349349         // s = reel layer select for this 8x8 region
350350         // f = fg enabled for this 8x8 region (or priority?)
r17967r17968
356356#if 0 // treat bit as fg enable
357357         if (tileattr&0x04)
358358         {
359            if (bgenable==0) state->m_reel1_tilemap->draw(bitmap, clip, 0, 0);
360            if (bgenable==1) state->m_reel2_tilemap->draw(bitmap, clip, 0, 0);
361            if (bgenable==2) state->m_reel3_tilemap->draw(bitmap, clip, 0, 0);
362            if (bgenable==3) state->m_reel4_tilemap->draw(bitmap, clip, 0, 0);
359            if (bgenable==0) m_reel1_tilemap->draw(bitmap, clip, 0, 0);
360            if (bgenable==1) m_reel2_tilemap->draw(bitmap, clip, 0, 0);
361            if (bgenable==2) m_reel3_tilemap->draw(bitmap, clip, 0, 0);
362            if (bgenable==3) m_reel4_tilemap->draw(bitmap, clip, 0, 0);
363363         }
364364
365365         if (tileattr&0x08) drawgfx_transpen(bitmap,clip,screen.machine().gfx[region],tile,col,0,0,x*8,y*8, 0);
r17967r17968
369369
370370         if (tileattr&0x04)
371371         {
372            if (bgenable==0) state->m_reel1_tilemap->draw(bitmap, clip, 0, 0);
373            if (bgenable==1) state->m_reel2_tilemap->draw(bitmap, clip, 0, 0);
374            if (bgenable==2) state->m_reel3_tilemap->draw(bitmap, clip, 0, 0);
375            if (bgenable==3) state->m_reel4_tilemap->draw(bitmap, clip, 0, 0);
372            if (bgenable==0) m_reel1_tilemap->draw(bitmap, clip, 0, 0);
373            if (bgenable==1) m_reel2_tilemap->draw(bitmap, clip, 0, 0);
374            if (bgenable==2) m_reel3_tilemap->draw(bitmap, clip, 0, 0);
375            if (bgenable==3) m_reel4_tilemap->draw(bitmap, clip, 0, 0);
376376         }
377377
378378         if ((tileattr&0x08)) drawgfx_transpen(bitmap,clip,screen.machine().gfx[region],tile,col,0,0,x*8,y*8, 0);
r17967r17968
10061006   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
10071007   MCFG_SCREEN_SIZE(512, 256)
10081008   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
1009   MCFG_SCREEN_UPDATE_STATIC(luckgrln)
1009   MCFG_SCREEN_UPDATE_DRIVER(luckgrln_state, screen_update_luckgrln)
10101010
10111011   MCFG_GFXDECODE(luckgrln)
10121012   MCFG_PALETTE_LENGTH(0x8000)
trunk/src/mame/drivers/sigmab98.c
r17967r17968
175175   DECLARE_DRIVER_INIT(ucytokyu);
176176   DECLARE_DRIVER_INIT(haekaka);
177177   DECLARE_MACHINE_RESET(sammymdl);
178   UINT32 screen_update_sigmab98(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
179   void screen_eof_sammymdl(screen_device &screen, bool state);
178180};
179181
180182
r17967r17968
302304   }
303305}
304306
305static SCREEN_UPDATE_IND16(sigmab98)
307UINT32 sigmab98_state::screen_update_sigmab98(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
306308{
307309   int layers_ctrl = -1;
308310
r17967r17968
680682   m_vblank = (m_vblank & ~0x03) | (data & 0x03);
681683}
682684
683static SCREEN_VBLANK( sammymdl )
685void sigmab98_state::screen_eof_sammymdl(screen_device &screen, bool state)
684686{
685687   // rising edge
686   if (vblank_on)
688   if (state)
687689   {
688      sigmab98_state *state = screen.machine().driver_data<sigmab98_state>();
689      state->m_vblank &= ~0x01;
690      m_vblank &= ~0x01;
690691   }
691692}
692693
r17967r17968
17101711   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)   // game reads vblank state
17111712   MCFG_SCREEN_SIZE(0x200, 0x200)
17121713   MCFG_SCREEN_VISIBLE_AREA(0,0x140-1, 0,0xf0-1)
1713   MCFG_SCREEN_UPDATE_STATIC(sigmab98)
1714   MCFG_SCREEN_UPDATE_DRIVER(sigmab98_state, screen_update_sigmab98)
17141715
17151716   MCFG_GFXDECODE(sigmab98)
17161717   MCFG_PALETTE_LENGTH(0x100)
r17967r17968
17641765   MCFG_SCREEN_REFRESH_RATE(60)
17651766   MCFG_SCREEN_SIZE(0x140, 0x100)
17661767   MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xf0-1)
1767   MCFG_SCREEN_UPDATE_STATIC(sigmab98)
1768   MCFG_SCREEN_VBLANK_STATIC(sammymdl)
1768   MCFG_SCREEN_UPDATE_DRIVER(sigmab98_state, screen_update_sigmab98)
1769   MCFG_SCREEN_VBLANK_DRIVER(sigmab98_state, screen_eof_sammymdl)
17691770
17701771   MCFG_GFXDECODE(sigmab98)
17711772   MCFG_PALETTE_LENGTH(0x100)
trunk/src/mame/drivers/dynax.c
r17967r17968
43014301   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
43024302   MCFG_SCREEN_SIZE(512, 256)
43034303   MCFG_SCREEN_VISIBLE_AREA(0, 512-1-4, 16+8, 255-8)
4304   MCFG_SCREEN_UPDATE_STATIC(hanamai)
4304   MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_hanamai)
43054305
43064306   MCFG_PALETTE_LENGTH(512)
43074307
r17967r17968
43584358   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
43594359   MCFG_SCREEN_SIZE(512, 256+22)
43604360   MCFG_SCREEN_VISIBLE_AREA(0, 512-1-4, 16, 256-1)
4361   MCFG_SCREEN_UPDATE_STATIC(hnoridur)
4361   MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_hnoridur)
43624362
43634363   MCFG_PALETTE_LENGTH(16*256)
43644364
r17967r17968
44034403   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
44044404   MCFG_SCREEN_SIZE(512, 256)
44054405   MCFG_SCREEN_VISIBLE_AREA(0, 512-1-4, 16, 256-1)
4406   MCFG_SCREEN_UPDATE_STATIC(hnoridur)
4406   MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_hnoridur)
44074407
44084408   MCFG_PALETTE_LENGTH(16*256)
44094409
r17967r17968
44614461   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
44624462   MCFG_SCREEN_SIZE(512, 256)
44634463   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 256-1)
4464   MCFG_SCREEN_UPDATE_STATIC(sprtmtch)
4464   MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_sprtmtch)
44654465
44664466   MCFG_PALETTE_LENGTH(512)
44674467
r17967r17968
45034503   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
45044504   MCFG_SCREEN_SIZE(256, 256)
45054505   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-1)
4506   MCFG_SCREEN_UPDATE_STATIC(mjdialq2)
4506   MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_mjdialq2)
45074507
45084508   MCFG_PALETTE_LENGTH(512)
45094509
r17967r17968
46674667   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
46684668   MCFG_SCREEN_SIZE(512, 256)
46694669   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 256-1)
4670   MCFG_SCREEN_UPDATE_STATIC(jantouki_top)
4670   MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_jantouki_top)
46714671
46724672   MCFG_SCREEN_ADD("bottom", RASTER)
46734673   MCFG_SCREEN_REFRESH_RATE(60)
46744674   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
46754675   MCFG_SCREEN_SIZE(512, 256)
46764676   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 256-1)
4677   MCFG_SCREEN_UPDATE_STATIC(jantouki_bottom)
4677   MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_jantouki_bottom)
46784678
46794679   MCFG_PALETTE_INIT_OVERRIDE(dynax_state,sprtmtch)         // static palette
46804680   MCFG_VIDEO_START_OVERRIDE(dynax_state,jantouki)
r17967r17968
48404840   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
48414841   MCFG_SCREEN_SIZE(512, 256)
48424842   MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 0+8, 256-1-8)
4843   MCFG_SCREEN_UPDATE_STATIC(htengoku)
4843   MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_htengoku)
48444844
48454845   MCFG_PALETTE_LENGTH(16*256)
48464846
r17967r17968
49234923   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
49244924   MCFG_SCREEN_SIZE(512, 256+22)
49254925   MCFG_SCREEN_VISIBLE_AREA(4, 512-1, 4, 255-8-4)   // hide first 4 horizontal pixels (see scroll of gal 4 in test mode)
4926   MCFG_SCREEN_UPDATE_STATIC(hnoridur)
4926   MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_hnoridur)
49274927
49284928   MCFG_PALETTE_LENGTH(16*256)
49294929
r17967r17968
49924992   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
49934993   MCFG_SCREEN_SIZE(256, 256)
49944994   MCFG_SCREEN_VISIBLE_AREA(2, 256-1, 16, 256-1)
4995   MCFG_SCREEN_UPDATE_STATIC(mjdialq2)
4995   MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_mjdialq2)
49964996
49974997   MCFG_PALETTE_LENGTH(512)
49984998   MCFG_PALETTE_INIT_OVERRIDE(dynax_state,sprtmtch)         // static palette
trunk/src/mame/drivers/shootout.c
r17967r17968
276276   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
277277   MCFG_SCREEN_SIZE(32*8, 32*8)
278278   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
279   MCFG_SCREEN_UPDATE_STATIC(shootout)
279   MCFG_SCREEN_UPDATE_DRIVER(shootout_state, screen_update_shootout)
280280
281281   MCFG_GFXDECODE(shootout)
282282   MCFG_PALETTE_LENGTH(256)
r17967r17968
303303   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
304304   MCFG_SCREEN_SIZE(32*8, 32*8)
305305   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
306   MCFG_SCREEN_UPDATE_STATIC(shootouj)
306   MCFG_SCREEN_UPDATE_DRIVER(shootout_state, screen_update_shootouj)
307307
308308   MCFG_GFXDECODE(shootout)
309309   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/volfied.c
r17967r17968
275275   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
276276   MCFG_SCREEN_SIZE(320, 256)
277277   MCFG_SCREEN_VISIBLE_AREA(0, 319, 8, 247)
278   MCFG_SCREEN_UPDATE_STATIC(volfied)
278   MCFG_SCREEN_UPDATE_DRIVER(volfied_state, screen_update_volfied)
279279
280280   MCFG_GFXDECODE(volfied)
281281   MCFG_PALETTE_LENGTH(8192)
trunk/src/mame/drivers/dribling.c
r17967r17968
319319   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
320320   MCFG_SCREEN_SIZE(256, 256)
321321   MCFG_SCREEN_VISIBLE_AREA(0, 255, 40, 255)
322   MCFG_SCREEN_UPDATE_STATIC(dribling)
322   MCFG_SCREEN_UPDATE_DRIVER(dribling_state, screen_update_dribling)
323323
324324   MCFG_PALETTE_LENGTH(256)
325325
trunk/src/mame/drivers/itech32.c
r17967r17968
16861686
16871687   MCFG_SCREEN_ADD("screen", RASTER)
16881688   MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK, 508, 0, 384, 262, 0, 256)
1689   MCFG_SCREEN_UPDATE_STATIC(itech32)
1689   MCFG_SCREEN_UPDATE_DRIVER(itech32_state, screen_update_itech32)
16901690
16911691
16921692   /* sound hardware */
trunk/src/mame/drivers/mexico86.c
r17967r17968
496496   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)  /* frames per second, vblank duration */)
497497   MCFG_SCREEN_SIZE(32*8, 32*8)
498498   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
499   MCFG_SCREEN_UPDATE_STATIC(mexico86)
499   MCFG_SCREEN_UPDATE_DRIVER(mexico86_state, screen_update_mexico86)
500500
501501   MCFG_GFXDECODE(mexico86)
502502   MCFG_PALETTE_LENGTH(256)
r17967r17968
523523
524524   /* video hardware */
525525   MCFG_SCREEN_MODIFY("screen")
526   MCFG_SCREEN_UPDATE_STATIC(kikikai)
526   MCFG_SCREEN_UPDATE_DRIVER(mexico86_state, screen_update_kikikai)
527527MACHINE_CONFIG_END
528528
529529
r17967r17968
538538
539539   /* video hardware */
540540   MCFG_SCREEN_MODIFY("screen")
541   MCFG_SCREEN_UPDATE_STATIC(kikikai)
541   MCFG_SCREEN_UPDATE_DRIVER(mexico86_state, screen_update_kikikai)
542542MACHINE_CONFIG_END
543543
544544
trunk/src/mame/drivers/chaknpop.c
r17967r17968
384384   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
385385   MCFG_SCREEN_SIZE(32*8, 32*8)
386386   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
387   MCFG_SCREEN_UPDATE_STATIC(chaknpop)
387   MCFG_SCREEN_UPDATE_DRIVER(chaknpop_state, screen_update_chaknpop)
388388
389389   MCFG_GFXDECODE(chaknpop)
390390   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/sspeedr.c
r17967r17968
198198   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(16 * 1000000 / 15680))
199199   MCFG_SCREEN_SIZE(376, 256)
200200   MCFG_SCREEN_VISIBLE_AREA(0, 375, 0, 247)
201   MCFG_SCREEN_UPDATE_STATIC(sspeedr)
202   MCFG_SCREEN_VBLANK_STATIC(sspeedr)
201   MCFG_SCREEN_UPDATE_DRIVER(sspeedr_state, screen_update_sspeedr)
202   MCFG_SCREEN_VBLANK_DRIVER(sspeedr_state, screen_eof_sspeedr)
203203
204204   MCFG_GFXDECODE(sspeedr)
205205   MCFG_PALETTE_LENGTH(16)
trunk/src/mame/drivers/ashnojoe.c
r17967r17968
364364   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
365365   MCFG_SCREEN_SIZE(512, 512)
366366   MCFG_SCREEN_VISIBLE_AREA(14*8, 50*8-1, 3*8, 29*8-1)
367   MCFG_SCREEN_UPDATE_STATIC(ashnojoe)
367   MCFG_SCREEN_UPDATE_DRIVER(ashnojoe_state, screen_update_ashnojoe)
368368
369369   MCFG_GFXDECODE(ashnojoe)
370370   MCFG_PALETTE_LENGTH(0x1000/2)
trunk/src/mame/drivers/popobear.c
r17967r17968
9595   DECLARE_READ8_MEMBER(popo_620000_r);
9696   DECLARE_WRITE8_MEMBER(popobear_irq_ack_w);
9797   virtual void video_start();
98   UINT32 screen_update_popobear(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
9899};
99100
100101void popobear_state::video_start()
r17967r17968
256257   }
257258}
258259
259SCREEN_UPDATE_IND16( popobear )
260UINT32 popobear_state::screen_update_popobear(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
260261{
261//  popobear_state *state = screen.machine().driver_data<popobear_state>();
262262
263263   bitmap.fill(0, cliprect);
264264
265   //popmessage("%04x",state->m_vregs[0/2]);
265   //popmessage("%04x",m_vregs[0/2]);
266266
267267   draw_layer(screen.machine(),bitmap,cliprect,3);
268268   draw_layer(screen.machine(),bitmap,cliprect,2);
r17967r17968
465465   MCFG_SCREEN_ADD("screen", RASTER)
466466   MCFG_SCREEN_REFRESH_RATE(60)
467467   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
468   MCFG_SCREEN_UPDATE_STATIC(popobear)
468   MCFG_SCREEN_UPDATE_DRIVER(popobear_state, screen_update_popobear)
469469
470470//  MCFG_GFXDECODE(popobear)
471471
trunk/src/mame/drivers/minivadr.c
r17967r17968
2323
2424   /* memory pointers */
2525   required_shared_ptr<UINT8> m_videoram;
26   UINT32 screen_update_minivadr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
2627};
2728
2829/*************************************
r17967r17968
3132 *
3233 *************************************/
3334
34static SCREEN_UPDATE_RGB32( minivadr )
35UINT32 minivadr_state::screen_update_minivadr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
3536{
36   minivadr_state *state = screen.machine().driver_data<minivadr_state>();
3737   offs_t offs;
3838
39   for (offs = 0; offs < state->m_videoram.bytes(); offs++)
39   for (offs = 0; offs < m_videoram.bytes(); offs++)
4040   {
4141      int i;
4242
4343      UINT8 x = offs << 3;
4444      int y = offs >> 5;
45      UINT8 data = state->m_videoram[offs];
45      UINT8 data = m_videoram[offs];
4646
4747      for (i = 0; i < 8; i++)
4848      {
r17967r17968
9191   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
9292   MCFG_SCREEN_SIZE(256, 256)
9393   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1)
94   MCFG_SCREEN_UPDATE_STATIC(minivadr)
94   MCFG_SCREEN_UPDATE_DRIVER(minivadr_state, screen_update_minivadr)
9595
9696   /* the board has no sound hardware */
9797MACHINE_CONFIG_END
trunk/src/mame/drivers/mouser.c
r17967r17968
219219   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
220220   MCFG_SCREEN_SIZE(32*8, 32*8)
221221   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
222   MCFG_SCREEN_UPDATE_STATIC(mouser)
222   MCFG_SCREEN_UPDATE_DRIVER(mouser_state, screen_update_mouser)
223223
224224   MCFG_GFXDECODE(mouser)
225225   MCFG_PALETTE_LENGTH(64)
trunk/src/mame/drivers/undrfire.c
r17967r17968
739739   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
740740   MCFG_SCREEN_SIZE(40*8, 32*8)
741741   MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 3*8, 32*8-1)
742   MCFG_SCREEN_UPDATE_STATIC(undrfire)
742   MCFG_SCREEN_UPDATE_DRIVER(undrfire_state, screen_update_undrfire)
743743
744744   MCFG_GFXDECODE(undrfire)
745745   MCFG_PALETTE_LENGTH(16384)
r17967r17968
774774   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
775775   MCFG_SCREEN_SIZE(40*8, 32*8)
776776   MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 3*8, 32*8-1)
777   MCFG_SCREEN_UPDATE_STATIC(cbombers)
777   MCFG_SCREEN_UPDATE_DRIVER(undrfire_state, screen_update_cbombers)
778778
779779   MCFG_GFXDECODE(cbombers)
780780   MCFG_PALETTE_LENGTH(16384)
trunk/src/mame/drivers/grchamp.c
r17967r17968
693693
694694   MCFG_SCREEN_ADD("screen", RASTER)
695695   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
696   MCFG_SCREEN_UPDATE_STATIC(grchamp)
696   MCFG_SCREEN_UPDATE_DRIVER(grchamp_state, screen_update_grchamp)
697697
698698
699699   /* sound hardware */
trunk/src/mame/drivers/lkage.c
r17967r17968
572572   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
573573   MCFG_SCREEN_SIZE(32*8, 32*8)
574574   MCFG_SCREEN_VISIBLE_AREA(2*8, 32*8-1, 2*8, 30*8-1)
575   MCFG_SCREEN_UPDATE_STATIC(lkage)
575   MCFG_SCREEN_UPDATE_DRIVER(lkage_state, screen_update_lkage)
576576
577577   MCFG_GFXDECODE(lkage)
578578   MCFG_PALETTE_LENGTH(1024)
r17967r17968
615615   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
616616   MCFG_SCREEN_SIZE(32*8, 32*8)
617617   MCFG_SCREEN_VISIBLE_AREA(2*8, 32*8-1, 2*8, 30*8-1)
618   MCFG_SCREEN_UPDATE_STATIC(lkage)
618   MCFG_SCREEN_UPDATE_DRIVER(lkage_state, screen_update_lkage)
619619
620620   MCFG_GFXDECODE(lkage)
621621   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/gaiden.c
r17967r17968
779779   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
780780   MCFG_SCREEN_SIZE(32*8, 32*8)
781781   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 32*8-1)
782   MCFG_SCREEN_UPDATE_STATIC(gaiden)
782   MCFG_SCREEN_UPDATE_DRIVER(gaiden_state, screen_update_gaiden)
783783
784784   MCFG_GFXDECODE(gaiden)
785785   MCFG_PALETTE_LENGTH(4096)
r17967r17968
809809static MACHINE_CONFIG_DERIVED( raiga, shadoww )
810810
811811   MCFG_SCREEN_MODIFY("screen")
812   MCFG_SCREEN_UPDATE_STATIC(raiga)
812   MCFG_SCREEN_UPDATE_DRIVER(gaiden_state, screen_update_raiga)
813813
814814   MCFG_VIDEO_START_OVERRIDE(gaiden_state,raiga)
815815   MCFG_GFXDECODE(raiga)
r17967r17968
835835   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
836836   MCFG_SCREEN_SIZE(32*8, 32*8)
837837   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
838   MCFG_SCREEN_UPDATE_STATIC(drgnbowl)
838   MCFG_SCREEN_UPDATE_DRIVER(gaiden_state, screen_update_drgnbowl)
839839
840840   MCFG_GFXDECODE(drgnbowl)
841841   MCFG_PALETTE_LENGTH(4096)
r17967r17968
951951   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
952952   MCFG_SCREEN_SIZE(32*8, 32*8)
953953   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
954   MCFG_SCREEN_UPDATE_STATIC(gaiden)
954   MCFG_SCREEN_UPDATE_DRIVER(gaiden_state, screen_update_gaiden)
955955
956956   MCFG_GFXDECODE(mastninj)
957957   MCFG_PALETTE_LENGTH(4096)
trunk/src/mame/drivers/quizshow.c
r17967r17968
6363   virtual void machine_reset();
6464   virtual void video_start();
6565   virtual void palette_init();
66   UINT32 screen_update_quizshow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6667};
6768
6869
r17967r17968
106107   m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(quizshow_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 16, 32, 16);
107108}
108109
109SCREEN_UPDATE_IND16( quizshow )
110UINT32 quizshow_state::screen_update_quizshow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
110111{
111   quizshow_state *state = screen.machine().driver_data<quizshow_state>();
112   state->m_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
112   m_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
113113   return 0;
114114}
115115
r17967r17968
382382   MCFG_SCREEN_ADD("screen", RASTER)
383383   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
384384
385   MCFG_SCREEN_UPDATE_STATIC(quizshow)
385   MCFG_SCREEN_UPDATE_DRIVER(quizshow_state, screen_update_quizshow)
386386
387387   MCFG_GFXDECODE(quizshow)
388388   MCFG_PALETTE_LENGTH(8*2)
trunk/src/mame/drivers/aleck64.c
r17967r17968
817817   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
818818   MCFG_SCREEN_SIZE(640, 525)
819819   MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 239)
820   MCFG_SCREEN_UPDATE_STATIC(n64)
820   MCFG_SCREEN_UPDATE_DRIVER(n64_state, screen_update_n64)
821821
822822   MCFG_PALETTE_LENGTH(0x1000)
823823
trunk/src/mame/drivers/trackfld.c
r17967r17968
928928   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
929929   MCFG_SCREEN_SIZE(32*8, 32*8)
930930   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
931   MCFG_SCREEN_UPDATE_STATIC(trackfld)
931   MCFG_SCREEN_UPDATE_DRIVER(trackfld_state, screen_update_trackfld)
932932
933933   MCFG_GFXDECODE(trackfld)
934934   MCFG_PALETTE_LENGTH(16*16+16*16)
r17967r17968
983983   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
984984   MCFG_SCREEN_SIZE(32*8, 32*8)
985985   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
986   MCFG_SCREEN_UPDATE_STATIC(trackfld)
986   MCFG_SCREEN_UPDATE_DRIVER(trackfld_state, screen_update_trackfld)
987987
988988   MCFG_GFXDECODE(trackfld)
989989   MCFG_PALETTE_LENGTH(16*16+16*16)
trunk/src/mame/drivers/astrof.c
r17967r17968
413413}
414414
415415
416static SCREEN_UPDATE_RGB32( astrof )
416UINT32 astrof_state::screen_update_astrof(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
417417{
418418   pen_t pens[ASTROF_NUM_PENS];
419419
r17967r17968
425425}
426426
427427
428static SCREEN_UPDATE_RGB32( tomahawk )
428UINT32 astrof_state::screen_update_tomahawk(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
429429{
430430   pen_t pens[TOMAHAWK_NUM_PENS];
431431
r17967r17968
962962
963963   /* video hardware */
964964   MCFG_SCREEN_MODIFY("screen")
965   MCFG_SCREEN_UPDATE_STATIC(astrof)
965   MCFG_SCREEN_UPDATE_DRIVER(astrof_state, screen_update_astrof)
966966
967967   /* audio hardware */
968968   MCFG_FRAGMENT_ADD(astrof_audio)
r17967r17968
988988
989989   /* video hardware */
990990   MCFG_SCREEN_MODIFY("screen")
991   MCFG_SCREEN_UPDATE_STATIC(astrof)
991   MCFG_SCREEN_UPDATE_DRIVER(astrof_state, screen_update_astrof)
992992
993993   /* audio hardware */
994994   MCFG_FRAGMENT_ADD(spfghmk2_audio)
r17967r17968
10051005
10061006   /* video hardware */
10071007   MCFG_SCREEN_MODIFY("screen")
1008   MCFG_SCREEN_UPDATE_STATIC(tomahawk)
1008   MCFG_SCREEN_UPDATE_DRIVER(astrof_state, screen_update_tomahawk)
10091009
10101010   /* audio hardware */
10111011   MCFG_FRAGMENT_ADD(tomahawk_audio)
trunk/src/mame/drivers/vegas.c
r17967r17968
501501   DECLARE_DRIVER_INIT(sf2049se);
502502   virtual void machine_start();
503503   virtual void machine_reset();
504   UINT32 screen_update_vegas(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
504505};
505506
506507
r17967r17968
523524 *
524525 *************************************/
525526
526static SCREEN_UPDATE_RGB32( vegas )
527UINT32 vegas_state::screen_update_vegas(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
527528{
528   vegas_state *state = screen.machine().driver_data<vegas_state>();
529   return voodoo_update(state->m_voodoo, bitmap, cliprect) ? 0 : UPDATE_HAS_NOT_CHANGED;
529   return voodoo_update(m_voodoo, bitmap, cliprect) ? 0 : UPDATE_HAS_NOT_CHANGED;
530530}
531531
532532
r17967r17968
22642264   MCFG_SCREEN_REFRESH_RATE(57)
22652265   MCFG_SCREEN_SIZE(640, 480)
22662266   MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479)
2267   MCFG_SCREEN_UPDATE_STATIC(vegas)
2267   MCFG_SCREEN_UPDATE_DRIVER(vegas_state, screen_update_vegas)
22682268MACHINE_CONFIG_END
22692269
22702270
trunk/src/mame/drivers/tecmo.c
r17967r17968
644644   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)   /* frames per second, vblank duration */)
645645   MCFG_SCREEN_SIZE(32*8, 32*8)
646646   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
647   MCFG_SCREEN_UPDATE_STATIC(tecmo)
647   MCFG_SCREEN_UPDATE_DRIVER(tecmo_state, screen_update_tecmo)
648648
649649   MCFG_GFXDECODE(tecmo)
650650   MCFG_PALETTE_LENGTH(1024)
r17967r17968
703703   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)   /* frames per second, vblank duration */)
704704   MCFG_SCREEN_SIZE(32*8, 32*8)
705705   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
706   MCFG_SCREEN_UPDATE_STATIC(tecmo)
706   MCFG_SCREEN_UPDATE_DRIVER(tecmo_state, screen_update_tecmo)
707707
708708   MCFG_GFXDECODE(tecmo)
709709   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/magictg.c
r17967r17968
212212   virtual void machine_start();
213213   virtual void machine_reset();
214214   virtual void video_start();
215public:   
216   UINT32 screen_update_magictg(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
215217};
216218
217219
r17967r17968
259261
260262}
261263
262static SCREEN_UPDATE_RGB32( magictg )
264UINT32 magictg_state::screen_update_magictg(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
263265{
264   magictg_state* state = screen.machine().driver_data<magictg_state>();
265   return voodoo_update(state->m_voodoo[0], bitmap, cliprect) ? 0 : UPDATE_HAS_NOT_CHANGED;
266   return voodoo_update(m_voodoo[0], bitmap, cliprect) ? 0 : UPDATE_HAS_NOT_CHANGED;
266267}
267268
268269
r17967r17968
964965   MCFG_SCREEN_SIZE(1024, 1024)
965966   MCFG_SCREEN_VISIBLE_AREA(0, 511, 16, 447)
966967
967   MCFG_SCREEN_UPDATE_STATIC(magictg)
968   MCFG_SCREEN_UPDATE_DRIVER(magictg_state, screen_update_magictg)
968969MACHINE_CONFIG_END
969970
970971
trunk/src/mame/drivers/shuuz.c
r17967r17968
276276   /* note: these parameters are from published specs, not derived */
277277   /* the board uses a VAD chip to generate video signals */
278278   MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
279   MCFG_SCREEN_UPDATE_STATIC(shuuz)
279   MCFG_SCREEN_UPDATE_DRIVER(shuuz_state, screen_update_shuuz)
280280
281281   MCFG_VIDEO_START_OVERRIDE(shuuz_state,shuuz)
282282
trunk/src/mame/drivers/finalizr.c
r17967r17968
292292   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
293293   MCFG_SCREEN_SIZE(36*8, 32*8)
294294   MCFG_SCREEN_VISIBLE_AREA(1*8, 35*8-1, 2*8, 30*8-1)
295   MCFG_SCREEN_UPDATE_STATIC(finalizr)
295   MCFG_SCREEN_UPDATE_DRIVER(finalizr_state, screen_update_finalizr)
296296
297297   MCFG_GFXDECODE(finalizr)
298298   MCFG_PALETTE_LENGTH(2*16*16)
trunk/src/mame/drivers/galpanic.c
r17967r17968
124124#include "includes/galpanic.h"
125125#include "includes/galpnipt.h"
126126
127static SCREEN_VBLANK( galpanic )
127void galpanic_state::screen_eof_galpanic(screen_device &screen, bool state)
128128{
129129   // rising edge
130   if (vblank_on)
130   if (state)
131131   {
132132      device_t *pandora = screen.machine().device("pandora");
133133      pandora_eof(pandora);
r17967r17968
567567   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)   /* frames per second, vblank duration */)
568568   MCFG_SCREEN_SIZE(256, 256)
569569   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 224-1)
570   MCFG_SCREEN_UPDATE_STATIC(galpanic)
571   MCFG_SCREEN_VBLANK_STATIC( galpanic )
570   MCFG_SCREEN_UPDATE_DRIVER(galpanic_state, screen_update_galpanic)
571   MCFG_SCREEN_VBLANK_DRIVER(galpanic_state, screen_eof_galpanic)
572572
573573   MCFG_GFXDECODE(galpanic)
574574   MCFG_PALETTE_LENGTH(1024 + 32768)
r17967r17968
611611
612612   /* video hardware */
613613   MCFG_SCREEN_MODIFY("screen")
614   MCFG_SCREEN_UPDATE_STATIC(comad)
614   MCFG_SCREEN_UPDATE_DRIVER(galpanic_state, screen_update_comad)
615615   MCFG_SCREEN_VBLANK_NONE()
616616MACHINE_CONFIG_END
617617
r17967r17968
625625
626626   /* video hardware */
627627   MCFG_SCREEN_MODIFY("screen")
628   MCFG_SCREEN_UPDATE_STATIC(comad)
628   MCFG_SCREEN_UPDATE_DRIVER(galpanic_state, screen_update_comad)
629629   MCFG_SCREEN_VBLANK_NONE()
630630
631631   /* sound hardware */
r17967r17968
643643
644644   /* video hardware */
645645   MCFG_SCREEN_MODIFY("screen")
646   MCFG_SCREEN_UPDATE_STATIC(comad)
646   MCFG_SCREEN_UPDATE_DRIVER(galpanic_state, screen_update_comad)
647647   MCFG_SCREEN_VBLANK_NONE()
648648MACHINE_CONFIG_END
649649
r17967r17968
658658
659659   /* video hardware */
660660   MCFG_SCREEN_MODIFY("screen")
661   MCFG_SCREEN_UPDATE_STATIC(comad)
661   MCFG_SCREEN_UPDATE_DRIVER(galpanic_state, screen_update_comad)
662662   MCFG_SCREEN_VBLANK_NONE()
663663
664664   /* sound hardware */
r17967r17968
677677
678678   /* video hardware */
679679   MCFG_SCREEN_MODIFY("screen")
680   MCFG_SCREEN_UPDATE_STATIC(comad)
680   MCFG_SCREEN_UPDATE_DRIVER(galpanic_state, screen_update_comad)
681681
682682   /* sound hardware */
683683   MCFG_OKIM6295_REPLACE("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified
trunk/src/mame/drivers/speedspn.c
r17967r17968
284284   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
285285   MCFG_SCREEN_SIZE(64*8, 32*8)
286286   MCFG_SCREEN_VISIBLE_AREA(8*8, 56*8-1, 1*8, 31*8-1)
287   MCFG_SCREEN_UPDATE_STATIC(speedspn)
287   MCFG_SCREEN_UPDATE_DRIVER(speedspn_state, screen_update_speedspn)
288288
289289   MCFG_GFXDECODE(speedspn)
290290   MCFG_PALETTE_LENGTH(0x400)
trunk/src/mame/drivers/enigma2.c
r17967r17968
8989   DECLARE_DRIVER_INIT(enigma2);
9090   virtual void machine_start();
9191   virtual void machine_reset();
92   UINT32 screen_update_enigma2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
93   UINT32 screen_update_enigma2a(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
9294};
9395
9496
r17967r17968
205207}
206208
207209
208static SCREEN_UPDATE_RGB32( enigma2 )
210UINT32 enigma2_state::screen_update_enigma2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
209211{
210   enigma2_state *state = screen.machine().driver_data<enigma2_state>();
211212   pen_t pens[NUM_PENS];
212213
213214   const rectangle &visarea = screen.visible_area();
214   UINT8 *prom = state->memregion("proms")->base();
215   UINT8 *color_map_base = state->m_flip_screen ? &prom[0x0400] : &prom[0x0000];
216   UINT8 *star_map_base = (state->m_blink_count & 0x08) ? &prom[0x0c00] : &prom[0x0800];
215   UINT8 *prom = memregion("proms")->base();
216   UINT8 *color_map_base = m_flip_screen ? &prom[0x0400] : &prom[0x0000];
217   UINT8 *star_map_base = (m_blink_count & 0x08) ? &prom[0x0c00] : &prom[0x0800];
217218
218219   UINT8 x = 0;
219220   UINT16 bitmap_y = visarea.min_y;
r17967r17968
243244
244245         /* when the screen is flipped, all the video address bits are inverted,
245246               and the adder at 16A is activated */
246         if (state->m_flip_screen)  videoram_address = (~videoram_address + 0x0400) & 0x1fff;
247         if (m_flip_screen)  videoram_address = (~videoram_address + 0x0400) & 0x1fff;
247248
248         video_data = state->m_videoram[videoram_address];
249         video_data = m_videoram[videoram_address];
249250
250251         fore_color = color_map_base[color_map_address] & 0x07;
251252         star_color = star_map_base[star_map_address] & 0x07;
252253      }
253254
254255      /* plot the current pixel */
255      if (state->m_flip_screen)
256      if (m_flip_screen)
256257      {
257258         bit = video_data & 0x80;
258259         video_data = video_data << 1;
r17967r17968
287288      }
288289   }
289290
290   state->m_blink_count++;
291   m_blink_count++;
291292
292293   return 0;
293294}
294295
295296
296static SCREEN_UPDATE_RGB32( enigma2a )
297UINT32 enigma2_state::screen_update_enigma2a(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
297298{
298   enigma2_state *state = screen.machine().driver_data<enigma2_state>();
299299   UINT8 x = 0;
300300   const rectangle &visarea = screen.visible_area();
301301   UINT16 bitmap_y = visarea.min_y;
r17967r17968
314314
315315         /* when the screen is flipped, all the video address bits are inverted,
316316               and the adder at 16A is activated */
317         if (state->m_flip_screen)  videoram_address = (~videoram_address + 0x0400) & 0x1fff;
317         if (m_flip_screen)  videoram_address = (~videoram_address + 0x0400) & 0x1fff;
318318
319         video_data = state->m_videoram[videoram_address];
319         video_data = m_videoram[videoram_address];
320320      }
321321
322322      /* plot the current pixel */
323      if (state->m_flip_screen)
323      if (m_flip_screen)
324324      {
325325         bit = video_data & 0x80;
326326         video_data = video_data << 1;
r17967r17968
617617   /* video hardware */
618618   MCFG_SCREEN_ADD("screen", RASTER)
619619   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
620   MCFG_SCREEN_UPDATE_STATIC(enigma2)
620   MCFG_SCREEN_UPDATE_DRIVER(enigma2_state, screen_update_enigma2)
621621
622622   /* audio hardware */
623623   MCFG_SPEAKER_STANDARD_MONO("mono")
r17967r17968
643643   /* video hardware */
644644   MCFG_SCREEN_ADD("screen", RASTER)
645645   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
646   MCFG_SCREEN_UPDATE_STATIC(enigma2a)
646   MCFG_SCREEN_UPDATE_DRIVER(enigma2_state, screen_update_enigma2a)
647647
648648   /* audio hardware */
649649   MCFG_SPEAKER_STANDARD_MONO("mono")
trunk/src/mame/drivers/videopkr.c
r17967r17968
363363   DECLARE_VIDEO_START(vidadcba);
364364   DECLARE_PALETTE_INIT(babypkr);
365365   DECLARE_PALETTE_INIT(fortune1);
366   UINT32 screen_update_videopkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
366367};
367368
368369
r17967r17968
520521}
521522
522523
523static SCREEN_UPDATE_IND16( videopkr )
524UINT32 videopkr_state::screen_update_videopkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
524525{
525   videopkr_state *state = screen.machine().driver_data<videopkr_state>();
526   state->m_bg_tilemap->mark_all_dirty();
527   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
526   m_bg_tilemap->mark_all_dirty();
527   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
528528   return 0;
529529}
530530
r17967r17968
12541254
12551255   MCFG_SCREEN_REFRESH_RATE(60)
12561256   MCFG_SCREEN_VBLANK_TIME(2080)
1257   MCFG_SCREEN_UPDATE_STATIC(videopkr)
1257   MCFG_SCREEN_UPDATE_DRIVER(videopkr_state, screen_update_videopkr)
12581258
12591259   MCFG_GFXDECODE(videopkr)
12601260   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/igspoker.c
r17967r17968
119119   virtual void machine_reset();
120120   virtual void video_start();
121121   DECLARE_VIDEO_START(cpokerpk);
122   UINT32 screen_update_igs_video(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
123   UINT32 screen_update_cpokerpk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
122124};
123125
124126
r17967r17968
197199   m_fg_tilemap->set_transparent_pen(0);
198200}
199201
200static SCREEN_UPDATE_IND16(igs_video)
202UINT32 igspoker_state::screen_update_igs_video(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
201203{
202   igspoker_state *state = screen.machine().driver_data<igspoker_state>();
203204   bitmap.fill(get_black_pen(screen.machine()), cliprect);
204205
205206   // FIX: CSK227IT must have some way to disable background, or wrong gfx?
206   if (state->m_bg_enable) state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
207   if (m_bg_enable) m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
207208
208   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
209   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
209210
210211   return 0;
211212}
r17967r17968
215216   m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(igspoker_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS,   8,  8,   64, 32);
216217}
217218
218static SCREEN_UPDATE_IND16(cpokerpk)
219UINT32 igspoker_state::screen_update_cpokerpk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
219220{
220   igspoker_state *state = screen.machine().driver_data<igspoker_state>();
221   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
221   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
222222
223223   return 0;
224224}
r17967r17968
17801780   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
17811781   MCFG_SCREEN_SIZE(64*8, 32*8) // TODO: wrong screen size!
17821782   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0, 32*8-1)
1783   MCFG_SCREEN_UPDATE_STATIC(igs_video)
1783   MCFG_SCREEN_UPDATE_DRIVER(igspoker_state, screen_update_igs_video)
17841784
17851785   MCFG_GFXDECODE(igspoker)
17861786   MCFG_PALETTE_LENGTH(2048)
r17967r17968
18101810   MCFG_CPU_IO_MAP(number10_io_map)
18111811
18121812   MCFG_SCREEN_MODIFY("screen")
1813   MCFG_SCREEN_UPDATE_STATIC(cpokerpk)
1813   MCFG_SCREEN_UPDATE_DRIVER(igspoker_state, screen_update_cpokerpk)
18141814   MCFG_VIDEO_START_OVERRIDE(igspoker_state,cpokerpk)
18151815
18161816   MCFG_OKIM6295_ADD("oki", XTAL_12MHz / 12, OKIM6295_PIN7_HIGH)
trunk/src/mame/drivers/mil4000.c
r17967r17968
122122   TILE_GET_INFO_MEMBER(get_sc2_tile_info);
123123   TILE_GET_INFO_MEMBER(get_sc3_tile_info);
124124   virtual void video_start();
125   UINT32 screen_update_mil4000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
125126};
126127
127128
r17967r17968
189190   m_sc3_tilemap->set_transparent_pen(0);
190191}
191192
192static SCREEN_UPDATE_IND16(mil4000)
193UINT32 mil4000_state::screen_update_mil4000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
193194{
194   mil4000_state *state = screen.machine().driver_data<mil4000_state>();
195   state->m_sc0_tilemap->draw(bitmap, cliprect, 0,0);
196   state->m_sc1_tilemap->draw(bitmap, cliprect, 0,0);
197   state->m_sc2_tilemap->draw(bitmap, cliprect, 0,0);
198   state->m_sc3_tilemap->draw(bitmap, cliprect, 0,0);
195   m_sc0_tilemap->draw(bitmap, cliprect, 0,0);
196   m_sc1_tilemap->draw(bitmap, cliprect, 0,0);
197   m_sc2_tilemap->draw(bitmap, cliprect, 0,0);
198   m_sc3_tilemap->draw(bitmap, cliprect, 0,0);
199199   return 0;
200200}
201201
r17967r17968
381381   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
382382   MCFG_SCREEN_SIZE(320, 240)
383383   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
384   MCFG_SCREEN_UPDATE_STATIC(mil4000)
384   MCFG_SCREEN_UPDATE_DRIVER(mil4000_state, screen_update_mil4000)
385385
386386   MCFG_PALETTE_LENGTH(0x800)
387387   MCFG_PALETTE_INIT(all_black)
trunk/src/mame/drivers/koikoi.c
r17967r17968
7373   virtual void machine_reset();
7474   virtual void video_start();
7575   virtual void palette_init();
76   UINT32 screen_update_koikoi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7677};
7778
7879
r17967r17968
142143   m_tmap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(koikoi_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
143144}
144145
145static SCREEN_UPDATE_IND16(koikoi)
146UINT32 koikoi_state::screen_update_koikoi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
146147{
147   koikoi_state *state = screen.machine().driver_data<koikoi_state>();
148   state->m_tmap->draw(bitmap, cliprect, 0, 0);
148   m_tmap->draw(bitmap, cliprect, 0, 0);
149149   return 0;
150150}
151151
r17967r17968
374374   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
375375   MCFG_SCREEN_SIZE(32*8, 32*8)
376376   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
377   MCFG_SCREEN_UPDATE_STATIC(koikoi)
377   MCFG_SCREEN_UPDATE_DRIVER(koikoi_state, screen_update_koikoi)
378378
379379   MCFG_GFXDECODE(koikoi)
380380   MCFG_PALETTE_LENGTH(8*32)
trunk/src/mame/drivers/mazerbla.c
r17967r17968
143143   virtual void machine_reset();
144144   virtual void video_start();
145145   virtual void palette_init();
146   UINT32 screen_update_mazerbla(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
147   UINT32 screen_update_test_vcu(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
146148};
147149
148150
r17967r17968
203205
204206#ifdef UNUSED_DEFINITION
205207
206SCREEN_UPDATE_IND16( test_vcu )
208UINT32 mazerbla_state::screen_update_test_vcu(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
207209{
208   mazerbla_state *state = screen.machine().driver_data<mazerbla_state>();
209   int *planes_enabled = state->m_planes_enabled;
210   int *planes_enabled = m_planes_enabled;
210211   char buf[128];
211212
212213   UINT32 color_base = 0;
213214
214   if (state->m_game_id == MAZERBLA)
215   if (m_game_id == MAZERBLA)
215216      color_base = 0x80;   /* 0x80 constant: matches Mazer Blazer movie */
216217
217   if (state->m_game_id == GREATGUN)
218   if (m_game_id == GREATGUN)
218219      color_base = 0x00;
219220
220221   bitmap.fill(0);
221222//  logerror("-->frame\n");
222223
223224   if (planes_enabled[3])
224      copybitmap(bitmap, state->m_tmpbitmaps[3], 0, 0, 0, 0, cliprect);
225      copybitmap(bitmap, m_tmpbitmaps[3], 0, 0, 0, 0, cliprect);
225226
226227   if (planes_enabled[2])
227      copybitmap_trans(bitmap, state->m_tmpbitmaps[2], 0, 0, 0, 0,cliprect, color_base);
228      copybitmap_trans(bitmap, m_tmpbitmaps[2], 0, 0, 0, 0,cliprect, color_base);
228229
229   state->m_tmpbitmaps[2].fill(color_base);
230   m_tmpbitmaps[2].fill(color_base);
230231
231232   if (planes_enabled[1])
232      copybitmap_trans(bitmap, state->m_tmpbitmaps[1], 0, 0, 0, 0,cliprect, color_base);
233      copybitmap_trans(bitmap, m_tmpbitmaps[1], 0, 0, 0, 0,cliprect, color_base);
233234
234   state->m_tmpbitmaps[1].fill(color_base);
235   m_tmpbitmaps[1].fill(color_base);
235236
236237   if (planes_enabled[0])
237      copybitmap_trans(bitmap, state->m_tmpbitmaps[0], 0, 0, 0, 0,cliprect, color_base);
238      copybitmap_trans(bitmap, m_tmpbitmaps[0], 0, 0, 0, 0,cliprect, color_base);
238239
239   state->m_tmpbitmaps[0].fill(color_base);
240   m_tmpbitmaps[0].fill(color_base);
240241
241242   if (screen.machine().input().code_pressed_once(KEYCODE_1))   /* plane 1 */
242243      planes_enabled[0] ^= 1;
r17967r17968
251252      planes_enabled[3] ^= 1;
252253
253254   if (screen.machine().input().code_pressed_once(KEYCODE_I))   /* show/hide debug info */
254      state->m_dbg_info = !state->m_dbg_info;
255      m_dbg_info = !m_dbg_info;
255256
256257   if (screen.machine().input().code_pressed_once(KEYCODE_G))   /* enable gfx area handling */
257      state->m_dbg_gfx_e = !state->m_dbg_gfx_e;
258      m_dbg_gfx_e = !m_dbg_gfx_e;
258259
259260   if (screen.machine().input().code_pressed_once(KEYCODE_C))   /* enable color area handling */
260      state->m_dbg_clr_e = !state->m_dbg_clr_e;
261      m_dbg_clr_e = !m_dbg_clr_e;
261262
262263   if (screen.machine().input().code_pressed_once(KEYCODE_V))   /* draw only when vbank==dbg_vbank */
263      state->m_dbg_vbank ^= 1;
264      m_dbg_vbank ^= 1;
264265
265266   if (screen.machine().input().code_pressed_once(KEYCODE_L))   /* showlookup ram */
266      state->m_dbg_lookup = (state->m_dbg_lookup + 1) % 5;   //0,1,2,3, 4-off
267      m_dbg_lookup = (m_dbg_lookup + 1) % 5;   //0,1,2,3, 4-off
267268
268269
269   if (state->m_dbg_info)
270   if (m_dbg_info)
270271   {
271272      sprintf(buf,"I-info, G-gfx, C-color, V-vbank, 1-4 enable planes");
272273      ui_draw_text(buf, 10, 0 * ui_get_line_height(screen.machine()));
273274
274      sprintf(buf,"g:%1i c:%1i v:%1i vbk=%1i  planes=%1i%1i%1i%1i  ", state->m_dbg_gfx_e&1, state->m_dbg_clr_e&1, state->m_dbg_vbank, vbank&1,
275      sprintf(buf,"g:%1i c:%1i v:%1i vbk=%1i  planes=%1i%1i%1i%1i  ", m_dbg_gfx_e&1, m_dbg_clr_e&1, m_dbg_vbank, vbank&1,
275276         planes_enabled[0],
276277         planes_enabled[1],
277278         planes_enabled[2],
r17967r17968
279280
280281      ui_draw_text(buf, 10, 1 * ui_get_line_height(screen.machine()));
281282
282      if (state->m_dbg_lookup!=4)
283      if (m_dbg_lookup!=4)
283284      {
284         int lookup_offs = (state->m_dbg_lookup)*256; //=0,1,2,3*256
285         int lookup_offs = (m_dbg_lookup)*256; //=0,1,2,3*256
285286         int y, x;
286287
287288         for (y = 0; y < 16; y++)
r17967r17968
302303#endif
303304
304305
305static SCREEN_UPDATE_IND16( mazerbla )
306UINT32 mazerbla_state::screen_update_mazerbla(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
306307{
307   mazerbla_state *state = screen.machine().driver_data<mazerbla_state>();
308308//  UINT32 color_base = 0;
309309
310   if (state->m_game_id == MAZERBLA)
310   if (m_game_id == MAZERBLA)
311311//      color_base = 0x80;  /* 0x80 constant: matches Mazer Blazer movie */
312312
313//  if (state->m_game_id == GREATGUN)
313//  if (m_game_id == GREATGUN)
314314//      color_base = 0x00;
315315
316316   //  bitmap.fill(0);
317317
318   copybitmap(bitmap, state->m_tmpbitmaps[3], 0, 0, 0, 0, cliprect);
319   copybitmap_trans(bitmap, state->m_tmpbitmaps[2], 0, 0, 0, 0, cliprect, 0);
320   copybitmap_trans(bitmap, state->m_tmpbitmaps[1], 0, 0, 0, 0, cliprect, 0);
321   copybitmap_trans(bitmap, state->m_tmpbitmaps[0], 0, 0, 0, 0, cliprect, 0);
318   copybitmap(bitmap, m_tmpbitmaps[3], 0, 0, 0, 0, cliprect);
319   copybitmap_trans(bitmap, m_tmpbitmaps[2], 0, 0, 0, 0, cliprect, 0);
320   copybitmap_trans(bitmap, m_tmpbitmaps[1], 0, 0, 0, 0, cliprect, 0);
321   copybitmap_trans(bitmap, m_tmpbitmaps[0], 0, 0, 0, 0, cliprect, 0);
322322   return 0;
323323}
324324
r17967r17968
15351535   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
15361536   MCFG_SCREEN_SIZE(40*8, 32*8)
15371537   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
1538   MCFG_SCREEN_UPDATE_STATIC(mazerbla)
1538   MCFG_SCREEN_UPDATE_DRIVER(mazerbla_state, screen_update_mazerbla)
15391539
15401540   MCFG_PALETTE_LENGTH(256)
15411541
r17967r17968
15711571   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
15721572   MCFG_SCREEN_SIZE(40*8, 32*8)
15731573   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
1574   MCFG_SCREEN_UPDATE_STATIC(mazerbla)
1574   MCFG_SCREEN_UPDATE_DRIVER(mazerbla_state, screen_update_mazerbla)
15751575
15761576   MCFG_PALETTE_LENGTH(256)
15771577
trunk/src/mame/drivers/namcona1.c
r17967r17968
10261026   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
10271027   MCFG_SCREEN_SIZE(38*8, 32*8)
10281028   MCFG_SCREEN_VISIBLE_AREA(8, 38*8-1-8, 4*8, 32*8-1)
1029   MCFG_SCREEN_UPDATE_STATIC(namcona1)
1029   MCFG_SCREEN_UPDATE_DRIVER(namcona1_state, screen_update_namcona1)
10301030
10311031   MCFG_PALETTE_LENGTH(0x2000)
10321032
trunk/src/mame/drivers/armedf.c
r17967r17968
11971197   MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 1*8, 31*8-1 )
11981198
11991199   MCFG_VIDEO_START_OVERRIDE(armedf_state,terraf)
1200   MCFG_SCREEN_UPDATE_STATIC(armedf)
1200   MCFG_SCREEN_UPDATE_DRIVER(armedf_state, screen_update_armedf)
12011201   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
12021202
12031203   MCFG_GFXDECODE(armedf)
r17967r17968
12461246   MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 1*8, 31*8-1 )
12471247
12481248   MCFG_VIDEO_START_OVERRIDE(armedf_state,terraf)
1249   MCFG_SCREEN_UPDATE_STATIC(armedf)
1249   MCFG_SCREEN_UPDATE_DRIVER(armedf_state, screen_update_armedf)
12501250   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
12511251
12521252   MCFG_GFXDECODE(armedf)
r17967r17968
12901290   MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 1*8, 31*8-1 ) // 320 x 240, trusted
12911291
12921292   MCFG_VIDEO_START_OVERRIDE(armedf_state,terraf)
1293   MCFG_SCREEN_UPDATE_STATIC(armedf)
1293   MCFG_SCREEN_UPDATE_DRIVER(armedf_state, screen_update_armedf)
12941294   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
12951295
12961296   MCFG_GFXDECODE(armedf)
r17967r17968
13341334   MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 1*8, 31*8-1 )
13351335
13361336   MCFG_VIDEO_START_OVERRIDE(armedf_state,armedf)
1337   MCFG_SCREEN_UPDATE_STATIC(armedf)
1337   MCFG_SCREEN_UPDATE_DRIVER(armedf_state, screen_update_armedf)
13381338   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
13391339
13401340   MCFG_GFXDECODE(armedf)
r17967r17968
13781378   MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
13791379
13801380   MCFG_VIDEO_START_OVERRIDE(armedf_state,terraf)
1381   MCFG_SCREEN_UPDATE_STATIC(armedf)
1381   MCFG_SCREEN_UPDATE_DRIVER(armedf_state, screen_update_armedf)
13821382   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
13831383
13841384   MCFG_GFXDECODE(armedf)
r17967r17968
14221422   MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
14231423
14241424   MCFG_VIDEO_START_OVERRIDE(armedf_state,terraf)
1425   MCFG_SCREEN_UPDATE_STATIC(armedf)
1425   MCFG_SCREEN_UPDATE_DRIVER(armedf_state, screen_update_armedf)
14261426   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
14271427
14281428   MCFG_GFXDECODE(armedf)
r17967r17968
14661466   MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
14671467
14681468   MCFG_VIDEO_START_OVERRIDE(armedf_state,terraf)
1469   MCFG_SCREEN_UPDATE_STATIC(armedf)
1469   MCFG_SCREEN_UPDATE_DRIVER(armedf_state, screen_update_armedf)
14701470   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
14711471
14721472   MCFG_GFXDECODE(armedf)
r17967r17968
15231523   MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 1*8, 31*8-1 )
15241524
15251525   MCFG_VIDEO_START_OVERRIDE(armedf_state,armedf)
1526   MCFG_SCREEN_UPDATE_STATIC(armedf)
1526   MCFG_SCREEN_UPDATE_DRIVER(armedf_state, screen_update_armedf)
15271527   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
15281528
15291529   MCFG_GFXDECODE(armedf)
trunk/src/mame/drivers/bsktball.c
r17967r17968
258258   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
259259   MCFG_SCREEN_SIZE(32*8, 28*8)
260260   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
261   MCFG_SCREEN_UPDATE_STATIC(bsktball)
261   MCFG_SCREEN_UPDATE_DRIVER(bsktball_state, screen_update_bsktball)
262262
263263   MCFG_GFXDECODE(bsktball)
264264   MCFG_PALETTE_LENGTH(2*4 + 4*4*4*4)
trunk/src/mame/drivers/cdi.c
r17967r17968
331331    MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
332332    MCFG_SCREEN_SIZE(384, 302)
333333    MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 22, 302-1) //dynamic resolution,TODO
334   MCFG_SCREEN_UPDATE_STATIC(cdimono1)
334   MCFG_SCREEN_UPDATE_DRIVER(cdi_state, screen_update_cdimono1)
335335
336336    MCFG_SCREEN_ADD("lcd", RASTER)
337337    MCFG_SCREEN_REFRESH_RATE(60)
338338    MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
339339    MCFG_SCREEN_SIZE(192, 22)
340340    MCFG_SCREEN_VISIBLE_AREA(0, 192-1, 0, 22-1)
341    MCFG_SCREEN_UPDATE_STATIC(cdimono1_lcd)
341   MCFG_SCREEN_UPDATE_DRIVER(cdi_state, screen_update_cdimono1_lcd)
342342
343343    MCFG_PALETTE_LENGTH(0x100)
344344
trunk/src/mame/drivers/itgambl3.c
r17967r17968
5757   virtual void machine_reset();
5858   virtual void video_start();
5959   virtual void palette_init();
60   UINT32 screen_update_itgambl3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
6061};
6162
6263
r17967r17968
7273}
7374
7475/* (dirty) debug code for looking 8bpps blitter-based gfxs */
75static SCREEN_UPDATE_RGB32( itgambl3 )
76UINT32 itgambl3_state::screen_update_itgambl3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
7677{
77   itgambl3_state *state = screen.machine().driver_data<itgambl3_state>();
7878   int x,y,count;
79   const UINT8 *blit_ram = state->memregion("gfx1")->base();
79   const UINT8 *blit_ram = memregion("gfx1")->base();
8080
8181   if(screen.machine().input().code_pressed(KEYCODE_Z))
82      state->m_test_x++;
82      m_test_x++;
8383
8484   if(screen.machine().input().code_pressed(KEYCODE_X))
85      state->m_test_x--;
85      m_test_x--;
8686
8787   if(screen.machine().input().code_pressed(KEYCODE_A))
88      state->m_test_y++;
88      m_test_y++;
8989
9090   if(screen.machine().input().code_pressed(KEYCODE_S))
91      state->m_test_y--;
91      m_test_y--;
9292
9393   if(screen.machine().input().code_pressed(KEYCODE_Q))
94      state->m_start_offs+=0x200;
94      m_start_offs+=0x200;
9595
9696   if(screen.machine().input().code_pressed(KEYCODE_W))
97      state->m_start_offs-=0x200;
97      m_start_offs-=0x200;
9898
9999   if(screen.machine().input().code_pressed(KEYCODE_E))
100      state->m_start_offs++;
100      m_start_offs++;
101101
102102   if(screen.machine().input().code_pressed(KEYCODE_R))
103      state->m_start_offs--;
103      m_start_offs--;
104104
105   popmessage("%d %d %04x",state->m_test_x,state->m_test_y,state->m_start_offs);
105   popmessage("%d %d %04x",m_test_x,m_test_y,m_start_offs);
106106
107107   bitmap.fill(get_black_pen(screen.machine()), cliprect);
108108
109   count = (state->m_start_offs);
109   count = (m_start_offs);
110110
111   for(y=0;y<state->m_test_y;y++)
111   for(y=0;y<m_test_y;y++)
112112   {
113      for(x=0;x<state->m_test_x;x++)
113      for(x=0;x<m_test_x;x++)
114114      {
115115         UINT32 color;
116116
r17967r17968
262262   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
263263   MCFG_SCREEN_SIZE(512, 256)
264264   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
265   MCFG_SCREEN_UPDATE_STATIC( itgambl3 )
265   MCFG_SCREEN_UPDATE_DRIVER(itgambl3_state, screen_update_itgambl3)
266266
267267
268268   MCFG_GFXDECODE(itgambl3)
trunk/src/mame/drivers/dkong.c
r17967r17968
16611661    /* video hardware */
16621662    MCFG_SCREEN_ADD("screen", RASTER)
16631663    MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
1664    MCFG_SCREEN_UPDATE_STATIC(dkong)
1664   MCFG_SCREEN_UPDATE_DRIVER(dkong_state, screen_update_dkong)
16651665
16661666    MCFG_GFXDECODE(dkong)
16671667    MCFG_PALETTE_LENGTH(DK2B_PALETTE_LENGTH)
r17967r17968
17241724    /* video hardware */
17251725    MCFG_SCREEN_ADD("screen", RASTER)
17261726    MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
1727    MCFG_SCREEN_UPDATE_STATIC(dkong)
1727   MCFG_SCREEN_UPDATE_DRIVER(dkong_state, screen_update_dkong)
17281728
17291729    MCFG_GFXDECODE(dkong)
17301730    MCFG_PALETTE_LENGTH(DK3_PALETTE_LENGTH)
r17967r17968
17521752    MCFG_PALETTE_LENGTH(DK2B_PALETTE_LENGTH)
17531753    MCFG_PALETTE_INIT_OVERRIDE(dkong_state,dkong2b)  /* wrong! */
17541754   MCFG_SCREEN_MODIFY("screen")
1755    MCFG_SCREEN_UPDATE_STATIC(pestplce)
1755   MCFG_SCREEN_UPDATE_DRIVER(dkong_state, screen_update_pestplce)
17561756
17571757MACHINE_CONFIG_END
17581758
r17967r17968
17901790
17911791    /* video hardware */
17921792   MCFG_SCREEN_MODIFY("screen")
1793    MCFG_SCREEN_UPDATE_STATIC(spclforc)
1793   MCFG_SCREEN_UPDATE_DRIVER(dkong_state, screen_update_spclforc)
17941794
17951795MACHINE_CONFIG_END
17961796
trunk/src/mame/drivers/acefruit.c
r17967r17968
3939   DECLARE_DRIVER_INIT(sidewndr);
4040   virtual void video_start();
4141   virtual void palette_init();
42   UINT32 screen_update_acefruit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4243};
4344
4445
r17967r17968
8990   state->m_refresh_timer->adjust( attotime::zero );
9091}
9192
92static SCREEN_UPDATE_IND16( acefruit )
93UINT32 acefruit_state::screen_update_acefruit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
9394{
94   acefruit_state *state = screen.machine().driver_data<acefruit_state>();
9595   int startrow = cliprect.min_y / 8;
9696   int endrow = cliprect.max_y / 8;
9797   int row;
r17967r17968
106106      for( col = 0; col < 32; col++ )
107107      {
108108         int tile_index = ( col * 32 ) + row;
109         int code = state->m_videoram[ tile_index ];
110         int color = state->m_colorram[ tile_index ];
109         int code = m_videoram[ tile_index ];
110         int color = m_colorram[ tile_index ];
111111
112112         if( color < 0x4 )
113113         {
r17967r17968
123123
124124            for( x = 0; x < 16; x++ )
125125            {
126               int sprite = ( state->m_spriteram[ ( spriteindex / 64 ) % 6 ] & 0xf ) ^ 0xf;
126               int sprite = ( m_spriteram[ ( spriteindex / 64 ) % 6 ] & 0xf ) ^ 0xf;
127127               const UINT8 *gfxdata = gfx->get_data(sprite);
128128
129129               for( y = 0; y < 8; y++ )
r17967r17968
592592   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
593593   MCFG_SCREEN_SIZE(512, 256)
594594   MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 255)
595   MCFG_SCREEN_UPDATE_STATIC(acefruit)
595   MCFG_SCREEN_UPDATE_DRIVER(acefruit_state, screen_update_acefruit)
596596
597597   MCFG_PALETTE_LENGTH(16)
598598
trunk/src/mame/drivers/sprint4.c
r17967r17968
404404   /* video hardware */
405405   MCFG_SCREEN_ADD("screen", RASTER)
406406   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, 0, 256, VTOTAL, 0, 224)
407   MCFG_SCREEN_UPDATE_STATIC(sprint4)
408   MCFG_SCREEN_VBLANK_STATIC(sprint4)
407   MCFG_SCREEN_UPDATE_DRIVER(sprint4_state, screen_update_sprint4)
408   MCFG_SCREEN_VBLANK_DRIVER(sprint4_state, screen_eof_sprint4)
409409
410410   MCFG_GFXDECODE(sprint4)
411411   MCFG_PALETTE_LENGTH(10)
trunk/src/mame/drivers/appoooh.c
r17967r17968
475475   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
476476   MCFG_SCREEN_SIZE(32*8, 32*8)
477477   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
478   MCFG_SCREEN_UPDATE_STATIC(appoooh)
478   MCFG_SCREEN_UPDATE_DRIVER(appoooh_state, screen_update_appoooh)
479479
480480   MCFG_GFXDECODE(appoooh)
481481   MCFG_PALETTE_LENGTH(32*8+32*8)
r17967r17968
493493   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
494494   MCFG_SCREEN_SIZE(32*8, 32*8)
495495   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
496   MCFG_SCREEN_UPDATE_STATIC(robowres)
496   MCFG_SCREEN_UPDATE_DRIVER(appoooh_state, screen_update_robowres)
497497
498498   MCFG_GFXDECODE(robowres)
499499   MCFG_PALETTE_LENGTH(32*8+32*8)
trunk/src/mame/drivers/travrusa.c
r17967r17968
312312            /* talks about 55Hz and 1790ms vblank duration. */
313313   MCFG_SCREEN_SIZE(32*8, 32*8)
314314   MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 0*8, 32*8-1)
315   MCFG_SCREEN_UPDATE_STATIC(travrusa)
315   MCFG_SCREEN_UPDATE_DRIVER(travrusa_state, screen_update_travrusa)
316316
317317   MCFG_GFXDECODE(travrusa)
318318
trunk/src/mame/drivers/metlclsh.c
r17967r17968
297297   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)   // we're using PORT_VBLANK
298298   MCFG_SCREEN_SIZE(32*8, 32*8)
299299   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 30*8-1)
300   MCFG_SCREEN_UPDATE_STATIC(metlclsh)
300   MCFG_SCREEN_UPDATE_DRIVER(metlclsh_state, screen_update_metlclsh)
301301
302302   MCFG_GFXDECODE(metlclsh)
303303   MCFG_PALETTE_LENGTH(3 * 16)
trunk/src/mame/drivers/goldstar.c
r17967r17968
58655865   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
58665866   MCFG_SCREEN_SIZE(64*8, 32*8)
58675867   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
5868   MCFG_SCREEN_UPDATE_STATIC(goldstar)
5868   MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
58695869
58705870   MCFG_GFXDECODE(goldstar)
58715871   MCFG_PALETTE_LENGTH(256)
r17967r17968
58995899//  MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
59005900   MCFG_SCREEN_SIZE(64*8, 32*8)
59015901   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
5902   MCFG_SCREEN_UPDATE_STATIC(goldstar)
5902   MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
59035903
59045904   MCFG_GFXDECODE(bl)
59055905   MCFG_PALETTE_LENGTH(256)
r17967r17968
59325932//  MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
59335933   MCFG_SCREEN_SIZE(64*8, 32*8)
59345934   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
5935   MCFG_SCREEN_UPDATE_STATIC(goldstar)
5935   MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
59365936
59375937   MCFG_GFXDECODE(ml)
59385938   MCFG_PALETTE_LENGTH(256)
r17967r17968
60316031//  MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
60326032   MCFG_SCREEN_SIZE(64*8, 32*8)
60336033   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
6034   MCFG_SCREEN_UPDATE_STATIC(goldstar)
6034   MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
60356035
60366036   MCFG_GFXDECODE(chry10)
60376037   MCFG_PALETTE_LENGTH(256)
r17967r17968
60736073//  MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
60746074   MCFG_SCREEN_SIZE(64*8, 32*8)
60756075   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
6076   MCFG_SCREEN_UPDATE_STATIC(goldstar)
6076   MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
60776077
60786078   MCFG_GFXDECODE(cb3c)
60796079   MCFG_PALETTE_LENGTH(256)
r17967r17968
61146114//  MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
61156115   MCFG_SCREEN_SIZE(64*8, 32*8)
61166116   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
6117   MCFG_SCREEN_UPDATE_STATIC(goldstar)
6117   MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
61186118
61196119   MCFG_GFXDECODE(ncb3)
61206120   MCFG_PALETTE_LENGTH(256)
r17967r17968
61556155//  MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
61566156   MCFG_SCREEN_SIZE(64*8, 32*8)
61576157   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
6158   MCFG_SCREEN_UPDATE_STATIC(goldstar)
6158   MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
61596159
61606160   MCFG_GFXDECODE(cmbitmap)
61616161   MCFG_PALETTE_LENGTH(256)
r17967r17968
61956195//  MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
61966196   MCFG_SCREEN_SIZE(64*8, 32*8)
61976197   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
6198   MCFG_SCREEN_UPDATE_STATIC(goldstar)
6198   MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
61996199
62006200   MCFG_GFXDECODE(cm)
62016201   MCFG_PALETTE_LENGTH(256)
r17967r17968
62306230//  MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
62316231   MCFG_SCREEN_SIZE(64*8, 32*8)
62326232   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 1*8, 31*8-1)
6233   MCFG_SCREEN_UPDATE_STATIC(cmast91)
6233   MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_cmast91)
62346234
62356235   MCFG_GFXDECODE(cmast91)
62366236   MCFG_PALETTE_LENGTH(256)
r17967r17968
62746274   MCFG_SCREEN_SIZE(64*8, 32*8)
62756275   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
62766276   MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8)
6277   MCFG_SCREEN_UPDATE_STATIC(goldstar)
6277   MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
62786278
62796279   MCFG_GFXDECODE(ncb3)
62806280   MCFG_PALETTE_LENGTH(256)
r17967r17968
63146314   MCFG_SCREEN_SIZE(64*8, 32*8)
63156315   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
63166316   MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8)
6317   MCFG_SCREEN_UPDATE_STATIC(bingowng)
6317   MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_bingowng)
63186318
63196319   MCFG_GFXDECODE(ncb3)
63206320   MCFG_PALETTE_LENGTH(256)
r17967r17968
63546354   MCFG_SCREEN_SIZE(64*8, 32*8)
63556355   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
63566356   MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8)
6357   MCFG_SCREEN_UPDATE_STATIC(bingowng)
6357   MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_bingowng)
63586358
63596359   MCFG_GFXDECODE(bingownga)      /* GFX Decode is the only difference with the parent machine */
63606360   MCFG_PALETTE_LENGTH(256)
r17967r17968
64106410//  MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
64116411   MCFG_SCREEN_SIZE(64*8, 32*8)
64126412   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
6413   MCFG_SCREEN_UPDATE_STATIC(magical)
6413   MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_magical)
64146414   MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,magodds)
64156415
64166416   MCFG_GFXDECODE(magodds)
r17967r17968
64526452//  MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
64536453   MCFG_SCREEN_SIZE(64*8, 32*8)
64546454   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
6455   MCFG_SCREEN_UPDATE_STATIC(goldstar)
6455   MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
64566456   MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8)
64576457
64586458   MCFG_GFXDECODE(ncb3)
r17967r17968
64886488//  MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
64896489   MCFG_SCREEN_SIZE(64*8, 32*8)
64906490   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
6491   MCFG_SCREEN_UPDATE_STATIC(goldstar)
6491   MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
64926492   MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8)
64936493
64946494   MCFG_GFXDECODE(ncb3)
r17967r17968
65296529//  MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
65306530   MCFG_SCREEN_SIZE(64*8, 32*8)
65316531   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
6532   MCFG_SCREEN_UPDATE_STATIC(goldstar)
6532   MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
65336533   MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8)
65346534
65356535   MCFG_GFXDECODE(ncb3)
r17967r17968
65716571//  MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
65726572   MCFG_SCREEN_SIZE(64*8, 32*8)
65736573   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
6574   MCFG_SCREEN_UPDATE_STATIC(goldstar)
6574   MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
65756575
65766576   MCFG_GFXDECODE(cm)
65776577   MCFG_PALETTE_LENGTH(256)
r17967r17968
66106610//  MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
66116611   MCFG_SCREEN_SIZE(64*8, 32*8)
66126612   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
6613   MCFG_SCREEN_UPDATE_STATIC(amcoe1a)
6613   MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_amcoe1a)
66146614
66156615   MCFG_GFXDECODE(cm)
66166616   MCFG_PALETTE_LENGTH(256)
r17967r17968
66496649//  MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
66506650   MCFG_SCREEN_SIZE(64*8, 32*8)
66516651   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
6652   MCFG_SCREEN_UPDATE_STATIC(goldstar)
6652   MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
66536653
66546654   MCFG_GFXDECODE(cm)
66556655   MCFG_PALETTE_LENGTH(256)
r17967r17968
66836683//  MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
66846684   MCFG_SCREEN_SIZE(64*8, 32*8)
66856685   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
6686   MCFG_SCREEN_UPDATE_STATIC(goldstar)
6686   MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
66876687
66886688   MCFG_GFXDECODE(nfm)
66896689   MCFG_PALETTE_LENGTH(256)
r17967r17968
67146714//  MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
67156715   MCFG_SCREEN_SIZE(64*8, 32*8)
67166716   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 1*8, 31*8-1)
6717   MCFG_SCREEN_UPDATE_STATIC(unkch)
6717   MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_unkch)
67186718
67196719   MCFG_GFXDECODE(unkch)
67206720   MCFG_PALETTE_LENGTH(512)
r17967r17968
67626762//  MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
67636763   MCFG_SCREEN_SIZE(64*8, 32*8)
67646764   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
6765   MCFG_SCREEN_UPDATE_STATIC(goldstar)
6765   MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
67666766
67676767   MCFG_GFXDECODE(pkrmast)
67686768   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/dbz.c
r17967r17968
398398   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
399399   MCFG_SCREEN_SIZE(64*8, 40*8)
400400   MCFG_SCREEN_VISIBLE_AREA(0, 48*8-1, 0, 32*8-1)
401   MCFG_SCREEN_UPDATE_STATIC(dbz)
401   MCFG_SCREEN_UPDATE_DRIVER(dbz_state, screen_update_dbz)
402402
403403   MCFG_GFXDECODE(dbz)
404404
trunk/src/mame/drivers/skylncr.c
r17967r17968
108108   TILE_GET_INFO_MEMBER(get_reel_3_tile_info);
109109   TILE_GET_INFO_MEMBER(get_reel_4_tile_info);
110110   virtual void video_start();
111   UINT32 screen_update_skylncr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
111112};
112113
113114
r17967r17968
182183}
183184
184185
185static SCREEN_UPDATE_IND16( skylncr )
186UINT32 skylncr_state::screen_update_skylncr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
186187{
187   skylncr_state *state = screen.machine().driver_data<skylncr_state>();
188188   int i;
189189
190190   bitmap.fill(0, cliprect);
191   state->m_reel_1_tilemap->draw(bitmap, cliprect, 0, 0);
191   m_reel_1_tilemap->draw(bitmap, cliprect, 0, 0);
192192
193193   // are these hardcoded, or registers?
194194   const rectangle visible1(0*8, (20+48)*8-1,  4*8,  (4+7)*8-1);
r17967r17968
197197
198198   for (i= 0;i < 64;i++)
199199   {
200      state->m_reel_2_tilemap->set_scrolly(i, state->m_reelscroll2[i]);
201      state->m_reel_3_tilemap->set_scrolly(i, state->m_reelscroll3[i]);
202      state->m_reel_4_tilemap->set_scrolly(i, state->m_reelscroll4[i]);
200      m_reel_2_tilemap->set_scrolly(i, m_reelscroll2[i]);
201      m_reel_3_tilemap->set_scrolly(i, m_reelscroll3[i]);
202      m_reel_4_tilemap->set_scrolly(i, m_reelscroll4[i]);
203203   }
204204
205   state->m_reel_2_tilemap->draw(bitmap, visible1, 0, 0);
206   state->m_reel_3_tilemap->draw(bitmap, visible2, 0, 0);
207   state->m_reel_4_tilemap->draw(bitmap, visible3, 0, 0);
205   m_reel_2_tilemap->draw(bitmap, visible1, 0, 0);
206   m_reel_3_tilemap->draw(bitmap, visible2, 0, 0);
207   m_reel_4_tilemap->draw(bitmap, visible3, 0, 0);
208208
209209
210   state->m_tmap->draw(bitmap, cliprect, 0, 0);
210   m_tmap->draw(bitmap, cliprect, 0, 0);
211211   return 0;
212212}
213213
r17967r17968
726726   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
727727   MCFG_SCREEN_SIZE(512, 256)
728728   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
729   MCFG_SCREEN_UPDATE_STATIC(skylncr)
729   MCFG_SCREEN_UPDATE_DRIVER(skylncr_state, screen_update_skylncr)
730730
731731   MCFG_GFXDECODE(skylncr)
732732   MCFG_PALETTE_LENGTH(0x200)
trunk/src/mame/drivers/seicross.c
r17967r17968
419419   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */   /* frames per second, vblank duration */)
420420   MCFG_SCREEN_SIZE(32*8, 32*8)
421421   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
422   MCFG_SCREEN_UPDATE_STATIC(seicross)
422   MCFG_SCREEN_UPDATE_DRIVER(seicross_state, screen_update_seicross)
423423
424424   MCFG_GFXDECODE(seicross)
425425   MCFG_PALETTE_LENGTH(64)
trunk/src/mame/drivers/spbactn.c
r17967r17968
360360   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
361361   MCFG_SCREEN_SIZE(64*8, 32*8)
362362   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
363   MCFG_SCREEN_UPDATE_STATIC(spbactn)
363   MCFG_SCREEN_UPDATE_DRIVER(spbactn_state, screen_update_spbactn)
364364
365365   MCFG_GFXDECODE(spbactn)
366366   MCFG_PALETTE_LENGTH(0x2800/2)
trunk/src/mame/drivers/system16.c
r17967r17968
20272027   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
20282028   MCFG_SCREEN_SIZE(40*8, 28*8)
20292029   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
2030   MCFG_SCREEN_UPDATE_STATIC(system16)
2030   MCFG_SCREEN_UPDATE_DRIVER(segas1x_bootleg_state, screen_update_system16)
20312031
20322032   MCFG_GFXDECODE(sys16)
20332033   MCFG_PALETTE_LENGTH(2048*SHADOW_COLORS_MULTIPLIER)
r17967r17968
21082108
21092109   MCFG_VIDEO_START_OVERRIDE(segas1x_bootleg_state, s16a_bootleg_shinobi )
21102110   MCFG_SCREEN_MODIFY("screen")
2111   MCFG_SCREEN_UPDATE_STATIC( s16a_bootleg )
2111   MCFG_SCREEN_UPDATE_DRIVER(segas1x_bootleg_state, screen_update_s16a_bootleg)
21122112MACHINE_CONFIG_END
21132113
21142114static MACHINE_CONFIG_DERIVED( passshtb, system16_7759 )
r17967r17968
21232123
21242124   MCFG_VIDEO_START_OVERRIDE(segas1x_bootleg_state, s16a_bootleg_passsht )
21252125   MCFG_SCREEN_MODIFY("screen")
2126   MCFG_SCREEN_UPDATE_STATIC( s16a_bootleg )
2126   MCFG_SCREEN_UPDATE_DRIVER(segas1x_bootleg_state, screen_update_s16a_bootleg)
21272127MACHINE_CONFIG_END
21282128
21292129
r17967r17968
21402140
21412141   MCFG_VIDEO_START_OVERRIDE(segas1x_bootleg_state, s16a_bootleg_passsht )
21422142   MCFG_SCREEN_MODIFY("screen")
2143   MCFG_SCREEN_UPDATE_STATIC( s16a_bootleg_passht4b )
2143   MCFG_SCREEN_UPDATE_DRIVER(segas1x_bootleg_state, screen_update_s16a_bootleg_passht4b)
21442144MACHINE_CONFIG_END
21452145
21462146static MACHINE_CONFIG_DERIVED( wb3bb, system16 )
r17967r17968
21562156
21572157   MCFG_VIDEO_START_OVERRIDE(segas1x_bootleg_state, s16a_bootleg_wb3bl )
21582158   MCFG_SCREEN_MODIFY("screen")
2159   MCFG_SCREEN_UPDATE_STATIC( s16a_bootleg )
2159   MCFG_SCREEN_UPDATE_DRIVER(segas1x_bootleg_state, screen_update_s16a_bootleg)
21602160MACHINE_CONFIG_END
21612161
21622162
r17967r17968
21742174   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
21752175   MCFG_SCREEN_SIZE(40*8, 28*8)
21762176   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
2177   MCFG_SCREEN_UPDATE_STATIC(system16)
2177   MCFG_SCREEN_UPDATE_DRIVER(segas1x_bootleg_state, screen_update_system16)
21782178
21792179   MCFG_GFXDECODE(sys16)
21802180   MCFG_PALETTE_LENGTH(2048*SHADOW_COLORS_MULTIPLIER)
r17967r17968
23072307   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
23082308   MCFG_SCREEN_SIZE(40*8, 28*8)
23092309   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
2310   MCFG_SCREEN_UPDATE_STATIC(system18old)
2310   MCFG_SCREEN_UPDATE_DRIVER(segas1x_bootleg_state, screen_update_system18old)
23112311
23122312   MCFG_GFXDECODE(sys16)
23132313   MCFG_PALETTE_LENGTH((2048+2048)*SHADOW_COLORS_MULTIPLIER) // 64 extra colours for vdp (but we use 2048 so shadow mask works)
trunk/src/mame/drivers/limenko.c
r17967r17968
8787   TILE_GET_INFO_MEMBER(get_md_tile_info);
8888   TILE_GET_INFO_MEMBER(get_fg_tile_info);
8989   virtual void video_start();
90   UINT32 screen_update_limenko(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
9091};
9192
9293
r17967r17968
514515   m_sprites_bitmap_pri.allocate(384,240);
515516}
516517
517static SCREEN_UPDATE_IND16( limenko )
518UINT32 limenko_state::screen_update_limenko(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
518519{
519   limenko_state *state = screen.machine().driver_data<limenko_state>();
520   // state->m_videoreg[4] ???? It always has this value: 0xffeffff8 (2 signed bytes? values: -17 and -8 ?)
520   // m_videoreg[4] ???? It always has this value: 0xffeffff8 (2 signed bytes? values: -17 and -8 ?)
521521
522522   screen.machine().priority_bitmap.fill(0, cliprect);
523523
524   state->m_bg_tilemap->enable(state->m_videoreg[0] & 4);
525   state->m_md_tilemap->enable(state->m_videoreg[0] & 2);
526   state->m_fg_tilemap->enable(state->m_videoreg[0] & 1);
524   m_bg_tilemap->enable(m_videoreg[0] & 4);
525   m_md_tilemap->enable(m_videoreg[0] & 2);
526   m_fg_tilemap->enable(m_videoreg[0] & 1);
527527
528   state->m_bg_tilemap->set_scrolly(0, state->m_videoreg[3] & 0xffff);
529   state->m_md_tilemap->set_scrolly(0, state->m_videoreg[2] & 0xffff);
530   state->m_fg_tilemap->set_scrolly(0, state->m_videoreg[1] & 0xffff);
528   m_bg_tilemap->set_scrolly(0, m_videoreg[3] & 0xffff);
529   m_md_tilemap->set_scrolly(0, m_videoreg[2] & 0xffff);
530   m_fg_tilemap->set_scrolly(0, m_videoreg[1] & 0xffff);
531531
532   state->m_bg_tilemap->set_scrollx(0, (state->m_videoreg[3] & 0xffff0000) >> 16);
533   state->m_md_tilemap->set_scrollx(0, (state->m_videoreg[2] & 0xffff0000) >> 16);
534   state->m_fg_tilemap->set_scrollx(0, (state->m_videoreg[1] & 0xffff0000) >> 16);
532   m_bg_tilemap->set_scrollx(0, (m_videoreg[3] & 0xffff0000) >> 16);
533   m_md_tilemap->set_scrollx(0, (m_videoreg[2] & 0xffff0000) >> 16);
534   m_fg_tilemap->set_scrollx(0, (m_videoreg[1] & 0xffff0000) >> 16);
535535
536   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
537   state->m_md_tilemap->draw(bitmap, cliprect, 0,0);
538   state->m_fg_tilemap->draw(bitmap, cliprect, 0,1);
536   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
537   m_md_tilemap->draw(bitmap, cliprect, 0,0);
538   m_fg_tilemap->draw(bitmap, cliprect, 0,1);
539539
540   if(state->m_videoreg[0] & 8)
541      copy_sprites(screen.machine(), bitmap, state->m_sprites_bitmap, screen.machine().priority_bitmap, cliprect);
540   if(m_videoreg[0] & 8)
541      copy_sprites(screen.machine(), bitmap, m_sprites_bitmap, screen.machine().priority_bitmap, cliprect);
542542
543543   return 0;
544544}
r17967r17968
762762   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
763763   MCFG_SCREEN_SIZE(384, 240)
764764   MCFG_SCREEN_VISIBLE_AREA(0, 383, 0, 239)
765   MCFG_SCREEN_UPDATE_STATIC(limenko)
765   MCFG_SCREEN_UPDATE_DRIVER(limenko_state, screen_update_limenko)
766766
767767   MCFG_GFXDECODE(limenko)
768768   MCFG_PALETTE_LENGTH(0x1000)
r17967r17968
793793   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
794794   MCFG_SCREEN_SIZE(384, 240)
795795   MCFG_SCREEN_VISIBLE_AREA(0, 383, 0, 239)
796   MCFG_SCREEN_UPDATE_STATIC(limenko)
796   MCFG_SCREEN_UPDATE_DRIVER(limenko_state, screen_update_limenko)
797797
798798   MCFG_GFXDECODE(limenko)
799799   MCFG_PALETTE_LENGTH(0x1000)
trunk/src/mame/drivers/pengo.c
r17967r17968
391391
392392   MCFG_SCREEN_ADD("screen", RASTER)
393393   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
394   MCFG_SCREEN_UPDATE_STATIC(pacman)
394   MCFG_SCREEN_UPDATE_DRIVER(pengo_state, screen_update_pacman)
395395
396396   MCFG_PALETTE_INIT_OVERRIDE(pengo_state,pacman)
397397   MCFG_VIDEO_START_OVERRIDE(pengo_state,pengo)
trunk/src/mame/drivers/prehisle.c
r17967r17968
222222   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
223223   MCFG_SCREEN_SIZE(32*8, 32*8)
224224   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
225   MCFG_SCREEN_UPDATE_STATIC(prehisle)
225   MCFG_SCREEN_UPDATE_DRIVER(prehisle_state, screen_update_prehisle)
226226
227227   MCFG_GFXDECODE(prehisle)
228228   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/simpsons.c
r17967r17968
326326   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
327327   MCFG_SCREEN_SIZE(64*8, 32*8)
328328   MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
329   MCFG_SCREEN_UPDATE_STATIC(simpsons)
329   MCFG_SCREEN_UPDATE_DRIVER(simpsons_state, screen_update_simpsons)
330330
331331   MCFG_PALETTE_LENGTH(2048)
332332
trunk/src/mame/drivers/actfancr.c
r17967r17968
337337   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
338338   MCFG_SCREEN_SIZE(32*8, 32*8)
339339   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
340   MCFG_SCREEN_UPDATE_STATIC(actfancr)
340   MCFG_SCREEN_UPDATE_DRIVER(actfancr_state, screen_update_actfancr)
341341
342342   MCFG_GFXDECODE(actfan)
343343   MCFG_PALETTE_LENGTH(768)
r17967r17968
387387   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
388388   MCFG_SCREEN_SIZE(32*8, 32*8)
389389   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
390   MCFG_SCREEN_UPDATE_STATIC(actfancr)
390   MCFG_SCREEN_UPDATE_DRIVER(actfancr_state, screen_update_actfancr)
391391
392392   MCFG_GFXDECODE(triothep)
393393   MCFG_PALETTE_LENGTH(768)
trunk/src/mame/drivers/polepos.c
r17967r17968
908908   /* video hardware */
909909   MCFG_SCREEN_ADD("screen", RASTER)
910910   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 384, 0, 256, 264, 16, 224+16)
911   MCFG_SCREEN_UPDATE_STATIC(polepos)
911   MCFG_SCREEN_UPDATE_DRIVER(polepos_state, screen_update_polepos)
912912
913913   MCFG_GFXDECODE(polepos)
914914   MCFG_PALETTE_LENGTH(0x0f00)
r17967r17968
987987   /* video hardware */
988988   MCFG_SCREEN_ADD("screen", RASTER)
989989   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 384, 0, 256, 264, 16, 224+16)
990   MCFG_SCREEN_UPDATE_STATIC(polepos)
990   MCFG_SCREEN_UPDATE_DRIVER(polepos_state, screen_update_polepos)
991991
992992   MCFG_GFXDECODE(polepos)
993993   MCFG_PALETTE_LENGTH(0x0f00)
trunk/src/mame/drivers/model1.c
r17967r17968
15351535
15361536   MCFG_SCREEN_ADD("screen", RASTER)
15371537   MCFG_SCREEN_RAW_PARAMS(XTAL_16MHz, 656, 0/*+69*/, 496/*+69*/, 424, 0/*+25*/, 384/*+25*/)
1538   MCFG_SCREEN_UPDATE_STATIC(model1)
1539   MCFG_SCREEN_VBLANK_STATIC(model1)
1538   MCFG_SCREEN_UPDATE_DRIVER(model1_state, screen_update_model1)
1539   MCFG_SCREEN_VBLANK_DRIVER(model1_state, screen_eof_model1)
15401540
15411541   MCFG_PALETTE_LENGTH(8192)
15421542
r17967r17968
15841584
15851585   MCFG_SCREEN_ADD("screen", RASTER)
15861586   MCFG_SCREEN_RAW_PARAMS(XTAL_16MHz, 656, 0/*+69*/, 496/*+69*/, 424, 0/*+25*/, 384/*+25*/)
1587   MCFG_SCREEN_UPDATE_STATIC(model1)
1588   MCFG_SCREEN_VBLANK_STATIC(model1)
1587   MCFG_SCREEN_UPDATE_DRIVER(model1_state, screen_update_model1)
1588   MCFG_SCREEN_VBLANK_DRIVER(model1_state, screen_eof_model1)
15891589
15901590   MCFG_PALETTE_LENGTH(8192)
15911591
trunk/src/mame/drivers/tank8.c
r17967r17968
345345   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(30 * 1000000 / 15681))
346346   MCFG_SCREEN_SIZE(512, 524)
347347   MCFG_SCREEN_VISIBLE_AREA(16, 495, 0, 463)
348   MCFG_SCREEN_UPDATE_STATIC(tank8)
349   MCFG_SCREEN_VBLANK_STATIC(tank8)
348   MCFG_SCREEN_UPDATE_DRIVER(tank8_state, screen_update_tank8)
349   MCFG_SCREEN_VBLANK_DRIVER(tank8_state, screen_eof_tank8)
350350
351351   MCFG_GFXDECODE(tank8)
352352   MCFG_PALETTE_LENGTH(20)
trunk/src/mame/drivers/poo.c
r17967r17968
6868   DECLARE_READ8_MEMBER(timer_r);
6969   virtual void video_start();
7070   virtual void palette_init();
71   UINT32 screen_update_unclepoo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7172};
7273
7374
r17967r17968
7576{
7677}
7778
78static SCREEN_UPDATE_IND16(unclepoo)
79UINT32 poo_state::screen_update_unclepoo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
7980{
80   poo_state *state = screen.machine().driver_data<poo_state>();
8181   int y,x;
8282   int count;
8383   gfx_element *gfx = screen.machine().gfx[0];
r17967r17968
8888   {
8989      for (y=0;y<32;y++)
9090      {
91         int tile = state->m_vram[count+0x000] | ((state->m_vram[count+0x400] & 3) <<8);
92         int color = (state->m_vram[count+0x400] & 0x38) >> 3;
93         int scrolly = (state->m_scrolly[x*4]);
91         int tile = m_vram[count+0x000] | ((m_vram[count+0x400] & 3) <<8);
92         int color = (m_vram[count+0x400] & 0x38) >> 3;
93         int scrolly = (m_scrolly[x*4]);
9494
95         drawgfx_opaque(bitmap,cliprect,gfx,tile,color+state->m_vram_colbank,0,0,x*8,256-(y*8)+scrolly);
96         drawgfx_opaque(bitmap,cliprect,gfx,tile,color+state->m_vram_colbank,0,0,x*8,0-(y*8)+scrolly);
95         drawgfx_opaque(bitmap,cliprect,gfx,tile,color+m_vram_colbank,0,0,x*8,256-(y*8)+scrolly);
96         drawgfx_opaque(bitmap,cliprect,gfx,tile,color+m_vram_colbank,0,0,x*8,0-(y*8)+scrolly);
9797
9898         count++;
9999      }
r17967r17968
104104
105105      for(i=0;i<0x80;i+=4)
106106      {
107         spr_offs = state->m_sprites[i+2] | (state->m_sprites[i+3] & 3) << 8;
108         y = state->m_sprites[i+0]+8;
109         x = state->m_sprites[i+1];
110         col = (state->m_sprites[i+3] & 0xf8) >> 3;
107         spr_offs = m_sprites[i+2] | (m_sprites[i+3] & 3) << 8;
108         y = m_sprites[i+0]+8;
109         x = m_sprites[i+1];
110         col = (m_sprites[i+3] & 0xf8) >> 3;
111111         fx = 0;
112112         fy = 0;
113113
r17967r17968
353353   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
354354   MCFG_SCREEN_SIZE(256, 256)
355355   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-1)
356   MCFG_SCREEN_UPDATE_STATIC(unclepoo)
356   MCFG_SCREEN_UPDATE_DRIVER(poo_state, screen_update_unclepoo)
357357
358358   MCFG_GFXDECODE(unclepoo)
359359   MCFG_PALETTE_LENGTH(0x100)
trunk/src/mame/drivers/galgame.c
r17967r17968
4747   DECLARE_DRIVER_INIT(galaxygame);
4848   virtual void machine_reset();
4949   virtual void palette_init();
50   UINT32 screen_update_galaxygame(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5051};
5152
5253/*************************************
r17967r17968
168169 *
169170 *************************************/
170171
171static SCREEN_UPDATE_IND16( galaxygame )
172UINT32 galaxygame_state::screen_update_galaxygame(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
172173{
173   galaxygame_state *state = screen.machine().driver_data<galaxygame_state>();
174174   bitmap.fill(get_black_pen(screen.machine()), cliprect);
175   for (int i = 0; i < state->m_point_display_list_index; i++ )
175   for (int i = 0; i < m_point_display_list_index; i++ )
176176   {
177      bitmap.pix16(state->m_point_display_list[i].x >> 7, state->m_point_display_list[i].y >> 7) = 1;
177      bitmap.pix16(m_point_display_list[i].x >> 7, m_point_display_list[i].y >> 7) = 1;
178178   }
179179   return 0;
180180}
r17967r17968
339339   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
340340   MCFG_SCREEN_SIZE(512, 512)
341341   MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 511)
342   MCFG_SCREEN_UPDATE_STATIC(galaxygame)
342   MCFG_SCREEN_UPDATE_DRIVER(galaxygame_state, screen_update_galaxygame)
343343
344344   MCFG_PALETTE_LENGTH(2)
345345
trunk/src/mame/drivers/qdrmfgp.c
r17967r17968
690690   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
691691   MCFG_SCREEN_SIZE(64*8, 32*8)
692692   MCFG_SCREEN_VISIBLE_AREA(40, 40+384-1, 16, 16+224-1)
693   MCFG_SCREEN_UPDATE_STATIC(qdrmfgp)
693   MCFG_SCREEN_UPDATE_DRIVER(qdrmfgp_state, screen_update_qdrmfgp)
694694
695695   MCFG_PALETTE_LENGTH(2048)
696696
r17967r17968
731731   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
732732   MCFG_SCREEN_SIZE(64*8, 32*8)
733733   MCFG_SCREEN_VISIBLE_AREA(40, 40+384-1, 16, 16+224-1)
734   MCFG_SCREEN_UPDATE_STATIC(qdrmfgp)
734   MCFG_SCREEN_UPDATE_DRIVER(qdrmfgp_state, screen_update_qdrmfgp)
735735
736736   MCFG_PALETTE_LENGTH(2048)
737737
trunk/src/mame/drivers/starcrus.c
r17967r17968
148148   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
149149   MCFG_SCREEN_SIZE(32*8, 32*8)
150150   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
151   MCFG_SCREEN_UPDATE_STATIC(starcrus)
151   MCFG_SCREEN_UPDATE_DRIVER(starcrus_state, screen_update_starcrus)
152152
153153   MCFG_GFXDECODE(starcrus)
154154   MCFG_PALETTE_LENGTH(2)
trunk/src/mame/drivers/cps1.c
r17967r17968
30673067   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
30683068   MCFG_SCREEN_SIZE(64*8, 32*8)
30693069   MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
3070   MCFG_SCREEN_UPDATE_STATIC(cps1)
3071   MCFG_SCREEN_VBLANK_STATIC(cps1)
3070   MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_cps1)
3071   MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1)
30723072
30733073   MCFG_GFXDECODE(cps1)
30743074   MCFG_PALETTE_LENGTH(0xc00)
r17967r17968
31513151   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
31523152   MCFG_SCREEN_SIZE(64*8, 32*8)
31533153   MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
3154   MCFG_SCREEN_UPDATE_STATIC(cps1)
3155   MCFG_SCREEN_VBLANK_STATIC(cps1)
3154   MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_cps1)
3155   MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1)
31563156
31573157   MCFG_GFXDECODE(cps1)
31583158   MCFG_PALETTE_LENGTH(0xc00)
r17967r17968
32253225   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
32263226   MCFG_SCREEN_SIZE(64*8, 32*8)
32273227   MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
3228   MCFG_SCREEN_UPDATE_STATIC(cps1)
3229   MCFG_SCREEN_VBLANK_STATIC(cps1)
3228   MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_cps1)
3229   MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1)
32303230
32313231   MCFG_GFXDECODE(cps1)
32323232   MCFG_PALETTE_LENGTH(0xc00)
r17967r17968
33093309   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
33103310   MCFG_SCREEN_SIZE(64*8, 32*8)
33113311   MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
3312   MCFG_SCREEN_UPDATE_STATIC(cps1)
3313   MCFG_SCREEN_VBLANK_STATIC(cps1)
3312   MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_cps1)
3313   MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1)
33143314
33153315   MCFG_GFXDECODE(cps1)
33163316   MCFG_PALETTE_LENGTH(0xc00)
trunk/src/mame/drivers/yunsun16.c
r17967r17968
603603   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
604604   MCFG_SCREEN_SIZE(0x180, 0xe0)
605605   MCFG_SCREEN_VISIBLE_AREA(0+0x20, 0x180-1-0x20, 0, 0xe0-1)
606   MCFG_SCREEN_UPDATE_STATIC(yunsun16)
606   MCFG_SCREEN_UPDATE_DRIVER(yunsun16_state, screen_update_yunsun16)
607607
608608   MCFG_GFXDECODE(yunsun16)
609609   MCFG_PALETTE_LENGTH(8192)
r17967r17968
641641   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
642642   MCFG_SCREEN_SIZE(0x180, 0xe0)
643643   MCFG_SCREEN_VISIBLE_AREA(0, 0x180-1-4, 0, 0xe0-1)
644   MCFG_SCREEN_UPDATE_STATIC(yunsun16)
644   MCFG_SCREEN_UPDATE_DRIVER(yunsun16_state, screen_update_yunsun16)
645645
646646   MCFG_GFXDECODE(yunsun16)
647647   MCFG_PALETTE_LENGTH(8192)
trunk/src/mame/drivers/wiz.c
r17967r17968
735735   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */   /* frames per second, vblank duration */)
736736   MCFG_SCREEN_SIZE(32*8, 32*8)
737737   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
738   MCFG_SCREEN_UPDATE_STATIC(wiz)
738   MCFG_SCREEN_UPDATE_DRIVER(wiz_state, screen_update_wiz)
739739
740740   MCFG_GFXDECODE(wiz)
741741   MCFG_PALETTE_LENGTH(256)
r17967r17968
765765   /* video hardware */
766766   MCFG_GFXDECODE(stinger)
767767   MCFG_SCREEN_MODIFY("screen")
768   MCFG_SCREEN_UPDATE_STATIC(stinger)
768   MCFG_SCREEN_UPDATE_DRIVER(wiz_state, screen_update_stinger)
769769
770770   /* sound hardware */
771771   MCFG_DEVICE_REMOVE("8910.3")
r17967r17968
794794   /* video hardware */
795795   MCFG_GFXDECODE(stinger)
796796   MCFG_SCREEN_MODIFY("screen")
797   MCFG_SCREEN_UPDATE_STATIC(kungfut)
797   MCFG_SCREEN_UPDATE_DRIVER(wiz_state, screen_update_kungfut)
798798
799799MACHINE_CONFIG_END
800800
trunk/src/mame/drivers/scobra.c
r17967r17968
681681   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
682682   MCFG_SCREEN_SIZE(32*8, 32*8)
683683   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
684   MCFG_SCREEN_UPDATE_STATIC(galaxold)
684   MCFG_SCREEN_UPDATE_DRIVER(scobra_state, screen_update_galaxold)
685685
686686   MCFG_GFXDECODE(scobra)
687687   MCFG_PALETTE_LENGTH(32+64+2+1)   /* 32 for characters, 64 for stars, 2 for bullets, 1 for background */
r17967r17968
804804   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
805805   MCFG_SCREEN_SIZE(32*8, 32*8)
806806   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
807   MCFG_SCREEN_UPDATE_STATIC(galaxold)
807   MCFG_SCREEN_UPDATE_DRIVER(scobra_state, screen_update_galaxold)
808808
809809   MCFG_GFXDECODE(scobra)
810810   MCFG_PALETTE_LENGTH(32+64+2)   /* 32 for characters, 64 for stars, 2 for bullets */
trunk/src/mame/drivers/drtomy.c
r17967r17968
4040   virtual void machine_start();
4141   virtual void machine_reset();
4242   virtual void video_start();
43   UINT32 screen_update_drtomy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4344};
4445
4546
r17967r17968
131132   m_tilemap_fg->set_transparent_pen(0);
132133}
133134
134static SCREEN_UPDATE_IND16( drtomy )
135UINT32 drtomy_state::screen_update_drtomy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
135136{
136   drtomy_state *state = screen.machine().driver_data<drtomy_state>();
137137
138   state->m_tilemap_bg->draw(bitmap, cliprect, 0, 0);
139   state->m_tilemap_fg->draw(bitmap, cliprect, 0, 0);
138   m_tilemap_bg->draw(bitmap, cliprect, 0, 0);
139   m_tilemap_fg->draw(bitmap, cliprect, 0, 0);
140140   draw_sprites(screen.machine(), bitmap, cliprect);
141141   return 0;
142142}
r17967r17968
309309   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
310310   MCFG_SCREEN_SIZE(32*16, 32*16)
311311   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1)
312   MCFG_SCREEN_UPDATE_STATIC(drtomy)
312   MCFG_SCREEN_UPDATE_DRIVER(drtomy_state, screen_update_drtomy)
313313
314314   MCFG_GFXDECODE(drtomy)
315315   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/calorie.c
r17967r17968
112112   virtual void machine_start();
113113   virtual void machine_reset();
114114   virtual void video_start();
115   UINT32 screen_update_calorie(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
115116};
116117
117118
r17967r17968
150151   m_fg_tilemap->set_transparent_pen(0);
151152}
152153
153static SCREEN_UPDATE_IND16( calorie )
154UINT32 calorie_state::screen_update_calorie(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
154155{
155   calorie_state *state = screen.machine().driver_data<calorie_state>();
156156   int x;
157157
158   if (state->m_bg_bank & 0x10)
158   if (m_bg_bank & 0x10)
159159   {
160      state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
161      state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
160      m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
161      m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
162162   }
163163   else
164164   {
165      state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
165      m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
166166   }
167167
168168
r17967r17968
170170   {
171171      int xpos, ypos, tileno, color, flipx, flipy;
172172
173      tileno = state->m_sprites[x + 0];
174      color = state->m_sprites[x + 1] & 0x0f;
175      flipx = state->m_sprites[x + 1] & 0x40;
173      tileno = m_sprites[x + 0];
174      color = m_sprites[x + 1] & 0x0f;
175      flipx = m_sprites[x + 1] & 0x40;
176176      flipy = 0;
177      ypos = 0xff - state->m_sprites[x + 2];
178      xpos = state->m_sprites[x + 3];
177      ypos = 0xff - m_sprites[x + 2];
178      xpos = m_sprites[x + 3];
179179
180      if (state->flip_screen())
180      if (flip_screen())
181181      {
182         if (state->m_sprites[x + 1] & 0x10)
182         if (m_sprites[x + 1] & 0x10)
183183            ypos = 0xff - ypos + 32;
184184         else
185185            ypos = 0xff - ypos + 16;
r17967r17968
189189         flipy = !flipy;
190190      }
191191
192      if (state->m_sprites[x + 1] & 0x10)
192      if (m_sprites[x + 1] & 0x10)
193193      {
194194          /* 32x32 sprites */
195195         drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[3], tileno | 0x40, color, flipx, flipy, xpos, ypos - 31, 0);
r17967r17968
456456   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
457457   MCFG_SCREEN_SIZE(256, 256)
458458   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1)
459   MCFG_SCREEN_UPDATE_STATIC(calorie)
459   MCFG_SCREEN_UPDATE_DRIVER(calorie_state, screen_update_calorie)
460460
461461   MCFG_GFXDECODE(calorie)
462462   MCFG_PALETTE_LENGTH(0x100)
trunk/src/mame/drivers/galaxian.c
r17967r17968
20942094
20952095   MCFG_SCREEN_ADD("screen", RASTER)
20962096   MCFG_SCREEN_RAW_PARAMS(GALAXIAN_PIXEL_CLOCK, GALAXIAN_HTOTAL, GALAXIAN_HBEND, GALAXIAN_HBSTART, GALAXIAN_VTOTAL, GALAXIAN_VBEND, GALAXIAN_VBSTART)
2097   MCFG_SCREEN_UPDATE_STATIC(galaxian)
2097   MCFG_SCREEN_UPDATE_DRIVER(galaxian_state, screen_update_galaxian)
20982098
20992099
21002100   /* blinking frequency is determined by 555 counter with Ra=100k, Rb=10k, C=10uF */
trunk/src/mame/drivers/itech8.c
r17967r17968
17921792   /* video hardware */
17931793   MCFG_SCREEN_MODIFY("screen")
17941794   MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239)
1795   MCFG_SCREEN_UPDATE_STATIC(itech8_2layer)
1795   MCFG_SCREEN_UPDATE_DRIVER(itech8_state, screen_update_itech8_2layer)
17961796MACHINE_CONFIG_END
17971797
17981798
r17967r17968
18041804   /* video hardware */
18051805   MCFG_SCREEN_MODIFY("screen")
18061806   MCFG_SCREEN_VISIBLE_AREA(0, 399, 0, 239)
1807   MCFG_SCREEN_UPDATE_STATIC(itech8_grmatch)
1807   MCFG_SCREEN_UPDATE_DRIVER(itech8_state, screen_update_itech8_grmatch)
18081808
18091809   /* palette updater */
18101810   MCFG_TIMER_ADD_SCANLINE("palette", grmatch_palette_update, "screen", 0, 0)
r17967r17968
18191819   /* video hardware */
18201820   MCFG_SCREEN_MODIFY("screen")
18211821   MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239)
1822   MCFG_SCREEN_UPDATE_STATIC(itech8_2layer)
1822   MCFG_SCREEN_UPDATE_DRIVER(itech8_state, screen_update_itech8_2layer)
18231823MACHINE_CONFIG_END
18241824
18251825
r17967r17968
18311831   /* video hardware */
18321832   MCFG_SCREEN_MODIFY("screen")
18331833   MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239)
1834   MCFG_SCREEN_UPDATE_STATIC(itech8_2layer)
1834   MCFG_SCREEN_UPDATE_DRIVER(itech8_state, screen_update_itech8_2layer)
18351835MACHINE_CONFIG_END
18361836
18371837
r17967r17968
18471847   /* video hardware */
18481848   MCFG_SCREEN_MODIFY("screen")
18491849   MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239)
1850   MCFG_SCREEN_UPDATE_STATIC(slikshot)
1850   MCFG_SCREEN_UPDATE_DRIVER(itech8_state, screen_update_slikshot)
18511851   MCFG_VIDEO_START_OVERRIDE(itech8_state,slikshot)
18521852MACHINE_CONFIG_END
18531853
r17967r17968
18641864   /* video hardware */
18651865   MCFG_SCREEN_MODIFY("screen")
18661866   MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239)
1867   MCFG_SCREEN_UPDATE_STATIC(slikshot)
1867   MCFG_SCREEN_UPDATE_DRIVER(itech8_state, screen_update_slikshot)
18681868   MCFG_VIDEO_START_OVERRIDE(itech8_state,slikshot)
18691869MACHINE_CONFIG_END
18701870
r17967r17968
18771877   /* video hardware */
18781878   MCFG_SCREEN_MODIFY("screen")
18791879   MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239)
1880   MCFG_SCREEN_UPDATE_STATIC(itech8_2page)
1880   MCFG_SCREEN_UPDATE_DRIVER(itech8_state, screen_update_itech8_2page)
18811881MACHINE_CONFIG_END
18821882
18831883
r17967r17968
18971897   /* video hardware */
18981898   MCFG_SCREEN_MODIFY("screen")
18991899   MCFG_SCREEN_VISIBLE_AREA(0, 399, 0, 239)
1900   MCFG_SCREEN_UPDATE_STATIC(itech8_2page_large)
1900   MCFG_SCREEN_UPDATE_DRIVER(itech8_state, screen_update_itech8_2page_large)
19011901MACHINE_CONFIG_END
19021902
19031903
r17967r17968
19091909   /* video hardware */
19101910   MCFG_SCREEN_MODIFY("screen")
19111911   MCFG_SCREEN_VISIBLE_AREA(0, 399, 0, 239)
1912   MCFG_SCREEN_UPDATE_STATIC(itech8_2page_large)
1912   MCFG_SCREEN_UPDATE_DRIVER(itech8_state, screen_update_itech8_2page_large)
19131913MACHINE_CONFIG_END
19141914
19151915
r17967r17968
19251925   /* video hardware */
19261926   MCFG_SCREEN_MODIFY("screen")
19271927   MCFG_SCREEN_VISIBLE_AREA(24, 375, 0, 239)
1928   MCFG_SCREEN_UPDATE_STATIC(itech8_2page_large)
1928   MCFG_SCREEN_UPDATE_DRIVER(itech8_state, screen_update_itech8_2page_large)
19291929MACHINE_CONFIG_END
19301930
19311931
r17967r17968
19411941   /* video hardware */
19421942   MCFG_SCREEN_MODIFY("screen")
19431943   MCFG_SCREEN_VISIBLE_AREA(64, 423, 0, 239)
1944   MCFG_SCREEN_UPDATE_STATIC(itech8_2page_large)
1944   MCFG_SCREEN_UPDATE_DRIVER(itech8_state, screen_update_itech8_2page_large)
19451945MACHINE_CONFIG_END
19461946
19471947
r17967r17968
19561956   /* video hardware */
19571957   MCFG_SCREEN_MODIFY("screen")
19581958   MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239)
1959   MCFG_SCREEN_UPDATE_STATIC(itech8_2layer)
1959   MCFG_SCREEN_UPDATE_DRIVER(itech8_state, screen_update_itech8_2layer)
19601960MACHINE_CONFIG_END
19611961
19621962
trunk/src/mame/drivers/kickgoal.c
r17967r17968
666666   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
667667   MCFG_SCREEN_SIZE(64*8, 32*8)
668668   MCFG_SCREEN_VISIBLE_AREA(9*8, 55*8-1, 2*8, 30*8-1)
669   MCFG_SCREEN_UPDATE_STATIC(kickgoal)
669   MCFG_SCREEN_UPDATE_DRIVER(kickgoal_state, screen_update_kickgoal)
670670
671671   MCFG_GFXDECODE(kickgoal)
672672   MCFG_PALETTE_LENGTH(1024)
r17967r17968
701701   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
702702   MCFG_SCREEN_SIZE(64*8, 32*8)
703703   MCFG_SCREEN_VISIBLE_AREA(10*8+2, 54*8-1+2, 0*8, 30*8-1)
704   MCFG_SCREEN_UPDATE_STATIC(kickgoal)
704   MCFG_SCREEN_UPDATE_DRIVER(kickgoal_state, screen_update_kickgoal)
705705
706706   MCFG_GFXDECODE(actionhw)
707707   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/othldrby.c
r17967r17968
251251   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
252252   MCFG_SCREEN_SIZE(64*8, 32*8)
253253   MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 1*8, 31*8-1 )
254   MCFG_SCREEN_UPDATE_STATIC(othldrby)
255   MCFG_SCREEN_VBLANK_STATIC(othldrby)
254   MCFG_SCREEN_UPDATE_DRIVER(othldrby_state, screen_update_othldrby)
255   MCFG_SCREEN_VBLANK_DRIVER(othldrby_state, screen_eof_othldrby)
256256
257257   MCFG_GFXDECODE(othldrby)
258258   MCFG_PALETTE_LENGTH(0x800)
trunk/src/mame/drivers/bbusters.c
r17967r17968
659659
660660/******************************************************************************/
661661
662static SCREEN_VBLANK( bbuster )
662void bbusters_state::screen_eof_bbuster(screen_device &screen, bool state)
663663{
664   bbusters_state *state = screen.machine().driver_data<bbusters_state>();
665   state->m_spriteram->vblank_copy_rising(screen, vblank_on);
666   state->m_spriteram2->vblank_copy_rising(screen, vblank_on);
664   m_spriteram->vblank_copy_rising(screen, state);
665   m_spriteram2->vblank_copy_rising(screen, state);
667666}
668667
669668static MACHINE_CONFIG_START( bbusters, bbusters_state )
r17967r17968
684683   MCFG_SCREEN_REFRESH_RATE(60)
685684   MCFG_SCREEN_SIZE(64*8, 32*8)
686685   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
687   MCFG_SCREEN_UPDATE_STATIC(bbuster)
688   MCFG_SCREEN_VBLANK_STATIC(bbuster)
686   MCFG_SCREEN_UPDATE_DRIVER(bbusters_state, screen_update_bbuster)
687   MCFG_SCREEN_VBLANK_DRIVER(bbusters_state, screen_eof_bbuster)
689688
690689   MCFG_GFXDECODE(bbusters)
691690   MCFG_PALETTE_LENGTH(2048)
r17967r17968
722721   MCFG_SCREEN_REFRESH_RATE(60)
723722   MCFG_SCREEN_SIZE(64*8, 32*8)
724723   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
725   MCFG_SCREEN_UPDATE_STATIC(mechatt)
724   MCFG_SCREEN_UPDATE_DRIVER(bbusters_state, screen_update_mechatt)
726725   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
727726
728727   MCFG_GFXDECODE(mechatt)
trunk/src/mame/drivers/hyprduel.c
r17967r17968
687687   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
688688   MCFG_SCREEN_SIZE(320, 224)
689689   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, FIRST_VISIBLE_LINE, LAST_VISIBLE_LINE)
690   MCFG_SCREEN_UPDATE_STATIC(hyprduel)
690   MCFG_SCREEN_UPDATE_DRIVER(hyprduel_state, screen_update_hyprduel)
691691
692692   MCFG_GFXDECODE(14220)
693693   MCFG_PALETTE_LENGTH(8192)
r17967r17968
728728   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
729729   MCFG_SCREEN_SIZE(320, 224)
730730   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, FIRST_VISIBLE_LINE, LAST_VISIBLE_LINE)
731   MCFG_SCREEN_UPDATE_STATIC(hyprduel)
731   MCFG_SCREEN_UPDATE_DRIVER(hyprduel_state, screen_update_hyprduel)
732732
733733   MCFG_GFXDECODE(14220)
734734   MCFG_PALETTE_LENGTH(8192)
trunk/src/mame/drivers/arcadecl.c
r17967r17968
343343   /* note: these parameters are from published specs, not derived */
344344   /* the board uses an SOS-2 chip to generate video signals */
345345   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 456, 0+12, 336+12, 262, 0, 240)
346   MCFG_SCREEN_UPDATE_STATIC(arcadecl)
346   MCFG_SCREEN_UPDATE_DRIVER(arcadecl_state, screen_update_arcadecl)
347347
348348   MCFG_VIDEO_START_OVERRIDE(arcadecl_state,arcadecl)
349349
trunk/src/mame/drivers/flstory.c
r17967r17968
11021102   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
11031103   MCFG_SCREEN_SIZE(32*8, 32*8)
11041104   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1105   MCFG_SCREEN_UPDATE_STATIC(flstory)
1105   MCFG_SCREEN_UPDATE_DRIVER(flstory_state, screen_update_flstory)
11061106
11071107   MCFG_GFXDECODE(flstory)
11081108   MCFG_PALETTE_LENGTH(512)
r17967r17968
11591159   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
11601160   MCFG_SCREEN_SIZE(32*8, 32*8)
11611161   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1162   MCFG_SCREEN_UPDATE_STATIC(flstory)
1162   MCFG_SCREEN_UPDATE_DRIVER(flstory_state, screen_update_flstory)
11631163
11641164   MCFG_GFXDECODE(flstory)
11651165   MCFG_PALETTE_LENGTH(512)
r17967r17968
12161216   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
12171217   MCFG_SCREEN_SIZE(32*8, 32*8)
12181218   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1219   MCFG_SCREEN_UPDATE_STATIC(victnine)
1219   MCFG_SCREEN_UPDATE_DRIVER(flstory_state, screen_update_victnine)
12201220
12211221   MCFG_GFXDECODE(flstory)
12221222   MCFG_PALETTE_LENGTH(512)
r17967r17968
12791279   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
12801280   MCFG_SCREEN_SIZE(32*8, 32*8)
12811281   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1282   MCFG_SCREEN_UPDATE_STATIC(rumba)
1282   MCFG_SCREEN_UPDATE_DRIVER(flstory_state, screen_update_rumba)
12831283
12841284   MCFG_GFXDECODE(flstory)
12851285   MCFG_PALETTE_LENGTH(512)
trunk/src/mame/drivers/suprslam.c
r17967r17968
332332   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2300) /* hand-tuned */)
333333   MCFG_SCREEN_SIZE(64*8, 64*8)
334334   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
335   MCFG_SCREEN_UPDATE_STATIC(suprslam)
335   MCFG_SCREEN_UPDATE_DRIVER(suprslam_state, screen_update_suprslam)
336336
337337   MCFG_PALETTE_LENGTH(0x800)
338338
trunk/src/mame/drivers/calomega.c
r17967r17968
27492749   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
27502750   MCFG_SCREEN_SIZE((39+1)*8, (31+1)*8)                  /* Taken from MC6845 init, registers 00 & 04. Normally programmed with (value-1) */
27512751   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 31*8-1)    /* Taken from MC6845 init, registers 01 & 06 */
2752   MCFG_SCREEN_UPDATE_STATIC(calomega)
2752   MCFG_SCREEN_UPDATE_DRIVER(calomega_state, screen_update_calomega)
27532753
27542754   MCFG_GFXDECODE(calomega)
27552755   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/dgpix.c
r17967r17968
7777   DECLARE_DRIVER_INIT(kdynastg);
7878   virtual void machine_reset();
7979   virtual void video_start();
80   UINT32 screen_update_dgpix(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8081};
8182
8283
r17967r17968
291292   m_vram = auto_alloc_array(machine(), UINT32, 0x40000*2/4);
292293}
293294
294static SCREEN_UPDATE_IND16( dgpix )
295UINT32 dgpix_state::screen_update_dgpix(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
295296{
296   dgpix_state *state = screen.machine().driver_data<dgpix_state>();
297297   int y;
298298
299299   for (y = 0; y < 240; y++)
300300   {
301301      int x;
302      UINT32 *src = &state->m_vram[(state->m_vbuffer ? 0 : 0x10000) | (y << 8)];
302      UINT32 *src = &m_vram[(m_vbuffer ? 0 : 0x10000) | (y << 8)];
303303      UINT16 *dest = &bitmap.pix16(y);
304304
305305      for (x = 0; x < 320; x += 2)
r17967r17968
342342   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
343343   MCFG_SCREEN_SIZE(512, 256)
344344   MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
345   MCFG_SCREEN_UPDATE_STATIC(dgpix)
345   MCFG_SCREEN_UPDATE_DRIVER(dgpix_state, screen_update_dgpix)
346346
347347   MCFG_PALETTE_INIT(BBBBB_GGGGG_RRRRR)
348348   MCFG_PALETTE_LENGTH(32768)
trunk/src/mame/drivers/atetris.c
r17967r17968
354354   /* note: these parameters are from published specs, not derived */
355355   /* the board uses an SOS-2 chip to generate video signals */
356356   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 456, 0, 336, 262, 0, 240)
357   MCFG_SCREEN_UPDATE_STATIC(atetris)
357   MCFG_SCREEN_UPDATE_DRIVER(atetris_state, screen_update_atetris)
358358
359359
360360   /* sound hardware */
r17967r17968
386386   /* note: these parameters are from published specs, not derived */
387387   /* the board uses an SOS-2 chip to generate video signals */
388388   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 456, 0, 336, 262, 0, 240)
389   MCFG_SCREEN_UPDATE_STATIC(atetris)
389   MCFG_SCREEN_UPDATE_DRIVER(atetris_state, screen_update_atetris)
390390
391391
392392   /* sound hardware */
trunk/src/mame/drivers/4roses.c
r17967r17968
396396   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
397397   MCFG_SCREEN_SIZE((124+1)*4, (30+1)*8)            /* guess. taken from funworld games */
398398   MCFG_SCREEN_VISIBLE_AREA(0*4, 96*4-1, 0*8, 29*8-1)   /* guess. taken from funworld games */
399   MCFG_SCREEN_UPDATE_STATIC(funworld)
399   MCFG_SCREEN_UPDATE_DRIVER(_4roses_state, screen_update_funworld)
400400
401401   MCFG_GFXDECODE(4roses)
402402
trunk/src/mame/drivers/shaolins.c
r17967r17968
215215   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
216216   MCFG_SCREEN_SIZE(32*8, 32*8)
217217   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
218   MCFG_SCREEN_UPDATE_STATIC(shaolins)
218   MCFG_SCREEN_UPDATE_DRIVER(shaolins_state, screen_update_shaolins)
219219
220220   MCFG_GFXDECODE(shaolins)
221221   MCFG_PALETTE_LENGTH(16*8*16+16*8*16)
trunk/src/mame/drivers/bmcbowl.c
r17967r17968
137137   DECLARE_DRIVER_INIT(bmcbowl);
138138   virtual void machine_reset();
139139   virtual void video_start();
140   UINT32 screen_update_bmcbowl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
140141};
141142
142143
r17967r17968
148149{
149150}
150151
151static SCREEN_UPDATE_IND16( bmcbowl )
152UINT32 bmcbowl_state::screen_update_bmcbowl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
152153{
153   bmcbowl_state *state = screen.machine().driver_data<bmcbowl_state>();
154154/*
155155      280x230,4 bitmap layers, 8bpp,
156156        missing scroll and priorities   (maybe fixed ones)
r17967r17968
164164   {
165165      for (x=0;x<280;x+=2)
166166      {
167         pixdat = state->m_vid2[0x8000+z];
167         pixdat = m_vid2[0x8000+z];
168168
169169         if(pixdat&0xff)
170170            bitmap.pix16(y, x+1) = (pixdat&0xff);
171171         if(pixdat>>8)
172172            bitmap.pix16(y, x) = (pixdat>>8);
173173
174         pixdat = state->m_vid2[z];
174         pixdat = m_vid2[z];
175175
176176         if(pixdat&0xff)
177177            bitmap.pix16(y, x+1) = (pixdat&0xff);
178178         if(pixdat>>8)
179179            bitmap.pix16(y, x) = (pixdat>>8);
180180
181         pixdat = state->m_vid1[0x8000+z];
181         pixdat = m_vid1[0x8000+z];
182182
183183         if(pixdat&0xff)
184184            bitmap.pix16(y, x+1) = (pixdat&0xff);
185185         if(pixdat>>8)
186186            bitmap.pix16(y, x) = (pixdat>>8);
187187
188         pixdat = state->m_vid1[z];
188         pixdat = m_vid1[z];
189189
190190         if(pixdat&0xff)
191191            bitmap.pix16(y, x+1) = (pixdat&0xff);
r17967r17968
510510   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
511511   MCFG_SCREEN_SIZE(35*8, 30*8)
512512   MCFG_SCREEN_VISIBLE_AREA(0*8, 35*8-1, 0*8, 29*8-1)
513   MCFG_SCREEN_UPDATE_STATIC(bmcbowl)
513   MCFG_SCREEN_UPDATE_DRIVER(bmcbowl_state, screen_update_bmcbowl)
514514
515515   MCFG_PALETTE_LENGTH(256)
516516
trunk/src/mame/drivers/kyugo.c
r17967r17968
554554   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
555555   MCFG_SCREEN_SIZE(64*8, 32*8)
556556   MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 2*8, 30*8-1)
557   MCFG_SCREEN_UPDATE_STATIC(kyugo)
557   MCFG_SCREEN_UPDATE_DRIVER(kyugo_state, screen_update_kyugo)
558558
559559   MCFG_GFXDECODE(kyugo)
560560   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/lazercmd.c
r17967r17968
645645   MCFG_SCREEN_SIZE(HORZ_RES * HORZ_CHR, VERT_RES * VERT_CHR + 16)
646646   MCFG_SCREEN_VISIBLE_AREA(0 * HORZ_CHR, HORZ_RES * HORZ_CHR - 1,
647647                  0 * VERT_CHR, (VERT_RES - 1) * VERT_CHR - 1)
648   MCFG_SCREEN_UPDATE_STATIC(lazercmd)
648   MCFG_SCREEN_UPDATE_DRIVER(lazercmd_state, screen_update_lazercmd)
649649
650650   MCFG_GFXDECODE(lazercmd)
651651   MCFG_PALETTE_LENGTH(5)
r17967r17968
679679   MCFG_SCREEN_SIZE(HORZ_RES * HORZ_CHR, VERT_RES * VERT_CHR)
680680   MCFG_SCREEN_VISIBLE_AREA(0 * HORZ_CHR, HORZ_RES * HORZ_CHR - 1,
681681                   0 * VERT_CHR, VERT_RES * VERT_CHR - 1)
682   MCFG_SCREEN_UPDATE_STATIC(lazercmd)
682   MCFG_SCREEN_UPDATE_DRIVER(lazercmd_state, screen_update_lazercmd)
683683
684684   MCFG_GFXDECODE(lazercmd)
685685   MCFG_PALETTE_LENGTH(5)
r17967r17968
713713   MCFG_SCREEN_SIZE(HORZ_RES * HORZ_CHR, VERT_RES * VERT_CHR)
714714   MCFG_SCREEN_VISIBLE_AREA(0 * HORZ_CHR, HORZ_RES * HORZ_CHR - 1,
715715                  0 * VERT_CHR, (VERT_RES - 1) * VERT_CHR - 1)
716   MCFG_SCREEN_UPDATE_STATIC(lazercmd)
716   MCFG_SCREEN_UPDATE_DRIVER(lazercmd_state, screen_update_lazercmd)
717717
718718   MCFG_GFXDECODE(lazercmd)
719719   MCFG_PALETTE_LENGTH(5)
trunk/src/mame/drivers/blockade.c
r17967r17968
481481   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
482482   MCFG_SCREEN_SIZE(32*8, 28*8)
483483   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
484   MCFG_SCREEN_UPDATE_STATIC(blockade)
484   MCFG_SCREEN_UPDATE_DRIVER(blockade_state, screen_update_blockade)
485485
486486   MCFG_GFXDECODE(blockade)
487487   MCFG_PALETTE_LENGTH(2)
trunk/src/mame/drivers/lordgun.c
r17967r17968
673673   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
674674   MCFG_SCREEN_SIZE(0x200, 0x100)
675675   MCFG_SCREEN_VISIBLE_AREA(0,0x1c0-1, 0,0xe0-1)
676   MCFG_SCREEN_UPDATE_STATIC(lordgun)
676   MCFG_SCREEN_UPDATE_DRIVER(lordgun_state, screen_update_lordgun)
677677
678678   MCFG_GFXDECODE(lordgun)
679679   MCFG_PALETTE_LENGTH(0x800 * 8)   // 0x800 real colors, repeated per priority level
r17967r17968
715715   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
716716   MCFG_SCREEN_SIZE(0x200, 0x100)
717717   MCFG_SCREEN_VISIBLE_AREA(0,0x1c0-1, 0,0xe0-1)
718   MCFG_SCREEN_UPDATE_STATIC(lordgun)
718   MCFG_SCREEN_UPDATE_DRIVER(lordgun_state, screen_update_lordgun)
719719
720720   MCFG_GFXDECODE(lordgun)
721721   MCFG_PALETTE_LENGTH(0x800 * 8)   // 0x800 real colors, repeated per priority level
trunk/src/mame/drivers/lemmings.c
r17967r17968
278278   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
279279   MCFG_SCREEN_SIZE(40*8, 32*8)
280280   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
281   MCFG_SCREEN_UPDATE_STATIC(lemmings)
282   MCFG_SCREEN_VBLANK_STATIC(lemmings)
281   MCFG_SCREEN_UPDATE_DRIVER(lemmings_state, screen_update_lemmings)
282   MCFG_SCREEN_VBLANK_DRIVER(lemmings_state, screen_eof_lemmings)
283283
284284   MCFG_GFXDECODE(lemmings)
285285   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/espial.c
r17967r17968
337337   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
338338   MCFG_SCREEN_SIZE(32*8, 32*8)
339339   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
340   MCFG_SCREEN_UPDATE_STATIC(espial)
340   MCFG_SCREEN_UPDATE_DRIVER(espial_state, screen_update_espial)
341341
342342   MCFG_GFXDECODE(espial)
343343   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/tiamc1.c
r17967r17968
233233   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1600))
234234   MCFG_SCREEN_SIZE(256, 256)
235235   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1)
236   MCFG_SCREEN_UPDATE_STATIC(tiamc1)
236   MCFG_SCREEN_UPDATE_DRIVER(tiamc1_state, screen_update_tiamc1)
237237
238238   MCFG_GFXDECODE(tiamc1)
239239   MCFG_PALETTE_LENGTH(16)
trunk/src/mame/drivers/toaplan1.c
r17967r17968
15471547
15481548   MCFG_SCREEN_ADD("screen", RASTER)
15491549   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
1550   MCFG_SCREEN_UPDATE_STATIC(rallybik)
1551   MCFG_SCREEN_VBLANK_STATIC(rallybik)
1550   MCFG_SCREEN_UPDATE_DRIVER(toaplan1_state, screen_update_rallybik)
1551   MCFG_SCREEN_VBLANK_DRIVER(toaplan1_state, screen_eof_rallybik)
15521552
15531553   MCFG_GFXDECODE(rallybik)
15541554   MCFG_PALETTE_LENGTH((64*16)+(64*16))
r17967r17968
15841584
15851585   MCFG_SCREEN_ADD("screen", RASTER)
15861586   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
1587   MCFG_SCREEN_UPDATE_STATIC(toaplan1)
1588   MCFG_SCREEN_VBLANK_STATIC(toaplan1)
1587   MCFG_SCREEN_UPDATE_DRIVER(toaplan1_state, screen_update_toaplan1)
1588   MCFG_SCREEN_VBLANK_DRIVER(toaplan1_state, screen_eof_toaplan1)
15891589
15901590   MCFG_GFXDECODE(toaplan1)
15911591   MCFG_PALETTE_LENGTH((64*16)+(64*16))
r17967r17968
16211621
16221622   MCFG_SCREEN_ADD("screen", RASTER)
16231623   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND+16, VBSTART+16)
1624   MCFG_SCREEN_UPDATE_STATIC(toaplan1)
1625   MCFG_SCREEN_VBLANK_STATIC(toaplan1)
1624   MCFG_SCREEN_UPDATE_DRIVER(toaplan1_state, screen_update_toaplan1)
1625   MCFG_SCREEN_VBLANK_DRIVER(toaplan1_state, screen_eof_toaplan1)
16261626
16271627   MCFG_GFXDECODE(toaplan1)
16281628   MCFG_PALETTE_LENGTH((64*16)+(64*16))
r17967r17968
16581658
16591659   MCFG_SCREEN_ADD("screen", RASTER)
16601660   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND+16, VBSTART+16)
1661   MCFG_SCREEN_UPDATE_STATIC(toaplan1)
1662   MCFG_SCREEN_VBLANK_STATIC(toaplan1)
1661   MCFG_SCREEN_UPDATE_DRIVER(toaplan1_state, screen_update_toaplan1)
1662   MCFG_SCREEN_VBLANK_DRIVER(toaplan1_state, screen_eof_toaplan1)
16631663
16641664   MCFG_GFXDECODE(toaplan1)
16651665   MCFG_PALETTE_LENGTH((64*16)+(64*16))
r17967r17968
16991699
17001700   MCFG_SCREEN_ADD("screen", RASTER)
17011701   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND+16, VBSTART+16)
1702   MCFG_SCREEN_UPDATE_STATIC(toaplan1)
1703   MCFG_SCREEN_VBLANK_STATIC(toaplan1)
1702   MCFG_SCREEN_UPDATE_DRIVER(toaplan1_state, screen_update_toaplan1)
1703   MCFG_SCREEN_VBLANK_DRIVER(toaplan1_state, screen_eof_toaplan1)
17041704
17051705   MCFG_GFXDECODE(toaplan1)
17061706   MCFG_PALETTE_LENGTH((64*16)+(64*16))
r17967r17968
17341734
17351735   MCFG_SCREEN_ADD("screen", RASTER)
17361736   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
1737   MCFG_SCREEN_UPDATE_STATIC(toaplan1)
1738   MCFG_SCREEN_VBLANK_STATIC(samesame)
1737   MCFG_SCREEN_UPDATE_DRIVER(toaplan1_state, screen_update_toaplan1)
1738   MCFG_SCREEN_VBLANK_DRIVER(toaplan1_state, screen_eof_samesame)
17391739
17401740   MCFG_GFXDECODE(toaplan1)
17411741   MCFG_PALETTE_LENGTH((64*16)+(64*16))
r17967r17968
17711771
17721772   MCFG_SCREEN_ADD("screen", RASTER)
17731773   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
1774   MCFG_SCREEN_UPDATE_STATIC(toaplan1)
1775   MCFG_SCREEN_VBLANK_STATIC(toaplan1)
1774   MCFG_SCREEN_UPDATE_DRIVER(toaplan1_state, screen_update_toaplan1)
1775   MCFG_SCREEN_VBLANK_DRIVER(toaplan1_state, screen_eof_toaplan1)
17761776
17771777   MCFG_GFXDECODE(outzone)
17781778   MCFG_PALETTE_LENGTH((64*16)+(64*16))
r17967r17968
18061806
18071807   MCFG_SCREEN_ADD("screen", RASTER)
18081808   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
1809   MCFG_SCREEN_UPDATE_STATIC(toaplan1)
1810   MCFG_SCREEN_VBLANK_STATIC(toaplan1)
1809   MCFG_SCREEN_UPDATE_DRIVER(toaplan1_state, screen_update_toaplan1)
1810   MCFG_SCREEN_VBLANK_DRIVER(toaplan1_state, screen_eof_toaplan1)
18111811
18121812   MCFG_GFXDECODE(vm)
18131813   MCFG_PALETTE_LENGTH((64*16)+(64*16))
trunk/src/mame/drivers/segag80r.c
r17967r17968
852852
853853   MCFG_SCREEN_ADD("screen", RASTER)
854854   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
855   MCFG_SCREEN_UPDATE_STATIC(segag80r)
855   MCFG_SCREEN_UPDATE_DRIVER(segag80r_state, screen_update_segag80r)
856856
857857
858858   /* sound hardware */
trunk/src/mame/drivers/magic10.c
r17967r17968
121121   TILE_GET_INFO_MEMBER(get_layer1_tile_info);
122122   TILE_GET_INFO_MEMBER(get_layer2_tile_info);
123123   virtual void video_start();
124   UINT32 screen_update_magic10(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
124125};
125126
126127
r17967r17968
197198   m_layer2_tilemap->set_transparent_pen(0);
198199}
199200
200static SCREEN_UPDATE_IND16( magic10 )
201UINT32 magic10_state::screen_update_magic10(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
201202{
202   magic10_state *state = screen.machine().driver_data<magic10_state>();
203203   /*TODO: understand where this comes from. */
204   state->m_layer2_tilemap->set_scrollx(0, state->m_layer2_offset[0]);
205   state->m_layer2_tilemap->set_scrolly(0, state->m_layer2_offset[1]);
204   m_layer2_tilemap->set_scrollx(0, m_layer2_offset[0]);
205   m_layer2_tilemap->set_scrolly(0, m_layer2_offset[1]);
206206
207207   /*
208208    4 and 6 are y/x global register writes.
209209    0 and 2 are y/x writes for the scrolling layer.
210210    */
211   state->m_layer1_tilemap->set_scrolly(0, (state->m_vregs[0/2] - state->m_vregs[4/2])+0);
212   state->m_layer1_tilemap->set_scrollx(0, (state->m_vregs[2/2] - state->m_vregs[6/2])+4);
211   m_layer1_tilemap->set_scrolly(0, (m_vregs[0/2] - m_vregs[4/2])+0);
212   m_layer1_tilemap->set_scrollx(0, (m_vregs[2/2] - m_vregs[6/2])+4);
213213
214   state->m_layer0_tilemap->draw(bitmap, cliprect, 0, 0);
215   state->m_layer1_tilemap->draw(bitmap, cliprect, 0, 0);
216   state->m_layer2_tilemap->draw(bitmap, cliprect, 0, 0);
214   m_layer0_tilemap->draw(bitmap, cliprect, 0, 0);
215   m_layer1_tilemap->draw(bitmap, cliprect, 0, 0);
216   m_layer2_tilemap->draw(bitmap, cliprect, 0, 0);
217217
218218   return 0;
219219}
r17967r17968
739739   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
740740   MCFG_SCREEN_SIZE(64*8, 64*8)
741741   MCFG_SCREEN_VISIBLE_AREA(0*8, 44*8-1, 2*8, 32*8-1)
742   MCFG_SCREEN_UPDATE_STATIC(magic10)
742   MCFG_SCREEN_UPDATE_DRIVER(magic10_state, screen_update_magic10)
743743
744744   MCFG_PALETTE_LENGTH(0x100)
745745   MCFG_GFXDECODE(magic10)
trunk/src/mame/drivers/tmnt.c
r17967r17968
22692269   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
22702270   MCFG_SCREEN_SIZE(64*8, 32*8)
22712271   MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 )
2272   MCFG_SCREEN_UPDATE_STATIC(mia)
2272   MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_mia)
22732273
22742274   MCFG_PALETTE_LENGTH(1024)
22752275   MCFG_NVRAM_ADD_0FILL("nvram")
r17967r17968
23102310   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
23112311   MCFG_SCREEN_SIZE(64*8, 32*8)
23122312   MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 )
2313   MCFG_SCREEN_UPDATE_STATIC(mia)
2313   MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_mia)
23142314
23152315   MCFG_PALETTE_LENGTH(1024)
23162316
r17967r17968
23632363   MCFG_SCREEN_SIZE(64*8, 32*8)
23642364   //MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 )
23652365   MCFG_SCREEN_VISIBLE_AREA(13*8-8, (64-13)*8-1+8, 2*8, 30*8-1 )
2366   MCFG_SCREEN_UPDATE_STATIC(tmnt)
2366   MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_tmnt)
23672367   // We see something strange in the left 8 pixels and the right 8 pixels, but it is same as real PCB.
23682368
23692369   MCFG_PALETTE_LENGTH(1024)
r17967r17968
24152415   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
24162416   MCFG_SCREEN_SIZE(64*8, 32*8)
24172417   MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
2418   MCFG_SCREEN_UPDATE_STATIC(punkshot)
2418   MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_punkshot)
24192419
24202420   MCFG_PALETTE_LENGTH(2048)
24212421
r17967r17968
24562456   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
24572457   MCFG_SCREEN_SIZE(64*8, 32*8)
24582458   MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
2459   MCFG_SCREEN_UPDATE_STATIC(lgtnfght)
2459   MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_lgtnfght)
24602460
24612461   MCFG_PALETTE_LENGTH(2048)
24622462
r17967r17968
25032503   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
25042504   MCFG_SCREEN_SIZE(64*8, 32*8)
25052505   MCFG_SCREEN_VISIBLE_AREA(14*8, (64-15)*8-1, 2*8, 30*8-1 )
2506   MCFG_SCREEN_UPDATE_STATIC(lgtnfght)
2507   MCFG_SCREEN_VBLANK_STATIC( blswhstl )
2506   MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_lgtnfght)
2507   MCFG_SCREEN_VBLANK_DRIVER(tmnt_state, screen_eof_blswhstl)
25082508
25092509   MCFG_PALETTE_LENGTH(2048)
25102510
r17967r17968
25672567   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
25682568   MCFG_SCREEN_SIZE(64*8, 32*8)
25692569   MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
2570   MCFG_SCREEN_UPDATE_STATIC(glfgreat)
2570   MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_glfgreat)
25712571
25722572   MCFG_GFXDECODE(glfgreat)
25732573   MCFG_PALETTE_LENGTH(2048)
r17967r17968
26322632   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
26332633   MCFG_SCREEN_SIZE(64*8, 32*8)
26342634   MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
2635   MCFG_SCREEN_UPDATE_STATIC(glfgreat)
2635   MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_glfgreat)
26362636
26372637   MCFG_GFXDECODE(glfgreat)
26382638   MCFG_PALETTE_LENGTH(2048)
r17967r17968
26812681   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
26822682   MCFG_SCREEN_SIZE(64*8, 32*8)
26832683   MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 )
2684   MCFG_SCREEN_UPDATE_STATIC(tmnt2)
2684   MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_tmnt2)
26852685
26862686   MCFG_PALETTE_LENGTH(2048)
26872687
r17967r17968
27282728   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
27292729   MCFG_SCREEN_SIZE(64*8, 32*8)
27302730   MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
2731   MCFG_SCREEN_UPDATE_STATIC(tmnt2)
2731   MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_tmnt2)
27322732
27332733   MCFG_PALETTE_LENGTH(2048)
27342734
r17967r17968
27712771   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
27722772   MCFG_SCREEN_SIZE(64*8, 32*8)
27732773   MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
2774   MCFG_SCREEN_UPDATE_STATIC(tmnt2)
2774   MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_tmnt2)
27752775
27762776   MCFG_PALETTE_LENGTH(2048)
27772777
r17967r17968
28112811   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
28122812   MCFG_SCREEN_SIZE(64*8, 32*8)
28132813   MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
2814   MCFG_SCREEN_UPDATE_STATIC(thndrx2)
2814   MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_thndrx2)
28152815
28162816   MCFG_PALETTE_LENGTH(2048)
28172817
trunk/src/mame/drivers/tasman.c
r17967r17968
3636   DECLARE_WRITE8_MEMBER(kongambl_ff_w);
3737   DECLARE_DRIVER_INIT(kingtut);
3838   DECLARE_VIDEO_START(kongambl);
39   UINT32 screen_update_kongambl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3940};
4041
4142
r17967r17968
5455   #endif
5556}
5657
57static SCREEN_UPDATE_IND16(kongambl)
58UINT32 kongambl_state::screen_update_kongambl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
5859{
5960   #if CUSTOM_DRAW
60   kongambl_state *state = screen.machine().driver_data<kongambl_state>();
6161   gfx_element *gfx = screen.machine().gfx[0];
6262   UINT32 count;
6363
r17967r17968
6767   {
6868      for (int x=0;x<128;x++)
6969      {
70         UINT32 tile = state->m_vram[count] & 0xffff;
70         UINT32 tile = m_vram[count] & 0xffff;
7171
7272         if(screen.machine().primary_screen->visible_area().contains(x*8, y*8))
7373            drawgfx_opaque(bitmap,cliprect,gfx,tile,0,0,0,x*8,y*8);
r17967r17968
8282   {
8383      for (int x=0;x<128;x++)
8484      {
85         UINT32 tile = state->m_vram[count] & 0xffff;
85         UINT32 tile = m_vram[count] & 0xffff;
8686
8787         if(screen.machine().primary_screen->visible_area().contains(x*8, y*8))
8888            drawgfx_transpen(bitmap,cliprect,gfx,tile,0,0,0,x*8,y*8,0);
r17967r17968
607607   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
608608   MCFG_SCREEN_SIZE(96*8, 64*8+16)
609609   MCFG_SCREEN_VISIBLE_AREA(0*8, 80*8-1, 0*8, 64*8-1)
610   MCFG_SCREEN_UPDATE_STATIC(kongambl)
610   MCFG_SCREEN_UPDATE_DRIVER(kongambl_state, screen_update_kongambl)
611611
612612   MCFG_PALETTE_LENGTH(0x8000)
613613
trunk/src/mame/drivers/raiden2.c
r17967r17968
936936
937937/* SCREEN_UPDATE_IND16 (move to video file) */
938938
939static SCREEN_UPDATE_IND16( raiden2 )
939UINT32 raiden2_state::screen_update_raiden2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
940940{
941   raiden2_state *state = screen.machine().driver_data<raiden2_state>();
942941   bitmap.fill(get_black_pen(screen.machine()), cliprect);
943942
944943   //if (!screen.machine().input().code_pressed(KEYCODE_Q))
945944   {
946      if (!(state->raiden2_tilemap_enable & 1))
947         state->background_layer->draw(bitmap, cliprect, 0, 0);
945      if (!(raiden2_tilemap_enable & 1))
946         background_layer->draw(bitmap, cliprect, 0, 0);
948947   }
949948
950949   //if (!screen.machine().input().code_pressed(KEYCODE_W))
951950   {
952      if (!(state->raiden2_tilemap_enable & 2))
953         state->midground_layer->draw(bitmap, cliprect, 0, 0);
951      if (!(raiden2_tilemap_enable & 2))
952         midground_layer->draw(bitmap, cliprect, 0, 0);
954953   }
955954
956955   //if (!screen.machine().input().code_pressed(KEYCODE_E))
957956   {
958      if (!(state->raiden2_tilemap_enable & 4))
959         state->foreground_layer->draw(bitmap, cliprect, 0, 0);
957      if (!(raiden2_tilemap_enable & 4))
958         foreground_layer->draw(bitmap, cliprect, 0, 0);
960959   }
961960
962961   //if (!screen.machine().input().code_pressed(KEYCODE_S))
963962   {
964963      //if (!(raiden2_tilemap_enable & 0x10))
965         state->draw_sprites(screen.machine(), bitmap, cliprect, 0);
964         draw_sprites(screen.machine(), bitmap, cliprect, 0);
966965   }
967966
968967   //if (!screen.machine().input().code_pressed(KEYCODE_A))
969968   {
970      if (!(state->raiden2_tilemap_enable & 8))
971         state->text_layer->draw(bitmap, cliprect, 0, 0);
969      if (!(raiden2_tilemap_enable & 8))
970         text_layer->draw(bitmap, cliprect, 0, 0);
972971   }
973972
974973   return 0;
r17967r17968
18161815   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate *//2)
18171816   MCFG_SCREEN_SIZE(64*8, 64*8)
18181817   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0, 30*8-1)
1819   MCFG_SCREEN_UPDATE_STATIC(raiden2)
1818   MCFG_SCREEN_UPDATE_DRIVER(raiden2_state, screen_update_raiden2)
18201819   MCFG_GFXDECODE(raiden2)
18211820   MCFG_PALETTE_LENGTH(2048)
18221821
r17967r17968
18721871   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate *//2)
18731872   MCFG_SCREEN_SIZE(64*8, 64*8)
18741873   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0, 32*8-1)
1875   MCFG_SCREEN_UPDATE_STATIC(raiden2)
1874   MCFG_SCREEN_UPDATE_DRIVER(raiden2_state, screen_update_raiden2)
18761875   MCFG_GFXDECODE(raiden2)
18771876   MCFG_PALETTE_LENGTH(2048)
18781877
trunk/src/mame/drivers/mogura.c
r17967r17968
3131   virtual void machine_start();
3232   virtual void video_start();
3333   virtual void palette_init();
34   UINT32 screen_update_mogura(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3435};
3536
3637
r17967r17968
8687   m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(mogura_state::get_mogura_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
8788}
8889
89static SCREEN_UPDATE_IND16( mogura )
90UINT32 mogura_state::screen_update_mogura(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
9091{
91   mogura_state *state = screen.machine().driver_data<mogura_state>();
9292   const rectangle &visarea = screen.visible_area();
9393
9494   /* tilemap layout is a bit strange ... */
9595   rectangle clip = visarea;
9696   clip.max_x = 256 - 1;
97   state->m_tilemap->set_scrollx(0, 256);
98   state->m_tilemap->draw(bitmap, clip, 0, 0);
97   m_tilemap->set_scrollx(0, 256);
98   m_tilemap->draw(bitmap, clip, 0, 0);
9999
100100   clip.min_x = 256;
101101   clip.max_x = 512 - 1;
102   state->m_tilemap->set_scrollx(0, -128);
103   state->m_tilemap->draw(bitmap, clip, 0, 0);
102   m_tilemap->set_scrollx(0, -128);
103   m_tilemap->draw(bitmap, clip, 0, 0);
104104
105105   return 0;
106106}
r17967r17968
215215   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
216216   MCFG_SCREEN_SIZE(512, 512)
217217   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-1)
218   MCFG_SCREEN_UPDATE_STATIC(mogura)
218   MCFG_SCREEN_UPDATE_DRIVER(mogura_state, screen_update_mogura)
219219
220220   MCFG_PALETTE_LENGTH(32)
221221
trunk/src/mame/drivers/taitojc.c
r17967r17968
12631263   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
12641264   MCFG_SCREEN_SIZE(512, 400)
12651265   MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 399)
1266   MCFG_SCREEN_UPDATE_STATIC(taitojc)
1266   MCFG_SCREEN_UPDATE_DRIVER(taitojc_state, screen_update_taitojc)
12671267
12681268   MCFG_PALETTE_LENGTH(32768)
12691269
r17967r17968
12791279
12801280   /* video hardware */
12811281   MCFG_SCREEN_MODIFY("screen")
1282   MCFG_SCREEN_UPDATE_STATIC(dendego)
1282   MCFG_SCREEN_UPDATE_DRIVER(taitojc_state, screen_update_dendego)
12831283
12841284   /* sound hardware */
12851285   MCFG_SPEAKER_ADD("subwoofer", 0.0, 0.0, 1.0)
trunk/src/mame/drivers/ddealer.c
r17967r17968
156156   virtual void machine_start();
157157   virtual void machine_reset();
158158   virtual void video_start();
159   UINT32 screen_update_ddealer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
159160};
160161
161162
r17967r17968
264265}
265266
266267
267static SCREEN_UPDATE_IND16( ddealer )
268UINT32 ddealer_state::screen_update_ddealer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
268269{
269   ddealer_state *state = screen.machine().driver_data<ddealer_state>();
270   state->m_back_tilemap->set_scrollx(0, state->m_flipscreen ? -192 : -64);
271   state->m_back_tilemap->set_flip(state->m_flipscreen ? TILEMAP_FLIPY | TILEMAP_FLIPX : 0);
272   state->m_back_tilemap->draw(bitmap, cliprect, 0, 0);
270   m_back_tilemap->set_scrollx(0, m_flipscreen ? -192 : -64);
271   m_back_tilemap->set_flip(m_flipscreen ? TILEMAP_FLIPY | TILEMAP_FLIPX : 0);
272   m_back_tilemap->draw(bitmap, cliprect, 0, 0);
273273
274274   /* the fg tilemap handling is a little hacky right now,
275275       i'm not sure if it should be a single tilemap with
r17967r17968
277277       combined, the flipscreen case makes things more
278278       difficult to understand */
279279
280   if (!state->m_flipscreen)
280   if (!m_flipscreen)
281281   {
282      if (state->m_vregs[0xcc / 2] & 0x80)
282      if (m_vregs[0xcc / 2] & 0x80)
283283      {
284         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);
285         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);
284         ddealer_draw_video_layer(screen.machine(), &m_vregs[0x1e0 / 2], m_left_fg_vram_top, m_left_fg_vram_bottom, bitmap, cliprect, m_flipscreen);
285         ddealer_draw_video_layer(screen.machine(), &m_vregs[0xcc / 2], m_right_fg_vram_top, m_right_fg_vram_bottom, bitmap, cliprect, m_flipscreen);
286286      }
287287      else
288288      {
289         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);
289         ddealer_draw_video_layer(screen.machine(), &m_vregs[0x1e0 / 2], m_left_fg_vram_top, m_left_fg_vram_bottom, bitmap, cliprect, m_flipscreen);
290290      }
291291   }
292292   else
293293   {
294      if (state->m_vregs[0xcc / 2] & 0x80)
294      if (m_vregs[0xcc / 2] & 0x80)
295295      {
296         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);
297         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);
296         ddealer_draw_video_layer(screen.machine(), &m_vregs[0xcc / 2], m_left_fg_vram_top, m_left_fg_vram_bottom, bitmap, cliprect, m_flipscreen);
297         ddealer_draw_video_layer(screen.machine(), &m_vregs[0x1e0 / 2], m_right_fg_vram_top, m_right_fg_vram_bottom, bitmap, cliprect, m_flipscreen);
298298      }
299299      else
300300      {
301         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);
301         ddealer_draw_video_layer(screen.machine(), &m_vregs[0x1e0 / 2], m_left_fg_vram_top, m_left_fg_vram_bottom, bitmap, cliprect, m_flipscreen);
302302      }
303303
304304   }
r17967r17968
640640   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
641641   MCFG_SCREEN_SIZE(512, 256)
642642   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
643   MCFG_SCREEN_UPDATE_STATIC(ddealer)
643   MCFG_SCREEN_UPDATE_DRIVER(ddealer_state, screen_update_ddealer)
644644
645645   MCFG_PALETTE_LENGTH(0x400)
646646
trunk/src/mame/drivers/berzerk.c
r17967r17968
5858   virtual void machine_start();
5959   virtual void machine_reset();
6060   virtual void video_start();
61   UINT32 screen_update_berzerk(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
6162};
6263
6364
r17967r17968
455456}
456457
457458
458static SCREEN_UPDATE_RGB32( berzerk )
459UINT32 berzerk_state::screen_update_berzerk(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
459460{
460   berzerk_state *state = screen.machine().driver_data<berzerk_state>();
461461   pen_t pens[NUM_PENS];
462462   offs_t offs;
463463
464464   get_pens(screen.machine(), pens);
465465
466   for (offs = 0; offs < state->m_videoram.bytes(); offs++)
466   for (offs = 0; offs < m_videoram.bytes(); offs++)
467467   {
468468      int i;
469469
470      UINT8 data = state->m_videoram[offs];
471      UINT8 color = state->m_colorram[((offs >> 2) & 0x07e0) | (offs & 0x001f)];
470      UINT8 data = m_videoram[offs];
471      UINT8 color = m_colorram[((offs >> 2) & 0x07e0) | (offs & 0x001f)];
472472
473473      UINT8 y = offs >> 5;
474474      UINT8 x = offs << 3;
r17967r17968
10921092
10931093   MCFG_SCREEN_ADD("screen", RASTER)
10941094   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
1095   MCFG_SCREEN_UPDATE_STATIC(berzerk)
1095   MCFG_SCREEN_UPDATE_DRIVER(berzerk_state, screen_update_berzerk)
10961096
10971097   /* audio hardware */
10981098   MCFG_SPEAKER_STANDARD_MONO("mono")
trunk/src/mame/drivers/vpoker.c
r17967r17968
125125   DECLARE_WRITE_LINE_MEMBER(ptm_irq);
126126   virtual void video_start();
127127   virtual void palette_init();
128   UINT32 screen_update_vpoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
128129};
129130
130131
r17967r17968
133134   m_videoram = auto_alloc_array(machine(), UINT8, 0x200);
134135}
135136
136static SCREEN_UPDATE_IND16( vpoker )
137UINT32 vpoker_state::screen_update_vpoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
137138{
138   vpoker_state *state = screen.machine().driver_data<vpoker_state>();
139   UINT8 *videoram = state->m_videoram;
139   UINT8 *videoram = m_videoram;
140140   gfx_element *gfx = screen.machine().gfx[0];
141141   int count = 0x0000;
142142
r17967r17968
665665   MCFG_SCREEN_SIZE(512, 256)
666666   MCFG_SCREEN_VISIBLE_AREA(0*8, 480-1, 0*8, 240-1)
667667//  MCFG_SCREEN_VISIBLE_AREA(0*8, 512-1, 0*8, 256-1)
668   MCFG_SCREEN_UPDATE_STATIC(vpoker)
668   MCFG_SCREEN_UPDATE_DRIVER(vpoker_state, screen_update_vpoker)
669669
670670   MCFG_GFXDECODE(vpoker)
671671   MCFG_PALETTE_LENGTH(8)
trunk/src/mame/drivers/suprridr.c
r17967r17968
372372   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
373373   MCFG_SCREEN_SIZE(32*8, 32*8)
374374   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
375   MCFG_SCREEN_UPDATE_STATIC(suprridr)
375   MCFG_SCREEN_UPDATE_DRIVER(suprridr_state, screen_update_suprridr)
376376
377377   MCFG_GFXDECODE(suprridr)
378378   MCFG_PALETTE_LENGTH(96)
trunk/src/mame/drivers/spy.c
r17967r17968
547547   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
548548   MCFG_SCREEN_SIZE(64*8, 32*8)
549549   MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 )
550   MCFG_SCREEN_UPDATE_STATIC(spy)
550   MCFG_SCREEN_UPDATE_DRIVER(spy_state, screen_update_spy)
551551
552552   MCFG_PALETTE_LENGTH(1024)
553553
trunk/src/mame/drivers/igs009.c
r17967r17968
8989   virtual void machine_reset();
9090   virtual void video_start();
9191   DECLARE_VIDEO_START(gp98);
92   UINT32 screen_update_jingbell(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
9293};
9394
9495
r17967r17968
281282}
282283
283284
284static SCREEN_UPDATE_IND16(jingbell)
285UINT32 igs009_state::screen_update_jingbell(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
285286{
286   igs009_state *state = screen.machine().driver_data<igs009_state>();
287   int layers_ctrl = state->m_video_enable ? -1 : 0;
287   int layers_ctrl = m_video_enable ? -1 : 0;
288288
289289#ifdef MAME_DEBUG
290290   if (screen.machine().input().code_pressed(KEYCODE_Z))
r17967r17968
306306
307307      for (i= 0;i < 0x80;i++)
308308      {
309         state->m_gp98_reel1_tilemap->set_scrolly(i, state->m_bg_scroll[i]*2);
310         state->m_gp98_reel2_tilemap->set_scrolly(i, state->m_bg_scroll[i+0x80]*2);
311         state->m_gp98_reel3_tilemap->set_scrolly(i, state->m_bg_scroll[i+0x100]*2);
312         state->m_gp98_reel4_tilemap->set_scrolly(i, state->m_bg_scroll[i+0x180]*2);
309         m_gp98_reel1_tilemap->set_scrolly(i, m_bg_scroll[i]*2);
310         m_gp98_reel2_tilemap->set_scrolly(i, m_bg_scroll[i+0x80]*2);
311         m_gp98_reel3_tilemap->set_scrolly(i, m_bg_scroll[i+0x100]*2);
312         m_gp98_reel4_tilemap->set_scrolly(i, m_bg_scroll[i+0x180]*2);
313313      }
314314
315315
r17967r17968
318318      for (zz=0;zz<0x80-8;zz++) // -8 because of visible area (2*8 = 16)
319319      {
320320         rectangle clip;
321         int rowenable = state->m_bg_scroll2[zz];
321         int rowenable = m_bg_scroll2[zz];
322322
323323         /* draw top of screen */
324324         clip.set(visarea.min_x, visarea.max_x, startclipmin, startclipmin+2);
r17967r17968
327327
328328         if (rowenable==0)
329329         { // 0 and 1 are the same? or is there a global switchoff?
330            state->m_gp98_reel1_tilemap->draw(bitmap, clip, 0,0);
330            m_gp98_reel1_tilemap->draw(bitmap, clip, 0,0);
331331         }
332332         else if (rowenable==1)
333333         {
334            state->m_gp98_reel2_tilemap->draw(bitmap, clip, 0,0);
334            m_gp98_reel2_tilemap->draw(bitmap, clip, 0,0);
335335         }
336336         else if (rowenable==2)
337337         {
338            state->m_gp98_reel3_tilemap->draw(bitmap, clip, 0,0);
338            m_gp98_reel3_tilemap->draw(bitmap, clip, 0,0);
339339         }
340340         else if (rowenable==3)
341341         {
342            state->m_gp98_reel4_tilemap->draw(bitmap, clip, 0,0);
342            m_gp98_reel4_tilemap->draw(bitmap, clip, 0,0);
343343         }
344344
345345
r17967r17968
350350   else               bitmap.fill(get_black_pen(screen.machine()), cliprect);
351351
352352
353   if (layers_ctrl & 2)   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
353   if (layers_ctrl & 2)   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
354354
355355   return 0;
356356}
r17967r17968
756756   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
757757   MCFG_SCREEN_SIZE(512, 256)
758758   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-16-1)
759   MCFG_SCREEN_UPDATE_STATIC(jingbell)
759   MCFG_SCREEN_UPDATE_DRIVER(igs009_state, screen_update_jingbell)
760760
761761   MCFG_GFXDECODE(jingbell)
762762   MCFG_PALETTE_LENGTH(0x400)
trunk/src/mame/drivers/blitz68k.c
r17967r17968
173173   DECLARE_DRIVER_INIT(dualgame);
174174   DECLARE_VIDEO_START(blitz68k);
175175   DECLARE_VIDEO_START(blitz68k_addr_factor1);
176   UINT32 screen_update_blitz68k(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
177   UINT32 screen_update_blitz68k_noblit(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
176178};
177179
178180/*************************************************************************************************************
r17967r17968
206208   blit.addr_factor = 1;
207209}
208210
209static SCREEN_UPDATE_RGB32(blitz68k)
211UINT32 blitz68k_state::screen_update_blitz68k(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
210212{
211   blitz68k_state *state = screen.machine().driver_data<blitz68k_state>();
212213   int x,y;
213214
214   UINT8 *src = state->m_blit_buffer;
215   UINT8 *src = m_blit_buffer;
215216
216217   for(y = 0; y < 256; y++)
217218   {
r17967r17968
227228// Blitter-less board (SPI-68K)
228229
229230
230static SCREEN_UPDATE_RGB32(blitz68k_noblit)
231UINT32 blitz68k_state::screen_update_blitz68k_noblit(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
231232{
232   blitz68k_state *state = screen.machine().driver_data<blitz68k_state>();
233233   int x,y;
234234
235   UINT16 *src = state->m_frame_buffer;
235   UINT16 *src = m_frame_buffer;
236236
237237   for(y = 0; y < 256; y++)
238238   {
r17967r17968
17221722   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
17231723   MCFG_SCREEN_SIZE(512, 256)
17241724   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
1725   MCFG_SCREEN_UPDATE_STATIC(blitz68k)
1725   MCFG_SCREEN_UPDATE_DRIVER(blitz68k_state, screen_update_blitz68k)
17261726
17271727   MCFG_NVRAM_ADD_0FILL("nvram")
17281728
r17967r17968
17971797   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
17981798   MCFG_SCREEN_SIZE(512, 256)
17991799   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-8-1)
1800   MCFG_SCREEN_UPDATE_STATIC(blitz68k)
1800   MCFG_SCREEN_UPDATE_DRIVER(blitz68k_state, screen_update_blitz68k)
18011801
18021802   MCFG_MC6845_ADD("crtc", R6545_1, XTAL_22_1184MHz/8, mc6845_intf_irq1)
18031803
r17967r17968
18291829   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
18301830   MCFG_SCREEN_SIZE(512, 256)
18311831   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+4, 256-1-4)
1832   MCFG_SCREEN_UPDATE_STATIC(blitz68k)
1832   MCFG_SCREEN_UPDATE_DRIVER(blitz68k_state, screen_update_blitz68k)
18331833
18341834   MCFG_MC6845_ADD("crtc", H46505, XTAL_11_0592MHz/4, mc6845_intf_irq3)
18351835
r17967r17968
18591859   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
18601860   MCFG_SCREEN_SIZE(512, 256)
18611861   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+7, 256-1)
1862   MCFG_SCREEN_UPDATE_STATIC(blitz68k)
1862   MCFG_SCREEN_UPDATE_DRIVER(blitz68k_state, screen_update_blitz68k)
18631863
18641864   MCFG_MC6845_ADD("crtc", H46505, XTAL_11_0592MHz/4, mc6845_intf_irq5)
18651865
r17967r17968
18881888   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
18891889   MCFG_SCREEN_SIZE(512, 256)
18901890   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
1891   MCFG_SCREEN_UPDATE_STATIC(blitz68k)
1891   MCFG_SCREEN_UPDATE_DRIVER(blitz68k_state, screen_update_blitz68k)
18921892
18931893   MCFG_MC6845_ADD("crtc", R6545_1, XTAL_22_1184MHz/8, mc6845_intf_irq3)
18941894
r17967r17968
19191919   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
19201920   MCFG_SCREEN_SIZE(512, 256)
19211921   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+4, 256-1-4)
1922   MCFG_SCREEN_UPDATE_STATIC(blitz68k)
1922   MCFG_SCREEN_UPDATE_DRIVER(blitz68k_state, screen_update_blitz68k)
19231923
19241924   MCFG_MC6845_ADD("crtc", H46505, XTAL_11_0592MHz/4, mc6845_intf_irq3)
19251925
r17967r17968
19481948   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
19491949   MCFG_SCREEN_SIZE(512, 256)
19501950   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+4, 256-1-4)
1951   MCFG_SCREEN_UPDATE_STATIC(blitz68k)
1951   MCFG_SCREEN_UPDATE_DRIVER(blitz68k_state, screen_update_blitz68k)
19521952
19531953   MCFG_MC6845_ADD("crtc", H46505, XTAL_22_1184MHz/8, mc6845_intf_irq1)
19541954
r17967r17968
19821982   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
19831983   MCFG_SCREEN_SIZE(512, 256)
19841984   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
1985   MCFG_SCREEN_UPDATE_STATIC(blitz68k_noblit)
1985   MCFG_SCREEN_UPDATE_DRIVER(blitz68k_state, screen_update_blitz68k_noblit)
19861986
19871987   MCFG_MC6845_ADD("crtc", H46505, XTAL_11_0592MHz/4, mc6845_intf_irq3)
19881988
trunk/src/mame/drivers/psikyo.c
r17967r17968
10621062   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)   // we're using PORT_VBLANK
10631063   MCFG_SCREEN_SIZE(320, 256)
10641064   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-32-1)
1065   MCFG_SCREEN_UPDATE_STATIC(psikyo)
1066   MCFG_SCREEN_VBLANK_STATIC(psikyo)
1065   MCFG_SCREEN_UPDATE_DRIVER(psikyo_state, screen_update_psikyo)
1066   MCFG_SCREEN_VBLANK_DRIVER(psikyo_state, screen_eof_psikyo)
10671067
10681068   MCFG_GFXDECODE(psikyo)
10691069   MCFG_PALETTE_LENGTH(0x1000)
r17967r17968
11111111   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)   // we're using PORT_VBLANK
11121112   MCFG_SCREEN_SIZE(320, 256)
11131113   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-32-1)
1114   MCFG_SCREEN_UPDATE_STATIC(psikyo)
1115   MCFG_SCREEN_VBLANK_STATIC(psikyo)
1114   MCFG_SCREEN_UPDATE_DRIVER(psikyo_state, screen_update_psikyo)
1115   MCFG_SCREEN_VBLANK_DRIVER(psikyo_state, screen_eof_psikyo)
11161116
11171117   MCFG_GFXDECODE(psikyo)
11181118   MCFG_PALETTE_LENGTH(0x1000)
r17967r17968
11441144   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)   // we're using PORT_VBLANK
11451145   MCFG_SCREEN_SIZE(320, 256)
11461146   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-32-1)
1147   MCFG_SCREEN_UPDATE_STATIC(psikyo_bootleg)
1148   MCFG_SCREEN_VBLANK_STATIC(psikyo)
1147   MCFG_SCREEN_UPDATE_DRIVER(psikyo_state, screen_update_psikyo_bootleg)
1148   MCFG_SCREEN_VBLANK_DRIVER(psikyo_state, screen_eof_psikyo)
11491149
11501150   MCFG_GFXDECODE(psikyo)
11511151   MCFG_PALETTE_LENGTH(0x1000)
r17967r17968
11981198   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)   // we're using PORT_VBLANK
11991199   MCFG_SCREEN_SIZE(320, 256)
12001200   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-32-1)
1201   MCFG_SCREEN_UPDATE_STATIC(psikyo)
1202   MCFG_SCREEN_VBLANK_STATIC(psikyo)
1201   MCFG_SCREEN_UPDATE_DRIVER(psikyo_state, screen_update_psikyo)
1202   MCFG_SCREEN_VBLANK_DRIVER(psikyo_state, screen_eof_psikyo)
12031203
12041204   MCFG_GFXDECODE(psikyo)
12051205   MCFG_PALETTE_LENGTH(0x1000)
trunk/src/mame/drivers/dacholer.c
r17967r17968
8989   virtual void machine_reset();
9090   virtual void video_start();
9191   virtual void palette_init();
92   UINT32 screen_update_dacholer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
9293};
9394
9495TILE_GET_INFO_MEMBER(dacholer_state::get_bg_tile_info)
r17967r17968
151152   }
152153}
153154
154static SCREEN_UPDATE_IND16(dacholer)
155UINT32 dacholer_state::screen_update_dacholer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
155156{
156   dacholer_state *state = screen.machine().driver_data<dacholer_state>();
157157
158   if (state->flip_screen())
158   if (flip_screen())
159159   {
160      state->m_bg_tilemap->set_scrollx(0, 256 - state->m_scroll_x);
161      state->m_bg_tilemap->set_scrolly(0, 256 - state->m_scroll_y);
160      m_bg_tilemap->set_scrollx(0, 256 - m_scroll_x);
161      m_bg_tilemap->set_scrolly(0, 256 - m_scroll_y);
162162   }
163163   else
164164   {
165      state->m_bg_tilemap->set_scrollx(0, state->m_scroll_x);
166      state->m_bg_tilemap->set_scrolly(0, state->m_scroll_y);
165      m_bg_tilemap->set_scrollx(0, m_scroll_x);
166      m_bg_tilemap->set_scrolly(0, m_scroll_y);
167167   }
168168
169   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
169   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
170170   draw_sprites(screen.machine(), bitmap, cliprect);
171   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
171   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
172172   return 0;
173173}
174174
r17967r17968
666666   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
667667   MCFG_SCREEN_SIZE(256, 256)
668668   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-1-16)
669   MCFG_SCREEN_UPDATE_STATIC(dacholer)
669   MCFG_SCREEN_UPDATE_DRIVER(dacholer_state, screen_update_dacholer)
670670
671671   MCFG_PALETTE_LENGTH(32)
672672   MCFG_GFXDECODE(dacholer)
trunk/src/mame/drivers/esd16.c
r17967r17968
630630   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
631631   MCFG_SCREEN_SIZE(0x140, 0x100)
632632   MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0+8, 0x100-8-1)
633   MCFG_SCREEN_UPDATE_STATIC(hedpanic)
633   MCFG_SCREEN_UPDATE_DRIVER(esd16_state, screen_update_hedpanic)
634634
635635   MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
636636   decospr_device::set_gfx_region(*device, 0);
trunk/src/mame/drivers/model3.c
r17967r17968
53095309   MCFG_SCREEN_REFRESH_RATE(60)
53105310   MCFG_SCREEN_VISIBLE_AREA(0, 495, 0, 383)
53115311   MCFG_SCREEN_SIZE(512, 400)
5312   MCFG_SCREEN_UPDATE_STATIC(model3)
5312   MCFG_SCREEN_UPDATE_DRIVER(model3_state, screen_update_model3)
53135313
53145314   MCFG_PALETTE_LENGTH(32768)
53155315   MCFG_PALETTE_INIT(RRRRR_GGGGG_BBBBB)
r17967r17968
53505350   MCFG_SCREEN_REFRESH_RATE(60)
53515351   MCFG_SCREEN_VISIBLE_AREA(0, 495, 0, 383)
53525352   MCFG_SCREEN_SIZE(496, 400)
5353   MCFG_SCREEN_UPDATE_STATIC(model3)
5353   MCFG_SCREEN_UPDATE_DRIVER(model3_state, screen_update_model3)
53545354
53555355   MCFG_PALETTE_LENGTH(32768)
53565356   MCFG_PALETTE_INIT(RRRRR_GGGGG_BBBBB)
r17967r17968
53915391   MCFG_SCREEN_REFRESH_RATE(60)
53925392   MCFG_SCREEN_VISIBLE_AREA(0, 495, 0, 383)
53935393   MCFG_SCREEN_SIZE(496, 400)
5394   MCFG_SCREEN_UPDATE_STATIC(model3)
5394   MCFG_SCREEN_UPDATE_DRIVER(model3_state, screen_update_model3)
53955395
53965396   MCFG_PALETTE_LENGTH(32768)
53975397   MCFG_PALETTE_INIT(RRRRR_GGGGG_BBBBB)
r17967r17968
54305430   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
54315431   MCFG_SCREEN_VISIBLE_AREA(0, 495, 0, 383)
54325432   MCFG_SCREEN_SIZE(496, 400)
5433   MCFG_SCREEN_UPDATE_STATIC(model3)
5433   MCFG_SCREEN_UPDATE_DRIVER(model3_state, screen_update_model3)
54345434
54355435   MCFG_PALETTE_LENGTH(32768)
54365436   MCFG_PALETTE_INIT(RRRRR_GGGGG_BBBBB)
trunk/src/mame/drivers/iqblock.c
r17967r17968
285285   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
286286   MCFG_SCREEN_SIZE(64*8, 32*8)
287287   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 30*8-1)
288   MCFG_SCREEN_UPDATE_STATIC(iqblock)
288   MCFG_SCREEN_UPDATE_DRIVER(iqblock_state, screen_update_iqblock)
289289
290290   MCFG_GFXDECODE(iqblock)
291291   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/cb2001.c
r17967r17968
7171   TILE_GET_INFO_MEMBER(get_cb2001_reel3_tile_info);
7272   virtual void video_start();
7373   virtual void palette_init();
74   UINT32 screen_update_cb2001(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
7475};
7576
7677
r17967r17968
331332*/
332333
333334
334static SCREEN_UPDATE_RGB32(cb2001)
335UINT32 cb2001_state::screen_update_cb2001(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
335336{
336   cb2001_state *state = screen.machine().driver_data<cb2001_state>();
337337   int count,x,y;
338338   bitmap.fill(get_black_pen(screen.machine()), cliprect);
339339
340340   count = 0x0000;
341341
342342   // render bg as 8x8 tilemaps
343   if (state->m_other1 & 0x02)
343   if (m_other1 & 0x02)
344344   {
345      if (!(state->m_other1 & 0x04))
345      if (!(m_other1 & 0x04))
346346      {
347347         for (y=0;y<32;y++)
348348         {
r17967r17968
351351               int tile;
352352               int colour;
353353
354               tile = (state->m_vram_bg[count] & 0x0fff);
355               colour = (state->m_vram_bg[count] & 0xf000)>>12;
356               tile += state->m_videobank*0x2000;
354               tile = (m_vram_bg[count] & 0x0fff);
355               colour = (m_vram_bg[count] & 0xf000)>>12;
356               tile += m_videobank*0x2000;
357357
358358
359359               drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0],tile,colour,0,0,x*8,y*8);
r17967r17968
370370         {
371371            UINT16 scroll;
372372
373            scroll = state->m_vram_bg[0xa00/2 + i/2];
373            scroll = m_vram_bg[0xa00/2 + i/2];
374374            if (i&1)
375375               scroll >>=8;
376376            scroll &=0xff;
377377
378            state->m_reel2_tilemap->set_scrolly(i, scroll);
378            m_reel2_tilemap->set_scrolly(i, scroll);
379379
380            scroll = state->m_vram_bg[0x800/2 + i/2];
380            scroll = m_vram_bg[0x800/2 + i/2];
381381            if (i&1)
382382               scroll >>=8;
383383            scroll &=0xff;
384384
385            state->m_reel1_tilemap->set_scrolly(i, scroll);
385            m_reel1_tilemap->set_scrolly(i, scroll);
386386
387            scroll = state->m_vram_bg[0xc00/2 + i/2];
387            scroll = m_vram_bg[0xc00/2 + i/2];
388388            if (i&1)
389389               scroll >>=8;
390390            scroll &=0xff;
391391
392            state->m_reel3_tilemap->set_scrolly(i, scroll);
392            m_reel3_tilemap->set_scrolly(i, scroll);
393393
394394         }
395395
r17967r17968
398398         const rectangle visible2(0*8, (14+48)*8-1, 10*8, (10+7)*8-1);
399399         const rectangle visible3(0*8, (14+48)*8-1, 17*8, (17+7)*8-1);
400400
401         state->m_reel1_tilemap->draw(bitmap, visible1, 0, 0);
402         state->m_reel2_tilemap->draw(bitmap, visible2, 0, 0);
403         state->m_reel3_tilemap->draw(bitmap, visible3, 0, 0);
401         m_reel1_tilemap->draw(bitmap, visible1, 0, 0);
402         m_reel2_tilemap->draw(bitmap, visible2, 0, 0);
403         m_reel3_tilemap->draw(bitmap, visible3, 0, 0);
404404      }
405405   }
406406
r17967r17968
413413         int tile;
414414         int colour;
415415
416         tile = (state->m_vram_fg[count] & 0x0fff);
417         colour = (state->m_vram_fg[count] & 0xf000)>>12;
418         tile += state->m_videobank*0x2000;
416         tile = (m_vram_fg[count] & 0x0fff);
417         colour = (m_vram_fg[count] & 0xf000)>>12;
418         tile += m_videobank*0x2000;
419419
420         if (state->m_other2 & 0x4)
420         if (m_other2 & 0x4)
421421         {
422422            tile += 0x1000;
423423         }
r17967r17968
427427      }
428428   }
429429
430   popmessage("%02x %02x %02x %02x\n",state->m_videobank,state->m_videomode, state->m_other1, state->m_other2);
430   popmessage("%02x %02x %02x %02x\n",m_videobank,m_videomode, m_other1, m_other2);
431431
432432   return 0;
433433}
r17967r17968
849849   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
850850   MCFG_SCREEN_SIZE(64*8, 64*8)
851851   MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1)
852   MCFG_SCREEN_UPDATE_STATIC(cb2001)
852   MCFG_SCREEN_UPDATE_DRIVER(cb2001_state, screen_update_cb2001)
853853
854854   MCFG_PALETTE_LENGTH(0x100)
855855
trunk/src/mame/drivers/funkyjet.c
r17967r17968
324324   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
325325   MCFG_SCREEN_SIZE(40*8, 32*8)
326326   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
327   MCFG_SCREEN_UPDATE_STATIC(funkyjet)
327   MCFG_SCREEN_UPDATE_DRIVER(funkyjet_state, screen_update_funkyjet)
328328
329329   MCFG_GFXDECODE(funkyjet)
330330   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/xexex.c
r17967r17968
535535   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
536536   MCFG_SCREEN_SIZE(64*8, 32*8)
537537   MCFG_SCREEN_VISIBLE_AREA(40, 40+384-1, 0, 0+256-1)
538   MCFG_SCREEN_UPDATE_STATIC(xexex)
538   MCFG_SCREEN_UPDATE_DRIVER(xexex_state, screen_update_xexex)
539539
540540   MCFG_PALETTE_LENGTH(2048)
541541
trunk/src/mame/drivers/wallc.c
r17967r17968
6969   TILE_GET_INFO_MEMBER(get_bg_tile_info);
7070   virtual void video_start();
7171   virtual void palette_init();
72   UINT32 screen_update_wallc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7273};
7374
7475
r17967r17968
153154   m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(wallc_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS_FLIP_Y,   8, 8, 32, 32);
154155}
155156
156static SCREEN_UPDATE_IND16( wallc )
157UINT32 wallc_state::screen_update_wallc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
157158{
158   wallc_state *state = screen.machine().driver_data<wallc_state>();
159   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
159   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
160160   return 0;
161161}
162162
r17967r17968
310310   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
311311   MCFG_SCREEN_SIZE(32*8, 32*8)
312312   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
313   MCFG_SCREEN_UPDATE_STATIC(wallc)
313   MCFG_SCREEN_UPDATE_DRIVER(wallc_state, screen_update_wallc)
314314
315315   MCFG_GFXDECODE(wallc)
316316   MCFG_PALETTE_LENGTH(32)
trunk/src/mame/drivers/skullxbo.c
r17967r17968
272272   /* note: these parameters are from published specs, not derived */
273273   /* the board uses an SOS-2 chip to generate video signals */
274274   MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz, 456*2, 0, 336*2, 262, 0, 240)
275   MCFG_SCREEN_UPDATE_STATIC(skullxbo)
275   MCFG_SCREEN_UPDATE_DRIVER(skullxbo_state, screen_update_skullxbo)
276276
277277   MCFG_VIDEO_START_OVERRIDE(skullxbo_state,skullxbo)
278278
trunk/src/mame/drivers/marinedt.c
r17967r17968
152152   virtual void machine_reset();
153153   virtual void video_start();
154154   virtual void palette_init();
155   UINT32 screen_update_marinedt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
155156};
156157
157158
r17967r17968
515516#define OBJ_COLOR(a)   ((a) & 0x03)
516517#define OBJ_X(x)   (256 - 32 - (x))
517518#define OBJ_Y(y)   (256 - 1 - (y))
518#define OBJ_FLIPX(a)   ((state->m_pf & 0x02) == 0)
519#define OBJ_FLIPX(a)   ((m_pf & 0x02) == 0)
519520#define OBJ_FLIPY(a)   ((a) & 0x80)
520521
521static SCREEN_UPDATE_IND16( marinedt )
522UINT32 marinedt_state::screen_update_marinedt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
522523{
523   marinedt_state *state = screen.machine().driver_data<marinedt_state>();
524524   int sx, sy;
525525
526   state->m_tile->fill(0);
527   state->m_tx_tilemap->draw(*state->m_tile, cliprect, 0, 0);
526   m_tile->fill(0);
527   m_tx_tilemap->draw(*m_tile, cliprect, 0, 0);
528528
529   state->m_obj1->fill(0);
530   drawgfx_transpen(*state->m_obj1, state->m_obj1->cliprect(), screen.machine().gfx[1],
531         OBJ_CODE(state->m_obj1_a),
532         OBJ_COLOR(state->m_obj1_a),
533         OBJ_FLIPX(state->m_obj1_a), OBJ_FLIPY(state->m_obj1_a),
529   m_obj1->fill(0);
530   drawgfx_transpen(*m_obj1, m_obj1->cliprect(), screen.machine().gfx[1],
531         OBJ_CODE(m_obj1_a),
532         OBJ_COLOR(m_obj1_a),
533         OBJ_FLIPX(m_obj1_a), OBJ_FLIPY(m_obj1_a),
534534         0, 0, 0);
535535
536   state->m_obj2->fill(0);
537   drawgfx_transpen(*state->m_obj2, state->m_obj2->cliprect(), screen.machine().gfx[2],
538         OBJ_CODE(state->m_obj2_a),
539         OBJ_COLOR(state->m_obj2_a),
540         OBJ_FLIPX(state->m_obj2_a), OBJ_FLIPY(state->m_obj2_a),
536   m_obj2->fill(0);
537   drawgfx_transpen(*m_obj2, m_obj2->cliprect(), screen.machine().gfx[2],
538         OBJ_CODE(m_obj2_a),
539         OBJ_COLOR(m_obj2_a),
540         OBJ_FLIPX(m_obj2_a), OBJ_FLIPY(m_obj2_a),
541541         0, 0, 0);
542542
543543   bitmap.fill(0);
544544
545   if (state->m_pd & 0x02)
546      copybitmap_trans(bitmap, *state->m_obj2, 0, 0, OBJ_X(state->m_obj2_x), OBJ_Y(state->m_obj2_y), cliprect, 0);
545   if (m_pd & 0x02)
546      copybitmap_trans(bitmap, *m_obj2, 0, 0, OBJ_X(m_obj2_x), OBJ_Y(m_obj2_y), cliprect, 0);
547547
548   if (state->m_pd & 0x01)
549      copybitmap_trans(bitmap, *state->m_obj1, 0, 0, OBJ_X(state->m_obj1_x), OBJ_Y(state->m_obj1_y), cliprect, 0);
548   if (m_pd & 0x01)
549      copybitmap_trans(bitmap, *m_obj1, 0, 0, OBJ_X(m_obj1_x), OBJ_Y(m_obj1_y), cliprect, 0);
550550
551   copybitmap_trans(bitmap, *state->m_tile, 0, 0, 0, 0, cliprect, 0);
551   copybitmap_trans(bitmap, *m_tile, 0, 0, 0, 0, cliprect, 0);
552552
553   state->m_coll = state->m_cx = state->m_cyr = state->m_cyq = 0;
554   if (state->m_pd & 0x01)
553   m_coll = m_cx = m_cyr = m_cyq = 0;
554   if (m_pd & 0x01)
555555   {
556556      for (sx = 0; sx < 32; sx++)
557557         for (sy = 0; sy < 32; sy++)
558558         {
559            int x = OBJ_X(state->m_obj1_x) + sx;
560            int y = OBJ_Y(state->m_obj1_y) + sy;
559            int x = OBJ_X(m_obj1_x) + sx;
560            int y = OBJ_Y(m_obj1_y) + sy;
561561
562562            if (!cliprect.contains(x, y))
563563               continue;
564564
565            if (state->m_obj1->pix16(sy, sx) == 0)
565            if (m_obj1->pix16(sy, sx) == 0)
566566               continue;
567567
568            if (state->m_tile->pix16(y, x) != 0)
568            if (m_tile->pix16(y, x) != 0)
569569            {
570               state->m_coll = 0x08;
570               m_coll = 0x08;
571571
572               state->m_cx = (x % 128) / 8;
573               state->m_cx &= 0x0f;
572               m_cx = (x % 128) / 8;
573               m_cx &= 0x0f;
574574
575               state->m_cyr = ((y % 64) / 8) * 2 + (x > 127 ? 1 : 0);
576               state->m_cyr &= 0x0f;
575               m_cyr = ((y % 64) / 8) * 2 + (x > 127 ? 1 : 0);
576               m_cyr &= 0x0f;
577577
578               state->m_cyq = y / 64;
579               state->m_cyq &= 0x0f;
578               m_cyq = y / 64;
579               m_cyq &= 0x0f;
580580
581581               break;
582582            }
583583         }
584584   }
585585
586   state->m_collh = state->m_cxh = state->m_cyrh = state->m_cyqh = 0;
587   if ((state->m_pd & 0x03) == 0x03)
586   m_collh = m_cxh = m_cyrh = m_cyqh = 0;
587   if ((m_pd & 0x03) == 0x03)
588588   {
589589      for (sx = 0; sx < 32; sx++)
590590         for (sy = 0; sy < 32; sy++)
591591         {
592            int x = OBJ_X(state->m_obj1_x + sx);
593            int y = OBJ_Y(state->m_obj1_y + sy);
592            int x = OBJ_X(m_obj1_x + sx);
593            int y = OBJ_Y(m_obj1_y + sy);
594594
595            int xx = OBJ_X(state->m_obj2_x) - x;
596            int yy = OBJ_Y(state->m_obj2_y) - y;
595            int xx = OBJ_X(m_obj2_x) - x;
596            int yy = OBJ_Y(m_obj2_y) - y;
597597
598598            if (xx < 0 || xx >= 32 || yy < 0 || yy >= 32)
599599               continue;
600600
601            if (state->m_obj1->pix16(sy, sx) == 0)
601            if (m_obj1->pix16(sy, sx) == 0)
602602               continue;
603603
604            if (state->m_obj2->pix16(yy, xx) != 0)
604            if (m_obj2->pix16(yy, xx) != 0)
605605            {
606               state->m_collh = 0x80;
606               m_collh = 0x80;
607607
608               state->m_cxh = (x % 128) / 8;
609               state->m_cxh &= 0x0f;
608               m_cxh = (x % 128) / 8;
609               m_cxh &= 0x0f;
610610
611               state->m_cyrh = ((y % 64) / 8) * 2 + (x > 127 ? 1 : 0);
612               state->m_cyrh &= 0x0f;
611               m_cyrh = ((y % 64) / 8) * 2 + (x > 127 ? 1 : 0);
612               m_cyrh &= 0x0f;
613613
614               state->m_cyqh= y / 64;
615               state->m_cyqh &= 0x0f;
614               m_cyqh= y / 64;
615               m_cyqh &= 0x0f;
616616
617617               break;
618618            }
r17967r17968
682682   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
683683   MCFG_SCREEN_SIZE(4*8+32*8, 32*8)
684684   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 32*8-1)
685   MCFG_SCREEN_UPDATE_STATIC(marinedt)
685   MCFG_SCREEN_UPDATE_DRIVER(marinedt_state, screen_update_marinedt)
686686
687687   MCFG_GFXDECODE(marinedt)
688688   MCFG_PALETTE_LENGTH(64)
trunk/src/mame/drivers/ironhors.c
r17967r17968
393393   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
394394   MCFG_SCREEN_SIZE(32*8, 32*8)
395395   MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1)
396   MCFG_SCREEN_UPDATE_STATIC(ironhors)
396   MCFG_SCREEN_UPDATE_DRIVER(ironhors_state, screen_update_ironhors)
397397
398398   MCFG_GFXDECODE(ironhors)
399399   MCFG_PALETTE_LENGTH(16*8*16+16*8*16)
r17967r17968
468468   MCFG_GFXDECODE(farwest)
469469   MCFG_VIDEO_START_OVERRIDE(ironhors_state,farwest)
470470   MCFG_SCREEN_MODIFY("screen")
471   MCFG_SCREEN_UPDATE_STATIC(farwest)
471   MCFG_SCREEN_UPDATE_DRIVER(ironhors_state, screen_update_farwest)
472472
473473   MCFG_SOUND_MODIFY("ym2203")
474474   MCFG_SOUND_CONFIG(farwest_ym2203_config)
trunk/src/mame/drivers/sliver.c
r17967r17968
113113   DECLARE_WRITE16_MEMBER(sound_w);
114114   DECLARE_WRITE8_MEMBER(oki_setbank);
115115   virtual void video_start();
116   UINT32 screen_update_sliver(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
116117};
117118
118119static void plot_pixel_rgb(sliver_state *state, int x, int y, UINT32 r, UINT32 g, UINT32 b)
r17967r17968
373374   machine().primary_screen->register_screen_bitmap(m_bitmap_fg);
374375}
375376
376static SCREEN_UPDATE_RGB32(sliver)
377UINT32 sliver_state::screen_update_sliver(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
377378{
378   sliver_state *state = screen.machine().driver_data<sliver_state>();
379379
380   copybitmap      (bitmap, state->m_bitmap_bg, 0, 0, 0, 0, cliprect);
381   copybitmap_trans(bitmap, state->m_bitmap_fg, 0, 0, 0, 0, cliprect, 0);
380   copybitmap      (bitmap, m_bitmap_bg, 0, 0, 0, 0, cliprect);
381   copybitmap_trans(bitmap, m_bitmap_fg, 0, 0, 0, 0, cliprect, 0);
382382   return 0;
383383}
384384
r17967r17968
486486   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
487487   MCFG_SCREEN_SIZE(64*8, 32*8)
488488   MCFG_SCREEN_VISIBLE_AREA(0*8, 384-1-16, 0*8, 240-1)
489   MCFG_SCREEN_UPDATE_STATIC(sliver)
489   MCFG_SCREEN_UPDATE_DRIVER(sliver_state, screen_update_sliver)
490490
491491   MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map)
492492
trunk/src/mame/drivers/epos.c
r17967r17968
407407   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
408408   MCFG_SCREEN_SIZE(272, 241)
409409   MCFG_SCREEN_VISIBLE_AREA(0, 271, 0, 235)
410   MCFG_SCREEN_UPDATE_STATIC(epos)
410   MCFG_SCREEN_UPDATE_DRIVER(epos_state, screen_update_epos)
411411
412412   /* sound hardware */
413413   MCFG_SPEAKER_STANDARD_MONO("mono")
r17967r17968
434434   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
435435   MCFG_SCREEN_SIZE(272, 241)
436436   MCFG_SCREEN_VISIBLE_AREA(0, 271, 0, 235)
437   MCFG_SCREEN_UPDATE_STATIC(epos)
437   MCFG_SCREEN_UPDATE_DRIVER(epos_state, screen_update_epos)
438438
439439   /* sound hardware */
440440   MCFG_SPEAKER_STANDARD_MONO("mono")
trunk/src/mame/drivers/mrflea.c
r17967r17968
373373   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
374374   MCFG_SCREEN_SIZE(32*8, 32*8)
375375   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 31*8-1)
376   MCFG_SCREEN_UPDATE_STATIC(mrflea)
376   MCFG_SCREEN_UPDATE_DRIVER(mrflea_state, screen_update_mrflea)
377377
378378   MCFG_GFXDECODE(mrflea)
379379   MCFG_PALETTE_LENGTH(32)
trunk/src/mame/drivers/cps3.c
r17967r17968
933933   }
934934}
935935
936static SCREEN_UPDATE_RGB32(cps3)
936UINT32 cps3_state::screen_update_cps3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
937937{
938   cps3_state *state = screen.machine().driver_data<cps3_state>();
939938   int y,x, count;
940939   attoseconds_t period = screen.frame_period().attoseconds;
941940   rectangle visarea = screen.visible_area();
r17967r17968
951950   /* registers are normally 002a006f 01ef01c6
952951            widescreen mode = 00230076 026501c6
953952      only SFIII2 uses widescreen, I don't know exactly which register controls it */
954   if (((state->m_fullscreenzoom[1]&0xffff0000)>>16)==0x0265)
953   if (((m_fullscreenzoom[1]&0xffff0000)>>16)==0x0265)
955954   {
956      if (state->m_screenwidth!=496)
955      if (m_screenwidth!=496)
957956      {
958         state->m_screenwidth = 496;
957         m_screenwidth = 496;
959958         visarea.set(0, 496-1, 0, 224-1);
960959         screen.configure(496, 224, visarea, period);
961960      }
962961   }
963962   else
964963   {
965      if (state->m_screenwidth!=384)
964      if (m_screenwidth!=384)
966965      {
967         state->m_screenwidth = 384;
966         m_screenwidth = 384;
968967         visarea.set(0, 384-1, 0, 224-1);
969968         screen.configure(384, 224, visarea, period);
970969      }
971970   }
972971
973   fullscreenzoomx = state->m_fullscreenzoom[3] & 0x000000ff;
974   fullscreenzoomy = state->m_fullscreenzoom[3] & 0x000000ff;
972   fullscreenzoomx = m_fullscreenzoom[3] & 0x000000ff;
973   fullscreenzoomy = m_fullscreenzoom[3] & 0x000000ff;
975974   /* clamp at 0x80, I don't know if this is accurate */
976975   if (fullscreenzoomx>0x80) fullscreenzoomx = 0x80;
977976   if (fullscreenzoomy>0x80) fullscreenzoomy = 0x80;
r17967r17968
979978   fszx = (fullscreenzoomx<<16)/0x40;
980979   fszy = (fullscreenzoomy<<16)/0x40;
981980
982   state->m_renderbuffer_clip.min_x = 0;
983   state->m_renderbuffer_clip.max_x = ((state->m_screenwidth*fszx)>>16)-1;
984   state->m_renderbuffer_clip.min_y = 0;
985   state->m_renderbuffer_clip.max_y = ((224*fszx)>>16)-1;
981   m_renderbuffer_clip.min_x = 0;
982   m_renderbuffer_clip.max_x = ((m_screenwidth*fszx)>>16)-1;
983   m_renderbuffer_clip.min_y = 0;
984   m_renderbuffer_clip.max_y = ((224*fszx)>>16)-1;
986985
987   state->m_renderbuffer_bitmap.fill(0, state->m_renderbuffer_clip);
986   m_renderbuffer_bitmap.fill(0, m_renderbuffer_clip);
988987
989988   /* Sprites */
990989   {
r17967r17968
993992      //printf("Spritelist start:\n");
994993      for (i=0x00000/4;i<0x2000/4;i+=4)
995994      {
996         int xpos =     (state->m_spriteram[i+1]&0x03ff0000)>>16;
997         int ypos =     state->m_spriteram[i+1]&0x000003ff;
995         int xpos =     (m_spriteram[i+1]&0x03ff0000)>>16;
996         int ypos =     m_spriteram[i+1]&0x000003ff;
998997         int j;
999         int gscroll =      (state->m_spriteram[i+0]&0x70000000)>>28;
1000         int length =    (state->m_spriteram[i+0]&0x01ff0000)>>16; // how many entries in the sprite table
1001         UINT32 start  =    (state->m_spriteram[i+0]&0x00007ff0)>>4;
998         int gscroll =      (m_spriteram[i+0]&0x70000000)>>28;
999         int length =    (m_spriteram[i+0]&0x01ff0000)>>16; // how many entries in the sprite table
1000         UINT32 start  =    (m_spriteram[i+0]&0x00007ff0)>>4;
10021001
1003         int whichbpp =     (state->m_spriteram[i+2]&0x40000000)>>30; // not 100% sure if this is right, jojo title / characters
1004         int whichpal =     (state->m_spriteram[i+2]&0x20000000)>>29;
1005         int global_xflip = (state->m_spriteram[i+2]&0x10000000)>>28;
1006         int global_yflip = (state->m_spriteram[i+2]&0x08000000)>>27;
1007         int global_alpha = (state->m_spriteram[i+2]&0x04000000)>>26; // alpha / shadow? set on sfiii2 shadows, and big black image in jojo intro
1008         int global_bpp =   (state->m_spriteram[i+2]&0x02000000)>>25;
1009         int global_pal =   (state->m_spriteram[i+2]&0x01ff0000)>>16;
1002         int whichbpp =     (m_spriteram[i+2]&0x40000000)>>30; // not 100% sure if this is right, jojo title / characters
1003         int whichpal =     (m_spriteram[i+2]&0x20000000)>>29;
1004         int global_xflip = (m_spriteram[i+2]&0x10000000)>>28;
1005         int global_yflip = (m_spriteram[i+2]&0x08000000)>>27;
1006         int global_alpha = (m_spriteram[i+2]&0x04000000)>>26; // alpha / shadow? set on sfiii2 shadows, and big black image in jojo intro
1007         int global_bpp =   (m_spriteram[i+2]&0x02000000)>>25;
1008         int global_pal =   (m_spriteram[i+2]&0x01ff0000)>>16;
10101009
1011         int gscrollx = (state->m_unk_vidregs[gscroll]&0x03ff0000)>>16;
1012         int gscrolly = (state->m_unk_vidregs[gscroll]&0x000003ff)>>0;
1010         int gscrollx = (m_unk_vidregs[gscroll]&0x03ff0000)>>16;
1011         int gscrolly = (m_unk_vidregs[gscroll]&0x000003ff)>>0;
10131012         start = (start * 0x100) >> 2;
10141013
1015         if ((state->m_spriteram[i+0]&0xf0000000) == 0x80000000)
1014         if ((m_spriteram[i+0]&0xf0000000) == 0x80000000)
10161015            break;
10171016
10181017         for (j=0;j<(length)*4;j+=4)
10191018         {
10201019
1021            UINT32 value1 =    (state->m_spriteram[start+j+0]);
1022            UINT32 value2 =    (state->m_spriteram[start+j+1]);
1023            UINT32 value3 =    (state->m_spriteram[start+j+2]);
1020            UINT32 value1 =    (m_spriteram[start+j+0]);
1021            UINT32 value2 =    (m_spriteram[start+j+1]);
1022            UINT32 value3 =    (m_spriteram[start+j+2]);
10241023
10251024
1026            //UINT8* srcdata = (UINT8*)state->m_char_ram;
1025            //UINT8* srcdata = (UINT8*)m_char_ram;
10271026            //UINT32 sourceoffset = (value1 >>14)&0x7fffff;
10281027            int count;
10291028
r17967r17968
10611060               //int endline;
10621061               //int height = (value3 & 0x7f000000)>>24;
10631062               int uu;
1064//                  UINT32* tmapregs[4] = { state->m_tilemap20_regs_base, state->m_tilemap30_regs_base, state->m_tilemap40_regs_base, state->m_tilemap50_regs_base };
1063//                  UINT32* tmapregs[4] = { m_tilemap20_regs_base, m_tilemap30_regs_base, m_tilemap40_regs_base, m_tilemap50_regs_base };
10651064//                  UINT32* regs;
10661065//                  regs = tmapregs[tilemapnum];
10671066               //endline = value2;
r17967r17968
10831082               {
10841083                  for (uu=0;uu<1023;uu++)
10851084                  {
1086                     cps3_draw_tilemapsprite_line(screen.machine(), tilemapnum, uu, state->m_renderbuffer_bitmap, state->m_renderbuffer_clip );
1085                     cps3_draw_tilemapsprite_line(screen.machine(), tilemapnum, uu, m_renderbuffer_bitmap, m_renderbuffer_clip );
10871086                  }
10881087               }
10891088               bg_drawn[tilemapnum] = 1;
r17967r17968
11411140
11421141                        if (current_ypos&0x200) current_ypos-=0x400;
11431142
1144                        //if ( (whichbpp) && (machine.primary_screen->frame_number() & 1)) continue;
1143                        //if ( (whichbpp) && (machine().primary_screen->frame_number() & 1)) continue;
11451144
11461145                        /* use the palette value from the main list or the sublists? */
11471146                        if (whichpal)
r17967r17968
11701169
11711170                           if (global_alpha || alpha)
11721171                           {
1173                              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);
1172                              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);
11741173                           }
11751174                           else
11761175                           {
1177                              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);
1176                              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);
11781177                           }
11791178                           count++;
11801179                        }
r17967r17968
12011200      for (rendery=0;rendery<224;rendery++)
12021201      {
12031202         dstbitmap = &bitmap.pix32(rendery);
1204         srcbitmap = &state->m_renderbuffer_bitmap.pix32(srcy>>16);
1203         srcbitmap = &m_renderbuffer_bitmap.pix32(srcy>>16);
12051204         srcx=0;
12061205
1207         for (renderx=0;renderx<state->m_screenwidth;renderx++)
1206         for (renderx=0;renderx<m_screenwidth;renderx++)
12081207         {
1209            dstbitmap[renderx] = state->m_mame_colours[srcbitmap[srcx>>16]&0x1ffff];
1208            dstbitmap[renderx] = m_mame_colours[srcbitmap[srcx>>16]&0x1ffff];
12101209            srcx += fszx;
12111210         }
12121211
r17967r17968
12181217   /* Copy the first 0x800 colours to be used for fg layer rendering */
12191218//  for (offset=0;offset<0x200;offset++)
12201219//  {
1221//      int palreadbase = (state->m_ss_pal_base << 9);
1222//      palette_set_color(machine,offset,state->m_mame_colours[palreadbase+offset]);
1220//      int palreadbase = (m_ss_pal_base << 9);
1221//      palette_set_color(machine(),offset,m_mame_colours[palreadbase+offset]);
12231222//  }
12241223
12251224   // fg layer
12261225   {
12271226      // bank select? (sfiii2 intro)
1228      if (state->m_ss_bank_base & 0x01000000) count = 0x000;
1227      if (m_ss_bank_base & 0x01000000) count = 0x000;
12291228      else count = 0x800;
12301229
12311230      for (y=0;y<32;y++)
12321231      {
12331232         for (x=0;x<64;x++)
12341233         {
1235            UINT32 data = state->m_ss_ram[count]; // +0x800 = 2nd bank, used on sfiii2 intro..
1234            UINT32 data = m_ss_ram[count]; // +0x800 = 2nd bank, used on sfiii2 intro..
12361235            UINT32 tile = (data >> 16) & 0x1ff;
12371236            int pal = (data&0x003f) >> 1;
12381237            int flipx = (data & 0x0080) >> 7;
12391238            int flipy = (data & 0x0040) >> 6;
1240            pal += state->m_ss_pal_base << 5;
1239            pal += m_ss_pal_base << 5;
12411240            tile+=0x200;
12421241
12431242            cps3_drawgfxzoom(bitmap, cliprect, screen.machine().gfx[0],tile,pal,flipx,flipy,x*8,y*8,CPS3_TRANSPARENCY_PEN,0,0x10000,0x10000,NULL,0);
r17967r17968
25062505   /* video hardware */
25072506   MCFG_SCREEN_ADD("screen", RASTER)
25082507   MCFG_SCREEN_RAW_PARAMS(XTAL_60MHz/8, 486, 0, 384, 259, 0, 224)
2509   MCFG_SCREEN_UPDATE_STATIC(cps3)
2508   MCFG_SCREEN_UPDATE_DRIVER(cps3_state, screen_update_cps3)
25102509/*
25112510    Measured clocks:
25122511        V = 59.5992Hz
trunk/src/mame/drivers/glass.c
r17967r17968
205205   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
206206   MCFG_SCREEN_SIZE(32*16, 32*16)
207207   MCFG_SCREEN_VISIBLE_AREA(0, 368-1, 16, 256-1)
208   MCFG_SCREEN_UPDATE_STATIC(glass)
208   MCFG_SCREEN_UPDATE_DRIVER(glass_state, screen_update_glass)
209209
210210   MCFG_GFXDECODE(glass)
211211   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/ddz.c
r17967r17968
2323      : driver_device(mconfig, type, tag) { }
2424
2525   virtual void video_start();
26   UINT32 screen_update_ddz(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
27   void screen_eof_ddz(screen_device &screen, bool state);
2628};
2729
2830
r17967r17968
3537}
3638
3739
38static SCREEN_UPDATE_RGB32(ddz)
40UINT32 ddz_state::screen_update_ddz(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
3941{
4042   return 0;
4143}
4244
43static SCREEN_VBLANK(ddz)
45void ddz_state::screen_eof_ddz(screen_device &screen, bool state)
4446{
4547
4648}
r17967r17968
7577   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
7678   MCFG_SCREEN_SIZE(320, 240)
7779   MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
78   MCFG_SCREEN_UPDATE_STATIC(ddz)
79   MCFG_SCREEN_VBLANK_STATIC(ddz)
80   MCFG_SCREEN_UPDATE_DRIVER(ddz_state, screen_update_ddz)
81   MCFG_SCREEN_VBLANK_DRIVER(ddz_state, screen_eof_ddz)
8082
8183   MCFG_PALETTE_LENGTH(8192)
8284
trunk/src/mame/drivers/subsino.c
r17967r17968
306306   DECLARE_PALETTE_INIT(subsino_3proms);
307307   DECLARE_VIDEO_START(subsino_reels);
308308   DECLARE_VIDEO_START(stisub);
309   UINT32 screen_update_subsino(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
310   UINT32 screen_update_subsino_reels(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
311   UINT32 screen_update_stisub_reels(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
309312};
310313
311314
r17967r17968
483486}
484487
485488
486static SCREEN_UPDATE_IND16( subsino )
489UINT32 subsino_state::screen_update_subsino(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
487490{
488   subsino_state *state = screen.machine().driver_data<subsino_state>();
489491   bitmap.fill(0, cliprect);
490   state->m_tmap->draw(bitmap, cliprect, 0, 0);
492   m_tmap->draw(bitmap, cliprect, 0, 0);
491493   return 0;
492494}
493495
494static SCREEN_UPDATE_IND16( subsino_reels )
496UINT32 subsino_state::screen_update_subsino_reels(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
495497{
496   subsino_state *state = screen.machine().driver_data<subsino_state>();
497498   int i;
498499   bitmap.fill(0, cliprect);
499500
500501   for (i= 0;i < 64;i++)
501502   {
502      state->m_reel1_tilemap->set_scrolly(i, state->m_reel1_scroll[i]);
503      state->m_reel2_tilemap->set_scrolly(i, state->m_reel2_scroll[i]);
504      state->m_reel3_tilemap->set_scrolly(i, state->m_reel3_scroll[i]);
503      m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i]);
504      m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i]);
505      m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i]);
505506   }
506507
507   if (state->m_out_c&0x08)
508   if (m_out_c&0x08)
508509   {
509510      // are these hardcoded, or registers?
510511      const rectangle visible1(0*8, (14+48)*8-1,  4*8,  (4+7)*8-1);
511512      const rectangle visible2(0*8, (14+48)*8-1, 10*8, (10+7)*8-1);
512513      const rectangle visible3(0*8, (14+48)*8-1, 18*8, (18+7)*8-1);
513514
514      state->m_reel1_tilemap->draw(bitmap, visible1, 0, 0);
515      state->m_reel2_tilemap->draw(bitmap, visible2, 0, 0);
516      state->m_reel3_tilemap->draw(bitmap, visible3, 0, 0);
515      m_reel1_tilemap->draw(bitmap, visible1, 0, 0);
516      m_reel2_tilemap->draw(bitmap, visible2, 0, 0);
517      m_reel3_tilemap->draw(bitmap, visible3, 0, 0);
517518   }
518519
519   state->m_tmap->draw(bitmap, cliprect, 0, 0);
520   m_tmap->draw(bitmap, cliprect, 0, 0);
520521   return 0;
521522}
522523
523524
524static SCREEN_UPDATE_IND16( stisub_reels )
525UINT32 subsino_state::screen_update_stisub_reels(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
525526{
526   subsino_state *state = screen.machine().driver_data<subsino_state>();
527527   int i;
528528   bitmap.fill(0, cliprect);
529529
530   if (state->m_reel1_attr)
530   if (m_reel1_attr)
531531   {
532      state->m_reel1_tilemap->mark_all_dirty();
533      state->m_reel2_tilemap->mark_all_dirty();
534      state->m_reel3_tilemap->mark_all_dirty();
532      m_reel1_tilemap->mark_all_dirty();
533      m_reel2_tilemap->mark_all_dirty();
534      m_reel3_tilemap->mark_all_dirty();
535535   }
536536
537537   for (i= 0;i < 64;i++)
538538   {
539      state->m_reel1_tilemap->set_scrolly(i, state->m_reel1_scroll[i]);
540      state->m_reel2_tilemap->set_scrolly(i, state->m_reel2_scroll[i]);
541      state->m_reel3_tilemap->set_scrolly(i, state->m_reel3_scroll[i]);
539      m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i]);
540      m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i]);
541      m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i]);
542542   }
543543
544   if (state->m_out_c&0x08)
544   if (m_out_c&0x08)
545545   {
546546      // areas based on d-up game in attract mode
547547      const rectangle visible1(0, 511,  0,  87);
548548      const rectangle visible2(0, 511,  88, 143);
549549      const rectangle visible3(0, 511,  144, 223);
550550
551      state->m_reel1_tilemap->draw(bitmap, visible1, 0, 0);
552      state->m_reel2_tilemap->draw(bitmap, visible2, 0, 0);
553      state->m_reel3_tilemap->draw(bitmap, visible3, 0, 0);
551      m_reel1_tilemap->draw(bitmap, visible1, 0, 0);
552      m_reel2_tilemap->draw(bitmap, visible2, 0, 0);
553      m_reel3_tilemap->draw(bitmap, visible3, 0, 0);
554554   }
555555
556   state->m_tmap->draw(bitmap, cliprect, 0, 0);
556   m_tmap->draw(bitmap, cliprect, 0, 0);
557557   return 0;
558558}
559559
r17967r17968
26572657   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
26582658   MCFG_SCREEN_SIZE(512, 256)
26592659   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+16, 256-16-1)
2660   MCFG_SCREEN_UPDATE_STATIC(subsino)
2660   MCFG_SCREEN_UPDATE_DRIVER(subsino_state, screen_update_subsino)
26612661
26622662   MCFG_GFXDECODE(subsino_depth3)
26632663
r17967r17968
26972697   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
26982698   MCFG_SCREEN_SIZE(512, 256)
26992699   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+16, 256-16-1)
2700   MCFG_SCREEN_UPDATE_STATIC(subsino)
2700   MCFG_SCREEN_UPDATE_DRIVER(subsino_state, screen_update_subsino)
27012701
27022702   MCFG_GFXDECODE(subsino_depth4)
27032703
r17967r17968
27262726   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
27272727   MCFG_SCREEN_SIZE(512, 256)
27282728   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+16, 256-16-1)
2729   MCFG_SCREEN_UPDATE_STATIC(subsino)
2729   MCFG_SCREEN_UPDATE_DRIVER(subsino_state, screen_update_subsino)
27302730
27312731   MCFG_GFXDECODE(subsino_depth4)
27322732
r17967r17968
27652765   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
27662766   MCFG_SCREEN_SIZE(512, 256)
27672767   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+16, 256-16-1)
2768   MCFG_SCREEN_UPDATE_STATIC(subsino_reels)
2768   MCFG_SCREEN_UPDATE_DRIVER(subsino_state, screen_update_subsino_reels)
27692769
27702770   MCFG_GFXDECODE(subsino_depth4_reels)
27712771
r17967r17968
27932793   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
27942794   MCFG_SCREEN_SIZE(512, 256)
27952795   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+16, 256-16-1)
2796   MCFG_SCREEN_UPDATE_STATIC(stisub_reels)
2796   MCFG_SCREEN_UPDATE_DRIVER(subsino_state, screen_update_stisub_reels)
27972797
27982798   MCFG_GFXDECODE(subsino_stisub)
27992799
trunk/src/mame/drivers/jchan.c
r17967r17968
224224
225225   DECLARE_DRIVER_INIT(jchan);
226226   virtual void video_start();
227   UINT32 screen_update_jchan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
227228};
228229
229230
r17967r17968
295296
296297
297298
298static SCREEN_UPDATE_IND16(jchan)
299UINT32 jchan_state::screen_update_jchan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
299300{
300   jchan_state *state = screen.machine().driver_data<jchan_state>();
301301   int x,y;
302302   UINT16* src1;
303303   UINT16* src2;
r17967r17968
309309
310310   screen.machine().priority_bitmap.fill(0, cliprect);
311311
312   state->m_view2_0->kaneko16_prepare(bitmap, cliprect);
312   m_view2_0->kaneko16_prepare(bitmap, cliprect);
313313
314314   for ( int i = 0; i < 8; i++ )
315315   {
316      state->m_view2_0->render_tilemap_chip(bitmap,cliprect,i);
316      m_view2_0->render_tilemap_chip(bitmap,cliprect,i);
317317   }
318318
319   state->m_sprite_bitmap_1->fill(0x0000, cliprect);
320   state->m_sprite_bitmap_2->fill(0x0000, cliprect);
319   m_sprite_bitmap_1->fill(0x0000, cliprect);
320   m_sprite_bitmap_2->fill(0x0000, cliprect);
321321
322   state->m_spritegen1->skns_draw_sprites(screen.machine(), *state->m_sprite_bitmap_1, cliprect, state->m_sprite_ram32_1, 0x4000, screen.machine().root_device().memregion("gfx1")->base(), screen.machine().root_device().memregion ("gfx1")->bytes(), state->m_sprite_regs32_1 );
323   state->m_spritegen2->skns_draw_sprites(screen.machine(), *state->m_sprite_bitmap_2, cliprect, state->m_sprite_ram32_2, 0x4000, screen.machine().root_device().memregion("gfx2")->base(), state->memregion ("gfx2")->bytes(), state->m_sprite_regs32_2 );
322   m_spritegen1->skns_draw_sprites(screen.machine(), *m_sprite_bitmap_1, cliprect, m_sprite_ram32_1, 0x4000, screen.machine().root_device().memregion("gfx1")->base(), screen.machine().root_device().memregion ("gfx1")->bytes(), m_sprite_regs32_1 );
323   m_spritegen2->skns_draw_sprites(screen.machine(), *m_sprite_bitmap_2, cliprect, m_sprite_ram32_2, 0x4000, screen.machine().root_device().memregion("gfx2")->base(), memregion ("gfx2")->bytes(), m_sprite_regs32_2 );
324324
325325   // ignoring priority bits for now - might use alpha too, check 0x8000 of palette writes
326326   for (y=0;y<240;y++)
327327   {
328      src1 = &state->m_sprite_bitmap_1->pix16(y);
329      src2 = &state->m_sprite_bitmap_2->pix16(y);
328      src1 = &m_sprite_bitmap_1->pix16(y);
329      src2 = &m_sprite_bitmap_2->pix16(y);
330330      dst =  &bitmap.pix16(y);
331331
332332      for (x=0;x<320;x++)
r17967r17968
612612   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
613613   MCFG_SCREEN_SIZE(64*8, 64*8)
614614   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1)
615   MCFG_SCREEN_UPDATE_STATIC(jchan)
615   MCFG_SCREEN_UPDATE_DRIVER(jchan_state, screen_update_jchan)
616616
617617   MCFG_PALETTE_LENGTH(0x10000)
618618
trunk/src/mame/drivers/mlanding.c
r17967r17968
7777   DECLARE_DRIVER_INIT(mlanding);
7878   virtual void machine_reset();
7979   virtual void video_start();
80   UINT32 screen_update_mlanding(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8081};
8182
8283
r17967r17968
8990// 256: Cockpit
9091// 512: control centre screen
9192// 768: plane landing sequence
92static SCREEN_UPDATE_IND16(mlanding)
93UINT32 mlanding_state::screen_update_mlanding(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
9394{
94   mlanding_state *state = screen.machine().driver_data<mlanding_state>();
9595   int x, y;
9696
9797   for (y = cliprect.min_y; y <= cliprect.max_y; ++y)
9898   {
99      UINT16 *src = &state->m_g_ram[y * 512/2 + cliprect.min_x];
99      UINT16 *src = &m_g_ram[y * 512/2 + cliprect.min_x];
100100      UINT16 *dst = &bitmap.pix16(y, cliprect.min_x);
101101
102102      for (x = cliprect.min_x; x <= cliprect.max_x; x += 2)
103103      {
104104         UINT16 srcpix = *src++;
105105
106         *dst++ = screen.machine().pens[256+(srcpix & 0xff) + (state->m_pal_fg_bank & 1 ? 0x100 : 0x000)];
107         *dst++ = screen.machine().pens[256+(srcpix >> 8) + (state->m_pal_fg_bank & 1 ? 0x100 : 0x000)];
106         *dst++ = screen.machine().pens[256+(srcpix & 0xff) + (m_pal_fg_bank & 1 ? 0x100 : 0x000)];
107         *dst++ = screen.machine().pens[256+(srcpix >> 8) + (m_pal_fg_bank & 1 ? 0x100 : 0x000)];
108108      }
109109   }
110110
r17967r17968
794794   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
795795   MCFG_SCREEN_SIZE(512, 512)
796796   MCFG_SCREEN_VISIBLE_AREA(0, 511, 14*8, 511)
797   MCFG_SCREEN_UPDATE_STATIC(mlanding)
797   MCFG_SCREEN_UPDATE_DRIVER(mlanding_state, screen_update_mlanding)
798798
799799   MCFG_PALETTE_LENGTH(512*16)
800800
trunk/src/mame/drivers/tankbust.c
r17967r17968
347347   MCFG_SCREEN_SIZE   ( 64*8, 32*8 )
348348   MCFG_SCREEN_VISIBLE_AREA  ( 16*8, 56*8-1, 1*8, 31*8-1 )
349349//  MCFG_SCREEN_VISIBLE_AREA  (  0*8, 64*8-1, 1*8, 31*8-1 )
350   MCFG_SCREEN_UPDATE_STATI( tankbust )
350   MCFG_SCREEN_UPDATE_DRIVER(tankbust_state, screen_update_tankbust)
351351
352352   MCFG_GFXDECODE( tankbust )
353353
trunk/src/mame/drivers/bankp.c
r17967r17968
309309   /* video hardware */
310310   MCFG_SCREEN_ADD("screen", RASTER)
311311   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
312   MCFG_SCREEN_UPDATE_STATIC(bankp)
312   MCFG_SCREEN_UPDATE_DRIVER(bankp_state, screen_update_bankp)
313313
314314   MCFG_GFXDECODE(bankp)
315315   MCFG_PALETTE_LENGTH(32*4+16*8)
trunk/src/mame/drivers/neoprint.c
r17967r17968
5555   DECLARE_DRIVER_INIT(nprsp);
5656   virtual void video_start();
5757   DECLARE_MACHINE_RESET(nprsp);
58   UINT32 screen_update_neoprint(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
59   UINT32 screen_update_nprsp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5860};
5961
6062
r17967r17968
109111   }
110112}
111113
112SCREEN_UPDATE_IND16(neoprint)
114UINT32 neoprint_state::screen_update_neoprint(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
113115{
114116   bitmap.fill(0, cliprect);
115117
r17967r17968
119121   return 0;
120122}
121123
122SCREEN_UPDATE_IND16(nprsp)
124UINT32 neoprint_state::screen_update_nprsp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
123125{
124126   bitmap.fill(0, cliprect);
125127
r17967r17968
479481   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
480482   MCFG_SCREEN_SIZE(64*8, 32*8)
481483   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 30*8-1)
482   MCFG_SCREEN_UPDATE_STATIC(neoprint)
484   MCFG_SCREEN_UPDATE_DRIVER(neoprint_state, screen_update_neoprint)
483485
484486   MCFG_PALETTE_LENGTH(0x10000)
485487
r17967r17968
519521   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
520522   MCFG_SCREEN_SIZE(64*8, 32*8)
521523   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 30*8-1)
522   MCFG_SCREEN_UPDATE_STATIC(nprsp)
524   MCFG_SCREEN_UPDATE_DRIVER(neoprint_state, screen_update_nprsp)
523525
524526   MCFG_MACHINE_RESET_OVERRIDE(neoprint_state,nprsp)
525527
trunk/src/mame/drivers/pastelg.c
r17967r17968
421421   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
422422   MCFG_SCREEN_SIZE(256, 256)
423423   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1)
424   MCFG_SCREEN_UPDATE_STATIC(pastelg)
424   MCFG_SCREEN_UPDATE_DRIVER(pastelg_state, screen_update_pastelg)
425425
426426   MCFG_PALETTE_LENGTH(32)
427427
r17967r17968
477477   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
478478   MCFG_SCREEN_SIZE(256, 256)
479479   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1)
480   MCFG_SCREEN_UPDATE_STATIC(pastelg)
480   MCFG_SCREEN_UPDATE_DRIVER(pastelg_state, screen_update_pastelg)
481481
482482   MCFG_PALETTE_LENGTH(32)
483483
trunk/src/mame/drivers/seattle.c
r17967r17968
493493   DECLARE_DRIVER_INIT(blitz99);
494494   virtual void machine_start();
495495   virtual void machine_reset();
496   UINT32 screen_update_seattle(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
496497};
497498
498499
r17967r17968
519520 *
520521 *************************************/
521522
522static SCREEN_UPDATE_RGB32( seattle )
523UINT32 seattle_state::screen_update_seattle(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
523524{
524   seattle_state *state = screen.machine().driver_data<seattle_state>();
525   return voodoo_update(state->m_voodoo, bitmap, cliprect) ? 0 : UPDATE_HAS_NOT_CHANGED;
525   return voodoo_update(m_voodoo, bitmap, cliprect) ? 0 : UPDATE_HAS_NOT_CHANGED;
526526}
527527
528528
r17967r17968
25592559   MCFG_SCREEN_REFRESH_RATE(57)
25602560   MCFG_SCREEN_SIZE(640, 480)
25612561   MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479)
2562   MCFG_SCREEN_UPDATE_STATIC(seattle)
2562   MCFG_SCREEN_UPDATE_DRIVER(seattle_state, screen_update_seattle)
25632563
25642564   /* sound hardware */
25652565MACHINE_CONFIG_END
trunk/src/mame/drivers/galastrm.c
r17967r17968
320320   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
321321   MCFG_SCREEN_SIZE(64*8, 50*8)
322322   MCFG_SCREEN_VISIBLE_AREA(0+96, 40*8-1+96, 3*8+60, 32*8-1+60)
323   MCFG_SCREEN_UPDATE_STATIC(galastrm)
323   MCFG_SCREEN_UPDATE_DRIVER(galastrm_state, screen_update_galastrm)
324324
325325   MCFG_GFXDECODE(galastrm)
326326   MCFG_PALETTE_LENGTH(4096)
trunk/src/mame/drivers/tetrisp2.c
r17967r17968
13401340   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
13411341   MCFG_SCREEN_SIZE(0x140, 0xe0)
13421342   MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xe0-1)
1343   MCFG_SCREEN_UPDATE_STATIC(tetrisp2)
1343   MCFG_SCREEN_UPDATE_DRIVER(tetrisp2_state, screen_update_tetrisp2)
13441344
13451345   MCFG_GFXDECODE(tetrisp2)
13461346   MCFG_PALETTE_LENGTH(0x8000)
r17967r17968
13711371   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
13721372   MCFG_SCREEN_SIZE(0x180, 0xf0)
13731373   MCFG_SCREEN_VISIBLE_AREA(0, 0x180-1, 0, 0xf0-1)
1374   MCFG_SCREEN_UPDATE_STATIC(tetrisp2)
1374   MCFG_SCREEN_UPDATE_DRIVER(tetrisp2_state, screen_update_tetrisp2)
13751375
13761376   MCFG_GFXDECODE(tetrisp2)
13771377   MCFG_PALETTE_LENGTH(0x8000)
r17967r17968
14011401   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
14021402   MCFG_SCREEN_SIZE(0x140, 0xe0)
14031403   MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xe0-1)
1404   MCFG_SCREEN_UPDATE_STATIC(rockntread)
1404   MCFG_SCREEN_UPDATE_DRIVER(tetrisp2_state, screen_update_rockntread)
14051405
14061406   MCFG_GFXDECODE(tetrisp2)
14071407   MCFG_PALETTE_LENGTH(0x8000)
r17967r17968
14321432   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
14331433   MCFG_SCREEN_SIZE(0x140, 0xe0)
14341434   MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xe0-1)
1435   MCFG_SCREEN_UPDATE_STATIC(rockntread)
1435   MCFG_SCREEN_UPDATE_DRIVER(tetrisp2_state, screen_update_rockntread)
14361436
14371437   MCFG_GFXDECODE(tetrisp2)
14381438   MCFG_PALETTE_LENGTH(0x8000)
r17967r17968
14721472   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
14731473   MCFG_SCREEN_SIZE(0x140, 0xe0)
14741474   MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xe0-1)
1475   MCFG_SCREEN_UPDATE_STATIC(rocknms_left)
1475   MCFG_SCREEN_UPDATE_DRIVER(tetrisp2_state, screen_update_rocknms_left)
14761476
14771477   MCFG_SCREEN_ADD("rscreen", RASTER)
14781478   MCFG_SCREEN_REFRESH_RATE(60)
14791479   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
14801480   MCFG_SCREEN_SIZE(0x140, 0xe0)
14811481   MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xe0-1)
1482   MCFG_SCREEN_UPDATE_STATIC(rocknms_right)
1482   MCFG_SCREEN_UPDATE_DRIVER(tetrisp2_state, screen_update_rocknms_right)
14831483
14841484   MCFG_VIDEO_START_OVERRIDE(tetrisp2_state,rocknms)
14851485
r17967r17968
15091509   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
15101510   MCFG_SCREEN_SIZE(0x160, 0x100)
15111511   MCFG_SCREEN_VISIBLE_AREA(0, 0x160-1, 0, 0xf0-1)
1512   MCFG_SCREEN_UPDATE_STATIC(stepstag_left)
1512   MCFG_SCREEN_UPDATE_DRIVER(stepstag_state, screen_update_stepstag_left)
15131513
15141514   MCFG_SCREEN_ADD("screen", RASTER)
15151515   MCFG_SCREEN_REFRESH_RATE(60)
15161516   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
15171517   MCFG_SCREEN_SIZE(0x160, 0x100)
15181518   MCFG_SCREEN_VISIBLE_AREA(0, 0x160-1, 0, 0xf0-1)
1519   MCFG_SCREEN_UPDATE_STATIC(stepstag_mid)
1519   MCFG_SCREEN_UPDATE_DRIVER(stepstag_state, screen_update_stepstag_mid)
15201520
15211521   MCFG_SCREEN_ADD("rscreen", RASTER)
15221522   MCFG_SCREEN_REFRESH_RATE(60)
15231523   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
15241524   MCFG_SCREEN_SIZE(0x160, 0x100)
15251525   MCFG_SCREEN_VISIBLE_AREA(0, 0x160-1, 0, 0xf0-1)
1526   MCFG_SCREEN_UPDATE_STATIC(stepstag_right)
1526   MCFG_SCREEN_UPDATE_DRIVER(stepstag_state, screen_update_stepstag_right)
15271527
15281528   MCFG_PALETTE_LENGTH(0x8000)   // 0x8000 * 3 needed I guess, but it hits an assert
15291529
trunk/src/mame/drivers/alpha68k.c
r17967r17968
19781978   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
19791979   MCFG_SCREEN_SIZE(32*8, 32*8)
19801980   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1981   MCFG_SCREEN_UPDATE_STATIC(sstingry)
1981   MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_sstingry)
19821982
19831983   MCFG_GFXDECODE(sstingry)
19841984   MCFG_PALETTE_LENGTH(256 + 1)
r17967r17968
20232023   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
20242024   MCFG_SCREEN_SIZE(32*8, 32*8)
20252025   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
2026   MCFG_SCREEN_UPDATE_STATIC(kyros)
2026   MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_kyros)
20272027
20282028   MCFG_GFXDECODE(kyros)
20292029   MCFG_PALETTE_LENGTH(256 + 1)
r17967r17968
20682068   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
20692069   MCFG_SCREEN_SIZE(32*8, 32*8)
20702070   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
2071   MCFG_SCREEN_UPDATE_STATIC(kyros)
2071   MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_kyros)
20722072
20732073   MCFG_GFXDECODE(jongbou)
20742074   MCFG_PALETTE_LENGTH(256 + 1)
r17967r17968
21022102   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
21032103   MCFG_SCREEN_SIZE(32*8, 32*8)
21042104   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
2105   MCFG_SCREEN_UPDATE_STATIC(alpha68k_I)
2105   MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_alpha68k_I)
21062106
21072107   MCFG_GFXDECODE(paddle)
21082108
r17967r17968
21462146   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
21472147   MCFG_SCREEN_SIZE(32*8, 32*8)
21482148   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
2149   MCFG_SCREEN_UPDATE_STATIC(alpha68k_II)
2149   MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_alpha68k_II)
21502150
21512151   MCFG_GFXDECODE(alpha68k_II)
21522152   MCFG_PALETTE_LENGTH(2048)
r17967r17968
21952195   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
21962196   MCFG_SCREEN_SIZE(32*8, 32*8)
21972197   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
2198   MCFG_SCREEN_UPDATE_STATIC(alpha68k_II)
2198   MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_alpha68k_II)
21992199
22002200   MCFG_GFXDECODE(alpha68k_II)
22012201   MCFG_PALETTE_LENGTH(2048)
r17967r17968
22382238   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
22392239   MCFG_SCREEN_SIZE(32*8, 32*8)
22402240   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
2241   MCFG_SCREEN_UPDATE_STATIC(alpha68k_V)
2241   MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_alpha68k_V)
22422242
22432243   MCFG_GFXDECODE(alpha68k_V)
22442244   MCFG_PALETTE_LENGTH(4096)
r17967r17968
22802280   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
22812281   MCFG_SCREEN_SIZE(32*8, 32*8)
22822282   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
2283   MCFG_SCREEN_UPDATE_STATIC(alpha68k_V_sb)
2283   MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_alpha68k_V_sb)
22842284
22852285   MCFG_GFXDECODE(alpha68k_V)
22862286   MCFG_PALETTE_LENGTH(4096)
r17967r17968
23212321   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
23222322   MCFG_SCREEN_SIZE(32*8, 32*8)
23232323   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
2324   MCFG_SCREEN_UPDATE_STATIC(alpha68k_I)
2324   MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_alpha68k_I)
23252325
23262326   MCFG_GFXDECODE(tnextspc)
23272327
trunk/src/mame/drivers/tmaster.c
r17967r17968
183183   DECLARE_VIDEO_START(tmaster);
184184   DECLARE_MACHINE_RESET(galgames);
185185   DECLARE_VIDEO_START(galgames);
186   UINT32 screen_update_tmaster(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
186187};
187188
188189
r17967r17968
357358   m_compute_addr = galgames_compute_addr;
358359}
359360
360static SCREEN_UPDATE_IND16( tmaster )
361UINT32 tmaster_state::screen_update_tmaster(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
361362{
362   tmaster_state *state = screen.machine().driver_data<tmaster_state>();
363363   int layers_ctrl = -1;
364364
365365#ifdef MAME_DEBUG
r17967r17968
375375
376376   bitmap.fill(get_black_pen(screen.machine()), cliprect);
377377
378   if (layers_ctrl & 1)   copybitmap_trans(bitmap, state->m_bitmap[0][(state->m_regs[0x02/2]>>8)&1], 0,0,0,0, cliprect, 0xff);
379   if (layers_ctrl & 2)   copybitmap_trans(bitmap, state->m_bitmap[1][(state->m_regs[0x02/2]>>9)&1], 0,0,0,0, cliprect, 0xff);
378   if (layers_ctrl & 1)   copybitmap_trans(bitmap, m_bitmap[0][(m_regs[0x02/2]>>8)&1], 0,0,0,0, cliprect, 0xff);
379   if (layers_ctrl & 2)   copybitmap_trans(bitmap, m_bitmap[1][(m_regs[0x02/2]>>9)&1], 0,0,0,0, cliprect, 0xff);
380380
381381   return 0;
382382}
r17967r17968
941941   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
942942   MCFG_SCREEN_SIZE(400, 256)
943943   MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 256-1)
944   MCFG_SCREEN_UPDATE_STATIC(tmaster)
944   MCFG_SCREEN_UPDATE_DRIVER(tmaster_state, screen_update_tmaster)
945945
946946   MCFG_PALETTE_LENGTH(0x1000)
947947
r17967r17968
998998   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
999999   MCFG_SCREEN_SIZE(400, 256)
10001000   MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 256-1)
1001   MCFG_SCREEN_UPDATE_STATIC(tmaster)
1001   MCFG_SCREEN_UPDATE_DRIVER(tmaster_state, screen_update_tmaster)
10021002
10031003   MCFG_PALETTE_LENGTH(0x1000)   // only 0x100 used
10041004
trunk/src/mame/drivers/tcl.c
r17967r17968
5454
5555   DECLARE_DRIVER_INIT(tcl);
5656   virtual void video_start();
57   UINT32 screen_update_tcl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5758};
5859
5960
6061void tcl_state::video_start()
6162{
6263}
63static SCREEN_UPDATE_IND16( tcl )
64UINT32 tcl_state::screen_update_tcl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
6465{
6566   return 0;
6667}
r17967r17968
135136   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
136137   MCFG_SCREEN_SIZE(32*8, 32*8)
137138   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
138   MCFG_SCREEN_UPDATE_STATIC(tcl)
139   MCFG_SCREEN_UPDATE_DRIVER(tcl_state, screen_update_tcl)
139140
140141   MCFG_GFXDECODE(tcl)
141142   MCFG_PALETTE_LENGTH(16*16)
trunk/src/mame/drivers/namcos22.c
r17967r17968
29712971   MCFG_NVRAM_HANDLER(namcos22)
29722972   MCFG_SCREEN_ADD("screen", RASTER)
29732973   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
2974   MCFG_SCREEN_UPDATE_STATIC(namcos22s)
2974   MCFG_SCREEN_UPDATE_DRIVER(namcos22_state, screen_update_namcos22s)
29752975
29762976   MCFG_PALETTE_LENGTH(NAMCOS22_PALETTE_SIZE)
29772977   MCFG_GFXDECODE(super)
r17967r17968
32193219   MCFG_NVRAM_HANDLER(namcos22)
32203220   MCFG_SCREEN_ADD("screen", RASTER)
32213221   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
3222   MCFG_SCREEN_UPDATE_STATIC(namcos22)
3222   MCFG_SCREEN_UPDATE_DRIVER(namcos22_state, screen_update_namcos22)
32233223
32243224   MCFG_PALETTE_LENGTH(NAMCOS22_PALETTE_SIZE)
32253225   MCFG_GFXDECODE(namcos22)
trunk/src/mame/drivers/flyball.c
r17967r17968
6060   virtual void machine_reset();
6161   virtual void video_start();
6262   virtual void palette_init();
63   UINT32 screen_update_flyball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6364};
6465
6566
r17967r17968
99100}
100101
101102
102static SCREEN_UPDATE_IND16( flyball )
103UINT32 flyball_state::screen_update_flyball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
103104{
104   flyball_state *state = screen.machine().driver_data<flyball_state>();
105   int pitcherx = state->m_pitcher_horz;
106   int pitchery = state->m_pitcher_vert - 31;
105   int pitcherx = m_pitcher_horz;
106   int pitchery = m_pitcher_vert - 31;
107107
108   int ballx = state->m_ball_horz - 1;
109   int bally = state->m_ball_vert - 17;
108   int ballx = m_ball_horz - 1;
109   int bally = m_ball_vert - 17;
110110
111111   int x;
112112   int y;
113113
114   state->m_tmap->mark_all_dirty();
114   m_tmap->mark_all_dirty();
115115
116116   /* draw playfield */
117   state->m_tmap->draw(bitmap, cliprect, 0, 0);
117   m_tmap->draw(bitmap, cliprect, 0, 0);
118118
119119   /* draw pitcher */
120   drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1], state->m_pitcher_pic ^ 0xf, 0, 1, 0, pitcherx, pitchery, 1);
120   drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1], m_pitcher_pic ^ 0xf, 0, 1, 0, pitcherx, pitchery, 1);
121121
122122   /* draw ball */
123123
r17967r17968
423423   MCFG_SCREEN_REFRESH_RATE(60)
424424   MCFG_SCREEN_SIZE(256, 262)
425425   MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239)
426   MCFG_SCREEN_UPDATE_STATIC(flyball)
426   MCFG_SCREEN_UPDATE_DRIVER(flyball_state, screen_update_flyball)
427427
428428   MCFG_GFXDECODE(flyball)
429429   MCFG_PALETTE_LENGTH(4)
trunk/src/mame/drivers/galaxold.c
r17967r17968
21872187
21882188   MCFG_SCREEN_ADD("screen", RASTER)
21892189   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
2190   MCFG_SCREEN_UPDATE_STATIC(galaxold)
2190   MCFG_SCREEN_UPDATE_DRIVER(galaxold_state, screen_update_galaxold)
21912191
21922192   MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,galaxold)
21932193   MCFG_VIDEO_START_OVERRIDE(galaxold_state,galaxold)
r17967r17968
23402340   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
23412341   MCFG_SCREEN_SIZE(32*8, 32*8)
23422342   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
2343   MCFG_SCREEN_UPDATE_STATIC(galaxold)
2343   MCFG_SCREEN_UPDATE_DRIVER(galaxold_state, screen_update_galaxold)
23442344
23452345   MCFG_PALETTE_LENGTH(64)
23462346   MCFG_GFXDECODE(gmgalax)
r17967r17968
23642364
23652365   MCFG_VIDEO_START_OVERRIDE(galaxold_state,bongo)
23662366   MCFG_SCREEN_MODIFY("screen")
2367   MCFG_SCREEN_UPDATE_STATIC(galaxold)
2367   MCFG_SCREEN_UPDATE_DRIVER(galaxold_state, screen_update_galaxold)
23682368
23692369   MCFG_SOUND_ADD("aysnd", AY8910, PIXEL_CLOCK/4)
23702370   MCFG_SOUND_CONFIG(bongo_ay8910_interface)
r17967r17968
24402440
24412441   MCFG_SCREEN_ADD("screen", RASTER)
24422442   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
2443   MCFG_SCREEN_UPDATE_STATIC(galaxold)
2443   MCFG_SCREEN_UPDATE_DRIVER(galaxold_state, screen_update_galaxold)
24442444
24452445   MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,rockclim)
24462446   MCFG_VIDEO_START_OVERRIDE(galaxold_state,racknrol)
r17967r17968
24982498
24992499   MCFG_SCREEN_ADD("screen", RASTER)
25002500   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
2501   MCFG_SCREEN_UPDATE_STATIC(galaxold)
2501   MCFG_SCREEN_UPDATE_DRIVER(galaxold_state, screen_update_galaxold)
25022502
25032503   MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,rockclim)
25042504   MCFG_VIDEO_START_OVERRIDE(galaxold_state,racknrol)
trunk/src/mame/drivers/atarisy1.c
r17967r17968
785785   /* note: these parameters are from published specs, not derived */
786786   /* video timing comes from an 82S163 (H) and an 82S129 (V) */
787787   MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
788   MCFG_SCREEN_UPDATE_STATIC(atarisy1)
788   MCFG_SCREEN_UPDATE_DRIVER(atarisy1_state, screen_update_atarisy1)
789789
790790   MCFG_VIDEO_START_OVERRIDE(atarisy1_state,atarisy1)
791791
trunk/src/mame/drivers/unkhorse.c
r17967r17968
3939   DECLARE_WRITE8_MEMBER(horse_output_w);
4040   DECLARE_WRITE_LINE_MEMBER(horse_timer_out);
4141   virtual void palette_init();
42   UINT32 screen_update_horse(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4243};
4344
4445
r17967r17968
5556      palette_set_color_rgb(machine(), i, pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i >> 0));
5657}
5758
58static SCREEN_UPDATE_IND16( horse )
59UINT32 horse_state::screen_update_horse(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
5960{
60   horse_state *state = screen.machine().driver_data<horse_state>();
6161
6262   for (int y = cliprect.min_y; y <= cliprect.max_y; y++)
6363   {
6464      for (int x = 0; x < 32; x++)
6565      {
66         UINT8 data = state->m_video_ram[y << 5 | x];
67         UINT8 color = state->m_color_ram[(y << 3 & 0x780) | x] >> 4;
66         UINT8 data = m_video_ram[y << 5 | x];
67         UINT8 color = m_color_ram[(y << 3 & 0x780) | x] >> 4;
6868
6969         for (int i = 0; i < 8; i++)
7070            bitmap.pix16(y, x << 3 | i) = (data >> i & 1) ? color : 0;
r17967r17968
213213   MCFG_SCREEN_SIZE(32*8, 32*8)
214214   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
215215
216   MCFG_SCREEN_UPDATE_STATIC(horse)
216   MCFG_SCREEN_UPDATE_DRIVER(horse_state, screen_update_horse)
217217
218218   MCFG_PALETTE_LENGTH(8)
219219
trunk/src/mame/drivers/sprint8.c
r17967r17968
463463   MCFG_SCREEN_REFRESH_RATE(60)
464464   MCFG_SCREEN_SIZE(512, 261)
465465   MCFG_SCREEN_VISIBLE_AREA(0, 495, 0, 231)
466   MCFG_SCREEN_UPDATE_STATIC(sprint8)
467   MCFG_SCREEN_VBLANK_STATIC(sprint8)
466   MCFG_SCREEN_UPDATE_DRIVER(sprint8_state, screen_update_sprint8)
467   MCFG_SCREEN_VBLANK_DRIVER(sprint8_state, screen_eof_sprint8)
468468
469469   MCFG_GFXDECODE(sprint8)
470470   MCFG_PALETTE_LENGTH(36)
trunk/src/mame/drivers/pturn.c
r17967r17968
117117   TILE_GET_INFO_MEMBER(get_pturn_bg_tile_info);
118118   virtual void machine_reset();
119119   virtual void video_start();
120   UINT32 screen_update_pturn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
120121};
121122
122123
r17967r17968
163164   m_bgmap->set_transparent_pen(0);
164165}
165166
166static SCREEN_UPDATE_IND16(pturn)
167UINT32 pturn_state::screen_update_pturn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
167168{
168   pturn_state *state = screen.machine().driver_data<pturn_state>();
169   UINT8 *spriteram = state->m_spriteram;
169   UINT8 *spriteram = m_spriteram;
170170   int offs;
171171   int sx, sy;
172172   int flipx, flipy;
173173
174   bitmap.fill(state->m_bgcolor, cliprect);
175   state->m_bgmap->draw(bitmap, cliprect, 0,0);
174   bitmap.fill(m_bgcolor, cliprect);
175   m_bgmap->draw(bitmap, cliprect, 0,0);
176176   for ( offs = 0x80-4 ; offs >=0 ; offs -= 4)
177177   {
178178      sy=256-spriteram[offs]-16 ;
r17967r17968
182182      flipy=spriteram[offs+1]&0x80;
183183
184184
185      if (state->flip_screen_x())
185      if (flip_screen_x())
186186      {
187187         sx = 224 - sx;
188188         flipx ^= 0x40;
189189      }
190190
191      if (state->flip_screen_y())
191      if (flip_screen_y())
192192      {
193193         flipy ^= 0x80;
194194         sy = 224 - sy;
r17967r17968
203203         sx,sy,0);
204204      }
205205   }
206   state->m_fgmap->draw(bitmap, cliprect, 0,0);
206   m_fgmap->draw(bitmap, cliprect, 0,0);
207207   return 0;
208208}
209209
r17967r17968
498498   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
499499   MCFG_SCREEN_SIZE(32*8, 32*8)
500500   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
501   MCFG_SCREEN_UPDATE_STATIC(pturn)
501   MCFG_SCREEN_UPDATE_DRIVER(pturn_state, screen_update_pturn)
502502
503503   MCFG_PALETTE_LENGTH(0x100)
504504   MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
trunk/src/mame/drivers/gumbo.c
r17967r17968
240240   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
241241   MCFG_SCREEN_SIZE(64*8, 32*8)
242242   MCFG_SCREEN_VISIBLE_AREA(8*8, 48*8-1, 2*8, 30*8-1)
243   MCFG_SCREEN_UPDATE_STATIC(gumbo)
243   MCFG_SCREEN_UPDATE_DRIVER(gumbo_state, screen_update_gumbo)
244244
245245   MCFG_PALETTE_LENGTH(0x200)
246246
trunk/src/mame/drivers/dec0.c
r17967r17968
14131413//  MCFG_SCREEN_REFRESH_RATE(57.41)
14141414//  MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */)
14151415   MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
1416   MCFG_SCREEN_UPDATE_STATIC(automat)
1416   MCFG_SCREEN_UPDATE_DRIVER(dec0_automat_state, screen_update_automat)
14171417   MCFG_VIDEO_START_OVERRIDE(dec0_state,dec0_nodma)
14181418
14191419   MCFG_DEVICE_ADD("tilegen1", DECO_BAC06, 0)
r17967r17968
14661466//  MCFG_SCREEN_REFRESH_RATE(57.41)
14671467//  MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */)
14681468   MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
1469   MCFG_SCREEN_UPDATE_STATIC(secretab)
1469   MCFG_SCREEN_UPDATE_DRIVER(dec0_automat_state, screen_update_secretab)
14701470   MCFG_VIDEO_START_OVERRIDE(dec0_state,dec0_nodma)
14711471
14721472   MCFG_DEVICE_ADD("tilegen1", DECO_BAC06, 0)
r17967r17968
15251525   MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
15261526   //MCFG_SCREEN_SIZE(32*8, 32*8)
15271527   //MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
1528   MCFG_SCREEN_UPDATE_STATIC(hbarrel)
1528   MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_hbarrel)
15291529MACHINE_CONFIG_END
15301530
15311531static MACHINE_CONFIG_DERIVED( baddudes, dec0_base_sound )
r17967r17968
15451545   MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
15461546//  MCFG_SCREEN_SIZE(32*8, 32*8)
15471547//  MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
1548   MCFG_SCREEN_UPDATE_STATIC(baddudes)
1548   MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_baddudes)
15491549MACHINE_CONFIG_END
15501550
15511551static MACHINE_CONFIG_DERIVED( birdtry, dec0_base_sound )
r17967r17968
15651565   MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
15661566//  MCFG_SCREEN_SIZE(32*8, 32*8)
15671567//  MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
1568   MCFG_SCREEN_UPDATE_STATIC(birdtry)
1568   MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_birdtry)
15691569MACHINE_CONFIG_END
15701570
15711571static MACHINE_CONFIG_DERIVED( robocop, dec0_base_sound )
r17967r17968
15901590   MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
15911591//  MCFG_SCREEN_SIZE(32*8, 32*8)
15921592//  MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
1593   MCFG_SCREEN_UPDATE_STATIC(robocop)
1593   MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_robocop)
15941594MACHINE_CONFIG_END
15951595
15961596static MACHINE_CONFIG_DERIVED( robocopb, dec0_base_sound )
r17967r17968
16101610   MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
16111611//  MCFG_SCREEN_SIZE(32*8, 32*8)
16121612//  MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
1613   MCFG_SCREEN_UPDATE_STATIC(robocop)
1613   MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_robocop)
16141614MACHINE_CONFIG_END
16151615
16161616static MACHINE_CONFIG_DERIVED( hippodrm, dec0_base_sound )
r17967r17968
16351635   MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
16361636//  MCFG_SCREEN_SIZE(32*8, 32*8)
16371637//  MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
1638   MCFG_SCREEN_UPDATE_STATIC(hippodrm)
1638   MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_hippodrm)
16391639MACHINE_CONFIG_END
16401640
16411641MACHINE_RESET_MEMBER(dec0_state,slyspy)
r17967r17968
16611661   MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
16621662//  MCFG_SCREEN_SIZE(32*8, 32*8)
16631663//  MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
1664   MCFG_SCREEN_UPDATE_STATIC(slyspy)
1664   MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_slyspy)
16651665
16661666   MCFG_VIDEO_START_OVERRIDE(dec0_state,dec0_nodma)
16671667
r17967r17968
16881688   MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
16891689//  MCFG_SCREEN_SIZE(32*8, 32*8)
16901690//  MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
1691   MCFG_SCREEN_UPDATE_STATIC(midres)
1691   MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_midres)
16921692
16931693   MCFG_GFXDECODE(midres)
16941694   MCFG_VIDEO_START_OVERRIDE(dec0_state,dec0_nodma)
trunk/src/mame/drivers/ssv.c
r17967r17968
26102610   MCFG_SCREEN_REFRESH_RATE(60)
26112611   MCFG_SCREEN_SIZE(0x1c6, 0x106)
26122612   MCFG_SCREEN_VISIBLE_AREA(0, 0x150-1, 0, 0xf0-1)
2613   MCFG_SCREEN_UPDATE_STATIC(ssv)
2613   MCFG_SCREEN_UPDATE_DRIVER(ssv_state, screen_update_ssv)
26142614
26152615   MCFG_GFXDECODE(ssv)
26162616   MCFG_PALETTE_LENGTH(0x8000)
r17967r17968
26582658   /* video hardware */
26592659   MCFG_SCREEN_MODIFY("screen")
26602660   MCFG_SCREEN_VISIBLE_AREA(0, (0xd5-0x2c)*2-1, 0, (0x102-0x12)-1)
2661   MCFG_SCREEN_UPDATE_STATIC(gdfs)
2661   MCFG_SCREEN_UPDATE_DRIVER(ssv_state, screen_update_gdfs)
26622662
26632663   MCFG_DEVICE_ADD("st0020_spr", ST0020_SPRITES, 0)
26642664
r17967r17968
28382838   /* video hardware */
28392839   MCFG_SCREEN_MODIFY("screen")
28402840   MCFG_SCREEN_VISIBLE_AREA(0, (0xca - 0x2a)*2-1, 0, (0xf6 - 0x16)-1)
2841   MCFG_SCREEN_UPDATE_STATIC(eaglshot)
2841   MCFG_SCREEN_UPDATE_DRIVER(ssv_state, screen_update_eaglshot)
28422842
28432843   MCFG_GFXDECODE(eaglshot)
28442844   MCFG_VIDEO_START_OVERRIDE(ssv_state,eaglshot)
trunk/src/mame/drivers/atarig42.c
r17967r17968
569569   /* note: these parameters are from published specs, not derived */
570570   /* the board uses an SOS chip to generate video signals */
571571   MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
572   MCFG_SCREEN_UPDATE_STATIC(atarig42)
573   MCFG_SCREEN_VBLANK_STATIC(atarig42)
572   MCFG_SCREEN_UPDATE_DRIVER(atarig42_state, screen_update_atarig42)
573   MCFG_SCREEN_VBLANK_DRIVER(atarig42_state, screen_eof_atarig42)
574574
575575   MCFG_VIDEO_START_OVERRIDE(atarig42_state,atarig42)
576576
trunk/src/mame/drivers/jubilee.c
r17967r17968
104104   TILE_GET_INFO_MEMBER(get_bg_tile_info);
105105   virtual void video_start();
106106   virtual void palette_init();
107   UINT32 screen_update_jubileep(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
107108};
108109
109110
r17967r17968
134135}
135136
136137
137static SCREEN_UPDATE_IND16( jubileep )
138UINT32 jubilee_state::screen_update_jubileep(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
138139{
139   jubilee_state *state = screen.machine().driver_data<jubilee_state>();
140   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
140   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
141141   return 0;
142142}
143143
r17967r17968
425425   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
426426   MCFG_SCREEN_SIZE(32*8, 32*8)
427427   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
428   MCFG_SCREEN_UPDATE_STATIC(jubileep)
428   MCFG_SCREEN_UPDATE_DRIVER(jubilee_state, screen_update_jubileep)
429429
430430   MCFG_GFXDECODE(jubileep)
431431
trunk/src/mame/drivers/vindictr.c
r17967r17968
211211   /* note: these parameters are from published specs, not derived */
212212   /* the board uses a SYNGEN chip to generate video signals */
213213   MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
214   MCFG_SCREEN_UPDATE_STATIC(vindictr)
214   MCFG_SCREEN_UPDATE_DRIVER(vindictr_state, screen_update_vindictr)
215215
216216   MCFG_VIDEO_START_OVERRIDE(vindictr_state,vindictr)
217217
trunk/src/mame/drivers/cop01.c
r17967r17968
467467   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
468468   MCFG_SCREEN_SIZE(32*8, 32*8)
469469   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
470   MCFG_SCREEN_UPDATE_STATIC(cop01)
470   MCFG_SCREEN_UPDATE_DRIVER(cop01_state, screen_update_cop01)
471471
472472   MCFG_GFXDECODE(cop01)
473473   MCFG_PALETTE_LENGTH(16+8*16+16*16)
r17967r17968
505505   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
506506   MCFG_SCREEN_SIZE(32*8, 32*8)
507507   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
508   MCFG_SCREEN_UPDATE_STATIC(cop01)
508   MCFG_SCREEN_UPDATE_DRIVER(cop01_state, screen_update_cop01)
509509
510510   MCFG_GFXDECODE(cop01)
511511   MCFG_PALETTE_LENGTH(16+8*16+16*16)
trunk/src/mame/drivers/hanaawas.c
r17967r17968
209209   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
210210   MCFG_SCREEN_SIZE(32*8, 32*8)
211211   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
212   MCFG_SCREEN_UPDATE_STATIC(hanaawas)
212   MCFG_SCREEN_UPDATE_DRIVER(hanaawas_state, screen_update_hanaawas)
213213
214214   MCFG_GFXDECODE(hanaawas)
215215   MCFG_PALETTE_LENGTH(32*8)
trunk/src/mame/drivers/goldngam.c
r17967r17968
248248   DECLARE_READ16_MEMBER(unk_r);
249249   virtual void video_start();
250250   virtual void palette_init();
251   UINT32 screen_update_goldngam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
251252};
252253
253254
r17967r17968
260261
261262}
262263
263static SCREEN_UPDATE_IND16( goldngam )
264UINT32 goldngam_state::screen_update_goldngam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
264265{
265   goldngam_state *state = screen.machine().driver_data<goldngam_state>();
266266
267267   int x, y;
268268
269269   // ERROR: This cast is NOT endian-safe without the use of BYTE/WORD/DWORD_XOR_* macros!
270   UINT8 *tmp = reinterpret_cast<UINT8 *>(state->m_videoram.target());
270   UINT8 *tmp = reinterpret_cast<UINT8 *>(m_videoram.target());
271271   int index = 0;
272272
273273   for(y = 0; y < 512; ++y)
r17967r17968
568568   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
569569   MCFG_SCREEN_SIZE(64*8, 64*8)
570570   MCFG_SCREEN_VISIBLE_AREA(4*8, 43*8-1, 1*8, 37*8-1)   // 312x288
571   MCFG_SCREEN_UPDATE_STATIC(goldngam)
571   MCFG_SCREEN_UPDATE_DRIVER(goldngam_state, screen_update_goldngam)
572572
573573   MCFG_GFXDECODE(goldngam)
574574
trunk/src/mame/drivers/circusc.c
r17967r17968
371371   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
372372   MCFG_SCREEN_SIZE(32*8, 32*8)
373373   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
374   MCFG_SCREEN_UPDATE_STATIC(circusc)
374   MCFG_SCREEN_UPDATE_DRIVER(circusc_state, screen_update_circusc)
375375
376376   MCFG_GFXDECODE(circusc)
377377   MCFG_PALETTE_LENGTH(16*16+16*16)
trunk/src/mame/drivers/laserbas.c
r17967r17968
5959   virtual void machine_start();
6060   virtual void machine_reset();
6161   virtual void video_start();
62   UINT32 screen_update_laserbas(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6263};
6364
6465
r17967r17968
6970   save_item(NAME(m_vram2));
7071}
7172
72static SCREEN_UPDATE_IND16(laserbas)
73UINT32 laserbas_state::screen_update_laserbas(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
7374{
74   laserbas_state *state = screen.machine().driver_data<laserbas_state>();
7575   int x, y;
7676
7777   for (y = 0; y < 256; y++)
7878      for(x = 0; x < 128; x++)
7979      {
80         if (state->m_vram2[y * 128 + x] & 0xf)
81            bitmap.pix16(y, x * 2) = (state->m_vram2[y * 128 + x] & 0xf);
80         if (m_vram2[y * 128 + x] & 0xf)
81            bitmap.pix16(y, x * 2) = (m_vram2[y * 128 + x] & 0xf);
8282         else
83            bitmap.pix16(y, x * 2) = (state->m_vram1[y * 128 + x] & 0xf) + 16;
83            bitmap.pix16(y, x * 2) = (m_vram1[y * 128 + x] & 0xf) + 16;
8484
85         if (state->m_vram2[y * 128 + x] >> 4)
86            bitmap.pix16(y, x * 2 + 1) = (state->m_vram2[y * 128 + x] >> 4);
85         if (m_vram2[y * 128 + x] >> 4)
86            bitmap.pix16(y, x * 2 + 1) = (m_vram2[y * 128 + x] >> 4);
8787         else
88            bitmap.pix16(y, x * 2 + 1) = (state->m_vram1[y * 128 + x] >> 4) + 16;
88            bitmap.pix16(y, x * 2 + 1) = (m_vram1[y * 128 + x] >> 4) + 16;
8989      }
9090   return 0;
9191}
r17967r17968
319319   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
320320   MCFG_SCREEN_SIZE(32*8, 32*8)
321321   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
322   MCFG_SCREEN_UPDATE_STATIC(laserbas)
322   MCFG_SCREEN_UPDATE_DRIVER(laserbas_state, screen_update_laserbas)
323323
324324   MCFG_MC6845_ADD("crtc", H46505, 3000000/4, mc6845_intf)   /* unknown clock, hand tuned to get ~60 fps */
325325
trunk/src/mame/drivers/mikie.c
r17967r17968
289289   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
290290   MCFG_SCREEN_SIZE(32*8, 32*8)
291291   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
292   MCFG_SCREEN_UPDATE_STATIC(mikie)
292   MCFG_SCREEN_UPDATE_DRIVER(mikie_state, screen_update_mikie)
293293
294294   MCFG_GFXDECODE(mikie)
295295   MCFG_PALETTE_LENGTH(16*8*16+16*8*16)
trunk/src/mame/drivers/midvunit.c
r17967r17968
10261026
10271027   MCFG_SCREEN_ADD("screen", RASTER)
10281028   MCFG_SCREEN_RAW_PARAMS(MIDVUNIT_VIDEO_CLOCK/2, 666, 0, 512, 432, 0, 400)
1029   MCFG_SCREEN_UPDATE_STATIC(midvunit)
1029   MCFG_SCREEN_UPDATE_DRIVER(midvunit_state, screen_update_midvunit)
10301030
10311031MACHINE_CONFIG_END
10321032
trunk/src/mame/drivers/usgames.c
r17967r17968
244244   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
245245   MCFG_SCREEN_SIZE(64*8, 32*8)
246246   MCFG_SCREEN_VISIBLE_AREA(7*8, 57*8-1, 0*8, 31*8-1)
247   MCFG_SCREEN_UPDATE_STATIC(usgames)
247   MCFG_SCREEN_UPDATE_DRIVER(usgames_state, screen_update_usgames)
248248
249249   MCFG_GFXDECODE(usgames)
250250   MCFG_PALETTE_LENGTH(2*256)
trunk/src/mame/drivers/opwolf.c
r17967r17968
750750   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
751751   MCFG_SCREEN_SIZE(40*8, 32*8)
752752   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
753   MCFG_SCREEN_UPDATE_STATIC(opwolf)
753   MCFG_SCREEN_UPDATE_DRIVER(opwolf_state, screen_update_opwolf)
754754
755755   MCFG_GFXDECODE(opwolf)
756756   MCFG_PALETTE_LENGTH(8192)
r17967r17968
803803   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
804804   MCFG_SCREEN_SIZE(40*8, 32*8)
805805   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
806   MCFG_SCREEN_UPDATE_STATIC(opwolf)
806   MCFG_SCREEN_UPDATE_DRIVER(opwolf_state, screen_update_opwolf)
807807
808808   MCFG_GFXDECODE(opwolfb)
809809   MCFG_PALETTE_LENGTH(8192)
trunk/src/mame/drivers/taitopjc.c
r17967r17968
8383   DECLARE_WRITE8_MEMBER(taitopjc_tlcs900_to1);
8484   DECLARE_WRITE8_MEMBER(taitopjc_tlcs900_to3);
8585   virtual void video_start();
86   UINT32 screen_update_taitopjc(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
8687};
8788
8889void taitopjc_state::video_start()
r17967r17968
9091
9192}
9293
93static SCREEN_UPDATE_RGB32( taitopjc )
94UINT32 taitopjc_state::screen_update_taitopjc(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
9495{
9596   {
9697      UINT8 *s = (UINT8*)jc_char_ram;
r17967r17968
432433   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
433434   MCFG_SCREEN_SIZE(640, 768)
434435   MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 767)
435   MCFG_SCREEN_UPDATE_STATIC(taitopjc)
436   MCFG_SCREEN_UPDATE_DRIVER(taitopjc_state, screen_update_taitopjc)
436437
437438MACHINE_CONFIG_END
438439
trunk/src/mame/drivers/suna16.c
r17967r17968
791791   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
792792   MCFG_SCREEN_SIZE(256, 256)
793793   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1)
794   MCFG_SCREEN_UPDATE_STATIC(suna16)
794   MCFG_SCREEN_UPDATE_DRIVER(suna16_state, screen_update_suna16)
795795
796796   MCFG_GFXDECODE(suna16)
797797   MCFG_PALETTE_LENGTH(512)
r17967r17968
849849   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
850850   MCFG_SCREEN_SIZE(256, 256)
851851   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1)
852   MCFG_SCREEN_UPDATE_STATIC(suna16)
852   MCFG_SCREEN_UPDATE_DRIVER(suna16_state, screen_update_suna16)
853853
854854   MCFG_GFXDECODE(suna16)
855855   MCFG_PALETTE_LENGTH(512)
r17967r17968
897897   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
898898   MCFG_SCREEN_SIZE(256, 256)
899899   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1)
900   MCFG_SCREEN_UPDATE_STATIC(suna16)
900   MCFG_SCREEN_UPDATE_DRIVER(suna16_state, screen_update_suna16)
901901
902902   MCFG_GFXDECODE(suna16)
903903   MCFG_PALETTE_LENGTH(512)
r17967r17968
963963   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
964964   MCFG_SCREEN_SIZE(256, 256)
965965   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1)
966   MCFG_SCREEN_UPDATE_STATIC(bestbest)
966   MCFG_SCREEN_UPDATE_DRIVER(suna16_state, screen_update_bestbest)
967967
968968   MCFG_GFXDECODE(bestbest)
969969   MCFG_PALETTE_LENGTH(256*8)
trunk/src/mame/drivers/shadfrce.c
r17967r17968
565565
566566   MCFG_SCREEN_ADD("screen", RASTER)
567567   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 432, 0, 320, 272, 8, 248)   /* HTOTAL and VTOTAL are guessed */
568   MCFG_SCREEN_UPDATE_STATIC(shadfrce)
569   MCFG_SCREEN_VBLANK_STATIC(shadfrce)
568   MCFG_SCREEN_UPDATE_DRIVER(shadfrce_state, screen_update_shadfrce)
569   MCFG_SCREEN_VBLANK_DRIVER(shadfrce_state, screen_eof_shadfrce)
570570
571571   MCFG_GFXDECODE(shadfrce)
572572   MCFG_PALETTE_LENGTH(0x4000)
trunk/src/mame/drivers/firebeat.c
r17967r17968
183183   DECLARE_MACHINE_START(firebeat);
184184   DECLARE_MACHINE_RESET(firebeat);
185185   DECLARE_VIDEO_START(firebeat);
186   UINT32 screen_update_firebeat_0(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
187   UINT32 screen_update_firebeat_1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
186188};
187189
188190
r17967r17968
598600   return 0;
599601}
600602
601static SCREEN_UPDATE_IND16( firebeat_0 ) { return update_screen(screen, bitmap, cliprect, 0); }
602static SCREEN_UPDATE_IND16( firebeat_1 ) { return update_screen(screen, bitmap, cliprect, 1); }
603UINT32 firebeat_state::screen_update_firebeat_0(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 0); }
604UINT32 firebeat_state::screen_update_firebeat_1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 1); }
603605
604606static UINT32 GCU_r(running_machine &machine, int chip, UINT32 offset, UINT32 mem_mask)
605607{
r17967r17968
19941996   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
19951997   MCFG_SCREEN_SIZE(640, 480)
19961998   MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479)
1997   MCFG_SCREEN_UPDATE_STATIC(firebeat_0)
1999   MCFG_SCREEN_UPDATE_DRIVER(firebeat_state, screen_update_firebeat_0)
19982000
19992001   MCFG_VIDEO_START_OVERRIDE(firebeat_state,firebeat)
20002002
r17967r17968
20402042   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
20412043   MCFG_SCREEN_SIZE(640, 480)
20422044   MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479)
2043   MCFG_SCREEN_UPDATE_STATIC(firebeat_0)
2045   MCFG_SCREEN_UPDATE_DRIVER(firebeat_state, screen_update_firebeat_0)
20442046
20452047   MCFG_SCREEN_ADD("rscreen", RASTER)
20462048   MCFG_SCREEN_REFRESH_RATE(60)
20472049   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
20482050   MCFG_SCREEN_SIZE(640, 480)
20492051   MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479)
2050   MCFG_SCREEN_UPDATE_STATIC(firebeat_1)
2052   MCFG_SCREEN_UPDATE_DRIVER(firebeat_state, screen_update_firebeat_1)
20512053
20522054   MCFG_VIDEO_START_OVERRIDE(firebeat_state,firebeat)
20532055
trunk/src/mame/drivers/clayshoo.c
r17967r17968
4040   DECLARE_READ8_MEMBER(input_port_r);
4141   virtual void machine_start();
4242   virtual void machine_reset();
43   UINT32 screen_update_clayshoo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
4344};
4445
4546
r17967r17968
185186 *
186187 *************************************/
187188
188static SCREEN_UPDATE_RGB32( clayshoo )
189UINT32 clayshoo_state::screen_update_clayshoo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
189190{
190   clayshoo_state *state = screen.machine().driver_data<clayshoo_state>();
191191   offs_t offs;
192192
193   for (offs = 0; offs < state->m_videoram.bytes(); offs++)
193   for (offs = 0; offs < m_videoram.bytes(); offs++)
194194   {
195195      int i;
196196      UINT8 x = offs << 3;
197197      UINT8 y = ~(offs >> 5);
198      UINT8 data = state->m_videoram[offs];
198      UINT8 data = m_videoram[offs];
199199
200200      for (i = 0; i < 8; i++)
201201      {
r17967r17968
340340   MCFG_SCREEN_VISIBLE_AREA(0, 255, 64, 255)
341341   MCFG_SCREEN_REFRESH_RATE(60)
342342   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
343   MCFG_SCREEN_UPDATE_STATIC(clayshoo)
343   MCFG_SCREEN_UPDATE_DRIVER(clayshoo_state, screen_update_clayshoo)
344344
345345   MCFG_I8255A_ADD( "ppi8255_0", ppi8255_0_intf )
346346   MCFG_I8255A_ADD( "ppi8255_1", ppi8255_1_intf )
trunk/src/mame/drivers/hikaru.c
r17967r17968
394394      : driver_device(mconfig, type, tag)
395395   { }
396396   virtual void video_start();
397   UINT32 screen_update_hikaru(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
397398};
398399
399400void hikaru_state::video_start()
r17967r17968
401402
402403}
403404
404static SCREEN_UPDATE_RGB32(hikaru)
405UINT32 hikaru_state::screen_update_hikaru(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
405406{
406407   return 0;
407408}
r17967r17968
500501   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
501502   MCFG_SCREEN_SIZE(640, 480)
502503   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
503   MCFG_SCREEN_UPDATE_STATIC(hikaru)
504   MCFG_SCREEN_UPDATE_DRIVER(hikaru_state, screen_update_hikaru)
504505
505506   MCFG_PALETTE_LENGTH(0x1000)
506507
trunk/src/mame/drivers/bagman.c
r17967r17968
484484   /* video hardware */
485485   MCFG_SCREEN_ADD("screen", RASTER)
486486   MCFG_SCREEN_RAW_PARAMS(BAGMAN_HCLK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
487   MCFG_SCREEN_UPDATE_STATIC(bagman)
487   MCFG_SCREEN_UPDATE_DRIVER(bagman_state, screen_update_bagman)
488488
489489   MCFG_GFXDECODE(bagman)
490490   MCFG_PALETTE_LENGTH(64)
r17967r17968
520520   /* video hardware */
521521   MCFG_SCREEN_ADD("screen", RASTER)
522522   MCFG_SCREEN_RAW_PARAMS(BAGMAN_HCLK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
523   MCFG_SCREEN_UPDATE_STATIC(bagman)
523   MCFG_SCREEN_UPDATE_DRIVER(bagman_state, screen_update_bagman)
524524
525525   MCFG_GFXDECODE(pickin)
526526   MCFG_PALETTE_LENGTH(64)
r17967r17968
572572   /* video hardware */
573573   MCFG_SCREEN_ADD("screen", RASTER)
574574   MCFG_SCREEN_RAW_PARAMS(BAGMAN_HCLK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
575   MCFG_SCREEN_UPDATE_STATIC(bagman)
575   MCFG_SCREEN_UPDATE_DRIVER(bagman_state, screen_update_bagman)
576576
577577   MCFG_GFXDECODE(bagman)
578578   MCFG_PALETTE_LENGTH(64)
trunk/src/mame/drivers/bigevglf.c
r17967r17968
519519   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
520520   MCFG_SCREEN_SIZE(32*8, 32*8)
521521   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
522   MCFG_SCREEN_UPDATE_STATIC(bigevglf)
522   MCFG_SCREEN_UPDATE_DRIVER(bigevglf_state, screen_update_bigevglf)
523523
524524   MCFG_GFXDECODE(bigevglf)
525525   MCFG_PALETTE_LENGTH(0x800)
trunk/src/mame/drivers/inufuku.c
r17967r17968
364364   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
365365   MCFG_SCREEN_SIZE(2048, 256)
366366   MCFG_SCREEN_VISIBLE_AREA(0, 319-1, 1, 224-1)
367   MCFG_SCREEN_UPDATE_STATIC(inufuku)
367   MCFG_SCREEN_UPDATE_DRIVER(inufuku_state, screen_update_inufuku)
368368
369369   MCFG_GFXDECODE(inufuku)
370370   MCFG_PALETTE_LENGTH(4096)
trunk/src/mame/drivers/tattack.c
r17967r17968
3737   TILE_GET_INFO_MEMBER(get_tile_info);
3838   virtual void video_start();
3939   virtual void palette_init();
40   UINT32 screen_update_tattack(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4041};
4142
4243
r17967r17968
5859      0);
5960}
6061
61static SCREEN_UPDATE_IND16( tattack )
62UINT32 tattack_state::screen_update_tattack(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
6263{
63   tattack_state *state = screen.machine().driver_data<tattack_state>();
64   state->m_tmap->mark_all_dirty();
65   state->m_tmap->draw(bitmap, cliprect, 0,0);
64   m_tmap->mark_all_dirty();
65   m_tmap->draw(bitmap, cliprect, 0,0);
6666   return 0;
6767}
6868
r17967r17968
209209   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
210210   MCFG_SCREEN_SIZE(32*8, 32*8)
211211   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
212   MCFG_SCREEN_UPDATE_STATIC(tattack)
212   MCFG_SCREEN_UPDATE_DRIVER(tattack_state, screen_update_tattack)
213213
214214   MCFG_GFXDECODE(tattack)
215215   MCFG_PALETTE_LENGTH(16)
trunk/src/mame/drivers/cbuster.c
r17967r17968
338338   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
339339   MCFG_SCREEN_SIZE(32*8, 32*8)
340340   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
341   MCFG_SCREEN_UPDATE_STATIC(twocrude)
341   MCFG_SCREEN_UPDATE_DRIVER(cbuster_state, screen_update_twocrude)
342342
343343   MCFG_GFXDECODE(cbuster)
344344   MCFG_PALETTE_LENGTH(2048)
trunk/src/mame/drivers/dunhuang.c
r17967r17968
122122   virtual void machine_start();
123123   virtual void machine_reset();
124124   virtual void video_start();
125   UINT32 screen_update_dunhuang(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
125126};
126127
127128
r17967r17968
158159   save_item(NAME(m_paldata));
159160}
160161
161static SCREEN_UPDATE_IND16( dunhuang )
162UINT32 dunhuang_state::screen_update_dunhuang(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
162163{
163   dunhuang_state *state = screen.machine().driver_data<dunhuang_state>();
164164   int layers_ctrl = -1;
165165
166166#if DUNHUANG_DEBUG
r17967r17968
175175
176176   bitmap.fill(get_black_pen(screen.machine()), cliprect);
177177
178   switch (state->m_layers)
178   switch (m_layers)
179179   {
180180      case 0x04:   // girl select: bg over fg
181         if (layers_ctrl & 2)   state->m_tmap2->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
182         if (layers_ctrl & 1)   state->m_tmap->draw(bitmap, cliprect, 0, 0);
181         if (layers_ctrl & 2)   m_tmap2->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
182         if (layers_ctrl & 1)   m_tmap->draw(bitmap, cliprect, 0, 0);
183183         break;
184184      case 0x05:   // dips: must hide fg
185         if (layers_ctrl & 1)   state->m_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
185         if (layers_ctrl & 1)   m_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
186186         break;
187187      case 0x07:   // game,demo: fg over bg
188188      default:
189         if (layers_ctrl & 1)   state->m_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
190         if (layers_ctrl & 2)   state->m_tmap2->draw(bitmap, cliprect, 0, 0);
189         if (layers_ctrl & 1)   m_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
190         if (layers_ctrl & 2)   m_tmap2->draw(bitmap, cliprect, 0, 0);
191191         break;
192192   }
193193
r17967r17968
830830   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
831831   MCFG_SCREEN_SIZE(512, 256)
832832   MCFG_SCREEN_VISIBLE_AREA(0+8, 512-8-1, 0+16, 256-16-1)
833   MCFG_SCREEN_UPDATE_STATIC(dunhuang)
833   MCFG_SCREEN_UPDATE_DRIVER(dunhuang_state, screen_update_dunhuang)
834834
835835   MCFG_GFXDECODE(dunhuang)
836836   MCFG_PALETTE_LENGTH(0x100)
trunk/src/mame/drivers/ojankohs.c
r17967r17968
868868   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
869869   MCFG_SCREEN_SIZE(512, 512)
870870   MCFG_SCREEN_VISIBLE_AREA(0, 288-1, 0, 224-1)
871   MCFG_SCREEN_UPDATE_STATIC(ojankohs)
871   MCFG_SCREEN_UPDATE_DRIVER(ojankohs_state, screen_update_ojankohs)
872872
873873   MCFG_GFXDECODE(ojankohs)
874874   MCFG_PALETTE_LENGTH(1024)
r17967r17968
904904   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
905905   MCFG_SCREEN_SIZE(512, 512)
906906   MCFG_SCREEN_VISIBLE_AREA(0, 288-1, 0, 224-1)
907   MCFG_SCREEN_UPDATE_STATIC(ojankohs)
907   MCFG_SCREEN_UPDATE_DRIVER(ojankohs_state, screen_update_ojankohs)
908908
909909   MCFG_GFXDECODE(ojankohs)
910910   MCFG_PALETTE_LENGTH(1024)
r17967r17968
941941   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
942942   MCFG_SCREEN_SIZE(512, 512)
943943   MCFG_SCREEN_VISIBLE_AREA(0, 288-1, 0, 224-1)
944   MCFG_SCREEN_UPDATE_STATIC(ojankohs)
944   MCFG_SCREEN_UPDATE_DRIVER(ojankohs_state, screen_update_ojankohs)
945945
946946   MCFG_GFXDECODE(ojankohs)
947947   MCFG_PALETTE_LENGTH(1024)
r17967r17968
977977   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
978978   MCFG_SCREEN_SIZE(32*8, 32*8)
979979   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 8, 248-1)
980   MCFG_SCREEN_UPDATE_STATIC(ojankoc)
980   MCFG_SCREEN_UPDATE_DRIVER(ojankohs_state, screen_update_ojankoc)
981981
982982   MCFG_PALETTE_LENGTH(16)
983983
trunk/src/mame/drivers/n8080.c
r17967r17968
554554   MCFG_SCREEN_REFRESH_RATE(60)
555555   MCFG_SCREEN_SIZE(256, 256)
556556   MCFG_SCREEN_VISIBLE_AREA(0, 255, 16, 239)
557   MCFG_SCREEN_UPDATE_STATIC(spacefev)
557   MCFG_SCREEN_UPDATE_DRIVER(n8080_state, screen_update_spacefev)
558558
559559   MCFG_PALETTE_LENGTH(8)
560560   MCFG_PALETTE_INIT_OVERRIDE(n8080_state,n8080)
r17967r17968
584584   MCFG_SCREEN_REFRESH_RATE(60)
585585   MCFG_SCREEN_SIZE(256, 256)
586586   MCFG_SCREEN_VISIBLE_AREA(0, 255, 16, 239)
587   MCFG_SCREEN_UPDATE_STATIC(sheriff)
587   MCFG_SCREEN_UPDATE_DRIVER(n8080_state, screen_update_sheriff)
588588
589589   MCFG_PALETTE_LENGTH(8)
590590   MCFG_PALETTE_INIT_OVERRIDE(n8080_state,n8080)
r17967r17968
625625   MCFG_SCREEN_REFRESH_RATE(60)
626626   MCFG_SCREEN_SIZE(256, 256)
627627   MCFG_SCREEN_VISIBLE_AREA(0, 255, 16, 239)
628   MCFG_SCREEN_UPDATE_STATIC(helifire)
629   MCFG_SCREEN_VBLANK_STATIC(helifire)
628   MCFG_SCREEN_UPDATE_DRIVER(n8080_state, screen_update_helifire)
629   MCFG_SCREEN_VBLANK_DRIVER(n8080_state, screen_eof_helifire)
630630
631631   MCFG_PALETTE_LENGTH(8 + 0x400)
632632   MCFG_PALETTE_INIT_OVERRIDE(n8080_state,helifire)
trunk/src/mame/drivers/3do.c
r17967r17968
165165
166166   MCFG_SCREEN_ADD("screen", RASTER)
167167   MCFG_SCREEN_RAW_PARAMS( X2_CLOCK_NTSC / 2, 1592, 254, 1534, 263, 22, 262 )
168   MCFG_SCREEN_UPDATE_STATIC( _3do )
168   MCFG_SCREEN_UPDATE_DRIVER(_3do_state, screen_update__3do)
169169
170170   MCFG_CDROM_ADD( "cdrom", _3do_cdrom)
171171MACHINE_CONFIG_END
r17967r17968
179179
180180
181181   MCFG_SCREEN_ADD("screen", RASTER)
182   MCFG_SCREEN_UPDATE_STATIC( _3do )
182   MCFG_SCREEN_UPDATE_DRIVER(_3do_state, screen_update__3do)
183183   MCFG_SCREEN_SIZE( 640, 625 )
184184   MCFG_SCREEN_VISIBLE_AREA( 0, 639, 0, 479 )
185185   MCFG_SCREEN_REFRESH_RATE( 50 )
trunk/src/mame/drivers/kncljoe.c
r17967r17968
305305   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1500))
306306   MCFG_SCREEN_SIZE(32*8, 32*8)
307307   MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 0*8, 32*8-1)
308   MCFG_SCREEN_UPDATE_STATIC(kncljoe)
308   MCFG_SCREEN_UPDATE_DRIVER(kncljoe_state, screen_update_kncljoe)
309309
310310   MCFG_GFXDECODE(kncljoe)
311311   MCFG_PALETTE_LENGTH(16*8+16*8)
trunk/src/mame/drivers/spdodgeb.c
r17967r17968
421421   /* video hardware */
422422   MCFG_SCREEN_ADD("screen", RASTER)
423423   MCFG_SCREEN_RAW_PARAMS(12000000/2, 384, 0, 256, 272, 0, 240)
424   MCFG_SCREEN_UPDATE_STATIC(spdodgeb)
424   MCFG_SCREEN_UPDATE_DRIVER(spdodgeb_state, screen_update_spdodgeb)
425425
426426   MCFG_GFXDECODE(spdodgeb)
427427   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/deco_ld.c
r17967r17968
146146   DECLARE_CUSTOM_INPUT_MEMBER(begas_vblank_r);
147147   DECLARE_INPUT_CHANGED_MEMBER(coin_inserted);
148148   virtual void machine_start();
149   UINT32 screen_update_rblaster(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
149150};
150151
151152static void draw_sprites(running_machine &machine, bitmap_rgb32 &bitmap, const rectangle &cliprect, UINT8 *spriteram, UINT16 tile_bank )
r17967r17968
193194   }
194195}
195196
196static SCREEN_UPDATE_RGB32( rblaster )
197UINT32 deco_ld_state::screen_update_rblaster(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
197198{
198   deco_ld_state *state = screen.machine().driver_data<deco_ld_state>();
199199   gfx_element *gfx = screen.machine().gfx[0];
200200   int y,x;
201201
202202   bitmap.fill(0, cliprect);
203203
204   draw_sprites(screen.machine(), bitmap,cliprect,state->m_vram1,0x000);
205   draw_sprites(screen.machine(), bitmap,cliprect,state->m_vram0,0x100);
204   draw_sprites(screen.machine(), bitmap,cliprect,m_vram1,0x000);
205   draw_sprites(screen.machine(), bitmap,cliprect,m_vram0,0x100);
206206
207207   for (y=0;y<32;y++)
208208   {
209209      for (x=0;x<32;x++)
210210      {
211         int attr = state->m_attr0[x+y*32];
212         int tile = state->m_vram0[x+y*32] | ((attr & 3) << 8);
211         int attr = m_attr0[x+y*32];
212         int tile = m_vram0[x+y*32] | ((attr & 3) << 8);
213213         int colour = (6 & 0x7); /* TODO */
214214
215215         drawgfx_transpen(bitmap,cliprect,gfx,tile|0x400,colour,0,0,x*8,y*8,0);
r17967r17968
220220   {
221221      for (x=0;x<32;x++)
222222      {
223         int attr = state->m_attr1[x+y*32];
224         int tile = state->m_vram1[x+y*32] | ((attr & 3) << 8);
223         int attr = m_attr1[x+y*32];
224         int tile = m_vram1[x+y*32] | ((attr & 3) << 8);
225225         int colour = (6 & 0x7); /* TODO */
226226
227227         drawgfx_transpen(bitmap,cliprect,gfx,tile,colour,0,0,x*8,y*8,0);
r17967r17968
468468//  MCFG_QUANTUM_TIME(attotime::from_hz(6000))
469469
470470   MCFG_LASERDISC_LDV1000_ADD("laserdisc") //Sony LDP-1000A, is it truly compatible with the Pioneer?
471   MCFG_LASERDISC_OVERLAY_STATIC(256, 256, rblaster)
471   MCFG_LASERDISC_OVERLAY_DRIVER(256, 256, deco_ld_state, screen_update_rblaster)
472472   MCFG_LASERDISC_OVERLAY_CLIP(0, 256-1, 8, 240-1)
473473
474474   /* video hardware */
trunk/src/mame/drivers/cvs.c
r17967r17968
10681068   MCFG_SCREEN_VISIBLE_AREA(0*8, 30*8-1, 1*8, 32*8-1)
10691069   MCFG_SCREEN_REFRESH_RATE(60)
10701070   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1000))
1071   MCFG_SCREEN_UPDATE_STATIC(cvs)
1071   MCFG_SCREEN_UPDATE_DRIVER(cvs_state, screen_update_cvs)
10721072
10731073   MCFG_S2636_ADD("s2636_0", s2636_0_config)
10741074   MCFG_S2636_ADD("s2636_1", s2636_1_config)
trunk/src/mame/drivers/turbo.c
r17967r17968
946946
947947   MCFG_SCREEN_ADD("screen", RASTER)
948948   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
949   MCFG_SCREEN_UPDATE_STATIC(turbo)
949   MCFG_SCREEN_UPDATE_DRIVER(turbo_state, screen_update_turbo)
950950
951951   MCFG_PALETTE_INIT_OVERRIDE(turbo_state,turbo)
952952   MCFG_VIDEO_START_OVERRIDE(turbo_state,turbo)
r17967r17968
975975
976976   MCFG_SCREEN_ADD("screen", RASTER)
977977   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
978   MCFG_SCREEN_UPDATE_STATIC(subroc3d)
978   MCFG_SCREEN_UPDATE_DRIVER(turbo_state, screen_update_subroc3d)
979979
980980   MCFG_PALETTE_INIT_OVERRIDE(turbo_state,subroc3d)
981981   MCFG_VIDEO_START_OVERRIDE(turbo_state,turbo)
r17967r17968
10111011
10121012   MCFG_SCREEN_ADD("screen", RASTER)
10131013   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
1014   MCFG_SCREEN_UPDATE_STATIC(buckrog)
1014   MCFG_SCREEN_UPDATE_DRIVER(turbo_state, screen_update_buckrog)
10151015
10161016   MCFG_PALETTE_INIT_OVERRIDE(turbo_state,buckrog)
10171017   MCFG_VIDEO_START_OVERRIDE(turbo_state,buckrog)
trunk/src/mame/drivers/tnzs.c
r17967r17968
16391639   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
16401640   MCFG_SCREEN_SIZE(32*8, 32*8)
16411641   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1642   MCFG_SCREEN_UPDATE_STATIC(tnzs)
1643   MCFG_SCREEN_VBLANK_STATIC(tnzs)
1642   MCFG_SCREEN_UPDATE_DRIVER(tnzs_state, screen_update_tnzs)
1643   MCFG_SCREEN_VBLANK_DRIVER(tnzs_state, screen_eof_tnzs)
16441644
16451645   MCFG_GFXDECODE(tnzs)
16461646   MCFG_PALETTE_LENGTH(512)
r17967r17968
16801680   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
16811681   MCFG_SCREEN_SIZE(32*8, 32*8)
16821682   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1683   MCFG_SCREEN_UPDATE_STATIC(tnzs)
1684   MCFG_SCREEN_VBLANK_STATIC(tnzs)
1683   MCFG_SCREEN_UPDATE_DRIVER(tnzs_state, screen_update_tnzs)
1684   MCFG_SCREEN_VBLANK_DRIVER(tnzs_state, screen_eof_tnzs)
16851685
16861686   MCFG_GFXDECODE(tnzs)
16871687   MCFG_PALETTE_LENGTH(512)
r17967r17968
17241724   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
17251725   MCFG_SCREEN_SIZE(32*8, 32*8)
17261726   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1727   MCFG_SCREEN_UPDATE_STATIC(tnzs)
1728   MCFG_SCREEN_VBLANK_STATIC(tnzs)
1727   MCFG_SCREEN_UPDATE_DRIVER(tnzs_state, screen_update_tnzs)
1728   MCFG_SCREEN_VBLANK_DRIVER(tnzs_state, screen_eof_tnzs)
17291729
17301730   MCFG_GFXDECODE(tnzs)
17311731   MCFG_PALETTE_LENGTH(512)
r17967r17968
17641764   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
17651765   MCFG_SCREEN_SIZE(32*8, 32*8)
17661766   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1767   MCFG_SCREEN_UPDATE_STATIC(tnzs)
1768   MCFG_SCREEN_VBLANK_STATIC(tnzs)
1767   MCFG_SCREEN_UPDATE_DRIVER(tnzs_state, screen_update_tnzs)
1768   MCFG_SCREEN_VBLANK_DRIVER(tnzs_state, screen_eof_tnzs)
17691769
17701770   MCFG_GFXDECODE(insectx)
17711771   MCFG_PALETTE_LENGTH(512)
r17967r17968
18031803   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
18041804   MCFG_SCREEN_SIZE(32*8, 32*8)
18051805   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1806   MCFG_SCREEN_UPDATE_STATIC(tnzs)
1807   MCFG_SCREEN_VBLANK_STATIC(tnzs)
1806   MCFG_SCREEN_UPDATE_DRIVER(tnzs_state, screen_update_tnzs)
1807   MCFG_SCREEN_VBLANK_DRIVER(tnzs_state, screen_eof_tnzs)
18081808
18091809   MCFG_GFXDECODE(tnzs)
18101810   MCFG_PALETTE_LENGTH(512)
r17967r17968
18521852   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
18531853   MCFG_SCREEN_SIZE(32*8, 32*8)
18541854   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1855   MCFG_SCREEN_UPDATE_STATIC(tnzs)
1856   MCFG_SCREEN_VBLANK_STATIC(tnzs)
1855   MCFG_SCREEN_UPDATE_DRIVER(tnzs_state, screen_update_tnzs)
1856   MCFG_SCREEN_VBLANK_DRIVER(tnzs_state, screen_eof_tnzs)
18571857
18581858   MCFG_GFXDECODE(tnzs)
18591859   MCFG_PALETTE_LENGTH(512)
r17967r17968
19111911   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
19121912   MCFG_SCREEN_SIZE(32*8, 32*8)
19131913   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1914   MCFG_SCREEN_UPDATE_STATIC(tnzs)
1915   MCFG_SCREEN_VBLANK_STATIC(tnzs)
1914   MCFG_SCREEN_UPDATE_DRIVER(tnzs_state, screen_update_tnzs)
1915   MCFG_SCREEN_VBLANK_DRIVER(tnzs_state, screen_eof_tnzs)
19161916
19171917   MCFG_GFXDECODE(tnzs)
19181918   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/rohga.c
r17967r17968
813813   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
814814   MCFG_SCREEN_SIZE(40*8, 32*8)
815815   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
816   MCFG_SCREEN_UPDATE_STATIC(rohga)
816   MCFG_SCREEN_UPDATE_DRIVER(rohga_state, screen_update_rohga)
817817
818818   MCFG_GFXDECODE(rohga)
819819   MCFG_PALETTE_LENGTH(2048)
r17967r17968
864864   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
865865   MCFG_SCREEN_SIZE(40*8, 32*8)
866866   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
867   MCFG_SCREEN_UPDATE_STATIC(wizdfire)
867   MCFG_SCREEN_UPDATE_DRIVER(rohga_state, screen_update_wizdfire)
868868
869869   MCFG_GFXDECODE(wizdfire)
870870   MCFG_PALETTE_LENGTH(2048)
r17967r17968
918918   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
919919   MCFG_SCREEN_SIZE(40*8, 32*8)
920920   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
921   MCFG_SCREEN_UPDATE_STATIC(nitrobal)
921   MCFG_SCREEN_UPDATE_DRIVER(rohga_state, screen_update_nitrobal)
922922
923923   MCFG_GFXDECODE(wizdfire)
924924   MCFG_PALETTE_LENGTH(2048)
r17967r17968
971971   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
972972   MCFG_SCREEN_SIZE(40*8, 32*8)
973973   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
974   MCFG_SCREEN_UPDATE_STATIC(rohga)
974   MCFG_SCREEN_UPDATE_DRIVER(rohga_state, screen_update_rohga)
975975
976976   MCFG_GFXDECODE(schmeisr)
977977   MCFG_PALETTE_LENGTH(2048)
trunk/src/mame/drivers/higemaru.c
r17967r17968
170170   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
171171   MCFG_SCREEN_SIZE(32*8, 32*8)
172172   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
173   MCFG_SCREEN_UPDATE_STATIC(higemaru)
173   MCFG_SCREEN_UPDATE_DRIVER(higemaru_state, screen_update_higemaru)
174174
175175   MCFG_GFXDECODE(higemaru)
176176   MCFG_PALETTE_LENGTH(32*4+16*16)
trunk/src/mame/drivers/plygonet.c
r17967r17968
646646   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
647647   MCFG_SCREEN_SIZE(64*8, 32*8)
648648   MCFG_SCREEN_VISIBLE_AREA(64, 64+368-1, 0, 32*8-1)
649   MCFG_SCREEN_UPDATE_STATIC(polygonet)
649   MCFG_SCREEN_UPDATE_DRIVER(polygonet_state, screen_update_polygonet)
650650
651651   MCFG_PALETTE_LENGTH(32768)
652652
trunk/src/mame/drivers/batman.c
r17967r17968
248248   /* note: these parameters are from published specs, not derived */
249249   /* the board uses a VAD chip to generate video signals */
250250   MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
251   MCFG_SCREEN_UPDATE_STATIC(batman)
251   MCFG_SCREEN_UPDATE_DRIVER(batman_state, screen_update_batman)
252252
253253   MCFG_VIDEO_START_OVERRIDE(batman_state,batman)
254254
trunk/src/mame/drivers/nemesis.c
r17967r17968
15701570   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
15711571   MCFG_SCREEN_SIZE(32*8, 32*8)
15721572   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1573   MCFG_SCREEN_UPDATE_STATIC(nemesis)
1573   MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
15741574
15751575   MCFG_GFXDECODE(nemesis)
15761576   MCFG_PALETTE_LENGTH(2048)
r17967r17968
16131613   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
16141614   MCFG_SCREEN_SIZE(32*8, 32*8)
16151615   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1616   MCFG_SCREEN_UPDATE_STATIC(nemesis)
1616   MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
16171617
16181618   MCFG_GFXDECODE(nemesis)
16191619   MCFG_PALETTE_LENGTH(2048)
r17967r17968
16551655   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
16561656   MCFG_SCREEN_SIZE(32*8, 32*8)
16571657   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1658   MCFG_SCREEN_UPDATE_STATIC(nemesis)
1658   MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
16591659
16601660   MCFG_GFXDECODE(nemesis)
16611661   MCFG_PALETTE_LENGTH(2048)
r17967r17968
16951695   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
16961696   MCFG_SCREEN_SIZE(32*8, 32*8)
16971697   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1698   MCFG_SCREEN_UPDATE_STATIC(nemesis)
1698   MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
16991699
17001700   MCFG_GFXDECODE(nemesis)
17011701   MCFG_PALETTE_LENGTH(2048)
r17967r17968
17391739   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC((264-256)*125/2))
17401740   MCFG_SCREEN_SIZE(32*8, 32*8)
17411741   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1742   MCFG_SCREEN_UPDATE_STATIC(nemesis)
1742   MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
17431743
17441744   MCFG_GFXDECODE(nemesis)
17451745   MCFG_PALETTE_LENGTH(2048)
r17967r17968
17851785   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
17861786   MCFG_SCREEN_SIZE(32*8, 32*8)
17871787   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1788   MCFG_SCREEN_UPDATE_STATIC(nemesis)
1788   MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
17891789
17901790   MCFG_GFXDECODE(nemesis)
17911791   MCFG_PALETTE_LENGTH(2048)
r17967r17968
18271827   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
18281828   MCFG_SCREEN_SIZE(32*8, 32*8)
18291829   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1830   MCFG_SCREEN_UPDATE_STATIC(nemesis)
1830   MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
18311831
18321832   MCFG_GFXDECODE(nemesis)
18331833   MCFG_PALETTE_LENGTH(2048)
r17967r17968
18731873   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
18741874   MCFG_SCREEN_SIZE(32*8, 32*8)
18751875   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1876   MCFG_SCREEN_UPDATE_STATIC(nemesis)
1876   MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
18771877
18781878   MCFG_GFXDECODE(nemesis)
18791879   MCFG_PALETTE_LENGTH(2048)
r17967r17968
19171917   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
19181918   MCFG_SCREEN_SIZE(32*8, 32*8)
19191919   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1920   MCFG_SCREEN_UPDATE_STATIC(nemesis)
1920   MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
19211921
19221922   MCFG_GFXDECODE(nemesis)
19231923   MCFG_PALETTE_LENGTH(2048)
r17967r17968
26642664   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
26652665   MCFG_SCREEN_SIZE(32*8, 32*8)
26662666   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
2667   MCFG_SCREEN_UPDATE_STATIC(nemesis)
2667   MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
26682668
26692669   MCFG_GFXDECODE(nemesis)
26702670   MCFG_PALETTE_LENGTH(2048)
trunk/src/mame/drivers/progolf.c
r17967r17968
8686   DECLARE_DRIVER_INIT(progolf);
8787   virtual void video_start();
8888   virtual void palette_init();
89   UINT32 screen_update_progolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8990};
9091
9192
r17967r17968
101102}
102103
103104
104static SCREEN_UPDATE_IND16( progolf )
105UINT32 progolf_state::screen_update_progolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
105106{
106   progolf_state *state = screen.machine().driver_data<progolf_state>();
107   UINT8 *videoram = state->m_videoram;
107   UINT8 *videoram = m_videoram;
108108   int count,color,x,y,xi,yi;
109109
110110   {
111      int scroll = (state->m_scrollx_lo | ((state->m_scrollx_hi & 0x03) << 8));
111      int scroll = (m_scrollx_lo | ((m_scrollx_hi & 0x03) << 8));
112112
113113      count = 0;
114114
r17967r17968
139139            {
140140               for (xi=0;xi<8;xi++)
141141               {
142                  color = state->m_fg_fb[(xi+yi*8)+count*0x40];
142                  color = m_fg_fb[(xi+yi*8)+count*0x40];
143143
144144                  if(color != 0 && cliprect.contains(x+yi, 256-y+xi))
145145                     bitmap.pix16(x+yi, 256-y+xi) = screen.machine().pens[(color & 0x7)];
r17967r17968
436436   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(3072))
437437   MCFG_SCREEN_SIZE(256, 256)
438438   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
439   MCFG_SCREEN_UPDATE_STATIC(progolf)
439   MCFG_SCREEN_UPDATE_DRIVER(progolf_state, screen_update_progolf)
440440
441441   MCFG_GFXDECODE(progolf)
442442   MCFG_PALETTE_LENGTH(32*3)
trunk/src/mame/drivers/magmax.c
r17967r17968
361361   MCFG_SCREEN_REFRESH_RATE(60)
362362   MCFG_SCREEN_SIZE(32*8, 32*8)
363363   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
364   MCFG_SCREEN_UPDATE_STATIC(magmax)
364   MCFG_SCREEN_UPDATE_DRIVER(magmax_state, screen_update_magmax)
365365
366366   MCFG_GFXDECODE(magmax)
367367   MCFG_PALETTE_LENGTH(1*16 + 16*16 + 256)
trunk/src/mame/drivers/powerbal.c
r17967r17968
426426   m_bg_tilemap->set_scrolly(0, m_bg_yoffset);
427427}
428428
429static SCREEN_UPDATE_IND16( powerbal )
429UINT32 playmark_state::screen_update_powerbal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
430430{
431   playmark_state *state = screen.machine().driver_data<playmark_state>();
432431
433   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
432   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
434433   draw_sprites(screen.machine(), bitmap, cliprect);
435434   return 0;
436435}
r17967r17968
496495   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
497496   MCFG_SCREEN_SIZE(128*8, 64*8)
498497   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1)
499   MCFG_SCREEN_UPDATE_STATIC(powerbal)
498   MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_powerbal)
500499
501500   MCFG_GFXDECODE(powerbal)
502501   MCFG_PALETTE_LENGTH(512)
r17967r17968
529528   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
530529   MCFG_SCREEN_SIZE(128*8, 64*8)
531530   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1)
532   MCFG_SCREEN_UPDATE_STATIC(powerbal)
531   MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_powerbal)
533532
534533   MCFG_GFXDECODE(powerbal)
535534   MCFG_PALETTE_LENGTH(512)
trunk/src/mame/drivers/jackie.c
r17967r17968
110110   TILE_GET_INFO_MEMBER(get_jackie_reel3_tile_info);
111111   virtual void machine_reset();
112112   virtual void video_start();
113   UINT32 screen_update_jackie(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
113114};
114115
115116
r17967r17968
197198}
198199
199200
200static SCREEN_UPDATE_IND16(jackie)
201UINT32 jackie_state::screen_update_jackie(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
201202{
202   jackie_state *state = screen.machine().driver_data<jackie_state>();
203203   int i,j;
204204   int startclipmin = 0;
205205   const rectangle &visarea = screen.visible_area();
r17967r17968
208208
209209   for (i=0;i < 0x40;i++)
210210   {
211      state->m_reel1_tilemap->set_scrolly(i, state->m_bg_scroll[i+0x000]);
212      state->m_reel2_tilemap->set_scrolly(i, state->m_bg_scroll[i+0x040]);
213      state->m_reel3_tilemap->set_scrolly(i, state->m_bg_scroll[i+0x080]);
211      m_reel1_tilemap->set_scrolly(i, m_bg_scroll[i+0x000]);
212      m_reel2_tilemap->set_scrolly(i, m_bg_scroll[i+0x040]);
213      m_reel3_tilemap->set_scrolly(i, m_bg_scroll[i+0x080]);
214214   }
215215
216216   for (j=0; j < 0x100-1; j++)
217217   {
218218      rectangle clip;
219      int rowenable = state->m_bg_scroll2[j];
219      int rowenable = m_bg_scroll2[j];
220220
221221      /* draw top of screen */
222222      clip.set(visarea.min_x, visarea.max_x, startclipmin, startclipmin+1);
223223
224224      if (rowenable==0)
225225      {
226         state->m_reel1_tilemap->draw(bitmap, clip, 0,0);
226         m_reel1_tilemap->draw(bitmap, clip, 0,0);
227227      }
228228      else if (rowenable==1)
229229      {
230         state->m_reel2_tilemap->draw(bitmap, clip, 0,0);
230         m_reel2_tilemap->draw(bitmap, clip, 0,0);
231231      }
232232      else if (rowenable==2)
233233      {
234         state->m_reel3_tilemap->draw(bitmap, clip, 0,0);
234         m_reel3_tilemap->draw(bitmap, clip, 0,0);
235235      }
236236      else if (rowenable==3)
237237      {
r17967r17968
240240      startclipmin+=1;
241241   }
242242
243   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
243   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
244244
245245   return 0;
246246}
r17967r17968
586586   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
587587   MCFG_SCREEN_SIZE(64*8, 32*8)
588588   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0, 32*8-1)
589   MCFG_SCREEN_UPDATE_STATIC(jackie)
589   MCFG_SCREEN_UPDATE_DRIVER(jackie_state, screen_update_jackie)
590590
591591   MCFG_GFXDECODE(jackie)
592592   MCFG_PALETTE_LENGTH(2048)
trunk/src/mame/drivers/warriorb.c
r17967r17968
564564   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
565565   MCFG_SCREEN_SIZE(40*8, 32*8)
566566   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 3*8, 32*8-1)
567   MCFG_SCREEN_UPDATE_STATIC(warriorb_left)
567   MCFG_SCREEN_UPDATE_DRIVER(warriorb_state, screen_update_warriorb_left)
568568
569569   MCFG_SCREEN_ADD("rscreen", RASTER)
570570   MCFG_SCREEN_REFRESH_RATE(60)
571571   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
572572   MCFG_SCREEN_SIZE(40*8, 32*8)
573573   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 3*8, 32*8-1)
574   MCFG_SCREEN_UPDATE_STATIC(warriorb_right)
574   MCFG_SCREEN_UPDATE_DRIVER(warriorb_state, screen_update_warriorb_right)
575575
576576
577577   MCFG_TC0100SCN_ADD("tc0100scn_1", darius2d_tc0100scn_intf_l)
r17967r17968
627627   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
628628   MCFG_SCREEN_SIZE(40*8, 32*8)
629629   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
630   MCFG_SCREEN_UPDATE_STATIC(warriorb_left)
630   MCFG_SCREEN_UPDATE_DRIVER(warriorb_state, screen_update_warriorb_left)
631631
632632   MCFG_SCREEN_ADD("rscreen", RASTER)
633633   MCFG_SCREEN_REFRESH_RATE(60)
634634   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
635635   MCFG_SCREEN_SIZE(40*8, 32*8)
636636   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
637   MCFG_SCREEN_UPDATE_STATIC(warriorb_right)
637   MCFG_SCREEN_UPDATE_DRIVER(warriorb_state, screen_update_warriorb_right)
638638
639639
640640   MCFG_TC0100SCN_ADD("tc0100scn_1", warriorb_tc0100scn_intf_l)
trunk/src/mame/drivers/goal92.c
r17967r17968
328328   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
329329   MCFG_SCREEN_SIZE(40*8, 32*8)
330330   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) // black border at bottom is a game bug...
331   MCFG_SCREEN_UPDATE_STATIC(goal92)
332   MCFG_SCREEN_VBLANK_STATIC(goal92)
331   MCFG_SCREEN_UPDATE_DRIVER(goal92_state, screen_update_goal92)
332   MCFG_SCREEN_VBLANK_DRIVER(goal92_state, screen_eof_goal92)
333333
334334   MCFG_GFXDECODE(goal92)
335335   MCFG_PALETTE_LENGTH(128*16)
trunk/src/mame/drivers/alg.c
r17967r17968
447447   MCFG_NVRAM_ADD_0FILL("nvram")
448448
449449   MCFG_LASERDISC_LDP1450_ADD("laserdisc")
450   MCFG_LASERDISC_OVERLAY_STATIC(512*2, 262, amiga)
450   MCFG_LASERDISC_OVERLAY_DRIVER(512*2, 262, amiga_state, screen_update_amiga)
451451   MCFG_LASERDISC_OVERLAY_CLIP((129-8)*2, (449+8-1)*2, 44-8, 244+8-1)
452452
453453   /* video hardware */
trunk/src/mame/drivers/bombjack.c
r17967r17968
374374   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
375375   MCFG_SCREEN_SIZE(32*8, 32*8)
376376   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
377   MCFG_SCREEN_UPDATE_STATIC(bombjack)
377   MCFG_SCREEN_UPDATE_DRIVER(bombjack_state, screen_update_bombjack)
378378
379379   MCFG_GFXDECODE(bombjack)
380380   MCFG_PALETTE_LENGTH(128)
trunk/src/mame/drivers/trucocl.c
r17967r17968
143143   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
144144   MCFG_SCREEN_SIZE(32*8, 32*8)
145145   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
146   MCFG_SCREEN_UPDATE_STATIC(trucocl)
146   MCFG_SCREEN_UPDATE_DRIVER(trucocl_state, screen_update_trucocl)
147147
148148   MCFG_GFXDECODE(trucocl)
149149   MCFG_PALETTE_LENGTH(32)
trunk/src/mame/drivers/unico.c
r17967r17968
603603   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
604604   MCFG_SCREEN_SIZE(0x180, 0xe0)
605605   MCFG_SCREEN_VISIBLE_AREA(0, 0x180-1, 0, 0xe0-1)
606   MCFG_SCREEN_UPDATE_STATIC(unico)
606   MCFG_SCREEN_UPDATE_DRIVER(unico_state, screen_update_unico)
607607
608608   MCFG_GFXDECODE(unico)
609609   MCFG_PALETTE_LENGTH(8192)
r17967r17968
648648   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
649649   MCFG_SCREEN_SIZE(0x180, 0xe0)
650650   MCFG_SCREEN_VISIBLE_AREA(0, 0x180-1, 0, 0xe0-1)
651   MCFG_SCREEN_UPDATE_STATIC(unico)
651   MCFG_SCREEN_UPDATE_DRIVER(unico_state, screen_update_unico)
652652
653653   MCFG_GFXDECODE(unico)
654654   MCFG_PALETTE_LENGTH(8192)
r17967r17968
690690   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
691691   MCFG_SCREEN_SIZE(0x180, 0xe0)
692692   MCFG_SCREEN_VISIBLE_AREA(0, 0x180-1, 0, 0xe0-1)
693   MCFG_SCREEN_UPDATE_STATIC(zeropnt2)
693   MCFG_SCREEN_UPDATE_DRIVER(unico_state, screen_update_zeropnt2)
694694
695695   MCFG_GFXDECODE(unico)
696696   MCFG_PALETTE_LENGTH(8192)
trunk/src/mame/drivers/blockhl.c
r17967r17968
229229   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
230230   MCFG_SCREEN_SIZE(64*8, 32*8)
231231   MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
232   MCFG_SCREEN_UPDATE_STATIC(blockhl)
232   MCFG_SCREEN_UPDATE_DRIVER(blockhl_state, screen_update_blockhl)
233233
234234   MCFG_PALETTE_LENGTH(1024)
235235
trunk/src/mame/drivers/gcpinbal.c
r17967r17968
447447   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)   /* frames per second, vblank duration */)
448448   MCFG_SCREEN_SIZE(40*8, 32*8)
449449   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
450   MCFG_SCREEN_UPDATE_STATIC(gcpinbal)
450   MCFG_SCREEN_UPDATE_DRIVER(gcpinbal_state, screen_update_gcpinbal)
451451
452452
453453   MCFG_GFXDECODE(gcpinbal)
trunk/src/mame/drivers/blackt96.c
r17967r17968
131131   TILE_GET_INFO_MEMBER(get_bg6_tile_info);
132132   TILE_GET_INFO_MEMBER(get_bg7_tile_info);
133133   virtual void video_start();
134   UINT32 screen_update_blackt96(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
134135};
135136
136137#define GET_INFO( ram ) \
r17967r17968
227228}
228229
229230
230static SCREEN_UPDATE_IND16( blackt96 )
231UINT32 blackt96_state::screen_update_blackt96(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
231232{
232   blackt96_state *state = screen.machine().driver_data<blackt96_state>();
233233   int count;
234234   int x,y;
235235   gfx_element *gfx = screen.machine().gfx[2];
r17967r17968
263263   {
264264      for (y=0;y<32;y++)
265265      {
266         UINT16 tile = (state->m_tilemapram[count*2]&0x7ff)+0x800; // +0xc00 for korean text
266         UINT16 tile = (m_tilemapram[count*2]&0x7ff)+0x800; // +0xc00 for korean text
267267         drawgfx_transpen(bitmap,cliprect,gfx,tile,0,0,0,x*8,-16+y*8,0);
268268         count++;
269269      }
r17967r17968
621621   MCFG_SCREEN_SIZE(256, 256)
622622//  MCFG_SCREEN_VISIBLE_AREA(0*8, 16*32-1, 0*8, 16*32-1)
623623   MCFG_SCREEN_VISIBLE_AREA(0*8, 256-1, 0*8, 208-1)
624   MCFG_SCREEN_UPDATE_STATIC(blackt96)
624   MCFG_SCREEN_UPDATE_DRIVER(blackt96_state, screen_update_blackt96)
625625
626626   MCFG_PALETTE_LENGTH(0x800)
627627
trunk/src/mame/drivers/segag80v.c
r17967r17968
906906   MCFG_SCREEN_REFRESH_RATE(40)
907907   MCFG_SCREEN_SIZE(400, 300)
908908   MCFG_SCREEN_VISIBLE_AREA(512, 1536, 640-32, 1408+32)
909   MCFG_SCREEN_UPDATE_STATIC(segag80v)
909   MCFG_SCREEN_UPDATE_DRIVER(segag80v_state, screen_update_segag80v)
910910
911911
912912   /* sound hardware */
trunk/src/mame/drivers/ace.c
r17967r17968
6868   virtual void machine_reset();
6969   virtual void video_start();
7070   virtual void palette_init();
71   UINT32 screen_update_ace(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7172};
7273
7374
r17967r17968
9192   machine().gfx[4]->set_source(m_scoreram);
9293}
9394
94static SCREEN_UPDATE_IND16( ace )
95UINT32 aceal_state::screen_update_ace(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
9596{
96   aceal_state *state = screen.machine().driver_data<aceal_state>();
9797   int offs;
9898
9999   /* first of all, fill the screen with the background color */
r17967r17968
103103         0,
104104         0,
105105         0, 0,
106         state->m_objpos[0], state->m_objpos[1]);
106         m_objpos[0], m_objpos[1]);
107107
108108   drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[2],
109109         0,
110110         0,
111111         0, 0,
112         state->m_objpos[2], state->m_objpos[3]);
112         m_objpos[2], m_objpos[3]);
113113
114114   drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[3],
115115         0,
116116         0,
117117         0, 0,
118         state->m_objpos[4], state->m_objpos[5]);
118         m_objpos[4], m_objpos[5]);
119119
120120   for (offs = 0; offs < 8; offs++)
121121   {
r17967r17968
359359   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
360360   MCFG_SCREEN_SIZE(32*8, 32*8)
361361   MCFG_SCREEN_VISIBLE_AREA(4*8, 32*8-1, 2*8, 32*8-1)
362   MCFG_SCREEN_UPDATE_STATIC(ace)
362   MCFG_SCREEN_UPDATE_DRIVER(aceal_state, screen_update_ace)
363363
364364   MCFG_GFXDECODE(ace)
365365   MCFG_PALETTE_LENGTH(2)
trunk/src/mame/drivers/gatron.c
r17967r17968
460460   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
461461   MCFG_SCREEN_SIZE(48*8, 16*16)
462462   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 16*16-1)
463   MCFG_SCREEN_UPDATE_STATIC(gat)
463   MCFG_SCREEN_UPDATE_DRIVER(gatron_state, screen_update_gat)
464464
465465   MCFG_GFXDECODE(gat)
466466   MCFG_PALETTE_LENGTH(8)
trunk/src/mame/drivers/bottom9.c
r17967r17968
368368   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
369369   MCFG_SCREEN_SIZE(64*8, 32*8)
370370   MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
371   MCFG_SCREEN_UPDATE_STATIC(bottom9)
371   MCFG_SCREEN_UPDATE_DRIVER(bottom9_state, screen_update_bottom9)
372372
373373   MCFG_PALETTE_LENGTH(1024)
374374
trunk/src/mame/drivers/dreamwld.c
r17967r17968
163163   virtual void machine_start();
164164   virtual void machine_reset();
165165   virtual void video_start();
166   UINT32 screen_update_dreamwld(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
167   void screen_eof_dreamwld(screen_device &screen, bool state);
166168};
167169
168170
r17967r17968
284286
285287}
286288
287SCREEN_VBLANK( dreamwld )
289void dreamwld_state::screen_eof_dreamwld(screen_device &screen, bool state)
288290{
289291   // rising edge
290   if (vblank_on)
292   if (state)
291293   {
292      dreamwld_state *state = screen.machine().driver_data<dreamwld_state>();
293      memcpy(state->m_spritebuf2, state->m_spritebuf1, 0x2000);
294      memcpy(state->m_spritebuf1, state->m_spriteram, 0x2000);
294      memcpy(m_spritebuf2, m_spritebuf1, 0x2000);
295      memcpy(m_spritebuf1, m_spriteram, 0x2000);
295296   }
296297}
297298
298299
299static SCREEN_UPDATE_IND16( dreamwld )
300UINT32 dreamwld_state::screen_update_dreamwld(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
300301{
301   dreamwld_state *state = screen.machine().driver_data<dreamwld_state>();
302302//  int tm0size, tm1size;
303303
304304   tilemap_t *tmptilemap0, *tmptilemap1;
305305
306   tmptilemap0 = state->m_bg_tilemap;
307   tmptilemap1 = state->m_bg2_tilemap;
306   tmptilemap0 = m_bg_tilemap;
307   tmptilemap1 = m_bg2_tilemap;
308308
309   int layer0_scrolly = state->m_vregs[(0x400 / 4)] + 32;
310   int layer1_scrolly = state->m_vregs[(0x400 / 4) + 2] + 32;
309   int layer0_scrolly = m_vregs[(0x400 / 4)] + 32;
310   int layer1_scrolly = m_vregs[(0x400 / 4) + 2] + 32;
311311
312   int layer0_scrollx = state->m_vregs[(0x400 / 4) + 1] + 3;
313   int layer1_scrollx = state->m_vregs[(0x400 / 4) + 3] + 5;
314   UINT32 layer0_ctrl = state->m_vregs[0x412 / 4];
315   UINT32 layer1_ctrl = state->m_vregs[0x416 / 4];
312   int layer0_scrollx = m_vregs[(0x400 / 4) + 1] + 3;
313   int layer1_scrollx = m_vregs[(0x400 / 4) + 3] + 5;
314   UINT32 layer0_ctrl = m_vregs[0x412 / 4];
315   UINT32 layer1_ctrl = m_vregs[0x416 / 4];
316316
317317   tmptilemap0->set_scrolly(0, layer0_scrolly);
318318   tmptilemap1->set_scrolly(0, layer1_scrolly);
r17967r17968
342342      int x0 = 0, x1 = 0;
343343
344344      /* layer 0 */
345      UINT16 *vregs = reinterpret_cast<UINT16 *>(state->m_vregs.target());
345      UINT16 *vregs = reinterpret_cast<UINT16 *>(m_vregs.target());
346346      if (layer0_ctrl & 0x0300)
347347      {
348348         if (layer0_ctrl & 0x0200)
r17967r17968
377377   }
378378
379379
380   state->m_tilebank[0] = (state->m_vregs[(0x400 / 4) + 4] >> 6) & 1;
381   state->m_tilebank[1] = (state->m_vregs[(0x400 / 4) + 5] >> 6) & 1;
380   m_tilebank[0] = (m_vregs[(0x400 / 4) + 4] >> 6) & 1;
381   m_tilebank[1] = (m_vregs[(0x400 / 4) + 5] >> 6) & 1;
382382
383   if (state->m_tilebank[0] != state->m_tilebankold[0])
383   if (m_tilebank[0] != m_tilebankold[0])
384384   {
385      state->m_tilebankold[0] = state->m_tilebank[0];
386      state->m_bg_tilemap->mark_all_dirty();
385      m_tilebankold[0] = m_tilebank[0];
386      m_bg_tilemap->mark_all_dirty();
387387   }
388388
389   if (state->m_tilebank[1] != state->m_tilebankold[1])
389   if (m_tilebank[1] != m_tilebankold[1])
390390   {
391      state->m_tilebankold[1] = state->m_tilebank[1];
392      state->m_bg2_tilemap->mark_all_dirty();
391      m_tilebankold[1] = m_tilebank[1];
392      m_bg2_tilemap->mark_all_dirty();
393393   }
394394
395395   tmptilemap0->draw(bitmap, cliprect, 0, 0);
r17967r17968
598598   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
599599   MCFG_SCREEN_SIZE(512,256)
600600   MCFG_SCREEN_VISIBLE_AREA(0, 304-1, 0, 224-1)
601   MCFG_SCREEN_UPDATE_STATIC(dreamwld)
602   MCFG_SCREEN_VBLANK_STATIC(dreamwld)
601   MCFG_SCREEN_UPDATE_DRIVER(dreamwld_state, screen_update_dreamwld)
602   MCFG_SCREEN_VBLANK_DRIVER(dreamwld_state, screen_eof_dreamwld)
603603
604604   MCFG_PALETTE_LENGTH(0x1000)
605605   MCFG_GFXDECODE(dreamwld)
trunk/src/mame/drivers/m62.c
r17967r17968
966966   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1790) /* frames per second and vblank duration from the Lode Runner manual */)
967967   MCFG_SCREEN_SIZE(64*8, 32*8)
968968   MCFG_SCREEN_VISIBLE_AREA((64*8-384)/2, 64*8-(64*8-384)/2-1, 0*8, 32*8-1)
969   MCFG_SCREEN_UPDATE_STATIC(ldrun)
969   MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_ldrun)
970970
971971   MCFG_GFXDECODE(ldrun)
972972   MCFG_PALETTE_LENGTH(512)
r17967r17968
988988   /* video hardware */
989989   MCFG_SCREEN_MODIFY("screen")
990990   MCFG_SCREEN_VISIBLE_AREA((64*8-256)/2, 64*8-(64*8-256)/2-1, 0*8, 32*8-1)
991   MCFG_SCREEN_UPDATE_STATIC(kungfum)
991   MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_kungfum)
992992
993993   MCFG_VIDEO_START_OVERRIDE(m62_state,kungfum)
994994MACHINE_CONFIG_END
r17967r17968
10051005   /* video hardware */
10061006   MCFG_SCREEN_MODIFY("screen")
10071007   MCFG_SCREEN_VISIBLE_AREA((64*8-256)/2, 64*8-(64*8-256)/2-1, 0*8, 32*8-1)
1008   MCFG_SCREEN_UPDATE_STATIC(battroad)
1008   MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_battroad)
10091009   MCFG_GFXDECODE(battroad)
10101010   MCFG_PALETTE_LENGTH(544)
10111011
r17967r17968
10231023
10241024   MCFG_VIDEO_START_OVERRIDE(m62_state,ldrun2)
10251025   MCFG_SCREEN_MODIFY("screen")
1026   MCFG_SCREEN_UPDATE_STATIC(ldrun)
1026   MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_ldrun)
10271027MACHINE_CONFIG_END
10281028
10291029
r17967r17968
10381038   MCFG_GFXDECODE(ldrun3)
10391039   MCFG_VIDEO_START_OVERRIDE(m62_state,ldrun2)
10401040   MCFG_SCREEN_MODIFY("screen")
1041   MCFG_SCREEN_UPDATE_STATIC(ldrun3)
1041   MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_ldrun3)
10421042MACHINE_CONFIG_END
10431043
10441044
r17967r17968
10531053   MCFG_GFXDECODE(ldrun3)
10541054   MCFG_VIDEO_START_OVERRIDE(m62_state,ldrun4)
10551055   MCFG_SCREEN_MODIFY("screen")
1056   MCFG_SCREEN_UPDATE_STATIC(ldrun4)
1056   MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_ldrun4)
10571057MACHINE_CONFIG_END
10581058
10591059
r17967r17968
10701070   MCFG_PALETTE_INIT_OVERRIDE(m62_state,lotlot)
10711071   MCFG_VIDEO_START_OVERRIDE(m62_state,lotlot)
10721072   MCFG_SCREEN_MODIFY("screen")
1073   MCFG_SCREEN_UPDATE_STATIC(lotlot)
1073   MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_lotlot)
10741074MACHINE_CONFIG_END
10751075
10761076
r17967r17968
10861086
10871087   MCFG_VIDEO_START_OVERRIDE(m62_state,kidniki)
10881088   MCFG_SCREEN_MODIFY("screen")
1089   MCFG_SCREEN_UPDATE_STATIC(kidniki)
1089   MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_kidniki)
10901090MACHINE_CONFIG_END
10911091
10921092
r17967r17968
11011101
11021102   MCFG_VIDEO_START_OVERRIDE(m62_state,spelunkr)
11031103   MCFG_SCREEN_MODIFY("screen")
1104   MCFG_SCREEN_UPDATE_STATIC(spelunkr)
1104   MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_spelunkr)
11051105MACHINE_CONFIG_END
11061106
11071107
r17967r17968
11181118   MCFG_PALETTE_INIT_OVERRIDE(m62_state,spelunk2)
11191119   MCFG_VIDEO_START_OVERRIDE(m62_state,spelunk2)
11201120   MCFG_SCREEN_MODIFY("screen")
1121   MCFG_SCREEN_UPDATE_STATIC(spelunk2)
1121   MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_spelunk2)
11221122MACHINE_CONFIG_END
11231123
11241124
r17967r17968
11331133   /* video hardware */
11341134   MCFG_SCREEN_MODIFY("screen")
11351135   MCFG_SCREEN_VISIBLE_AREA((64*8-256)/2, 64*8-(64*8-256)/2-1, 0*8, 32*8-1)
1136   MCFG_SCREEN_UPDATE_STATIC(youjyudn)
1136   MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_youjyudn)
11371137   MCFG_GFXDECODE(youjyudn)
11381138
11391139   MCFG_VIDEO_START_OVERRIDE(m62_state,youjyudn)
r17967r17968
11491149   /* video hardware */
11501150   MCFG_SCREEN_MODIFY("screen")
11511151   MCFG_SCREEN_VISIBLE_AREA((64*8-256)/2, 64*8-(64*8-256)/2-1, 0*8, 32*8-1)
1152   MCFG_SCREEN_UPDATE_STATIC(horizon)
1152   MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_horizon)
11531153
11541154   MCFG_VIDEO_START_OVERRIDE(m62_state,horizon)
11551155MACHINE_CONFIG_END
trunk/src/mame/drivers/astrocde.c
r17967r17968
12981298   MCFG_SCREEN_ADD("screen", RASTER)
12991299   MCFG_SCREEN_RAW_PARAMS(ASTROCADE_CLOCK, 455, 0, 352, 262, 0, 240)
13001300   MCFG_SCREEN_DEFAULT_POSITION(1.1, 0.0, 1.18, -0.018)   /* clip out borders */
1301   MCFG_SCREEN_UPDATE_STATIC(astrocde)
1301   MCFG_SCREEN_UPDATE_DRIVER(astrocde_state, screen_update_astrocde)
13021302
13031303MACHINE_CONFIG_END
13041304
r17967r17968
13151315   MCFG_VIDEO_START_OVERRIDE(astrocde_state,profpac)
13161316
13171317   MCFG_SCREEN_MODIFY("screen")
1318   MCFG_SCREEN_UPDATE_STATIC(profpac)
1318   MCFG_SCREEN_UPDATE_DRIVER(astrocde_state, screen_update_profpac)
13191319MACHINE_CONFIG_END
13201320
13211321
trunk/src/mame/drivers/megazone.c
r17967r17968
277277   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
278278   MCFG_SCREEN_SIZE(36*8, 32*8)
279279   MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 2*8, 30*8-1)
280   MCFG_SCREEN_UPDATE_STATIC(megazone)
280   MCFG_SCREEN_UPDATE_DRIVER(megazone_state, screen_update_megazone)
281281
282282   MCFG_GFXDECODE(megazone)
283283   MCFG_PALETTE_LENGTH(16*16+16*16)
trunk/src/mame/drivers/pass.c
r17967r17968
249249   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
250250   MCFG_SCREEN_SIZE(64*8, 32*8)
251251   MCFG_SCREEN_VISIBLE_AREA(8*8, 48*8-1, 2*8, 30*8-1)
252   MCFG_SCREEN_UPDATE_STATIC(pass)
252   MCFG_SCREEN_UPDATE_DRIVER(pass_state, screen_update_pass)
253253
254254   MCFG_PALETTE_LENGTH(0x200)
255255   MCFG_GFXDECODE(pass)
trunk/src/mame/drivers/40love.c
r17967r17968
10801080   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
10811081   MCFG_SCREEN_SIZE(64*8, 32*8)
10821082   MCFG_SCREEN_VISIBLE_AREA(128,128+255, 2*8, 30*8-1)
1083   MCFG_SCREEN_UPDATE_STATIC(fortyl)
1083   MCFG_SCREEN_UPDATE_DRIVER(fortyl_state, screen_update_fortyl)
10841084
10851085   MCFG_GFXDECODE(40love)
10861086   MCFG_PALETTE_LENGTH(1024)
r17967r17968
11351135   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
11361136   MCFG_SCREEN_SIZE(64*8, 32*8)
11371137   MCFG_SCREEN_VISIBLE_AREA(128,128+255, 2*8, 30*8-1)
1138   MCFG_SCREEN_UPDATE_STATIC(fortyl)
1138   MCFG_SCREEN_UPDATE_DRIVER(fortyl_state, screen_update_fortyl)
11391139
11401140   MCFG_GFXDECODE(40love)
11411141   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/galaga.c
r17967r17968
17001700   /* video hardware */
17011701   MCFG_SCREEN_ADD("screen", RASTER)
17021702   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 288, 264, 16, 224+16)
1703   MCFG_SCREEN_UPDATE_STATIC(bosco)
1704   MCFG_SCREEN_VBLANK_STATIC(bosco)
1703   MCFG_SCREEN_UPDATE_DRIVER(bosco_state, screen_update_bosco)
1704   MCFG_SCREEN_VBLANK_DRIVER(bosco_state, screen_eof_bosco)
17051705
17061706   MCFG_GFXDECODE(bosco)
17071707   MCFG_PALETTE_LENGTH(64*4+64*4+4+64)
r17967r17968
17561756   /* video hardware */
17571757   MCFG_SCREEN_ADD("screen", RASTER)
17581758   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 288, 264, 0, 224)
1759   MCFG_SCREEN_UPDATE_STATIC(galaga)
1760   MCFG_SCREEN_VBLANK_STATIC(galaga)
1759   MCFG_SCREEN_UPDATE_DRIVER(bosco_state, screen_update_galaga)
1760   MCFG_SCREEN_VBLANK_DRIVER(bosco_state, screen_eof_galaga)
17611761
17621762   MCFG_GFXDECODE(galaga)
17631763   MCFG_PALETTE_LENGTH(64*4+64*4+64)
r17967r17968
18341834   /* video hardware */
18351835   MCFG_SCREEN_ADD("screen", RASTER)
18361836   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 288, 264, 0, 224)
1837   MCFG_SCREEN_UPDATE_STATIC(xevious)
1837   MCFG_SCREEN_UPDATE_DRIVER(xevious_state, screen_update_xevious)
18381838
18391839   MCFG_GFXDECODE(xevious)
18401840   MCFG_PALETTE_LENGTH(128*4+64*8+64*2)
r17967r17968
19231923   /* video hardware */
19241924   MCFG_SCREEN_ADD("screen", RASTER)
19251925   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 288, 264, 0, 224)
1926   MCFG_SCREEN_UPDATE_STATIC(digdug)
1926   MCFG_SCREEN_UPDATE_DRIVER(digdug_state, screen_update_digdug)
19271927
19281928   MCFG_GFXDECODE(digdug)
19291929   MCFG_PALETTE_LENGTH(16*2+64*4+64*4)
trunk/src/mame/drivers/panicr.c
r17967r17968
9898   TILE_GET_INFO_MEMBER(get_txttile_info);
9999   virtual void video_start();
100100   virtual void palette_init();
101   UINT32 screen_update_panicr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
101102};
102103
103104
r17967r17968
247248   }
248249}
249250
250static SCREEN_UPDATE_IND16( panicr)
251UINT32 panicr_state::screen_update_panicr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
251252{
252   panicr_state *state = screen.machine().driver_data<panicr_state>();
253253   bitmap.fill(get_black_pen(screen.machine()), cliprect);
254   state->m_txttilemap->mark_all_dirty();
255   state->m_bgtilemap->set_scrollx(0, state->m_scrollx);
256   state->m_bgtilemap->draw(bitmap, cliprect, 0,0);
254   m_txttilemap->mark_all_dirty();
255   m_bgtilemap->set_scrollx(0, m_scrollx);
256   m_bgtilemap->draw(bitmap, cliprect, 0,0);
257257   draw_sprites(screen.machine(),bitmap,cliprect);
258   state->m_txttilemap->draw(bitmap, cliprect, 0,0);
258   m_txttilemap->draw(bitmap, cliprect, 0,0);
259259
260260   return 0;
261261}
r17967r17968
515515   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
516516   MCFG_SCREEN_SIZE(32*8, 32*8)
517517   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
518   MCFG_SCREEN_UPDATE_STATIC(panicr)
518   MCFG_SCREEN_UPDATE_DRIVER(panicr_state, screen_update_panicr)
519519
520520   MCFG_GFXDECODE(panicr)
521521   MCFG_PALETTE_LENGTH(256*3)
trunk/src/mame/drivers/istellar.c
r17967r17968
5353   DECLARE_DRIVER_INIT(istellar);
5454   virtual void machine_start();
5555   virtual void palette_init();
56   UINT32 screen_update_istellar(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
5657};
5758
5859
r17967r17968
6162
6263
6364/* VIDEO GOODS */
64static SCREEN_UPDATE_RGB32( istellar )
65UINT32 istellar_state::screen_update_istellar(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
6566{
66   istellar_state *state = screen.machine().driver_data<istellar_state>();
6767   int x, y;
6868
6969   /* clear */
r17967r17968
7474   {
7575      for (x = 0; x < 32; x++)
7676      {
77         int tile = state->m_tile_ram[x+y*32];
78         int attr = state->m_tile_control_ram[x+y*32];
77         int tile = m_tile_ram[x+y*32];
78         int attr = m_tile_control_ram[x+y*32];
7979
8080         drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0],tile,attr & 0x0f,0, 0, x*8, y*8, 0);
8181      }
r17967r17968
346346
347347
348348   MCFG_LASERDISC_LDV1000_ADD("laserdisc")
349   MCFG_LASERDISC_OVERLAY_STATIC(256, 256, istellar)
349   MCFG_LASERDISC_OVERLAY_DRIVER(256, 256, istellar_state, screen_update_istellar)
350350
351351   /* video hardware */
352352   MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc")
trunk/src/mame/drivers/lasso.c
r17967r17968
525525   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
526526   MCFG_SCREEN_SIZE(32*8, 32*8)
527527   MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 2*8, 30*8-1)
528   MCFG_SCREEN_UPDATE_STATIC(lasso)
528   MCFG_SCREEN_UPDATE_DRIVER(lasso_state, screen_update_lasso)
529529
530530   MCFG_GFXDECODE(lasso)
531531   MCFG_PALETTE_LENGTH(0x40)
r17967r17968
562562
563563   /* video hardware */
564564   MCFG_SCREEN_MODIFY("screen")
565   MCFG_SCREEN_UPDATE_STATIC(chameleo)
565   MCFG_SCREEN_UPDATE_DRIVER(lasso_state, screen_update_chameleo)
566566MACHINE_CONFIG_END
567567
568568static MACHINE_CONFIG_DERIVED( wwjgtin, base )
r17967r17968
580580   /* video hardware */
581581   MCFG_SCREEN_MODIFY("screen")
582582   MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1)   // Smaller visible area?
583   MCFG_SCREEN_UPDATE_STATIC(wwjgtin)
583   MCFG_SCREEN_UPDATE_DRIVER(lasso_state, screen_update_wwjgtin)
584584   MCFG_GFXDECODE(wwjgtin)   // Has 1 additional layer
585585   MCFG_PALETTE_LENGTH(0x40 + 16*16)
586586
r17967r17968
609609   MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
610610   MCFG_VIDEO_START_OVERRIDE(lasso_state,pinbo)
611611   MCFG_SCREEN_MODIFY("screen")
612   MCFG_SCREEN_UPDATE_STATIC(chameleo)
612   MCFG_SCREEN_UPDATE_DRIVER(lasso_state, screen_update_chameleo)
613613
614614   /* sound hardware */
615615   MCFG_DEVICE_REMOVE("sn76489.1")
trunk/src/mame/drivers/macs.c
r17967r17968
491491   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
492492   MCFG_SCREEN_SIZE(128*8, 128*8)
493493   MCFG_SCREEN_VISIBLE_AREA(0*8, 128*8-1, 0*8, 128*8-1)
494   MCFG_SCREEN_UPDATE_STATIC(st0016)
494   MCFG_SCREEN_UPDATE_DRIVER(st0016_state, screen_update_st0016)
495495
496496   MCFG_GFXDECODE(macs)
497497   MCFG_PALETTE_LENGTH(16*16*4+1)
trunk/src/mame/drivers/sbowling.c
r17967r17968
7373   TILE_GET_INFO_MEMBER(get_sb_tile_info);
7474   virtual void video_start();
7575   virtual void palette_init();
76   UINT32 screen_update_sbowling(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7677};
7778
7879TILE_GET_INFO_MEMBER(sbowling_state::get_sb_tile_info)
r17967r17968
116117   }
117118}
118119
119static SCREEN_UPDATE_IND16(sbowling)
120UINT32 sbowling_state::screen_update_sbowling(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
120121{
121   sbowling_state *state = screen.machine().driver_data<sbowling_state>();
122122
123123   bitmap.fill(0x18, cliprect);
124   state->m_sb_tilemap->draw(bitmap, cliprect, 0, 0);
125   copybitmap_trans(bitmap, *state->m_tmpbitmap, 0, 0, 0, 0, cliprect, state->m_color_prom_address);
124   m_sb_tilemap->draw(bitmap, cliprect, 0, 0);
125   copybitmap_trans(bitmap, *m_tmpbitmap, 0, 0, 0, 0, cliprect, m_color_prom_address);
126126   return 0;
127127}
128128
r17967r17968
392392   MCFG_SCREEN_REFRESH_RATE(60)
393393   MCFG_SCREEN_SIZE(32*8, 262)      /* vert size taken from mw8080bw */
394394   MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 32*8-1)
395   MCFG_SCREEN_UPDATE_STATIC(sbowling)
395   MCFG_SCREEN_UPDATE_DRIVER(sbowling_state, screen_update_sbowling)
396396
397397   MCFG_GFXDECODE(sbowling)
398398
trunk/src/mame/drivers/psychic5.c
r17967r17968
678678   /* frames per second hand tuned to match game and music speed */
679679   MCFG_SCREEN_SIZE(32*8, 32*8)
680680   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
681   MCFG_SCREEN_UPDATE_STATIC(psychic5)
681   MCFG_SCREEN_UPDATE_DRIVER(psychic5_state, screen_update_psychic5)
682682
683683   MCFG_GFXDECODE(psychic5)
684684   MCFG_PALETTE_LENGTH(768)
r17967r17968
722722   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
723723   MCFG_SCREEN_SIZE(64*8, 32*8)
724724   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
725   MCFG_SCREEN_UPDATE_STATIC(bombsa)
725   MCFG_SCREEN_UPDATE_DRIVER(psychic5_state, screen_update_bombsa)
726726
727727   MCFG_GFXDECODE(bombsa)
728728   MCFG_PALETTE_LENGTH(768)
trunk/src/mame/drivers/othunder.c
r17967r17968
726726   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
727727   MCFG_SCREEN_SIZE(40*8, 32*8)
728728   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
729   MCFG_SCREEN_UPDATE_STATIC(othunder)
729   MCFG_SCREEN_UPDATE_DRIVER(othunder_state, screen_update_othunder)
730730
731731   MCFG_GFXDECODE(othunder)
732732   MCFG_PALETTE_LENGTH(4096)
trunk/src/mame/drivers/8080bw.c
r17967r17968
396396
397397   /* video hardware */
398398   MCFG_SCREEN_MODIFY("screen")
399   MCFG_SCREEN_UPDATE_STATIC(invadpt2)
399   MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_invadpt2)
400400
401401   /* sound hardware */
402402   MCFG_FRAGMENT_ADD(invaders_samples_audio)
r17967r17968
572572
573573   /* video hardware */
574574   MCFG_SCREEN_MODIFY("screen")
575   MCFG_SCREEN_UPDATE_STATIC(cosmo)
575   MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_cosmo)
576576
577577   /* sound hardware */
578578   MCFG_FRAGMENT_ADD(invaders_samples_audio)
r17967r17968
802802
803803   /* video hardware */
804804   MCFG_SCREEN_MODIFY("screen")
805   MCFG_SCREEN_UPDATE_STATIC(invadpt2)
805   MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_invadpt2)
806806
807807   /* sound hardware */
808808   MCFG_SPEAKER_STANDARD_MONO("mono")
r17967r17968
954954
955955   /* video hardware */
956956   MCFG_SCREEN_MODIFY("screen")
957   MCFG_SCREEN_UPDATE_STATIC(rollingc)
957   MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_rollingc)
958958
959959   /* sound hardware */
960960   MCFG_FRAGMENT_ADD(invaders_samples_audio)
r17967r17968
10721072
10731073   /* video hardware */
10741074   MCFG_SCREEN_MODIFY("screen")
1075   MCFG_SCREEN_UPDATE_STATIC(schaser)
1075   MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_schaser)
10761076
10771077   /* sound hardware */
10781078   MCFG_SPEAKER_STANDARD_MONO("mono")
r17967r17968
11411141
11421142   /* video hardware */
11431143   MCFG_SCREEN_MODIFY("screen")
1144   MCFG_SCREEN_UPDATE_STATIC(schasercv)
1144   MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_schasercv)
11451145
11461146   /* sound hardware */
11471147   MCFG_FRAGMENT_ADD(invaders_samples_audio)
r17967r17968
12221222
12231223   /* video hardware */
12241224   MCFG_SCREEN_MODIFY("screen")
1225   MCFG_SCREEN_UPDATE_STATIC(sflush)
1225   MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_sflush)
12261226
12271227MACHINE_CONFIG_END
12281228
r17967r17968
13291329
13301330   /* video hardware */
13311331   MCFG_SCREEN_MODIFY("screen")
1332   MCFG_SCREEN_UPDATE_STATIC(indianbt)
1332   MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_indianbt)
13331333
13341334   /* sound hardware */
13351335   MCFG_FRAGMENT_ADD(invaders_samples_audio)
r17967r17968
13491349
13501350   /* video hardware */
13511351   MCFG_SCREEN_MODIFY("screen")
1352   MCFG_SCREEN_UPDATE_STATIC(lupin3)
1352   MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_lupin3)
13531353
13541354   /* sound hardware */
13551355   MCFG_FRAGMENT_ADD(invaders_samples_audio)
r17967r17968
14691469
14701470   /* video hardware */
14711471   MCFG_SCREEN_MODIFY("screen")
1472   MCFG_SCREEN_UPDATE_STATIC(polaris)
1472   MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_polaris)
14731473
14741474   /* sound hardware */
14751475   MCFG_SPEAKER_STANDARD_MONO("mono")
r17967r17968
15921592
15931593   /* video hardware */
15941594   MCFG_SCREEN_MODIFY("screen")
1595   MCFG_SCREEN_UPDATE_STATIC(ballbomb)
1595   MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_ballbomb)
15961596
15971597   /* sound hardware */
15981598   MCFG_FRAGMENT_ADD(invaders_samples_audio)
r17967r17968
17631763
17641764   /* video hardware */
17651765   MCFG_SCREEN_MODIFY("screen")
1766   MCFG_SCREEN_UPDATE_STATIC(indianbt)
1766   MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_indianbt)
17671767
17681768   /* sound hardware */
17691769   MCFG_FRAGMENT_ADD(invaders_samples_audio)
r17967r17968
18371837
18381838   /* video hardware */
18391839   MCFG_SCREEN_MODIFY("screen")
1840   MCFG_SCREEN_UPDATE_STATIC(invadpt2)
1840   MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_invadpt2)
18411841
18421842   /* sound hardware */
18431843   MCFG_FRAGMENT_ADD(invaders_samples_audio)
r17967r17968
19721972   /* video hardware */
19731973   MCFG_SCREEN_MODIFY("screen")
19741974   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 24*8-1)
1975   MCFG_SCREEN_UPDATE_STATIC(shuttlei)
1975   MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_shuttlei)
19761976
19771977   /* sound hardware */
19781978   MCFG_FRAGMENT_ADD(invaders_samples_audio)
r17967r17968
21532153   /* video hardware */
21542154   // TODO: replace with modified invaders color renderer code allowing midscanline color writes
21552155   MCFG_SCREEN_MODIFY("screen")
2156   MCFG_SCREEN_UPDATE_STATIC(invaders)
2156   MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_invaders)
21572157
21582158   /* add shifter */
21592159   MCFG_MB14241_ADD("mb14241")
trunk/src/mame/drivers/good.c
r17967r17968
5757   TILE_GET_INFO_MEMBER(get_fg_tile_info);
5858   TILE_GET_INFO_MEMBER(get_bg_tile_info);
5959   virtual void video_start();
60   UINT32 screen_update_good(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6061};
6162
6263
r17967r17968
9596   m_fg_tilemap->set_transparent_pen(0xf);
9697}
9798
98static SCREEN_UPDATE_IND16( good )
99UINT32 good_state::screen_update_good(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
99100{
100   good_state *state = screen.machine().driver_data<good_state>();
101   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
102   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
101   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
102   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
103103   return 0;
104104}
105105
r17967r17968
288288   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
289289   MCFG_SCREEN_SIZE(32*16, 32*16)
290290   MCFG_SCREEN_VISIBLE_AREA(1*16, 23*16-1, 0*16, 14*16-1)
291   MCFG_SCREEN_UPDATE_STATIC(good)
291   MCFG_SCREEN_UPDATE_DRIVER(good_state, screen_update_good)
292292
293293   MCFG_PALETTE_LENGTH(0x400)
294294
trunk/src/mame/drivers/quasar.c
r17967r17968
345345   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
346346   MCFG_SCREEN_SIZE(256, 256)
347347   MCFG_SCREEN_VISIBLE_AREA(1*8+1, 29*8-1, 2*8, 32*8-1)
348   MCFG_SCREEN_UPDATE_STATIC(quasar)
348   MCFG_SCREEN_UPDATE_DRIVER(quasar_state, screen_update_quasar)
349349
350350   MCFG_GFXDECODE(quasar)
351351   MCFG_PALETTE_LENGTH((64+1)*8+(4*256))
trunk/src/mame/drivers/xyonix.c
r17967r17968
244244   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
245245   MCFG_SCREEN_SIZE(80*4, 32*8)
246246   MCFG_SCREEN_VISIBLE_AREA(0, 80*4-1, 0, 28*8-1)
247   MCFG_SCREEN_UPDATE_STATIC(xyonix)
247   MCFG_SCREEN_UPDATE_DRIVER(xyonix_state, screen_update_xyonix)
248248
249249   MCFG_GFXDECODE(xyonix)
250250   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/1943.c
r17967r17968
270270   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
271271   MCFG_SCREEN_SIZE(32*8, 32*8)
272272   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
273   MCFG_SCREEN_UPDATE_STATIC(1943)
273   MCFG_SCREEN_UPDATE_DRIVER(_1943_state, screen_update_1943)
274274
275275   MCFG_GFXDECODE(1943)
276276   MCFG_PALETTE_LENGTH(32*4+16*16+16*16+16*16)
trunk/src/mame/drivers/psikyo4.c
r17967r17968
697697   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
698698   MCFG_SCREEN_SIZE(40*8, 32*8)
699699   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
700   MCFG_SCREEN_UPDATE_STATIC(psikyo4_left)
700   MCFG_SCREEN_UPDATE_DRIVER(psikyo4_state, screen_update_psikyo4_left)
701701
702702   MCFG_SCREEN_ADD("rscreen", RASTER)
703703   MCFG_SCREEN_REFRESH_RATE(60)
704704   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
705705   MCFG_SCREEN_SIZE(40*8, 32*8)
706706   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
707   MCFG_SCREEN_UPDATE_STATIC(psikyo4_right)
707   MCFG_SCREEN_UPDATE_DRIVER(psikyo4_state, screen_update_psikyo4_right)
708708
709709
710710   /* sound hardware */
trunk/src/mame/drivers/pacland.c
r17967r17968
432432   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
433433   MCFG_SCREEN_SIZE(64*8, 32*8)
434434   MCFG_SCREEN_VISIBLE_AREA(3*8, 39*8-1, 2*8, 30*8-1)
435   MCFG_SCREEN_UPDATE_STATIC(pacland)
435   MCFG_SCREEN_UPDATE_DRIVER(pacland_state, screen_update_pacland)
436436
437437   MCFG_GFXDECODE(pacland)
438438   MCFG_PALETTE_LENGTH(256*4+256*4+64*16)
trunk/src/mame/drivers/rollrace.c
r17967r17968
241241   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
242242   MCFG_SCREEN_SIZE(256, 256)
243243   MCFG_SCREEN_VISIBLE_AREA(16,255,16, 255-16)
244   MCFG_SCREEN_UPDATE_STATIC(rollrace)
244   MCFG_SCREEN_UPDATE_DRIVER(rollrace_state, screen_update_rollrace)
245245
246246   MCFG_GFXDECODE(rollrace)
247247   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/mirage.c
r17967r17968
7777   virtual void machine_start();
7878   virtual void machine_reset();
7979   virtual void video_start();
80   UINT32 screen_update_mirage(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
8081};
8182
8283void miragemi_state::video_start()
r17967r17968
8485   machine().device<decospr_device>("spritegen")->alloc_sprite_bitmap();
8586}
8687
87static SCREEN_UPDATE_RGB32( mirage )
88UINT32 miragemi_state::screen_update_mirage(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
8889{
89   miragemi_state *state = screen.machine().driver_data<miragemi_state>();
9090   address_space &space = screen.machine().driver_data()->generic_space();
91   UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
91   UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff);
9292
93   state->flip_screen_set(BIT(flip, 7));
93   flip_screen_set(BIT(flip, 7));
9494
95   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram->buffer(), 0x400);
95   screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400);
9696
97   deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
97   deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
9898
9999   bitmap.fill(256, cliprect); /* not verified */
100100
101   deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
101   deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
102102   screen.machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0800, 0x0800, 0x200, 0x1ff);
103   deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
103   deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
104104   screen.machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0800, 0x200, 0x1ff);
105105
106106   return 0;
r17967r17968
331331   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
332332   MCFG_SCREEN_SIZE(40*8, 32*8)
333333   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
334   MCFG_SCREEN_UPDATE_STATIC(mirage)
334   MCFG_SCREEN_UPDATE_DRIVER(miragemi_state, screen_update_mirage)
335335   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
336336
337337
trunk/src/mame/drivers/popper.c
r17967r17968
357357   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
358358   MCFG_SCREEN_SIZE(33*8, 32*8)
359359   MCFG_SCREEN_VISIBLE_AREA(0*8, 33*8-1, 2*8, 30*8-1)
360   MCFG_SCREEN_UPDATE_STATIC(popper)
360   MCFG_SCREEN_UPDATE_DRIVER(popper_state, screen_update_popper)
361361
362362   MCFG_GFXDECODE(popper)
363363   MCFG_PALETTE_LENGTH(64)
trunk/src/mame/drivers/ladyfrog.c
r17967r17968
321321   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
322322   MCFG_SCREEN_SIZE(32*8, 32*8)
323323   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 29*8-1) // black borders in ladyfrog gameplay are correct
324   MCFG_SCREEN_UPDATE_STATIC(ladyfrog)
324   MCFG_SCREEN_UPDATE_DRIVER(ladyfrog_state, screen_update_ladyfrog)
325325
326326   MCFG_GFXDECODE(ladyfrog)
327327   MCFG_PALETTE_LENGTH(512)
trunk/src/mame/drivers/djboy.c
r17967r17968
595595   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
596596   MCFG_SCREEN_SIZE(256, 256)
597597   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1)
598   MCFG_SCREEN_UPDATE_STATIC(djboy)
599   MCFG_SCREEN_VBLANK_STATIC(djboy)
598   MCFG_SCREEN_UPDATE_DRIVER(djboy_state, screen_update_djboy)
599   MCFG_SCREEN_VBLANK_DRIVER(djboy_state, screen_eof_djboy)
600600
601601   MCFG_GFXDECODE(djboy)
602602   MCFG_PALETTE_LENGTH(0x200)
trunk/src/mame/drivers/sidearms.c
r17967r17968
670670   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
671671   MCFG_SCREEN_SIZE(64*8, 32*8)
672672   MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
673   MCFG_SCREEN_UPDATE_STATIC(sidearms)
673   MCFG_SCREEN_UPDATE_DRIVER(sidearms_state, screen_update_sidearms)
674674   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
675675
676676   MCFG_GFXDECODE(sidearms)
r17967r17968
714714   MCFG_SCREEN_SIZE(64*8, 32*8)
715715   MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
716716   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
717   MCFG_SCREEN_UPDATE_STATIC(sidearms)
717   MCFG_SCREEN_UPDATE_DRIVER(sidearms_state, screen_update_sidearms)
718718
719719   MCFG_GFXDECODE(turtship)
720720   MCFG_PALETTE_LENGTH(1024)
r17967r17968
759759   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
760760   MCFG_SCREEN_SIZE(64*8, 32*8)
761761   MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
762   MCFG_SCREEN_UPDATE_STATIC(sidearms)
762   MCFG_SCREEN_UPDATE_DRIVER(sidearms_state, screen_update_sidearms)
763763   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
764764
765765   MCFG_GFXDECODE(turtship)
trunk/src/mame/drivers/taito_x.c
r17967r17968
847847   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
848848   MCFG_SCREEN_SIZE(52*8, 32*8)
849849   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
850   MCFG_SCREEN_UPDATE_STATIC(seta_no_layers)
850   MCFG_SCREEN_UPDATE_DRIVER(taitox_state, screen_update_seta_no_layers)
851851
852852   MCFG_GFXDECODE(superman)
853853   MCFG_PALETTE_LENGTH(2048)
r17967r17968
889889   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
890890   MCFG_SCREEN_SIZE(52*8, 32*8)
891891   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
892   MCFG_SCREEN_UPDATE_STATIC(seta_no_layers)
892   MCFG_SCREEN_UPDATE_DRIVER(taitox_state, screen_update_seta_no_layers)
893893
894894   MCFG_GFXDECODE(superman)
895895   MCFG_PALETTE_LENGTH(2048)
r17967r17968
929929   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
930930   MCFG_SCREEN_SIZE(52*8, 32*8)
931931   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
932   MCFG_SCREEN_UPDATE_STATIC(seta_no_layers)
932   MCFG_SCREEN_UPDATE_DRIVER(taitox_state, screen_update_seta_no_layers)
933933
934934   MCFG_GFXDECODE(superman)
935935   MCFG_PALETTE_LENGTH(2048)
r17967r17968
971971   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
972972   MCFG_SCREEN_SIZE(52*8, 32*8)
973973   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
974   MCFG_SCREEN_UPDATE_STATIC(seta_no_layers)
974   MCFG_SCREEN_UPDATE_DRIVER(taitox_state, screen_update_seta_no_layers)
975975
976976   MCFG_GFXDECODE(ballbros)
977977   MCFG_PALETTE_LENGTH(2048)
trunk/src/mame/drivers/tumblep.c
r17967r17968
319319   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
320320   MCFG_SCREEN_SIZE(40*8, 32*8)
321321   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-2, 1*8, 31*8-1) // hmm
322   MCFG_SCREEN_UPDATE_STATIC(tumblep)
322   MCFG_SCREEN_UPDATE_DRIVER(tumblep_state, screen_update_tumblep)
323323
324324   MCFG_GFXDECODE(tumblep)
325325   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/dietgo.c
r17967r17968
220220   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
221221   MCFG_SCREEN_SIZE(40*8, 32*8)
222222   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
223   MCFG_SCREEN_UPDATE_STATIC(dietgo)
223   MCFG_SCREEN_UPDATE_DRIVER(dietgo_state, screen_update_dietgo)
224224
225225   MCFG_PALETTE_LENGTH(1024)
226226   MCFG_GFXDECODE(dietgo)
trunk/src/mame/drivers/kingobox.c
r17967r17968
497497   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
498498   MCFG_SCREEN_SIZE(32*8, 32*8)
499499   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
500   MCFG_SCREEN_UPDATE_STATIC(kingofb)
500   MCFG_SCREEN_UPDATE_DRIVER(kingofb_state, screen_update_kingofb)
501501
502502   MCFG_GFXDECODE(kingobox)
503503   MCFG_PALETTE_LENGTH(256+8*2)
r17967r17968
547547   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
548548   MCFG_SCREEN_SIZE(32*8, 32*8)
549549   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
550   MCFG_SCREEN_UPDATE_STATIC(ringking)
550   MCFG_SCREEN_UPDATE_DRIVER(kingofb_state, screen_update_ringking)
551551
552552   MCFG_GFXDECODE(rk)
553553   MCFG_PALETTE_LENGTH(256+8*2)
trunk/src/mame/drivers/esripsys.c
r17967r17968
716716   /* Video hardware */
717717   MCFG_SCREEN_ADD("screen", RASTER)
718718   MCFG_SCREEN_RAW_PARAMS(ESRIPSYS_PIXEL_CLOCK, ESRIPSYS_HTOTAL, ESRIPSYS_HBLANK_END, ESRIPSYS_HBLANK_START, ESRIPSYS_VTOTAL, ESRIPSYS_VBLANK_END, ESRIPSYS_VBLANK_START)
719   MCFG_SCREEN_UPDATE_STATIC(esripsys)
719   MCFG_SCREEN_UPDATE_DRIVER(esripsys_state, screen_update_esripsys)
720720
721721   MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
722722
trunk/src/mame/drivers/blockout.c
r17967r17968
322322   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
323323   MCFG_SCREEN_SIZE(320, 256)
324324   MCFG_SCREEN_VISIBLE_AREA(0, 319, 8, 247)
325   MCFG_SCREEN_UPDATE_STATIC(blockout)
325   MCFG_SCREEN_UPDATE_DRIVER(blockout_state, screen_update_blockout)
326326
327327   MCFG_PALETTE_LENGTH(513)
328328
trunk/src/mame/drivers/tsamurai.c
r17967r17968
696696   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
697697   MCFG_SCREEN_SIZE(32*8, 32*8)
698698   MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8)
699   MCFG_SCREEN_UPDATE_STATIC(tsamurai)
699   MCFG_SCREEN_UPDATE_DRIVER(tsamurai_state, screen_update_tsamurai)
700700
701701   MCFG_GFXDECODE(tsamurai)
702702   MCFG_PALETTE_LENGTH(256)
r17967r17968
736736   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
737737   MCFG_SCREEN_SIZE(32*8, 32*8)
738738   MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8)
739   MCFG_SCREEN_UPDATE_STATIC(vsgongf)
739   MCFG_SCREEN_UPDATE_DRIVER(tsamurai_state, screen_update_vsgongf)
740740
741741   MCFG_GFXDECODE(tsamurai)
742742   MCFG_PALETTE_LENGTH(256)
r17967r17968
780780   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
781781   MCFG_SCREEN_SIZE(32*8, 32*8)
782782   MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8)
783   MCFG_SCREEN_UPDATE_STATIC(tsamurai)
783   MCFG_SCREEN_UPDATE_DRIVER(tsamurai_state, screen_update_tsamurai)
784784
785785   MCFG_GFXDECODE(tsamurai)
786786   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/ettrivia.c
r17967r17968
6060   TILE_GET_INFO_MEMBER(get_tile_info_fg);
6161   virtual void video_start();
6262   virtual void palette_init();
63   UINT32 screen_update_ettrivia(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6364};
6465
6566
r17967r17968
260261   m_fg_tilemap->set_transparent_pen(0);
261262}
262263
263static SCREEN_UPDATE_IND16( ettrivia )
264UINT32 ettrivia_state::screen_update_ettrivia(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
264265{
265   ettrivia_state *state = screen.machine().driver_data<ettrivia_state>();
266   state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
267   state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
266   m_bg_tilemap->draw(bitmap, cliprect, 0,0);
267   m_fg_tilemap->draw(bitmap, cliprect, 0,0);
268268   return 0;
269269}
270270
r17967r17968
311311   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
312312   MCFG_SCREEN_SIZE(256, 256)
313313   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
314   MCFG_SCREEN_UPDATE_STATIC(ettrivia)
314   MCFG_SCREEN_UPDATE_DRIVER(ettrivia_state, screen_update_ettrivia)
315315
316316   MCFG_GFXDECODE(ettrivia)
317317   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/jalmah.c
r17967r17968
204204   virtual void machine_reset();
205205   virtual void video_start();
206206   DECLARE_VIDEO_START(urashima);
207   UINT32 screen_update_jalmah(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
208   UINT32 screen_update_urashima(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
207209};
208210
209211
r17967r17968
436438   }
437439}
438440
439static SCREEN_UPDATE_IND16( jalmah )
441UINT32 jalmah_state::screen_update_jalmah(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
440442{
441   jalmah_state *state = screen.machine().driver_data<jalmah_state>();
442   UINT16 *jm_scrollram = state->m_jm_scrollram;
443   UINT16 *jm_scrollram = m_jm_scrollram;
443444   UINT8 cur_prin;
444445   jalmah_priority_system(screen.machine());
445446
446   state->m_sc0_tilemap_0->set_scrollx(0, jm_scrollram[0] & 0xfff);
447   state->m_sc0_tilemap_1->set_scrollx(0, jm_scrollram[0] & 0x7ff);
448   state->m_sc0_tilemap_2->set_scrollx(0, jm_scrollram[0] & 0x3ff);
449   state->m_sc0_tilemap_3->set_scrollx(0, jm_scrollram[0] & 0x1ff);
447   m_sc0_tilemap_0->set_scrollx(0, jm_scrollram[0] & 0xfff);
448   m_sc0_tilemap_1->set_scrollx(0, jm_scrollram[0] & 0x7ff);
449   m_sc0_tilemap_2->set_scrollx(0, jm_scrollram[0] & 0x3ff);
450   m_sc0_tilemap_3->set_scrollx(0, jm_scrollram[0] & 0x1ff);
450451
451   state->m_sc1_tilemap_0->set_scrollx(0, jm_scrollram[1] & 0xfff);
452   state->m_sc1_tilemap_1->set_scrollx(0, jm_scrollram[1] & 0x7ff);
453   state->m_sc1_tilemap_2->set_scrollx(0, jm_scrollram[1] & 0x3ff);
454   state->m_sc1_tilemap_3->set_scrollx(0, jm_scrollram[1] & 0x1ff);
452   m_sc1_tilemap_0->set_scrollx(0, jm_scrollram[1] & 0xfff);
453   m_sc1_tilemap_1->set_scrollx(0, jm_scrollram[1] & 0x7ff);
454   m_sc1_tilemap_2->set_scrollx(0, jm_scrollram[1] & 0x3ff);
455   m_sc1_tilemap_3->set_scrollx(0, jm_scrollram[1] & 0x1ff);
455456
456   state->m_sc2_tilemap_0->set_scrollx(0, jm_scrollram[2] & 0xfff);
457   state->m_sc2_tilemap_1->set_scrollx(0, jm_scrollram[2] & 0x7ff);
458   state->m_sc2_tilemap_2->set_scrollx(0, jm_scrollram[2] & 0x3ff);
459   state->m_sc2_tilemap_3->set_scrollx(0, jm_scrollram[2] & 0x1ff);
457   m_sc2_tilemap_0->set_scrollx(0, jm_scrollram[2] & 0xfff);
458   m_sc2_tilemap_1->set_scrollx(0, jm_scrollram[2] & 0x7ff);
459   m_sc2_tilemap_2->set_scrollx(0, jm_scrollram[2] & 0x3ff);
460   m_sc2_tilemap_3->set_scrollx(0, jm_scrollram[2] & 0x1ff);
460461
461   state->m_sc3_tilemap_0->set_scrollx(0, jm_scrollram[3] & 0x7ff);
462   m_sc3_tilemap_0->set_scrollx(0, jm_scrollram[3] & 0x7ff);
462463//  empty
463   state->m_sc3_tilemap_2->set_scrollx(0, jm_scrollram[3] & 0x3ff);
464   state->m_sc3_tilemap_3->set_scrollx(0, jm_scrollram[3] & 0x1ff);
464   m_sc3_tilemap_2->set_scrollx(0, jm_scrollram[3] & 0x3ff);
465   m_sc3_tilemap_3->set_scrollx(0, jm_scrollram[3] & 0x1ff);
465466
466467
467   state->m_sc0_tilemap_0->set_scrolly(0, jm_scrollram[4] & 0x1ff);
468   state->m_sc0_tilemap_1->set_scrolly(0, jm_scrollram[4] & 0x3ff);
469   state->m_sc0_tilemap_2->set_scrolly(0, jm_scrollram[4] & 0x7ff);
470   state->m_sc0_tilemap_3->set_scrolly(0, jm_scrollram[4] & 0xfff);
468   m_sc0_tilemap_0->set_scrolly(0, jm_scrollram[4] & 0x1ff);
469   m_sc0_tilemap_1->set_scrolly(0, jm_scrollram[4] & 0x3ff);
470   m_sc0_tilemap_2->set_scrolly(0, jm_scrollram[4] & 0x7ff);
471   m_sc0_tilemap_3->set_scrolly(0, jm_scrollram[4] & 0xfff);
471472
472   state->m_sc1_tilemap_0->set_scrolly(0, jm_scrollram[5] & 0x1ff);
473   state->m_sc1_tilemap_1->set_scrolly(0, jm_scrollram[5] & 0x3ff);
474   state->m_sc1_tilemap_2->set_scrolly(0, jm_scrollram[5] & 0x7ff);
475   state->m_sc1_tilemap_3->set_scrolly(0, jm_scrollram[5] & 0xfff);
473   m_sc1_tilemap_0->set_scrolly(0, jm_scrollram[5] & 0x1ff);
474   m_sc1_tilemap_1->set_scrolly(0, jm_scrollram[5] & 0x3ff);
475   m_sc1_tilemap_2->set_scrolly(0, jm_scrollram[5] & 0x7ff);
476   m_sc1_tilemap_3->set_scrolly(0, jm_scrollram[5] & 0xfff);
476477
477   state->m_sc2_tilemap_0->set_scrolly(0, jm_scrollram[6] & 0x1ff);
478   state->m_sc2_tilemap_1->set_scrolly(0, jm_scrollram[6] & 0x3ff);
479   state->m_sc2_tilemap_2->set_scrolly(0, jm_scrollram[6] & 0x7ff);
480   state->m_sc2_tilemap_3->set_scrolly(0, jm_scrollram[6] & 0xfff);
478   m_sc2_tilemap_0->set_scrolly(0, jm_scrollram[6] & 0x1ff);
479   m_sc2_tilemap_1->set_scrolly(0, jm_scrollram[6] & 0x3ff);
480   m_sc2_tilemap_2->set_scrolly(0, jm_scrollram[6] & 0x7ff);
481   m_sc2_tilemap_3->set_scrolly(0, jm_scrollram[6] & 0xfff);
481482
482   state->m_sc3_tilemap_0->set_scrolly(0, jm_scrollram[7] & 0xff);
483   m_sc3_tilemap_0->set_scrolly(0, jm_scrollram[7] & 0xff);
483484//  empty
484   state->m_sc3_tilemap_2->set_scrolly(0, jm_scrollram[7] & 0x1ff);
485   state->m_sc3_tilemap_3->set_scrolly(0, jm_scrollram[7] & 0x3ff);
485   m_sc3_tilemap_2->set_scrolly(0, jm_scrollram[7] & 0x1ff);
486   m_sc3_tilemap_3->set_scrolly(0, jm_scrollram[7] & 0x3ff);
486487
487488   bitmap.fill(screen.machine().pens[0xff], cliprect); //selectable by a ram address?
488489
489490   for(cur_prin=1;cur_prin<=0x8;cur_prin<<=1)
490491   {
491      if(cur_prin==state->m_sc0_prin) { draw_sc0_layer(screen.machine(),bitmap,cliprect); }
492      if(cur_prin==state->m_sc1_prin) { draw_sc1_layer(screen.machine(),bitmap,cliprect); }
493      if(cur_prin==state->m_sc2_prin) { draw_sc2_layer(screen.machine(),bitmap,cliprect); }
494      if(cur_prin==state->m_sc3_prin) { draw_sc3_layer(screen.machine(),bitmap,cliprect); }
492      if(cur_prin==m_sc0_prin) { draw_sc0_layer(screen.machine(),bitmap,cliprect); }
493      if(cur_prin==m_sc1_prin) { draw_sc1_layer(screen.machine(),bitmap,cliprect); }
494      if(cur_prin==m_sc2_prin) { draw_sc2_layer(screen.machine(),bitmap,cliprect); }
495      if(cur_prin==m_sc3_prin) { draw_sc3_layer(screen.machine(),bitmap,cliprect); }
495496   }
496497
497498   return 0;
498499}
499500
500static SCREEN_UPDATE_IND16( urashima )
501UINT32 jalmah_state::screen_update_urashima(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
501502{
502   jalmah_state *state = screen.machine().driver_data<jalmah_state>();
503   UINT16 *jm_scrollram = state->m_jm_scrollram;
503   UINT16 *jm_scrollram = m_jm_scrollram;
504504   /*this game doesn't use the RANGE register at all.*/
505   state->m_sc0_tilemap_0->set_scrollx(0, jm_scrollram[0]);
506   state->m_sc3_tilemap_0->set_scrollx(0, jm_scrollram[3]);
507   state->m_sc0_tilemap_0->set_scrolly(0, jm_scrollram[4]);
508   state->m_sc3_tilemap_0->set_scrolly(0, jm_scrollram[7]);
505   m_sc0_tilemap_0->set_scrollx(0, jm_scrollram[0]);
506   m_sc3_tilemap_0->set_scrollx(0, jm_scrollram[3]);
507   m_sc0_tilemap_0->set_scrolly(0, jm_scrollram[4]);
508   m_sc3_tilemap_0->set_scrolly(0, jm_scrollram[7]);
509509
510510   bitmap.fill(screen.machine().pens[0x1ff], cliprect);//selectable by a ram address?
511   if(state->m_jm_vregs[0] & 1) { state->m_sc0_tilemap_0->draw(bitmap, cliprect, 0,0); }
512   if(state->m_jm_vregs[3] & 1) { state->m_sc3_tilemap_0->draw(bitmap, cliprect, 0,0); }
511   if(m_jm_vregs[0] & 1) { m_sc0_tilemap_0->draw(bitmap, cliprect, 0,0); }
512   if(m_jm_vregs[3] & 1) { m_sc3_tilemap_0->draw(bitmap, cliprect, 0,0); }
513513   return 0;
514514}
515515
r17967r17968
14171417   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
14181418   MCFG_SCREEN_SIZE(32*8, 32*8)
14191419   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1420   MCFG_SCREEN_UPDATE_STATIC(jalmah)
1420   MCFG_SCREEN_UPDATE_DRIVER(jalmah_state, screen_update_jalmah)
14211421
14221422   MCFG_PALETTE_LENGTH(0x400)
14231423
r17967r17968
14381438
14391439   MCFG_VIDEO_START_OVERRIDE(jalmah_state,urashima)
14401440   MCFG_SCREEN_MODIFY("screen")
1441   MCFG_SCREEN_UPDATE_STATIC(urashima)
1441   MCFG_SCREEN_UPDATE_DRIVER(jalmah_state, screen_update_urashima)
14421442MACHINE_CONFIG_END
14431443
14441444/*
trunk/src/mame/drivers/f1gp.c
r17967r17968
471471   MCFG_SCREEN_REFRESH_RATE(60)
472472   MCFG_SCREEN_SIZE(64*8, 32*8)
473473   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
474   MCFG_SCREEN_UPDATE_STATIC(f1gp)
474   MCFG_SCREEN_UPDATE_DRIVER(f1gp_state, screen_update_f1gp)
475475
476476   MCFG_GFXDECODE(f1gp)
477477   MCFG_PALETTE_LENGTH(2048)
r17967r17968
514514   MCFG_SCREEN_REFRESH_RATE(60)
515515   MCFG_SCREEN_SIZE(64*8, 32*8)
516516   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
517   MCFG_SCREEN_UPDATE_STATIC(f1gpb)
517   MCFG_SCREEN_UPDATE_DRIVER(f1gp_state, screen_update_f1gpb)
518518
519519   MCFG_GFXDECODE(f1gp)
520520   MCFG_PALETTE_LENGTH(2048)
r17967r17968
540540   MCFG_GFXDECODE(f1gp2)
541541   MCFG_SCREEN_MODIFY("screen")
542542   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
543   MCFG_SCREEN_UPDATE_STATIC(f1gp2)
543   MCFG_SCREEN_UPDATE_DRIVER(f1gp_state, screen_update_f1gp2)
544544
545545   MCFG_DEVICE_REMOVE("k053936")
546546   MCFG_K053936_ADD("k053936", f1gp2_k053936_intf)
trunk/src/mame/drivers/supdrapo.c
r17967r17968
9090   virtual void machine_reset();
9191   virtual void video_start();
9292   virtual void palette_init();
93   UINT32 screen_update_supdrapo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
9394};
9495
9596
r17967r17968
102103}
103104
104105
105static SCREEN_UPDATE_IND16( supdrapo )
106UINT32 supdrapo_state::screen_update_supdrapo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
106107{
107   supdrapo_state *state = screen.machine().driver_data<supdrapo_state>();
108108   int x, y;
109109   int count;
110110   int color;
r17967r17968
115115   {
116116      for(x = 0; x < 32; x++)
117117      {
118         int tile = state->m_videoram[count] + state->m_char_bank[count] * 0x100;
118         int tile = m_videoram[count] + m_char_bank[count] * 0x100;
119119         /* Global Column Coloring, GUESS! */
120         color = state->m_col_line[(x*2) + 1] ? (state->m_col_line[(x*2) + 1] - 1) & 7 : 0;
120         color = m_col_line[(x*2) + 1] ? (m_col_line[(x*2) + 1] - 1) & 7 : 0;
121121
122122         drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], tile,color, 0, 0, x*8, y*8);
123123
r17967r17968
456456   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
457457   MCFG_SCREEN_SIZE(256, 256)
458458   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
459   MCFG_SCREEN_UPDATE_STATIC(supdrapo)
459   MCFG_SCREEN_UPDATE_DRIVER(supdrapo_state, screen_update_supdrapo)
460460
461461   MCFG_GFXDECODE(supdrapo)
462462   MCFG_PALETTE_LENGTH(0x100)
trunk/src/mame/drivers/lvcards.c
r17967r17968
474474   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
475475   MCFG_SCREEN_SIZE(32*8, 32*8)
476476   MCFG_SCREEN_VISIBLE_AREA(8*0, 32*8-1, 2*8, 30*8-1)
477   MCFG_SCREEN_UPDATE_STATIC(lvcards)
477   MCFG_SCREEN_UPDATE_DRIVER(lvcards_state, screen_update_lvcards)
478478
479479   MCFG_GFXDECODE(lvcards)
480480   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/exzisus.c
r17967r17968
295295   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
296296   MCFG_SCREEN_SIZE(32*8, 32*8)
297297   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
298   MCFG_SCREEN_UPDATE_STATIC(exzisus)
298   MCFG_SCREEN_UPDATE_DRIVER(exzisus_state, screen_update_exzisus)
299299
300300   MCFG_GFXDECODE(exzisus)
301301   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/tx1.c
r17967r17968
715715
716716   MCFG_SCREEN_ADD("lscreen", RASTER)
717717   MCFG_SCREEN_RAW_PARAMS(TX1_PIXEL_CLOCK, TX1_HTOTAL, TX1_HBEND, TX1_HBSTART, TX1_VTOTAL, TX1_VBEND, TX1_VBSTART)
718   MCFG_SCREEN_UPDATE_STATIC(tx1_left)
718   MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_tx1_left)
719719
720720   MCFG_SCREEN_ADD("cscreen", RASTER)
721721   MCFG_SCREEN_RAW_PARAMS(TX1_PIXEL_CLOCK, TX1_HTOTAL, TX1_HBEND, TX1_HBSTART, TX1_VTOTAL, TX1_VBEND, TX1_VBSTART)
722   MCFG_SCREEN_UPDATE_STATIC(tx1_middle)
722   MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_tx1_middle)
723723
724724   MCFG_SCREEN_ADD("rscreen", RASTER)
725725   MCFG_SCREEN_RAW_PARAMS(TX1_PIXEL_CLOCK, TX1_HTOTAL, TX1_HBEND, TX1_HBSTART, TX1_VTOTAL, TX1_VBEND, TX1_VBSTART)
726   MCFG_SCREEN_UPDATE_STATIC(tx1_right)
727   MCFG_SCREEN_VBLANK_STATIC(tx1)
726   MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_tx1_right)
727   MCFG_SCREEN_VBLANK_DRIVER(tx1_state, screen_eof_tx1)
728728
729729   MCFG_VIDEO_START_OVERRIDE(tx1_state,tx1)
730730
r17967r17968
765765
766766   MCFG_SCREEN_ADD("lscreen", RASTER)
767767   MCFG_SCREEN_RAW_PARAMS(BB_PIXEL_CLOCK, BB_HTOTAL, BB_HBEND, BB_HBSTART, BB_VTOTAL, BB_VBEND, BB_VBSTART)
768   MCFG_SCREEN_UPDATE_STATIC(buggyboy_left)
768   MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_buggyboy_left)
769769
770770   MCFG_SCREEN_ADD("cscreen", RASTER)
771771   MCFG_SCREEN_RAW_PARAMS(BB_PIXEL_CLOCK, BB_HTOTAL, BB_HBEND, BB_HBSTART, BB_VTOTAL, BB_VBEND, BB_VBSTART)
772   MCFG_SCREEN_UPDATE_STATIC(buggyboy_middle)
772   MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_buggyboy_middle)
773773
774774   MCFG_SCREEN_ADD("rscreen", RASTER)
775775   MCFG_SCREEN_RAW_PARAMS(BB_PIXEL_CLOCK, BB_HTOTAL, BB_HBEND, BB_HBSTART, BB_VTOTAL, BB_VBEND, BB_VBSTART)
776   MCFG_SCREEN_UPDATE_STATIC(buggyboy_right)
777   MCFG_SCREEN_VBLANK_STATIC(buggyboy)
776   MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_buggyboy_right)
777   MCFG_SCREEN_VBLANK_DRIVER(tx1_state, screen_eof_buggyboy)
778778
779779   MCFG_PALETTE_LENGTH(256)
780780   MCFG_PALETTE_INIT_OVERRIDE(tx1_state,buggyboy)
r17967r17968
815815
816816   MCFG_SCREEN_ADD("screen", RASTER)
817817   MCFG_SCREEN_RAW_PARAMS(BB_PIXEL_CLOCK, BB_HTOTAL, BB_HBEND, BB_HBSTART, BB_VTOTAL, BB_VBEND, BB_VBSTART)
818   MCFG_SCREEN_UPDATE_STATIC(buggybjr)
819   MCFG_SCREEN_VBLANK_STATIC(buggyboy)
818   MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_buggybjr)
819   MCFG_SCREEN_VBLANK_DRIVER(tx1_state, screen_eof_buggyboy)
820820
821821   MCFG_PALETTE_LENGTH(256)
822822   MCFG_PALETTE_INIT_OVERRIDE(tx1_state,buggyboy)
trunk/src/mame/drivers/pingpong.c
r17967r17968
472472   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
473473   MCFG_SCREEN_SIZE(456, 262)
474474   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
475   MCFG_SCREEN_UPDATE_STATIC(pingpong)
475   MCFG_SCREEN_UPDATE_DRIVER(pingpong_state, screen_update_pingpong)
476476
477477   MCFG_GFXDECODE(pingpong)
478478   MCFG_PALETTE_LENGTH(64*4+64*4)
trunk/src/mame/drivers/ssrj.c
r17967r17968
152152   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
153153   MCFG_SCREEN_SIZE(40*8, 32*8)
154154   MCFG_SCREEN_VISIBLE_AREA(0*8, 34*8-1, 1*8, 31*8-1) // unknown res
155   MCFG_SCREEN_UPDATE_STATIC(ssrj)
156   MCFG_SCREEN_VBLANK_STATIC(ssrj)
155   MCFG_SCREEN_UPDATE_DRIVER(ssrj_state, screen_update_ssrj)
156   MCFG_SCREEN_VBLANK_DRIVER(ssrj_state, screen_eof_ssrj)
157157
158158   MCFG_GFXDECODE(ssrj)
159159   MCFG_PALETTE_LENGTH(128)
trunk/src/mame/drivers/blstroid.c
r17967r17968
219219   /* note: these parameters are from published specs, not derived */
220220   /* the board uses an SOS-2 chip to generate video signals */
221221   MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz, 456*2, 0, 320*2, 262, 0, 240)
222   MCFG_SCREEN_UPDATE_STATIC(blstroid)
222   MCFG_SCREEN_UPDATE_DRIVER(blstroid_state, screen_update_blstroid)
223223
224224   MCFG_VIDEO_START_OVERRIDE(blstroid_state,blstroid)
225225
trunk/src/mame/drivers/gotya.c
r17967r17968
204204   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
205205   MCFG_SCREEN_SIZE(36*8, 32*8)
206206   MCFG_SCREEN_VISIBLE_AREA(0, 36*8-1, 2*8, 30*8-1)
207   MCFG_SCREEN_UPDATE_STATIC(gotya)
207   MCFG_SCREEN_UPDATE_DRIVER(gotya_state, screen_update_gotya)
208208
209209   MCFG_GFXDECODE(gotya)
210210   MCFG_PALETTE_LENGTH(16*4)
trunk/src/mame/drivers/cchance.c
r17967r17968
236236   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
237237   MCFG_SCREEN_SIZE(32*8, 32*8)
238238   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
239   MCFG_SCREEN_UPDATE_STATIC(tnzs)
240   MCFG_SCREEN_VBLANK_STATIC(tnzs)
239   MCFG_SCREEN_UPDATE_DRIVER(cchance_state, screen_update_tnzs)
240   MCFG_SCREEN_VBLANK_DRIVER(cchance_state, screen_eof_tnzs)
241241
242242   MCFG_PALETTE_LENGTH(512)
243243   MCFG_PALETTE_INIT_OVERRIDE(cchance_state,arknoid2)
trunk/src/mame/drivers/retofinv.c
r17967r17968
388388   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
389389   MCFG_SCREEN_SIZE(36*8, 28*8)
390390   MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
391   MCFG_SCREEN_UPDATE_STATIC(retofinv)
391   MCFG_SCREEN_UPDATE_DRIVER(retofinv_state, screen_update_retofinv)
392392
393393   MCFG_GFXDECODE(retofinv)
394394   MCFG_PALETTE_LENGTH(256*2+64*16+64*16)
trunk/src/mame/drivers/dotrikun.c
r17967r17968
3939   DECLARE_WRITE8_MEMBER(dotrikun_color_w);
4040   virtual void machine_start();
4141   virtual void machine_reset();
42   UINT32 screen_update_dotrikun(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
4243};
4344
4445
r17967r17968
6263}
6364
6465
65static SCREEN_UPDATE_RGB32( dotrikun )
66UINT32 dotrikun_state::screen_update_dotrikun(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
6667{
67   dotrikun_state *state = screen.machine().driver_data<dotrikun_state>();
6868   int x,y,i;
6969
70   pen_t back_pen = MAKE_RGB(pal1bit(state->m_color >> 3), pal1bit(state->m_color >> 4), pal1bit(state->m_color >> 5));
71   pen_t fore_pen = MAKE_RGB(pal1bit(state->m_color >> 0), pal1bit(state->m_color >> 1), pal1bit(state->m_color >> 2));
70   pen_t back_pen = MAKE_RGB(pal1bit(m_color >> 3), pal1bit(m_color >> 4), pal1bit(m_color >> 5));
71   pen_t fore_pen = MAKE_RGB(pal1bit(m_color >> 0), pal1bit(m_color >> 1), pal1bit(m_color >> 2));
7272
7373   for(y = (cliprect.min_y & ~1); y < cliprect.max_y; y+=2)
7474   {
7575      for (x = 0; x < 256; x+=16)
7676      {
77         UINT8 data = state->m_dotrikun_bitmap[((x/16)+((y/2)*16))];
77         UINT8 data = m_dotrikun_bitmap[((x/16)+((y/2)*16))];
7878
7979         for (i = 0; i < 8; i++)
8080         {
r17967r17968
161161   /* video hardware */
162162   MCFG_SCREEN_ADD("screen", RASTER)
163163   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"
164   MCFG_SCREEN_UPDATE_STATIC(dotrikun)
164   MCFG_SCREEN_UPDATE_DRIVER(dotrikun_state, screen_update_dotrikun)
165165
166166   /* sound hardware */
167167MACHINE_CONFIG_END
trunk/src/mame/drivers/meadows.c
r17967r17968
658658   MCFG_SCREEN_REFRESH_RATE(60)
659659   MCFG_SCREEN_SIZE(32*8, 30*8)
660660   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
661   MCFG_SCREEN_UPDATE_STATIC(meadows)
661   MCFG_SCREEN_UPDATE_DRIVER(meadows_state, screen_update_meadows)
662662
663663   MCFG_GFXDECODE(meadows)
664664   MCFG_PALETTE_LENGTH(2)
r17967r17968
688688   MCFG_SCREEN_REFRESH_RATE(60)
689689   MCFG_SCREEN_SIZE(32*8, 32*8)
690690   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 24*8-1)
691   MCFG_SCREEN_UPDATE_STATIC(meadows)
691   MCFG_SCREEN_UPDATE_DRIVER(meadows_state, screen_update_meadows)
692692
693693   MCFG_GFXDECODE(minferno)
694694   MCFG_PALETTE_LENGTH(2)
r17967r17968
715715   MCFG_SCREEN_REFRESH_RATE(60)
716716   MCFG_SCREEN_SIZE(32*8, 30*8)
717717   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
718   MCFG_SCREEN_UPDATE_STATIC(meadows)
718   MCFG_SCREEN_UPDATE_DRIVER(meadows_state, screen_update_meadows)
719719
720720   MCFG_GFXDECODE(meadows)
721721   MCFG_PALETTE_LENGTH(2)
trunk/src/mame/drivers/sms.c
r17967r17968
245245   virtual void video_start();
246246   virtual void palette_init();
247247   DECLARE_MACHINE_START(sureshot);
248   UINT32 screen_update_sms(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
248249};
249250
250251
r17967r17968
480481   state_save_register_global_bitmap(machine(), &m_bitmap);
481482}
482483
483static SCREEN_UPDATE_IND16( sms )
484UINT32 smsmfg_state::screen_update_sms(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
484485{
485   smsmfg_state *state = screen.machine().driver_data<smsmfg_state>();
486   copybitmap(bitmap, state->m_bitmap, 0, 0, 0, 0, cliprect);
486   copybitmap(bitmap, m_bitmap, 0, 0, 0, 0, cliprect);
487487   return 0;
488488}
489489
r17967r17968
578578   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
579579   MCFG_SCREEN_SIZE(0x1b0, 0x100)
580580   MCFG_SCREEN_VISIBLE_AREA(0, 0x1af, 0, 0xff)
581   MCFG_SCREEN_UPDATE_STATIC(sms)
581   MCFG_SCREEN_UPDATE_DRIVER(smsmfg_state, screen_update_sms)
582582
583583   MCFG_PALETTE_LENGTH(8)
584584
trunk/src/mame/drivers/spoker.c
r17967r17968
5858   TILE_GET_INFO_MEMBER(get_fg_tile_info);
5959   virtual void machine_reset();
6060   virtual void video_start();
61   UINT32 screen_update_spoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6162};
6263
6364WRITE8_MEMBER(spoker_state::bg_tile_w)
r17967r17968
101102   m_fg_tilemap->set_transparent_pen(0);
102103}
103104
104static SCREEN_UPDATE_IND16(spoker)
105UINT32 spoker_state::screen_update_spoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
105106{
106   spoker_state *state = screen.machine().driver_data<spoker_state>();
107107
108108   bitmap.fill(get_black_pen(screen.machine()), cliprect);
109   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
110   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
109   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
110   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
111111   return 0;
112112}
113113
r17967r17968
543543   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
544544   MCFG_SCREEN_SIZE(512, 256)
545545   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-16-1)
546   MCFG_SCREEN_UPDATE_STATIC(spoker)
546   MCFG_SCREEN_UPDATE_DRIVER(spoker_state, screen_update_spoker)
547547
548548   MCFG_GFXDECODE(spoker)
549549   MCFG_PALETTE_LENGTH(0x400)
trunk/src/mame/drivers/srmp2.c
r17967r17968
11791179   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
11801180   MCFG_SCREEN_SIZE(464, 256-16)
11811181   MCFG_SCREEN_VISIBLE_AREA(16, 464-1, 8, 256-1-24)
1182   MCFG_SCREEN_UPDATE_STATIC(srmp2)      /* just draw the sprites */
1182   MCFG_SCREEN_UPDATE_DRIVER(srmp2_state, screen_update_srmp2)
11831183
11841184   MCFG_GFXDECODE(srmp2)
11851185   MCFG_PALETTE_LENGTH(1024)   /* sprites only */
r17967r17968
12201220   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
12211221   MCFG_SCREEN_SIZE(400, 256-16)
12221222   MCFG_SCREEN_VISIBLE_AREA(16, 400-1, 8, 256-1-24)
1223   MCFG_SCREEN_UPDATE_STATIC(srmp3)   /* just draw the sprites */
1223   MCFG_SCREEN_UPDATE_DRIVER(srmp2_state, screen_update_srmp3)
12241224
12251225   MCFG_GFXDECODE(srmp3)
12261226   MCFG_PALETTE_LENGTH(512)   /* sprites only */
r17967r17968
12701270   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
12711271   MCFG_SCREEN_SIZE(400, 256-16)
12721272   MCFG_SCREEN_VISIBLE_AREA(16, 400-1, 0, 256-1-16)
1273   MCFG_SCREEN_UPDATE_STATIC(mjyuugi)         /* just draw the sprites */
1273   MCFG_SCREEN_UPDATE_DRIVER(srmp2_state, screen_update_mjyuugi)
12741274
12751275   MCFG_GFXDECODE(srmp3)
12761276   MCFG_PALETTE_LENGTH(512)         /* sprites only */
trunk/src/mame/drivers/ohmygod.c
r17967r17968
330330   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
331331   MCFG_SCREEN_SIZE(64*8, 32*8)
332332   MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 0*8, 30*8-1 )
333   MCFG_SCREEN_UPDATE_STATIC(ohmygod)
333   MCFG_SCREEN_UPDATE_DRIVER(ohmygod_state, screen_update_ohmygod)
334334
335335   MCFG_GFXDECODE(ohmygod)
336336   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/snk68.c
r17967r17968
605605   // give a theoretical refresh rate of 59.1856Hz while the measured
606606   // rate on a SAR board is 59.16Hz.
607607   MCFG_SCREEN_RAW_PARAMS(XTAL_24MHz/4, 384, 0, 256, 264, 16, 240)
608   MCFG_SCREEN_UPDATE_STATIC(pow)
608   MCFG_SCREEN_UPDATE_DRIVER(snk68_state, screen_update_pow)
609609
610610   MCFG_GFXDECODE(pow)
611611   MCFG_PALETTE_LENGTH(0x800)
trunk/src/mame/drivers/aeroboto.c
r17967r17968
265265   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
266266   MCFG_SCREEN_SIZE(32*8, 32*8)
267267   MCFG_SCREEN_VISIBLE_AREA(0*8, 31*8-1, 2*8, 30*8-1)
268   MCFG_SCREEN_UPDATE_STATIC(aeroboto)
268   MCFG_SCREEN_UPDATE_DRIVER(aeroboto_state, screen_update_aeroboto)
269269
270270   MCFG_GFXDECODE(aeroboto)
271271
trunk/src/mame/drivers/firetrap.c
r17967r17968
657657   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
658658   MCFG_SCREEN_SIZE(32*8, 32*8)
659659   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
660   MCFG_SCREEN_UPDATE_STATIC(firetrap)
660   MCFG_SCREEN_UPDATE_DRIVER(firetrap_state, screen_update_firetrap)
661661
662662   MCFG_GFXDECODE(firetrap)
663663   MCFG_PALETTE_LENGTH(256)
r17967r17968
697697   MCFG_GFXDECODE(firetrap)
698698   MCFG_PALETTE_LENGTH(256)
699699
700   MCFG_SCREEN_UPDATE_STATIC(firetrap)
700   MCFG_SCREEN_UPDATE_DRIVER(firetrap_state, screen_update_firetrap)
701701
702702   /* sound hardware */
703703   MCFG_SPEAKER_STANDARD_MONO("mono")
trunk/src/mame/drivers/thedeep.c
r17967r17968
468468   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
469469   MCFG_SCREEN_SIZE(0x100, 0xf8)
470470   MCFG_SCREEN_VISIBLE_AREA(0, 0x100-1, 0, 0xf8-1)
471   MCFG_SCREEN_UPDATE_STATIC(thedeep)
471   MCFG_SCREEN_UPDATE_DRIVER(thedeep_state, screen_update_thedeep)
472472
473473   MCFG_GFXDECODE(thedeep)
474474   MCFG_PALETTE_LENGTH(512)
trunk/src/mame/drivers/oneshot.c
r17967r17968
384384   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
385385   MCFG_SCREEN_SIZE(32*16, 32*16)
386386   MCFG_SCREEN_VISIBLE_AREA(0*16, 20*16-1, 0*16, 15*16-1)
387   MCFG_SCREEN_UPDATE_STATIC(oneshot)
387   MCFG_SCREEN_UPDATE_DRIVER(oneshot_state, screen_update_oneshot)
388388
389389   MCFG_GFXDECODE(oneshot)
390390   MCFG_PALETTE_LENGTH(0x400)
r17967r17968
406406
407407   /* video hardware */
408408   MCFG_SCREEN_MODIFY("screen")
409   MCFG_SCREEN_UPDATE_STATIC(maddonna) // no crosshair
409   MCFG_SCREEN_UPDATE_DRIVER(oneshot_state, screen_update_maddonna)
410410MACHINE_CONFIG_END
411411
412412
trunk/src/mame/drivers/stlforce.c
r17967r17968
201201   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
202202   MCFG_SCREEN_SIZE(64*8, 32*8)
203203   MCFG_SCREEN_VISIBLE_AREA(1*8, 47*8-1, 0*8, 30*8-1)
204   MCFG_SCREEN_UPDATE_STATIC(stlforce)
204   MCFG_SCREEN_UPDATE_DRIVER(stlforce_state, screen_update_stlforce)
205205
206206   MCFG_GFXDECODE(stlforce)
207207   MCFG_PALETTE_LENGTH(0x800)
trunk/src/mame/drivers/zr107.c
r17967r17968
205205   virtual void machine_reset();
206206   DECLARE_VIDEO_START(zr107);
207207   DECLARE_VIDEO_START(jetwave);
208   UINT32 screen_update_zr107(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
209   UINT32 screen_update_jetwave(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
208210};
209211
210212
r17967r17968
218220}
219221
220222
221static SCREEN_UPDATE_RGB32( jetwave )
223UINT32 zr107_state::screen_update_jetwave(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
222224{
223   zr107_state *state = screen.machine().driver_data<zr107_state>();
224225   device_t *k001604 = screen.machine().device("k001604");
225226
226227   bitmap.fill(screen.machine().pens[0], cliprect);
r17967r17968
229230
230231   k001604_draw_front_layer(k001604, bitmap, cliprect);
231232
232   draw_7segment_led(bitmap, 3, 3, state->m_led_reg0);
233   draw_7segment_led(bitmap, 9, 3, state->m_led_reg1);
233   draw_7segment_led(bitmap, 3, 3, m_led_reg0);
234   draw_7segment_led(bitmap, 9, 3, m_led_reg1);
234235
235236   sharc_set_flag_input(screen.machine().device("dsp"), 1, ASSERT_LINE);
236237   return 0;
r17967r17968
271272   K001005_init(machine());
272273}
273274
274static SCREEN_UPDATE_RGB32( zr107 )
275UINT32 zr107_state::screen_update_zr107(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
275276{
276   zr107_state *state = screen.machine().driver_data<zr107_state>();
277277   device_t *k056832 = screen.machine().device("k056832");
278278   bitmap.fill(screen.machine().pens[0], cliprect);
279279
r17967r17968
281281   K001005_draw(bitmap, cliprect);
282282   k056832_tilemap_draw(k056832, bitmap, cliprect, 0, 0, 0);
283283
284   draw_7segment_led(bitmap, 3, 3, state->m_led_reg0);
285   draw_7segment_led(bitmap, 9, 3, state->m_led_reg1);
284   draw_7segment_led(bitmap, 3, 3, m_led_reg0);
285   draw_7segment_led(bitmap, 9, 3, m_led_reg1);
286286
287287   sharc_set_flag_input(screen.machine().device("dsp"), 1, ASSERT_LINE);
288288   return 0;
r17967r17968
751751   MCFG_SCREEN_REFRESH_RATE(60)
752752   MCFG_SCREEN_SIZE(64*8, 48*8)
753753   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 48*8-1)
754   MCFG_SCREEN_UPDATE_STATIC(zr107)
754   MCFG_SCREEN_UPDATE_DRIVER(zr107_state, screen_update_zr107)
755755
756756   MCFG_PALETTE_LENGTH(65536)
757757
r17967r17968
807807   MCFG_SCREEN_REFRESH_RATE(60)
808808   MCFG_SCREEN_SIZE(64*8, 48*8)
809809   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 48*8-1)
810   MCFG_SCREEN_UPDATE_STATIC(jetwave)
810   MCFG_SCREEN_UPDATE_DRIVER(zr107_state, screen_update_jetwave)
811811
812812   MCFG_PALETTE_LENGTH(65536)
813813
trunk/src/mame/drivers/flipjack.c
r17967r17968
122122   DECLARE_WRITE8_MEMBER(flipjack_portc_w);
123123   virtual void machine_start();
124124   virtual void palette_init();
125   UINT32 screen_update_flipjack(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
125126};
126127
127128
r17967r17968
147148}
148149
149150
150static SCREEN_UPDATE_RGB32( flipjack )
151UINT32 flipjack_state::screen_update_flipjack(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
151152{
152   flipjack_state *state = screen.machine().driver_data<flipjack_state>();
153153   int x,y,count;
154154
155155   bitmap.fill(get_black_pen(screen.machine()), cliprect);
156156
157157   // draw playfield
158   if (state->m_layer & 2)
158   if (m_layer & 2)
159159   {
160      const UINT8 *blit_data = state->memregion("gfx2")->base();
160      const UINT8 *blit_data = memregion("gfx2")->base();
161161
162162      count = 0;
163163
r17967r17968
194194      for (x=0;x<32;x++)
195195      {
196196         gfx_element *gfx = screen.machine().gfx[0];
197         int tile = state->m_bank << 8 | state->m_vram[x+y*0x100];
198         int color = state->m_cram[x+y*0x100] & 0x3f;
197         int tile = m_bank << 8 | m_vram[x+y*0x100];
198         int color = m_cram[x+y*0x100] & 0x3f;
199199
200200         drawgfx_transpen(bitmap, cliprect, gfx, tile, color, 0, 0, x*8, y*8, 0);
201201      }
202202   }
203203
204204   // draw framebuffer
205   if (state->m_layer & 4)
205   if (m_layer & 4)
206206   {
207207      count = 0;
208208
r17967r17968
213213            UINT32 pen,color;
214214            int xi;
215215
216            pen = (state->m_fbram[count] & 0xff)>>0;
216            pen = (m_fbram[count] & 0xff)>>0;
217217
218218            for(xi=0;xi<8;xi++)
219219            {
r17967r17968
491491   /* video hardware */
492492   MCFG_SCREEN_ADD("screen", RASTER)
493493   MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK, 0x188, 0, 0x100, 0x100, 0, 0xc0) // from crtc
494   MCFG_SCREEN_UPDATE_STATIC(flipjack)
494   MCFG_SCREEN_UPDATE_DRIVER(flipjack_state, screen_update_flipjack)
495495
496496   MCFG_MC6845_ADD("crtc", HD6845, VIDEO_CLOCK/8, mc6845_intf)
497497
trunk/src/mame/drivers/dominob.c
r17967r17968
8585   DECLARE_WRITE8_MEMBER(dominob_d008_w);
8686   DECLARE_READ8_MEMBER(dominob_unk_port02_r);
8787   virtual void video_start();
88   UINT32 screen_update_dominob(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8889};
8990
9091void dominob_state::video_start()
r17967r17968
122123}
123124
124125
125static SCREEN_UPDATE_IND16( dominob )
126UINT32 dominob_state::screen_update_dominob(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
126127{
127   dominob_state *state = screen.machine().driver_data<dominob_state>();
128128   int x,y;
129129   int index = 0;
130130
r17967r17968
136136         drawgfx_opaque(bitmap,
137137               cliprect,
138138               screen.machine().gfx[1],
139               state->m_bgram[index] + 256 * (state->m_bgram[index + 1] & 0xf),
140               state->m_bgram[index + 1] >> 4,
139               m_bgram[index] + 256 * (m_bgram[index + 1] & 0xf),
140               m_bgram[index + 1] >> 4,
141141               0, 0,
142142               x * 32, y * 32);
143143         index += 2;
r17967r17968
151151         drawgfx_transpen(   bitmap,
152152               cliprect,
153153               screen.machine().gfx[0],
154               state->m_videoram[(y * 32 + x) * 2 + 1] + (state->m_videoram[(y * 32 + x) * 2] & 7) * 256,
155               (state->m_videoram[(y * 32 + x) * 2] >> 3),
154               m_videoram[(y * 32 + x) * 2 + 1] + (m_videoram[(y * 32 + x) * 2] & 7) * 256,
155               (m_videoram[(y * 32 + x) * 2] >> 3),
156156               0, 0,
157157               x * 8, y * 8,0);
158158      }
r17967r17968
307307   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
308308   MCFG_SCREEN_SIZE(32*8, 32*8)
309309   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 32*8-1)
310   MCFG_SCREEN_UPDATE_STATIC(dominob)
310   MCFG_SCREEN_UPDATE_DRIVER(dominob_state, screen_update_dominob)
311311
312312   MCFG_GFXDECODE(dominob)
313313   MCFG_PALETTE_LENGTH(512)
trunk/src/mame/drivers/sbrkout.c
r17967r17968
6666   virtual void machine_start();
6767   virtual void machine_reset();
6868   virtual void video_start();
69   UINT32 screen_update_sbrkout(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6970};
7071
7172
r17967r17968
327328 *
328329 *************************************/
329330
330static SCREEN_UPDATE_IND16( sbrkout )
331UINT32 sbrkout_state::screen_update_sbrkout(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
331332{
332   sbrkout_state *state = screen.machine().driver_data<sbrkout_state>();
333   UINT8 *videoram = state->m_videoram;
333   UINT8 *videoram = m_videoram;
334334   int ball;
335335
336   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
336   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
337337
338338   for (ball = 2; ball >= 0; ball--)
339339   {
r17967r17968
514514
515515   MCFG_SCREEN_ADD("screen", RASTER)
516516   MCFG_SCREEN_RAW_PARAMS(MAIN_CLOCK/2, 384, 0, 256, 262, 0, 224)
517   MCFG_SCREEN_UPDATE_STATIC(sbrkout)
517   MCFG_SCREEN_UPDATE_DRIVER(sbrkout_state, screen_update_sbrkout)
518518
519519   MCFG_PALETTE_INIT(black_and_white)
520520
trunk/src/mame/drivers/bladestl.c
r17967r17968
347347   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
348348   MCFG_SCREEN_SIZE(32*8, 32*8)
349349   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
350   MCFG_SCREEN_UPDATE_STATIC(bladestl)
350   MCFG_SCREEN_UPDATE_DRIVER(bladestl_state, screen_update_bladestl)
351351
352352   MCFG_GFXDECODE(bladestl)
353353   MCFG_PALETTE_LENGTH(32 + 16*16)
trunk/src/mame/drivers/srumbler.c
r17967r17968
254254   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
255255   MCFG_SCREEN_SIZE(64*8, 32*8)
256256   MCFG_SCREEN_VISIBLE_AREA(10*8, (64-10)*8-1, 1*8, 31*8-1 )
257   MCFG_SCREEN_UPDATE_STATIC(srumbler)
257   MCFG_SCREEN_UPDATE_DRIVER(srumbler_state, screen_update_srumbler)
258258   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
259259
260260   MCFG_GFXDECODE(srumbler)
trunk/src/mame/drivers/mcr68.c
r17967r17968
981981   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
982982   MCFG_SCREEN_SIZE(32*16, 30*16)
983983   MCFG_SCREEN_VISIBLE_AREA(0, 32*16-1, 0, 30*16-1)
984   MCFG_SCREEN_UPDATE_STATIC(zwackery)
984   MCFG_SCREEN_UPDATE_DRIVER(mcr68_state, screen_update_zwackery)
985985
986986   MCFG_GFXDECODE(zwackery)
987987   MCFG_PALETTE_LENGTH(4096)
r17967r17968
10121012   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
10131013   MCFG_SCREEN_SIZE(32*16, 30*16)
10141014   MCFG_SCREEN_VISIBLE_AREA(0, 32*16-1, 0, 30*16-1)
1015   MCFG_SCREEN_UPDATE_STATIC(mcr68)
1015   MCFG_SCREEN_UPDATE_DRIVER(mcr68_state, screen_update_mcr68)
10161016
10171017   MCFG_GFXDECODE(mcr68)
10181018   MCFG_PALETTE_LENGTH(64)
trunk/src/mame/drivers/pbaction.c
r17967r17968
298298   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
299299   MCFG_SCREEN_SIZE(32*8, 32*8)
300300   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
301   MCFG_SCREEN_UPDATE_STATIC(pbaction)
301   MCFG_SCREEN_UPDATE_DRIVER(pbaction_state, screen_update_pbaction)
302302
303303   MCFG_GFXDECODE(pbaction)
304304   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/funworld.c
r17967r17968
23662366   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
23672367   MCFG_SCREEN_SIZE((124+1)*4, (30+1)*8)            /* Taken from MC6845 init, registers 00 & 04. Normally programmed with (value-1) */
23682368   MCFG_SCREEN_VISIBLE_AREA(0*4, 96*4-1, 0*8, 29*8-1)   /* Taken from MC6845 init, registers 01 & 06 */
2369   MCFG_SCREEN_UPDATE_STATIC(funworld)
2369   MCFG_SCREEN_UPDATE_DRIVER(funworld_state, screen_update_funworld)
23702370
23712371   MCFG_GFXDECODE(fw1stpal)
23722372
trunk/src/mame/drivers/overdriv.c
r17967r17968
355355   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
356356   MCFG_SCREEN_SIZE(64*8, 40*8)
357357   MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 0*8, 32*8-1 )
358   MCFG_SCREEN_UPDATE_STATIC(overdriv)
358   MCFG_SCREEN_UPDATE_DRIVER(overdriv_state, screen_update_overdriv)
359359
360360//  MCFG_GFXDECODE(overdriv)
361361   MCFG_PALETTE_LENGTH(2048)
trunk/src/mame/drivers/jackpool.c
r17967r17968
3737   DECLARE_WRITE16_MEMBER(jackpool_io_w);
3838   DECLARE_DRIVER_INIT(jackpool);
3939   virtual void video_start();
40   UINT32 screen_update_jackpool(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4041};
4142
4243
r17967r17968
4445{
4546}
4647
47static SCREEN_UPDATE_IND16(jackpool)
48UINT32 jackpool_state::screen_update_jackpool(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
4849{
49   jackpool_state *state = screen.machine().driver_data<jackpool_state>();
5050   gfx_element *gfx = screen.machine().gfx[0];
5151   int count;// = 0x00000/2;
5252
5353   int y,x;
5454
5555   {
56      count = state->m_map_vreg*(0x4000/2);
56      count = m_map_vreg*(0x4000/2);
5757      for (y=0;y<32;y++)
5858      {
5959         for (x=0;x<64;x++)
6060         {
61            int tile = (state->m_vram[count+(0x2000/2)] & 0x7fff);
62            int attr = (state->m_vram[count+(0x2000/2)+0x800] & 0x1f00)>>8;
61            int tile = (m_vram[count+(0x2000/2)] & 0x7fff);
62            int attr = (m_vram[count+(0x2000/2)+0x800] & 0x1f00)>>8;
6363
6464            drawgfx_opaque(bitmap,cliprect,gfx,tile,attr,0,0,x*8,y*8);
6565            count++;
6666         }
6767      }
6868
69      count = state->m_map_vreg*(0x4000/2);
69      count = m_map_vreg*(0x4000/2);
7070      for (y=0;y<32;y++)
7171      {
7272         for (x=0;x<64;x++)
7373         {
74            int tile = (state->m_vram[count] & 0x7fff);
74            int tile = (m_vram[count] & 0x7fff);
7575
7676            if(tile != 0)
7777            {
78               int attr = (state->m_vram[count+0x800] & 0x1f00)>>8;
79               int t_pen = (state->m_vram[count+0x800] & 0x1000);
78               int attr = (m_vram[count+0x800] & 0x1f00)>>8;
79               int t_pen = (m_vram[count+0x800] & 0x1000);
8080
8181               drawgfx_transpen(bitmap,cliprect,gfx,tile,attr,0,0,x*8,y*8,(t_pen) ? 0 : -1);
8282            }
r17967r17968
266266   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
267267   MCFG_SCREEN_SIZE(64*8, 64*8)
268268   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
269   MCFG_SCREEN_UPDATE_STATIC(jackpool)
269   MCFG_SCREEN_UPDATE_DRIVER(jackpool_state, screen_update_jackpool)
270270
271271   MCFG_EEPROM_93C46_ADD("eeprom")
272272
trunk/src/mame/drivers/spcforce.c
r17967r17968
279279   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
280280   MCFG_SCREEN_SIZE(32*8, 32*8)
281281   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
282   MCFG_SCREEN_UPDATE_STATIC(spcforce)
282   MCFG_SCREEN_UPDATE_DRIVER(spcforce_state, screen_update_spcforce)
283283
284284   MCFG_GFXDECODE(spcforce)
285285   MCFG_PALETTE_LENGTH(sizeof(colortable_source) / sizeof(colortable_source[0]))
trunk/src/mame/drivers/gsword.c
r17967r17968
686686   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
687687   MCFG_SCREEN_SIZE(32*8, 32*8)
688688   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
689   MCFG_SCREEN_UPDATE_STATIC(gsword)
689   MCFG_SCREEN_UPDATE_DRIVER(gsword_state, screen_update_gsword)
690690
691691   MCFG_GFXDECODE(gsword)
692692   MCFG_PALETTE_LENGTH(64*4+64*4)
r17967r17968
729729   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
730730   MCFG_SCREEN_SIZE(32*8, 32*8)
731731   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
732   MCFG_SCREEN_UPDATE_STATIC(gsword)
732   MCFG_SCREEN_UPDATE_DRIVER(gsword_state, screen_update_gsword)
733733
734734   MCFG_GFXDECODE(gsword)
735735   MCFG_PALETTE_LENGTH(64*4+64*4)
trunk/src/mame/drivers/nmg5.c
r17967r17968
275275   virtual void machine_start();
276276   virtual void machine_reset();
277277   virtual void video_start();
278   UINT32 screen_update_nmg5(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
278279};
279280
280281
r17967r17968
884885}
885886
886887
887static SCREEN_UPDATE_IND16( nmg5 )
888UINT32 nmg5_state::screen_update_nmg5(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
888889{
889   nmg5_state *state = screen.machine().driver_data<nmg5_state>();
890890
891   state->m_bg_tilemap->set_scrolly(0, state->m_scroll_ram[3] + 9);
892   state->m_bg_tilemap->set_scrollx(0, state->m_scroll_ram[2] + 3);
893   state->m_fg_tilemap->set_scrolly(0, state->m_scroll_ram[1] + 9);
894   state->m_fg_tilemap->set_scrollx(0, state->m_scroll_ram[0] - 1);
891   m_bg_tilemap->set_scrolly(0, m_scroll_ram[3] + 9);
892   m_bg_tilemap->set_scrollx(0, m_scroll_ram[2] + 3);
893   m_fg_tilemap->set_scrolly(0, m_scroll_ram[1] + 9);
894   m_fg_tilemap->set_scrollx(0, m_scroll_ram[0] - 1);
895895
896   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
896   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
897897
898   if (state->m_priority_reg == 0)
898   if (m_priority_reg == 0)
899899   {
900      screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x400);
901      state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
900      screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
901      m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
902902      draw_bitmap(screen.machine(), bitmap);
903903   }
904   else if (state->m_priority_reg == 1)
904   else if (m_priority_reg == 1)
905905   {
906906      draw_bitmap(screen.machine(), bitmap);
907      screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x400);
908      state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
907      screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
908      m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
909909   }
910   else if (state->m_priority_reg == 2)
910   else if (m_priority_reg == 2)
911911   {
912      screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x400);
912      screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
913913      draw_bitmap(screen.machine(), bitmap);
914      state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
914      m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
915915   }
916   else if (state->m_priority_reg == 3)
916   else if (m_priority_reg == 3)
917917   {
918      state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
919      screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x400);
918      m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
919      screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
920920      draw_bitmap(screen.machine(), bitmap);
921921   }
922   else if (state->m_priority_reg == 7)
922   else if (m_priority_reg == 7)
923923   {
924      state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
924      m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
925925      draw_bitmap(screen.machine(), bitmap);
926      screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x400);
926      screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
927927   }
928928   return 0;
929929}
r17967r17968
10231023   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
10241024   MCFG_SCREEN_SIZE(320, 256)
10251025   MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
1026   MCFG_SCREEN_UPDATE_STATIC(nmg5)
1026   MCFG_SCREEN_UPDATE_DRIVER(nmg5_state, screen_update_nmg5)
10271027
10281028   MCFG_GFXDECODE(nmg5)
10291029   MCFG_PALETTE_LENGTH(0x400)
trunk/src/mame/drivers/xmen.c
r17967r17968
385385   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
386386   MCFG_SCREEN_SIZE(64*8, 32*8)
387387   MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 )   /* correct, same issue of TMNT2 */
388   MCFG_SCREEN_UPDATE_STATIC(xmen)
388   MCFG_SCREEN_UPDATE_DRIVER(xmen_state, screen_update_xmen)
389389   MCFG_PALETTE_LENGTH(2048)
390390
391391   MCFG_K052109_ADD("k052109", xmen_k052109_intf)
r17967r17968
437437   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
438438   MCFG_SCREEN_SIZE(64*8, 32*8)
439439   MCFG_SCREEN_VISIBLE_AREA(12*8, 48*8-1, 2*8, 30*8-1)
440   MCFG_SCREEN_UPDATE_STATIC(xmen6p_left)
440   MCFG_SCREEN_UPDATE_DRIVER(xmen_state, screen_update_xmen6p_left)
441441
442442   MCFG_SCREEN_ADD("rscreen", RASTER)
443443   MCFG_SCREEN_REFRESH_RATE(60)
444444   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
445445   MCFG_SCREEN_SIZE(64*8, 32*8)
446446   MCFG_SCREEN_VISIBLE_AREA(16*8, 52*8-1, 2*8, 30*8-1)
447   MCFG_SCREEN_UPDATE_STATIC(xmen6p_right)
448   MCFG_SCREEN_VBLANK_STATIC(xmen6p)
447   MCFG_SCREEN_UPDATE_DRIVER(xmen_state, screen_update_xmen6p_right)
448   MCFG_SCREEN_VBLANK_DRIVER(xmen_state, screen_eof_xmen6p)
449449
450450   MCFG_VIDEO_START_OVERRIDE(xmen_state,xmen6p)
451451
trunk/src/mame/drivers/mario.c
r17967r17968
345345   /* video hardware */
346346   MCFG_SCREEN_ADD("screen", RASTER)
347347   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
348   MCFG_SCREEN_UPDATE_STATIC(mario)
348   MCFG_SCREEN_UPDATE_DRIVER(mario_state, screen_update_mario)
349349   MCFG_GFXDECODE(mario)
350350   MCFG_PALETTE_LENGTH(512)
351351
trunk/src/mame/drivers/nbmj8900.c
r17967r17968
318318   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
319319   MCFG_SCREEN_SIZE(512, 256)
320320   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 8, 248-1)
321   MCFG_SCREEN_UPDATE_STATIC(nbmj8900)
321   MCFG_SCREEN_UPDATE_DRIVER(nbmj8900_state, screen_update_nbmj8900)
322322   MCFG_PALETTE_LENGTH(256)
323323
324324
trunk/src/mame/drivers/wink.c
r17967r17968
4242   TILE_GET_INFO_MEMBER(get_bg_tile_info);
4343   virtual void machine_reset();
4444   virtual void video_start();
45   UINT32 screen_update_wink(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4546};
4647
4748
r17967r17968
6566   m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(wink_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
6667}
6768
68static SCREEN_UPDATE_IND16( wink )
69UINT32 wink_state::screen_update_wink(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
6970{
70   wink_state *state = screen.machine().driver_data<wink_state>();
71   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
71   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
7272   return 0;
7373}
7474
r17967r17968
360360   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
361361   MCFG_SCREEN_SIZE(32*8, 32*8)
362362   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
363   MCFG_SCREEN_UPDATE_STATIC(wink)
363   MCFG_SCREEN_UPDATE_DRIVER(wink_state, screen_update_wink)
364364
365365   MCFG_GFXDECODE(wink)
366366   MCFG_PALETTE_LENGTH(16)
trunk/src/mame/drivers/atarifb.c
r17967r17968
564564   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2037)   /* 16.3ms * 1/8 = 2037.5. Is it 1/8th or 3/32nds? (1528?) */)
565565   MCFG_SCREEN_SIZE(38*8, 32*8)
566566   MCFG_SCREEN_VISIBLE_AREA(0*8, 38*8-1, 1*8, 31*8-1)
567   MCFG_SCREEN_UPDATE_STATIC(atarifb)
567   MCFG_SCREEN_UPDATE_DRIVER(atarifb_state, screen_update_atarifb)
568568
569569   MCFG_GFXDECODE(atarifb)
570570   MCFG_PALETTE_LENGTH(12)
r17967r17968
595595
596596   /* video hardware */
597597   MCFG_SCREEN_MODIFY("screen")
598   MCFG_SCREEN_UPDATE_STATIC(abaseb)
598   MCFG_SCREEN_UPDATE_DRIVER(atarifb_state, screen_update_abaseb)
599599
600600   /* sound hardware */
601601   MCFG_SOUND_REPLACE("discrete", DISCRETE, 0)
r17967r17968
613613   /* video hardware */
614614   MCFG_SCREEN_MODIFY("screen")
615615   MCFG_SCREEN_VISIBLE_AREA(0*8, 38*8-1, 2*8, 32*8-1)
616   MCFG_SCREEN_UPDATE_STATIC(soccer)
616   MCFG_SCREEN_UPDATE_DRIVER(atarifb_state, screen_update_soccer)
617617   MCFG_GFXDECODE(soccer)
618618MACHINE_CONFIG_END
619619
trunk/src/mame/drivers/silkroad.c
r17967r17968
291291   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
292292   MCFG_SCREEN_SIZE(64*8, 32*8)
293293   MCFG_SCREEN_VISIBLE_AREA(6*8+2, 64*8-1-(10*8)-2, 2*8, 32*8-1-(2*8))
294   MCFG_SCREEN_UPDATE_STATIC(silkroad)
294   MCFG_SCREEN_UPDATE_DRIVER(silkroad_state, screen_update_silkroad)
295295
296296   MCFG_GFXDECODE(silkroad)
297297   MCFG_PALETTE_LENGTH(0x2000)
trunk/src/mame/drivers/lethal.c
r17967r17968
663663   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
664664   MCFG_SCREEN_SIZE(64*8, 32*8)
665665   MCFG_SCREEN_VISIBLE_AREA(216, 504-1, 16, 240-1)
666   MCFG_SCREEN_UPDATE_STATIC(lethalen)
666   MCFG_SCREEN_UPDATE_DRIVER(lethal_state, screen_update_lethalen)
667667
668668   MCFG_PALETTE_LENGTH(7168+1)
669669
trunk/src/mame/drivers/exprraid.c
r17967r17968
503503   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
504504   MCFG_SCREEN_SIZE(32*8, 32*8)
505505   MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 1*8, 31*8-1)
506   MCFG_SCREEN_UPDATE_STATIC(exprraid)
506   MCFG_SCREEN_UPDATE_DRIVER(exprraid_state, screen_update_exprraid)
507507
508508   MCFG_GFXDECODE(exprraid)
509509   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/tecmo16.c
r17967r17968
391391   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
392392   MCFG_SCREEN_SIZE(32*8, 32*8)
393393   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
394   MCFG_SCREEN_UPDATE_STATIC(tecmo16)
394   MCFG_SCREEN_UPDATE_DRIVER(tecmo16_state, screen_update_tecmo16)
395395
396396   MCFG_GFXDECODE(tecmo16)
397397   MCFG_PALETTE_LENGTH(4096)
trunk/src/mame/drivers/2mindril.c
r17967r17968
6363   DECLARE_DRIVER_INIT(drill);
6464   DECLARE_MACHINE_START(drill);
6565   DECLARE_MACHINE_RESET(drill);
66
6766};
6867
6968
r17967r17968
458457   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* inaccurate, same as Taito F3? (needs screen raw params anyway) */
459458   MCFG_SCREEN_SIZE(40*8+48*2, 32*8)
460459   MCFG_SCREEN_VISIBLE_AREA(46, 40*8-1 + 46, 24, 24+224-1)
461   MCFG_SCREEN_UPDATE_STATIC(f3)
462   MCFG_SCREEN_VBLANK_STATIC(f3)
460   MCFG_SCREEN_UPDATE_DRIVER(_2mindril_state, screen_update_f3)
461   MCFG_SCREEN_VBLANK_DRIVER(_2mindril_state, screen_eof_f3)
463462
464463   MCFG_PALETTE_LENGTH(0x2000)
465464
trunk/src/mame/drivers/naughtyb.c
r17967r17968
431431   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
432432   MCFG_SCREEN_SIZE(36*8, 28*8)
433433   MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
434   MCFG_SCREEN_UPDATE_STATIC(naughtyb)
434   MCFG_SCREEN_UPDATE_DRIVER(naughtyb_state, screen_update_naughtyb)
435435
436436   MCFG_GFXDECODE(naughtyb)
437437   MCFG_PALETTE_LENGTH(256)
r17967r17968
463463   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
464464   MCFG_SCREEN_SIZE(36*8, 28*8)
465465   MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
466   MCFG_SCREEN_UPDATE_STATIC(naughtyb)
466   MCFG_SCREEN_UPDATE_DRIVER(naughtyb_state, screen_update_naughtyb)
467467
468468   MCFG_GFXDECODE(naughtyb)
469469   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/corona.c
r17967r17968
348348   DECLARE_WRITE8_MEMBER(ay_port_b_out);
349349   virtual void video_start();
350350   virtual void palette_init();
351   UINT32 screen_update_winner(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
352   UINT32 screen_update_luckyrlt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
351353};
352354
353355
r17967r17968
459461   m_videobuf = auto_alloc_array_clear(machine(), UINT8, VIDEOBUF_SIZE);
460462}
461463
462static SCREEN_UPDATE_IND16(winner)
464UINT32 corona_state::screen_update_winner(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
463465{
464   corona_state *state = screen.machine().driver_data<corona_state>();
465466   int x, y;
466467
467468   for (y = 0; y < 256; y++)
468469      for (x = 0; x < 256; x++)
469         bitmap.pix16(y, x) = state->m_videobuf[y * 512 + x];
470         bitmap.pix16(y, x) = m_videobuf[y * 512 + x];
470471
471472   return 0;
472473}
473474
474static SCREEN_UPDATE_IND16(luckyrlt)
475UINT32 corona_state::screen_update_luckyrlt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
475476{
476   corona_state *state = screen.machine().driver_data<corona_state>();
477477   int x, y;
478478
479479   for (y = 0; y < 256; y++)
480480      for (x = 0; x < 256; x++)
481         bitmap.pix16(255 - y, x) = state->m_videobuf[y * 512 + x];
481         bitmap.pix16(255 - y, x) = m_videobuf[y * 512 + x];
482482
483483   return 0;
484484}
r17967r17968
13741374   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) //not accurate
13751375   MCFG_SCREEN_SIZE(32*8, 32*8)
13761376   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
1377   MCFG_SCREEN_UPDATE_STATIC(winner)
1377   MCFG_SCREEN_UPDATE_DRIVER(corona_state, screen_update_winner)
13781378
13791379   MCFG_PALETTE_LENGTH(0x100)
13801380
r17967r17968
14051405   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) //not accurate
14061406   MCFG_SCREEN_SIZE(32*8, 32*8)
14071407   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
1408   MCFG_SCREEN_UPDATE_STATIC(winner)
1408   MCFG_SCREEN_UPDATE_DRIVER(corona_state, screen_update_winner)
14091409
14101410   MCFG_PALETTE_LENGTH(0x100)
14111411
r17967r17968
14361436   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) //not accurate
14371437   MCFG_SCREEN_SIZE(32*8, 32*8)
14381438   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 32*8-1)
1439   MCFG_SCREEN_UPDATE_STATIC(winner)
1439   MCFG_SCREEN_UPDATE_DRIVER(corona_state, screen_update_winner)
14401440
14411441   MCFG_PALETTE_LENGTH(0x100)
14421442
r17967r17968
14661466   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) //not accurate
14671467   MCFG_SCREEN_SIZE(32*8, 32*8)
14681468   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 32*8-1)
1469   MCFG_SCREEN_UPDATE_STATIC(winner)
1469   MCFG_SCREEN_UPDATE_DRIVER(corona_state, screen_update_winner)
14701470
14711471   MCFG_PALETTE_LENGTH(0x100)
14721472
r17967r17968
14971497   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) //not accurate
14981498   MCFG_SCREEN_SIZE(32*8, 32*8)
14991499   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 30*8-1)
1500   MCFG_SCREEN_UPDATE_STATIC(luckyrlt)
1500   MCFG_SCREEN_UPDATE_DRIVER(corona_state, screen_update_luckyrlt)
15011501
15021502   MCFG_PALETTE_LENGTH(0x100)
15031503
trunk/src/mame/drivers/taitowlf.c
r17967r17968
8282   virtual void machine_start();
8383   virtual void machine_reset();
8484   virtual void palette_init();
85   UINT32 screen_update_taitowlf(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
8586};
8687
8788#if !ENABLE_VGA
88static SCREEN_UPDATE_RGB32( taitowlf )
89UINT32 taitowlf_state::screen_update_taitowlf(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
8990{
9091   int x,y,count;
9192   const UINT8 *blit_ram = screen.machine().root_device().memregion("user5")->base();
r17967r17968
656657   MCFG_SCREEN_SIZE(512, 256)
657658   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
658659   MCFG_PALETTE_LENGTH(256)
659   MCFG_SCREEN_UPDATE_STATIC(taitowlf)
660   MCFG_SCREEN_UPDATE_DRIVER(taitowlf_state, screen_update_taitowlf)
660661   #endif
661662MACHINE_CONFIG_END
662663
trunk/src/mame/drivers/taito_z.c
r17967r17968
30963096   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
30973097   MCFG_SCREEN_SIZE(40*8, 32*8)
30983098   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 3*8, 31*8-1)
3099   MCFG_SCREEN_UPDATE_STATIC(contcirc)
3099   MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_contcirc)
31003100
31013101   MCFG_GFXDECODE(taitoz)
31023102   MCFG_PALETTE_LENGTH(4096)
r17967r17968
31583158   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
31593159   MCFG_SCREEN_SIZE(40*8, 32*8)
31603160   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
3161   MCFG_SCREEN_UPDATE_STATIC(chasehq)
3161   MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_chasehq)
31623162
31633163   MCFG_GFXDECODE(chasehq)
31643164   MCFG_PALETTE_LENGTH(4096)
r17967r17968
32223222   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
32233223   MCFG_SCREEN_SIZE(40*8, 32*8)
32243224   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 31*8-1)
3225   MCFG_SCREEN_UPDATE_STATIC(contcirc)
3225   MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_contcirc)
32263226
32273227   MCFG_GFXDECODE(taitoz)
32283228   MCFG_PALETTE_LENGTH(4096)
r17967r17968
32823282   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
32833283   MCFG_SCREEN_SIZE(40*8, 32*8)
32843284   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
3285   MCFG_SCREEN_UPDATE_STATIC(bshark)
3285   MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_bshark)
32863286
32873287   MCFG_GFXDECODE(taitoz)
32883288   MCFG_PALETTE_LENGTH(4096)
r17967r17968
33533353   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
33543354   MCFG_SCREEN_SIZE(40*8, 32*8)
33553355   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
3356   MCFG_SCREEN_UPDATE_STATIC(sci)
3356   MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_sci)
33573357
33583358   MCFG_GFXDECODE(taitoz)
33593359   MCFG_PALETTE_LENGTH(4096)
r17967r17968
34153415   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
34163416   MCFG_SCREEN_SIZE(40*8, 32*8)
34173417   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
3418   MCFG_SCREEN_UPDATE_STATIC(chasehq)
3418   MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_chasehq)
34193419
34203420   MCFG_GFXDECODE(chasehq)
34213421   MCFG_PALETTE_LENGTH(4096)
r17967r17968
34793479   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
34803480   MCFG_SCREEN_SIZE(40*8, 32*8)
34813481   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
3482   MCFG_SCREEN_UPDATE_STATIC(aquajack)
3482   MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_aquajack)
34833483
34843484   MCFG_GFXDECODE(taitoz)
34853485   MCFG_PALETTE_LENGTH(4096)
r17967r17968
35403540   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
35413541   MCFG_SCREEN_SIZE(40*8, 32*8)
35423542   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
3543   MCFG_SCREEN_UPDATE_STATIC(spacegun)
3543   MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_spacegun)
35443544
35453545   MCFG_GFXDECODE(taitoz)
35463546   MCFG_PALETTE_LENGTH(4096)
r17967r17968
36013601   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
36023602   MCFG_SCREEN_SIZE(40*8, 32*8)
36033603   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
3604   MCFG_SCREEN_UPDATE_STATIC(dblaxle)
3604   MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_dblaxle)
36053605
36063606   MCFG_GFXDECODE(dblaxle)
36073607   MCFG_PALETTE_LENGTH(4096)
r17967r17968
36633663   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
36643664   MCFG_SCREEN_SIZE(40*8, 32*8)
36653665   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
3666   MCFG_SCREEN_UPDATE_STATIC(racingb)
3666   MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_racingb)
36673667
36683668   MCFG_GFXDECODE(dblaxle)
36693669   MCFG_PALETTE_LENGTH(4096)
trunk/src/mame/drivers/scotrsht.c
r17967r17968
197197   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
198198   MCFG_SCREEN_SIZE(32*8, 32*8)
199199   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
200   MCFG_SCREEN_UPDATE_STATIC(scotrsht)
200   MCFG_SCREEN_UPDATE_DRIVER(scotrsht_state, screen_update_scotrsht)
201201
202202   MCFG_GFXDECODE(scotrsht)
203203   MCFG_PALETTE_LENGTH(16*8*16+16*8*16)
trunk/src/mame/drivers/gunbustr.c
r17967r17968
315315   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
316316   MCFG_SCREEN_SIZE(40*8, 32*8)
317317   MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 2*8, 32*8-1)
318   MCFG_SCREEN_UPDATE_STATIC(gunbustr)
318   MCFG_SCREEN_UPDATE_DRIVER(gunbustr_state, screen_update_gunbustr)
319319
320320   MCFG_GFXDECODE(gunbustr)
321321   MCFG_PALETTE_LENGTH(8192)
trunk/src/mame/drivers/msisaac.c
r17967r17968
497497   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
498498   MCFG_SCREEN_SIZE(32*8, 32*8)
499499   MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 1*8, 31*8-1)
500   MCFG_SCREEN_UPDATE_STATIC(msisaac)
500   MCFG_SCREEN_UPDATE_DRIVER(msisaac_state, screen_update_msisaac)
501501
502502   MCFG_GFXDECODE(msisaac)
503503   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/playch10.c
r17967r17968
694694   MCFG_SCREEN_REFRESH_RATE(60)
695695   MCFG_SCREEN_SIZE(32*8, 262)
696696   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1)
697   MCFG_SCREEN_UPDATE_STATIC(playch10_top)
697   MCFG_SCREEN_UPDATE_DRIVER(playch10_state, screen_update_playch10_top)
698698
699699   MCFG_SCREEN_ADD("bottom", RASTER)
700700   MCFG_SCREEN_REFRESH_RATE(60)
701701   MCFG_SCREEN_SIZE(32*8, 262)
702702   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1)
703   MCFG_SCREEN_UPDATE_STATIC(playch10_bottom)
703   MCFG_SCREEN_UPDATE_DRIVER(playch10_state, screen_update_playch10_bottom)
704704
705705
706706   MCFG_PPU2C03B_ADD("ppu", playch10_ppu_interface)
trunk/src/mame/drivers/mappy.c
r17967r17968
16521652
16531653   MCFG_SCREEN_ADD("screen", RASTER)
16541654   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
1655   MCFG_SCREEN_UPDATE_STATIC(superpac)
1655   MCFG_SCREEN_UPDATE_DRIVER(mappy_state, screen_update_superpac)
16561656
16571657   MCFG_PALETTE_INIT_OVERRIDE(mappy_state,superpac)
16581658   MCFG_VIDEO_START_OVERRIDE(mappy_state,superpac)
r17967r17968
17251725
17261726   MCFG_SCREEN_ADD("screen", RASTER)
17271727   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
1728   MCFG_SCREEN_UPDATE_STATIC(phozon)
1728   MCFG_SCREEN_UPDATE_DRIVER(mappy_state, screen_update_phozon)
17291729
17301730   MCFG_PALETTE_INIT_OVERRIDE(mappy_state,phozon)
17311731   MCFG_VIDEO_START_OVERRIDE(mappy_state,phozon)
r17967r17968
17651765
17661766   MCFG_SCREEN_ADD("screen", RASTER)
17671767   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
1768   MCFG_SCREEN_UPDATE_STATIC(mappy)
1768   MCFG_SCREEN_UPDATE_DRIVER(mappy_state, screen_update_mappy)
17691769
17701770   MCFG_PALETTE_INIT_OVERRIDE(mappy_state,mappy)
17711771   MCFG_VIDEO_START_OVERRIDE(mappy_state,mappy)
trunk/src/mame/drivers/safarir.c
r17967r17968
7878   virtual void machine_start();
7979   virtual void video_start();
8080   virtual void palette_init();
81   UINT32 screen_update_safarir(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8182};
8283
8384
r17967r17968
200201}
201202
202203
203static SCREEN_UPDATE_IND16( safarir )
204UINT32 safarir_state::screen_update_safarir(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
204205{
205   safarir_state *state = screen.machine().driver_data<safarir_state>();
206206
207   state->m_bg_tilemap->set_scrollx(0, *state->m_bg_scroll);
207   m_bg_tilemap->set_scrollx(0, *m_bg_scroll);
208208
209   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
210   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
209   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
210   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
211211
212212   return 0;
213213}
r17967r17968
415415   MCFG_SCREEN_SIZE(32*8, 32*8)
416416   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 26*8-1)
417417   MCFG_SCREEN_REFRESH_RATE(60)
418   MCFG_SCREEN_UPDATE_STATIC(safarir)
418   MCFG_SCREEN_UPDATE_DRIVER(safarir_state, screen_update_safarir)
419419
420420   /* audio hardware */
421421   MCFG_FRAGMENT_ADD(safarir_audio)
trunk/src/mame/drivers/rastan.c
r17967r17968
421421   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
422422   MCFG_SCREEN_SIZE(40*8, 32*8)
423423   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
424   MCFG_SCREEN_UPDATE_STATIC(rastan)
424   MCFG_SCREEN_UPDATE_DRIVER(rastan_state, screen_update_rastan)
425425
426426   MCFG_GFXDECODE(rastan)
427427   MCFG_PALETTE_LENGTH(8192)
trunk/src/mame/drivers/pzletime.c
r17967r17968
5959   virtual void machine_reset();
6060   virtual void video_start();
6161   virtual void palette_init();
62   UINT32 screen_update_pzletime(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6263};
6364
6465
r17967r17968
9192   m_txt_tilemap->set_transparent_pen(0);
9293}
9394
94static SCREEN_UPDATE_IND16( pzletime )
95UINT32 pzletime_state::screen_update_pzletime(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
9596{
96   pzletime_state *state = screen.machine().driver_data<pzletime_state>();
9797   int count;
9898   int y, x;
9999
100100   bitmap.fill(screen.machine().pens[0], cliprect); //bg pen
101101
102   state->m_txt_tilemap->set_scrolly(0, state->m_tilemap_regs[0] - 3);
103   state->m_txt_tilemap->set_scrollx(0, state->m_tilemap_regs[1]);
102   m_txt_tilemap->set_scrolly(0, m_tilemap_regs[0] - 3);
103   m_txt_tilemap->set_scrollx(0, m_tilemap_regs[1]);
104104
105   state->m_mid_tilemap->set_scrolly(0, state->m_tilemap_regs[2] - 3);
106   state->m_mid_tilemap->set_scrollx(0, state->m_tilemap_regs[3] - 7);
105   m_mid_tilemap->set_scrolly(0, m_tilemap_regs[2] - 3);
106   m_mid_tilemap->set_scrollx(0, m_tilemap_regs[3] - 7);
107107
108   if (state->m_video_regs[2] & 1)
108   if (m_video_regs[2] & 1)
109109   {
110110      count = 0;
111111
r17967r17968
113113      {
114114         for (x = 0; x < 512; x++)
115115         {
116            if (state->m_bg_videoram[count] & 0x8000)
117               bitmap.pix16((y - 18) & 0xff, (x - 32) & 0x1ff) = 0x300 + (state->m_bg_videoram[count] & 0x7fff);
116            if (m_bg_videoram[count] & 0x8000)
117               bitmap.pix16((y - 18) & 0xff, (x - 32) & 0x1ff) = 0x300 + (m_bg_videoram[count] & 0x7fff);
118118
119119            count++;
120120         }
121121      }
122122   }
123123
124   state->m_mid_tilemap->draw(bitmap, cliprect, 0, 0);
124   m_mid_tilemap->draw(bitmap, cliprect, 0, 0);
125125
126126   {
127      UINT16 *spriteram = state->m_spriteram;
127      UINT16 *spriteram = m_spriteram;
128128      int offs, spr_offs, colour, sx, sy;
129129
130130      for(offs = 0; offs < 0x2000 / 2; offs += 4)
r17967r17968
143143      }
144144   }
145145
146   state->m_txt_tilemap->draw(bitmap, cliprect, 0, 0);
146   m_txt_tilemap->draw(bitmap, cliprect, 0, 0);
147147   if ((screen.frame_number() % 16) != 0)
148      state->m_txt_tilemap->draw(bitmap, cliprect, 1, 0);
148      m_txt_tilemap->draw(bitmap, cliprect, 1, 0);
149149
150150   return 0;
151151}
r17967r17968
333333   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
334334   MCFG_SCREEN_SIZE(64*8, 32*8)
335335   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 28*8-1)
336   MCFG_SCREEN_UPDATE_STATIC(pzletime)
336   MCFG_SCREEN_UPDATE_DRIVER(pzletime_state, screen_update_pzletime)
337337   MCFG_GFXDECODE(pzletime)
338338   MCFG_PALETTE_LENGTH(0x300 + 32768)
339339   MCFG_EEPROM_93C46_ADD("eeprom")
trunk/src/mame/drivers/funkball.c
r17967r17968
164164   DECLARE_WRITE_LINE_MEMBER(funkball_pic8259_1_set_int_line);
165165   virtual void machine_start();
166166   virtual void machine_reset();
167   UINT32 screen_update_funkball(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
167168};
168169
169170void funkball_state::video_start()
r17967r17968
11341135   m_voodoo_pci_regs.base_addr = 0xff000000;
11351136}
11361137
1137SCREEN_UPDATE_RGB32( funkball )
1138UINT32 funkball_state::screen_update_funkball(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
11381139{
11391140   voodoo_update(screen.machine().device("voodoo_0"), bitmap, cliprect);
11401141   return 0;
trunk/src/mame/drivers/tmspoker.c
r17967r17968
232232   virtual void machine_reset();
233233   virtual void video_start();
234234   virtual void palette_init();
235   UINT32 screen_update_tmspoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
235236};
236237
237238
r17967r17968
264265   m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(tmspoker_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
265266}
266267
267static SCREEN_UPDATE_IND16( tmspoker )
268UINT32 tmspoker_state::screen_update_tmspoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
268269{
269   tmspoker_state *state = screen.machine().driver_data<tmspoker_state>();
270   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
270   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
271271   return 0;
272272}
273273
r17967r17968
583583
584584   MCFG_PALETTE_LENGTH(256)
585585
586   MCFG_SCREEN_UPDATE_STATIC(tmspoker)
586   MCFG_SCREEN_UPDATE_DRIVER(tmspoker_state, screen_update_tmspoker)
587587
588588   MCFG_MC6845_ADD("crtc", MC6845, MASTER_CLOCK/4, mc6845_intf) /* guess */
589589
trunk/src/mame/drivers/metalmx.c
r17967r17968
278278
279279}
280280
281static SCREEN_UPDATE_IND16( metalmx )
281UINT32 metalmx_state::screen_update_metalmx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
282282{
283283   /* TODO: TMS34020 should take care of this */
284   metalmx_state *state = screen.machine().driver_data<metalmx_state>();
285284
286285//  UINT32 *src_base = &gsp_vram[(vreg_base[0x40/4] & 0x40) ? 0x20000 : 0];
287   UINT16 *src_base = state->m_gsp_vram;
286   UINT16 *src_base = m_gsp_vram;
288287   int y;
289288
290289   for (y = 0; y < 384; ++y)
r17967r17968
756755   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
757756   MCFG_SCREEN_SIZE(512, 384)
758757   MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383)
759   MCFG_SCREEN_UPDATE_STATIC(metalmx)
758   MCFG_SCREEN_UPDATE_DRIVER(metalmx_state, screen_update_metalmx)
760759
761760   MCFG_PALETTE_LENGTH(65536)
762761   MCFG_PALETTE_INIT(RRRRR_GGGGGG_BBBBB)
trunk/src/mame/drivers/upscope.c
r17967r17968
324324   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
325325   MCFG_SCREEN_SIZE(512*2, 262)
326326   MCFG_SCREEN_VISIBLE_AREA((129-8)*2, (449+8-1)*2, 44-8, 244+8-1)
327   MCFG_SCREEN_UPDATE_STATIC(amiga)
327   MCFG_SCREEN_UPDATE_DRIVER(amiga_state, screen_update_amiga)
328328
329329   MCFG_PALETTE_LENGTH(4096)
330330   MCFG_PALETTE_INIT_OVERRIDE(upscope_state,amiga)
trunk/src/mame/drivers/equites.c
r17967r17968
12631263   MCFG_SCREEN_REFRESH_RATE(60)
12641264   MCFG_SCREEN_SIZE(32*8, 32*8)
12651265   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 3*8, 29*8-1)
1266   MCFG_SCREEN_UPDATE_STATIC(equites)
1266   MCFG_SCREEN_UPDATE_DRIVER(equites_state, screen_update_equites)
12671267
12681268   MCFG_GFXDECODE(equites)
12691269   MCFG_PALETTE_LENGTH(0x180)
r17967r17968
13001300   MCFG_SCREEN_REFRESH_RATE(60)
13011301   MCFG_SCREEN_SIZE(32*8, 32*8)
13021302   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 28*8-1)
1303   MCFG_SCREEN_UPDATE_STATIC(splndrbt)
1303   MCFG_SCREEN_UPDATE_DRIVER(equites_state, screen_update_splndrbt)
13041304
13051305   MCFG_GFXDECODE(splndrbt)
13061306   MCFG_PALETTE_LENGTH(0x280)
trunk/src/mame/drivers/mirax.c
r17967r17968
129129   DECLARE_WRITE8_MEMBER(ay2_sel);
130130   DECLARE_DRIVER_INIT(mirax);
131131   virtual void palette_init();
132   UINT32 screen_update_mirax(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
132133};
133134
134135
r17967r17968
219220   }
220221}
221222
222static SCREEN_UPDATE_IND16(mirax)
223UINT32 mirax_state::screen_update_mirax(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
223224{
224225   draw_tilemap(screen.machine(),bitmap,cliprect,1);
225226   draw_sprites(screen.machine(),bitmap,cliprect);
r17967r17968
465466   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
466467   MCFG_SCREEN_SIZE(256, 256)
467468   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
468   MCFG_SCREEN_UPDATE_STATIC(mirax)
469   MCFG_SCREEN_UPDATE_DRIVER(mirax_state, screen_update_mirax)
469470
470471   MCFG_PALETTE_LENGTH(0x40)
471472   MCFG_GFXDECODE(mirax)
trunk/src/mame/drivers/gradius3.c
r17967r17968
339339   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
340340   MCFG_SCREEN_SIZE(64*8, 32*8)
341341   MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 2*8, 30*8-1 )
342   MCFG_SCREEN_UPDATE_STATIC(gradius3)
342   MCFG_SCREEN_UPDATE_DRIVER(gradius3_state, screen_update_gradius3)
343343
344344   MCFG_PALETTE_LENGTH(2048)
345345
trunk/src/mame/drivers/cardline.c
r17967r17968
4141   DECLARE_READ8_MEMBER(unk_r);
4242   DECLARE_WRITE8_MEMBER(lamps_w);
4343   virtual void palette_init();
44   UINT32 screen_update_cardline(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4445};
4546
4647
4748
4849#define DRAW_TILE(machine, offset, transparency) drawgfx_transpen(bitmap, cliprect, (machine).gfx[0],\
49               (state->m_videoram[index+offset] | (state->m_colorram[index+offset]<<8))&0x3fff,\
50               (state->m_colorram[index+offset]&0x80)>>7,\
50               (m_videoram[index+offset] | (m_colorram[index+offset]<<8))&0x3fff,\
51               (m_colorram[index+offset]&0x80)>>7,\
5152               0,0,\
5253               x<<3, y<<3,\
5354               transparency?transparency:(UINT32)-1);
5455
55static SCREEN_UPDATE_IND16( cardline )
56UINT32 cardline_state::screen_update_cardline(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
5657{
57   cardline_state *state = screen.machine().driver_data<cardline_state>();
5858   int x,y;
5959   bitmap.fill(0, cliprect);
6060   for(y=0;y<32;y++)
r17967r17968
6262      for(x=0;x<64;x++)
6363      {
6464         int index=y*64+x;
65         if(state->m_video&1)
65         if(m_video&1)
6666         {
6767            DRAW_TILE(screen.machine(),0,0);
6868            DRAW_TILE(screen.machine(),0x800,1);
6969         }
7070
71         if(state->m_video&2)
71         if(m_video&2)
7272         {
7373            DRAW_TILE(screen.machine(),0x1000,0);
7474            DRAW_TILE(screen.machine(),0x1800,1);
r17967r17968
226226   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
227227   MCFG_SCREEN_SIZE(64*8, 35*8)
228228   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
229   MCFG_SCREEN_UPDATE_STATIC(cardline)
229   MCFG_SCREEN_UPDATE_DRIVER(cardline_state, screen_update_cardline)
230230
231231   MCFG_GFXDECODE(cardline)
232232   MCFG_PALETTE_LENGTH(512)
trunk/src/mame/drivers/decocass.c
r17967r17968
780780   /* video hardware */
781781   MCFG_SCREEN_ADD("screen", RASTER)
782782   MCFG_SCREEN_RAW_PARAMS(HCLK, 384, 0*8, 256, 272, 1*8, 248)
783   MCFG_SCREEN_UPDATE_STATIC(decocass)
783   MCFG_SCREEN_UPDATE_DRIVER(decocass_state, screen_update_decocass)
784784
785785   MCFG_GFXDECODE(decocass)
786786   MCFG_PALETTE_LENGTH(32+2*8+2*4)
trunk/src/mame/drivers/mystwarr.c
r17967r17968
10091009   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(600))
10101010   MCFG_SCREEN_SIZE(64*8, 32*8)
10111011   MCFG_SCREEN_VISIBLE_AREA(24, 24+288-1, 16, 16+224-1)
1012   MCFG_SCREEN_UPDATE_STATIC(mystwarr)
1012   MCFG_SCREEN_UPDATE_DRIVER(mystwarr_state, screen_update_mystwarr)
10131013
10141014   MCFG_PALETTE_LENGTH(2048)
10151015
r17967r17968
10431043   /* video hardware */
10441044   MCFG_VIDEO_START_OVERRIDE(mystwarr_state,viostorm)
10451045   MCFG_SCREEN_MODIFY("screen")
1046   MCFG_SCREEN_UPDATE_STATIC(metamrph)
1046   MCFG_SCREEN_UPDATE_DRIVER(mystwarr_state, screen_update_metamrph)
10471047
10481048   MCFG_SCREEN_MODIFY("screen")
10491049   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(900))
r17967r17968
10681068   /* video hardware */
10691069   MCFG_VIDEO_START_OVERRIDE(mystwarr_state,metamrph)
10701070   MCFG_SCREEN_MODIFY("screen")
1071   MCFG_SCREEN_UPDATE_STATIC(metamrph)
1071   MCFG_SCREEN_UPDATE_DRIVER(mystwarr_state, screen_update_metamrph)
10721072
10731073   MCFG_SCREEN_MODIFY("screen")
10741074   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(900))
r17967r17968
10941094   /* video hardware */
10951095   MCFG_VIDEO_START_OVERRIDE(mystwarr_state,dadandrn)
10961096   MCFG_SCREEN_MODIFY("screen")
1097   MCFG_SCREEN_UPDATE_STATIC(dadandrn)
1097   MCFG_SCREEN_UPDATE_DRIVER(mystwarr_state, screen_update_dadandrn)
10981098
10991099   MCFG_SCREEN_MODIFY("screen")
11001100   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(600))
r17967r17968
11231123   /* video hardware */
11241124   MCFG_VIDEO_START_OVERRIDE(mystwarr_state,gaiapols)
11251125   MCFG_SCREEN_MODIFY("screen")
1126   MCFG_SCREEN_UPDATE_STATIC(dadandrn)
1126   MCFG_SCREEN_UPDATE_DRIVER(mystwarr_state, screen_update_dadandrn)
11271127
11281128   MCFG_SCREEN_MODIFY("screen")
11291129   MCFG_SCREEN_RAW_PARAMS(8000000, 384+24+64+40, 0, 383, 224+16+8+16, 0, 223)
r17967r17968
11501150   MCFG_VIDEO_START_OVERRIDE(mystwarr_state,martchmp)
11511151
11521152   MCFG_SCREEN_MODIFY("screen")
1153   MCFG_SCREEN_UPDATE_STATIC(martchmp)
1153   MCFG_SCREEN_UPDATE_DRIVER(mystwarr_state, screen_update_martchmp)
11541154   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
11551155   MCFG_SCREEN_SIZE(64*8, 32*8)
11561156   MCFG_SCREEN_VISIBLE_AREA(32, 32+384-1, 16, 16+224-1)
trunk/src/mame/drivers/dlair.c
r17967r17968
113113   DECLARE_MACHINE_START(dlair);
114114   DECLARE_MACHINE_RESET(dlair);
115115   DECLARE_PALETTE_INIT(dleuro);
116   UINT32 screen_update_dleuro(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
116117};
117118
118119
r17967r17968
226227 *
227228 *************************************/
228229
229static SCREEN_UPDATE_IND16( dleuro )
230UINT32 dlair_state::screen_update_dleuro(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
230231{
231   dlair_state *state = screen.machine().driver_data<dlair_state>();
232   UINT8 *videoram = state->m_videoram;
232   UINT8 *videoram = m_videoram;
233233   int x, y;
234234
235235   /* redraw the overlay */
r17967r17968
772772   MCFG_MACHINE_RESET_OVERRIDE(dlair_state,dlair)
773773
774774   MCFG_LASERDISC_22VP932_ADD("ld_22vp932")
775   MCFG_LASERDISC_OVERLAY_STATIC(256, 256, dleuro)
775   MCFG_LASERDISC_OVERLAY_DRIVER(256, 256, dlair_state, screen_update_dleuro)
776776
777777   /* video hardware */
778778   MCFG_LASERDISC_SCREEN_ADD_PAL("screen", "ld_22vp932")
trunk/src/mame/drivers/jollyjgr.c
r17967r17968
139139   virtual void machine_reset();
140140   virtual void video_start();
141141   virtual void palette_init();
142   UINT32 screen_update_jollyjgr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
143   UINT32 screen_update_fspider(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
142144};
143145
144146
r17967r17968
492494   }
493495}
494496
495static SCREEN_UPDATE_IND16( jollyjgr )
497UINT32 jollyjgr_state::screen_update_jollyjgr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
496498{
497   jollyjgr_state *state = screen.machine().driver_data<jollyjgr_state>();
498   UINT8 *spriteram = state->m_spriteram;
499   UINT8 *spriteram = m_spriteram;
499500   int offs;
500501
501502   bitmap.fill(32, cliprect);
502503
503   if(state->m_pri) //used in Frog & Spiders level 3
504   if(m_pri) //used in Frog & Spiders level 3
504505   {
505      if(!(state->m_bitmap_disable))
506      if(!(m_bitmap_disable))
506507         draw_bitmap(screen.machine(), bitmap);
507508
508      state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
509      m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
509510   }
510511   else
511512   {
512      state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
513      m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
513514
514      if(!(state->m_bitmap_disable))
515      if(!(m_bitmap_disable))
515516         draw_bitmap(screen.machine(), bitmap);
516517   }
517518
r17967r17968
525526      int code = spriteram[offs + 1] & 0x3f;
526527      int color = spriteram[offs + 2] & 7;
527528
528      if (state->m_flip_x)
529      if (m_flip_x)
529530      {
530531         sx = 240 - sx;
531532         flipx = !flipx;
532533      }
533534
534      if (state->m_flip_y)
535      if (m_flip_y)
535536         flipy = !flipy;
536537      else
537538         sy = 240 - sy;
r17967r17968
548549   return 0;
549550}
550551
551static SCREEN_UPDATE_IND16( fspider )
552UINT32 jollyjgr_state::screen_update_fspider(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
552553{
553   jollyjgr_state *state = screen.machine().driver_data<jollyjgr_state>();
554554
555555   // Draw bg and sprites
556   SCREEN_UPDATE16_CALL(jollyjgr);
556   SCREEN_UPDATE16_CALL_MEMBER(jollyjgr);
557557
558558   /* Draw bullets
559559    16 bytes, 2 bytes per bullet (y,x). 2 player bullets, 6 enemy bullets.
560560    Assume bullets to look the same as on Galaxian hw,
561561    that is, simply 4 pixels. Colours are unknown. */
562562   for (int offs=0;offs<0x10;offs+=2) {
563      UINT8 sy=~state->m_bulletram[offs];
564      UINT8 sx=~state->m_bulletram[offs|1];
563      UINT8 sy=~m_bulletram[offs];
564      UINT8 sx=~m_bulletram[offs|1];
565565      UINT16 bc=(offs<4)?
566566         32+7: // player, white
567567         32+3; // enemy, yellow
568568
569      if (state->m_flip_y) sy^=0xff;
570      if (state->m_flip_x) sx+=8;
569      if (m_flip_y) sy^=0xff;
570      if (m_flip_x) sx+=8;
571571
572572      if (sy>=cliprect.min_y && sy<=cliprect.max_y)
573573         for (int x=sx-4;x<sx;x++)
r17967r17968
663663   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
664664   MCFG_SCREEN_SIZE(256, 256)
665665   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
666   MCFG_SCREEN_UPDATE_STATIC(jollyjgr)
666   MCFG_SCREEN_UPDATE_DRIVER(jollyjgr_state, screen_update_jollyjgr)
667667
668668   MCFG_GFXDECODE(jollyjgr)
669669   MCFG_PALETTE_LENGTH(32+8) /* 32 for tilemap and sprites + 8 for the bitmap */
r17967r17968
682682   MCFG_CPU_PROGRAM_MAP(fspider_map)
683683
684684   MCFG_SCREEN_MODIFY("screen")
685   MCFG_SCREEN_UPDATE_STATIC(fspider)
685   MCFG_SCREEN_UPDATE_DRIVER(jollyjgr_state, screen_update_fspider)
686686
687687MACHINE_CONFIG_END
688688
trunk/src/mame/drivers/irobot.c
r17967r17968
302302   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
303303   MCFG_SCREEN_SIZE(32*8, 32*8)
304304   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 29*8-1)
305   MCFG_SCREEN_UPDATE_STATIC(irobot)
305   MCFG_SCREEN_UPDATE_DRIVER(irobot_state, screen_update_irobot)
306306
307307   MCFG_GFXDECODE(irobot)
308308   MCFG_PALETTE_LENGTH(64 + 32)   /* 64 for polygons, 32 for text */
trunk/src/mame/drivers/klax.c
r17967r17968
184184   /* note: these parameters are from published specs, not derived */
185185   /* the board uses an SOS-2 chip to generate video signals */
186186   MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
187   MCFG_SCREEN_UPDATE_STATIC(klax)
187   MCFG_SCREEN_UPDATE_DRIVER(klax_state, screen_update_klax)
188188
189189   MCFG_VIDEO_START_OVERRIDE(klax_state,klax)
190190
trunk/src/mame/drivers/quizpani.c
r17967r17968
208208   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
209209   MCFG_SCREEN_SIZE(64*8, 32*8)
210210   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 28*8-1)
211   MCFG_SCREEN_UPDATE_STATIC(quizpani)
211   MCFG_SCREEN_UPDATE_DRIVER(quizpani_state, screen_update_quizpani)
212212
213213
214214   MCFG_SPEAKER_STANDARD_MONO("mono")
trunk/src/mame/drivers/gomoku.c
r17967r17968
129129   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
130130   MCFG_SCREEN_SIZE(256, 256)
131131   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1)
132   MCFG_SCREEN_UPDATE_STATIC(gomoku)
132   MCFG_SCREEN_UPDATE_DRIVER(gomoku_state, screen_update_gomoku)
133133
134134   MCFG_GFXDECODE(gomoku)
135135   MCFG_PALETTE_LENGTH(64)
trunk/src/mame/drivers/ssfindo.c
r17967r17968
246246   DECLARE_DRIVER_INIT(ppcar);
247247   DECLARE_DRIVER_INIT(tetfight);
248248   virtual void machine_reset();
249   UINT32 screen_update_ssfindo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
249250};
250251
251252
r17967r17968
253254static void PS7500_startTimer1(running_machine &machine);
254255
255256
256static SCREEN_UPDATE_IND16(ssfindo)
257UINT32 ssfindo_state::screen_update_ssfindo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
257258{
258   ssfindo_state *state = screen.machine().driver_data<ssfindo_state>();
259259   int s,x,y;
260260
261   if( state->m_PS7500_IO[VIDCR]&0x20) //video DMA enabled
261   if( m_PS7500_IO[VIDCR]&0x20) //video DMA enabled
262262   {
263      s=( (state->m_PS7500_IO[VIDINITA]&0x1fffffff)-0x10000000)/4;
263      s=( (m_PS7500_IO[VIDINITA]&0x1fffffff)-0x10000000)/4;
264264
265265      if(s>=0 && s<(0x10000000/4))
266266      {
267267         for(y=0;y<256;y++)
268268            for(x=0;x<320;x+=4)
269269            {
270               bitmap.pix16(y, x+0) = state->m_vram[s]&0xff;
271               bitmap.pix16(y, x+1) = (state->m_vram[s]>>8)&0xff;
272               bitmap.pix16(y, x+2) = (state->m_vram[s]>>16)&0xff;
273               bitmap.pix16(y, x+3) = (state->m_vram[s]>>24)&0xff;
270               bitmap.pix16(y, x+0) = m_vram[s]&0xff;
271               bitmap.pix16(y, x+1) = (m_vram[s]>>8)&0xff;
272               bitmap.pix16(y, x+2) = (m_vram[s]>>16)&0xff;
273               bitmap.pix16(y, x+3) = (m_vram[s]>>24)&0xff;
274274               s++;
275275            }
276276      }
r17967r17968
765765   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
766766   MCFG_SCREEN_SIZE(320, 256)
767767   MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
768   MCFG_SCREEN_UPDATE_STATIC(ssfindo)
768   MCFG_SCREEN_UPDATE_DRIVER(ssfindo_state, screen_update_ssfindo)
769769
770770   MCFG_PALETTE_LENGTH(256)
771771MACHINE_CONFIG_END
trunk/src/mame/drivers/firetrk.c
r17967r17968
887887   MCFG_SCREEN_REFRESH_RATE(60)
888888   MCFG_SCREEN_SIZE(320, 262)
889889   MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
890   MCFG_SCREEN_UPDATE_STATIC(firetrk)
890   MCFG_SCREEN_UPDATE_DRIVER(firetrk_state, screen_update_firetrk)
891891
892892   MCFG_PALETTE_LENGTH(28)
893893   MCFG_GFXDECODE(firetrk)
r17967r17968
909909
910910   /* video hardware */
911911   MCFG_SCREEN_MODIFY("screen")
912   MCFG_SCREEN_UPDATE_STATIC(superbug)
912   MCFG_SCREEN_UPDATE_DRIVER(firetrk_state, screen_update_superbug)
913913
914914   MCFG_VIDEO_START_OVERRIDE(firetrk_state,superbug)
915915   MCFG_GFXDECODE(superbug)
r17967r17968
930930
931931   /* video hardware */
932932   MCFG_SCREEN_MODIFY("screen")
933   MCFG_SCREEN_UPDATE_STATIC(montecar)
933   MCFG_SCREEN_UPDATE_DRIVER(firetrk_state, screen_update_montecar)
934934
935935   MCFG_VIDEO_START_OVERRIDE(firetrk_state,montecar)
936936   MCFG_GFXDECODE(montecar)
trunk/src/mame/drivers/m57.c
r17967r17968
238238            /* talks about 55Hz and 1790ms vblank duration. */
239239   MCFG_SCREEN_SIZE(32*8, 32*8)
240240   MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 1*8, 31*8-1)
241   MCFG_SCREEN_UPDATE_STATIC(m57)
241   MCFG_SCREEN_UPDATE_DRIVER(m57_state, screen_update_m57)
242242
243243   MCFG_GFXDECODE(m57)
244244   MCFG_PALETTE_LENGTH(32*8+32*8)
trunk/src/mame/drivers/segas24.c
r17967r17968
19671967
19681968   MCFG_SCREEN_ADD("screen", RASTER)
19691969   MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK/2, 656, 0/*+69*/, 496/*+69*/, 424, 0/*+25*/, 384/*+25*/)
1970   MCFG_SCREEN_UPDATE_STATIC(system24)
1970   MCFG_SCREEN_UPDATE_DRIVER(segas24_state, screen_update_system24)
19711971
19721972   MCFG_PALETTE_LENGTH(8192*2)
19731973
trunk/src/mame/drivers/peplus.c
r17967r17968
266266   virtual void machine_reset();
267267   virtual void video_start();
268268   virtual void palette_init();
269   UINT32 screen_update_peplus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
269270};
270271
271272static const UINT8  id_022[8] = { 0x00, 0x01, 0x04, 0x09, 0x13, 0x16, 0x18, 0x00 };
r17967r17968
968969   memset(m_palette_ram2, 0, 0x3000);
969970}
970971
971static SCREEN_UPDATE_IND16( peplus )
972UINT32 peplus_state::screen_update_peplus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
972973{
973   peplus_state *state = screen.machine().driver_data<peplus_state>();
974   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
974   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
975975
976976   return 0;
977977}
r17967r17968
13521352   MCFG_SCREEN_REFRESH_RATE(60)
13531353   MCFG_SCREEN_SIZE((52+1)*8, (31+1)*8)
13541354   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 25*8-1)
1355   MCFG_SCREEN_UPDATE_STATIC(peplus)
1355   MCFG_SCREEN_UPDATE_DRIVER(peplus_state, screen_update_peplus)
13561356
13571357   MCFG_GFXDECODE(peplus)
13581358   MCFG_PALETTE_LENGTH(16*16*2)
trunk/src/mame/drivers/ddayjlc.c
r17967r17968
105105   virtual void machine_reset();
106106   virtual void video_start();
107107   virtual void palette_init();
108   UINT32 screen_update_ddayjlc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
108109};
109110
110111
r17967r17968
388389   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);
389390}
390391
391static SCREEN_UPDATE_IND16( ddayjlc )
392UINT32 ddayjlc_state::screen_update_ddayjlc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
392393{
393   ddayjlc_state *state = screen.machine().driver_data<ddayjlc_state>();
394394   UINT32 i;
395   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
395   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
396396
397397   for (i = 0; i < 0x400; i += 4)
398398   {
399      UINT8  flags = state->m_spriteram[i + 2];
400      UINT8  y = 256 - state->m_spriteram[i + 0] - 8;
401      UINT16 code = state->m_spriteram[i + 1];
402      UINT8  x = state->m_spriteram[i + 3] - 16;
399      UINT8  flags = m_spriteram[i + 2];
400      UINT8  y = 256 - m_spriteram[i + 0] - 8;
401      UINT16 code = m_spriteram[i + 1];
402      UINT8  x = m_spriteram[i + 3] - 16;
403403      UINT8  xflip = flags & 0x80;
404404      UINT8  yflip = (code & 0x80);
405405      UINT8  color = flags & 0xf;
r17967r17968
415415      for (y = 0; y < 32; y++)
416416         for (x = 0; x < 32; x++)
417417         {
418            c = state->m_videoram[y * 32 + x];
418            c = m_videoram[y * 32 + x];
419419            if (x > 1 && x < 30)
420               drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1], c + state->m_char_bank * 0x100, 2, 0, 0, x*8, y*8, 0);
420               drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1], c + m_char_bank * 0x100, 2, 0, 0, x*8, y*8, 0);
421421            else
422               drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[1], c + state->m_char_bank * 0x100, 2, 0, 0, x*8, y*8);
422               drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[1], c + m_char_bank * 0x100, 2, 0, 0, x*8, y*8);
423423         }
424424   }
425425   return 0;
r17967r17968
533533   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
534534   MCFG_SCREEN_SIZE(32*8, 32*8)
535535   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
536   MCFG_SCREEN_UPDATE_STATIC(ddayjlc)
536   MCFG_SCREEN_UPDATE_DRIVER(ddayjlc_state, screen_update_ddayjlc)
537537
538538   MCFG_GFXDECODE(ddayjlc)
539539   MCFG_PALETTE_LENGTH(0x200)
trunk/src/mame/drivers/konamigx.c
r17967r17968
17891789//  MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(600))
17901790   MCFG_SCREEN_SIZE(64*8, 32*8)
17911791   MCFG_SCREEN_VISIBLE_AREA(24, 24+288-1, 16, 16+224-1)
1792   MCFG_SCREEN_UPDATE_STATIC(konamigx)
1792   MCFG_SCREEN_UPDATE_DRIVER(konamigx_state, screen_update_konamigx)
17931793
17941794   MCFG_PALETTE_LENGTH(8192)
17951795
r17967r17968
18691869   MCFG_SCREEN_MODIFY("screen")
18701870   MCFG_SCREEN_SIZE(576, 264)
18711871   MCFG_SCREEN_VISIBLE_AREA(0, 576-1, 16, 32*8-1-16)
1872   MCFG_SCREEN_UPDATE_STATIC(konamigx_left)
1872   MCFG_SCREEN_UPDATE_DRIVER(konamigx_state, screen_update_konamigx_left)
18731873
18741874   MCFG_SCREEN_ADD("screen2", RASTER)
18751875   MCFG_SCREEN_RAW_PARAMS(6000000, 288+16+32+48, 0, 287, 224+16+8+16, 0, 223)
18761876   MCFG_SCREEN_SIZE(576, 264)
18771877   MCFG_SCREEN_VISIBLE_AREA(0, 576-1, 16, 32*8-1-16)
1878   MCFG_SCREEN_UPDATE_STATIC(konamigx_right)
1878   MCFG_SCREEN_UPDATE_DRIVER(konamigx_state, screen_update_konamigx_right)
18791879
18801880   MCFG_GFXDECODE(type34)
18811881MACHINE_CONFIG_END
r17967r17968
18941894   MCFG_SCREEN_MODIFY("screen")
18951895   MCFG_SCREEN_SIZE(128*8, 264)
18961896   MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 16, 32*8-1-16)
1897   MCFG_SCREEN_UPDATE_STATIC(konamigx_left)
1897   MCFG_SCREEN_UPDATE_DRIVER(konamigx_state, screen_update_konamigx_left)
18981898
18991899   MCFG_SCREEN_ADD("screen2", RASTER)
19001900   MCFG_SCREEN_RAW_PARAMS(6000000, 288+16+32+48, 0, 287, 224+16+8+16, 0, 223)
19011901   MCFG_SCREEN_SIZE(128*8, 264)
19021902   MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 16, 32*8-1-16)
1903   MCFG_SCREEN_UPDATE_STATIC(konamigx_right)
1903   MCFG_SCREEN_UPDATE_DRIVER(konamigx_state, screen_update_konamigx_right)
19041904
19051905   MCFG_PALETTE_LENGTH(8192)
19061906   MCFG_GFXDECODE(type4)
trunk/src/mame/drivers/sprcros2.c
r17967r17968
297297   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
298298   MCFG_SCREEN_SIZE(32*8, 32*8)
299299   MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1)
300   MCFG_SCREEN_UPDATE_STATIC(sprcros2)
300   MCFG_SCREEN_UPDATE_DRIVER(sprcros2_state, screen_update_sprcros2)
301301
302302   MCFG_GFXDECODE(sprcros2)
303303   MCFG_PALETTE_LENGTH(768)
trunk/src/mame/drivers/triforce.c
r17967r17968
421421   DECLARE_WRITE64_MEMBER(gc_exi_w);
422422   virtual void machine_start();
423423   virtual void video_start();
424   UINT32 screen_update_triforce(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
424425};
425426
426427READ64_MEMBER(triforce_state::gc_pi_r)
r17967r17968
456457
457458}
458459
459static SCREEN_UPDATE_RGB32(triforce)
460UINT32 triforce_state::screen_update_triforce(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
460461{
461462   return 0;
462463}
r17967r17968
541542   MCFG_SCREEN_REFRESH_RATE(60)
542543   MCFG_SCREEN_SIZE(640, 480)
543544   MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479)
544   MCFG_SCREEN_UPDATE_STATIC(triforce)
545   MCFG_SCREEN_UPDATE_DRIVER(triforce_state, screen_update_triforce)
545546
546547   MCFG_PALETTE_LENGTH(65536)
547548
trunk/src/mame/drivers/dorachan.c
r17967r17968
3535   DECLARE_CUSTOM_INPUT_MEMBER(dorachan_v128_r);
3636   virtual void machine_start();
3737   virtual void machine_reset();
38   UINT32 screen_update_dorachan(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
3839};
3940
4041
r17967r17968
8182}
8283
8384
84static SCREEN_UPDATE_RGB32( dorachan )
85UINT32 dorachan_state::screen_update_dorachan(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
8586{
86   dorachan_state *state = screen.machine().driver_data<dorachan_state>();
8787   pen_t pens[NUM_PENS];
8888   offs_t offs;
8989   const UINT8 *color_map_base;
9090
9191   get_pens(pens);
9292
93   color_map_base = state->memregion("proms")->base();
93   color_map_base = memregion("proms")->base();
9494
95   for (offs = 0; offs < state->m_videoram.bytes(); offs++)
95   for (offs = 0; offs < m_videoram.bytes(); offs++)
9696   {
9797      int i;
9898      UINT8 fore_color;
r17967r17968
103103      /* the need for +1 is extremely unusual, but definetely correct */
104104      offs_t color_address = ((((offs << 2) & 0x03e0) | (offs >> 8)) + 1) & 0x03ff;
105105
106      UINT8 data = state->m_videoram[offs];
106      UINT8 data = m_videoram[offs];
107107
108      if (state->m_flip_screen)
108      if (m_flip_screen)
109109         fore_color = (color_map_base[color_address] >> 3) & 0x07;
110110      else
111111         fore_color = (color_map_base[color_address] >> 0) & 0x07;
r17967r17968
251251   MCFG_SCREEN_SIZE(32*8, 32*8)
252252   MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 1*8, 31*8-1)
253253   MCFG_SCREEN_REFRESH_RATE(60)
254   MCFG_SCREEN_UPDATE_STATIC(dorachan)
254   MCFG_SCREEN_UPDATE_DRIVER(dorachan_state, screen_update_dorachan)
255255
256256MACHINE_CONFIG_END
257257
trunk/src/mame/drivers/thunderj.c
r17967r17968
305305   /* note: these parameters are from published specs, not derived */
306306   /* the board uses a VAD chip to generate video signals */
307307   MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
308   MCFG_SCREEN_UPDATE_STATIC(thunderj)
308   MCFG_SCREEN_UPDATE_DRIVER(thunderj_state, screen_update_thunderj)
309309
310310   MCFG_VIDEO_START_OVERRIDE(thunderj_state,thunderj)
311311
trunk/src/mame/drivers/parodius.c
r17967r17968
304304   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
305305   MCFG_SCREEN_SIZE(64*8, 32*8)
306306   MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
307   MCFG_SCREEN_UPDATE_STATIC(parodius)
307   MCFG_SCREEN_UPDATE_DRIVER(parodius_state, screen_update_parodius)
308308
309309   MCFG_PALETTE_LENGTH(2048)
310310
trunk/src/mame/drivers/combatsc.c
r17967r17968
750750   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
751751   MCFG_SCREEN_SIZE(32*8, 32*8)
752752   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
753   MCFG_SCREEN_UPDATE_STATIC(combatsc)
753   MCFG_SCREEN_UPDATE_DRIVER(combatsc_state, screen_update_combatsc)
754754
755755   MCFG_GFXDECODE(combatsc)
756756   MCFG_PALETTE_LENGTH(8*16*16)
r17967r17968
801801   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
802802   MCFG_SCREEN_SIZE(32*8, 32*8)
803803   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
804   MCFG_SCREEN_UPDATE_STATIC(combatscb)
804   MCFG_SCREEN_UPDATE_DRIVER(combatsc_state, screen_update_combatscb)
805805
806806   MCFG_GFXDECODE(combatscb)
807807   MCFG_PALETTE_LENGTH(8*16*16)
trunk/src/mame/drivers/rockrage.c
r17967r17968
275275   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
276276   MCFG_SCREEN_SIZE(32*8, 32*8)
277277   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
278   MCFG_SCREEN_UPDATE_STATIC(rockrage)
278   MCFG_SCREEN_UPDATE_DRIVER(rockrage_state, screen_update_rockrage)
279279
280280   MCFG_K007342_ADD("k007342", rockrage_k007342_intf)
281281   MCFG_K007420_ADD("k007420", rockrage_k007420_intf)
trunk/src/mame/drivers/quizpun2.c
r17967r17968
112112   TILE_GET_INFO_MEMBER(get_fg_tile_info);
113113   virtual void machine_reset();
114114   virtual void video_start();
115   UINT32 screen_update_quizpun2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
115116};
116117
117118
r17967r17968
155156   m_fg_tmap->set_transparent_pen(0);
156157}
157158
158static SCREEN_UPDATE_IND16(quizpun2)
159UINT32 quizpun2_state::screen_update_quizpun2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
159160{
160   quizpun2_state *state = screen.machine().driver_data<quizpun2_state>();
161161   int layers_ctrl = -1;
162162
163163#ifdef MAME_DEBUG
r17967r17968
170170   }
171171#endif
172172
173   if (layers_ctrl & 1)   state->m_bg_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
173   if (layers_ctrl & 1)   m_bg_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
174174   else               bitmap.fill(get_black_pen(screen.machine()), cliprect);
175175
176176bitmap.fill(get_black_pen(screen.machine()), cliprect);
177   if (layers_ctrl & 2)   state->m_fg_tmap->draw(bitmap, cliprect, 0, 0);
177   if (layers_ctrl & 2)   m_fg_tmap->draw(bitmap, cliprect, 0, 0);
178178
179179   return 0;
180180}
r17967r17968
503503   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
504504   MCFG_SCREEN_SIZE(256, 256)
505505   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1)
506   MCFG_SCREEN_UPDATE_STATIC(quizpun2)
506   MCFG_SCREEN_UPDATE_DRIVER(quizpun2_state, screen_update_quizpun2)
507507
508508   MCFG_GFXDECODE(quizpun2)
509509   MCFG_PALETTE_LENGTH(0x200)
trunk/src/mame/drivers/egghunt.c
r17967r17968
7979   virtual void machine_start();
8080   virtual void machine_reset();
8181   virtual void video_start();
82   UINT32 screen_update_egghunt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8283};
8384
8485
r17967r17968
180181   save_item(NAME(m_spram));
181182}
182183
183static SCREEN_UPDATE_IND16(egghunt)
184UINT32 egghunt_state::screen_update_egghunt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
184185{
185   egghunt_state *state = screen.machine().driver_data<egghunt_state>();
186   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
186   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
187187   draw_sprites(screen.machine(), bitmap, cliprect);
188188   return 0;
189189}
r17967r17968
424424   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
425425   MCFG_SCREEN_SIZE(64*8, 32*8)
426426   MCFG_SCREEN_VISIBLE_AREA(8*8, 56*8-1, 1*8, 31*8-1)
427   MCFG_SCREEN_UPDATE_STATIC(egghunt)
427   MCFG_SCREEN_UPDATE_DRIVER(egghunt_state, screen_update_egghunt)
428428
429429   MCFG_GFXDECODE(egghunt)
430430   MCFG_PALETTE_LENGTH(0x400)
trunk/src/mame/drivers/segac2.c
r17967r17968
12731273
12741274// C2 doesn't use the internal VDP CRAM, instead it uses the digital output of the chip
12751275//  and applies it's own external colour circuity
1276static SCREEN_UPDATE_RGB32(segac2_new)
1276UINT32 segac2_state::screen_update_segac2_new(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
12771277{
12781278   const pen_t *paldata = screen.machine().pens;
1279   segac2_state *state = screen.machine().driver_data<segac2_state>();
1280   if (!state->m_segac2_enable_display)
1279   if (!m_segac2_enable_display)
12811280   {
12821281      bitmap.fill(get_black_pen(screen.machine()), cliprect);
12831282      return 0;
12841283   }
12851284
1286   sega_genesis_vdp_device *vdp = state->m_vdp;
1285   sega_genesis_vdp_device *vdp = m_vdp;
12871286
12881287   /* Copy our screen buffer here */
12891288   for (int y = cliprect.min_y; y <= cliprect.max_y; y++)
r17967r17968
13941393   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) // Vblank handled manually.
13951394   MCFG_SCREEN_SIZE(64*8, 64*8)
13961395   MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 0, 28*8-1)
1397   MCFG_SCREEN_UPDATE_STATIC(segac2_new)
1396   MCFG_SCREEN_UPDATE_DRIVER(segac2_state, screen_update_segac2_new)
13981397   MCFG_SCREEN_VBLANK_STATIC( megadriv )
13991398
14001399   MCFG_PALETTE_LENGTH(2048*3)
trunk/src/mame/drivers/bigstrkb.c
r17967r17968
207207   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
208208   MCFG_SCREEN_SIZE(32*8, 32*8)
209209   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
210   MCFG_SCREEN_UPDATE_STATIC(bigstrkb)
210   MCFG_SCREEN_UPDATE_DRIVER(bigstrkb_state, screen_update_bigstrkb)
211211
212212   MCFG_PALETTE_LENGTH(0x400)
213213
trunk/src/mame/drivers/stfight.c
r17967r17968
451451   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
452452   MCFG_SCREEN_SIZE(32*8, 32*8)
453453   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
454   MCFG_SCREEN_UPDATE_STATIC(stfight)
454   MCFG_SCREEN_UPDATE_DRIVER(stfight_state, screen_update_stfight)
455455
456456   MCFG_GFXDECODE(stfight)
457457   MCFG_PALETTE_LENGTH(16*4+16*16+16*16+16*16)
trunk/src/mame/drivers/gberet.c
r17967r17968
434434   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
435435   MCFG_SCREEN_SIZE(32*8, 32*8)
436436   MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1)
437   MCFG_SCREEN_UPDATE_STATIC(gberet)
437   MCFG_SCREEN_UPDATE_DRIVER(gberet_state, screen_update_gberet)
438438
439439   MCFG_GFXDECODE(gberet)
440440   MCFG_PALETTE_LENGTH(2*16*16)
r17967r17968
474474   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
475475   MCFG_SCREEN_SIZE(32*8, 32*8)
476476   MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1)
477   MCFG_SCREEN_UPDATE_STATIC(gberetb)
477   MCFG_SCREEN_UPDATE_DRIVER(gberet_state, screen_update_gberetb)
478478
479479   MCFG_GFXDECODE(gberetb)
480480   MCFG_PALETTE_LENGTH(2*16*16)
trunk/src/mame/drivers/sandscrp.c
r17967r17968
109109   DECLARE_READ8_MEMBER(sandscrp_soundlatch_r);
110110   DECLARE_WRITE8_MEMBER(sandscrp_soundlatch_w);
111111   virtual void machine_reset();
112   UINT32 screen_update_sandscrp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
113   void screen_eof_sandscrp(screen_device &screen, bool state);
112114};
113115
114116
115117
116SCREEN_UPDATE_IND16( sandscrp )
118UINT32 sandscrp_state::screen_update_sandscrp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
117119{
118   sandscrp_state *state = screen.machine().driver_data<sandscrp_state>();
119120   device_t *pandora = screen.machine().device("pandora");
120121   bitmap.fill(0, cliprect);
121122
r17967r17968
123124
124125   screen.machine().priority_bitmap.fill(0, cliprect);
125126
126   state->m_view2_0->kaneko16_prepare(bitmap, cliprect);
127   m_view2_0->kaneko16_prepare(bitmap, cliprect);
127128
128129   for ( i = 0; i < 8; i++ )
129130   {
130      state->m_view2_0->render_tilemap_chip(bitmap,cliprect,i);
131      m_view2_0->render_tilemap_chip(bitmap,cliprect,i);
131132   }
132133
133134   // copy sprite bitmap to screen
r17967r17968
167168}
168169
169170
170static SCREEN_VBLANK( sandscrp )
171void sandscrp_state::screen_eof_sandscrp(screen_device &screen, bool state)
171172{
172173   // rising edge
173   if (vblank_on)
174   if (state)
174175   {
175      sandscrp_state *state = screen.machine().driver_data<sandscrp_state>();
176176      device_t *pandora = screen.machine().device("pandora");
177      state->m_sprite_irq = 1;
177      m_sprite_irq = 1;
178178      update_irq_state(screen.machine());
179179      pandora_eof(pandora);
180180   }
r17967r17968
515515   MCFG_SCREEN_VBLANK_TIME( ATTOSECONDS_IN_USEC(2500) /* not accurate */ )
516516   MCFG_SCREEN_SIZE(256, 256)
517517   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1)
518   MCFG_SCREEN_UPDATE_STATIC(sandscrp)
519   MCFG_SCREEN_VBLANK_STATIC(sandscrp)
518   MCFG_SCREEN_UPDATE_DRIVER(sandscrp_state, screen_update_sandscrp)
519   MCFG_SCREEN_VBLANK_DRIVER(sandscrp_state, screen_eof_sandscrp)
520520
521521   MCFG_GFXDECODE(sandscrp)
522522   MCFG_PALETTE_LENGTH(2048)
trunk/src/mame/drivers/gpworld.c
r17967r17968
7171   DECLARE_WRITE8_MEMBER(palette_write);
7272   DECLARE_DRIVER_INIT(gpworld);
7373   virtual void machine_start();
74   UINT32 screen_update_gpworld(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
7475};
7576
7677
r17967r17968
223224}
224225
225226
226static SCREEN_UPDATE_RGB32( gpworld )
227UINT32 gpworld_state::screen_update_gpworld(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
227228{
228229   bitmap.fill(0, cliprect);
229230
r17967r17968
470471
471472
472473   MCFG_LASERDISC_LDV1000_ADD("laserdisc")
473   MCFG_LASERDISC_OVERLAY_STATIC(512, 256, gpworld)
474   MCFG_LASERDISC_OVERLAY_DRIVER(512, 256, gpworld_state, screen_update_gpworld)
474475
475476   /* video hardware */
476477   MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc")
trunk/src/mame/drivers/tubep.c
r17967r17968
913913   MCFG_SCREEN_REFRESH_RATE(60)
914914   MCFG_SCREEN_SIZE(256, 264)
915915   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
916   MCFG_SCREEN_UPDATE_STATIC(tubep)
916   MCFG_SCREEN_UPDATE_DRIVER(tubep_state, screen_update_tubep)
917917
918918   MCFG_PALETTE_LENGTH(32 + 256*64)
919919
r17967r17968
973973   MCFG_SCREEN_REFRESH_RATE(60)
974974   MCFG_SCREEN_SIZE(256, 264)
975975   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
976   MCFG_SCREEN_UPDATE_STATIC(rjammer)
976   MCFG_SCREEN_UPDATE_DRIVER(tubep_state, screen_update_rjammer)
977977
978978   MCFG_PALETTE_LENGTH(64)
979979
trunk/src/mame/drivers/exidy.c
r17967r17968
815815
816816   MCFG_SCREEN_ADD("screen", RASTER)
817817   MCFG_SCREEN_RAW_PARAMS(EXIDY_PIXEL_CLOCK, EXIDY_HTOTAL, EXIDY_HBEND, EXIDY_HBSTART, EXIDY_VTOTAL, EXIDY_VBEND, EXIDY_VBSTART)
818   MCFG_SCREEN_UPDATE_STATIC(exidy)
818   MCFG_SCREEN_UPDATE_DRIVER(exidy_state, screen_update_exidy)
819819
820820MACHINE_CONFIG_END
821821
trunk/src/mame/drivers/homedata.c
r17967r17968
12621262   MCFG_SCREEN_SIZE(64*8, 32*8)
12631263   // visible area can be changed at runtime
12641264   MCFG_SCREEN_VISIBLE_AREA(0*8, 54*8-1, 2*8, 30*8-1)
1265   MCFG_SCREEN_UPDATE_STATIC(mrokumei)
1266   MCFG_SCREEN_VBLANK_STATIC(homedata)
1265   MCFG_SCREEN_UPDATE_DRIVER(homedata_state, screen_update_mrokumei)
1266   MCFG_SCREEN_VBLANK_DRIVER(homedata_state, screen_eof_homedata)
12671267
12681268   MCFG_GFXDECODE(mrokumei)
12691269   MCFG_PALETTE_LENGTH(0x8000)
r17967r17968
13311331   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
13321332   MCFG_SCREEN_SIZE(256, 256)
13331333   MCFG_SCREEN_VISIBLE_AREA(0, 255, 16, 256-1-16)
1334   MCFG_SCREEN_UPDATE_STATIC(reikaids)
1335   MCFG_SCREEN_VBLANK_STATIC(homedata)
1334   MCFG_SCREEN_UPDATE_DRIVER(homedata_state, screen_update_reikaids)
1335   MCFG_SCREEN_VBLANK_DRIVER(homedata_state, screen_eof_homedata)
13361336
13371337   MCFG_GFXDECODE(reikaids)
13381338   MCFG_PALETTE_LENGTH(0x8000)
r17967r17968
13821382   MCFG_SCREEN_SIZE(64*8, 32*8)
13831383   // visible area can be changed at runtime
13841384   MCFG_SCREEN_VISIBLE_AREA(0*8, 54*8-1, 2*8, 30*8-1)
1385   MCFG_SCREEN_UPDATE_STATIC(pteacher)
1386   MCFG_SCREEN_VBLANK_STATIC(homedata)
1385   MCFG_SCREEN_UPDATE_DRIVER(homedata_state, screen_update_pteacher)
1386   MCFG_SCREEN_VBLANK_DRIVER(homedata_state, screen_eof_homedata)
13871387
13881388   MCFG_GFXDECODE(pteacher)
13891389   MCFG_PALETTE_LENGTH(0x8000)
r17967r17968
15461546   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
15471547   MCFG_SCREEN_SIZE(64*8, 32*8)
15481548   MCFG_SCREEN_VISIBLE_AREA(0*8, 54*8-1, 2*8, 30*8-1)
1549   MCFG_SCREEN_UPDATE_STATIC(mirderby)
1549   MCFG_SCREEN_UPDATE_DRIVER(homedata_state, screen_update_mirderby)
15501550
15511551   MCFG_GFXDECODE(mirderby)
15521552   MCFG_PALETTE_LENGTH(0x8000)
trunk/src/mame/drivers/mugsmash.c
r17967r17968
421421   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
422422   MCFG_SCREEN_SIZE(40*8, 32*8)
423423   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
424   MCFG_SCREEN_UPDATE_STATIC(mugsmash)
424   MCFG_SCREEN_UPDATE_DRIVER(mugsmash_state, screen_update_mugsmash)
425425   MCFG_GFXDECODE(mugsmash)
426426
427427   MCFG_PALETTE_LENGTH(0x300)
trunk/src/mame/drivers/pcktgal.c
r17967r17968
235235   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
236236   MCFG_SCREEN_SIZE(32*8, 32*8)
237237   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
238   MCFG_SCREEN_UPDATE_STATIC(pcktgal)
238   MCFG_SCREEN_UPDATE_DRIVER(pcktgal_state, screen_update_pcktgal)
239239
240240   MCFG_GFXDECODE(pcktgal)
241241   MCFG_PALETTE_LENGTH(512)
r17967r17968
262262static MACHINE_CONFIG_DERIVED( bootleg, pcktgal )
263263   MCFG_GFXDECODE(bootleg)
264264   MCFG_SCREEN_MODIFY("screen")
265   MCFG_SCREEN_UPDATE_STATIC(pcktgalb)
265   MCFG_SCREEN_UPDATE_DRIVER(pcktgal_state, screen_update_pcktgalb)
266266MACHINE_CONFIG_END
267267
268268/***************************************************************************/
trunk/src/mame/drivers/jokrwild.c
r17967r17968
117117   TILE_GET_INFO_MEMBER(get_bg_tile_info);
118118   virtual void video_start();
119119   virtual void palette_init();
120   UINT32 screen_update_jokrwild(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
120121};
121122
122123
r17967r17968
160161}
161162
162163
163static SCREEN_UPDATE_IND16( jokrwild )
164UINT32 jokrwild_state::screen_update_jokrwild(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
164165{
165   jokrwild_state *state = screen.machine().driver_data<jokrwild_state>();
166   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
166   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
167167   return 0;
168168}
169169
r17967r17968
493493   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
494494   MCFG_SCREEN_SIZE((32+1)*8, (32+1)*8)                  /* From MC6845, registers 00 & 04. (value-1) */
495495   MCFG_SCREEN_VISIBLE_AREA(0*8, 24*8-1, 0*8, 26*8-1)    /* From MC6845, registers 01 & 06 */
496   MCFG_SCREEN_UPDATE_STATIC(jokrwild)
496   MCFG_SCREEN_UPDATE_DRIVER(jokrwild_state, screen_update_jokrwild)
497497
498498   MCFG_GFXDECODE(jokrwild)
499499   MCFG_PALETTE_LENGTH(512)
trunk/src/mame/drivers/solomon.c
r17967r17968
222222   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
223223   MCFG_SCREEN_SIZE(32*8, 32*8)
224224   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
225   MCFG_SCREEN_UPDATE_STATIC(solomon)
225   MCFG_SCREEN_UPDATE_DRIVER(solomon_state, screen_update_solomon)
226226
227227   MCFG_GFXDECODE(solomon)
228228   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/hng64.c
r17967r17968
18491849
18501850   MCFG_SCREEN_ADD("screen", RASTER)
18511851   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
1852   MCFG_SCREEN_UPDATE_STATIC(hng64)
1852   MCFG_SCREEN_UPDATE_DRIVER(hng64_state, screen_update_hng64)
18531853
18541854   MCFG_PALETTE_LENGTH(0x1000)
18551855
1856   MCFG_SCREEN_VBLANK_STATIC(hng64)
1856   MCFG_SCREEN_VBLANK_DRIVER(hng64_state, screen_eof_hng64)
18571857MACHINE_CONFIG_END
18581858
18591859
trunk/src/mame/drivers/gladiatr.c
r17967r17968
687687   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
688688   MCFG_SCREEN_SIZE(32*8, 32*8)
689689   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
690   MCFG_SCREEN_UPDATE_STATIC(ppking)
690   MCFG_SCREEN_UPDATE_DRIVER(gladiatr_state, screen_update_ppking)
691691
692692   MCFG_GFXDECODE(ppking)
693693   MCFG_PALETTE_LENGTH(1024)
r17967r17968
735735   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
736736   MCFG_SCREEN_SIZE(32*8, 32*8)
737737   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
738   MCFG_SCREEN_UPDATE_STATIC(gladiatr)
738   MCFG_SCREEN_UPDATE_DRIVER(gladiatr_state, screen_update_gladiatr)
739739
740740   MCFG_GFXDECODE(gladiatr)
741741   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/macrossp.c
r17967r17968
635635   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
636636   MCFG_SCREEN_SIZE(32*16, 16*16)
637637   MCFG_SCREEN_VISIBLE_AREA(0*16, 24*16-1, 0*16, 15*16-1)
638   MCFG_SCREEN_UPDATE_STATIC(macrossp)
639   MCFG_SCREEN_VBLANK_STATIC(macrossp)
638   MCFG_SCREEN_UPDATE_DRIVER(macrossp_state, screen_update_macrossp)
639   MCFG_SCREEN_VBLANK_DRIVER(macrossp_state, screen_eof_macrossp)
640640
641641   MCFG_GFXDECODE(macrossp)
642642   MCFG_PALETTE_LENGTH(0x1000)
trunk/src/mame/drivers/imolagp.c
r17967r17968
128128   virtual void machine_start();
129129   virtual void machine_reset();
130130   virtual void video_start();
131   UINT32 screen_update_imolagp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
131132};
132133
133134
r17967r17968
208209}
209210
210211
211static SCREEN_UPDATE_IND16( imolagp )
212UINT32 imolagp_state::screen_update_imolagp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
212213{
213   imolagp_state *state = screen.machine().driver_data<imolagp_state>();
214   int scroll2 = state->m_scroll ^ 0x03;
214   int scroll2 = m_scroll ^ 0x03;
215215   int pass;
216216   for (pass = 0; pass < 2; pass++)
217217   {
218218      int i;
219      const UINT8 *source = state->m_videoram[pass * 2];
219      const UINT8 *source = m_videoram[pass * 2];
220220
221221      for (i = 0; i < 0x4000; i++)
222222      {
r17967r17968
574574   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
575575   MCFG_SCREEN_SIZE(256,256)
576576   MCFG_SCREEN_VISIBLE_AREA(0+64-16,255,0+16,255)
577   MCFG_SCREEN_UPDATE_STATIC(imolagp)
577   MCFG_SCREEN_UPDATE_DRIVER(imolagp_state, screen_update_imolagp)
578578
579579   MCFG_PALETTE_LENGTH(0x20)
580580   MCFG_SPEAKER_STANDARD_MONO("mono")
trunk/src/mame/drivers/poker72.c
r17967r17968
3333   virtual void machine_reset();
3434   virtual void video_start();
3535   virtual void palette_init();
36   UINT32 screen_update_poker72(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3637};
3738
3839
r17967r17968
4041{
4142}
4243
43static SCREEN_UPDATE_IND16(poker72)
44UINT32 poker72_state::screen_update_poker72(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
4445{
45   poker72_state *state = screen.machine().driver_data<poker72_state>();
4646   int x,y,count;
4747
4848   count = 0;
r17967r17968
5151   {
5252      for (x=0;x<64;x++)
5353      {
54         int tile = ((state->m_vram[count+1] & 0x0f) << 8 ) | (state->m_vram[count+0] & 0xff); //TODO: tile bank
55         int fx = (state->m_vram[count+1] & 0x10);
56         int fy = (state->m_vram[count+1] & 0x20);
57         int color = (state->m_vram[count+1] & 0xc0) >> 6;
54         int tile = ((m_vram[count+1] & 0x0f) << 8 ) | (m_vram[count+0] & 0xff); //TODO: tile bank
55         int fx = (m_vram[count+1] & 0x10);
56         int fy = (m_vram[count+1] & 0x20);
57         int color = (m_vram[count+1] & 0xc0) >> 6;
5858
59         tile|= state->m_tile_bank << 12;
59         tile|= m_tile_bank << 12;
6060
6161         drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0],tile,color,fx,fy,x*8,y*8);
6262
r17967r17968
363363   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
364364   MCFG_SCREEN_SIZE(64*8, 32*8)
365365   MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1)
366   MCFG_SCREEN_UPDATE_STATIC(poker72)
366   MCFG_SCREEN_UPDATE_DRIVER(poker72_state, screen_update_poker72)
367367
368368   MCFG_GFXDECODE(poker72)
369369   MCFG_PALETTE_LENGTH(0xe00)
trunk/src/mame/drivers/umipoker.c
r17967r17968
6767   virtual void machine_start();
6868   virtual void machine_reset();
6969   virtual void video_start();
70   UINT32 screen_update_umipoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7071};
7172
7273TILE_GET_INFO_MEMBER(umipoker_state::get_tile_info_0)
r17967r17968
132133
133134}
134135
135static SCREEN_UPDATE_IND16( umipoker )
136UINT32 umipoker_state::screen_update_umipoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
136137{
137   umipoker_state *state = screen.machine().driver_data<umipoker_state>();
138138
139   state->m_tilemap_0->set_scrolly(0, state->m_umipoker_scrolly[0]);
140   state->m_tilemap_1->set_scrolly(0, state->m_umipoker_scrolly[1]);
141   state->m_tilemap_2->set_scrolly(0, state->m_umipoker_scrolly[2]);
142   state->m_tilemap_3->set_scrolly(0, state->m_umipoker_scrolly[3]);
139   m_tilemap_0->set_scrolly(0, m_umipoker_scrolly[0]);
140   m_tilemap_1->set_scrolly(0, m_umipoker_scrolly[1]);
141   m_tilemap_2->set_scrolly(0, m_umipoker_scrolly[2]);
142   m_tilemap_3->set_scrolly(0, m_umipoker_scrolly[3]);
143143
144144   bitmap.fill(get_black_pen(screen.machine()), cliprect);
145145
146   state->m_tilemap_0->draw(bitmap, cliprect, 0,0);
147   state->m_tilemap_1->draw(bitmap, cliprect, 0,0);
148   state->m_tilemap_2->draw(bitmap, cliprect, 0,0);
149   state->m_tilemap_3->draw(bitmap, cliprect, 0,0);
146   m_tilemap_0->draw(bitmap, cliprect, 0,0);
147   m_tilemap_1->draw(bitmap, cliprect, 0,0);
148   m_tilemap_2->draw(bitmap, cliprect, 0,0);
149   m_tilemap_3->draw(bitmap, cliprect, 0,0);
150150
151151   return 0;
152152}
r17967r17968
678678   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
679679   MCFG_SCREEN_SIZE(64*8, 32*8)
680680   MCFG_SCREEN_VISIBLE_AREA(8*8, 48*8-1, 2*8, 32*8-1)
681   MCFG_SCREEN_UPDATE_STATIC(umipoker)
681   MCFG_SCREEN_UPDATE_DRIVER(umipoker_state, screen_update_umipoker)
682682
683683   MCFG_GFXDECODE(umipoker)
684684
trunk/src/mame/drivers/goindol.c
r17967r17968
252252   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
253253   MCFG_SCREEN_SIZE(32*8, 32*8)
254254   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
255   MCFG_SCREEN_UPDATE_STATIC(goindol)
255   MCFG_SCREEN_UPDATE_DRIVER(goindol_state, screen_update_goindol)
256256
257257   MCFG_GFXDECODE(goindol)
258258   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/gyruss.c
r17967r17968
537537   /* video hardware */
538538   MCFG_SCREEN_ADD("screen", RASTER)
539539   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
540   MCFG_SCREEN_UPDATE_STATIC(gyruss)
540   MCFG_SCREEN_UPDATE_DRIVER(gyruss_state, screen_update_gyruss)
541541
542542   MCFG_GFXDECODE(gyruss)
543543   MCFG_PALETTE_LENGTH(16*4+16*16)
trunk/src/mame/drivers/fastlane.c
r17967r17968
228228   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
229229   MCFG_SCREEN_SIZE(37*8, 32*8)
230230   MCFG_SCREEN_VISIBLE_AREA(0*8, 35*8-1, 2*8, 30*8-1)
231   MCFG_SCREEN_UPDATE_STATIC(fastlane)
231   MCFG_SCREEN_UPDATE_DRIVER(fastlane_state, screen_update_fastlane)
232232
233233   MCFG_GFXDECODE(fastlane)
234234   MCFG_PALETTE_LENGTH(1024*16)
trunk/src/mame/drivers/gamecstl.c
r17967r17968
119119   virtual void machine_start();
120120   virtual void machine_reset();
121121   virtual void video_start();
122   UINT32 screen_update_gamecstl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
122123};
123124
124125
r17967r17968
162163   }
163164}
164165
165static SCREEN_UPDATE_IND16(gamecstl)
166UINT32 gamecstl_state::screen_update_gamecstl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
166167{
167   gamecstl_state *state = screen.machine().driver_data<gamecstl_state>();
168168   int i, j;
169169   gfx_element *gfx = screen.machine().gfx[0];
170   UINT32 *cga = state->m_cga_ram;
170   UINT32 *cga = m_cga_ram;
171171   int index = 0;
172172
173173   bitmap.fill(0, cliprect);
r17967r17968
726726   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
727727   MCFG_SCREEN_SIZE(640, 480)
728728   MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 199)
729   MCFG_SCREEN_UPDATE_STATIC(gamecstl)
729   MCFG_SCREEN_UPDATE_DRIVER(gamecstl_state, screen_update_gamecstl)
730730
731731   MCFG_GFXDECODE(CGA)
732732   MCFG_PALETTE_LENGTH(16)
trunk/src/mame/drivers/kangaroo.c
r17967r17968
441441
442442   MCFG_SCREEN_ADD("screen", RASTER)
443443   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK, 320*2, 0*2, 256*2, 260, 8, 248)
444   MCFG_SCREEN_UPDATE_STATIC(kangaroo)
444   MCFG_SCREEN_UPDATE_DRIVER(kangaroo_state, screen_update_kangaroo)
445445
446446
447447   /* sound hardware */
trunk/src/mame/drivers/cabal.c
r17967r17968
505505   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
506506   MCFG_SCREEN_SIZE(256, 256)
507507   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
508   MCFG_SCREEN_UPDATE_STATIC(cabal)
508   MCFG_SCREEN_UPDATE_DRIVER(cabal_state, screen_update_cabal)
509509
510510   MCFG_GFXDECODE(cabal)
511511   MCFG_PALETTE_LENGTH(1024)
r17967r17968
560560   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
561561   MCFG_SCREEN_SIZE(256, 256)
562562   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
563   MCFG_SCREEN_UPDATE_STATIC(cabal)
563   MCFG_SCREEN_UPDATE_DRIVER(cabal_state, screen_update_cabal)
564564
565565   MCFG_GFXDECODE(cabal)
566566   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/hotblock.c
r17967r17968
6767   DECLARE_WRITE8_MEMBER(hotblock_port0_w);
6868   DECLARE_WRITE8_MEMBER(hotblock_video_write);
6969   virtual void video_start();
70   UINT32 screen_update_hotblock(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7071};
7172
7273
r17967r17968
142143   save_item(NAME(m_pal));
143144}
144145
145static SCREEN_UPDATE_IND16(hotblock)
146UINT32 hotblock_state::screen_update_hotblock(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
146147{
147   hotblock_state *state = screen.machine().driver_data<hotblock_state>();
148148   int y, x, count;
149149   int i;
150150   static const int xxx = 320, yyy = 204;
r17967r17968
153153
154154   for (i = 0; i < 256; i++)
155155   {
156      int dat = (state->m_pal[i * 2 + 1] << 8) | state->m_pal[i * 2];
156      int dat = (m_pal[i * 2 + 1] << 8) | m_pal[i * 2];
157157      palette_set_color_rgb(screen.machine(), i, pal5bit(dat >> 0), pal5bit(dat >> 5), pal5bit(dat >> 10));
158158   }
159159
r17967r17968
162162   {
163163      for(x = 0; x < xxx; x++)
164164      {
165         if (state->m_port0 & 0x40)
166            bitmap.pix16(y, x) = state->m_vram[count];
165         if (m_port0 & 0x40)
166            bitmap.pix16(y, x) = m_vram[count];
167167         count++;
168168      }
169169   }
r17967r17968
225225   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
226226   MCFG_SCREEN_SIZE(1024,1024)
227227   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1)
228   MCFG_SCREEN_UPDATE_STATIC(hotblock)
228   MCFG_SCREEN_UPDATE_DRIVER(hotblock_state, screen_update_hotblock)
229229
230230   MCFG_PALETTE_LENGTH(256)
231231
trunk/src/mame/drivers/vendetta.c
r17967r17968
521521   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
522522   MCFG_SCREEN_SIZE(64*8, 32*8)
523523   MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 )
524   MCFG_SCREEN_UPDATE_STATIC(vendetta)
524   MCFG_SCREEN_UPDATE_DRIVER(vendetta_state, screen_update_vendetta)
525525
526526   MCFG_PALETTE_LENGTH(2048)
527527
trunk/src/mame/drivers/thoop2.c
r17967r17968
199199   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
200200   MCFG_SCREEN_SIZE(32*16, 32*16)
201201   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1)
202   MCFG_SCREEN_UPDATE_STATIC(thoop2)
202   MCFG_SCREEN_UPDATE_DRIVER(thoop2_state, screen_update_thoop2)
203203
204204   MCFG_GFXDECODE(thoop2)
205205   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/saturn.c
r17967r17968
22072207   MCFG_SCREEN_ADD("screen", RASTER)
22082208   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK_320/8, 427, 0, 320, 263, 0, 224)
22092209   #if NEW_VIDEO_CODE
2210   MCFG_SCREEN_UPDATE_STATIC(saturn)
2210   MCFG_SCREEN_UPDATE_DRIVER(saturn_state, screen_update_saturn)
22112211   MCFG_PALETTE_LENGTH(2048+(2048*2))//standard palette + extra memory for rgb brightness. (TODO: remove AT LEAST the latter)
22122212   #else
2213   MCFG_SCREEN_UPDATE_STATIC(stv_vdp2)
2213   MCFG_SCREEN_UPDATE_DRIVER(saturn_state, screen_update_stv_vdp2)
22142214   MCFG_PALETTE_LENGTH(2048+(2048*2))//standard palette + extra memory for rgb brightness.
22152215   #endif
22162216
r17967r17968
22962296   MCFG_SCREEN_ADD("screen", RASTER)
22972297   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK_320/8, 427, 0, 320, 263, 0, 224)
22982298   #if NEW_VIDEO_CODE
2299   MCFG_SCREEN_UPDATE_STATIC(saturn)
2299   MCFG_SCREEN_UPDATE_DRIVER(saturn_state, screen_update_saturn)
23002300   MCFG_PALETTE_LENGTH(2048+(2048*2))//standard palette + extra memory for rgb brightness. (TODO: remove AT LEAST the latter)
23012301   #else
2302   MCFG_SCREEN_UPDATE_STATIC(stv_vdp2)
2302   MCFG_SCREEN_UPDATE_DRIVER(saturn_state, screen_update_stv_vdp2)
23032303   MCFG_PALETTE_LENGTH(2048+(2048*2))//standard palette + extra memory for rgb brightness.
23042304   #endif
23052305
trunk/src/mame/drivers/marineb.c
r17967r17968
555555   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(5000)   /* frames per second, vblank duration */)
556556   MCFG_SCREEN_SIZE(32*8, 32*8)
557557   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
558   MCFG_SCREEN_UPDATE_STATIC(marineb)
558   MCFG_SCREEN_UPDATE_DRIVER(marineb_state, screen_update_marineb)
559559
560560   MCFG_GFXDECODE(marineb)
561561   MCFG_PALETTE_LENGTH(256)
r17967r17968
575575   /* video hardware */
576576   MCFG_GFXDECODE(changes)
577577   MCFG_SCREEN_MODIFY("screen")
578   MCFG_SCREEN_UPDATE_STATIC(changes)
578   MCFG_SCREEN_UPDATE_DRIVER(marineb_state, screen_update_changes)
579579MACHINE_CONFIG_END
580580
581581
r17967r17968
586586
587587   /* video hardware */
588588   MCFG_SCREEN_MODIFY("screen")
589   MCFG_SCREEN_UPDATE_STATIC(springer)
589   MCFG_SCREEN_UPDATE_DRIVER(marineb_state, screen_update_springer)
590590MACHINE_CONFIG_END
591591
592592
r17967r17968
597597   /* video hardware */
598598   MCFG_GFXDECODE(hoccer)
599599   MCFG_SCREEN_MODIFY("screen")
600   MCFG_SCREEN_UPDATE_STATIC(hoccer)
600   MCFG_SCREEN_UPDATE_DRIVER(marineb_state, screen_update_hoccer)
601601MACHINE_CONFIG_END
602602
603603
r17967r17968
611611   /* video hardware */
612612   MCFG_GFXDECODE(wanted)
613613   MCFG_SCREEN_MODIFY("screen")
614   MCFG_SCREEN_UPDATE_STATIC(springer)
614   MCFG_SCREEN_UPDATE_DRIVER(marineb_state, screen_update_springer)
615615
616616   /* sound hardware */
617617   MCFG_SOUND_REPLACE("ay1", AY8910, 1500000)
r17967r17968
629629   /* video hardware */
630630   MCFG_GFXDECODE(hopprobo)
631631   MCFG_SCREEN_MODIFY("screen")
632   MCFG_SCREEN_UPDATE_STATIC(hopprobo)
632   MCFG_SCREEN_UPDATE_DRIVER(marineb_state, screen_update_hopprobo)
633633MACHINE_CONFIG_END
634634
635635
trunk/src/mame/drivers/timeplt.c
r17967r17968
480480   MCFG_SCREEN_REFRESH_RATE(60)
481481   MCFG_SCREEN_SIZE(32*8, 32*8)
482482   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
483   MCFG_SCREEN_UPDATE_STATIC(timeplt)
483   MCFG_SCREEN_UPDATE_DRIVER(timeplt_state, screen_update_timeplt)
484484
485485   MCFG_GFXDECODE(timeplt)
486486   MCFG_PALETTE_LENGTH(32*4+64*4)
trunk/src/mame/drivers/pktgaldx.c
r17967r17968
337337   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
338338   MCFG_SCREEN_SIZE(40*8, 32*8)
339339   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
340   MCFG_SCREEN_UPDATE_STATIC(pktgaldx)
340   MCFG_SCREEN_UPDATE_DRIVER(pktgaldx_state, screen_update_pktgaldx)
341341
342342   MCFG_PALETTE_LENGTH(4096)
343343   MCFG_GFXDECODE(pktgaldx)
r17967r17968
376376   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
377377   MCFG_SCREEN_SIZE(40*8, 32*8)
378378   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
379   MCFG_SCREEN_UPDATE_STATIC(pktgaldb)
379   MCFG_SCREEN_UPDATE_DRIVER(pktgaldx_state, screen_update_pktgaldb)
380380
381381   MCFG_PALETTE_LENGTH(4096)
382382   MCFG_GFXDECODE(bootleg)
trunk/src/mame/drivers/atarigx2.c
r17967r17968
14461446   /* note: these parameters are from published specs, not derived */
14471447   /* the board uses a pair of GALs to determine H and V parameters */
14481448   MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
1449   MCFG_SCREEN_UPDATE_STATIC(atarigx2)
1450   MCFG_SCREEN_VBLANK_STATIC(atarigx2)
1449   MCFG_SCREEN_UPDATE_DRIVER(atarigx2_state, screen_update_atarigx2)
1450   MCFG_SCREEN_VBLANK_DRIVER(atarigx2_state, screen_eof_atarigx2)
14511451
14521452   MCFG_VIDEO_START_OVERRIDE(atarigx2_state,atarigx2)
14531453
trunk/src/mame/drivers/nwk-tr.c
r17967r17968
254254   DECLARE_DRIVER_INIT(nwktr);
255255   virtual void machine_start();
256256   virtual void machine_reset();
257   UINT32 screen_update_nwktr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
257258};
258259
259260
r17967r17968
273274}
274275
275276
276static SCREEN_UPDATE_RGB32( nwktr )
277UINT32 nwktr_state::screen_update_nwktr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
277278{
278   nwktr_state *state = screen.machine().driver_data<nwktr_state>();
279279   device_t *voodoo = screen.machine().device("voodoo");
280280   device_t *k001604 = screen.machine().device("k001604");
281281
r17967r17968
288288
289289   k001604_draw_front_layer(k001604, bitmap, tilemap_rect);
290290
291   draw_7segment_led(bitmap, 3, 3, state->m_led_reg0);
292   draw_7segment_led(bitmap, 9, 3, state->m_led_reg1);
291   draw_7segment_led(bitmap, 3, 3, m_led_reg0);
292   draw_7segment_led(bitmap, 9, 3, m_led_reg1);
293293   return 0;
294294}
295295
r17967r17968
745745   MCFG_SCREEN_REFRESH_RATE(60)
746746   MCFG_SCREEN_SIZE(512, 384)
747747   MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383)
748   MCFG_SCREEN_UPDATE_STATIC(nwktr)
748   MCFG_SCREEN_UPDATE_DRIVER(nwktr_state, screen_update_nwktr)
749749
750750   MCFG_PALETTE_LENGTH(65536)
751751
trunk/src/mame/drivers/circus.c
r17967r17968
296296   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(3500)   /* frames per second, vblank duration (complete guess) */)
297297   MCFG_SCREEN_SIZE(32*8, 32*8)
298298   MCFG_SCREEN_VISIBLE_AREA(0*8, 31*8-1, 0*8, 32*8-1)
299   MCFG_SCREEN_UPDATE_STATIC(circus)
299   MCFG_SCREEN_UPDATE_DRIVER(circus_state, screen_update_circus)
300300
301301   MCFG_GFXDECODE(circus)
302302   MCFG_PALETTE_LENGTH(2)
r17967r17968
329329   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(3500) /* frames per second, vblank duration (complete guess) */)
330330   MCFG_SCREEN_SIZE(32*8, 32*8)
331331   MCFG_SCREEN_VISIBLE_AREA(0*8, 31*8-1, 0*8, 32*8-1)
332   MCFG_SCREEN_UPDATE_STATIC(robotbwl)
332   MCFG_SCREEN_UPDATE_DRIVER(circus_state, screen_update_robotbwl)
333333
334334   MCFG_GFXDECODE(robotbwl)
335335   MCFG_PALETTE_LENGTH(2)
r17967r17968
369369   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(3500) /* frames per second, vblank duration (complete guess) */)
370370   MCFG_SCREEN_SIZE(40*8, 40*8) //TODO
371371   MCFG_SCREEN_VISIBLE_AREA(0*8, 31*8-1, 0*8, 32*8-1)
372   MCFG_SCREEN_UPDATE_STATIC(crash)
372   MCFG_SCREEN_UPDATE_DRIVER(circus_state, screen_update_crash)
373373
374374   MCFG_GFXDECODE(circus)
375375   MCFG_PALETTE_LENGTH(2)
r17967r17968
401401   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(3500)   /* frames per second, vblank duration (complete guess) */)
402402   MCFG_SCREEN_SIZE(32*8, 32*8)
403403   MCFG_SCREEN_VISIBLE_AREA(0*8, 31*8-1, 0*8, 32*8-1)
404   MCFG_SCREEN_UPDATE_STATIC(ripcord)
404   MCFG_SCREEN_UPDATE_DRIVER(circus_state, screen_update_ripcord)
405405
406406   MCFG_GFXDECODE(circus)
407407   MCFG_PALETTE_LENGTH(2)
trunk/src/mame/drivers/zac2650.c
r17967r17968
244244   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1041))
245245   MCFG_SCREEN_SIZE(30*24, 32*24)
246246   MCFG_SCREEN_VISIBLE_AREA(0, 719, 0, 767)
247   MCFG_SCREEN_UPDATE_STATIC(tinvader)
247   MCFG_SCREEN_UPDATE_DRIVER(zac2650_state, screen_update_tinvader)
248248
249249   MCFG_GFXDECODE(tinvader)
250250   MCFG_PALETTE_LENGTH(4)
trunk/src/mame/drivers/taotaido.c
r17967r17968
346346   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
347347   MCFG_SCREEN_SIZE(40*8, 32*8)
348348   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
349   MCFG_SCREEN_UPDATE_STATIC(taotaido)
350   MCFG_SCREEN_VBLANK_STATIC( taotaido )
349   MCFG_SCREEN_UPDATE_DRIVER(taotaido_state, screen_update_taotaido)
350   MCFG_SCREEN_VBLANK_DRIVER(taotaido_state, screen_eof_taotaido)
351351
352352   MCFG_PALETTE_LENGTH(0x800)
353353
trunk/src/mame/drivers/relief.c
r17967r17968
309309   /* note: these parameters are from published specs, not derived */
310310   /* the board uses a VAD chip to generate video signals */
311311   MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
312   MCFG_SCREEN_UPDATE_STATIC(relief)
312   MCFG_SCREEN_UPDATE_DRIVER(relief_state, screen_update_relief)
313313
314314   MCFG_VIDEO_START_OVERRIDE(relief_state,relief)
315315
trunk/src/mame/drivers/taito_f3.c
r17967r17968
441441   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(624) /* 58.97 Hz, 624us vblank time */)
442442   MCFG_SCREEN_SIZE(40*8+48*2, 32*8)
443443   MCFG_SCREEN_VISIBLE_AREA(46, 40*8-1 + 46, 24, 24+232-1)
444   MCFG_SCREEN_UPDATE_STATIC(f3)
445   MCFG_SCREEN_VBLANK_STATIC(f3)
444   MCFG_SCREEN_UPDATE_DRIVER(taito_f3_state, screen_update_f3)
445   MCFG_SCREEN_VBLANK_DRIVER(taito_f3_state, screen_eof_f3)
446446
447447   MCFG_GFXDECODE(taito_f3)
448448   MCFG_PALETTE_LENGTH(0x2000)
r17967r17968
535535   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(624) /* 58.97 Hz, 624us vblank time */)
536536   MCFG_SCREEN_SIZE(40*8+48*2, 32*8)
537537   MCFG_SCREEN_VISIBLE_AREA(46, 40*8-1 + 46, 31, 31+224-1)
538   MCFG_SCREEN_UPDATE_STATIC(f3)
539   MCFG_SCREEN_VBLANK_STATIC(f3)
538   MCFG_SCREEN_UPDATE_DRIVER(taito_f3_state, screen_update_f3)
539   MCFG_SCREEN_VBLANK_DRIVER(taito_f3_state, screen_eof_f3)
540540
541541   MCFG_GFXDECODE(bubsympb)
542542   MCFG_PALETTE_LENGTH(8192)
trunk/src/mame/drivers/jpmsys5.c
r17967r17968
103103   DECLARE_VIDEO_START(jpmsys5v);
104104   DECLARE_MACHINE_START(jpmsys5);
105105   DECLARE_MACHINE_RESET(jpmsys5);
106   UINT32 screen_update_jpmsys5v(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
106107};
107108
108109
r17967r17968
223224   tms34061_start(machine(), &tms34061intf);
224225}
225226
226static SCREEN_UPDATE_RGB32( jpmsys5v )
227UINT32 jpmsys5_state::screen_update_jpmsys5v(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
227228{
228229   int x, y;
229230   struct tms34061_display state;
r17967r17968
723724
724725   MCFG_SCREEN_ADD("screen", RASTER)
725726   MCFG_SCREEN_RAW_PARAMS(XTAL_40MHz / 4, 676, 20*4, 147*4, 256, 0, 254)
726   MCFG_SCREEN_UPDATE_STATIC(jpmsys5v)
727   MCFG_SCREEN_UPDATE_DRIVER(jpmsys5_state, screen_update_jpmsys5v)
727728
728729   MCFG_VIDEO_START_OVERRIDE(jpmsys5_state,jpmsys5v)
729730
trunk/src/mame/drivers/gaelco2.c
r17967r17968
167167   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
168168   MCFG_SCREEN_SIZE(64*16, 32*16)
169169   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1)
170   MCFG_SCREEN_UPDATE_STATIC(gaelco2)
170   MCFG_SCREEN_UPDATE_DRIVER(gaelco2_state, screen_update_gaelco2)
171171   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
172172
173173   MCFG_GFXDECODE(0x0080000)
r17967r17968
300300   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
301301   MCFG_SCREEN_SIZE(64*16, 32*16)
302302   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1)
303   MCFG_SCREEN_UPDATE_STATIC(gaelco2)
303   MCFG_SCREEN_UPDATE_DRIVER(gaelco2_state, screen_update_gaelco2)
304304   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
305305
306306   MCFG_GFXDECODE(0x0200000)
r17967r17968
541541   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
542542   MCFG_SCREEN_SIZE(64*16, 32*16)
543543   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1)
544   MCFG_SCREEN_UPDATE_STATIC(gaelco2)
544   MCFG_SCREEN_UPDATE_DRIVER(gaelco2_state, screen_update_gaelco2)
545545   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
546546
547547   MCFG_GFXDECODE(0x0400000)
r17967r17968
786786   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
787787   MCFG_SCREEN_SIZE(64*16, 32*16)
788788   MCFG_SCREEN_VISIBLE_AREA(0, 480-1, 16, 256-1)
789   MCFG_SCREEN_UPDATE_STATIC(gaelco2_left)
789   MCFG_SCREEN_UPDATE_DRIVER(gaelco2_state, screen_update_gaelco2_left)
790790
791791   MCFG_SCREEN_ADD("rscreen", RASTER)
792792   MCFG_SCREEN_REFRESH_RATE(59.1)
793793   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
794794   MCFG_SCREEN_SIZE(64*16, 32*16)
795795   MCFG_SCREEN_VISIBLE_AREA(0, 480-1, 16, 256-1)
796   MCFG_SCREEN_UPDATE_STATIC(gaelco2_right)
796   MCFG_SCREEN_UPDATE_DRIVER(gaelco2_state, screen_update_gaelco2_right)
797797   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
798798
799799   MCFG_VIDEO_START_OVERRIDE(gaelco2_state,gaelco2_dual)
r17967r17968
977977   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
978978   MCFG_SCREEN_SIZE(64*16, 32*16)
979979   MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 16, 256-1)
980   MCFG_SCREEN_UPDATE_STATIC(gaelco2)
980   MCFG_SCREEN_UPDATE_DRIVER(gaelco2_state, screen_update_gaelco2)
981981   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
982982
983983   MCFG_GFXDECODE(0x0400000)
r17967r17968
12211221   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
12221222   MCFG_SCREEN_SIZE(384, 32*16)
12231223   MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 16, 256-1)
1224   MCFG_SCREEN_UPDATE_STATIC(gaelco2_left)
1224   MCFG_SCREEN_UPDATE_DRIVER(gaelco2_state, screen_update_gaelco2_left)
12251225
12261226   MCFG_SCREEN_ADD("rscreen", RASTER)
12271227   MCFG_SCREEN_REFRESH_RATE(59.1)
12281228   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
12291229   MCFG_SCREEN_SIZE(384, 32*16)
12301230   MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 16, 256-1)
1231   MCFG_SCREEN_UPDATE_STATIC(gaelco2_right)
1231   MCFG_SCREEN_UPDATE_DRIVER(gaelco2_state, screen_update_gaelco2_right)
12321232   MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
12331233
12341234
trunk/src/mame/drivers/homerun.c
r17967r17968
397397   MCFG_SCREEN_REFRESH_RATE(60)
398398   MCFG_SCREEN_SIZE(256, 256)
399399   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1)
400   MCFG_SCREEN_UPDATE_STATIC(homerun)
400   MCFG_SCREEN_UPDATE_DRIVER(homerun_state, screen_update_homerun)
401401
402402   MCFG_GFXDECODE(homerun)
403403   MCFG_PALETTE_LENGTH(16*4)
trunk/src/mame/drivers/champbas.c
r17967r17968
9595 *
9696 *************************************/
9797
98static SCREEN_VBLANK( champbas )
98void champbas_state::screen_eof_champbas(screen_device &screen, bool state)
9999{
100100   // rising edge
101   if (vblank_on)
101   if (state)
102102   {
103      champbas_state *state = screen.machine().driver_data<champbas_state>();
104      state->m_watchdog_count++;
103      m_watchdog_count++;
105104
106      if (state->m_watchdog_count == 0x10)
105      if (m_watchdog_count == 0x10)
107106         screen.machine().schedule_soft_reset();
108107   }
109108}
r17967r17968
633632   MCFG_SCREEN_REFRESH_RATE(60)
634633   MCFG_SCREEN_SIZE(32*8, 32*8)
635634   MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 2*8, 30*8-1)
636   MCFG_SCREEN_UPDATE_STATIC(champbas)
637   MCFG_SCREEN_VBLANK_STATIC(champbas)
635   MCFG_SCREEN_UPDATE_DRIVER(champbas_state, screen_update_champbas)
636   MCFG_SCREEN_VBLANK_DRIVER(champbas_state, screen_eof_champbas)
638637
639638   MCFG_GFXDECODE(talbot)
640639   MCFG_PALETTE_LENGTH(0x200)
r17967r17968
668667   MCFG_SCREEN_REFRESH_RATE(60)
669668   MCFG_SCREEN_SIZE(32*8, 32*8)
670669   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
671   MCFG_SCREEN_UPDATE_STATIC(champbas)
672   MCFG_SCREEN_VBLANK_STATIC(champbas)
670   MCFG_SCREEN_UPDATE_DRIVER(champbas_state, screen_update_champbas)
671   MCFG_SCREEN_VBLANK_DRIVER(champbas_state, screen_eof_champbas)
673672
674673   MCFG_GFXDECODE(champbas)
675674   MCFG_PALETTE_LENGTH(0x200)
r17967r17968
725724   MCFG_SCREEN_REFRESH_RATE(60.54)
726725   MCFG_SCREEN_SIZE(32*8, 32*8)
727726   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
728   MCFG_SCREEN_UPDATE_STATIC(exctsccr)
729   MCFG_SCREEN_VBLANK_STATIC(champbas)
727   MCFG_SCREEN_UPDATE_DRIVER(champbas_state, screen_update_exctsccr)
728   MCFG_SCREEN_VBLANK_DRIVER(champbas_state, screen_eof_champbas)
730729
731730   MCFG_GFXDECODE(exctsccr)
732731   MCFG_PALETTE_LENGTH(0x200)
r17967r17968
776775   MCFG_SCREEN_REFRESH_RATE(60)
777776   MCFG_SCREEN_SIZE(32*8, 32*8)
778777   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
779   MCFG_SCREEN_UPDATE_STATIC(exctsccr)
780   MCFG_SCREEN_VBLANK_STATIC(champbas)
778   MCFG_SCREEN_UPDATE_DRIVER(champbas_state, screen_update_exctsccr)
779   MCFG_SCREEN_VBLANK_DRIVER(champbas_state, screen_eof_champbas)
781780
782781   MCFG_GFXDECODE(exctsccr)
783782   MCFG_PALETTE_LENGTH(0x200)
trunk/src/mame/drivers/ssozumo.c
r17967r17968
205205   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
206206   MCFG_SCREEN_SIZE(32*8, 32*8)
207207   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8 - 1, 1*8, 31*8 - 1)
208   MCFG_SCREEN_UPDATE_STATIC(ssozumo)
208   MCFG_SCREEN_UPDATE_DRIVER(ssozumo_state, screen_update_ssozumo)
209209
210210   MCFG_GFXDECODE(ssozumo)
211211   MCFG_PALETTE_LENGTH(64 + 16)
trunk/src/mame/drivers/m107.c
r17967r17968
788788   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
789789   MCFG_SCREEN_SIZE(512, 256)
790790   MCFG_SCREEN_VISIBLE_AREA(80, 511-112, 8, 247) /* 320 x 240 */
791   MCFG_SCREEN_UPDATE_STATIC(m107)
791   MCFG_SCREEN_UPDATE_DRIVER(m107_state, screen_update_m107)
792792
793793   MCFG_GFXDECODE(firebarr)
794794   MCFG_PALETTE_LENGTH(2048)
trunk/src/mame/drivers/ninjaw.c
r17967r17968
867867   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
868868   MCFG_SCREEN_SIZE(36*8, 32*8)
869869   MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1)
870   MCFG_SCREEN_UPDATE_STATIC(ninjaw_left)
870   MCFG_SCREEN_UPDATE_DRIVER(ninjaw_state, screen_update_ninjaw_left)
871871
872872   MCFG_SCREEN_ADD("mscreen", RASTER)
873873   MCFG_SCREEN_REFRESH_RATE(60)
874874   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
875875   MCFG_SCREEN_SIZE(36*8, 32*8)
876876   MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1)
877   MCFG_SCREEN_UPDATE_STATIC(ninjaw_middle)
877   MCFG_SCREEN_UPDATE_DRIVER(ninjaw_state, screen_update_ninjaw_middle)
878878
879879   MCFG_SCREEN_ADD("rscreen", RASTER)
880880   MCFG_SCREEN_REFRESH_RATE(60)
881881   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
882882   MCFG_SCREEN_SIZE(36*8, 32*8)
883883   MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1)
884   MCFG_SCREEN_UPDATE_STATIC(ninjaw_right)
884   MCFG_SCREEN_UPDATE_DRIVER(ninjaw_state, screen_update_ninjaw_right)
885885
886886
887887   MCFG_TC0100SCN_ADD("tc0100scn_1", darius2_tc0100scn_intf_l)
r17967r17968
947947   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
948948   MCFG_SCREEN_SIZE(36*8, 32*8)
949949   MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1)
950   MCFG_SCREEN_UPDATE_STATIC(ninjaw_left)
950   MCFG_SCREEN_UPDATE_DRIVER(ninjaw_state, screen_update_ninjaw_left)
951951
952952   MCFG_SCREEN_ADD("mscreen", RASTER)
953953   MCFG_SCREEN_REFRESH_RATE(60)
954954   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
955955   MCFG_SCREEN_SIZE(36*8, 32*8)
956956   MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1)
957   MCFG_SCREEN_UPDATE_STATIC(ninjaw_middle)
957   MCFG_SCREEN_UPDATE_DRIVER(ninjaw_state, screen_update_ninjaw_middle)
958958
959959   MCFG_SCREEN_ADD("rscreen", RASTER)
960960   MCFG_SCREEN_REFRESH_RATE(60)
961961   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
962962   MCFG_SCREEN_SIZE(36*8, 32*8)
963963   MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1)
964   MCFG_SCREEN_UPDATE_STATIC(ninjaw_right)
964   MCFG_SCREEN_UPDATE_DRIVER(ninjaw_state, screen_update_ninjaw_right)
965965
966966
967967   MCFG_TC0100SCN_ADD("tc0100scn_1", darius2_tc0100scn_intf_l)
trunk/src/mame/drivers/twin16.c
r17967r17968
745745   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2062)) // 32 lines
746746   MCFG_SCREEN_SIZE(40*8, 32*8)
747747   MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 2*8, 30*8-1)
748   MCFG_SCREEN_UPDATE_STATIC(twin16)
749   MCFG_SCREEN_VBLANK_STATIC(twin16)
748   MCFG_SCREEN_UPDATE_DRIVER(twin16_state, screen_update_twin16)
749   MCFG_SCREEN_VBLANK_DRIVER(twin16_state, screen_eof_twin16)
750750
751751   MCFG_GFXDECODE(twin16)
752752   MCFG_PALETTE_LENGTH(0x400)
r17967r17968
799799   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
800800   MCFG_SCREEN_SIZE(40*8, 32*8)
801801   MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 2*8, 30*8-1)
802   MCFG_SCREEN_UPDATE_STATIC(twin16)
803   MCFG_SCREEN_VBLANK_STATIC(twin16)
802   MCFG_SCREEN_UPDATE_DRIVER(twin16_state, screen_update_twin16)
803   MCFG_SCREEN_VBLANK_DRIVER(twin16_state, screen_eof_twin16)
804804
805805   MCFG_GFXDECODE(twin16)
806806   MCFG_PALETTE_LENGTH(0x400)
trunk/src/mame/drivers/arkanoid.c
r17967r17968
10361036   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
10371037   MCFG_SCREEN_SIZE(32*8, 32*8)
10381038   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1039   MCFG_SCREEN_UPDATE_STATIC(arkanoid)
1039   MCFG_SCREEN_UPDATE_DRIVER(arkanoid_state, screen_update_arkanoid)
10401040
10411041   MCFG_GFXDECODE(arkanoid)
10421042   MCFG_PALETTE_LENGTH(512)
r17967r17968
10691069   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
10701070   MCFG_SCREEN_SIZE(32*8, 32*8)
10711071   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1072   MCFG_SCREEN_UPDATE_STATIC(hexa)
1072   MCFG_SCREEN_UPDATE_DRIVER(arkanoid_state, screen_update_hexa)
10731073
10741074   MCFG_GFXDECODE(hexa)
10751075   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/megasys1.c
r17967r17968
14811481   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
14821482   MCFG_SCREEN_SIZE(32*8, 32*8)
14831483   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1484   MCFG_SCREEN_UPDATE_STATIC(megasys1)
1485   MCFG_SCREEN_VBLANK_STATIC(megasys1)
1484   MCFG_SCREEN_UPDATE_DRIVER(megasys1_state, screen_update_megasys1)
1485   MCFG_SCREEN_VBLANK_DRIVER(megasys1_state, screen_eof_megasys1)
14861486
14871487   MCFG_GFXDECODE(ABC)
14881488   MCFG_PALETTE_LENGTH(1024)
r17967r17968
15411541   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
15421542   MCFG_SCREEN_SIZE(32*8, 32*8)
15431543   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1544   MCFG_SCREEN_UPDATE_STATIC(megasys1)
1545   MCFG_SCREEN_VBLANK_STATIC(megasys1)
1544   MCFG_SCREEN_UPDATE_DRIVER(megasys1_state, screen_update_megasys1)
1545   MCFG_SCREEN_VBLANK_DRIVER(megasys1_state, screen_eof_megasys1)
15461546
15471547   MCFG_GFXDECODE(ABC)
15481548   MCFG_PALETTE_LENGTH(1024)
r17967r17968
16131613   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
16141614   MCFG_SCREEN_SIZE(32*8, 32*8)
16151615   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1616   MCFG_SCREEN_UPDATE_STATIC(megasys1)
1617   MCFG_SCREEN_VBLANK_STATIC(megasys1)
1616   MCFG_SCREEN_UPDATE_DRIVER(megasys1_state, screen_update_megasys1)
1617   MCFG_SCREEN_VBLANK_DRIVER(megasys1_state, screen_eof_megasys1)
16181618
16191619   MCFG_GFXDECODE(ABC)
16201620   MCFG_PALETTE_LENGTH(1024)
r17967r17968
16761676   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
16771677   MCFG_SCREEN_SIZE(32*8, 32*8)
16781678   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
1679   MCFG_SCREEN_UPDATE_STATIC(megasys1)
1679   MCFG_SCREEN_UPDATE_DRIVER(megasys1_state, screen_update_megasys1)
16801680
16811681   MCFG_GFXDECODE(Z)
16821682   MCFG_PALETTE_LENGTH(768)
trunk/src/mame/drivers/crshrace.c
r17967r17968
475475   MCFG_SCREEN_REFRESH_RATE(60)
476476   MCFG_SCREEN_SIZE(64*8, 32*8)
477477   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
478   MCFG_SCREEN_UPDATE_STATIC(crshrace)
479   MCFG_SCREEN_VBLANK_STATIC(crshrace)
478   MCFG_SCREEN_UPDATE_DRIVER(crshrace_state, screen_update_crshrace)
479   MCFG_SCREEN_VBLANK_DRIVER(crshrace_state, screen_eof_crshrace)
480480
481481   MCFG_GFXDECODE(crshrace)
482482   MCFG_PALETTE_LENGTH(2048)
trunk/src/mame/drivers/airbustr.c
r17967r17968
647647   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
648648   MCFG_SCREEN_SIZE(32*8, 32*8)
649649   MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 2*8, 30*8-1)
650   MCFG_SCREEN_UPDATE_STATIC(airbustr)
651   MCFG_SCREEN_VBLANK_STATIC(airbustr)
650   MCFG_SCREEN_UPDATE_DRIVER(airbustr_state, screen_update_airbustr)
651   MCFG_SCREEN_VBLANK_DRIVER(airbustr_state, screen_eof_airbustr)
652652
653653   MCFG_GFXDECODE(airbustr)
654654   MCFG_PALETTE_LENGTH(768)
trunk/src/mame/drivers/pacman.c
r17967r17968
33033303
33043304   MCFG_SCREEN_ADD("screen", RASTER)
33053305   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
3306   MCFG_SCREEN_UPDATE_STATIC(pacman)
3306   MCFG_SCREEN_UPDATE_DRIVER(pacman_state, screen_update_pacman)
33073307
33083308   MCFG_PALETTE_INIT_OVERRIDE(pacman_state,pacman)
33093309   MCFG_VIDEO_START_OVERRIDE(pacman_state,pacman)
r17967r17968
34563456   MCFG_SCREEN_SIZE(32*8, 32*8)
34573457   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
34583458   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
3459   MCFG_SCREEN_UPDATE_STATIC(s2650games)
3459   MCFG_SCREEN_UPDATE_DRIVER(pacman_state, screen_update_s2650games)
34603460
34613461   MCFG_VIDEO_START_OVERRIDE(pacman_state,s2650games)
34623462
trunk/src/mame/drivers/igs011.c
r17967r17968
196196   DECLARE_DRIVER_INIT(vbowlj);
197197   DECLARE_DRIVER_INIT(ryukobou);
198198   virtual void video_start();
199   UINT32 screen_update_igs011(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
200   void screen_eof_vbowl(screen_device &screen, bool state);
199201};
200202
201203
r17967r17968
243245   m_lhb2_pen_hi = 0;
244246}
245247
246static SCREEN_UPDATE_IND16( igs011 )
248UINT32 igs011_state::screen_update_igs011(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
247249{
248   igs011_state *state = screen.machine().driver_data<igs011_state>();
249250#ifdef MAME_DEBUG
250251   int layer_enable = -1;
251252#endif
r17967r17968
269270   }
270271#endif
271272
272   pri_ram = &state->m_priority_ram[(state->m_priority & 7) * 512/2];
273   pri_ram = &m_priority_ram[(m_priority & 7) * 512/2];
273274
274275   for (y = cliprect.min_y; y <= cliprect.max_y; y++)
275276   {
r17967r17968
280281
281282         for (l = 0; l < 8; l++)
282283         {
283            if (   (state->m_layer[l][scr_addr] != 0xff)
284            if (   (m_layer[l][scr_addr] != 0xff)
284285#ifdef MAME_DEBUG
285286                  && (layer_enable & (1 << l))
286287#endif
r17967r17968
296297            bitmap.pix16(y, x) = get_black_pen(screen.machine());
297298         else
298299#endif
299            bitmap.pix16(y, x) = state->m_layer[l][scr_addr] | (l << 8);
300            bitmap.pix16(y, x) = m_layer[l][scr_addr] | (l << 8);
300301      }
301302   }
302303   return 0;
r17967r17968
24882489   return 0xffff;
24892490}
24902491
2491static SCREEN_VBLANK( vbowl )
2492void igs011_state::screen_eof_vbowl(screen_device &screen, bool state)
24922493{
24932494   // rising edge
2494   if (vblank_on)
2495   if (state)
24952496   {
2496      igs011_state *state = screen.machine().driver_data<igs011_state>();
2497      state->m_vbowl_trackball[0] = state->m_vbowl_trackball[1];
2498      state->m_vbowl_trackball[1] = (state->ioport("AN1")->read() << 8) | state->ioport("AN0")->read();
2497      m_vbowl_trackball[0] = m_vbowl_trackball[1];
2498      m_vbowl_trackball[1] = (ioport("AN1")->read() << 8) | ioport("AN0")->read();
24992499   }
25002500}
25012501
r17967r17968
38093809   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
38103810   MCFG_SCREEN_SIZE(512, 256)
38113811   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 240-1)
3812   MCFG_SCREEN_UPDATE_STATIC( igs011 )
3812   MCFG_SCREEN_UPDATE_DRIVER(igs011_state, screen_update_igs011)
38133813
38143814   MCFG_PALETTE_LENGTH(0x800)
38153815//  MCFG_GFXDECODE(igs011)
r17967r17968
39443944   // irq 4 points to an apparently unneeded routine
39453945
39463946   MCFG_SCREEN_MODIFY("screen")
3947   MCFG_SCREEN_VBLANK_STATIC(vbowl)   // trackball
3947   MCFG_SCREEN_VBLANK_DRIVER(igs011_state, screen_eof_vbowl)
39483948//  MCFG_GFXDECODE(igs011_hi)
39493949
39503950   MCFG_DEVICE_REMOVE("oki")
trunk/src/mame/drivers/bwing.c
r17967r17968
387387   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(600))   // must be long enough for polling
388388   MCFG_SCREEN_SIZE(32*8, 32*8)
389389   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
390   MCFG_SCREEN_UPDATE_STATIC(bwing)
390   MCFG_SCREEN_UPDATE_DRIVER(bwing_state, screen_update_bwing)
391391
392392   MCFG_GFXDECODE(bwing)
393393   MCFG_PALETTE_LENGTH(64)
trunk/src/mame/drivers/srmp6.c
r17967r17968
105105   DECLARE_READ16_MEMBER(srmp6_irq_ack_r);
106106   DECLARE_DRIVER_INIT(INIT);
107107   virtual void video_start();
108   UINT32 screen_update_srmp6(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
108109};
109110
110111#define VERBOSE 0
r17967r17968
172173static int xixi=0;
173174#endif
174175
175static SCREEN_UPDATE_RGB32(srmp6)
176UINT32 srmp6_state::screen_update_srmp6(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
176177{
177   srmp6_state *state = screen.machine().driver_data<srmp6_state>();
178178   int alpha;
179179   int x,y,tileno,height,width,xw,yw,sprite,xb,yb;
180   UINT16 *sprite_list = state->m_sprram_old;
180   UINT16 *sprite_list = m_sprram_old;
181181   UINT16 mainlist_offset = 0;
182182
183183   union
r17967r17968
207207   while (mainlist_offset<0x2000/2)
208208   {
209209
210      UINT16 *sprite_sublist = &state->m_sprram_old[sprite_list[mainlist_offset+1]<<3];
210      UINT16 *sprite_sublist = &m_sprram_old[sprite_list[mainlist_offset+1]<<3];
211211      UINT16 sublist_length=sprite_list[mainlist_offset+0]&0x7fff; //+1 ?
212212      INT16 global_x,global_y, flip_x, flip_y;
213213      UINT16 global_pal;
r17967r17968
285285      mainlist_offset+=8;
286286   }
287287
288   memcpy(state->m_sprram_old, state->m_sprram, 0x80000);
288   memcpy(m_sprram_old, m_sprram, 0x80000);
289289
290290   if(screen.machine().input().code_pressed_once(KEYCODE_Q))
291291   {
292292      FILE *p=fopen("tileram.bin","wb");
293      fwrite(state->m_tileram, 1, 0x100000*16, p);
293      fwrite(m_tileram, 1, 0x100000*16, p);
294294      fclose(p);
295295   }
296296
r17967r17968
681681   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
682682   MCFG_SCREEN_SIZE(64*8, 64*8)
683683   MCFG_SCREEN_VISIBLE_AREA(0*8, 42*8-1, 0*8, 30*8-1)
684   MCFG_SCREEN_UPDATE_STATIC(srmp6)
684   MCFG_SCREEN_UPDATE_DRIVER(srmp6_state, screen_update_srmp6)
685685
686686   MCFG_PALETTE_LENGTH(0x800)
687687
trunk/src/mame/drivers/sf.c
r17967r17968
856856   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
857857   MCFG_SCREEN_SIZE(64*8, 32*8)
858858   MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
859   MCFG_SCREEN_UPDATE_STATIC(sf)
859   MCFG_SCREEN_UPDATE_DRIVER(sf_state, screen_update_sf)
860860
861861   MCFG_GFXDECODE(sf)
862862   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/cball.c
r17967r17968
3232   virtual void machine_reset();
3333   virtual void video_start();
3434   virtual void palette_init();
35   UINT32 screen_update_cball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3536};
3637
3738
r17967r17968
5657}
5758
5859
59static SCREEN_UPDATE_IND16( cball )
60UINT32 cball_state::screen_update_cball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
6061{
61   cball_state *state = screen.machine().driver_data<cball_state>();
6262
6363   /* draw playfield */
64   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
64   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
6565
6666   /* draw sprite */
6767   drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1],
68      state->m_video_ram[0x399] >> 4,
68      m_video_ram[0x399] >> 4,
6969      0,
7070      0, 0,
71      240 - state->m_video_ram[0x390],
72      240 - state->m_video_ram[0x398], 0);
71      240 - m_video_ram[0x390],
72      240 - m_video_ram[0x398], 0);
7373   return 0;
7474}
7575
r17967r17968
236236   MCFG_SCREEN_REFRESH_RATE(60)
237237   MCFG_SCREEN_SIZE(256, 262)
238238   MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 223)
239   MCFG_SCREEN_UPDATE_STATIC(cball)
239   MCFG_SCREEN_UPDATE_DRIVER(cball_state, screen_update_cball)
240240
241241   MCFG_GFXDECODE(cball)
242242   MCFG_PALETTE_LENGTH(6)
trunk/src/mame/drivers/konamim2.c
r17967r17968
249249   DECLARE_READ64_MEMBER(cpu_r);
250250   DECLARE_DRIVER_INIT(m2);
251251   virtual void video_start();
252   UINT32 screen_update_m2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
252253};
253254
254255
r17967r17968
256257{
257258}
258259
259static SCREEN_UPDATE_IND16( m2 )
260UINT32 konamim2_state::screen_update_m2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
260261{
261   konamim2_state *state = screen.machine().driver_data<konamim2_state>();
262262   int i, j;
263263
264264   UINT32 fb_start = 0xffffffff;
265   if (state->m_vdl0_address != 0)
265   if (m_vdl0_address != 0)
266266   {
267      fb_start = *(UINT32*)&state->m_main_ram[(state->m_vdl0_address - 0x40000000) / 8] - 0x40000000;
267      fb_start = *(UINT32*)&m_main_ram[(m_vdl0_address - 0x40000000) / 8] - 0x40000000;
268268   }
269269
270270   if (fb_start <= 0x800000)
271271   {
272      UINT16 *frame = (UINT16*)&state->m_main_ram[fb_start/8];
272      UINT16 *frame = (UINT16*)&m_main_ram[fb_start/8];
273273      for (j=0; j < 384; j++)
274274      {
275275         UINT16 *fb = &frame[(j*512)];
r17967r17968
11841184   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
11851185   MCFG_SCREEN_SIZE(640, 480)
11861186   MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383)
1187   MCFG_SCREEN_UPDATE_STATIC(m2)
1187   MCFG_SCREEN_UPDATE_DRIVER(konamim2_state, screen_update_m2)
11881188
11891189   MCFG_PALETTE_LENGTH(32768)
11901190   MCFG_PALETTE_INIT(RRRRR_GGGGG_BBBBB)
trunk/src/mame/drivers/cave.c
r17967r17968
18681868   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
18691869   MCFG_SCREEN_SIZE(320, 240)
18701870   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
1871   MCFG_SCREEN_UPDATE_STATIC(cave)
1871   MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
18721872
18731873   MCFG_GFXDECODE(dfeveron)
18741874   MCFG_PALETTE_LENGTH(0x8000)   /* $8000 palette entries for consistency with the other games */
r17967r17968
19101910   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
19111911   MCFG_SCREEN_SIZE(320, 240)
19121912   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
1913   MCFG_SCREEN_UPDATE_STATIC(cave)
1913   MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
19141914
19151915   MCFG_GFXDECODE(ddonpach)
19161916   MCFG_PALETTE_LENGTH(0x8000 + 0x40*16)   // $400 extra entries for layers 1&2
r17967r17968
19561956   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
19571957   MCFG_SCREEN_SIZE(320, 240)
19581958   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
1959   MCFG_SCREEN_UPDATE_STATIC(cave)
1959   MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
19601960
19611961   MCFG_GFXDECODE(donpachi)
19621962   MCFG_PALETTE_LENGTH(0x8000)   /* $8000 palette entries for consistency with the other games */
r17967r17968
20022002   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
20032003   MCFG_SCREEN_SIZE(320, 240)
20042004   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
2005   MCFG_SCREEN_UPDATE_STATIC(cave)
2005   MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
20062006
20072007   MCFG_GFXDECODE(esprade)
20082008   MCFG_PALETTE_LENGTH(0x8000)
r17967r17968
20422042   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
20432043   MCFG_SCREEN_SIZE(320, 240)
20442044   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
2045   MCFG_SCREEN_UPDATE_STATIC(cave)
2045   MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
20462046
20472047   MCFG_GFXDECODE(esprade)
20482048   MCFG_PALETTE_LENGTH(0x8000)
r17967r17968
20832083   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
20842084   MCFG_SCREEN_SIZE(320, 240)
20852085   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
2086   MCFG_SCREEN_UPDATE_STATIC(cave)
2086   MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
20872087
20882088   MCFG_GFXDECODE(esprade)
20892089   MCFG_PALETTE_LENGTH(0x8000)
r17967r17968
21272127   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
21282128   MCFG_SCREEN_SIZE(384, 240)
21292129   MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 240-1)
2130   MCFG_SCREEN_UPDATE_STATIC(cave)
2130   MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
21312131
21322132   MCFG_GFXDECODE(hotdogst)
21332133   MCFG_PALETTE_LENGTH(0x8000)   /* $8000 palette entries for consistency with the other games */
r17967r17968
21792179   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
21802180   MCFG_SCREEN_SIZE(320, 240)
21812181   MCFG_SCREEN_VISIBLE_AREA(0, 320-1-2, 0, 240-1-1)
2182   MCFG_SCREEN_UPDATE_STATIC(cave)
2182   MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
21832183
21842184   MCFG_GFXDECODE(korokoro)
21852185   MCFG_PALETTE_LENGTH(0x8000)   /* $8000 palette entries for consistency with the other games */
r17967r17968
22332233   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
22342234   MCFG_SCREEN_SIZE(384, 240)
22352235   MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 240-1)
2236   MCFG_SCREEN_UPDATE_STATIC(cave)
2236   MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
22372237
22382238   MCFG_GFXDECODE(mazinger)
22392239   MCFG_PALETTE_LENGTH(0x8000)   /* $8000 palette entries for consistency with the other games */
r17967r17968
22912291   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
22922292   MCFG_SCREEN_SIZE(0x200, 240)
22932293   MCFG_SCREEN_VISIBLE_AREA(0x7d, 0x7d + 0x180-1, 0, 240-1)
2294   MCFG_SCREEN_UPDATE_STATIC(cave)
2294   MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
22952295
22962296   MCFG_GFXDECODE(donpachi)
22972297   MCFG_PALETTE_LENGTH(0x8000)   /* $8000 palette entries for consistency with the other games */
r17967r17968
23462346   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
23472347   MCFG_SCREEN_SIZE(0x200, 240)
23482348   MCFG_SCREEN_VISIBLE_AREA(0x80, 0x80 + 0x140-1, 0, 240-1)
2349   MCFG_SCREEN_UPDATE_STATIC(cave)
2349   MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
23502350
23512351   MCFG_GFXDECODE(tjumpman)
23522352   MCFG_PALETTE_LENGTH(0x8000)
r17967r17968
24022402   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
24032403   MCFG_SCREEN_SIZE(0x200, 240)
24042404   MCFG_SCREEN_VISIBLE_AREA(0x70, 0x70 + 0x140-1, 0, 240-1)
2405   MCFG_SCREEN_UPDATE_STATIC(cave)
2405   MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
24062406
24072407   MCFG_GFXDECODE(pwrinst2)
24082408   MCFG_PALETTE_LENGTH(0x8000+0x2800)
r17967r17968
24652465   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
24662466   MCFG_SCREEN_SIZE(320+1, 240)
24672467   MCFG_SCREEN_VISIBLE_AREA(0+1, 320+1-1, 0, 240-1)
2468   MCFG_SCREEN_UPDATE_STATIC(cave)
2468   MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
24692469
24702470   MCFG_GFXDECODE(sailormn)
24712471   MCFG_PALETTE_LENGTH(0x8000)   /* $8000 palette entries for consistency with the other games */
r17967r17968
25192519   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
25202520   MCFG_SCREEN_SIZE(0x200, 240)
25212521   MCFG_SCREEN_VISIBLE_AREA(0x80, 0x80 + 0x140-1, 0, 240-1)
2522   MCFG_SCREEN_UPDATE_STATIC(cave)
2522   MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
25232523
25242524   MCFG_GFXDECODE(tjumpman)
25252525   MCFG_PALETTE_LENGTH(0x8000)
r17967r17968
25602560   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
25612561   MCFG_SCREEN_SIZE(320, 240)
25622562   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
2563   MCFG_SCREEN_UPDATE_STATIC(cave)
2563   MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
25642564
25652565   MCFG_GFXDECODE(uopoko)
25662566   MCFG_PALETTE_LENGTH(0x8000)
trunk/src/mame/drivers/williams.c
r17967r17968
14511451
14521452   MCFG_SCREEN_ADD("screen", RASTER)
14531453   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK*2/3, 512, 10, 304, 260, 7, 245)
1454   MCFG_SCREEN_UPDATE_STATIC(williams)
1454   MCFG_SCREEN_UPDATE_DRIVER(williams_state, screen_update_williams)
14551455
14561456   MCFG_VIDEO_START_OVERRIDE(williams_state,williams)
14571457
r17967r17968
15901590   /* video hardware */
15911591   MCFG_VIDEO_START_OVERRIDE(williams_state,blaster)
15921592   MCFG_SCREEN_MODIFY("screen")
1593   MCFG_SCREEN_UPDATE_STATIC(blaster)
1593   MCFG_SCREEN_UPDATE_DRIVER(williams_state, screen_update_blaster)
15941594
15951595   /* pia */
15961596   MCFG_PIA6821_MODIFY("pia_0", williams_49way_muxed_pia_0_intf)
r17967r17968
16431643
16441644   MCFG_SCREEN_ADD("screen", RASTER)
16451645   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK*2/3, 512, 8, 284, 260, 8, 248)
1646   MCFG_SCREEN_UPDATE_STATIC(williams2)
1646   MCFG_SCREEN_UPDATE_DRIVER(williams_state, screen_update_williams2)
16471647
16481648   MCFG_VIDEO_START_OVERRIDE(williams_state,williams2)
16491649
trunk/src/mame/drivers/dec8.c
r17967r17968
6666}
6767
6868/* Only used by ghostb, gondo, garyoret, other games can control buffering */
69static SCREEN_VBLANK( dec8 )
69void dec8_state::screen_eof_dec8(screen_device &screen, bool state)
7070{
71   dec8_state *state = screen.machine().driver_data<dec8_state>();
7271   // rising edge
73   if (vblank_on)
72   if (state)
7473   {
7574      address_space &space = *screen.machine().device("maincpu")->memory().space(AS_PROGRAM);
76      state->dec8_mxc06_karn_buffer_spriteram_w(space, 0, 0);
75      dec8_mxc06_karn_buffer_spriteram_w(space, 0, 0);
7776   }
7877}
7978
r17967r17968
20562055   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* 58Hz, 529ms Vblank duration */)
20572056   MCFG_SCREEN_SIZE(32*8, 32*8)
20582057   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
2059   MCFG_SCREEN_UPDATE_STATIC(lastmisn)
2058   MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_lastmisn)
20602059
20612060   MCFG_GFXDECODE(shackled)
20622061   MCFG_PALETTE_LENGTH(1024)
r17967r17968
21032102   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* 58Hz, 529ms Vblank duration */)
21042103   MCFG_SCREEN_SIZE(32*8, 32*8)
21052104   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
2106   MCFG_SCREEN_UPDATE_STATIC(shackled)
2105   MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_shackled)
21072106
21082107   MCFG_GFXDECODE(shackled)
21092108   MCFG_PALETTE_LENGTH(1024)
r17967r17968
21502149   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 58Hz, 529ms Vblank duration */)
21512150   MCFG_SCREEN_SIZE(32*8, 32*8)
21522151   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
2153   MCFG_SCREEN_UPDATE_STATIC(gondo)
2154   MCFG_SCREEN_VBLANK_STATIC(dec8)
2152   MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_gondo)
2153   MCFG_SCREEN_VBLANK_DRIVER(dec8_state, screen_eof_dec8)
21552154
21562155   MCFG_GFXDECODE(gondo)
21572156   MCFG_PALETTE_LENGTH(1024)
r17967r17968
21982197   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 58Hz, 529ms Vblank duration */)
21992198   MCFG_SCREEN_SIZE(32*8, 32*8)
22002199   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
2201   MCFG_SCREEN_UPDATE_STATIC(garyoret)
2202   MCFG_SCREEN_VBLANK_STATIC(dec8)
2200   MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_garyoret)
2201   MCFG_SCREEN_VBLANK_DRIVER(dec8_state, screen_eof_dec8)
22032202
22042203   MCFG_GFXDECODE(gondo)
22052204   MCFG_PALETTE_LENGTH(1024)
r17967r17968
22492248   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* 58Hz, 529ms Vblank duration */)
22502249   MCFG_SCREEN_SIZE(32*8, 32*8)
22512250   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
2252   MCFG_SCREEN_UPDATE_STATIC(ghostb)
2253   MCFG_SCREEN_VBLANK_STATIC(dec8)
2251   MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_ghostb)
2252   MCFG_SCREEN_VBLANK_DRIVER(dec8_state, screen_eof_dec8)
22542253
22552254   MCFG_GFXDECODE(ghostb)
22562255   MCFG_PALETTE_LENGTH(1024)
r17967r17968
22992298   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 58Hz, 529ms Vblank duration */)
23002299   MCFG_SCREEN_SIZE(32*8, 32*8)
23012300   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
2302   MCFG_SCREEN_UPDATE_STATIC(lastmisn)
2301   MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_lastmisn)
23032302
23042303   MCFG_GFXDECODE(shackled)
23052304   MCFG_PALETTE_LENGTH(1024)
r17967r17968
23542353   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* 58Hz, 529ms Vblank duration */)
23552354   MCFG_SCREEN_SIZE(32*8, 32*8)
23562355   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
2357   MCFG_SCREEN_UPDATE_STATIC(oscar)
2356   MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_oscar)
23582357
23592358   MCFG_GFXDECODE(oscar)
23602359   MCFG_PALETTE_LENGTH(512)
r17967r17968
23952394   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 58Hz, 529ms Vblank duration */)
23962395   MCFG_SCREEN_SIZE(32*8, 32*8)
23972396   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
2398   MCFG_SCREEN_UPDATE_STATIC(srdarwin)
2397   MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_srdarwin)
23992398
24002399   MCFG_GFXDECODE(srdarwin)
24012400   MCFG_PALETTE_LENGTH(144)
r17967r17968
24452444   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 58Hz, 529ms Vblank duration */)
24462445   MCFG_SCREEN_SIZE(32*8, 32*8)
24472446   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
2448   MCFG_SCREEN_UPDATE_STATIC(cobracom)
2447   MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_cobracom)
24492448
24502449   MCFG_GFXDECODE(cobracom)
24512450   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/fuukifg3.c
r17967r17968
605605   MCFG_SCREEN_REFRESH_RATE(60)
606606   MCFG_SCREEN_SIZE(64*8, 32*8)
607607   MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 0, 30*8-1)
608   MCFG_SCREEN_UPDATE_STATIC(fuuki32)
609   MCFG_SCREEN_VBLANK_STATIC(fuuki32)
608   MCFG_SCREEN_UPDATE_DRIVER(fuuki32_state, screen_update_fuuki32)
609   MCFG_SCREEN_VBLANK_DRIVER(fuuki32_state, screen_eof_fuuki32)
610610
611611   MCFG_GFXDECODE(fuuki32)
612612   MCFG_PALETTE_LENGTH(0x4000/2)
trunk/src/mame/drivers/chance32.c
r17967r17968
6262   virtual void machine_start();
6363   virtual void machine_reset();
6464   virtual void video_start();
65   UINT32 screen_update_chance32(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6566};
6667
6768
r17967r17968
101102}
102103
103104
104SCREEN_UPDATE_IND16( chance32 )
105UINT32 chance32_state::screen_update_chance32(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
105106{
106   chance32_state *state = screen.machine().driver_data<chance32_state>();
107107
108108   /* TODO: wtf? */
109   state->m_bg_tilemap->set_scrollx(0, 352);
110   state->m_bg_tilemap->set_scrolly(0, 160);
111   state->m_fg_tilemap->set_scrollx(0, 352);
112   state->m_fg_tilemap->set_scrolly(0, 160);
109   m_bg_tilemap->set_scrollx(0, 352);
110   m_bg_tilemap->set_scrolly(0, 160);
111   m_fg_tilemap->set_scrollx(0, 352);
112   m_fg_tilemap->set_scrolly(0, 160);
113113
114   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
115   state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
114   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
115   m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
116116
117117   return 0;
118118}
r17967r17968
481481   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
482482   MCFG_SCREEN_SIZE(40*16, 32*8)
483483   MCFG_SCREEN_VISIBLE_AREA(0, 35*16-1, 0, 29*8-1)
484   MCFG_SCREEN_UPDATE_STATIC(chance32)
484   MCFG_SCREEN_UPDATE_DRIVER(chance32_state, screen_update_chance32)
485485
486486   MCFG_MC6845_ADD("crtc", H46505, 12000000/16, mc6845_intf)   /* 52.786 Hz (similar to Major Poker) */
487487
trunk/src/mame/drivers/tbowl.c
r17967r17968
482482   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
483483   MCFG_SCREEN_SIZE(32*8, 32*8)
484484   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
485   MCFG_SCREEN_UPDATE_STATIC(tbowl_left)
485   MCFG_SCREEN_UPDATE_DRIVER(tbowl_state, screen_update_tbowl_left)
486486
487487   MCFG_SCREEN_ADD("rscreen", RASTER)
488488   MCFG_SCREEN_REFRESH_RATE(60)
489489   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
490490   MCFG_SCREEN_SIZE(32*8, 32*8)
491491   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
492   MCFG_SCREEN_UPDATE_STATIC(tbowl_right)
492   MCFG_SCREEN_UPDATE_DRIVER(tbowl_state, screen_update_tbowl_right)
493493
494494
495495
trunk/src/mame/drivers/battlane.c
r17967r17968
303303   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
304304   MCFG_SCREEN_SIZE(32 * 8, 32 * 8)
305305   MCFG_SCREEN_VISIBLE_AREA(1 * 8, 31 * 8 - 1, 0 * 8, 32 * 8 - 1)
306   MCFG_SCREEN_UPDATE_STATIC(battlane)
306   MCFG_SCREEN_UPDATE_DRIVER(battlane_state, screen_update_battlane)
307307
308308   MCFG_GFXDECODE(battlane)
309309   MCFG_PALETTE_LENGTH(64)
trunk/src/mame/drivers/atarigt.c
r17967r17968
826826   /* note: these parameters are from published specs, not derived */
827827   /* the board uses a pair of GALs to determine H and V parameters */
828828   MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
829   MCFG_SCREEN_UPDATE_STATIC(atarigt)
830   MCFG_SCREEN_VBLANK_STATIC(atarigt)
829   MCFG_SCREEN_UPDATE_DRIVER(atarigt_state, screen_update_atarigt)
830   MCFG_SCREEN_VBLANK_DRIVER(atarigt_state, screen_eof_atarigt)
831831
832832   MCFG_VIDEO_START_OVERRIDE(atarigt_state,atarigt)
833833
trunk/src/mame/drivers/crimfght.c
r17967r17968
296296   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
297297   MCFG_SCREEN_SIZE(64*8, 32*8)
298298   MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 )
299   MCFG_SCREEN_UPDATE_STATIC(crimfght)
299   MCFG_SCREEN_UPDATE_DRIVER(crimfght_state, screen_update_crimfght)
300300
301301   MCFG_PALETTE_LENGTH(512)
302302
trunk/src/mame/drivers/rabbit.c
r17967r17968
137137   TILE_GET_INFO_MEMBER(get_rabbit_tilemap2_tile_info);
138138   TILE_GET_INFO_MEMBER(get_rabbit_tilemap3_tile_info);
139139   virtual void video_start();
140   UINT32 screen_update_rabbit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
140141};
141142
142143
r17967r17968
461462         tran ? 0 : TILEMAP_DRAW_OPAQUE,0);
462463}
463464
464static SCREEN_UPDATE_IND16(rabbit)
465UINT32 rabbit_state::screen_update_rabbit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
465466{
466   rabbit_state *state = screen.machine().driver_data<rabbit_state>();
467467   int prilevel;
468468
469469   bitmap.fill(get_black_pen(screen.machine()), cliprect);
470470
471//  popmessage("%08x %08x", state->m_viewregs0[0], state->m_viewregs0[1]);
472//  popmessage("%08x %08x %08x %08x %08x %08x", state->m_tilemap_regs[0][0],state->m_tilemap_regs[0][1],state->m_tilemap_regs[0][2],state->m_tilemap_regs[0][3],state->m_tilemap_regs[0][4],state->m_tilemap_regs[0][5]);
473//  popmessage("%08x %08x %08x %08x %08x %08x", state->m_tilemap_regs[1][0],state->m_tilemap_regs[1][1],state->m_tilemap_regs[1][2],state->m_tilemap_regs[1][3],state->m_tilemap_regs[1][4],state->m_tilemap_regs[1][5]);
474//  popmessage("%08x %08x %08x %08x %08x %08x", state->m_tilemap_regs[2][0],state->m_tilemap_regs[2][1],state->m_tilemap_regs[2][2],state->m_tilemap_regs[2][3],state->m_tilemap_regs[2][4],state->m_tilemap_regs[2][5]);
475//  popmessage("%08x %08x %08x %08x %08x %08x", state->m_tilemap_regs[3][0],state->m_tilemap_regs[3][1],state->m_tilemap_regs[3][2],state->m_tilemap_regs[3][3],state->m_tilemap_regs[3][4],state->m_tilemap_regs[3][5]);
476//  popmessage("%08x %08x %08x %08x %08x %08x %08x", state->m_spriteregs[0],state->m_spriteregs[1],state->m_spriteregs[2],state->m_spriteregs[3],state->m_spriteregs[4],state->m_spriteregs[5], state->m_spriteregs[6]);
477//  popmessage("%08x %08x %08x %08x %08x", state->m_viewregs6[0],state->m_viewregs6[1],state->m_viewregs6[2],state->m_viewregs6[3],state->m_viewregs6[4]);
478//  popmessage("%08x", state->m_viewregs7[0]);
479//  popmessage("%08x %08x %08x %08x", state->m_blitterregs[0],state->m_blitterregs[1],state->m_blitterregs[2],state->m_blitterregs[3]);
480//  popmessage("%08x %08x %08x %08x", state->m_viewregs9[0],state->m_viewregs9[1],state->m_viewregs9[2],state->m_viewregs9[3]);
471//  popmessage("%08x %08x", m_viewregs0[0], m_viewregs0[1]);
472//  popmessage("%08x %08x %08x %08x %08x %08x", m_tilemap_regs[0][0],m_tilemap_regs[0][1],m_tilemap_regs[0][2],m_tilemap_regs[0][3],m_tilemap_regs[0][4],m_tilemap_regs[0][5]);
473//  popmessage("%08x %08x %08x %08x %08x %08x", m_tilemap_regs[1][0],m_tilemap_regs[1][1],m_tilemap_regs[1][2],m_tilemap_regs[1][3],m_tilemap_regs[1][4],m_tilemap_regs[1][5]);
474//  popmessage("%08x %08x %08x %08x %08x %08x", m_tilemap_regs[2][0],m_tilemap_regs[2][1],m_tilemap_regs[2][2],m_tilemap_regs[2][3],m_tilemap_regs[2][4],m_tilemap_regs[2][5]);
475//  popmessage("%08x %08x %08x %08x %08x %08x", m_tilemap_regs[3][0],m_tilemap_regs[3][1],m_tilemap_regs[3][2],m_tilemap_regs[3][3],m_tilemap_regs[3][4],m_tilemap_regs[3][5]);
476//  popmessage("%08x %08x %08x %08x %08x %08x %08x", m_spriteregs[0],m_spriteregs[1],m_spriteregs[2],m_spriteregs[3],m_spriteregs[4],m_spriteregs[5], m_spriteregs[6]);
477//  popmessage("%08x %08x %08x %08x %08x", m_viewregs6[0],m_viewregs6[1],m_viewregs6[2],m_viewregs6[3],m_viewregs6[4]);
478//  popmessage("%08x", m_viewregs7[0]);
479//  popmessage("%08x %08x %08x %08x", m_blitterregs[0],m_blitterregs[1],m_blitterregs[2],m_blitterregs[3]);
480//  popmessage("%08x %08x %08x %08x", m_viewregs9[0],m_viewregs9[1],m_viewregs9[2],m_viewregs9[3]);
481481
482//  popmessage("%08x %08x %08x %08x %08x", state->m_viewregs10[0],state->m_viewregs10[1],state->m_viewregs10[2],state->m_viewregs10[3],state->m_viewregs10[4]);
482//  popmessage("%08x %08x %08x %08x %08x", m_viewregs10[0],m_viewregs10[1],m_viewregs10[2],m_viewregs10[3],m_viewregs10[4]);
483483
484484   /* prio isnt certain but seems to work.. */
485485   for (prilevel = 0xf; prilevel >0; prilevel--)
486486   {
487      if (prilevel == ((state->m_tilemap_regs[3][0]&0x0f000000)>>24)) rabbit_drawtilemap(screen.machine(),bitmap,cliprect, 3);
488      if (prilevel == ((state->m_tilemap_regs[2][0]&0x0f000000)>>24)) rabbit_drawtilemap(screen.machine(),bitmap,cliprect, 2);
489      if (prilevel == ((state->m_tilemap_regs[1][0]&0x0f000000)>>24)) rabbit_drawtilemap(screen.machine(),bitmap,cliprect, 1);
490      if (prilevel == ((state->m_tilemap_regs[0][0]&0x0f000000)>>24)) rabbit_drawtilemap(screen.machine(),bitmap,cliprect, 0);
487      if (prilevel == ((m_tilemap_regs[3][0]&0x0f000000)>>24)) rabbit_drawtilemap(screen.machine(),bitmap,cliprect, 3);
488      if (prilevel == ((m_tilemap_regs[2][0]&0x0f000000)>>24)) rabbit_drawtilemap(screen.machine(),bitmap,cliprect, 2);
489      if (prilevel == ((m_tilemap_regs[1][0]&0x0f000000)>>24)) rabbit_drawtilemap(screen.machine(),bitmap,cliprect, 1);
490      if (prilevel == ((m_tilemap_regs[0][0]&0x0f000000)>>24)) rabbit_drawtilemap(screen.machine(),bitmap,cliprect, 0);
491491
492492      if (prilevel == 0x09) // should it be selectable?
493493      {
r17967r17968
891891   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
892892//  MCFG_SCREEN_VISIBLE_AREA(0*8, 64*16-1, 0*16, 64*16-1)
893893//  MCFG_SCREEN_VISIBLE_AREA(0*8, 20*16-1, 32*16, 48*16-1)
894   MCFG_SCREEN_UPDATE_STATIC(rabbit)
894   MCFG_SCREEN_UPDATE_DRIVER(rabbit_state, screen_update_rabbit)
895895
896896   MCFG_PALETTE_LENGTH(0x4000)
897897   MCFG_PALETTE_INIT( all_black )
trunk/src/mame/drivers/triplhnt.c
r17967r17968
320320   MCFG_SCREEN_REFRESH_RATE(60)
321321   MCFG_SCREEN_SIZE(256, 262)
322322   MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239)
323   MCFG_SCREEN_UPDATE_STATIC(triplhnt)
323   MCFG_SCREEN_UPDATE_DRIVER(triplhnt_state, screen_update_triplhnt)
324324
325325   MCFG_GFXDECODE(triplhnt)
326326   MCFG_PALETTE_LENGTH(8)
trunk/src/mame/drivers/asuka.c
r17967r17968
870870   memset(m_cval, 0, 26);
871871}
872872
873static SCREEN_VBLANK( asuka )
873void asuka_state::screen_eof_asuka(screen_device &screen, bool state)
874874{
875875   // rising edge
876   if (vblank_on)
876   if (state)
877877   {
878      asuka_state *state = screen.machine().driver_data<asuka_state>();
879      pc090oj_eof_callback(state->m_pc090oj);
878      pc090oj_eof_callback(m_pc090oj);
880879   }
881880}
882881
r17967r17968
911910   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
912911   MCFG_SCREEN_SIZE(40*8, 32*8)
913912   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 3*8, 31*8-1)
914   MCFG_SCREEN_UPDATE_STATIC(bonzeadv)
915   MCFG_SCREEN_VBLANK_STATIC(asuka)
913   MCFG_SCREEN_UPDATE_DRIVER(asuka_state, screen_update_bonzeadv)
914   MCFG_SCREEN_VBLANK_DRIVER(asuka_state, screen_eof_asuka)
916915
917916   MCFG_GFXDECODE(asuka)
918917   MCFG_PALETTE_LENGTH(4096)
r17967r17968
954953   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
955954   MCFG_SCREEN_SIZE(40*8, 32*8)
956955   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
957   MCFG_SCREEN_UPDATE_STATIC(asuka)
958   MCFG_SCREEN_VBLANK_STATIC(asuka)
956   MCFG_SCREEN_UPDATE_DRIVER(asuka_state, screen_update_asuka)
957   MCFG_SCREEN_VBLANK_DRIVER(asuka_state, screen_eof_asuka)
959958
960959   MCFG_GFXDECODE(asuka)
961960   MCFG_PALETTE_LENGTH(4096)
r17967r17968
10041003   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
10051004   MCFG_SCREEN_SIZE(40*8, 32*8)
10061005   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
1007   MCFG_SCREEN_UPDATE_STATIC(bonzeadv)
1008   MCFG_SCREEN_VBLANK_STATIC(asuka)
1006   MCFG_SCREEN_UPDATE_DRIVER(asuka_state, screen_update_bonzeadv)
1007   MCFG_SCREEN_VBLANK_DRIVER(asuka_state, screen_eof_asuka)
10091008
10101009   MCFG_GFXDECODE(asuka)
10111010   MCFG_PALETTE_LENGTH(4096)
r17967r17968
10461045   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
10471046   MCFG_SCREEN_SIZE(40*8, 32*8)
10481047   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
1049   MCFG_SCREEN_UPDATE_STATIC(asuka)
1050   MCFG_SCREEN_VBLANK_STATIC(asuka)
1048   MCFG_SCREEN_UPDATE_DRIVER(asuka_state, screen_update_asuka)
1049   MCFG_SCREEN_VBLANK_DRIVER(asuka_state, screen_eof_asuka)
10511050
10521051   MCFG_GFXDECODE(asuka)
10531052   MCFG_PALETTE_LENGTH(4096)   /* only Mofflott uses full palette space */
r17967r17968
10921091   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
10931092   MCFG_SCREEN_SIZE(40*8, 32*8)
10941093   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
1095   MCFG_SCREEN_UPDATE_STATIC(asuka)
1096   MCFG_SCREEN_VBLANK_STATIC(asuka)
1094   MCFG_SCREEN_UPDATE_DRIVER(asuka_state, screen_update_asuka)
1095   MCFG_SCREEN_VBLANK_DRIVER(asuka_state, screen_eof_asuka)
10971096
10981097   MCFG_GFXDECODE(asuka)
10991098   MCFG_PALETTE_LENGTH(4096)   /* only Mofflott uses full palette space */
r17967r17968
11341133   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
11351134   MCFG_SCREEN_SIZE(40*8, 32*8)
11361135   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
1137   MCFG_SCREEN_UPDATE_STATIC(asuka)
1138   MCFG_SCREEN_VBLANK_STATIC(asuka)
1136   MCFG_SCREEN_UPDATE_DRIVER(asuka_state, screen_update_asuka)
1137   MCFG_SCREEN_VBLANK_DRIVER(asuka_state, screen_eof_asuka)
11391138
11401139   MCFG_GFXDECODE(asuka)
11411140   MCFG_PALETTE_LENGTH(4096)
trunk/src/mame/drivers/pooyan.c
r17967r17968
201201   MCFG_SCREEN_REFRESH_RATE(60)
202202   MCFG_SCREEN_SIZE(32*8, 32*8)
203203   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
204   MCFG_SCREEN_UPDATE_STATIC(pooyan)
204   MCFG_SCREEN_UPDATE_DRIVER(pooyan_state, screen_update_pooyan)
205205
206206   MCFG_GFXDECODE(pooyan)
207207   MCFG_PALETTE_LENGTH(16*16+16*16)
trunk/src/mame/drivers/hvyunit.c
r17967r17968
126126   virtual void machine_start();
127127   virtual void machine_reset();
128128   virtual void video_start();
129   UINT32 screen_update_hvyunit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
130   void screen_eof_hvyunit(screen_device &screen, bool state);
129131};
130132
131133
r17967r17968
177179   m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(hvyunit_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
178180}
179181
180static SCREEN_UPDATE_IND16( hvyunit )
182UINT32 hvyunit_state::screen_update_hvyunit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
181183{
182184#define SX_POS   96
183185#define SY_POS   0
184   hvyunit_state *state = screen.machine().driver_data<hvyunit_state>();
185186
186   state->m_bg_tilemap->set_scrollx(0, ((state->m_port0_data & 0x40) << 2) + state->m_scrollx + SX_POS); // TODO
187   state->m_bg_tilemap->set_scrolly(0, ((state->m_port0_data & 0x80) << 1) + state->m_scrolly + SY_POS); // TODO
187   m_bg_tilemap->set_scrollx(0, ((m_port0_data & 0x40) << 2) + m_scrollx + SX_POS); // TODO
188   m_bg_tilemap->set_scrolly(0, ((m_port0_data & 0x80) << 1) + m_scrolly + SY_POS); // TODO
188189   bitmap.fill(get_black_pen(screen.machine()), cliprect);
189   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
190   pandora_update(state->m_pandora, bitmap, cliprect);
190   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
191   pandora_update(m_pandora, bitmap, cliprect);
191192
192193   return 0;
193194}
194195
195static SCREEN_VBLANK( hvyunit )
196void hvyunit_state::screen_eof_hvyunit(screen_device &screen, bool state)
196197{
197198   // rising edge
198   if (vblank_on)
199   if (state)
199200   {
200      hvyunit_state *state = screen.machine().driver_data<hvyunit_state>();
201      pandora_eof(state->m_pandora);
201      pandora_eof(m_pandora);
202202   }
203203}
204204
r17967r17968
679679   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
680680   MCFG_SCREEN_SIZE(256, 256)
681681   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1)
682   MCFG_SCREEN_UPDATE_STATIC(hvyunit)
683   MCFG_SCREEN_VBLANK_STATIC(hvyunit)
682   MCFG_SCREEN_UPDATE_DRIVER(hvyunit_state, screen_update_hvyunit)
683   MCFG_SCREEN_VBLANK_DRIVER(hvyunit_state, screen_eof_hvyunit)
684684
685685   MCFG_GFXDECODE(hvyunit)
686686   MCFG_PALETTE_LENGTH(0x800)
trunk/src/mame/drivers/wolfpack.c
r17967r17968
300300   MCFG_SCREEN_REFRESH_RATE(60)
301301   MCFG_SCREEN_SIZE(512, 262)
302302   MCFG_SCREEN_VISIBLE_AREA(0, 511, 16, 239)
303   MCFG_SCREEN_UPDATE_STATIC(wolfpack)
304   MCFG_SCREEN_VBLANK_STATIC(wolfpack)
303   MCFG_SCREEN_UPDATE_DRIVER(wolfpack_state, screen_update_wolfpack)
304   MCFG_SCREEN_VBLANK_DRIVER(wolfpack_state, screen_eof_wolfpack)
305305
306306   MCFG_GFXDECODE(wolfpack)
307307   MCFG_PALETTE_LENGTH(12)
trunk/src/mame/drivers/rollerg.c
r17967r17968
291291   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
292292   MCFG_SCREEN_SIZE(64*8, 32*8)
293293   MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
294   MCFG_SCREEN_UPDATE_STATIC(rollerg)
294   MCFG_SCREEN_UPDATE_DRIVER(rollerg_state, screen_update_rollerg)
295295
296296   MCFG_PALETTE_LENGTH(1024)
297297
trunk/src/mame/drivers/pirates.c
r17967r17968
275275   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
276276   MCFG_SCREEN_SIZE(36*8, 32*8)
277277   MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 2*8, 30*8-1)
278   MCFG_SCREEN_UPDATE_STATIC(pirates)
278   MCFG_SCREEN_UPDATE_DRIVER(pirates_state, screen_update_pirates)
279279
280280   MCFG_PALETTE_LENGTH(0x2000)
281281
trunk/src/mame/drivers/tankbatt.c
r17967r17968
295295   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
296296   MCFG_SCREEN_SIZE(32*8, 32*8)
297297   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
298   MCFG_SCREEN_UPDATE_STATIC(tankbatt)
298   MCFG_SCREEN_UPDATE_DRIVER(tankbatt_state, screen_update_tankbatt)
299299
300300   MCFG_GFXDECODE(tankbatt)
301301   MCFG_PALETTE_LENGTH(256*2)
trunk/src/mame/drivers/wrally.c
r17967r17968
263263   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
264264   MCFG_SCREEN_SIZE(64*16, 32*16)
265265   MCFG_SCREEN_VISIBLE_AREA(8, 24*16-8-1, 16, 16*16-8-1)
266   MCFG_SCREEN_UPDATE_STATIC(wrally)
266   MCFG_SCREEN_UPDATE_DRIVER(wrally_state, screen_update_wrally)
267267
268268   MCFG_GFXDECODE(wrally)
269269   MCFG_PALETTE_LENGTH(1024*8)
trunk/src/mame/drivers/royalmah.c
r17967r17968
196196   DECLARE_DRIVER_INIT(ippatsu);
197197   virtual void palette_init();
198198   DECLARE_PALETTE_INIT(mjderngr);
199   UINT32 screen_update_royalmah(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
199200};
200201
201202
r17967r17968
283284}
284285
285286
286static SCREEN_UPDATE_IND16( royalmah )
287UINT32 royalmah_state::screen_update_royalmah(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
287288{
288   royalmah_state *state = screen.machine().driver_data<royalmah_state>();
289   UINT8 *videoram = state->m_videoram;
289   UINT8 *videoram = m_videoram;
290290
291291   offs_t offs;
292292
r17967r17968
304304      {
305305         UINT8 pen = ((data2 >> 1) & 0x08) | ((data2 << 2) & 0x04) | ((data1 >> 3) & 0x02) | ((data1 >> 0) & 0x01);
306306
307         bitmap.pix16(y, x) = (state->m_palette_base << 4) | pen;
307         bitmap.pix16(y, x) = (m_palette_base << 4) | pen;
308308
309309         x = x - 1;
310310         data1 = data1 >> 1;
r17967r17968
31813181   MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 247)
31823182   MCFG_SCREEN_REFRESH_RATE(60)
31833183   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
3184   MCFG_SCREEN_UPDATE_STATIC(royalmah)
3184   MCFG_SCREEN_UPDATE_DRIVER(royalmah_state, screen_update_royalmah)
31853185
31863186   /* sound hardware */
31873187   MCFG_SPEAKER_STANDARD_MONO("mono")
trunk/src/mame/drivers/crospang.c
r17967r17968
362362   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
363363   MCFG_SCREEN_SIZE(64*8, 64*8)
364364   MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 0, 30*8-1)
365   MCFG_SCREEN_UPDATE_STATIC(crospang)
365   MCFG_SCREEN_UPDATE_DRIVER(crospang_state, screen_update_crospang)
366366
367367   MCFG_PALETTE_LENGTH(0x300)
368368   MCFG_GFXDECODE(crospang)
trunk/src/mame/drivers/subs.c
r17967r17968
192192   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
193193   MCFG_SCREEN_SIZE(32*8, 32*8)
194194   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
195   MCFG_SCREEN_UPDATE_STATIC(subs_left)
195   MCFG_SCREEN_UPDATE_DRIVER(subs_state, screen_update_subs_left)
196196
197197   MCFG_SCREEN_ADD("rscreen", RASTER)
198198   MCFG_SCREEN_REFRESH_RATE(57)
199199   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
200200   MCFG_SCREEN_SIZE(32*8, 32*8)
201201   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
202   MCFG_SCREEN_UPDATE_STATIC(subs_right)
202   MCFG_SCREEN_UPDATE_DRIVER(subs_state, screen_update_subs_right)
203203
204204
205205   /* sound hardware */
trunk/src/mame/drivers/darkmist.c
r17967r17968
242242   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
243243   MCFG_SCREEN_SIZE(256, 256)
244244   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1)
245   MCFG_SCREEN_UPDATE_STATIC(darkmist)
245   MCFG_SCREEN_UPDATE_DRIVER(darkmist_state, screen_update_darkmist)
246246
247247   MCFG_GFXDECODE(darkmist)
248248   MCFG_PALETTE_LENGTH(0x100*4)
trunk/src/mame/drivers/ajax.c
r17967r17968
229229   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
230230   MCFG_SCREEN_SIZE(64*8, 32*8)
231231   MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
232   MCFG_SCREEN_UPDATE_STATIC(ajax)
232   MCFG_SCREEN_UPDATE_DRIVER(ajax_state, screen_update_ajax)
233233
234234   MCFG_PALETTE_LENGTH(2048)
235235
trunk/src/mame/drivers/mquake.c
r17967r17968
354354   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
355355   MCFG_SCREEN_SIZE(512*2, 262)
356356   MCFG_SCREEN_VISIBLE_AREA((129-8)*2, (449+8-1)*2, 44-8, 244+8-1)
357   MCFG_SCREEN_UPDATE_STATIC(amiga)
357   MCFG_SCREEN_UPDATE_DRIVER(amiga_state, screen_update_amiga)
358358
359359   MCFG_PALETTE_LENGTH(4096)
360360   MCFG_PALETTE_INIT_OVERRIDE(amiga_state,amiga)
trunk/src/mame/drivers/funybubl.c
r17967r17968
234234   MCFG_SCREEN_SIZE(512, 256)
235235   MCFG_SCREEN_VISIBLE_AREA(12*8, 512-12*8-1, 16, 256-16-1)
236236//  MCFG_SCREEN_VISIBLE_AREA(0*8, 512-1, 0, 256-1)
237   MCFG_SCREEN_UPDATE_STATIC(funybubl)
237   MCFG_SCREEN_UPDATE_DRIVER(funybubl_state, screen_update_funybubl)
238238
239239   MCFG_GFXDECODE(funybubl)
240240   MCFG_PALETTE_LENGTH(0x400)
trunk/src/mame/drivers/rotaryf.c
r17967r17968
2626
2727   required_device<cpu_device> m_maincpu;
2828   required_shared_ptr<UINT8> m_videoram;
29   UINT32 screen_update_rotaryf(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
2930};
3031
3132
r17967r17968
6162 *
6263 *************************************/
6364
64static SCREEN_UPDATE_RGB32( rotaryf )
65UINT32 rotaryf_state::screen_update_rotaryf(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
6566{
66   rotaryf_state *state = screen.machine().driver_data<rotaryf_state>();
6767   offs_t offs;
6868
69   for (offs = 0; offs < state->m_videoram.bytes(); offs++)
69   for (offs = 0; offs < m_videoram.bytes(); offs++)
7070   {
7171      int i;
7272
7373      UINT8 x = offs << 3;
7474      int y = offs >> 5;
75      UINT8 data = state->m_videoram[offs];
75      UINT8 data = m_videoram[offs];
7676
7777      for (i = 0; i < 8; i++)
7878      {
r17967r17968
178178   MCFG_SCREEN_SIZE(32*8, 262)      /* vert size is a guess, taken from mw8080bw */
179179   MCFG_SCREEN_VISIBLE_AREA(1*8, 30*8-1, 0*8, 32*8-1)
180180   MCFG_SCREEN_REFRESH_RATE(60)
181   MCFG_SCREEN_UPDATE_STATIC(rotaryf)
181   MCFG_SCREEN_UPDATE_DRIVER(rotaryf_state, screen_update_rotaryf)
182182
183183MACHINE_CONFIG_END
184184
trunk/src/mame/drivers/shisen.c
r17967r17968
228228   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
229229   MCFG_SCREEN_SIZE(64*8, 32*8)
230230   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
231   MCFG_SCREEN_UPDATE_STATIC(sichuan2)
231   MCFG_SCREEN_UPDATE_DRIVER(shisen_state, screen_update_sichuan2)
232232
233233   MCFG_GFXDECODE(shisen)
234234   MCFG_PALETTE_LENGTH(256)
trunk/src/mame/drivers/nmk16.c
r17967r17968
35643564   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
35653565   MCFG_SCREEN_SIZE(256, 256)
35663566   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
3567   MCFG_SCREEN_UPDATE_STATIC(tharrier)
3568   MCFG_SCREEN_VBLANK_STATIC(nmk)
3567   MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_tharrier)
3568   MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
35693569
35703570   MCFG_GFXDECODE(tharrier)
35713571   MCFG_PALETTE_LENGTH(512)
r17967r17968
36073607   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
36083608   MCFG_SCREEN_SIZE(256, 256)
36093609   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
3610   MCFG_SCREEN_UPDATE_STATIC(manybloc)
3611   MCFG_SCREEN_VBLANK_STATIC(nmk)
3610   MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_manybloc)
3611   MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
36123612
36133613   MCFG_GFXDECODE(tharrier)
36143614   MCFG_PALETTE_LENGTH(512)
r17967r17968
36483648   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
36493649   MCFG_SCREEN_SIZE(256, 256)
36503650   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
3651   MCFG_SCREEN_UPDATE_STATIC(macross)
3652   MCFG_SCREEN_VBLANK_STATIC(nmk)
3651   MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross)
3652   MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
36533653
36543654   MCFG_GFXDECODE(macross)
36553655   MCFG_PALETTE_LENGTH(1024)
r17967r17968
36913691   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
36923692   MCFG_SCREEN_SIZE(256, 256)
36933693   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
3694   MCFG_SCREEN_UPDATE_STATIC(macross)
3695   MCFG_SCREEN_VBLANK_STATIC(nmk)
3694   MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross)
3695   MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
36963696
36973697   MCFG_GFXDECODE(macross)
36983698   MCFG_PALETTE_LENGTH(1024)
r17967r17968
37233723   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
37243724   MCFG_SCREEN_SIZE(256, 256)
37253725   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
3726   MCFG_SCREEN_UPDATE_STATIC(bioship)
3727   MCFG_SCREEN_VBLANK_STATIC(nmk)
3726   MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_bioship)
3727   MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
37283728
37293729   MCFG_GFXDECODE(bioship)
37303730   MCFG_PALETTE_LENGTH(1024)
r17967r17968
37643764   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
37653765   MCFG_SCREEN_SIZE(256, 256)
37663766   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
3767   MCFG_SCREEN_UPDATE_STATIC(macross)
3768   MCFG_SCREEN_VBLANK_STATIC(nmk)
3767   MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross)
3768   MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
37693769
37703770   MCFG_GFXDECODE(macross)
37713771   MCFG_PALETTE_LENGTH(1024)
r17967r17968
38083808   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
38093809   MCFG_SCREEN_SIZE(256, 256)
38103810   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
3811   MCFG_SCREEN_UPDATE_STATIC(macross)
3812   MCFG_SCREEN_VBLANK_STATIC(nmk)
3811   MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross)
3812   MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
38133813
38143814   MCFG_GFXDECODE(macross)
38153815   MCFG_PALETTE_LENGTH(1024)
r17967r17968
38393839   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
38403840   MCFG_SCREEN_SIZE(256, 256)
38413841   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
3842   MCFG_SCREEN_UPDATE_STATIC(macross)
3843   MCFG_SCREEN_VBLANK_STATIC(nmk)
3842   MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross)
3843   MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
38443844
38453845   MCFG_GFXDECODE(macross)
38463846   MCFG_PALETTE_LENGTH(1024)
r17967r17968
38843884   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
38853885   MCFG_SCREEN_SIZE(256, 256)
38863886   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
3887   MCFG_SCREEN_UPDATE_STATIC(macross)
3888   MCFG_SCREEN_VBLANK_STATIC(nmk)
3887   MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross)
3888   MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
38893889
38903890   MCFG_GFXDECODE(macross)
38913891   MCFG_PALETTE_LENGTH(1024)
r17967r17968
39133913   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
39143914   MCFG_SCREEN_SIZE(256, 256)
39153915   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
3916   MCFG_SCREEN_UPDATE_STATIC(macross)
3917   MCFG_SCREEN_VBLANK_STATIC(nmk)
3916   MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross)
3917   MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
39183918
39193919   MCFG_GFXDECODE(macross)
39203920   MCFG_PALETTE_LENGTH(1024)
r17967r17968
39563956   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
39573957   MCFG_SCREEN_SIZE(256, 256)
39583958   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
3959   MCFG_SCREEN_UPDATE_STATIC(macross)
3960   MCFG_SCREEN_VBLANK_STATIC(nmk)
3959   MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross)
3960   MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
39613961
39623962   MCFG_GFXDECODE(macross)
39633963   MCFG_PALETTE_LENGTH(1024)
r17967r17968
39883988   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
39893989   MCFG_SCREEN_SIZE(256, 256)
39903990   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
3991   MCFG_SCREEN_UPDATE_STATIC(strahl)
3992   MCFG_SCREEN_VBLANK_STATIC(strahl)
3991   MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_strahl)
3992   MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_strahl)
39933993
39943994   MCFG_GFXDECODE(strahl)
39953995   MCFG_PALETTE_LENGTH(1024)
r17967r17968
40294029   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
40304030   MCFG_SCREEN_SIZE(256, 256)
40314031   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
4032   MCFG_SCREEN_UPDATE_STATIC(macross)
4033   MCFG_SCREEN_VBLANK_STATIC(nmk)
4032   MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross)
4033   MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
40344034
40354035   MCFG_GFXDECODE(macross)
40364036   MCFG_PALETTE_LENGTH(1024)
r17967r17968
40714071   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
40724072   MCFG_SCREEN_SIZE(256, 256)
40734073   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
4074   MCFG_SCREEN_UPDATE_STATIC(macross)
4075   MCFG_SCREEN_VBLANK_STATIC(nmk)
4074   MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross)
4075   MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
40764076
40774077   MCFG_GFXDECODE(macross)
40784078   MCFG_PALETTE_LENGTH(1024)
r17967r17968
41124112   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
41134113   MCFG_SCREEN_SIZE(256, 256)
41144114   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
4115   MCFG_SCREEN_UPDATE_STATIC(macross)
4116   MCFG_SCREEN_VBLANK_STATIC(nmk)
4115   MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross)
4116   MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
41174117
41184118   MCFG_GFXDECODE(macross)
41194119   MCFG_PALETTE_LENGTH(1024)
r17967r17968
41534153//  MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
41544154   MCFG_SCREEN_SIZE(512, 256)
41554155   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
4156   MCFG_SCREEN_UPDATE_STATIC(gunnail)
4157   MCFG_SCREEN_VBLANK_STATIC(nmk)
4156   MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_gunnail)
4157   MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
41584158
41594159   MCFG_GFXDECODE(macross)
41604160   MCFG_PALETTE_LENGTH(1024)
r17967r17968
41964196   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
41974197   MCFG_SCREEN_SIZE(512, 256)
41984198   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
4199   MCFG_SCREEN_UPDATE_STATIC(gunnail)
4200   MCFG_SCREEN_VBLANK_STATIC(nmk)
4199   MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_gunnail)
4200   MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
42014201
42024202   MCFG_GFXDECODE(macross2)
42034203   MCFG_PALETTE_LENGTH(1024)
r17967r17968
42384238   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
42394239   MCFG_SCREEN_SIZE(512, 256)
42404240   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
4241   MCFG_SCREEN_UPDATE_STATIC(tdragon2)
4242   MCFG_SCREEN_VBLANK_STATIC(nmk)
4241   MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_tdragon2)
4242   MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
42434243
42444244   MCFG_GFXDECODE(macross2)
42454245   MCFG_PALETTE_LENGTH(1024)
r17967r17968
42794279   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
42804280   MCFG_SCREEN_SIZE(512, 256)
42814281   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
4282   MCFG_SCREEN_UPDATE_STATIC(tdragon2)
4283   MCFG_SCREEN_VBLANK_STATIC(nmk)
4282   MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_tdragon2)
4283   MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
42844284
42854285   MCFG_GFXDECODE(macross2)
42864286   MCFG_PALETTE_LENGTH(1024)
r17967r17968
43174317   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
43184318   MCFG_SCREEN_SIZE(512, 256)
43194319   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
4320   MCFG_SCREEN_UPDATE_STATIC(bjtwin)
4321   MCFG_SCREEN_VBLANK_STATIC(nmk)
4320   MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_bjtwin)
4321   MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
43224322
43234323   MCFG_GFXDECODE(bjtwin)
43244324   MCFG_PALETTE_LENGTH(1024)
r17967r17968
48264826   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
48274827   MCFG_SCREEN_SIZE(256, 256)
48284828   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
4829   MCFG_SCREEN_UPDATE_STATIC(afega)
4830   MCFG_SCREEN_VBLANK_STATIC(nmk)
4829   MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_afega)
4830   MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
48314831
48324832   MCFG_GFXDECODE(stagger1)
48334833   MCFG_PALETTE_LENGTH(768)
r17967r17968
48524852   /* basic machine hardware */
48534853   /* video hardware */
48544854   MCFG_SCREEN_MODIFY("screen")
4855   MCFG_SCREEN_UPDATE_STATIC(redhawki)
4855   MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_redhawki)
48564856MACHINE_CONFIG_END
48574857
48584858static MACHINE_CONFIG_DERIVED( redhawkb, stagger1 )
r17967r17968
48614861   /* video hardware */
48624862   MCFG_GFXDECODE(redhawkb)
48634863   MCFG_SCREEN_MODIFY("screen")
4864   MCFG_SCREEN_UPDATE_STATIC(redhawkb)
4864   MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_redhawkb)
48654865MACHINE_CONFIG_END
48664866
48674867static MACHINE_CONFIG_DERIVED( grdnstrm, stagger1 )
r17967r17968
48724872   MCFG_GFXDECODE(grdnstrm)
48734873   MCFG_VIDEO_START_OVERRIDE(nmk16_state,firehawk)
48744874   MCFG_SCREEN_MODIFY("screen")
4875   MCFG_SCREEN_UPDATE_STATIC(firehawk)
4875   MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_firehawk)
48764876MACHINE_CONFIG_END
48774877
48784878static MACHINE_CONFIG_DERIVED( grdnstrmk, stagger1 ) /* Side by side with PCB, the music seems too fast as well */
r17967r17968
48924892
48934893   /* video hardware */
48944894   MCFG_SCREEN_MODIFY("screen")
4895   MCFG_SCREEN_UPDATE_STATIC(bubl2000)
4895   MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_bubl2000)
48964896MACHINE_CONFIG_END
48974897
48984898static MACHINE_CONFIG_START( firehawk, nmk16_state )
r17967r17968
49114911   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
49124912   MCFG_SCREEN_SIZE(256, 256)
49134913   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
4914   MCFG_SCREEN_UPDATE_STATIC(firehawk)
4915   MCFG_SCREEN_VBLANK_STATIC(nmk)
4914   MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_firehawk)
4915   MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
49164916
49174917   MCFG_GFXDECODE(grdnstrm)
49184918   MCFG_PALETTE_LENGTH(768)
r17967r17968
49464946   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
49474947   MCFG_SCREEN_SIZE(256, 256)
49484948   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
4949   MCFG_SCREEN_UPDATE_STATIC(macross)
4950   MCFG_SCREEN_VBLANK_STATIC(nmk)
4949   MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross)
4950   MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
49514951
49524952   MCFG_GFXDECODE(macross)
49534953   MCFG_PALETTE_LENGTH(1024)
trunk/src/mame/drivers/miniboy7.c
r17967r17968
168168   TILE_GET_INFO_MEMBER(get_bg_tile_info);
169169   virtual void video_start();
170170   virtual void palette_init();
171   UINT32 screen_update_miniboy7(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
171172};
172173
173174
r17967r17968
211212   m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(miniboy7_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 37, 37);
212213}
213214
214static SCREEN_UPDATE_IND16( miniboy7 )
215UINT32 miniboy7_state::screen_update_miniboy7(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
215216{
216   miniboy7_state *state = screen.machine().driver_data<miniboy7_state>();
217   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
217   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
218218   return 0;
219219}
220220
r17967r17968
462462   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
463463   MCFG_SCREEN_SIZE((47+1)*8, (39+1)*8)                  /* Taken from MC6845, registers 00 & 04. Normally programmed with (value-1) */
464464   MCFG_SCREEN_VISIBLE_AREA(0*8, 37*8-1, 0*8, 37*8-1)    /* Taken from MC6845, registers 01 & 06 */
465   MCFG_SCREEN_UPDATE_STATIC(miniboy7)
465   MCFG_SCREEN_UPDATE_DRIVER(miniboy7_state, screen_update_miniboy7)
466466
467467   MCFG_GFXDECODE(miniboy7)
468468
trunk/src/mame/drivers/m10.c
r17967r17968
837837   /* video hardware */
838838   MCFG_SCREEN_ADD("screen", RASTER)
839839   MCFG_SCREEN_RAW_PARAMS(IREMM10_PIXEL_CLOCK, IREMM10_HTOTAL, IREMM10_HBEND, IREMM10_HBSTART, IREMM10_VTOTAL, IREMM10_VBEND, IREMM10_VBSTART)
840   MCFG_SCREEN_UPDATE_STATIC(m10)
840   MCFG_SCREEN_UPDATE_DRIVER(m10_state, screen_update_m10)
841841
842842   MCFG_GFXDECODE(m10)
843843   MCFG_PALETTE_LENGTH(2*8)
r17967r17968
882882   /* video hardware */
883883   MCFG_SCREEN_ADD("screen", RASTER)
884884   MCFG_SCREEN_RAW_PARAMS(IREMM15_PIXEL_CLOCK, IREMM15_HTOTAL, IREMM15_HBEND, IREMM15_HBSTART, IREMM15_VTOTAL, IREMM15_VBEND, IREMM15_VBSTART)
885   MCFG_SCREEN_UPDATE_STATIC(m15)
885   MCFG_SCREEN_UPDATE_DRIVER(m10_state, screen_update_m15)
886886
887887   MCFG_PALETTE_LENGTH(2*8)
888888
trunk/src/emu/screen.h
r17967r17968
352352#define SCREEN_UPDATE_RGB32(name)      UINT32 SCREEN_UPDATE_NAME(name)(device_t *, screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
353353#define SCREEN_UPDATE16_CALL(name)      SCREEN_UPDATE_NAME(name)(NULL, screen, bitmap, cliprect)
354354#define SCREEN_UPDATE32_CALL(name)      SCREEN_UPDATE_NAME(name)(NULL, screen, bitmap, cliprect)
355#define SCREEN_UPDATE16_CALL_MEMBER(name)      SCREEN_UPDATE_NAME(name)(screen, bitmap, cliprect)
356#define SCREEN_UPDATE32_CALL_MEMBER(name)      SCREEN_UPDATE_NAME(name)(screen, bitmap, cliprect)
355357
356358#define SCREEN_VBLANK_NAME(name)      screen_vblank_##name
357359#define SCREEN_VBLANK(name)            void SCREEN_VBLANK_NAME(name)(device_t *, screen_device &screen, bool vblank_on)
trunk/src/mess/machine/amstrad.c
r17967r17968
10731073}
10741074
10751075
1076SCREEN_UPDATE_IND16( amstrad )
1076UINT32 amstrad_state::screen_update_amstrad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
10771077{
1078   amstrad_state *state = screen.machine().driver_data<amstrad_state>();
1079   copybitmap( bitmap, *state->m_gate_array.bitmap, 0, 0, 0, 0, cliprect );
1078   copybitmap( bitmap, *m_gate_array.bitmap, 0, 0, 0, 0, cliprect );
10801079   return 0;
10811080}
10821081
r17967r17968
24182417}
24192418
24202419
2421SCREEN_VBLANK( amstrad )
2420void amstrad_state::screen_eof_amstrad(screen_device &screen, bool state)
24222421{
24232422   // rising edge
2424   if (vblank_on)
2423   if (state)
24252424   {
24262425      cpc_multiface2_device* mface2 = dynamic_cast<cpc_multiface2_device*>(get_expansion_device(screen.machine(),"multiface2"));
24272426
trunk/src/mess/machine/sms.c
r17967r17968
21842184   save_item(NAME(m_prevright_bitmap));
21852185}
21862186
2187SCREEN_UPDATE_RGB32( sms1 )
2187UINT32 sms_state::screen_update_sms1(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
21882188{
2189   sms_state *state = screen.machine().driver_data<sms_state>();
21902189   UINT8 sscope = 0;
21912190   UINT8 sscope_binocular_hack;
21922191   UINT8 occluded_view = 0;
21932192
2194   if (&screen != state->m_main_scr)
2193   if (&screen != m_main_scr)
21952194   {
21962195      sscope = screen.machine().root_device().ioport("SEGASCOPE")->read_safe(0x00);
21972196      if (!sscope)
21982197      {
21992198         occluded_view = 1;
22002199      }
2201      else if (&screen == state->m_left_lcd)
2200      else if (&screen == m_left_lcd)
22022201      {
22032202         // with SegaScope, sscope_state 0 = left screen OFF, right screen ON
2204         if (!(state->m_sscope_state & 0x01))
2203         if (!(m_sscope_state & 0x01))
22052204            occluded_view = 1;
22062205      }
22072206      else // it's right LCD
22082207      {
22092208         // with SegaScope, sscope_state 1 = left screen ON, right screen OFF
2210         if (state->m_sscope_state & 0x01)
2209         if (m_sscope_state & 0x01)
22112210            occluded_view = 1;
22122211      }
22132212   }
22142213
22152214   if (!occluded_view)
22162215   {
2217      state->m_vdp->screen_update(screen, bitmap, cliprect);
2216      m_vdp->screen_update(screen, bitmap, cliprect);
22182217
22192218      // HACK: fake 3D->2D handling (if enabled, it repeats each frame twice on the selected lens)
22202219      // save a copy of current bitmap for the binocular hack
r17967r17968
22222221      {
22232222         sscope_binocular_hack = screen.machine().root_device().ioport("SSCOPE_BINOCULAR")->read_safe(0x00);
22242223
2225         if (&screen == state->m_left_lcd)
2224         if (&screen == m_left_lcd)
22262225         {
22272226            if (sscope_binocular_hack & 0x01)
2228               copybitmap(state->m_prevleft_bitmap, bitmap, 0, 0, 0, 0, cliprect);
2227               copybitmap(m_prevleft_bitmap, bitmap, 0, 0, 0, 0, cliprect);
22292228         }
22302229         else // it's right LCD
22312230         {
22322231            if (sscope_binocular_hack & 0x02)
2233               copybitmap(state->m_prevright_bitmap, bitmap, 0, 0, 0, 0, cliprect);
2232               copybitmap(m_prevright_bitmap, bitmap, 0, 0, 0, 0, cliprect);
22342233         }
22352234      }
22362235   }
r17967r17968
22422241      {
22432242         sscope_binocular_hack = screen.machine().root_device().ioport("SSCOPE_BINOCULAR")->read_safe(0x00);
22442243
2245         if (&screen == state->m_left_lcd)
2244         if (&screen == m_left_lcd)
22462245         {
22472246            if (sscope_binocular_hack & 0x01)
22482247            {
2249               copybitmap(bitmap, state->m_prevleft_bitmap, 0, 0, 0, 0, cliprect);
2248               copybitmap(bitmap, m_prevleft_bitmap, 0, 0, 0, 0, cliprect);
22502249               return 0;
22512250            }
22522251         }
r17967r17968
22542253         {
22552254            if (sscope_binocular_hack & 0x02)
22562255            {
2257               copybitmap(bitmap, state->m_prevright_bitmap, 0, 0, 0, 0, cliprect);
2256               copybitmap(bitmap, m_prevright_bitmap, 0, 0, 0, 0, cliprect);
22582257               return 0;
22592258            }
22602259         }
r17967r17968
22652264   return 0;
22662265}
22672266
2268SCREEN_UPDATE_RGB32( sms )
2267UINT32 sms_state::screen_update_sms(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
22692268{
2270   sms_state *state = screen.machine().driver_data<sms_state>();
2271   state->m_vdp->screen_update(screen, bitmap, cliprect);
2269   m_vdp->screen_update(screen, bitmap, cliprect);
22722270   return 0;
22732271}
22742272
r17967r17968
22802278   save_item(NAME(m_prev_bitmap));
22812279}
22822280
2283SCREEN_UPDATE_RGB32( gamegear )
2281UINT32 sms_state::screen_update_gamegear(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
22842282{
2285   sms_state *state = screen.machine().driver_data<sms_state>();
22862283   int width = screen.width();
22872284   int height = screen.height();
22882285   int x, y;
22892286
2290   bitmap_rgb32 &vdp_bitmap = state->m_vdp->get_bitmap();
2287   bitmap_rgb32 &vdp_bitmap = m_vdp->get_bitmap();
22912288
22922289   // HACK: fake LCD persistence effect
22932290   // (it would be better to generalize this in the core, to be used for all LCD systems)
r17967r17968
22952292   {
22962293      UINT32 *linedst = &bitmap.pix32(y);
22972294      UINT32 *line0 = &vdp_bitmap.pix32(y);
2298      UINT32 *line1 = &state->m_prev_bitmap.pix32(y);
2295      UINT32 *line1 = &m_prev_bitmap.pix32(y);
22992296      for (x = 0; x < width; x++)
23002297      {
23012298         UINT32 color0 = line0[x];
r17967r17968
23122309         linedst[x] = (r << 16) | (g << 8) | b;
23132310      }
23142311   }
2315   copybitmap(state->m_prev_bitmap, vdp_bitmap, 0, 0, 0, 0, cliprect);
2312   copybitmap(m_prev_bitmap, vdp_bitmap, 0, 0, 0, 0, cliprect);
23162313
23172314   return 0;
23182315}
trunk/src/mess/machine/gamepock.c
r17967r17968
138138   hd44102ch_init( 2 );
139139}
140140
141SCREEN_UPDATE_IND16( gamepock )
141UINT32 gamepock_state::screen_update_gamepock(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
142142{
143   gamepock_state *state = screen.machine().driver_data<gamepock_state>();
144143   UINT8   ad;
145144   int      i,j;
146145
147146   /* Handle HD44102CH #0 */
148   ad = state->m_hd44102ch[0].start_page;
147   ad = m_hd44102ch[0].start_page;
149148   for ( i = 0; i < 4; i++ )
150149   {
151150      for ( j = 0; j < 50; j++ )
152151      {
153         bitmap.pix16(i * 8 + 0, 49 - j ) = ( state->m_hd44102ch[0].ram[ad+j] & 0x01 ) ? 0 : 1;
154         bitmap.pix16(i * 8 + 1, 49 - j ) = ( state->m_hd44102ch[0].ram[ad+j] & 0x02 ) ? 0 : 1;
155         bitmap.pix16(i * 8 + 2, 49 - j ) = ( state->m_hd44102ch[0].ram[ad+j] & 0x04 ) ? 0 : 1;
156         bitmap.pix16(i * 8 + 3, 49 - j ) = ( state->m_hd44102ch[0].ram[ad+j] & 0x08 ) ? 0 : 1;
157         bitmap.pix16(i * 8 + 4, 49 - j ) = ( state->m_hd44102ch[0].ram[ad+j] & 0x10 ) ? 0 : 1;
158         bitmap.pix16(i * 8 + 5, 49 - j ) = ( state->m_hd44102ch[0].ram[ad+j] & 0x20 ) ? 0 : 1;
159         bitmap.pix16(i * 8 + 6, 49 - j ) = ( state->m_hd44102ch[0].ram[ad+j] & 0x40 ) ? 0 : 1;
160         bitmap.pix16(i * 8 + 7, 49 - j ) = ( state->m_hd44102ch[0].ram[ad+j] & 0x80 ) ? 0 : 1;
152         bitmap.pix16(i * 8 + 0, 49 - j ) = ( m_hd44102ch[0].ram[ad+j] & 0x01 ) ? 0 : 1;
153         bitmap.pix16(i * 8 + 1, 49 - j ) = ( m_hd44102ch[0].ram[ad+j] & 0x02 ) ? 0 : 1;
154         bitmap.pix16(i * 8 + 2, 49 - j ) = ( m_hd44102ch[0].ram[ad+j] & 0x04 ) ? 0 : 1;
155         bitmap.pix16(i * 8 + 3, 49 - j ) = ( m_hd44102ch[0].ram[ad+j] & 0x08 ) ? 0 : 1;
156         bitmap.pix16(i * 8 + 4, 49 - j ) = ( m_hd44102ch[0].ram[ad+j] & 0x10 ) ? 0 : 1;
157         bitmap.pix16(i * 8 + 5, 49 - j ) = ( m_hd44102ch[0].ram[ad+j] & 0x20 ) ? 0 : 1;
158         bitmap.pix16(i * 8 + 6, 49 - j ) = ( m_hd44102ch[0].ram[ad+j] & 0x40 ) ? 0 : 1;
159         bitmap.pix16(i * 8 + 7, 49 - j ) = ( m_hd44102ch[0].ram[ad+j] & 0x80 ) ? 0 : 1;
161160      }
162161      ad += 0x40;
163162   }
164163
165164   /* Handle HD44102CH #1 */
166   ad = state->m_hd44102ch[1].start_page;
165   ad = m_hd44102ch[1].start_page;
167166   for ( i = 4; i < 8; i++ )
168167   {
169168      for ( j = 0; j < 50; j++ )
170169      {
171         bitmap.pix16(i * 8 + 0, j ) = ( state->m_hd44102ch[1].ram[ad+j] & 0x01 ) ? 0 : 1;
172         bitmap.pix16(i * 8 + 1, j ) = ( state->m_hd44102ch[1].ram[ad+j] & 0x02 ) ? 0 : 1;
173         bitmap.pix16(i * 8 + 2, j ) = ( state->m_hd44102ch[1].ram[ad+j] & 0x04 ) ? 0 : 1;
174         bitmap.pix16(i * 8 + 3, j ) = ( state->m_hd44102ch[1].ram[ad+j] & 0x08 ) ? 0 : 1;
175         bitmap.pix16(i * 8 + 4, j ) = ( state->m_hd44102ch[1].ram[ad+j] & 0x10 ) ? 0 : 1;
176         bitmap.pix16(i * 8 + 5, j ) = ( state->m_hd44102ch[1].ram[ad+j] & 0x20 ) ? 0 : 1;
177         bitmap.pix16(i * 8 + 6, j ) = ( state->m_hd44102ch[1].ram[ad+j] & 0x40 ) ? 0 : 1;
178         bitmap.pix16(i * 8 + 7, j ) = ( state->m_hd44102ch[1].ram[ad+j] & 0x80 ) ? 0 : 1;
170         bitmap.pix16(i * 8 + 0, j ) = ( m_hd44102ch[1].ram[ad+j] & 0x01 ) ? 0 : 1;
171         bitmap.pix16(i * 8 + 1, j ) = ( m_hd44102ch[1].ram[ad+j] & 0x02 ) ? 0 : 1;
172         bitmap.pix16(i * 8 + 2, j ) = ( m_hd44102ch[1].ram[ad+j] & 0x04 ) ? 0 : 1;
173         bitmap.pix16(i * 8 + 3, j ) = ( m_hd44102ch[1].ram[ad+j] & 0x08 ) ? 0 : 1;
174         bitmap.pix16(i * 8 + 4, j ) = ( m_hd44102ch[1].ram[ad+j] & 0x10 ) ? 0 : 1;
175         bitmap.pix16(i * 8 + 5, j ) = ( m_hd44102ch[1].ram[ad+j] & 0x20 ) ? 0 : 1;
176         bitmap.pix16(i * 8 + 6, j ) = ( m_hd44102ch[1].ram[ad+j] & 0x40 ) ? 0 : 1;
177         bitmap.pix16(i * 8 + 7, j ) = ( m_hd44102ch[1].ram[ad+j] & 0x80 ) ? 0 : 1;
179178      }
180179      ad += 0x40;
181180   }
182181
183182   /* Handle HD44102CH #2 */
184   ad = state->m_hd44102ch[2].start_page;
183   ad = m_hd44102ch[2].start_page;
185184   for ( i = 0; i < 4; i++ )
186185   {
187186      for ( j = 0; j < 25; j++ )
188187      {
189         bitmap.pix16(i * 8 + 0, 50 + j ) = ( state->m_hd44102ch[2].ram[ad+j] & 0x01 ) ? 0 : 1;
190         bitmap.pix16(i * 8 + 1, 50 + j ) = ( state->m_hd44102ch[2].ram[ad+j] & 0x02 ) ? 0 : 1;
191         bitmap.pix16(i * 8 + 2, 50 + j ) = ( state->m_hd44102ch[2].ram[ad+j] & 0x04 ) ? 0 : 1;
192         bitmap.pix16(i * 8 + 3, 50 + j ) = ( state->m_hd44102ch[2].ram[ad+j] & 0x08 ) ? 0 : 1;
193         bitmap.pix16(i * 8 + 4, 50 + j ) = ( state->m_hd44102ch[2].ram[ad+j] & 0x10 ) ? 0 : 1;
194         bitmap.pix16(i * 8 + 5, 50 + j ) = ( state->m_hd44102ch[2].ram[ad+j] & 0x20 ) ? 0 : 1;
195         bitmap.pix16(i * 8 + 6, 50 + j ) = ( state->m_hd44102ch[2].ram[ad+j] & 0x40 ) ? 0 : 1;
196         bitmap.pix16(i * 8 + 7, 50 + j ) = ( state->m_hd44102ch[2].ram[ad+j] & 0x80 ) ? 0 : 1;
188         bitmap.pix16(i * 8 + 0, 50 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x01 ) ? 0 : 1;
189         bitmap.pix16(i * 8 + 1, 50 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x02 ) ? 0 : 1;
190         bitmap.pix16(i * 8 + 2, 50 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x04 ) ? 0 : 1;
191         bitmap.pix16(i * 8 + 3, 50 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x08 ) ? 0 : 1;
192         bitmap.pix16(i * 8 + 4, 50 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x10 ) ? 0 : 1;
193         bitmap.pix16(i * 8 + 5, 50 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x20 ) ? 0 : 1;
194         bitmap.pix16(i * 8 + 6, 50 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x40 ) ? 0 : 1;
195         bitmap.pix16(i * 8 + 7, 50 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x80 ) ? 0 : 1;
197196      }
198197      for ( j = 25; j < 50; j++ )
199198      {
200         bitmap.pix16(32 + i * 8 + 0, 25 + j ) = ( state->m_hd44102ch[2].ram[ad+j] & 0x01 ) ? 0 : 1;
201         bitmap.pix16(32 + i * 8 + 1, 25 + j ) = ( state->m_hd44102ch[2].ram[ad+j] & 0x02 ) ? 0 : 1;
202         bitmap.pix16(32 + i * 8 + 2, 25 + j ) = ( state->m_hd44102ch[2].ram[ad+j] & 0x04 ) ? 0 : 1;
203         bitmap.pix16(32 + i * 8 + 3, 25 + j ) = ( state->m_hd44102ch[2].ram[ad+j] & 0x08 ) ? 0 : 1;
204         bitmap.pix16(32 + i * 8 + 4, 25 + j ) = ( state->m_hd44102ch[2].ram[ad+j] & 0x10 ) ? 0 : 1;
205         bitmap.pix16(32 + i * 8 + 5, 25 + j ) = ( state->m_hd44102ch[2].ram[ad+j] & 0x20 ) ? 0 : 1;
206         bitmap.pix16(32 + i * 8 + 6, 25 + j ) = ( state->m_hd44102ch[2].ram[ad+j] & 0x40 ) ? 0 : 1;
207         bitmap.pix16(32 + i * 8 + 7, 25 + j ) = ( state->m_hd44102ch[2].ram[ad+j] & 0x80 ) ? 0 : 1;
199         bitmap.pix16(32 + i * 8 + 0, 25 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x01 ) ? 0 : 1;
200         bitmap.pix16(32 + i * 8 + 1, 25 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x02 ) ? 0 : 1;
201         bitmap.pix16(32 + i * 8 + 2, 25 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x04 ) ? 0 : 1;
202         bitmap.pix16(32 + i * 8 + 3, 25 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x08 ) ? 0 : 1;
203         bitmap.pix16(32 + i * 8 + 4, 25 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x10 ) ? 0 : 1;
204         bitmap.pix16(32 + i * 8 + 5, 25 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x20 ) ? 0 : 1;
205         bitmap.pix16(32 + i * 8 + 6, 25 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x40 ) ? 0 : 1;
206         bitmap.pix16(32 + i * 8 + 7, 25 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x80 ) ? 0 : 1;
208207      }
209208      ad += 0x40;
210209   }
trunk/src/mess/machine/concept.c
r17967r17968
9999{
100100}
101101
102SCREEN_UPDATE_IND16(concept)
102UINT32 concept_state::screen_update_concept(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
103103{
104104   /* resolution is 720*560 */
105   concept_state *state = screen.machine().driver_data<concept_state>();
106   UINT16 *videoram = state->m_videoram;
105   UINT16 *videoram = m_videoram;
107106   int x, y;
108107   UINT16 *line;
109108
trunk/src/mess/machine/lisa.c
r17967r17968
821821/*
822822    Video update
823823*/
824SCREEN_UPDATE_IND16( lisa )
824UINT32 lisa_state::screen_update_lisa(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
825825{
826   lisa_state *state = screen.machine().driver_data<lisa_state>();
827826   UINT16 *v;
828827   int x, y;
829828   /* resolution is 720*364 on lisa, vs 608*431 on mac XL */
830   int resx = (state->m_features.has_mac_xl_video) ? 608 : 720;   /* width */
831   int resy = (state->m_features.has_mac_xl_video) ? 431 : 364;   /* height */
829   int resx = (m_features.has_mac_xl_video) ? 608 : 720;   /* width */
830   int resy = (m_features.has_mac_xl_video) ? 431 : 364;   /* height */
832831
833832   UINT8 line_buffer[720];
834833
835   v = state->m_videoram_ptr;
834   v = m_videoram_ptr;
836835
837836   for (y = 0; y < resy; y++)
838837   {
trunk/src/mess/includes/fm7.h
r17967r17968
238238   DECLARE_MACHINE_START(fm77av);
239239   DECLARE_MACHINE_START(fm11);
240240   DECLARE_MACHINE_START(fm16);
241   UINT32 screen_update_fm7(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
241242};
242243
243244
r17967r17968
256257
257258
258259
259SCREEN_UPDATE_IND16( fm7 );
260260
261261
262
262263#endif /*FM7_H_*/
trunk/src/mess/includes/vixen.h
r17967r17968
104104   const UINT8 *m_sync_rom;
105105   const UINT8 *m_char_rom;
106106   DECLARE_DRIVER_INIT(vixen);
107   UINT32 screen_update_vixen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
107108};
108109
109110#endif
trunk/src/mess/includes/compis.h
r17967r17968
186186   virtual void machine_start();
187187   virtual void machine_reset();
188188   virtual void palette_init();
189   UINT32 screen_update_compis2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
189190};
190191
191192
trunk/src/mess/includes/vtech2.h
r17967r17968
5454   virtual void palette_init();
5555   DECLARE_MACHINE_RESET(laser500);
5656   DECLARE_MACHINE_RESET(laser700);
57   UINT32 screen_update_laser(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5758};
5859
5960
trunk/src/mess/includes/comquest.h
r17967r17968
2424   DECLARE_WRITE8_MEMBER(comquest_write);
2525   virtual void machine_reset();
2626   virtual void video_start();
27   UINT32 screen_update_comquest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);   
2728};
2829
2930
3031/*----------- defined in video/comquest.c -----------*/
3132
3233
33SCREEN_UPDATE_IND16( comquest );
3434
3535
36
3637#endif /* COMQUEST_H_ */
trunk/src/mess/includes/zx.h
r17967r17968
5757   DECLARE_PALETTE_INIT(ts1000);
5858   DECLARE_MACHINE_RESET(pc8300);
5959   DECLARE_MACHINE_RESET(pow3000);
60   void screen_eof_zx(screen_device &screen, bool state);
6061};
6162
6263
r17967r17968
6970/*----------- defined in video/zx.c -----------*/
7071
7172
72SCREEN_VBLANK( zx );
7373
74
7475void zx_ula_bkgnd(running_machine &machine, int color);
7576void zx_ula_r(running_machine &machine, int offs, const char *region, const UINT8 param);
7677
trunk/src/mess/includes/pdp1.h
r17967r17968
259259   virtual void machine_reset();
260260   virtual void video_start();
261261   virtual void palette_init();
262   UINT32 screen_update_pdp1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
263   void screen_eof_pdp1(screen_device &screen, bool state);
262264};
263265
264266
r17967r17968
266268/*----------- defined in video/pdp1.c -----------*/
267269
268270
269SCREEN_VBLANK( pdp1 );
270SCREEN_UPDATE_IND16( pdp1 );
271271
272
273
272274void pdp1_plot(running_machine &machine, int x, int y);
273275void pdp1_typewriter_drawchar(running_machine &machine, int character);
274276void pdp1_update_lightpen_state(running_machine &machine, const lightpen_t *new_state);
trunk/src/mess/includes/pc1401.h
r17967r17968
2626   int m_power;
2727   UINT8 m_reg[0x100];
2828   DECLARE_DRIVER_INIT(pc1401);
29   UINT32 screen_update_pc1401(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2930};
3031
3132
r17967r17968
4647
4748DECLARE_READ8_HANDLER(pc1401_lcd_read);
4849DECLARE_WRITE8_HANDLER(pc1401_lcd_write);
49SCREEN_UPDATE_IND16( pc1401 );
5050
5151
52
5253#endif /* PC1401_H_ */
trunk/src/mess/includes/apple2gs.h
r17967r17968
141141   DECLARE_PALETTE_INIT(apple2gs);
142142   DECLARE_MACHINE_START(apple2gsr1);
143143   DECLARE_MACHINE_START(apple2gscommon);
144   UINT32 screen_update_apple2gs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
144145};
145146
146147
r17967r17968
156157/*----------- defined in video/apple2gs.c -----------*/
157158
158159
159SCREEN_UPDATE_IND16( apple2gs );
160160
161161
162
162163#endif /* APPLE2GS_H_ */
trunk/src/mess/includes/hp48.h
r17967r17968
7575   DECLARE_MACHINE_START(hp48gp);
7676   DECLARE_MACHINE_START(hp48sx);
7777   DECLARE_MACHINE_START(hp48s);
78   UINT32 screen_update_hp48(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7879};
7980
8081
r17967r17968
183184   MCFG_DEVICE_ADD(_tag, HP48_PORT, 0) \
184185   MCFG_DEVICE_CONFIG(_intrf)
185186
186/****************************** machine ******************************/
187
188
189extern MACHINE_START( hp48s  );
190extern MACHINE_START( hp48sx );
191extern MACHINE_START( hp48g  );
192extern MACHINE_START( hp48gx );
193extern MACHINE_START( hp48gp );
194
195extern MACHINE_RESET( hp48 );
196
197/*----------- defined in video/hp48.c -----------*/
198
199/****************************** video ********************************/
200
201extern SCREEN_UPDATE_IND16 ( hp48 );
202extern PALETTE_INIT ( hp48 );
trunk/src/mess/includes/apple3.h
r17967r17968
5959   DECLARE_DRIVER_INIT(apple3);
6060   DECLARE_MACHINE_RESET(apple3);
6161   DECLARE_VIDEO_START(apple3);
62   UINT32 screen_update_apple3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6263};
6364
6465
r17967r17968
7778/*----------- defined in video/apple3.c -----------*/
7879
7980
80SCREEN_UPDATE_IND16( apple3 );
81
8182void apple3_write_charmem(running_machine &machine);
8283
8384
trunk/src/mess/includes/macpci.h
r17967r17968
157157
158158public:
159159   emu_timer *m_scanline_timer;
160   UINT32 screen_update_pippin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
160161};
161162
162163#endif /* PCIMAC_H_ */
trunk/src/mess/includes/c65.h
r17967r17968
6464   DECLARE_READ8_MEMBER( sid_poty_r );
6565   DECLARE_MACHINE_START(c65);
6666   DECLARE_PALETTE_INIT(c65);
67   UINT32 screen_update_c65(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6768};
6869
6970
trunk/src/mess/includes/dai.h
r17967r17968
8080   virtual void machine_reset();
8181   virtual void video_start();
8282   virtual void palette_init();
83   UINT32 screen_update_dai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8384};
8485
8586
r17967r17968
9899extern const unsigned char dai_palette[16*3];
99100
100101
101SCREEN_UPDATE_IND16( dai );
102102
103103
104104
105
105106/*----------- defined in audio/dai.c -----------*/
106107
107108extern const device_type DAI_SOUND;
trunk/src/mess/includes/mac.h
r17967r17968
162162
163163
164164
165SCREEN_UPDATE_IND16( mac );
166SCREEN_UPDATE_IND16( macse30 );
167SCREEN_UPDATE_IND16( macprtb );
168SCREEN_UPDATE_IND16( macpb140 );
169SCREEN_UPDATE_IND16( macpb160 );
170SCREEN_UPDATE_RGB32( macrbv );
171SCREEN_UPDATE_RGB32( macrbvvram );
172SCREEN_UPDATE_RGB32( macdafb );
173SCREEN_UPDATE_RGB32( macpbwd );
174165
175166
176167
177168
169
170
171
172
173
174
175
176
177
178178/*----------- defined in audio/mac.c -----------*/
179179
180180class mac_sound_device : public device_t,
r17967r17968
513513   DECLARE_VIDEO_RESET(macsonora);
514514   DECLARE_VIDEO_RESET(maceagle);
515515   DECLARE_VIDEO_START(macrbv);
516   UINT32 screen_update_mac(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
517   UINT32 screen_update_macprtb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
518   UINT32 screen_update_macse30(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
519   UINT32 screen_update_macpb140(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
520   UINT32 screen_update_macpb160(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
521   UINT32 screen_update_macrbv(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
522   UINT32 screen_update_macdafb(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
523   UINT32 screen_update_macrbvvram(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
524   UINT32 screen_update_macpbwd(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
516525};
517526
518527#endif /* MAC_H_ */
trunk/src/mess/includes/nc.h
r17967r17968
7979   virtual void palette_init();
8080   DECLARE_MACHINE_START(nc200);
8181   DECLARE_MACHINE_RESET(nc200);
82   UINT32 screen_update_nc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8283};
8384
8485
trunk/src/mess/includes/rm380z.h
r17967r17968
124124   void config_memory_map();
125125   int keyboard_decode();
126126   void update_screen(bitmap_ind16 &bitmap);
127   UINT32 screen_update_rm380z(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
127128};
128129
129130
trunk/src/mess/includes/ac1.h
r17967r17968
2020   DECLARE_DRIVER_INIT(ac1);
2121   virtual void machine_reset();
2222   virtual void video_start();
23   UINT32 screen_update_ac1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
24   UINT32 screen_update_ac1_32(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2325};
2426
2527
r17967r17968
3436extern const gfx_layout ac1_charlayout;
3537
3638
37SCREEN_UPDATE_IND16( ac1 );
38SCREEN_UPDATE_IND16( ac1_32 );
3939
4040
41
42
4143#endif /* AC1_h_ */
trunk/src/mess/includes/mc80.h
r17967r17968
4242   DECLARE_VIDEO_START(mc8020);
4343   DECLARE_MACHINE_RESET(mc8030);
4444   DECLARE_VIDEO_START(mc8030);
45   UINT32 screen_update_mc8020(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
46   UINT32 screen_update_mc8030(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4547};
4648
4749
trunk/src/mess/includes/mbee.h
r17967r17968
140140   DECLARE_MACHINE_RESET(mbee128);
141141   DECLARE_MACHINE_RESET(mbee256);
142142   DECLARE_MACHINE_RESET(mbeett);
143   UINT32 screen_update_mbee(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
143144};
144145
145146
r17967r17968
167168MC6845_ON_UPDATE_ADDR_CHANGED( mbee256_update_addr );
168169
169170
170SCREEN_UPDATE_RGB32( mbee );
171171
172SCREEN_UPDATE_RGB32( mbeeic );
173172
174SCREEN_UPDATE_RGB32( mbeeppc );
175173
176174
177175
178176
177
178
179
179180#endif /* MBEE_H_ */
trunk/src/mess/includes/pc1350.h
r17967r17968
2424   UINT8 m_outb;
2525   int m_power;
2626   UINT8 m_reg[0x1000];
27   UINT32 screen_update_pc1350(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2728};
2829
2930
r17967r17968
4445
4546DECLARE_READ8_HANDLER(pc1350_lcd_read);
4647DECLARE_WRITE8_HANDLER(pc1350_lcd_write);
47SCREEN_UPDATE_IND16( pc1350 );
4848
49
4950int pc1350_keyboard_line_r(running_machine &machine);
5051
5152
trunk/src/mess/includes/pc1512.h
r17967r17968
210210
211211   // sound state
212212   int m_speaker_drive;
213   UINT32 screen_update_pc1512(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
213214};
214215
215216class pc1640_state : public pc1512_state
trunk/src/mess/includes/nes.h
r17967r17968
259259   virtual void machine_reset();
260260   virtual void video_start();
261261   virtual void palette_init();
262   UINT32 screen_update_nes(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
262263};
263264
264265
r17967r17968
285286
286287
287288
288SCREEN_UPDATE_IND16( nes );
289289
290290
291
291292#endif /* NES_H_ */
trunk/src/mess/includes/x1.h
r17967r17968
199199   DECLARE_VIDEO_START(x1);
200200   DECLARE_PALETTE_INIT(x1);
201201   DECLARE_MACHINE_RESET(x1turbo);
202   UINT32 screen_update_x1(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
202203};
203204
204205
r17967r17968
206207/*----------- shared with x1twin.c -----------*/
207208
208209
209SCREEN_UPDATE_RGB32( x1 );
210210
211
211212TIMER_DEVICE_CALLBACK(x1_keyboard_callback);
212213TIMER_CALLBACK(x1_rtc_increment);
213214TIMER_DEVICE_CALLBACK( x1_cmt_wind_timer );
trunk/src/mess/includes/concept.h
r17967r17968
5555   DECLARE_WRITE8_MEMBER(concept_hdc_reg_w);
5656   virtual void machine_start();
5757   virtual void video_start();
58   UINT32 screen_update_concept(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5859};
5960
6061
r17967r17968
6566
6667
6768
68SCREEN_UPDATE_IND16(concept);
69
6970INTERRUPT_GEN( concept_interrupt );
7071
7172
trunk/src/mess/includes/pcw16.h
r17967r17968
9898   virtual void machine_start();
9999   virtual void video_start();
100100   virtual void palette_init();
101   UINT32 screen_update_pcw16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
101102};
102103
103104
trunk/src/mess/includes/radio86.h
r17967r17968
3838   DECLARE_DRIVER_INIT(radio86);
3939   DECLARE_MACHINE_RESET(radio86);
4040   DECLARE_PALETTE_INIT(radio86);
41   UINT32 screen_update_radio86(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4142};
4243
4344
r17967r17968
4950
5051/*----------- defined in machine/radio86.c -----------*/
5152
52extern MACHINE_RESET( radio86 );
53
54
55
5653extern const i8255_interface radio86_ppi8255_interface_1;
5754extern const i8255_interface radio86_ppi8255_interface_2;
5855extern const i8255_interface rk7007_ppi8255_interface;
r17967r17968
7875extern I8275_DISPLAY_PIXELS(mikrosha_display_pixels);
7976extern I8275_DISPLAY_PIXELS(apogee_display_pixels);
8077
81extern SCREEN_UPDATE_IND16( radio86 );
82extern PALETTE_INIT( radio86 );
83
8478#endif /* radio86_H_ */
trunk/src/mess/includes/cxhumax.h
r17967r17968
151151   virtual void machine_start();
152152   virtual void machine_reset();
153153   virtual void video_start();
154   UINT32 screen_update_cxhumax(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
154155};
155156
156157#define INTDEST         0   // Interrupt destination (1=IRQ, 0=FIQ)
trunk/src/mess/includes/mz700.h
r17967r17968
7979   virtual void machine_start();
8080   virtual void palette_init();
8181   DECLARE_VIDEO_START(mz800);
82   UINT32 screen_update_mz700(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
83   UINT32 screen_update_mz800(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8284};
8385
8486
r17967r17968
101103/*----------- defined in video/mz700.c -----------*/
102104
103105
104SCREEN_UPDATE_IND16( mz700 );
105106
106SCREEN_UPDATE_IND16( mz800 );
107107
108108
109
110
109111#endif /* MZ700_H_ */
trunk/src/mess/includes/b2m.h
r17967r17968
4848   virtual void machine_reset();
4949   virtual void video_start();
5050   virtual void palette_init();
51   UINT32 screen_update_b2m(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5152};
5253
5354/*----------- defined in machine/b2m.c -----------*/
trunk/src/mess/includes/arcadia.h
r17967r17968
8080   DECLARE_DRIVER_INIT(arcadia);
8181   virtual void video_start();
8282   virtual void palette_init();
83   UINT32 screen_update_arcadia(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8384};
8485
8586
trunk/src/mess/includes/lisa.h
r17967r17968
163163   virtual void machine_start();
164164   virtual void machine_reset();
165165   virtual void video_start();
166   UINT32 screen_update_lisa(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
166167};
167168
168169
r17967r17968
172173extern const via6522_interface lisa_via6522_1_intf;
173174
174175
175SCREEN_UPDATE_IND16( lisa );
176176
177
177178extern NVRAM_HANDLER(lisa);
178179
179180
trunk/src/mess/includes/ace.h
r17967r17968
5757
5858   required_shared_ptr<UINT8> m_video_ram;
5959   required_shared_ptr<UINT8> m_char_ram;
60   UINT32 screen_update_ace(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6061};
6162
6263#endif /* ACE_H_ */
trunk/src/mess/includes/cgenie.h
r17967r17968
7070   virtual void video_start();
7171   DECLARE_PALETTE_INIT(cgenie);
7272   DECLARE_PALETTE_INIT(cgenienz);
73   UINT32 screen_update_cgenie(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7374};
7475
7576
r17967r17968
124125/*----------- defined in video/cgenie.c -----------*/
125126
126127
127SCREEN_UPDATE_IND16( cgenie );
128128
129
129130DECLARE_READ8_HANDLER ( cgenie_index_r );
130131DECLARE_READ8_HANDLER ( cgenie_register_r );
131132
trunk/src/mess/includes/aquarius.h
r17967r17968
3636   TILE_GET_INFO_MEMBER(aquarius_gettileinfo);
3737   virtual void video_start();
3838   virtual void palette_init();
39   UINT32 screen_update_aquarius(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3940};
4041
4142
r17967r17968
4445
4546
4647
47SCREEN_UPDATE_IND16( aquarius );
4848
49
4950#endif /* AQUARIUS_H_ */
trunk/src/mess/includes/x68k.h
r17967r17968
266266   DECLARE_MACHINE_START(x68000);
267267   DECLARE_VIDEO_START(x68000);
268268   DECLARE_PALETTE_INIT(x68000);
269   UINT32 screen_update_x68000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
269270};
270271
271272
r17967r17968
300301DECLARE_READ32_HANDLER( x68k_gvram32_r );
301302DECLARE_WRITE32_HANDLER( x68k_tvram32_w );
302303DECLARE_READ32_HANDLER( x68k_tvram32_r );
303SCREEN_UPDATE_IND16( x68000 );
304304
305305
306306
307
307308#endif /* X68K_H_ */
trunk/src/mess/includes/kramermc.h
r17967r17968
1919   DECLARE_DRIVER_INIT(kramermc);
2020   virtual void machine_reset();
2121   virtual void video_start();
22   UINT32 screen_update_kramermc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);   
2223};
2324
2425
r17967r17968
3334extern const gfx_layout kramermc_charlayout;
3435
3536
36SCREEN_UPDATE_IND16( kramermc );
3737
3838
39
3940#endif /* KRAMERMC_h_ */
trunk/src/mess/includes/spectrum.h
r17967r17968
119119   DECLARE_MACHINE_RESET(spectrum_plus3);
120120   DECLARE_MACHINE_RESET(ts2068);
121121   DECLARE_VIDEO_START(ts2068);
122   UINT32 screen_update_spectrum(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
123   UINT32 screen_update_tc2048(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
124   UINT32 screen_update_ts2068(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
125   void screen_eof_spectrum(screen_device &screen, bool state);
122126};
123127
124128
r17967r17968
152156
153157
154158
155SCREEN_UPDATE_IND16( spectrum );
156SCREEN_VBLANK( spectrum );
157159
160
161
158162void spectrum_border_force_redraw (running_machine &machine);
159163void spectrum_border_set_last_color (running_machine &machine, int NewColor);
160164void spectrum_border_draw(running_machine &machine, bitmap_ind16 &bitmap, int full_refresh,
r17967r17968
173177/*----------- defined in video/timex.c -----------*/
174178
175179
176SCREEN_UPDATE_IND16( ts2068 );
177180
178SCREEN_UPDATE_IND16( tc2048 );
179181
182
183
180184#endif /* __SPECTRUM_H__ */
trunk/src/mess/includes/ondra.h
r17967r17968
2323   virtual void machine_start();
2424   virtual void machine_reset();
2525   virtual void video_start();
26   UINT32 screen_update_ondra(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2627};
2728
2829
trunk/src/mess/includes/kaypro.h
r17967r17968
7575   DECLARE_MACHINE_RESET(kaypro2x);
7676   DECLARE_PALETTE_INIT(kaypro);
7777   DECLARE_MACHINE_RESET(kay_kbd);
78   UINT32 screen_update_kayproii(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
79   UINT32 screen_update_kaypro2x(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
80   UINT32 screen_update_omni2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7881};
7982
8083
r17967r17968
111114MC6845_UPDATE_ROW( kaypro2x_update_row );
112115
113116
114SCREEN_UPDATE_IND16( kayproii );
115SCREEN_UPDATE_IND16( omni2 );
116SCREEN_UPDATE_RGB32( kaypro2x );
117
118
119
trunk/src/mess/includes/super80.h
r17967r17968
8080   DECLARE_VIDEO_START(super80);
8181   DECLARE_VIDEO_START(super80v);
8282   DECLARE_PALETTE_INIT(super80m);
83   UINT32 screen_update_super80(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
84   UINT32 screen_update_super80v(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
85   UINT32 screen_update_super80d(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
86   UINT32 screen_update_super80e(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
87   UINT32 screen_update_super80m(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
88   void screen_eof_super80m(screen_device &screen, bool state);
8389};
8490
8591
8692/*----------- defined in video/super80.c -----------*/
8793
8894
89SCREEN_UPDATE_IND16( super80 );
90SCREEN_UPDATE_IND16( super80d );
91SCREEN_UPDATE_IND16( super80e );
92SCREEN_UPDATE_IND16( super80m );
9395
94SCREEN_VBLANK( super80m );
9596
96SCREEN_UPDATE_RGB32( super80v );
97
98
99
100
101
102
97103MC6845_UPDATE_ROW( super80v_update_row );
98104
99105/*----------- defined in machine/super80.c -----------*/
trunk/src/mess/includes/tx0.h
r17967r17968
150150   virtual void machine_reset();
151151   virtual void video_start();
152152   virtual void palette_init();
153   UINT32 screen_update_tx0(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
154   void screen_eof_tx0(screen_device &screen, bool state);
153155};
154156
155157
156158/*----------- defined in video/tx0.c -----------*/
157159
158160
159SCREEN_VBLANK( tx0 );
160SCREEN_UPDATE_IND16( tx0 );
161161
162
163
162164void tx0_plot(running_machine &machine, int x, int y);
163165void tx0_typewriter_drawchar(running_machine &machine, int character);
164166
trunk/src/mess/includes/px8.h
r17967r17968
7878   /* keyboard state */
7979   int m_ksc;            /* keyboard scan column */
8080   virtual void palette_init();
81   UINT32 screen_update_px8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8182};
8283
8384#endif
trunk/src/mess/includes/lviv.h
r17967r17968
2626   virtual void machine_reset();
2727   virtual void video_start();
2828   virtual void palette_init();
29   UINT32 screen_update_lviv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2930};
3031
3132
trunk/src/mess/includes/mikromik.h
r17967r17968
112112   int m_recall;
113113   int m_dack3;
114114   int m_tc;
115   UINT32 screen_update_mm1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
115116};
116117
117118
trunk/src/mess/includes/p2000t.h
r17967r17968
4343   INT8 m_frame_count;
4444   DECLARE_VIDEO_START(p2000m);
4545   DECLARE_PALETTE_INIT(p2000m);
46   UINT32 screen_update_p2000m(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4647};
4748
4849
trunk/src/mess/includes/pet.h
r17967r17968
5555   virtual void machine_reset();
5656   virtual void palette_init();
5757   DECLARE_VIDEO_START(pet_crtc);
58   UINT32 screen_update_pet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5859};
5960
6061/*----------- defined in video/pet.c -----------*/
r17967r17968
6364void pet_vh_init (running_machine &machine);
6465void pet80_vh_init (running_machine &machine);
6566void superpet_vh_init (running_machine &machine);
66SCREEN_UPDATE_IND16( pet );
67
6768MC6845_UPDATE_ROW( pet40_update_row );
6869MC6845_UPDATE_ROW( pet80_update_row );
6970WRITE_LINE_DEVICE_HANDLER( pet_display_enable_changed );
trunk/src/mess/includes/pcw.h
r17967r17968
9999   virtual void machine_reset();
100100   virtual void video_start();
101101   virtual void palette_init();
102   UINT32 screen_update_pcw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
103   UINT32 screen_update_pcw_printer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
102104};
103105
104106
trunk/src/mess/includes/oric.h
r17967r17968
107107   virtual void video_start();
108108   virtual void palette_init();
109109   DECLARE_MACHINE_START(telestrat);
110   UINT32 screen_update_oric(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
110111};
111112
112113
r17967r17968
127128/*----------- defined in video/oric.c -----------*/
128129
129130
130SCREEN_UPDATE_IND16( oric );
131131
132132
133
133134#endif /* ORIC_H_ */
trunk/src/mess/includes/enterp.h
r17967r17968
3131   virtual void machine_reset();
3232   virtual void video_start();
3333   virtual void palette_init();
34   UINT32 screen_update_epnick(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3435};
3536
3637
r17967r17968
3839
3940
4041
41SCREEN_UPDATE_IND16( epnick );
4242
43
4344DECLARE_WRITE8_HANDLER( epnick_reg_w );
4445
4546
trunk/src/mess/includes/orao.h
r17967r17968
2424   DECLARE_DRIVER_INIT(orao103);
2525   virtual void machine_reset();
2626   virtual void video_start();
27   UINT32 screen_update_orao(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2728};
2829
2930
trunk/src/mess/includes/mbc55x.h
r17967r17968
156156   virtual void video_start();
157157   virtual void video_reset();
158158   virtual void palette_init();
159   void screen_eof_mbc55x(screen_device &screen, bool state);
159160};
160161
161162/* IO chips */
r17967r17968
221222DECLARE_WRITE16_HANDLER (mbc55x_video_io_w);
222223
223224
224SCREEN_VBLANK( mbc55x );
225225
226226
227
227228#define RED                     0
228229#define GREEN                   1
229230#define BLUE                    2
trunk/src/mess/includes/dm7000.h
r17967r17968
4242   UINT32         dcr[1024];
4343   virtual void machine_reset();
4444   virtual void video_start();
45   UINT32 screen_update_dm7000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4546};
4647
4748/* */
trunk/src/mess/includes/vector06.h
r17967r17968
6363   virtual void machine_reset();
6464   virtual void video_start();
6565   virtual void palette_init();
66   UINT32 screen_update_vector06(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6667};
6768
6869
trunk/src/mess/includes/galeb.h
r17967r17968
1818   required_shared_ptr<UINT8> m_video_ram;
1919   DECLARE_READ8_MEMBER(galeb_keyboard_r);
2020   virtual void video_start();
21   UINT32 screen_update_galeb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2122};
2223
2324/*----------- defined in video/galeb.c -----------*/
trunk/src/mess/includes/pc1403.h
r17967r17968
2929   UINT8 m_reg[0x100];
3030
3131   DECLARE_DRIVER_INIT(pc1403);
32   UINT32 screen_update_pc1403(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3233};
3334
3435
r17967r17968
5152/*----------- defined in video/pc1403.c -----------*/
5253
5354VIDEO_START( pc1403 );
54SCREEN_UPDATE_IND16( pc1403 );
5555
56
5657DECLARE_READ8_HANDLER(pc1403_lcd_read);
5758DECLARE_WRITE8_HANDLER(pc1403_lcd_write);
5859
trunk/src/mess/includes/gp32.h
r17967r17968
163163   DECLARE_WRITE32_MEMBER(s3c240x_mmc_w);
164164   virtual void machine_start();
165165   virtual void machine_reset();
166   UINT32 screen_update_gp32(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
166167};
167168
168169
trunk/src/mess/includes/electron.h
r17967r17968
7474   virtual void machine_start();
7575   virtual void video_start();
7676   virtual void palette_init();
77   UINT32 screen_update_electron(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7778};
7879
7980
r17967r17968
8788/*----------- defined in video/electron.c -----------*/
8889
8990
90SCREEN_UPDATE_IND16( electron );
9191
9292
93
9394#endif /* ELECTRON_H_ */
trunk/src/mess/includes/cgc7900.h
r17967r17968
8888   required_shared_ptr<UINT16> m_color_status_bg;
8989   required_shared_ptr<UINT16> m_roll_overlay;
9090   int m_blink;
91   UINT32 screen_update_cgc7900(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
9192};
9293
9394/*----------- defined in video/cgc7900.c -----------*/
trunk/src/mess/includes/channelf.h
r17967r17968
5050   UINT8 port_read_with_latch(UINT8 ext, UINT8 latch_state);
5151   virtual void video_start();
5252   virtual void palette_init();
53   UINT32 screen_update_channelf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5354};
5455
5556
r17967r17968
5758
5859
5960
60SCREEN_UPDATE_IND16( channelf );
6161
6262
63
6364/*----------- defined in audio/channelf.c -----------*/
6465
6566class channelf_sound_device : public device_t,
trunk/src/mess/includes/apple1.h
r17967r17968
4747   TILE_GET_INFO_MEMBER(terminal_gettileinfo);
4848   virtual void machine_reset();
4949   virtual void video_start();
50   UINT32 screen_update_apple1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5051};
5152
5253
r17967r17968
6263/*----------- defined in video/apple1.c -----------*/
6364
6465
65SCREEN_UPDATE_IND16( apple1 );
6666
67
6768void apple1_vh_dsp_w (running_machine &machine, int data);
6869void apple1_vh_dsp_clr (running_machine &machine);
6970attotime apple1_vh_dsp_time_to_ready (running_machine &machine);
trunk/src/mess/includes/orion.h
r17967r17968
6262   DECLARE_MACHINE_START(orionz80);
6363   DECLARE_MACHINE_RESET(orionz80);
6464   DECLARE_MACHINE_RESET(orionpro);
65   UINT32 screen_update_orion128(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6566};
6667
6768
trunk/src/mess/includes/hec2hrp.h
r17967r17968
136136   DECLARE_MACHINE_RESET(hec2hrx);
137137   DECLARE_MACHINE_START(hec2mdhrx);
138138   DECLARE_MACHINE_RESET(hec2mdhrx);
139   UINT32 screen_update_hec2hrp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
139140};
140141
141142/*----------- defined in machine/hec2hrp.c -----------*/
r17967r17968
154155void hector_80c(running_machine &machine, bitmap_ind16 &bitmap, UINT8 *page, int ymax, int yram) ;
155156void hector_hr(running_machine &machine, bitmap_ind16 &bitmap, UINT8 *page, int ymax, int yram) ;
156157
157SCREEN_UPDATE_IND16( hec2hrp );
158158
159
159160/* Sound function*/
160161extern const sn76477_interface hector_sn76477_interface;
161162
trunk/src/mess/includes/bk.h
r17967r17968
3636   virtual void machine_start();
3737   virtual void machine_reset();
3838   virtual void video_start();
39   UINT32 screen_update_bk0010(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3940};
4041
4142
trunk/src/mess/includes/a7800.h
r17967r17968
6565   virtual void video_start();
6666   virtual void palette_init();
6767   DECLARE_PALETTE_INIT(a7800p);
68   UINT32 screen_update_a7800(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6869};
6970
7071
7172/*----------- defined in video/a7800.c -----------*/
7273
7374
74SCREEN_UPDATE_IND16( a7800 );
75
7576TIMER_DEVICE_CALLBACK( a7800_interrupt );
7677
7778
trunk/src/mess/includes/nascom1.h
r17967r17968
4848   DECLARE_READ8_MEMBER(nascom1_port_02_r);
4949   DECLARE_DRIVER_INIT(nascom1);
5050   virtual void machine_reset();
51   UINT32 screen_update_nascom1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
52   UINT32 screen_update_nascom2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5153};
5254
5355
r17967r17968
6971
7072/*----------- defined in video/nascom1.c -----------*/
7173
72SCREEN_UPDATE_IND16( nascom1 );
73SCREEN_UPDATE_IND16( nascom2 );
7474
7575
76
77
7678#endif /* NASCOM1_H_ */
trunk/src/mess/includes/gmaster.h
r17967r17968
3131   DECLARE_WRITE8_MEMBER(gmaster_port_w);
3232   DECLARE_DRIVER_INIT(gmaster);
3333   virtual void palette_init();
34   UINT32 screen_update_gmaster(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3435};
3536
3637
trunk/src/mess/includes/microtan.h
r17967r17968
5151   TILE_GET_INFO_MEMBER(get_bg_tile_info);
5252   virtual void machine_reset();
5353   virtual void video_start();
54   UINT32 screen_update_microtan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5455};
5556
5657
trunk/src/mess/includes/sapi1.h
r17967r17968
4242   DECLARE_VIDEO_START(sapi1);
4343   DECLARE_MACHINE_RESET(sapizps3);
4444   DECLARE_VIDEO_START(sapizps3);
45   UINT32 screen_update_sapi1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
46   UINT32 screen_update_sapizps3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4547};
4648
4749/*----------- defined in video/sapi1.c -----------*/
trunk/src/mess/includes/einstein.h
r17967r17968
8282   virtual void machine_reset();
8383   DECLARE_MACHINE_START(einstein2);
8484   DECLARE_MACHINE_RESET(einstein2);
85   UINT32 screen_update_einstein2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
8586};
8687
8788
trunk/src/mess/includes/special.h
r17967r17968
9090   DECLARE_MACHINE_RESET(specimx);
9191   DECLARE_VIDEO_START(specimx);
9292   DECLARE_PALETTE_INIT(specimx);
93   UINT32 screen_update_special(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
94   UINT32 screen_update_erik(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
95   UINT32 screen_update_specialp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
96   UINT32 screen_update_specimx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
9397};
9498
9599
r17967r17968
108112/*----------- defined in video/special.c -----------*/
109113
110114
111SCREEN_UPDATE_IND16( special );
112115
113116
114SCREEN_UPDATE_IND16( specialp );
115117
116118
117SCREEN_UPDATE_IND16( specimx );
118119
119120
120SCREEN_UPDATE_IND16( erik );
121121
122122
123123
124
125
126
127
124128extern const rgb_t specimx_palette[16];
125129
126130/*----------- defined in audio/special.c -----------*/
trunk/src/mess/includes/intv.h
r17967r17968
130130   virtual void video_start();
131131   virtual void palette_init();
132132   DECLARE_MACHINE_RESET(intvecs);
133   UINT32 screen_update_intv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
134   UINT32 screen_update_intvkbd(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
133135};
134136
135137/*----------- defined in video/intv.c -----------*/
trunk/src/mess/includes/mikro80.h
r17967r17968
3333   DECLARE_DRIVER_INIT(mikro80);
3434   virtual void machine_reset();
3535   virtual void video_start();
36   UINT32 screen_update_mikro80(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3637};
3738
3839
trunk/src/mess/includes/ssystem3.h
r17967r17968
4747   DECLARE_DRIVER_INIT(ssystem3);
4848   virtual void video_start();
4949   virtual void palette_init();
50   UINT32 screen_update_ssystem3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5051};
5152
5253
trunk/src/mess/includes/amstrad.h
r17967r17968
167167   DECLARE_MACHINE_START(aleste);
168168   DECLARE_MACHINE_RESET(aleste);
169169   DECLARE_PALETTE_INIT(aleste);
170   UINT32 screen_update_amstrad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
171   void screen_eof_amstrad(screen_device &screen, bool state);
170172};
171173
172174
r17967r17968
205207extern const mc6845_interface amstrad_plus_mc6845_intf;
206208
207209
208SCREEN_UPDATE_IND16( amstrad );
209SCREEN_VBLANK( amstrad );
210210
211211
212
213
212214SLOT_INTERFACE_START(cpc_exp_cards)
213215   SLOT_INTERFACE("ssa1", CPC_SSA1)
214216   SLOT_INTERFACE("dkspeech", CPC_DKSPEECH)
trunk/src/mess/includes/rmnimbus.h
r17967r17968
226226   virtual void video_start();
227227   virtual void video_reset();
228228   virtual void palette_init();
229   UINT32 screen_update_nimbus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
230   void screen_eof_nimbus(screen_device &screen, bool state);
229231};
230232
231233
r17967r17968
436438
437439
438440
439SCREEN_VBLANK( nimbus );
440SCREEN_UPDATE_IND16( nimbus );
441441
442442
443
444
443445#define RED                     0
444446#define GREEN                   1
445447#define BLUE                    2
trunk/src/mess/includes/mz80.h
r17967r17968
5454   DECLARE_DRIVER_INIT(mz80k);
5555   virtual void machine_reset();
5656   virtual void video_start();
57   UINT32 screen_update_mz80k(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
58   UINT32 screen_update_mz80kj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
59   UINT32 screen_update_mz80a(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5760};
5861
5962
trunk/src/mess/includes/sms.h
r17967r17968
181181   DECLARE_MACHINE_RESET(sms);
182182   DECLARE_VIDEO_START(gamegear);
183183   DECLARE_VIDEO_START(sms1);
184   UINT32 screen_update_gamegear(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
185   UINT32 screen_update_sms(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
186   UINT32 screen_update_sms1(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
184187};
185188
186189
r17967r17968
212215
213216
214217
215SCREEN_UPDATE_RGB32( sms1 );
216SCREEN_UPDATE_RGB32( sms );
217SCREEN_UPDATE_RGB32( gamegear );
218218
219
220
221
219222#endif /* SMS_H_ */
trunk/src/mess/includes/poly88.h
r17967r17968
3333   DECLARE_DRIVER_INIT(poly88);
3434   virtual void machine_reset();
3535   virtual void video_start();
36   UINT32 screen_update_poly88(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3637};
3738
3839
trunk/src/mess/includes/ut88.h
r17967r17968
4747   DECLARE_VIDEO_START(ut88);
4848   DECLARE_MACHINE_START(ut88mini);
4949   DECLARE_MACHINE_RESET(ut88mini);
50   UINT32 screen_update_ut88(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5051};
5152
5253
trunk/src/mess/includes/llc.h
r17967r17968
5151   DECLARE_MACHINE_START(llc1);
5252   DECLARE_MACHINE_RESET(llc1);
5353   DECLARE_MACHINE_RESET(llc2);
54   UINT32 screen_update_llc1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
55   UINT32 screen_update_llc2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5456};
5557
5658
trunk/src/mess/includes/trs80.h
r17967r17968
116116   DECLARE_MACHINE_RESET(trs80m4);
117117   DECLARE_MACHINE_RESET(lnw80);
118118   DECLARE_PALETTE_INIT(lnw80);
119   UINT32 screen_update_trs80(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
120   UINT32 screen_update_trs80m4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
121   UINT32 screen_update_ht1080z(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
122   UINT32 screen_update_lnw80(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
123   UINT32 screen_update_radionic(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
124   UINT32 screen_update_meritum(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
119125};
120126
121127
r17967r17968
137143/*----------- defined in video/trs80.c -----------*/
138144
139145
140SCREEN_UPDATE_IND16( trs80 );
141SCREEN_UPDATE_IND16( ht1080z );
142SCREEN_UPDATE_IND16( meritum );
143SCREEN_UPDATE_IND16( lnw80 );
144SCREEN_UPDATE_IND16( radionic );
145SCREEN_UPDATE_IND16( trs80m4 );
146146
147147
148148
149149
150150
151
152
153
154
155
156
151157#endif   /* TRS80_H_ */
trunk/src/mess/includes/pp01.h
r17967r17968
3333   virtual void machine_reset();
3434   virtual void video_start();
3535   virtual void palette_init();
36   UINT32 screen_update_pp01(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3637};
3738
3839
trunk/src/mess/includes/cybiko.h
r17967r17968
8686   DECLARE_MACHINE_RESET(cybikov2);
8787   DECLARE_MACHINE_START(cybikoxt);
8888   DECLARE_MACHINE_RESET(cybikoxt);
89   UINT32 screen_update_cybiko(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8990};
9091
9192
trunk/src/mess/includes/odyssey2.h
r17967r17968
114114   virtual void machine_reset();
115115   virtual void video_start();
116116   virtual void palette_init();
117   UINT32 screen_update_odyssey2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
117118};
118119
119120
r17967r17968
122123extern const UINT8 odyssey2_colors[];
123124
124125
125SCREEN_UPDATE_IND16( odyssey2 );
126126
127127
128
128129STREAM_UPDATE( odyssey2_sh_update );
129130
130131void odyssey2_ef9341_w( running_machine &machine, int command, int b, UINT8 data );
trunk/src/mess/includes/apple2.h
r17967r17968
241241   DECLARE_MACHINE_START(tk2000);
242242   DECLARE_MACHINE_START(laser128);
243243   DECLARE_MACHINE_START(space84);
244   UINT32 screen_update_apple2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
244245};
245246
246247
r17967r17968
288289
289290
290291
291SCREEN_UPDATE_IND16( apple2 );
292292
293
293294#endif /* APPLE2_H_ */
trunk/src/mess/includes/primo.h
r17967r17968
3333   DECLARE_DRIVER_INIT(primo32);
3434   virtual void machine_reset();
3535   DECLARE_MACHINE_RESET(primob);
36   UINT32 screen_update_primo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3637};
3738
3839
trunk/src/mess/includes/ti85.h
r17967r17968
101101   DECLARE_PALETTE_INIT(ti82);
102102   DECLARE_MACHINE_START(ti86);
103103   DECLARE_MACHINE_START(ti83p);
104   UINT32 screen_update_ti85(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
104105};
105106
106107
r17967r17968
120121/*----------- defined in video/ti85.c -----------*/
121122
122123
123SCREEN_UPDATE_IND16( ti85 );
124124
125125
126126
127127
128
128129#endif /* TI85_H_ */
trunk/src/mess/includes/svision.h
r17967r17968
5454   DECLARE_PALETTE_INIT(svisionp);
5555   DECLARE_PALETTE_INIT(svisionn);
5656   DECLARE_MACHINE_RESET(tvlink);
57   UINT32 screen_update_svision(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
58   UINT32 screen_update_tvlink(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
5759};
5860
5961
trunk/src/mess/includes/abc1600.h
r17967r17968
244244   int m_rmc;               // row match count
245245   int m_cmc;               // column match count
246246   int m_amm;               // active mover mask
247   UINT32 screen_update_abc1600(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
247248};
248249
249250
trunk/src/mess/includes/busicom.h
r17967r17968
3030   virtual void machine_reset();
3131   virtual void video_start();
3232   virtual void palette_init();
33   UINT32 screen_update_busicom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3334};
3435
3536
trunk/src/mess/includes/tdv2324.h
r17967r17968
7979
8080   // video state
8181   required_shared_ptr<UINT8> m_video_ram;
82   UINT32 screen_update_tdv2324(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8283};
8384
8485
trunk/src/mess/includes/pc1251.h
r17967r17968
2626   UINT8 m_reg[0x100];
2727
2828   DECLARE_DRIVER_INIT(pc1251);
29   UINT32 screen_update_pc1251(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2930};
3031
3132
r17967r17968
4748
4849DECLARE_READ8_HANDLER(pc1251_lcd_read);
4950DECLARE_WRITE8_HANDLER(pc1251_lcd_write);
50SCREEN_UPDATE_IND16( pc1251 );
5151
5252
53
5354#endif /* PC1251_H_ */
trunk/src/mess/includes/vc4000.h
r17967r17968
9696   optional_device<cassette_image_device> m_cass;
9797   virtual void video_start();
9898   virtual void palette_init();
99   UINT32 screen_update_vc4000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
99100};
100101
101102
trunk/src/mess/includes/pk8020.h
r17967r17968
4444   virtual void machine_reset();
4545   virtual void video_start();
4646   virtual void palette_init();
47   UINT32 screen_update_pk8020(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4748};
4849
4950
trunk/src/mess/includes/galaxy.h
r17967r17968
3131   virtual void video_start();
3232   DECLARE_MACHINE_RESET(galaxy);
3333   DECLARE_MACHINE_RESET(galaxyp);
34   UINT32 screen_update_galaxy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3435};
3536
3637
r17967r17968
4748/*----------- defined in video/galaxy.c -----------*/
4849
4950
50SCREEN_UPDATE_IND16( galaxy );
5151
52
5253void galaxy_set_timer(running_machine &machine);
5354
5455#endif /* GALAXY_H_ */
trunk/src/mess/includes/bbc.h
r17967r17968
281281   DECLARE_MACHINE_START(bbcbp);
282282   DECLARE_MACHINE_RESET(bbcbp);
283283   DECLARE_VIDEO_START(bbcbp);
284   UINT32 screen_update_bbc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
284285};
285286
286287
r17967r17968
336337
337338
338339
339SCREEN_UPDATE_IND16( bbc );
340340
341
341342void bbc_set_video_memory_lookups(running_machine &machine, int ramsize);
342343void bbc_setscreenstart(running_machine &machine, int b4, int b5);
343344void bbcbp_setvideoshadow(running_machine &machine, int vdusel);
trunk/src/mess/includes/gamepock.h
r17967r17968
2929   DECLARE_READ8_MEMBER( port_b_r );
3030   DECLARE_WRITE8_MEMBER( port_b_w );
3131   DECLARE_READ8_MEMBER( port_c_r );
32   UINT32 screen_update_gamepock(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3233};
3334
3435
3536/*----------- defined in machine/gamepock.c -----------*/
3637
37SCREEN_UPDATE_IND16( gamepock );
3838
39
3940int gamepock_io_callback( device_t *device, int ioline, int state );
4041
4142#endif
trunk/src/mess/video/comquest.c
r17967r17968
66{
77}
88
9SCREEN_UPDATE_IND16( comquest )
9UINT32 comquest_state::screen_update_comquest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
1010{
1111   int x, y, j;
1212
trunk/src/mess/video/zx.c
r17967r17968
197197   machine().primary_screen->register_screen_bitmap(m_bitmap);
198198}
199199
200SCREEN_VBLANK( zx )
200void zx_state::screen_eof_zx(screen_device &screen, bool state)
201201{
202202   // rising edge
203   if (vblank_on)
203   if (state)
204204   {
205      zx_state *state = screen.machine().driver_data<zx_state>();
206205      /* decrement video synchronization counter */
207      if (state->m_ula_frame_vsync)
208         --state->m_ula_frame_vsync;
206      if (m_ula_frame_vsync)
207         --m_ula_frame_vsync;
209208   }
210209}
211210
trunk/src/mess/video/pdp1.c
r17967r17968
5959}
6060
6161
62SCREEN_VBLANK( pdp1 )
62void pdp1_state::screen_eof_pdp1(screen_device &screen, bool state)
6363{
6464   // rising edge
65   if (vblank_on)
65   if (state)
6666   {
67      pdp1_state *state = screen.machine().driver_data<pdp1_state>();
6867
69      crt_eof(state->m_crt);
68      crt_eof(m_crt);
7069   }
7170}
7271
r17967r17968
8685/*
8786    video_update_pdp1: effectively redraw the screen
8887*/
89SCREEN_UPDATE_IND16( pdp1 )
88UINT32 pdp1_state::screen_update_pdp1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
9089{
91   pdp1_state *state = screen.machine().driver_data<pdp1_state>();
92   pdp1_erase_lightpen(state, bitmap);
93   crt_update(state->m_crt, bitmap);
94   pdp1_draw_lightpen(state, bitmap);
90   pdp1_erase_lightpen(this, bitmap);
91   crt_update(m_crt, bitmap);
92   pdp1_draw_lightpen(this, bitmap);
9593
96   pdp1_draw_panel(screen.machine(), state->m_panel_bitmap);
97   copybitmap(bitmap, state->m_panel_bitmap, 0, 0, panel_window_offset_x, panel_window_offset_y, cliprect);
94   pdp1_draw_panel(screen.machine(), m_panel_bitmap);
95   copybitmap(bitmap, m_panel_bitmap, 0, 0, panel_window_offset_x, panel_window_offset_y, cliprect);
9896
99   copybitmap(bitmap, state->m_typewriter_bitmap, 0, 0, typewriter_window_offset_x, typewriter_window_offset_y, cliprect);
97   copybitmap(bitmap, m_typewriter_bitmap, 0, 0, typewriter_window_offset_x, typewriter_window_offset_y, cliprect);
10098   return 0;
10199}
102100
trunk/src/mess/video/pc1401.c
r17967r17968
131131#define DOWN 57
132132#define RIGHT 114
133133
134SCREEN_UPDATE_IND16( pc1401 )
134UINT32 pc1401_state::screen_update_pc1401(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
135135{
136   pc1401_state *state = screen.machine().driver_data<pc1401_state>();
137136   running_machine &machine = screen.machine();
138137   int x, y, i, j;
139138   int color[2];
r17967r17968
149148   color[0] = 7;
150149   color[1] = 8;
151150
152   if (state->m_portc&1)
151   if (m_portc&1)
153152   {
154153      for (x=RIGHT,y=DOWN,i=0; i<0x28;x+=2)
155154      {
156155         for (j=0; j<5;j++,i++,x+=2)
157         drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], state->m_reg[i],CONTRAST,0,0,x,y);
156         drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], m_reg[i],CONTRAST,0,0,x,y);
158157      }
159158      for (i=0x67; i>=0x40;x+=2)
160159      {
161160         for (j=0; j<5;j++,i--,x+=2)
162         drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], state->m_reg[i],CONTRAST,0,0,x,y);
161         drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], m_reg[i],CONTRAST,0,0,x,y);
163162      }
164163   }
165164
166165   pocketc_draw_special(bitmap, RIGHT+149, DOWN+24, line,
167         state->m_reg[0x3c] & 0x08 ? color[1] : color[0]);
166         m_reg[0x3c] & 0x08 ? color[1] : color[0]);
168167
169168   pocketc_draw_special(bitmap, RIGHT, DOWN-10, busy,
170         state->m_reg[0x3d] & 0x01 ? color[1] : color[0]);
169         m_reg[0x3d] & 0x01 ? color[1] : color[0]);
171170
172171   pocketc_draw_special(bitmap, RIGHT+18, DOWN-10, def,
173         state->m_reg[0x3d] & 0x02 ? color[1] : color[0]);
172         m_reg[0x3d] & 0x02 ? color[1] : color[0]);
174173
175174   pocketc_draw_special(bitmap, RIGHT+43, DOWN-10,shift,
176         state->m_reg[0x3d] & 0x04 ? color[1] : color[0]);
175         m_reg[0x3d] & 0x04 ? color[1] : color[0]);
177176
178177   pocketc_draw_special(bitmap, RIGHT+63, DOWN-10,hyp,
179         state->m_reg[0x3d] & 0x08 ? color[1] : color[0]);
178         m_reg[0x3d] & 0x08 ? color[1] : color[0]);
180179
181180   pocketc_draw_special(bitmap, RIGHT+38, DOWN+24,line,
182         state->m_reg[0x3d] & 0x10 ? color[1] : color[0]);
181         m_reg[0x3d] & 0x10 ? color[1] : color[0]);
183182
184183   pocketc_draw_special(bitmap, RIGHT+23, DOWN+24,line,
185         state->m_reg[0x3d] & 0x20 ? color[1] : color[0]);
184         m_reg[0x3d] & 0x20 ? color[1] : color[0]);
186185
187186   pocketc_draw_special(bitmap, RIGHT+8, DOWN+24,line,
188         state->m_reg[0x3d] & 0x40 ? color[1] : color[0]);
187         m_reg[0x3d] & 0x40 ? color[1] : color[0]);
189188
190189   pocketc_draw_special(bitmap, RIGHT+183, DOWN-10,e,
191         state->m_reg[0x7c] & 0x01 ? color[1] : color[0]);
190         m_reg[0x7c] & 0x01 ? color[1] : color[0]);
192191
193192   pocketc_draw_special(bitmap, RIGHT+176, DOWN-10,m,
194         state->m_reg[0x7c] & 0x02 ? color[1] : color[0]);
193         m_reg[0x7c] & 0x02 ? color[1] : color[0]);
195194
196195   pocketc_draw_special(bitmap, RIGHT+168, DOWN-10,braces,
197         state->m_reg[0x7c] & 0x04 ? color[1] : color[0]);
196         m_reg[0x7c] & 0x04 ? color[1] : color[0]);
198197
199198   pocketc_draw_special(bitmap, RIGHT+138, DOWN-10,rad,
200         state->m_reg[0x7c] & 0x08 ? color[1] : color[0]);
199         m_reg[0x7c] & 0x08 ? color[1] : color[0]);
201200
202201   pocketc_draw_special(bitmap, RIGHT+134, DOWN-10,g,
203         state->m_reg[0x7c] & 0x10 ? color[1] : color[0]);
202         m_reg[0x7c] & 0x10 ? color[1] : color[0]);
204203
205204   pocketc_draw_special(bitmap, RIGHT+126, DOWN-10,de,
206         state->m_reg[0x7c] & 0x20 ? color[1] : color[0]);
205         m_reg[0x7c] & 0x20 ? color[1] : color[0]);
207206
208207   pocketc_draw_special(bitmap, RIGHT+165, DOWN+24,line,
209         state->m_reg[0x7c] & 0x40 ? color[1] : color[0]);
208         m_reg[0x7c] & 0x40 ? color[1] : color[0]);
210209
211210/*
212211  603c: 3 STAT
trunk/src/mess/video/apple2gs.c
r17967r17968
2424
2525
2626
27SCREEN_UPDATE_IND16( apple2gs )
27UINT32 apple2gs_state::screen_update_apple2gs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
2828{
29   apple2gs_state *state = screen.machine().driver_data<apple2gs_state>();
3029   const UINT8 *vram;
3130   UINT16 *scanline;
3231   UINT8 scb, b;
r17967r17968
3635
3736   beamy = cliprect.min_y;
3837
39   if (state->m_newvideo & 0x80)
38   if (m_newvideo & 0x80)
4039   {
4140      // in top or bottom border?
4241      if ((beamy < BORDER_TOP) || (beamy >= 200+BORDER_TOP))
r17967r17968
5049         scanline = &bitmap.pix16(beamy);
5150         for (col = 0; col < BORDER_LEFT+BORDER_RIGHT+640; col++)
5251         {
53            scanline[col] = state->m_bordercolor;
52            scanline[col] = m_bordercolor;
5453         }
5554      }
5655      else   // regular screen area
5756      {
5857         int shrline = beamy - BORDER_TOP;
5958
60         scb = state->m_slowmem[0x19D00 + shrline];
59         scb = m_slowmem[0x19D00 + shrline];
6160         palette = ((scb & 0x0f) << 4) + 16;
6261
63         vram = &state->m_slowmem[0x12000 + (shrline * 160)];
62         vram = &m_slowmem[0x12000 + (shrline * 160)];
6463         scanline = &bitmap.pix16(beamy);
6564
6665         // draw left and right borders
6766         for (col = 0; col < BORDER_LEFT; col++)
6867         {
69            scanline[col] = state->m_bordercolor;
70            scanline[col+BORDER_LEFT+640] = state->m_bordercolor;
68            scanline[col] = m_bordercolor;
69            scanline[col+BORDER_LEFT+640] = m_bordercolor;
7170         }
7271
7372         if (scb & 0x80)   // 640 mode
r17967r17968
115114      /* call legacy Apple II video rendering at scanline 0 to draw into the off-screen buffer */
116115      if (beamy == 0)
117116      {
118         apple2_state *a2state = screen.machine().driver_data<apple2_state>();
119117
120118         // check if DHR should be monochrome 560x192
121         if (state->m_newvideo & 0x20)
119         if (m_newvideo & 0x20)
122120         {
123            a2state->m_monochrome_dhr = true;
121            m_monochrome_dhr = true;
124122         }
125123         else
126124         {
127            a2state->m_monochrome_dhr = false;
125            m_monochrome_dhr = false;
128126         }
129127
130128         rectangle new_cliprect(0, 559, 0, 191);
131         SCREEN_UPDATE_NAME(apple2)(NULL, screen, *state->m_legacy_gfx, new_cliprect);
129         screen_update_apple2(screen, *m_legacy_gfx, new_cliprect);
132130      }
133131
134132      if ((beamy < (BORDER_TOP+4)) || (beamy >= (192+4+BORDER_TOP)))
r17967r17968
141139         scanline = &bitmap.pix16(beamy);
142140         for (col = 0; col < BORDER_LEFT+BORDER_RIGHT+640; col++)
143141         {
144            scanline[col] = state->m_bordercolor;
142            scanline[col] = m_bordercolor;
145143         }
146144      }
147145      else
r17967r17968
151149         // draw left and right borders
152150         for (col = 0; col < BORDER_LEFT + 40; col++)
153151         {
154            scanline[col] = state->m_bordercolor;
155            scanline[col+BORDER_LEFT+600] = state->m_bordercolor;
152            scanline[col] = m_bordercolor;
153            scanline[col+BORDER_LEFT+600] = m_bordercolor;
156154         }
157155
158         memcpy(scanline + 40 + BORDER_LEFT, &state->m_legacy_gfx->pix16(beamy-(BORDER_TOP+4)), 560 * sizeof(UINT16));
156         memcpy(scanline + 40 + BORDER_LEFT, &m_legacy_gfx->pix16(beamy-(BORDER_TOP+4)), 560 * sizeof(UINT16));
159157      }
160158   }
161159   return 0;
trunk/src/mess/video/hp48.c
r17967r17968
127127   draw_pixel; draw_pixel; draw_pixel; draw_pixel;
128128
129129
130SCREEN_UPDATE_IND16 ( hp48 )
130UINT32 hp48_state::screen_update_hp48(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
131131{
132132   hp48_state *state = screen.machine().driver_data<hp48_state>();
133133   address_space &space = *screen.machine().device("maincpu")->memory().space(AS_PROGRAM);
r17967r17968
189189         int acc = 0;
190190         for ( i = 0; i < HP48_NB_SCREENS; i++ )
191191         {
192            acc += state->m_screens[ i ][ y ][ x+8 ];
192            acc += m_screens[ i ][ y ][ x+8 ];
193193         }
194194         acc = (acc * 255) / (33 * HP48_NB_SCREENS);
195195         bitmap.pix16(y, x ) = acc;
196196      }
197197   }
198198
199   state->m_cur_screen = (state->m_cur_screen + 1) % HP48_NB_SCREENS;
199   m_cur_screen = (m_cur_screen + 1) % HP48_NB_SCREENS;
200200
201201   return 0;
202202}
trunk/src/mess/video/apple3.c
r17967r17968
363363
364364
365365
366SCREEN_UPDATE_IND16( apple3 )
366UINT32 apple3_state::screen_update_apple3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
367367{
368   apple3_state *state = screen.machine().driver_data<apple3_state>();
369   switch(state->m_flags & (VAR_VM3|VAR_VM1|VAR_VM0))
368   switch(m_flags & (VAR_VM3|VAR_VM1|VAR_VM0))
370369   {
371370      case 0:
372371      case VAR_VM0:
trunk/src/mess/video/dai.c
r17967r17968
5555{
5656}
5757
58SCREEN_UPDATE_IND16( dai )
58UINT32 dai_state::screen_update_dai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
5959{
60   dai_state *state = screen.machine().driver_data<dai_state>();
6160   address_space &space = *screen.machine().device("maincpu")->memory().space(AS_PROGRAM);
6261   int i, j, k, l;
6362
64   UINT8* char_rom = state->memregion("gfx1")->base();
63   UINT8* char_rom = memregion("gfx1")->base();
6564
6665   UINT16 dai_video_memory_start = 0xbfff;
6766   UINT16 dai_scan_lines = 604;   /* scan lines of PAL tv */
r17967r17968
110109      unit_mode = (colour & 0x40) >> 6;
111110
112111      if (colour & 0x80)
113         state->m_4_colours_palette[(colour & 0x30) >> 4] = colour & 0x0f;
112         m_4_colours_palette[(colour & 0x30) >> 4] = colour & 0x0f;
114113
115114      switch (display_mode)
116115      {
r17967r17968
132131                  {
133132                     for (k=0; k<8; k++)
134133                     {
135                        current_colour = state->m_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)];
134                        current_colour = m_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)];
136135                        for (l=0; l<12; l++)
137136                           bitmap.pix16(current_scan_line/2 + j, (i*8+k)*12+l) = current_colour;
138137                     }
r17967r17968
149148                  {
150149                     for (k=0; k<8; k++)
151150                     {
152                        current_colour = state->m_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)];
151                        current_colour = m_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)];
153152                        for (l=0; l<12; l++)
154153                           bitmap.pix16(current_scan_line/2 + j, (i*8+k)*12+l) = current_colour;
155154                     }
r17967r17968
171170                  {
172171                     for (k=0; k<8; k++)
173172                     {
174                        current_colour = state->m_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)];
173                        current_colour = m_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)];
175174                        for (l=0; l<6; l++)
176175                           bitmap.pix16(current_scan_line/2 + j, (i*8+k)*6+l) = current_colour;
177176                     }
r17967r17968
188187                  {
189188                     for (k=0; k<8; k++)
190189                     {
191                        current_colour = state->m_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)];
190                        current_colour = m_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)];
192191                        for (l=0; l<6; l++)
193192                           bitmap.pix16(current_scan_line/2 + j, (i*8+k)*6+l) = current_colour;
194193                     }
r17967r17968
210209                  {
211210                     for (k=0; k<8; k++)
212211                     {
213                        current_colour = state->m_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)];
212                        current_colour = m_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)];
214213                        for (l=0; l<3; l++)
215214                           bitmap.pix16(current_scan_line/2 + j, (i*8+k)*3+l) = current_colour;
216215                     }
r17967r17968
226225                  {
227226                     for (k=0; k<8; k++)
228227                     {
229                        current_colour = state->m_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)];
228                        current_colour = m_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)];
230229                        for (l=0; l<3; l++)
231230                           bitmap.pix16(current_scan_line/2 + j, (i*8+k)*3+l) = current_colour;
232231                     }
r17967r17968
248247                  {
249248                     for (k=0; k<8; k++)
250249                     {
251                        current_colour = state->m_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)];
250                        current_colour = m_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)];
252251                        for (l=0; l<2; l++)
253252                           bitmap.pix16(current_scan_line/2 + j, (i*8+k)*2+l) = current_colour;
254253                     }
r17967r17968
264263                  {
265264                     for (k=0; k<8; k++)
266265                     {
267                        current_colour = state->m_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)];
266                        current_colour = m_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)];
268267                        for (l=0; l<2; l++)
269268                           bitmap.pix16(current_scan_line/2 + j, (i*8+k)*2+l) = current_colour;
270269                     }
r17967r17968
293292                  {
294293                     for (k=0; k<8; k++)
295294                     {
296                        current_colour = state->m_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)];
295                        current_colour = m_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)];
297296                        for (l=0; l<12; l++)
298297                           bitmap.pix16(current_scan_line/2 + j, (i*8+k)*12+l) = current_colour;
299298                     }
r17967r17968
311310                  {
312311                     for (k=0; k<8; k++)
313312                     {
314                        current_colour = state->m_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)];
313                        current_colour = m_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)];
315314                        for (l=0; l<12; l++)
316315                           bitmap.pix16(current_scan_line/2 + j, (i*8+k)*12+l) = current_colour;
317316                     }
r17967r17968
334333                  {
335334                     for (k=0; k<8; k++)
336335                     {
337                        current_colour = state->m_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)];
336                        current_colour = m_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)];
338337                        for (l=0; l<6; l++)
339338                           bitmap.pix16(current_scan_line/2 + j, (i*8+k)*6+l) = current_colour;
340339                     }
r17967r17968
352351                  {
353352                     for (k=0; k<8; k++)
354353                     {
355                        current_colour = state->m_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)];
354                        current_colour = m_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)];
356355                        for (l=0; l<6; l++)
357356                           bitmap.pix16(current_scan_line/2 + j, (i*8+k)*6+l) = current_colour;
358357                     }
r17967r17968
375374                  {
376375                     for (k=0; k<8; k++)
377376                     {
378                        current_colour = state->m_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)];
377                        current_colour = m_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)];
379378                        for (l=0; l<3; l++)
380379                           bitmap.pix16(current_scan_line/2 + j, (i*8+k)*3+l) = current_colour;
381380                     }
r17967r17968
392391                  {
393392                     for (k=0; k<8; k++)
394393                     {
395                        current_colour = state->m_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)];
394                        current_colour = m_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)];
396395                        for (l=0; l<3; l++)
397396                           bitmap.pix16(current_scan_line/2 + j, (i*8+k)*3+l) = current_colour;
398397                     }
r17967r17968
414413                  {
415414                     for (k=0; k<8; k++)
416415                     {
417                        current_colour = state->m_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)];
416                        current_colour = m_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)];
418417                        for (l=0; l<2; l++)
419418                           bitmap.pix16(current_scan_line/2 + j, (i*8+k)*2+l) = current_colour;
420419                     }
r17967r17968
431430                  {
432431                     for (k=0; k<8; k++)
433432                     {
434                        current_colour = state->m_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)];
433                        current_colour = m_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)];
435434                        for (l=0; l<2; l++)
436435                           bitmap.pix16(current_scan_line/2 + j, (i*8+k)*2+l) = current_colour;
437436                     }
trunk/src/mess/video/nc.c
r17967r17968
5353  Do NOT call osd_update_display() from this function,
5454  it will be called by the main emulation engine.
5555***************************************************************************/
56SCREEN_UPDATE_IND16( nc )
56UINT32 nc_state::screen_update_nc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
5757{
58   nc_state *state = screen.machine().driver_data<nc_state>();
5958   int y;
6059   int b;
6160   int x;
6261   int height, width;
6362   int pens[2];
6463
65    if (state->m_type==NC_TYPE_200)
64    if (m_type==NC_TYPE_200)
6665    {
6766        height = NC200_SCREEN_HEIGHT;
6867        width = NC200_SCREEN_WIDTH;
6968
70      if (state->m_nc200_backlight)
69      if (m_nc200_backlight)
7170      {
7271         pens[0] = 2;
7372         pens[1] = 3;
r17967r17968
9190    {
9291      int by;
9392      /* 64 bytes per line */
94      char *line_ptr = ((char*)screen.machine().device<ram_device>(RAM_TAG)->pointer()) + state->m_display_memory_start + (y<<6);
93      char *line_ptr = ((char*)screen.machine().device<ram_device>(RAM_TAG)->pointer()) + m_display_memory_start + (y<<6);
9594
9695      x = 0;
9796      for (by=0; by<width>>3; by++)
trunk/src/mess/video/mac.c
r17967r17968
7878#define MAC_MAIN_SCREEN_BUF_OFFSET   0x5900
7979#define MAC_ALT_SCREEN_BUF_OFFSET   0xD900
8080
81SCREEN_UPDATE_IND16( mac )
81UINT32 mac_state::screen_update_mac(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
8282{
8383   UINT32 video_base;
8484   const UINT16 *video_ram;
8585   UINT16 word;
8686   UINT16 *line;
8787   int y, x, b;
88   mac_state *state = screen.machine().driver_data<mac_state>();
8988
90   video_base = screen.machine().device<ram_device>(RAM_TAG)->size() - (state->m_screen_buffer ? MAC_MAIN_SCREEN_BUF_OFFSET : MAC_ALT_SCREEN_BUF_OFFSET);
89   video_base = screen.machine().device<ram_device>(RAM_TAG)->size() - (m_screen_buffer ? MAC_MAIN_SCREEN_BUF_OFFSET : MAC_ALT_SCREEN_BUF_OFFSET);
9190   video_ram = (const UINT16 *) (screen.machine().device<ram_device>(RAM_TAG)->pointer() + video_base);
9291
9392   for (y = 0; y < MAC_V_VIS; y++)
r17967r17968
106105   return 0;
107106}
108107
109SCREEN_UPDATE_IND16( macse30 )
108UINT32 mac_state::screen_update_macse30(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
110109{
111110   UINT32 video_base;
112111   const UINT16 *video_ram;
113112   UINT16 word;
114113   UINT16 *line;
115114   int y, x, b;
116   mac_state *state = screen.machine().driver_data<mac_state>();
117115
118   video_base = state->m_screen_buffer ? 0x8000 : 0;
119   video_ram = (const UINT16 *) &state->m_vram[video_base/4];
116   video_base = m_screen_buffer ? 0x8000 : 0;
117   video_ram = (const UINT16 *) &m_vram[video_base/4];
120118
121119   for (y = 0; y < MAC_V_VIS; y++)
122120   {
r17967r17968
134132   return 0;
135133}
136134
137SCREEN_UPDATE_IND16( macprtb )
135UINT32 mac_state::screen_update_macprtb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
138136{
139137   const UINT16 *video_ram;
140138   UINT16 word;
141139   UINT16 *line;
142140   int y, x, b;
143   mac_state *state = screen.machine().driver_data<mac_state>();
144141
145   video_ram = (const UINT16 *) state->m_vram16.target();
142   video_ram = (const UINT16 *) m_vram16.target();
146143
147144   for (y = 0; y < 400; y++)
148145   {
r17967r17968
160157   return 0;
161158}
162159
163SCREEN_UPDATE_IND16( macpb140 )
160UINT32 mac_state::screen_update_macpb140(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
164161{
165162   const UINT16 *video_ram;
166163   UINT16 word;
167164   UINT16 *line;
168165   int y, x, b;
169   mac_state *state = screen.machine().driver_data<mac_state>();
170166
171   video_ram = (const UINT16 *) state->m_vram.target();
167   video_ram = (const UINT16 *) m_vram.target();
172168
173169   for (y = 0; y < 400; y++)
174170   {
r17967r17968
186182   return 0;
187183}
188184
189SCREEN_UPDATE_IND16( macpb160 )
185UINT32 mac_state::screen_update_macpb160(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
190186{
191187   UINT16 *line;
192188   int y, x;
193189   UINT8 pixels;
194   mac_state *state = screen.machine().driver_data<mac_state>();
195   UINT8 *vram8 = (UINT8 *)state->m_vram.target();
190   UINT8 *vram8 = (UINT8 *)m_vram.target();
196191
197192   for (y = 0; y < 400; y++)
198193   {
r17967r17968
374369   m_rbv_type = RBV_TYPE_V8;
375370}
376371
377SCREEN_UPDATE_RGB32( macrbv )
372UINT32 mac_state::screen_update_macrbv(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
378373{
379374   UINT32 *scanline;
380375   int x, y, hres, vres;
381   mac_state *mac = screen.machine().driver_data<mac_state>();
382376   UINT8 *vram8 = (UINT8 *)screen.machine().device<ram_device>(RAM_TAG)->pointer();
383377
384   switch (mac->m_rbv_montype)
378   switch (m_rbv_montype)
385379   {
386380      case 32: // classic II built-in display
387381         hres = MAC_H_VIS;
r17967r17968
406400         break;
407401   }
408402
409   switch (mac->m_rbv_regs[0x10] & 7)
403   switch (m_rbv_regs[0x10] & 7)
410404   {
411405      case 0:   // 1bpp
412406      {
r17967r17968
419413            {
420414               pixels = vram8[(y * (hres/8)) + ((x/8)^3)];
421415
422               *scanline++ = mac->m_rbv_palette[0xfe|(pixels>>7)];
423               *scanline++ = mac->m_rbv_palette[0xfe|((pixels>>6)&1)];
424               *scanline++ = mac->m_rbv_palette[0xfe|((pixels>>5)&1)];
425               *scanline++ = mac->m_rbv_palette[0xfe|((pixels>>4)&1)];
426               *scanline++ = mac->m_rbv_palette[0xfe|((pixels>>3)&1)];
427               *scanline++ = mac->m_rbv_palette[0xfe|((pixels>>2)&1)];
428               *scanline++ = mac->m_rbv_palette[0xfe|((pixels>>1)&1)];
429               *scanline++ = mac->m_rbv_palette[0xfe|(pixels&1)];
416               *scanline++ = m_rbv_palette[0xfe|(pixels>>7)];
417               *scanline++ = m_rbv_palette[0xfe|((pixels>>6)&1)];
418               *scanline++ = m_rbv_palette[0xfe|((pixels>>5)&1)];
419               *scanline++ = m_rbv_palette[0xfe|((pixels>>4)&1)];
420               *scanline++ = m_rbv_palette[0xfe|((pixels>>3)&1)];
421               *scanline++ = m_rbv_palette[0xfe|((pixels>>2)&1)];
422               *scanline++ = m_rbv_palette[0xfe|((pixels>>1)&1)];
423               *scanline++ = m_rbv_palette[0xfe|(pixels&1)];
430424            }
431425         }
432426      }
r17967r17968
443437            {
444438               pixels = vram8[(y * (hres/4)) + (BYTE4_XOR_BE(x))];
445439
446               *scanline++ = mac->m_rbv_palette[0xfc|((pixels>>6)&3)];
447               *scanline++ = mac->m_rbv_palette[0xfc|((pixels>>4)&3)];
448               *scanline++ = mac->m_rbv_palette[0xfc|((pixels>>2)&3)];
449               *scanline++ = mac->m_rbv_palette[0xfc|(pixels&3)];
440               *scanline++ = m_rbv_palette[0xfc|((pixels>>6)&3)];
441               *scanline++ = m_rbv_palette[0xfc|((pixels>>4)&3)];
442               *scanline++ = m_rbv_palette[0xfc|((pixels>>2)&3)];
443               *scanline++ = m_rbv_palette[0xfc|(pixels&3)];
450444            }
451445         }
452446      }
r17967r17968
464458            {
465459               pixels = vram8[(y * (hres/2)) + (BYTE4_XOR_BE(x))];
466460
467               *scanline++ = mac->m_rbv_palette[0xf0|(pixels>>4)];
468               *scanline++ = mac->m_rbv_palette[0xf0|(pixels&0xf)];
461               *scanline++ = m_rbv_palette[0xf0|(pixels>>4)];
462               *scanline++ = m_rbv_palette[0xf0|(pixels&0xf)];
469463            }
470464         }
471465      }
r17967r17968
482476            for (x = 0; x < hres; x++)
483477            {
484478               pixels = vram8[(y * hres) + (BYTE4_XOR_BE(x))];
485               *scanline++ = mac->m_rbv_palette[pixels];
479               *scanline++ = m_rbv_palette[pixels];
486480            }
487481         }
488482      }
r17967r17968
491485   return 0;
492486}
493487
494SCREEN_UPDATE_RGB32( macrbvvram )
488UINT32 mac_state::screen_update_macrbvvram(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
495489{
496490   UINT32 *scanline;
497491   int x, y;
498   mac_state *mac = screen.machine().driver_data<mac_state>();
499492   UINT8 mode = 0;
500493
501   switch (mac->m_rbv_type)
494   switch (m_rbv_type)
502495   {
503496      case RBV_TYPE_RBV:
504497      case RBV_TYPE_V8:
505         mode = mac->m_rbv_regs[0x10] & 7;
498         mode = m_rbv_regs[0x10] & 7;
506499         break;
507500
508501      case RBV_TYPE_SONORA:
509         mode = mac->m_sonora_vctl[1] & 7;
502         mode = m_sonora_vctl[1] & 7;
510503
511504         // forced blank?
512         if (mac->m_sonora_vctl[0] & 0x80)
505         if (m_sonora_vctl[0] & 0x80)
513506         {
514507            return 0;
515508         }
r17967r17968
520513   {
521514      case 0:   // 1bpp
522515      {
523         UINT8 *vram8 = (UINT8 *)mac->m_vram.target();
516         UINT8 *vram8 = (UINT8 *)m_vram.target();
524517         UINT8 pixels;
525518
526         if (mac->m_rbv_type == RBV_TYPE_SONORA)
519         if (m_rbv_type == RBV_TYPE_SONORA)
527520         {
528521            for (y = 0; y < 480; y++)
529522            {
r17967r17968
532525               {
533526                  pixels = vram8[(y * 80) + ((x/8)^3)];
534527
535                  *scanline++ = mac->m_rbv_palette[0x7f|(pixels&0x80)];
536                  *scanline++ = mac->m_rbv_palette[0x7f|((pixels<<1)&0x80)];
537                  *scanline++ = mac->m_rbv_palette[0x7f|((pixels<<2)&0x80)];
538                  *scanline++ = mac->m_rbv_palette[0x7f|((pixels<<3)&0x80)];
539                  *scanline++ = mac->m_rbv_palette[0x7f|((pixels<<4)&0x80)];
540                  *scanline++ = mac->m_rbv_palette[0x7f|((pixels<<5)&0x80)];
541                  *scanline++ = mac->m_rbv_palette[0x7f|((pixels<<6)&0x80)];
542                  *scanline++ = mac->m_rbv_palette[0x7f|((pixels<<7)&0x80)];
528                  *scanline++ = m_rbv_palette[0x7f|(pixels&0x80)];
529                  *scanline++ = m_rbv_palette[0x7f|((pixels<<1)&0x80)];
530                  *scanline++ = m_rbv_palette[0x7f|((pixels<<2)&0x80)];
531                  *scanline++ = m_rbv_palette[0x7f|((pixels<<3)&0x80)];
532                  *scanline++ = m_rbv_palette[0x7f|((pixels<<4)&0x80)];
533                  *scanline++ = m_rbv_palette[0x7f|((pixels<<5)&0x80)];
534                  *scanline++ = m_rbv_palette[0x7f|((pixels<<6)&0x80)];
535                  *scanline++ = m_rbv_palette[0x7f|((pixels<<7)&0x80)];
543536               }
544537            }
545538         }
r17967r17968
552545               {
553546                  pixels = vram8[(y * 0x400) + ((x/8)^3)];
554547
555                  *scanline++ = mac->m_rbv_palette[0x7f|(pixels&0x80)];
556                  *scanline++ = mac->m_rbv_palette[0x7f|((pixels<<1)&0x80)];
557                  *scanline++ = mac->m_rbv_palette[0x7f|((pixels<<2)&0x80)];
558                  *scanline++ = mac->m_rbv_palette[0x7f|((pixels<<3)&0x80)];
559                  *scanline++ = mac->m_rbv_palette[0x7f|((pixels<<4)&0x80)];
560                  *scanline++ = mac->m_rbv_palette[0x7f|((pixels<<5)&0x80)];
561                  *scanline++ = mac->m_rbv_palette[0x7f|((pixels<<6)&0x80)];
562                  *scanline++ = mac->m_rbv_palette[0x7f|((pixels<<7)&0x80)];
548                  *scanline++ = m_rbv_palette[0x7f|(pixels&0x80)];
549                  *scanline++ = m_rbv_palette[0x7f|((pixels<<1)&0x80)];
550                  *scanline++ = m_rbv_palette[0x7f|((pixels<<2)&0x80)];
551                  *scanline++ = m_rbv_palette[0x7f|((pixels<<3)&0x80)];
552                  *scanline++ = m_rbv_palette[0x7f|((pixels<<4)&0x80)];
553                  *scanline++ = m_rbv_palette[0x7f|((pixels<<5)&0x80)];
554                  *scanline++ = m_rbv_palette[0x7f|((pixels<<6)&0x80)];
555                  *scanline++ = m_rbv_palette[0x7f|((pixels<<7)&0x80)];
563556               }
564557            }
565558         }
r17967r17968
568561
569562      case 1:   // 2bpp
570563      {
571         UINT8 *vram8 = (UINT8 *)mac->m_vram.target();
564         UINT8 *vram8 = (UINT8 *)m_vram.target();
572565         UINT8 pixels;
573566
574567         for (y = 0; y < 480; y++)
r17967r17968
578571            {
579572               pixels = vram8[(y * 160) + (BYTE4_XOR_BE(x))];
580573
581               *scanline++ = mac->m_rbv_palette[0xfc|((pixels>>6)&3)];
582               *scanline++ = mac->m_rbv_palette[0xfc|((pixels>>4)&3)];
583               *scanline++ = mac->m_rbv_palette[0xfc|((pixels>>2)&3)];
584               *scanline++ = mac->m_rbv_palette[0xfc|(pixels&3)];
574               *scanline++ = m_rbv_palette[0xfc|((pixels>>6)&3)];
575               *scanline++ = m_rbv_palette[0xfc|((pixels>>4)&3)];
576               *scanline++ = m_rbv_palette[0xfc|((pixels>>2)&3)];
577               *scanline++ = m_rbv_palette[0xfc|(pixels&3)];
585578            }
586579         }
587580      }
r17967r17968
589582
590583      case 2: // 4bpp
591584      {
592         UINT8 *vram8 = (UINT8 *)mac->m_vram.target();
585         UINT8 *vram8 = (UINT8 *)m_vram.target();
593586         UINT8 pixels;
594587
595588         for (y = 0; y < 480; y++)
r17967r17968
600593            {
601594               pixels = vram8[(y * 320) + (BYTE4_XOR_BE(x))];
602595
603               *scanline++ = mac->m_rbv_palette[0xf0|(pixels>>4)];
604               *scanline++ = mac->m_rbv_palette[0xf0|(pixels&0xf)];
596               *scanline++ = m_rbv_palette[0xf0|(pixels>>4)];
597               *scanline++ = m_rbv_palette[0xf0|(pixels&0xf)];
605598            }
606599         }
607600      }
r17967r17968
609602
610603      case 3: // 8bpp
611604      {
612         UINT8 *vram8 = (UINT8 *)mac->m_vram.target();
605         UINT8 *vram8 = (UINT8 *)m_vram.target();
613606         UINT8 pixels;
614607
615         if (mac->m_rbv_type == RBV_TYPE_SONORA)
608         if (m_rbv_type == RBV_TYPE_SONORA)
616609         {
617610            for (y = 0; y < 480; y++)
618611            {
r17967r17968
621614               for (x = 0; x < 640; x++)
622615               {
623616                  pixels = vram8[(y * 0x280) + (BYTE4_XOR_BE(x))];
624                  *scanline++ = mac->m_rbv_palette[pixels];
617                  *scanline++ = m_rbv_palette[pixels];
625618               }
626619            }
627620         }
r17967r17968
634627               for (x = 0; x < 640; x++)
635628               {
636629                  pixels = vram8[(y * 2048) + (BYTE4_XOR_BE(x))];
637                  *scanline++ = mac->m_rbv_palette[pixels];
630                  *scanline++ = m_rbv_palette[pixels];
638631               }
639632            }
640633         }
r17967r17968
855848   }
856849}
857850
858SCREEN_UPDATE_RGB32( macdafb )
851UINT32 mac_state::screen_update_macdafb(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
859852{
860853   UINT32 *scanline;
861854   int x, y;
862   mac_state *mac = screen.machine().driver_data<mac_state>();
863855
864   switch (mac->m_dafb_mode)
856   switch (m_dafb_mode)
865857   {
866858      case 0:   // 1bpp
867859      {
868         UINT8 *vram8 = (UINT8 *)mac->m_vram.target();
860         UINT8 *vram8 = (UINT8 *)m_vram.target();
869861         UINT8 pixels;
870         vram8 += mac->m_dafb_base;
862         vram8 += m_dafb_base;
871863
872864         for (y = 0; y < 870; y++)
873865         {
874866            scanline = &bitmap.pix32(y);
875867            for (x = 0; x < 1152; x+=8)
876868            {
877               pixels = vram8[(y * mac->m_dafb_stride) + ((x/8)^3)];
869               pixels = vram8[(y * m_dafb_stride) + ((x/8)^3)];
878870
879               *scanline++ = mac->m_rbv_palette[(pixels>>7)&1];
880               *scanline++ = mac->m_rbv_palette[(pixels>>6)&1];
881               *scanline++ = mac->m_rbv_palette[(pixels>>5)&1];
882               *scanline++ = mac->m_rbv_palette[(pixels>>4)&1];
883               *scanline++ = mac->m_rbv_palette[(pixels>>3)&1];
884               *scanline++ = mac->m_rbv_palette[(pixels>>2)&1];
885               *scanline++ = mac->m_rbv_palette[(pixels>>1)&1];
886               *scanline++ = mac->m_rbv_palette[(pixels&1)];
871               *scanline++ = m_rbv_palette[(pixels>>7)&1];
872               *scanline++ = m_rbv_palette[(pixels>>6)&1];
873               *scanline++ = m_rbv_palette[(pixels>>5)&1];
874               *scanline++ = m_rbv_palette[(pixels>>4)&1];
875               *scanline++ = m_rbv_palette[(pixels>>3)&1];
876               *scanline++ = m_rbv_palette[(pixels>>2)&1];
877               *scanline++ = m_rbv_palette[(pixels>>1)&1];
878               *scanline++ = m_rbv_palette[(pixels&1)];
887879            }
888880         }
889881      }
r17967r17968
891883
892884      case 1:   // 2bpp
893885      {
894         UINT8 *vram8 = (UINT8 *)mac->m_vram.target();
886         UINT8 *vram8 = (UINT8 *)m_vram.target();
895887         UINT8 pixels;
896         vram8 += mac->m_dafb_base;
888         vram8 += m_dafb_base;
897889
898890         for (y = 0; y < 870; y++)
899891         {
900892            scanline = &bitmap.pix32(y);
901893            for (x = 0; x < 1152/4; x++)
902894            {
903               pixels = vram8[(y * mac->m_dafb_stride) + (BYTE4_XOR_BE(x))];
895               pixels = vram8[(y * m_dafb_stride) + (BYTE4_XOR_BE(x))];
904896
905               *scanline++ = mac->m_rbv_palette[((pixels>>6)&3)];
906               *scanline++ = mac->m_rbv_palette[((pixels>>4)&3)];
907               *scanline++ = mac->m_rbv_palette[((pixels>>2)&3)];
908               *scanline++ = mac->m_rbv_palette[(pixels&3)];
897               *scanline++ = m_rbv_palette[((pixels>>6)&3)];
898               *scanline++ = m_rbv_palette[((pixels>>4)&3)];
899               *scanline++ = m_rbv_palette[((pixels>>2)&3)];
900               *scanline++ = m_rbv_palette[(pixels&3)];
909901            }
910902         }
911903      }
r17967r17968
913905
914906      case 2: // 4bpp
915907      {
916         UINT8 *vram8 = (UINT8 *)mac->m_vram.target();
908         UINT8 *vram8 = (UINT8 *)m_vram.target();
917909         UINT8 pixels;
918         vram8 += mac->m_dafb_base;
910         vram8 += m_dafb_base;
919911
920912         for (y = 0; y < 870; y++)
921913         {
r17967r17968
923915
924916            for (x = 0; x < 1152/2; x++)
925917            {
926               pixels = vram8[(y * mac->m_dafb_stride) + (BYTE4_XOR_BE(x))];
918               pixels = vram8[(y * m_dafb_stride) + (BYTE4_XOR_BE(x))];
927919
928               *scanline++ = mac->m_rbv_palette[(pixels>>4)];
929               *scanline++ = mac->m_rbv_palette[(pixels&0xf)];
920               *scanline++ = m_rbv_palette[(pixels>>4)];
921               *scanline++ = m_rbv_palette[(pixels&0xf)];
930922            }
931923         }
932924      }
r17967r17968
934926
935927      case 3: // 8bpp
936928      {
937         UINT8 *vram8 = (UINT8 *)mac->m_vram.target();
929         UINT8 *vram8 = (UINT8 *)m_vram.target();
938930         UINT8 pixels;
939         vram8 += mac->m_dafb_base;
931         vram8 += m_dafb_base;
940932
941933         for (y = 0; y < 870; y++)
942934         {
r17967r17968
944936
945937            for (x = 0; x < 1152; x++)
946938            {
947               pixels = vram8[(y * mac->m_dafb_stride) + (BYTE4_XOR_BE(x))];
948               *scanline++ = mac->m_rbv_palette[pixels];
939               pixels = vram8[(y * m_dafb_stride) + (BYTE4_XOR_BE(x))];
940               *scanline++ = m_rbv_palette[pixels];
949941            }
950942         }
951943      }
r17967r17968
957949            UINT32 *base;
958950
959951            scanline = &bitmap.pix32(y);
960            base = (UINT32 *)&mac->m_vram[(y * (mac->m_dafb_stride/4)) + (mac->m_dafb_base/4)];
952            base = (UINT32 *)&m_vram[(y * (m_dafb_stride/4)) + (m_dafb_base/4)];
961953            for (x = 0; x < 640; x++)
962954            {
963955               *scanline++ = *base++;
r17967r17968
969961   return 0;
970962}
971963
972SCREEN_UPDATE_RGB32( macpbwd ) /* Color PowerBooks using an off-the-shelf WD video chipset */
964UINT32 mac_state::screen_update_macpbwd(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)/* Color PowerBooks using an off-the-shelf WD video chipset */
973965{
974966   UINT32 *scanline;
975967   int x, y;
976   mac_state *mac = screen.machine().driver_data<mac_state>();
977    UINT8 *vram8 = (UINT8 *)mac->m_vram.target();
968    UINT8 *vram8 = (UINT8 *)m_vram.target();
978969    UINT8 pixels;
979970
980971//    vram8 += 0x40000;
r17967r17968
985976        for (x = 0; x < 640; x++)
986977        {
987978            pixels = vram8[(y * 640) + (BYTE4_XOR_BE(x))];
988            *scanline++ = mac->m_rbv_palette[pixels];
979            *scanline++ = m_rbv_palette[pixels];
989980        }
990981    }
991982
trunk/src/mess/video/ac1.c
r17967r17968
2626{
2727}
2828
29SCREEN_UPDATE_IND16( ac1 )
29UINT32 ac1_state::screen_update_ac1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
3030{
3131   int x,y;
3232   address_space &space = *screen.machine().device("maincpu")->memory().space(AS_PROGRAM);
r17967r17968
4242   return 0;
4343}
4444
45SCREEN_UPDATE_IND16( ac1_32 )
45UINT32 ac1_state::screen_update_ac1_32(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
4646{
4747   int x,y;
4848   address_space &space = *screen.machine().device("maincpu")->memory().space(AS_PROGRAM);
trunk/src/mess/video/mc80.c
r17967r17968
9696{
9797}
9898
99SCREEN_UPDATE_IND16( mc8020 )
99UINT32 mc80_state::screen_update_mc8020(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
100100{
101   mc80_state *state = screen.machine().driver_data<mc80_state>();
102101   UINT8 y,ra,chr,gfx;
103102   UINT16 sy=0,ma=0,x;
104103
r17967r17968
112111         {
113112            if (ra > 3 && ra < 12)
114113            {
115               chr = state->m_p_videoram[x];
114               chr = m_p_videoram[x];
116115               gfx = prom[(chr<<3) | (ra-4)];
117116            }
118117            else
r17967r17968
142141   m_p_videoram.set_target(memregion("vram")->base(),m_p_videoram.bytes());
143142}
144143
145SCREEN_UPDATE_IND16( mc8030 )
144UINT32 mc80_state::screen_update_mc8030(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
146145{
147   mc80_state *state = screen.machine().driver_data<mc80_state>();
148146   UINT8 gfx;
149147   UINT16 y=0,ma=0,x;
150148
r17967r17968
154152      {
155153         for (x = ma; x < ma + 64; x++)
156154         {
157            gfx = state->m_p_videoram[x^0x3fff];
155            gfx = m_p_videoram[x^0x3fff];
158156
159157            /* Display a scanline of a character */
160158            *p++ = BIT(gfx, 7);
trunk/src/mess/video/mbee.c
r17967r17968
383383   m_is_premium = 1;
384384}
385385
386SCREEN_UPDATE_RGB32( mbee )
386UINT32 mbee_state::screen_update_mbee(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
387387{
388   mbee_state *state = screen.machine().driver_data<mbee_state>();
389   state->m_framecnt++;
390   state->m_speed = state->m_sy6545_reg[10]&0x20, state->m_flash = state->m_sy6545_reg[10]&0x40;         // cursor modes
391   state->m_cursor = (state->m_sy6545_reg[14]<<8) | state->m_sy6545_reg[15];               // get cursor position
392   state->m_crtc->screen_update(screen, bitmap, cliprect);
388   m_framecnt++;
389   m_speed = m_sy6545_reg[10]&0x20, m_flash = m_sy6545_reg[10]&0x40;         // cursor modes
390   m_cursor = (m_sy6545_reg[14]<<8) | m_sy6545_reg[15];               // get cursor position
391   m_crtc->screen_update(screen, bitmap, cliprect);
393392   return 0;
394393}
395394
trunk/src/mess/video/pc1350.c
r17967r17968
129129#define DOWN 45
130130#define RIGHT 76
131131
132SCREEN_UPDATE_IND16( pc1350 )
132UINT32 pc1350_state::screen_update_pc1350(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
133133{
134   pc1350_state *state = screen.machine().driver_data<pc1350_state>();   /* The contrast colours need some work done - select contrast level 7 for now */
135134   int x, y=DOWN, i, j, k=0, b;
136135   int color[4];
137136   running_machine &machine = screen.machine();
r17967r17968
148147      for (x=RIGHT, i=pc1350_addr[k]; i<0xa00; i+=0x200)
149148         for (j=0; j<=0x1d; j++, x+=2)
150149            for (b = 0; b < 8; b++)
151               bitmap.plot_box(x, y + b * 2, 2, 2, color[(state->m_reg[j+i] >> b) & 1]);
150               bitmap.plot_box(x, y + b * 2, 2, 2, color[(m_reg[j+i] >> b) & 1]);
152151
153152
154153   /* 783c: 0 SHIFT 1 DEF 4 RUN 5 PRO 6 JAPAN 7 SML */
155154   /* I don't know how they really look like in the lcd */
156155   pocketc_draw_special(bitmap, RIGHT-30, DOWN+45, shift,
157                  state->m_reg[0x83c] & 0x01 ? color[2] : color[3]);
156                  m_reg[0x83c] & 0x01 ? color[2] : color[3]);
158157   pocketc_draw_special(bitmap, RIGHT-30, DOWN+55, def,
159                  state->m_reg[0x83c] & 0x02 ? color[2] : color[3]);
158                  m_reg[0x83c] & 0x02 ? color[2] : color[3]);
160159   pocketc_draw_special(bitmap, RIGHT-30, DOWN+5, run,
161                  state->m_reg[0x83c] & 0x10 ? color[2] : color[3]);
160                  m_reg[0x83c] & 0x10 ? color[2] : color[3]);
162161   pocketc_draw_special(bitmap, RIGHT-30, DOWN+15, pro,
163                  state->m_reg[0x83c] & 0x20 ? color[2] : color[3]);
162                  m_reg[0x83c] & 0x20 ? color[2] : color[3]);
164163   pocketc_draw_special(bitmap, RIGHT-30, DOWN+25, japan,
165                  state->m_reg[0x83c] & 0x40 ? color[2] : color[3]);
164                  m_reg[0x83c] & 0x40 ? color[2] : color[3]);
166165   pocketc_draw_special(bitmap, RIGHT-30, DOWN+35, sml,
167                  state->m_reg[0x83c] & 0x80 ? color[2] : color[3]);
166                  m_reg[0x83c] & 0x80 ? color[2] : color[3]);
168167
169168   return 0;
170169}
trunk/src/mess/video/nes.c
r17967r17968
3737
3838***************************************************************************/
3939
40SCREEN_UPDATE_IND16( nes )
40UINT32 nes_state::screen_update_nes(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
4141{
42   nes_state *state = screen.machine().driver_data<nes_state>();
4342
4443   /* render the ppu */
45   state->m_ppu->render(bitmap, 0, 0, 0, 0);
44   m_ppu->render(bitmap, 0, 0, 0, 0);
4645
4746   /* if this is a disk system game, check for the flip-disk key */
48   if (state->m_disk_expansion && state->m_pcb_id == NO_BOARD)
47   if (m_disk_expansion && m_pcb_id == NO_BOARD)
4948   {
5049      // latch this input so it doesn't go at warp speed
51      if ((screen.machine().root_device().ioport("FLIPDISK")->read() & 0x01) && (!state->m_last_frame_flip))
50      if ((screen.machine().root_device().ioport("FLIPDISK")->read() & 0x01) && (!m_last_frame_flip))
5251      {
53         state->m_last_frame_flip = 1;
54         state->m_fds_current_side++;
55         if (state->m_fds_current_side > state->m_fds_sides)
56            state->m_fds_current_side = 0;
52         m_last_frame_flip = 1;
53         m_fds_current_side++;
54         if (m_fds_current_side > m_fds_sides)
55            m_fds_current_side = 0;
5756
58         if (state->m_fds_current_side == 0)
57         if (m_fds_current_side == 0)
5958            popmessage("No disk inserted.");
6059         else
61            popmessage("Disk set to side %d", state->m_fds_current_side);
60            popmessage("Disk set to side %d", m_fds_current_side);
6261      }
6362
6463      if (!(screen.machine().root_device().ioport("FLIPDISK")->read() & 0x01))
65         state->m_last_frame_flip = 0;
64         m_last_frame_flip = 0;
6665   }
6766   return 0;
6867}
trunk/src/mess/video/pcw16.c
r17967r17968
154154  Do NOT call osd_update_display() from this function,
155155  it will be called by the main emulation engine.
156156***************************************************************************/
157SCREEN_UPDATE_IND16( pcw16 )
157UINT32 pcw16_state::screen_update_pcw16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
158158{
159   pcw16_state *state = screen.machine().driver_data<pcw16_state>();
160159   UINT8 *ram = screen.machine().device<ram_device>(RAM_TAG)->pointer();
161160   unsigned char *pScanLine = (unsigned char *)ram + 0x0fc00;   //0x03c00;  //0x020FC00;
162161
r17967r17968
165164
166165   int border_colour;
167166
168   border_colour = state->m_video_control & 31;
167   border_colour = m_video_control & 31;
169168
170169   /* reverse video? */
171   if (state->m_video_control & (1<<7))
170   if (m_video_control & (1<<7))
172171   {
173172      /* colour 0 and colour 1 need to be inverted? - what happens in mode 1 and 2 - ignored? or is bit 1 toggled,
174173        or is whole lot toggled? */
175174
176175      /* force border to be colour 1 */
177      border_colour = state->m_colour_palette[1];
176      border_colour = m_colour_palette[1];
178177   }
179178
180   if ((state->m_video_control & (1<<6))==0)
179   if ((m_video_control & (1<<6))==0)
181180   {
182181      /* blank */
183182      rectangle rect(0, PCW16_SCREEN_WIDTH, 0, PCW16_SCREEN_HEIGHT);
r17967r17968
234233            {
235234               case 0:
236235               {
237                  pcw16_vh_decode_mode0(state, bitmap, x, y+PCW16_BORDER_HEIGHT, byte);
236                  pcw16_vh_decode_mode0(this, bitmap, x, y+PCW16_BORDER_HEIGHT, byte);
238237               }
239238               break;
240239
241240               case 1:
242241               {
243                  pcw16_vh_decode_mode1(state, bitmap, x, y+PCW16_BORDER_HEIGHT, byte);
242                  pcw16_vh_decode_mode1(this, bitmap, x, y+PCW16_BORDER_HEIGHT, byte);
244243               }
245244               break;
246245
247246               case 3:
248247               case 2:
249248               {
250                  pcw16_vh_decode_mode2(state, bitmap, x, y+PCW16_BORDER_HEIGHT, byte);
249                  pcw16_vh_decode_mode2(this, bitmap, x, y+PCW16_BORDER_HEIGHT, byte);
251250               }
252251               break;
253252            }
trunk/src/mess/video/epnick.c
r17967r17968
10341034}
10351035
10361036
1037SCREEN_UPDATE_IND16( epnick )
1037UINT32 ep_state::screen_update_epnick(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
10381038{
1039   ep_state *state = screen.machine().driver_data<ep_state>();
1040   Nick_DoScreen(state->nick,state->m_bitmap);
1041   copybitmap(bitmap, state->m_bitmap, 0, 0, 0, 0, cliprect);
1039   Nick_DoScreen(nick,m_bitmap);
1040   copybitmap(bitmap, m_bitmap, 0, 0, 0, 0, cliprect);
10421041   return 0;
10431042}
trunk/src/mess/video/radio86.c
r17967r17968
107107   }
108108}
109109
110SCREEN_UPDATE_IND16( radio86 )
110UINT32 radio86_state::screen_update_radio86(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
111111{
112   radio86_state *state = screen.machine().driver_data<radio86_state>();
113112   device_t *devconf = screen.machine().device("i8275");
114113   i8275_update( devconf, bitmap, cliprect);
115   copybitmap(bitmap, state->m_bitmap, 0, 0, 0, 0, cliprect);
114   copybitmap(bitmap, m_bitmap, 0, 0, 0, 0, cliprect);
116115   return 0;
117116}
118117
trunk/src/mess/video/mz700.c
r17967r17968
4646}
4747
4848
49SCREEN_UPDATE_IND16( mz700 )
49UINT32 mz_state::screen_update_mz700(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
5050{
51   mz_state *state = screen.machine().driver_data<mz_state>();
52   UINT8 *videoram = state->m_videoram;
51   UINT8 *videoram = m_videoram;
5352   int offs;
54   mz_state *mz = screen.machine().driver_data<mz_state>();
5553
5654   bitmap.fill(get_black_pen(screen.machine()), cliprect);
5755
r17967r17968
6260      sy = (offs / 40) * 8;
6361      sx = (offs % 40) * 8;
6462
65      color = mz->m_colorram[offs];
63      color = m_colorram[offs];
6664      code = videoram[offs] | (color & 0x80) << 1;
6765
6866      drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], code, color, 0, 0, sx, sy);
r17967r17968
8179   machine().gfx[0]->set_source(m_cgram);
8280}
8381
84SCREEN_UPDATE_IND16( mz800 )
82UINT32 mz_state::screen_update_mz800(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
8583{
86   mz_state *state = screen.machine().driver_data<mz_state>();
87   UINT8 *videoram = state->m_videoram;
88   mz_state *mz = screen.machine().driver_data<mz_state>();
84   UINT8 *videoram = m_videoram;
8985
9086   bitmap.fill(get_black_pen(screen.machine()), cliprect);
9187
92   if (mz->m_mz700_mode)
93      return SCREEN_UPDATE16_CALL(mz700);
88   if (m_mz700_mode)
89      return SCREEN_UPDATE16_CALL_MEMBER(mz700);
9490   else
9591   {
96      if (mz->m_hires_mode)
92      if (m_hires_mode)
9793      {
9894
9995      }
trunk/src/mess/video/b2m.c
r17967r17968
1515{
1616}
1717
18SCREEN_UPDATE_IND16( b2m )
18UINT32 b2m_state::screen_update_b2m(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
1919{
20   b2m_state *state = screen.machine().driver_data<b2m_state>();
2120   UINT8 code1;
2221   UINT8 code2;
2322   UINT8 col;
r17967r17968
2827   {
2928      for (y = 0; y < 256; y++)
3029      {
31         if (state->m_b2m_video_page==0) {
32            code1 = ram[0x11000 + x*256 + ((y + state->m_b2m_video_scroll) & 0xff)];
33            code2 = ram[0x15000 + x*256 + ((y + state->m_b2m_video_scroll) & 0xff)];
30         if (m_b2m_video_page==0) {
31            code1 = ram[0x11000 + x*256 + ((y + m_b2m_video_scroll) & 0xff)];
32            code2 = ram[0x15000 + x*256 + ((y + m_b2m_video_scroll) & 0xff)];
3433         } else {
35            code1 = ram[0x19000 + x*256 + ((y + state->m_b2m_video_scroll) & 0xff)];
36            code2 = ram[0x1d000 + x*256 + ((y + state->m_b2m_video_scroll) & 0xff)];
34            code1 = ram[0x19000 + x*256 + ((y + m_b2m_video_scroll) & 0xff)];
35            code2 = ram[0x1d000 + x*256 + ((y + m_b2m_video_scroll) & 0xff)];
3736         }
3837         for (b = 7; b >= 0; b--)
3938         {
trunk/src/mess/video/arcadia.c
r17967r17968
673673   return m_line>=216 ? 0x80 : 0 ;
674674}
675675
676SCREEN_UPDATE_IND16( arcadia )
676UINT32 arcadia_state::screen_update_arcadia(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
677677{
678   arcadia_state *state = screen.machine().driver_data<arcadia_state>();
679   copybitmap(bitmap, *state->m_bitmap, 0, 0, 0, 0, cliprect);
678   copybitmap(bitmap, *m_bitmap, 0, 0, 0, 0, cliprect);
680679   return 0;
681680}
trunk/src/mess/video/aquarius.c
r17967r17968
9393   m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(aquarius_state::aquarius_gettileinfo),this), TILEMAP_SCAN_ROWS, 8, 8, 40, 25);
9494}
9595
96SCREEN_UPDATE_IND16( aquarius )
96UINT32 aquarius_state::screen_update_aquarius(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
9797{
98   aquarius_state *state = screen.machine().driver_data<aquarius_state>();
99   state->m_tilemap->draw(bitmap, cliprect, 0, 0);
98   m_tilemap->draw(bitmap, cliprect, 0, 0);
10099
101100   return 0;
102101}
trunk/src/mess/video/cgenie.c
r17967r17968
410410/***************************************************************************
411411  Draw the game screen in the given bitmap_ind16.
412412***************************************************************************/
413SCREEN_UPDATE_IND16( cgenie )
413UINT32 cgenie_state::screen_update_cgenie(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
414414{
415   cgenie_state *state = screen.machine().driver_data<cgenie_state>();
416    if( state->m_tv_mode )
415    if( m_tv_mode )
417416      cgenie_refresh_tv_set(screen.machine(), bitmap, cliprect);
418417   else
419418      cgenie_refresh_monitor(screen.machine(), bitmap, cliprect);
trunk/src/mess/video/x68k.c
r17967r17968
11601160//  m_scanline_timer->adjust(attotime::zero, 0, attotime::from_hz(55.45)/568);
11611161}
11621162
1163SCREEN_UPDATE_IND16( x68000 )
1163UINT32 x68k_state::screen_update_x68000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
11641164{
1165   x68k_state *state = screen.machine().driver_data<x68k_state>();
11661165   rectangle rect(0,0,0,0);
11671166   int priority;
11681167   int xscr,yscr;
r17967r17968
11711170   tilemap_t* x68k_bg1;
11721171   //UINT8 *rom;
11731172
1174   if((state->m_spritereg[0x408] & 0x03) == 0x00)  // Sprite/BG H-Res 0=8x8, 1=16x16, 2 or 3 = undefined.
1173   if((m_spritereg[0x408] & 0x03) == 0x00)  // Sprite/BG H-Res 0=8x8, 1=16x16, 2 or 3 = undefined.
11751174   {
1176      x68k_bg0 = state->m_bg0_8;
1177      x68k_bg1 = state->m_bg1_8;
1175      x68k_bg0 = m_bg0_8;
1176      x68k_bg1 = m_bg1_8;
11781177   }
11791178   else
11801179   {
1181      x68k_bg0 = state->m_bg0_16;
1182      x68k_bg1 = state->m_bg1_16;
1180      x68k_bg0 = m_bg0_16;
1181      x68k_bg1 = m_bg1_16;
11831182   }
1184//  rect.max_x=state->m_crtc.width;
1185//  rect.max_y=state->m_crtc.height;
1183//  rect.max_x=m_crtc.width;
1184//  rect.max_y=m_crtc.height;
11861185   bitmap.fill(0, cliprect);
11871186
1188   if(state->m_sysport.contrast == 0)  // if monitor contrast is 0, then don't bother displaying anything
1187   if(m_sysport.contrast == 0)  // if monitor contrast is 0, then don't bother displaying anything
11891188      return 0;
11901189
1191   rect.min_x=state->m_crtc.hbegin;
1192   rect.min_y=state->m_crtc.vbegin;
1193//  rect.max_x=rect.min_x + state->m_crtc.visible_width-1;
1194//  rect.max_y=rect.min_y + state->m_crtc.visible_height-1;
1195   rect.max_x=state->m_crtc.hend;
1196   rect.max_y=state->m_crtc.vend;
1190   rect.min_x=m_crtc.hbegin;
1191   rect.min_y=m_crtc.vbegin;
1192//  rect.max_x=rect.min_x + m_crtc.visible_width-1;
1193//  rect.max_y=rect.min_y + m_crtc.visible_height-1;
1194   rect.max_x=m_crtc.hend;
1195   rect.max_y=m_crtc.vend;
11971196
11981197   if(rect.min_y < cliprect.min_y)
11991198      rect.min_y = cliprect.min_y;
r17967r17968
12041203   //rom = screen.machine().root_device().memregion("user1")->base();
12051204   for(x=0;x<256;x++)
12061205   {
1207      if(state->m_video.tile16_dirty[x] != 0)
1206      if(m_video.tile16_dirty[x] != 0)
12081207      {
12091208         screen.machine().gfx[1]->mark_dirty(x);
1210         state->m_video.tile16_dirty[x] = 0;
1209         m_video.tile16_dirty[x] = 0;
12111210      }
1212      if(state->m_video.tile8_dirty[x] != 0)
1211      if(m_video.tile8_dirty[x] != 0)
12131212      {
12141213         screen.machine().gfx[0]->mark_dirty(x);
1215         state->m_video.tile8_dirty[x] = 0;
1214         m_video.tile8_dirty[x] = 0;
12161215      }
12171216   }
12181217
12191218   for(priority=3;priority>=0;priority--)
12201219   {
12211220      // Graphics screen(s)
1222      if(priority == state->m_video.gfx_pri)
1221      if(priority == m_video.gfx_pri)
12231222         x68k_draw_gfx(screen.machine(),bitmap,rect);
12241223
12251224      // Sprite / BG Tiles
1226      if(priority == state->m_video.sprite_pri /*&& (state->m_spritereg[0x404] & 0x0200)*/ && (state->m_video.reg[2] & 0x0040))
1225      if(priority == m_video.sprite_pri /*&& (m_spritereg[0x404] & 0x0200)*/ && (m_video.reg[2] & 0x0040))
12271226      {
12281227         x68k_draw_sprites(screen.machine(), bitmap,1,rect);
1229         if((state->m_spritereg[0x404] & 0x0008))
1228         if((m_spritereg[0x404] & 0x0008))
12301229         {
1231            if((state->m_spritereg[0x404] & 0x0030) == 0x10)  // BG1 TXSEL
1230            if((m_spritereg[0x404] & 0x0030) == 0x10)  // BG1 TXSEL
12321231            {
1233               x68k_bg0->set_scrollx(0,(state->m_spritereg[0x402] - state->m_crtc.hbegin - state->m_crtc.bg_hshift) & 0x3ff);
1234               x68k_bg0->set_scrolly(0,(state->m_spritereg[0x403] - state->m_crtc.vbegin) & 0x3ff);
1232               x68k_bg0->set_scrollx(0,(m_spritereg[0x402] - m_crtc.hbegin - m_crtc.bg_hshift) & 0x3ff);
1233               x68k_bg0->set_scrolly(0,(m_spritereg[0x403] - m_crtc.vbegin) & 0x3ff);
12351234               x68k_bg0->draw(bitmap,rect,0,0);
12361235            }
12371236            else
12381237            {
1239               x68k_bg1->set_scrollx(0,(state->m_spritereg[0x402] - state->m_crtc.hbegin - state->m_crtc.bg_hshift) & 0x3ff);
1240               x68k_bg1->set_scrolly(0,(state->m_spritereg[0x403] - state->m_crtc.vbegin) & 0x3ff);
1238               x68k_bg1->set_scrollx(0,(m_spritereg[0x402] - m_crtc.hbegin - m_crtc.bg_hshift) & 0x3ff);
1239               x68k_bg1->set_scrolly(0,(m_spritereg[0x403] - m_crtc.vbegin) & 0x3ff);
12411240               x68k_bg1->draw(bitmap,rect,0,0);
12421241            }
12431242         }
12441243         x68k_draw_sprites(screen.machine(),bitmap,2,rect);
1245         if((state->m_spritereg[0x404] & 0x0001))
1244         if((m_spritereg[0x404] & 0x0001))
12461245         {
1247            if((state->m_spritereg[0x404] & 0x0006) == 0x02)  // BG0 TXSEL
1246            if((m_spritereg[0x404] & 0x0006) == 0x02)  // BG0 TXSEL
12481247            {
1249               x68k_bg0->set_scrollx(0,(state->m_spritereg[0x400] - state->m_crtc.hbegin - state->m_crtc.bg_hshift) & 0x3ff);
1250               x68k_bg0->set_scrolly(0,(state->m_spritereg[0x401] - state->m_crtc.vbegin) & 0x3ff);
1248               x68k_bg0->set_scrollx(0,(m_spritereg[0x400] - m_crtc.hbegin - m_crtc.bg_hshift) & 0x3ff);
1249               x68k_bg0->set_scrolly(0,(m_spritereg[0x401] - m_crtc.vbegin) & 0x3ff);
12511250               x68k_bg0->draw(bitmap,rect,0,0);
12521251            }
12531252            else
12541253            {
1255               x68k_bg1->set_scrollx(0,(state->m_spritereg[0x400] - state->m_crtc.hbegin - state->m_crtc.bg_hshift) & 0x3ff);
1256               x68k_bg1->set_scrolly(0,(state->m_spritereg[0x401] - state->m_crtc.vbegin) & 0x3ff);
1254               x68k_bg1->set_scrollx(0,(m_spritereg[0x400] - m_crtc.hbegin - m_crtc.bg_hshift) & 0x3ff);
1255               x68k_bg1->set_scrolly(0,(m_spritereg[0x401] - m_crtc.vbegin) & 0x3ff);
12571256               x68k_bg1->draw(bitmap,rect,0,0);
12581257            }
12591258         }
r17967r17968
12611260      }
12621261
12631262      // Text screen
1264      if(state->m_video.reg[2] & 0x0020 && priority == state->m_video.text_pri)
1263      if(m_video.reg[2] & 0x0020 && priority == m_video.text_pri)
12651264      {
1266         xscr = (state->m_crtc.reg[10] & 0x3ff);
1267         yscr = (state->m_crtc.reg[11] & 0x3ff);
1268         if(!(state->m_crtc.reg[20] & 0x1000))  // if text layer is set to buffer, then it's not visible
1265         xscr = (m_crtc.reg[10] & 0x3ff);
1266         yscr = (m_crtc.reg[11] & 0x3ff);
1267         if(!(m_crtc.reg[20] & 0x1000))  // if text layer is set to buffer, then it's not visible
12691268            x68k_draw_text(screen.machine(),bitmap,xscr,yscr,rect);
12701269      }
12711270   }
r17967r17968
12731272#ifdef MAME_DEBUG
12741273   if(screen.machine().input().code_pressed(KEYCODE_I))
12751274   {
1276      state->m_mfp.isra = 0;
1277      state->m_mfp.isrb = 0;
1275      m_mfp.isra = 0;
1276      m_mfp.isrb = 0;
12781277//      mfp_trigger_irq(MFP_IRQ_GPIP6);
1279//      machine.device("maincpu")->execute().set_input_line_and_vector(6,ASSERT_LINE,0x43);
1278//      machine().device("maincpu")->execute().set_input_line_and_vector(6,ASSERT_LINE,0x43);
12801279   }
12811280   if(screen.machine().input().code_pressed(KEYCODE_9))
12821281   {
1283      state->m_sprite_shift--;
1284      popmessage("Sprite shift = %i",state->m_sprite_shift);
1282      m_sprite_shift--;
1283      popmessage("Sprite shift = %i",m_sprite_shift);
12851284   }
12861285   if(screen.machine().input().code_pressed(KEYCODE_0))
12871286   {
1288      state->m_sprite_shift++;
1289      popmessage("Sprite shift = %i",state->m_sprite_shift);
1287      m_sprite_shift++;
1288      popmessage("Sprite shift = %i",m_sprite_shift);
12901289   }
12911290
12921291#endif
12931292
12941293#ifdef MAME_DEBUG
1295//  popmessage("Layer priorities [%04x] - Txt: %i  Spr: %i  Gfx: %i  Layer Pri0-3: %i %i %i %i",state->m_video.reg[1],state->m_video.text_pri,state->m_video.sprite_pri,
1296//      state->m_video.gfx_pri,state->m_video.gfxlayer_pri[0],state->m_video.gfxlayer_pri[1],state->m_video.gfxlayer_pri[2],state->m_video.gfxlayer_pri[3]);
1297//  popmessage("CRTC regs - %i %i %i %i  - %i %i %i %i - %i - %i",state->m_crtc.reg[0],state->m_crtc.reg[1],state->m_crtc.reg[2],state->m_crtc.reg[3],
1298//      state->m_crtc.reg[4],state->m_crtc.reg[5],state->m_crtc.reg[6],state->m_crtc.reg[7],state->m_crtc.reg[8],state->m_crtc.reg[9]);
1299//  popmessage("Visible resolution = %ix%i (%s) Screen size = %ix%i",state->m_crtc.visible_width,state->m_crtc.visible_height,state->m_crtc.interlace ? "Interlaced" : "Non-interlaced",state->m_crtc.video_width,state->m_crtc.video_height);
1300//  popmessage("VBlank : scanline = %i",state->m_scanline);
1301//  popmessage("CRTC/BG compare H-TOTAL %i/%i H-DISP %i/%i V-DISP %i/%i BG Res %02x",state->m_crtc.reg[0],state->m_spritereg[0x405],state->m_crtc.reg[2],state->m_spritereg[0x406],
1302//      state->m_crtc.reg[6],state->m_spritereg[0x407],state->m_spritereg[0x408]);
1303//  popmessage("IER %02x %02x  IPR %02x %02x  ISR %02x %02x  IMR %02x %02x", state->m_mfp.iera,state->m_mfp.ierb,state->m_mfp.ipra,state->m_mfp.iprb,
1304//      state->m_mfp.isra,state->m_mfp.isrb,state->m_mfp.imra,state->m_mfp.imrb);
1305//  popmessage("BG Scroll - BG0 X %i Y %i  BG1 X %i Y %i",state->m_spriteram[0x400],state->m_spriteram[0x401],state->m_spriteram[0x402],state->m_spriteram[0x403]);
1306//  popmessage("Keyboard buffer position = %i",state->m_keyboard.headpos);
1307//  popmessage("IERA = 0x%02x, IERB = 0x%02x",state->m_mfp.iera,state->m_mfp.ierb);
1308//  popmessage("IPRA = 0x%02x, IPRB = 0x%02x",state->m_mfp.ipra,state->m_mfp.iprb);
1309//  popmessage("uPD72065 status = %02x",upd765_status_r(machine, space, 0));
1310//  popmessage("Layer enable - 0x%02x",state->m_video.reg[2] & 0xff);
1294//  popmessage("Layer priorities [%04x] - Txt: %i  Spr: %i  Gfx: %i  Layer Pri0-3: %i %i %i %i",m_video.reg[1],m_video.text_pri,m_video.sprite_pri,
1295//      m_video.gfx_pri,m_video.gfxlayer_pri[0],m_video.gfxlayer_pri[1],m_video.gfxlayer_pri[2],m_video.gfxlayer_pri[3]);
1296//  popmessage("CRTC regs - %i %i %i %i  - %i %i %i %i - %i - %i",m_crtc.reg[0],m_crtc.reg[1],m_crtc.reg[2],m_crtc.reg[3],
1297//      m_crtc.reg[4],m_crtc.reg[5],m_crtc.reg[6],m_crtc.reg[7],m_crtc.reg[8],m_crtc.reg[9]);
1298//  popmessage("Visible resolution = %ix%i (%s) Screen size = %ix%i",m_crtc.visible_width,m_crtc.visible_height,m_crtc.interlace ? "Interlaced" : "Non-interlaced",m_crtc.video_width,m_crtc.video_height);
1299//  popmessage("VBlank : scanline = %i",m_scanline);
1300//  popmessage("CRTC/BG compare H-TOTAL %i/%i H-DISP %i/%i V-DISP %i/%i BG Res %02x",m_crtc.reg[0],m_spritereg[0x405],m_crtc.reg[2],m_spritereg[0x406],
1301//      m_crtc.reg[6],m_spritereg[0x407],m_spritereg[0x408]);
1302//  popmessage("IER %02x %02x  IPR %02x %02x  ISR %02x %02x  IMR %02x %02x", m_mfp.iera,m_mfp.ierb,m_mfp.ipra,m_mfp.iprb,
1303//      m_mfp.isra,m_mfp.isrb,m_mfp.imra,m_mfp.imrb);
1304//  popmessage("BG Scroll - BG0 X %i Y %i  BG1 X %i Y %i",m_spriteram[0x400],m_spriteram[0x401],m_spriteram[0x402],m_spriteram[0x403]);
1305//  popmessage("Keyboard buffer position = %i",m_keyboard.headpos);
1306//  popmessage("IERA = 0x%02x, IERB = 0x%02x",m_mfp.iera,m_mfp.ierb);
1307//  popmessage("IPRA = 0x%02x, IPRB = 0x%02x",m_mfp.ipra,m_mfp.iprb);
1308//  popmessage("uPD72065 status = %02x",upd765_status_r(machine(), space, 0));
1309//  popmessage("Layer enable - 0x%02x",m_video.reg[2] & 0xff);
13111310//  popmessage("Graphic layer scroll - %i, %i - %i, %i - %i, %i - %i, %i",
1312//      state->m_crtc.reg[12],state->m_crtc.reg[13],state->m_crtc.reg[14],state->m_crtc.reg[15],state->m_crtc.reg[16],state->m_crtc.reg[17],state->m_crtc.reg[18],state->m_crtc.reg[19]);
1313//  popmessage("IOC IRQ status - %02x",state->m_ioc.irqstatus);
1314//  popmessage("RAM: mouse data - %02x %02x %02x %02x",machine.device<ram_device>(RAM_TAG)->pointer()[0x931],machine.device<ram_device>(RAM_TAG)->pointer()[0x930],machine.device<ram_device>(RAM_TAG)->pointer()[0x933],machine.device<ram_device>(RAM_TAG)->pointer()[0x932]);
1311//      m_crtc.reg[12],m_crtc.reg[13],m_crtc.reg[14],m_crtc.reg[15],m_crtc.reg[16],m_crtc.reg[17],m_crtc.reg[18],m_crtc.reg[19]);
1312//  popmessage("IOC IRQ status - %02x",m_ioc.irqstatus);
1313//  popmessage("RAM: mouse data - %02x %02x %02x %02x",machine().device<ram_device>(RAM_TAG)->pointer()[0x931],machine().device<ram_device>(RAM_TAG)->pointer()[0x930],machine().device<ram_device>(RAM_TAG)->pointer()[0x933],machine().device<ram_device>(RAM_TAG)->pointer()[0x932]);
13151314#endif
13161315   return 0;
13171316}
trunk/src/mess/video/kramermc.c
r17967r17968
2727{
2828}
2929
30SCREEN_UPDATE_IND16( kramermc )
30UINT32 kramermc_state::screen_update_kramermc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
3131{
3232   int x,y;
3333   address_space &space = *screen.machine().device("maincpu")->memory().space(AS_PROGRAM);
trunk/src/mess/video/spectrum.c
r17967r17968
5757
5858/* Code to change the FLASH status every 25 frames. Note this must be
5959   independent of frame skip etc. */
60SCREEN_VBLANK( spectrum )
60void spectrum_state::screen_eof_spectrum(screen_device &screen, bool state)
6161{
6262   // rising edge
63   if (vblank_on)
63   if (state)
6464   {
65      spectrum_state *state = screen.machine().driver_data<spectrum_state>();
6665      EVENT_LIST_ITEM *pItem;
6766      int NumItems;
6867
69      state->m_frame_number++;
70      if (state->m_frame_number >= state->m_frame_invert_count)
68      m_frame_number++;
69      if (m_frame_number >= m_frame_invert_count)
7170      {
72         state->m_frame_number = 0;
73         state->m_flash_invert = !state->m_flash_invert;
71         m_frame_number = 0;
72         m_flash_invert = !m_flash_invert;
7473      }
7574
7675      /* Empty event buffer for undisplayed frames noting the last border
r17967r17968
117116   bitmap.pix16(y, x) = (UINT16)color;
118117}
119118
120SCREEN_UPDATE_IND16( spectrum )
119UINT32 spectrum_state::screen_update_spectrum(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
121120{
122121   /* for now do a full-refresh */
123   spectrum_state *state = screen.machine().driver_data<spectrum_state>();
124122   int x, y, b, scrx, scry;
125123   unsigned short ink, pap;
126124   unsigned char *attr, *scr;
127125      int full_refresh = 1;
128126
129   scr=state->m_screen_location;
127   scr=m_screen_location;
130128
131129   for (y=0; y<192; y++)
132130   {
133131      scrx=SPEC_LEFT_BORDER;
134132      scry=((y&7) * 8) + ((y&0x38)>>3) + (y&0xC0);
135      attr=state->m_screen_location + ((scry>>3)*32) + 0x1800;
133      attr=m_screen_location + ((scry>>3)*32) + 0x1800;
136134
137135      for (x=0;x<32;x++)
138136      {
139137         /* Get ink and paper colour with bright */
140         if (state->m_flash_invert && (*attr & 0x80))
138         if (m_flash_invert && (*attr & 0x80))
141139         {
142140            ink=((*attr)>>3) & 0x0f;
143141            pap=((*attr) & 0x07) + (((*attr)>>3) & 0x08);
r17967r17968
165163      SPEC_TOP_BORDER, SPEC_DISPLAY_YSIZE, SPEC_BOTTOM_BORDER,
166164      SPEC_LEFT_BORDER, SPEC_DISPLAY_XSIZE, SPEC_RIGHT_BORDER,
167165      SPEC_LEFT_BORDER_CYCLES, SPEC_DISPLAY_XSIZE_CYCLES,
168      SPEC_RIGHT_BORDER_CYCLES, state->m_retrace_cycles, 200, 0xfe);
166      SPEC_RIGHT_BORDER_CYCLES, m_retrace_cycles, 200, 0xfe);
169167   return 0;
170168}
171169
trunk/src/mess/video/ondra.c
r17967r17968
1818   m_video_enable = 0;
1919}
2020
21SCREEN_UPDATE_IND16( ondra )
21UINT32 ondra_state::screen_update_ondra(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
2222{
23   ondra_state *state = screen.machine().driver_data<ondra_state>();
2423   UINT8 code1,code2;
2524   int y, x, b;
2625   int Vaddr = 0x2800;
2726
28   if (state->m_video_enable==1) {
27   if (m_video_enable==1) {
2928      for (x = 0; x < 40; x++)
3029      {
3130         for (y = 127; y >=0; y--)
trunk/src/mess/video/kaypro.c
r17967r17968
1616   palette_set_color(machine(), 2, MAKE_RGB(0, 110, 0)); /* low intensity green */
1717}
1818
19SCREEN_UPDATE_IND16( kayproii )
19UINT32 kaypro_state::screen_update_kayproii(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
2020{
21   kaypro_state *state = screen.machine().driver_data<kaypro_state>();
2221/* The display consists of 80 columns and 24 rows. Each row is allocated 128 bytes of ram,
2322    but only the first 80 are used. The total video ram therefore is 0x0c00 bytes.
2423    There is one video attribute: bit 7 causes blinking. The first half of the
r17967r17968
2928   UINT8 y,ra,chr,gfx;
3029   UINT16 sy=0,ma=0,x;
3130
32   state->m_framecnt++;
31   m_framecnt++;
3332
3433   for (y = 0; y < 24; y++)
3534   {
r17967r17968
4342
4443            if (ra < 8)
4544            {
46               chr = state->m_p_videoram[x]^0x80;
45               chr = m_p_videoram[x]^0x80;
4746
4847               /* Take care of flashing characters */
49               if ((chr < 0x80) && (state->m_framecnt & 0x08))
48               if ((chr < 0x80) && (m_framecnt & 0x08))
5049                  chr |= 0x80;
5150
5251               /* get pattern of pixels for that character scanline */
53               gfx = state->m_p_chargen[(chr<<3) | ra ];
52               gfx = m_p_chargen[(chr<<3) | ra ];
5453            }
5554
5655            /* Display a scanline of a character (7 pixels) */
r17967r17968
6867   return 0;
6968}
7069
71SCREEN_UPDATE_IND16( omni2 )
70UINT32 kaypro_state::screen_update_omni2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
7271{
73   kaypro_state *state = screen.machine().driver_data<kaypro_state>();
7472   UINT8 y,ra,chr,gfx;
7573   UINT16 sy=0,ma=0,x;
7674
77   state->m_framecnt++;
75   m_framecnt++;
7876
7977   for (y = 0; y < 24; y++)
8078   {
r17967r17968
8886
8987            if (ra < 8)
9088            {
91               chr = state->m_p_videoram[x];
89               chr = m_p_videoram[x];
9290
9391               /* Take care of flashing characters */
94               if ((chr > 0x7f) && (state->m_framecnt & 0x08))
92               if ((chr > 0x7f) && (m_framecnt & 0x08))
9593                  chr |= 0x80;
9694
9795               /* get pattern of pixels for that character scanline */
98               gfx = state->m_p_chargen[(chr<<3) | ra ];
96               gfx = m_p_chargen[(chr<<3) | ra ];
9997            }
10098
10199            /* Display a scanline of a character (7 pixels) */
r17967r17968
113111   return 0;
114112}
115113
116SCREEN_UPDATE_RGB32( kaypro2x )
114UINT32 kaypro_state::screen_update_kaypro2x(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
117115{
118   kaypro_state *state = screen.machine().driver_data<kaypro_state>();
119   state->m_framecnt++;
120   state->m_speed = state->m_mc6845_reg[10]&0x20;
121   state->m_flash = state->m_mc6845_reg[10]&0x40;            // cursor modes
122   state->m_cursor = (state->m_mc6845_reg[14]<<8) | state->m_mc6845_reg[15];               // get cursor position
123   state->m_crtc->screen_update(screen, bitmap, cliprect);
116   m_framecnt++;
117   m_speed = m_mc6845_reg[10]&0x20;
118   m_flash = m_mc6845_reg[10]&0x40;            // cursor modes
119   m_cursor = (m_mc6845_reg[14]<<8) | m_mc6845_reg[15];               // get cursor position
120   m_crtc->screen_update(screen, bitmap, cliprect);
124121   return 0;
125122}
126123
trunk/src/mess/video/super80.c
r17967r17968
7070
7171
7272
73SCREEN_VBLANK( super80m )
73void super80_state::screen_eof_super80m(screen_device &screen, bool state)
7474{
7575   // rising edge
76   if (vblank_on)
76   if (state)
7777   {
78      super80_state *state = screen.machine().driver_data<super80_state>();
7978      /* if we chose another palette or colour mode, enable it */
8079      UINT8 chosen_palette = (screen.machine().root_device().ioport("CONFIG")->read() & 0x60)>>5;            // read colour dipswitches
8180
82      if (chosen_palette != state->m_current_palette)                  // any changes?
81      if (chosen_palette != m_current_palette)                  // any changes?
8382      {
84         state->m_current_palette = chosen_palette;               // save new palette
85         if (!state->m_current_palette)
83         m_current_palette = chosen_palette;               // save new palette
84         if (!m_current_palette)
8685            palette_set_colors_rgb(screen.machine(), super80_comp_palette);      // composite colour
8786         else
8887            palette_set_colors_rgb(screen.machine(), super80_rgb_palette);      // rgb and b&w
r17967r17968
9089   }
9190}
9291
93SCREEN_UPDATE_IND16( super80 )
92UINT32 super80_state::screen_update_super80(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
9493{
95   super80_state *state = screen.machine().driver_data<super80_state>();
9694   UINT8 y,ra,chr=32,gfx,screen_on=0;
97   UINT16 sy=0,ma=state->m_vidpg,x;
98   UINT8 *RAM = state->memregion("maincpu")->base();
95   UINT16 sy=0,ma=m_vidpg,x;
96   UINT8 *RAM = memregion("maincpu")->base();
9997
100   output_set_value("cass_led",(state->m_shared & 0x20) ? 1 : 0);
98   output_set_value("cass_led",(m_shared & 0x20) ? 1 : 0);
10199
102   if ((state->m_shared & 4) || (!(screen.machine().root_device().ioport("CONFIG")->read() & 4)))   /* bit 2 of port F0 is high, OR user turned on config switch */
100   if ((m_shared & 4) || (!(screen.machine().root_device().ioport("CONFIG")->read() & 4)))   /* bit 2 of port F0 is high, OR user turned on config switch */
103101      screen_on++;
104102
105103   for (y = 0; y < 16; y++)
r17967r17968
114112               chr = RAM[ma | x] & 0x3f;
115113
116114            /* get pattern of pixels for that character scanline */
117            gfx = state->m_p_chargen[(chr<<4) | ((ra & 8) >> 3) | ((ra & 7) << 1)];
115            gfx = m_p_chargen[(chr<<4) | ((ra & 8) >> 3) | ((ra & 7) << 1)];
118116
119117            /* Display a scanline of a character */
120118            *p++ = BIT(gfx, 7);
r17967r17968
132130   return 0;
133131}
134132
135SCREEN_UPDATE_IND16( super80d )
133UINT32 super80_state::screen_update_super80d(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
136134{
137   super80_state *state = screen.machine().driver_data<super80_state>();
138135   UINT8 y,ra,chr=32,gfx,screen_on=0;
139   UINT16 sy=0,ma=state->m_vidpg,x;
140   UINT8 *RAM = state->memregion("maincpu")->base();
136   UINT16 sy=0,ma=m_vidpg,x;
137   UINT8 *RAM = memregion("maincpu")->base();
141138
142   output_set_value("cass_led",(state->m_shared & 0x20) ? 1 : 0);
139   output_set_value("cass_led",(m_shared & 0x20) ? 1 : 0);
143140
144   if ((state->m_shared & 4) || (!(screen.machine().root_device().ioport("CONFIG")->read() & 4)))   /* bit 2 of port F0 is high, OR user turned on config switch */
141   if ((m_shared & 4) || (!(screen.machine().root_device().ioport("CONFIG")->read() & 4)))   /* bit 2 of port F0 is high, OR user turned on config switch */
145142      screen_on++;
146143
147144   for (y = 0; y < 16; y++)
r17967r17968
156153               chr = RAM[ma | x];
157154
158155            /* get pattern of pixels for that character scanline */
159            gfx = state->m_p_chargen[((chr & 0x7f)<<4) | ((ra & 8) >> 3) | ((ra & 7) << 1)] ^ ((chr & 0x80) ? 0xff : 0);
156            gfx = m_p_chargen[((chr & 0x7f)<<4) | ((ra & 8) >> 3) | ((ra & 7) << 1)] ^ ((chr & 0x80) ? 0xff : 0);
160157
161158            /* Display a scanline of a character */
162159            *p++ = BIT(gfx, 7);
r17967r17968
174171   return 0;
175172}
176173
177SCREEN_UPDATE_IND16( super80e )
174UINT32 super80_state::screen_update_super80e(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
178175{
179   super80_state *state = screen.machine().driver_data<super80_state>();
180176   UINT8 y,ra,chr=32,gfx,screen_on=0;
181   UINT16 sy=0,ma=state->m_vidpg,x;
182   UINT8 *RAM = state->memregion("maincpu")->base();
177   UINT16 sy=0,ma=m_vidpg,x;
178   UINT8 *RAM = memregion("maincpu")->base();
183179
184   output_set_value("cass_led",(state->m_shared & 0x20) ? 1 : 0);
180   output_set_value("cass_led",(m_shared & 0x20) ? 1 : 0);
185181
186   if ((state->m_shared & 4) || (!(screen.machine().root_device().ioport("CONFIG")->read() & 4)))   /* bit 2 of port F0 is high, OR user turned on config switch */
182   if ((m_shared & 4) || (!(screen.machine().root_device().ioport("CONFIG")->read() & 4)))   /* bit 2 of port F0 is high, OR user turned on config switch */
187183      screen_on++;
188184
189185   for (y = 0; y < 16; y++)
r17967r17968
198194               chr = RAM[ma | x];
199195
200196            /* get pattern of pixels for that character scanline */
201            gfx = state->m_p_chargen[(chr<<4) | ((ra & 8) >> 3) | ((ra & 7) << 1)];
197            gfx = m_p_chargen[(chr<<4) | ((ra & 8) >> 3) | ((ra & 7) << 1)];
202198
203199            /* Display a scanline of a character */
204200            *p++ = BIT(gfx, 7);
r17967r17968
216212   return 0;
217213}
218214
219SCREEN_UPDATE_IND16( super80m )
215UINT32 super80_state::screen_update_super80m(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
220216{
221   super80_state *state = screen.machine().driver_data<super80_state>();
222217   UINT8 y,ra,chr=32,gfx,screen_on=0;
223   UINT16 sy=0,ma=state->m_vidpg,x;
218   UINT16 sy=0,ma=m_vidpg,x;
224219   UINT8 col, bg=0, fg=0, options=screen.machine().root_device().ioport("CONFIG")->read();
225   UINT8 *RAM = state->memregion("maincpu")->base();
220   UINT8 *RAM = memregion("maincpu")->base();
226221
227222   /* get selected character generator */
228   UINT8 cgen = state->m_current_charset ^ ((options & 0x10)>>4);   /* bit 0 of port F1 and cgen config switch */
223   UINT8 cgen = m_current_charset ^ ((options & 0x10)>>4);   /* bit 0 of port F1 and cgen config switch */
229224
230   output_set_value("cass_led",(state->m_shared & 0x20) ? 1 : 0);
225   output_set_value("cass_led",(m_shared & 0x20) ? 1 : 0);
231226
232   if ((state->m_shared & 4) || (!(options & 4)))   /* bit 2 of port F0 is high, OR user turned on config switch */
227   if ((m_shared & 4) || (!(options & 4)))   /* bit 2 of port F0 is high, OR user turned on config switch */
233228      screen_on++;
234229
235230   if (screen_on)
r17967r17968
260255
261256            /* get pattern of pixels for that character scanline */
262257            if (cgen)
263               gfx = state->m_p_chargen[(chr<<4) | ((ra & 8) >> 3) | ((ra & 7) << 1)];
258               gfx = m_p_chargen[(chr<<4) | ((ra & 8) >> 3) | ((ra & 7) << 1)];
264259            else
265               gfx = state->m_p_chargen[0x1000 | ((chr & 0x7f)<<4) | ((ra & 8) >> 3) | ((ra & 7) << 1)] ^ ((chr & 0x80) ? 0xff : 0);
260               gfx = m_p_chargen[0x1000 | ((chr & 0x7f)<<4) | ((ra & 8) >> 3) | ((ra & 7) << 1)] ^ ((chr & 0x80) ? 0xff : 0);
266261
267262            /* Display a scanline of a character */
268263            *p++ = BIT(gfx, 7) ? fg : bg;
r17967r17968
384379   m_p_colorram = memregion("colorram")->base();
385380}
386381
387SCREEN_UPDATE_RGB32( super80v )
382UINT32 super80_state::screen_update_super80v(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
388383{
389   super80_state *state = screen.machine().driver_data<super80_state>();
390   state->m_framecnt++;
391   state->m_speed = state->m_mc6845_reg[10]&0x20, state->m_flash = state->m_mc6845_reg[10]&0x40; // cursor modes
392   state->m_cursor = (state->m_mc6845_reg[14]<<8) | state->m_mc6845_reg[15]; // get cursor position
393   state->m_s_options=screen.machine().root_device().ioport("CONFIG")->read();
394   output_set_value("cass_led",(state->m_shared & 0x20) ? 1 : 0);
395   state->m_6845->screen_update(screen, bitmap, cliprect);
384   m_framecnt++;
385   m_speed = m_mc6845_reg[10]&0x20, m_flash = m_mc6845_reg[10]&0x40; // cursor modes
386   m_cursor = (m_mc6845_reg[14]<<8) | m_mc6845_reg[15]; // get cursor position
387   m_s_options=screen.machine().root_device().ioport("CONFIG")->read();
388   output_set_value("cass_led",(m_shared & 0x20) ? 1 : 0);
389   m_6845->screen_update(screen, bitmap, cliprect);
396390   return 0;
397391}
398392
trunk/src/mess/video/tx0.c
r17967r17968
4545}
4646
4747
48SCREEN_VBLANK( tx0 )
48void tx0_state::screen_eof_tx0(screen_device &screen, bool state)
4949{
5050   // rising edge
51   if (vblank_on)
51   if (state)
5252   {
53      tx0_state *state = screen.machine().driver_data<tx0_state>();
5453
55      crt_eof(state->m_crt);
54      crt_eof(m_crt);
5655   }
5756}
5857
r17967r17968
7473/*
7574    SCREEN_UPDATE_IND16( tx0 ): effectively redraw the screen
7675*/
77SCREEN_UPDATE_IND16( tx0 )
76UINT32 tx0_state::screen_update_tx0(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
7877{
79   tx0_state *state = screen.machine().driver_data<tx0_state>();
80   crt_update(state->m_crt, bitmap);
78   crt_update(m_crt, bitmap);
8179
82   tx0_draw_panel(screen.machine(), state->m_panel_bitmap);
83   copybitmap(bitmap, state->m_panel_bitmap, 0, 0, panel_window_offset_x, panel_window_offset_y, cliprect);
80   tx0_draw_panel(screen.machine(), m_panel_bitmap);
81   copybitmap(bitmap, m_panel_bitmap, 0, 0, panel_window_offset_x, panel_window_offset_y, cliprect);
8482
85   copybitmap(bitmap, state->m_typewriter_bitmap, 0, 0, typewriter_window_offset_x, typewriter_window_offset_y, cliprect);
83   copybitmap(bitmap, m_typewriter_bitmap, 0, 0, typewriter_window_offset_x, typewriter_window_offset_y, cliprect);
8684   return 0;
8785}
8886
trunk/src/mess/video/lviv.c
r17967r17968
6363{
6464}
6565
66SCREEN_UPDATE_IND16( lviv )
66UINT32 lviv_state::screen_update_lviv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
6767{
68   lviv_state *state = screen.machine().driver_data<lviv_state>();
6968   int x,y;
7069   int pen;
7170   UINT8 data;
r17967r17968
7372   for (y=0; y<256; y++)
7473      for (x=0; x<256; x+=4)
7574      {
76         data = state->m_video_ram[y*64+x/4];
75         data = m_video_ram[y*64+x/4];
7776
78         pen = state->m_colortable[0][((data & 0x08) >> 3) | ((data & 0x80) >> (3+3))];
77         pen = m_colortable[0][((data & 0x08) >> 3) | ((data & 0x80) >> (3+3))];
7978         bitmap.pix16(y, x + 0) = pen;
8079
81         pen = state->m_colortable[0][((data & 0x04) >> 2) | ((data & 0x40) >> (2+3))];
80         pen = m_colortable[0][((data & 0x04) >> 2) | ((data & 0x40) >> (2+3))];
8281         bitmap.pix16(y, x + 1) = pen;
8382
84         pen = state->m_colortable[0][((data & 0x02) >> 1) | ((data & 0x20) >> (1+3))];
83         pen = m_colortable[0][((data & 0x02) >> 1) | ((data & 0x20) >> (1+3))];
8584         bitmap.pix16(y, x + 2) = pen;
8685
87         pen = state->m_colortable[0][((data & 0x01) >> 0) | ((data & 0x10) >> (0+3))];
86         pen = m_colortable[0][((data & 0x01) >> 0) | ((data & 0x10) >> (0+3))];
8887         bitmap.pix16(y, x + 3) = pen;
8988      }
9089   return 0;
trunk/src/mess/video/timex.c
r17967r17968
178178   }
179179}
180180
181SCREEN_UPDATE_IND16( ts2068 )
181UINT32 spectrum_state::screen_update_ts2068(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
182182{
183183   /* for now TS2068 will do a full-refresh */
184   spectrum_state *state = screen.machine().driver_data<spectrum_state>();
185184   int count;
186185   int full_refresh = 1;
187186
188   if ((state->m_port_ff_data & 7) == 6)
187   if ((m_port_ff_data & 7) == 6)
189188   {
190189      /* 64 Column mode */
191      unsigned short inkcolor = (state->m_port_ff_data & 0x38) >> 3;
190      unsigned short inkcolor = (m_port_ff_data & 0x38) >> 3;
192191      for (count = 0; count < 192; count++)
193192         ts2068_64col_scanline(screen.machine(),bitmap, count, TS2068_TOP_BORDER, inkcolor);
194193   }
195   else if ((state->m_port_ff_data & 7) == 2)
194   else if ((m_port_ff_data & 7) == 2)
196195   {
197196      /* Extended Color mode */
198197      for (count = 0; count < 192; count++)
199198         ts2068_hires_scanline(screen.machine(),bitmap, count, TS2068_TOP_BORDER);
200199   }
201   else if ((state->m_port_ff_data & 7) == 1)
200   else if ((m_port_ff_data & 7) == 1)
202201   {
203202      /* Screen 6000-7aff */
204203      for (count = 0; count < 192; count++)
r17967r17968
219218   return 0;
220219}
221220
222SCREEN_UPDATE_IND16( tc2048 )
221UINT32 spectrum_state::screen_update_tc2048(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
223222{
224223   /* for now TS2068 will do a full-refresh */
225   spectrum_state *state = screen.machine().driver_data<spectrum_state>();
226224   int count;
227225   int full_refresh = 1;
228226
229   if ((state->m_port_ff_data & 7) == 6)
227   if ((m_port_ff_data & 7) == 6)
230228   {
231229      /* 64 Column mode */
232      unsigned short inkcolor = (state->m_port_ff_data & 0x38) >> 3;
230      unsigned short inkcolor = (m_port_ff_data & 0x38) >> 3;
233231      for (count = 0; count < 192; count++)
234232         ts2068_64col_scanline(screen.machine(),bitmap, count, SPEC_TOP_BORDER, inkcolor);
235233   }
236   else if ((state->m_port_ff_data & 7) == 2)
234   else if ((m_port_ff_data & 7) == 2)
237235   {
238236      /* Extended Color mode */
239237      for (count = 0; count < 192; count++)
240238         ts2068_hires_scanline(screen.machine(),bitmap, count, SPEC_TOP_BORDER);
241239   }
242   else if ((state->m_port_ff_data & 7) == 1)
240   else if ((m_port_ff_data & 7) == 1)
243241   {
244242      /* Screen 6000-7aff */
245243      for (count = 0; count < 192; count++)
trunk/src/mess/video/pet.c
r17967r17968
6666}
6767
6868//  commodore pet discrete video circuit
69SCREEN_UPDATE_IND16( pet )
69UINT32 pet_state::screen_update_pet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
7070{
71   pet_state *state = screen.machine().driver_data<pet_state>();
72   UINT8 *videoram = state->m_videoram;
71   UINT8 *videoram = m_videoram;
7372   int x, y, i;
7473
7574   for (y=0, i=0; y<25;y++)
7675   {
7776      for (x=0;x<40;x++, i++)
7877      {
79         drawgfx_opaque(bitmap, cliprect,screen.machine().gfx[state->m_font],
78         drawgfx_opaque(bitmap, cliprect,screen.machine().gfx[m_font],
8079               videoram[i], 0, 0, 0, 8*x,8*y);
8180      }
8281   }
trunk/src/mess/video/pcw.c
r17967r17968
5252  Do NOT call osd_update_display() from this function,
5353  it will be called by the main emulation engine.
5454***************************************************************************/
55SCREEN_UPDATE_IND16( pcw )
55UINT32 pcw_state::screen_update_pcw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
5656{
57   pcw_state *state = screen.machine().driver_data<pcw_state>();
5857   int x,y,b;
5958   unsigned short roller_ram_offs;
6059   unsigned char *roller_ram_ptr;
r17967r17968
6463   pen1 = 1;
6564
6665   /* invert? */
67   if (state->m_vdu_video_control_register & (1<<7))
66   if (m_vdu_video_control_register & (1<<7))
6867   {
6968      /* yes */
7069      pen1^=1;
r17967r17968
7271   }
7372
7473   /* video enable? */
75   if ((state->m_vdu_video_control_register & (1<<6))!=0)
74   if ((m_vdu_video_control_register & (1<<6))!=0)
7675   {
7776      /* render top border */
7877      rectangle rect(0, PCW_SCREEN_WIDTH, 0, PCW_BORDER_HEIGHT);
r17967r17968
8382      bitmap.fill(pen0, rect);
8483
8584      /* offset to start in table */
86      roller_ram_offs = (state->m_roller_ram_offset<<1);
85      roller_ram_offs = (m_roller_ram_offset<<1);
8786
8887      for (y=0; y<256; y++)
8988      {
r17967r17968
9392
9493         x = PCW_BORDER_WIDTH;
9594
96         roller_ram_ptr = screen.machine().device<ram_device>(RAM_TAG)->pointer() + state->m_roller_ram_addr + roller_ram_offs;
95         roller_ram_ptr = screen.machine().device<ram_device>(RAM_TAG)->pointer() + m_roller_ram_addr + roller_ram_offs;
9796
9897         /* get line address */
9998         /* b16-14 control which bank the line is to be found in, b13-3 the address in the bank (in 16-byte units), and b2-0 the offset. Thus a roller RAM address bbbxxxxxxxxxxxyyy indicates bank bbb, address 00xxxxxxxxxxx0yyy. */
r17967r17968
166165   return 0;
167166}
168167
169SCREEN_UPDATE_IND16( pcw_printer )
168UINT32 pcw_state::screen_update_pcw_printer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
170169{
171   pcw_state *state = screen.machine().driver_data<pcw_state>();
172170
173171   // printer output
174172   INT32 feed;
175173   rectangle rect(0, PCW_PRINTER_WIDTH - 1, 0, PCW_PRINTER_HEIGHT - 1);
176   feed = -(state->m_paper_feed / 2);
177   copyscrollbitmap(bitmap,*state->m_prn_output,0,NULL,1,&feed,rect);
178   bitmap.pix16(PCW_PRINTER_HEIGHT-1, state->m_printer_headpos) = 0;
179   bitmap.pix16(PCW_PRINTER_HEIGHT-2, state->m_printer_headpos) = 0;
180   bitmap.pix16(PCW_PRINTER_HEIGHT-3, state->m_printer_headpos) = 0;
181   bitmap.pix16(PCW_PRINTER_HEIGHT-1, state->m_printer_headpos-1) = 0;
182   bitmap.pix16(PCW_PRINTER_HEIGHT-2, state->m_printer_headpos-1) = 0;
183   bitmap.pix16(PCW_PRINTER_HEIGHT-1, state->m_printer_headpos+1) = 0;
184   bitmap.pix16(PCW_PRINTER_HEIGHT-2, state->m_printer_headpos+1) = 0;
174   feed = -(m_paper_feed / 2);
175   copyscrollbitmap(bitmap,*m_prn_output,0,NULL,1,&feed,rect);
176   bitmap.pix16(PCW_PRINTER_HEIGHT-1, m_printer_headpos) = 0;
177   bitmap.pix16(PCW_PRINTER_HEIGHT-2, m_printer_headpos) = 0;
178   bitmap.pix16(PCW_PRINTER_HEIGHT-3, m_printer_headpos) = 0;
179   bitmap.pix16(PCW_PRINTER_HEIGHT-1, m_printer_headpos-1) = 0;
180   bitmap.pix16(PCW_PRINTER_HEIGHT-2, m_printer_headpos-1) = 0;
181   bitmap.pix16(PCW_PRINTER_HEIGHT-1, m_printer_headpos+1) = 0;
182   bitmap.pix16(PCW_PRINTER_HEIGHT-2, m_printer_headpos+1) = 0;
185183   return 0;
186184}
187185
trunk/src/mess/video/oric.c
r17967r17968
163163/***************************************************************************
164164  oric_vh_screenrefresh
165165***************************************************************************/
166SCREEN_UPDATE_IND16( oric )
166UINT32 oric_state::screen_update_oric(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
167167{
168   oric_state *state = screen.machine().driver_data<oric_state>();
169168   UINT8 *RAM, y;
170169   offs_t byte_offset, read_addr_base;
171170   bool hires_active;
172171
173   RAM = state->m_ram;
172   RAM = m_ram;
174173
175174   /* set initial base */
176   read_addr_base = state->m_vh_state.read_addr;
175   read_addr_base = m_vh_state.read_addr;
177176
178177   /* is hires active? */
179   hires_active = BIT(state->m_vh_state.mode, 2);
178   hires_active = BIT(m_vh_state.mode, 2);
180179
181180   for (y = 0; y < 224; y++)
182181   {
r17967r17968
222221            oric_vh_update_attribute(screen.machine(), c);
223222
224223            /* display background colour when attribute has been found */
225            oric_vh_render_6pixels(bitmap, x, y, state->m_vh_state.active_foreground_colour, state->m_vh_state.active_background_colour, 0, (c & 0x080));
224            oric_vh_render_6pixels(bitmap, x, y, m_vh_state.active_foreground_colour, m_vh_state.active_background_colour, 0, (c & 0x080));
226225
227226            if (y < 200)
228227            {
229228               /* is hires active? */
230               hires_active = BIT(state->m_vh_state.mode, 2);
231               read_addr_base = state->m_vh_state.read_addr;
229               hires_active = BIT(m_vh_state.mode, 2);
230               read_addr_base = m_vh_state.read_addr;
232231            }
233232         }
234233         else
r17967r17968
238237            {
239238               UINT8 pixel_data = c & 0x03f;
240239               /* plot hires pixels */
241               oric_vh_render_6pixels(bitmap,x,y,state->m_vh_state.active_foreground_colour, state->m_vh_state.active_background_colour, pixel_data, BIT(c, 7));
240               oric_vh_render_6pixels(bitmap,x,y,m_vh_state.active_foreground_colour, m_vh_state.active_background_colour, pixel_data, BIT(c, 7));
242241            }
243242            else
244243            {
r17967r17968
249248               ch_line = y & 7;
250249
251250               /* is double height set? */
252               if (BIT(state->m_vh_state.text_attributes, 1))
251               if (BIT(m_vh_state.text_attributes, 1))
253252               {
254253               /* if char line is even, top half of character is displayed else bottom half */
255254                  UINT8 double_height_flag = BIT(y, 3);
r17967r17968
259258               }
260259
261260               /* fetch pixel data for this char line */
262               char_data = state->m_vh_state.char_data[(char_index<<3) | ch_line] & 0x03f;
261               char_data = m_vh_state.char_data[(char_index<<3) | ch_line] & 0x03f;
263262
264263               /* draw! */
265264               oric_vh_render_6pixels(bitmap,x,y,
266                  state->m_vh_state.active_foreground_colour,
267                  state->m_vh_state.active_background_colour, char_data, BIT(c, 7));
265                  m_vh_state.active_foreground_colour,
266                  m_vh_state.active_background_colour, char_data, BIT(c, 7));
268267            }
269268
270269         }
trunk/src/mess/video/orao.c
r17967r17968
1414{
1515}
1616
17SCREEN_UPDATE_IND16( orao )
17UINT32 orao_state::screen_update_orao(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
1818{
19   orao_state *state = screen.machine().driver_data<orao_state>();
2019   UINT8 code;
2120   int y, x, b;
2221
r17967r17968
2625      int horpos = 0;
2726      for (x = 0; x < 32; x++)
2827      {
29         code = state->m_video_ram[addr++];
28         code = m_video_ram[addr++];
3029         for (b = 0; b < 8; b++)
3130         {
3231            bitmap.pix16(y, horpos++) =  (code >> b) & 0x01;
trunk/src/mess/video/mbc55x.c
r17967r17968
193193   logerror("Video reset\n");
194194}
195195
196SCREEN_VBLANK( mbc55x )
196void mbc55x_state::screen_eof_mbc55x(screen_device &screen, bool state)
197197{
198198//  logerror("SCREEN_VBLANK( mbc55x )\n");
199199}
trunk/src/mess/video/vector06.c
r17967r17968
1414{
1515}
1616
17SCREEN_UPDATE_IND16( vector06 )
17UINT32 vector06_state::screen_update_vector06(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
1818{
19   vector06_state *state = screen.machine().driver_data<vector06_state>();
2019   UINT8 code1,code2,code3,code4;
2120   UINT8 col;
2221   int y, x, b,draw_y;
2322   UINT8 *ram = screen.machine().device<ram_device>(RAM_TAG)->pointer();
2423
25   int width = (state->m_video_mode==0x00) ? 256 : 512;
24   int width = (m_video_mode==0x00) ? 256 : 512;
2625   rectangle screen_area(0,width+64-1,0,256+64-1);
2726   // fill border color
28   bitmap.fill(state->m_color_index, screen_area);
27   bitmap.fill(m_color_index, screen_area);
2928
3029   // draw image
3130   for (x = 0; x < 32; x++)
r17967r17968
3332      for (y = 0; y < 256; y++)
3433      {
3534         // port A of 8255 also used as scroll
36         draw_y = ((255-y-state->m_keyboard_mask) & 0xff) +32;
35         draw_y = ((255-y-m_keyboard_mask) & 0xff) +32;
3736         code1 = ram[0x8000 + x*256 + y];
3837         code2 = ram[0xa000 + x*256 + y];
3938         code3 = ram[0xc000 + x*256 + y];
r17967r17968
4140         for (b = 0; b < 8; b++)
4241         {
4342            col = ((code1 >> b) & 0x01) * 8 + ((code2 >> b) & 0x01) * 4 + ((code3 >> b) & 0x01)* 2+ ((code4 >> b) & 0x01);
44            if (state->m_video_mode==0x00) {
43            if (m_video_mode==0x00) {
4544               bitmap.pix16(draw_y, x*8+(7-b)+32) =  col;
4645            } else {
4746               bitmap.pix16(draw_y, x*16+(7-b)*2+1+32) =  ((code2 >> b) & 0x01) * 2;
trunk/src/mess/video/pc1403.c
r17967r17968
147147   "11  1 1 111e"
148148};
149149
150SCREEN_UPDATE_IND16( pc1403 )
150UINT32 pc1403_state::screen_update_pc1403(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
151151{
152   pc1403_state *state = screen.machine().driver_data<pc1403_state>();
153152   running_machine &machine = screen.machine();
154153   int x, y, i, j;
155154   int color[3];
r17967r17968
159158   /* HJB: we cannot initialize array with values from other arrays, thus... */
160159   color[0] = 7; // pocketc_colortable[CONTRAST][0];
161160   color[2] = 8; // pocketc_colortable[CONTRAST][1];
162   color[1] = (state->m_portc & 1) ? color[2] : color[0];
161   color[1] = (m_portc & 1) ? color[2] : color[0];
163162
164   if (state->m_portc & 1)
163   if (m_portc & 1)
165164   {
166      for (x=state->m_RIGHT, y=state->m_DOWN, i=0; i<6*5; x+=2) {
165      for (x=m_RIGHT, y=m_DOWN, i=0; i<6*5; x+=2) {
167166         for (j=0; j<5; j++, i++, x+=2)
168         drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], state->m_reg[i],CONTRAST,0,0,
167         drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], m_reg[i],CONTRAST,0,0,
169168            x,y);
170169      }
171170      for (i=9*5; i<12*5; x+=2)
172171      {
173172         for (j=0; j<5; j++, i++, x+=2)
174         drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], state->m_reg[i],CONTRAST,0,0,
173         drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], m_reg[i],CONTRAST,0,0,
175174            x,y);
176175      }
177176      for (i=6*5; i<9*5; x+=2)
178177      {
179178         for (j=0; j<5; j++, i++, x+=2)
180         drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], state->m_reg[i],CONTRAST,0,0,
179         drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], m_reg[i],CONTRAST,0,0,
181180            x,y);
182181      }
183182      for (i=0x7b-3*5; i>0x7b-6*5; x+=2)
184183      {
185184         for (j=0; j<5; j++, i--, x+=2)
186            drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], state->m_reg[i],CONTRAST,0,0,
185            drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], m_reg[i],CONTRAST,0,0,
187186            x,y);
188187      }
189188      for (i=0x7b; i>0x7b-3*5; x+=2)
190189      {
191190         for (j=0; j<5; j++, i--, x+=2)
192         drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], state->m_reg[i],CONTRAST,0,0,
191         drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], m_reg[i],CONTRAST,0,0,
193192            x,y);
194193      }
195194      for (i=0x7b-6*5; i>0x7b-12*5; x+=2)
196195      {
197196         for (j=0; j<5; j++, i--, x+=2)
198         drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], state->m_reg[i],CONTRAST,0,0,
197         drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], m_reg[i],CONTRAST,0,0,
199198            x,y);
200199      }
201200   }
202201   /* if display is off, busy is always visible? it seems to behave like that. */
203202   /* But if computer is off, busy is hidden. */
204   if(!(state->m_portc&8))
203   if(!(m_portc&8))
205204   {
206      if (state->m_portc&1)
207         pocketc_draw_special(bitmap, state->m_RIGHT, state->m_DOWN-13, busy,
208            state->m_reg[0x3d] & 1 ? color[2] : color[0]);
205      if (m_portc&1)
206         pocketc_draw_special(bitmap, m_RIGHT, m_DOWN-13, busy,
207            m_reg[0x3d] & 1 ? color[2] : color[0]);
209208
210      else pocketc_draw_special(bitmap, state->m_RIGHT, state->m_DOWN-13, busy, color[2]);
209      else pocketc_draw_special(bitmap, m_RIGHT, m_DOWN-13, busy, color[2]);
211210   }
212211   else
213      pocketc_draw_special(bitmap, state->m_RIGHT, state->m_DOWN-13, busy, color[0]);
212      pocketc_draw_special(bitmap, m_RIGHT, m_DOWN-13, busy, color[0]);
214213
215   pocketc_draw_special(bitmap, state->m_RIGHT+18, state->m_DOWN-13, def,
216          state->m_reg[0x3d] & 0x02 ? color[1] : color[0]);
217   pocketc_draw_special(bitmap, state->m_RIGHT+43, state->m_DOWN-13, shift,
218          state->m_reg[0x3d] & 0x04 ? color[1] : color[0]);
219   pocketc_draw_special(bitmap, state->m_RIGHT+63, state->m_DOWN-13, hyp,
220          state->m_reg[0x3d] & 0x08 ? color[1] : color[0]);
214   pocketc_draw_special(bitmap, m_RIGHT+18, m_DOWN-13, def,
215          m_reg[0x3d] & 0x02 ? color[1] : color[0]);
216   pocketc_draw_special(bitmap, m_RIGHT+43, m_DOWN-13, shift,
217          m_reg[0x3d] & 0x04 ? color[1] : color[0]);
218   pocketc_draw_special(bitmap, m_RIGHT+63, m_DOWN-13, hyp,
219          m_reg[0x3d] & 0x08 ? color[1] : color[0]);
221220
222   pocketc_draw_special(bitmap, state->m_RIGHT+155, state->m_DOWN-13, kana,
223          state->m_reg[0x3c] & 0x01 ? color[1] : color[0]);
224   pocketc_draw_special(bitmap, state->m_RIGHT+167, state->m_DOWN-13, shoo,
225          state->m_reg[0x3c] & 0x02 ? color[1] : color[0]);
226   pocketc_draw_special(bitmap, state->m_RIGHT+178, state->m_DOWN-13, sml,
227          state->m_reg[0x3c] & 0x04 ? color[1] : color[0]);
221   pocketc_draw_special(bitmap, m_RIGHT+155, m_DOWN-13, kana,
222          m_reg[0x3c] & 0x01 ? color[1] : color[0]);
223   pocketc_draw_special(bitmap, m_RIGHT+167, m_DOWN-13, shoo,
224          m_reg[0x3c] & 0x02 ? color[1] : color[0]);
225   pocketc_draw_special(bitmap, m_RIGHT+178, m_DOWN-13, sml,
226          m_reg[0x3c] & 0x04 ? color[1] : color[0]);
228227
229   pocketc_draw_special(bitmap, state->m_RIGHT+191, state->m_DOWN-13, de,
230          state->m_reg[0x7c] & 0x20 ? color[1] : color[0]);
231   pocketc_draw_special(bitmap, state->m_RIGHT+199, state->m_DOWN-13, g,
232          state->m_reg[0x7c] & 0x10 ? color[1] : color[0]);
233   pocketc_draw_special(bitmap, state->m_RIGHT+203, state->m_DOWN-13, rad,
234          state->m_reg[0x7c] & 0x08 ? color[1] : color[0]);
228   pocketc_draw_special(bitmap, m_RIGHT+191, m_DOWN-13, de,
229          m_reg[0x7c] & 0x20 ? color[1] : color[0]);
230   pocketc_draw_special(bitmap, m_RIGHT+199, m_DOWN-13, g,
231          m_reg[0x7c] & 0x10 ? color[1] : color[0]);
232   pocketc_draw_special(bitmap, m_RIGHT+203, m_DOWN-13, rad,
233          m_reg[0x7c] & 0x08 ? color[1] : color[0]);
235234
236   pocketc_draw_special(bitmap, state->m_RIGHT+266, state->m_DOWN-13, braces,
237          state->m_reg[0x7c] & 0x04 ? color[1] : color[0]);
238   pocketc_draw_special(bitmap, state->m_RIGHT+274, state->m_DOWN-13, m,
239          state->m_reg[0x7c] & 0x02 ? color[1] : color[0]);
240   pocketc_draw_special(bitmap, state->m_RIGHT+281, state->m_DOWN-13, e,
241          state->m_reg[0x7c] & 0x01 ? color[1] : color[0]);
235   pocketc_draw_special(bitmap, m_RIGHT+266, m_DOWN-13, braces,
236          m_reg[0x7c] & 0x04 ? color[1] : color[0]);
237   pocketc_draw_special(bitmap, m_RIGHT+274, m_DOWN-13, m,
238          m_reg[0x7c] & 0x02 ? color[1] : color[0]);
239   pocketc_draw_special(bitmap, m_RIGHT+281, m_DOWN-13, e,
240          m_reg[0x7c] & 0x01 ? color[1] : color[0]);
242241
243   pocketc_draw_special(bitmap, state->m_RIGHT+10, state->m_DOWN+27, line /* empty */,
244          state->m_reg[0x3c] & 0x40 ? color[1] : color[0]);
245   pocketc_draw_special(bitmap, state->m_RIGHT+31, state->m_DOWN+27, line /*calc*/,
246          state->m_reg[0x3d] & 0x40 ? color[1] : color[0]);
247   pocketc_draw_special(bitmap, state->m_RIGHT+52, state->m_DOWN+27, line/*run*/,
248          state->m_reg[0x3d] & 0x20 ? color[1] : color[0]);
249   pocketc_draw_special(bitmap, state->m_RIGHT+73, state->m_DOWN+27, line/*prog*/,
250          state->m_reg[0x3d] & 0x10 ? color[1] : color[0]);
251   pocketc_draw_special(bitmap, state->m_RIGHT+94, state->m_DOWN+27, line /* empty */,
252          state->m_reg[0x3c] & 0x20 ? color[1] : color[0]);
242   pocketc_draw_special(bitmap, m_RIGHT+10, m_DOWN+27, line /* empty */,
243          m_reg[0x3c] & 0x40 ? color[1] : color[0]);
244   pocketc_draw_special(bitmap, m_RIGHT+31, m_DOWN+27, line /*calc*/,
245          m_reg[0x3d] & 0x40 ? color[1] : color[0]);
246   pocketc_draw_special(bitmap, m_RIGHT+52, m_DOWN+27, line/*run*/,
247          m_reg[0x3d] & 0x20 ? color[1] : color[0]);
248   pocketc_draw_special(bitmap, m_RIGHT+73, m_DOWN+27, line/*prog*/,
249          m_reg[0x3d] & 0x10 ? color[1] : color[0]);
250   pocketc_draw_special(bitmap, m_RIGHT+94, m_DOWN+27, line /* empty */,
251          m_reg[0x3c] & 0x20 ? color[1] : color[0]);
253252
254   pocketc_draw_special(bitmap, state->m_RIGHT+232, state->m_DOWN+27, line/*matrix*/,
255          state->m_reg[0x3c] & 0x10 ? color[1] : color[0]);
256   pocketc_draw_special(bitmap, state->m_RIGHT+253, state->m_DOWN+27, line/*stat*/,
257          state->m_reg[0x3c] & 0x08 ? color[1] : color[0]);
258   pocketc_draw_special(bitmap, state->m_RIGHT+274, state->m_DOWN+27, line/*print*/,
259          state->m_reg[0x7c] & 0x40 ? color[1] : color[0]);
253   pocketc_draw_special(bitmap, m_RIGHT+232, m_DOWN+27, line/*matrix*/,
254          m_reg[0x3c] & 0x10 ? color[1] : color[0]);
255   pocketc_draw_special(bitmap, m_RIGHT+253, m_DOWN+27, line/*stat*/,
256          m_reg[0x3c] & 0x08 ? color[1] : color[0]);
257   pocketc_draw_special(bitmap, m_RIGHT+274, m_DOWN+27, line/*print*/,
258          m_reg[0x7c] & 0x40 ? color[1] : color[0]);
260259
261260   return 0;
262261}
trunk/src/mess/video/galeb.c
r17967r17968
2727{
2828}
2929
30SCREEN_UPDATE_IND16( galeb )
30UINT32 galeb_state::screen_update_galeb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
3131{
32   galeb_state *state = screen.machine().driver_data<galeb_state>();
3332   int x,y;
3433
3534   for(y = 0; y < 16; y++ )
3635   {
3736      for(x = 0; x < 48; x++ )
3837      {
39         int code = state->m_video_ram[15 + x + y*64];
38         int code = m_video_ram[15 + x + y*64];
4039         drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0],  code , 0, 0,0, x*8,y*8);
4140      }
4241   }
trunk/src/mess/video/electron.c
r17967r17968
5959   bitmap.pix16(y, x) = (UINT16)color;
6060}
6161
62SCREEN_UPDATE_IND16( electron )
62UINT32 electron_state::screen_update_electron(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
6363{
64   electron_state *state = screen.machine().driver_data<electron_state>();
6564   int i;
6665   int x = 0;
6766   int pal[16];
r17967r17968
7069   r.min_y = r.max_y = scanline;
7170
7271   /* set up palette */
73   switch( state->m_ula.screen_mode )
72   switch( m_ula.screen_mode )
7473   {
7574   case 0: case 3: case 4: case 6: case 7: /* 2 colour mode */
76      pal[0] = state->m_ula.current_pal[0];
77      pal[1] = state->m_ula.current_pal[8];
75      pal[0] = m_ula.current_pal[0];
76      pal[1] = m_ula.current_pal[8];
7877      break;
7978   case 1: case 5: /* 4 colour mode */
80      pal[0] = state->m_ula.current_pal[0];
81      pal[1] = state->m_ula.current_pal[2];
82      pal[2] = state->m_ula.current_pal[8];
83      pal[3] = state->m_ula.current_pal[10];
79      pal[0] = m_ula.current_pal[0];
80      pal[1] = m_ula.current_pal[2];
81      pal[2] = m_ula.current_pal[8];
82      pal[3] = m_ula.current_pal[10];
8483      break;
8584   case 2:   /* 16 colour mode */
8685      for( i = 0; i < 16; i++ )
87         pal[i] = state->m_ula.current_pal[i];
86         pal[i] = m_ula.current_pal[i];
8887   }
8988
9089   /* draw line */
91   switch( state->m_ula.screen_mode )
90   switch( m_ula.screen_mode )
9291   {
9392   case 0:
9493      for( i = 0; i < 80; i++ )
9594      {
96         UINT8 pattern = read_vram( state, state->m_ula.screen_addr + (i << 3) );
95         UINT8 pattern = read_vram( this, m_ula.screen_addr + (i << 3) );
9796         electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>7)& 1] );
9897         electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>6)& 1] );
9998         electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>5)& 1] );
r17967r17968
103102         electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>1)& 1] );
104103         electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>0)& 1] );
105104      }
106      state->m_ula.screen_addr++;
105      m_ula.screen_addr++;
107106      if ( ( scanline & 0x07 ) == 7 )
108         state->m_ula.screen_addr += 0x278;
107         m_ula.screen_addr += 0x278;
109108      break;
110109
111110   case 1:
112111      for( i = 0; i < 80; i++ )
113112      {
114         UINT8 pattern = read_vram( state, state->m_ula.screen_addr + i * 8 );
115         electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>3]] );
116         electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>3]] );
117         electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>2]] );
118         electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>2]] );
119         electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>1]] );
120         electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>1]] );
121         electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>0]] );
122         electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>0]] );
113         UINT8 pattern = read_vram( this, m_ula.screen_addr + i * 8 );
114         electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>3]] );
115         electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>3]] );
116         electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>2]] );
117         electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>2]] );
118         electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>1]] );
119         electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>1]] );
120         electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>0]] );
121         electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>0]] );
123122      }
124      state->m_ula.screen_addr++;
123      m_ula.screen_addr++;
125124      if ( ( scanline & 0x07 ) == 7 )
126         state->m_ula.screen_addr += 0x278;
125         m_ula.screen_addr += 0x278;
127126      break;
128127
129128   case 2:
130129      for( i = 0; i < 80; i++ )
131130      {
132         UINT8 pattern = read_vram( state, state->m_ula.screen_addr + i * 8 );
133         electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map16[pattern>>1]] );
134         electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map16[pattern>>1]] );
135         electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map16[pattern>>1]] );
136         electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map16[pattern>>1]] );
137         electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map16[pattern>>0]] );
138         electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map16[pattern>>0]] );
139         electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map16[pattern>>0]] );
140         electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map16[pattern>>0]] );
131         UINT8 pattern = read_vram( this, m_ula.screen_addr + i * 8 );
132         electron_plot_pixel( bitmap, x++, scanline, pal[m_map16[pattern>>1]] );
133         electron_plot_pixel( bitmap, x++, scanline, pal[m_map16[pattern>>1]] );
134         electron_plot_pixel( bitmap, x++, scanline, pal[m_map16[pattern>>1]] );
135         electron_plot_pixel( bitmap, x++, scanline, pal[m_map16[pattern>>1]] );
136         electron_plot_pixel( bitmap, x++, scanline, pal[m_map16[pattern>>0]] );
137         electron_plot_pixel( bitmap, x++, scanline, pal[m_map16[pattern>>0]] );
138         electron_plot_pixel( bitmap, x++, scanline, pal[m_map16[pattern>>0]] );
139         electron_plot_pixel( bitmap, x++, scanline, pal[m_map16[pattern>>0]] );
141140      }
142      state->m_ula.screen_addr++;
141      m_ula.screen_addr++;
143142      if ( ( scanline & 0x07 ) == 7 )
144         state->m_ula.screen_addr += 0x278;
143         m_ula.screen_addr += 0x278;
145144      break;
146145
147146   case 3:
r17967r17968
151150      {
152151         for( i = 0; i < 80; i++ )
153152         {
154            UINT8 pattern = read_vram( state, state->m_ula.screen_addr + i * 8 );
153            UINT8 pattern = read_vram( this, m_ula.screen_addr + i * 8 );
155154            electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>7)&1] );
156155            electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>6)&1] );
157156            electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>5)&1] );
r17967r17968
161160            electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>1)&1] );
162161            electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>0)&1] );
163162         }
164         state->m_ula.screen_addr++;
163         m_ula.screen_addr++;
165164      }
166165      if ( scanline % 10 == 9 )
167         state->m_ula.screen_addr += 0x278;
166         m_ula.screen_addr += 0x278;
168167      break;
169168
170169   case 4:
171170   case 7:
172171      for( i = 0; i < 40; i++ )
173172      {
174         UINT8 pattern = read_vram( state, state->m_ula.screen_addr + i * 8 );
173         UINT8 pattern = read_vram( this, m_ula.screen_addr + i * 8 );
175174         electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>7)&1] );
176175         electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>7)&1] );
177176         electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>6)&1] );
r17967r17968
189188         electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>0)&1] );
190189         electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>0)&1] );
191190      }
192      state->m_ula.screen_addr++;
191      m_ula.screen_addr++;
193192      if ( ( scanline & 0x07 ) == 7 )
194         state->m_ula.screen_addr += 0x138;
193         m_ula.screen_addr += 0x138;
195194      break;
196195
197196   case 5:
198197      for( i = 0; i < 40; i++ )
199198      {
200         UINT8 pattern = read_vram( state, state->m_ula.screen_addr + i * 8 );
201         electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>3]] );
202         electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>3]] );
203         electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>3]] );
204         electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>3]] );
205         electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>2]] );
206         electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>2]] );
207         electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>2]] );
208         electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>2]] );
209         electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>1]] );
210         electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>1]] );
211         electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>1]] );
212         electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>1]] );
213         electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>0]] );
214         electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>0]] );
215         electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>0]] );
216         electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>0]] );
199         UINT8 pattern = read_vram( this, m_ula.screen_addr + i * 8 );
200         electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>3]] );
201         electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>3]] );
202         electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>3]] );
203         electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>3]] );
204         electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>2]] );
205         electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>2]] );
206         electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>2]] );
207         electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>2]] );
208         electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>1]] );
209         electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>1]] );
210         electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>1]] );
211         electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>1]] );
212         electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>0]] );
213         electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>0]] );
214         electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>0]] );
215         electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>0]] );
217216      }
218      state->m_ula.screen_addr++;
217      m_ula.screen_addr++;
219218      if ( ( scanline & 0x07 ) == 7 )
220         state->m_ula.screen_addr += 0x138;
219         m_ula.screen_addr += 0x138;
221220      break;
222221
223222   case 6:
r17967r17968
227226      {
228227         for( i = 0; i < 40; i++ )
229228         {
230            UINT8 pattern = read_vram( state, state->m_ula.screen_addr + i * 8 );
229            UINT8 pattern = read_vram( this, m_ula.screen_addr + i * 8 );
231230            electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>7)&1] );
232231            electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>7)&1] );
233232            electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>6)&1] );
r17967r17968
245244            electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>0)&1] );
246245            electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>0)&1] );
247246         }
248         state->m_ula.screen_addr++;
247         m_ula.screen_addr++;
249248         if ( ( scanline % 10 ) == 7 )
250            state->m_ula.screen_addr += 0x138;
249            m_ula.screen_addr += 0x138;
251250      }
252251      break;
253252   }
trunk/src/mess/video/channelf.c
r17967r17968
4747   return ((reg2&0x2)|(reg1>>1)) << 2;
4848}
4949
50SCREEN_UPDATE_IND16( channelf )
50UINT32 channelf_state::screen_update_channelf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
5151{
52   channelf_state *state = screen.machine().driver_data<channelf_state>();
5352   UINT8 y,col;
5453   UINT16 ma=0,x;
5554   int palette_offset;
r17967r17968
5756   for(y = 0; y < 64; y++ )
5857   {
5958      UINT16 *p = &bitmap.pix16(y);
60      palette_offset = recalc_palette_offset(state->m_p_videoram[y*128+125]&3, state->m_p_videoram[y*128+126]&3);
59      palette_offset = recalc_palette_offset(m_p_videoram[y*128+125]&3, m_p_videoram[y*128+126]&3);
6160
6261      for (x = ma; x < ma + 128; x++)
6362      {
64         col = palette_offset+(state->m_p_videoram[x|(y<<7)]&3);
63         col = palette_offset+(m_p_videoram[x|(y<<7)]&3);
6564         *p++ = colormap[col];
6665      }
6766      ma+=128;
trunk/src/mess/video/apple1.c
r17967r17968
391391   }
392392}
393393
394SCREEN_UPDATE_IND16( apple1 )
394UINT32 apple1_state::screen_update_apple1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
395395{
396   apple1_state *state = screen.machine().driver_data<apple1_state>();
397396   apple1_vh_cursor_blink(screen.machine());
398   terminal_draw(screen.machine(), bitmap, cliprect, state->m_terminal);
397   terminal_draw(screen.machine(), bitmap, cliprect, m_terminal);
399398   return 0;
400399}
trunk/src/mess/video/orion.c
r17967r17968
1616{
1717}
1818
19SCREEN_UPDATE_IND16( orion128 )
19UINT32 orion_state::screen_update_orion128(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
2020{
21   orion_state *state = screen.machine().driver_data<orion_state>();
2221   UINT8 code1,code2,code3,code4,color,val;
2322   int y, x,b;
24   int orionproshift = (state->m_orion128_video_mode & 0x10) ? 1 : 0;
25   int part1addr = (3-((state->m_orion128_video_page & 3) | orionproshift)) * 0x4000;
23   int orionproshift = (m_orion128_video_mode & 0x10) ? 1 : 0;
24   int part1addr = (3-((m_orion128_video_page & 3) | orionproshift)) * 0x4000;
2625   int part2addr = part1addr + 0x10000;
27   int video_mode = state->m_orion128_video_mode & state->m_video_mode_mask;
26   int video_mode = m_orion128_video_mode & m_video_mode_mask;
2827   UINT8 *ram = screen.machine().device<ram_device>(RAM_TAG)->pointer();
2928
30   for (x = 0; x < state->m_orion128_video_width; x++)
29   for (x = 0; x < m_orion128_video_width; x++)
3130   {
3231      for (y = 0; y < 256; y++)
3332      {
r17967r17968
3635         code3 = ram[part1addr + y + x*256 + 0x4000];
3736         code4 = ram[part2addr + y + x*256 + 0x4000];
3837         if ((video_mode==14) || (video_mode==15)) {
39            code2 = state->m_orionpro_pseudo_color;
38            code2 = m_orionpro_pseudo_color;
4039         }
4140         color = 0;
4241         for (b = 7; b >= 0; b--)
4342         {
44            switch(state->m_orion128_video_mode & state->m_video_mode_mask) {
43            switch(m_orion128_video_mode & m_video_mode_mask) {
4544               case 0 : color = ((code1 >> b) & 0x01) ? 10 : 0; break;
4645               case 1 : color = ((code1 >> b) & 0x01) ? 17 : 16; break;
4746               case 4 : val = (((code1 >> b) & 0x01) << 1) + ((code2 >> b) & 0x01);
r17967r17968
6766                      color = ((code1 >> b) & 0x01) ? (code2 & 0x0f) : (code2 >> 4); break;
6867
6968               default:
70                  switch(state->m_orion128_video_mode & state->m_video_mode_mask & 20) {
69                  switch(m_orion128_video_mode & m_video_mode_mask & 20) {
7170                     case 16 :
7271                            color = (((code1 >> b) & 0x01) << 2) + (((code3 >> b) & 0x01) << 1) + ((code2 >> b) & 0x01);
7372                            break;
trunk/src/mess/video/bk.c
r17967r17968
1515{
1616}
1717
18SCREEN_UPDATE_IND16( bk0010 )
18UINT32 bk_state::screen_update_bk0010(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
1919{
20   bk_state *state = screen.machine().driver_data<bk_state>();
2120   UINT16 code;
2221   int y, x, b;
2322   int nOfs;
2423
25   nOfs = (state->m_scrool - 728) % 256;
24   nOfs = (m_scrool - 728) % 256;
2625
2726   for (y = 0; y < 256; y++)
2827   {
2928      for (x = 0; x < 32; x++)
3029      {
31         code = state->m_bk0010_video_ram[((y+nOfs) %256)*32 + x];
30         code = m_bk0010_video_ram[((y+nOfs) %256)*32 + x];
3231         for (b = 0; b < 16; b++)
3332         {
3433            bitmap.pix16(y, x*16 + b) =  (code >> b) & 0x01;
trunk/src/mess/video/a7800.c
r17967r17968
428428
429429***************************************************************************/
430430/* This routine is called at the start of vblank to refresh the screen */
431SCREEN_UPDATE_IND16( a7800 )
431UINT32 a7800_state::screen_update_a7800(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
432432{
433   a7800_state *state = screen.machine().driver_data<a7800_state>();
434   state->m_maria_scanline = 0;
435   copybitmap(bitmap, state->m_bitmap, 0, 0, 0, 0, cliprect);
433   m_maria_scanline = 0;
434   copybitmap(bitmap, m_bitmap, 0, 0, 0, 0, cliprect);
436435   return 0;
437436}
438437
trunk/src/mess/video/nascom1.c
r17967r17968
99#include "emu.h"
1010#include "includes/nascom1.h"
1111
12SCREEN_UPDATE_IND16( nascom1 )
12UINT32 nascom1_state::screen_update_nascom1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
1313{
14   nascom1_state *state = screen.machine().driver_data<nascom1_state>();
15   UINT8 *videoram = state->m_videoram;
14   UINT8 *videoram = m_videoram;
1615   int   sy, sx;
1716
1817   for (sx = 0; sx < 48; sx++)
r17967r17968
3433   return 0;
3534}
3635
37SCREEN_UPDATE_IND16( nascom2 )
36UINT32 nascom1_state::screen_update_nascom2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
3837{
39   nascom1_state *state = screen.machine().driver_data<nascom1_state>();
40   UINT8 *videoram = state->m_videoram;
38   UINT8 *videoram = m_videoram;
4139   int   sy, sx;
4240
4341   for (sx = 0; sx < 48; sx++)
trunk/src/mess/video/microtan.c
r17967r17968
4848   m_chunky_graphics = 0;
4949}
5050
51SCREEN_UPDATE_IND16( microtan )
51UINT32 microtan_state::screen_update_microtan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
5252{
53   microtan_state *state = screen.machine().driver_data<microtan_state>();
54   state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
53   m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
5554   return 0;
5655}
trunk/src/mess/video/sapi1.c
r17967r17968
8989   m_refresh_counter = 0;
9090}
9191
92SCREEN_UPDATE_IND16( sapi1 )
92UINT32 sapi1_state::screen_update_sapi1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
9393{
94   sapi1_state *state = screen.machine().driver_data<sapi1_state>();
9594   int x,y,j,b;
9695   UINT16 addr;
9796   int xpos;
r17967r17968
102101      xpos = 0;
103102      for(x = 0; x < 40; x++ )
104103      {
105         UINT8 code = state->m_sapi_video_ram[addr + x];
104         UINT8 code = m_sapi_video_ram[addr + x];
106105         UINT8 attr = (code >> 6) & 3;
107106         code &= 0x3f;
108107         for(j = 0; j < 9; j++ )
r17967r17968
112111               UINT8 val;
113112               if (j==8) {
114113                  if (attr==2) {
115                     val = (state->m_refresh_counter & 0x20) ? 1 : 0;
114                     val = (m_refresh_counter & 0x20) ? 1 : 0;
116115                  } else {
117116                     val = 0;
118117                  }
119118               } else {
120119                  val = (MHB2501[code*8 + j] >> (5-b)) & 1;
121120                  if (attr==1) {
122                     val = (state->m_refresh_counter & 0x20) ? val : 0;
121                     val = (m_refresh_counter & 0x20) ? val : 0;
123122                  }
124123               }
125124               if(attr==3) {
r17967r17968
134133         if (xpos>=6*40) break;
135134      }
136135   }
137   state->m_refresh_counter++;
136   m_refresh_counter++;
138137   return 0;
139138}
140139
r17967r17968
143142{
144143}
145144
146SCREEN_UPDATE_IND16( sapizps3 )
145UINT32 sapi1_state::screen_update_sapizps3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
147146{
148147   return 0;
149148}
trunk/src/mess/video/p2000m.c
r17967r17968
1717}
1818
1919
20SCREEN_UPDATE_IND16( p2000m )
20UINT32 p2000t_state::screen_update_p2000m(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
2121{
22   p2000t_state *state = screen.machine().driver_data<p2000t_state>();
23   UINT8 *videoram = state->m_videoram;
22   UINT8 *videoram = m_videoram;
2423   int offs, sx, sy, code, loop;
2524
2625   for (offs = 0; offs < 80 * 24; offs++)
r17967r17968
2827      sy = (offs / 80) * 20;
2928      sx = (offs % 80) * 12;
3029
31      if ((state->m_frame_count > 25) && (videoram[offs + 2048] & 0x40))
30      if ((m_frame_count > 25) && (videoram[offs + 2048] & 0x40))
3231         code = 32;
3332      else
3433      {
trunk/src/mess/video/special.c
r17967r17968
1414{
1515}
1616
17SCREEN_UPDATE_IND16( special )
17UINT32 special_state::screen_update_special(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
1818{
19   special_state *state = screen.machine().driver_data<special_state>();
2019   UINT8 code;
2120   int y, x, b;
2221
r17967r17968
2423   {
2524      for (y = 0; y < 256; y++)
2625      {
27         code = state->m_p_videoram[y + x*256];
26         code = m_p_videoram[y + x*256];
2827         for (b = 7; b >= 0; b--)
2928            bitmap.pix16(y, x*8+(7-b)) =  (code >> b) & 0x01;
3029      }
r17967r17968
3534{
3635}
3736
38SCREEN_UPDATE_IND16( specialp )
37UINT32 special_state::screen_update_specialp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
3938{
40   special_state *state = screen.machine().driver_data<special_state>();
4139   UINT8 code;
4240   int y, x, b;
4341
r17967r17968
4543   {
4644      for (y = 0; y < 256; y++)
4745      {
48         code = state->m_p_videoram[y + x*256];
46         code = m_p_videoram[y + x*256];
4947         for (b = 7; b >= 0; b--)
5048            bitmap.pix16(y, x*8+(7-b)) =  (code >> b) & 0x01;
5149      }
r17967r17968
8583   memset(m_specimx_colorram,0x70,0x3000);
8684}
8785
88SCREEN_UPDATE_IND16( specimx )
86UINT32 special_state::screen_update_specimx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
8987{
90   special_state *state = screen.machine().driver_data<special_state>();
9188   UINT8 code, color;
9289   int y, x, b;
9390
r17967r17968
9592   {
9693      for (y = 0; y < 256; y++)
9794      {
98         code = state->m_ram->pointer()[0x9000 + y + x*256];
99         color = state->m_specimx_colorram[y + x*256];
95         code = m_ram->pointer()[0x9000 + y + x*256];
96         color = m_specimx_colorram[y + x*256];
10097         for (b = 7; b >= 0; b--)
10198            bitmap.pix16(y, x*8+(7-b)) =  ((code >> b) & 0x01)==0 ? color & 0x0f : (color >> 4)& 0x0f ;
10299      }
r17967r17968
125122{
126123}
127124
128SCREEN_UPDATE_IND16( erik )
125UINT32 special_state::screen_update_erik(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
129126{
130   special_state *state = screen.machine().driver_data<special_state>();
131127   UINT8 code1, code2, color1, color2;
132128   int y, x, b;
133129   UINT8 *erik_video_ram_p1, *erik_video_ram_p2;
134130
135   erik_video_ram_p1 = state->m_ram->pointer() + 0x9000;
136   erik_video_ram_p2 = state->m_ram->pointer() + 0xd000;
131   erik_video_ram_p1 = m_ram->pointer() + 0x9000;
132   erik_video_ram_p2 = m_ram->pointer() + 0xd000;
137133
138134   for (x = 0; x < 48; x++)
139135   {
r17967r17968
144140
145141         for (b = 7; b >= 0; b--)
146142         {
147            color1 = ((code1 >> b) & 0x01)==0 ? state->m_erik_background : state->m_erik_color_1;
148            color2 = ((code2 >> b) & 0x01)==0 ? state->m_erik_background : state->m_erik_color_2;
143            color1 = ((code1 >> b) & 0x01)==0 ? m_erik_background : m_erik_color_1;
144            color2 = ((code2 >> b) & 0x01)==0 ? m_erik_background : m_erik_color_2;
149145            bitmap.pix16(y, x*8+(7-b)) =  color1 | color2;
150146         }
151147      }
trunk/src/mess/video/intv.c
r17967r17968
774774   }
775775}
776776
777SCREEN_UPDATE_IND16( intv )
777UINT32 intv_state::screen_update_intv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
778778{
779   intv_state *state = screen.machine().driver_data<intv_state>();
780   copybitmap(bitmap, state->m_bitmap, 0, 0, 0, 0, cliprect);
779   copybitmap(bitmap, m_bitmap, 0, 0, 0, 0, cliprect);
781780   return 0;
782781}
783782
784SCREEN_UPDATE_IND16( intvkbd )
783UINT32 intv_state::screen_update_intvkbd(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
785784{
786   intv_state *state = screen.machine().driver_data<intv_state>();
787   UINT8 *videoram = state->m_videoram;
785   UINT8 *videoram = m_videoram;
788786   int x,y,offs;
789787   int current_row;
790788//  char c;
791789
792790   /* Draw the underlying INTV screen first */
793   copybitmap(bitmap, state->m_bitmap, 0, 0, 0, 0, cliprect);
791   copybitmap(bitmap, m_bitmap, 0, 0, 0, 0, cliprect);
794792
795793   /* if the intvkbd text is not blanked, overlay it */
796   if (!state->m_intvkbd_text_blanked)
794   if (!m_intvkbd_text_blanked)
797795   {
798      current_row = (state->m_tms9927_last_row + 1) % state->m_tms9927_num_rows;
796      current_row = (m_tms9927_last_row + 1) % m_tms9927_num_rows;
799797      for(y=0;y<24;y++)
800798      {
801799         for(x=0;x<40;x++)
r17967r17968
808806               0,0,
809807               x<<3,y<<3, 0);
810808         }
811         if (current_row == state->m_tms9927_cursor_row)
809         if (current_row == m_tms9927_cursor_row)
812810         {
813811            /* draw the cursor as a solid white block */
814812            /* (should use a filled rect here!) */
r17967r17968
817815               191, /* a block */
818816               7,   /* white   */
819817               0,0,
820               (state->m_tms9927_cursor_col-1)<<3,y<<3, 0);
818               (m_tms9927_cursor_col-1)<<3,y<<3, 0);
821819         }
822         current_row = (current_row + 1) % state->m_tms9927_num_rows;
820         current_row = (current_row + 1) % m_tms9927_num_rows;
823821      }
824822   }
825823
826824#if 0
827825   // debugging
828   c = tape_motor_mode_desc[state->m_tape_motor_mode][0];
829   drawgfx_transpen(bitmap,&machine.screen[0].visarea, machine.gfx[1],
826   c = tape_motor_mode_desc[m_tape_motor_mode][0];
827   drawgfx_transpen(bitmap,&machine().screen[0].visarea, machine().gfx[1],
830828      c,
831829      1,
832830      0,0,
833831      0*8,0*8, 0);
834832   for(y=0;y<5;y++)
835833   {
836      drawgfx_transpen(bitmap,&machine.screen[0].visarea, machine.gfx[1],
837         state->m_tape_unknown_write[y]+'0',
834      drawgfx_transpen(bitmap,&machine().screen[0].visarea, machine().gfx[1],
835         m_tape_unknown_write[y]+'0',
838836         1,
839837         0,0,
840838         0*8,(y+2)*8, 0);
841839   }
842   drawgfx_transpen(bitmap,&machine.screen[0].visarea, machine.gfx[1],
843         state->m_tape_unknown_write[5]+'0',
840   drawgfx_transpen(bitmap,&machine().screen[0].visarea, machine().gfx[1],
841         m_tape_unknown_write[5]+'0',
844842         1,
845843         0,0,
846844         0*8,8*8, 0);
847   drawgfx_transpen(bitmap,&machine.screen[0].visarea, machine.gfx[1],
848         state->m_tape_interrupts_enabled+'0',
845   drawgfx_transpen(bitmap,&machine().screen[0].visarea, machine().gfx[1],
846         m_tape_interrupts_enabled+'0',
849847         1,
850848         0,0,
851849         0*8,10*8, 0);
trunk/src/mess/video/mikro80.c
r17967r17968
1515{
1616}
1717
18SCREEN_UPDATE_IND16( mikro80 )
18UINT32 mikro80_state::screen_update_mikro80(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
1919{
20   mikro80_state *state = screen.machine().driver_data<mikro80_state>();
21   UINT8 *gfx = state->memregion("gfx1")->base();
20   UINT8 *gfx = memregion("gfx1")->base();
2221   int x,y,b;
2322
2423   for(y = 0; y < 32*8; y++ )
r17967r17968
2625      for(x = 0; x < 64; x++ )
2726      {
2827         int addr = x + (y / 8)*64;
29         UINT8 code = gfx[state->m_video_ram [addr]*8+ (y % 8)];
30         UINT8 attr = state->m_cursor_ram[addr+1] & 0x80 ? 1 : 0;
28         UINT8 code = gfx[m_video_ram [addr]*8+ (y % 8)];
29         UINT8 attr = m_cursor_ram[addr+1] & 0x80 ? 1 : 0;
3130         for (b = 7; b >= 0; b--)
3231         {
3332            UINT8 col = (code >> b) & 0x01;
trunk/src/mess/video/ssystem3.c
r17967r17968
183183   }
184184}
185185
186SCREEN_UPDATE_IND16( ssystem3 )
186UINT32 ssystem3_state::screen_update_ssystem3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
187187{
188   ssystem3_state *state = screen.machine().driver_data<ssystem3_state>();
189188   int i;
190189
191190   for (i=0; i<4; i++) {
192      ssystem3_draw_7segment(bitmap, state->m_lcd.data[1+i], ssystem3_led_pos[i].x, ssystem3_led_pos[i].y);
191      ssystem3_draw_7segment(bitmap, m_lcd.data[1+i], ssystem3_led_pos[i].x, ssystem3_led_pos[i].y);
193192   }
194193
195   ssystem3_draw_led(bitmap, state->m_lcd.data[0]&1?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '0'); //?
196   ssystem3_draw_led(bitmap, state->m_lcd.data[0]&2?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '5');
197   ssystem3_draw_led(bitmap, state->m_lcd.data[0]&4?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '7');
198   ssystem3_draw_led(bitmap, state->m_lcd.data[0]&8?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, 'b');
199   ssystem3_draw_led(bitmap, state->m_lcd.data[0]&0x10?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '9');
200   ssystem3_draw_led(bitmap, state->m_lcd.data[0]&0x20?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '8');
201   ssystem3_draw_led(bitmap, state->m_lcd.data[0]&0x40?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, 'c');
202   ssystem3_draw_led(bitmap, state->m_lcd.data[0]&0x80?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '6');
203   ssystem3_draw_led(bitmap, state->m_lcd.data[1]&1?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '2');
204   ssystem3_draw_led(bitmap, state->m_lcd.data[2]&1?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '1'); //?
205   ssystem3_draw_led(bitmap, state->m_lcd.data[3]&1?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '3');
206   ssystem3_draw_led(bitmap, state->m_lcd.data[4]&1?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '4');
194   ssystem3_draw_led(bitmap, m_lcd.data[0]&1?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '0'); //?
195   ssystem3_draw_led(bitmap, m_lcd.data[0]&2?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '5');
196   ssystem3_draw_led(bitmap, m_lcd.data[0]&4?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '7');
197   ssystem3_draw_led(bitmap, m_lcd.data[0]&8?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, 'b');
198   ssystem3_draw_led(bitmap, m_lcd.data[0]&0x10?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '9');
199   ssystem3_draw_led(bitmap, m_lcd.data[0]&0x20?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '8');
200   ssystem3_draw_led(bitmap, m_lcd.data[0]&0x40?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, 'c');
201   ssystem3_draw_led(bitmap, m_lcd.data[0]&0x80?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '6');
202   ssystem3_draw_led(bitmap, m_lcd.data[1]&1?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '2');
203   ssystem3_draw_led(bitmap, m_lcd.data[2]&1?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '1'); //?
204   ssystem3_draw_led(bitmap, m_lcd.data[3]&1?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '3');
205   ssystem3_draw_led(bitmap, m_lcd.data[4]&1?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '4');
207206
208207   if (screen.machine().root_device().ioport("Configuration")->read()&1) { // playfield(optional device)
209208      static const int lcd_signs_on[]={
trunk/src/mess/video/rmnimbus.c
r17967r17968
651651    logerror("Video reset\n");
652652}
653653
654SCREEN_VBLANK( nimbus )
654void rmnimbus_state::screen_eof_nimbus(screen_device &screen, bool state)
655655{
656656
657657//    logerror("SCREEN_VBLANK( nimbus )\n");
658658}
659659
660SCREEN_UPDATE_IND16( nimbus )
660UINT32 rmnimbus_state::screen_update_nimbus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
661661{
662   rmnimbus_state *state = screen.machine().driver_data<rmnimbus_state>();
663662    int     XCoord;
664663    int     YCoord = screen.vpos();
665664
666665    for(XCoord=0;XCoord<SCREEN_WIDTH_PIXELS;XCoord++)
667666    {
668        bitmap.pix16(YCoord, XCoord)=state->m_video_mem[XCoord][YCoord];
667        bitmap.pix16(YCoord, XCoord)=m_video_mem[XCoord][YCoord];
669668    }
670669
671    state->m_hs_count++;
672    if((state->m_hs_count & 0x000F)>0x0A)
673        state->m_hs_count&=0xFFF0;
670    m_hs_count++;
671    if((m_hs_count & 0x000F)>0x0A)
672        m_hs_count&=0xFFF0;
674673
675674    return 0;
676675}
trunk/src/mess/video/mz80.c
r17967r17968
3636   m_p_chargen = memregion("chargen")->base();
3737}
3838
39SCREEN_UPDATE_IND16( mz80k )
39UINT32 mz80_state::screen_update_mz80k(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
4040{
41   mz80_state *state = screen.machine().driver_data<mz80_state>();
42   state->m_mz80k_vertical ^= 1;
43   state->m_mz80k_cursor_cnt++;
41   m_mz80k_vertical ^= 1;
42   m_mz80k_cursor_cnt++;
4443   UINT8 y,ra,chr,gfx;
4544   UINT16 x,sy=0,ma=0;
4645
r17967r17968
5251
5352         for (x = ma; x < ma + 40; x++)
5453         {
55            chr = state->m_p_videoram[x];
56            gfx = state->m_p_chargen[(chr<<3) | ra];
54            chr = m_p_videoram[x];
55            gfx = m_p_chargen[(chr<<3) | ra];
5756
5857            /* Display a scanline of a character */
5958            *p++ = BIT(gfx, 7);
r17967r17968
7271}
7372
7473// same as above except bits are in reverse order
75SCREEN_UPDATE_IND16( mz80kj )
74UINT32 mz80_state::screen_update_mz80kj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
7675{
77   mz80_state *state = screen.machine().driver_data<mz80_state>();
78   state->m_mz80k_vertical ^= 1;
79   state->m_mz80k_cursor_cnt++;
76   m_mz80k_vertical ^= 1;
77   m_mz80k_cursor_cnt++;
8078   UINT8 y,ra,chr,gfx;
8179   UINT16 x,sy=0,ma=0;
8280
r17967r17968
8886
8987         for (x = ma; x < ma + 40; x++)
9088         {
91            chr = state->m_p_videoram[x];
92            gfx = state->m_p_chargen[(chr<<3) | ra];
89            chr = m_p_videoram[x];
90            gfx = m_p_chargen[(chr<<3) | ra];
9391
9492            /* Display a scanline of a character */
9593            *p++ = BIT(gfx, 0);
r17967r17968
108106}
109107
110108// has twice as much video ram and uses a scroll register
111SCREEN_UPDATE_IND16( mz80a )
109UINT32 mz80_state::screen_update_mz80a(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
112110{
113   mz80_state *state = screen.machine().driver_data<mz80_state>();
114   state->m_mz80k_vertical ^= 1;
115   state->m_mz80k_cursor_cnt++;
111   m_mz80k_vertical ^= 1;
112   m_mz80k_cursor_cnt++;
116113   UINT8 y,ra,chr,gfx;
117   UINT16 x,sy=0, ma=state->m_p_ram[0x17d] | (state->m_p_ram[0x17e] << 8);
114   UINT16 x,sy=0, ma=m_p_ram[0x17d] | (m_p_ram[0x17e] << 8);
118115
119116   for(y = 0; y < 25; y++ )
120117   {
r17967r17968
124121
125122         for (x = ma; x < ma + 40; x++)
126123         {
127            chr = state->m_p_videoram[x&0x7ff];
128            gfx = state->m_p_chargen[(chr<<3) | ra];
124            chr = m_p_videoram[x&0x7ff];
125            gfx = m_p_chargen[(chr<<3) | ra];
129126
130127            /* Display a scanline of a character */
131128            *p++ = BIT(gfx, 7);
trunk/src/mess/video/poly88.c
r17967r17968
2626   m_FNT = memregion("chargen")->base();
2727}
2828
29SCREEN_UPDATE_IND16( poly88 )
29UINT32 poly88_state::screen_update_poly88(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
3030{
31   poly88_state *state = screen.machine().driver_data<poly88_state>();
3231   int x,y,j,b;
3332   UINT16 addr;
3433   int xpos;
r17967r17968
4039      xpos = 0;
4140      for(x = 0; x < 64; x++ )
4241      {
43         UINT8 code = state->m_video_ram[addr + x];
42         UINT8 code = m_video_ram[addr + x];
4443         if ((code & 0x80)==0)
4544         {
4645            for(j = 0; j < 15; j++ )
r17967r17968
7877               if (mcm6571a_shift[code]==0)
7978               {
8079                  if (j < 9)
81                     l = state->m_FNT[code*16 + j];
80                     l = m_FNT[code*16 + j];
8281               }
8382               else
8483               {
8584                  if ((j > 2) && (j < 12))
86                     l = state->m_FNT[code*16 + j - 3];
85                     l = m_FNT[code*16 + j - 3];
8786               }
8887
8988               for(b = 0; b < 7; b++ )
trunk/src/mess/video/ut88.c
r17967r17968
2525{
2626}
2727
28SCREEN_UPDATE_IND16( ut88 )
28UINT32 ut88_state::screen_update_ut88(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
2929{
30   ut88_state *state = screen.machine().driver_data<ut88_state>();
3130   int x,y;
3231
3332   for(y = 0; y < 28; y++ )
3433   {
3534      for(x = 0; x < 64; x++ )
3635      {
37         int code = state->m_p_videoram[ x + y*64 ] & 0x7f;
38         int attr = state->m_p_videoram[ x+1 + y*64 ] & 0x80;
36         int code = m_p_videoram[ x + y*64 ] & 0x7f;
37         int attr = m_p_videoram[ x+1 + y*64 ] & 0x80;
3938         drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], code | attr, 0, 0,0, x*8,y*8);
4039      }
4140   }
trunk/src/mess/video/llc.c
r17967r17968
1515   m_p_chargen = memregion("chargen")->base();
1616}
1717
18SCREEN_UPDATE_IND16( llc1 )
18UINT32 llc_state::screen_update_llc1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
1919{
20   llc_state *state = screen.machine().driver_data<llc_state>();
2120   UINT8 y,ra,chr,gfx,inv;
2221   UINT16 sy=0,ma=0,x;
2322
r17967r17968
2928
3029         for (x = ma; x < ma + 64; x++)
3130         {
32            inv = (state->m_p_videoram[x] & 0x80) ? 0xff : 0;
33            chr = state->m_p_videoram[x] & 0x7f;
31            inv = (m_p_videoram[x] & 0x80) ? 0xff : 0;
32            chr = m_p_videoram[x] & 0x7f;
3433
3534            /* get pattern of pixels for that character scanline */
36            gfx = state->m_p_chargen[ chr | (ra << 7) ] ^ inv;
35            gfx = m_p_chargen[ chr | (ra << 7) ] ^ inv;
3736
3837            /* Display a scanline of a character (8 pixels) */
3938            *p++ = BIT(gfx, 7);
r17967r17968
5150   return 0;
5251}
5352
54SCREEN_UPDATE_IND16( llc2 )
53UINT32 llc_state::screen_update_llc2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
5554{
56   llc_state *state = screen.machine().driver_data<llc_state>();
57   UINT8 y,ra,chr,gfx,inv, inv1=state->m_rv ? 0xff : 0;
55   UINT8 y,ra,chr,gfx,inv, inv1=m_rv ? 0xff : 0;
5856   UINT16 sy=0,ma=0,x;
5957
6058   for (y = 0; y < 32; y++)
r17967r17968
6664
6765         for (x = ma; x < ma + 64; x++)
6866         {
69            chr = state->m_p_videoram[x];
67            chr = m_p_videoram[x];
7068            if (chr==0x11) // inverse on
7169            {
7270               inv=0xff;
r17967r17968
7775               inv=0;
7876
7977            /* get pattern of pixels for that character scanline */
80            gfx = state->m_p_chargen[ (chr << 3) | ra ] ^ inv ^ inv1;
78            gfx = m_p_chargen[ (chr << 3) | ra ] ^ inv ^ inv1;
8179
8280            /* Display a scanline of a character (8 pixels) */
8381            *p++ = BIT(gfx, 7);
trunk/src/mess/video/pp01.c
r17967r17968
1515{
1616}
1717
18SCREEN_UPDATE_IND16( pp01 )
18UINT32 pp01_state::screen_update_pp01(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
1919{
20   pp01_state *state = screen.machine().driver_data<pp01_state>();
2120   UINT8 code_r,code_g,code_b;
2221   UINT8 col;
2322   int y, x, b;
r17967r17968
2726   {
2827      for (x = 0; x < 32; x++)
2928      {
30         code_r = ram[0x6000 + ((y+state->m_video_scroll)&0xff)*32 + x];
31         code_g = ram[0xa000 + ((y+state->m_video_scroll)&0xff)*32 + x];
32         code_b = ram[0xe000 + ((y+state->m_video_scroll)&0xff)*32 + x];
29         code_r = ram[0x6000 + ((y+m_video_scroll)&0xff)*32 + x];
30         code_g = ram[0xa000 + ((y+m_video_scroll)&0xff)*32 + x];
31         code_b = ram[0xe000 + ((y+m_video_scroll)&0xff)*32 + x];
3332         for (b = 0; b < 8; b++)
3433         {
3534            col = (((code_r >> b) & 0x01) ? 4 : 0) + (((code_g >> b) & 0x01) ? 2 : 0) + (((code_b >> b) & 0x01) ? 1 : 0);
trunk/src/mess/video/trs80.c
r17967r17968
5151
5252
5353/* 7 or 8-bit video, 32/64 characters per line = trs80, trs80l2, sys80 */
54SCREEN_UPDATE_IND16( trs80 )
54UINT32 trs80_state::screen_update_trs80(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
5555{
56   trs80_state *state = screen.machine().driver_data<trs80_state>();
5756   UINT8 y,ra,chr,gfx,gfxbit;
5857   UINT16 sy=0,ma=0,x;
59   UINT8 cols = BIT(state->m_mode, 0) ? 32 : 64;
60   UINT8 skip = BIT(state->m_mode, 0) ? 2 : 1;
58   UINT8 cols = BIT(m_mode, 0) ? 32 : 64;
59   UINT8 skip = BIT(m_mode, 0) ? 2 : 1;
6160
62   if (state->m_mode != state->m_size_store)
61   if (m_mode != m_size_store)
6362   {
64      state->m_size_store = state->m_mode & 1;
63      m_size_store = m_mode & 1;
6564      screen.set_visible_area(0, cols*6-1, 0, 16*12-1);
6665   }
6766
r17967r17968
7372
7473         for (x = ma; x < ma + 64; x+=skip)
7574         {
76            chr = state->m_p_videoram[x];
75            chr = m_p_videoram[x];
7776
7877            if (chr & 0x80)
7978            {
r17967r17968
8988            }
9089            else
9190            {
92               if (BIT(state->m_mode, 1) & (chr < 32)) chr+=64;
91               if (BIT(m_mode, 1) & (chr < 32)) chr+=64;
9392
9493               // if g,j,p,q,y; lower the descender
9594               if ((chr==0x2c)||(chr==0x3b)||(chr==0x67)||(chr==0x6a)||(chr==0x70)||(chr==0x71)||(chr==0x79))
9695               {
9796                  if ((ra < 10) && (ra > 1))
98                     gfx = state->m_p_chargen[(chr<<3) | (ra-2) ];
97                     gfx = m_p_chargen[(chr<<3) | (ra-2) ];
9998                  else
10099                     gfx = 0;
101100               }
102101               else
103102               {
104103                  if (ra < 8)
105                     gfx = state->m_p_chargen[(chr<<3) | ra ];
104                     gfx = m_p_chargen[(chr<<3) | ra ];
106105                  else
107106                     gfx = 0;
108107               }
r17967r17968
123122}
124123
125124/* 8-bit video, 32/64/40/80 characters per line = trs80m3, trs80m4. */
126SCREEN_UPDATE_IND16( trs80m4 )
125UINT32 trs80_state::screen_update_trs80m4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
127126{
128   trs80_state *state = screen.machine().driver_data<trs80_state>();
129127   UINT8 y,ra,chr,gfx,gfxbit;
130128   UINT16 sy=0,ma=0,x;
131129   UINT8 skip=1;
132   UINT8 cols = BIT(state->m_mode, 2) ? 80 : 64;
133   UINT8 rows = BIT(state->m_mode, 2) ? 24 : 16;
134   UINT8 lines = BIT(state->m_mode, 2) ? 10 : 12;
130   UINT8 cols = BIT(m_mode, 2) ? 80 : 64;
131   UINT8 rows = BIT(m_mode, 2) ? 24 : 16;
132   UINT8 lines = BIT(m_mode, 2) ? 10 : 12;
135133   UINT8 s_cols = cols;
136   UINT8 mask = BIT(state->m_mode, 5) ? 0xff : 0xbf;   /* Select Japanese or extended chars */
134   UINT8 mask = BIT(m_mode, 5) ? 0xff : 0xbf;   /* Select Japanese or extended chars */
137135
138   if (state->m_mode & 1)
136   if (m_mode & 1)
139137   {
140138      s_cols >>= 1;
141139      skip = 2;
142140   }
143141
144   if ((state->m_mode & 0x7f) != state->m_size_store)
142   if ((m_mode & 0x7f) != m_size_store)
145143   {
146      state->m_size_store = state->m_mode & 5;
144      m_size_store = m_mode & 5;
147145      screen.set_visible_area(0, s_cols*8-1, 0, rows*lines-1);
148146   }
149147
r17967r17968
155153
156154         for (x = ma; x < ma + cols; x+=skip)
157155         {
158            chr = state->m_p_videoram[x+state->m_start_address];
156            chr = m_p_videoram[x+m_start_address];
159157
160            if (((chr & 0xc0) == 0xc0) && (~state->m_mode & 8))
158            if (((chr & 0xc0) == 0xc0) && (~m_mode & 8))
161159            {
162160               if (ra < 8)
163                  gfx = state->m_p_chargen[((chr&mask)<<3) | ra ];
161                  gfx = m_p_chargen[((chr&mask)<<3) | ra ];
164162               else
165163                  gfx = 0;
166164
r17967r17968
174172               *p++ = BIT(gfx, 0);
175173            }
176174            else
177            if ((chr & 0x80) && (~state->m_mode & 8))
175            if ((chr & 0x80) && (~m_mode & 8))
178176            {
179177               gfxbit = (ra & 0x0c)>>1;
180178               /* Display one line of a lores character */
r17967r17968
192190            {
193191               /* get pattern of pixels for that character scanline */
194192               if (ra < 8)
195                  gfx = state->m_p_chargen[((chr&0x7f)<<3) | ra ];
193                  gfx = m_p_chargen[((chr&0x7f)<<3) | ra ];
196194               else
197195                  gfx = 0;
198196
199197               /* if inverse mode, and bit 7 set, invert gfx */
200               if (BIT(state->m_mode, 3) & BIT(chr, 7))
198               if (BIT(m_mode, 3) & BIT(chr, 7))
201199                  gfx ^= 0xff;
202200
203201               /* Display a scanline of a character */
r17967r17968
218216}
219217
220218/* 7 or 8-bit video, 64/32 characters per line = ht1080z, ht1080z2, ht108064 */
221SCREEN_UPDATE_IND16( ht1080z )
219UINT32 trs80_state::screen_update_ht1080z(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
222220{
223   trs80_state *state = screen.machine().driver_data<trs80_state>();
224221   UINT8 y,ra,chr,gfx,gfxbit;
225222   UINT16 sy=0,ma=0,x;
226   UINT8 cols = BIT(state->m_mode, 0) ? 32 : 64;
227   UINT8 skip = BIT(state->m_mode, 0) ? 2 : 1;
223   UINT8 cols = BIT(m_mode, 0) ? 32 : 64;
224   UINT8 skip = BIT(m_mode, 0) ? 2 : 1;
228225
229   if (state->m_mode != state->m_size_store)
226   if (m_mode != m_size_store)
230227   {
231      state->m_size_store = state->m_mode & 1;
228      m_size_store = m_mode & 1;
232229      screen.set_visible_area(0, cols*6-1, 0, 16*12-1);
233230   }
234231
r17967r17968
240237
241238         for (x = ma; x < ma + 64; x+=skip)
242239         {
243            chr = state->m_p_videoram[x];
240            chr = m_p_videoram[x];
244241
245242            if (chr & 0x80)
246243            {
r17967r17968
256253            }
257254            else
258255            {
259               if ((state->m_mode & 2) && (chr < 32)) chr+=64;
256               if ((m_mode & 2) && (chr < 32)) chr+=64;
260257
261258               /* get pattern of pixels for that character scanline */
262               gfx = state->m_p_chargen[(chr<<4) | ra ];
259               gfx = m_p_chargen[(chr<<4) | ra ];
263260
264261               /* Display a scanline of a character (6 pixels) */
265262               *p++ = BIT(gfx, 7);
r17967r17968
277274}
278275
279276/* 8-bit video, 64/80 characters per line = lnw80 */
280SCREEN_UPDATE_IND16( lnw80 )
277UINT32 trs80_state::screen_update_lnw80(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
281278{
282   trs80_state *state = screen.machine().driver_data<trs80_state>();
283279   static const UINT16 rows[] = { 0, 0x200, 0x100, 0x300, 1, 0x201, 0x101, 0x301 };
284280   UINT8 chr,gfx,gfxbit,bg=7,fg=0;
285281   UINT16 sy=0,ma=0,x,y,ra;
286   UINT8 cols = BIT(state->m_mode, 4) ? 80 : 64;
282   UINT8 cols = BIT(m_mode, 4) ? 80 : 64;
287283
288284   /* Although the OS can select 32-character mode, it is not supported by hardware */
289   if (state->m_mode != state->m_size_store)
285   if (m_mode != m_size_store)
290286   {
291      state->m_size_store = state->m_mode & 0x10;
287      m_size_store = m_mode & 0x10;
292288      screen.set_visible_area(0, cols*6-1, 0, 16*12-1);
293289   }
294290
295   if (state->m_mode & 8)
291   if (m_mode & 8)
296292   {
297293      bg = 0;
298294      fg = 7;
299295   }
300296
301   switch (state->m_mode & 0x30)
297   switch (m_mode & 0x30)
302298   {
303299      case 0:               // MODE 0
304300         for (y = 0; y < 16; y++)
r17967r17968
309305
310306               for (x = ma; x < ma + 64; x++)
311307               {
312                  chr = state->m_p_videoram[x];
308                  chr = m_p_videoram[x];
313309
314310                  if (chr & 0x80)
315311                  {
r17967r17968
327323                  {
328324                     /* get pattern of pixels for that character scanline */
329325                     if (ra < 8)
330                        gfx = state->m_p_chargen[(chr<<1) | rows[ra] ];
326                        gfx = m_p_chargen[(chr<<1) | rows[ra] ];
331327                     else
332328                        gfx = 0;
333329
r17967r17968
354350
355351               for (x = 0; x < 0x40; x++)
356352               {
357                  gfx = state->m_p_gfxram[ y | x | ra];
353                  gfx = m_p_gfxram[ y | x | ra];
358354                  /* Display 6 pixels in normal region */
359355                  *p++ = BIT(gfx, 0) ? fg : bg;
360356                  *p++ = BIT(gfx, 1) ? fg : bg;
r17967r17968
366362
367363               for (x = 0; x < 0x10; x++)
368364               {
369                  gfx = state->m_p_gfxram[ 0x3000 | x | (ra & 0xc00) | ((ra & 0x3000) >> 8)];
365                  gfx = m_p_gfxram[ 0x3000 | x | (ra & 0xc00) | ((ra & 0x3000) >> 8)];
370366                  /* Display 6 pixels in extended region */
371367                  *p++ = BIT(gfx, 0) ? fg : bg;
372368                  *p++ = BIT(gfx, 1) ? fg : bg;
r17967r17968
390386
391387               for (x = 0; x < 0x40; x++)
392388               {
393                  gfx = state->m_p_gfxram[ y | x | ra];
389                  gfx = m_p_gfxram[ y | x | ra];
394390                  /* Display 6 pixels in normal region */
395391                  fg = (gfx & 0x38) >> 3;
396392                  *p++ = fg;
r17967r17968
417413
418414               for (x = 0; x < 0x40; x++)
419415               {
420                  gfx = state->m_p_gfxram[ y | x | ra];
421                  fg = (state->m_p_videoram[ 0x3c00 | x | y ] & 0x38) >> 3;
416                  gfx = m_p_gfxram[ y | x | ra];
417                  fg = (m_p_videoram[ 0x3c00 | x | y ] & 0x38) >> 3;
422418                  /* Display 6 pixels in normal region */
423419                  *p++ = BIT(gfx, 0) ? fg : bg;
424420                  *p++ = BIT(gfx, 1) ? fg : bg;
425421                  *p++ = BIT(gfx, 2) ? fg : bg;
426                  fg = state->m_p_videoram[ 0x3c00 | x | y ] & 0x07;
422                  fg = m_p_videoram[ 0x3c00 | x | y ] & 0x07;
427423                  *p++ = BIT(gfx, 3) ? fg : bg;
428424                  *p++ = BIT(gfx, 4) ? fg : bg;
429425                  *p++ = BIT(gfx, 5) ? fg : bg;
r17967r17968
431427
432428               for (x = 0; x < 0x10; x++)
433429               {
434                  gfx = state->m_p_gfxram[ 0x3000 | x | (ra & 0xc00) | ((ra & 0x3000) >> 8)];
435                  fg = (state->m_p_gfxram[ 0x3c00 | x | y ] & 0x38) >> 3;
430                  gfx = m_p_gfxram[ 0x3000 | x | (ra & 0xc00) | ((ra & 0x3000) >> 8)];
431                  fg = (m_p_gfxram[ 0x3c00 | x | y ] & 0x38) >> 3;
436432                  /* Display 6 pixels in extended region */
437433                  *p++ = BIT(gfx, 0) ? fg : bg;
438434                  *p++ = BIT(gfx, 1) ? fg : bg;
439435                  *p++ = BIT(gfx, 2) ? fg : bg;
440                  fg = state->m_p_gfxram[ 0x3c00 | x | y ] & 0x07;
436                  fg = m_p_gfxram[ 0x3c00 | x | y ] & 0x07;
441437                  *p++ = BIT(gfx, 3) ? fg : bg;
442438                  *p++ = BIT(gfx, 4) ? fg : bg;
443439                  *p++ = BIT(gfx, 5) ? fg : bg;
r17967r17968
450446}
451447
452448/* lores characters are in the character generator. Each character is 8x16. */
453SCREEN_UPDATE_IND16( radionic )
449UINT32 trs80_state::screen_update_radionic(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
454450{
455   trs80_state *state = screen.machine().driver_data<trs80_state>();
456451   UINT8 y,ra,chr,gfx;
457452   UINT16 sy=0,ma=0,x;
458   UINT8 cols = BIT(state->m_mode, 0) ? 32 : 64;
459   UINT8 skip = BIT(state->m_mode, 0) ? 2 : 1;
453   UINT8 cols = BIT(m_mode, 0) ? 32 : 64;
454   UINT8 skip = BIT(m_mode, 0) ? 2 : 1;
460455
461   if (state->m_mode != state->m_size_store)
456   if (m_mode != m_size_store)
462457   {
463      state->m_size_store = state->m_mode & 1;
458      m_size_store = m_mode & 1;
464459      screen.set_visible_area(0, cols*8-1, 0, 16*16-1);
465460   }
466461
r17967r17968
472467
473468         for (x = ma; x < ma + 64; x+=skip)
474469         {
475            chr = state->m_p_videoram[x];
470            chr = m_p_videoram[x];
476471
477472            /* get pattern of pixels for that character scanline */
478            gfx = state->m_p_chargen[(chr<<3) | (ra & 7) | (ra & 8) << 8];
473            gfx = m_p_chargen[(chr<<3) | (ra & 7) | (ra & 8) << 8];
479474
480475            /* Display a scanline of a character (8 pixels) */
481476            *p++ = BIT(gfx, 0);
r17967r17968
493488   return 0;
494489}
495490
496SCREEN_UPDATE_IND16( meritum )
491UINT32 trs80_state::screen_update_meritum(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
497492/* lores characters are in the character generator. Each character is 6x11. */
498493{
499   trs80_state *state = screen.machine().driver_data<trs80_state>();
500494   UINT8 y,ra,chr,gfx;
501495   UINT16 sy=0,ma=0,x;
502   UINT8 cols = BIT(state->m_mode, 0) ? 32 : 64;
503   UINT8 skip = BIT(state->m_mode, 0) ? 2 : 1;
496   UINT8 cols = BIT(m_mode, 0) ? 32 : 64;
497   UINT8 skip = BIT(m_mode, 0) ? 2 : 1;
504498
505   if (state->m_mode != state->m_size_store)
499   if (m_mode != m_size_store)
506500   {
507      state->m_size_store = state->m_mode;
501      m_size_store = m_mode;
508502      screen.set_visible_area(0, cols*6-1, 0, 16*11-1);
509503   }
510504
r17967r17968
516510
517511         for (x = ma; x < ma + 64; x+=skip)
518512         {
519            chr = state->m_p_videoram[x];
513            chr = m_p_videoram[x];
520514
521515            /* get pattern of pixels for that character scanline */
522            gfx = state->m_p_chargen[(chr<<4) | ra];
516            gfx = m_p_chargen[(chr<<4) | ra];
523517
524518            /* Display a scanline of a character (6 pixels) */
525519            *p++ = BIT(gfx, 5);
trunk/src/mess/video/odyssey2.c
r17967r17968
603603
604604***************************************************************************/
605605
606SCREEN_UPDATE_IND16( odyssey2 )
606UINT32 odyssey2_state::screen_update_odyssey2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
607607{
608   odyssey2_state *state = screen.machine().driver_data<odyssey2_state>();
609   copybitmap( bitmap, state->m_tmp_bitmap, 0, 0, 0, 0, cliprect );
608   copybitmap( bitmap, m_tmp_bitmap, 0, 0, 0, 0, cliprect );
610609
611610   return 0;
612611}
trunk/src/mess/video/apple2.c
r17967r17968
472472}
473473
474474
475SCREEN_UPDATE_IND16( apple2 )
475UINT32 apple2_state::screen_update_apple2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
476476{
477   apple2_state *state = screen.machine().driver_data<apple2_state>();
478477   int page;
479478   UINT32 new_a2;
480   running_machine &machine = screen.machine();
481479
482   /* calculate the state->m_flash value */
483   state->m_flash = ((screen.machine().time() * 4).seconds & 1) ? 1 : 0;
480   /* calculate the m_flash value */
481   m_flash = ((screen.machine().time() * 4).seconds & 1) ? 1 : 0;
484482
485483   /* read out relevant softswitch variables; to see what has changed */
486   new_a2 = effective_a2(state);
484   new_a2 = effective_a2(this);
487485   if (new_a2 & VAR_80STORE)
488486      new_a2 &= ~VAR_PAGE2;
489487   new_a2 &= VAR_TEXT | VAR_MIXED | VAR_HIRES | VAR_DHIRES | VAR_80COL | VAR_PAGE2 | VAR_ALTCHARSET;
490488
491   if (ALWAYS_REFRESH || (new_a2 != state->m_old_a2))
489   if (ALWAYS_REFRESH || (new_a2 != m_old_a2))
492490   {
493      state->m_old_a2 = new_a2;
491      m_old_a2 = new_a2;
494492   }
495493
496494   /* choose which page to use */
497495   page = (new_a2 & VAR_PAGE2) ? 1 : 0;
498496
499497   /* choose the video mode to draw */
500   if (effective_a2(state) & VAR_TEXT)
498   if (effective_a2(this) & VAR_TEXT)
501499   {
502500      /* text screen - TK2000 uses HGR for text */
503        if (state->m_machinetype == TK2000)
501        if (m_machinetype == TK2000)
504502        {
505            apple2_hires_draw(machine, bitmap, cliprect, page, 0, 191);
503            apple2_hires_draw(machine(), bitmap, cliprect, page, 0, 191);
506504        }
507505        else
508506        {
509            apple2_text_draw(machine, bitmap, cliprect, page, 0, 191);
507            apple2_text_draw(machine(), bitmap, cliprect, page, 0, 191);
510508        }
511509   }
512   else if ((effective_a2(state) & VAR_HIRES) && (effective_a2(state) & VAR_MIXED))
510   else if ((effective_a2(this) & VAR_HIRES) && (effective_a2(this) & VAR_MIXED))
513511   {
514512      /* hi-res on top; text at bottom */
515      apple2_hires_draw(machine, bitmap, cliprect, page, 0, 159);
516      apple2_text_draw(machine, bitmap, cliprect, page, 160, 191);
513      apple2_hires_draw(machine(), bitmap, cliprect, page, 0, 159);
514      apple2_text_draw(machine(), bitmap, cliprect, page, 160, 191);
517515   }
518   else if (effective_a2(state) & VAR_HIRES)
516   else if (effective_a2(this) & VAR_HIRES)
519517   {
520518      /* hi-res screen */
521      apple2_hires_draw(machine, bitmap, cliprect, page, 0, 191);
519      apple2_hires_draw(machine(), bitmap, cliprect, page, 0, 191);
522520   }
523   else if (effective_a2(state) & VAR_MIXED)
521   else if (effective_a2(this) & VAR_MIXED)
524522   {
525523      /* lo-res on top; text at bottom */
526      apple2_lores_draw(machine, bitmap, cliprect, page, 0, 159);
527      apple2_text_draw(machine, bitmap, cliprect, page, 160, 191);
524      apple2_lores_draw(machine(), bitmap, cliprect, page, 0, 159);
525      apple2_text_draw(machine(), bitmap, cliprect, page, 160, 191);
528526   }
529527   else
530528   {
531529      /* lo-res screen */
532      apple2_lores_draw(machine, bitmap, cliprect, page, 0, 191);
530      apple2_lores_draw(machine(), bitmap, cliprect, page, 0, 191);
533531   }
534532   return 0;
535533}
trunk/src/mess/video/primo.c
r17967r17968
3636}
3737
3838
39SCREEN_UPDATE_IND16( primo )
39UINT32 primo_state::screen_update_primo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
4040{
4141   int primo_scanline;
4242
trunk/src/mess/video/ti85.c
r17967r17968
147147{
148148}
149149
150SCREEN_UPDATE_IND16( ti85 )
150UINT32 ti85_state::screen_update_ti85(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
151151{
152   ti85_state *state = screen.machine().driver_data<ti85_state>();
153   address_space &space = *state->m_maincpu->space(AS_PROGRAM);
152   address_space &space = *m_maincpu->space(AS_PROGRAM);
154153   int x,y,b;
155154   int brightnes;
156155   int lcdmem;
157156
158   if (!state->m_LCD_status || !state->m_timer_interrupt_mask)
157   if (!m_LCD_status || !m_timer_interrupt_mask)
159158   {
160      for (y=0; y<state->m_ti_screen_y_size; y++)
161         for (x=0; x<state->m_ti_screen_x_size; x++)
159      for (y=0; y<m_ti_screen_y_size; y++)
160         for (x=0; x<m_ti_screen_x_size; x++)
162161            for (b=0; b<8; b++)
163               bitmap.pix16(y, x*8+b) = ti85_palette[state->m_LCD_contrast&0x1f][6];
162               bitmap.pix16(y, x*8+b) = ti85_palette[m_LCD_contrast&0x1f][6];
164163      return 0;
165164   }
166165
167   lcdmem =  ((state->m_LCD_memory_base & 0x3F) + 0xc0) << 0x08;
166   lcdmem =  ((m_LCD_memory_base & 0x3F) + 0xc0) << 0x08;
168167
169   memcpy (state->m_frames, state->m_frames+state->m_ti_video_memory_size, sizeof (UINT8) * (state->m_ti_number_of_frames-1) * state->m_ti_video_memory_size);
168   memcpy (m_frames, m_frames+m_ti_video_memory_size, sizeof (UINT8) * (m_ti_number_of_frames-1) * m_ti_video_memory_size);
170169
171        for (y=0; y<state->m_ti_screen_y_size; y++)
172      for (x=0; x<state->m_ti_screen_x_size; x++)
173         *(state->m_frames+(state->m_ti_number_of_frames-1)*state->m_ti_video_memory_size+y*state->m_ti_screen_x_size+x) = space.read_byte(lcdmem+y*state->m_ti_screen_x_size+x);
170        for (y=0; y<m_ti_screen_y_size; y++)
171      for (x=0; x<m_ti_screen_x_size; x++)
172         *(m_frames+(m_ti_number_of_frames-1)*m_ti_video_memory_size+y*m_ti_screen_x_size+x) = space.read_byte(lcdmem+y*m_ti_screen_x_size+x);
174173
175       for (y=0; y<state->m_ti_screen_y_size; y++)
176      for (x=0; x<state->m_ti_screen_x_size; x++)
174       for (y=0; y<m_ti_screen_y_size; y++)
175      for (x=0; x<m_ti_screen_x_size; x++)
177176         for (b=0; b<8; b++)
178177         {
179            brightnes = ((*(state->m_frames+0*state->m_ti_video_memory_size+y*state->m_ti_screen_x_size+x)>>(7-b)) & 0x01)
180                 + ((*(state->m_frames+1*state->m_ti_video_memory_size+y*state->m_ti_screen_x_size+x)>>(7-b)) & 0x01)
181                 + ((*(state->m_frames+2*state->m_ti_video_memory_size+y*state->m_ti_screen_x_size+x)>>(7-b)) & 0x01)
182                 + ((*(state->m_frames+3*state->m_ti_video_memory_size+y*state->m_ti_screen_x_size+x)>>(7-b)) & 0x01)
183                 + ((*(state->m_frames+4*state->m_ti_video_memory_size+y*state->m_ti_screen_x_size+x)>>(7-b)) & 0x01)
184                 + ((*(state->m_frames+5*state->m_ti_video_memory_size+y*state->m_ti_screen_x_size+x)>>(7-b)) & 0x01);
178            brightnes = ((*(m_frames+0*m_ti_video_memory_size+y*m_ti_screen_x_size+x)>>(7-b)) & 0x01)
179                 + ((*(m_frames+1*m_ti_video_memory_size+y*m_ti_screen_x_size+x)>>(7-b)) & 0x01)
180                 + ((*(m_frames+2*m_ti_video_memory_size+y*m_ti_screen_x_size+x)>>(7-b)) & 0x01)
181                 + ((*(m_frames+3*m_ti_video_memory_size+y*m_ti_screen_x_size+x)>>(7-b)) & 0x01)
182                 + ((*(m_frames+4*m_ti_video_memory_size+y*m_ti_screen_x_size+x)>>(7-b)) & 0x01)
183                 + ((*(m_frames+5*m_ti_video_memory_size+y*m_ti_screen_x_size+x)>>(7-b)) & 0x01);
185184
186            bitmap.pix16(y, x*8+b) = ti85_palette[state->m_LCD_contrast&0x1f][brightnes];
185            bitmap.pix16(y, x*8+b) = ti85_palette[m_LCD_contrast&0x1f][brightnes];
187186         }
188187   return 0;
189188}
trunk/src/mess/video/busicom.c
r17967r17968
18161816{
18171817}
18181818
1819SCREEN_UPDATE_IND16( busicom )
1819UINT32 busicom_state::screen_update_busicom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
18201820{
1821   busicom_state *state = screen.machine().driver_data<busicom_state>();
18221821   int y, x, b, j;
18231822   //34x44
18241823   for (y = 0; y < 11; y++)
18251824   {
1826      UINT8 col = 8 * state->m_printer_line_color[y];
1825      UINT8 col = 8 * m_printer_line_color[y];
18271826      for (x = 0; x < 17; x++)
18281827      {
1829         UINT8 chr = state->m_printer_line[y][x];
1828         UINT8 chr = m_printer_line[y][x];
18301829         for (j = 0; j < 44; j++) {
18311830            for (b = 0; b < 34; b++)
18321831            {
trunk/src/mess/video/hec2video.c
r17967r17968
116116   Init_Hector_Palette(machine());
117117}
118118
119SCREEN_UPDATE_IND16( hec2hrp )
119UINT32 hec2hrp_state::screen_update_hec2hrp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
120120{
121   hec2hrp_state *state = screen.machine().driver_data<hec2hrp_state>();
122   UINT8 *videoram = state->m_videoram;
123   UINT8 *videoram_HR = state->m_hector_videoram;
124   if (state->m_hector_flag_hr==1)
121   UINT8 *videoram = m_videoram;
122   UINT8 *videoram_HR = m_hector_videoram;
123   if (m_hector_flag_hr==1)
125124      {
126      if (state->m_hector_flag_80c==0)
125      if (m_hector_flag_80c==0)
127126         {
128127            screen.set_visible_area(0, 243, 0, 227);
129128            hector_hr( screen.machine(), bitmap , &videoram_HR[0], 227, 64);
trunk/src/mess/video/pc1251.c
r17967r17968
114114#define DOWN 62
115115#define RIGHT 68
116116
117SCREEN_UPDATE_IND16( pc1251 )
117UINT32 pc1251_state::screen_update_pc1251(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
118118{
119   pc1251_state *state = screen.machine().driver_data<pc1251_state>();
120119   int x, y, i, j;
121120   int color[2];
122121   running_machine &machine = screen.machine();
r17967r17968
130129   for (x=RIGHT,y=DOWN, i=0; i<60; x+=3)
131130   {
132131      for (j=0; j<5; j++, i++, x+=3)
133         drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], state->m_reg[i],
132         drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], m_reg[i],
134133               PC1251_CONTRAST,0,0,
135134               x,y);
136135   }
137136   for (i=0x7b; i>=0x40; x+=3)
138137   {
139138      for (j=0; j<5; j++, i--, x+=3)
140         drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], state->m_reg[i],
139         drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], m_reg[i],
141140               PC1251_CONTRAST,0,0,
142141               x,y);
143142   }
144143
145144   pocketc_draw_special(bitmap, RIGHT+134, DOWN-10, de,
146                  state->m_reg[0x3c] & 0x08 ? color[1] : color[0]);
145                  m_reg[0x3c] & 0x08 ? color[1] : color[0]);
147146   pocketc_draw_special(bitmap, RIGHT+142, DOWN-10, g,
148                  state->m_reg[0x3c] & 0x04 ? color[1] : color[0]);
147                  m_reg[0x3c] & 0x04 ? color[1] : color[0]);
149148   pocketc_draw_special(bitmap, RIGHT+146, DOWN-10, rad,
150                  state->m_reg[0x3d] & 0x04 ? color[1] : color[0]);
149                  m_reg[0x3d] & 0x04 ? color[1] : color[0]);
151150   pocketc_draw_special(bitmap, RIGHT+18, DOWN-10, def,
152                  state->m_reg[0x3c] & 0x01 ? color[1] : color[0]);
151                  m_reg[0x3c] & 0x01 ? color[1] : color[0]);
153152   pocketc_draw_special(bitmap, RIGHT, DOWN-10, shift,
154                  state->m_reg[0x3d] & 0x02 ? color[1] : color[0]);
153                  m_reg[0x3d] & 0x02 ? color[1] : color[0]);
155154   pocketc_draw_special(bitmap, RIGHT+38, DOWN-10, pro,
156                  state->m_reg[0x3e] & 0x01 ? color[1] : color[0]);
155                  m_reg[0x3e] & 0x01 ? color[1] : color[0]);
157156   pocketc_draw_special(bitmap, RIGHT+53, DOWN-10, run,
158                  state->m_reg[0x3e] & 0x02 ? color[1] : color[0]);
157                  m_reg[0x3e] & 0x02 ? color[1] : color[0]);
159158   pocketc_draw_special(bitmap, RIGHT+68, DOWN-10, rsv,
160                  state->m_reg[0x3e] & 0x04 ? color[1] : color[0]);
159                  m_reg[0x3e] & 0x04 ? color[1] : color[0]);
161160
162161   /* 0x3c 1 def?, 4 g, 8 de
163162       0x3d 2 shift, 4 rad, 8 error
trunk/src/mess/video/vc4000.c
r17967r17968
646646      }
647647}
648648
649SCREEN_UPDATE_IND16( vc4000 )
649UINT32 vc4000_state::screen_update_vc4000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
650650{
651   vc4000_state *state = screen.machine().driver_data<vc4000_state>();
652   copybitmap(bitmap, *state->m_bitmap, 0, 0, 0, 0, cliprect);
651   copybitmap(bitmap, *m_bitmap, 0, 0, 0, 0, cliprect);
653652   return 0;
654653}
trunk/src/mess/video/pk8020.c
r17967r17968
1515{
1616}
1717
18SCREEN_UPDATE_IND16( pk8020 )
18UINT32 pk8020_state::screen_update_pk8020(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
1919{
20   pk8020_state *state = screen.machine().driver_data<pk8020_state>();
2120   int y, x, b, j;
22   UINT8 *gfx = state->memregion("gfx1")->base();
21   UINT8 *gfx = memregion("gfx1")->base();
2322   UINT8 *ram = screen.machine().device<ram_device>(RAM_TAG)->pointer();
2423
2524   for (y = 0; y < 16; y++)
r17967r17968
2928         UINT8 chr = ram[x +(y*64) + 0x40000];
3029         UINT8 attr= ram[x +(y*64) + 0x40400];
3130         for (j = 0; j < 16; j++) {
32            UINT32 addr = 0x10000 + x + ((y*16+j)*64) + (state->m_video_page * 0xC000);
31            UINT32 addr = 0x10000 + x + ((y*16+j)*64) + (m_video_page * 0xC000);
3332            UINT8 code1 = ram[addr];
3433            UINT8 code2 = ram[addr + 0x4000];
3534            UINT8 code3 = ram[addr + 0x8000];
36            UINT8 code4 = gfx[((chr<<4) + j) + (state->m_font*0x1000)];
35            UINT8 code4 = gfx[((chr<<4) + j) + (m_font*0x1000)];
3736            if (attr) code4 ^= 0xff;
3837            for (b = 0; b < 8; b++)
3938            {
trunk/src/mess/video/galaxy.c
r17967r17968
120120   machine().primary_screen->register_screen_bitmap(m_bitmap);
121121}
122122
123SCREEN_UPDATE_IND16( galaxy )
123UINT32 galaxy_state::screen_update_galaxy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
124124{
125   galaxy_state *state = screen.machine().driver_data<galaxy_state>();
126   state->m_gal_video_timer->adjust(attotime::zero, 0, attotime::never);
127   if (state->m_interrupts_enabled == FALSE)
125   m_gal_video_timer->adjust(attotime::zero, 0, attotime::never);
126   if (m_interrupts_enabled == FALSE)
128127   {
129128      const rectangle black_area(0, 384 - 1, 0, 208 - 1);
130      state->m_bitmap.fill(0, black_area);
129      m_bitmap.fill(0, black_area);
131130   }
132   state->m_interrupts_enabled = FALSE;
133   copybitmap(bitmap, state->m_bitmap, 0, 0, 0, 0, cliprect);
131   m_interrupts_enabled = FALSE;
132   copybitmap(bitmap, m_bitmap, 0, 0, 0, 0, cliprect);
134133   return 0;
135134}
136135
trunk/src/mess/video/bbc.c
r17967r17968
637637
638638
639639
640SCREEN_UPDATE_IND16( bbc )
640UINT32 bbc_state::screen_update_bbc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
641641{
642642
643643    mc6845_device *mc6845 = screen.machine().device<mc6845_device>("mc6845");
r17967r17968
647647
648648
649649
650    bbc_state *state = screen.machine().driver_data<bbc_state>();
651650    long c;
652651
653652    //logerror ("Box %d by %d \n",cliprect.min_y,cliprect.max_y);
r17967r17968
655654    c = 0; // this is used to time out the screen redraw, in the case that the 6845 is in some way out state.
656655
657656
658    state->m_BBC_bitmap=bitmap;
657    m_BBC_bitmap=bitmap;
659658
660    state->m_BBC_display_left=&state->m_BBC_bitmap->pix16(0);
661    state->m_BBC_display_right=state->m_BBC_display_left;
662    state->m_BBC_display=state->m_BBC_display_left;
659    m_BBC_display_left=&m_BBC_bitmap->pix16(0);
660    m_BBC_display_right=m_BBC_display_left;
661    m_BBC_display=m_BBC_display_left;
663662
664663    // loop until the end of the Vertical Sync pulse
665664    // or until a timeout (this catches the 6845 with silly register values that would not give a VSYNC signal)
666    while((state->m_BBC_VSync)&&(c<60000))
665    while((m_BBC_VSync)&&(c<60000))
667666    {
668667        // Clock the 6845
669668        m6845_clock(screen.machine());
r17967r17968
673672
674673    // loop until the Vertical Sync pulse goes high
675674    // or until a timeout (this catches the 6845 with silly register values that would not give a VSYNC signal)
676    while((!state->m_BBC_VSync)&&(c<60000))
675    while((!m_BBC_VSync)&&(c<60000))
677676    {
678        if ((state->m_y_screen_pos>=cliprect.min_y) && (state->m_y_screen_pos<=cliprect.max_y)) (state->m_draw_function)(screen.machine());
677        if ((m_y_screen_pos>=cliprect.min_y) && (m_y_screen_pos<=cliprect.max_y)) (m_draw_function)(screen.machine());
679678
680679        // and check the cursor
681        if (state->m_VideoULA_CR) BBC_Clock_CR(state);
680        if (m_VideoULA_CR) BBC_Clock_CR(this);
682681
683682        // Clock the 6845
684683        m6845_clock(screen.machine());
trunk/src/mess/video/fm7.c
r17967r17968
15111511   m_video.vsync_flag = 0;
15121512}
15131513
1514SCREEN_UPDATE_IND16( fm7 )
1514UINT32 fm7_state::screen_update_fm7(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
15151515{
1516   fm7_state *state = screen.machine().driver_data<fm7_state>();
15171516   UINT8 code_r = 0,code_g = 0,code_b = 0;
15181517   UINT8 code_r2 = 0,code_g2 = 0,code_b2 = 0;
15191518   UINT8 code_r3 = 0,code_g3 = 0,code_b3 = 0;
r17967r17968
15221521   int y, x, b;
15231522   UINT16 page = 0x0000;
15241523
1525   if(state->m_video.display_video_page != 0)
1524   if(m_video.display_video_page != 0)
15261525      page = 0xc000;
15271526
1528   if(state->m_video.crt_enable == 0)
1527   if(m_video.crt_enable == 0)
15291528      return 0;
15301529
1531   if(state->m_video.modestatus & 0x40)  // 320x200 mode
1530   if(m_video.modestatus & 0x40)  // 320x200 mode
15321531   {
15331532      for (y = 0; y < 200; y++)
15341533      {
15351534         for (x = 0; x < 40; x++)
15361535         {
1537            if(!(state->m_video.multi_page & 0x40))
1536            if(!(m_video.multi_page & 0x40))
15381537            {
1539               code_r = state->m_video_ram[0x8000 + ((y*40 + x + state->m_video.vram_offset) & 0x1fff)];
1540               code_r2 = state->m_video_ram[0xa000 + ((y*40 + x + state->m_video.vram_offset) & 0x1fff)];
1541               code_r3 = state->m_video_ram[0x14000 + ((y*40 + x + state->m_video.vram_offset2) & 0x1fff)];
1542               code_r4 = state->m_video_ram[0x16000 + ((y*40 + x + state->m_video.vram_offset2) & 0x1fff)];
1538               code_r = m_video_ram[0x8000 + ((y*40 + x + m_video.vram_offset) & 0x1fff)];
1539               code_r2 = m_video_ram[0xa000 + ((y*40 + x + m_video.vram_offset) & 0x1fff)];
1540               code_r3 = m_video_ram[0x14000 + ((y*40 + x + m_video.vram_offset2) & 0x1fff)];
1541               code_r4 = m_video_ram[0x16000 + ((y*40 + x + m_video.vram_offset2) & 0x1fff)];
15431542            }
1544            if(!(state->m_video.multi_page & 0x20))
1543            if(!(m_video.multi_page & 0x20))
15451544            {
1546               code_g = state->m_video_ram[0x4000 + ((y*40 + x + state->m_video.vram_offset) & 0x1fff)];
1547               code_g2 = state->m_video_ram[0x6000 + ((y*40 + x + state->m_video.vram_offset) & 0x1fff)];
1548               code_g3 = state->m_video_ram[0x10000 + ((y*40 + x + state->m_video.vram_offset2) & 0x1fff)];
1549               code_g4 = state->m_video_ram[0x12000 + ((y*40 + x + state->m_video.vram_offset2) & 0x1fff)];
1545               code_g = m_video_ram[0x4000 + ((y*40 + x + m_video.vram_offset) & 0x1fff)];
1546               code_g2 = m_video_ram[0x6000 + ((y*40 + x + m_video.vram_offset) & 0x1fff)];
1547               code_g3 = m_video_ram[0x10000 + ((y*40 + x + m_video.vram_offset2) & 0x1fff)];
1548               code_g4 = m_video_ram[0x12000 + ((y*40 + x + m_video.vram_offset2) & 0x1fff)];
15501549            }
1551            if(!(state->m_video.multi_page & 0x10))
1550            if(!(m_video.multi_page & 0x10))
15521551            {
1553               code_b = state->m_video_ram[0x0000 + ((y*40 + x + state->m_video.vram_offset) & 0x1fff)];
1554               code_b2 = state->m_video_ram[0x2000 + ((y*40 + x + state->m_video.vram_offset) & 0x1fff)];
1555               code_b3 = state->m_video_ram[0xc000 + ((y*40 + x + state->m_video.vram_offset2) & 0x1fff)];
1556               code_b4 = state->m_video_ram[0xe000 + ((y*40 + x + state->m_video.vram_offset2) & 0x1fff)];
1552               code_b = m_video_ram[0x0000 + ((y*40 + x + m_video.vram_offset) & 0x1fff)];
1553               code_b2 = m_video_ram[0x2000 + ((y*40 + x + m_video.vram_offset) & 0x1fff)];
1554               code_b3 = m_video_ram[0xc000 + ((y*40 + x + m_video.vram_offset2) & 0x1fff)];
1555               code_b4 = m_video_ram[0xe000 + ((y*40 + x + m_video.vram_offset2) & 0x1fff)];
15571556            }
15581557            for (b = 0; b < 8; b++)
15591558            {
r17967r17968
15721571      {
15731572         for (x = 0; x < 80; x++)
15741573         {
1575            if(!(state->m_video.multi_page & 0x40))
1576               code_r = state->m_video_ram[page + 0x8000 + ((y*80 + x + state->m_video.vram_offset) & 0x3fff)];
1577            if(!(state->m_video.multi_page & 0x20))
1578               code_g = state->m_video_ram[page + 0x4000 + ((y*80 + x + state->m_video.vram_offset) & 0x3fff)];
1579            if(!(state->m_video.multi_page & 0x10))
1580               code_b = state->m_video_ram[page + 0x0000 + ((y*80 + x + state->m_video.vram_offset) & 0x3fff)];
1574            if(!(m_video.multi_page & 0x40))
1575               code_r = m_video_ram[page + 0x8000 + ((y*80 + x + m_video.vram_offset) & 0x3fff)];
1576            if(!(m_video.multi_page & 0x20))
1577               code_g = m_video_ram[page + 0x4000 + ((y*80 + x + m_video.vram_offset) & 0x3fff)];
1578            if(!(m_video.multi_page & 0x10))
1579               code_b = m_video_ram[page + 0x0000 + ((y*80 + x + m_video.vram_offset) & 0x3fff)];
15811580            for (b = 0; b < 8; b++)
15821581            {
15831582               col = (((code_r >> b) & 0x01) ? 4 : 0) + (((code_g >> b) & 0x01) ? 2 : 0) + (((code_b >> b) & 0x01) ? 1 : 0);
trunk/src/mess/video/vtech2.c
r17967r17968
113113   0x26a0,0x2ea0,0x36a0,0x3ea0,0x27a0,0x2fa0,0x37a0,0x3fa0
114114};
115115
116SCREEN_UPDATE_IND16( laser )
116UINT32 vtech2_state::screen_update_laser(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
117117{
118   vtech2_state *state = screen.machine().driver_data<vtech2_state>();
119   UINT8 *videoram = state->m_videoram;
118   UINT8 *videoram = m_videoram;
120119   int offs, x, y;
121120   int full_refresh = 1;
122121
123122   if( full_refresh )
124      bitmap.fill(((state->m_laser_bg_mode >> 4) & 15)<<1, cliprect);
123      bitmap.fill(((m_laser_bg_mode >> 4) & 15)<<1, cliprect);
125124
126   if (state->m_laser_latch & 0x08)
125   if (m_laser_latch & 0x08)
127126   {
128127      /* graphics modes */
129      switch (state->m_laser_bg_mode & 7)
128      switch (m_laser_bg_mode & 7)
130129        {
131130      case  0:
132131      case  1:
r17967r17968
139138            offs = offs_2[y];
140139            for( x = 0; x < 80; x++, offs++ )
141140            {
142               int sx, sy, code, color = state->m_laser_two_color;
141               int sx, sy, code, color = m_laser_two_color;
143142               sy = BORDER_V/2 + y;
144143               sx = BORDER_H/2 + x * 8;
145144               code = videoram[offs];
r17967r17968
217216            offs = offs_1[y];
218217            for( x = 0; x < 40; x++, offs++ )
219218            {
220               int sx, sy, code, color = state->m_laser_two_color;
219               int sx, sy, code, color = m_laser_two_color;
221220               sy = BORDER_V/2 + y;
222221               sx = BORDER_H/2 + x * 16;
223222               code = videoram[offs];
r17967r17968
250249   else
251250   {
252251      /* text modes */
253      if (state->m_laser_bg_mode & 1)
252      if (m_laser_bg_mode & 1)
254253      {
255254         /* 80 columns text mode */
256255         for( y = 0; y < 24; y++ )
r17967r17968
258257            offs = ((y & 7) << 8) + ((y >> 3) * 80);
259258            for( x = 0; x < 80; x++, offs++ )
260259            {
261               int sx, sy, code, color = state->m_laser_two_color;
260               int sx, sy, code, color = m_laser_two_color;
262261               sy = BORDER_V/2 + y * 8;
263262               sx = BORDER_H/2 + x * 8;
264263               code = videoram[0x3800+offs];
r17967r17968
285284      }
286285   }
287286
288   if( state->m_laser_frame_time > 0 )
287   if( m_laser_frame_time > 0 )
289288   {
290      popmessage("%s", state->m_laser_frame_message);
289      popmessage("%s", m_laser_frame_message);
291290   }
292291   return 0;
293292}
trunk/src/mess/drivers/comquest.c
r17967r17968
252252   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
253253   MCFG_SCREEN_SIZE(64*4, 128)   /* 160 x 102 */
254254   MCFG_SCREEN_VISIBLE_AREA(0, 64*4-1, 0, 128-1)
255   MCFG_SCREEN_UPDATE_STATIC( comquest )
255   MCFG_SCREEN_UPDATE_DRIVER(comquest_state, screen_update_comquest)
256256
257257   MCFG_GFXDECODE( comquest )
258258   MCFG_PALETTE_LENGTH(2)
trunk/src/mess/drivers/rainbow.c
r17967r17968
130130
131131    void update_kbd_irq();
132132   virtual void machine_reset();
133public:   
134   UINT32 screen_update_rainbow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
133135};
134136
135137void rainbow_state::machine_start()
r17967r17968
203205    m_kbd8251->input_callback(SERIAL_STATE_CTS); // raise clear to send
204206}
205207
206static SCREEN_UPDATE_IND16( rainbow )
208UINT32 rainbow_state::screen_update_rainbow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
207209{
208210   device_t *devconf = screen.machine().device("vt100_video");
209211   rainbow_video_update( devconf, bitmap, cliprect);
r17967r17968
474476   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
475477   MCFG_SCREEN_SIZE(80*10, 25*10)
476478   MCFG_SCREEN_VISIBLE_AREA(0, 80*10-1, 0, 25*10-1)
477   MCFG_SCREEN_UPDATE_STATIC(rainbow)
479   MCFG_SCREEN_UPDATE_DRIVER(rainbow_state, screen_update_rainbow)
478480   MCFG_GFXDECODE(rainbow)
479481   MCFG_PALETTE_LENGTH(2)
480482   MCFG_PALETTE_INIT(monochrome_green)
trunk/src/mess/drivers/pdp1.c
r17967r17968
19631963   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
19641964   MCFG_SCREEN_SIZE(virtual_width, virtual_height)
19651965   MCFG_SCREEN_VISIBLE_AREA(0, virtual_width-1, 0, virtual_height-1)
1966   MCFG_SCREEN_UPDATE_STATIC(pdp1)
1967   MCFG_SCREEN_VBLANK_STATIC(pdp1)
1966   MCFG_SCREEN_UPDATE_DRIVER(pdp1_state, screen_update_pdp1)
1967   MCFG_SCREEN_VBLANK_DRIVER(pdp1_state, screen_eof_pdp1)
19681968
19691969   MCFG_CRT_ADD( "crt", pdp1_crt_interface )
19701970   MCFG_DEVICE_ADD("readt", PDP1_READTAPE, 0)
trunk/src/mess/drivers/homelab.c
r17967r17968
7171   DECLARE_VIDEO_START(homelab3);
7272   DECLARE_MACHINE_RESET(brailab4);
7373   DECLARE_VIDEO_START(brailab4);
74   UINT32 screen_update_homelab2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
75   UINT32 screen_update_homelab3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7476};
7577
7678static INTERRUPT_GEN( homelab_frame )
r17967r17968
558560   m_p_videoram = memregion("maincpu")->base()+0x17800;
559561}
560562
561static SCREEN_UPDATE_IND16( homelab2 )
563UINT32 homelab_state::screen_update_homelab2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
562564{
563   homelab_state *state = screen.machine().driver_data<homelab_state>();
564565   UINT8 y,ra,chr,gfx;
565566   UINT16 sy=0,ma=0,x;
566567
r17967r17968
572573
573574         for (x = ma; x < ma + 40; x++)
574575         {
575            chr = state->m_p_videoram[x]; // get char in videoram
576            gfx = state->m_p_chargen[chr | (ra<<8)]; // get dot pattern in chargen
576            chr = m_p_videoram[x]; // get char in videoram
577            gfx = m_p_chargen[chr | (ra<<8)]; // get dot pattern in chargen
577578
578579            /* Display a scanline of a character */
579580            *p++ = BIT(gfx, 7);
r17967r17968
591592   return 0;
592593}
593594
594static SCREEN_UPDATE_IND16( homelab3 )
595UINT32 homelab_state::screen_update_homelab3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
595596{
596   homelab_state *state = screen.machine().driver_data<homelab_state>();
597597   UINT8 y,ra,chr,gfx;
598598   UINT16 sy=0,ma=0,x;
599599
r17967r17968
605605
606606         for (x = ma; x < ma + 64; x++)
607607         {
608            chr = state->m_p_videoram[x]; // get char in videoram
609            gfx = state->m_p_chargen[chr | (ra<<8)]; // get dot pattern in chargen
608            chr = m_p_videoram[x]; // get char in videoram
609            gfx = m_p_chargen[chr | (ra<<8)]; // get dot pattern in chargen
610610
611611            /* Display a scanline of a character */
612612            *p++ = BIT(gfx, 7);
r17967r17968
750750   MCFG_SCREEN_SIZE(40*8, 25*8)
751751   MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 0, 25*8-1)
752752   MCFG_VIDEO_START_OVERRIDE(homelab_state,homelab2)
753   MCFG_SCREEN_UPDATE_STATIC(homelab2)
753   MCFG_SCREEN_UPDATE_DRIVER(homelab_state, screen_update_homelab2)
754754   MCFG_GFXDECODE(homelab)
755755   MCFG_PALETTE_LENGTH(2)
756756   MCFG_PALETTE_INIT(monochrome_green)
r17967r17968
780780   MCFG_SCREEN_SIZE(64*8, 32*8)
781781   MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1)
782782   MCFG_VIDEO_START_OVERRIDE(homelab_state,homelab3)
783   MCFG_SCREEN_UPDATE_STATIC(homelab3)
783   MCFG_SCREEN_UPDATE_DRIVER(homelab_state, screen_update_homelab3)
784784   MCFG_GFXDECODE(homelab)
785785   MCFG_PALETTE_LENGTH(2)
786786   MCFG_PALETTE_INIT(monochrome_green)
r17967r17968
810810   MCFG_SCREEN_SIZE(64*8, 32*8)
811811   MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1)
812812   MCFG_VIDEO_START_OVERRIDE(homelab_state,brailab4)
813   MCFG_SCREEN_UPDATE_STATIC(homelab3)
813   MCFG_SCREEN_UPDATE_DRIVER(homelab_state, screen_update_homelab3)
814814   MCFG_GFXDECODE(homelab)
815815   MCFG_PALETTE_LENGTH(2)
816816   MCFG_PALETTE_INIT(monochrome_green)
trunk/src/mess/drivers/vt520.c
r17967r17968
2020   DECLARE_READ8_MEMBER(vt520_some_r);
2121   virtual void machine_reset();
2222   virtual void video_start();
23   UINT32 screen_update_vt520(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2324};
2425
2526
r17967r17968
6263{
6364}
6465
65static SCREEN_UPDATE_IND16( vt520 )
66UINT32 vt520_state::screen_update_vt520(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
6667{
6768   return 0;
6869}
r17967r17968
8081   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
8182   MCFG_SCREEN_SIZE(802, 480)
8283   MCFG_SCREEN_VISIBLE_AREA(0, 802-1, 0, 480-1)
83   MCFG_SCREEN_UPDATE_STATIC(vt520)
84   MCFG_SCREEN_UPDATE_DRIVER(vt520_state, screen_update_vt520)
8485   MCFG_PALETTE_LENGTH(2)
8586   MCFG_PALETTE_INIT(black_and_white)
8687
trunk/src/mess/drivers/pc100.c
r17967r17968
6363   virtual void machine_start();
6464   virtual void machine_reset();
6565   virtual void video_start();
66   UINT32 screen_update_pc100(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6667};
6768
6869void pc100_state::video_start()
6970{
7071}
7172
72static SCREEN_UPDATE_IND16( pc100 )
73UINT32 pc100_state::screen_update_pc100(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
7374{
74   pc100_state *state = screen.machine().driver_data<pc100_state>();
7575   int x,y;
7676   int count;
7777   int xi;
7878   int dot;
7979   int pen[4],pen_i;
8080
81   count = ((state->m_crtc.vstart + 0x20) * 0x40);
81   count = ((m_crtc.vstart + 0x20) * 0x40);
8282
8383   for(y=0;y<512;y++)
8484   {
r17967r17968
8989         for(xi=0;xi<16;xi++)
9090         {
9191            for(pen_i=0;pen_i<4;pen_i++)
92               pen[pen_i] = (state->m_vram[count+pen_i*0x10000] >> xi) & 1;
92               pen[pen_i] = (m_vram[count+pen_i*0x10000] >> xi) & 1;
9393
9494            dot = 0;
9595            for(pen_i=0;pen_i<4;pen_i++)
r17967r17968
395395   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
396396   MCFG_SCREEN_SIZE(1024, 1024)
397397   MCFG_SCREEN_VISIBLE_AREA(0, 768-1, 0, 512-1)
398   MCFG_SCREEN_UPDATE_STATIC(pc100)
398   MCFG_SCREEN_UPDATE_DRIVER(pc100_state, screen_update_pc100)
399399   MCFG_GFXDECODE(pc100)
400400   MCFG_PALETTE_LENGTH(16)
401401//  MCFG_PALETTE_INIT(black_and_white)
trunk/src/mess/drivers/hp48.c
r17967r17968
953953   MCFG_SCREEN_VBLANK_TIME(0)
954954   MCFG_SCREEN_SIZE ( 131, 64 )
955955   MCFG_SCREEN_VISIBLE_AREA( 0, 130, 0, 63 )
956   MCFG_SCREEN_UPDATE_STATIC( hp48 )
956   MCFG_SCREEN_UPDATE_DRIVER(hp48_state, screen_update_hp48)
957957
958958   MCFG_PALETTE_LENGTH( 256 ) /* monochrome, but with varying contrast and grayscale */
959959
trunk/src/mess/drivers/apple3.c
r17967r17968
8282   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
8383   MCFG_SCREEN_SIZE(280*2, 192)
8484   MCFG_SCREEN_VISIBLE_AREA(0, (280*2)-1,0,192-1)
85   MCFG_SCREEN_UPDATE_STATIC( apple3 )
85   MCFG_SCREEN_UPDATE_DRIVER(apple3_state, screen_update_apple3)
8686
8787   MCFG_PALETTE_LENGTH(16)
8888   MCFG_PALETTE_INIT_OVERRIDE(apple3_state, apple2 )
trunk/src/mess/drivers/unistar.c
r17967r17968
1818
1919   virtual void machine_reset();
2020   virtual void video_start();
21   UINT32 screen_update_unistar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2122};
2223
2324
r17967r17968
4546{
4647}
4748
48static SCREEN_UPDATE_IND16( unistar )
49UINT32 unistar_state::screen_update_unistar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
4950{
5051   return 0;
5152}
r17967r17968
8182   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
8283   MCFG_SCREEN_SIZE(640, 480)
8384   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
84   MCFG_SCREEN_UPDATE_STATIC(unistar)
85   MCFG_SCREEN_UPDATE_DRIVER(unistar_state, screen_update_unistar)
8586   MCFG_GFXDECODE(unistar)
8687   MCFG_PALETTE_LENGTH(2)
8788   MCFG_PALETTE_INIT(black_and_white)
trunk/src/mess/drivers/mz2000.c
r17967r17968
7878   DECLARE_WRITE8_MEMBER(mz2000_gvram_mask_w);
7979   virtual void machine_reset();
8080   virtual void video_start();
81   UINT32 screen_update_mz2000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8182};
8283
8384void mz2000_state::video_start()
8485{
8586}
8687
87static SCREEN_UPDATE_IND16( mz2000 )
88UINT32 mz2000_state::screen_update_mz2000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
8889{
89   mz2000_state *state = screen.machine().driver_data<mz2000_state>();
9090   UINT8 *tvram = screen.machine().root_device().memregion("tvram")->base();
9191   UINT8 *gvram = screen.machine().root_device().memregion("gvram")->base();
92   UINT8 *gfx_data = state->memregion("chargen")->base();
92   UINT8 *gfx_data = memregion("chargen")->base();
9393   int x,y,xi,yi;
9494   UINT8 x_size;
9595   UINT32 count;
r17967r17968
106106            pen  = ((gvram[count+0x4000] >> (xi)) & 1) ? 1 : 0; //B
107107            pen |= ((gvram[count+0x8000] >> (xi)) & 1) ? 2 : 0; //R
108108            pen |= ((gvram[count+0xc000] >> (xi)) & 1) ? 4 : 0; //G
109            pen &= state->m_gvram_mask;
109            pen &= m_gvram_mask;
110110
111111            bitmap.pix16(y*2+0, x+xi) = screen.machine().pens[pen];
112112            bitmap.pix16(y*2+1, x+xi) = screen.machine().pens[pen];
r17967r17968
115115      }
116116   }
117117
118   x_size = (state->m_width80+1)*40;
118   x_size = (m_width80+1)*40;
119119
120120   for(y=0;y<25;y++)
121121   {
122122      for(x=0;x<x_size;x++)
123123      {
124124         UINT8 tile = tvram[y*x_size+x];
125         UINT8 color = state->m_tvram_attr & 7;
125         UINT8 color = m_tvram_attr & 7;
126126
127         for(yi=0;yi<8*(state->m_hi_mode+1);yi++)
127         for(yi=0;yi<8*(m_hi_mode+1);yi++)
128128         {
129129            for(xi=0;xi<8;xi++)
130130            {
r17967r17968
133133               UINT16 tile_offset;
134134
135135               res_x = x * 8 + xi;
136               res_y = y * (8 *(state->m_hi_mode+1)) + yi;
136               res_y = y * (8 *(m_hi_mode+1)) + yi;
137137
138               if(res_x > 640-1 || res_y > (200*(state->m_hi_mode+1))-1)
138               if(res_x > 640-1 || res_y > (200*(m_hi_mode+1))-1)
139139                  continue;
140140
141               tile_offset = tile*(8*(state->m_hi_mode+1))+yi + (state->m_hi_mode * 0x800);
141               tile_offset = tile*(8*(m_hi_mode+1))+yi + (m_hi_mode * 0x800);
142142
143143               pen = ((gfx_data[tile_offset] >> (7-xi)) & 1) ? color : -1;
144144
145145               /* TODO: clean this up */
146146               if(pen != -1)
147147               {
148                  if(state->m_hi_mode)
148                  if(m_hi_mode)
149149                  {
150                     if(state->m_width80 == 0)
150                     if(m_width80 == 0)
151151                     {
152152                        bitmap.pix16(res_y, res_x*2+0) = screen.machine().pens[pen];
153153                        bitmap.pix16(res_y, res_x*2+1) = screen.machine().pens[pen];
r17967r17968
159159                  }
160160                  else
161161                  {
162                     if(state->m_width80 == 0)
162                     if(m_width80 == 0)
163163                     {
164164                        bitmap.pix16(res_y*2+0, res_x*2+0) = screen.machine().pens[pen];
165165                        bitmap.pix16(res_y*2+0, res_x*2+1) = screen.machine().pens[pen];
r17967r17968
853853   MCFG_GFXDECODE(mz2000)
854854   MCFG_PALETTE_LENGTH(8)
855855
856   MCFG_SCREEN_UPDATE_STATIC(mz2000)
856   MCFG_SCREEN_UPDATE_DRIVER(mz2000_state, screen_update_mz2000)
857857
858858   MCFG_SPEAKER_STANDARD_MONO("mono")
859859
trunk/src/mess/drivers/z100.c
r17967r17968
204204   virtual void machine_reset();
205205   virtual void video_start();
206206   virtual void palette_init();
207   UINT32 screen_update_z100(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
207208};
208209
209#define mc6845_h_char_total    (state->m_crtc_vreg[0])
210#define mc6845_h_display      (state->m_crtc_vreg[1])
211#define mc6845_h_sync_pos      (state->m_crtc_vreg[2])
212#define mc6845_sync_width      (state->m_crtc_vreg[3])
213#define mc6845_v_char_total      (state->m_crtc_vreg[4])
214#define mc6845_v_total_adj      (state->m_crtc_vreg[5])
215#define mc6845_v_display      (state->m_crtc_vreg[6])
216#define mc6845_v_sync_pos      (state->m_crtc_vreg[7])
217#define mc6845_mode_ctrl      (state->m_crtc_vreg[8])
218#define mc6845_tile_height      (state->m_crtc_vreg[9]+1)
219#define mc6845_cursor_y_start   (state->m_crtc_vreg[0x0a])
220#define mc6845_cursor_y_end    (state->m_crtc_vreg[0x0b])
221#define mc6845_start_addr      (((state->m_crtc_vreg[0x0c]<<8) & 0xff00) | (state->m_crtc_vreg[0x0d] & 0xff))
222#define mc6845_cursor_addr     (((state->m_crtc_vreg[0x0e]<<8) & 0xff00) | (state->m_crtc_vreg[0x0f] & 0xff))
223#define mc6845_light_pen_addr   (((state->m_crtc_vreg[0x10]<<8) & 0xff00) | (state->m_crtc_vreg[0x11] & 0xff))
224#define mc6845_update_addr     (((state->m_crtc_vreg[0x12]<<8) & 0xff00) | (state->m_crtc_vreg[0x13] & 0xff))
210#define mc6845_h_char_total    (m_crtc_vreg[0])
211#define mc6845_h_display      (m_crtc_vreg[1])
212#define mc6845_h_sync_pos      (m_crtc_vreg[2])
213#define mc6845_sync_width      (m_crtc_vreg[3])
214#define mc6845_v_char_total      (m_crtc_vreg[4])
215#define mc6845_v_total_adj      (m_crtc_vreg[5])
216#define mc6845_v_display      (m_crtc_vreg[6])
217#define mc6845_v_sync_pos      (m_crtc_vreg[7])
218#define mc6845_mode_ctrl      (m_crtc_vreg[8])
219#define mc6845_tile_height      (m_crtc_vreg[9]+1)
220#define mc6845_cursor_y_start   (m_crtc_vreg[0x0a])
221#define mc6845_cursor_y_end    (m_crtc_vreg[0x0b])
222#define mc6845_start_addr      (((m_crtc_vreg[0x0c]<<8) & 0xff00) | (m_crtc_vreg[0x0d] & 0xff))
223#define mc6845_cursor_addr     (((m_crtc_vreg[0x0e]<<8) & 0xff00) | (m_crtc_vreg[0x0f] & 0xff))
224#define mc6845_light_pen_addr   (((m_crtc_vreg[0x10]<<8) & 0xff00) | (m_crtc_vreg[0x11] & 0xff))
225#define mc6845_update_addr     (((m_crtc_vreg[0x12]<<8) & 0xff00) | (m_crtc_vreg[0x13] & 0xff))
225226
226227
227228void z100_state::video_start()
r17967r17968
230231   m_gvram = auto_alloc_array_clear(machine(), UINT8, 0x30000);
231232}
232233
233static SCREEN_UPDATE_IND16( z100 )
234UINT32 z100_state::screen_update_z100(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
234235{
235   z100_state *state = screen.machine().driver_data<z100_state>();
236236   int x,y,xi,yi;
237237   int dot;
238238   int i;
r17967r17968
253253            {
254254               dot = 0;
255255               for(i=0;i<3;i++)
256                  dot |= ((state->m_gvram[(base_offs & 0xffff)+0x10000*i] >> (7-xi)) & 1) << i; // b, r, g
256                  dot |= ((m_gvram[(base_offs & 0xffff)+0x10000*i] >> (7-xi)) & 1) << i; // b, r, g
257257
258               dot &= state->m_display_mask;
258               dot &= m_display_mask;
259259
260260               /* overwrite */
261               if(state->m_flash)
262                  dot = state->m_display_mask;
261               if(m_flash)
262                  dot = m_display_mask;
263263
264264               if(y*mc6845_tile_height+yi < 216 && x*8+xi < 640) /* TODO: safety check */
265265                  bitmap.pix16(y*mc6845_tile_height+yi, x*8+xi) = screen.machine().pens[dot];
r17967r17968
785785   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
786786   MCFG_SCREEN_SIZE(640, 480)
787787   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
788   MCFG_SCREEN_UPDATE_STATIC(z100)
788   MCFG_SCREEN_UPDATE_DRIVER(z100_state, screen_update_z100)
789789   MCFG_PALETTE_LENGTH(8)
790790
791791   /* Devices */
trunk/src/mess/drivers/macpci.c
r17967r17968
8787{
8888}
8989
90static SCREEN_UPDATE_IND16( pippin )
90UINT32 macpci_state::screen_update_pippin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
9191{
9292   return 0;
9393}
r17967r17968
116116   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
117117   MCFG_SCREEN_SIZE(640, 480)
118118   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
119   MCFG_SCREEN_UPDATE_STATIC(pippin)
119   MCFG_SCREEN_UPDATE_DRIVER(macpci_state, screen_update_pippin)
120120
121121   MCFG_PALETTE_LENGTH(2)
122122   MCFG_PALETTE_INIT(black_and_white)
trunk/src/mess/drivers/c65.c
r17967r17968
232232 *
233233 *************************************/
234234
235static SCREEN_UPDATE_IND16( c65 )
235UINT32 c65_state::screen_update_c65(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
236236{
237237   device_t *vic3 = screen.machine().device("vic3");
238238
r17967r17968
317317   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
318318   MCFG_SCREEN_SIZE(525 * 2, 520 * 2)
319319   MCFG_SCREEN_VISIBLE_AREA(VIC6567_STARTVISIBLECOLUMNS ,(VIC6567_STARTVISIBLECOLUMNS + VIC6567_VISIBLECOLUMNS - 1) * 2, VIC6567_STARTVISIBLELINES, VIC6567_STARTVISIBLELINES + VIC6567_VISIBLELINES - 1)
320   MCFG_SCREEN_UPDATE_STATIC( c65 )
320   MCFG_SCREEN_UPDATE_DRIVER(c65_state, screen_update_c65)
321321
322322   MCFG_PALETTE_LENGTH(0x100)
323323   MCFG_PALETTE_INIT_OVERRIDE(c65_state, c65 )
trunk/src/mess/drivers/dai.c
r17967r17968
213213   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
214214   MCFG_SCREEN_SIZE(1056, 542)
215215   MCFG_SCREEN_VISIBLE_AREA(0, 1056-1, 0, 302-1)
216   MCFG_SCREEN_UPDATE_STATIC( dai )
216   MCFG_SCREEN_UPDATE_DRIVER(dai_state, screen_update_dai)
217217
218218   MCFG_GFXDECODE(dai)
219219   MCFG_PALETTE_LENGTH(sizeof (dai_palette) / 3)
trunk/src/mess/drivers/pt68k4.c
r17967r17968
2424   required_shared_ptr<UINT16> m_p_ram;
2525   virtual void machine_reset();
2626   virtual void video_start();
27   UINT32 screen_update_pt68k4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2728};
2829
2930static ADDRESS_MAP_START(pt68k4_mem, AS_PROGRAM, 16, pt68k4_state)
r17967r17968
5152{
5253}
5354
54static SCREEN_UPDATE_IND16( pt68k4 )
55UINT32 pt68k4_state::screen_update_pt68k4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
5556{
5657   return 0;
5758}
r17967r17968
6869   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
6970   MCFG_SCREEN_SIZE(640, 480)
7071   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
71   MCFG_SCREEN_UPDATE_STATIC(pt68k4)
72   MCFG_SCREEN_UPDATE_DRIVER(pt68k4_state, screen_update_pt68k4)
7273   MCFG_PALETTE_LENGTH(2)
7374   MCFG_PALETTE_INIT(black_and_white)
7475MACHINE_CONFIG_END
trunk/src/mess/drivers/multi16.c
r17967r17968
3232   virtual void machine_start();
3333   virtual void machine_reset();
3434   virtual void video_start();
35   UINT32 screen_update_multi16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3536};
3637
3738
r17967r17968
3940{
4041}
4142
42#define mc6845_h_char_total    (state->m_crtc_vreg[0])
43#define mc6845_h_display      (state->m_crtc_vreg[1])
44#define mc6845_h_sync_pos      (state->m_crtc_vreg[2])
45#define mc6845_sync_width      (state->m_crtc_vreg[3])
46#define mc6845_v_char_total      (state->m_crtc_vreg[4])
47#define mc6845_v_total_adj      (state->m_crtc_vreg[5])
48#define mc6845_v_display      (state->m_crtc_vreg[6])
49#define mc6845_v_sync_pos      (state->m_crtc_vreg[7])
50#define mc6845_mode_ctrl      (state->m_crtc_vreg[8])
51#define mc6845_tile_height      (state->m_crtc_vreg[9]+1)
52#define mc6845_cursor_y_start   (state->m_crtc_vreg[0x0a])
53#define mc6845_cursor_y_end    (state->m_crtc_vreg[0x0b])
54#define mc6845_start_addr      (((state->m_crtc_vreg[0x0c]<<8) & 0x3f00) | (state->m_crtc_vreg[0x0d] & 0xff))
55#define mc6845_cursor_addr     (((state->m_crtc_vreg[0x0e]<<8) & 0x3f00) | (state->m_crtc_vreg[0x0f] & 0xff))
56#define mc6845_light_pen_addr   (((state->m_crtc_vreg[0x10]<<8) & 0x3f00) | (state->m_crtc_vreg[0x11] & 0xff))
57#define mc6845_update_addr     (((state->m_crtc_vreg[0x12]<<8) & 0x3f00) | (state->m_crtc_vreg[0x13] & 0xff))
43#define mc6845_h_char_total    (m_crtc_vreg[0])
44#define mc6845_h_display      (m_crtc_vreg[1])
45#define mc6845_h_sync_pos      (m_crtc_vreg[2])
46#define mc6845_sync_width      (m_crtc_vreg[3])
47#define mc6845_v_char_total      (m_crtc_vreg[4])
48#define mc6845_v_total_adj      (m_crtc_vreg[5])
49#define mc6845_v_display      (m_crtc_vreg[6])
50#define mc6845_v_sync_pos      (m_crtc_vreg[7])
51#define mc6845_mode_ctrl      (m_crtc_vreg[8])
52#define mc6845_tile_height      (m_crtc_vreg[9]+1)
53#define mc6845_cursor_y_start   (m_crtc_vreg[0x0a])
54#define mc6845_cursor_y_end    (m_crtc_vreg[0x0b])
55#define mc6845_start_addr      (((m_crtc_vreg[0x0c]<<8) & 0x3f00) | (m_crtc_vreg[0x0d] & 0xff))
56#define mc6845_cursor_addr     (((m_crtc_vreg[0x0e]<<8) & 0x3f00) | (m_crtc_vreg[0x0f] & 0xff))
57#define mc6845_light_pen_addr   (((m_crtc_vreg[0x10]<<8) & 0x3f00) | (m_crtc_vreg[0x11] & 0xff))
58#define mc6845_update_addr     (((m_crtc_vreg[0x12]<<8) & 0x3f00) | (m_crtc_vreg[0x13] & 0xff))
5859
5960
60static SCREEN_UPDATE_IND16( multi16 )
61UINT32 multi16_state::screen_update_multi16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
6162{
62   multi16_state *state = screen.machine().driver_data<multi16_state>();
6363   int x,y;
6464   int count;
6565   int xi;
r17967r17968
7272      {
7373         for(xi=0;xi<16;xi++)
7474         {
75            int dot = (BITSWAP16(state->m_p_vram[count],7,6,5,4,3,2,1,0,15,14,13,12,11,10,9,8) >> (15-xi)) & 0x1;
75            int dot = (BITSWAP16(m_p_vram[count],7,6,5,4,3,2,1,0,15,14,13,12,11,10,9,8) >> (15-xi)) & 0x1;
7676
7777            if(screen.visible_area().contains(x*16+xi, y))
7878               bitmap.pix16(y, x*16+xi) = screen.machine().pens[dot];
r17967r17968
171171   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
172172   MCFG_SCREEN_SIZE(640, 200)
173173   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
174   MCFG_SCREEN_UPDATE_STATIC(multi16)
174   MCFG_SCREEN_UPDATE_DRIVER(multi16_state, screen_update_multi16)
175175   MCFG_PALETTE_LENGTH(8)
176176
177177   /* Devices */
trunk/src/mess/drivers/rm380z.c
r17967r17968
135135   NULL
136136};
137137
138static SCREEN_UPDATE_IND16( rm380z )
138UINT32 rm380z_state::screen_update_rm380z(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
139139{
140   rm380z_state *state = screen.machine().driver_data<rm380z_state>();
141   state->update_screen(bitmap);
140   update_screen(bitmap);
142141   return 0;
143142}
144143
r17967r17968
157156   MCFG_SCREEN_SIZE((RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1)), (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1)))
158157   MCFG_SCREEN_VISIBLE_AREA(0, (RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1))-1, 0, (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1))-1)
159158
160   MCFG_SCREEN_UPDATE_STATIC(rm380z)
159   MCFG_SCREEN_UPDATE_DRIVER(rm380z_state, screen_update_rm380z)
161160   MCFG_PALETTE_LENGTH(2)
162161   MCFG_PALETTE_INIT(black_and_white)
163162
trunk/src/mess/drivers/cfx9850.c
r17967r17968
3737   required_shared_ptr<UINT8> m_display_ram;
3838   UINT16 m_ko;            /* KO lines KO1 - KO14 */
3939   virtual void palette_init();
40   UINT32 screen_update_cfx9850(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4041};
4142
4243
r17967r17968
195196}
196197
197198
198static SCREEN_UPDATE_IND16( cfx9850 )
199UINT32 cfx9850_state::screen_update_cfx9850(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
199200{
200   cfx9850_state *state = screen.machine().driver_data<cfx9850_state>();
201201   UINT16 offset = 0;
202202
203203   for ( int i = 0; i < 16; i++ )
r17967r17968
206206
207207      for ( int j = 0; j < 64; j++ )
208208      {
209         UINT8 data1 = state->m_display_ram[ offset ];
210         UINT8 data2 = state->m_display_ram[ offset + 0x400 ];
209         UINT8 data1 = m_display_ram[ offset ];
210         UINT8 data2 = m_display_ram[ offset + 0x400 ];
211211
212212         for ( int b = 0; b < 8; b++ )
213213         {
r17967r17968
233233   MCFG_SCREEN_REFRESH_RATE( 60 )
234234   MCFG_SCREEN_SIZE( 128, 64 )
235235   MCFG_SCREEN_VISIBLE_AREA( 0, 127, 0, 63 )
236   MCFG_SCREEN_UPDATE_STATIC( cfx9850 )
236   MCFG_SCREEN_UPDATE_DRIVER(cfx9850_state, screen_update_cfx9850)
237237
238238   MCFG_DEFAULT_LAYOUT(layout_lcd)
239239
trunk/src/mess/drivers/mc80.c
r17967r17968
173173   MCFG_SCREEN_SIZE(32*6, 16*8)
174174   MCFG_SCREEN_VISIBLE_AREA(0, 32*6-1, 0, 16*8-1)
175175   MCFG_VIDEO_START_OVERRIDE(mc80_state,mc8020)
176   MCFG_SCREEN_UPDATE_STATIC(mc8020)
176   MCFG_SCREEN_UPDATE_DRIVER(mc80_state, screen_update_mc8020)
177177   MCFG_PALETTE_LENGTH(2)
178178   MCFG_PALETTE_INIT(black_and_white)
179179
r17967r17968
199199   MCFG_SCREEN_SIZE(512, 256)
200200   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
201201   MCFG_VIDEO_START_OVERRIDE(mc80_state,mc8030)
202   MCFG_SCREEN_UPDATE_STATIC(mc8030)
202   MCFG_SCREEN_UPDATE_DRIVER(mc80_state, screen_update_mc8030)
203203   MCFG_PALETTE_LENGTH(2)
204204   MCFG_PALETTE_INIT(black_and_white)
205205
trunk/src/mess/drivers/mbee.c
r17967r17968
682682   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(250)) /* not accurate */
683683   MCFG_SCREEN_SIZE(64*8, 19*16)         /* need at least 17 lines for NET */
684684   MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0, 19*16-1)
685   MCFG_SCREEN_UPDATE_STATIC(mbee)
685   MCFG_SCREEN_UPDATE_DRIVER(mbee_state, screen_update_mbee)
686686
687687   MCFG_GFXDECODE(mbee)
688688   MCFG_PALETTE_LENGTH(2)
r17967r17968
723723   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(250)) /* not accurate */
724724   MCFG_SCREEN_SIZE(80*8, 310)
725725   MCFG_SCREEN_VISIBLE_AREA(0, 80*8-1, 0, 19*16-1)
726   MCFG_SCREEN_UPDATE_STATIC(mbee)
726   MCFG_SCREEN_UPDATE_DRIVER(mbee_state, screen_update_mbee)
727727
728728   MCFG_GFXDECODE(mbeeic)
729729   MCFG_PALETTE_LENGTH(96)
trunk/src/mess/drivers/pc6001.c
r17967r17968
230230   DECLARE_MACHINE_RESET(pc6001m2);
231231   DECLARE_PALETTE_INIT(pc6001m2);
232232   DECLARE_MACHINE_RESET(pc6001sr);
233   UINT32 screen_update_pc6001(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
234   UINT32 screen_update_pc6001m2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
235   UINT32 screen_update_pc6001sr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
233236};
234237
235238
r17967r17968
503506   }
504507}
505508
506static SCREEN_UPDATE_IND16( pc6001 )
509UINT32 pc6001_state::screen_update_pc6001(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
507510{
508511   pc6001_screen_draw(screen.machine(),bitmap,cliprect,1);
509512
510513   return 0;
511514}
512515
513static SCREEN_UPDATE_IND16( pc6001m2 )
516UINT32 pc6001_state::screen_update_pc6001m2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
514517{
515   pc6001_state *state = screen.machine().driver_data<pc6001_state>();
516518   int x,y,tile,attr;
517519
518520   /* note: bitmap mode have priority over everything else, check American Truck */
519   if(state->m_exgfx_bitmap_mode)
521   if(m_exgfx_bitmap_mode)
520522   {
521523      int count,color,i;
522524
r17967r17968
539541               color |= pal_num[(pen[0] & 3) | ((pen[1] & 3) << 2)];
540542#endif
541543
542               pen[0] = state->m_video_ram[count+0x0000] >> (6-i*2) & 3;
543               pen[1] = state->m_video_ram[count+0x2000] >> (6-i*2) & 3;
544               pen[0] = m_video_ram[count+0x0000] >> (6-i*2) & 3;
545               pen[1] = m_video_ram[count+0x2000] >> (6-i*2) & 3;
544546
545547               color = 0x10;
546548               color |= ((pen[0] & 1) << 2);
r17967r17968
558560         }
559561      }
560562   }
561   else if(state->m_exgfx_2bpp_mode)
563   else if(m_exgfx_2bpp_mode)
562564   {
563565      int count,color,i;
564566
r17967r17968
578580               color |= pal_num[(pen[0] & 1) | ((pen[1] & 1) << 1)];
579581#endif
580582
581               pen[0] = state->m_video_ram[count+0x0000] >> (7-i) & 1;
582               pen[1] = state->m_video_ram[count+0x2000] >> (7-i) & 1;
583               pen[0] = m_video_ram[count+0x0000] >> (7-i) & 1;
584               pen[1] = m_video_ram[count+0x2000] >> (7-i) & 1;
583585
584               if(state->m_bgcol_bank & 4) //PC-6001 emulation mode
586               if(m_bgcol_bank & 4) //PC-6001 emulation mode
585587               {
586588                  color = 0x08;
587589                  color |= (pen[0]) | (pen[1]<<1);
588                  color |= (state->m_bgcol_bank & 1) << 2;
590                  color |= (m_bgcol_bank & 1) << 2;
589591               }
590592               else //Mk-2 mode
591593               {
592594                  color = 0x10;
593595                  color |= ((pen[0] & 1) << 2);
594596                  color |= ((pen[1] & 1) >> 0);
595                  color |= ((state->m_bgcol_bank & 1) << 1);
596                  color |= ((state->m_bgcol_bank & 2) << 2);
597                  color |= ((m_bgcol_bank & 1) << 1);
598                  color |= ((m_bgcol_bank & 2) << 2);
597599               }
598600
599601               if (cliprect.contains(x+i, y))
r17967r17968
605607      }
606608
607609   }
608   else if(state->m_exgfx_text_mode)
610   else if(m_exgfx_text_mode)
609611   {
610612      int xi,yi,pen,fgcol,bgcol,color;
611613      UINT8 *gfx_data = screen.machine().root_device().memregion("gfx1")->base();
r17967r17968
621623                ---- xxxx fg color
622624                Note that the exgfx banks a different gfx ROM
623625                */
624            tile = state->m_video_ram[(x+(y*40))+0x400] + 0x200;
625            attr = state->m_video_ram[(x+(y*40)) & 0x3ff];
626            tile = m_video_ram[(x+(y*40))+0x400] + 0x200;
627            attr = m_video_ram[(x+(y*40)) & 0x3ff];
626628            tile+= ((attr & 0x80) << 1);
627629
628630            for(yi=0;yi<12;yi++)
r17967r17968
632634                  pen = gfx_data[(tile*0x10)+yi]>>(7-xi) & 1;
633635
634636                  fgcol = (attr & 0x0f) + 0x10;
635                  bgcol = ((attr & 0x70) >> 4) + 0x10 + ((state->m_bgcol_bank & 2) << 2);
637                  bgcol = ((attr & 0x70) >> 4) + 0x10 + ((m_bgcol_bank & 2) << 2);
636638
637639                  color = pen ? fgcol : bgcol;
638640
r17967r17968
645647   }
646648   else
647649   {
648      attr = state->m_video_ram[0];
650      attr = m_video_ram[0];
649651      pc6001_screen_draw(screen.machine(),bitmap,cliprect,0);
650652   }
651653
652654   return 0;
653655}
654656
655static SCREEN_UPDATE_IND16( pc6001sr )
657UINT32 pc6001_state::screen_update_pc6001sr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
656658{
657   pc6001_state *state = screen.machine().driver_data<pc6001_state>();
658659   int x,y,tile,attr;
659660   int xi,yi,pen,fgcol,bgcol,color;
660   UINT8 *gfx_data = state->memregion("gfx1")->base();
661   UINT8 *gfx_data = memregion("gfx1")->base();
661662
662663
663   if(state->m_sr_video_mode & 8) // text mode
664   if(m_sr_video_mode & 8) // text mode
664665   {
665666      for(y=0;y<20;y++)
666667      {
667668         for(x=0;x<40;x++)
668669         {
669            tile = state->m_video_ram[(x+(y*40))*2+0];
670            attr = state->m_video_ram[(x+(y*40))*2+1];
670            tile = m_video_ram[(x+(y*40))*2+0];
671            attr = m_video_ram[(x+(y*40))*2+1];
671672            tile+= ((attr & 0x80) << 1);
672673
673674            for(yi=0;yi<12;yi++)
r17967r17968
677678                  pen = gfx_data[(tile*0x10)+yi]>>(7-xi) & 1;
678679
679680                  fgcol = (attr & 0x0f) + 0x10;
680                  bgcol = ((attr & 0x70) >> 4) + 0x10 + ((state->m_bgcol_bank & 2) << 2);
681                  bgcol = ((attr & 0x70) >> 4) + 0x10 + ((m_bgcol_bank & 2) << 2);
681682
682683                  color = pen ? fgcol : bgcol;
683684
r17967r17968
698699      {
699700         for(x=0;x<320;x+=4)
700701         {
701            color = state->m_video_ram[count] & 0x0f;
702            color = m_video_ram[count] & 0x0f;
702703
703704            if (cliprect.contains(x+0, y+0))
704705               bitmap.pix16((y+0), (x+0)) = screen.machine().pens[color+0x10];
705706
706            color = (state->m_video_ram[count] & 0xf0) >> 4;
707            color = (m_video_ram[count] & 0xf0) >> 4;
707708
708709            if (cliprect.contains(x+1, y+0))
709710               bitmap.pix16((y+0), (x+1)) = screen.machine().pens[color+0x10];
710711
711            color = state->m_video_ram[count+1] & 0x0f;
712            color = m_video_ram[count+1] & 0x0f;
712713
713714            if (cliprect.contains(x+2, y+0))
714715               bitmap.pix16((y+0), (x+2)) = screen.machine().pens[color+0x10];
715716
716            color = (state->m_video_ram[count+1] & 0xf0) >> 4;
717            color = (m_video_ram[count+1] & 0xf0) >> 4;
717718
718719            if (cliprect.contains(x+3, y+0))
719720               bitmap.pix16((y+0), (x+3)) = screen.machine().pens[color+0x10];
720721
721            color = state->m_video_ram[count+2] & 0x0f;
722            color = m_video_ram[count+2] & 0x0f;
722723
723724            if (cliprect.contains(x+0, y+1))
724725               bitmap.pix16((y+1), (x+0)) = screen.machine().pens[color+0x10];
725726
726            color = (state->m_video_ram[count+2] & 0xf0) >> 4;
727            color = (m_video_ram[count+2] & 0xf0) >> 4;
727728
728729            if (cliprect.contains(x+1, y+1))
729730               bitmap.pix16((y+1), (x+1)) = screen.machine().pens[color+0x10];
730731
731            color = state->m_video_ram[count+3] & 0x0f;
732            color = m_video_ram[count+3] & 0x0f;
732733
733734            if (cliprect.contains(x+2, y+1))
734735               bitmap.pix16((y+1), (x+2)) = screen.machine().pens[color+0x10];
735736
736            color = (state->m_video_ram[count+3] & 0xf0) >> 4;
737            color = (m_video_ram[count+3] & 0xf0) >> 4;
737738
738739            if (cliprect.contains(x+3, y+1))
739740               bitmap.pix16((y+1), (x+3)) = screen.machine().pens[color+0x10];
r17967r17968
23352336   /* video hardware */
23362337   MCFG_SCREEN_ADD("screen", RASTER)
23372338   MCFG_SCREEN_REFRESH_RATE(60)
2338   MCFG_SCREEN_UPDATE_STATIC(pc6001)
2339   MCFG_SCREEN_UPDATE_DRIVER(pc6001_state, screen_update_pc6001)
23392340//  MCFG_SCREEN_REFRESH_RATE(M6847_NTSC_FRAMES_PER_SECOND)
23402341//  MCFG_SCREEN_UPDATE_STATIC(m6847)
23412342   MCFG_SCREEN_SIZE(320, 25+192+26)
r17967r17968
23782379   MCFG_MACHINE_RESET_OVERRIDE(pc6001_state,pc6001m2)
23792380
23802381   MCFG_SCREEN_MODIFY("screen")
2381   MCFG_SCREEN_UPDATE_STATIC(pc6001m2)
2382   MCFG_SCREEN_UPDATE_DRIVER(pc6001_state, screen_update_pc6001m2)
23822383   MCFG_PALETTE_LENGTH(16+16)
23832384   MCFG_PALETTE_INIT_OVERRIDE(pc6001_state,pc6001m2)
23842385
r17967r17968
24052406   MCFG_MACHINE_RESET_OVERRIDE(pc6001_state,pc6001sr)
24062407
24072408   MCFG_SCREEN_MODIFY("screen")
2408   MCFG_SCREEN_UPDATE_STATIC(pc6001sr)
2409   MCFG_SCREEN_UPDATE_DRIVER(pc6001_state, screen_update_pc6001sr)
24092410
24102411   /* basic machine hardware */
24112412   MCFG_CPU_REPLACE("maincpu", Z80, XTAL_3_579545MHz) //*Yes*, PC-6001 SR Z80 CPU is actually slower than older models
trunk/src/mess/drivers/pc88va.c
r17967r17968
101101   virtual void machine_start();
102102   virtual void machine_reset();
103103   virtual void video_start();
104   UINT32 screen_update_pc88va(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
104105};
105106
106107
r17967r17968
402403   }
403404}
404405
405static SCREEN_UPDATE_RGB32( pc88va )
406UINT32 pc88va_state::screen_update_pc88va(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
406407{
407   pc88va_state *state = screen.machine().driver_data<pc88va_state>();
408408   UINT8 pri,cur_pri_lv;
409409   UINT32 screen_pri;
410410   bitmap.fill(0, cliprect);
411411
412   if(state->m_tsp.disp_on == 0) // don't bother if we are under DSPOFF command
412   if(m_tsp.disp_on == 0) // don't bother if we are under DSPOFF command
413413      return 0;
414414
415415   /*
416    state->m_video_pri_reg[0]
416    m_video_pri_reg[0]
417417    xxxx ---- ---- ---- priority 3
418418    ---- xxxx ---- ---- priority 2
419419    ---- ---- xxxx ---- priority 1
420420    ---- ---- ---- xxxx priority 0
421    state->m_video_pri_reg[1]
421    m_video_pri_reg[1]
422422    ---- ---- xxxx ---- priority 5
423423    ---- ---- ---- xxxx priority 4
424424
425425    Note that orthogonality level is actually REVERSED than the level number it indicates, so we have to play a little with the data for an easier usage ...
426426    */
427427
428   screen_pri = (state->m_video_pri_reg[1] & 0x00f0) >> 4; // priority 5
429   screen_pri|= (state->m_video_pri_reg[1] & 0x000f) << 4; // priority 4
430   screen_pri|= (state->m_video_pri_reg[0] & 0xf000) >> 4; // priority 3
431   screen_pri|= (state->m_video_pri_reg[0] & 0x0f00) << 4; // priority 2
432   screen_pri|= (state->m_video_pri_reg[0] & 0x00f0) << 12; // priority 1
433   screen_pri|= (state->m_video_pri_reg[0] & 0x000f) << 20; // priority 0
428   screen_pri = (m_video_pri_reg[1] & 0x00f0) >> 4; // priority 5
429   screen_pri|= (m_video_pri_reg[1] & 0x000f) << 4; // priority 4
430   screen_pri|= (m_video_pri_reg[0] & 0xf000) >> 4; // priority 3
431   screen_pri|= (m_video_pri_reg[0] & 0x0f00) << 4; // priority 2
432   screen_pri|= (m_video_pri_reg[0] & 0x00f0) << 12; // priority 1
433   screen_pri|= (m_video_pri_reg[0] & 0x000f) << 20; // priority 0
434434
435435   for(pri=0;pri<6;pri++)
436436   {
r17967r17968
448448            switch(cur_pri_lv & 3) // (palette color mode)
449449            {
450450               case 0: draw_text(screen.machine(),bitmap,cliprect); break;
451               case 1: if(state->m_tsp.spr_on) { draw_sprites(screen.machine(),bitmap,cliprect); } break;
451               case 1: if(m_tsp.spr_on) { draw_sprites(screen.machine(),bitmap,cliprect); } break;
452452               case 2: /* A = graphic 0 */ break;
453453               case 3: /* B = graphic 1 */ break;
454454            }
r17967r17968
16691669   MCFG_SCREEN_REFRESH_RATE(60)
16701670   MCFG_SCREEN_SIZE(640, 480)
16711671   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
1672   MCFG_SCREEN_UPDATE_STATIC( pc88va )
1672   MCFG_SCREEN_UPDATE_DRIVER(pc88va_state, screen_update_pc88va)
16731673
16741674   MCFG_PALETTE_LENGTH(32)
16751675//  MCFG_PALETTE_INIT_OVERRIDE(pc88va_state, pc8801 )
trunk/src/mess/drivers/vii.c
r17967r17968
139139   virtual void machine_start();
140140   virtual void machine_reset();
141141   virtual void video_start();
142   UINT32 screen_update_vii(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
142143};
143144
144145enum
r17967r17968
411412   }
412413}
413414
414static SCREEN_UPDATE_RGB32( vii )
415UINT32 vii_state::screen_update_vii(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
415416{
416   vii_state *state = screen.machine().driver_data<vii_state>();
417417   int i, x, y;
418418
419419   bitmap.fill(0, cliprect);
420420
421   memset(state->m_screen, 0, sizeof(state->m_screen));
421   memset(m_screen, 0, sizeof(m_screen));
422422
423423   for(i = 0; i < 4; i++)
424424   {
425      vii_blit_page(screen.machine(), bitmap, cliprect, i, 0x40 * state->m_video_regs[0x20], state->m_video_regs + 0x10);
426      vii_blit_page(screen.machine(), bitmap, cliprect, i, 0x40 * state->m_video_regs[0x21], state->m_video_regs + 0x16);
425      vii_blit_page(screen.machine(), bitmap, cliprect, i, 0x40 * m_video_regs[0x20], m_video_regs + 0x10);
426      vii_blit_page(screen.machine(), bitmap, cliprect, i, 0x40 * m_video_regs[0x21], m_video_regs + 0x16);
427427      vii_blit_sprites(screen.machine(), bitmap, cliprect, i);
428428   }
429429
r17967r17968
431431   {
432432      for(x = 0; x < 320; x++)
433433      {
434         bitmap.pix32(y, x) = (state->m_screen[x + 320*y].r << 16) | (state->m_screen[x + 320*y].g << 8) | state->m_screen[x + 320*y].b;
434         bitmap.pix32(y, x) = (m_screen[x + 320*y].r << 16) | (m_screen[x + 320*y].g << 8) | m_screen[x + 320*y].b;
435435      }
436436   }
437437
r17967r17968
11011101   MCFG_SCREEN_REFRESH_RATE(60)
11021102   MCFG_SCREEN_SIZE(320, 240)
11031103   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
1104   MCFG_SCREEN_UPDATE_STATIC( vii )
1104   MCFG_SCREEN_UPDATE_DRIVER(vii_state, screen_update_vii)
11051105   MCFG_PALETTE_LENGTH(32768)
11061106
11071107   MCFG_CARTSLOT_ADD( "cart" )
r17967r17968
11231123   MCFG_SCREEN_REFRESH_RATE(60)
11241124   MCFG_SCREEN_SIZE(320, 240)
11251125   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
1126   MCFG_SCREEN_UPDATE_STATIC( vii )
1126   MCFG_SCREEN_UPDATE_DRIVER(vii_state, screen_update_vii)
11271127   MCFG_PALETTE_LENGTH(32768)
11281128
11291129   MCFG_CARTSLOT_ADD( "cart" )
r17967r17968
11501150   MCFG_SCREEN_REFRESH_RATE(60)
11511151   MCFG_SCREEN_SIZE(320, 240)
11521152   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
1153   MCFG_SCREEN_UPDATE_STATIC( vii )
1153   MCFG_SCREEN_UPDATE_DRIVER(vii_state, screen_update_vii)
11541154   MCFG_PALETTE_LENGTH(32768)
11551155MACHINE_CONFIG_END
11561156
trunk/src/mess/drivers/x1.c
r17967r17968
542542   }
543543}
544544
545SCREEN_UPDATE_RGB32( x1 )
545UINT32 x1_state::screen_update_x1(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
546546{
547   x1_state *state = screen.machine().driver_data<x1_state>();
548547
549548   bitmap.fill(MAKE_ARGB(0xff,0x00,0x00,0x00), cliprect);
550549
551   draw_gfxbitmap(screen.machine(),bitmap,cliprect,state->m_scrn_reg.disp_bank,state->m_scrn_reg.pri);
550   draw_gfxbitmap(screen.machine(),bitmap,cliprect,m_scrn_reg.disp_bank,m_scrn_reg.pri);
552551   draw_fgtilemap(screen.machine(),bitmap,cliprect);
553   draw_gfxbitmap(screen.machine(),bitmap,cliprect,state->m_scrn_reg.disp_bank,state->m_scrn_reg.pri^0xff);
552   draw_gfxbitmap(screen.machine(),bitmap,cliprect,m_scrn_reg.disp_bank,m_scrn_reg.pri^0xff);
554553
555554   return 0;
556555}
r17967r17968
25892588   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
25902589   MCFG_SCREEN_SIZE(640, 480)
25912590   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
2592   MCFG_SCREEN_UPDATE_STATIC(x1)
2591   MCFG_SCREEN_UPDATE_DRIVER(x1_state, screen_update_x1)
25932592
25942593   MCFG_MC6845_ADD("crtc", H46505, (VDP_CLOCK/48), mc6845_intf) //unknown divider
25952594   MCFG_PALETTE_LENGTH(0x10+0x1000)
trunk/src/mess/drivers/pocketc.c
r17967r17968
752752   MCFG_FRAGMENT_ADD(pocketc)
753753
754754   MCFG_SCREEN_MODIFY("screen")
755   MCFG_SCREEN_UPDATE_STATIC( pc1401 )
755   MCFG_SCREEN_UPDATE_DRIVER(pc1401_state, screen_update_pc1401)
756756MACHINE_CONFIG_END
757757
758758static MACHINE_CONFIG_DERIVED( pc1402, pc1401 )
r17967r17968
781781   MCFG_SCREEN_MODIFY("screen")
782782   MCFG_SCREEN_SIZE(608, 300)
783783   MCFG_SCREEN_VISIBLE_AREA(0, 608-1, 0, 300-1)
784   MCFG_SCREEN_UPDATE_STATIC( pc1251 )
784   MCFG_SCREEN_UPDATE_DRIVER(pc1251_state, screen_update_pc1251)
785785   MCFG_GFXDECODE( pc1251 )
786786MACHINE_CONFIG_END
787787
r17967r17968
842842   MCFG_SCREEN_MODIFY("screen")
843843   MCFG_SCREEN_SIZE(640, 252)
844844   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 252-1)
845   MCFG_SCREEN_UPDATE_STATIC( pc1350 )
845   MCFG_SCREEN_UPDATE_DRIVER(pc1350_state, screen_update_pc1350)
846846
847847   /* internal ram */
848848   MCFG_RAM_ADD(RAM_TAG)
r17967r17968
881881   MCFG_SCREEN_VISIBLE_AREA(0, 848-1, 0, 320-1)
882882//  MCFG_SCREEN_SIZE(848, 361)
883883//  MCFG_SCREEN_VISIBLE_AREA(0, 848-1, 0, 361-1)
884   MCFG_SCREEN_UPDATE_STATIC( pc1403 )
884   MCFG_SCREEN_UPDATE_DRIVER(pc1403_state, screen_update_pc1403)
885885
886886   MCFG_VIDEO_START( pc1403 )
887887MACHINE_CONFIG_END
trunk/src/mess/drivers/sgi_ip6.c
r17967r17968
4141   virtual void machine_start();
4242   virtual void machine_reset();
4343   virtual void video_start();
44   UINT32 screen_update_sgi_ip6(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
4445};
4546
4647
r17967r17968
7374{
7475}
7576
76static SCREEN_UPDATE_RGB32( sgi_ip6 )
77UINT32 sgi_ip6_state::screen_update_sgi_ip6(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
7778{
7879   return 0;
7980}
r17967r17968
241242   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
242243   MCFG_SCREEN_SIZE(640, 480)
243244   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
244   MCFG_SCREEN_UPDATE_STATIC(sgi_ip6)
245   MCFG_SCREEN_UPDATE_DRIVER(sgi_ip6_state, screen_update_sgi_ip6)
245246
246247
247248MACHINE_CONFIG_END
trunk/src/mess/drivers/d6800.c
r17967r17968
7878   UINT8 m_portb;
7979   virtual void machine_start();
8080   virtual void machine_reset();
81public:   
82   UINT32 screen_update_d6800(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8183};
8284
8385
r17967r17968
152154
153155/* Video */
154156
155static SCREEN_UPDATE_IND16( d6800 )
157UINT32 d6800_state::screen_update_d6800(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
156158{
157   d6800_state *state = screen.machine().driver_data<d6800_state>();
158159   UINT8 x,y,gfx=0;
159160
160161   for (y = 0; y < 32; y++)
r17967r17968
163164
164165      for (x = 0; x < 8; x++)
165166      {
166         if (state->m_screen_on)
167            gfx = state->m_videoram[ x | (y<<3)];
167         if (m_screen_on)
168            gfx = m_videoram[ x | (y<<3)];
168169
169170         *p++ = BIT(gfx, 7);
170171         *p++ = BIT(gfx, 6);
r17967r17968
367368   MCFG_SCREEN_REFRESH_RATE(50)
368369   MCFG_SCREEN_SIZE(64, 32)
369370   MCFG_SCREEN_VISIBLE_AREA(0, 63, 0, 31)
370   MCFG_SCREEN_UPDATE_STATIC(d6800)
371   MCFG_SCREEN_UPDATE_DRIVER(d6800_state, screen_update_d6800)
371372
372373   MCFG_PALETTE_LENGTH(2)
373374   MCFG_PALETTE_INIT(black_and_white)
trunk/src/mess/drivers/radio86.c
r17967r17968
363363   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
364364   MCFG_SCREEN_SIZE(78*6, 30*10)
365365   MCFG_SCREEN_VISIBLE_AREA(0, 78*6-1, 0, 30*10-1)
366   MCFG_SCREEN_UPDATE_STATIC(radio86)
366   MCFG_SCREEN_UPDATE_DRIVER(radio86_state, screen_update_radio86)
367367   MCFG_GFXDECODE(radio86)
368368   MCFG_PALETTE_LENGTH(3)
369369   MCFG_PALETTE_INIT_OVERRIDE(radio86_state,radio86)
trunk/src/mess/drivers/b2m.c
r17967r17968
213213   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
214214   MCFG_SCREEN_SIZE(384, 256)
215215   MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 256-1)
216    MCFG_SCREEN_UPDATE_STATIC(b2m)
216   MCFG_SCREEN_UPDATE_DRIVER(b2m_state, screen_update_b2m)
217217
218218   MCFG_PALETTE_LENGTH(4)
219219
trunk/src/mess/drivers/arcadia.c
r17967r17968
539539   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
540540   MCFG_SCREEN_SIZE(128+2*XPOS, 262)
541541   MCFG_SCREEN_VISIBLE_AREA(0, 2*XPOS+128-1, 0, 262-1)
542   MCFG_SCREEN_UPDATE_STATIC( arcadia )
542   MCFG_SCREEN_UPDATE_DRIVER(arcadia_state, screen_update_arcadia)
543543
544544   MCFG_GFXDECODE( arcadia )
545545   MCFG_PALETTE_LENGTH(ARRAY_LENGTH(arcadia_palette))
trunk/src/mess/drivers/smc777.c
r17967r17968
8686   virtual void machine_reset();
8787   virtual void video_start();
8888   virtual void palette_init();
89   UINT32 screen_update_smc777(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8990};
9091
9192
r17967r17968
9798{
9899}
99100
100static SCREEN_UPDATE_IND16( smc777 )
101UINT32 smc777_state::screen_update_smc777(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
101102{
102   smc777_state *state = screen.machine().driver_data<smc777_state>();
103103   int x,y,yi;
104104   UINT16 count;
105105   UINT8 *vram = screen.machine().root_device().memregion("vram")->base();
106106   UINT8 *attr = screen.machine().root_device().memregion("attr")->base();
107   UINT8 *gram = state->memregion("fbuf")->base();
107   UINT8 *gram = memregion("fbuf")->base();
108108   int x_width;
109109
110   bitmap.fill(screen.machine().pens[state->m_backdrop_pen], cliprect);
110   bitmap.fill(screen.machine().pens[m_backdrop_pen], cliprect);
111111
112   x_width = (state->m_display_reg & 0x80) ? 2 : 4;
112   x_width = (m_display_reg & 0x80) ? 2 : 4;
113113
114114   count = 0x0000;
115115
r17967r17968
153153
154154   count = 0x0000;
155155
156   x_width = (state->m_display_reg & 0x80) ? 40 : 80;
156   x_width = (m_display_reg & 0x80) ? 40 : 80;
157157
158158   for(y=0;y<25;y++)
159159   {
r17967r17968
191191               UINT8 *gfx_data = screen.machine().root_device().memregion("pcg")->base();
192192               int pen;
193193
194               pen = ((gfx_data[tile*8+yi]>>(7-xi)) & 1) ? (color+state->m_pal_mode) : bk_pen;
194               pen = ((gfx_data[tile*8+yi]>>(7-xi)) & 1) ? (color+m_pal_mode) : bk_pen;
195195
196196               if(pen != -1)
197197                  bitmap.pix16(y*8+CRTC_MIN_Y+yi, x*8+CRTC_MIN_X+xi) = screen.machine().pens[pen];
r17967r17968
199199         }
200200
201201         // draw cursor
202         if(state->m_cursor_addr == count)
202         if(m_cursor_addr == count)
203203         {
204204            int xc,yc,cursor_on;
205205
206206            cursor_on = 0;
207            switch(state->m_cursor_raster & 0x60)
207            switch(m_cursor_raster & 0x60)
208208            {
209209               case 0x00: cursor_on = 1; break; //always on
210210               case 0x20: cursor_on = 0; break; //always off
r17967r17968
214214
215215            if(cursor_on)
216216            {
217               for(yc=0;yc<(8-(state->m_cursor_raster & 7));yc++)
217               for(yc=0;yc<(8-(m_cursor_raster & 7));yc++)
218218               {
219219                  for(xc=0;xc<8;xc++)
220220                  {
r17967r17968
224224            }
225225         }
226226
227         (state->m_display_reg & 0x80) ? count+=2 : count++;
227         (m_display_reg & 0x80) ? count+=2 : count++;
228228      }
229229   }
230230
r17967r17968
10881088    MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
10891089    MCFG_SCREEN_SIZE(0x400, 400)
10901090    MCFG_SCREEN_VISIBLE_AREA(0, 660-1, 0, 220-1) //normal 640 x 200 + 20 pixels for border color
1091    MCFG_SCREEN_UPDATE_STATIC(smc777)
1091   MCFG_SCREEN_UPDATE_DRIVER(smc777_state, screen_update_smc777)
10921092
10931093    MCFG_PALETTE_LENGTH(0x10+8) //16 palette entries + 8 special colors
10941094   MCFG_GFXDECODE(smc777)
trunk/src/mess/drivers/bcs3.c
r17967r17968
3131   DECLARE_READ8_MEMBER(bcs3_keyboard_r);
3232   virtual void machine_reset();
3333   virtual void video_start();
34   UINT32 screen_update_bcs3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
35   UINT32 screen_update_bcs3a(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
36   UINT32 screen_update_bcs3b(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
37   UINT32 screen_update_bcs3c(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3438};
3539
3640READ8_MEMBER( bcs3_state::bcs3_keyboard_r )
r17967r17968
216220   m_p_chargen = memregion("chargen")->base();
217221}
218222
219static SCREEN_UPDATE_IND16( bcs3 )
223UINT32 bcs3_state::screen_update_bcs3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
220224{
221   bcs3_state *state = screen.machine().driver_data<bcs3_state>();
222225   UINT8 y,ra,chr,gfx,rat;
223226   UINT16 sy=0,ma=0,x;
224227
r17967r17968
233236         {
234237            if (ra < 8)
235238            {
236               chr = state->m_p_videoram[x] & 0x7f;
239               chr = m_p_videoram[x] & 0x7f;
237240
238241               /* get pattern of pixels for that character scanline */
239               gfx = state->m_p_chargen[(chr<<3) | rat ] ^ 0xff;
242               gfx = m_p_chargen[(chr<<3) | rat ] ^ 0xff;
240243            }
241244            else
242245               gfx = 0xff;
r17967r17968
259262
260263/* This has 100 lines of screen data. I'm assuming that it only shows a portion of this,
261264    with the cursor always in sight. */
262static SCREEN_UPDATE_IND16( bcs3a )
265UINT32 bcs3_state::screen_update_bcs3a(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
263266{
264   bcs3_state *state = screen.machine().driver_data<bcs3_state>();
265267   UINT8 y,ra,chr,gfx,rat;
266268   UINT16 sy=0,ma=128,x;
267   UINT16 cursor = (state->m_p_videoram[0x7a] | (state->m_p_videoram[0x7b] << 8)) - 0x3c80;   // get cursor relative position
269   UINT16 cursor = (m_p_videoram[0x7a] | (m_p_videoram[0x7b] << 8)) - 0x3c80;   // get cursor relative position
268270   rat = cursor / 30;
269271   if (rat > 11) ma = (rat-11) * 30 + 128;
270272
r17967r17968
279281         {
280282            if (ra < 8)
281283            {
282               chr = state->m_p_videoram[x] & 0x7f;
284               chr = m_p_videoram[x] & 0x7f;
283285
284286               /* get pattern of pixels for that character scanline */
285               gfx = state->m_p_chargen[(chr<<3) | rat ] ^ 0xff;
287               gfx = m_p_chargen[(chr<<3) | rat ] ^ 0xff;
286288            }
287289            else
288290               gfx = 0xff;
r17967r17968
303305   return 0;
304306}
305307
306static SCREEN_UPDATE_IND16( bcs3b )
308UINT32 bcs3_state::screen_update_bcs3b(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
307309{
308   bcs3_state *state = screen.machine().driver_data<bcs3_state>();
309310   UINT8 y,ra,chr,gfx,rat;
310311   UINT16 sy=0,ma=128,x;
311   UINT16 cursor = (state->m_p_videoram[0x7a] | (state->m_p_videoram[0x7b] << 8)) - 0x3c80;   // get cursor relative position
312   UINT16 cursor = (m_p_videoram[0x7a] | (m_p_videoram[0x7b] << 8)) - 0x3c80;   // get cursor relative position
312313   rat = cursor / 41;
313314   if (rat > 23) ma = (rat-23) * 41 + 128;
314315
r17967r17968
323324         {
324325            if (ra < 8)
325326            {
326               chr = state->m_p_videoram[x] & 0x7f;
327               chr = m_p_videoram[x] & 0x7f;
327328
328329               /* get pattern of pixels for that character scanline */
329               gfx = state->m_p_chargen[(chr<<3) | rat ] ^ 0xff;
330               gfx = m_p_chargen[(chr<<3) | rat ] ^ 0xff;
330331            }
331332            else
332333               gfx = 0xff;
r17967r17968
347348   return 0;
348349}
349350
350static SCREEN_UPDATE_IND16( bcs3c )
351UINT32 bcs3_state::screen_update_bcs3c(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
351352{
352   bcs3_state *state = screen.machine().driver_data<bcs3_state>();
353353   UINT8 y,ra,chr,gfx,rat;
354354   UINT16 sy=0,ma=0xb4,x;
355   UINT16 cursor = (state->m_p_videoram[0x08] | (state->m_p_videoram[0x09] << 8)) - 0x3c80;   // get cursor relative position
355   UINT16 cursor = (m_p_videoram[0x08] | (m_p_videoram[0x09] << 8)) - 0x3c80;   // get cursor relative position
356356   rat = cursor / 30;
357357   if (rat > 11) ma = (rat-11) * 30 + 0xb4;
358358
r17967r17968
367367         {
368368            if (ra < 8)
369369            {
370               chr = state->m_p_videoram[x] & 0x7f;
370               chr = m_p_videoram[x] & 0x7f;
371371
372372               /* get pattern of pixels for that character scanline */
373               gfx = state->m_p_chargen[(chr<<3) | rat ] ^ 0xff;
373               gfx = m_p_chargen[(chr<<3) | rat ] ^ 0xff;
374374            }
375375            else
376376               gfx = 0xff;
r17967r17968
423423   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
424424   MCFG_SCREEN_SIZE(28*8, 12*10)
425425   MCFG_SCREEN_VISIBLE_AREA(0,28*8-1,0,12*10-1)
426   MCFG_SCREEN_UPDATE_STATIC(bcs3)
426   MCFG_SCREEN_UPDATE_DRIVER(bcs3_state, screen_update_bcs3)
427427   MCFG_GFXDECODE(bcs3)
428428   MCFG_PALETTE_LENGTH(2)
429429   MCFG_PALETTE_INIT(black_and_white)
r17967r17968
437437   MCFG_SCREEN_MODIFY("screen")
438438   MCFG_SCREEN_SIZE(29*8, 12*10)
439439   MCFG_SCREEN_VISIBLE_AREA(0,29*8-1,0,12*10-1)
440   MCFG_SCREEN_UPDATE_STATIC(bcs3a)
440   MCFG_SCREEN_UPDATE_DRIVER(bcs3_state, screen_update_bcs3a)
441441MACHINE_CONFIG_END
442442
443443static MACHINE_CONFIG_DERIVED( bcs3b, bcs3 )
r17967r17968
448448   MCFG_SCREEN_MODIFY("screen")
449449   MCFG_SCREEN_SIZE(40*8, 24*10)
450450   MCFG_SCREEN_VISIBLE_AREA(0,40*8-1,0,24*10-1)
451   MCFG_SCREEN_UPDATE_STATIC(bcs3b)
451   MCFG_SCREEN_UPDATE_DRIVER(bcs3_state, screen_update_bcs3b)
452452MACHINE_CONFIG_END
453453
454454static MACHINE_CONFIG_DERIVED( bcs3c, bcs3 )
r17967r17968
459459   MCFG_SCREEN_MODIFY("screen")
460460   MCFG_SCREEN_SIZE(29*8, 12*10)
461461   MCFG_SCREEN_VISIBLE_AREA(0,29*8-1,0,12*10-1)
462   MCFG_SCREEN_UPDATE_STATIC(bcs3c)
462   MCFG_SCREEN_UPDATE_DRIVER(bcs3_state, screen_update_bcs3c)
463463MACHINE_CONFIG_END
464464
465465/* ROM definition */
trunk/src/mess/drivers/m20.c
r17967r17968
9494public:
9595   DECLARE_DRIVER_INIT(m20);
9696   virtual void video_start();
97   UINT32 screen_update_m20(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
9798};
9899
99100
r17967r17968
105106{
106107}
107108
108static SCREEN_UPDATE_RGB32( m20 )
109UINT32 m20_state::screen_update_m20(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
109110{
110   m20_state *state = screen.machine().driver_data<m20_state>();
111111   int x,y,i;
112112   UINT8 pen;
113113   UINT32 count;
r17967r17968
122122      {
123123         for (i = 0; i < 16; i++)
124124         {
125            pen = (state->m_p_videoram[count]) >> (15 - i) & 1;
125            pen = (m_p_videoram[count]) >> (15 - i) & 1;
126126
127127            if (screen.visible_area().contains(x + i, y))
128128               bitmap.pix32(y, x + i) = screen.machine().pens[pen];
r17967r17968
546546   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
547547   MCFG_SCREEN_SIZE(512, 256)
548548   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
549   MCFG_SCREEN_UPDATE_STATIC(m20)
549   MCFG_SCREEN_UPDATE_DRIVER(m20_state, screen_update_m20)
550550   MCFG_PALETTE_LENGTH(4)
551551
552552   /* Devices */
trunk/src/mess/drivers/kramermc.c
r17967r17968
118118   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
119119   MCFG_SCREEN_SIZE(64*8, 16*8)
120120   MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 16*8-1)
121   MCFG_SCREEN_UPDATE_STATIC(kramermc)
121   MCFG_SCREEN_UPDATE_DRIVER(kramermc_state, screen_update_kramermc)
122122
123123   MCFG_GFXDECODE( kramermc )
124124
trunk/src/mess/drivers/spectrum.c
r17967r17968
719719   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
720720   MCFG_SCREEN_SIZE(SPEC_SCREEN_WIDTH, SPEC_SCREEN_HEIGHT)
721721   MCFG_SCREEN_VISIBLE_AREA(0, SPEC_SCREEN_WIDTH-1, 0, SPEC_SCREEN_HEIGHT-1)
722   MCFG_SCREEN_UPDATE_STATIC( spectrum )
723   MCFG_SCREEN_VBLANK_STATIC( spectrum )
722   MCFG_SCREEN_UPDATE_DRIVER(spectrum_state, screen_update_spectrum)
723   MCFG_SCREEN_VBLANK_DRIVER(spectrum_state, screen_eof_spectrum)
724724
725725   MCFG_PALETTE_LENGTH(16)
726726   MCFG_PALETTE_INIT_OVERRIDE(spectrum_state, spectrum )
trunk/src/mess/drivers/astrocde.c
r17967r17968
248248   /* video hardware */
249249   MCFG_SCREEN_ADD("screen", RASTER)
250250   MCFG_SCREEN_RAW_PARAMS(ASTROCADE_CLOCK, 455, 0, 352, 262, 0, 240)
251   MCFG_SCREEN_UPDATE_STATIC(astrocde)
251   MCFG_SCREEN_UPDATE_DRIVER(astrocde_state, screen_update_astrocde)
252252
253253   MCFG_PALETTE_LENGTH(512)
254254
trunk/src/mess/drivers/cat.c
r17967r17968
6969   DECLARE_MACHINE_START(swyft);
7070   DECLARE_MACHINE_RESET(swyft);
7171   DECLARE_VIDEO_START(swyft);
72   UINT32 screen_update_cat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
73   UINT32 screen_update_swyft(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7274};
7375
7476WRITE16_MEMBER( cat_state::cat_video_status_w )
r17967r17968
324326{
325327}
326328
327static SCREEN_UPDATE_IND16( cat )
329UINT32 cat_state::screen_update_cat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
328330{
329   cat_state *state = screen.machine().driver_data<cat_state>();
330331   UINT16 code;
331332   int y, x, b;
332333
333334   int addr = 0;
334   if (state->m_video_enable == 1)
335   if (m_video_enable == 1)
335336   {
336337      for (y = 0; y < 344; y++)
337338      {
338339         int horpos = 0;
339340         for (x = 0; x < 42; x++)
340341         {
341            code = state->m_p_videoram[addr++];
342            code = m_p_videoram[addr++];
342343            for (b = 15; b >= 0; b--)
343344            {
344345               bitmap.pix16(y, horpos++) = (code >> b) & 0x01;
r17967r17968
370371{
371372}
372373
373static SCREEN_UPDATE_IND16( swyft )
374UINT32 cat_state::screen_update_swyft(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
374375{
375   cat_state *state = screen.machine().driver_data<cat_state>();
376376   UINT16 code;
377377   int y, x, b;
378378
r17967r17968
382382      int horpos = 0;
383383      for (x = 0; x < 20; x++)
384384      {
385         code = state->m_p_videoram[addr++];
385         code = m_p_videoram[addr++];
386386         for (b = 15; b >= 0; b--)
387387         {
388388            bitmap.pix16(y, horpos++) = (code >> b) & 0x01;
r17967r17968
440440   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
441441   MCFG_SCREEN_SIZE(672, 344)
442442   MCFG_SCREEN_VISIBLE_AREA(0, 672-1, 0, 344-1)
443   MCFG_SCREEN_UPDATE_STATIC(cat)
443   MCFG_SCREEN_UPDATE_DRIVER(cat_state, screen_update_cat)
444444
445445   MCFG_PALETTE_LENGTH(2)
446446   MCFG_PALETTE_INIT(black_and_white)
r17967r17968
467467   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
468468   MCFG_SCREEN_SIZE(320, 242)
469469   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 242-1)
470   MCFG_SCREEN_UPDATE_STATIC(swyft)
470   MCFG_SCREEN_UPDATE_DRIVER(cat_state, screen_update_swyft)
471471
472472   MCFG_PALETTE_LENGTH(2)
473473   MCFG_PALETTE_INIT(black_and_white)
trunk/src/mess/drivers/tx0.c
r17967r17968
16151615   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
16161616   MCFG_SCREEN_SIZE(virtual_width, virtual_height)
16171617   MCFG_SCREEN_VISIBLE_AREA(0, virtual_width-1, 0, virtual_height-1)
1618   MCFG_SCREEN_UPDATE_STATIC(tx0)
1619   MCFG_SCREEN_VBLANK_STATIC(tx0)
1618   MCFG_SCREEN_UPDATE_DRIVER(tx0_state, screen_update_tx0)
1619   MCFG_SCREEN_VBLANK_DRIVER(tx0_state, screen_eof_tx0)
16201620
16211621   MCFG_CRT_ADD( "crt", tx0_crt_interface )
16221622   MCFG_DEVICE_ADD("readt", TX0_READTAPE, 0)
trunk/src/mess/drivers/myb3k.c
r17967r17968
4141   virtual void machine_start();
4242   virtual void machine_reset();
4343   virtual void video_start();
44   UINT32 screen_update_myb3k(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4445};
4546
4647void myb3k_state::video_start()
4748{
4849}
4950
50#define mc6845_h_char_total    (state->m_crtc_vreg[0])
51#define mc6845_h_display      (state->m_crtc_vreg[1])
52#define mc6845_h_sync_pos      (state->m_crtc_vreg[2])
53#define mc6845_sync_width      (state->m_crtc_vreg[3])
54#define mc6845_v_char_total      (state->m_crtc_vreg[4])
55#define mc6845_v_total_adj      (state->m_crtc_vreg[5])
56#define mc6845_v_display      (state->m_crtc_vreg[6])
57#define mc6845_v_sync_pos      (state->m_crtc_vreg[7])
58#define mc6845_mode_ctrl      (state->m_crtc_vreg[8])
59#define mc6845_tile_height      (state->m_crtc_vreg[9]+1)
60#define mc6845_cursor_y_start   (state->m_crtc_vreg[0x0a])
61#define mc6845_cursor_y_end    (state->m_crtc_vreg[0x0b])
62#define mc6845_start_addr      (((state->m_crtc_vreg[0x0c]<<8) & 0x3f00) | (state->m_crtc_vreg[0x0d] & 0xff))
63#define mc6845_cursor_addr     (((state->m_crtc_vreg[0x0e]<<8) & 0x3f00) | (state->m_crtc_vreg[0x0f] & 0xff))
64#define mc6845_light_pen_addr   (((state->m_crtc_vreg[0x10]<<8) & 0x3f00) | (state->m_crtc_vreg[0x11] & 0xff))
65#define mc6845_update_addr     (((state->m_crtc_vreg[0x12]<<8) & 0x3f00) | (state->m_crtc_vreg[0x13] & 0xff))
51#define mc6845_h_char_total    (m_crtc_vreg[0])
52#define mc6845_h_display      (m_crtc_vreg[1])
53#define mc6845_h_sync_pos      (m_crtc_vreg[2])
54#define mc6845_sync_width      (m_crtc_vreg[3])
55#define mc6845_v_char_total      (m_crtc_vreg[4])
56#define mc6845_v_total_adj      (m_crtc_vreg[5])
57#define mc6845_v_display      (m_crtc_vreg[6])
58#define mc6845_v_sync_pos      (m_crtc_vreg[7])
59#define mc6845_mode_ctrl      (m_crtc_vreg[8])
60#define mc6845_tile_height      (m_crtc_vreg[9]+1)
61#define mc6845_cursor_y_start   (m_crtc_vreg[0x0a])
62#define mc6845_cursor_y_end    (m_crtc_vreg[0x0b])
63#define mc6845_start_addr      (((m_crtc_vreg[0x0c]<<8) & 0x3f00) | (m_crtc_vreg[0x0d] & 0xff))
64#define mc6845_cursor_addr     (((m_crtc_vreg[0x0e]<<8) & 0x3f00) | (m_crtc_vreg[0x0f] & 0xff))
65#define mc6845_light_pen_addr   (((m_crtc_vreg[0x10]<<8) & 0x3f00) | (m_crtc_vreg[0x11] & 0xff))
66#define mc6845_update_addr     (((m_crtc_vreg[0x12]<<8) & 0x3f00) | (m_crtc_vreg[0x13] & 0xff))
6667
6768
68static SCREEN_UPDATE_IND16( myb3k )
69UINT32 myb3k_state::screen_update_myb3k(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
6970{
70   myb3k_state *state = screen.machine().driver_data<myb3k_state>();
7171   int x,y;
7272   int xi,yi;
7373   int dot;
7474   int h_step;
7575
76   h_step = 64 >> (state->m_vmode & 3);
76   h_step = 64 >> (m_vmode & 3);
7777
78   //popmessage("%02x %d",state->m_vmode,h_step);
78   //popmessage("%02x %d",m_vmode,h_step);
7979
8080   for(y=0;y<mc6845_v_display;y++)
8181   {
r17967r17968
8686         {
8787            for(xi=0;xi<8;xi++)
8888            {
89               dot = (state->m_p_vram[(x+y*mc6845_h_display)*h_step+yi+0x8000] >> (7-xi)) & 1;
90               if((yi & ~7 && (!(state->m_vmode & 4))) || (yi & ~0xf && (state->m_vmode & 4)))
89               dot = (m_p_vram[(x+y*mc6845_h_display)*h_step+yi+0x8000] >> (7-xi)) & 1;
90               if((yi & ~7 && (!(m_vmode & 4))) || (yi & ~0xf && (m_vmode & 4)))
9191                  dot = 0;
9292
9393               if(y*mc6845_tile_height+yi < 200 && x*8+xi < 320) /* TODO: safety check */
r17967r17968
280280   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
281281   MCFG_SCREEN_SIZE(320, 200)
282282   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1)
283   MCFG_SCREEN_UPDATE_STATIC(myb3k)
283   MCFG_SCREEN_UPDATE_DRIVER(myb3k_state, screen_update_myb3k)
284284   MCFG_GFXDECODE(myb3k)
285285   MCFG_PALETTE_LENGTH(2)
286286   MCFG_PALETTE_INIT(black_and_white)
trunk/src/mess/drivers/p2000t.c
r17967r17968
259259   MCFG_SCREEN_SIZE(80 * 12, 24 * 20)
260260   MCFG_SCREEN_VISIBLE_AREA(0, 80 * 12 - 1, 0, 24 * 20 - 1)
261261   MCFG_VIDEO_START_OVERRIDE(p2000t_state,p2000m)
262   MCFG_SCREEN_UPDATE_STATIC(p2000m)
262   MCFG_SCREEN_UPDATE_DRIVER(p2000t_state, screen_update_p2000m)
263263   MCFG_GFXDECODE( p2000m )
264264   MCFG_PALETTE_LENGTH(4)
265265   MCFG_PALETTE_INIT_OVERRIDE(p2000t_state,p2000m)
trunk/src/mess/drivers/pet.c
r17967r17968
668668   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
669669   MCFG_SCREEN_SIZE(320, 200)
670670   MCFG_SCREEN_VISIBLE_AREA(0, 320 - 1, 0, 200 - 1)
671   MCFG_SCREEN_UPDATE_STATIC( pet )
671   MCFG_SCREEN_UPDATE_DRIVER(pet_state, screen_update_pet)
672672
673673   MCFG_GFXDECODE( pet )
674674   MCFG_PALETTE_LENGTH(ARRAY_LENGTH(pet_palette) / 3)
trunk/src/mess/drivers/pcw.c
r17967r17968
13311331   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
13321332   MCFG_SCREEN_SIZE(PCW_SCREEN_WIDTH, PCW_SCREEN_HEIGHT)
13331333   MCFG_SCREEN_VISIBLE_AREA(0, PCW_SCREEN_WIDTH-1, 0, PCW_SCREEN_HEIGHT-1)
1334   MCFG_SCREEN_UPDATE_STATIC( pcw )
1334   MCFG_SCREEN_UPDATE_DRIVER(pcw_state, screen_update_pcw)
13351335
13361336   MCFG_PALETTE_LENGTH(PCW_NUM_COLOURS)
13371337
r17967r17968
13581358   MCFG_SCREEN_REFRESH_RATE(50)
13591359   MCFG_SCREEN_SIZE( PCW_PRINTER_WIDTH, PCW_PRINTER_HEIGHT )
13601360   MCFG_SCREEN_VISIBLE_AREA(0, PCW_PRINTER_WIDTH-1, 0, PCW_PRINTER_HEIGHT-1)
1361   MCFG_SCREEN_UPDATE_STATIC( pcw_printer )
1361   MCFG_SCREEN_UPDATE_DRIVER(pcw_state, screen_update_pcw_printer)
13621362
13631363   MCFG_DEFAULT_LAYOUT( layout_pcw )
13641364
r17967r17968
13691369   MCFG_SCREEN_REFRESH_RATE(50)
13701370   MCFG_SCREEN_SIZE( PCW_PRINTER_WIDTH, PCW_PRINTER_HEIGHT )
13711371   MCFG_SCREEN_VISIBLE_AREA(0, PCW_PRINTER_WIDTH-1, 0, PCW_PRINTER_HEIGHT-1)
1372   MCFG_SCREEN_UPDATE_STATIC( pcw_printer )
1372   MCFG_SCREEN_UPDATE_DRIVER(pcw_state, screen_update_pcw_printer)
13731373
13741374   MCFG_DEFAULT_LAYOUT( layout_pcw )
13751375
trunk/src/mess/drivers/oric.c
r17967r17968
386386   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
387387   MCFG_SCREEN_SIZE(40*6, 28*8)
388388   MCFG_SCREEN_VISIBLE_AREA(0, 40*6-1, 0, 28*8-1)
389   MCFG_SCREEN_UPDATE_STATIC( oric )
389   MCFG_SCREEN_UPDATE_DRIVER(oric_state, screen_update_oric)
390390
391391   MCFG_PALETTE_LENGTH(8)
392392
trunk/src/mess/drivers/orao.c
r17967r17968
183183   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
184184   MCFG_SCREEN_SIZE(256, 256)
185185   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1)
186    MCFG_SCREEN_UPDATE_STATIC(orao)
186   MCFG_SCREEN_UPDATE_DRIVER(orao_state, screen_update_orao)
187187
188188   MCFG_PALETTE_LENGTH(2)
189189   MCFG_PALETTE_INIT(black_and_white)
trunk/src/mess/drivers/mirage.c
r17967r17968
9595    void fdc_intrq_w(bool state);
9696   DECLARE_DRIVER_INIT(mirage);
9797   virtual void video_start();
98   UINT32 screen_update_mirage(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
9899};
99100
100101const floppy_format_type mirage_state::floppy_formats[] = {
r17967r17968
124125{
125126}
126127
127static SCREEN_UPDATE_RGB32( mirage )
128UINT32 mirage_state::screen_update_mirage(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
128129{
129130   return 0;
130131}
r17967r17968
250251
251252   MCFG_SCREEN_ADD("screen", RASTER)
252253   MCFG_SCREEN_REFRESH_RATE(60)
253   MCFG_SCREEN_UPDATE_STATIC(mirage)
254   MCFG_SCREEN_UPDATE_DRIVER(mirage_state, screen_update_mirage)
254255   MCFG_SCREEN_SIZE(320, 240)
255256   MCFG_SCREEN_VISIBLE_AREA(0, 319, 1, 239)
256257
trunk/src/mess/drivers/ssem.c
r17967r17968
2121   required_shared_ptr<UINT8> m_store;
2222   UINT8 m_store_line;
2323   virtual void machine_reset();
24   UINT32 screen_update_ssem(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
2425};
2526
2627
r17967r17968
442443   }
443444}
444445
445static SCREEN_UPDATE_RGB32( ssem )
446UINT32 ssem_state::screen_update_ssem(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
446447{
447   ssem_state *state = screen.machine().driver_data<ssem_state>();
448448   UINT32 line = 0;
449449   device_t *ssem_cpu = screen.machine().device("maincpu");
450450   UINT32 accum = ssem_cpu->state().state_int(SSEM_A);
r17967r17968
453453
454454   for(line = 0; line < 32; line++)
455455   {
456      word = (state->m_store[(line << 2) | 0] << 24) |
457            (state->m_store[(line << 2) | 1] << 16) |
458            (state->m_store[(line << 2) | 2] <<  8) |
459            (state->m_store[(line << 2) | 3] <<  0);
456      word = (m_store[(line << 2) | 0] << 24) |
457            (m_store[(line << 2) | 1] << 16) |
458            (m_store[(line << 2) | 2] <<  8) |
459            (m_store[(line << 2) | 3] <<  0);
460460      for(bit = 0; bit < 32; bit++)
461461      {
462462         if(word & (1 << (31 - bit)))
463463         {
464            glyph_print(screen.machine(), bitmap, bit << 3, line << 3, "%c", line == state->m_store_line ? 4 : 2);
464            glyph_print(screen.machine(), bitmap, bit << 3, line << 3, "%c", line == m_store_line ? 4 : 2);
465465         }
466466         else
467467         {
468            glyph_print(screen.machine(), bitmap, bit << 3, line << 3, "%c", line == state->m_store_line ? 3 : 1);
468            glyph_print(screen.machine(), bitmap, bit << 3, line << 3, "%c", line == m_store_line ? 3 : 1);
469469         }
470470      }
471471   }
r17967r17968
482482      }
483483   }
484484
485   word = reverse((state->m_store[(state->m_store_line << 2) | 0] << 24) |
486               (state->m_store[(state->m_store_line << 2) | 1] << 16) |
487               (state->m_store[(state->m_store_line << 2) | 2] <<  8) |
488               (state->m_store[(state->m_store_line << 2) | 3] <<  0));
489   glyph_print(screen.machine(), bitmap, 0, 272, "LINE:%02d  VALUE:%08x  HALT:%d", state->m_store_line, word, ssem_cpu->state().state_int(SSEM_HALT));
485   word = reverse((m_store[(m_store_line << 2) | 0] << 24) |
486               (m_store[(m_store_line << 2) | 1] << 16) |
487               (m_store[(m_store_line << 2) | 2] <<  8) |
488               (m_store[(m_store_line << 2) | 3] <<  0));
489   glyph_print(screen.machine(), bitmap, 0, 272, "LINE:%02d  VALUE:%08x  HALT:%d", m_store_line, word, ssem_cpu->state().state_int(SSEM_HALT));
490490   return 0;
491491}
492492
r17967r17968
642642   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
643643   MCFG_SCREEN_SIZE(256, 280)
644644   MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 279)
645   MCFG_SCREEN_UPDATE_STATIC(ssem)
645   MCFG_SCREEN_UPDATE_DRIVER(ssem_state, screen_update_ssem)
646646   MCFG_PALETTE_LENGTH(2)
647647   MCFG_PALETTE_INIT(black_and_white)
648648
trunk/src/mess/drivers/vector06.c
r17967r17968
172172   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
173173   MCFG_SCREEN_SIZE(256+64, 256+64)
174174   MCFG_SCREEN_VISIBLE_AREA(0, 256+64-1, 0, 256+64-1)
175   MCFG_SCREEN_UPDATE_STATIC(vector06)
175   MCFG_SCREEN_UPDATE_DRIVER(vector06_state, screen_update_vector06)
176176   MCFG_PALETTE_LENGTH(16)
177177
178178   MCFG_SPEAKER_STANDARD_MONO("mono")
trunk/src/mess/drivers/galeb.c
r17967r17968
136136   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
137137   MCFG_SCREEN_SIZE(48*8, 16*8)
138138   MCFG_SCREEN_VISIBLE_AREA(0, 48*8-1, 0, 16*8-1)
139    MCFG_SCREEN_UPDATE_STATIC(galeb)
139   MCFG_SCREEN_UPDATE_DRIVER(galeb_state, screen_update_galeb)
140140
141141   MCFG_GFXDECODE( galeb )
142142
trunk/src/mess/drivers/electron.c
r17967r17968
185185   MCFG_SCREEN_REFRESH_RATE( 50.08 )
186186   MCFG_SCREEN_SIZE( 640, 312 )
187187   MCFG_SCREEN_VISIBLE_AREA( 0, 640-1, 0, 256-1 )
188   MCFG_SCREEN_UPDATE_STATIC(electron)
188   MCFG_SCREEN_UPDATE_DRIVER(electron_state, screen_update_electron)
189189
190190   MCFG_PALETTE_LENGTH( 16 )
191191
trunk/src/mess/drivers/uzebox.c
r17967r17968
1818   }
1919   DECLARE_DRIVER_INIT(uzebox);
2020   virtual void machine_reset();
21   UINT32 screen_update_uzebox(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
2122};
2223/****************************************************\
2324* Address maps                                       *
r17967r17968
4344* Video hardware                                     *
4445\****************************************************/
4546
46static SCREEN_UPDATE_RGB32( uzebox )
47UINT32 uzebox_state::screen_update_uzebox(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
4748{
4849   return 0;
4950}
r17967r17968
7475   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1395))
7576   MCFG_SCREEN_SIZE(634, 480)
7677   MCFG_SCREEN_VISIBLE_AREA(0, 633, 0, 479)
77   MCFG_SCREEN_UPDATE_STATIC(uzebox)
78   MCFG_SCREEN_UPDATE_DRIVER(uzebox_state, screen_update_uzebox)
7879
7980   MCFG_PALETTE_LENGTH(0x1000)
8081
trunk/src/mess/drivers/vt220.c
r17967r17968
1919
2020   virtual void machine_reset();
2121   virtual void video_start();
22   UINT32 screen_update_vt220(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2223};
2324
2425
r17967r17968
4243{
4344}
4445
45static SCREEN_UPDATE_IND16( vt220 )
46UINT32 vt220_state::screen_update_vt220(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
4647{
4748   return 0;
4849}
r17967r17968
6162   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
6263   MCFG_SCREEN_SIZE(640, 480)
6364   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
64   MCFG_SCREEN_UPDATE_STATIC(vt220)
65   MCFG_SCREEN_UPDATE_DRIVER(vt220_state, screen_update_vt220)
6566   MCFG_PALETTE_LENGTH(2)
6667   MCFG_PALETTE_INIT(black_and_white)
6768
trunk/src/mess/drivers/mikrosha.c
r17967r17968
216216   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
217217   MCFG_SCREEN_SIZE(78*6, 30*10)
218218   MCFG_SCREEN_VISIBLE_AREA(0, 78*6-1, 0, 30*10-1)
219   MCFG_SCREEN_UPDATE_STATIC(radio86)
219   MCFG_SCREEN_UPDATE_DRIVER(radio86_state, screen_update_radio86)
220220
221221   MCFG_GFXDECODE(mikrosha)
222222   MCFG_PALETTE_LENGTH(3)
trunk/src/mess/drivers/ti990_10.c
r17967r17968
8888   virtual void machine_start();
8989   virtual void machine_reset();
9090   virtual void video_start();
91   UINT32 screen_update_ti990_10(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
9192};
9293
9394
r17967r17968
153154   m_terminal = machine().device("vdt911");
154155}
155156
156static SCREEN_UPDATE_IND16( ti990_10 )
157UINT32 ti990_10_state::screen_update_ti990_10(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
157158{
158   ti990_10_state *state = screen.machine().driver_data<ti990_10_state>();
159   vdt911_refresh(state->m_terminal, bitmap, cliprect, 0, 0);
159   vdt911_refresh(m_terminal, bitmap, cliprect, 0, 0);
160160   return 0;
161161}
162162
r17967r17968
224224   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
225225   MCFG_SCREEN_SIZE(560, 280)
226226   MCFG_SCREEN_VISIBLE_AREA(0, 560-1, 0, /*250*/280-1)
227   MCFG_SCREEN_UPDATE_STATIC(ti990_10)
227   MCFG_SCREEN_UPDATE_DRIVER(ti990_10_state, screen_update_ti990_10)
228228   /*MCFG_SCREEN_VBLANK_STATIC(name)*/
229229
230230   MCFG_GFXDECODE(vdt911)
trunk/src/mess/drivers/amiga.c
r17967r17968
397397   MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
398398   MCFG_SCREEN_SIZE(228*4, 262)
399399   MCFG_SCREEN_VISIBLE_AREA(214, (228*4)-1, 34, 262-1)
400   MCFG_SCREEN_UPDATE_STATIC(amiga)
400   MCFG_SCREEN_UPDATE_DRIVER(amiga_state, screen_update_amiga)
401401
402402   MCFG_PALETTE_LENGTH(4096)
403403   MCFG_PALETTE_INIT_OVERRIDE(amiga_state, amiga )
trunk/src/mess/drivers/mk90.c
r17967r17968
2626
2727   virtual void machine_reset();
2828   virtual void video_start();
29   UINT32 screen_update_mk90(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2930};
3031
3132
r17967r17968
5657{
5758}
5859
59static SCREEN_UPDATE_IND16( mk90 )
60UINT32 mk90_state::screen_update_mk90(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
6061{
6162   return 0;
6263}
r17967r17968
7980   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
8081   MCFG_SCREEN_SIZE(640, 480)
8182   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
82   MCFG_SCREEN_UPDATE_STATIC(mk90)
83   MCFG_SCREEN_UPDATE_DRIVER(mk90_state, screen_update_mk90)
8384   MCFG_PALETTE_LENGTH(2)
8485   MCFG_PALETTE_INIT(black_and_white)
8586MACHINE_CONFIG_END
trunk/src/mess/drivers/orion.c
r17967r17968
142142   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
143143   MCFG_SCREEN_SIZE(384, 256)
144144   MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 256-1)
145    MCFG_SCREEN_UPDATE_STATIC(orion128)
145   MCFG_SCREEN_UPDATE_DRIVER(orion_state, screen_update_orion128)
146146
147147   MCFG_PALETTE_LENGTH(18)
148148   MCFG_PALETTE_INIT_OVERRIDE(orion_state, orion128 )
r17967r17968
198198   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
199199   MCFG_SCREEN_SIZE(384, 256)
200200   MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 256-1)
201   MCFG_SCREEN_UPDATE_STATIC(orion128)
201   MCFG_SCREEN_UPDATE_DRIVER(orion_state, screen_update_orion128)
202202
203203   MCFG_PALETTE_LENGTH(18)
204204   MCFG_PALETTE_INIT_OVERRIDE(orion_state, orion128 )
r17967r17968
253253   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
254254   MCFG_SCREEN_SIZE(384, 256)
255255   MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 256-1)
256    MCFG_SCREEN_UPDATE_STATIC(orion128)
256   MCFG_SCREEN_UPDATE_DRIVER(orion_state, screen_update_orion128)
257257
258258   MCFG_PALETTE_LENGTH(18)
259259   MCFG_PALETTE_INIT_OVERRIDE(orion_state, orion128 )
trunk/src/mess/drivers/bk.c
r17967r17968
183183   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
184184   MCFG_SCREEN_SIZE(512, 256)
185185   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
186    MCFG_SCREEN_UPDATE_STATIC(bk0010)
186   MCFG_SCREEN_UPDATE_DRIVER(bk_state, screen_update_bk0010)
187187
188188   MCFG_PALETTE_LENGTH(2)
189189   MCFG_PALETTE_INIT(black_and_white)
trunk/src/mess/drivers/mz2500.c
r17967r17968
163163   virtual void machine_reset();
164164   virtual void video_start();
165165   virtual void palette_init();
166   UINT32 screen_update_mz2500(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
166167};
167168
168169
r17967r17968
631632   }
632633}
633634
634static SCREEN_UPDATE_IND16( mz2500 )
635UINT32 mz2500_state::screen_update_mz2500(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
635636{
636   //mz2500_state *state = screen.machine().driver_data<mz2500_state>();
637637   bitmap.fill(screen.machine().pens[0], cliprect); //TODO: correct?
638638
639639   draw_cg_screen(screen.machine(),bitmap,cliprect,0);
640640   draw_tv_screen(screen.machine(),bitmap,cliprect);
641641   draw_cg_screen(screen.machine(),bitmap,cliprect,1);
642   //  popmessage("%02x (%02x %02x) (%02x %02x) (%02x %02x) (%02x %02x)",state->m_cg_reg[0x0f],state->m_cg_reg[0x10],state->m_cg_reg[0x11],state->m_cg_reg[0x12],state->m_cg_reg[0x13],state->m_cg_reg[0x14],state->m_cg_reg[0x15],state->m_cg_reg[0x16],state->m_cg_reg[0x17]);
643   //  popmessage("%02x",state->m_text_reg[0x0f]);
642   //  popmessage("%02x (%02x %02x) (%02x %02x) (%02x %02x) (%02x %02x)",m_cg_reg[0x0f],m_cg_reg[0x10],m_cg_reg[0x11],m_cg_reg[0x12],m_cg_reg[0x13],m_cg_reg[0x14],m_cg_reg[0x15],m_cg_reg[0x16],m_cg_reg[0x17]);
643   //  popmessage("%02x",m_text_reg[0x0f]);
644644
645645
646646    return 0;
r17967r17968
21132113   /* video hardware */
21142114   MCFG_SCREEN_ADD("screen", RASTER)
21152115   MCFG_SCREEN_RAW_PARAMS(XTAL_21_4772MHz, 640+108, 0, 640, 480, 0, 200) //unknown clock / divider
2116    MCFG_SCREEN_UPDATE_STATIC(mz2500)
2116   MCFG_SCREEN_UPDATE_DRIVER(mz2500_state, screen_update_mz2500)
21172117
21182118   MCFG_PALETTE_LENGTH(0x200)
21192119
trunk/src/mess/drivers/dct11em.c
r17967r17968
1616      : driver_device(mconfig, type, tag) { }
1717   virtual void machine_reset();
1818   virtual void video_start();
19   UINT32 screen_update_dct11em(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
1920};
2021
2122static ADDRESS_MAP_START( dct11em_mem, AS_PROGRAM, 16, dct11em_state )
r17967r17968
3839{
3940}
4041
41static SCREEN_UPDATE_IND16( dct11em )
42UINT32 dct11em_state::screen_update_dct11em(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
4243{
4344   return 0;
4445}
r17967r17968
6162   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
6263   MCFG_SCREEN_SIZE(640, 480)
6364   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
64   MCFG_SCREEN_UPDATE_STATIC(dct11em)
65   MCFG_SCREEN_UPDATE_DRIVER(dct11em_state, screen_update_dct11em)
6566   MCFG_PALETTE_LENGTH(2)
6667   MCFG_PALETTE_INIT(black_and_white)
6768MACHINE_CONFIG_END
trunk/src/mess/drivers/a7800.c
r17967r17968
262262   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
263263   MCFG_SCREEN_SIZE(640,262)
264264   MCFG_SCREEN_VISIBLE_AREA(0,319,25,45+204)
265   MCFG_SCREEN_UPDATE_STATIC(a7800)
265   MCFG_SCREEN_UPDATE_DRIVER(a7800_state, screen_update_a7800)
266266
267267   MCFG_PALETTE_LENGTH(ARRAY_LENGTH(a7800_palette))
268268
trunk/src/mess/drivers/uknc.c
r17967r17968
1818
1919   virtual void machine_reset();
2020   virtual void video_start();
21   UINT32 screen_update_uknc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2122};
2223
2324
r17967r17968
4647{
4748}
4849
49static SCREEN_UPDATE_IND16( uknc )
50UINT32 uknc_state::screen_update_uknc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
5051{
5152   return 0;
5253}
r17967r17968
7475   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
7576   MCFG_SCREEN_SIZE(640, 480)
7677   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
77   MCFG_SCREEN_UPDATE_STATIC(uknc)
78   MCFG_SCREEN_UPDATE_DRIVER(uknc_state, screen_update_uknc)
7879   MCFG_PALETTE_LENGTH(2)
7980   MCFG_PALETTE_INIT(black_and_white)
8081MACHINE_CONFIG_END
trunk/src/mess/drivers/nascom1.c
r17967r17968
288288   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
289289   MCFG_SCREEN_SIZE(48 * 8, 16 * 16)
290290   MCFG_SCREEN_VISIBLE_AREA(0, 48 * 8 - 1, 0, 16 * 16 - 1)
291   MCFG_SCREEN_UPDATE_STATIC(nascom1)
291   MCFG_SCREEN_UPDATE_DRIVER(nascom1_state, screen_update_nascom1)
292292
293293   MCFG_GFXDECODE(nascom1)
294294   MCFG_PALETTE_LENGTH(2)
r17967r17968
345345   MCFG_SCREEN_MODIFY("screen")
346346   MCFG_SCREEN_SIZE(48 * 8, 16 * 14)
347347   MCFG_SCREEN_VISIBLE_AREA(0, 48 * 8 - 1, 0, 16 * 14 - 1)
348   MCFG_SCREEN_UPDATE_STATIC(nascom2)
348   MCFG_SCREEN_UPDATE_DRIVER(nascom1_state, screen_update_nascom2)
349349
350350   MCFG_GFXDECODE(nascom2)
351351
trunk/src/mess/drivers/gmaster.c
r17967r17968
172172   }
173173}
174174
175static SCREEN_UPDATE_IND16( gmaster )
175UINT32 gmaster_state::screen_update_gmaster(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
176176{
177   gmaster_state *state = screen.machine().driver_data<gmaster_state>();
178177    int x,y;
179178//  plot_box(bitmap, 0, 0, 64/*bitmap.width*/, bitmap.height, 0); //xmess rounds up to 64 pixel
180    for (y = 0; y < ARRAY_LENGTH(state->m_video.pixels); y++)
179    for (y = 0; y < ARRAY_LENGTH(m_video.pixels); y++)
181180   {
182      for (x = 0; x < ARRAY_LENGTH(state->m_video.pixels[0]); x++)
181      for (x = 0; x < ARRAY_LENGTH(m_video.pixels[0]); x++)
183182      {
184         UINT8 d = state->m_video.pixels[y][x];
183         UINT8 d = m_video.pixels[y][x];
185184         UINT16 *line;
186185
187186         line = &bitmap.pix16((y * 8), x);
r17967r17968
228227   MCFG_SCREEN_REFRESH_RATE(60)
229228   MCFG_SCREEN_SIZE(64, 64)
230229   MCFG_SCREEN_VISIBLE_AREA(0, 64-1-3, 0, 64-1)
231   MCFG_SCREEN_UPDATE_STATIC(gmaster)
230   MCFG_SCREEN_UPDATE_DRIVER(gmaster_state, screen_update_gmaster)
232231
233232   MCFG_PALETTE_LENGTH(sizeof(gmaster_palette)/sizeof(gmaster_palette[0]))
234233   MCFG_DEFAULT_LAYOUT(layout_lcd)
trunk/src/mess/drivers/terak.c
r17967r17968
2424   UINT16 m_data;
2525   virtual void machine_reset();
2626   virtual void video_start();
27   UINT32 screen_update_terak(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2728};
2829
2930READ16_MEMBER( terak_state::terak_fdc_status_r )
r17967r17968
7778{
7879}
7980
80static SCREEN_UPDATE_IND16( terak )
81UINT32 terak_state::screen_update_terak(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
8182{
8283   return 0;
8384}
r17967r17968
100101   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
101102   MCFG_SCREEN_SIZE(640, 480)
102103   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
103   MCFG_SCREEN_UPDATE_STATIC(terak)
104   MCFG_SCREEN_UPDATE_DRIVER(terak_state, screen_update_terak)
104105
105106   MCFG_PALETTE_LENGTH(2)
106107   MCFG_PALETTE_INIT(black_and_white)
trunk/src/mess/drivers/tk80bs.c
r17967r17968
8585   DECLARE_MACHINE_START(tk80bs);
8686   DECLARE_MACHINE_RESET(tk80bs);
8787   DECLARE_VIDEO_START(tk80bs);
88   UINT32 screen_update_tk80bs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8889};
8990
9091/************************************************* TK80 ******************************************/
r17967r17968
259260{
260261}
261262
262static SCREEN_UPDATE_IND16( tk80bs )
263UINT32 tk80bs_state::screen_update_tk80bs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
263264{
264   tk80bs_state *state = screen.machine().driver_data<tk80bs_state>();
265265   int x,y;
266266   int count;
267267
r17967r17968
271271   {
272272      for(x=0;x<32;x++)
273273      {
274         int tile = state->m_p_videoram[count++];
274         int tile = m_p_videoram[count++];
275275
276276         drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], tile, 0, 0, 0, x*8, y*8);
277277      }
r17967r17968
408408   MCFG_SCREEN_SIZE(256, 128)
409409   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 128-1)
410410   MCFG_VIDEO_START_OVERRIDE(tk80bs_state,tk80bs)
411   MCFG_SCREEN_UPDATE_STATIC(tk80bs)
411   MCFG_SCREEN_UPDATE_DRIVER(tk80bs_state, screen_update_tk80bs)
412412   MCFG_PALETTE_LENGTH(2)
413413   MCFG_PALETTE_INIT(black_and_white)
414414   MCFG_GFXDECODE(tk80bs)
trunk/src/mess/drivers/microtan.c
r17967r17968
228228   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
229229   MCFG_SCREEN_SIZE(32*8, 16*16)
230230   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*16, 16*16-1)
231   MCFG_SCREEN_UPDATE_STATIC(microtan)
231   MCFG_SCREEN_UPDATE_DRIVER(microtan_state, screen_update_microtan)
232232
233233   MCFG_GFXDECODE(microtan)
234234   MCFG_PALETTE_LENGTH(2)
trunk/src/mess/drivers/sapi1.c
r17967r17968
183183   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
184184   MCFG_SCREEN_SIZE(40*6, 24*9)
185185   MCFG_SCREEN_VISIBLE_AREA(0, 40*6-1, 0, 24*9-1)
186   MCFG_SCREEN_UPDATE_STATIC(sapi1)
186   MCFG_SCREEN_UPDATE_DRIVER(sapi1_state, screen_update_sapi1)
187187
188188   MCFG_PALETTE_LENGTH(2)
189189   MCFG_PALETTE_INIT(black_and_white)
r17967r17968
218218   //MCFG_SCREEN_SIZE(80*6, 24*9)
219219   //MCFG_SCREEN_VISIBLE_AREA(0, 80*6-1, 0, 24*9-1)
220220   //MCFG_VIDEO_START_OVERRIDE(sapi1_state,sapizps3)
221   //MCFG_SCREEN_UPDATE_STATIC(sapizps3)
221   MCFG_SCREEN_UPDATE_DRIVER(sapi1_state, screen_update_sapizps3)
222222   //MCFG_PALETTE_LENGTH(2)
223223   //MCFG_PALETTE_INIT(black_and_white)
224224
trunk/src/mess/drivers/einstein.c
r17967r17968
480480    VIDEO EMULATION
481481***************************************************************************/
482482
483static SCREEN_UPDATE_RGB32( einstein2 )
483UINT32 einstein_state::screen_update_einstein2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
484484{
485   einstein_state *einstein = screen.machine().driver_data<einstein_state>();
486485
487   if (&screen == einstein->m_color_screen)
486   if (&screen == m_color_screen)
488487   {
489488      tms9929a_device *tms9929a = screen.machine().device<tms9929a_device>( "tms9929a" );
490489      const rgb_t *palette = palette_entry_list_raw(bitmap.palette());
r17967r17968
493492         for (int x = cliprect.min_x; x <= cliprect.max_x; x++)
494493            bitmap.pix32(y, x) = palette[src.pix16(y, x)];
495494   }
496   else if (&screen == einstein->m_crtc_screen)
497      einstein->m_mc6845->screen_update( screen, bitmap, cliprect);
495   else if (&screen == m_crtc_screen)
496      m_mc6845->screen_update( screen, bitmap, cliprect);
498497   else
499498      fatalerror("Unknown screen '%s'\n", screen.tag());
500499
r17967r17968
842841   MCFG_SCREEN_SIZE(640, 400)
843842   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 400-1)
844843   MCFG_SCREEN_REFRESH_RATE(50)
845   MCFG_SCREEN_UPDATE_STATIC(einstein2)
844   MCFG_SCREEN_UPDATE_DRIVER(einstein_state, screen_update_einstein2)
846845   MCFG_GFXDECODE(einstei2)
847846
848847   /* 2 additional colors for the 80 column screen */
trunk/src/mess/drivers/ti99_2.c
r17967r17968
101101   DECLARE_DRIVER_INIT(ti99_2_32);
102102   virtual void machine_reset();
103103   virtual void palette_init();
104   UINT32 screen_update_ti99_2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
104105};
105106
106107
r17967r17968
157158}
158159
159160
160static SCREEN_UPDATE_IND16(ti99_2)
161UINT32 ti99_2_state::screen_update_ti99_2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
161162{
162   ti99_2_state *state = screen.machine().driver_data<ti99_2_state>();
163   UINT8 *videoram = state->m_videoram;
163   UINT8 *videoram = m_videoram;
164164   int i, sx, sy;
165165
166166
r17967r17968
390390   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
391391   MCFG_SCREEN_SIZE(256, 192)
392392   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 192-1)
393   MCFG_SCREEN_UPDATE_STATIC(ti99_2)
393   MCFG_SCREEN_UPDATE_DRIVER(ti99_2_state, screen_update_ti99_2)
394394
395395   MCFG_GFXDECODE(ti99_2)
396396   MCFG_PALETTE_LENGTH(2)
trunk/src/mess/drivers/vboy.c
r17967r17968
148148   virtual void machine_reset();
149149   virtual void video_start();
150150   virtual void palette_init();
151   UINT32 screen_update_vboy_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
152   UINT32 screen_update_vboy_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
151153};
152154
153155
r17967r17968
484486   return 0;
485487}
486488
487static SCREEN_UPDATE_IND16( vboy_left )
489UINT32 vboy_state::screen_update_vboy_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
488490{
489   vboy_state *state = screen.machine().driver_data<vboy_state>();
490   bitmap.fill(screen.machine().pens[state->m_vip_regs.BKCOL], cliprect);
491   bitmap.fill(screen.machine().pens[m_vip_regs.BKCOL], cliprect);
491492   int cur_spt;
492493
493   if(!(state->m_vip_regs.DPCTRL & 2)) /* Don't bother if screen is off */
494   if(!(m_vip_regs.DPCTRL & 2)) /* Don't bother if screen is off */
494495      return 0;
495496
496497   cur_spt = 3;
497498   for(int i=31; i>=0; i--)
498      if (state->display_world(i, bitmap, false, cur_spt)) break;
499      if (display_world(i, bitmap, false, cur_spt)) break;
499500
500501   if(0)
501502   {
r17967r17968
509510            UINT8 pix;
510511            int yi;
511512
512            pen = state->m_l_frame_1[(x*0x40)+(y >> 2)];
513            pen = m_l_frame_1[(x*0x40)+(y >> 2)];
513514            yi = ((y & 0x3)*2);
514515            pix = (pen >> yi) & 3;
515516
r17967r17968
521522   return 0;
522523}
523524
524static SCREEN_UPDATE_IND16( vboy_right )
525UINT32 vboy_state::screen_update_vboy_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
525526{
526   vboy_state *state = screen.machine().driver_data<vboy_state>();
527   bitmap.fill(screen.machine().pens[state->m_vip_regs.BKCOL], cliprect);
527   bitmap.fill(screen.machine().pens[m_vip_regs.BKCOL], cliprect);
528528   int cur_spt;
529529
530   if(!(state->m_vip_regs.DPCTRL & 2)) /* Don't bother if screen is off */
530   if(!(m_vip_regs.DPCTRL & 2)) /* Don't bother if screen is off */
531531      return 0;
532532
533533   cur_spt = 3;
534534   for(int i=31; i>=0; i--)
535      if (state->display_world(i, bitmap, true, cur_spt)) break;
535      if (display_world(i, bitmap, true, cur_spt)) break;
536536
537537   return 0;
538538}
r17967r17968
14421442   /* Left screen */
14431443   MCFG_SCREEN_ADD("3dleft", RASTER)
14441444   MCFG_SCREEN_RAW_PARAMS(XTAL_20MHz/2,757,0,384,264,0,224)
1445   MCFG_SCREEN_UPDATE_STATIC(vboy_left)
1445   MCFG_SCREEN_UPDATE_DRIVER(vboy_state, screen_update_vboy_left)
14461446
14471447   /* Right screen */
14481448   MCFG_SCREEN_ADD("3dright", RASTER)
14491449   MCFG_SCREEN_RAW_PARAMS(XTAL_20MHz/2,757,0,384,264,0,224)
1450   MCFG_SCREEN_UPDATE_STATIC(vboy_right)
1450   MCFG_SCREEN_UPDATE_DRIVER(vboy_state, screen_update_vboy_right)
14511451
14521452   /* cartridge */
14531453   MCFG_CARTSLOT_ADD("cart")
trunk/src/mess/drivers/multi8.c
r17967r17968
6868   virtual void machine_reset();
6969   virtual void video_start();
7070   virtual void palette_init();
71   UINT32 screen_update_multi8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7172};
7273
73#define mc6845_h_char_total    (state->m_crtc_vreg[0])
74#define mc6845_h_display      (state->m_crtc_vreg[1])
75#define mc6845_h_sync_pos      (state->m_crtc_vreg[2])
76#define mc6845_sync_width      (state->m_crtc_vreg[3])
77#define mc6845_v_char_total      (state->m_crtc_vreg[4])
78#define mc6845_v_total_adj      (state->m_crtc_vreg[5])
79#define mc6845_v_display      (state->m_crtc_vreg[6])
80#define mc6845_v_sync_pos      (state->m_crtc_vreg[7])
81#define mc6845_mode_ctrl      (state->m_crtc_vreg[8])
82#define mc6845_tile_height      (state->m_crtc_vreg[9]+1)
83#define mc6845_cursor_y_start   (state->m_crtc_vreg[0x0a])
84#define mc6845_cursor_y_end    (state->m_crtc_vreg[0x0b])
85#define mc6845_start_addr      (((state->m_crtc_vreg[0x0c]<<8) & 0x3f00) | (state->m_crtc_vreg[0x0d] & 0xff))
86#define mc6845_cursor_addr     (((state->m_crtc_vreg[0x0e]<<8) & 0x3f00) | (state->m_crtc_vreg[0x0f] & 0xff))
87#define mc6845_light_pen_addr   (((state->m_crtc_vreg[0x10]<<8) & 0x3f00) | (state->m_crtc_vreg[0x11] & 0xff))
88#define mc6845_update_addr     (((state->m_crtc_vreg[0x12]<<8) & 0x3f00) | (state->m_crtc_vreg[0x13] & 0xff))
74#define mc6845_h_char_total    (m_crtc_vreg[0])
75#define mc6845_h_display      (m_crtc_vreg[1])
76#define mc6845_h_sync_pos      (m_crtc_vreg[2])
77#define mc6845_sync_width      (m_crtc_vreg[3])
78#define mc6845_v_char_total      (m_crtc_vreg[4])
79#define mc6845_v_total_adj      (m_crtc_vreg[5])
80#define mc6845_v_display      (m_crtc_vreg[6])
81#define mc6845_v_sync_pos      (m_crtc_vreg[7])
82#define mc6845_mode_ctrl      (m_crtc_vreg[8])
83#define mc6845_tile_height      (m_crtc_vreg[9]+1)
84#define mc6845_cursor_y_start   (m_crtc_vreg[0x0a])
85#define mc6845_cursor_y_end    (m_crtc_vreg[0x0b])
86#define mc6845_start_addr      (((m_crtc_vreg[0x0c]<<8) & 0x3f00) | (m_crtc_vreg[0x0d] & 0xff))
87#define mc6845_cursor_addr     (((m_crtc_vreg[0x0e]<<8) & 0x3f00) | (m_crtc_vreg[0x0f] & 0xff))
88#define mc6845_light_pen_addr   (((m_crtc_vreg[0x10]<<8) & 0x3f00) | (m_crtc_vreg[0x11] & 0xff))
89#define mc6845_update_addr     (((m_crtc_vreg[0x12]<<8) & 0x3f00) | (m_crtc_vreg[0x13] & 0xff))
8990
9091void multi8_state::video_start()
9192{
r17967r17968
114115      bitmap.pix16(y, x) = pen;
115116}
116117
117static SCREEN_UPDATE_IND16( multi8 )
118UINT32 multi8_state::screen_update_multi8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
118119{
119   multi8_state *state = screen.machine().driver_data<multi8_state>();
120120   int x,y,count;
121121   UINT8 x_width;
122122   UINT8 xi,yi;
123123
124124   count = 0x0000;
125125
126   x_width = (state->m_display_reg & 0x40) ? 80 : 40;
126   x_width = (m_display_reg & 0x40) ? 80 : 40;
127127
128128   for(y=0; y<200; y++)
129129   {
r17967r17968
133133         {
134134            int pen_r,pen_g,pen_b,color;
135135
136            pen_b = (state->m_p_vram[count | 0x0000] >> (7-xi)) & 1;
137            pen_r = (state->m_p_vram[count | 0x4000] >> (7-xi)) & 1;
138            pen_g = (state->m_p_vram[count | 0x8000] >> (7-xi)) & 1;
136            pen_b = (m_p_vram[count | 0x0000] >> (7-xi)) & 1;
137            pen_r = (m_p_vram[count | 0x4000] >> (7-xi)) & 1;
138            pen_g = (m_p_vram[count | 0x8000] >> (7-xi)) & 1;
139139
140            if (state->m_bw_mode)
140            if (m_bw_mode)
141141            {
142               pen_b = (state->m_display_reg & 1) ? pen_b : 0;
143               pen_r = (state->m_display_reg & 2) ? pen_r : 0;
144               pen_g = (state->m_display_reg & 4) ? pen_g : 0;
142               pen_b = (m_display_reg & 1) ? pen_b : 0;
143               pen_r = (m_display_reg & 2) ? pen_r : 0;
144               pen_g = (m_display_reg & 4) ? pen_g : 0;
145145
146146               color = ((pen_b) | (pen_r) | (pen_g)) ? 7 : 0;
147147            }
148148            else
149149               color = (pen_b) | (pen_r << 1) | (pen_g << 2);
150150
151            multi8_draw_pixel(screen.machine(),bitmap, y, x*8+xi,state->m_pen_clut[color], 0);
151            multi8_draw_pixel(screen.machine(),bitmap, y, x*8+xi,m_pen_clut[color], 0);
152152         }
153153         count++;
154154      }
r17967r17968
160160   {
161161      for(x=0; x<x_width; x++)
162162      {
163         int tile = state->m_p_vram[count];
164         int attr = state->m_p_vram[count+0x800];
165         int color = (state->m_display_reg & 0x80) ? 7 : (attr & 0x07);
163         int tile = m_p_vram[count];
164         int attr = m_p_vram[count+0x800];
165         int color = (m_display_reg & 0x80) ? 7 : (attr & 0x07);
166166
167167         for (yi=0; yi<8; yi++)
168168         {
r17967r17968
171171               int pen;
172172
173173               if(attr & 0x20)
174                  pen = (state->m_p_chargen[tile*8+yi] >> (7-xi) & 1) ? 0 : color;
174                  pen = (m_p_chargen[tile*8+yi] >> (7-xi) & 1) ? 0 : color;
175175               else
176                  pen = (state->m_p_chargen[tile*8+yi] >> (7-xi) & 1) ? color : 0;
176                  pen = (m_p_chargen[tile*8+yi] >> (7-xi) & 1) ? color : 0;
177177
178178               if(pen)
179                  multi8_draw_pixel(screen.machine(),bitmap, y*mc6845_tile_height+yi, x*8+xi, pen, (state->m_display_reg & 0x40) == 0x00);
179                  multi8_draw_pixel(screen.machine(),bitmap, y*mc6845_tile_height+yi, x*8+xi, pen, (m_display_reg & 0x40) == 0x00);
180180            }
181181         }
182182
r17967r17968
201201               for (yc=0; yc<(mc6845_tile_height-(mc6845_cursor_y_start & 7)); yc++)
202202               {
203203                  for (xc=0; xc<8; xc++)
204                     multi8_draw_pixel(screen.machine(),bitmap, y*mc6845_tile_height+yc, x*8+xc,0x07,(state->m_display_reg & 0x40) == 0x00);
204                     multi8_draw_pixel(screen.machine(),bitmap, y*mc6845_tile_height+yc, x*8+xc,0x07,(m_display_reg & 0x40) == 0x00);
205205
206206               }
207207            }
208208         }
209209
210         (state->m_display_reg & 0x40) ? count++ : count+=2;
210         (m_display_reg & 0x40) ? count++ : count+=2;
211211      }
212212   }
213213   return 0;
r17967r17968
671671   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
672672   MCFG_SCREEN_SIZE(640, 200)
673673   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1)
674   MCFG_SCREEN_UPDATE_STATIC(multi8)
674   MCFG_SCREEN_UPDATE_DRIVER(multi8_state, screen_update_multi8)
675675   MCFG_PALETTE_LENGTH(8)
676676   MCFG_GFXDECODE(multi8)
677677
trunk/src/mess/drivers/p112.c
r17967r17968
4343
4444   virtual void machine_reset();
4545   virtual void video_start();
46   UINT32 screen_update_p112(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4647};
4748
4849
r17967r17968
7071{
7172}
7273
73static SCREEN_UPDATE_IND16( p112 )
74UINT32 p112_state::screen_update_p112(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
7475{
7576   return 0;
7677}
r17967r17968
8889   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
8990   MCFG_SCREEN_SIZE(240, 320)
9091   MCFG_SCREEN_VISIBLE_AREA(0, 240-1, 0, 320-1)
91   MCFG_SCREEN_UPDATE_STATIC(p112)
92   MCFG_SCREEN_UPDATE_DRIVER(p112_state, screen_update_p112)
9293
9394   MCFG_PALETTE_LENGTH(2)
9495   MCFG_PALETTE_INIT(black_and_white)
trunk/src/mess/drivers/ssystem3.c
r17967r17968
313313   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
314314   MCFG_SCREEN_SIZE(728, 437)
315315   MCFG_SCREEN_VISIBLE_AREA(0, 728-1, 0, 437-1)
316   MCFG_SCREEN_UPDATE_STATIC( ssystem3 )
316   MCFG_SCREEN_UPDATE_DRIVER(ssystem3_state, screen_update_ssystem3)
317317
318318   MCFG_PALETTE_LENGTH(242 + 32768)
319319
trunk/src/mess/drivers/amstrad.c
r17967r17968
891891    /* video hardware */
892892   MCFG_SCREEN_ADD("screen", RASTER)
893893   MCFG_SCREEN_RAW_PARAMS( XTAL_16MHz, 1024, 32, 32 + 640 + 64, 312, 56 + 15, 200 + 15 )
894   MCFG_SCREEN_UPDATE_STATIC(amstrad)
895   MCFG_SCREEN_VBLANK_STATIC(amstrad)
894   MCFG_SCREEN_UPDATE_DRIVER(amstrad_state, screen_update_amstrad)
895   MCFG_SCREEN_VBLANK_DRIVER(amstrad_state, screen_eof_amstrad)
896896
897897   MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
898898
r17967r17968
957957   /* video hardware */
958958   MCFG_SCREEN_ADD("screen", RASTER)
959959   MCFG_SCREEN_RAW_PARAMS( ( XTAL_40MHz * 2 ) / 5, 1024, 32, 32 + 640 + 64, 312, 56 + 15, 200 + 15 )
960   MCFG_SCREEN_UPDATE_STATIC(amstrad)
961   MCFG_SCREEN_VBLANK_STATIC(amstrad)
960   MCFG_SCREEN_UPDATE_DRIVER(amstrad_state, screen_update_amstrad)
961   MCFG_SCREEN_VBLANK_DRIVER(amstrad_state, screen_eof_amstrad)
962962
963963   MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
964964
r17967r17968
10151015   /* video hardware */
10161016   MCFG_SCREEN_ADD("screen", RASTER)
10171017   MCFG_SCREEN_RAW_PARAMS( ( XTAL_40MHz * 2 ) / 5, 1024, 32, 32 + 640 + 64, 312, 56 + 15, 200 + 15 )
1018   MCFG_SCREEN_UPDATE_STATIC(amstrad)
1019   MCFG_SCREEN_VBLANK_STATIC(amstrad)
1018   MCFG_SCREEN_UPDATE_DRIVER(amstrad_state, screen_update_amstrad)
1019   MCFG_SCREEN_VBLANK_DRIVER(amstrad_state, screen_eof_amstrad)
10201020
10211021   MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
10221022
trunk/src/mess/drivers/ng_aes.c
r17967r17968
16481648
16491649   MCFG_SCREEN_ADD("screen", RASTER)
16501650   MCFG_SCREEN_RAW_PARAMS(NEOGEO_PIXEL_CLOCK, NEOGEO_HTOTAL, NEOGEO_HBEND, NEOGEO_HBSTART, NEOGEO_VTOTAL, NEOGEO_VBEND, NEOGEO_VBSTART)
1651   MCFG_SCREEN_UPDATE_STATIC(neogeo)
1651   MCFG_SCREEN_UPDATE_DRIVER(ng_aes_state, screen_update_neogeo)
16521652
16531653   /* audio hardware */
16541654   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
trunk/src/mess/drivers/bml3.c
r17967r17968
111111   virtual void machine_start();
112112   virtual void video_start();
113113   virtual void palette_init();
114public:   
115   UINT32 screen_update_bml3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
114116};
115117
116#define mc6845_h_char_total    (state->m_crtc_vreg[0])
117#define mc6845_h_display      (state->m_crtc_vreg[1])
118#define mc6845_h_sync_pos      (state->m_crtc_vreg[2])
119#define mc6845_sync_width      (state->m_crtc_vreg[3])
120#define mc6845_v_char_total      (state->m_crtc_vreg[4])
121#define mc6845_v_total_adj      (state->m_crtc_vreg[5])
122#define mc6845_v_display      (state->m_crtc_vreg[6])
123#define mc6845_v_sync_pos      (state->m_crtc_vreg[7])
124#define mc6845_mode_ctrl      (state->m_crtc_vreg[8])
125#define mc6845_tile_height      (state->m_crtc_vreg[9]+1)
126#define mc6845_cursor_y_start   (state->m_crtc_vreg[0x0a])
127#define mc6845_cursor_y_end    (state->m_crtc_vreg[0x0b])
128#define mc6845_start_addr      (((state->m_crtc_vreg[0x0c]<<8) & 0x3f00) | (state->m_crtc_vreg[0x0d] & 0xff))
129#define mc6845_cursor_addr     (((state->m_crtc_vreg[0x0e]<<8) & 0x3f00) | (state->m_crtc_vreg[0x0f] & 0xff))
130#define mc6845_light_pen_addr   (((state->m_crtc_vreg[0x10]<<8) & 0x3f00) | (state->m_crtc_vreg[0x11] & 0xff))
131#define mc6845_update_addr     (((state->m_crtc_vreg[0x12]<<8) & 0x3f00) | (state->m_crtc_vreg[0x13] & 0xff))
118#define mc6845_h_char_total    (m_crtc_vreg[0])
119#define mc6845_h_display      (m_crtc_vreg[1])
120#define mc6845_h_sync_pos      (m_crtc_vreg[2])
121#define mc6845_sync_width      (m_crtc_vreg[3])
122#define mc6845_v_char_total      (m_crtc_vreg[4])
123#define mc6845_v_total_adj      (m_crtc_vreg[5])
124#define mc6845_v_display      (m_crtc_vreg[6])
125#define mc6845_v_sync_pos      (m_crtc_vreg[7])
126#define mc6845_mode_ctrl      (m_crtc_vreg[8])
127#define mc6845_tile_height      (m_crtc_vreg[9]+1)
128#define mc6845_cursor_y_start   (m_crtc_vreg[0x0a])
129#define mc6845_cursor_y_end    (m_crtc_vreg[0x0b])
130#define mc6845_start_addr      (((m_crtc_vreg[0x0c]<<8) & 0x3f00) | (m_crtc_vreg[0x0d] & 0xff))
131#define mc6845_cursor_addr     (((m_crtc_vreg[0x0e]<<8) & 0x3f00) | (m_crtc_vreg[0x0f] & 0xff))
132#define mc6845_light_pen_addr   (((m_crtc_vreg[0x10]<<8) & 0x3f00) | (m_crtc_vreg[0x11] & 0xff))
133#define mc6845_update_addr     (((m_crtc_vreg[0x12]<<8) & 0x3f00) | (m_crtc_vreg[0x13] & 0xff))
132134
133135
134136void bml3_state::video_start()
r17967r17968
136138   m_p_chargen = memregion("chargen")->base();
137139}
138140
139static SCREEN_UPDATE_IND16( bml3 )
141UINT32 bml3_state::screen_update_bml3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
140142{
141   bml3_state *state = screen.machine().driver_data<bml3_state>();
142143   int x,y,count;
143144   int xi,yi;
144145   int width; //,height;
145   UINT8 *vram = state->memregion("vram")->base();
146   UINT8 *vram = memregion("vram")->base();
146147
147148   count = 0x0000;
148149
149   width = (state->m_hres_reg & 0x80) ? 80 : 40;
150//  height = (state->m_vres_reg & 0x08) ? 1 : 0;
150   width = (m_hres_reg & 0x80) ? 80 : 40;
151//  height = (m_vres_reg & 0x08) ? 1 : 0;
151152
152//  popmessage("%02x %02x",state->m_hres_reg,state->m_vres_reg);
153//  popmessage("%02x %02x",m_hres_reg,m_vres_reg);
153154
154155   for(y=0;y<25;y++)
155156   {
r17967r17968
168169               int pen;
169170
170171               if(reverse)
171                  pen = (state->m_p_chargen[tile*16+yi*2+tile_bank] >> (7-xi) & 1) ? 0 : color;
172                  pen = (m_p_chargen[tile*16+yi*2+tile_bank] >> (7-xi) & 1) ? 0 : color;
172173               else
173                  pen = (state->m_p_chargen[tile*16+yi*2+tile_bank] >> (7-xi) & 1) ? color : 0;
174                  pen = (m_p_chargen[tile*16+yi*2+tile_bank] >> (7-xi) & 1) ? color : 0;
174175
175176               bitmap.pix16(y*mc6845_tile_height+yi, x*8+xi) = pen;
176177            }
r17967r17968
899900   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
900901   MCFG_SCREEN_SIZE(640, 480)
901902   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1)
902   MCFG_SCREEN_UPDATE_STATIC(bml3)
903   MCFG_SCREEN_UPDATE_DRIVER(bml3_state, screen_update_bml3)
903904   MCFG_PALETTE_LENGTH(8)
904905   MCFG_GFXDECODE(bml3)
905906
trunk/src/mess/drivers/sms.c
r17967r17968
394394   MCFG_SCREEN_RAW_PARAMS(XTAL_53_693175MHz/10, \
395395      SEGA315_5124_WIDTH , SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH - 2, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256 + 10, \
396396      SEGA315_5124_HEIGHT_NTSC, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT + 224)
397   MCFG_SCREEN_UPDATE_STATIC(sms)
397   MCFG_SCREEN_UPDATE_DRIVER(sms_state, screen_update_sms)
398398
399399   MCFG_PALETTE_LENGTH(SEGA315_5124_PALETTE_SIZE)
400400   MCFG_PALETTE_INIT(sega315_5124)
r17967r17968
413413   MCFG_SCREEN_RAW_PARAMS(XTAL_53_693175MHz/10, \
414414      SEGA315_5124_WIDTH, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH - 2, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256 + 10, \
415415      SEGA315_5124_HEIGHT_NTSC, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT + 224)
416   MCFG_SCREEN_UPDATE_STATIC(sms1)
416   MCFG_SCREEN_UPDATE_DRIVER(sms_state, screen_update_sms1)
417417
418418   MCFG_SCREEN_ADD("left_lcd", LCD)   // This is needed for SegaScope Left LCD
419419   MCFG_SCREEN_RAW_PARAMS(XTAL_53_693175MHz/10, \
420420      SEGA315_5124_WIDTH, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH - 2, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256 + 10, \
421421      SEGA315_5124_HEIGHT_NTSC, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT + 224)
422   MCFG_SCREEN_UPDATE_STATIC(sms1)
422   MCFG_SCREEN_UPDATE_DRIVER(sms_state, screen_update_sms1)
423423
424424   MCFG_SCREEN_ADD("right_lcd", LCD)   // This is needed for SegaScope Right LCD
425425   MCFG_SCREEN_RAW_PARAMS(XTAL_53_693175MHz/10, \
426426      SEGA315_5124_WIDTH, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH - 2, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256 + 10, \
427427      SEGA315_5124_HEIGHT_NTSC, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT + 224)
428   MCFG_SCREEN_UPDATE_STATIC(sms1)
428   MCFG_SCREEN_UPDATE_DRIVER(sms_state, screen_update_sms1)
429429
430430   MCFG_DEFAULT_LAYOUT(layout_sms1)
431431
r17967r17968
506506   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK_PAL/10, \
507507      SEGA315_5124_WIDTH, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH - 2, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256 + 10, \
508508      SEGA315_5124_HEIGHT_PAL, SEGA315_5124_TBORDER_START + SEGA315_5124_PAL_240_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_PAL_240_TBORDER_HEIGHT + 240)
509   MCFG_SCREEN_UPDATE_STATIC(sms)
509   MCFG_SCREEN_UPDATE_DRIVER(sms_state, screen_update_sms)
510510
511511   MCFG_PALETTE_LENGTH(SEGA315_5124_PALETTE_SIZE)
512512   MCFG_PALETTE_INIT(sega315_5124)
r17967r17968
525525   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK_PAL/10, \
526526      SEGA315_5124_WIDTH, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH - 2, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256 + 10, \
527527      SEGA315_5124_HEIGHT_PAL, SEGA315_5124_TBORDER_START + SEGA315_5124_PAL_240_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_PAL_240_TBORDER_HEIGHT + 240)
528   MCFG_SCREEN_UPDATE_STATIC(sms1)
528   MCFG_SCREEN_UPDATE_DRIVER(sms_state, screen_update_sms1)
529529
530530   MCFG_SCREEN_ADD("left_lcd", LCD)   // This is needed for SegaScope Left LCD
531531   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK_PAL/10, \
532532      SEGA315_5124_WIDTH, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH - 2, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256 + 10, \
533533      SEGA315_5124_HEIGHT_PAL, SEGA315_5124_TBORDER_START + SEGA315_5124_PAL_240_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_PAL_240_TBORDER_HEIGHT + 240)
534   MCFG_SCREEN_UPDATE_STATIC(sms1)
534   MCFG_SCREEN_UPDATE_DRIVER(sms_state, screen_update_sms1)
535535
536536   MCFG_SCREEN_ADD("right_lcd", LCD)   // This is needed for SegaScope Right LCD
537537   MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK_PAL/10, \
538538      SEGA315_5124_WIDTH, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH - 2, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256 + 10, \
539539      SEGA315_5124_HEIGHT_PAL, SEGA315_5124_TBORDER_START + SEGA315_5124_PAL_240_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_PAL_240_TBORDER_HEIGHT + 240)
540   MCFG_SCREEN_UPDATE_STATIC(sms1)
540   MCFG_SCREEN_UPDATE_DRIVER(sms_state, screen_update_sms1)
541541
542542   MCFG_PALETTE_LENGTH(SEGA315_5124_PALETTE_SIZE)
543543   MCFG_PALETTE_INIT(sega315_5124)
r17967r17968
586586   MCFG_SCREEN_RAW_PARAMS(XTAL_53_693175MHz/10, \
587587      SEGA315_5124_WIDTH, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 6*8, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 26*8, \
588588      SEGA315_5124_HEIGHT_NTSC, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_192_TBORDER_HEIGHT + 3*8, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_192_TBORDER_HEIGHT + 21*8 )
589   MCFG_SCREEN_UPDATE_STATIC(gamegear)
589   MCFG_SCREEN_UPDATE_DRIVER(sms_state, screen_update_gamegear)
590590
591591   MCFG_PALETTE_LENGTH(SEGA315_5378_PALETTE_SIZE)
592592   MCFG_PALETTE_INIT(sega315_5378)
trunk/src/mess/drivers/poly88.c
r17967r17968
178178   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
179179   MCFG_SCREEN_SIZE(64*10, 16*15)
180180   MCFG_SCREEN_VISIBLE_AREA(0, 64*10-1, 0, 16*15-1)
181   MCFG_SCREEN_UPDATE_STATIC(poly88)
181   MCFG_SCREEN_UPDATE_DRIVER(poly88_state, screen_update_poly88)
182182
183183   MCFG_GFXDECODE(poly88)
184184   MCFG_PALETTE_LENGTH(2)
trunk/src/mess/drivers/llc.c
r17967r17968
211211   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
212212   MCFG_SCREEN_SIZE(64*8, 16*8)
213213   MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 16*8-1)
214   MCFG_SCREEN_UPDATE_STATIC(llc1)
214   MCFG_SCREEN_UPDATE_DRIVER(llc_state, screen_update_llc1)
215215   MCFG_GFXDECODE(llc1)
216216   MCFG_PALETTE_LENGTH(2)
217217   MCFG_PALETTE_INIT(black_and_white)
r17967r17968
238238   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
239239   MCFG_SCREEN_SIZE(64*8, 32*8)
240240   MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1)
241   MCFG_SCREEN_UPDATE_STATIC(llc2)
241   MCFG_SCREEN_UPDATE_DRIVER(llc_state, screen_update_llc2)
242242   MCFG_GFXDECODE(llc2)
243243   MCFG_PALETTE_LENGTH(2)
244244   MCFG_PALETTE_INIT(black_and_white)
trunk/src/mess/drivers/z1013.c
r17967r17968
7676   bool m_keyboard_part;
7777   virtual void machine_reset();
7878   virtual void video_start();
79   UINT32 screen_update_z1013(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7980};
8081
8182
r17967r17968
220221   m_p_chargen = memregion("chargen")->base();
221222}
222223
223SCREEN_UPDATE_IND16( z1013 )
224UINT32 z1013_state::screen_update_z1013(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
224225{
225   z1013_state *state = screen.machine().driver_data<z1013_state>();
226226   UINT8 y,ra,chr,gfx;
227227   UINT16 sy=0,ma=0,x;
228228
r17967r17968
234234
235235         for (x = ma; x < ma+32; x++)
236236         {
237            chr = state->m_p_videoram[x];
237            chr = m_p_videoram[x];
238238
239239            /* get pattern of pixels for that character scanline */
240            gfx = state->m_p_chargen[(chr<<3) | ra];
240            gfx = m_p_chargen[(chr<<3) | ra];
241241
242242            /* Display a scanline of a character */
243243            *p++ = BIT(gfx, 7);
r17967r17968
404404   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
405405   MCFG_SCREEN_SIZE(32*8, 32*8)
406406   MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 0, 32*8-1)
407   MCFG_SCREEN_UPDATE_STATIC(z1013)
407   MCFG_SCREEN_UPDATE_DRIVER(z1013_state, screen_update_z1013)
408408   MCFG_GFXDECODE(z1013)
409409   MCFG_PALETTE_LENGTH(2)
410410   MCFG_PALETTE_INIT(black_and_white)
trunk/src/mess/drivers/trs80.c
r17967r17968
588588   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
589589   MCFG_SCREEN_SIZE(64*6, 16*12)
590590   MCFG_SCREEN_VISIBLE_AREA(0,64*6-1,0,16*12-1)
591   MCFG_SCREEN_UPDATE_STATIC( trs80 )
591   MCFG_SCREEN_UPDATE_DRIVER(trs80_state, screen_update_trs80)
592592
593593   MCFG_GFXDECODE(trs80)
594594   MCFG_PALETTE_LENGTH(2)
r17967r17968
631631
632632   MCFG_GFXDECODE(trs80m4)
633633   MCFG_SCREEN_MODIFY("screen")
634   MCFG_SCREEN_UPDATE_STATIC( trs80m4 )
634   MCFG_SCREEN_UPDATE_DRIVER(trs80_state, screen_update_trs80m4)
635635   MCFG_SCREEN_SIZE(80*8, 240)
636636   MCFG_SCREEN_VISIBLE_AREA(0,80*8-1,0,239)
637637MACHINE_CONFIG_END
r17967r17968
653653
654654static MACHINE_CONFIG_DERIVED( ht1080z, sys80 )
655655   MCFG_SCREEN_MODIFY("screen")
656   MCFG_SCREEN_UPDATE_STATIC( ht1080z )
656   MCFG_SCREEN_UPDATE_DRIVER(trs80_state, screen_update_ht1080z)
657657   MCFG_GFXDECODE(ht1080z)
658658MACHINE_CONFIG_END
659659
r17967r17968
669669   MCFG_SCREEN_MODIFY("screen")
670670   MCFG_SCREEN_SIZE(80*6, 16*12)
671671   MCFG_SCREEN_VISIBLE_AREA(0,80*6-1,0,16*12-1)
672   MCFG_SCREEN_UPDATE_STATIC(lnw80)
672   MCFG_SCREEN_UPDATE_DRIVER(trs80_state, screen_update_lnw80)
673673MACHINE_CONFIG_END
674674
675675static MACHINE_CONFIG_DERIVED( radionic, model1 )
676676   MCFG_SCREEN_MODIFY("screen")
677677   MCFG_SCREEN_SIZE(64*8, 16*16)
678678   MCFG_SCREEN_VISIBLE_AREA(0,64*8-1,0,16*16-1)
679   MCFG_SCREEN_UPDATE_STATIC( radionic )
679   MCFG_SCREEN_UPDATE_DRIVER(trs80_state, screen_update_radionic)
680680   MCFG_GFXDECODE(radionic)
681681MACHINE_CONFIG_END
682682
r17967r17968
685685   MCFG_CPU_PROGRAM_MAP( meritum_map)
686686   MCFG_CPU_IO_MAP( meritum_io)
687687   MCFG_SCREEN_MODIFY("screen")
688   MCFG_SCREEN_UPDATE_STATIC( meritum )
688   MCFG_SCREEN_UPDATE_DRIVER(trs80_state, screen_update_meritum)
689689   MCFG_GFXDECODE(meritum)
690690MACHINE_CONFIG_END
691691
trunk/src/mess/drivers/odyssey2.c
r17967r17968
183183    /* video hardware */
184184   MCFG_SCREEN_ADD("screen", RASTER)
185185   MCFG_SCREEN_RAW_PARAMS( XTAL_7_15909MHz/2, I824X_LINE_CLOCKS, I824X_START_ACTIVE_SCAN, I824X_END_ACTIVE_SCAN, 262, I824X_START_Y, I824X_START_Y + I824X_SCREEN_HEIGHT )
186   MCFG_SCREEN_UPDATE_STATIC( odyssey2 )
186   MCFG_SCREEN_UPDATE_DRIVER(odyssey2_state, screen_update_odyssey2)
187187
188188   MCFG_GFXDECODE( odyssey2 )
189189   MCFG_PALETTE_LENGTH(24)
r17967r17968
213213   /* video hardware */
214214   MCFG_SCREEN_ADD("screen", RASTER)
215215   MCFG_SCREEN_RAW_PARAMS( XTAL_17_73447MHz/5, I824X_LINE_CLOCKS, I824X_START_ACTIVE_SCAN, I824X_END_ACTIVE_SCAN, 312, I824X_START_Y, I824X_START_Y + I824X_SCREEN_HEIGHT )
216   MCFG_SCREEN_UPDATE_STATIC( odyssey2 )
216   MCFG_SCREEN_UPDATE_DRIVER(odyssey2_state, screen_update_odyssey2)
217217
218218   MCFG_GFXDECODE( odyssey2 )
219219   MCFG_PALETTE_LENGTH(24)
r17967r17968
242242   /* video hardware */
243243   MCFG_SCREEN_ADD("screen", RASTER)
244244   MCFG_SCREEN_RAW_PARAMS( 3547000*2, 448, 96, 416, 312, 39, 289 )   /* EF9340 doubles the input clock into dot clocks internally */
245    MCFG_SCREEN_UPDATE_STATIC( odyssey2 )
245   MCFG_SCREEN_UPDATE_DRIVER(odyssey2_state, screen_update_odyssey2)
246246
247247   MCFG_GFXDECODE( odyssey2 )
248248   MCFG_PALETTE_LENGTH(24)
trunk/src/mess/drivers/primo.c
r17967r17968
271271   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
272272   MCFG_SCREEN_SIZE( 256, 192 )
273273   MCFG_SCREEN_VISIBLE_AREA( 0, 256-1, 0, 192-1 )
274   MCFG_SCREEN_UPDATE_STATIC( primo )
274   MCFG_SCREEN_UPDATE_DRIVER(primo_state, screen_update_primo)
275275
276276   MCFG_PALETTE_LENGTH(2)
277277   MCFG_PALETTE_INIT(black_and_white)
trunk/src/mess/drivers/pockstat.c
r17967r17968
122122   DECLARE_WRITE32_MEMBER(ps_dac_w);
123123   virtual void machine_start();
124124   virtual void machine_reset();
125   UINT32 screen_update_pockstat(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
125126};
126127
127128
r17967r17968
925926   m_ps_flash_write_count = 0;
926927}
927928
928static SCREEN_UPDATE_RGB32( pockstat )
929UINT32 pockstat_state::screen_update_pockstat(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
929930{
930   pockstat_state *state = screen.machine().driver_data<pockstat_state>();
931931   int x = 0;
932932   int y = 0;
933933   for(y = 0; y < 32; y++)
r17967r17968
935935      UINT32 *scanline = &bitmap.pix32(y);
936936      for(x = 0; x < 32; x++)
937937      {
938         if(state->m_lcd_control != 0) // Hack
938         if(m_lcd_control != 0) // Hack
939939         {
940            if(state->m_lcd_buffer[y] & (1 << x))
940            if(m_lcd_buffer[y] & (1 << x))
941941            {
942942               scanline[x] = 0x00000000;
943943            }
r17967r17968
993993   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
994994   MCFG_SCREEN_SIZE(32, 32)
995995   MCFG_SCREEN_VISIBLE_AREA(0, 32-1, 0, 32-1)
996   MCFG_SCREEN_UPDATE_STATIC(pockstat)
996   MCFG_SCREEN_UPDATE_DRIVER(pockstat_state, screen_update_pockstat)
997997
998998   MCFG_PALETTE_LENGTH(2)
999999   MCFG_PALETTE_INIT(black_and_white)
trunk/src/mess/drivers/ti85.c
r17967r17968
501501   MCFG_SCREEN_VBLANK_TIME(0)
502502   MCFG_SCREEN_SIZE(96, 64)
503503   MCFG_SCREEN_VISIBLE_AREA(0, 96-1, 0, 64-1)
504   MCFG_SCREEN_UPDATE_STATIC( ti85 )
504   MCFG_SCREEN_UPDATE_DRIVER(ti85_state, screen_update_ti85)
505505
506506   MCFG_PALETTE_LENGTH(224)
507507
trunk/src/mess/drivers/casloopy.c
r17967r17968
155155   DECLARE_DRIVER_INIT(casloopy);
156156   virtual void machine_reset();
157157   virtual void video_start();
158   UINT32 screen_update_casloopy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
158159};
159160
160161
r17967r17968
164165
165166}
166167
167static SCREEN_UPDATE_IND16( casloopy )
168UINT32 casloopy_state::screen_update_casloopy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
168169{
169170   return 0;
170171}
r17967r17968
207208   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
208209   MCFG_SCREEN_SIZE(32*8, 32*8)
209210   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
210   MCFG_SCREEN_UPDATE_STATIC(casloopy)
211   MCFG_SCREEN_UPDATE_DRIVER(casloopy_state, screen_update_casloopy)
211212
212213   MCFG_PALETTE_LENGTH(512)
213214
trunk/src/mess/drivers/interact.c
r17967r17968
7272   required_shared_ptr<UINT8> m_videoram;
7373   DECLARE_MACHINE_START(interact);
7474   DECLARE_MACHINE_RESET(interact);
75   UINT32 screen_update_interact(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7576};
7677
7778
r17967r17968
129130   hector_init(machine());
130131}
131132
132static SCREEN_UPDATE_IND16( interact )
133UINT32 interact_state::screen_update_interact(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
133134{
134   interact_state *state = screen.machine().driver_data<interact_state>();
135   UINT8 *videoram = state->m_videoram;
135   UINT8 *videoram = m_videoram;
136136   screen.set_visible_area(0, 113, 0, 75);
137137   hector_hr( screen.machine(), bitmap, videoram,  77, 32);
138138   return 0;
r17967r17968
154154   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
155155   MCFG_SCREEN_SIZE(256, 79)
156156   MCFG_SCREEN_VISIBLE_AREA(0, 112, 0, 77)
157   MCFG_SCREEN_UPDATE_STATIC(interact)
157   MCFG_SCREEN_UPDATE_DRIVER(interact_state, screen_update_interact)
158158
159159   MCFG_PALETTE_LENGTH(16)            /* 8 colours, but only 4 at a time*/
160160
r17967r17968
195195   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
196196   MCFG_SCREEN_SIZE(256, 79)
197197   MCFG_SCREEN_VISIBLE_AREA(0, 112, 0, 77)
198   MCFG_SCREEN_UPDATE_STATIC(interact)
198   MCFG_SCREEN_UPDATE_DRIVER(interact_state, screen_update_interact)
199199
200200   MCFG_PALETTE_LENGTH(16)            /* 8 colours, but only 4 at a time*/
201201
trunk/src/mess/drivers/fp6000.c
r17967r17968
5151   virtual void machine_start();
5252   virtual void machine_reset();
5353   virtual void video_start();
54   UINT32 screen_update_fp6000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5455};
5556
5657void fp6000_state::video_start()
5758{
5859}
5960
60#define mc6845_h_char_total    (state->m_crtc_vreg[0])
61#define mc6845_h_display      (state->m_crtc_vreg[1])
62#define mc6845_h_sync_pos      (state->m_crtc_vreg[2])
63#define mc6845_sync_width      (state->m_crtc_vreg[3])
64#define mc6845_v_char_total      (state->m_crtc_vreg[4])
65#define mc6845_v_total_adj      (state->m_crtc_vreg[5])
66#define mc6845_v_display      (state->m_crtc_vreg[6])
67#define mc6845_v_sync_pos      (state->m_crtc_vreg[7])
68#define mc6845_mode_ctrl      (state->m_crtc_vreg[8])
69#define mc6845_tile_height      (state->m_crtc_vreg[9]+1)
70#define mc6845_cursor_y_start   (state->m_crtc_vreg[0x0a])
71#define mc6845_cursor_y_end    (state->m_crtc_vreg[0x0b])
72#define mc6845_start_addr      (((state->m_crtc_vreg[0x0c]<<8) & 0x3f00) | (state->m_crtc_vreg[0x0d] & 0xff))
73#define mc6845_cursor_addr     (((state->m_crtc_vreg[0x0e]<<8) & 0x3f00) | (state->m_crtc_vreg[0x0f] & 0xff))
74#define mc6845_light_pen_addr   (((state->m_crtc_vreg[0x10]<<8) & 0x3f00) | (state->m_crtc_vreg[0x11] & 0xff))
75#define mc6845_update_addr     (((state->m_crtc_vreg[0x12]<<8) & 0x3f00) | (state->m_crtc_vreg[0x13] & 0xff))
61#define mc6845_h_char_total    (m_crtc_vreg[0])
62#define mc6845_h_display      (m_crtc_vreg[1])
63#define mc6845_h_sync_pos      (m_crtc_vreg[2])
64#define mc6845_sync_width      (m_crtc_vreg[3])
65#define mc6845_v_char_total      (m_crtc_vreg[4])
66#define mc6845_v_total_adj      (m_crtc_vreg[5])
67#define mc6845_v_display      (m_crtc_vreg[6])
68#define mc6845_v_sync_pos      (m_crtc_vreg[7])
69#define mc6845_mode_ctrl      (m_crtc_vreg[8])
70#define mc6845_tile_height      (m_crtc_vreg[9]+1)
71#define mc6845_cursor_y_start   (m_crtc_vreg[0x0a])
72#define mc6845_cursor_y_end    (m_crtc_vreg[0x0b])
73#define mc6845_start_addr      (((m_crtc_vreg[0x0c]<<8) & 0x3f00) | (m_crtc_vreg[0x0d] & 0xff))
74#define mc6845_cursor_addr     (((m_crtc_vreg[0x0e]<<8) & 0x3f00) | (m_crtc_vreg[0x0f] & 0xff))
75#define mc6845_light_pen_addr   (((m_crtc_vreg[0x10]<<8) & 0x3f00) | (m_crtc_vreg[0x11] & 0xff))
76#define mc6845_update_addr     (((m_crtc_vreg[0x12]<<8) & 0x3f00) | (m_crtc_vreg[0x13] & 0xff))
7677
7778
78static SCREEN_UPDATE_IND16( fp6000 )
79UINT32 fp6000_state::screen_update_fp6000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
7980{
80   fp6000_state *state = screen.machine().driver_data<fp6000_state>();
8181   int x,y;
8282   int xi,yi;
83   UINT8 *gfx_rom = state->memregion("pcg")->base();
83   UINT8 *gfx_rom = memregion("pcg")->base();
8484   UINT32 count;
8585
8686   count = 0;
r17967r17968
9191      {
9292         for(xi=0;xi<4;xi++)
9393         {
94            int dot = (state->m_gvram[count] >> (12-xi*4)) & 0xf;
94            int dot = (m_gvram[count] >> (12-xi*4)) & 0xf;
9595
9696            if(y < 400 && x*4+xi < 640) /* TODO: safety check */
9797               bitmap.pix16(y, x*4+xi) = screen.machine().pens[dot];
r17967r17968
105105   {
106106      for(x=0;x<mc6845_h_display;x++)
107107      {
108         int tile = state->m_vram[x+y*mc6845_h_display] & 0xff;
109         int color = (state->m_vram[x+y*mc6845_h_display] & 0x700) >> 8;
108         int tile = m_vram[x+y*mc6845_h_display] & 0xff;
109         int color = (m_vram[x+y*mc6845_h_display] & 0x700) >> 8;
110110         int pen;
111111
112112         for(yi=0;yi<mc6845_tile_height;yi++)
r17967r17968
314314   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
315315   MCFG_SCREEN_SIZE(640, 480)
316316   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
317   MCFG_SCREEN_UPDATE_STATIC(fp6000)
317   MCFG_SCREEN_UPDATE_DRIVER(fp6000_state, screen_update_fp6000)
318318
319319   MCFG_MC6845_ADD("crtc", H46505, 16000000/5, mc6845_intf)   /* unknown clock, hand tuned to get ~60 fps */
320320
trunk/src/mess/drivers/hp9k.c
r17967r17968
2727   required_shared_ptr<UINT16> m_p_videoram;
2828   virtual void machine_reset();
2929   virtual void video_start();
30   UINT32 screen_update_hp9k(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3031};
3132
3233
r17967r17968
7172{
7273}
7374
74static SCREEN_UPDATE_IND16( hp9k )
75UINT32 hp9k_state::screen_update_hp9k(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
7576{
7677   return 0;
7778}
r17967r17968
8889   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
8990   MCFG_SCREEN_SIZE(640, 480)
9091   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
91   MCFG_SCREEN_UPDATE_STATIC(hp9k)
92   MCFG_SCREEN_UPDATE_DRIVER(hp9k_state, screen_update_hp9k)
9293   MCFG_GFXDECODE(hp9k)
9394   MCFG_PALETTE_LENGTH(2)
9495   MCFG_PALETTE_INIT(black_and_white)
trunk/src/mess/drivers/gp2x.c
r17967r17968
4949   UINT32 m_nand_stage;
5050   UINT32 m_nand_ptr_temp;
5151   UINT32 m_timer;
52   UINT32 screen_update_gp2x(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
5253};
5354
5455
r17967r17968
140141   "YUV Source region A H",
141142};
142143#endif
143static SCREEN_UPDATE_RGB32( gp2x )
144UINT32 gp2x_state::screen_update_gp2x(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
144145{
145   gp2x_state *state = screen.machine().driver_data<gp2x_state>();
146146   // display enabled?
147   if (state->m_vidregs[0] & 1)
147   if (m_vidregs[0] & 1)
148148   {
149149      // only support RGB still image layer for now
150      if (state->m_vidregs[0x80/2] & 4)
150      if (m_vidregs[0x80/2] & 4)
151151      {
152152         int x, y;
153         UINT16 *vram = (UINT16 *)&state->m_ram[0x2100000/4];
153         UINT16 *vram = (UINT16 *)&m_ram[0x2100000/4];
154154
155155/*          printf("RGB still image 1 enabled, bpp %d, size is %d %d %d %d\n",
156                (state->m_vidregs[(0xda/2)]>>9)&3,
157                state->m_vidregs[(0xe2/2)],
158                state->m_vidregs[(0xe4/2)],
159                state->m_vidregs[(0xe6/2)],
160                state->m_vidregs[(0xe8/2)]);*/
156                (m_vidregs[(0xda/2)]>>9)&3,
157                m_vidregs[(0xe2/2)],
158                m_vidregs[(0xe4/2)],
159                m_vidregs[(0xe6/2)],
160                m_vidregs[(0xe8/2)]);*/
161161
162162
163163         for (y = 0; y < 240; y++)
r17967r17968
362362   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
363363   MCFG_SCREEN_SIZE(320, 240)
364364   MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
365   MCFG_SCREEN_UPDATE_STATIC(gp2x)
365   MCFG_SCREEN_UPDATE_DRIVER(gp2x_state, screen_update_gp2x)
366366
367367   MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
368368MACHINE_CONFIG_END
trunk/src/mess/drivers/z9001.c
r17967r17968
6464   virtual void machine_reset();
6565   //virtual void machine_start();
6666   virtual void video_start();
67   UINT32 screen_update_z9001(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6768};
6869
6970static ADDRESS_MAP_START(z9001_mem, AS_PROGRAM, 8, z9001_state)
r17967r17968
158159   m_p_chargen = memregion("chargen")->base();
159160}
160161
161static SCREEN_UPDATE_IND16( z9001 )
162UINT32 z9001_state::screen_update_z9001(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
162163{
163   z9001_state *state = screen.machine().driver_data<z9001_state>();
164164   UINT8 y,ra,chr,gfx,col,fg,bg;
165165   UINT16 sy=0,ma=0,x;
166   state->m_framecnt++;
166   m_framecnt++;
167167
168168   for(y = 0; y < 24; y++ )
169169   {
r17967r17968
173173
174174         for (x = ma; x < ma + 40; x++)
175175         {
176            chr = state->m_p_videoram[x]; // get char in videoram
177            gfx = state->m_p_chargen[(chr<<3) | ra]; // get dot pattern in chargen
178            col = state->m_p_colorram[x];
176            chr = m_p_videoram[x]; // get char in videoram
177            gfx = m_p_chargen[(chr<<3) | ra]; // get dot pattern in chargen
178            col = m_p_colorram[x];
179179            fg = col>>4;
180180            bg = col&15;
181181
182182            /* Check for flashing - swap bg & fg */
183            if ((BIT(col, 7)) && (state->m_framecnt & 0x10))
183            if ((BIT(col, 7)) && (m_framecnt & 0x10))
184184            {
185185               bg = fg;
186186               fg = col&15;
r17967r17968
244244   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
245245   MCFG_SCREEN_SIZE(40*8, 24*8)
246246   MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 0, 24*8-1)
247   MCFG_SCREEN_UPDATE_STATIC(z9001)
247   MCFG_SCREEN_UPDATE_DRIVER(z9001_state, screen_update_z9001)
248248   MCFG_GFXDECODE(z9001)
249249   MCFG_PALETTE_LENGTH(16)
250250
trunk/src/mess/drivers/pasopia7.c
r17967r17968
109109   DECLARE_VIDEO_START(pasopia7);
110110   DECLARE_PALETTE_INIT(p7_raster);
111111   DECLARE_PALETTE_INIT(p7_lcd);
112   UINT32 screen_update_pasopia7(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
112113};
113114
114115#define VDP_CLOCK XTAL_3_579545MHz/4
r17967r17968
304305   }
305306}
306307
307static SCREEN_UPDATE_IND16( pasopia7 )
308UINT32 pasopia7_state::screen_update_pasopia7(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
308309{
309   pasopia7_state *state = screen.machine().driver_data<pasopia7_state>();
310310   int width;
311311
312312   bitmap.fill(screen.machine().pens[0], cliprect);
313313
314   width = state->m_x_width ? 80 : 40;
314   width = m_x_width ? 80 : 40;
315315
316   if(state->m_gfx_mode)
316   if(m_gfx_mode)
317317      draw_mixed_screen(screen.machine(),bitmap,cliprect,width);
318318   else
319319   {
r17967r17968
10421042   MCFG_SCREEN_SIZE(640, 480)
10431043   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 32-1)
10441044   MCFG_VIDEO_START_OVERRIDE(pasopia7_state,pasopia7)
1045   MCFG_SCREEN_UPDATE_STATIC(pasopia7)
1045   MCFG_SCREEN_UPDATE_DRIVER(pasopia7_state, screen_update_pasopia7)
10461046   MCFG_PALETTE_LENGTH(8)
10471047   MCFG_PALETTE_INIT_OVERRIDE(pasopia7_state,p7_raster)
10481048   MCFG_GFXDECODE( pasopia7 )
r17967r17968
10581058   MCFG_SCREEN_SIZE(640, 480)
10591059   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
10601060   MCFG_VIDEO_START_OVERRIDE(pasopia7_state,pasopia7)
1061   MCFG_SCREEN_UPDATE_STATIC(pasopia7)
1061   MCFG_SCREEN_UPDATE_DRIVER(pasopia7_state, screen_update_pasopia7)
10621062   MCFG_PALETTE_LENGTH(8)
10631063   MCFG_PALETTE_INIT_OVERRIDE(pasopia7_state,p7_lcd)
10641064   MCFG_GFXDECODE( pasopia7 )
trunk/src/mess/drivers/galaxy.c
r17967r17968
196196   /* video hardware */
197197   MCFG_SCREEN_SIZE(384, 212)
198198   MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 208-1)
199   MCFG_SCREEN_UPDATE_STATIC( galaxy )
199   MCFG_SCREEN_UPDATE_DRIVER(galaxy_state, screen_update_galaxy)
200200
201201   MCFG_GFXDECODE(galaxy)
202202   MCFG_PALETTE_LENGTH(2)
r17967r17968
232232   /* video hardware */
233233   MCFG_SCREEN_SIZE(384, 208)
234234   MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 208-1)
235   MCFG_SCREEN_UPDATE_STATIC( galaxy )
235   MCFG_SCREEN_UPDATE_DRIVER(galaxy_state, screen_update_galaxy)
236236
237237   MCFG_PALETTE_LENGTH(2)
238238   MCFG_PALETTE_INIT( black_and_white )
trunk/src/mess/drivers/gamepock.c
r17967r17968
8585   MCFG_SCREEN_REFRESH_RATE( 60 )
8686   MCFG_SCREEN_SIZE( 75, 64 )
8787   MCFG_SCREEN_VISIBLE_AREA( 0, 74, 0, 63 )
88   MCFG_SCREEN_UPDATE_STATIC( gamepock )
88   MCFG_SCREEN_UPDATE_DRIVER(gamepock_state, screen_update_gamepock)
8989
9090   MCFG_DEFAULT_LAYOUT(layout_lcd)
9191
trunk/src/mess/drivers/sm1800.c
r17967r17968
4444   virtual void machine_reset();
4545   virtual void video_start();
4646   virtual void palette_init();
47   UINT32 screen_update_sm1800(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4748};
4849
4950static ADDRESS_MAP_START(sm1800_mem, AS_PROGRAM, 8, sm1800_state)
r17967r17968
8384
8485}
8586
86static SCREEN_UPDATE_IND16( sm1800 )
87UINT32 sm1800_state::screen_update_sm1800(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
8788{
8889   device_t *devconf = screen.machine().device("i8275");
89   sm1800_state *state = screen.machine().driver_data<sm1800_state>();
9090   i8275_update( devconf, bitmap, cliprect);
91   copybitmap(bitmap, state->m_bitmap, 0, 0, 0, 0, cliprect);
91   copybitmap(bitmap, m_bitmap, 0, 0, 0, 0, cliprect);
9292   return 0;
9393}
9494
r17967r17968
198198   MCFG_SCREEN_SIZE(640, 480)
199199   MCFG_GFXDECODE(sm1800)
200200   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
201   MCFG_SCREEN_UPDATE_STATIC(sm1800)
201   MCFG_SCREEN_UPDATE_DRIVER(sm1800_state, screen_update_sm1800)
202202   MCFG_PALETTE_LENGTH(3)
203203
204204   /* Devices */
trunk/src/mess/drivers/fm7.c
r17967r17968
20532053   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
20542054   MCFG_SCREEN_SIZE(640, 200)
20552055   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
2056   MCFG_SCREEN_UPDATE_STATIC(fm7)
2056   MCFG_SCREEN_UPDATE_DRIVER(fm7_state, screen_update_fm7)
20572057
20582058   MCFG_PALETTE_LENGTH(8)
20592059
r17967r17968
20952095   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
20962096   MCFG_SCREEN_SIZE(640, 200)
20972097   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
2098   MCFG_SCREEN_UPDATE_STATIC(fm7)
2098   MCFG_SCREEN_UPDATE_DRIVER(fm7_state, screen_update_fm7)
20992099
21002100   MCFG_PALETTE_LENGTH(8)
21012101
r17967r17968
21372137   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
21382138   MCFG_SCREEN_SIZE(640, 200)
21392139   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
2140   MCFG_SCREEN_UPDATE_STATIC(fm7)
2140   MCFG_SCREEN_UPDATE_DRIVER(fm7_state, screen_update_fm7)
21412141
21422142   MCFG_PALETTE_LENGTH(8 + 4096)
21432143
r17967r17968
21842184   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
21852185   MCFG_SCREEN_SIZE(640, 200)
21862186   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
2187   MCFG_SCREEN_UPDATE_STATIC(fm7)
2187   MCFG_SCREEN_UPDATE_DRIVER(fm7_state, screen_update_fm7)
21882188
21892189   MCFG_PALETTE_LENGTH(8)
21902190
r17967r17968
22252225   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
22262226   MCFG_SCREEN_SIZE(640, 200)
22272227   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
2228   MCFG_SCREEN_UPDATE_STATIC(fm7)
2228   MCFG_SCREEN_UPDATE_DRIVER(fm7_state, screen_update_fm7)
22292229
22302230   MCFG_PALETTE_LENGTH(8)
22312231
trunk/src/mess/drivers/compis.c
r17967r17968
8282   palette_set_color(machine(), 2, MAKE_RGB(0x00, 0xff, 0x00)); // highlight
8383}
8484
85static SCREEN_UPDATE_IND16( compis2 ) // temporary
85UINT32 compis_state::screen_update_compis2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)// temporary
8686{
87   compis_state *state = screen.machine().driver_data<compis_state>();
8887   UINT8 *m_p_chargen;
89   m_p_chargen = state->memregion("maincpu")->base()+0xca70; //bios0
88   m_p_chargen = memregion("maincpu")->base()+0xca70; //bios0
9089   if (m_p_chargen[0x214] != 0x08) m_p_chargen+= 0x10; //bios1
9190   UINT8 y,ra,chr,gfx;
9291   UINT16 sy=0,ma=0,x;
r17967r17968
9998
10099         for (x = ma; x < ma + 240; x+=3)
101100         {
102            chr = state->m_video_ram[x & 0x1ffff];
101            chr = m_video_ram[x & 0x1ffff];
103102
104103            if (chr < 0x20)
105104               gfx = 0;
r17967r17968
414413   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
415414   MCFG_SCREEN_SIZE(640, 400)
416415   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 400-1)
417   MCFG_SCREEN_UPDATE_STATIC(compis2)
416   MCFG_SCREEN_UPDATE_DRIVER(compis_state, screen_update_compis2)
418417   MCFG_PALETTE_LENGTH(3)
419418
420419   /* Devices */
trunk/src/mess/drivers/vtech2.c
r17967r17968
440440   MCFG_SCREEN_VBLANK_TIME(0)
441441   MCFG_SCREEN_SIZE(88*8, 24*8+32)
442442   MCFG_SCREEN_VISIBLE_AREA(0*8, 88*8-1, 0*8, 24*8+32-1)
443   MCFG_SCREEN_UPDATE_STATIC(laser)
443   MCFG_SCREEN_UPDATE_DRIVER(vtech2_state, screen_update_laser)
444444
445445   MCFG_GFXDECODE( vtech2 )
446446   MCFG_PALETTE_LENGTH(528)
trunk/src/mess/drivers/jr100.c
r17967r17968
4242   virtual void machine_start();
4343   virtual void machine_reset();
4444   virtual void video_start();
45   UINT32 screen_update_jr100(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4546};
4647
4748
r17967r17968
173174{
174175}
175176
176static SCREEN_UPDATE_IND16( jr100 )
177UINT32 jr100_state::screen_update_jr100(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
177178{
178   jr100_state *state = screen.machine().driver_data<jr100_state>();
179179   int x,y,xi,yi;
180180
181   UINT8 *rom_pcg = state->memregion("maincpu")->base() + 0xe000;
181   UINT8 *rom_pcg = memregion("maincpu")->base() + 0xe000;
182182   for (y = 0; y < 24; y++)
183183   {
184184      for (x = 0; x < 32; x++)
185185      {
186         UINT8 tile = state->m_vram[x + y*32];
186         UINT8 tile = m_vram[x + y*32];
187187         UINT8 attr = tile >> 7;
188188         // ATTR is inverted for normal char or use PCG in case of CMODE1
189189         UINT8 *gfx_data = rom_pcg;
190         if (state->m_use_pcg && attr) {
191            gfx_data = state->m_pcg;
190         if (m_use_pcg && attr) {
191            gfx_data = m_pcg;
192192            attr = 0; // clear attr so bellow code stay same
193193         }
194194         tile &= 0x7f;
r17967r17968
365365   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
366366   MCFG_SCREEN_SIZE(256, 192) /* border size not accurate */
367367   MCFG_SCREEN_VISIBLE_AREA(0, 256 - 1, 0, 192 - 1)
368    MCFG_SCREEN_UPDATE_STATIC(jr100)
368   MCFG_SCREEN_UPDATE_DRIVER(jr100_state, screen_update_jr100)
369369
370370   MCFG_GFXDECODE(jr100)
371371    MCFG_PALETTE_LENGTH(2)
trunk/src/mess/drivers/a7150.c
r17967r17968
2020
2121   virtual void machine_reset();
2222   virtual void video_start();
23   UINT32 screen_update_a7150(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2324};
2425
2526
r17967r17968
4243{
4344}
4445
45static SCREEN_UPDATE_IND16( a7150 )
46UINT32 a7150_state::screen_update_a7150(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
4647{
4748   return 0;
4849}
r17967r17968
5960   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
6061   MCFG_SCREEN_SIZE(640, 480)
6162   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
62   MCFG_SCREEN_UPDATE_STATIC(a7150)
63   MCFG_SCREEN_UPDATE_DRIVER(a7150_state, screen_update_a7150)
6364
6465   MCFG_PALETTE_LENGTH(2)
6566   MCFG_PALETTE_INIT(black_and_white)
trunk/src/mess/drivers/zx.c
r17967r17968
393393   MCFG_SCREEN_UPDATE_DRIVER(zx_state, screen_update)
394394   MCFG_SCREEN_SIZE(ZX81_PIXELS_PER_SCANLINE, ZX81_PAL_SCANLINES)
395395   MCFG_SCREEN_VISIBLE_AREA(0, ZX81_PIXELS_PER_SCANLINE-1, 0, ZX81_PAL_SCANLINES-1)
396   MCFG_SCREEN_VBLANK_STATIC(zx)
396   MCFG_SCREEN_VBLANK_DRIVER(zx_state, screen_eof_zx)
397397
398398   MCFG_GFXDECODE(zx80)
399399   MCFG_PALETTE_LENGTH(4)
trunk/src/mess/drivers/ami1200.c
r17967r17968
301301   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
302302   MCFG_SCREEN_SIZE(512*2, 312)
303303   MCFG_SCREEN_VISIBLE_AREA((129-8-8)*2, (449+8-1+8)*2, 44-8, 300+8-1)
304   MCFG_SCREEN_UPDATE_STATIC(amiga_aga)
304   MCFG_SCREEN_UPDATE_DRIVER(ami1200_state, screen_update_amiga_aga)
305305
306306   MCFG_VIDEO_START_OVERRIDE(ami1200_state,amiga_aga)
307307
trunk/src/mess/drivers/apple2gs.c
r17967r17968
243243   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
244244   MCFG_SCREEN_SIZE(704, 262)   // 640+32+32 for the borders
245245   MCFG_SCREEN_VISIBLE_AREA(0,703,0,230)
246   MCFG_SCREEN_UPDATE_STATIC( apple2gs )
246   MCFG_SCREEN_UPDATE_DRIVER(apple2gs_state, screen_update_apple2gs)
247247
248248   MCFG_PALETTE_LENGTH( 16+256 )
249249   MCFG_GFXDECODE( apple2gs )
trunk/src/mess/drivers/vt320.c
r17967r17968
1919
2020   virtual void machine_reset();
2121   virtual void video_start();
22   UINT32 screen_update_vt320(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2223};
2324
2425/*
r17967r17968
6869{
6970}
7071
71static SCREEN_UPDATE_IND16( vt320 )
72UINT32 vt320_state::screen_update_vt320(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
7273{
7374   return 0;
7475}
r17967r17968
8788   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
8889   MCFG_SCREEN_SIZE(640, 480)
8990   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
90   MCFG_SCREEN_UPDATE_STATIC(vt320)
91   MCFG_SCREEN_UPDATE_DRIVER(vt320_state, screen_update_vt320)
9192   MCFG_PALETTE_LENGTH(2)
9293   MCFG_PALETTE_INIT(black_and_white)
9394
trunk/src/mess/drivers/pv1000.c
r17967r17968
9999   virtual void machine_start();
100100   virtual void machine_reset();
101101   virtual void palette_init();
102   UINT32 screen_update_pv1000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
102103};
103104
104105
r17967r17968
265266}
266267
267268
268static SCREEN_UPDATE_IND16( pv1000 )
269UINT32 pv1000_state::screen_update_pv1000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
269270{
270   pv1000_state *state = screen.machine().driver_data<pv1000_state>();
271271   int x, y;
272272
273273   for ( y = 0; y < 24; y++ )
274274   {
275275      for ( x = 0; x < 32; x++ )
276276      {
277         UINT16 tile = state->m_p_videoram[ y * 32 + x ];
277         UINT16 tile = m_p_videoram[ y * 32 + x ];
278278
279279         if ( tile < 0xe0 )
280280         {
281            tile += ( state->m_io_regs[7] * 8 );
281            tile += ( m_io_regs[7] * 8 );
282282            drawgfx_opaque( bitmap, cliprect, screen.machine().gfx[0], tile, 0, 0, 0, x*8, y*8 );
283283         }
284284         else
r17967r17968
418418   /* D65010G031 - Video & sound chip */
419419   MCFG_SCREEN_ADD( "screen", RASTER )
420420   MCFG_SCREEN_RAW_PARAMS( 17897725/3, 380, 0, 256, 262, 0, 192 )
421   MCFG_SCREEN_UPDATE_STATIC( pv1000 )
421   MCFG_SCREEN_UPDATE_DRIVER(pv1000_state, screen_update_pv1000)
422422
423423   MCFG_PALETTE_LENGTH( 8 )
424424   MCFG_GFXDECODE( pv1000 )
trunk/src/mess/drivers/dms5000.c
r17967r17968
1818
1919   virtual void machine_reset();
2020   virtual void video_start();
21   UINT32 screen_update_dms5000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2122};
2223
2324
r17967r17968
4445{
4546}
4647
47static SCREEN_UPDATE_IND16( dms5000 )
48UINT32 dms5000_state::screen_update_dms5000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
4849{
4950   return 0;
5051}
r17967r17968
6263   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
6364   MCFG_SCREEN_SIZE(640, 480)
6465   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
65   MCFG_SCREEN_UPDATE_STATIC(dms5000)
66   MCFG_SCREEN_UPDATE_DRIVER(dms5000_state, screen_update_dms5000)
6667   MCFG_PALETTE_LENGTH(2)
6768   MCFG_PALETTE_INIT(black_and_white)
6869MACHINE_CONFIG_END
trunk/src/mess/drivers/nc.c
r17967r17968
16061606   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
16071607   MCFG_SCREEN_SIZE(480, 64)
16081608   MCFG_SCREEN_VISIBLE_AREA(0, 480-1, 0, 64-1)
1609   MCFG_SCREEN_UPDATE_STATIC( nc )
1609   MCFG_SCREEN_UPDATE_DRIVER(nc_state, screen_update_nc)
16101610
16111611   MCFG_PALETTE_LENGTH(NC_NUM_COLOURS)
16121612   MCFG_DEFAULT_LAYOUT(layout_lcd)
trunk/src/mess/drivers/mac.c
r17967r17968
886886   MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
887887   MCFG_SCREEN_SIZE(MAC_H_TOTAL, MAC_V_TOTAL)
888888   MCFG_SCREEN_VISIBLE_AREA(0, MAC_H_VIS-1, 0, MAC_V_VIS-1)
889   MCFG_SCREEN_UPDATE_STATIC(mac)
889   MCFG_SCREEN_UPDATE_DRIVER(mac_state, screen_update_mac)
890890
891891   MCFG_PALETTE_LENGTH(2)
892892   MCFG_PALETTE_INIT_OVERRIDE(mac_state,mac)
r17967r17968
969969   MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
970970   MCFG_SCREEN_SIZE(700, 480)
971971   MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 399)
972   MCFG_SCREEN_UPDATE_STATIC(macprtb)
972   MCFG_SCREEN_UPDATE_DRIVER(mac_state, screen_update_macprtb)
973973
974974   MCFG_PALETTE_LENGTH(2)
975975   MCFG_PALETTE_INIT_OVERRIDE(mac_state,mac)
r17967r17968
11211121   MCFG_SCREEN_RAW_PARAMS(25175000, 800, 0, 640, 525, 0, 480)
11221122   MCFG_SCREEN_SIZE(1024,768)
11231123   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
1124   MCFG_SCREEN_UPDATE_STATIC(macrbvvram)
1124   MCFG_SCREEN_UPDATE_DRIVER(mac_state, screen_update_macrbvvram)
11251125
11261126   MCFG_RAM_MODIFY(RAM_TAG)
11271127   MCFG_RAM_DEFAULT_SIZE("2M")
r17967r17968
11701170   MCFG_VIDEO_RESET_OVERRIDE(mac_state,macsonora)
11711171
11721172   MCFG_SCREEN_MODIFY(MAC_SCREEN_NAME)
1173   MCFG_SCREEN_UPDATE_STATIC(macrbvvram)
1173   MCFG_SCREEN_UPDATE_DRIVER(mac_state, screen_update_macrbvvram)
11741174
11751175   MCFG_RAM_MODIFY(RAM_TAG)
11761176   MCFG_RAM_DEFAULT_SIZE("4M")
r17967r17968
11991199   MCFG_VIDEO_RESET_OVERRIDE(mac_state,macrbv)
12001200
12011201   MCFG_SCREEN_MODIFY(MAC_SCREEN_NAME)
1202   MCFG_SCREEN_UPDATE_STATIC(macrbvvram)
1202   MCFG_SCREEN_UPDATE_DRIVER(mac_state, screen_update_macrbvvram)
12031203
12041204   MCFG_NUBUS_BUS_ADD("nubus", "maincpu", nubus_intf)
12051205   MCFG_NUBUS_SLOT_ADD("nubus","nbc", mac_nubus_cards, NULL, NULL)
r17967r17968
12231223   MCFG_VIDEO_RESET_OVERRIDE(mac_state,macrbv)
12241224
12251225   MCFG_SCREEN_MODIFY(MAC_SCREEN_NAME)
1226   MCFG_SCREEN_UPDATE_STATIC(macrbvvram)
1226   MCFG_SCREEN_UPDATE_DRIVER(mac_state, screen_update_macrbvvram)
12271227
12281228   MCFG_NUBUS_BUS_ADD("nubus", "maincpu", nubus_intf)
12291229   MCFG_NUBUS_SLOT_ADD("nubus","nbc", mac_nubus_cards, NULL, NULL)
r17967r17968
12651265   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1260))
12661266   MCFG_SCREEN_SIZE(MAC_H_TOTAL, MAC_V_TOTAL)
12671267   MCFG_SCREEN_VISIBLE_AREA(0, MAC_H_VIS-1, 0, MAC_V_VIS-1)
1268   MCFG_SCREEN_UPDATE_STATIC(macse30)
1268   MCFG_SCREEN_UPDATE_DRIVER(mac_state, screen_update_macse30)
12691269
12701270   MCFG_PALETTE_LENGTH(2)
12711271   MCFG_PALETTE_INIT_OVERRIDE(mac_state,mac)
r17967r17968
13161316   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1260))
13171317   MCFG_SCREEN_SIZE(700, 480)
13181318   MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 399)
1319   MCFG_SCREEN_UPDATE_STATIC(macpb140)
1319   MCFG_SCREEN_UPDATE_DRIVER(mac_state, screen_update_macpb140)
13201320
13211321   MCFG_PALETTE_LENGTH(2)
13221322   MCFG_PALETTE_INIT_OVERRIDE(mac_state,mac)
r17967r17968
13871387   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1260))
13881388   MCFG_SCREEN_SIZE(700, 480)
13891389   MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 399)
1390   MCFG_SCREEN_UPDATE_STATIC(macpb160)
1390   MCFG_SCREEN_UPDATE_DRIVER(mac_state, screen_update_macpb160)
13911391
13921392   MCFG_PALETTE_LENGTH(16)
13931393   MCFG_PALETTE_INIT_OVERRIDE(mac_state,macgsc)
r17967r17968
14421442   MCFG_SCREEN_MODIFY(MAC_SCREEN_NAME)
14431443   MCFG_SCREEN_SIZE(800, 525)
14441444   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
1445   MCFG_SCREEN_UPDATE_STATIC(macpbwd)
1445   MCFG_SCREEN_UPDATE_DRIVER(mac_state, screen_update_macpbwd)
14461446
14471447    MCFG_RAM_MODIFY(RAM_TAG)
14481448    MCFG_RAM_DEFAULT_SIZE("4M")
r17967r17968
14691469   MCFG_SCREEN_MODIFY(MAC_SCREEN_NAME)
14701470   MCFG_SCREEN_SIZE(MAC_H_TOTAL, MAC_V_TOTAL)
14711471   MCFG_SCREEN_VISIBLE_AREA(0, MAC_H_VIS-1, 0, MAC_V_VIS-1)
1472   MCFG_SCREEN_UPDATE_STATIC(macrbv)
1472   MCFG_SCREEN_UPDATE_DRIVER(mac_state, screen_update_macrbv)
14731473
14741474   MCFG_ASC_REPLACE("asc", C15M, ASC_TYPE_EAGLE, mac_asc_irq)
14751475   MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
r17967r17968
15021502   MCFG_SCREEN_RAW_PARAMS(25175000, 800, 0, 640, 525, 0, 480)
15031503   MCFG_SCREEN_SIZE(640, 870)
15041504   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
1505   MCFG_SCREEN_UPDATE_STATIC(macrbv)
1505   MCFG_SCREEN_UPDATE_DRIVER(mac_state, screen_update_macrbv)
15061506   MCFG_DEFAULT_LAYOUT(layout_mac)
15071507
15081508   /* internal ram */
r17967r17968
15341534   MCFG_SCREEN_RAW_PARAMS(25175000, 800, 0, 640, 525, 0, 480)
15351535   MCFG_SCREEN_SIZE(640, 870)
15361536   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
1537   MCFG_SCREEN_UPDATE_STATIC(macrbv)
1537   MCFG_SCREEN_UPDATE_DRIVER(mac_state, screen_update_macrbv)
15381538
15391539   /* internal ram */
15401540   MCFG_RAM_MODIFY(RAM_TAG)
r17967r17968
15581558   MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
15591559   MCFG_SCREEN_SIZE(1024, 768)
15601560   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
1561   MCFG_SCREEN_UPDATE_STATIC(macrbv)
1561   MCFG_SCREEN_UPDATE_DRIVER(mac_state, screen_update_macrbv)
15621562
15631563   MCFG_PALETTE_LENGTH(256)
15641564
r17967r17968
16061606   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1260))
16071607   MCFG_SCREEN_SIZE(1152, 870)
16081608   MCFG_SCREEN_VISIBLE_AREA(0, 1152-1, 0, 870-1)
1609   MCFG_SCREEN_UPDATE_STATIC(macdafb)
1609   MCFG_SCREEN_UPDATE_DRIVER(mac_state, screen_update_macdafb)
16101610
16111611   MCFG_VIDEO_START_OVERRIDE(mac_state,macdafb)
16121612   MCFG_VIDEO_RESET_OVERRIDE(mac_state,macdafb)
trunk/src/mess/drivers/hp16500.c
r17967r17968
2929      : driver_device(mconfig, type, tag) { }
3030
3131   virtual void video_start();
32   UINT32 screen_update_hp16500(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
3233};
3334
3435
r17967r17968
4243{
4344}
4445
45static SCREEN_UPDATE_RGB32( hp16500 )
46UINT32 hp16500_state::screen_update_hp16500(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
4647{
4748   return 0;
4849}
r17967r17968
5859   MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
5960   MCFG_SCREEN_SIZE(1024, 768)
6061   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
61   MCFG_SCREEN_UPDATE_STATIC(hp16500)
62   MCFG_SCREEN_UPDATE_DRIVER(hp16500_state, screen_update_hp16500)
6263
6364   MCFG_PALETTE_LENGTH(256)
6465
trunk/src/mess/drivers/ac1.c
r17967r17968
134134   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
135135   MCFG_SCREEN_SIZE(64*6, 16*8)
136136   MCFG_SCREEN_VISIBLE_AREA(0, 64*6-1, 0, 16*8-1)
137   MCFG_SCREEN_UPDATE_STATIC(ac1)
137   MCFG_SCREEN_UPDATE_DRIVER(ac1_state, screen_update_ac1)
138138
139139   MCFG_GFXDECODE( ac1 )
140140
r17967r17968
157157   MCFG_SCREEN_MODIFY("screen")
158158   MCFG_SCREEN_SIZE(64*6, 32*8)
159159   MCFG_SCREEN_VISIBLE_AREA(0, 64*6-1, 0, 32*8-1)
160   MCFG_SCREEN_UPDATE_STATIC(ac1_32)
160   MCFG_SCREEN_UPDATE_DRIVER(ac1_state, screen_update_ac1_32)
161161MACHINE_CONFIG_END
162162
163163/* ROM definition */
trunk/src/mess/drivers/tim011.c
r17967r17968
1717      : driver_device(mconfig, type, tag) { }
1818   virtual void machine_reset();
1919   virtual void video_start();
20   UINT32 screen_update_tim011(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2021};
2122
2223
r17967r17968
4546{
4647}
4748
48static SCREEN_UPDATE_IND16( tim011 )
49UINT32 tim011_state::screen_update_tim011(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
4950{
5051   return 0;
5152}
r17967r17968
6465   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
6566   MCFG_SCREEN_SIZE(512, 256)
6667   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
67   MCFG_SCREEN_UPDATE_STATIC(tim011)
68   MCFG_SCREEN_UPDATE_DRIVER(tim011_state, screen_update_tim011)
6869   MCFG_PALETTE_LENGTH(4)
6970   MCFG_PALETTE_INIT(black_and_white)
7071MACHINE_CONFIG_END
trunk/src/mess/drivers/pk8000.c
r17967r17968
2929   DECLARE_READ8_MEMBER(pk8000_joy_2_r);
3030   virtual void machine_reset();
3131   virtual void video_start();
32   UINT32 screen_update_pk8000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3233};
3334
3435
r17967r17968
328329{
329330}
330331
331static SCREEN_UPDATE_IND16( pk8000 )
332UINT32 pk8000_state::screen_update_pk8000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
332333{
333334   return pk8000_video_update(screen, bitmap, cliprect, screen.machine().device<ram_device>(RAM_TAG)->pointer());
334335}
r17967r17968
357358   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
358359   MCFG_SCREEN_SIZE(256+32, 192+32)
359360   MCFG_SCREEN_VISIBLE_AREA(0, 256+32-1, 0, 192+32-1)
360   MCFG_SCREEN_UPDATE_STATIC(pk8000)
361   MCFG_SCREEN_UPDATE_DRIVER(pk8000_state, screen_update_pk8000)
361362
362363   MCFG_PALETTE_LENGTH(16)
363364   MCFG_PALETTE_INIT(pk8000)
trunk/src/mess/drivers/okean240.c
r17967r17968
7979   virtual void machine_reset();
8080   virtual void video_start();
8181   DECLARE_DRIVER_INIT(okean240);
82   UINT32 screen_update_okean240(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
8283};
8384
8485// okean240 requires bit 4 to change
r17967r17968
390391{
391392}
392393
393static SCREEN_UPDATE_IND16( okean240 )
394UINT32 okean240_state::screen_update_okean240(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
394395{
395   okean240_state *state = screen.machine().driver_data<okean240_state>();
396396   UINT8 gfx,ma; // ma must be 8bit
397397   UINT16 x,y;
398398
399399   for (y = 0; y < 256; y++)
400400   {
401      ma = y + state->m_scroll;
401      ma = y + m_scroll;
402402      UINT16 *p = &bitmap.pix16(y);
403403
404404      for (x = 0; x < 0x4000; x+=0x200)
405405      {
406         gfx = state->m_p_videoram[x|ma] | state->m_p_videoram[x|ma|0x100];
406         gfx = m_p_videoram[x|ma] | m_p_videoram[x|ma|0x100];
407407
408408         /* Display a scanline of a character */
409409         *p++ = BIT(gfx, 0);
r17967r17968
457457   MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 255)
458458   MCFG_PALETTE_LENGTH(2)
459459   MCFG_PALETTE_INIT(black_and_white)
460   MCFG_SCREEN_UPDATE_STATIC(okean240)
460   MCFG_SCREEN_UPDATE_DRIVER(okean240_state, screen_update_okean240)
461461
462462   MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
463463MACHINE_CONFIG_END
trunk/src/mess/drivers/ngp.c
r17967r17968
164164   DECLARE_WRITE8_MEMBER( ngp_vblank_pin_w );
165165   DECLARE_WRITE8_MEMBER( ngp_hblank_pin_w );
166166   DECLARE_WRITE8_MEMBER( ngp_tlcs900_to3 );
167   UINT32 screen_update_ngp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
167168};
168169
169170
r17967r17968
622623}
623624
624625
625static SCREEN_UPDATE_IND16( ngp )
626UINT32 ngp_state::screen_update_ngp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
626627{
627   ngp_state *state = screen.machine().driver_data<ngp_state>();
628628
629   k1ge_update( state->m_k1ge, bitmap, cliprect );
629   k1ge_update( m_k1ge, bitmap, cliprect );
630630   return 0;
631631}
632632
r17967r17968
777777
778778   MCFG_SCREEN_ADD( "screen", LCD )
779779   MCFG_SCREEN_RAW_PARAMS( XTAL_6_144MHz, 515, 0, 160 /*480*/, 199, 0, 152 )
780   MCFG_SCREEN_UPDATE_STATIC( ngp )
780   MCFG_SCREEN_UPDATE_DRIVER(ngp_state, screen_update_ngp)
781781
782782   MCFG_DEFAULT_LAYOUT(layout_lcd)
783783
trunk/src/mess/drivers/nes.c
r17967r17968
468468   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC((113.66/(NTSC_CLOCK/1000000)) * (PPU_VBLANK_LAST_SCANLINE_NTSC-PPU_VBLANK_FIRST_SCANLINE+1+2)))
469469   MCFG_SCREEN_SIZE(32*8, 262)
470470   MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1)
471   MCFG_SCREEN_UPDATE_STATIC(nes)
471   MCFG_SCREEN_UPDATE_DRIVER(nes_state, screen_update_nes)
472472
473473
474474   MCFG_PALETTE_LENGTH(4*16*8)
trunk/src/mess/drivers/concept.c
r17967r17968
130130   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
131131   MCFG_SCREEN_SIZE(720, 560)
132132   MCFG_SCREEN_VISIBLE_AREA(0, 720-1, 0, 560-1)
133   MCFG_SCREEN_UPDATE_STATIC(concept)
133   MCFG_SCREEN_UPDATE_DRIVER(concept_state, screen_update_concept)
134134
135135   MCFG_PALETTE_LENGTH(2)
136136   MCFG_PALETTE_INIT(black_and_white)
trunk/src/mess/drivers/pcw16.c
r17967r17968
14901490   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
14911491   MCFG_SCREEN_SIZE(PCW16_SCREEN_WIDTH, PCW16_SCREEN_HEIGHT)
14921492   MCFG_SCREEN_VISIBLE_AREA(0, PCW16_SCREEN_WIDTH-1, 0, PCW16_SCREEN_HEIGHT-1)
1493   MCFG_SCREEN_UPDATE_STATIC( pcw16 )
1493   MCFG_SCREEN_UPDATE_DRIVER(pcw16_state, screen_update_pcw16)
14941494
14951495   MCFG_PALETTE_LENGTH(PCW16_NUM_COLOURS)
14961496
trunk/src/mess/drivers/ti990_4.c
r17967r17968
6161   DECLARE_DRIVER_INIT(ti990_4);
6262   virtual void machine_reset();
6363   virtual void video_start();
64   UINT32 screen_update_ti990_4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6465};
6566
6667
r17967r17968
135136   m_terminal = machine().device("vdt911");
136137}
137138
138static SCREEN_UPDATE_IND16( ti990_4 )
139UINT32 ti990_4_state::screen_update_ti990_4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
139140{
140   ti990_4_state *state = screen.machine().driver_data<ti990_4_state>();
141   vdt911_refresh(state->m_terminal, bitmap, cliprect, 0, 0);
141   vdt911_refresh(m_terminal, bitmap, cliprect, 0, 0);
142142   return 0;
143143}
144144
r17967r17968
155155   m_terminal = machine().device("asr733");
156156}
157157
158static SCREEN_UPDATE_IND16( ti990_4 )
158UINT32 ti990_4_state::screen_update_ti990_4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
159159{
160   ti990_4_state *state = screen.machine().driver_data<ti990_4_state>();
161   asr733_refresh(state->m_terminal, bitmap, 0, 0);
160   asr733_refresh(m_terminal, bitmap, 0, 0);
162161   return 0;
163162}
164163
r17967r17968
253252   MCFG_SCREEN_ADD("screen", RASTER)
254253   MCFG_SCREEN_REFRESH_RATE(60)
255254   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
256   MCFG_SCREEN_UPDATE_STATIC(ti990_4)
255   MCFG_SCREEN_UPDATE_DRIVER(ti990_4_state, screen_update_ti990_4)
257256#if VIDEO_911
258257   MCFG_SCREEN_SIZE(560, 280)
259258   MCFG_SCREEN_VISIBLE_AREA(0, 560-1, 0, /*250*/280-1)
trunk/src/mess/drivers/pv9234.c
r17967r17968
3535   required_shared_ptr<UINT32> m_p_ram;
3636   virtual void machine_reset();
3737   virtual void video_start();
38   UINT32 screen_update_pv9234(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3839};
3940
4041
r17967r17968
126127{
127128}
128129
129static SCREEN_UPDATE_IND16( pv9234 )
130UINT32 pv9234_state::screen_update_pv9234(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
130131{
131132   return 0;
132133}
r17967r17968
143144   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
144145   MCFG_SCREEN_SIZE(640, 480)
145146   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
146   MCFG_SCREEN_UPDATE_STATIC(pv9234)
147   MCFG_SCREEN_UPDATE_DRIVER(pv9234_state, screen_update_pv9234)
147148
148149   MCFG_PALETTE_LENGTH(2)
149150   MCFG_PALETTE_INIT(black_and_white)
trunk/src/mess/drivers/paso1600.c
r17967r17968
5555   virtual void machine_start();
5656   virtual void machine_reset();
5757   virtual void video_start();
58   UINT32 screen_update_paso1600(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5859};
5960
60#define mc6845_h_char_total    (state->m_crtc_vreg[0])
61#define mc6845_h_display      (state->m_crtc_vreg[1])
62#define mc6845_h_sync_pos      (state->m_crtc_vreg[2])
63#define mc6845_sync_width      (state->m_crtc_vreg[3])
64#define mc6845_v_char_total      (state->m_crtc_vreg[4])
65#define mc6845_v_total_adj      (state->m_crtc_vreg[5])
66#define mc6845_v_display      (state->m_crtc_vreg[6])
67#define mc6845_v_sync_pos      (state->m_crtc_vreg[7])
68#define mc6845_mode_ctrl      (state->m_crtc_vreg[8])
69#define mc6845_tile_height      (state->m_crtc_vreg[9]+1)
70#define mc6845_cursor_y_start   (state->m_crtc_vreg[0x0a])
71#define mc6845_cursor_y_end    (state->m_crtc_vreg[0x0b])
72#define mc6845_start_addr      (((state->m_crtc_vreg[0x0c]<<8) & 0x3f00) | (state->m_crtc_vreg[0x0d] & 0xff))
73#define mc6845_cursor_addr     (((state->m_crtc_vreg[0x0e]<<8) & 0x3f00) | (state->m_crtc_vreg[0x0f] & 0xff))
74#define mc6845_light_pen_addr   (((state->m_crtc_vreg[0x10]<<8) & 0x3f00) | (state->m_crtc_vreg[0x11] & 0xff))
75#define mc6845_update_addr     (((state->m_crtc_vreg[0x12]<<8) & 0x3f00) | (state->m_crtc_vreg[0x13] & 0xff))
61#define mc6845_h_char_total    (m_crtc_vreg[0])
62#define mc6845_h_display      (m_crtc_vreg[1])
63#define mc6845_h_sync_pos      (m_crtc_vreg[2])
64#define mc6845_sync_width      (m_crtc_vreg[3])
65#define mc6845_v_char_total      (m_crtc_vreg[4])
66#define mc6845_v_total_adj      (m_crtc_vreg[5])
67#define mc6845_v_display      (m_crtc_vreg[6])
68#define mc6845_v_sync_pos      (m_crtc_vreg[7])
69#define mc6845_mode_ctrl      (m_crtc_vreg[8])
70#define mc6845_tile_height      (m_crtc_vreg[9]+1)
71#define mc6845_cursor_y_start   (m_crtc_vreg[0x0a])
72#define mc6845_cursor_y_end    (m_crtc_vreg[0x0b])
73#define mc6845_start_addr      (((m_crtc_vreg[0x0c]<<8) & 0x3f00) | (m_crtc_vreg[0x0d] & 0xff))
74#define mc6845_cursor_addr     (((m_crtc_vreg[0x0e]<<8) & 0x3f00) | (m_crtc_vreg[0x0f] & 0xff))
75#define mc6845_light_pen_addr   (((m_crtc_vreg[0x10]<<8) & 0x3f00) | (m_crtc_vreg[0x11] & 0xff))
76#define mc6845_update_addr     (((m_crtc_vreg[0x12]<<8) & 0x3f00) | (m_crtc_vreg[0x13] & 0xff))
7677
7778
7879void paso1600_state::video_start()
r17967r17968
8182   m_p_pcg = memregion("pcg")->base();
8283}
8384
84static SCREEN_UPDATE_IND16( paso1600 )
85UINT32 paso1600_state::screen_update_paso1600(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
8586{
86   paso1600_state *state = screen.machine().driver_data<paso1600_state>();
8787   int x,y;
8888   int xi,yi;
8989   #if 0
r17967r17968
108108      {
109109         for(xi=0;xi<16;xi++)
110110         {
111            int pen = (state->m_p_gvram[count] >> xi) & 1;
111            int pen = (m_p_gvram[count] >> xi) & 1;
112112
113113            if(y < 475 && x*16+xi < 640) /* TODO: safety check */
114114               bitmap.pix16(y, x*16+xi) = screen.machine().pens[pen];
r17967r17968
125125   {
126126      for(x=0;x<mc6845_h_display;x++)
127127      {
128         int tile = state->m_p_vram[x+y*mc6845_h_display] & 0xff;
129         int color = (state->m_p_vram[x+y*mc6845_h_display] & 0x700) >> 8;
128         int tile = m_p_vram[x+y*mc6845_h_display] & 0xff;
129         int color = (m_p_vram[x+y*mc6845_h_display] & 0x700) >> 8;
130130         int pen;
131131
132132         for(yi=0;yi<19;yi++)
133133         {
134134            for(xi=0;xi<8;xi++)
135135            {
136               pen = (state->m_p_chargen[tile*8+(yi >> 1)] >> (7-xi) & 1) ? color : -1;
136               pen = (m_p_chargen[tile*8+(yi >> 1)] >> (7-xi) & 1) ? color : -1;
137137
138138               if(yi & 0x10)
139139                  pen = -1;
r17967r17968
343343   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
344344   MCFG_SCREEN_SIZE(640, 480)
345345   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
346   MCFG_SCREEN_UPDATE_STATIC(paso1600)
346   MCFG_SCREEN_UPDATE_DRIVER(paso1600_state, screen_update_paso1600)
347347   MCFG_GFXDECODE(paso1600)
348348   MCFG_PALETTE_LENGTH(8)
349349//  MCFG_PALETTE_INIT(black_and_white)
trunk/src/mess/drivers/vt100.c
r17967r17968
5656   double m_recv_baud_rate;
5757   virtual void machine_start();
5858   virtual void machine_reset();
59   UINT32 screen_update_vt100(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5960};
6061
6162
r17967r17968
316317      PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_UNUSED) // Always return 0x7f on last scan line
317318INPUT_PORTS_END
318319
319static SCREEN_UPDATE_IND16( vt100 )
320UINT32 vt100_state::screen_update_vt100(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
320321{
321322   device_t *devconf = screen.machine().device("vt100_video");
322323   vt_video_update( devconf, bitmap, cliprect);
r17967r17968
420421   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
421422   MCFG_SCREEN_SIZE(80*10, 25*10)
422423   MCFG_SCREEN_VISIBLE_AREA(0, 80*10-1, 0, 25*10-1)
423   MCFG_SCREEN_UPDATE_STATIC(vt100)
424   MCFG_SCREEN_UPDATE_DRIVER(vt100_state, screen_update_vt100)
424425
425426   MCFG_GFXDECODE(vt100)
426427   MCFG_PALETTE_LENGTH(2)
trunk/src/mess/drivers/cxhumax.c
r17967r17968
890890   return MAKE_RGB(clamp16_shift8(r), clamp16_shift8(g), clamp16_shift8(b));
891891}
892892
893static SCREEN_UPDATE_RGB32( cxhumax )
893UINT32 cxhumax_state::screen_update_cxhumax(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
894894{
895895   int i, j;
896896
897   cxhumax_state *state = screen.machine().driver_data<cxhumax_state>();
898897
899   UINT32 osd_pointer = state->m_drm1_regs[DRM_OSD_PTR_REG];
898   UINT32 osd_pointer = m_drm1_regs[DRM_OSD_PTR_REG];
900899
901900   if(osd_pointer)
902901   {
903      UINT32 *ram = state->m_ram;
902      UINT32 *ram = m_ram;
904903      UINT32 *osd_header = &ram[osd_pointer/4];
905904      UINT8  *vbuf = (UINT8*)(&ram[osd_header[3]/4]);
906905      UINT32 *palette = &ram[osd_header[7]/4];
r17967r17968
917916      UINT32 ydisp_last = (y_position_and_region_alpha >> 12) & 0x7ff;
918917      UINT32 ydisp_start = y_position_and_region_alpha & 0x7ff;
919918
920   /*  UINT32 first_x = state->m_drm0_regs[DRM_ACTIVE_X_REG] & 0xffff;
921        UINT32 last_x = (state->m_drm0_regs[DRM_ACTIVE_X_REG] >> 16) & 0xffff;
919   /*  UINT32 first_x = m_drm0_regs[DRM_ACTIVE_X_REG] & 0xffff;
920        UINT32 last_x = (m_drm0_regs[DRM_ACTIVE_X_REG] >> 16) & 0xffff;
922921
923        UINT32 first_y = state->m_drm0_regs[DRM_ACTIVE_Y_REG] & 0xfff;
924        UINT32 last_y = (state->m_drm0_regs[DRM_ACTIVE_Y_REG] >> 16) & 0xfff;*/
922        UINT32 first_y = m_drm0_regs[DRM_ACTIVE_Y_REG] & 0xfff;
923        UINT32 last_y = (m_drm0_regs[DRM_ACTIVE_Y_REG] >> 16) & 0xfff;*/
925924
926925      for (j=ydisp_start; j <= ydisp_last; j++)
927926      {
r17967r17968
932931            if ((i <= (xdisp_start + ximg_width)) && (j <= (ydisp_start + yimg_height))) {
933932               bmp[i] = palette[vbuf[i+((j-ydisp_start)*ximg_width)]];
934933            } else {
935               bmp[i] = ycc_to_rgb(state->m_drm1_regs[DRM_BCKGND_REG]);
934               bmp[i] = ycc_to_rgb(m_drm1_regs[DRM_BCKGND_REG]);
936935            }
937936         }
938937      }
r17967r17968
10761075    MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
10771076    MCFG_SCREEN_SIZE(1920, 1080)
10781077    MCFG_SCREEN_VISIBLE_AREA(0, 1920-1, 0, 1080-1)
1079    MCFG_SCREEN_UPDATE_STATIC(cxhumax)
1078   MCFG_SCREEN_UPDATE_DRIVER(cxhumax_state, screen_update_cxhumax)
10801079
10811080    MCFG_PALETTE_LENGTH(2)
10821081    MCFG_PALETTE_INIT(black_and_white)
trunk/src/mess/drivers/mz700.c
r17967r17968
357357   /* video hardware */
358358   MCFG_SCREEN_ADD("screen", RASTER)
359359   MCFG_SCREEN_RAW_PARAMS(XTAL_17_73447MHz/2, 568, 0, 40*8, 312, 0, 25*8)
360   MCFG_SCREEN_UPDATE_STATIC(mz700)
360   MCFG_SCREEN_UPDATE_DRIVER(mz_state, screen_update_mz700)
361361
362362   MCFG_GFXDECODE(mz700)
363363   MCFG_PALETTE_LENGTH(256*2)
r17967r17968
398398   MCFG_VIDEO_START_OVERRIDE(mz_state,mz800)
399399
400400   MCFG_SCREEN_MODIFY("screen")
401   MCFG_SCREEN_UPDATE_STATIC(mz800)
401   MCFG_SCREEN_UPDATE_DRIVER(mz_state, screen_update_mz800)
402402
403403   MCFG_SOUND_ADD("sn76489n", SN76489_NEW, XTAL_17_73447MHz/5)
404404   MCFG_SOUND_CONFIG(psg_intf)
trunk/src/mess/drivers/hx20.c
r17967r17968
1818
1919   virtual void machine_reset();
2020   virtual void video_start();
21   UINT32 screen_update_ehx20(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2122};
2223
2324
r17967r17968
3940{
4041}
4142
42static SCREEN_UPDATE_IND16( ehx20 )
43UINT32 hx20_state::screen_update_ehx20(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
4344{
4445   return 0;
4546}
r17967r17968
102103   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
103104   MCFG_SCREEN_SIZE(640, 480)
104105   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
105   MCFG_SCREEN_UPDATE_STATIC(ehx20)
106   MCFG_SCREEN_UPDATE_DRIVER(hx20_state, screen_update_ehx20)
106107
107108   MCFG_GFXDECODE(hx20)
108109   MCFG_PALETTE_LENGTH(2)
trunk/src/mess/drivers/dc.c
r17967r17968
253253   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
254254   MCFG_SCREEN_SIZE(640, 480)
255255   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
256   MCFG_SCREEN_UPDATE_STATIC(dc)
256   MCFG_SCREEN_UPDATE_DRIVER(dc_state, screen_update_dc)
257257
258258   MCFG_PALETTE_LENGTH(0x1000)
259259
trunk/src/mess/drivers/pasogo.c
r17967r17968
6969   DECLARE_DRIVER_INIT(pasogo);
7070   virtual void machine_reset();
7171   virtual void palette_init();
72   UINT32 screen_update_pasogo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
7273};
7374
7475
r17967r17968
390391   }
391392}
392393
393static SCREEN_UPDATE_IND16( pasogo )
394UINT32 pasogo_state::screen_update_pasogo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
394395{
395396   //static int width=-1,height=-1;
396397   UINT8 *rom = screen.machine().root_device().memregion("maincpu")->base()+0xb8000;
r17967r17968
441442   if (w!=width || h!=height)
442443   {
443444      width=w; height=h;
444//      machine.primary_screen->set_visible_area(0, width-1, 0, height-1);
445//      machine().primary_screen->set_visible_area(0, width-1, 0, height-1);
445446      screen.set_visible_area(0, width-1, 0, height-1);
446447   }
447448#endif
r17967r17968
514515   MCFG_SCREEN_REFRESH_RATE(60)
515516   MCFG_SCREEN_SIZE(640, 400)
516517   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 400-1)
517   MCFG_SCREEN_UPDATE_STATIC(pasogo)
518   MCFG_SCREEN_UPDATE_DRIVER(pasogo_state, screen_update_pasogo)
518519
519520   MCFG_PALETTE_LENGTH(ARRAY_LENGTH(pasogo_palette))
520521#if 0
trunk/src/mess/drivers/lisa.c
r17967r17968
156156   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
157157   MCFG_SCREEN_SIZE(880, 380)
158158   MCFG_SCREEN_VISIBLE_AREA(0, 720-1, 0, 364-1)
159   MCFG_SCREEN_UPDATE_STATIC(lisa)
159   MCFG_SCREEN_UPDATE_DRIVER(lisa_state, screen_update_lisa)
160160
161161   MCFG_PALETTE_LENGTH(2)
162162   MCFG_PALETTE_INIT(black_and_white)
trunk/src/mess/drivers/sys2900.c
r17967r17968
4646   DECLARE_DRIVER_INIT(sys2900);
4747   virtual void machine_reset();
4848   virtual void video_start();
49   UINT32 screen_update_sys2900(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4950};
5051
5152
r17967r17968
9091{
9192}
9293
93static SCREEN_UPDATE_IND16( sys2900 )
94UINT32 sys2900_state::screen_update_sys2900(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
9495{
9596   return 0;
9697}
r17967r17968
108109   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
109110   MCFG_SCREEN_SIZE(640, 480)
110111   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
111   MCFG_SCREEN_UPDATE_STATIC(sys2900)
112   MCFG_SCREEN_UPDATE_DRIVER(sys2900_state, screen_update_sys2900)
112113
113114   MCFG_PALETTE_LENGTH(2)
114115   MCFG_PALETTE_INIT(black_and_white)
trunk/src/mess/drivers/aquarius.c
r17967r17968
405405   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2800))
406406   MCFG_SCREEN_SIZE(40 * 8, 25 * 8)
407407   MCFG_SCREEN_VISIBLE_AREA(0, 40 * 8 - 1, 0 * 8, 25 * 8 - 1)
408   MCFG_SCREEN_UPDATE_STATIC( aquarius )
408   MCFG_SCREEN_UPDATE_DRIVER(aquarius_state, screen_update_aquarius)
409409
410410   MCFG_GFXDECODE( aquarius )
411411   MCFG_PALETTE_LENGTH(512)
trunk/src/mess/drivers/cgenie.c
r17967r17968
534534   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
535535   MCFG_SCREEN_SIZE(48*8, 32*8)
536536   MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1,0*8,32*8-1)
537   MCFG_SCREEN_UPDATE_STATIC( cgenie )
537   MCFG_SCREEN_UPDATE_DRIVER(cgenie_state, screen_update_cgenie)
538538
539539   MCFG_GFXDECODE( cgenie )
540540   MCFG_PALETTE_LENGTH(108)
trunk/src/mess/drivers/x1twin.c
r17967r17968
2828      x1twin_state(const machine_config &mconfig, device_type type, const char *tag)
2929      : x1_state(mconfig, type, tag)
3030   { }
31   UINT32 screen_update_x1pce(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
3132};
3233
3334
r17967r17968
3536#define VDP_CLOCK  XTAL_42_9545MHz
3637#define MCU_CLOCK  XTAL_6MHz
3738
38static SCREEN_UPDATE_RGB32( x1pce )
39UINT32 x1twin_state::screen_update_x1pce(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
3940{
4041   return 0;
4142}
r17967r17968
547548   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
548549   MCFG_SCREEN_SIZE(640, 480)
549550   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
550   MCFG_SCREEN_UPDATE_STATIC(x1)
551   MCFG_SCREEN_UPDATE_DRIVER(x1twin_state, screen_update_x1)
551552
552553   MCFG_SCREEN_ADD("pce_screen", RASTER)
553554   MCFG_SCREEN_REFRESH_RATE(60)
554555   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
555556   MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK/2, VDC_WPF, 70, 70 + 512 + 32, VDC_LPF, 14, 14+242)
556   MCFG_SCREEN_UPDATE_STATIC(x1pce)
557   MCFG_SCREEN_UPDATE_DRIVER(x1twin_state, screen_update_x1pce)
557558
558559   MCFG_MC6845_ADD("crtc", H46505, (VDP_CLOCK/48), mc6845_intf) //unknown divider
559560   MCFG_PALETTE_LENGTH(0x10+0x1000)
trunk/src/mess/drivers/codata.c
r17967r17968
2020   required_shared_ptr<UINT16> m_p_base;
2121   virtual void machine_reset();
2222   virtual void video_start();
23   UINT32 screen_update_codata(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2324};
2425
2526
r17967r17968
4950{
5051}
5152
52static SCREEN_UPDATE_IND16( codata )
53UINT32 codata_state::screen_update_codata(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
5354{
5455   return 0;
5556}
r17967r17968
6667   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
6768   MCFG_SCREEN_SIZE(640, 480)
6869   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
69   MCFG_SCREEN_UPDATE_STATIC(codata)
70   MCFG_SCREEN_UPDATE_DRIVER(codata_state, screen_update_codata)
7071
7172   MCFG_PALETTE_LENGTH(2)
7273   MCFG_PALETTE_INIT(black_and_white)
trunk/src/mess/drivers/apexc.c
r17967r17968
3131   virtual void machine_start();
3232   virtual void video_start();
3333   virtual void palette_init();
34   UINT32 screen_update_apexc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3435};
3536
3637
r17967r17968
591592}
592593
593594
594static SCREEN_UPDATE_IND16( apexc )
595UINT32 apexc_state::screen_update_apexc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
595596{
596   apexc_state *state = screen.machine().driver_data<apexc_state>();
597597   int i;
598598   char the_char;
599599
600   bitmap.fill(0, /*machine.visible_area*/panel_window);
600   bitmap.fill(0, /*machine().visible_area*/panel_window);
601601   apexc_draw_string(screen.machine(), bitmap, "power", 8, 0, 0);
602602   apexc_draw_string(screen.machine(), bitmap, "running", 8, 8, 0);
603603   apexc_draw_string(screen.machine(), bitmap, "data :", 0, 24, 0);
604604
605   copybitmap(bitmap, *state->m_bitmap, 0, 0, 0, 0, teletyper_window);
605   copybitmap(bitmap, *m_bitmap, 0, 0, 0, 0, teletyper_window);
606606
607607
608608   apexc_draw_led(bitmap, 0, 0, 1);
r17967r17968
611611
612612   for (i=0; i<32; i++)
613613   {
614      apexc_draw_led(bitmap, i*8, 32, (state->m_panel_data_reg << i) & 0x80000000UL);
614      apexc_draw_led(bitmap, i*8, 32, (m_panel_data_reg << i) & 0x80000000UL);
615615      the_char = '0' + ((i + 1) % 10);
616616      apexc_draw_char(screen.machine(), bitmap, the_char, i*8, 40, 0);
617617      if (((i + 1) % 10) == 0)
r17967r17968
879879   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
880880   MCFG_SCREEN_SIZE(256, 192)
881881   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 192-1)
882   MCFG_SCREEN_UPDATE_STATIC(apexc)
882   MCFG_SCREEN_UPDATE_DRIVER(apexc_state, screen_update_apexc)
883883
884884   MCFG_GFXDECODE(apexc)
885885   MCFG_PALETTE_LENGTH(APEXC_PALETTE_SIZE)
trunk/src/mess/drivers/x68k.c
r17967r17968
27652765//  MCFG_GFXDECODE(x68k)
27662766   MCFG_SCREEN_SIZE(1096, 568)  // inital setting
27672767   MCFG_SCREEN_VISIBLE_AREA(0, 767, 0, 511)
2768   MCFG_SCREEN_UPDATE_STATIC( x68000 )
2768   MCFG_SCREEN_UPDATE_DRIVER(x68k_state, screen_update_x68000)
27692769
27702770   MCFG_PALETTE_LENGTH(65536)
27712771   MCFG_PALETTE_INIT_OVERRIDE(x68k_state, x68000 )
trunk/src/mess/drivers/ondra.c
r17967r17968
134134   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
135135   MCFG_SCREEN_SIZE(320, 256)
136136   MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-1)
137    MCFG_SCREEN_UPDATE_STATIC(ondra)
137   MCFG_SCREEN_UPDATE_DRIVER(ondra_state, screen_update_ondra)
138138
139139   MCFG_PALETTE_LENGTH(2)
140140   MCFG_PALETTE_INIT(black_and_white)
trunk/src/mess/drivers/kaypro.c
r17967r17968
252252   MCFG_SCREEN_SIZE(80*7, 24*10)
253253   MCFG_SCREEN_VISIBLE_AREA(0,80*7-1,0,24*10-1)
254254   MCFG_VIDEO_START_OVERRIDE(kaypro_state, kaypro )
255   MCFG_SCREEN_UPDATE_STATIC( kayproii )
255   MCFG_SCREEN_UPDATE_DRIVER(kaypro_state, screen_update_kayproii)
256256   MCFG_GFXDECODE(kayproii)
257257   MCFG_PALETTE_LENGTH(2)
258258   MCFG_PALETTE_INIT(monochrome_green)
r17967r17968
296296   MCFG_SCREEN_SIZE(80*8, 25*16)
297297   MCFG_SCREEN_VISIBLE_AREA(0,80*8-1,0,25*16-1)
298298   MCFG_VIDEO_START_OVERRIDE(kaypro_state, kaypro )
299   MCFG_SCREEN_UPDATE_STATIC( kaypro2x )
299   MCFG_SCREEN_UPDATE_DRIVER(kaypro_state, screen_update_kaypro2x)
300300   MCFG_GFXDECODE(kaypro2x)
301301   MCFG_PALETTE_LENGTH(3)
302302   MCFG_PALETTE_INIT_OVERRIDE(kaypro_state,kaypro)
r17967r17968
320320
321321static MACHINE_CONFIG_DERIVED( omni2, kaypro4 )
322322   MCFG_SCREEN_MODIFY("screen")
323   MCFG_SCREEN_UPDATE_STATIC( omni2 )
323   MCFG_SCREEN_UPDATE_DRIVER(kaypro_state, screen_update_omni2)
324324MACHINE_CONFIG_END
325325
326326/***********************************************************
trunk/src/mess/drivers/a51xx.c
r17967r17968
2323   virtual void video_start();
2424   DECLARE_MACHINE_RESET(a5130);
2525   DECLARE_VIDEO_START(a5130);
26   UINT32 screen_update_a5120(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
27   UINT32 screen_update_a5130(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2628};
2729
2830
r17967r17968
6264{
6365}
6466
65static SCREEN_UPDATE_IND16( a5120 )
67UINT32 a51xx_state::screen_update_a5120(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
6668{
6769   return 0;
6870}
r17967r17968
8183{
8284}
8385
84static SCREEN_UPDATE_IND16( a5130 )
86UINT32 a51xx_state::screen_update_a5130(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
8587{
8688   return 0;
8789}
r17967r17968
117119   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
118120   MCFG_SCREEN_SIZE(640, 480)
119121   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
120   MCFG_SCREEN_UPDATE_STATIC(a5120)
122   MCFG_SCREEN_UPDATE_DRIVER(a51xx_state, screen_update_a5120)
121123
122124   MCFG_GFXDECODE(a51xx)
123125   MCFG_PALETTE_LENGTH(2)
r17967r17968
135137
136138   /* video hardware */
137139   MCFG_SCREEN_MODIFY("screen")
138   MCFG_SCREEN_UPDATE_STATIC(a5130)
140   MCFG_SCREEN_UPDATE_DRIVER(a51xx_state, screen_update_a5130)
139141
140142   MCFG_VIDEO_START_OVERRIDE(a51xx_state,a5130)
141143MACHINE_CONFIG_END
trunk/src/mess/drivers/super80.c
r17967r17968
642642   MCFG_SCREEN_ADD("screen", RASTER)
643643   MCFG_SCREEN_REFRESH_RATE(48.8)
644644   MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
645   MCFG_SCREEN_UPDATE_STATIC(super80)
645   MCFG_SCREEN_UPDATE_DRIVER(super80_state, screen_update_super80)
646646
647647   MCFG_PALETTE_LENGTH(2)
648648   MCFG_PALETTE_INIT(monochrome_green)
r17967r17968
671671static MACHINE_CONFIG_DERIVED( super80d, super80 )
672672   MCFG_GFXDECODE(super80d)
673673   MCFG_SCREEN_MODIFY("screen")
674   MCFG_SCREEN_UPDATE_STATIC(super80d)
674   MCFG_SCREEN_UPDATE_DRIVER(super80_state, screen_update_super80d)
675675MACHINE_CONFIG_END
676676
677677static MACHINE_CONFIG_DERIVED( super80e, super80 )
r17967r17968
679679   MCFG_CPU_IO_MAP(super80e_io)
680680   MCFG_GFXDECODE(super80e)
681681   MCFG_SCREEN_MODIFY("screen")
682   MCFG_SCREEN_UPDATE_STATIC(super80e)
682   MCFG_SCREEN_UPDATE_DRIVER(super80_state, screen_update_super80e)
683683MACHINE_CONFIG_END
684684
685685static MACHINE_CONFIG_DERIVED( super80m, super80 )
r17967r17968
691691   MCFG_PALETTE_INIT_OVERRIDE(super80_state,super80m)
692692
693693   MCFG_SCREEN_MODIFY("screen")
694   MCFG_SCREEN_UPDATE_STATIC(super80m)
695   MCFG_SCREEN_VBLANK_STATIC(super80m)
694   MCFG_SCREEN_UPDATE_DRIVER(super80_state, screen_update_super80m)
695   MCFG_SCREEN_VBLANK_DRIVER(super80_state, screen_eof_super80m)
696696MACHINE_CONFIG_END
697697
698698static MACHINE_CONFIG_START( super80v, super80_state )
r17967r17968
708708   MCFG_SCREEN_REFRESH_RATE(50)
709709   MCFG_SCREEN_SIZE(SUPER80V_SCREEN_WIDTH, SUPER80V_SCREEN_HEIGHT)
710710   MCFG_SCREEN_VISIBLE_AREA(0, SUPER80V_SCREEN_WIDTH-1, 0, SUPER80V_SCREEN_HEIGHT-1)
711   MCFG_SCREEN_UPDATE_STATIC(super80v)
712   MCFG_SCREEN_VBLANK_STATIC(super80m)
711   MCFG_SCREEN_UPDATE_DRIVER(super80_state, screen_update_super80v)
712   MCFG_SCREEN_VBLANK_DRIVER(super80_state, screen_eof_super80m)
713713
714714   MCFG_PALETTE_LENGTH(16)
715715   MCFG_PALETTE_INIT_OVERRIDE(super80_state,super80m)
trunk/src/mess/drivers/n64.c
r17967r17968
279279   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
280280   MCFG_SCREEN_SIZE(640, 525)
281281   MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 239)
282   MCFG_SCREEN_UPDATE_STATIC(n64)
282   MCFG_SCREEN_UPDATE_DRIVER(n64_state, screen_update_n64)
283283
284284   MCFG_PALETTE_LENGTH(0x1000)
285285
trunk/src/mess/drivers/px4.c
r17967r17968
165165   virtual void palette_init();
166166   DECLARE_MACHINE_START(px4_ramdisk);
167167   DECLARE_PALETTE_INIT(px4p);
168   UINT32 screen_update_px4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
168169};
169170
170171
r17967r17968
10261027    VIDEO EMULATION
10271028***************************************************************************/
10281029
1029static SCREEN_UPDATE_IND16( px4 )
1030UINT32 px4_state::screen_update_px4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
10301031{
1031   px4_state *px4 = screen.machine().driver_data<px4_state>();
10321032
10331033   /* display enabled? */
1034   if (BIT(px4->m_yoff, 7))
1034   if (BIT(m_yoff, 7))
10351035   {
10361036      int y, x;
10371037
10381038      /* get vram start address */
1039      UINT8 *vram = &px4->m_ram->pointer()[(px4->m_vadr & 0xf8) << 8];
1039      UINT8 *vram = &m_ram->pointer()[(m_vadr & 0xf8) << 8];
10401040
10411041      for (y = 0; y < 64; y++)
10421042      {
10431043         /* adjust against y-offset */
1044         UINT8 row = (y - (px4->m_yoff & 0x3f)) & 0x3f;
1044         UINT8 row = (y - (m_yoff & 0x3f)) & 0x3f;
10451045
10461046         for (x = 0; x < 240/8; x++)
10471047         {
r17967r17968
13691369   MCFG_SCREEN_REFRESH_RATE(72)
13701370   MCFG_SCREEN_SIZE(240, 64)
13711371   MCFG_SCREEN_VISIBLE_AREA(0, 239, 0, 63)
1372   MCFG_SCREEN_UPDATE_STATIC(px4)
1372   MCFG_SCREEN_UPDATE_DRIVER(px4_state, screen_update_px4)
13731373
13741374   MCFG_DEFAULT_LAYOUT(layout_px4)
13751375
trunk/src/mess/drivers/lviv.c
r17967r17968
445445    /* video hardware */
446446   MCFG_SCREEN_SIZE(256, 256)
447447   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1)
448   MCFG_SCREEN_UPDATE_STATIC( lviv )
448   MCFG_SCREEN_UPDATE_DRIVER(lviv_state, screen_update_lviv)
449449
450450   MCFG_PALETTE_LENGTH(sizeof (lviv_palette) / 3)
451451
trunk/src/mess/drivers/socrates.c
r17967r17968
127127   virtual void machine_reset();
128128   virtual void video_start();
129129   virtual void palette_init();
130   UINT32 screen_update_socrates(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
130131};
131132
132133
r17967r17968
608609   m_scroll_offset = 0;
609610}
610611
611static SCREEN_UPDATE_IND16( socrates )
612UINT32 socrates_state::screen_update_socrates(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
612613{
613   socrates_state *state = screen.machine().driver_data<socrates_state>();
614614   static const UINT8 fixedcolors[8] =
615615   {
616616   0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0xF7
r17967r17968
619619   int lineoffset = 0; // if display ever tries to display data at 0xfxxx, offset line displayed by 0x1000
620620   for (y = 0; y < 228; y++)
621621   {
622      if ((((y+state->m_scroll_offset)*128)&0xffff) >= 0xf000) lineoffset = 0x1000; // see comment above
622      if ((((y+m_scroll_offset)*128)&0xffff) >= 0xf000) lineoffset = 0x1000; // see comment above
623623      for (x = 0; x < 264; x++)
624624      {
625625         if (x < 256)
626626         {
627            colidx = state->m_videoram[(((y+state->m_scroll_offset)*128)+(x>>1)+lineoffset)&0xffff];
627            colidx = m_videoram[(((y+m_scroll_offset)*128)+(x>>1)+lineoffset)&0xffff];
628628            if (x&1) colidx >>=4;
629629            colidx &= 0xF;
630            if (colidx > 7) color=state->m_videoram[0xF000+(colidx<<8)+((y+state->m_scroll_offset)&0xFF)];
630            if (colidx > 7) color=m_videoram[0xF000+(colidx<<8)+((y+m_scroll_offset)&0xFF)];
631631            else color=fixedcolors[colidx];
632632            bitmap.pix16(y, x) = color;
633633         }
634634         else
635635         {
636            colidx = state->m_videoram[(((y+state->m_scroll_offset)*128)+(127)+lineoffset)&0xffff];
636            colidx = m_videoram[(((y+m_scroll_offset)*128)+(127)+lineoffset)&0xffff];
637637            colidx >>=4;
638638            colidx &= 0xF;
639            if (colidx > 7) color=state->m_videoram[0xF000+(colidx<<8)+((y+state->m_scroll_offset)&0xFF)];
639            if (colidx > 7) color=m_videoram[0xF000+(colidx<<8)+((y+m_scroll_offset)&0xFF)];
640640            else color=fixedcolors[colidx];
641641            bitmap.pix16(y, x) = color;
642642         }
r17967r17968
934934   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
935935   MCFG_SCREEN_SIZE(264, 228) // technically the screen size is 256x228 but super painter abuses what I suspect is a hardware bug to display repeated pixels of the very last pixel beyond this horizontal space, well into hblank
936936   MCFG_SCREEN_VISIBLE_AREA(0, 263, 0, 219) // the last few rows are usually cut off by the screen bottom but are indeed displayed if you mess with v-hold
937   MCFG_SCREEN_UPDATE_STATIC(socrates)
937   MCFG_SCREEN_UPDATE_DRIVER(socrates_state, screen_update_socrates)
938938
939939   MCFG_PALETTE_LENGTH(256)
940940
trunk/src/mess/drivers/mk85.c
r17967r17968
2929
3030   virtual void machine_reset();
3131   virtual void video_start();
32   UINT32 screen_update_mk85(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3233};
3334
3435
r17967r17968
5152{
5253}
5354
54static SCREEN_UPDATE_IND16( mk85 )
55UINT32 mk85_state::screen_update_mk85(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
5556{
5657   return 0;
5758}
r17967r17968
7475   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
7576   MCFG_SCREEN_SIZE(640, 480)
7677   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
77   MCFG_SCREEN_UPDATE_STATIC(mk85)
78   MCFG_SCREEN_UPDATE_DRIVER(mk85_state, screen_update_mk85)
7879   MCFG_PALETTE_LENGTH(2)
7980   MCFG_PALETTE_INIT(black_and_white)
8081MACHINE_CONFIG_END
trunk/src/mess/drivers/timex.c
r17967r17968
639639   MCFG_SCREEN_REFRESH_RATE(60)
640640   MCFG_SCREEN_SIZE(TS2068_SCREEN_WIDTH, TS2068_SCREEN_HEIGHT)
641641   MCFG_SCREEN_VISIBLE_AREA(0, TS2068_SCREEN_WIDTH-1, 0, TS2068_SCREEN_HEIGHT-1)
642   MCFG_SCREEN_UPDATE_STATIC( ts2068 )
642   MCFG_SCREEN_UPDATE_DRIVER(spectrum_state, screen_update_ts2068)
643643
644644   MCFG_GFXDECODE(ts2068)
645645
r17967r17968
681681   MCFG_SCREEN_REFRESH_RATE(50)
682682   MCFG_SCREEN_SIZE(TS2068_SCREEN_WIDTH, SPEC_SCREEN_HEIGHT)
683683   MCFG_SCREEN_VISIBLE_AREA(0, TS2068_SCREEN_WIDTH-1, 0, SPEC_SCREEN_HEIGHT-1)
684   MCFG_SCREEN_UPDATE_STATIC( tc2048 )
684   MCFG_SCREEN_UPDATE_DRIVER(spectrum_state, screen_update_tc2048)
685685
686686   MCFG_VIDEO_START_OVERRIDE(spectrum_state, spectrum_128 )
687687
trunk/src/mess/drivers/jr200.c
r17967r17968
5252   virtual void machine_reset();
5353   virtual void video_start();
5454   virtual void palette_init();
55   UINT32 screen_update_jr200(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5556};
5657
5758
r17967r17968
117118{
118119}
119120
120static SCREEN_UPDATE_IND16( jr200 )
121UINT32 jr200_state::screen_update_jr200(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
121122{
122   jr200_state *state = screen.machine().driver_data<jr200_state>();
123123   int x,y,xi,yi,pen;
124124
125   bitmap.fill(state->m_border_col, cliprect);
125   bitmap.fill(m_border_col, cliprect);
126126
127127   for (y = 0; y < 24; y++)
128128   {
129129      for (x = 0; x < 32; x++)
130130      {
131         UINT8 tile = state->m_vram[x + y*32];
132         UINT8 attr = state->m_cram[x + y*32];
131         UINT8 tile = m_vram[x + y*32];
132         UINT8 attr = m_cram[x + y*32];
133133
134134         for(yi=0;yi<8;yi++)
135135         {
r17967r17968
516516   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
517517   MCFG_SCREEN_SIZE(16 + 256 + 16, 16 + 192 + 16) /* border size not accurate */
518518   MCFG_SCREEN_VISIBLE_AREA(0, 16 + 256 + 16 - 1, 0, 16 + 192 + 16 - 1)
519   MCFG_SCREEN_UPDATE_STATIC(jr200)
519   MCFG_SCREEN_UPDATE_DRIVER(jr200_state, screen_update_jr200)
520520
521521   MCFG_GFXDECODE(jr200)
522522   MCFG_PALETTE_LENGTH(8)
trunk/src/mess/drivers/enterp.c
r17967r17968
457457   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
458458   MCFG_SCREEN_SIZE(ENTERPRISE_SCREEN_WIDTH, ENTERPRISE_SCREEN_HEIGHT)
459459   MCFG_SCREEN_VISIBLE_AREA(0, ENTERPRISE_SCREEN_WIDTH-1, 0, ENTERPRISE_SCREEN_HEIGHT-1)
460   MCFG_SCREEN_UPDATE_STATIC(epnick)
460   MCFG_SCREEN_UPDATE_DRIVER(ep_state, screen_update_epnick)
461461
462462   MCFG_PALETTE_LENGTH(NICK_PALETTE_SIZE)
463463
trunk/src/mess/drivers/apricot.c
r17967r17968
6464   required_shared_ptr<UINT16> m_screen_buffer;
6565   DECLARE_DRIVER_INIT(apricot);
6666   virtual void palette_init();
67   UINT32 screen_update_apricot(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
6768};
6869
6970
r17967r17968
183184    VIDEO EMULATION
184185***************************************************************************/
185186
186static SCREEN_UPDATE_RGB32( apricot )
187UINT32 apricot_state::screen_update_apricot(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
187188{
188   apricot_state *state = screen.machine().driver_data<apricot_state>();
189189
190   if (!state->m_display_on)
191      state->m_crtc->screen_update( screen, bitmap, cliprect);
190   if (!m_display_on)
191      m_crtc->screen_update( screen, bitmap, cliprect);
192192   else
193193      bitmap.fill(0, cliprect);
194194
r17967r17968
376376   MCFG_SCREEN_SIZE(800, 400)
377377   MCFG_SCREEN_VISIBLE_AREA(0, 800-1, 0, 400-1)
378378   MCFG_SCREEN_REFRESH_RATE(72)
379   MCFG_SCREEN_UPDATE_STATIC(apricot)
379   MCFG_SCREEN_UPDATE_DRIVER(apricot_state, screen_update_apricot)
380380   MCFG_PALETTE_LENGTH(3)
381381
382382   /* sound hardware */
trunk/src/mess/drivers/mbc55x.c
r17967r17968
239239   MCFG_SCREEN_ADD(SCREEN_TAG, RASTER)
240240   MCFG_SCREEN_RAW_PARAMS(XTAL_14_31818MHz,896,0,300,262,0,200)
241241   MCFG_SCREEN_UPDATE_DEVICE(VID_MC6845_NAME, mc6845_device, screen_update)
242   MCFG_SCREEN_VBLANK_STATIC(mbc55x)
242   MCFG_SCREEN_VBLANK_DRIVER(mbc55x_state, screen_eof_mbc55x)
243243
244244   MCFG_PALETTE_LENGTH(SCREEN_NO_COLOURS * 3)
245245
trunk/src/mess/drivers/dm7000.c
r17967r17968
263263{
264264}
265265
266static SCREEN_UPDATE_IND16( dm7000 )
266UINT32 dm7000_state::screen_update_dm7000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
267267{
268268   return 0;
269269}
r17967r17968
323323   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
324324   MCFG_SCREEN_SIZE(640, 480)
325325   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
326   MCFG_SCREEN_UPDATE_STATIC(dm7000)
326   MCFG_SCREEN_UPDATE_DRIVER(dm7000_state, screen_update_dm7000)
327327
328328   MCFG_PALETTE_LENGTH(2)
329329   MCFG_PALETTE_INIT(black_and_white)
trunk/src/mess/drivers/partner.c
r17967r17968
205205   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
206206   MCFG_SCREEN_SIZE(78*6, 30*10)
207207   MCFG_SCREEN_VISIBLE_AREA(0, 78*6-1, 0, 30*10-1)
208   MCFG_SCREEN_UPDATE_STATIC(radio86)
208   MCFG_SCREEN_UPDATE_DRIVER(radio86_state, screen_update_radio86)
209209
210210   MCFG_GFXDECODE(partner)
211211   MCFG_PALETTE_LENGTH(3)
trunk/src/mess/drivers/gp32.c
r17967r17968
291291   machine().primary_screen->register_screen_bitmap(m_bitmap);
292292}
293293
294static SCREEN_UPDATE_RGB32( gp32 )
294UINT32 gp32_state::screen_update_gp32(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
295295{
296   gp32_state *state = screen.machine().driver_data<gp32_state>();
297   running_machine &machine = screen.machine();
298   copybitmap(bitmap, state->m_bitmap, 0, 0, 0, 0, cliprect);
299   s3c240x_lcd_dma_init( machine);
296   copybitmap(bitmap, m_bitmap, 0, 0, 0, 0, cliprect);
297   s3c240x_lcd_dma_init( machine());
300298   return 0;
301299}
302300
r17967r17968
17461744   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
17471745   MCFG_SCREEN_SIZE(240, 320)
17481746   MCFG_SCREEN_VISIBLE_AREA(0, 239, 0, 319)
1749   MCFG_SCREEN_UPDATE_STATIC(gp32)
1747   MCFG_SCREEN_UPDATE_DRIVER(gp32_state, screen_update_gp32)
17501748
17511749   /* 320x240 is 4:3 but ROT270 causes an aspect ratio of 3:4 by default */
17521750   MCFG_DEFAULT_LAYOUT(layout_lcd_rot)
trunk/src/mess/drivers/supracan.c
r17967r17968
200200   virtual void machine_reset();
201201   virtual void video_start();
202202   virtual void palette_init();
203   UINT32 screen_update_supracan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
203204};
204205
205206
r17967r17968
763764// Sango Fighter Intro: 03c8: 0000 0011 1100 1000   ----: ---- ---- ---- ----   6c20        4620        ----        0x01
764765// Sango Fighter Game:  03ce: 0000 0011 1100 1110   0622: 0000 0110 0010 0010   2620        4620        ----        0x01
765766
766static SCREEN_UPDATE_IND16( supracan )
767UINT32 supracan_state::screen_update_supracan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
767768{
768   supracan_state *state = (supracan_state *)screen.machine().driver_data<supracan_state>();
769769
770770
771771
r17967r17968
777777      {
778778         const rectangle &visarea = screen.visible_area();
779779
780         state->m_sprite_final_bitmap.fill(0x00, visarea);
780         m_sprite_final_bitmap.fill(0x00, visarea);
781781         bitmap.fill(0x80, visarea);
782782
783         draw_sprites(screen.machine(), state->m_sprite_final_bitmap, visarea);
783         draw_sprites(screen.machine(), m_sprite_final_bitmap, visarea);
784784      }
785785   }
786786   else
787787   {
788788
789      state->m_sprite_final_bitmap.fill(0x00, cliprect);
789      m_sprite_final_bitmap.fill(0x00, cliprect);
790790      bitmap.fill(0x80, cliprect);
791791
792      draw_sprites(screen.machine(), state->m_sprite_final_bitmap, cliprect);
792      draw_sprites(screen.machine(), m_sprite_final_bitmap, cliprect);
793793   }
794794
795795
r17967r17968
806806
807807      for (int layer = 3; layer >=0; layer--)
808808      {
809      //  popmessage("%04x\n",state->m_video_flags);
809      //  popmessage("%04x\n",m_video_flags);
810810         int enabled = 0;
811811
812         if(state->m_video_flags & 0x04)
812         if(m_video_flags & 0x04)
813813            if (layer==3) enabled = 1;
814814
815         if(state->m_video_flags & 0x80)
815         if(m_video_flags & 0x80)
816816            if (layer==0) enabled = 1;
817817
818         if(state->m_video_flags & 0x40)
818         if(m_video_flags & 0x40)
819819            if (layer==1) enabled = 1;
820820
821         if(state->m_video_flags & 0x20)
821         if(m_video_flags & 0x20)
822822            if (layer==2) enabled = 1;
823823
824824
825         if (layer==3) priority = ((state->m_roz_mode >> 13) & 7); // roz case
826         else priority = ((state->m_tilemap_flags[layer] >> 13) & 7); // normal cases
825         if (layer==3) priority = ((m_roz_mode >> 13) & 7); // roz case
826         else priority = ((m_tilemap_flags[layer] >> 13) & 7); // normal cases
827827
828828
829829         if (priority==pri)
830830         {
831831//            tilemap_num = layer;
832832            which_tilemap_size = get_tilemap_dimensions(screen.machine(), xsize, ysize, layer);
833            bitmap_ind16 &src_bitmap = state->m_tilemap_sizes[layer][which_tilemap_size]->pixmap();
833            bitmap_ind16 &src_bitmap = m_tilemap_sizes[layer][which_tilemap_size]->pixmap();
834834            int gfx_region = supracan_tilemap_get_region(screen.machine(), layer);
835835            int transmask = 0xff;
836836
r17967r17968
848848               if (layer != 3) // standard layers, NOT roz
849849               {
850850
851                  int wrap = (state->m_tilemap_flags[layer] & 0x20);
851                  int wrap = (m_tilemap_flags[layer] & 0x20);
852852
853                  int scrollx = state->m_tilemap_scrollx[layer];
854                  int scrolly = state->m_tilemap_scrolly[layer];
853                  int scrollx = m_tilemap_scrollx[layer];
854                  int scrolly = m_tilemap_scrolly[layer];
855855
856856                  if (scrollx&0x8000) scrollx-= 0x10000;
857857                  if (scrolly&0x8000) scrolly-= 0x10000;
858858
859                  int mosaic_count = (state->m_tilemap_flags[layer] & 0x001c) >> 2;
859                  int mosaic_count = (m_tilemap_flags[layer] & 0x001c) >> 2;
860860                  int mosaic_mask = 0xffffffff << mosaic_count;
861861
862862                  int y,x;
r17967r17968
896896               }
897897               else
898898               {
899                  int wrap = state->m_roz_mode & 0x20;
899                  int wrap = m_roz_mode & 0x20;
900900
901                  int incxx = (state->m_roz_coeffa);
902                  int incyy = (state->m_roz_coeffd);
901                  int incxx = (m_roz_coeffa);
902                  int incyy = (m_roz_coeffd);
903903
904                  int incxy = (state->m_roz_coeffc);
905                  int incyx = (state->m_roz_coeffb);
904                  int incxy = (m_roz_coeffc);
905                  int incyx = (m_roz_coeffb);
906906
907                  int scrollx = (state->m_roz_scrollx);
908                  int scrolly = (state->m_roz_scrolly);
907                  int scrollx = (m_roz_scrollx);
908                  int scrolly = (m_roz_scrolly);
909909
910910
911911
r17967r17968
918918                  if (incyy & 0x8000) incyy -= 0x10000;
919919                  if (incxx & 0x8000) incxx -= 0x10000;
920920
921                  //popmessage("%04x %04x\n",state->m_video_flags, state->m_roz_mode);
921                  //popmessage("%04x %04x\n",m_video_flags, m_roz_mode);
922922
923923                  // roz mode..
924924                  //4020 = enabled speedyd
r17967r17968
930930                  // or is it always enabled, and only corrupt because we don't clear ram properly?
931931                  // (probably not this register?)
932932
933                  if (!(state->m_roz_mode & 0x0200) && (state->m_roz_mode&0xf000) ) // HACK - Not Trusted, Acan Logo, Speedy Dragon Intro ,Speed Dragon Bonus stage need it.  Monopoly and JTT *don't* causes graphical issues
933                  if (!(m_roz_mode & 0x0200) && (m_roz_mode&0xf000) ) // HACK - Not Trusted, Acan Logo, Speedy Dragon Intro ,Speed Dragon Bonus stage need it.  Monopoly and JTT *don't* causes graphical issues
934934                  {
935935                     // NOT accurate, causes issues when the attract mode loops and the logo is shown the 2nd time in some games - investigate
936936                     for (int y=cliprect.min_y;y<=cliprect.max_y;y++)
937937                     {
938938                        rectangle clip(cliprect.min_x, cliprect.max_x, y, y);
939939
940                        scrollx = (state->m_roz_scrollx);
941                        scrolly = (state->m_roz_scrolly);
942                        incxx = (state->m_roz_coeffa);
940                        scrollx = (m_roz_scrollx);
941                        scrolly = (m_roz_scrolly);
942                        incxx = (m_roz_coeffa);
943943
944                        incxx += state->m_vram[state->m_roz_unk_base0/2 + y];
944                        incxx += m_vram[m_roz_unk_base0/2 + y];
945945
946                        scrollx += state->m_vram[state->m_roz_unk_base1/2 + y*2] << 16;
947                        scrollx += state->m_vram[state->m_roz_unk_base1/2 + y*2 + 1];
946                        scrollx += m_vram[m_roz_unk_base1/2 + y*2] << 16;
947                        scrollx += m_vram[m_roz_unk_base1/2 + y*2 + 1];
948948
949                        scrolly += state->m_vram[state->m_roz_unk_base2/2 + y*2] << 16;
950                        scrolly += state->m_vram[state->m_roz_unk_base2/2 + y*2 + 1];
949                        scrolly += m_vram[m_roz_unk_base2/2 + y*2] << 16;
950                        scrolly += m_vram[m_roz_unk_base2/2 + y*2 + 1];
951951
952952                        if (incxx & 0x8000) incxx -= 0x10000;
953953
954954
955                        if (state->m_vram[state->m_roz_unk_base0/2 + y]) // incxx = 0, no draw?
956                           supracan_suprnova_draw_roz(screen.machine(), bitmap, clip, state->m_tilemap_sizes[layer][which_tilemap_size], scrollx<<8, scrolly<<8, incxx<<8, incxy<<8, incyx<<8, incyy<<8, wrap, transmask);
955                        if (m_vram[m_roz_unk_base0/2 + y]) // incxx = 0, no draw?
956                           supracan_suprnova_draw_roz(screen.machine(), bitmap, clip, m_tilemap_sizes[layer][which_tilemap_size], scrollx<<8, scrolly<<8, incxx<<8, incxy<<8, incyx<<8, incyy<<8, wrap, transmask);
957957                     }
958958                  }
959959                  else
960960                  {
961                     supracan_suprnova_draw_roz(screen.machine(), bitmap, cliprect, state->m_tilemap_sizes[layer][which_tilemap_size], scrollx<<8, scrolly<<8, incxx<<8, incxy<<8, incyx<<8, incyy<<8, wrap, transmask);
961                     supracan_suprnova_draw_roz(screen.machine(), bitmap, cliprect, m_tilemap_sizes[layer][which_tilemap_size], scrollx<<8, scrolly<<8, incxx<<8, incxy<<8, incyx<<8, incyy<<8, wrap, transmask);
962962                  }
963963               }
964964            }
r17967r17968
968968
969969
970970   // just draw the sprites on top for now
971   if(state->m_video_flags & 0x08)
971   if(m_video_flags & 0x08)
972972   {
973973      for (int y=cliprect.min_y;y<=cliprect.max_y;y++)
974974      {
975         UINT16* src = &state->m_sprite_final_bitmap.pix16(y);
975         UINT16* src = &m_sprite_final_bitmap.pix16(y);
976976         UINT16* dst = &bitmap.pix16(y);
977977
978978         for (int x=cliprect.min_x;x<=cliprect.max_x;x++)
r17967r17968
19161916
19171917   MCFG_SCREEN_ADD( "screen", RASTER )
19181918   MCFG_SCREEN_RAW_PARAMS(XTAL_10_738635MHz/2, 348, 0, 256, 256, 0, 240 )   /* No idea if this is correct */
1919   MCFG_SCREEN_UPDATE_STATIC( supracan )
1919   MCFG_SCREEN_UPDATE_DRIVER(supracan_state, screen_update_supracan)
19201920   MCFG_PALETTE_LENGTH( 32768 )
19211921   MCFG_GFXDECODE(supracan)
19221922
trunk/src/mess/drivers/channelf.c
r17967r17968
270270   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
271271   MCFG_SCREEN_SIZE(128, 64)
272272   MCFG_SCREEN_VISIBLE_AREA(4, 112 - 7, 4, 64 - 3)
273   MCFG_SCREEN_UPDATE_STATIC( channelf )
273   MCFG_SCREEN_UPDATE_DRIVER(channelf_state, screen_update_channelf)
274274
275275   MCFG_PALETTE_LENGTH(8)
276276
r17967r17968
296296   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(PAL_VBLANK_TIME)) /* approximate */
297297   MCFG_SCREEN_SIZE(128, 64)
298298   MCFG_SCREEN_VISIBLE_AREA(4, 112 - 7, 4, 64 - 3)
299   MCFG_SCREEN_UPDATE_STATIC( channelf )
299   MCFG_SCREEN_UPDATE_DRIVER(channelf_state, screen_update_channelf)
300300
301301   MCFG_PALETTE_LENGTH(8)
302302
r17967r17968
323323   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
324324   MCFG_SCREEN_SIZE(128, 64)
325325   MCFG_SCREEN_VISIBLE_AREA(4, 112 - 7, 4, 64 - 3)
326   MCFG_SCREEN_UPDATE_STATIC( channelf )
326   MCFG_SCREEN_UPDATE_DRIVER(channelf_state, screen_update_channelf)
327327
328328   MCFG_PALETTE_LENGTH(8)
329329
r17967r17968
350350   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(PAL_VBLANK_TIME)) /* not accurate */
351351   MCFG_SCREEN_SIZE(128, 64)
352352   MCFG_SCREEN_VISIBLE_AREA(4, 112 - 7, 4, 64 - 3)
353   MCFG_SCREEN_UPDATE_STATIC( channelf )
353   MCFG_SCREEN_UPDATE_DRIVER(channelf_state, screen_update_channelf)
354354
355355   MCFG_PALETTE_LENGTH(8)
356356
trunk/src/mess/drivers/apple1.c
r17967r17968
297297       overscan here. */
298298   MCFG_SCREEN_SIZE(40 * 7, 24 * 8)
299299   MCFG_SCREEN_VISIBLE_AREA(0, 40 * 7 - 1, 0, 24 * 8 - 1)
300   MCFG_SCREEN_UPDATE_STATIC(apple1)
300   MCFG_SCREEN_UPDATE_DRIVER(apple1_state, screen_update_apple1)
301301
302302
303303   MCFG_GFXDECODE(apple1)
trunk/src/mess/drivers/hec2hrp.c
r17967r17968
450450   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(400)) /* 2500 not accurate */
451451   MCFG_SCREEN_SIZE(512, 230)
452452   MCFG_SCREEN_VISIBLE_AREA(0, 243, 0, 227)
453   MCFG_SCREEN_UPDATE_STATIC(hec2hrp)
453   MCFG_SCREEN_UPDATE_DRIVER(hec2hrp_state, screen_update_hec2hrp)
454454
455455   MCFG_PALETTE_LENGTH(16)
456456   MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp)
r17967r17968
493493   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(400)) /* 2500 not accurate */
494494   MCFG_SCREEN_SIZE(512, 230)
495495   MCFG_SCREEN_VISIBLE_AREA(0, 243, 0, 227)
496   MCFG_SCREEN_UPDATE_STATIC(hec2hrp)
496   MCFG_SCREEN_UPDATE_DRIVER(hec2hrp_state, screen_update_hec2hrp)
497497
498498   MCFG_PALETTE_LENGTH(16)
499499   MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp)
r17967r17968
543543   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(400)) /* 2500 not accurate */
544544   MCFG_SCREEN_SIZE(512, 230)
545545   MCFG_SCREEN_VISIBLE_AREA(0, 243, 0, 227)
546   MCFG_SCREEN_UPDATE_STATIC(hec2hrp)
546   MCFG_SCREEN_UPDATE_DRIVER(hec2hrp_state, screen_update_hec2hrp)
547547
548548   MCFG_PALETTE_LENGTH(16)
549549   MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp)
r17967r17968
592592   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(400)) /* 2500 not accurate */
593593   MCFG_SCREEN_SIZE(512, 230)
594594   MCFG_SCREEN_VISIBLE_AREA(0, 243, 0, 227)
595   MCFG_SCREEN_UPDATE_STATIC(hec2hrp)
595   MCFG_SCREEN_UPDATE_DRIVER(hec2hrp_state, screen_update_hec2hrp)
596596
597597   MCFG_PALETTE_LENGTH(16)
598598   MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp)
r17967r17968
639639   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(400)) /* 2500 not accurate */
640640   MCFG_SCREEN_SIZE(512, 230)
641641   MCFG_SCREEN_VISIBLE_AREA(0, 243, 0, 227)
642   MCFG_SCREEN_UPDATE_STATIC(hec2hrp)
642   MCFG_SCREEN_UPDATE_DRIVER(hec2hrp_state, screen_update_hec2hrp)
643643
644644   MCFG_PALETTE_LENGTH(16)
645645   MCFG_PALETTE_INIT(black_and_white)
r17967r17968
690690   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(400)) /* 2500 not accurate */
691691   MCFG_SCREEN_SIZE(512, 230)
692692   MCFG_SCREEN_VISIBLE_AREA(0, 243, 0, 227)
693   MCFG_SCREEN_UPDATE_STATIC(hec2hrp)
693   MCFG_SCREEN_UPDATE_DRIVER(hec2hrp_state, screen_update_hec2hrp)
694694
695695   MCFG_PALETTE_LENGTH(16)
696696   MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp)
trunk/src/mess/drivers/unior.c
r17967r17968
5858   UINT8 m_cursor_row;
5959   virtual void machine_reset();
6060   virtual void video_start();
61   UINT32 screen_update_unior(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6162};
6263
6364READ8_MEMBER( unior_state::unior_4c_r )
r17967r17968
249250   m_p_vram = memregion("vram")->base();
250251}
251252
252static SCREEN_UPDATE_IND16( unior )
253UINT32 unior_state::screen_update_unior(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
253254{
254   unior_state *state = screen.machine().driver_data<unior_state>();
255255   UINT8 y,ra,gfx;
256256   UINT16 sy=0,ma=0,x,chr;
257257   UINT8 *videoram;
258   videoram = state->m_p_videoram;
258   videoram = m_p_videoram;
259259   static UINT8 framecnt=0;
260260
261261   framecnt++;
r17967r17968
270270         {
271271            chr = videoram[x+ma];
272272
273            gfx = state->m_p_chargen[(chr<<3) | ra ];
273            gfx = m_p_chargen[(chr<<3) | ra ];
274274
275275            /* cursor */
276            if ((y == state->m_cursor_row) && (x == state->m_cursor_col) && (ra > 6) & BIT(framecnt, 3))
276            if ((y == m_cursor_row) && (x == m_cursor_col) && (ra > 6) & BIT(framecnt, 3))
277277               gfx ^= 0xff;
278278
279279            /* Display a scanline of a character */
r17967r17968
290290      if (y)
291291         ma+=80;
292292      else
293         videoram = state->m_p_vram;
293         videoram = m_p_vram;
294294   }
295295   return 0;
296296}
r17967r17968
326326   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
327327   MCFG_SCREEN_SIZE(640, 200)
328328   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
329   MCFG_SCREEN_UPDATE_STATIC(unior)
329   MCFG_SCREEN_UPDATE_DRIVER(unior_state, screen_update_unior)
330330   MCFG_GFXDECODE(unior)
331331   MCFG_PALETTE_LENGTH(2)
332332   MCFG_PALETTE_INIT(black_and_white)
trunk/src/mess/drivers/craft.c
r17967r17968
7373   DECLARE_WRITE8_MEMBER(avr8_write);
7474   DECLARE_DRIVER_INIT(craft);
7575   virtual void machine_reset();
76   UINT32 screen_update_craft(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
7677};
7778
7879void craft_state::machine_start()
r17967r17968
951952* Video hardware                                     *
952953\****************************************************/
953954
954static SCREEN_UPDATE_RGB32( craft )
955UINT32 craft_state::screen_update_craft(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
955956{
956957    return 0;
957958}
r17967r17968
996997    MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1395)) /* accurate */
997998    MCFG_SCREEN_SIZE(634, 480)
998999    MCFG_SCREEN_VISIBLE_AREA(0, 633, 0, 479)
999    MCFG_SCREEN_UPDATE_STATIC(craft)
1000   MCFG_SCREEN_UPDATE_DRIVER(craft_state, screen_update_craft)
10001001
10011002    MCFG_PALETTE_LENGTH(0x1000)
10021003
trunk/src/mess/drivers/apogee.c
r17967r17968
178178   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
179179   MCFG_SCREEN_SIZE(78*6, 30*10)
180180   MCFG_SCREEN_VISIBLE_AREA(0, 78*6-1, 0, 30*10-1)
181   MCFG_SCREEN_UPDATE_STATIC(radio86)
181   MCFG_SCREEN_UPDATE_DRIVER(radio86_state, screen_update_radio86)
182182
183183   MCFG_GFXDECODE(apogee)
184184   MCFG_PALETTE_LENGTH(3)
trunk/src/mess/drivers/elwro800.c
r17967r17968
4949   DECLARE_WRITE8_MEMBER(elwro800jr_fdc_control_w);
5050   DECLARE_READ8_MEMBER(elwro800jr_io_r);
5151   DECLARE_WRITE8_MEMBER(elwro800jr_io_w);
52   DECLARE_MACHINE_RESET(elwro800);
52   DECLARE_MACHINE_RESET(elwro800);   
5353};
5454
5555
r17967r17968
588588   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
589589   MCFG_SCREEN_SIZE(SPEC_SCREEN_WIDTH, SPEC_SCREEN_HEIGHT)
590590   MCFG_SCREEN_VISIBLE_AREA(0, SPEC_SCREEN_WIDTH-1, 0, SPEC_SCREEN_HEIGHT-1)
591   MCFG_SCREEN_UPDATE_STATIC( spectrum )
592   MCFG_SCREEN_VBLANK_STATIC( spectrum )
591   MCFG_SCREEN_UPDATE_DRIVER(elwro800_state, screen_update_spectrum )
592   MCFG_SCREEN_VBLANK_DRIVER(elwro800_state, screen_eof_spectrum)
593593
594594   MCFG_PALETTE_LENGTH(16)
595595   MCFG_PALETTE_INIT_OVERRIDE(elwro800_state, spectrum )
trunk/src/mess/drivers/special.c
r17967r17968
412412   MCFG_SCREEN_SIZE(384, 256)
413413   MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 256-1)
414414   MCFG_VIDEO_START_OVERRIDE(special_state,special)
415   MCFG_SCREEN_UPDATE_STATIC(special)
415   MCFG_SCREEN_UPDATE_DRIVER(special_state, screen_update_special)
416416   MCFG_PALETTE_LENGTH(2)
417417   MCFG_PALETTE_INIT(black_and_white)
418418
r17967r17968
435435   MCFG_CPU_PROGRAM_MAP(specialp_mem)
436436
437437   MCFG_SCREEN_MODIFY("screen")
438   MCFG_SCREEN_UPDATE_STATIC(specialp)
438   MCFG_SCREEN_UPDATE_DRIVER(special_state, screen_update_specialp)
439439   MCFG_SCREEN_SIZE(512, 256)
440440   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
441441   MCFG_VIDEO_START_OVERRIDE(special_state,specialp)
r17967r17968
450450
451451   /* video hardware */
452452   MCFG_SCREEN_MODIFY("screen")
453   MCFG_SCREEN_UPDATE_STATIC(specimx)
453   MCFG_SCREEN_UPDATE_DRIVER(special_state, screen_update_specimx)
454454   MCFG_VIDEO_START_OVERRIDE(special_state,specimx)
455455   MCFG_PALETTE_LENGTH(16)
456456   MCFG_PALETTE_INIT_OVERRIDE(special_state, specimx )
r17967r17968
483483   MCFG_SCREEN_SIZE(384, 256)
484484   MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 256-1)
485485   MCFG_VIDEO_START_OVERRIDE(special_state,erik)
486   MCFG_SCREEN_UPDATE_STATIC(erik)
486   MCFG_SCREEN_UPDATE_DRIVER(special_state, screen_update_erik)
487487   MCFG_PALETTE_LENGTH(8)
488488   MCFG_PALETTE_INIT_OVERRIDE(special_state,erik)
489489
trunk/src/mess/drivers/intv.c
r17967r17968
819819   MCFG_SCREEN_ADD("screen", RASTER)
820820   MCFG_SCREEN_REFRESH_RATE(59.92)
821821   //MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2400)) /* not accurate */
822   MCFG_SCREEN_UPDATE_STATIC(intv)
822   MCFG_SCREEN_UPDATE_DRIVER(intv_state, screen_update_intv)
823823   MCFG_SCREEN_SIZE((STIC_OVERSCAN_LEFT_WIDTH+STIC_BACKTAB_WIDTH*STIC_CARD_WIDTH-1+STIC_OVERSCAN_RIGHT_WIDTH)*STIC_X_SCALE*INTV_X_SCALE, (STIC_OVERSCAN_TOP_HEIGHT+STIC_BACKTAB_HEIGHT*STIC_CARD_HEIGHT+STIC_OVERSCAN_BOTTOM_HEIGHT)*STIC_Y_SCALE*INTV_Y_SCALE)
824824   MCFG_SCREEN_VISIBLE_AREA(0, (STIC_OVERSCAN_LEFT_WIDTH+STIC_BACKTAB_WIDTH*STIC_CARD_WIDTH-1+STIC_OVERSCAN_RIGHT_WIDTH)*STIC_X_SCALE*INTV_X_SCALE-1, 0, (STIC_OVERSCAN_TOP_HEIGHT+STIC_BACKTAB_HEIGHT*STIC_CARD_HEIGHT+STIC_OVERSCAN_BOTTOM_HEIGHT)*STIC_Y_SCALE*INTV_Y_SCALE-1)
825825
r17967r17968
883883   MCFG_SCREEN_MODIFY("screen")
884884   MCFG_SCREEN_SIZE((STIC_OVERSCAN_LEFT_WIDTH+STIC_BACKTAB_WIDTH*STIC_CARD_WIDTH-1+STIC_OVERSCAN_RIGHT_WIDTH)*STIC_X_SCALE*INTVKBD_X_SCALE, (STIC_OVERSCAN_TOP_HEIGHT+STIC_BACKTAB_HEIGHT*STIC_CARD_HEIGHT+STIC_OVERSCAN_BOTTOM_HEIGHT)*STIC_Y_SCALE*INTVKBD_Y_SCALE)
885885   MCFG_SCREEN_VISIBLE_AREA(0, (STIC_OVERSCAN_LEFT_WIDTH+STIC_BACKTAB_WIDTH*STIC_CARD_WIDTH-1+STIC_OVERSCAN_RIGHT_WIDTH)*STIC_X_SCALE*INTVKBD_X_SCALE-1, 0, (STIC_OVERSCAN_TOP_HEIGHT+STIC_BACKTAB_HEIGHT*STIC_CARD_HEIGHT+STIC_OVERSCAN_BOTTOM_HEIGHT)*STIC_Y_SCALE*INTVKBD_Y_SCALE-1)
886   MCFG_SCREEN_UPDATE_STATIC(intvkbd)
886   MCFG_SCREEN_UPDATE_DRIVER(intv_state, screen_update_intvkbd)
887887
888888   /* cartridge */
889889   MCFG_DEVICE_REMOVE("cart")
trunk/src/mess/drivers/m79152pc.c
r17967r17968
2424   required_shared_ptr<UINT8> m_p_attributes;
2525   virtual void machine_reset();
2626   virtual void video_start();
27   UINT32 screen_update_m79152pc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
2728};
2829
2930static ADDRESS_MAP_START(m79152pc_mem, AS_PROGRAM, 8, m79152pc_state)
r17967r17968
5354   m_p_chargen = memregion("chargen")->base()+4;
5455}
5556
56static SCREEN_UPDATE_IND16( m79152pc )
57UINT32 m79152pc_state::screen_update_m79152pc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
5758{
5859// Attributes are unknown so are not implemented
59   m79152pc_state *state = screen.machine().driver_data<m79152pc_state>();
6060   UINT8 y,ra,chr,gfx; //,attr;
6161   UINT16 sy=0,ma=0,x;
6262
r17967r17968
6868
6969         for (x = ma; x < ma + 80; x++)
7070         {
71            chr = state->m_p_videoram[x];
72            //attr = state->m_p_attributes[x];
73            gfx = state->m_p_chargen[(chr<<4) | ra ];
71            chr = m_p_videoram[x];
72            //attr = m_p_attributes[x];
73            gfx = m_p_chargen[(chr<<4) | ra ];
7474
7575            /* Display a scanline of a character */
7676            *p++ = BIT(gfx, 7);
r17967r17968
119119   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
120120   MCFG_SCREEN_SIZE(640, 300)
121121   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 300-1)
122   MCFG_SCREEN_UPDATE_STATIC(m79152pc)
122   MCFG_SCREEN_UPDATE_DRIVER(m79152pc_state, screen_update_m79152pc)
123123   MCFG_GFXDECODE(m79152pc)
124124   MCFG_PALETTE_LENGTH(2)
125125   MCFG_PALETTE_INIT(black_and_white)
trunk/src/mess/drivers/mikro80.c
r17967r17968
183183   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
184184   MCFG_SCREEN_SIZE(64*8, 32*8)
185185   MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1)
186   MCFG_SCREEN_UPDATE_STATIC(mikro80)
186   MCFG_SCREEN_UPDATE_DRIVER(mikro80_state, screen_update_mikro80)
187187
188188   MCFG_GFXDECODE(mikro80)
189189   MCFG_PALETTE_LENGTH(2)
trunk/src/mess/drivers/ms0515.c
r17967r17968
3333   UINT8 m_sysreg;
3434   int m_blink;
3535   virtual void palette_init();
36   UINT32 screen_update_ms0515(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3637};
3738
3839static ADDRESS_MAP_START(ms0515_mem, AS_PROGRAM, 16, ms0515_state)
r17967r17968
165166   NULL
166167};
167168
168static SCREEN_UPDATE_IND16( ms0515 )
169UINT32 ms0515_state::screen_update_ms0515(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
169170{
170   ms0515_state *state = screen.machine().driver_data<ms0515_state>();
171171   int y, x, b;
172172   int addr = 0;
173   if (BIT(state->m_sysreg,3))  {
173   if (BIT(m_sysreg,3))  {
174174      for (y = 0; y < 200; y++)
175175      {
176176         int horpos = 0;
177177         for (x = 0; x < 40; x++)
178178         {
179            UINT16 code = (state->m_video_ram[addr++] << 8);
180            code += state->m_video_ram[addr++];
179            UINT16 code = (m_video_ram[addr++] << 8);
180            code += m_video_ram[addr++];
181181            for (b = 0; b < 16; b++)
182182            {
183183               // In lower res mode we will just double pixels
r17967r17968
191191         int horpos = 0;
192192         for (x = 0; x < 40; x++)
193193         {
194            UINT8 code = state->m_video_ram[addr++];
195            UINT8 attr = state->m_video_ram[addr++];
194            UINT8 code = m_video_ram[addr++];
195            UINT8 attr = m_video_ram[addr++];
196196            UINT8 fg = (attr & 7) + BIT(attr,6)*8;
197197            UINT8 bg = ((attr >> 3) & 7) + BIT(attr,6)*8;
198            if (BIT(attr,7) && (state->m_blink == 20)) {
198            if (BIT(attr,7) && (m_blink == 20)) {
199199               UINT8 tmp = fg;
200200               fg = bg; bg = tmp;
201               state->m_blink = -1;
201               m_blink = -1;
202202            }
203203            for (b = 0; b < 8; b++)
204204            {
r17967r17968
209209         }
210210      }
211211   }
212   state->m_blink++;
212   m_blink++;
213213   return 0;
214214}
215215
r17967r17968
265265   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
266266   MCFG_SCREEN_SIZE(640, 200)
267267   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
268    MCFG_SCREEN_UPDATE_STATIC(ms0515)
268   MCFG_SCREEN_UPDATE_DRIVER(ms0515_state, screen_update_ms0515)
269269
270270   MCFG_PALETTE_LENGTH(16)
271271
trunk/src/mess/drivers/scv.c
r17967r17968
3737   virtual void machine_start();
3838   virtual void machine_reset();
3939   virtual void palette_init();
40   UINT32 screen_update_scv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4041};
4142
4243
r17967r17968
566567}
567568
568569
569static SCREEN_UPDATE_IND16( scv )
570UINT32 scv_state::screen_update_scv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
570571{
571   scv_state *state = screen.machine().driver_data<scv_state>();
572572   int x, y;
573   UINT8 fg = state->m_videoram[0x1403] >> 4;
574   UINT8 bg = state->m_videoram[0x1403] & 0x0f;
575   UINT8 gr_fg = state->m_videoram[0x1401] >> 4;
576   UINT8 gr_bg = state->m_videoram[0x1401] & 0x0f;
577   int clip_x = ( state->m_videoram[0x1402] & 0x0f ) * 2;
578   int clip_y = state->m_videoram[0x1402] >> 4;
573   UINT8 fg = m_videoram[0x1403] >> 4;
574   UINT8 bg = m_videoram[0x1403] & 0x0f;
575   UINT8 gr_fg = m_videoram[0x1401] >> 4;
576   UINT8 gr_bg = m_videoram[0x1401] & 0x0f;
577   int clip_x = ( m_videoram[0x1402] & 0x0f ) * 2;
578   int clip_y = m_videoram[0x1402] >> 4;
579579
580580   /* Clear the screen */
581581   bitmap.fill(gr_bg , cliprect);
r17967r17968
587587
588588      if ( y < clip_y )
589589      {
590         text_y = ( state->m_videoram[0x1400] & 0x80 ) ? 0 : 1;
590         text_y = ( m_videoram[0x1400] & 0x80 ) ? 0 : 1;
591591      }
592592      else
593593      {
594         text_y = ( state->m_videoram[0x1400] & 0x80 ) ? 1 : 0;
594         text_y = ( m_videoram[0x1400] & 0x80 ) ? 1 : 0;
595595      }
596596
597597      for ( x = 0; x < 32; x++ )
598598      {
599599         int text_x = 0;
600         UINT8 d = state->m_videoram[ 0x1000 + y * 32 + x ];
600         UINT8 d = m_videoram[ 0x1000 + y * 32 + x ];
601601
602602         if ( x < clip_x )
603603         {
604            text_x = ( state->m_videoram[0x1400] & 0x40 ) ? 0 : 1;
604            text_x = ( m_videoram[0x1400] & 0x40 ) ? 0 : 1;
605605         }
606606         else
607607         {
608            text_x = ( state->m_videoram[0x1400] & 0x40 ) ? 1 : 0;
608            text_x = ( m_videoram[0x1400] & 0x40 ) ? 1 : 0;
609609         }
610610
611611         if ( text_x && text_y )
612612         {
613613            /* Text mode */
614            UINT8 *char_data = state->memregion( "charrom" )->base() + ( d & 0x7f ) * 8;
614            UINT8 *char_data = memregion( "charrom" )->base() + ( d & 0x7f ) * 8;
615615            draw_text( bitmap, x * 8, y * 16, char_data, fg, bg );
616616         }
617617         else
618618         {
619            switch ( state->m_videoram[0x1400] & 0x03 )
619            switch ( m_videoram[0x1400] & 0x03 )
620620            {
621621            case 0x01:      /* Semi graphics mode */
622622               draw_semi_graph( bitmap, x * 8    , y * 16     , d & 0x80, gr_fg );
r17967r17968
642642   }
643643
644644   /* Draw sprites if enabled */
645   if ( state->m_videoram[0x1400] & 0x10 )
645   if ( m_videoram[0x1400] & 0x10 )
646646   {
647      UINT8 screen_start_sprite_line = ( ( ( state->m_videoram[0x1400] & 0xf7 ) == 0x17 ) && ( ( state->m_videoram[0x1402] & 0xef ) == 0x4f ) ) ? 21 + 32 : 0 ;
647      UINT8 screen_start_sprite_line = ( ( ( m_videoram[0x1400] & 0xf7 ) == 0x17 ) && ( ( m_videoram[0x1402] & 0xef ) == 0x4f ) ) ? 21 + 32 : 0 ;
648648      int i;
649649
650650      for ( i = 0; i < 128; i++ )
651651      {
652         UINT8 spr_y = state->m_videoram[ 0x1200 + i * 4 ] & 0xfe;
653         UINT8 y_32 = state->m_videoram[ 0x1200 + i * 4 ] & 0x01;      /* Xx32 sprite */
654         UINT8 clip = state->m_videoram[ 0x1201 + i * 4 ] >> 4;
655         UINT8 col = state->m_videoram[ 0x1201 + i * 4 ] & 0x0f;
656         UINT8 spr_x = state->m_videoram[ 0x1202 + i * 4 ] & 0xfe;
657         UINT8 x_32 = state->m_videoram[ 0x1202 + i * 4 ] & 0x01;      /* 32xX sprite */
658         UINT8 tile_idx = state->m_videoram[ 0x1203 + i * 4 ] & 0x7f;
659         UINT8 half = state->m_videoram[ 0x1203 + i * 4] & 0x80;
652         UINT8 spr_y = m_videoram[ 0x1200 + i * 4 ] & 0xfe;
653         UINT8 y_32 = m_videoram[ 0x1200 + i * 4 ] & 0x01;      /* Xx32 sprite */
654         UINT8 clip = m_videoram[ 0x1201 + i * 4 ] >> 4;
655         UINT8 col = m_videoram[ 0x1201 + i * 4 ] & 0x0f;
656         UINT8 spr_x = m_videoram[ 0x1202 + i * 4 ] & 0xfe;
657         UINT8 x_32 = m_videoram[ 0x1202 + i * 4 ] & 0x01;      /* 32xX sprite */
658         UINT8 tile_idx = m_videoram[ 0x1203 + i * 4 ] & 0x7f;
659         UINT8 half = m_videoram[ 0x1203 + i * 4] & 0x80;
660660         UINT8 left = 1;
661661         UINT8 right = 1;
662662         UINT8 top = 1;
r17967r17968
704704         }
705705
706706         /* Check if 2 color sprites are enabled */
707         if ( ( state->m_videoram[0x1400] & 0x20 ) && ( i & 0x20 ) )
707         if ( ( m_videoram[0x1400] & 0x20 ) && ( i & 0x20 ) )
708708         {
709709            /* 2 color sprite handling */
710            draw_sprite( state, bitmap, spr_x, spr_y, tile_idx, col, left, right, top, bottom, clip, screen_start_sprite_line );
710            draw_sprite( this, bitmap, spr_x, spr_y, tile_idx, col, left, right, top, bottom, clip, screen_start_sprite_line );
711711            if ( x_32 || y_32 )
712712            {
713713               static const UINT8 spr_2col_lut0[16] = { 0, 15, 12, 13, 10, 11,  8, 9, 6, 7,  4,  5, 2, 3,  1,  1 };
714714               static const UINT8 spr_2col_lut1[16] = { 0,  1,  8, 11,  2,  3, 10, 9, 4, 5, 12, 13, 6, 7, 14, 15 };
715715
716               draw_sprite( state, bitmap, spr_x, spr_y, tile_idx ^ ( 8 * x_32 + y_32 ), ( i & 0x40 ) ? spr_2col_lut1[col] : spr_2col_lut0[col], left, right, top, bottom, clip, screen_start_sprite_line );
716               draw_sprite( this, bitmap, spr_x, spr_y, tile_idx ^ ( 8 * x_32 + y_32 ), ( i & 0x40 ) ? spr_2col_lut1[col] : spr_2col_lut0[col], left, right, top, bottom, clip, screen_start_sprite_line );
717717            }
718718         }
719719         else
720720         {
721721            /* regular sprite handling */
722            draw_sprite( state, bitmap, spr_x, spr_y, tile_idx, col, left, right, top, bottom, clip, screen_start_sprite_line );
722            draw_sprite( this, bitmap, spr_x, spr_y, tile_idx, col, left, right, top, bottom, clip, screen_start_sprite_line );
723723            if ( x_32 )
724724            {
725               draw_sprite( state, bitmap, spr_x + 16, spr_y, tile_idx | 8, col, 1, 1, top, bottom, clip, screen_start_sprite_line );
725               draw_sprite( this, bitmap, spr_x + 16, spr_y, tile_idx | 8, col, 1, 1, top, bottom, clip, screen_start_sprite_line );
726726            }
727727
728728            if ( y_32 )
729729            {
730730               clip = ( clip & 0x08 ) ? ( clip & 0x07 ) : 0;
731               draw_sprite( state, bitmap, spr_x, spr_y + 16, tile_idx | 1, col, left, right, 1, 1, clip, screen_start_sprite_line );
731               draw_sprite( this, bitmap, spr_x, spr_y + 16, tile_idx | 1, col, left, right, 1, 1, clip, screen_start_sprite_line );
732732               if ( x_32 )
733733               {
734                  draw_sprite( state, bitmap, spr_x + 16, spr_y + 16, tile_idx | 9, col, 1, 1, 1, 1, clip, screen_start_sprite_line );
734                  draw_sprite( this, bitmap, spr_x + 16, spr_y + 16, tile_idx | 9, col, 1, 1, 1, 1, clip, screen_start_sprite_line );
735735               }
736736            }
737737         }
r17967r17968
796796   /* Video chip is EPOCH TV-1 */
797797   MCFG_SCREEN_ADD( "screen", RASTER )
798798   MCFG_SCREEN_RAW_PARAMS( XTAL_14_31818MHz/2, 456, 24, 24+192, 262, 23, 23+222 )   /* TODO: Verify */
799   MCFG_SCREEN_UPDATE_STATIC( scv )
799   MCFG_SCREEN_UPDATE_DRIVER(scv_state, screen_update_scv)
800800
801801   MCFG_GFXDECODE(scv)
802802   MCFG_PALETTE_LENGTH( 16 )
trunk/src/mess/drivers/rmnimbus.c
r17967r17968
305305    MCFG_SCREEN_ADD("screen", RASTER)
306306    MCFG_SCREEN_REFRESH_RATE(50)
307307    MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(100))
308    MCFG_SCREEN_UPDATE_STATIC(nimbus)
309    MCFG_SCREEN_VBLANK_STATIC(nimbus)
308   MCFG_SCREEN_UPDATE_DRIVER(rmnimbus_state, screen_update_nimbus)
309   MCFG_SCREEN_VBLANK_DRIVER(rmnimbus_state, screen_eof_nimbus)
310310
311311    MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_SCANLINE)
312312
trunk/src/mess/drivers/mz80.c
r17967r17968
289289   MCFG_SCREEN_REFRESH_RATE(60)
290290   MCFG_SCREEN_SIZE(320, 200)
291291   MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 199)
292   MCFG_SCREEN_UPDATE_STATIC(mz80k)
292   MCFG_SCREEN_UPDATE_DRIVER(mz80_state, screen_update_mz80k)
293293   MCFG_GFXDECODE(mz80k)
294294   MCFG_PALETTE_LENGTH(2)
295295   MCFG_PALETTE_INIT(black_and_white)
r17967r17968
310310
311311static MACHINE_CONFIG_DERIVED( mz80kj, mz80k )
312312   MCFG_SCREEN_MODIFY("screen")
313   MCFG_SCREEN_UPDATE_STATIC(mz80kj)
313   MCFG_SCREEN_UPDATE_DRIVER(mz80_state, screen_update_mz80kj)
314314   MCFG_GFXDECODE(mz80kj)
315315MACHINE_CONFIG_END
316316
317317static MACHINE_CONFIG_DERIVED( mz80a, mz80k )
318318   MCFG_SCREEN_MODIFY("screen")
319   MCFG_SCREEN_UPDATE_STATIC(mz80a)
319   MCFG_SCREEN_UPDATE_DRIVER(mz80_state, screen_update_mz80a)
320320MACHINE_CONFIG_END
321321
322322
trunk/src/mess/drivers/ut88.c
r17967r17968
197197   MCFG_SCREEN_SIZE(64*8, 28*8)
198198   MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 28*8-1)
199199   MCFG_VIDEO_START_OVERRIDE(ut88_state,ut88)
200   MCFG_SCREEN_UPDATE_STATIC(ut88)
200   MCFG_SCREEN_UPDATE_DRIVER(ut88_state, screen_update_ut88)
201201   MCFG_PALETTE_LENGTH(2)
202202   MCFG_PALETTE_INIT(black_and_white)
203203   MCFG_GFXDECODE( ut88 )
trunk/src/mess/drivers/pp01.c
r17967r17968
208208   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
209209   MCFG_SCREEN_SIZE(256, 256)
210210   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1)
211   MCFG_SCREEN_UPDATE_STATIC(pp01)
211   MCFG_SCREEN_UPDATE_DRIVER(pp01_state, screen_update_pp01)
212212
213213   MCFG_PALETTE_LENGTH(8)
214214
trunk/src/mess/drivers/cybiko.c
r17967r17968
299299// SCREEN UPDATE  //
300300////////////////////
301301
302static SCREEN_UPDATE_IND16( cybiko )
302UINT32 cybiko_state::screen_update_cybiko(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
303303{
304304   hd66421_device *hd66421 = screen.machine().device<hd66421_device>( "hd66421" );
305305   hd66421->update_screen(bitmap, cliprect);
r17967r17968
321321   MCFG_SCREEN_REFRESH_RATE( 60 )
322322   MCFG_SCREEN_SIZE( HD66421_WIDTH, HD66421_HEIGHT )
323323   MCFG_SCREEN_VISIBLE_AREA( 0, HD66421_WIDTH - 1, 0, HD66421_HEIGHT - 1 )
324   MCFG_SCREEN_UPDATE_STATIC(cybiko)
324   MCFG_SCREEN_UPDATE_DRIVER(cybiko_state, screen_update_cybiko)
325325
326326   // video
327327   MCFG_HD66421_ADD("hd66421")
trunk/src/mess/drivers/mbc200.c
r17967r17968
6262   required_shared_ptr<UINT8> m_vram;
6363
6464   virtual void video_start();
65   UINT32 screen_update_mbc200(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6566};
6667
6768
r17967r17968
150151{
151152}
152153
153static SCREEN_UPDATE_IND16( mbc200 )
154UINT32 mbc200_state::screen_update_mbc200(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
154155{
155   mbc200_state *state = screen.machine().driver_data<mbc200_state>();
156156   int x,y,xi,yi;
157157   int count;
158158
r17967r17968
167167            for(xi=0;xi<8;xi++)
168168            {
169169               UINT8 dot;
170               dot = (state->m_vram[count] >> (7-xi)) & 1;
170               dot = (m_vram[count] >> (7-xi)) & 1;
171171
172172               if(y*4+yi < 400 && x*8+xi < 640) /* TODO: safety check */
173173                  bitmap.pix16(y*4+yi, x*8+xi) = screen.machine().pens[dot];
r17967r17968
263263    MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
264264    MCFG_SCREEN_SIZE(640, 400)
265265    MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 400-1)
266    MCFG_SCREEN_UPDATE_STATIC(mbc200)
266   MCFG_SCREEN_UPDATE_DRIVER(mbc200_state, screen_update_mbc200)
267267   MCFG_GFXDECODE(mbc200)
268268    MCFG_PALETTE_LENGTH(2)
269269    MCFG_PALETTE_INIT(black_and_white)
trunk/src/mess/drivers/apple2.c
r17967r17968
652652   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
653653   MCFG_SCREEN_SIZE(280*2, 192)
654654   MCFG_SCREEN_VISIBLE_AREA(0, (280*2)-1,0,192-1)
655   MCFG_SCREEN_UPDATE_STATIC(apple2)
655   MCFG_SCREEN_UPDATE_DRIVER(apple2_state, screen_update_apple2)
656656
657657   MCFG_PALETTE_LENGTH(ARRAY_LENGTH(apple2_palette))
658658   MCFG_PALETTE_INIT_OVERRIDE(apple2_state,apple2)
trunk/src/mess/drivers/svision.c
r17967r17968
350350   }
351351}
352352
353static SCREEN_UPDATE_IND16( svision )
353UINT32 svision_state::screen_update_svision(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
354354{
355355   svision_state *state = screen.machine().driver_data<svision_state>();
356356   int x, y, i, j=XPOS/4+YPOS*0x30;
357   UINT8 *videoram = state->m_videoram;
357   UINT8 *videoram = m_videoram;
358358
359   if (state->BANK&8)
359   if (BANK&8)
360360   {
361361      for (y=0; y<160; y++)
362362      {
r17967r17968
382382   return 0;
383383}
384384
385static SCREEN_UPDATE_RGB32( tvlink )
385UINT32 svision_state::screen_update_tvlink(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
386386{
387387   svision_state *state = screen.machine().driver_data<svision_state>();
388388   int x, y, i, j = XPOS/4+YPOS*0x30;
389   UINT8 *videoram = state->m_videoram;
389   UINT8 *videoram = m_videoram;
390390
391   if (state->BANK & 8)
391   if (BANK & 8)
392392   {
393393      for (y = 0; y < 160; y++)
394394      {
r17967r17968
396396         for (x = 3 - (XPOS & 3), i = 0; x < 160 + 3 && x < XSIZE + 3; x += 4, i++)
397397         {
398398            UINT8 b=videoram[j+i];
399            line[3]=state->m_tvlink.palette[(b>>6)&3];
400            line[2]=state->m_tvlink.palette[(b>>4)&3];
401            line[1]=state->m_tvlink.palette[(b>>2)&3];
402            line[0]=state->m_tvlink.palette[(b>>0)&3];
399            line[3]=m_tvlink.palette[(b>>6)&3];
400            line[2]=m_tvlink.palette[(b>>4)&3];
401            line[1]=m_tvlink.palette[(b>>2)&3];
402            line[0]=m_tvlink.palette[(b>>0)&3];
403403            line+=4;
404404         }
405405         j += 0x30;
r17967r17968
522522   MCFG_SCREEN_REFRESH_RATE(61)
523523   MCFG_SCREEN_SIZE(3+160+3, 160)
524524   MCFG_SCREEN_VISIBLE_AREA(3+0, 3+160-1, 0, 160-1)
525   MCFG_SCREEN_UPDATE_STATIC( svision )
525   MCFG_SCREEN_UPDATE_DRIVER(svision_state, screen_update_svision)
526526
527527   MCFG_PALETTE_LENGTH(ARRAY_LENGTH(svision_palette) * 3)
528528
r17967r17968
572572   MCFG_MACHINE_RESET_OVERRIDE(svision_state, tvlink )
573573
574574   MCFG_SCREEN_MODIFY("screen")
575   MCFG_SCREEN_UPDATE_STATIC( tvlink )
575   MCFG_SCREEN_UPDATE_DRIVER(svision_state, screen_update_tvlink)
576576
577577MACHINE_CONFIG_END
578578
trunk/src/mess/drivers/vta2000.c
r17967r17968
3131   virtual void machine_reset();
3232   virtual void video_start();
3333   virtual void palette_init();
34   UINT32 screen_update_vta2000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3435};
3536
3637static ADDRESS_MAP_START(vta2000_mem, AS_PROGRAM, 8, vta2000_state)
r17967r17968
5960   m_p_videoram = memregion("maincpu")->base()+0x8000;
6061}
6162
62static SCREEN_UPDATE_IND16( vta2000 )
63UINT32 vta2000_state::screen_update_vta2000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
6364/* Cursor is missing. */
6465{
65   vta2000_state *state = screen.machine().driver_data<vta2000_state>();
6666   static UINT8 framecnt=0;
6767   UINT8 y,ra,gfx,attr,fg,bg;
6868   UINT16 sy=0,ma=0,x,xx=0,chr;
r17967r17968
7878         xx = ma << 1;
7979         for (x = ma; x < ma + 80; x++)
8080         {
81            chr = state->m_p_videoram[xx++];
82            attr = state->m_p_videoram[xx++];
81            chr = m_p_videoram[xx++];
82            attr = m_p_videoram[xx++];
8383
8484            if ((chr & 0x60)==0x60)
8585               chr+=256;
8686
87            gfx = state->m_p_chargen[(chr<<4) | ra ];
87            gfx = m_p_chargen[(chr<<4) | ra ];
8888            bg = 0;
8989
9090            /* Process attributes */
r17967r17968
163163   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
164164   MCFG_SCREEN_SIZE(80*8, 25*12)
165165   MCFG_SCREEN_VISIBLE_AREA(0, 80*8-1, 0, 25*12-1)
166   MCFG_SCREEN_UPDATE_STATIC(vta2000)
166   MCFG_SCREEN_UPDATE_DRIVER(vta2000_state, screen_update_vta2000)
167167   MCFG_PALETTE_LENGTH(3)
168168   MCFG_GFXDECODE(vta2000)
169169MACHINE_CONFIG_END
trunk/src/mess/drivers/ipds.c
r17967r17968
3232   bitmap_ind16 m_bitmap;
3333   virtual void video_start();
3434   virtual void machine_reset();
35   UINT32 screen_update_ipds(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3536};
3637
3738READ8_MEMBER( ipds_state::ipds_b0_r )
r17967r17968
114115   ipds_display_pixels
115116};
116117
117static SCREEN_UPDATE_IND16( ipds )
118UINT32 ipds_state::screen_update_ipds(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
118119{
119   ipds_state *state = screen.machine().driver_data<ipds_state>();
120120   device_t *devconf = screen.machine().device("i8275");
121121   i8275_update( devconf, bitmap, cliprect);
122   copybitmap(bitmap, state->m_bitmap, 0, 0, 0, 0, cliprect);
122   copybitmap(bitmap, m_bitmap, 0, 0, 0, 0, cliprect);
123123   return 0;
124124}
125125
r17967r17968
165165   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
166166   MCFG_SCREEN_SIZE(640, 480)
167167   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
168   MCFG_SCREEN_UPDATE_STATIC(ipds)
168   MCFG_SCREEN_UPDATE_DRIVER(ipds_state, screen_update_ipds)
169169   MCFG_GFXDECODE(ipds)
170170   MCFG_PALETTE_LENGTH(2)
171171   MCFG_PALETTE_INIT(monochrome_green)
trunk/src/mess/drivers/busicom.c
r17967r17968
224224    MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
225225    MCFG_SCREEN_SIZE(40*17, 44*11)
226226    MCFG_SCREEN_VISIBLE_AREA(0, 40*17-1, 0, 44*11-1)
227   MCFG_SCREEN_UPDATE_STATIC(busicom)
227   MCFG_SCREEN_UPDATE_DRIVER(busicom_state, screen_update_busicom)
228228
229229    MCFG_PALETTE_LENGTH(16)
230230
trunk/src/mess/drivers/cortex.c
r17967r17968
2929
3030   virtual void machine_reset();
3131   virtual void video_start();
32   UINT32 screen_update_cortex(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
3233};
3334
3435static ADDRESS_MAP_START( cortex_mem, AS_PROGRAM, 8, cortex_state )
r17967r17968
5455{
5556}
5657
57static SCREEN_UPDATE_IND16( cortex )
58UINT32 cortex_state::screen_update_cortex(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
5859{
5960   return 0;
6061}
r17967r17968
8283   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
8384   MCFG_SCREEN_SIZE(640, 480)
8485   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
85   MCFG_SCREEN_UPDATE_STATIC(cortex)
86   MCFG_SCREEN_UPDATE_DRIVER(cortex_state, screen_update_cortex)
8687   MCFG_PALETTE_LENGTH(2)
8788   MCFG_PALETTE_INIT(black_and_white)
8889MACHINE_CONFIG_END
trunk/src/mess/drivers/ip20.c
r17967r17968
6262   DECLARE_DRIVER_INIT(ip204415);
6363   virtual void machine_start();
6464   virtual void video_start();
65   UINT32 screen_update_ip204415(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
6566};
6667
6768
r17967r17968
8485{
8586}
8687
87static SCREEN_UPDATE_IND16( ip204415 )
88UINT32 ip20_state::screen_update_ip204415(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
8889{
8990   return 0;
9091}
r17967r17968
593594   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
594595   MCFG_SCREEN_SIZE(800, 600)
595596   MCFG_SCREEN_VISIBLE_AREA(0, 799, 0, 599)
596   MCFG_SCREEN_UPDATE_STATIC( ip204415 )
597   MCFG_SCREEN_UPDATE_DRIVER(ip20_state, screen_update_ip204415)
597598
598599   MCFG_PALETTE_LENGTH(65536)
599600
trunk/src/mess/drivers/vc4000.c
r17967r17968
399399   MCFG_SCREEN_REFRESH_RATE(50)
400400   MCFG_SCREEN_SIZE(226, 312)
401401   MCFG_SCREEN_VISIBLE_AREA(8, 184, 0, 269)
402   MCFG_SCREEN_UPDATE_STATIC( vc4000 )
402   MCFG_SCREEN_UPDATE_DRIVER(vc4000_state, screen_update_vc4000)
403403
404404   MCFG_PALETTE_LENGTH(8)
405405
trunk/src/mess/drivers/konin.c
r17967r17968
3939
4040   virtual void machine_reset();
4141   virtual void video_start();
42   UINT32 screen_update_konin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
4243};
4344
4445static ADDRESS_MAP_START( konin_mem, AS_PROGRAM, 8, konin_state )
r17967r17968
6566{
6667}
6768
68static SCREEN_UPDATE_IND16( konin )
69UINT32 konin_state::screen_update_konin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
6970{
7071   return 0;
7172}
r17967r17968
8384   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
8485   MCFG_SCREEN_SIZE(640, 480)
8586   MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
86   MCFG_SCREEN_UPDATE_STATIC(konin)
87   MCFG_SCREEN_UPDATE_DRIVER(konin_state, screen_update_konin)
8788   MCFG_PALETTE_LENGTH(2)
8889   MCFG_PALETTE_INIT(black_and_white)
8990MACHINE_CONFIG_END
trunk/src/mess/drivers/pk8020.c
r17967r17968
214214   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
215215   MCFG_SCREEN_SIZE(512, 256)
216216   MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
217   MCFG_SCREEN_UPDATE_STATIC(pk8020)
217   MCFG_SCREEN_UPDATE_DRIVER(pk8020_state, screen_update_pk8020)
218218
219219   MCFG_GFXDECODE(pk8020)
220220   MCFG_PALETTE_LENGTH(16)
trunk/src/mess/drivers/bmjr.c
r17967r17968
5252   virtual void machine_reset();
5353   virtual void video_start();
5454   virtual void palette_init();
55   UINT32 screen_update_bmjr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
5556};
5657
5758
r17967r17968
6162   m_p_chargen = memregion("chargen")->base();
6263}
6364
64static SCREEN_UPDATE_IND16( bmjr )
65UINT32 bmjr_state::screen_update_bmjr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
6566{
66   bmjr_state *state = screen.machine().driver_data<bmjr_state>();
6767   UINT8 y,ra,chr,gfx,fg=4;
6868   UINT16 sy=0,ma=0x100,x;
69   UINT8 inv = (state->m_xor_display) ? 0xff : 0;
69   UINT8 inv = (m_xor_display) ? 0xff : 0;
7070
7171   for(y = 0; y < 24; y++ )
7272   {
r17967r17968
7676
7777         for (x = ma; x < ma + 32; x++)
7878         {
79            chr = state->m_p_wram[x];
80            gfx = state->m_p_chargen[(chr<<3) | ra] ^ inv;
79            chr = m_p_wram[x];
80            gfx = m_p_chargen[(chr<<3) | ra] ^ inv;
8181
8282            /* Display a scanline of a character */
8383            *p++ = BIT(gfx, 7) ? fg : 0;
r17967r17968
356356   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
357357   MCFG_SCREEN_SIZE(256, 192)
358358   MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 192-1)
359   MCFG_SCREEN_UPDATE_STATIC(bmjr)
359   MCFG_SCREEN_UPDATE_DRIVER(bmjr_state, screen_update_bmjr)
360360   MCFG_PALETTE_LENGTH(8)
361361   MCFG_GFXDECODE(bmjr)
362362

Previous 199869 Revisions Next


© 1997-2024 The MAME Team