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 |
r17967 | r17968 | |
---|---|---|
976 | 976 | |
977 | 977 | |
978 | 978 | /* This is incorrect! Just testing stuff */ |
979 | ||
979 | ||
980 | 980 | { |
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; | |
983 | 982 | |
984 | 983 | for ( int i = 0; i < 120; i++ ) |
985 | 984 | { |
r17967 | r17968 | |
993 | 992 | UINT32 upper = ( *source_p >> 1 ) & 0x55555555; |
994 | 993 | UINT32 rgb = 0; |
995 | 994 | |
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 ); | |
999 | 998 | |
1000 | 999 | dest_p0[0] = rgb; |
1001 | 1000 | dest_p0[1] = rgb; |
1002 | 1001 | dest_p0[2] = rgb; |
1003 | 1002 | dest_p0[3] = rgb; |
1004 | 1003 | |
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 ); | |
1008 | 1007 | |
1009 | 1008 | dest_p1[0] = rgb; |
1010 | 1009 | dest_p1[1] = rgb; |
r17967 | r17968 | |
---|---|---|
180 | 180 | DECLARE_MACHINE_RESET(type4); |
181 | 181 | DECLARE_MACHINE_RESET(cbdash); |
182 | 182 | DECLARE_MACHINE_RESET(cflyball); |
183 | UINT32 screen_update_decocass(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
183 | 184 | }; |
184 | 185 | |
185 | 186 | |
r17967 | r17968 | |
275 | 276 | DECLARE_WRITE8_HANDLER( decocass_center_v_shift_w ); |
276 | 277 | |
277 | 278 | |
278 | SCREEN_UPDATE_IND16( decocass ); | |
279 | 279 | |
280 | ||
280 | 281 | void decocass_video_state_save_init(running_machine &machine); |
r17967 | r17968 | |
---|---|---|
548 | 548 | * |
549 | 549 | *************************************/ |
550 | 550 | |
551 | ||
551 | ||
552 | 552 | { |
553 | itech8_state *state = screen.machine().driver_data<itech8_state>(); | |
554 | 553 | int totaldy, totaldx; |
555 | 554 | int temp, i; |
556 | 555 | |
557 | 556 | /* draw the normal video first */ |
558 | SCREEN_UPDATE32_CALL(itech8_2page); | |
557 | SCREEN_UPDATE32_CALL_MEMBER(itech8_2page); | |
559 | 558 | |
560 | 559 | /* 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++; | |
564 | 563 | |
565 | 564 | /* 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; | |
569 | 568 | |
570 | 569 | /* compute the total X/Y movement */ |
571 | 570 | totaldx = totaldy = 0; |
572 | 571 | for (i = 0; i < YBUFFER_COUNT - 1; i++) |
573 | 572 | { |
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]; | |
576 | 575 | } |
577 | 576 | |
578 | 577 | /* if the shoot button is pressed, fire away */ |
579 | if (totaldy < | |
578 | if (totaldy < | |
580 | 579 | { |
581 | 580 | /* compute the updated values */ |
582 | 581 | temp = totaldx; |
583 | 582 | if (temp <= -0x80) temp = -0x7f; |
584 | 583 | if (temp >= 0x80) temp = 0x7f; |
585 | | |
584 | | |
586 | 585 | |
587 | temp = | |
586 | temp = | |
588 | 587 | if (temp <= 0x10) temp = 0x10; |
589 | 588 | if (temp >= 0x7f) temp = 0x7f; |
590 | | |
589 | | |
591 | 590 | |
592 | temp = 0x60 + ( | |
591 | temp = 0x60 + ( | |
593 | 592 | if (temp <= 0x30) temp = 0x30; |
594 | 593 | if (temp >= 0x90) temp = 0x90; |
595 | | |
594 | | |
596 | 595 | |
597 | 596 | 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; | |
600 | 599 | } |
601 | | |
600 | | |
602 | 601 | |
603 | 602 | /* clear the buffer while the crosshair is not visible */ |
604 | if (! | |
603 | if (! | |
605 | 604 | { |
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)); | |
608 | 607 | } |
609 | 608 | |
610 | 609 | return 0; |
r17967 | r17968 | |
---|---|---|
17 | 17 | DECLARE_WRITE8_MEMBER(sichuan2_paletteram_w); |
18 | 18 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
19 | 19 | virtual void video_start(); |
20 | UINT32 screen_update_sichuan2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
20 | 21 | }; |
21 | 22 | |
22 | 23 | |
r17967 | r17968 | |
24 | 25 | |
25 | 26 | |
26 | 27 | |
27 | ||
28 |
r17967 | r17968 | |
---|---|---|
31 | 31 | DECLARE_WRITE8_MEMBER(tutankhm_flip_screen_y_w); |
32 | 32 | DECLARE_MACHINE_START(tutankhm); |
33 | 33 | DECLARE_MACHINE_RESET(tutankhm); |
34 | UINT32 screen_update_tutankhm(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
34 | 35 | }; |
35 | 36 | |
36 | 37 | |
37 | 38 | /*----------- defined in video/tutankhm.c -----------*/ |
38 | 39 | |
39 | 40 | |
40 | ||
41 |
r17967 | r17968 | |
---|---|---|
127 | 127 | DECLARE_VIDEO_START(afega); |
128 | 128 | DECLARE_VIDEO_START(firehawk); |
129 | 129 | 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); | |
130 | 145 | }; |
131 | 146 | |
132 | 147 | |
r17967 | r17968 | |
141 | 156 | |
142 | 157 | |
143 | 158 | |
144 | SCREEN_UPDATE_IND16( macross ); | |
145 | SCREEN_UPDATE_IND16( manybloc ); | |
146 | SCREEN_UPDATE_IND16( tharrier ); | |
147 | SCREEN_UPDATE_IND16( tdragon2 ); | |
148 | SCREEN_UPDATE_IND16( gunnail ); | |
149 | SCREEN_UPDATE_IND16( bioship ); | |
150 | SCREEN_UPDATE_IND16( strahl ); | |
151 | SCREEN_UPDATE_IND16( bjtwin ); | |
152 | SCREEN_VBLANK( nmk ); | |
153 | SCREEN_VBLANK( strahl ); | |
154 | 159 | |
155 | 160 | |
156 | 161 | |
157 | 162 | |
158 | SCREEN_UPDATE_IND16( afega ); | |
159 | SCREEN_UPDATE_IND16( redhawkb ); | |
160 | SCREEN_UPDATE_IND16(redhawki ); | |
161 | SCREEN_UPDATE_IND16( bubl2000 ); | |
162 | SCREEN_UPDATE_IND16( firehawk ); | |
163 | ||
164 | ||
165 | ||
166 | ||
167 | ||
168 | ||
169 | ||
170 | ||
171 | ||
172 | ||
173 | ||
174 | ||
175 | ||
176 | ||
177 |
r17967 | r17968 | |
---|---|---|
86 | 86 | DECLARE_VIDEO_START(m10); |
87 | 87 | DECLARE_PALETTE_INIT(m10); |
88 | 88 | 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); | |
89 | 91 | }; |
90 | 92 | |
91 | 93 | |
r17967 | r17968 | |
93 | 95 | |
94 | 96 | |
95 | 97 | |
96 | SCREEN_UPDATE_IND16( m10 ); | |
97 | SCREEN_UPDATE_IND16( m15 ); | |
98 | 98 | |
99 | 99 | |
100 | 100 | |
101 | ||
102 |
r17967 | r17968 | |
---|---|---|
56 | 56 | virtual void machine_start(); |
57 | 57 | virtual void machine_reset(); |
58 | 58 | virtual void video_start(); |
59 | UINT32 screen_update_nitedrvr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
59 | 60 | }; |
60 | 61 | |
61 | 62 | |
r17967 | r17968 | |
77 | 78 | |
78 | 79 | |
79 | 80 | |
80 | ||
81 |
r17967 | r17968 | |
---|---|---|
16 | 16 | TILE_GET_INFO_MEMBER(get_sbugger_tile_info); |
17 | 17 | virtual void video_start(); |
18 | 18 | virtual void palette_init(); |
19 | UINT32 screen_update_sbugger(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
19 | 20 | }; |
20 | 21 | |
21 | 22 | |
22 | 23 | /*----------- defined in video/sbugger.c -----------*/ |
23 | 24 | |
24 | 25 | |
25 | SCREEN_UPDATE_IND16(sbugger); | |
26 | 26 | |
27 |
r17967 | r17968 | |
---|---|---|
20 | 20 | TILE_GET_INFO_MEMBER(get_tile_info_targeth_screen0); |
21 | 21 | TILE_GET_INFO_MEMBER(get_tile_info_targeth_screen1); |
22 | 22 | virtual void video_start(); |
23 | UINT32 screen_update_targeth(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
23 | 24 | }; |
24 | 25 | |
25 | 26 | |
26 | 27 | /*----------- defined in video/targeth.c -----------*/ |
27 | 28 | |
28 | 29 | |
29 | ||
30 |
r17967 | r17968 | |
---|---|---|
103 | 103 | virtual void machine_reset(); |
104 | 104 | virtual void video_start(); |
105 | 105 | DECLARE_MACHINE_RESET(ta7630); |
106 | UINT32 screen_update_nycaptor(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
106 | 107 | }; |
107 | 108 | |
108 | 109 | |
r17967 | r17968 | |
116 | 117 | |
117 | 118 | |
118 | 119 | |
119 | ||
120 |
r17967 | r17968 | |
---|---|---|
100 | 100 | DECLARE_MACHINE_START(mitchell); |
101 | 101 | DECLARE_MACHINE_RESET(mitchell); |
102 | 102 | DECLARE_VIDEO_START(pang); |
103 | UINT32 screen_update_pang(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
103 | 104 | }; |
104 | 105 | |
105 | 106 | |
r17967 | r17968 | |
109 | 110 | |
110 | 111 | |
111 | 112 | |
112 | ||
113 |
r17967 | r17968 | |
---|---|---|
47 | 47 | DECLARE_DRIVER_INIT(rbisland); |
48 | 48 | virtual void machine_start(); |
49 | 49 | 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); | |
50 | 52 | }; |
51 | 53 | |
52 | 54 | |
r17967 | r17968 | |
57 | 59 | |
58 | 60 | /*----------- defined in video/rainbow.c -----------*/ |
59 | 61 | |
60 | SCREEN_UPDATE_IND16( rainbow ); | |
61 | 62 | |
62 | SCREEN_UPDATE_IND16( jumping ); | |
63 | 63 | |
64 | ||
65 |
r17967 | r17968 | |
---|---|---|
29 | 29 | DECLARE_WRITE16_MEMBER(soundcommand_w); |
30 | 30 | virtual void machine_start(); |
31 | 31 | virtual void palette_init(); |
32 | UINT32 screen_update_galspnbl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
32 | 33 | }; |
33 | 34 | |
34 | 35 | |
r17967 | r17968 | |
36 | 37 | |
37 | 38 | |
38 | 39 | |
39 | ||
40 |
r17967 | r17968 | |
---|---|---|
40 | 40 | TILE_GET_INFO_MEMBER(get_fg_tile_info); |
41 | 41 | TILE_GET_INFO_MEMBER(get_tx_tile_info); |
42 | 42 | virtual void video_start(); |
43 | UINT32 screen_update_dynduke(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
43 | 44 | }; |
44 | 45 | |
45 | 46 | |
46 | 47 | /*----------- defined in video/dynduke.c -----------*/ |
47 | 48 | |
48 | 49 | |
49 | ||
50 |
r17967 | r17968 | |
---|---|---|
62 | 62 | virtual void machine_start(); |
63 | 63 | virtual void machine_reset(); |
64 | 64 | virtual void video_start(); |
65 | UINT32 screen_update_blktiger(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
65 | 66 | }; |
66 | 67 | |
67 | 68 | |
r17967 | r17968 | |
70 | 71 | |
71 | 72 | |
72 | 73 | |
73 | ||
74 |
r17967 | r17968 | |
---|---|---|
36 | 36 | DECLARE_DRIVER_INIT(avengrgs); |
37 | 37 | DECLARE_MACHINE_RESET(mlc); |
38 | 38 | 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); | |
39 | 41 | }; |
40 | 42 | |
41 | 43 | |
42 | 44 | /*----------- defined in video/deco_mlc.c -----------*/ |
43 | 45 | |
44 | 46 | |
45 | SCREEN_UPDATE_RGB32( mlc ); | |
46 | SCREEN_VBLANK( mlc ); | |
47 | ||
48 |
r17967 | r17968 | |
---|---|---|
24 | 24 | TILE_GET_INFO_MEMBER(get_fg_tile_info); |
25 | 25 | virtual void video_start(); |
26 | 26 | virtual void palette_init(); |
27 | UINT32 screen_update_tunhunt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
27 | 28 | }; |
28 | 29 | |
29 | 30 | |
r17967 | r17968 | |
32 | 33 | |
33 | 34 | |
34 | 35 | |
35 | ||
36 |
r17967 | r17968 | |
---|---|---|
34 | 34 | TILEMAP_MAPPER_MEMBER(get_bg_memory_offset); |
35 | 35 | virtual void video_start(); |
36 | 36 | virtual void palette_init(); |
37 | UINT32 screen_update_tryout(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
37 | 38 | }; |
38 | 39 | |
39 | 40 | |
r17967 | r17968 | |
42 | 43 | |
43 | 44 | |
44 | 45 | |
45 | ||
46 |
r17967 | r17968 | |
---|---|---|
52 | 52 | virtual void machine_start(); |
53 | 53 | virtual void machine_reset(); |
54 | 54 | virtual void video_start(); |
55 | UINT32 screen_update_rng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
55 | 56 | }; |
56 | 57 | |
57 | 58 | |
r17967 | r17968 | |
63 | 64 | |
64 | 65 | |
65 | 66 | |
66 | ||
67 |
r17967 | r17968 | |
---|---|---|
26 | 26 | virtual void machine_start(); |
27 | 27 | virtual void machine_reset(); |
28 | 28 | virtual void video_start(); |
29 | UINT32 screen_update_madmotor(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
29 | 30 | }; |
30 | 31 | |
31 | 32 | |
32 | 33 | /*----------- defined in video/madmotor.c -----------*/ |
33 | 34 | |
34 | 35 | |
35 | ||
36 |
r17967 | r17968 | |
---|---|---|
31 | 31 | DECLARE_MACHINE_RESET(eprom); |
32 | 32 | DECLARE_VIDEO_START(eprom); |
33 | 33 | 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); | |
34 | 36 | }; |
35 | 37 | |
36 | 38 | |
37 | 39 | /*----------- defined in video/eprom.c -----------*/ |
38 | 40 | |
39 | 41 | |
40 | SCREEN_UPDATE_IND16( eprom ); | |
41 | 42 | |
42 | 43 | |
43 | SCREEN_UPDATE_IND16( guts ); | |
44 | 44 | |
45 | ||
46 | ||
45 | 47 | void eprom_scanline_update(screen_device &screen, int scanline); |
r17967 | r17968 | |
---|---|---|
108 | 108 | DECLARE_MACHINE_RESET(bub68705); |
109 | 109 | DECLARE_MACHINE_START(common); |
110 | 110 | DECLARE_MACHINE_RESET(common); |
111 | UINT32 screen_update_bublbobl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
111 | 112 | }; |
112 | 113 | |
113 | 114 | |
r17967 | r17968 | |
122 | 123 | |
123 | 124 | /*----------- defined in video/bublbobl.c -----------*/ |
124 | 125 | |
125 | ||
126 |
r17967 | r17968 | |
---|---|---|
31 | 31 | virtual void machine_start(); |
32 | 32 | virtual void machine_reset(); |
33 | 33 | virtual void palette_init(); |
34 | UINT32 screen_update_skyfox(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
34 | 35 | }; |
35 | 36 | |
36 | 37 | /*----------- defined in video/skyfox.c -----------*/ |
r17967 | r17968 | |
38 | 39 | |
39 | 40 | |
40 | 41 | |
41 | SCREEN_UPDATE_IND16( skyfox ); | |
42 | 42 | |
43 |
r17967 | r17968 | |
---|---|---|
83 | 83 | DECLARE_VIDEO_START(spinlbrk); |
84 | 84 | DECLARE_VIDEO_START(turbofrc); |
85 | 85 | 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); | |
86 | 96 | }; |
87 | 97 | |
88 | 98 | |
r17967 | r17968 | |
95 | 105 | |
96 | 106 | |
97 | 107 | |
98 | SCREEN_UPDATE_IND16( pspikes ); | |
99 | SCREEN_UPDATE_IND16( pspikesb ); | |
100 | SCREEN_UPDATE_IND16( spikes91 ); | |
101 | SCREEN_UPDATE_IND16( karatblz ); | |
102 | SCREEN_UPDATE_IND16( spinlbrk ); | |
103 | SCREEN_UPDATE_IND16( turbofrc ); | |
104 | SCREEN_UPDATE_IND16( aerofgt ); | |
105 | SCREEN_UPDATE_IND16( aerfboot ); | |
106 | SCREEN_UPDATE_IND16( aerfboo2 ); | |
107 | SCREEN_UPDATE_RGB32( wbbc97 ); | |
108 | ||
109 | ||
110 | ||
111 | ||
112 | ||
113 | ||
114 | ||
115 | ||
116 | ||
117 |
r17967 | r17968 | |
---|---|---|
28 | 28 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
29 | 29 | virtual void video_start(); |
30 | 30 | virtual void palette_init(); |
31 | UINT32 screen_update_rocnrope(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
31 | 32 | }; |
32 | 33 | |
33 | 34 | /*----------- defined in video/rocnrope.c -----------*/ |
r17967 | r17968 | |
35 | 36 | |
36 | 37 | |
37 | 38 | |
38 | ||
39 |
r17967 | r17968 | |
---|---|---|
46 | 46 | virtual void machine_reset(); |
47 | 47 | virtual void video_start(); |
48 | 48 | virtual void palette_init(); |
49 | UINT32 screen_update_fgoal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
49 | 50 | }; |
50 | 51 | |
51 | 52 | |
52 | 53 | /*----------- defined in video/fgoal.c -----------*/ |
53 | 54 | |
54 | 55 | |
55 | SCREEN_UPDATE_IND16( fgoal ); | |
56 | 56 | |
57 | 57 | |
58 |
r17967 | r17968 | |
---|---|---|
47 | 47 | virtual void video_start(); |
48 | 48 | virtual void palette_init(); |
49 | 49 | DECLARE_VIDEO_START(dorunrun); |
50 | UINT32 screen_update_docastle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
50 | 51 | }; |
51 | 52 | |
52 | 53 | |
r17967 | r17968 | |
59 | 60 | |
60 | 61 | |
61 | 62 | |
62 | SCREEN_UPDATE_IND16( docastle ); | |
63 | 63 | |
64 |
r17967 | r17968 | |
---|---|---|
46 | 46 | TILE_GET_INFO_MEMBER(get_fg_tile_info); |
47 | 47 | DECLARE_VIDEO_START(mystston); |
48 | 48 | DECLARE_VIDEO_RESET(mystston); |
49 | UINT32 screen_update_mystston(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
49 | 50 | }; |
50 | 51 | |
51 | 52 |
r17967 | r17968 | |
---|---|---|
27 | 27 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
28 | 28 | virtual void video_start(); |
29 | 29 | virtual void palette_init(); |
30 | UINT32 screen_update_mainsnk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
30 | 31 | }; |
31 | 32 | |
32 | 33 | |
r17967 | r17968 | |
34 | 35 | |
35 | 36 | |
36 | 37 | |
37 | ||
38 |
r17967 | r17968 | |
---|---|---|
39 | 39 | virtual void machine_reset(); |
40 | 40 | virtual void video_start(); |
41 | 41 | 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); | |
42 | 44 | }; |
43 | 45 | |
44 | 46 |
r17967 | r17968 | |
---|---|---|
20 | 20 | DECLARE_MACHINE_START(rampart); |
21 | 21 | DECLARE_MACHINE_RESET(rampart); |
22 | 22 | DECLARE_VIDEO_START(rampart); |
23 | UINT32 screen_update_rampart(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
23 | 24 | }; |
24 | 25 | |
25 | 26 | |
26 | 27 | /*----------- defined in video/rampart.c -----------*/ |
27 | 28 | |
28 | 29 | |
29 | ||
30 |
r17967 | r17968 | |
---|---|---|
81 | 81 | TILE_GET_INFO_MEMBER(get_bg3_tile_info); |
82 | 82 | virtual void machine_reset(); |
83 | 83 | virtual void video_start(); |
84 | UINT32 screen_update_senjyo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
84 | 85 | }; |
85 | 86 | |
86 | 87 | |
r17967 | r17968 | |
95 | 96 | |
96 | 97 | |
97 | 98 | |
98 | ||
99 |
r17967 | r17968 | |
---|---|---|
35 | 35 | virtual void machine_reset(); |
36 | 36 | virtual void video_start(); |
37 | 37 | virtual void palette_init(); |
38 | UINT32 screen_update_yiear(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
38 | 39 | }; |
39 | 40 | |
40 | 41 | |
r17967 | r17968 | |
43 | 44 | |
44 | 45 | |
45 | 46 | |
46 | ||
47 |
r17967 | r17968 | |
---|---|---|
43 | 43 | DECLARE_DRIVER_INIT(cookbib2); |
44 | 44 | DECLARE_MACHINE_RESET(semiprot); |
45 | 45 | 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); | |
46 | 52 | }; |
47 | 53 |
r17967 | r17968 | |
---|---|---|
110 | 110 | virtual void video_start(); |
111 | 111 | DECLARE_VIDEO_START(nbmj9195_1layer); |
112 | 112 | DECLARE_VIDEO_START(nbmj9195_nb22090); |
113 | UINT32 screen_update_nbmj9195(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
113 | 114 | }; |
114 | 115 | |
115 | 116 | |
116 | 117 | /*----------- defined in video/nbmj9195.c -----------*/ |
117 | 118 | |
118 | SCREEN_UPDATE_IND16( nbmj9195 ); | |
119 | 119 | |
120 | 120 | |
121 | 121 | |
122 | 122 | |
123 | 123 | |
124 | 124 | |
125 | ||
125 | 126 | void nbmj9195_clutsel_w(address_space &space, int data); |
126 | 127 | void nbmj9195_gfxflag2_w(address_space &space, int data); |
r17967 | r17968 | |
---|---|---|
50 | 50 | TILE_GET_INFO_MEMBER(get_powerbls_bg_tile_info); |
51 | 51 | DECLARE_VIDEO_START(sslam); |
52 | 52 | 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); | |
53 | 55 | }; |
54 | 56 | |
55 | 57 | |
r17967 | r17968 | |
57 | 59 | |
58 | 60 | |
59 | 61 | |
60 | SCREEN_UPDATE_IND16(sslam); | |
61 | SCREEN_UPDATE_IND16(powerbls); | |
62 | ||
63 |
r17967 | r17968 | |
---|---|---|
38 | 38 | virtual void machine_reset(); |
39 | 39 | virtual void video_start(); |
40 | 40 | virtual void palette_init(); |
41 | UINT32 screen_update_sonson(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
41 | 42 | }; |
42 | 43 | |
43 | 44 | |
r17967 | r17968 | |
46 | 47 | |
47 | 48 | |
48 | 49 | |
49 | ||
50 |
r17967 | r17968 | |
---|---|---|
58 | 58 | DECLARE_DRIVER_INIT(osman); |
59 | 59 | DECLARE_DRIVER_INIT(chainrec); |
60 | 60 | virtual void video_start(); |
61 | UINT32 screen_update_simpl156(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
61 | 62 | }; |
62 | 63 | |
63 | 64 | |
r17967 | r17968 | |
65 | 66 | /*----------- defined in video/simpl156.c -----------*/ |
66 | 67 | |
67 | 68 | |
68 | ||
69 |
r17967 | r17968 | |
---|---|---|
55 | 55 | virtual void machine_reset(); |
56 | 56 | virtual void video_start(); |
57 | 57 | virtual void palette_init(); |
58 | UINT32 screen_update_hcastle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
58 | 59 | }; |
59 | 60 | |
60 | 61 | |
r17967 | r17968 | |
62 | 63 | |
63 | 64 | |
64 | 65 | |
65 | SCREEN_UPDATE_IND16( hcastle ); | |
66 | 66 | |
67 |
r17967 | r17968 | |
---|---|---|
32 | 32 | TILE_GET_INFO_MEMBER(get_pf1_tile_info); |
33 | 33 | TILE_GET_INFO_MEMBER(get_text_tile_info); |
34 | 34 | virtual void video_start(); |
35 | UINT32 screen_update_deadang(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
35 | 36 | }; |
36 | 37 | |
37 | 38 | |
r17967 | r17968 | |
39 | 40 | |
40 | 41 | |
41 | 42 | |
42 | ||
43 |
r17967 | r17968 | |
---|---|---|
36 | 36 | virtual void machine_start(); |
37 | 37 | virtual void machine_reset(); |
38 | 38 | virtual void palette_init(); |
39 | UINT32 screen_update_copsnrob(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
39 | 40 | }; |
40 | 41 | |
41 | 42 | |
r17967 | r17968 | |
46 | 47 | |
47 | 48 | /*----------- defined in video/copsnrob.c -----------*/ |
48 | 49 | |
49 | SCREEN_UPDATE_IND16( copsnrob ); | |
50 | 50 | |
51 | 51 | |
52 | ||
52 | 53 | /*----------- defined in audio/copsnrob.c -----------*/ |
53 | 54 | |
54 | 55 | DISCRETE_SOUND_EXTERN( copsnrob ); |
r17967 | r17968 | |
---|---|---|
104 | 104 | DECLARE_MACHINE_RESET(twincobr); |
105 | 105 | DECLARE_VIDEO_START(toaplan0); |
106 | 106 | DECLARE_MACHINE_RESET(wardner); |
107 | UINT32 screen_update_toaplan0(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
107 | 108 | }; |
108 | 109 | |
109 | 110 | |
r17967 | r17968 | |
126 | 127 | extern void twincobr_display(running_machine &machine, int enable); |
127 | 128 | |
128 | 129 | |
129 | ||
130 |
r17967 | r17968 | |
---|---|---|
22 | 22 | TILE_GET_INFO_MEMBER(get_tile_info0); |
23 | 23 | TILE_GET_INFO_MEMBER(get_tile_info1); |
24 | 24 | virtual void video_start(); |
25 | UINT32 screen_update_hexion(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
25 | 26 | }; |
26 | 27 | |
27 | 28 | |
28 | 29 | /*----------- defined in video/hexion.c -----------*/ |
29 | 30 | |
30 | 31 | |
31 | SCREEN_UPDATE_IND16( hexion ); | |
32 | 32 | |
33 |
r17967 | r17968 | |
---|---|---|
87 | 87 | DECLARE_MACHINE_START(bking3); |
88 | 88 | DECLARE_MACHINE_RESET(bking3); |
89 | 89 | 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); | |
90 | 92 | }; |
91 | 93 | |
92 | 94 | |
r17967 | r17968 | |
96 | 98 | |
97 | 99 | |
98 | 100 | |
99 | SCREEN_UPDATE_IND16( bking ); | |
100 | SCREEN_VBLANK( bking ); | |
101 | ||
102 |
r17967 | r17968 | |
---|---|---|
28 | 28 | DECLARE_DRIVER_INIT(rackemup); |
29 | 29 | virtual void machine_start(); |
30 | 30 | virtual void machine_reset(); |
31 | UINT32 screen_update_battlnts(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
31 | 32 | }; |
32 | 33 | |
33 | 34 | /*----------- defined in video/battlnts.c -----------*/ |
34 | 35 | |
35 | 36 | |
36 | SCREEN_UPDATE_IND16( battlnts ); | |
37 | 37 | |
38 | ||
38 | 39 | void battlnts_tile_callback(running_machine &machine, int layer, int bank, int *code, int *color, int *flags); |
39 | 40 | void battlnts_sprite_callback(running_machine &machine, int *code, int *color); |
r17967 | r17968 | |
---|---|---|
50 | 50 | virtual void machine_reset(); |
51 | 51 | virtual void video_start(); |
52 | 52 | virtual void palette_init(); |
53 | UINT32 screen_update_galpani2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
53 | 54 | }; |
54 | 55 | |
55 | 56 | |
r17967 | r17968 | |
57 | 58 | |
58 | 59 | |
59 | 60 | |
60 | SCREEN_UPDATE_IND16( galpani2 ); | |
61 | 61 | |
62 | ||
62 | 63 | DECLARE_WRITE16_HANDLER( galpani2_palette_0_w ); |
63 | 64 | DECLARE_WRITE16_HANDLER( galpani2_palette_1_w ); |
64 | 65 |
r17967 | r17968 | |
---|---|---|
42 | 42 | virtual void machine_reset(); |
43 | 43 | virtual void video_start(); |
44 | 44 | virtual void palette_init(); |
45 | UINT32 screen_update_arabian(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
45 | 46 | }; |
46 | 47 | |
47 | 48 | |
r17967 | r17968 | |
50 | 51 | |
51 | 52 | |
52 | 53 | |
53 | ||
54 |
r17967 | r17968 | |
---|---|---|
19 | 19 | DECLARE_WRITE16_MEMBER(io_w); |
20 | 20 | DECLARE_READ16_MEMBER(io_r); |
21 | 21 | virtual void machine_start(); |
22 | UINT32 screen_update_parentj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
22 | 23 | }; |
23 | 24 | |
24 | 25 | /*----------- defined in video/taito_o.c -----------*/ |
25 | 26 | |
26 | ||
27 |
r17967 | r17968 | |
---|---|---|
41 | 41 | virtual void machine_start(); |
42 | 42 | virtual void video_start(); |
43 | 43 | virtual void palette_init(); |
44 | UINT32 screen_update_labyrunr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
44 | 45 | }; |
45 | 46 | |
46 | 47 | |
r17967 | r17968 | |
50 | 51 | |
51 | 52 | |
52 | 53 | |
53 | ||
54 |
r17967 | r17968 | |
---|---|---|
33 | 33 | DECLARE_WRITE8_MEMBER(tape_control_w); |
34 | 34 | DECLARE_DRIVER_INIT(thief); |
35 | 35 | virtual void video_start(); |
36 | UINT32 screen_update_thief(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
36 | 37 | }; |
37 | 38 | |
38 | 39 | |
r17967 | r17968 | |
40 | 41 | |
41 | 42 | |
42 | 43 | |
43 | ||
44 |
r17967 | r17968 | |
---|---|---|
47 | 47 | virtual void machine_start(); |
48 | 48 | virtual void machine_reset(); |
49 | 49 | 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); | |
50 | 52 | }; |
51 | 53 | |
52 | 54 |
r17967 | r17968 | |
---|---|---|
64 | 64 | TILE_GET_INFO_MEMBER(get_tile_info); |
65 | 65 | virtual void video_start(); |
66 | 66 | 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); | |
67 | 69 | }; |
68 | 70 | |
69 | 71 | |
r17967 | r17968 | |
79 | 81 | |
80 | 82 | |
81 | 83 | |
82 | SCREEN_UPDATE_IND16( sprint2 ); | |
83 | 84 | |
84 | SCREEN_VBLANK( sprint2 ); | |
85 | 85 | |
86 | ||
87 |
r17967 | r17968 | |
---|---|---|
67 | 67 | virtual void machine_start(); |
68 | 68 | virtual void machine_reset(); |
69 | 69 | virtual void video_start(); |
70 | UINT32 screen_update_ccastles(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
70 | 71 | }; |
71 | 72 | |
72 | 73 | |
r17967 | r17968 | |
74 | 75 | |
75 | 76 | |
76 | 77 | |
77 | SCREEN_UPDATE_IND16( ccastles ); | |
78 | 78 | |
79 | 79 | |
80 | 80 | |
81 |
r17967 | r17968 | |
---|---|---|
53 | 53 | virtual void machine_reset(); |
54 | 54 | virtual void video_start(); |
55 | 55 | virtual void palette_init(); |
56 | UINT32 screen_update_dragrace(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
56 | 57 | }; |
57 | 58 | |
58 | 59 | |
r17967 | r17968 | |
63 | 64 | /*----------- defined in video/dragrace.c -----------*/ |
64 | 65 | |
65 | 66 | |
66 | ||
67 |
r17967 | r17968 | |
---|---|---|
43 | 43 | virtual void machine_start(); |
44 | 44 | virtual void machine_reset(); |
45 | 45 | virtual void video_start(); |
46 | UINT32 screen_update_orbit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
46 | 47 | }; |
47 | 48 | |
48 | 49 | |
r17967 | r17968 | |
58 | 59 | /*----------- defined in video/orbit.c -----------*/ |
59 | 60 | |
60 | 61 | |
61 | SCREEN_UPDATE_IND16( orbit ); | |
62 | 62 | |
63 |
r17967 | r17968 | |
---|---|---|
25 | 25 | DECLARE_WRITE8_MEMBER(ambush_coin_counter_w); |
26 | 26 | DECLARE_WRITE8_MEMBER(flip_screen_w); |
27 | 27 | virtual void palette_init(); |
28 | UINT32 screen_update_ambush(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
28 | 29 | }; |
29 | 30 | |
30 | 31 | |
31 | 32 | /*----------- defined in video/ambush.c -----------*/ |
32 | 33 | |
33 | 34 | |
34 | ||
35 |
r17967 | r17968 | |
---|---|---|
46 | 46 | DECLARE_DRIVER_INIT(sshooter); |
47 | 47 | DECLARE_DRIVER_INIT(plctr13b); |
48 | 48 | virtual void video_start(); |
49 | UINT32 screen_update_policetr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
49 | 50 | }; |
50 | 51 | |
51 | 52 | |
r17967 | r17968 | |
54 | 55 | |
55 | 56 | |
56 | 57 | |
57 | ||
58 |
r17967 | r17968 | |
---|---|---|
113 | 113 | DECLARE_VIDEO_START(sys386f2); |
114 | 114 | DECLARE_MACHINE_START(sxx2f); |
115 | 115 | 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); | |
116 | 118 | }; |
117 | 119 | |
118 | 120 | |
r17967 | r17968 | |
124 | 126 | /*----------- defined in video/seibuspi.c -----------*/ |
125 | 127 | |
126 | 128 | |
127 | SCREEN_UPDATE_RGB32( spi ); | |
128 | 129 | |
129 | 130 | |
130 | SCREEN_UPDATE_RGB32( sys386f2 ); | |
131 | 131 | |
132 | 132 | |
133 | ||
134 | ||
133 | 135 | void rf2_set_layer_banks(running_machine &machine, int banks); |
134 | 136 |
r17967 | r17968 | |
---|---|---|
36 | 36 | TILE_GET_INFO_MEMBER(get_tile_info_fg); |
37 | 37 | DECLARE_VIDEO_START(trckydoc); |
38 | 38 | 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); | |
39 | 41 | }; |
40 | 42 | |
41 | 43 | |
r17967 | r17968 | |
45 | 47 | |
46 | 48 | |
47 | 49 | |
48 | SCREEN_UPDATE_IND16( sauro ); | |
49 | SCREEN_UPDATE_IND16( trckydoc ); | |
50 | ||
51 |
r17967 | r17968 | |
---|---|---|
45 | 45 | virtual void machine_reset(); |
46 | 46 | virtual void video_start(); |
47 | 47 | 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); | |
48 | 50 | }; |
49 | ||
50 | ||
51 | /*----------- defined in machine/gaplus.c -----------*/ | |
52 | ||
53 | ||
54 | ||
55 | /*----------- defined in video/gaplus.c -----------*/ | |
56 | ||
57 | ||
58 | ||
59 | SCREEN_UPDATE_IND16( gaplus ); | |
60 | SCREEN_VBLANK( gaplus ); /* update starfields */ |
r17967 | r17968 | |
---|---|---|
66 | 66 | virtual void machine_reset(); |
67 | 67 | virtual void video_start(); |
68 | 68 | 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); | |
69 | 71 | }; |
70 | 72 | |
71 | 73 | |
r17967 | r17968 | |
100 | 102 | |
101 | 103 | |
102 | 104 | |
103 | SCREEN_UPDATE_IND16( carpolo ); | |
104 | SCREEN_VBLANK( carpolo ); | |
105 | ||
106 |
r17967 | r17968 | |
---|---|---|
34 | 34 | virtual void machine_reset(); |
35 | 35 | virtual void video_start(); |
36 | 36 | virtual void palette_init(); |
37 | UINT32 screen_update_drmicro(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
37 | 38 | }; |
38 | 39 | |
39 | 40 | |
r17967 | r17968 | |
41 | 42 | |
42 | 43 | |
43 | 44 | |
44 | SCREEN_UPDATE_IND16( drmicro ); | |
45 | 45 | |
46 |
r17967 | r17968 | |
---|---|---|
26 | 26 | DECLARE_WRITE8_MEMBER(speedatk_output_w); |
27 | 27 | virtual void video_start(); |
28 | 28 | virtual void palette_init(); |
29 | UINT32 screen_update_speedatk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
29 | 30 | }; |
30 | 31 | |
31 | 32 | |
r17967 | r17968 | |
33 | 34 | |
34 | 35 | |
35 | 36 | |
36 | ||
37 |
r17967 | r17968 | |
---|---|---|
104 | 104 | virtual void video_start(); |
105 | 105 | DECLARE_MACHINE_START(system2); |
106 | 106 | 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); | |
107 | 110 | }; |
108 | 111 | |
109 | 112 | |
r17967 | r17968 | |
117 | 120 | |
118 | 121 | |
119 | 122 | |
120 | SCREEN_UPDATE_IND16( system1 ); | |
121 | SCREEN_UPDATE_IND16( system2 ); | |
122 | SCREEN_UPDATE_IND16( system2_rowscroll ); | |
123 | ||
124 | ||
125 |
r17967 | r17968 | |
---|---|---|
30 | 30 | TILE_GET_INFO_MEMBER(get_tile_info_1); |
31 | 31 | virtual void machine_reset(); |
32 | 32 | virtual void video_start(); |
33 | UINT32 screen_update_powerins(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
33 | 34 | }; |
34 | 35 | |
35 | 36 | |
r17967 | r17968 | |
39 | 40 | |
40 | 41 | |
41 | 42 | |
42 | ||
43 |
r17967 | r17968 | |
---|---|---|
79 | 79 | DECLARE_DRIVER_INIT(niyanpai); |
80 | 80 | virtual void machine_reset(); |
81 | 81 | virtual void video_start(); |
82 | UINT32 screen_update_niyanpai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
82 | 83 | }; |
83 | 84 | |
84 | 85 | |
85 | 86 | /*----------- defined in video/niyanpai.c -----------*/ |
86 | 87 | |
87 | SCREEN_UPDATE_IND16( niyanpai ); | |
88 | 88 | |
89 | 89 | |
90 | 90 | |
91 |
r17967 | r17968 | |
---|---|---|
48 | 48 | virtual void machine_reset(); |
49 | 49 | virtual void video_start(); |
50 | 50 | virtual void palette_init(); |
51 | UINT32 screen_update_exedexes(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
51 | 52 | }; |
52 | 53 | |
53 | 54 |
r17967 | r17968 | |
---|---|---|
76 | 76 | virtual void machine_start(); |
77 | 77 | virtual void machine_reset(); |
78 | 78 | DECLARE_VIDEO_START(jedi); |
79 | UINT32 screen_update_jedi(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
79 | 80 | }; |
80 | 81 | |
81 | 82 |
r17967 | r17968 | |
---|---|---|
134 | 134 | DECLARE_MACHINE_RESET(sknsu); |
135 | 135 | DECLARE_MACHINE_RESET(sknse); |
136 | 136 | 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); | |
137 | 139 | }; |
138 | 140 | |
139 | 141 | |
r17967 | r17968 | |
148 | 150 | |
149 | 151 | |
150 | 152 | |
151 | SCREEN_VBLANK(skns); | |
152 | SCREEN_UPDATE_RGB32(skns); | |
153 | ||
154 |
r17967 | r17968 | |
---|---|---|
69 | 69 | DECLARE_MACHINE_RESET(funcube); |
70 | 70 | DECLARE_VIDEO_START(seta2_yoffset); |
71 | 71 | 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); | |
72 | 74 | }; |
73 | 75 | |
74 | 76 | /*----------- defined in video/seta2.c -----------*/ |
r17967 | r17968 | |
77 | 79 | |
78 | 80 | |
79 | 81 | |
80 | SCREEN_UPDATE_IND16( seta2 ); | |
81 | SCREEN_VBLANK( seta2 ); | |
82 | ||
83 |
r17967 | r17968 | |
---|---|---|
57 | 57 | DECLARE_MACHINE_START(namcofl); |
58 | 58 | DECLARE_MACHINE_RESET(namcofl); |
59 | 59 | DECLARE_VIDEO_START(namcofl); |
60 | UINT32 screen_update_namcofl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
60 | 61 | }; |
61 | 62 | |
62 | 63 | |
63 | 64 | /*----------- defined in video/namcofl.c -----------*/ |
64 | 65 | |
65 | 66 | |
66 | SCREEN_UPDATE_IND16( namcofl ); | |
67 | 67 | |
68 |
r17967 | r17968 | |
---|---|---|
38 | 38 | virtual void machine_start(); |
39 | 39 | virtual void machine_reset(); |
40 | 40 | virtual void video_start(); |
41 | UINT32 screen_update_flkatck(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
41 | 42 | }; |
42 | 43 | |
43 | 44 | |
r17967 | r17968 | |
48 | 49 | |
49 | 50 | |
50 | 51 | |
51 | ||
52 |
r17967 | r17968 | |
---|---|---|
463 | 463 | DECLARE_VIDEO_START(neruton); |
464 | 464 | DECLARE_MACHINE_START(dynax); |
465 | 465 | 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); | |
466 | 474 | }; |
467 | 475 | |
468 | 476 | //----------- defined in drivers/dynax.c ----------- |
r17967 | r17968 | |
483 | 491 | |
484 | 492 | |
485 | 493 | |
486 | SCREEN_UPDATE_IND16( hanamai ); | |
487 | SCREEN_UPDATE_IND16( hnoridur ); | |
488 | SCREEN_UPDATE_IND16( sprtmtch ); | |
489 | SCREEN_UPDATE_IND16( mjdialq2 ); | |
490 | SCREEN_UPDATE_IND16( jantouki_top ); | |
491 | SCREEN_UPDATE_IND16( jantouki_bottom ); | |
492 | SCREEN_UPDATE_IND16( htengoku ); | |
493 | 494 | |
494 | 495 | |
495 | 496 | |
496 | 497 | |
498 | ||
499 | ||
500 | ||
501 | ||
502 | ||
503 | ||
504 | ||
497 | 505 | //----------- defined in drivers/ddenlovr.c ----------- |
498 | 506 | |
499 | 507 | |
500 | ||
508 |
r17967 | r17968 | |
---|---|---|
26 | 26 | TILE_GET_INFO_MEMBER(get_fg_tile_info); |
27 | 27 | virtual void video_start(); |
28 | 28 | 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); | |
29 | 31 | }; |
30 | 32 | |
31 | 33 | |
r17967 | r17968 | |
34 | 36 | |
35 | 37 | |
36 | 38 | |
37 | SCREEN_UPDATE_IND16( shootout ); | |
38 | SCREEN_UPDATE_IND16( shootouj ); | |
39 | ||
40 |
r17967 | r17968 | |
---|---|---|
60 | 60 | virtual void machine_start(); |
61 | 61 | virtual void video_start(); |
62 | 62 | virtual void palette_init(); |
63 | UINT32 screen_update_contra(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
63 | 64 | }; |
64 | 65 | |
65 | 66 | |
r17967 | r17968 | |
69 | 70 | |
70 | 71 | |
71 | 72 | |
72 | SCREEN_UPDATE_IND16( contra ); | |
73 | 73 | |
74 |
r17967 | r17968 | |
---|---|---|
43 | 43 | virtual void machine_start(); |
44 | 44 | virtual void machine_reset(); |
45 | 45 | virtual void video_start(); |
46 | UINT32 screen_update_volfied(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
46 | 47 | }; |
47 | 48 | |
48 | 49 | |
r17967 | r17968 | |
57 | 58 | |
58 | 59 | |
59 | 60 | |
60 | SCREEN_UPDATE_IND16( volfied ); | |
61 | 61 | |
62 |
r17967 | r17968 | |
---|---|---|
51 | 51 | virtual void machine_start(); |
52 | 52 | virtual void machine_reset(); |
53 | 53 | 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); | |
54 | 57 | }; |
55 | 58 | |
56 | 59 | /*----------- defined in video/paradise.c -----------*/ |
r17967 | r17968 | |
60 | 63 | |
61 | 64 | |
62 | 65 | |
63 | SCREEN_UPDATE_IND16( paradise ); | |
64 | SCREEN_UPDATE_IND16( torus ); | |
65 | SCREEN_UPDATE_IND16( madball ); | |
66 | ||
67 | ||
68 |
r17967 | r17968 | |
---|---|---|
46 | 46 | virtual void machine_start(); |
47 | 47 | virtual void machine_reset(); |
48 | 48 | virtual void palette_init(); |
49 | UINT32 screen_update_dribling(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
49 | 50 | }; |
50 | 51 | |
51 | 52 | |
52 | 53 | /*----------- defined in video/dribling.c -----------*/ |
53 | 54 | |
54 | 55 | |
55 | ||
56 |
r17967 | r17968 | |
---|---|---|
192 | 192 | virtual void machine_start(); |
193 | 193 | virtual void machine_reset(); |
194 | 194 | virtual void video_start(); |
195 | UINT32 screen_update_balsente(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
195 | 196 | }; |
196 | 197 | |
197 | 198 | |
r17967 | r17968 | |
224 | 225 | /*----------- defined in video/balsente.c -----------*/ |
225 | 226 | |
226 | 227 | |
227 | SCREEN_UPDATE_IND16( balsente ); | |
228 | 228 | |
229 |
r17967 | r17968 | |
---|---|---|
274 | 274 | DECLARE_VIDEO_START(segac2_new); |
275 | 275 | DECLARE_MACHINE_START(segac2); |
276 | 276 | DECLARE_MACHINE_RESET(segac2); |
277 | ||
277 | ||
278 | UINT32 screen_update_segac2_new(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
278 | 279 | }; |
279 | 280 | |
280 | 281 | class mplay_state : public md_base_state |
r17967 | r17968 | |
313 | 314 | DECLARE_DRIVER_INIT(megaplay); |
314 | 315 | DECLARE_VIDEO_START(megplay); |
315 | 316 | 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); | |
316 | 320 | }; |
317 | 321 | |
318 | 322 | class mtech_state : public md_base_state |
r17967 | r17968 | |
348 | 352 | DECLARE_DRIVER_INIT(mt_slot); |
349 | 353 | DECLARE_VIDEO_START(mtnew); |
350 | 354 | 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); | |
351 | 358 | }; |
352 | 359 | |
353 | 360 | struct megadriv_cart |
r17967 | r17968 | |
---|---|---|
157 | 157 | virtual void machine_reset(); |
158 | 158 | virtual void video_start(); |
159 | 159 | DECLARE_MACHINE_RESET(drivedge); |
160 | UINT32 screen_update_itech32(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
160 | 161 | }; |
161 | 162 | |
162 | 163 | |
r17967 | r17968 | |
176 | 177 | |
177 | 178 | |
178 | 179 | |
179 | ||
180 |
r17967 | r17968 | |
---|---|---|
53 | 53 | DECLARE_READ8_MEMBER(kiki_ym2203_r); |
54 | 54 | virtual void machine_start(); |
55 | 55 | 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); | |
56 | 58 | }; |
57 | 59 | |
58 | 60 | |
r17967 | r17968 | |
65 | 67 | /*----------- defined in video/mexico86.c -----------*/ |
66 | 68 | |
67 | 69 | |
68 | SCREEN_UPDATE_IND16( mexico86 ); | |
69 | SCREEN_UPDATE_IND16( kikikai ); | |
70 | ||
71 |
r17967 | r17968 | |
---|---|---|
52 | 52 | virtual void machine_reset(); |
53 | 53 | virtual void video_start(); |
54 | 54 | virtual void palette_init(); |
55 | UINT32 screen_update_chaknpop(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
55 | 56 | }; |
56 | 57 | |
57 | 58 | |
r17967 | r17968 | |
64 | 65 | |
65 | 66 | |
66 | 67 | |
67 | SCREEN_UPDATE_IND16( chaknpop ); | |
68 | 68 | |
69 |
r17967 | r17968 | |
---|---|---|
61 | 61 | virtual void machine_start(); |
62 | 62 | virtual void machine_reset(); |
63 | 63 | virtual void video_start(); |
64 | UINT32 screen_update_fitfight(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
64 | 65 | }; |
65 | 66 | |
66 | 67 | |
r17967 | r17968 | |
68 | 69 | |
69 | 70 | |
70 | 71 | |
71 | ||
72 |
r17967 | r17968 | |
---|---|---|
35 | 35 | DECLARE_WRITE8_MEMBER(sspeedr_track_ice_w); |
36 | 36 | virtual void video_start(); |
37 | 37 | 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); | |
38 | 40 | }; |
39 | 41 | |
40 | 42 | |
r17967 | r17968 | |
44 | 46 | |
45 | 47 | |
46 | 48 | |
47 | SCREEN_UPDATE_IND16( sspeedr ); | |
48 | SCREEN_VBLANK( sspeedr ); | |
49 | ||
50 |
r17967 | r17968 | |
---|---|---|
73 | 73 | virtual void machine_start(); |
74 | 74 | virtual void machine_reset(); |
75 | 75 | virtual void video_start(); |
76 | UINT32 screen_update_ashnojoe(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
76 | 77 | }; |
77 | 78 | |
78 | 79 | |
r17967 | r17968 | |
80 | 81 | |
81 | 82 | |
82 | 83 | |
83 | ||
84 |
r17967 | r17968 | |
---|---|---|
36 | 36 | virtual void video_start(); |
37 | 37 | virtual void palette_init(); |
38 | 38 | DECLARE_MACHINE_START(amazon); |
39 | UINT32 screen_update_amazon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
39 | 40 | }; |
40 | 41 | |
41 | 42 | |
r17967 | r17968 | |
43 | 44 | |
44 | 45 | |
45 | 46 | |
46 | ||
47 |
r17967 | r17968 | |
---|---|---|
59 | 59 | virtual void machine_reset(); |
60 | 60 | virtual void video_start(); |
61 | 61 | virtual void palette_init(); |
62 | UINT32 screen_update_ddribble(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
62 | 63 | }; |
63 | 64 | |
64 | 65 | /*----------- defined in video/ddribble.c -----------*/ |
r17967 | r17968 | |
66 | 67 | |
67 | 68 | |
68 | 69 | |
69 | ||
70 |
r17967 | r17968 | |
---|---|---|
35 | 35 | virtual void machine_start(); |
36 | 36 | virtual void machine_reset(); |
37 | 37 | virtual void palette_init(); |
38 | UINT32 screen_update_mouser(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
38 | 39 | }; |
39 | 40 | |
40 | 41 | /*----------- defined in video/mouser.c -----------*/ |
41 | 42 | |
42 | 43 | |
43 | 44 | |
44 | ||
45 |
r17967 | r17968 | |
---|---|---|
43 | 43 | DECLARE_DRIVER_INIT(undrfire); |
44 | 44 | DECLARE_DRIVER_INIT(cbombers); |
45 | 45 | 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); | |
46 | 48 | }; |
47 | 49 | |
48 | 50 | |
49 | 51 | /*----------- defined in video/undrfire.c -----------*/ |
50 | 52 | |
51 | 53 | |
52 | SCREEN_UPDATE_IND16( undrfire ); | |
53 | SCREEN_UPDATE_IND16( cbombers ); | |
54 | ||
55 |
r17967 | r17968 | |
---|---|---|
434 | 434 | DECLARE_VIDEO_START(amiga); |
435 | 435 | DECLARE_PALETTE_INIT(amiga); |
436 | 436 | 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); | |
437 | 439 | }; |
438 | 440 | |
439 | 441 | |
r17967 | r17968 | |
502 | 504 | |
503 | 505 | |
504 | 506 | |
505 | SCREEN_UPDATE_IND16( amiga ); | |
506 | 507 | |
508 | ||
507 | 509 | void amiga_copper_setpc(running_machine &machine, UINT32 pc); |
508 | 510 | int amiga_copper_execute_next(running_machine &machine, int xpos); |
509 | 511 | |
r17967 | r17968 | |
516 | 518 | /*----------- defined in video/amigaaga.c -----------*/ |
517 | 519 | |
518 | 520 | |
519 | SCREEN_UPDATE_RGB32( amiga_aga ); | |
520 | 521 | |
522 | ||
521 | 523 | void amiga_aga_render_scanline(running_machine &machine, bitmap_rgb32 &bitmap, int scanline); |
522 | 524 | void amiga_aga_palette_write(running_machine &machine, int color_reg, UINT16 data); |
523 | 525 | void amiga_aga_diwhigh_written(running_machine &machine, int written); |
r17967 | r17968 | |
---|---|---|
105 | 105 | DECLARE_VIDEO_START(captaven); |
106 | 106 | DECLARE_VIDEO_START(fghthist); |
107 | 107 | 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); | |
108 | 112 | }; |
109 | 113 | |
110 | 114 | class dragngun_state : public deco32_state |
r17967 | r17968 | |
131 | 135 | DECLARE_DRIVER_INIT(lockload); |
132 | 136 | DECLARE_VIDEO_START(dragngun); |
133 | 137 | 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); | |
134 | 140 | }; |
135 | 141 | |
136 | 142 | |
r17967 | r17968 | |
143 | 149 | |
144 | 150 | |
145 | 151 | |
146 | SCREEN_VBLANK( captaven ); | |
147 | SCREEN_VBLANK( dragngun ); | |
148 | 152 | |
149 | SCREEN_UPDATE_IND16( captaven ); | |
150 | SCREEN_UPDATE_RGB32( fghthist ); | |
151 | SCREEN_UPDATE_RGB32( dragngun ); | |
152 | SCREEN_UPDATE_RGB32( nslasher ); | |
153 | 153 | |
154 | 154 | |
155 | ||
156 | ||
157 | ||
158 | ||
159 | ||
160 | ||
155 | 161 | DECLARE_WRITE32_HANDLER( deco32_pf1_data_w ); |
156 | 162 | DECLARE_WRITE32_HANDLER( deco32_pf2_data_w ); |
157 | 163 | DECLARE_WRITE32_HANDLER( deco32_pf3_data_w ); |
r17967 | r17968 | |
---|---|---|
42 | 42 | virtual void machine_start(); |
43 | 43 | virtual void machine_reset(); |
44 | 44 | virtual void palette_init(); |
45 | UINT32 screen_update_malzak(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
45 | 46 | }; |
46 | 47 | |
47 | 48 | |
48 | 49 | /*----------- defined in video/malzak.c -----------*/ |
49 | 50 | |
50 | 51 | |
51 | ||
52 |
r17967 | r17968 | |
---|---|---|
56 | 56 | DECLARE_MACHINE_RESET(midzeus); |
57 | 57 | DECLARE_VIDEO_START(midzeus); |
58 | 58 | 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); | |
59 | 61 | }; |
60 | 62 | |
61 | 63 | |
62 | 64 | /*----------- defined in video/midzeus.c -----------*/ |
63 | 65 | |
64 | 66 | |
65 | SCREEN_UPDATE_IND16( midzeus ); | |
66 | 67 | |
67 | 68 | |
69 | ||
68 | 70 | /*----------- defined in video/midzeus2.c -----------*/ |
69 | 71 | |
70 | 72 | |
71 | SCREEN_UPDATE_RGB32( midzeus2 ); | |
72 | 73 | |
74 | ||
73 | 75 | DECLARE_READ32_HANDLER( zeus2_r ); |
74 | 76 | DECLARE_WRITE32_HANDLER( zeus2_w ); |
75 | 77 |
r17967 | r17968 | |
---|---|---|
71 | 71 | virtual void machine_reset(); |
72 | 72 | virtual void video_start(); |
73 | 73 | virtual void palette_init(); |
74 | UINT32 screen_update_grchamp(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
74 | 75 | }; |
75 | 76 | |
76 | 77 | /* Discrete Sound Input Nodes */ |
r17967 | r17968 | |
92 | 93 | |
93 | 94 | |
94 | 95 | |
95 | ||
96 |
r17967 | r17968 | |
---|---|---|
80 | 80 | DECLARE_VIDEO_RESET(valtric); |
81 | 81 | DECLARE_VIDEO_START(butasan); |
82 | 82 | 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); | |
83 | 86 | }; |
84 | 87 | |
85 | 88 | |
r17967 | r17968 | |
91 | 94 | |
92 | 95 | |
93 | 96 | |
94 | SCREEN_UPDATE_RGB32( argus ); | |
95 | SCREEN_UPDATE_RGB32( valtric ); | |
96 | SCREEN_UPDATE_RGB32( butasan ); | |
97 | 97 | |
98 | 98 | |
99 | 99 | |
100 | 100 | |
101 | ||
102 | ||
103 |
r17967 | r17968 | |
---|---|---|
82 | 82 | virtual void machine_start(); |
83 | 83 | virtual void machine_reset(); |
84 | 84 | virtual void video_start(); |
85 | UINT32 screen_update_lkage(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
85 | 86 | }; |
86 | 87 | |
87 | 88 | /*----------- defined in machine/lkage.c -----------*/ |
r17967 | r17968 | |
91 | 92 | /*----------- defined in video/lkage.c -----------*/ |
92 | 93 | |
93 | 94 | |
94 | SCREEN_UPDATE_IND16( lkage ); | |
95 | 95 | |
96 |
r17967 | r17968 | |
---|---|---|
68 | 68 | virtual void palette_init(); |
69 | 69 | DECLARE_VIDEO_START(razmataz); |
70 | 70 | 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); | |
71 | 75 | }; |
72 | 76 | |
73 | 77 | |
r17967 | r17968 | |
95 | 99 | |
96 | 100 | |
97 | 101 | |
98 | SCREEN_UPDATE_IND16( zaxxon ); | |
99 | SCREEN_UPDATE_IND16( razmataz ); | |
100 | SCREEN_UPDATE_IND16( congo ); | |
101 | SCREEN_UPDATE_IND16( futspy ); | |
102 | ||
103 | ||
104 | ||
105 |
r17967 | r17968 | |
---|---|---|
83 | 83 | DECLARE_VIDEO_START(drgnbowl); |
84 | 84 | DECLARE_VIDEO_START(mastninj); |
85 | 85 | 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); | |
86 | 89 | }; |
87 | 90 | |
88 | 91 | |
r17967 | r17968 | |
93 | 96 | |
94 | 97 | |
95 | 98 | |
96 | SCREEN_UPDATE_RGB32( gaiden ); | |
97 | SCREEN_UPDATE_RGB32( raiga ); | |
98 | SCREEN_UPDATE_IND16( drgnbowl ); | |
99 | 99 | |
100 | 100 | |
101 | ||
102 | ||
103 |
r17967 | r17968 | |
---|---|---|
27 | 27 | DECLARE_DRIVER_INIT(deb); |
28 | 28 | virtual void video_start(); |
29 | 29 | virtual void palette_init(); |
30 | UINT32 screen_update_norautp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
30 | 31 | }; |
31 | 32 | |
32 | 33 |
r17967 | r17968 | |
---|---|---|
30 | 30 | DECLARE_VIDEO_START(shangkid); |
31 | 31 | DECLARE_PALETTE_INIT(dynamski); |
32 | 32 | 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); | |
33 | 35 | }; |
34 | 36 | |
35 | 37 | |
36 | 38 | /*----------- defined in video/shangkid.c -----------*/ |
37 | 39 | |
38 | 40 | |
39 | SCREEN_UPDATE_IND16( shangkid ); | |
40 | 41 | |
41 | 42 | |
42 | SCREEN_UPDATE_IND16( dynamski ); | |
43 | 43 | |
44 | ||
45 |
r17967 | r17968 | |
---|---|---|
65 | 65 | DECLARE_VIDEO_START(trackfld); |
66 | 66 | DECLARE_PALETTE_INIT(trackfld); |
67 | 67 | DECLARE_VIDEO_START(atlantol); |
68 | UINT32 screen_update_trackfld(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
68 | 69 | }; |
69 | 70 | |
70 | 71 | |
r17967 | r17968 | |
73 | 74 | |
74 | 75 | |
75 | 76 | |
76 | SCREEN_UPDATE_IND16( trackfld ); | |
77 | 77 | |
78 | 78 | |
79 |
r17967 | r17968 | |
---|---|---|
68 | 68 | DECLARE_MACHINE_RESET(abattle); |
69 | 69 | DECLARE_MACHINE_START(spfghmk2); |
70 | 70 | 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); | |
71 | 73 | }; |
72 | 74 | |
73 | 75 | /*----------- defined in audio/astrof.c -----------*/ |
r17967 | r17968 | |
---|---|---|
61 | 61 | DECLARE_PALETTE_INIT(fastfred); |
62 | 62 | DECLARE_MACHINE_START(imago); |
63 | 63 | 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); | |
64 | 66 | }; |
65 | 67 | |
66 | 68 | |
r17967 | r17968 | |
76 | 78 | DECLARE_WRITE8_HANDLER( fastfred_colorbank2_w ); |
77 | 79 | DECLARE_WRITE8_HANDLER( fastfred_flip_screen_x_w ); |
78 | 80 | DECLARE_WRITE8_HANDLER( fastfred_flip_screen_y_w ); |
79 | SCREEN_UPDATE_IND16( fastfred ); | |
80 | 81 | |
81 | 82 | |
82 | SCREEN_UPDATE_IND16( imago ); | |
83 | ||
84 | ||
83 | 85 | DECLARE_WRITE8_HANDLER( imago_fg_videoram_w ); |
84 | 86 | DECLARE_WRITE8_HANDLER( imago_charbank_w ); |
r17967 | r17968 | |
---|---|---|
57 | 57 | virtual void palette_init(); |
58 | 58 | DECLARE_VIDEO_START(karnov); |
59 | 59 | DECLARE_VIDEO_START(wndrplnt); |
60 | UINT32 screen_update_karnov(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
60 | 61 | }; |
61 | 62 | |
62 | 63 | enum { |
r17967 | r17968 | |
77 | 78 | |
78 | 79 | |
79 | 80 | |
80 | ||
81 |
r17967 | r17968 | |
---|---|---|
58 | 58 | virtual void video_start(); |
59 | 59 | DECLARE_VIDEO_START(trojan); |
60 | 60 | 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); | |
61 | 63 | }; |
62 | 64 | |
63 | 65 | |
r17967 | r17968 | |
67 | 69 | |
68 | 70 | |
69 | 71 | |
70 | SCREEN_UPDATE_IND16( lwings ); | |
71 | SCREEN_UPDATE_IND16( trojan ); | |
72 | ||
73 |
r17967 | r17968 | |
---|---|---|
63 | 63 | virtual void machine_reset(); |
64 | 64 | virtual void video_start(); |
65 | 65 | 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); | |
66 | 70 | }; |
67 | 71 | |
68 | 72 | |
r17967 | r17968 | |
71 | 75 | |
72 | 76 | |
73 | 77 | |
74 | SCREEN_UPDATE_IND16( punchout_top ); | |
75 | SCREEN_UPDATE_IND16( punchout_bottom ); | |
76 | SCREEN_UPDATE_IND16( armwrest_top ); | |
77 | SCREEN_UPDATE_IND16( armwrest_bottom ); | |
78 | 78 | |
79 | ||
80 | ||
81 | ||
82 |
r17967 | r17968 | |
---|---|---|
42 | 42 | virtual void machine_reset(); |
43 | 43 | virtual void video_start(); |
44 | 44 | virtual void palette_init(); |
45 | UINT32 screen_update_kopunch(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
45 | 46 | }; |
46 | 47 | |
47 | 48 | /*----------- defined in video/kopunch.c -----------*/ |
r17967 | r17968 | |
49 | 50 | |
50 | 51 | |
51 | 52 | |
52 | ||
53 |
r17967 | r17968 | |
---|---|---|
48 | 48 | TILE_GET_INFO_MEMBER(get_tx_tile_info); |
49 | 49 | DECLARE_MACHINE_RESET(rygar); |
50 | 50 | DECLARE_VIDEO_START(tecmo); |
51 | UINT32 screen_update_tecmo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
51 | 52 | }; |
52 | 53 | |
53 | 54 | |
r17967 | r17968 | |
55 | 56 | |
56 | 57 | |
57 | 58 | |
58 | ||
59 |
r17967 | r17968 | |
---|---|---|
24 | 24 | virtual void machine_start(); |
25 | 25 | virtual void machine_reset(); |
26 | 26 | virtual void video_start(); |
27 | UINT32 screen_update_news(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
27 | 28 | }; |
28 | 29 | |
29 | 30 | |
r17967 | r17968 | |
31 | 32 | |
32 | 33 | |
33 | 34 | |
34 | ||
35 |
r17967 | r17968 | |
---|---|---|
53 | 53 | virtual void machine_reset(); |
54 | 54 | virtual void video_start(); |
55 | 55 | virtual void palette_init(); |
56 | UINT32 screen_update_finalizr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
56 | 57 | }; |
57 | 58 | |
58 | 59 | |
r17967 | r17968 | |
61 | 62 | |
62 | 63 | |
63 | 64 | |
64 | ||
65 |
r17967 | r17968 | |
---|---|---|
24 | 24 | DECLARE_READ8_MEMBER(comad_okim6295_r); |
25 | 25 | DECLARE_VIDEO_START(galpanic); |
26 | 26 | 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); | |
27 | 30 | }; |
28 | 31 | |
29 | 32 | |
r17967 | r17968 | |
33 | 36 | DECLARE_WRITE16_HANDLER( galpanic_bgvideoram_w ); |
34 | 37 | DECLARE_WRITE16_HANDLER( galpanic_paletteram_w ); |
35 | 38 | |
36 | SCREEN_UPDATE_IND16( galpanic ); | |
37 | SCREEN_UPDATE_IND16( comad ); | |
38 | 39 | |
39 | 40 | |
41 | ||
42 |
r17967 | r17968 | |
---|---|---|
22 | 22 | DECLARE_MACHINE_START(shuuz); |
23 | 23 | DECLARE_MACHINE_RESET(shuuz); |
24 | 24 | DECLARE_VIDEO_START(shuuz); |
25 | UINT32 screen_update_shuuz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
25 | 26 | }; |
26 | 27 | |
27 | 28 | |
28 | 29 | /*----------- defined in video/shuuz.c -----------*/ |
29 | 30 | |
30 | 31 | |
31 | ||
32 |
r17967 | r17968 | |
---|---|---|
66 | 66 | DECLARE_PALETTE_INIT(yamato); |
67 | 67 | DECLARE_VIDEO_START(toprollr); |
68 | 68 | 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); | |
69 | 73 | }; |
70 | 74 | |
71 | 75 | |
r17967 | r17968 | |
77 | 81 | |
78 | 82 | |
79 | 83 | |
80 | SCREEN_UPDATE_IND16( cclimber ); | |
81 | 84 | |
82 | 85 | |
83 | 86 | |
84 | SCREEN_UPDATE_IND16( swimmer ); | |
85 | 87 | |
86 | 88 | |
87 | SCREEN_UPDATE_IND16( yamato ); | |
88 | 89 | |
89 | 90 | |
90 | 91 | |
91 | SCREEN_UPDATE_IND16( toprollr ); | |
92 | ||
93 | ||
94 | ||
95 |
r17967 | r17968 | |
---|---|---|
19 | 19 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
20 | 20 | virtual void video_start(); |
21 | 21 | virtual void palette_init(); |
22 | UINT32 screen_update_xorworld(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
22 | 23 | }; |
23 | 24 | |
24 | 25 | |
r17967 | r17968 | |
27 | 28 | |
28 | 29 | |
29 | 30 | |
30 | ||
31 |
r17967 | r17968 | |
---|---|---|
21 | 21 | DECLARE_WRITE8_MEMBER(oki_banking_w); |
22 | 22 | TILE_GET_INFO_MEMBER(get_speedspn_tile_info); |
23 | 23 | virtual void video_start(); |
24 | UINT32 screen_update_speedspn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
24 | 25 | }; |
25 | 26 | |
26 | 27 | |
27 | 28 | /*----------- defined in video/speedspn.c -----------*/ |
28 | 29 | |
29 | 30 | |
30 | SCREEN_UPDATE_IND16( speedspn ); | |
31 | 31 | |
32 | 32 | |
33 |
r17967 | r17968 | |
---|---|---|
40 | 40 | void adjust_xy(int offset); |
41 | 41 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
42 | 42 | virtual void video_start(); |
43 | UINT32 screen_update_cloak(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
43 | 44 | }; |
44 | 45 | |
45 | 46 | |
r17967 | r17968 | |
48 | 49 | |
49 | 50 | |
50 | 51 | |
51 | ||
52 |
r17967 | r17968 | |
---|---|---|
110 | 110 | virtual void machine_start(); |
111 | 111 | virtual void machine_reset(); |
112 | 112 | virtual void video_start(); |
113 | UINT32 screen_update_namcona1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
113 | 114 | }; |
114 | 115 | |
115 | 116 |
r17967 | r17968 | |
---|---|---|
35 | 35 | DECLARE_MACHINE_START(foodf); |
36 | 36 | DECLARE_MACHINE_RESET(foodf); |
37 | 37 | DECLARE_VIDEO_START(foodf); |
38 | UINT32 screen_update_foodf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
38 | 39 | }; |
39 | 40 | |
40 | 41 | |
41 | 42 | /*----------- defined in video/foodf.c -----------*/ |
42 | 43 | |
43 | 44 | |
44 | ||
45 |
r17967 | r17968 | |
---|---|---|
55 | 55 | virtual void machine_reset(); |
56 | 56 | virtual void video_start(); |
57 | 57 | virtual void palette_init(); |
58 | UINT32 screen_update_bsktball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
58 | 59 | }; |
59 | 60 | |
60 | 61 | |
r17967 | r17968 | |
75 | 76 | /*----------- defined in video/bsktball.c -----------*/ |
76 | 77 | |
77 | 78 | |
78 | SCREEN_UPDATE_IND16( bsktball ); | |
79 | 79 | |
80 |
r17967 | r17968 | |
---|---|---|
79 | 79 | DECLARE_MACHINE_RESET(armedf); |
80 | 80 | DECLARE_VIDEO_START(terraf); |
81 | 81 | DECLARE_VIDEO_START(armedf); |
82 | UINT32 screen_update_armedf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
82 | 83 | }; |
83 | 84 | |
84 | 85 | class bigfghtr_state : public armedf_state |
r17967 | r17968 | |
105 | 106 | |
106 | 107 | /*----------- defined in video/armedf.c -----------*/ |
107 | 108 | |
108 | SCREEN_UPDATE_IND16( armedf ); | |
109 | 109 | |
110 | 110 | |
111 | 111 | |
112 |
r17967 | r17968 | |
---|---|---|
45 | 45 | DECLARE_MACHINE_RESET(quizrr40); |
46 | 46 | DECLARE_MACHINE_RESET(quizrr41); |
47 | 47 | 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); | |
48 | 50 | }; |
49 | 51 | |
50 | 52 | /*----------- debug defines -----------*/ |
r17967 | r17968 | |
---|---|---|
253 | 253 | DECLARE_MACHINE_START(s2650); |
254 | 254 | DECLARE_MACHINE_RESET(strtheat); |
255 | 255 | 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); | |
256 | 259 | }; |
257 | 260 | |
258 | 261 | /*----------- defined in video/dkong.c -----------*/ |
r17967 | r17968 | |
265 | 268 | |
266 | 269 | |
267 | 270 | |
268 | SCREEN_UPDATE_IND16( dkong ); | |
269 | SCREEN_UPDATE_IND16( pestplce ); | |
270 | SCREEN_UPDATE_IND16( spclforc ); | |
271 | 271 | |
272 | ||
273 | ||
274 | ||
272 | 275 | /*----------- defined in audio/dkong.c -----------*/ |
273 | 276 | |
274 | 277 |
r17967 | r17968 | |
---|---|---|
38 | 38 | virtual void machine_reset(); |
39 | 39 | virtual void video_start(); |
40 | 40 | 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); | |
41 | 43 | }; |
42 | 44 | |
43 | 45 | |
r17967 | r17968 | |
45 | 47 | |
46 | 48 | |
47 | 49 | |
48 | SCREEN_VBLANK( sprint4 ); | |
49 | 50 | |
50 | SCREEN_UPDATE_IND16( sprint4 ); | |
51 | 51 | |
52 | ||
53 |
r17967 | r17968 | |
---|---|---|
50 | 50 | DECLARE_VIDEO_START(appoooh); |
51 | 51 | DECLARE_PALETTE_INIT(appoooh); |
52 | 52 | 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); | |
53 | 55 | }; |
54 | 56 | |
55 | 57 | #define CHR1_OFST 0x00 /* palette page of char set #1 */ |
r17967 | r17968 | |
61 | 63 | |
62 | 64 | |
63 | 65 | |
64 | SCREEN_UPDATE_IND16( appoooh ); | |
65 | SCREEN_UPDATE_IND16( robowres ); | |
66 | ||
67 |
r17967 | r17968 | |
---|---|---|
25 | 25 | DECLARE_WRITE8_MEMBER(skyraid_scroll_w); |
26 | 26 | virtual void video_start(); |
27 | 27 | virtual void palette_init(); |
28 | UINT32 screen_update_skyraid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
28 | 29 | }; |
29 | 30 | |
30 | 31 | |
r17967 | r17968 | |
38 | 39 | /*----------- defined in video/skyraid.c -----------*/ |
39 | 40 | |
40 | 41 | |
41 | ||
42 |
r17967 | r17968 | |
---|---|---|
24 | 24 | virtual void video_start(); |
25 | 25 | virtual void palette_init(); |
26 | 26 | DECLARE_PALETTE_INIT(shtrider); |
27 | UINT32 screen_update_travrusa(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
27 | 28 | }; |
28 | 29 | |
29 | 30 | /*----------- defined in video/travrusa.c -----------*/ |
r17967 | r17968 | |
32 | 33 | |
33 | 34 | |
34 | 35 | |
35 | ||
36 |
r17967 | r17968 | |
---|---|---|
38 | 38 | virtual void machine_start(); |
39 | 39 | virtual void machine_reset(); |
40 | 40 | virtual void video_start(); |
41 | UINT32 screen_update_aliens(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
41 | 42 | }; |
42 | 43 | |
43 | 44 | /*----------- defined in video/aliens.c -----------*/ |
r17967 | r17968 | |
46 | 47 | extern void aliens_sprite_callback(running_machine &machine, int *code,int *color,int *priority_mask,int *shadow); |
47 | 48 | |
48 | 49 | |
49 | ||
50 |
r17967 | r17968 | |
---|---|---|
49 | 49 | virtual void machine_start(); |
50 | 50 | virtual void machine_reset(); |
51 | 51 | virtual void video_start(); |
52 | UINT32 screen_update_metlclsh(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
52 | 53 | }; |
53 | 54 | |
54 | 55 | |
r17967 | r17968 | |
56 | 57 | |
57 | 58 | |
58 | 59 | |
59 | ||
60 |
r17967 | r17968 | |
---|---|---|
17 | 17 | DECLARE_READ8_MEMBER(beezer_line_r); |
18 | 18 | DECLARE_DRIVER_INIT(beezer); |
19 | 19 | virtual void machine_start(); |
20 | UINT32 screen_update_beezer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
20 | 21 | }; |
21 | 22 | |
22 | 23 | |
r17967 | r17968 | |
62 | 63 | /*----------- defined in video/beezer.c -----------*/ |
63 | 64 | |
64 | 65 | TIMER_DEVICE_CALLBACK( beezer_interrupt ); |
65 | ||
66 |
r17967 | r17968 | |
---|---|---|
46 | 46 | DECLARE_WRITE8_MEMBER(k052109_051960_w); |
47 | 47 | virtual void machine_start(); |
48 | 48 | virtual void machine_reset(); |
49 | UINT32 screen_update_88games(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
49 | 50 | }; |
50 | 51 | |
51 | 52 | |
r17967 | r17968 | |
55 | 56 | void _88games_tile_callback(running_machine &machine, int layer, int bank, int *code, int *color, int *flags, int *priority); |
56 | 57 | void _88games_zoom_callback(running_machine &machine, int *code, int *color, int *flags); |
57 | 58 | |
58 | ||
59 |
r17967 | r17968 | |
---|---|---|
63 | 63 | DECLARE_MACHINE_RESET(gtmr); |
64 | 64 | DECLARE_VIDEO_START(kaneko16); |
65 | 65 | 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); | |
66 | 68 | }; |
67 | 69 | |
68 | 70 | class kaneko16_gtmr_state : public kaneko16_state |
r17967 | r17968 | |
112 | 114 | DECLARE_DRIVER_INIT(berlwall); |
113 | 115 | DECLARE_PALETTE_INIT(berlwall); |
114 | 116 | DECLARE_VIDEO_START(berlwall); |
117 | UINT32 screen_update_berlwall(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
115 | 118 | }; |
116 | 119 | |
117 | 120 | class kaneko16_shogwarr_state : public kaneko16_state |
r17967 | r17968 | |
143 | 146 | |
144 | 147 | |
145 | 148 | |
146 | SCREEN_UPDATE_IND16( kaneko16 ); | |
147 | SCREEN_UPDATE_IND16( berlwall ); | |
148 | 149 | |
149 | 150 | |
151 | ||
152 | ||
150 | 153 | #endif |
r17967 | r17968 | |
---|---|---|
141 | 141 | DECLARE_VIDEO_START(magical); |
142 | 142 | DECLARE_PALETTE_INIT(magodds); |
143 | 143 | 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); | |
144 | 150 | }; |
145 | 151 | |
146 | 152 | |
r17967 | r17968 | |
154 | 160 | |
155 | 161 | |
156 | 162 | |
157 | SCREEN_UPDATE_IND16( goldstar ); | |
158 | SCREEN_UPDATE_IND16( bingowng ); | |
159 | SCREEN_UPDATE_IND16( cmast91 ); | |
160 | SCREEN_UPDATE_IND16( amcoe1a ); | |
161 | SCREEN_UPDATE_IND16( unkch ); | |
162 | SCREEN_UPDATE_IND16( magical ); | |
163 | ||
164 | ||
165 | ||
166 | ||
167 | ||
168 |
r17967 | r17968 | |
---|---|---|
50 | 50 | virtual void machine_start(); |
51 | 51 | virtual void machine_reset(); |
52 | 52 | virtual void video_start(); |
53 | UINT32 screen_update_dbz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
53 | 54 | }; |
54 | 55 | |
55 | 56 | |
r17967 | r17968 | |
60 | 61 | |
61 | 62 | |
62 | 63 | |
63 | ||
64 |
r17967 | r17968 | |
---|---|---|
52 | 52 | TILE_GET_INFO_MEMBER(track_get_fg_tile_info); |
53 | 53 | virtual void video_start(); |
54 | 54 | DECLARE_VIDEO_START(wc90t); |
55 | UINT32 screen_update_wc90(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
55 | 56 | }; |
56 | 57 | |
57 | 58 | |
r17967 | r17968 | |
59 | 60 | |
60 | 61 | |
61 | 62 | |
62 | ||
63 |
r17967 | r17968 | |
---|---|---|
30 | 30 | DECLARE_MACHINE_START(gauntlet); |
31 | 31 | DECLARE_MACHINE_RESET(gauntlet); |
32 | 32 | DECLARE_VIDEO_START(gauntlet); |
33 | UINT32 screen_update_gauntlet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
33 | 34 | }; |
34 | 35 | |
35 | 36 | |
r17967 | r17968 | |
39 | 40 | DECLARE_WRITE16_HANDLER( gauntlet_yscroll_w ); |
40 | 41 | |
41 | 42 | |
42 | ||
43 |
r17967 | r17968 | |
---|---|---|
87 | 87 | virtual void machine_reset(); |
88 | 88 | virtual void video_start(); |
89 | 89 | DECLARE_VIDEO_START(f1superb); |
90 | UINT32 screen_update_ms32(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
90 | 91 | }; |
91 | 92 | |
92 | 93 | |
r17967 | r17968 | |
98 | 99 | |
99 | 100 | |
100 | 101 | |
101 | ||
102 |
r17967 | r17968 | |
---|---|---|
30 | 30 | DECLARE_WRITE16_MEMBER(darkseal_palette_24bit_b_w); |
31 | 31 | DECLARE_DRIVER_INIT(darkseal); |
32 | 32 | virtual void video_start(); |
33 | UINT32 screen_update_darkseal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
33 | 34 | }; |
34 | 35 | |
35 | 36 | |
36 | 37 | /*----------- defined in video/darkseal.c -----------*/ |
37 | 38 | |
38 | 39 | |
39 | SCREEN_UPDATE_IND16( darkseal ); | |
40 | 40 | |
41 |
r17967 | r17968 | |
---|---|---|
54 | 54 | DECLARE_DRIVER_INIT(20pacgal); |
55 | 55 | virtual void machine_start(); |
56 | 56 | virtual void machine_reset(); |
57 | UINT32 screen_update_20pacgal(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
57 | 58 | }; |
58 | 59 | |
59 | 60 |
r17967 | r17968 | |
---|---|---|
15 | 15 | bitmap_ind16 m_tile_bitmap_fg; |
16 | 16 | DECLARE_WRITE16_MEMBER(soundcommand_w); |
17 | 17 | virtual void video_start(); |
18 | UINT32 screen_update_spbactn(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
18 | 19 | }; |
19 | 20 | |
20 | 21 | |
21 | 22 | /*----------- defined in video/spbactn.c -----------*/ |
22 | 23 | |
23 | 24 | |
24 | ||
25 |
r17967 | r17968 | |
---|---|---|
29 | 29 | virtual void machine_reset(); |
30 | 30 | virtual void video_start(); |
31 | 31 | virtual void palette_init(); |
32 | UINT32 screen_update_seicross(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
32 | 33 | }; |
33 | 34 | |
34 | 35 | |
r17967 | r17968 | |
37 | 38 | |
38 | 39 | |
39 | 40 | |
40 | ||
41 |
r17967 | r17968 | |
---|---|---|
189 | 189 | DECLARE_VIDEO_START(s16a_bootleg_passsht); |
190 | 190 | DECLARE_VIDEO_START(s16a_bootleg_wb3bl); |
191 | 191 | 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); | |
192 | 196 | }; |
193 | 197 | |
194 | 198 | /*----------- defined in video/system16.c -----------*/ |
r17967 | r17968 | |
---|---|---|
60 | 60 | virtual void machine_start(); |
61 | 61 | virtual void machine_reset(); |
62 | 62 | virtual void video_start(); |
63 | UINT32 screen_update_deniam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
63 | 64 | }; |
64 | 65 | |
65 | 66 | |
r17967 | r17968 | |
67 | 68 | |
68 | 69 | |
69 | 70 | |
70 | SCREEN_UPDATE_IND16( deniam ); | |
71 | 71 | |
72 |
r17967 | r17968 | |
---|---|---|
37 | 37 | DECLARE_WRITE8_MEMBER(demoneye_audio_command_w); |
38 | 38 | DECLARE_VIDEO_START(redalert); |
39 | 39 | 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); | |
40 | 43 | }; |
41 | 44 | |
42 | 45 |
r17967 | r17968 | |
---|---|---|
63 | 63 | DECLARE_VIDEO_START(mcrmono); |
64 | 64 | DECLARE_VIDEO_START(spyhunt); |
65 | 65 | 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); | |
66 | 68 | }; |
67 | 69 | |
68 | 70 | |
r17967 | r17968 | |
74 | 76 | |
75 | 77 | |
76 | 78 | |
77 | SCREEN_UPDATE_IND16( mcr3 ); | |
78 | SCREEN_UPDATE_IND16( spyhunt ); | |
79 | ||
80 |
r17967 | r17968 | |
---|---|---|
15 | 15 | DECLARE_WRITE16_MEMBER(stadhero_pf1_data_w); |
16 | 16 | TILE_GET_INFO_MEMBER(get_pf1_tile_info); |
17 | 17 | virtual void video_start(); |
18 | UINT32 screen_update_stadhero(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
18 | 19 | }; |
19 | 20 | |
20 | 21 | |
21 | 22 | /*----------- defined in video/stadhero.c -----------*/ |
22 | 23 | |
23 | 24 | |
24 | SCREEN_UPDATE_IND16( stadhero ); | |
25 | 25 | |
26 |
r17967 | r17968 | |
---|---|---|
27 | 27 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
28 | 28 | TILE_GET_INFO_MEMBER(get_fg_tile_info); |
29 | 29 | virtual void video_start(); |
30 | UINT32 screen_update_prehisle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
30 | 31 | }; |
31 | 32 | |
32 | 33 | |
r17967 | r17968 | |
34 | 35 | |
35 | 36 | |
36 | 37 | |
37 | ||
38 |
r17967 | r17968 | |
---|---|---|
39 | 39 | DECLARE_WRITE8_MEMBER(simpsons_k053247_w); |
40 | 40 | virtual void machine_start(); |
41 | 41 | virtual void machine_reset(); |
42 | UINT32 screen_update_simpsons(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
42 | 43 | }; |
43 | 44 | |
44 | 45 | /*----------- defined in machine/simpsons.c -----------*/ |
r17967 | r17968 | |
50 | 51 | /*----------- defined in video/simpsons.c -----------*/ |
51 | 52 | |
52 | 53 | void simpsons_video_banking( running_machine &machine, int select ); |
53 | SCREEN_UPDATE_IND16( simpsons ); | |
54 | 54 | |
55 | ||
55 | 56 | extern void simpsons_tile_callback(running_machine &machine, int layer,int bank,int *code,int *color,int *flags,int *priority); |
56 | 57 | extern void simpsons_sprite_callback(running_machine &machine, int *code,int *color,int *priority_mask); |
r17967 | r17968 | |
---|---|---|
26 | 26 | TILEMAP_MAPPER_MEMBER(bg0_scan); |
27 | 27 | TILE_GET_INFO_MEMBER(get_bg0_tile_info); |
28 | 28 | virtual void video_start(); |
29 | UINT32 screen_update_wwfsstar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
29 | 30 | }; |
30 | 31 | |
31 | 32 | |
32 | 33 | /*----------- defined in video/wwfsstar.c -----------*/ |
33 | 34 | |
34 | 35 | |
35 | ||
36 |
r17967 | r17968 | |
---|---|---|
70 | 70 | DECLARE_VIDEO_RESET(hitice); |
71 | 71 | DECLARE_VIDEO_START(realpunc); |
72 | 72 | 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); | |
73 | 76 | }; |
74 | 77 | |
75 | 78 | |
r17967 | r17968 | |
86 | 89 | |
87 | 90 | |
88 | 91 | |
89 | SCREEN_UPDATE_RGB32( realpunc ); | |
90 | SCREEN_UPDATE_IND16( taitob ); | |
91 | 92 | |
92 | SCREEN_VBLANK( taitob ); | |
93 | ||
94 | ||
95 |
r17967 | r17968 | |
---|---|---|
33 | 33 | DECLARE_MACHINE_RESET(actfancr); |
34 | 34 | DECLARE_MACHINE_START(triothep); |
35 | 35 | DECLARE_MACHINE_RESET(triothep); |
36 | UINT32 screen_update_actfancr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
36 | 37 | }; |
37 | 38 | |
38 | 39 | |
r17967 | r17968 | |
46 | 47 | DECLARE_WRITE8_HANDLER( actfancr_pf2_control_w ); |
47 | 48 | |
48 | 49 | |
49 | SCREEN_UPDATE_IND16( actfancr ); | |
50 | 50 | |
51 |
r17967 | r17968 | |
---|---|---|
79 | 79 | DECLARE_MACHINE_RESET(polepos); |
80 | 80 | DECLARE_VIDEO_START(polepos); |
81 | 81 | DECLARE_PALETTE_INIT(polepos); |
82 | UINT32 screen_update_polepos(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
82 | 83 | }; |
83 | 84 | |
84 | 85 | |
r17967 | r17968 | |
119 | 120 | |
120 | 121 | |
121 | 122 | |
122 | SCREEN_UPDATE_IND16( polepos ); | |
123 | 123 | |
124 | 124 | |
125 |
r17967 | r17968 | |
---|---|---|
134 | 134 | DECLARE_MACHINE_RESET(model1); |
135 | 135 | DECLARE_VIDEO_START(model1); |
136 | 136 | 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); | |
137 | 139 | }; |
138 | 140 | |
139 | 141 | |
r17967 | r17968 | |
154 | 156 | /*----------- defined in video/model1.c -----------*/ |
155 | 157 | |
156 | 158 | |
157 | SCREEN_UPDATE_RGB32(model1); | |
158 | SCREEN_VBLANK(model1); | |
159 | 159 | |
160 | ||
161 |
r17967 | r17968 | |
---|---|---|
42 | 42 | virtual void machine_reset(); |
43 | 43 | virtual void video_start(); |
44 | 44 | virtual void palette_init(); |
45 | UINT32 screen_update_jackal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
45 | 46 | }; |
46 | 47 | |
47 | 48 | |
r17967 | r17968 | |
51 | 52 | |
52 | 53 | |
53 | 54 | |
54 | ||
55 |
r17967 | r17968 | |
---|---|---|
59 | 59 | virtual void machine_reset(); |
60 | 60 | virtual void video_start(); |
61 | 61 | 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); | |
62 | 64 | }; |
63 | 65 | |
64 | 66 | |
r17967 | r17968 | |
75 | 77 | /*----------- defined in video/tank8.c -----------*/ |
76 | 78 | |
77 | 79 | |
78 | SCREEN_VBLANK( tank8 ); | |
79 | 80 | |
80 | SCREEN_UPDATE_IND16( tank8 ); | |
81 | 81 | |
82 | 82 | |
83 | 83 | |
84 | ||
85 |
r17967 | r17968 | |
---|---|---|
139 | 139 | DECLARE_MACHINE_START(spcenctr); |
140 | 140 | DECLARE_MACHINE_START(phantom2); |
141 | 141 | 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); | |
142 | 147 | }; |
143 | 148 | |
144 | 149 | |
r17967 | r17968 | |
271 | 276 | |
272 | 277 | /*----------- defined in video/mw8080bw.c -----------*/ |
273 | 278 | |
274 | SCREEN_UPDATE_RGB32( mw8080bw ); | |
275 | 279 | |
276 | SCREEN_UPDATE_RGB32( spcenctr ); | |
277 | 280 | |
278 | SCREEN_UPDATE_RGB32( phantom2 ); | |
279 | SCREEN_VBLANK( phantom2 ); | |
280 | 281 | |
281 | SCREEN_UPDATE_RGB32( invaders ); | |
282 | ||
283 | ||
284 | ||
285 | ||
286 |
r17967 | r17968 | |
---|---|---|
52 | 52 | virtual void machine_reset(); |
53 | 53 | virtual void video_start(); |
54 | 54 | 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); | |
55 | 57 | }; |
56 | 58 | |
57 | 59 | |
r17967 | r17968 | |
59 | 61 | |
60 | 62 | |
61 | 63 | |
62 | SCREEN_UPDATE_IND16( namcos86 ); | |
63 | SCREEN_VBLANK( namcos86 ); | |
64 | 64 | |
65 | ||
66 |
r17967 | r17968 | |
---|---|---|
37 | 37 | DECLARE_DRIVER_INIT(vaportra); |
38 | 38 | virtual void machine_start(); |
39 | 39 | virtual void machine_reset(); |
40 | UINT32 screen_update_vaportra(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
40 | 41 | }; |
41 | 42 | |
42 | 43 | |
r17967 | r17968 | |
44 | 45 | /*----------- defined in video/vaportra.c -----------*/ |
45 | 46 | |
46 | 47 | |
47 | ||
48 |
r17967 | r17968 | |
---|---|---|
103 | 103 | DECLARE_MACHINE_RESET(brickzn); |
104 | 104 | DECLARE_VIDEO_START(suna8_textdim0); |
105 | 105 | DECLARE_MACHINE_RESET(hardhea2); |
106 | UINT32 screen_update_suna8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
106 | 107 | }; |
107 | 108 | |
108 | 109 | |
r17967 | r17968 | |
121 | 122 | |
122 | 123 | |
123 | 124 | |
124 | ||
125 |
r17967 | r17968 | |
---|---|---|
38 | 38 | DECLARE_VIDEO_START(qdrmfgp); |
39 | 39 | DECLARE_MACHINE_START(qdrmfgp2); |
40 | 40 | DECLARE_VIDEO_START(qdrmfgp2); |
41 | UINT32 screen_update_qdrmfgp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
41 | 42 | }; |
42 | 43 | |
43 | 44 | /*----------- defined in video/qdrmfgp.c -----------*/ |
44 | 45 | |
45 | 46 | |
46 | 47 | |
47 | SCREEN_UPDATE_IND16( qdrmfgp ); | |
48 | 48 | |
49 | ||
49 | 50 | void qdrmfgp_tile_callback(running_machine &machine, int layer, int *code, int *color, int *flags); |
50 | 51 | void qdrmfgp2_tile_callback(running_machine &machine, int layer, int *code, int *color, int *flags); |
r17967 | r17968 | |
---|---|---|
107 | 107 | DECLARE_MACHINE_START(mmonkey); |
108 | 108 | DECLARE_MACHINE_RESET(mmonkey); |
109 | 109 | 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); | |
110 | 117 | }; |
111 | 118 | |
112 | 119 | |
r17967 | r17968 | |
122 | 129 | |
123 | 130 | |
124 | 131 | |
125 | SCREEN_UPDATE_IND16( btime ); | |
126 | SCREEN_UPDATE_IND16( cookrace ); | |
127 | SCREEN_UPDATE_IND16( bnj ); | |
128 | SCREEN_UPDATE_IND16( lnc ); | |
129 | SCREEN_UPDATE_IND16( zoar ); | |
130 | SCREEN_UPDATE_IND16( disco ); | |
131 | SCREEN_UPDATE_IND16( eggs ); | |
132 | 132 | |
133 | ||
134 | ||
135 | ||
136 | ||
137 | ||
138 | ||
139 |
r17967 | r17968 | |
---|---|---|
209 | 209 | DECLARE_MACHINE_START(qsound); |
210 | 210 | DECLARE_MACHINE_RESET(cps); |
211 | 211 | 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); | |
212 | 216 | }; |
213 | 217 | |
214 | 218 | /*----------- defined in drivers/cps1.c -----------*/ |
r17967 | r17968 | |
227 | 231 | |
228 | 232 | |
229 | 233 | |
230 | SCREEN_UPDATE_IND16( cps1 ); | |
231 | SCREEN_VBLANK( cps1 ); | |
232 | 234 | |
235 | ||
236 | ||
233 | 237 | void cps1_get_video_base(running_machine &machine); |
234 | 238 | void cps2_set_sprite_priorities(running_machine &machine); |
235 | 239 | void cps2_objram_latch(running_machine &machine); |
r17967 | r17968 | |
---|---|---|
50 | 50 | DECLARE_WRITE8_MEMBER(starcrus_proj_parm_2_w); |
51 | 51 | DECLARE_READ8_MEMBER(starcrus_coll_det_r); |
52 | 52 | virtual void video_start(); |
53 | UINT32 screen_update_starcrus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
53 | 54 | }; |
54 | 55 | |
55 | 56 | |
56 | 57 | /*----------- defined in video/starcrus.c -----------*/ |
57 | 58 | |
58 | 59 | |
59 | ||
60 |
r17967 | r17968 | |
---|---|---|
40 | 40 | DECLARE_VIDEO_START(ninjakun); |
41 | 41 | DECLARE_VIDEO_START(pkunwar); |
42 | 42 | 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); | |
43 | 47 | }; |
44 | 48 | |
45 | 49 |
r17967 | r17968 | |
---|---|---|
44 | 44 | virtual void machine_start(); |
45 | 45 | virtual void machine_reset(); |
46 | 46 | virtual void video_start(); |
47 | UINT32 screen_update_yunsun16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
47 | 48 | }; |
48 | 49 | |
49 | 50 | |
r17967 | r17968 | |
51 | 52 | |
52 | 53 | |
53 | 54 | |
54 | ||
55 |
r17967 | r17968 | |
---|---|---|
48 | 48 | virtual void machine_reset(); |
49 | 49 | virtual void video_start(); |
50 | 50 | 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); | |
51 | 54 | }; |
52 | 55 | |
53 | 56 | |
r17967 | r17968 | |
56 | 59 | |
57 | 60 | |
58 | 61 | |
59 | SCREEN_UPDATE_IND16( wiz ); | |
60 | SCREEN_UPDATE_IND16( stinger ); | |
61 | SCREEN_UPDATE_IND16( kungfut ); | |
62 | ||
63 | ||
64 |
r17967 | r17968 | |
---|---|---|
59 | 59 | virtual void machine_start(); |
60 | 60 | DECLARE_VIDEO_START(stactics); |
61 | 61 | DECLARE_PALETTE_INIT(stactics); |
62 | UINT32 screen_update_stactics(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
62 | 63 | }; |
63 | 64 | |
64 | 65 |
r17967 | r17968 | |
---|---|---|
77 | 77 | virtual void video_start(); |
78 | 78 | virtual void palette_init(); |
79 | 79 | 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); | |
80 | 82 | }; |
81 | 83 | |
82 | 84 | |
r17967 | r17968 | |
87 | 89 | |
88 | 90 | |
89 | 91 | |
90 | SCREEN_UPDATE_IND16( mermaid ); | |
91 | SCREEN_VBLANK( mermaid ); | |
92 | ||
93 |
r17967 | r17968 | |
---|---|---|
25 | 25 | DECLARE_WRITE8_MEMBER(avalance_start_lamp_w); |
26 | 26 | virtual void machine_start(); |
27 | 27 | virtual void machine_reset(); |
28 | UINT32 screen_update_avalnche(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
28 | 29 | }; |
29 | 30 | |
30 | 31 | /*----------- defined in audio/avalnche.c -----------*/ |
r17967 | r17968 | |
---|---|---|
115 | 115 | virtual void video_start(); |
116 | 116 | DECLARE_MACHINE_RESET(gaelco3d2); |
117 | 117 | DECLARE_MACHINE_RESET(common); |
118 | UINT32 screen_update_gaelco3d(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
118 | 119 | }; |
119 | 120 | |
120 | 121 | |
r17967 | r17968 | |
124 | 125 | |
125 | 126 | |
126 | 127 | |
127 | ||
128 |
r17967 | r17968 | |
---|---|---|
37 | 37 | TILE_GET_INFO_MEMBER(get_mid_tile_info); |
38 | 38 | TILE_GET_INFO_MEMBER(get_text_tile_info); |
39 | 39 | 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); | |
40 | 42 | }; |
41 | 43 | |
42 | 44 | |
r17967 | r17968 | |
44 | 46 | |
45 | 47 | |
46 | 48 | |
47 | SCREEN_UPDATE_IND16( dcon ); | |
48 | SCREEN_UPDATE_IND16( sdgndmps ); | |
49 | ||
50 |
r17967 | r17968 | |
---|---|---|
74 | 74 | virtual void machine_reset(); |
75 | 75 | DECLARE_VIDEO_START(kickgoal); |
76 | 76 | DECLARE_VIDEO_START(actionhw); |
77 | UINT32 screen_update_kickgoal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
77 | 78 | }; |
78 | 79 | |
79 | 80 | |
r17967 | r17968 | |
81 | 82 | |
82 | 83 | |
83 | 84 | |
84 | SCREEN_UPDATE_IND16( kickgoal ); | |
85 | 85 | |
86 |
r17967 | r17968 | |
---|---|---|
223 | 223 | virtual void palette_init(); |
224 | 224 | DECLARE_PALETTE_INIT(moonwar); |
225 | 225 | 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); | |
226 | 227 | }; |
227 | 228 | |
228 | 229 | |
r17967 | r17968 | |
232 | 233 | |
233 | 234 | |
234 | 235 | |
235 | SCREEN_UPDATE_RGB32( galaxian ); | |
236 | 236 | |
237 | 237 | |
238 | 238 | |
239 | 239 | |
240 | 240 | |
241 | ||
241 | 242 | TIMER_DEVICE_CALLBACK( galaxian_stars_blink_timer ); |
242 | 243 | |
243 | 244 | /* special purpose background rendering */ |
r17967 | r17968 | |
---|---|---|
89 | 89 | virtual void video_start(); |
90 | 90 | DECLARE_VIDEO_START(slikshot); |
91 | 91 | 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); | |
92 | 97 | }; |
93 | 98 | |
94 | 99 | |
r17967 | r17968 | |
107 | 112 | DECLARE_WRITE8_HANDLER( slikshot_z80_control_w ); |
108 | 113 | |
109 | 114 | |
110 | SCREEN_UPDATE_RGB32( slikshot ); | |
111 | 115 | |
112 | 116 | |
117 | ||
113 | 118 | /*----------- defined in video/itech8.c -----------*/ |
114 | 119 | |
115 | 120 | |
r17967 | r17968 | |
120 | 125 | |
121 | 126 | TIMER_DEVICE_CALLBACK( grmatch_palette_update ); |
122 | 127 | |
123 | SCREEN_UPDATE_RGB32( itech8_2layer ); | |
124 | SCREEN_UPDATE_RGB32( itech8_grmatch ); | |
125 | SCREEN_UPDATE_RGB32( itech8_2page ); | |
126 | SCREEN_UPDATE_RGB32( itech8_2page_large ); | |
128 | ||
129 | ||
130 | ||
131 |
r17967 | r17968 | |
---|---|---|
41 | 41 | virtual void machine_start(); |
42 | 42 | virtual void machine_reset(); |
43 | 43 | 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); | |
44 | 46 | }; |
45 | 47 | |
46 | 48 | |
r17967 | r17968 | |
48 | 50 | |
49 | 51 | |
50 | 52 | |
51 | SCREEN_VBLANK( othldrby ); | |
52 | SCREEN_UPDATE_IND16( othldrby ); | |
53 | ||
54 |
r17967 | r17968 | |
---|---|---|
54 | 54 | TILE_GET_INFO_MEMBER(get_pf2_tile_info); |
55 | 55 | DECLARE_VIDEO_START(bbuster); |
56 | 56 | 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); | |
57 | 60 | }; |
58 | 61 | |
59 | 62 | |
r17967 | r17968 | |
61 | 64 | |
62 | 65 | |
63 | 66 | |
64 | SCREEN_UPDATE_IND16( bbuster ); | |
65 | SCREEN_UPDATE_IND16( mechatt ); | |
66 | 67 | |
68 | ||
69 |
r17967 | r17968 | |
---|---|---|
104 | 104 | DECLARE_VIDEO_START(gstriker); |
105 | 105 | DECLARE_VIDEO_START(vgoalsoc); |
106 | 106 | DECLARE_VIDEO_START(twrldc94); |
107 | UINT32 screen_update_gstriker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
107 | 108 | }; |
108 | 109 | |
109 | 110 | |
110 | 111 | /*----------- defined in video/gstriker.c -----------*/ |
111 | 112 | |
112 | 113 | |
113 | SCREEN_UPDATE_IND16( gstriker ); | |
114 | 114 | |
115 | 115 | |
116 | 116 | |
117 | ||
117 | 118 | #endif |
r17967 | r17968 | |
---|---|---|
164 | 164 | DECLARE_VIDEO_START(psychos); |
165 | 165 | DECLARE_VIDEO_START(snk_3bpp_shadow); |
166 | 166 | 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); | |
167 | 172 | }; |
168 | 173 | |
169 | 174 |
r17967 | r17968 | |
---|---|---|
89 | 89 | DECLARE_MACHINE_START(magerror); |
90 | 90 | DECLARE_VIDEO_START(magerror_14220); |
91 | 91 | DECLARE_VIDEO_START(common_14220); |
92 | UINT32 screen_update_hyprduel(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
92 | 93 | }; |
93 | 94 | |
94 | 95 | |
r17967 | r17968 | |
99 | 100 | |
100 | 101 | |
101 | 102 | |
102 | ||
103 |
r17967 | r17968 | |
---|---|---|
75 | 75 | DECLARE_MACHINE_START(namconb); |
76 | 76 | DECLARE_VIDEO_START(namconb1); |
77 | 77 | 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); | |
78 | 80 | }; |
79 | 81 | |
80 | 82 | |
81 | 83 | /*----------- defined in video/namconb1.c -----------*/ |
82 | 84 | |
83 | SCREEN_UPDATE_IND16( namconb1 ); | |
84 | 85 | |
85 | 86 | |
86 | SCREEN_UPDATE_IND16( namconb2 ); | |
87 | 87 | |
88 | ||
89 |
r17967 | r17968 | |
---|---|---|
21 | 21 | DECLARE_MACHINE_START(arcadecl); |
22 | 22 | DECLARE_MACHINE_RESET(arcadecl); |
23 | 23 | DECLARE_VIDEO_START(arcadecl); |
24 | UINT32 screen_update_arcadecl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
24 | 25 | }; |
25 | 26 | |
26 | 27 | /*----------- defined in video/arcadecl.c -----------*/ |
27 | 28 | |
28 | 29 | |
29 | ||
30 |
r17967 | r17968 | |
---|---|---|
114 | 114 | DECLARE_MACHINE_RESET(rumba); |
115 | 115 | DECLARE_VIDEO_START(rumba); |
116 | 116 | 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); | |
117 | 120 | }; |
118 | 121 | |
119 | 122 | |
r17967 | r17968 | |
124 | 127 | /*----------- defined in video/flstory.c -----------*/ |
125 | 128 | |
126 | 129 | |
127 | SCREEN_UPDATE_IND16( flstory ); | |
128 | 130 | |
129 | SCREEN_UPDATE_IND16( victnine ); | |
130 | 131 | |
131 | SCREEN_UPDATE_IND16( rumba ); | |
132 | 132 | |
133 | ||
134 | ||
135 |
r17967 | r17968 | |
---|---|---|
49 | 49 | virtual void machine_start(); |
50 | 50 | virtual void machine_reset(); |
51 | 51 | virtual void video_start(); |
52 | UINT32 screen_update_suprslam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
52 | 53 | }; |
53 | 54 | |
54 | 55 | |
r17967 | r17968 | |
56 | 57 | |
57 | 58 | |
58 | 59 | |
59 | ||
60 |
r17967 | r17968 | |
---|---|---|
43 | 43 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
44 | 44 | virtual void video_start(); |
45 | 45 | virtual void palette_init(); |
46 | UINT32 screen_update_calomega(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
46 | 47 | }; |
47 | 48 | |
48 | 49 | |
r17967 | r17968 | |
50 | 51 | |
51 | 52 | |
52 | 53 | |
53 | ||
54 |
r17967 | r17968 | |
---|---|---|
30 | 30 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
31 | 31 | virtual void video_start(); |
32 | 32 | virtual void palette_init(); |
33 | UINT32 screen_update_strnskil(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
33 | 34 | }; |
34 | 35 | |
35 | 36 | |
r17967 | r17968 | |
38 | 39 | |
39 | 40 | |
40 | 41 | |
41 | ||
42 |
r17967 | r17968 | |
---|---|---|
31 | 31 | virtual void machine_start(); |
32 | 32 | virtual void machine_reset(); |
33 | 33 | virtual void video_start(); |
34 | UINT32 screen_update_atetris(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
34 | 35 | }; |
35 | 36 | |
36 | 37 | /*----------- defined in video/atetris.c -----------*/ |
37 | 38 | |
38 | 39 | |
39 | SCREEN_UPDATE_IND16( atetris ); | |
40 | 40 | |
41 |
r17967 | r17968 | |
---|---|---|
69 | 69 | DECLARE_PALETTE_INIT(cosmica); |
70 | 70 | DECLARE_PALETTE_INIT(magspot); |
71 | 71 | 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); | |
72 | 78 | }; |
73 | 79 | |
74 | 80 | |
r17967 | r17968 | |
81 | 87 | |
82 | 88 | |
83 | 89 | |
84 | SCREEN_UPDATE_IND16( panic ); | |
85 | SCREEN_UPDATE_IND16( magspot ); | |
86 | SCREEN_UPDATE_IND16( devzone ); | |
87 | SCREEN_UPDATE_IND16( cosmica ); | |
88 | SCREEN_UPDATE_IND16( cosmicg ); | |
89 | SCREEN_UPDATE_IND16( nomnlnd ); | |
90 | ||
91 | ||
92 | ||
93 | ||
94 | ||
95 |
r17967 | r17968 | |
---|---|---|
25 | 25 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
26 | 26 | virtual void video_start(); |
27 | 27 | virtual void palette_init(); |
28 | UINT32 screen_update_shaolins(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
28 | 29 | }; |
29 | 30 | |
30 | 31 | |
r17967 | r17968 | |
33 | 34 | |
34 | 35 | |
35 | 36 | |
36 | ||
37 |
r17967 | r17968 | |
---|---|---|
162 | 162 | DECLARE_MACHINE_RESET(model2c); |
163 | 163 | DECLARE_MACHINE_RESET(model2_common); |
164 | 164 | DECLARE_MACHINE_RESET(model2_scsp); |
165 | UINT32 screen_update_model2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
165 | 166 | }; |
166 | 167 | |
167 | 168 | |
168 | 169 | /*----------- defined in video/model2.c -----------*/ |
169 | 170 | |
170 | 171 | |
171 | SCREEN_UPDATE_RGB32(model2); | |
172 | 172 | |
173 | ||
173 | 174 | void model2_3d_set_zclip( running_machine &machine, UINT8 clip ); |
r17967 | r17968 | |
---|---|---|
49 | 49 | DECLARE_DRIVER_INIT(sshangha); |
50 | 50 | virtual void machine_reset(); |
51 | 51 | virtual void video_start(); |
52 | UINT32 screen_update_sshangha(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
52 | 53 | }; |
53 | 54 | |
54 | 55 | |
55 | 56 | /*----------- defined in video/sshangha.c -----------*/ |
56 | 57 | |
57 | 58 | |
58 | SCREEN_UPDATE_RGB32( sshangha ); | |
59 | 59 | |
60 |
r17967 | r17968 | |
---|---|---|
21 | 21 | DECLARE_WRITE8_MEMBER(sound_irq_mask_w); |
22 | 22 | DECLARE_WRITE8_MEMBER(wiping_flipscreen_w); |
23 | 23 | virtual void palette_init(); |
24 | UINT32 screen_update_wiping(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
24 | 25 | }; |
25 | 26 | |
26 | 27 | |
27 | 28 | /*----------- defined in video/wiping.c -----------*/ |
28 | 29 | |
29 | 30 | |
30 | SCREEN_UPDATE_IND16( wiping ); | |
31 | 31 | |
32 |
r17967 | r17968 | |
---|---|---|
58 | 58 | virtual void machine_start(); |
59 | 59 | virtual void machine_reset(); |
60 | 60 | virtual void video_start(); |
61 | UINT32 screen_update_kyugo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
61 | 62 | }; |
62 | 63 | |
63 | 64 | |
r17967 | r17968 | |
66 | 67 | |
67 | 68 | |
68 | 69 | |
69 | ||
70 |
r17967 | r17968 | |
---|---|---|
140 | 140 | DECLARE_MACHINE_RESET(leland); |
141 | 141 | DECLARE_VIDEO_START(leland); |
142 | 142 | 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); | |
143 | 145 | }; |
144 | 146 | |
145 | 147 |
r17967 | r17968 | |
---|---|---|
56 | 56 | virtual void machine_start(); |
57 | 57 | virtual void machine_reset(); |
58 | 58 | virtual void palette_init(); |
59 | UINT32 screen_update_lazercmd(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
59 | 60 | }; |
60 | 61 | |
61 | 62 | |
62 | 63 | /*----------- defined in video/lazercmd.c -----------*/ |
63 | 64 | |
64 | ||
65 |
r17967 | r17968 | |
---|---|---|
40 | 40 | virtual void palette_init(); |
41 | 41 | DECLARE_VIDEO_START(popeye); |
42 | 42 | DECLARE_PALETTE_INIT(popeyebl); |
43 | UINT32 screen_update_popeye(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
43 | 44 | }; |
44 | 45 | |
45 | 46 | |
r17967 | r17968 | |
50 | 51 | |
51 | 52 | |
52 | 53 | |
53 | ||
54 |
r17967 | r17968 | |
---|---|---|
34 | 34 | virtual void machine_reset(); |
35 | 35 | virtual void video_start(); |
36 | 36 | virtual void palette_init(); |
37 | UINT32 screen_update_4enraya(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
37 | 38 | }; |
38 | 39 | |
39 | 40 | |
r17967 | r17968 | |
41 | 42 | |
42 | 43 | |
43 | 44 | |
44 | ||
45 |
r17967 | r17968 | |
---|---|---|
26 | 26 | virtual void machine_reset(); |
27 | 27 | virtual void video_start(); |
28 | 28 | virtual void palette_init(); |
29 | UINT32 screen_update_blockade(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
29 | 30 | }; |
30 | 31 | |
31 | 32 | |
r17967 | r17968 | |
33 | 34 | |
34 | 35 | |
35 | 36 | |
36 | SCREEN_UPDATE_IND16( blockade ); | |
37 | 37 | |
38 | ||
38 | 39 | /*----------- defined in audio/blockade.c -----------*/ |
39 | 40 | |
40 | 41 | extern const samples_interface blockade_samples_interface; |
r17967 | r17968 | |
---|---|---|
41 | 41 | virtual void machine_reset(); |
42 | 42 | virtual void video_start(); |
43 | 43 | virtual void palette_init(); |
44 | UINT32 screen_update_compgolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
44 | 45 | }; |
45 | 46 | |
46 | 47 | |
r17967 | r17968 | |
48 | 49 | |
49 | 50 | |
50 | 51 | |
51 | ||
52 |
r17967 | r17968 | |
---|---|---|
63 | 63 | TILE_GET_INFO_MEMBER(get_tile_info_2); |
64 | 64 | TILE_GET_INFO_MEMBER(get_tile_info_3); |
65 | 65 | virtual void video_start(); |
66 | UINT32 screen_update_lordgun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
66 | 67 | }; |
67 | 68 | |
68 | 69 | |
r17967 | r17968 | |
73 | 74 | void lordgun_update_gun(running_machine &machine, int i); |
74 | 75 | |
75 | 76 | |
76 | ||
77 |
r17967 | r17968 | |
---|---|---|
43 | 43 | TILE_GET_INFO_MEMBER(get_tile_info); |
44 | 44 | virtual void machine_start(); |
45 | 45 | 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); | |
46 | 48 | }; |
47 | 49 | |
48 | 50 | |
r17967 | r17968 | |
50 | 52 | |
51 | 53 | |
52 | 54 | |
53 | SCREEN_VBLANK( lemmings ); | |
54 | SCREEN_UPDATE_RGB32( lemmings ); | |
55 | 55 | |
56 | ||
57 |
r17967 | r17968 | |
---|---|---|
48 | 48 | virtual void video_start(); |
49 | 49 | DECLARE_MACHINE_RESET(pushman); |
50 | 50 | DECLARE_MACHINE_RESET(bballs); |
51 | UINT32 screen_update_pushman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
51 | 52 | }; |
52 | 53 | |
53 | 54 | |
r17967 | r17968 | |
56 | 57 | |
57 | 58 | |
58 | 59 | |
59 | ||
60 |
r17967 | r17968 | |
---|---|---|
51 | 51 | virtual void video_start(); |
52 | 52 | virtual void palette_init(); |
53 | 53 | DECLARE_VIDEO_START(netwars); |
54 | UINT32 screen_update_espial(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
54 | 55 | }; |
55 | 56 | |
56 | 57 | /*----------- defined in video/espial.c -----------*/ |
r17967 | r17968 | |
58 | 59 | |
59 | 60 | |
60 | 61 | |
61 | ||
62 |
r17967 | r17968 | |
---|---|---|
33 | 33 | virtual void machine_reset(); |
34 | 34 | virtual void video_start(); |
35 | 35 | virtual void palette_init(); |
36 | UINT32 screen_update_tiamc1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
36 | 37 | }; |
37 | 38 | |
38 | 39 | |
r17967 | r17968 | |
71 | 72 | |
72 | 73 | |
73 | 74 | |
74 | SCREEN_UPDATE_IND16( tiamc1 ); | |
75 | 75 | |
76 |
r17967 | r17968 | |
---|---|---|
42 | 42 | virtual void video_start(); |
43 | 43 | virtual void palette_init(); |
44 | 44 | DECLARE_VIDEO_START(roadf); |
45 | UINT32 screen_update_hyperspt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
45 | 46 | }; |
46 | 47 | |
47 | 48 | /*----------- defined in video/hyperspt.c -----------*/ |
r17967 | r17968 | |
49 | 50 | |
50 | 51 | |
51 | 52 | |
52 | SCREEN_UPDATE_IND16( hyperspt ); | |
53 | 53 | |
54 | 54 | |
55 |
r17967 | r17968 | |
---|---|---|
138 | 138 | DECLARE_MACHINE_RESET(zerowing); |
139 | 139 | DECLARE_MACHINE_RESET(demonwld); |
140 | 140 | 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); | |
141 | 146 | }; |
142 | 147 | |
143 | 148 | |
r17967 | r17968 | |
160 | 165 | |
161 | 166 | |
162 | 167 | |
163 | SCREEN_VBLANK( rallybik ); | |
164 | SCREEN_VBLANK( toaplan1 ); | |
165 | SCREEN_VBLANK( samesame ); | |
166 | 168 | |
167 | 169 | |
168 | SCREEN_UPDATE_IND16( rallybik ); | |
169 | SCREEN_UPDATE_IND16( toaplan1 ); | |
170 | ||
171 | ||
172 | ||
173 | ||
174 |
r17967 | r17968 | |
---|---|---|
98 | 98 | TILE_GET_INFO_MEMBER(bg_get_tile_info); |
99 | 99 | virtual void machine_start(); |
100 | 100 | virtual void video_start(); |
101 | UINT32 screen_update_segag80r(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
101 | 102 | }; |
102 | 103 | |
103 | 104 | |
r17967 | r17968 | |
125 | 126 | |
126 | 127 | |
127 | 128 | |
128 | SCREEN_UPDATE_IND16( segag80r ); | |
129 | 129 | |
130 | 130 | |
131 | 131 | |
r17967 | r17968 | |
134 | 134 | |
135 | 135 | |
136 | 136 | |
137 | ||
137 | 138 | INTERRUPT_GEN( sindbadm_vblank_start ); |
138 | 139 |
r17967 | r17968 | |
---|---|---|
36 | 36 | virtual void machine_reset(); |
37 | 37 | virtual void video_start(); |
38 | 38 | DECLARE_VIDEO_START(untoucha); |
39 | UINT32 screen_update_hnayayoi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
39 | 40 | }; |
40 | 41 | |
41 | 42 | |
r17967 | r17968 | |
43 | 44 | |
44 | 45 | |
45 | 46 | |
46 | SCREEN_UPDATE_IND16( hnayayoi ); | |
47 | 47 | |
48 |
r17967 | r17968 | |
---|---|---|
132 | 132 | DECLARE_VIDEO_START(glfgreat); |
133 | 133 | DECLARE_MACHINE_START(prmrsocr); |
134 | 134 | 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); | |
135 | 143 | }; |
136 | 144 | |
137 | 145 | |
r17967 | r17968 | |
159 | 167 | |
160 | 168 | |
161 | 169 | |
162 | SCREEN_UPDATE_IND16( mia ); | |
163 | SCREEN_UPDATE_IND16( tmnt ); | |
164 | SCREEN_UPDATE_IND16( punkshot ); | |
165 | SCREEN_UPDATE_IND16( lgtnfght ); | |
166 | SCREEN_UPDATE_IND16( glfgreat ); | |
167 | SCREEN_UPDATE_IND16( tmnt2 ); | |
168 | SCREEN_UPDATE_IND16( thndrx2 ); | |
169 | 170 | |
170 | SCREEN_VBLANK( blswhstl ); | |
171 | ||
172 | ||
173 | ||
174 | ||
175 | ||
176 | ||
177 | ||
178 |
r17967 | r17968 | |
---|---|---|
148 | 148 | DECLARE_MACHINE_RESET(zeroteam); |
149 | 149 | DECLARE_MACHINE_RESET(xsedae); |
150 | 150 | DECLARE_MACHINE_RESET(raidendx); |
151 | UINT32 screen_update_raiden2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
151 | 152 | }; |
152 | 153 | |
153 | 154 |
r17967 | r17968 | |
---|---|---|
96 | 96 | virtual void machine_reset(); |
97 | 97 | virtual void video_start(); |
98 | 98 | DECLARE_MACHINE_RESET(naomi); |
99 | UINT32 screen_update_dc(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
99 | 100 | }; |
100 | 101 | |
101 | 102 | /*----------- defined in machine/dc.c -----------*/ |
r17967 | r17968 | |
307 | 308 | DECLARE_WRITE64_HANDLER( ta_fifo_poly_w ); |
308 | 309 | DECLARE_WRITE64_HANDLER( ta_fifo_yuv_w ); |
309 | 310 | |
310 | SCREEN_UPDATE_RGB32(dc); | |
311 | 311 | |
312 | ||
312 | 313 | /*--------------- CORE registers --------------*/ |
313 | 314 | #define PVRID ((0x005f8000-0x005f8000)/4) |
314 | 315 | #define REVISION ((0x005f8004-0x005f8000)/4) |
r17967 | r17968 | |
---|---|---|
51 | 51 | DECLARE_READ8_MEMBER(p8910_1a_r); |
52 | 52 | DECLARE_WRITE8_MEMBER(p8910_0b_w); |
53 | 53 | DECLARE_WRITE8_MEMBER(taxidriv_spritectrl_w); |
54 | UINT32 screen_update_taxidriv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
54 | 55 | }; |
55 | 56 | |
56 | 57 | |
57 | 58 | /*----------- defined in video/taxidriv.c -----------*/ |
58 | 59 | |
59 | ||
60 |
r17967 | r17968 | |
---|---|---|
159 | 159 | TILE_GET_INFO_MEMBER(taitojc_tile_info); |
160 | 160 | virtual void machine_reset(); |
161 | 161 | 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); | |
162 | 164 | }; |
163 | 165 | |
164 | 166 | |
r17967 | r17968 | |
168 | 170 | void taitojc_render_polygons(running_machine &machine, UINT16 *polygon_fifo, int length); |
169 | 171 | |
170 | 172 | |
171 | SCREEN_UPDATE_IND16(taitojc); | |
172 | SCREEN_UPDATE_IND16(dendego); | |
173 | 173 | |
174 | ||
175 | ||
174 | 176 | // lookup tables for densha de go analog controls/meters |
175 | 177 | const int dendego_odometer_table[0x100] = |
176 | 178 | { |
r17967 | r17968 | |
---|---|---|
51 | 51 | virtual void machine_reset(); |
52 | 52 | virtual void video_start(); |
53 | 53 | virtual void palette_init(); |
54 | UINT32 screen_update_pitnrun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
54 | 55 | }; |
55 | 56 | |
56 | 57 | |
r17967 | r17968 | |
67 | 68 | |
68 | 69 | |
69 | 70 | |
70 | ||
71 |
r17967 | r17968 | |
---|---|---|
46 | 46 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
47 | 47 | TILE_GET_INFO_MEMBER(get_fg_tile_info); |
48 | 48 | virtual void video_start(); |
49 | UINT32 screen_update_tehkanwc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
49 | 50 | }; |
50 | 51 | |
51 | 52 |
r17967 | r17968 | |
---|---|---|
50 | 50 | virtual void machine_start(); |
51 | 51 | virtual void machine_reset(); |
52 | 52 | virtual void video_start(); |
53 | UINT32 screen_update_bionicc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
53 | 54 | }; |
54 | 55 | |
55 | 56 | |
r17967 | r17968 | |
57 | 58 | |
58 | 59 | |
59 | 60 | |
60 | ||
61 |
r17967 | r17968 | |
---|---|---|
40 | 40 | virtual void machine_start(); |
41 | 41 | virtual void machine_reset(); |
42 | 42 | virtual void video_start(); |
43 | UINT32 screen_update_citycon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
43 | 44 | }; |
44 | 45 | |
45 | 46 | |
46 | 47 | /*----------- defined in video/citycon.c -----------*/ |
47 | 48 | |
48 | 49 | |
49 | SCREEN_UPDATE_IND16( citycon ); | |
50 | 50 | |
51 |
r17967 | r17968 | |
---|---|---|
40 | 40 | TILE_GET_INFO_MEMBER(get_tile_info2); |
41 | 41 | virtual void video_start(); |
42 | 42 | virtual void palette_init(); |
43 | UINT32 screen_update_suprridr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
43 | 44 | }; |
44 | 45 | |
45 | 46 | |
r17967 | r17968 | |
51 | 52 | int suprridr_is_screen_flipped(running_machine &machine); |
52 | 53 | |
53 | 54 | |
54 | ||
55 |
r17967 | r17968 | |
---|---|---|
44 | 44 | virtual void machine_start(); |
45 | 45 | virtual void machine_reset(); |
46 | 46 | virtual void video_start(); |
47 | UINT32 screen_update_spy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
47 | 48 | }; |
48 | 49 | |
49 | 50 | |
r17967 | r17968 | |
53 | 54 | extern void spy_sprite_callback(running_machine &machine, int *code,int *color,int *priority_mask,int *shadow); |
54 | 55 | |
55 | 56 | |
56 | ||
57 |
r17967 | r17968 | |
---|---|---|
89 | 89 | virtual void machine_reset(); |
90 | 90 | DECLARE_VIDEO_START(sngkace); |
91 | 91 | 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); | |
92 | 95 | }; |
93 | 96 | |
94 | 97 | |
r17967 | r17968 | |
99 | 102 | |
100 | 103 | |
101 | 104 | |
102 | SCREEN_UPDATE_IND16( psikyo ); | |
103 | SCREEN_UPDATE_IND16( psikyo_bootleg ); | |
104 | SCREEN_VBLANK( psikyo ); | |
105 | ||
106 | ||
107 |
r17967 | r17968 | |
---|---|---|
99 | 99 | DECLARE_MACHINE_START(powerbal); |
100 | 100 | DECLARE_MACHINE_RESET(powerbal); |
101 | 101 | 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); | |
102 | 108 | }; |
103 | 109 | |
104 | 110 | /*----------- defined in video/playmark.c -----------*/ |
r17967 | r17968 | |
111 | 117 | |
112 | 118 | |
113 | 119 | |
114 | SCREEN_UPDATE_IND16( bigtwin ); | |
115 | SCREEN_UPDATE_IND16( bigtwinb ); | |
116 | SCREEN_UPDATE_IND16( wbeachvl ); | |
117 | SCREEN_UPDATE_IND16( excelsr ); | |
118 | SCREEN_UPDATE_IND16( hrdtimes ); | |
120 | ||
121 | ||
122 | ||
123 | ||
124 |
r17967 | r17968 | |
---|---|---|
23 | 23 | virtual void video_start(); |
24 | 24 | virtual void palette_init(); |
25 | 25 | DECLARE_VIDEO_START(sigma2k); |
26 | UINT32 screen_update_ampoker2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
26 | 27 | }; |
27 | 28 | |
28 | 29 | |
r17967 | r17968 | |
31 | 32 | |
32 | 33 | |
33 | 34 | |
34 | ||
35 |
r17967 | r17968 | |
---|---|---|
63 | 63 | virtual void machine_start(); |
64 | 64 | virtual void machine_reset(); |
65 | 65 | virtual void video_start(); |
66 | UINT32 screen_update_hedpanic(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
66 | 67 | }; |
67 | 68 | |
68 | 69 | |
r17967 | r17968 | |
70 | 71 | |
71 | 72 | |
72 | 73 | |
73 | ||
74 |
r17967 | r17968 | |
---|---|---|
114 | 114 | DECLARE_VIDEO_START(pgm); |
115 | 115 | DECLARE_MACHINE_START(pgm); |
116 | 116 | 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); | |
117 | 119 | }; |
118 | 120 | |
119 | 121 | |
r17967 | r17968 | |
429 | 431 | |
430 | 432 | |
431 | 433 | |
432 | SCREEN_VBLANK( pgm ); | |
433 | SCREEN_UPDATE_IND16( pgm ); | |
434 | ||
435 |
r17967 | r17968 | |
---|---|---|
197 | 197 | DECLARE_MACHINE_RESET(model3_20); |
198 | 198 | DECLARE_MACHINE_START(model3_21); |
199 | 199 | DECLARE_MACHINE_RESET(model3_21); |
200 | UINT32 screen_update_model3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
200 | 201 | }; |
201 | 202 | |
202 | 203 | |
r17967 | r17968 | |
217 | 218 | |
218 | 219 | |
219 | 220 | |
220 | SCREEN_UPDATE_IND16(model3); | |
221 | 221 | |
222 | ||
222 | 223 | void real3d_display_list_end(running_machine &machine); |
223 | 224 | void real3d_display_list1_dma(address_space &space, UINT32 src, UINT32 dst, int length, int byteswap); |
224 | 225 | void real3d_display_list2_dma(address_space &space, UINT32 src, UINT32 dst, int length, int byteswap); |
r17967 | r17968 | |
---|---|---|
154 | 154 | DECLARE_DRIVER_INIT(aircomb); |
155 | 155 | DECLARE_MACHINE_START(namcos21); |
156 | 156 | DECLARE_VIDEO_START(namcos21); |
157 | UINT32 screen_update_namcos21(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
157 | 158 | }; |
158 | 159 | |
159 | 160 |
r17967 | r17968 | |
---|---|---|
29 | 29 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
30 | 30 | TILE_GET_INFO_MEMBER(get_fg_tile_info); |
31 | 31 | virtual void video_start(); |
32 | UINT32 screen_update_iqblock(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
32 | 33 | }; |
33 | 34 | |
34 | 35 | |
r17967 | r17968 | |
36 | 37 | |
37 | 38 | |
38 | 39 | |
39 | ||
40 |
r17967 | r17968 | |
---|---|---|
68 | 68 | DECLARE_VIDEO_START(leprechn); |
69 | 69 | DECLARE_VIDEO_START(trvquest); |
70 | 70 | 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); | |
71 | 73 | }; |
72 | 74 | |
73 | 75 |
r17967 | r17968 | |
---|---|---|
90 | 90 | virtual void machine_start(); |
91 | 91 | virtual void machine_reset(); |
92 | 92 | 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); | |
93 | 96 | }; |
94 | 97 | |
95 | 98 | |
r17967 | r17968 | |
97 | 100 | |
98 | 101 | |
99 | 102 | |
100 | SCREEN_UPDATE_IND16( darius_left ); | |
101 | SCREEN_UPDATE_IND16( darius_middle ); | |
102 | SCREEN_UPDATE_IND16( darius_right ); | |
103 | ||
104 | ||
105 |
r17967 | r17968 | |
---|---|---|
40 | 40 | virtual void machine_start(); |
41 | 41 | virtual void machine_reset(); |
42 | 42 | virtual void video_start(); |
43 | UINT32 screen_update_capbowl(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
43 | 44 | }; |
44 | 45 | |
45 | 46 | /*----------- defined in video/capbowl.c -----------*/ |
46 | 47 | |
47 | 48 | |
48 | SCREEN_UPDATE_RGB32( capbowl ); | |
49 | 49 | |
50 | 50 | |
51 |
r17967 | r17968 | |
---|---|---|
35 | 35 | virtual void machine_reset(); |
36 | 36 | virtual void video_start(); |
37 | 37 | virtual void palette_init(); |
38 | UINT32 screen_update_ikki(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
38 | 39 | }; |
39 | 40 | |
40 | 41 | |
r17967 | r17968 | |
43 | 44 | |
44 | 45 | |
45 | 46 | |
46 | ||
47 |
r17967 | r17968 | |
---|---|---|
48 | 48 | virtual void machine_start(); |
49 | 49 | virtual void machine_reset(); |
50 | 50 | virtual void video_start(); |
51 | UINT32 screen_update_cbasebal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
51 | 52 | }; |
52 | 53 | |
53 | 54 | /*----------- defined in video/cbasebal.c -----------*/ |
54 | 55 | |
55 | 56 | |
56 | 57 | |
57 | ||
58 |
r17967 | r17968 | |
---|---|---|
37 | 37 | DECLARE_DRIVER_INIT(mayjisn2); |
38 | 38 | DECLARE_DRIVER_INIT(renju); |
39 | 39 | 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); | |
40 | 42 | }; |
41 | 43 | |
42 | 44 | #define ISMACS (st0016_game&0x80) |
r17967 | r17968 | |
69 | 71 | extern UINT8 *st0016_charram; |
70 | 72 | |
71 | 73 | |
72 | void st0016_draw_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
73 | ||
74 | SCREEN_UPDATE_IND16(st0016); |
r17967 | r17968 | |
---|---|---|
42 | 42 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
43 | 43 | virtual void video_start(); |
44 | 44 | virtual void palette_init(); |
45 | UINT32 screen_update_sbasketb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
45 | 46 | }; |
46 | 47 | |
47 | 48 | /*----------- defined in video/sbasketb.c -----------*/ |
r17967 | r17968 | |
49 | 50 | |
50 | 51 | |
51 | 52 | |
52 | ||
53 |
r17967 | r17968 | |
---|---|---|
25 | 25 | device_t *m_deco_tilegen1; |
26 | 26 | DECLARE_DRIVER_INIT(funkyjet); |
27 | 27 | virtual void machine_start(); |
28 | UINT32 screen_update_funkyjet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
28 | 29 | }; |
29 | 30 | |
30 | 31 | |
31 | 32 | |
32 | 33 | /*----------- defined in video/funkyjet.c -----------*/ |
33 | 34 | |
34 | ||
35 |
r17967 | r17968 | |
---|---|---|
39 | 39 | virtual void machine_reset(); |
40 | 40 | virtual void video_start(); |
41 | 41 | virtual void palette_init(); |
42 | UINT32 screen_update_ksayakyu(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
42 | 43 | }; |
43 | 44 | |
44 | 45 | |
r17967 | r17968 | |
46 | 47 | |
47 | 48 | |
48 | 49 | |
49 | ||
50 |
r17967 | r17968 | |
---|---|---|
64 | 64 | virtual void machine_start(); |
65 | 65 | virtual void machine_reset(); |
66 | 66 | virtual void video_start(); |
67 | UINT32 screen_update_xexex(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
67 | 68 | }; |
68 | 69 | |
69 | 70 | |
r17967 | r17968 | |
73 | 74 | extern void xexex_tile_callback(running_machine &machine, int layer, int *code, int *color, int *flags); |
74 | 75 | |
75 | 76 | |
76 | ||
77 |
r17967 | r17968 | |
---|---|---|
33 | 33 | virtual void machine_start(); |
34 | 34 | virtual void machine_reset(); |
35 | 35 | virtual void video_start(); |
36 | UINT32 screen_update_himesiki(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
36 | 37 | }; |
37 | 38 | |
38 | 39 | |
39 | 40 | /*----------- defined in video/himesiki.c -----------*/ |
40 | 41 | |
41 | 42 | |
42 | SCREEN_UPDATE_IND16( himesiki ); | |
43 | 43 | |
44 |
r17967 | r17968 | |
---|---|---|
35 | 35 | virtual void machine_start(); |
36 | 36 | virtual void machine_reset(); |
37 | 37 | virtual void video_start(); |
38 | UINT32 screen_update_battlex(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
38 | 39 | }; |
39 | 40 | |
40 | 41 |
r17967 | r17968 | |
---|---|---|
20 | 20 | DECLARE_MACHINE_START(skullxbo); |
21 | 21 | DECLARE_MACHINE_RESET(skullxbo); |
22 | 22 | DECLARE_VIDEO_START(skullxbo); |
23 | UINT32 screen_update_skullxbo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
23 | 24 | }; |
24 | 25 | |
25 | 26 | |
r17967 | r17968 | |
31 | 32 | DECLARE_WRITE16_HANDLER( skullxbo_mobmsb_w ); |
32 | 33 | |
33 | 34 | |
34 | SCREEN_UPDATE_IND16( skullxbo ); | |
35 | 35 | |
36 | ||
36 | 37 | void skullxbo_scanline_update(running_machine &machine, int param); |
r17967 | r17968 | |
---|---|---|
48 | 48 | virtual void video_start(); |
49 | 49 | virtual void palette_init(); |
50 | 50 | 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); | |
51 | 53 | }; |
52 | 54 | |
53 | 55 | |
r17967 | r17968 | |
56 | 58 | |
57 | 59 | |
58 | 60 | |
59 | SCREEN_UPDATE_IND16( ironhors ); | |
60 | 61 | |
61 | SCREEN_UPDATE_IND16( farwest ); | |
62 | ||
63 |
r17967 | r17968 | |
---|---|---|
44 | 44 | DECLARE_WRITE8_MEMBER(mrflea_spriteram_w); |
45 | 45 | virtual void machine_start(); |
46 | 46 | virtual void machine_reset(); |
47 | UINT32 screen_update_mrflea(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
47 | 48 | }; |
48 | 49 | |
49 | 50 | |
50 | 51 | /*----------- defined in video/mrflea.c -----------*/ |
51 | 52 | |
52 | 53 | |
53 | ||
54 |
r17967 | r17968 | |
---|---|---|
26 | 26 | virtual void machine_reset(); |
27 | 27 | DECLARE_MACHINE_START(epos); |
28 | 28 | DECLARE_MACHINE_START(dealer); |
29 | UINT32 screen_update_epos(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
29 | 30 | }; |
30 | 31 | |
31 | 32 | |
32 | 33 | /*----------- defined in video/epos.c -----------*/ |
33 | 34 | |
34 | ||
35 |
r17967 | r17968 | |
---|---|---|
105 | 105 | DECLARE_DRIVER_INIT(sfiii2); |
106 | 106 | virtual void machine_reset(); |
107 | 107 | virtual void video_start(); |
108 | UINT32 screen_update_cps3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
108 | 109 | }; |
109 | 110 | |
110 | 111 |
r17967 | r17968 | |
---|---|---|
46 | 46 | virtual void machine_start(); |
47 | 47 | virtual void machine_reset(); |
48 | 48 | virtual void video_start(); |
49 | UINT32 screen_update_glass(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
49 | 50 | }; |
50 | 51 | |
51 | 52 | |
r17967 | r17968 | |
53 | 54 | |
54 | 55 | |
55 | 56 | |
56 | ||
57 |
r17967 | r17968 | |
---|---|---|
41 | 41 | TILE_GET_INFO_MEMBER(get_mcatadv_tile_info2); |
42 | 42 | virtual void machine_start(); |
43 | 43 | 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); | |
44 | 46 | }; |
45 | 47 | |
46 | 48 | /*----------- defined in video/mcatadv.c -----------*/ |
47 | 49 | |
48 | SCREEN_UPDATE_IND16( mcatadv ); | |
49 | 50 | |
50 | SCREEN_VBLANK( mcatadv ); | |
51 | 51 | |
52 | ||
53 |
r17967 | r17968 | |
---|---|---|
119 | 119 | DECLARE_VIDEO_START(bgaregga); |
120 | 120 | DECLARE_VIDEO_START(batrider); |
121 | 121 | 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); | |
122 | 130 | }; |
123 | 131 | |
124 | 132 | /*----------- defined in video/toaplan2.c -----------*/ |
r17967 | r17968 | |
130 | 138 | |
131 | 139 | |
132 | 140 | |
133 | SCREEN_UPDATE_IND16( toaplan2 ); | |
134 | SCREEN_UPDATE_IND16( truxton2 ); | |
135 | SCREEN_UPDATE_IND16( batrider ); | |
136 | SCREEN_UPDATE_IND16( dogyuun ); | |
137 | SCREEN_UPDATE_IND16( batsugun ); | |
138 | 141 | |
139 | SCREEN_VBLANK( toaplan2 ); | |
140 | 142 | |
143 | ||
144 | ||
145 | ||
146 | ||
147 | ||
148 | ||
141 | 149 | /* non-vdp text layer */ |
142 | 150 |
r17967 | r17968 | |
---|---|---|
64 | 64 | DECLARE_VIDEO_START(cinemat_64level); |
65 | 65 | DECLARE_VIDEO_START(cinemat_color); |
66 | 66 | 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); | |
67 | 69 | }; |
68 | 70 | |
69 | 71 | |
r17967 | r17968 | |
97 | 99 | |
98 | 100 | |
99 | 101 | |
100 | SCREEN_UPDATE_RGB32( cinemat ); | |
101 | 102 | |
102 | SCREEN_UPDATE_RGB32( spacewar ); | |
103 | ||
104 |
r17967 | r17968 | |
---|---|---|
28 | 28 | DECLARE_WRITE8_MEMBER(adpcm_w); |
29 | 29 | TILE_GET_INFO_MEMBER(get_tile_info); |
30 | 30 | virtual void video_start(); |
31 | UINT32 screen_update_mjkjidai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
31 | 32 | }; |
32 | 33 | |
33 | 34 | |
34 | 35 | /*----------- defined in video/mjkjidai.c -----------*/ |
35 | 36 | |
36 | 37 | |
37 | SCREEN_UPDATE_IND16( mjkjidai ); | |
38 | 38 | |
39 | 39 | |
40 |
r17967 | r17968 | |
---|---|---|
42 | 42 | virtual void machine_reset(); |
43 | 43 | virtual void video_start(); |
44 | 44 | virtual void palette_init(); |
45 | UINT32 screen_update_jailbrek(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
45 | 46 | }; |
46 | 47 | |
47 | 48 | |
r17967 | r17968 | |
50 | 51 | |
51 | 52 | |
52 | 53 | |
53 | ||
54 |
r17967 | r17968 | |
---|---|---|
39 | 39 | virtual void machine_start(); |
40 | 40 | DECLARE_VIDEO_START(bigkarnk); |
41 | 41 | 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); | |
42 | 44 | }; |
43 | 45 | |
44 | 46 | |
r17967 | r17968 | |
49 | 51 | |
50 | 52 | |
51 | 53 | |
52 | SCREEN_UPDATE_IND16( bigkarnk ); | |
53 | SCREEN_UPDATE_IND16( maniacsq ); | |
54 | ||
55 |
r17967 | r17968 | |
---|---|---|
76 | 76 | DECLARE_VIDEO_START(wecleman); |
77 | 77 | DECLARE_MACHINE_RESET(hotchase); |
78 | 78 | 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); | |
79 | 81 | }; |
80 | 82 | |
81 | 83 | |
82 | 84 | /*----------- defined in video/wecleman.c -----------*/ |
83 | 85 | |
84 | SCREEN_UPDATE_RGB32( wecleman ); | |
85 | 86 | |
86 | SCREEN_UPDATE_IND16( hotchase ); | |
87 | 87 | |
88 | 88 | |
89 | ||
90 | ||
89 | 91 | void hotchase_zoom_callback_0(running_machine &machine, int *code,int *color,int *flags); |
90 | 92 | void hotchase_zoom_callback_1(running_machine &machine, int *code,int *color,int *flags); |
r17967 | r17968 | |
---|---|---|
42 | 42 | virtual void machine_reset(); |
43 | 43 | virtual void video_start(); |
44 | 44 | virtual void palette_init(); |
45 | UINT32 screen_update_tankbust(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
45 | 46 | }; |
46 | 47 | |
47 | 48 | |
48 | 49 | /*----------- defined in video/tankbust.c -----------*/ |
49 | 50 | |
50 | 51 | |
51 | SCREEN_UPDATE_IND16( tankbust ); | |
52 | 52 | |
53 | 53 | |
54 | 54 | |
55 | 55 | |
56 |
r17967 | r17968 | |
---|---|---|
38 | 38 | virtual void machine_reset(); |
39 | 39 | virtual void video_start(); |
40 | 40 | virtual void palette_init(); |
41 | UINT32 screen_update_bankp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
41 | 42 | }; |
42 | 43 | |
43 | 44 | |
r17967 | r17968 | |
46 | 47 | |
47 | 48 | |
48 | 49 | |
49 | SCREEN_UPDATE_IND16( bankp ); | |
50 | 50 | |
51 | 51 | |
52 |
r17967 | r17968 | |
---|---|---|
34 | 34 | DECLARE_DRIVER_INIT(pastelg); |
35 | 35 | virtual void video_start(); |
36 | 36 | virtual void palette_init(); |
37 | UINT32 screen_update_pastelg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
37 | 38 | }; |
38 | 39 | |
39 | 40 | |
40 | 41 | /*----------- defined in video/pastelg.c -----------*/ |
41 | 42 | |
42 | 43 | |
43 | SCREEN_UPDATE_IND16( pastelg ); | |
44 | 44 | |
45 | 45 | |
46 | 46 | |
47 | ||
47 | 48 | int pastelg_blitter_src_addr_r(address_space &space); |
r17967 | r17968 | |
---|---|---|
36 | 36 | virtual void machine_reset(); |
37 | 37 | virtual void video_start(); |
38 | 38 | virtual void palette_init(); |
39 | UINT32 screen_update_crbaloon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
39 | 40 | }; |
40 | 41 | |
41 | 42 | |
r17967 | r17968 | |
55 | 56 | |
56 | 57 | |
57 | 58 | |
58 | SCREEN_UPDATE_IND16( crbaloon ); | |
59 | 59 | |
60 | 60 | |
61 | ||
61 | 62 | UINT16 crbaloon_get_collision_address(running_machine &machine); |
62 | 63 | void crbaloon_set_clear_collision_address(running_machine &machine, int _crbaloon_collision_address_clear); |
r17967 | r17968 | |
---|---|---|
22 | 22 | TILE_GET_INFO_MEMBER(get_fg_tile_info); |
23 | 23 | virtual void video_start(); |
24 | 24 | virtual void palette_init(); |
25 | UINT32 screen_update_portrait(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
25 | 26 | }; |
26 | 27 | |
27 | 28 | |
r17967 | r17968 | |
29 | 30 | |
30 | 31 | |
31 | 32 | |
32 | ||
33 |
r17967 | r17968 | |
---|---|---|
46 | 46 | virtual void machine_reset(); |
47 | 47 | virtual void video_start(); |
48 | 48 | virtual void palette_init(); |
49 | UINT32 screen_update_mnchmobl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
49 | 50 | }; |
50 | 51 | |
51 | 52 | |
r17967 | r17968 | |
54 | 55 | |
55 | 56 | |
56 | 57 | |
57 | ||
58 |
r17967 | r17968 | |
---|---|---|
28 | 28 | virtual void machine_reset(); |
29 | 29 | virtual void video_start(); |
30 | 30 | virtual void palette_init(); |
31 | UINT32 screen_update_funkybee(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
31 | 32 | }; |
32 | 33 | |
33 | 34 | |
r17967 | r17968 | |
36 | 37 | |
37 | 38 | |
38 | 39 | |
39 | ||
40 |
r17967 | r17968 | |
---|---|---|
47 | 47 | DECLARE_CUSTOM_INPUT_MEMBER(frame_counter_r); |
48 | 48 | DECLARE_CUSTOM_INPUT_MEMBER(coin_word_r); |
49 | 49 | virtual void video_start(); |
50 | UINT32 screen_update_galastrm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
50 | 51 | }; |
51 | 52 | |
52 | 53 | |
53 | 54 | /*----------- defined in video/galastrm.c -----------*/ |
54 | 55 | |
55 | 56 | |
56 | ||
57 |
r17967 | r17968 | |
---|---|---|
106 | 106 | DECLARE_VIDEO_START(nndmseal); |
107 | 107 | DECLARE_VIDEO_START(rockntread); |
108 | 108 | 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); | |
109 | 113 | }; |
110 | 114 | |
111 | 115 | class stepstag_state : public tetrisp2_state |
r17967 | r17968 | |
125 | 129 | DECLARE_WRITE16_MEMBER( stepstag_palette_w ); |
126 | 130 | DECLARE_DRIVER_INIT(stepstag); |
127 | 131 | 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); | |
128 | 135 | }; |
129 | 136 | |
130 | 137 | /*----------- defined in video/tetrisp2.c -----------*/ |
r17967 | r17968 | |
133 | 140 | |
134 | 141 | |
135 | 142 | |
136 | SCREEN_UPDATE_IND16( tetrisp2 ); | |
137 | 143 | |
138 | 144 | |
139 | SCREEN_UPDATE_IND16( rockntread ); | |
140 | 145 | |
141 | 146 | |
142 | SCREEN_UPDATE_RGB32( rocknms_left ); | |
143 | SCREEN_UPDATE_RGB32( rocknms_right ); | |
144 | 147 | |
145 | 148 | |
146 | 149 | |
147 | 150 | |
148 | SCREEN_UPDATE_IND16( stepstag_left ); | |
149 | SCREEN_UPDATE_IND16( stepstag_mid ); | |
150 | SCREEN_UPDATE_IND16( stepstag_right ); | |
151 | ||
152 | ||
153 | ||
154 | ||
155 | ||
156 | ||
157 |
r17967 | r17968 | |
---|---|---|
58 | 58 | DECLARE_VIDEO_START(lastduel); |
59 | 59 | DECLARE_MACHINE_START(madgear); |
60 | 60 | 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); | |
61 | 63 | }; |
62 | 64 | |
63 | 65 | /*----------- defined in video/lastduel.c -----------*/ |
r17967 | r17968 | |
65 | 67 | |
66 | 68 | |
67 | 69 | |
68 | SCREEN_UPDATE_IND16( lastduel ); | |
69 | SCREEN_UPDATE_IND16( madgear ); | |
70 | ||
71 |
r17967 | r17968 | |
---|---|---|
98 | 98 | DECLARE_VIDEO_START(alpha68k); |
99 | 99 | DECLARE_MACHINE_START(alpha68k_V); |
100 | 100 | 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); | |
101 | 107 | }; |
102 | 108 | |
103 | 109 | /* game_id - used to deal with a few game specific situations */ |
r17967 | r17968 | |
116 | 122 | |
117 | 123 | |
118 | 124 | |
119 | SCREEN_UPDATE_IND16( kyros ); | |
120 | SCREEN_UPDATE_IND16( sstingry ); | |
121 | SCREEN_UPDATE_IND16( alpha68k_I ); | |
122 | SCREEN_UPDATE_IND16( alpha68k_II ); | |
123 | SCREEN_UPDATE_IND16( alpha68k_V ); | |
124 | SCREEN_UPDATE_IND16( alpha68k_V_sb ); | |
125 | 125 | |
126 | ||
127 | ||
128 | ||
129 | ||
130 | ||
131 | ||
126 | 132 | void alpha68k_V_video_bank_w(running_machine &machine, int bank); |
127 | 133 | void alpha68k_flipscreen_w(running_machine &machine, int flip); |
128 | 134 |
r17967 | r17968 | |
---|---|---|
66 | 66 | virtual void machine_start(); |
67 | 67 | virtual void machine_reset(); |
68 | 68 | virtual void video_start(); |
69 | UINT32 screen_update_drgnmst(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
69 | 70 | }; |
70 | 71 | |
71 | 72 | |
r17967 | r17968 | |
73 | 74 | |
74 | 75 | |
75 | 76 | |
76 | ||
77 |
r17967 | r17968 | |
---|---|---|
43 | 43 | DECLARE_DRIVER_INIT(starfire); |
44 | 44 | DECLARE_DRIVER_INIT(fireone); |
45 | 45 | virtual void video_start(); |
46 | UINT32 screen_update_starfire(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
46 | 47 | }; |
47 | 48 | |
48 | 49 | /*----------- defined in video/starfire.c -----------*/ |
49 | 50 | |
50 | SCREEN_UPDATE_RGB32( starfire ); | |
51 | 51 | |
52 | 52 | |
53 | 53 | |
54 |
r17967 | r17968 | |
---|---|---|
48 | 48 | DECLARE_MACHINE_START(freekick); |
49 | 49 | DECLARE_MACHINE_START(oigas); |
50 | 50 | 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); | |
51 | 54 | }; |
52 | 55 | |
53 | 56 | |
54 | 57 | /*----------- defined in video/freekick.c -----------*/ |
55 | 58 | |
56 | 59 | |
57 | SCREEN_UPDATE_IND16(gigas); | |
58 | SCREEN_UPDATE_IND16(pbillrd); | |
59 | SCREEN_UPDATE_IND16(freekick); | |
60 | ||
61 | ||
62 |
r17967 | r17968 | |
---|---|---|
80 | 80 | DECLARE_VIDEO_START(bigrun); |
81 | 81 | DECLARE_VIDEO_START(f1gpstar); |
82 | 82 | 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); | |
83 | 87 | }; |
84 | 88 | |
85 | 89 | |
r17967 | r17968 | |
92 | 96 | |
93 | 97 | |
94 | 98 | |
95 | SCREEN_UPDATE_IND16( bigrun ); | |
96 | SCREEN_UPDATE_IND16( cischeat ); | |
97 | SCREEN_UPDATE_IND16( f1gpstar ); | |
98 | SCREEN_UPDATE_IND16( scudhamm ); | |
99 | ||
100 | ||
101 | ||
102 |
r17967 | r17968 | |
---|---|---|
254 | 254 | DECLARE_VIDEO_START(namcos22s); |
255 | 255 | DECLARE_VIDEO_START(namcos22); |
256 | 256 | 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); | |
257 | 259 | }; |
258 | 260 | |
259 | 261 | |
260 | 262 | /*----------- defined in video/namcos22.c -----------*/ |
261 | 263 | |
262 | 264 | |
263 | SCREEN_UPDATE_RGB32( namcos22 ); | |
264 | 265 | |
265 | 266 | |
266 | SCREEN_UPDATE_RGB32( namcos22s ); | |
267 | 267 | |
268 | ||
269 | ||
268 | 270 | void namcos22_draw_direct_poly( running_machine &machine, const UINT16 *pSource ); |
269 | 271 | UINT32 namcos22_point_rom_r( running_machine &machine, offs_t offs ); |
270 | 272 | void namcos22_enable_slave_simulation( running_machine &machine, int enable ); |
r17967 | r17968 | |
---|---|---|
75 | 75 | DECLARE_CUSTOM_INPUT_MEMBER(samurai_protection_r); |
76 | 76 | DECLARE_INPUT_CHANGED_MEMBER(coin_changed); |
77 | 77 | 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); | |
78 | 81 | }; |
79 | 82 | |
80 | 83 | |
r17967 | r17968 | |
86 | 89 | /*----------- defined in video/vicdual.c -----------*/ |
87 | 90 | |
88 | 91 | |
89 | SCREEN_UPDATE_RGB32( vicdual_bw ); | |
90 | SCREEN_UPDATE_RGB32( vicdual_color ); | |
91 | SCREEN_UPDATE_RGB32( vicdual_bw_or_color ); | |
92 | 92 | |
93 | 93 | |
94 | ||
95 | ||
96 | ||
94 | 97 | /*----------- defined in audio/vicdual.c -----------*/ |
95 | 98 | |
96 | 99 |
r17967 | r17968 | |
---|---|---|
20 | 20 | DECLARE_MACHINE_START(xybots); |
21 | 21 | DECLARE_MACHINE_RESET(xybots); |
22 | 22 | DECLARE_VIDEO_START(xybots); |
23 | UINT32 screen_update_xybots(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
23 | 24 | }; |
24 | 25 | |
25 | 26 | |
26 | 27 | /*----------- defined in video/xybots.c -----------*/ |
27 | 28 | |
28 | 29 | |
29 | ||
30 |
r17967 | r17968 | |
---|---|---|
176 | 176 | DECLARE_VIDEO_START(scorpion); |
177 | 177 | DECLARE_VIDEO_START(ad2083); |
178 | 178 | 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); | |
179 | 181 | }; |
180 | 182 | |
181 | 183 | |
r17967 | r17968 | |
222 | 224 | void galaxold_init_stars(running_machine &machine, int colors_offset); |
223 | 225 | void galaxold_draw_stars(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect); |
224 | 226 | |
225 | SCREEN_UPDATE_IND16( galaxold ); | |
226 | SCREEN_UPDATE_IND16( dambustr ); | |
227 | 227 | |
228 | 228 | |
229 | 229 | |
230 | ||
231 | ||
230 | 232 | /*----------- defined in machine/galaxold.c -----------*/ |
231 | 233 | |
232 | 234 | TIMER_DEVICE_CALLBACK( galaxold_interrupt_timer ); |
r17967 | r17968 | |
---|---|---|
75 | 75 | DECLARE_VIDEO_START(milliped); |
76 | 76 | DECLARE_VIDEO_START(warlords); |
77 | 77 | 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); | |
78 | 82 | }; |
79 | 83 | |
80 | 84 | |
r17967 | r17968 | |
87 | 91 | |
88 | 92 | |
89 | 93 | |
90 | SCREEN_UPDATE_IND16( centiped ); | |
91 | SCREEN_UPDATE_IND16( milliped ); | |
92 | SCREEN_UPDATE_IND16( warlords ); | |
93 | SCREEN_UPDATE_IND16( bullsdrt ); | |
94 | 94 | |
95 | ||
96 | ||
97 | ||
98 |
r17967 | r17968 | |
---|---|---|
64 | 64 | DECLARE_MACHINE_START(atarisy1); |
65 | 65 | DECLARE_MACHINE_RESET(atarisy1); |
66 | 66 | DECLARE_VIDEO_START(atarisy1); |
67 | UINT32 screen_update_atarisy1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
67 | 68 | }; |
68 | 69 | |
69 | 70 | |
r17967 | r17968 | |
82 | 83 | DECLARE_WRITE16_HANDLER( atarisy1_priority_w ); |
83 | 84 | |
84 | 85 | |
85 | ||
86 |
r17967 | r17968 | |
---|---|---|
68 | 68 | virtual void machine_reset(); |
69 | 69 | virtual void video_start(); |
70 | 70 | DECLARE_VIDEO_START(wgp2); |
71 | UINT32 screen_update_wgp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
71 | 72 | }; |
72 | 73 | |
73 | 74 | |
r17967 | r17968 | |
77 | 78 | |
78 | 79 | |
79 | 80 | |
80 | ||
81 |
r17967 | r17968 | |
---|---|---|
35 | 35 | DECLARE_DRIVER_INIT(welltris); |
36 | 36 | TILE_GET_INFO_MEMBER(get_welltris_tile_info); |
37 | 37 | virtual void video_start(); |
38 | UINT32 screen_update_welltris(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
38 | 39 | }; |
39 | 40 | |
40 | 41 | |
r17967 | r17968 | |
42 | 43 | |
43 | 44 | |
44 | 45 | |
45 | ||
46 |
r17967 | r17968 | |
---|---|---|
35 | 35 | virtual void machine_reset(); |
36 | 36 | virtual void video_start(); |
37 | 37 | 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); | |
38 | 40 | }; |
39 | 41 | |
40 | 42 | |
r17967 | r17968 | |
46 | 48 | /*----------- defined in video/sprint8.c -----------*/ |
47 | 49 | |
48 | 50 | |
49 | SCREEN_VBLANK( sprint8 ); | |
50 | 51 | |
51 | SCREEN_UPDATE_IND16( sprint8 ); | |
52 | 52 | |
53 | 53 | |
54 | 54 | |
55 | ||
56 | ||
55 | 57 | /*----------- defined in audio/sprint8.c -----------*/ |
56 | 58 | |
57 | 59 | DISCRETE_SOUND_EXTERN( sprint8 ); |
r17967 | r17968 | |
---|---|---|
25 | 25 | TILE_GET_INFO_MEMBER(get_gumbo_bg_tile_info); |
26 | 26 | TILE_GET_INFO_MEMBER(get_gumbo_fg_tile_info); |
27 | 27 | virtual void video_start(); |
28 | UINT32 screen_update_gumbo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
28 | 29 | }; |
29 | 30 | |
30 | 31 | |
r17967 | r17968 | |
32 | 33 | |
33 | 34 | |
34 | 35 | |
35 | ||
36 |
r17967 | r17968 | |
---|---|---|
125 | 125 | virtual void video_start(); |
126 | 126 | DECLARE_VIDEO_START(gdfs); |
127 | 127 | 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); | |
128 | 131 | }; |
129 | 132 | |
130 | 133 | /*----------- defined in video/ssv.c -----------*/ |
r17967 | r17968 | |
135 | 138 | |
136 | 139 | |
137 | 140 | |
138 | SCREEN_UPDATE_IND16( ssv ); | |
139 | SCREEN_UPDATE_IND16( eaglshot ); | |
140 | SCREEN_UPDATE_IND16( gdfs ); | |
141 | ||
142 | ||
143 |
r17967 | r17968 | |
---|---|---|
72 | 72 | DECLARE_VIDEO_START(dec0); |
73 | 73 | DECLARE_MACHINE_RESET(slyspy); |
74 | 74 | 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); | |
75 | 82 | }; |
76 | 83 | |
77 | 84 | |
r17967 | r17968 | |
96 | 103 | UINT16 m_automat_scroll_regs[4]; |
97 | 104 | |
98 | 105 | 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); | |
99 | 108 | }; |
100 | 109 | |
101 | 110 | |
r17967 | r17968 | |
105 | 114 | |
106 | 115 | |
107 | 116 | |
108 | SCREEN_UPDATE_IND16( hbarrel ); | |
109 | SCREEN_UPDATE_IND16( baddudes ); | |
110 | SCREEN_UPDATE_IND16( birdtry ); | |
111 | SCREEN_UPDATE_IND16( robocop ); | |
112 | SCREEN_UPDATE_IND16( hippodrm ); | |
113 | SCREEN_UPDATE_IND16( slyspy ); | |
114 | SCREEN_UPDATE_IND16( midres ); | |
115 | 117 | |
118 | ||
119 | ||
120 | ||
121 | ||
122 | ||
123 | ||
124 | ||
116 | 125 | // bootlegs |
117 | SCREEN_UPDATE_IND16( automat ); | |
118 | SCREEN_UPDATE_IND16( secretab ); | |
119 | 126 | |
127 | ||
128 | ||
120 | 129 | /*----------- defined in machine/dec0.c -----------*/ |
121 | 130 | |
122 | 131 | DECLARE_READ16_HANDLER( slyspy_controls_r ); |
r17967 | r17968 | |
---|---|---|
82 | 82 | virtual void machine_start(); |
83 | 83 | virtual void machine_reset(); |
84 | 84 | virtual void video_start(); |
85 | UINT32 screen_update_taitoair(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
85 | 86 | }; |
86 | 87 | |
87 | 88 | |
88 | 89 | /*----------- defined in video/taitoair.c -----------*/ |
89 | 90 | |
90 | SCREEN_UPDATE_IND16( taitoair ); | |
91 | 91 | |
92 | 92 | |
93 | 93 | |
94 |
r17967 | r17968 | |
---|---|---|
52 | 52 | DECLARE_MACHINE_START(atarig42); |
53 | 53 | DECLARE_MACHINE_RESET(atarig42); |
54 | 54 | 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); | |
55 | 57 | }; |
56 | 58 | |
57 | 59 | |
58 | 60 | /*----------- defined in video/atarig42.c -----------*/ |
59 | 61 | |
60 | 62 | |
61 | SCREEN_VBLANK( atarig42 ); | |
62 | SCREEN_UPDATE_IND16( atarig42 ); | |
63 | 63 | |
64 | ||
65 | ||
64 | 66 | DECLARE_WRITE16_HANDLER( atarig42_mo_control_w ); |
65 | 67 | |
66 | 68 | void atarig42_scanline_update(screen_device &screen, int scanline); |
r17967 | r17968 | |
---|---|---|
60 | 60 | virtual void machine_reset(); |
61 | 61 | virtual void video_start(); |
62 | 62 | 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); | |
63 | 67 | }; |
64 | 68 | |
65 | 69 | |
r17967 | r17968 | |
67 | 71 | |
68 | 72 | |
69 | 73 | |
70 | SCREEN_UPDATE_IND16( tceptor_2d ); | |
71 | SCREEN_UPDATE_IND16( tceptor_3d_left ); | |
72 | SCREEN_UPDATE_IND16( tceptor_3d_right ); | |
73 | SCREEN_VBLANK( tceptor ); | |
74 | 74 | |
75 | 75 | |
76 | ||
77 | ||
78 | ||
79 |
r17967 | r17968 | |
---|---|---|
46 | 46 | virtual void machine_reset(); |
47 | 47 | virtual void video_start(); |
48 | 48 | virtual void palette_init(); |
49 | UINT32 screen_update_cop01(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
49 | 50 | }; |
50 | 51 | |
51 | 52 | |
r17967 | r17968 | |
55 | 56 | |
56 | 57 | |
57 | 58 | |
58 | SCREEN_UPDATE_IND16( cop01 ); | |
59 | 59 | |
60 |
r17967 | r17968 | |
---|---|---|
22 | 22 | DECLARE_MACHINE_START(vindictr); |
23 | 23 | DECLARE_MACHINE_RESET(vindictr); |
24 | 24 | DECLARE_VIDEO_START(vindictr); |
25 | UINT32 screen_update_vindictr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
25 | 26 | }; |
26 | 27 | |
27 | 28 | |
r17967 | r17968 | |
30 | 31 | DECLARE_WRITE16_HANDLER( vindictr_paletteram_w ); |
31 | 32 | |
32 | 33 | |
33 | SCREEN_UPDATE_IND16( vindictr ); | |
34 | 34 | |
35 | ||
35 | 36 | void vindictr_scanline_update(screen_device &screen, int scanline); |
r17967 | r17968 | |
---|---|---|
30 | 30 | virtual void machine_reset(); |
31 | 31 | virtual void video_start(); |
32 | 32 | virtual void palette_init(); |
33 | UINT32 screen_update_hanaawas(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
33 | 34 | }; |
34 | 35 | |
35 | 36 | |
r17967 | r17968 | |
39 | 40 | |
40 | 41 | |
41 | 42 | |
42 | ||
43 |
r17967 | r17968 | |
---|---|---|
46 | 46 | virtual void machine_start(); |
47 | 47 | virtual void machine_reset(); |
48 | 48 | virtual void video_start(); |
49 | UINT32 screen_update_aquarium(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
49 | 50 | }; |
50 | 51 | |
51 | 52 | |
r17967 | r17968 | |
53 | 54 | |
54 | 55 | |
55 | 56 | |
56 | ||
57 |
r17967 | r17968 | |
---|---|---|
161 | 161 | DECLARE_VIDEO_START(metro_i4300); |
162 | 162 | DECLARE_VIDEO_START(blzntrnd); |
163 | 163 | DECLARE_VIDEO_START(gstrik2); |
164 | UINT32 screen_update_metro(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
164 | 165 | }; |
165 | 166 | |
166 | 167 | |
r17967 | r17968 | |
173 | 174 | |
174 | 175 | |
175 | 176 | |
176 | SCREEN_UPDATE_IND16( metro ); | |
177 | 177 | |
178 | ||
178 | 179 | void metro_draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect); |
r17967 | r17968 | |
---|---|---|
59 | 59 | virtual void machine_start(); |
60 | 60 | virtual void machine_reset(); |
61 | 61 | virtual void video_start(); |
62 | UINT32 screen_update_angelkds(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
62 | 63 | }; |
63 | 64 | |
64 | 65 | |
r17967 | r17968 | |
68 | 69 | |
69 | 70 | |
70 | 71 | |
71 | ||
72 |
r17967 | r17968 | |
---|---|---|
57 | 57 | virtual void machine_reset(); |
58 | 58 | virtual void video_start(); |
59 | 59 | virtual void palette_init(); |
60 | UINT32 screen_update_circusc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
60 | 61 | }; |
61 | 62 | |
62 | 63 | |
r17967 | r17968 | |
65 | 66 | |
66 | 67 | |
67 | 68 | |
68 | ||
69 |
r17967 | r17968 | |
---|---|---|
43 | 43 | virtual void machine_reset(); |
44 | 44 | virtual void video_start(); |
45 | 45 | virtual void palette_init(); |
46 | UINT32 screen_update_mikie(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
46 | 47 | }; |
47 | 48 | |
48 | 49 | |
r17967 | r17968 | |
51 | 52 | |
52 | 53 | |
53 | 54 | |
54 | ||
55 |
r17967 | r17968 | |
---|---|---|
119 | 119 | virtual void machine_reset(); |
120 | 120 | virtual void video_start(); |
121 | 121 | DECLARE_MACHINE_RESET(midvplus); |
122 | UINT32 screen_update_midvunit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
122 | 123 | }; |
123 | 124 | |
124 | 125 | |
r17967 | r17968 | |
132 | 133 | |
133 | 134 | |
134 | 135 | |
135 | ||
136 |
r17967 | r17968 | |
---|---|---|
17 | 17 | TILE_GET_INFO_MEMBER(get_usgames_tile_info); |
18 | 18 | virtual void video_start(); |
19 | 19 | virtual void palette_init(); |
20 | UINT32 screen_update_usgames(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
20 | 21 | }; |
21 | 22 | |
22 | 23 | |
r17967 | r17968 | |
24 | 25 | |
25 | 26 | |
26 | 27 | |
27 | ||
28 |
r17967 | r17968 | |
---|---|---|
72 | 72 | DECLARE_DRIVER_INIT(opwolfb); |
73 | 73 | virtual void machine_start(); |
74 | 74 | DECLARE_MACHINE_RESET(opwolf); |
75 | UINT32 screen_update_opwolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
75 | 76 | }; |
76 | 77 | |
77 | 78 | |
r17967 | r17968 | |
84 | 85 | /*----------- defined in video/opwolf.c -----------*/ |
85 | 86 | |
86 | 87 | |
87 | ||
88 |
r17967 | r17968 | |
---|---|---|
34 | 34 | DECLARE_WRITE8_MEMBER(surpratk_5fc0_w); |
35 | 35 | virtual void machine_start(); |
36 | 36 | virtual void machine_reset(); |
37 | UINT32 screen_update_surpratk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
37 | 38 | }; |
38 | 39 | |
39 | 40 | /*----------- defined in video/surpratk.c -----------*/ |
r17967 | r17968 | |
41 | 42 | extern void surpratk_tile_callback(running_machine &machine, int layer,int bank,int *code,int *color,int *flags,int *priority); |
42 | 43 | extern void surpratk_sprite_callback(running_machine &machine, int *code,int *color,int *priority_mask); |
43 | 44 | |
44 | ||
45 |
r17967 | r17968 | |
---|---|---|
44 | 44 | TILE_GET_INFO_MEMBER(get_tile_info); |
45 | 45 | virtual void video_start(); |
46 | 46 | virtual void palette_init(); |
47 | UINT32 screen_update_zaccaria(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
47 | 48 | }; |
48 | 49 | |
49 | 50 | |
r17967 | r17968 | |
51 | 52 | |
52 | 53 | |
53 | 54 | |
54 | ||
55 |
r17967 | r17968 | |
---|---|---|
36 | 36 | DECLARE_DRIVER_INIT(uballoon); |
37 | 37 | virtual void video_start(); |
38 | 38 | 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); | |
39 | 41 | }; |
40 | 42 | |
41 | 43 | |
r17967 | r17968 | |
44 | 46 | |
45 | 47 | |
46 | 48 | |
47 | SCREEN_UPDATE_IND16( suna16 ); | |
48 | SCREEN_UPDATE_IND16( bestbest ); | |
49 | ||
50 |
r17967 | r17968 | |
---|---|---|
18 | 18 | TILE_GET_INFO_MEMBER(get_tile_info_bg); |
19 | 19 | TILE_GET_INFO_MEMBER(get_tile_info_fg); |
20 | 20 | virtual void video_start(); |
21 | UINT32 screen_update_speedbal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
21 | 22 | }; |
22 | 23 | |
23 | 24 | |
24 | 25 | /*----------- defined in video/speedbal.c -----------*/ |
25 | 26 | |
26 | 27 | |
27 | ||
28 |
r17967 | r17968 | |
---|---|---|
42 | 42 | TILE_GET_INFO_MEMBER(get_shadfrce_bg0tile_info); |
43 | 43 | TILE_GET_INFO_MEMBER(get_shadfrce_bg1tile_info); |
44 | 44 | 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); | |
45 | 47 | }; |
46 | 48 | |
47 | 49 | |
48 | 50 | /*----------- defined in video/shadfrce.c -----------*/ |
49 | 51 | |
50 | 52 | |
51 | SCREEN_VBLANK(shadfrce); | |
52 | SCREEN_UPDATE_IND16( shadfrce ); | |
53 | ||
54 |
r17967 | r17968 | |
---|---|---|
27 | 27 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
28 | 28 | virtual void video_start(); |
29 | 29 | virtual void palette_init(); |
30 | UINT32 screen_update_tagteam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
30 | 31 | }; |
31 | 32 | |
32 | 33 | |
r17967 | r17968 | |
35 | 36 | |
36 | 37 | |
37 | 38 | |
38 | ||
39 |
r17967 | r17968 | |
---|---|---|
39 | 39 | DECLARE_DRIVER_INIT(landbrka); |
40 | 40 | DECLARE_MACHINE_RESET(eolith); |
41 | 41 | DECLARE_VIDEO_START(eolith); |
42 | UINT32 screen_update_eolith(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
42 | 43 | }; |
43 | 44 | |
44 | 45 | |
45 | 46 | /*----------- defined in video/eolith.c -----------*/ |
46 | 47 | |
47 | 48 | |
48 | ||
49 |
r17967 | r17968 | |
---|---|---|
47 | 47 | DECLARE_MACHINE_RESET(bagman); |
48 | 48 | DECLARE_VIDEO_START(bagman); |
49 | 49 | DECLARE_PALETTE_INIT(bagman); |
50 | UINT32 screen_update_bagman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
50 | 51 | }; |
51 | 52 | |
52 | 53 | |
r17967 | r17968 | |
80 | 81 | |
81 | 82 | |
82 | 83 | |
83 | ||
84 |
r17967 | r17968 | |
---|---|---|
89 | 89 | virtual void machine_start(); |
90 | 90 | virtual void machine_reset(); |
91 | 91 | virtual void video_start(); |
92 | UINT32 screen_update_bigevglf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
92 | 93 | }; |
93 | 94 | |
94 | 95 | |
r17967 | r17968 | |
100 | 101 | /*----------- defined in video/bigevglf.c -----------*/ |
101 | 102 | |
102 | 103 | |
103 | SCREEN_UPDATE_IND16( bigevglf ); | |
104 | 104 | |
105 | 105 | |
106 |
r17967 | r17968 | |
---|---|---|
49 | 49 | virtual void machine_start(); |
50 | 50 | virtual void machine_reset(); |
51 | 51 | virtual void video_start(); |
52 | UINT32 screen_update_inufuku(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
52 | 53 | }; |
53 | 54 | |
54 | 55 | |
55 | 56 | /*----------- defined in video/inufuku.c -----------*/ |
56 | 57 | |
57 | 58 | |
58 | SCREEN_UPDATE_IND16( inufuku ); | |
59 | 59 | |
60 |
r17967 | r17968 | |
---|---|---|
46 | 46 | virtual void machine_start(); |
47 | 47 | virtual void machine_reset(); |
48 | 48 | virtual void video_start(); |
49 | UINT32 screen_update_commando(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
49 | 50 | }; |
50 | 51 | |
51 | 52 | |
r17967 | r17968 | |
54 | 55 | |
55 | 56 | |
56 | 57 | |
57 | ||
58 |
r17967 | r17968 | |
---|---|---|
78 | 78 | DECLARE_MACHINE_START(atarisy2); |
79 | 79 | DECLARE_MACHINE_RESET(atarisy2); |
80 | 80 | DECLARE_VIDEO_START(atarisy2); |
81 | UINT32 screen_update_atarisy2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
81 | 82 | }; |
82 | 83 | |
83 | 84 | |
r17967 | r17968 | |
93 | 94 | DECLARE_WRITE16_HANDLER( atarisy2_paletteram_w ); |
94 | 95 | |
95 | 96 | |
96 | ||
97 |
r17967 | r17968 | |
---|---|---|
72 | 72 | DECLARE_VIDEO_START(robokid); |
73 | 73 | DECLARE_MACHINE_RESET(omegaf); |
74 | 74 | 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); | |
75 | 79 | }; |
76 | 80 | |
77 | 81 |
r17967 | r17968 | |
---|---|---|
39 | 39 | virtual void machine_start(); |
40 | 40 | virtual void machine_reset(); |
41 | 41 | virtual void video_start(); |
42 | UINT32 screen_update_yunsung8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
42 | 43 | }; |
43 | 44 | |
44 | 45 | |
r17967 | r17968 | |
46 | 47 | |
47 | 48 | |
48 | 49 | |
49 | ||
50 |
r17967 | r17968 | |
---|---|---|
50 | 50 | virtual void machine_reset(); |
51 | 51 | virtual void video_start(); |
52 | 52 | virtual void palette_init(); |
53 | UINT32 screen_update_skydiver(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
53 | 54 | }; |
54 | 55 | |
55 | 56 | |
r17967 | r17968 | |
62 | 63 | |
63 | 64 | |
64 | 65 | |
65 | ||
66 |
r17967 | r17968 | |
---|---|---|
34 | 34 | virtual void machine_reset(); |
35 | 35 | virtual void video_start(); |
36 | 36 | virtual void palette_init(); |
37 | UINT32 screen_update_m52(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
37 | 38 | }; |
38 | 39 | |
39 | 40 | /*----------- defined in video/m52.c -----------*/ |
r17967 | r17968 | |
41 | 42 | |
42 | 43 | |
43 | 44 | |
44 | ||
45 |
r17967 | r17968 | |
---|---|---|
49 | 49 | virtual void machine_start(); |
50 | 50 | virtual void machine_reset(); |
51 | 51 | virtual void video_start(); |
52 | UINT32 screen_update_spacefb(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
52 | 53 | }; |
53 | 54 | |
54 | 55 | |
r17967 | r17968 | |
61 | 62 | /*----------- defined in video/spacefb.c -----------*/ |
62 | 63 | |
63 | 64 | |
64 | SCREEN_UPDATE_RGB32( spacefb ); | |
65 | 65 | |
66 |
r17967 | r17968 | |
---|---|---|
46 | 46 | DECLARE_PALETTE_INIT(warpwarp); |
47 | 47 | DECLARE_VIDEO_START(navarone); |
48 | 48 | DECLARE_PALETTE_INIT(navarone); |
49 | UINT32 screen_update_geebee(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
49 | 50 | }; |
50 | 51 | |
51 | 52 | |
r17967 | r17968 | |
57 | 58 | |
58 | 59 | |
59 | 60 | |
60 | SCREEN_UPDATE_IND16( geebee ); | |
61 | 61 | |
62 | 62 | |
63 | ||
63 | 64 | /*----------- defined in audio/geebee.c -----------*/ |
64 | 65 | |
65 | 66 | DECLARE_WRITE8_DEVICE_HANDLER( geebee_sound_w ); |
r17967 | r17968 | |
---|---|---|
42 | 42 | virtual void machine_start(); |
43 | 43 | virtual void machine_reset(); |
44 | 44 | virtual void video_start(); |
45 | UINT32 screen_update_twocrude(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
45 | 46 | }; |
46 | 47 | |
47 | 48 | |
r17967 | r17968 | |
50 | 51 | |
51 | 52 | |
52 | 53 | |
53 | ||
54 |
r17967 | r17968 | |
---|---|---|
42 | 42 | virtual void machine_start(); |
43 | 43 | virtual void machine_reset(); |
44 | 44 | virtual void video_start(); |
45 | UINT32 screen_update_gng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
45 | 46 | }; |
46 | 47 | |
47 | 48 | |
r17967 | r17968 | |
49 | 50 | |
50 | 51 | |
51 | 52 | |
52 | ||
53 |
r17967 | r17968 | |
---|---|---|
70 | 70 | DECLARE_MACHINE_START(ojankoc); |
71 | 71 | DECLARE_VIDEO_START(ojankoc); |
72 | 72 | 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); | |
73 | 75 | }; |
74 | 76 | |
75 | 77 | |
r17967 | r17968 | |
82 | 84 | |
83 | 85 | |
84 | 86 | |
85 | SCREEN_UPDATE_IND16( ojankohs ); | |
86 | SCREEN_UPDATE_IND16( ojankoc ); | |
87 | 87 | |
88 | ||
89 | ||
88 | 90 | void ojankoc_flipscreen(address_space &space, int data); |
89 | 91 |
r17967 | r17968 | |
---|---|---|
77 | 77 | DECLARE_MACHINE_RESET(helifire_sound); |
78 | 78 | DECLARE_MACHINE_START(n8080); |
79 | 79 | 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); | |
80 | 84 | }; |
81 | 85 | |
82 | 86 | |
r17967 | r17968 | |
90 | 94 | |
91 | 95 | |
92 | 96 | |
93 | SCREEN_UPDATE_IND16( spacefev ); | |
94 | SCREEN_UPDATE_IND16( sheriff ); | |
95 | SCREEN_UPDATE_IND16( helifire ); | |
96 | SCREEN_VBLANK( helifire ); | |
97 | 97 | |
98 | ||
99 | ||
100 | ||
101 | ||
98 | 102 | void spacefev_start_red_cannon(running_machine &machine); |
99 | 103 | |
100 | 104 | /*----------- defined in audio/n8080.c -----------*/ |
r17967 | r17968 | |
---|---|---|
73 | 73 | DECLARE_DRIVER_INIT(maiko); |
74 | 74 | virtual void video_start(); |
75 | 75 | DECLARE_VIDEO_START(nbmj8891_1layer); |
76 | UINT32 screen_update_nbmj8891(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
76 | 77 | }; |
77 | 78 | |
78 | 79 | |
79 | 80 | /*----------- defined in video/nbmj8891.c -----------*/ |
80 | 81 | |
81 | SCREEN_UPDATE_IND16( nbmj8891 ); | |
82 | 82 | |
83 | 83 | |
84 | 84 | |
85 |
r17967 | r17968 | |
---|---|---|
39 | 39 | TILE_GET_INFO_MEMBER(get_fg_tile_info); |
40 | 40 | TILE_GET_INFO_MEMBER(get_tx_tile_info); |
41 | 41 | virtual void video_start(); |
42 | UINT32 screen_update_wc90b(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
42 | 43 | }; |
43 | 44 | |
44 | 45 | |
45 | 46 | /*----------- defined in video/wc90b.c -----------*/ |
46 | 47 | |
47 | 48 | |
48 | SCREEN_UPDATE_IND16( wc90b ); | |
49 | 49 | |
50 |
r17967 | r17968 | |
---|---|---|
187 | 187 | DECLARE_WRITE32_MEMBER(_3do_clio_w); |
188 | 188 | virtual void machine_reset(); |
189 | 189 | DECLARE_VIDEO_START(_3do); |
190 | UINT32 screen_update__3do(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
190 | 191 | }; |
191 | 192 | |
192 | 193 | /*----------- defined in machine/3do.c -----------*/ |
r17967 | r17968 | |
201 | 202 | |
202 | 203 | |
203 | 204 | |
204 | SCREEN_UPDATE_RGB32( _3do ); | |
205 | 205 | |
206 | ||
206 | 207 | #endif /* _3DO_H_ */ |
r17967 | r17968 | |
---|---|---|
45 | 45 | virtual void machine_reset(); |
46 | 46 | virtual void video_start(); |
47 | 47 | virtual void palette_init(); |
48 | UINT32 screen_update_kncljoe(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
48 | 49 | }; |
49 | 50 | |
50 | 51 | |
r17967 | r17968 | |
54 | 55 | |
55 | 56 | |
56 | 57 | |
57 | ||
58 |
r17967 | r17968 | |
---|---|---|
31 | 31 | TILE_GET_INFO_MEMBER(crzrally_get_tile_info); |
32 | 32 | DECLARE_VIDEO_START(holeland); |
33 | 33 | 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); | |
34 | 36 | }; |
35 | 37 | |
36 | 38 | |
r17967 | r17968 | |
38 | 40 | |
39 | 41 | |
40 | 42 | |
41 | SCREEN_UPDATE_IND16( holeland ); | |
42 | SCREEN_UPDATE_IND16( crzrally ); | |
43 | 43 | |
44 | ||
45 |
r17967 | r17968 | |
---|---|---|
46 | 46 | virtual void machine_reset(); |
47 | 47 | virtual void video_start(); |
48 | 48 | virtual void palette_init(); |
49 | UINT32 screen_update_spdodgeb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
49 | 50 | }; |
50 | 51 | |
51 | 52 | |
r17967 | r17968 | |
53 | 54 | |
54 | 55 | |
55 | 56 | |
56 | ||
57 | ||
57 | 58 | TIMER_DEVICE_CALLBACK( spdodgeb_interrupt ); |
r17967 | r17968 | |
---|---|---|
63 | 63 | DECLARE_VIDEO_START(prosport); |
64 | 64 | DECLARE_VIDEO_START(boomrang); |
65 | 65 | 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); | |
66 | 70 | }; |
67 | 71 | |
68 | 72 | |
69 | 73 | /*----------- defined in video/liberate.c -----------*/ |
70 | 74 | |
71 | 75 | |
72 | SCREEN_UPDATE_IND16( prosoccr ); | |
73 | SCREEN_UPDATE_IND16( prosport ); | |
74 | SCREEN_UPDATE_IND16( liberate ); | |
75 | SCREEN_UPDATE_IND16( boomrang ); | |
76 | 76 | |
77 | 77 | |
78 | 78 | |
79 | 79 | |
80 | 80 | |
81 | 81 | |
82 | ||
83 | ||
84 | ||
85 |
r17967 | r17968 | |
---|---|---|
40 | 40 | virtual void machine_reset(); |
41 | 41 | virtual void video_start(); |
42 | 42 | virtual void palette_init(); |
43 | UINT32 screen_update_gunsmoke(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
43 | 44 | }; |
44 | 45 | |
45 | 46 | |
r17967 | r17968 | |
48 | 49 | |
49 | 50 | |
50 | 51 | |
51 | SCREEN_UPDATE_IND16( gunsmoke ); | |
52 | 52 | |
53 |
r17967 | r17968 | |
---|---|---|
128 | 128 | DECLARE_MACHINE_RESET(buckrog); |
129 | 129 | DECLARE_VIDEO_START(buckrog); |
130 | 130 | 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); | |
131 | 134 | }; |
132 | 135 | |
133 | 136 | |
r17967 | r17968 | |
153 | 156 | |
154 | 157 | |
155 | 158 | |
156 | SCREEN_UPDATE_IND16( turbo ); | |
157 | 159 | |
158 | 160 | |
159 | SCREEN_UPDATE_IND16( subroc3d ); | |
160 | 161 | |
161 | 162 | |
162 | 163 | |
163 | SCREEN_UPDATE_IND16( buckrog ); | |
164 | 164 | |
165 | ||
166 | ||
167 |
r17967 | r17968 | |
---|---|---|
104 | 104 | DECLARE_MACHINE_RESET(cvs); |
105 | 105 | DECLARE_VIDEO_START(cvs); |
106 | 106 | DECLARE_PALETTE_INIT(cvs); |
107 | UINT32 screen_update_cvs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
107 | 108 | }; |
108 | 109 | |
109 | 110 | |
r17967 | r17968 | |
121 | 122 | void cvs_update_stars(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, const pen_t star_pen, bool update_always); |
122 | 123 | |
123 | 124 | |
124 | SCREEN_UPDATE_IND16( cvs ); | |
125 | 125 | |
126 |
r17967 | r17968 | |
---|---|---|
16 | 16 | DECLARE_WRITE8_MEMBER(pia_irqb_w); |
17 | 17 | virtual void machine_reset(); |
18 | 18 | virtual void palette_init(); |
19 | UINT32 screen_update_truco(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
19 | 20 | }; |
20 | 21 | |
21 | 22 | |
22 | 23 | /*----------- defined in video/truco.c -----------*/ |
23 | 24 | |
24 | SCREEN_UPDATE_IND16( truco ); | |
25 | 25 | |
26 |
r17967 | r17968 | |
---|---|---|
190 | 190 | DECLARE_MACHINE_START(keroppi); |
191 | 191 | DECLARE_VIDEO_START(oisipuzl_2_layers); |
192 | 192 | 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); | |
193 | 201 | }; |
194 | 202 | |
195 | 203 | /*----------- defined in video/seta.c -----------*/ |
r17967 | r17968 | |
212 | 220 | |
213 | 221 | |
214 | 222 | |
215 | SCREEN_UPDATE_IND16( seta ); | |
216 | SCREEN_UPDATE_IND16( seta_no_layers ); | |
217 | SCREEN_UPDATE_IND16( usclssic ); | |
218 | SCREEN_UPDATE_IND16( inttoote ); | |
219 | SCREEN_UPDATE_IND16( setaroul ); | |
220 | 223 | |
221 | SCREEN_VBLANK( setaroul ); | |
222 | 224 | |
225 | ||
226 | ||
227 | ||
228 | ||
229 | ||
230 |
r17967 | r17968 | |
---|---|---|
81 | 81 | virtual void machine_start(); |
82 | 82 | virtual void machine_reset(); |
83 | 83 | virtual void video_start(); |
84 | UINT32 screen_update_laserbat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
84 | 85 | }; |
85 | 86 | |
86 | 87 |
r17967 | r17968 | |
---|---|---|
96 | 96 | DECLARE_PALETTE_INIT(arknoid2); |
97 | 97 | DECLARE_MACHINE_START(jpopnics); |
98 | 98 | 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); | |
99 | 101 | }; |
100 | 102 | |
101 | 103 | |
r17967 | r17968 | |
113 | 115 | /*----------- defined in video/tnzs.c -----------*/ |
114 | 116 | |
115 | 117 | |
116 | SCREEN_UPDATE_IND16( tnzs ); | |
117 | SCREEN_VBLANK( tnzs ); | |
118 | ||
119 |
r17967 | r17968 | |
---|---|---|
40 | 40 | virtual void machine_start(); |
41 | 41 | virtual void video_start(); |
42 | 42 | virtual void palette_init(); |
43 | UINT32 screen_update_tp84(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
43 | 44 | }; |
44 | 45 | |
45 | 46 | |
r17967 | r17968 | |
48 | 49 | |
49 | 50 | |
50 | 51 | |
51 | ||
52 |
r17967 | r17968 | |
---|---|---|
31 | 31 | TILEMAP_MAPPER_MEMBER(background_scan); |
32 | 32 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
33 | 33 | virtual void video_start(); |
34 | UINT32 screen_update_vb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
34 | 35 | }; |
35 | 36 | |
36 | 37 | |
37 | 38 | /*----------- defined in video/vball.c -----------*/ |
38 | 39 | |
39 | 40 | |
40 | ||
41 | ||
41 | 42 | void vb_bgprombank_w(running_machine &machine, int bank); |
42 | 43 | void vb_spprombank_w(running_machine &machine, int bank); |
43 | 44 | void vb_mark_all_dirty(running_machine &machine); |
r17967 | r17968 | |
---|---|---|
57 | 57 | DECLARE_VIDEO_START(rohga); |
58 | 58 | DECLARE_VIDEO_START(wizdfire); |
59 | 59 | 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); | |
60 | 63 | }; |
61 | 64 | |
62 | 65 | |
r17967 | r17968 | |
69 | 72 | |
70 | 73 | |
71 | 74 | |
72 | SCREEN_UPDATE_IND16( rohga ); | |
73 | SCREEN_UPDATE_RGB32( wizdfire ); | |
74 | SCREEN_UPDATE_RGB32( nitrobal ); | |
75 | 75 | |
76 | ||
77 | ||
78 | ||
76 | 79 | UINT16 rohga_pri_callback(UINT16 x); |
77 | 80 | UINT16 schmeisr_col_callback(UINT16 x); |
78 | 81 | UINT16 rohga_col_callback(UINT16 x); |
r17967 | r17968 | |
---|---|---|
72 | 72 | TILEMAP_MAPPER_MEMBER(plygonet_scan_cols); |
73 | 73 | virtual void machine_start(); |
74 | 74 | virtual void video_start(); |
75 | UINT32 screen_update_polygonet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
75 | 76 | }; |
76 | 77 | |
77 | 78 | /*----------- defined in video/plygonet.c -----------*/ |
78 | 79 | |
79 | 80 | |
80 | SCREEN_UPDATE_IND16( polygonet ); | |
81 | 81 | |
82 |
r17967 | r17968 | |
---|---|---|
26 | 26 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
27 | 27 | virtual void video_start(); |
28 | 28 | virtual void palette_init(); |
29 | UINT32 screen_update_higemaru(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
29 | 30 | }; |
30 | 31 | |
31 | 32 | |
r17967 | r17968 | |
34 | 35 | |
35 | 36 | |
36 | 37 | |
37 | ||
38 |
r17967 | r17968 | |
---|---|---|
26 | 26 | DECLARE_MACHINE_START(batman); |
27 | 27 | DECLARE_MACHINE_RESET(batman); |
28 | 28 | DECLARE_VIDEO_START(batman); |
29 | UINT32 screen_update_batman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
29 | 30 | }; |
30 | 31 | |
31 | 32 | |
32 | 33 | /*----------- defined in video/batman.c -----------*/ |
33 | 34 | |
34 | 35 | |
35 | SCREEN_UPDATE_IND16( batman ); | |
36 | 36 | |
37 | ||
37 | 38 | void batman_scanline_update(screen_device &screen, int scanline); |
r17967 | r17968 | |
---|---|---|
84 | 84 | virtual void machine_start(); |
85 | 85 | virtual void machine_reset(); |
86 | 86 | virtual void video_start(); |
87 | UINT32 screen_update_nemesis(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
87 | 88 | }; |
88 | 89 | |
89 | 90 | |
r17967 | r17968 | |
92 | 93 | |
93 | 94 | |
94 | 95 | |
95 | ||
96 |
r17967 | r17968 | |
---|---|---|
35 | 35 | virtual void machine_start(); |
36 | 36 | virtual void video_start(); |
37 | 37 | virtual void palette_init(); |
38 | UINT32 screen_update_cheekyms(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
38 | 39 | }; |
39 | 40 | |
40 | 41 | |
r17967 | r17968 | |
42 | 43 | |
43 | 44 | |
44 | 45 | |
45 | ||
46 |
r17967 | r17968 | |
---|---|---|
33 | 33 | virtual void machine_reset(); |
34 | 34 | virtual void video_start(); |
35 | 35 | virtual void palette_init(); |
36 | UINT32 screen_update_magmax(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
36 | 37 | }; |
37 | 38 | |
38 | 39 | |
39 | 40 | /*----------- defined in video/magmax.c -----------*/ |
40 | 41 | |
41 | 42 | |
42 | SCREEN_UPDATE_IND16( magmax ); | |
43 | 43 | |
44 |
r17967 | r17968 | |
---|---|---|
198 | 198 | DECLARE_VIDEO_START(stv_vdp2); |
199 | 199 | DECLARE_MACHINE_START(stv); |
200 | 200 | 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); | |
201 | 203 | }; |
202 | 204 | |
203 | 205 | #define MASTER_CLOCK_352 57272720 |
r17967 | r17968 | |
262 | 264 | DECLARE_WRITE16_HANDLER ( saturn_vdp2_regs_w ); |
263 | 265 | |
264 | 266 | |
265 | ||
267 | ||
266 | 268 | #if NEW_VIDEO_CODE |
267 | ||
269 | ||
268 | 270 | #endif |
r17967 | r17968 | |
---|---|---|
28 | 28 | virtual void machine_reset(); |
29 | 29 | virtual void video_start(); |
30 | 30 | virtual void palette_init(); |
31 | UINT32 screen_update_timelimt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
31 | 32 | }; |
32 | 33 | |
33 | 34 | |
r17967 | r17968 | |
35 | 36 | |
36 | 37 | |
37 | 38 | |
38 | SCREEN_UPDATE_IND16( timelimt ); | |
39 | 39 | |
40 |
r17967 | r17968 | |
---|---|---|
38 | 38 | virtual void machine_start(); |
39 | 39 | virtual void machine_reset(); |
40 | 40 | 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); | |
41 | 43 | }; |
42 | 44 | |
43 | 45 | |
44 | 46 | /*----------- defined in video/warriorb.c -----------*/ |
45 | 47 | |
46 | 48 | |
47 | SCREEN_UPDATE_IND16( warriorb_left ); | |
48 | SCREEN_UPDATE_IND16( warriorb_right ); | |
49 | ||
50 |
r17967 | r17968 | |
---|---|---|
51 | 51 | virtual void machine_start(); |
52 | 52 | virtual void machine_reset(); |
53 | 53 | 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); | |
54 | 56 | }; |
55 | 57 | |
56 | 58 | |
r17967 | r17968 | |
61 | 63 | |
62 | 64 | |
63 | 65 | |
64 | SCREEN_UPDATE_IND16( goal92 ); | |
65 | SCREEN_VBLANK( goal92 ); | |
66 | ||
67 |
r17967 | r17968 | |
---|---|---|
39 | 39 | virtual void machine_start(); |
40 | 40 | virtual void machine_reset(); |
41 | 41 | virtual void video_start(); |
42 | UINT32 screen_update_bishi(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
42 | 43 | }; |
43 | 44 | |
44 | 45 | /*----------- defined in video/bishi.c -----------*/ |
r17967 | r17968 | |
46 | 47 | extern void bishi_tile_callback(running_machine &machine, int layer, int *code, int *color, int *flags); |
47 | 48 | |
48 | 49 | |
49 | ||
50 |
r17967 | r17968 | |
---|---|---|
39 | 39 | virtual void machine_reset(); |
40 | 40 | virtual void video_start(); |
41 | 41 | virtual void palette_init(); |
42 | UINT32 screen_update_1942(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
42 | 43 | }; |
43 | 44 | |
44 | 45 |
r17967 | r17968 | |
---|---|---|
31 | 31 | TILE_GET_INFO_MEMBER(get_tile_info); |
32 | 32 | virtual void video_start(); |
33 | 33 | virtual void palette_init(); |
34 | UINT32 screen_update_poolshrk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
34 | 35 | }; |
35 | 36 | |
36 | 37 | |
r17967 | r17968 | |
47 | 48 | /*----------- defined in video/poolshrk.c -----------*/ |
48 | 49 | |
49 | 50 | |
50 | SCREEN_UPDATE_IND16( poolshrk ); | |
51 | 51 | |
52 |
r17967 | r17968 | |
---|---|---|
39 | 39 | TILE_GET_INFO_MEMBER(get_text_tile_info); |
40 | 40 | virtual void video_start(); |
41 | 41 | DECLARE_VIDEO_START(raidena); |
42 | UINT32 screen_update_raiden(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
42 | 43 | }; |
43 | 44 | |
44 | 45 | |
r17967 | r17968 | |
46 | 47 | |
47 | 48 | |
48 | 49 | |
49 | ||
50 |
r17967 | r17968 | |
---|---|---|
26 | 26 | TILE_GET_INFO_MEMBER(get_fg_tile_info); |
27 | 27 | TILE_GET_INFO_MEMBER(get_tx_tile_info); |
28 | 28 | 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); | |
29 | 32 | }; |
30 | 33 | |
31 | 34 | |
32 | 35 | /*----------- defined in video/bloodbro.c -----------*/ |
33 | 36 | |
34 | 37 | |
35 | SCREEN_UPDATE_IND16( bloodbro ); | |
36 | SCREEN_UPDATE_IND16( weststry ); | |
37 | SCREEN_UPDATE_IND16( skysmash ); | |
38 | 38 | |
39 | ||
40 | ||
41 |
r17967 | r17968 | |
---|---|---|
26 | 26 | DECLARE_PALETTE_INIT(galaxia); |
27 | 27 | DECLARE_VIDEO_START(astrowar); |
28 | 28 | 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); | |
29 | 31 | }; |
30 | 32 | |
31 | 33 | |
r17967 | r17968 | |
36 | 38 | |
37 | 39 | |
38 | 40 | |
39 | SCREEN_UPDATE_IND16( galaxia ); | |
40 | SCREEN_UPDATE_IND16( astrowar ); | |
41 | ||
42 |
r17967 | r17968 | |
---|---|---|
103 | 103 | DECLARE_VIDEO_START(fromancr); |
104 | 104 | DECLARE_MACHINE_START(fromanc4); |
105 | 105 | 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); | |
106 | 108 | }; |
107 | 109 | |
108 | 110 | |
r17967 | r17968 | |
110 | 112 | |
111 | 113 | /*----------- defined in video/fromanc2.c -----------*/ |
112 | 114 | |
113 | SCREEN_UPDATE_IND16( fromanc2_left ); | |
114 | SCREEN_UPDATE_IND16( fromanc2_right ); | |
115 | 115 | |
116 | 116 | |
117 | 117 | |
118 | 118 | |
119 | ||
120 | ||
119 | 121 | void fromancr_gfxbank_w(running_machine &machine, int data); |
r17967 | r17968 | |
---|---|---|
39 | 39 | virtual void machine_start(); |
40 | 40 | virtual void machine_reset(); |
41 | 41 | virtual void video_start(); |
42 | UINT32 screen_update_bombjack(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
42 | 43 | }; |
43 | 44 | |
44 | 45 | |
r17967 | r17968 | |
46 | 47 | |
47 | 48 | |
48 | 49 | |
49 | ||
50 |
r17967 | r17968 | |
---|---|---|
61 | 61 | DECLARE_PALETTE_INIT(jungler); |
62 | 62 | DECLARE_VIDEO_START(locomotn); |
63 | 63 | 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); | |
64 | 67 | }; |
65 | 68 | |
66 | 69 | |
r17967 | r17968 | |
73 | 76 | |
74 | 77 | |
75 | 78 | |
76 | SCREEN_UPDATE_IND16( rallyx ); | |
77 | SCREEN_UPDATE_IND16( jungler ); | |
78 | SCREEN_UPDATE_IND16( locomotn ); | |
79 | ||
80 | ||
81 |
r17967 | r17968 | |
---|---|---|
21 | 21 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
22 | 22 | virtual void video_start(); |
23 | 23 | virtual void palette_init(); |
24 | UINT32 screen_update_trucocl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
24 | 25 | }; |
25 | 26 | |
26 | 27 | |
r17967 | r17968 | |
28 | 29 | |
29 | 30 | |
30 | 31 | |
31 | ||
32 |
r17967 | r17968 | |
---|---|---|
55 | 55 | virtual void machine_reset(); |
56 | 56 | virtual void video_start(); |
57 | 57 | virtual void palette_init(); |
58 | UINT32 screen_update_gridlee(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
58 | 59 | }; |
59 | 60 | |
60 | 61 | |
r17967 | r17968 | |
93 | 94 | |
94 | 95 | |
95 | 96 | |
96 | SCREEN_UPDATE_IND16( gridlee ); | |
97 | 97 | |
98 |
r17967 | r17968 | |
---|---|---|
40 | 40 | DECLARE_VIDEO_START(unico); |
41 | 41 | DECLARE_MACHINE_RESET(zeropt); |
42 | 42 | 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); | |
43 | 45 | }; |
44 | 46 | |
45 | 47 | |
r17967 | r17968 | |
48 | 50 | |
49 | 51 | |
50 | 52 | |
51 | SCREEN_UPDATE_IND16( unico ); | |
52 | 53 | |
53 | 54 | |
54 | SCREEN_UPDATE_IND16( zeropnt2 ); | |
55 | 55 | |
56 | ||
57 |
r17967 | r17968 | |
---|---|---|
36 | 36 | virtual void machine_start(); |
37 | 37 | virtual void machine_reset(); |
38 | 38 | virtual void video_start(); |
39 | UINT32 screen_update_blockhl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
39 | 40 | }; |
40 | 41 | |
41 | 42 | /*----------- defined in video/blockhl.c -----------*/ |
r17967 | r17968 | |
44 | 45 | extern void blockhl_sprite_callback(running_machine &machine, int *code,int *color,int *priority,int *shadow); |
45 | 46 | |
46 | 47 | |
47 | ||
48 |
r17967 | r17968 | |
---|---|---|
58 | 58 | virtual void machine_start(); |
59 | 59 | virtual void machine_reset(); |
60 | 60 | virtual void video_start(); |
61 | UINT32 screen_update_gcpinbal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
61 | 62 | }; |
62 | 63 | |
63 | 64 | |
64 | 65 | /*----------- defined in video/gcpinbal.c -----------*/ |
65 | 66 | |
66 | 67 | |
67 | SCREEN_UPDATE_IND16( gcpinbal ); | |
68 | 68 | |
69 |
r17967 | r17968 | |
---|---|---|
44 | 44 | TILE_GET_INFO_MEMBER(get_tile_info_1); |
45 | 45 | TILE_GET_INFO_MEMBER(get_tile_info_2); |
46 | 46 | 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); | |
47 | 49 | }; |
48 | 50 | |
49 | 51 | |
r17967 | r17968 | |
53 | 55 | #define REALBRK_H |
54 | 56 | |
55 | 57 | |
56 | SCREEN_UPDATE_IND16(realbrk); | |
57 | SCREEN_UPDATE_IND16(dai2kaku); | |
58 | 58 | |
59 | 59 | |
60 | 60 | |
61 | ||
62 | ||
61 | 63 | #endif |
62 | 64 |
r17967 | r17968 | |
---|---|---|
52 | 52 | DECLARE_DRIVER_INIT(spacfury); |
53 | 53 | virtual void machine_start(); |
54 | 54 | virtual void video_start(); |
55 | UINT32 screen_update_segag80v(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
55 | 56 | }; |
56 | 57 | |
57 | 58 | |
r17967 | r17968 | |
62 | 63 | /*----------- defined in video/segag80v.c -----------*/ |
63 | 64 | |
64 | 65 | |
65 | ||
66 |
r17967 | r17968 | |
---|---|---|
31 | 31 | virtual void machine_reset(); |
32 | 32 | virtual void video_start(); |
33 | 33 | virtual void palette_init(); |
34 | UINT32 screen_update_carjmbre(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
34 | 35 | }; |
35 | 36 | |
36 | 37 | |
r17967 | r17968 | |
40 | 41 | |
41 | 42 | |
42 | 43 | |
43 | SCREEN_UPDATE_IND16( carjmbre ); | |
44 | 44 | |
45 | 45 | |
46 |
r17967 | r17968 | |
---|---|---|
13 | 13 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
14 | 14 | virtual void video_start(); |
15 | 15 | virtual void palette_init(); |
16 | UINT32 screen_update_gat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
16 | 17 | }; |
17 | 18 | |
18 | 19 | |
r17967 | r17968 | |
20 | 21 | |
21 | 22 | |
22 | 23 | |
23 | SCREEN_UPDATE_IND16( gat ); | |
24 | 24 | |
25 |
r17967 | r17968 | |
---|---|---|
38 | 38 | DECLARE_READ16_MEMBER(sub_cycle_r); |
39 | 39 | DECLARE_DRIVER_INIT(superchs); |
40 | 40 | virtual void video_start(); |
41 | UINT32 screen_update_superchs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
41 | 42 | }; |
42 | 43 | |
43 | 44 | |
44 | 45 | /*----------- defined in video/superchs.c -----------*/ |
45 | 46 | |
46 | 47 | |
47 | ||
48 |
r17967 | r17968 | |
---|---|---|
46 | 46 | virtual void machine_start(); |
47 | 47 | virtual void machine_reset(); |
48 | 48 | virtual void video_start(); |
49 | UINT32 screen_update_bottom9(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
49 | 50 | }; |
50 | 51 | |
51 | 52 | /*----------- defined in video/bottom9.c -----------*/ |
r17967 | r17968 | |
55 | 56 | extern void bottom9_zoom_callback(running_machine &machine, int *code,int *color,int *flags); |
56 | 57 | |
57 | 58 | |
58 | ||
59 |
r17967 | r17968 | |
---|---|---|
40 | 40 | DECLARE_WRITE8_MEMBER(HuC6270_data_w); |
41 | 41 | DECLARE_WRITE8_MEMBER(battlera_adpcm_reset_w); |
42 | 42 | virtual void video_start(); |
43 | UINT32 screen_update_battlera(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
43 | 44 | }; |
44 | 45 | |
45 | 46 | |
46 | 47 | /*----------- defined in video/battlera.c -----------*/ |
47 | 48 | |
48 | SCREEN_UPDATE_IND16( battlera ); | |
49 | 49 | |
50 | ||
50 | 51 | TIMER_DEVICE_CALLBACK( battlera_irq ); |
51 | 52 | |
52 | 53 |
r17967 | r17968 | |
---|---|---|
40 | 40 | TILE_GET_INFO_MEMBER(get_text_tile_info); |
41 | 41 | virtual void video_start(); |
42 | 42 | virtual void palette_init(); |
43 | UINT32 screen_update_flower(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
43 | 44 | }; |
44 | 45 | |
45 | 46 | |
r17967 | r17968 | |
77 | 78 | /*----------- defined in video/flower.c -----------*/ |
78 | 79 | |
79 | 80 | |
80 | SCREEN_UPDATE_IND16( flower ); | |
81 | 81 | |
82 | 82 | |
83 |
r17967 | r17968 | |
---|---|---|
68 | 68 | TILE_GET_INFO_MEMBER(get_char_tile_info); |
69 | 69 | virtual void machine_start(); |
70 | 70 | virtual void video_start(); |
71 | UINT32 screen_update_xain(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
71 | 72 | }; |
72 | 73 | |
73 | 74 | |
74 | 75 | /*----------- defined in video/xain.c -----------*/ |
75 | 76 | |
76 | SCREEN_UPDATE_IND16( xain ); | |
77 | 77 | |
78 |
r17967 | r17968 | |
---|---|---|
93 | 93 | TILE_GET_INFO_MEMBER(fg_get_info5); |
94 | 94 | virtual void machine_reset(); |
95 | 95 | 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); | |
96 | 98 | }; |
97 | 99 | |
98 | 100 | |
r17967 | r17968 | |
118 | 120 | DECLARE_WRITE8_HANDLER( namcos1_spriteram_w ); |
119 | 121 | |
120 | 122 | |
121 | SCREEN_UPDATE_IND16( namcos1 ); | |
122 | SCREEN_VBLANK( namcos1 ); | |
123 | ||
124 |
r17967 | r17968 | |
---|---|---|
32 | 32 | TILE_GET_INFO_MEMBER(get_fg_tile_info); |
33 | 33 | virtual void video_start(); |
34 | 34 | virtual void palette_init(); |
35 | UINT32 screen_update_mrdo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
35 | 36 | }; |
36 | 37 | |
37 | 38 | |
r17967 | r17968 | |
40 | 41 | |
41 | 42 | |
42 | 43 | |
43 | ||
44 |
r17967 | r17968 | |
---|---|---|
41 | 41 | virtual void machine_start(); |
42 | 42 | virtual void machine_reset(); |
43 | 43 | virtual void video_start(); |
44 | UINT32 screen_update_gundealr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
44 | 45 | }; |
45 | 46 | |
46 | 47 | |
r17967 | r17968 | |
48 | 49 | /*----------- defined in video/gundealr.c -----------*/ |
49 | 50 | |
50 | 51 | |
51 | SCREEN_UPDATE_IND16( gundealr ); | |
52 | 52 | |
53 |
r17967 | r17968 | |
---|---|---|
43 | 43 | virtual void machine_reset(); |
44 | 44 | DECLARE_VIDEO_START(mainevt); |
45 | 45 | 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); | |
46 | 48 | }; |
47 | 49 | |
48 | 50 | /*----------- defined in video/mainevt.c -----------*/ |
r17967 | r17968 | |
55 | 57 | |
56 | 58 | |
57 | 59 | |
58 | SCREEN_UPDATE_IND16( mainevt ); | |
59 | SCREEN_UPDATE_IND16( dv ); | |
60 | ||
61 |
r17967 | r17968 | |
---|---|---|
95 | 95 | DECLARE_PALETTE_INIT(spelunk2); |
96 | 96 | DECLARE_VIDEO_START(youjyudn); |
97 | 97 | 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); | |
98 | 109 | }; |
99 | 110 | |
100 | 111 | |
r17967 | r17968 | |
119 | 130 | |
120 | 131 | |
121 | 132 | |
122 | SCREEN_UPDATE_IND16( battroad ); | |
123 | SCREEN_UPDATE_IND16( horizon ); | |
124 | SCREEN_UPDATE_IND16( kidniki ); | |
125 | SCREEN_UPDATE_IND16( kungfum ); | |
126 | SCREEN_UPDATE_IND16( ldrun ); | |
127 | SCREEN_UPDATE_IND16( ldrun3 ); | |
128 | SCREEN_UPDATE_IND16( ldrun4 ); | |
129 | SCREEN_UPDATE_IND16( lotlot ); | |
130 | SCREEN_UPDATE_IND16( spelunkr ); | |
131 | SCREEN_UPDATE_IND16( spelunk2 ); | |
132 | SCREEN_UPDATE_IND16( youjyudn ); | |
133 | ||
134 | ||
135 | ||
136 | ||
137 | ||
138 | ||
139 | ||
140 | ||
141 | ||
142 | ||
143 |
r17967 | r17968 | |
---|---|---|
120 | 120 | virtual void palette_init(); |
121 | 121 | DECLARE_VIDEO_START(profpac); |
122 | 122 | 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); | |
123 | 125 | }; |
124 | 126 | |
125 | 127 | |
r17967 | r17968 | |
131 | 133 | |
132 | 134 | |
133 | 135 | |
134 | SCREEN_UPDATE_IND16( astrocde ); | |
135 | SCREEN_UPDATE_IND16( profpac ); | |
136 | 136 | |
137 | 137 | |
138 | 138 | |
139 | 139 | |
140 | ||
141 | ||
140 | 142 | /*----------- defined in audio/wow.c -----------*/ |
141 | 143 | |
142 | 144 | extern const char *const wow_sample_names[]; |
r17967 | r17968 | |
---|---|---|
51 | 51 | virtual void machine_reset(); |
52 | 52 | virtual void video_start(); |
53 | 53 | virtual void palette_init(); |
54 | UINT32 screen_update_megazone(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
54 | 55 | }; |
55 | 56 | |
56 | 57 | |
r17967 | r17968 | |
60 | 61 | |
61 | 62 | |
62 | 63 | |
63 | ||
64 |
r17967 | r17968 | |
---|---|---|
38 | 38 | TILE_GET_INFO_MEMBER(get_back_tile_info); |
39 | 39 | TILE_GET_INFO_MEMBER(get_fore_tile_info); |
40 | 40 | 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); | |
41 | 43 | }; |
42 | 44 | |
43 | 45 | |
44 | 46 | /*----------- defined in video/toki.c -----------*/ |
45 | 47 | |
46 | 48 | |
47 | SCREEN_UPDATE_IND16( toki ); | |
48 | SCREEN_UPDATE_IND16( tokib ); | |
49 | ||
50 |
r17967 | r17968 | |
---|---|---|
16 | 16 | TILE_GET_INFO_MEMBER(get_pass_bg_tile_info); |
17 | 17 | TILE_GET_INFO_MEMBER(get_pass_fg_tile_info); |
18 | 18 | virtual void video_start(); |
19 | UINT32 screen_update_pass(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
19 | 20 | }; |
20 | 21 | |
21 | 22 | |
r17967 | r17968 | |
23 | 24 | |
24 | 25 | |
25 | 26 | |
26 | ||
27 |
r17967 | r17968 | |
---|---|---|
95 | 95 | DECLARE_MACHINE_RESET(undoukai); |
96 | 96 | DECLARE_MACHINE_RESET(common); |
97 | 97 | DECLARE_MACHINE_RESET(ta7630); |
98 | UINT32 screen_update_fortyl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
98 | 99 | }; |
99 | 100 | |
100 | 101 | |
r17967 | r17968 | |
102 | 103 | |
103 | 104 | |
104 | 105 | |
105 | SCREEN_UPDATE_IND16( fortyl ); | |
106 | 106 | |
107 |
r17967 | r17968 | |
---|---|---|
72 | 72 | virtual void machine_start(); |
73 | 73 | virtual void machine_reset(); |
74 | 74 | virtual void video_start(); |
75 | UINT32 screen_update_renegade(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
75 | 76 | }; |
76 | 77 | |
77 | 78 | |
78 | 79 | /*----------- defined in video/renegade.c -----------*/ |
79 | 80 | |
80 | SCREEN_UPDATE_IND16( renegade ); | |
81 | 81 | |
82 |
r17967 | r17968 | |
---|---|---|
56 | 56 | DECLARE_MACHINE_RESET(galaga); |
57 | 57 | DECLARE_VIDEO_START(galaga); |
58 | 58 | 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); | |
59 | 61 | }; |
60 | 62 | |
61 | 63 | class xevious_state : public galaga_state |
r17967 | r17968 | |
90 | 92 | DECLARE_MACHINE_RESET(xevios); |
91 | 93 | DECLARE_PALETTE_INIT(battles); |
92 | 94 | DECLARE_MACHINE_RESET(battles); |
95 | UINT32 screen_update_xevious(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
93 | 96 | }; |
94 | 97 | |
95 | 98 | |
r17967 | r17968 | |
119 | 122 | TILE_GET_INFO_MEMBER(fg_get_tile_info); |
120 | 123 | DECLARE_VIDEO_START(bosco); |
121 | 124 | 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); | |
122 | 127 | }; |
123 | 128 | |
124 | 129 | class digdug_state : public galaga_state |
r17967 | r17968 | |
144 | 149 | TILE_GET_INFO_MEMBER(tx_get_tile_info); |
145 | 150 | DECLARE_VIDEO_START(digdug); |
146 | 151 | DECLARE_PALETTE_INIT(digdug); |
152 | UINT32 screen_update_digdug(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
147 | 153 | }; |
148 | 154 | |
149 | 155 | |
r17967 | r17968 | |
155 | 161 | DECLARE_WRITE8_HANDLER( bosco_scrolly_w ); |
156 | 162 | DECLARE_WRITE8_HANDLER( bosco_starclr_w ); |
157 | 163 | |
158 | SCREEN_UPDATE_IND16( bosco ); | |
159 | ||
160 | SCREEN_VBLANK( bosco ); /* update starfield */ | |
161 | ||
162 | 164 | /*----------- defined in audio/galaga.c -----------*/ |
163 | 165 | |
164 | 166 | DISCRETE_SOUND_EXTERN( bosco ); |
r17967 | r17968 | |
175 | 177 | |
176 | 178 | extern const struct star star_seed_tab[]; |
177 | 179 | |
178 | ||
179 | ||
180 | SCREEN_UPDATE_IND16( galaga ); | |
181 | SCREEN_VBLANK( galaga ); /* update starfield */ | |
182 | ||
183 | 180 | /*----------- defined in video/xevious.c -----------*/ |
184 | 181 | |
185 | 182 | DECLARE_WRITE8_HANDLER( xevious_fg_videoram_w ); |
r17967 | r17968 | |
191 | 188 | DECLARE_READ8_HANDLER( xevious_bb_r ); |
192 | 189 | |
193 | 190 | |
194 | SCREEN_UPDATE_IND16( xevious ); | |
195 | 191 | |
196 | 192 | |
197 | 193 | |
194 | ||
198 | 195 | /*----------- defined in machine/xevious.c -----------*/ |
199 | 196 | |
200 | 197 | void battles_customio_init(running_machine &machine); |
r17967 | r17968 | |
220 | 217 | DECLARE_WRITE8_HANDLER( digdug_videoram_w ); |
221 | 218 | DECLARE_WRITE8_HANDLER( digdug_PORT_w ); |
222 | 219 | |
223 | SCREEN_UPDATE_IND16( digdug ); | |
224 | 220 | |
221 |
r17967 | r17968 | |
---|---|---|
66 | 66 | DECLARE_VIDEO_START(wwjgtin); |
67 | 67 | DECLARE_PALETTE_INIT(wwjgtin); |
68 | 68 | 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); | |
69 | 72 | }; |
70 | 73 | |
71 | 74 | |
r17967 | r17968 | |
79 | 82 | |
80 | 83 | |
81 | 84 | |
82 | SCREEN_UPDATE_IND16( lasso ); | |
83 | SCREEN_UPDATE_IND16( chameleo ); | |
84 | SCREEN_UPDATE_IND16( wwjgtin ); | |
85 | ||
86 | ||
87 |
r17967 | r17968 | |
---|---|---|
87 | 87 | DECLARE_VIDEO_START(mbmj8688_hybrid_16bit); |
88 | 88 | DECLARE_VIDEO_START(mbmj8688_hybrid_12bit); |
89 | 89 | 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); | |
90 | 93 | }; |
91 | 94 | |
92 | 95 | |
r17967 | r17968 | |
95 | 98 | |
96 | 99 | |
97 | 100 | |
98 | SCREEN_UPDATE_IND16( mbmj8688 ); | |
99 | SCREEN_UPDATE_IND16( mbmj8688_lcd0 ); | |
100 | SCREEN_UPDATE_IND16( mbmj8688_lcd1 ); | |
101 | 101 | |
102 | 102 | |
103 | 103 | |
r17967 | r17968 | |
106 | 106 | |
107 | 107 | |
108 | 108 | |
109 | ||
110 | ||
111 |
r17967 | r17968 | |
---|---|---|
27 | 27 | DECLARE_WRITE8_MEMBER(sound_bankswitch_w); |
28 | 28 | virtual void machine_start(); |
29 | 29 | 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); | |
30 | 33 | }; |
31 | 34 | |
32 | 35 | /*----------- defined in video/taito_h.c -----------*/ |
33 | 36 | |
34 | SCREEN_UPDATE_IND16( syvalion ); | |
35 | SCREEN_UPDATE_IND16( recordbr ); | |
36 | SCREEN_UPDATE_IND16( dleague ); | |
37 | ||
38 | ||
39 |
r17967 | r17968 | |
---|---|---|
45 | 45 | DECLARE_VIDEO_RESET(psychic5); |
46 | 46 | DECLARE_VIDEO_START(bombsa); |
47 | 47 | 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); | |
48 | 50 | }; |
49 | 51 | |
50 | 52 | |
r17967 | r17968 | |
54 | 56 | |
55 | 57 | |
56 | 58 | |
57 | SCREEN_UPDATE_RGB32( psychic5 ); | |
58 | 59 | |
59 | 60 | |
60 | 61 | |
61 | 62 | |
62 | SCREEN_UPDATE_RGB32( bombsa ); | |
63 | ||
64 |
r17967 | r17968 | |
---|---|---|
74 | 74 | DECLARE_MACHINE_START(extra_8080bw_vh); |
75 | 75 | DECLARE_MACHINE_START(schaser_sh); |
76 | 76 | 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); | |
77 | 88 | }; |
78 | 89 | |
79 | 90 | |
r17967 | r17968 | |
101 | 112 | |
102 | 113 | |
103 | 114 | |
104 | SCREEN_UPDATE_RGB32( invadpt2 ); | |
105 | SCREEN_UPDATE_RGB32( ballbomb ); | |
106 | SCREEN_UPDATE_RGB32( schaser ); | |
107 | SCREEN_UPDATE_RGB32( schasercv ); | |
108 | SCREEN_UPDATE_RGB32( rollingc ); | |
109 | SCREEN_UPDATE_RGB32( polaris ); | |
110 | SCREEN_UPDATE_RGB32( lupin3 ); | |
111 | SCREEN_UPDATE_RGB32( cosmo ); | |
112 | SCREEN_UPDATE_RGB32( indianbt ); | |
113 | SCREEN_UPDATE_RGB32( shuttlei ); | |
114 | SCREEN_UPDATE_RGB32( sflush ); | |
115 | 115 | |
116 | ||
117 | ||
118 | ||
119 | ||
120 | ||
121 | ||
122 | ||
123 | ||
124 | ||
125 | ||
126 |
r17967 | r17968 | |
---|---|---|
62 | 62 | virtual void machine_start(); |
63 | 63 | virtual void machine_reset(); |
64 | 64 | virtual void video_start(); |
65 | UINT32 screen_update_othunder(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
65 | 66 | }; |
66 | 67 | |
67 | 68 | |
68 | 69 | /*----------- defined in video/othunder.c -----------*/ |
69 | 70 | |
70 | 71 | |
71 | ||
72 |
r17967 | r17968 | |
---|---|---|
45 | 45 | virtual void machine_start(); |
46 | 46 | virtual void machine_reset(); |
47 | 47 | virtual void video_start(); |
48 | UINT32 screen_update_ginganin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
48 | 49 | }; |
49 | 50 | |
50 | 51 | |
r17967 | r17968 | |
53 | 54 | |
54 | 55 | |
55 | 56 | |
56 | ||
57 |
r17967 | r17968 | |
---|---|---|
38 | 38 | virtual void machine_start(); |
39 | 39 | virtual void machine_reset(); |
40 | 40 | virtual void video_start(); |
41 | UINT32 screen_update_tail2nos(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
41 | 42 | }; |
42 | 43 | |
43 | 44 | |
r17967 | r17968 | |
47 | 48 | |
48 | 49 | |
49 | 50 | |
50 | ||
51 |
r17967 | r17968 | |
---|---|---|
28 | 28 | DECLARE_MACHINE_RESET(quasar); |
29 | 29 | DECLARE_VIDEO_START(quasar); |
30 | 30 | DECLARE_PALETTE_INIT(quasar); |
31 | UINT32 screen_update_quasar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
31 | 32 | }; |
32 | 33 | |
33 | 34 | |
34 | 35 | /*----------- defined in video/quasar.c -----------*/ |
35 | 36 | |
36 | 37 | |
37 | SCREEN_UPDATE_IND16( quasar ); | |
38 | 38 | |
39 |
r17967 | r17968 | |
---|---|---|
25 | 25 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
26 | 26 | virtual void video_start(); |
27 | 27 | virtual void palette_init(); |
28 | UINT32 screen_update_mrjong(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
28 | 29 | }; |
29 | 30 | |
30 | 31 | |
r17967 | r17968 | |
33 | 34 | |
34 | 35 | |
35 | 36 | |
36 | ||
37 |
r17967 | r17968 | |
---|---|---|
64 | 64 | DECLARE_DRIVER_INIT(slapshot); |
65 | 65 | virtual void machine_start(); |
66 | 66 | 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); | |
67 | 69 | }; |
68 | 70 | |
69 | 71 | |
70 | 72 | /*----------- defined in video/slapshot.c -----------*/ |
71 | 73 | |
72 | 74 | |
73 | SCREEN_UPDATE_IND16( slapshot ); | |
74 | SCREEN_VBLANK( taito_no_buffer ); | |
75 | ||
76 |
r17967 | r17968 | |
---|---|---|
19 | 19 | TILE_GET_INFO_MEMBER(get_xyonix_tile_info); |
20 | 20 | virtual void video_start(); |
21 | 21 | virtual void palette_init(); |
22 | UINT32 screen_update_xyonix(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
22 | 23 | }; |
23 | 24 | |
24 | 25 | |
r17967 | r17968 | |
26 | 27 | |
27 | 28 | |
28 | 29 | |
29 | ||
30 |
r17967 | r17968 | |
---|---|---|
111 | 111 | SCREEN_UPDATE_IND16( vsnes_bottom ); |
112 | 112 | |
113 | 113 | |
114 | ||
115 | ||
116 | ||
117 | ||
114 | 118 | extern const ppu2c0x_interface vsnes_ppu_interface_1; |
115 | 119 | extern const ppu2c0x_interface vsnes_ppu_interface_2; |
116 | 120 |
r17967 | r17968 | |
---|---|---|
61 | 61 | DECLARE_READ8_MEMBER(victory_video_control_r); |
62 | 62 | DECLARE_WRITE8_MEMBER(victory_video_control_w); |
63 | 63 | virtual void video_start(); |
64 | UINT32 screen_update_victory(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
64 | 65 | }; |
65 | 66 | |
66 | 67 | |
67 | 68 | /*----------- defined in video/victory.c -----------*/ |
68 | 69 | |
69 | 70 | |
70 | ||
71 | ||
71 | 72 | INTERRUPT_GEN( victory_vblank_interrupt ); |
72 | 73 |
r17967 | r17968 | |
---|---|---|
46 | 46 | virtual void machine_reset(); |
47 | 47 | virtual void video_start(); |
48 | 48 | virtual void palette_init(); |
49 | UINT32 screen_update_1943(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
49 | 50 | }; |
50 | 51 | |
51 | 52 |
r17967 | r17968 | |
---|---|---|
65 | 65 | virtual void machine_reset(); |
66 | 66 | DECLARE_VIDEO_START(stoneage); |
67 | 67 | 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); | |
68 | 73 | }; |
69 | 74 | |
70 | 75 | /*----------- defined in video/cninja.c -----------*/ |
r17967 | r17968 | |
72 | 77 | |
73 | 78 | |
74 | 79 | |
75 | SCREEN_UPDATE_IND16( cninja ); | |
76 | SCREEN_UPDATE_IND16( cninjabl ); | |
77 | SCREEN_UPDATE_IND16( edrandy ); | |
78 | SCREEN_UPDATE_IND16( robocop2 ); | |
79 | SCREEN_UPDATE_RGB32( mutantf ); | |
80 | ||
81 | ||
82 | ||
83 | ||
84 |
r17967 | r17968 | |
---|---|---|
50 | 50 | virtual void machine_start(); |
51 | 51 | virtual void machine_reset(); |
52 | 52 | 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); | |
53 | 55 | }; |
54 | 56 | |
55 | 57 | |
56 | 58 | /*----------- defined in video/psikyo4.c -----------*/ |
57 | 59 | |
58 | 60 | |
59 | SCREEN_UPDATE_IND16( psikyo4_left ); | |
60 | SCREEN_UPDATE_IND16( psikyo4_right ); | |
61 | ||
62 |
r17967 | r17968 | |
---|---|---|
39 | 39 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
40 | 40 | virtual void video_start(); |
41 | 41 | virtual void palette_init(); |
42 | UINT32 screen_update_lucky74(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
42 | 43 | }; |
43 | 44 | |
44 | 45 | |
r17967 | r17968 | |
46 | 47 | |
47 | 48 | |
48 | 49 | |
49 | ||
50 |
r17967 | r17968 | |
---|---|---|
37 | 37 | TILE_GET_INFO_MEMBER(get_fg_tile_info); |
38 | 38 | virtual void video_start(); |
39 | 39 | virtual void palette_init(); |
40 | UINT32 screen_update_pacland(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
40 | 41 | }; |
41 | 42 | |
42 | 43 | |
r17967 | r17968 | |
45 | 46 | |
46 | 47 | |
47 | 48 | |
48 | ||
49 |
r17967 | r17968 | |
---|---|---|
34 | 34 | DECLARE_WRITE8_MEMBER(rollrace_flipy_w); |
35 | 35 | DECLARE_WRITE8_MEMBER(rollrace_flipx_w); |
36 | 36 | virtual void palette_init(); |
37 | UINT32 screen_update_rollrace(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
37 | 38 | }; |
38 | 39 | |
39 | 40 | |
40 | 41 | /*----------- defined in video/rollrace.c -----------*/ |
41 | 42 | |
42 | 43 | |
43 | SCREEN_UPDATE_IND16( rollrace ); | |
44 | 44 | |
45 | 45 | |
46 |
r17967 | r17968 | |
---|---|---|
54 | 54 | virtual void machine_reset(); |
55 | 55 | virtual void video_start(); |
56 | 56 | virtual void palette_init(); |
57 | UINT32 screen_update_popper(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
57 | 58 | }; |
58 | 59 | |
59 | 60 | |
r17967 | r17968 | |
62 | 63 | |
63 | 64 | |
64 | 65 | |
65 | SCREEN_UPDATE_IND16( popper ); | |
66 | 66 | |
67 |
r17967 | r17968 | |
---|---|---|
58 | 58 | virtual void video_start(); |
59 | 59 | DECLARE_VIDEO_START(toucheme); |
60 | 60 | DECLARE_VIDEO_START(ladyfrog_common); |
61 | UINT32 screen_update_ladyfrog(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
61 | 62 | }; |
62 | 63 | |
63 | 64 | |
r17967 | r17968 | |
67 | 68 | |
68 | 69 | |
69 | 70 | |
70 | ||
71 |
r17967 | r17968 | |
---|---|---|
71 | 71 | virtual void machine_start(); |
72 | 72 | virtual void machine_reset(); |
73 | 73 | 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); | |
74 | 76 | }; |
75 | 77 | |
76 | 78 | |
r17967 | r17968 | |
78 | 80 | |
79 | 81 | |
80 | 82 | |
81 | SCREEN_UPDATE_IND16( djboy ); | |
82 | SCREEN_VBLANK( djboy ); | |
83 | ||
84 |
r17967 | r17968 | |
---|---|---|
51 | 51 | TILE_GET_INFO_MEMBER(get_fg_tile_info); |
52 | 52 | TILEMAP_MAPPER_MEMBER(sidearms_tilemap_scan); |
53 | 53 | virtual void video_start(); |
54 | UINT32 screen_update_sidearms(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
54 | 55 | }; |
55 | 56 | |
56 | 57 | /*----------- defined in video/sidearms.c -----------*/ |
57 | 58 | |
58 | 59 | |
59 | 60 | |
60 | ||
61 |
r17967 | r17968 | |
---|---|---|
55 | 55 | virtual void video_start(); |
56 | 56 | DECLARE_VIDEO_START(joinem); |
57 | 57 | 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); | |
58 | 60 | }; |
59 | 61 | |
60 | 62 | |
r17967 | r17968 | |
62 | 64 | |
63 | 65 | |
64 | 66 | |
65 | SCREEN_UPDATE_IND16( jack ); | |
66 | 67 | |
67 | 68 | |
68 | 69 | |
69 | SCREEN_UPDATE_IND16( joinem ); | |
70 | ||
71 |
r17967 | r17968 | |
---|---|---|
30 | 30 | DECLARE_WRITE16_MEMBER(tumblep_oki_w); |
31 | 31 | DECLARE_DRIVER_INIT(tumblep); |
32 | 32 | virtual void machine_start(); |
33 | UINT32 screen_update_tumblep(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
33 | 34 | }; |
34 | 35 | |
35 | 36 | |
36 | 37 | |
37 | 38 | /*----------- defined in video/tumblep.c -----------*/ |
38 | 39 | |
39 | ||
40 |
r17967 | r17968 | |
---|---|---|
52 | 52 | virtual void machine_reset(); |
53 | 53 | virtual void video_start(); |
54 | 54 | virtual void palette_init(); |
55 | UINT32 screen_update_dogfgt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
55 | 56 | }; |
56 | 57 | |
57 | 58 | |
r17967 | r17968 | |
60 | 61 | |
61 | 62 | |
62 | 63 | |
63 | ||
64 |
r17967 | r17968 | |
---|---|---|
25 | 25 | device_t *m_deco_tilegen1; |
26 | 26 | DECLARE_DRIVER_INIT(dietgo); |
27 | 27 | virtual void machine_start(); |
28 | UINT32 screen_update_dietgo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
28 | 29 | }; |
29 | 30 | |
30 | 31 | |
31 | 32 | |
32 | 33 | /*----------- defined in video/dietgo.c -----------*/ |
33 | 34 | |
34 | ||
35 |
r17967 | r17968 | |
---|---|---|
26 | 26 | DECLARE_WRITE8_MEMBER(vigilant_rear_color_w); |
27 | 27 | virtual void video_start(); |
28 | 28 | 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); | |
29 | 31 | }; |
30 | 32 | |
31 | 33 | |
r17967 | r17968 | |
33 | 35 | |
34 | 36 | |
35 | 37 | |
36 | SCREEN_UPDATE_IND16( vigilant ); | |
37 | SCREEN_UPDATE_IND16( kikcubic ); | |
38 | ||
39 |
r17967 | r17968 | |
---|---|---|
88 | 88 | virtual void machine_start(); |
89 | 89 | virtual void machine_reset(); |
90 | 90 | 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); | |
91 | 93 | }; |
92 | 94 | |
93 | 95 | |
r17967 | r17968 | |
101 | 103 | /*----------- defined in video/taitosj.c -----------*/ |
102 | 104 | |
103 | 105 | |
104 | SCREEN_UPDATE_IND16( taitosj ); | |
105 | SCREEN_UPDATE_IND16( kikstart ); | |
106 | ||
107 |
r17967 | r17968 | |
---|---|---|
56 | 56 | DECLARE_PALETTE_INIT(kingofb); |
57 | 57 | DECLARE_VIDEO_START(ringking); |
58 | 58 | 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); | |
59 | 61 | }; |
60 | 62 | |
61 | 63 | |
r17967 | r17968 | |
64 | 66 | |
65 | 67 | |
66 | 68 | |
67 | SCREEN_UPDATE_IND16( kingofb ); | |
68 | 69 | |
69 | 70 | |
70 | 71 | |
71 | SCREEN_UPDATE_IND16( ringking ); | |
72 | ||
73 |
r17967 | r17968 | |
---|---|---|
92 | 92 | DECLARE_WRITE8_MEMBER(esripsys_dac_w); |
93 | 93 | DECLARE_DRIVER_INIT(esripsys); |
94 | 94 | virtual void video_start(); |
95 | UINT32 screen_update_esripsys(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
95 | 96 | }; |
96 | 97 | |
97 | 98 | |
98 | 99 | /*----------- defined in video/esripsys.c -----------*/ |
99 | 100 | |
100 | 101 | |
101 | SCREEN_UPDATE_RGB32( esripsys ); | |
102 | 102 | |
103 | ||
103 | 104 | INTERRUPT_GEN( esripsys_vblank_irq ); |
104 | 105 | |
105 | 106 | int esripsys_draw(running_machine &machine, int l, int r, int fig, int attr, int addr, int col, int x_scale, int bank); |
r17967 | r17968 | |
---|---|---|
51 | 51 | DECLARE_DRIVER_INIT(qmhayaku); |
52 | 52 | virtual void machine_reset(); |
53 | 53 | 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); | |
54 | 56 | }; |
55 | 57 | |
56 | 58 | |
57 | 59 | /*----------- defined in video/nbmj8991.c -----------*/ |
58 | 60 | |
59 | SCREEN_UPDATE_IND16( nbmj8991_type1 ); | |
60 | SCREEN_UPDATE_IND16( nbmj8991_type2 ); | |
61 | 61 | |
62 | 62 | |
63 | ||
64 |
r17967 | r17968 | |
---|---|---|
56 | 56 | DECLARE_MACHINE_START(ninjemak); |
57 | 57 | DECLARE_MACHINE_RESET(ninjemak); |
58 | 58 | 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); | |
59 | 61 | }; |
60 | 62 | |
61 | 63 | |
r17967 | r17968 | |
69 | 71 | |
70 | 72 | |
71 | 73 | |
72 | SCREEN_UPDATE_IND16( galivan ); | |
73 | SCREEN_UPDATE_IND16( ninjemak ); | |
74 | ||
75 |
r17967 | r17968 | |
---|---|---|
34 | 34 | virtual void machine_start(); |
35 | 35 | virtual void machine_reset(); |
36 | 36 | virtual void video_start(); |
37 | UINT32 screen_update_blockout(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
37 | 38 | }; |
38 | 39 | |
39 | 40 | |
r17967 | r17968 | |
41 | 42 | |
42 | 43 | |
43 | 44 | |
44 | ||
45 |
r17967 | r17968 | |
---|---|---|
57 | 57 | TILE_GET_INFO_MEMBER(get_vsgongf_tile_info); |
58 | 58 | DECLARE_VIDEO_START(tsamurai); |
59 | 59 | 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); | |
60 | 62 | }; |
61 | 63 | |
62 | 64 | |
r17967 | r17968 | |
66 | 68 | |
67 | 69 | |
68 | 70 | |
69 | SCREEN_UPDATE_IND16( tsamurai ); | |
70 | 71 | |
71 | 72 | |
72 | SCREEN_UPDATE_IND16( vsgongf ); | |
73 | ||
74 |
r17967 | r17968 | |
---|---|---|
36 | 36 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
37 | 37 | virtual void video_start(); |
38 | 38 | virtual void palette_init(); |
39 | UINT32 screen_update_canyon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
39 | 40 | }; |
40 | 41 | |
41 | 42 | |
r17967 | r17968 | |
52 | 53 | /*----------- defined in video/canyon.c -----------*/ |
53 | 54 | |
54 | 55 | |
55 | SCREEN_UPDATE_IND16( canyon ); | |
56 | 56 | |
57 |
r17967 | r17968 | |
---|---|---|
62 | 62 | virtual void video_start(); |
63 | 63 | DECLARE_MACHINE_RESET(splash); |
64 | 64 | 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); | |
65 | 67 | }; |
66 | 68 | |
67 | 69 | |
68 | 70 | /*----------- defined in video/splash.c -----------*/ |
69 | 71 | |
70 | 72 | |
71 | SCREEN_UPDATE_IND16( splash ); | |
72 | SCREEN_UPDATE_IND16( funystrp ); | |
73 | ||
74 |
r17967 | r17968 | |
---|---|---|
73 | 73 | DECLARE_MACHINE_START(f1gpb); |
74 | 74 | DECLARE_VIDEO_START(f1gpb); |
75 | 75 | 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); | |
76 | 79 | }; |
77 | 80 | |
78 | 81 | /*----------- defined in video/f1gp.c -----------*/ |
r17967 | r17968 | |
81 | 84 | |
82 | 85 | |
83 | 86 | |
84 | SCREEN_UPDATE_IND16( f1gp ); | |
85 | SCREEN_UPDATE_IND16( f1gpb ); | |
86 | SCREEN_UPDATE_IND16( f1gp2 ); | |
87 | ||
88 | ||
89 |
r17967 | r17968 | |
---|---|---|
23 | 23 | DECLARE_MACHINE_START(lvpoker); |
24 | 24 | DECLARE_MACHINE_RESET(lvpoker); |
25 | 25 | DECLARE_PALETTE_INIT(ponttehk); |
26 | UINT32 screen_update_lvcards(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
26 | 27 | }; |
27 | 28 | |
28 | 29 | |
r17967 | r17968 | |
32 | 33 | |
33 | 34 | |
34 | 35 | |
35 | ||
36 |
r17967 | r17968 | |
---|---|---|
28 | 28 | DECLARE_WRITE8_MEMBER(stratvox_sn76477_w); |
29 | 29 | DECLARE_DRIVER_INIT(route16); |
30 | 30 | 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); | |
31 | 34 | }; |
32 | 35 | |
33 | 36 | |
34 | 37 | /*----------- defined in video/route16.c -----------*/ |
35 | 38 | |
36 | SCREEN_UPDATE_RGB32( route16 ); | |
37 | SCREEN_UPDATE_RGB32( stratvox ); | |
38 | SCREEN_UPDATE_RGB32( ttmahjng ); | |
39 | ||
40 | ||
41 |
r17967 | r17968 | |
---|---|---|
79 | 79 | TILE_GET_INFO_MEMBER(get_fg_tile_info); |
80 | 80 | virtual void machine_start(); |
81 | 81 | virtual void video_start(); |
82 | UINT32 screen_update_tecmosys(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
82 | 83 | }; |
83 | 84 | |
84 | 85 | |
r17967 | r17968 | |
91 | 92 | /*----------- defined in video/tecmosys.c -----------*/ |
92 | 93 | |
93 | 94 | |
94 | SCREEN_UPDATE_RGB32(tecmosys); | |
95 | 95 | |
96 |
r17967 | r17968 | |
---|---|---|
60 | 60 | DECLARE_MACHINE_RESET(satansat); |
61 | 61 | DECLARE_MACHINE_RESET(pballoon); |
62 | 62 | DECLARE_VIDEO_START(pballoon); |
63 | UINT32 screen_update_snk6502(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
63 | 64 | }; |
64 | 65 | |
65 | 66 | |
r17967 | r17968 | |
119 | 120 | |
120 | 121 | |
121 | 122 | |
122 | SCREEN_UPDATE_IND16( snk6502 ); | |
123 | 123 | |
124 | 124 | |
125 | 125 | |
126 | 126 | |
127 | 127 | |
128 | 128 | |
129 |
r17967 | r17968 | |
---|---|---|
32 | 32 | virtual void machine_reset(); |
33 | 33 | virtual void video_start(); |
34 | 34 | virtual void palette_init(); |
35 | UINT32 screen_update_polyplay(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
35 | 36 | }; |
36 | 37 | |
37 | 38 | |
r17967 | r17968 | |
48 | 49 | |
49 | 50 | |
50 | 51 | |
51 | ||
52 |
r17967 | r17968 | |
---|---|---|
67 | 67 | virtual void machine_reset(); |
68 | 68 | DECLARE_VIDEO_START(exidy440); |
69 | 69 | 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); | |
70 | 72 | }; |
71 | 73 | |
72 | 74 |
r17967 | r17968 | |
---|---|---|
36 | 36 | DECLARE_WRITE8_MEMBER(exzisus_videoram_1_w); |
37 | 37 | DECLARE_WRITE8_MEMBER(exzisus_objectram_0_w); |
38 | 38 | DECLARE_WRITE8_MEMBER(exzisus_objectram_1_w); |
39 | UINT32 screen_update_exzisus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
39 | 40 | }; |
40 | 41 | |
41 | 42 | |
42 | 43 | /*----------- defined in video/exzisus.c -----------*/ |
43 | 44 | |
44 | 45 | |
45 | SCREEN_UPDATE_IND16( exzisus ); | |
46 | 46 | |
47 | 47 | |
48 |
r17967 | r17968 | |
---|---|---|
168 | 168 | DECLARE_VIDEO_START(buggyboy); |
169 | 169 | DECLARE_PALETTE_INIT(buggyboy); |
170 | 170 | 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); | |
171 | 180 | }; |
172 | 181 | |
173 | 182 | |
r17967 | r17968 | |
237 | 246 | |
238 | 247 | |
239 | 248 | |
240 | SCREEN_UPDATE_IND16( tx1_left ); | |
241 | SCREEN_UPDATE_IND16( tx1_middle ); | |
242 | SCREEN_UPDATE_IND16( tx1_right ); | |
243 | SCREEN_VBLANK( tx1 ); | |
244 | 249 | |
245 | 250 | |
246 | 251 | |
247 | SCREEN_UPDATE_IND16( buggyboy_left ); | |
248 | SCREEN_UPDATE_IND16( buggyboy_middle ); | |
249 | SCREEN_UPDATE_IND16( buggyboy_right ); | |
250 | SCREEN_VBLANK( buggyboy ); | |
251 | 252 | |
252 | 253 | |
253 | SCREEN_UPDATE_IND16( buggybjr ); | |
254 | ||
255 | ||
256 | ||
257 | ||
258 | ||
259 | ||
260 | ||
261 | ||
262 |
r17967 | r17968 | |
---|---|---|
59 | 59 | DECLARE_DRIVER_INIT(thndzone); |
60 | 60 | DECLARE_DRIVER_INIT(dassault); |
61 | 61 | virtual void video_start(); |
62 | UINT32 screen_update_dassault(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
62 | 63 | }; |
63 | 64 | |
64 | 65 | |
r17967 | r17968 | |
66 | 67 | /*----------- defined in video/dassault.c -----------*/ |
67 | 68 | |
68 | 69 | |
69 | ||
70 |
r17967 | r17968 | |
---|---|---|
26 | 26 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
27 | 27 | virtual void video_start(); |
28 | 28 | virtual void palette_init(); |
29 | UINT32 screen_update_pingpong(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
29 | 30 | }; |
30 | 31 | |
31 | 32 | |
r17967 | r17968 | |
34 | 35 | |
35 | 36 | |
36 | 37 | |
37 | ||
38 |
r17967 | r17968 | |
---|---|---|
29 | 29 | virtual void machine_reset(); |
30 | 30 | virtual void video_start(); |
31 | 31 | 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); | |
32 | 34 | }; |
33 | 35 | |
34 | 36 | |
r17967 | r17968 | |
36 | 38 | |
37 | 39 | |
38 | 40 | |
39 | SCREEN_UPDATE_IND16( ssrj ); | |
40 | SCREEN_VBLANK( ssrj ); | |
41 | 41 | |
42 | ||
43 |
r17967 | r17968 | |
---|---|---|
21 | 21 | DECLARE_MACHINE_START(blstroid); |
22 | 22 | DECLARE_MACHINE_RESET(blstroid); |
23 | 23 | DECLARE_VIDEO_START(blstroid); |
24 | UINT32 screen_update_blstroid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
24 | 25 | }; |
25 | 26 | |
26 | 27 | |
27 | 28 | /*----------- defined in video/blstroid.c -----------*/ |
28 | 29 | |
29 | 30 | |
30 | SCREEN_UPDATE_IND16( blstroid ); | |
31 | 31 | |
32 | ||
32 | 33 | void blstroid_scanline_update(screen_device &screen, int scanline); |
r17967 | r17968 | |
---|---|---|
37 | 37 | virtual void machine_reset(); |
38 | 38 | virtual void video_start(); |
39 | 39 | virtual void palette_init(); |
40 | UINT32 screen_update_gotya(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
40 | 41 | }; |
41 | 42 | |
42 | 43 | |
r17967 | r17968 | |
49 | 50 | |
50 | 51 | |
51 | 52 | |
52 | ||
53 |
r17967 | r17968 | |
---|---|---|
120 | 120 | DECLARE_VIDEO_START(roundup5); |
121 | 121 | DECLARE_VIDEO_START(cyclwarr); |
122 | 122 | 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); | |
123 | 127 | }; |
124 | 128 | |
125 | 129 | |
r17967 | r17968 | |
141 | 145 | |
142 | 146 | |
143 | 147 | |
144 | SCREEN_UPDATE_RGB32( roundup5 ); | |
145 | SCREEN_UPDATE_RGB32( apache3 ); | |
146 | SCREEN_UPDATE_RGB32( cyclwarr ); | |
147 | SCREEN_UPDATE_RGB32( bigfight ); | |
148 | 148 | |
149 | ||
150 | ||
151 | ||
152 |
r17967 | r17968 | |
---|---|---|
28 | 28 | DECLARE_READ16_MEMBER(supbtime_controls_r); |
29 | 29 | DECLARE_WRITE16_MEMBER(sound_w); |
30 | 30 | virtual void machine_start(); |
31 | UINT32 screen_update_supbtime(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
31 | 32 | }; |
32 | 33 | |
33 | 34 | |
34 | 35 | |
35 | 36 | /*----------- defined in video/supbtime.c -----------*/ |
36 | 37 | |
37 | ||
38 |
r17967 | r17968 | |
---|---|---|
49 | 49 | DECLARE_MACHINE_RESET(blmbycar); |
50 | 50 | DECLARE_MACHINE_START(watrball); |
51 | 51 | DECLARE_MACHINE_RESET(watrball); |
52 | UINT32 screen_update_blmbycar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
52 | 53 | }; |
53 | 54 | |
54 | 55 | |
r17967 | r17968 | |
57 | 58 | |
58 | 59 | |
59 | 60 | |
60 | ||
61 |
r17967 | r17968 | |
---|---|---|
61 | 61 | TILE_GET_INFO_MEMBER(fg_get_tile_info); |
62 | 62 | virtual void video_start(); |
63 | 63 | virtual void palette_init(); |
64 | UINT32 screen_update_retofinv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
64 | 65 | }; |
65 | 66 | |
66 | 67 | |
r17967 | r17968 | |
72 | 73 | |
73 | 74 | |
74 | 75 | |
75 | ||
76 |
r17967 | r17968 | |
---|---|---|
40 | 40 | virtual void machine_start(); |
41 | 41 | virtual void machine_reset(); |
42 | 42 | virtual void video_start(); |
43 | UINT32 screen_update_gbusters(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
43 | 44 | }; |
44 | 45 | |
45 | 46 | /*----------- defined in video/gbusters.c -----------*/ |
r17967 | r17968 | |
48 | 49 | extern void gbusters_sprite_callback(running_machine &machine, int *code,int *color,int *priority,int *shadow); |
49 | 50 | |
50 | 51 | |
51 | ||
52 |
r17967 | r17968 | |
---|---|---|
45 | 45 | TILE_GET_INFO_MEMBER(get_tile_info); |
46 | 46 | virtual void video_start(); |
47 | 47 | virtual void palette_init(); |
48 | UINT32 screen_update_meadows(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
48 | 49 | }; |
49 | 50 | |
50 | 51 | |
r17967 | r17968 | |
58 | 59 | /*----------- defined in video/meadows.c -----------*/ |
59 | 60 | |
60 | 61 | |
61 | SCREEN_UPDATE_IND16( meadows ); | |
62 | 62 | |
63 |
r17967 | r17968 | |
---|---|---|
45 | 45 | virtual void machine_reset(); |
46 | 46 | virtual void video_start(); |
47 | 47 | virtual void palette_init(); |
48 | UINT32 screen_update_bogeyman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
48 | 49 | }; |
49 | 50 | |
50 | 51 | |
r17967 | r17968 | |
53 | 54 | |
54 | 55 | |
55 | 56 | |
56 | ||
57 |
r17967 | r17968 | |
---|---|---|
46 | 46 | DECLARE_MACHINE_START(srmp3); |
47 | 47 | DECLARE_PALETTE_INIT(srmp3); |
48 | 48 | 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); | |
49 | 52 | }; |
50 | 53 | |
51 | 54 | |
52 | 55 | /*----------- defined in video/srmp2.c -----------*/ |
53 | 56 | |
54 | 57 | |
55 | SCREEN_UPDATE_IND16( srmp2 ); | |
56 | 58 | |
57 | SCREEN_UPDATE_IND16( srmp3 ); | |
58 | SCREEN_UPDATE_IND16( mjyuugi ); | |
59 | ||
60 | ||
61 |
r17967 | r17968 | |
---|---|---|
115 | 115 | DECLARE_VIDEO_START(poundfor); |
116 | 116 | DECLARE_MACHINE_START(kengo); |
117 | 117 | 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); | |
118 | 120 | }; |
119 | 121 | |
120 | 122 | |
r17967 | r17968 | |
129 | 131 | |
130 | 132 | |
131 | 133 | |
132 | SCREEN_UPDATE_IND16( m72 ); | |
133 | SCREEN_UPDATE_IND16( majtitle ); | |
134 | ||
135 |
r17967 | r17968 | |
---|---|---|
17 | 17 | DECLARE_DRIVER_INIT(pokechmp); |
18 | 18 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
19 | 19 | virtual void video_start(); |
20 | UINT32 screen_update_pokechmp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
20 | 21 | }; |
21 | 22 | |
22 | 23 | |
r17967 | r17968 | |
24 | 25 | |
25 | 26 | |
26 | 27 | |
27 | ||
28 |
r17967 | r17968 | |
---|---|---|
37 | 37 | virtual void machine_start(); |
38 | 38 | virtual void machine_reset(); |
39 | 39 | virtual void video_start(); |
40 | UINT32 screen_update_ohmygod(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
40 | 41 | }; |
41 | 42 | |
42 | 43 | |
r17967 | r17968 | |
44 | 45 | |
45 | 46 | |
46 | 47 | |
47 | ||
48 |
r17967 | r17968 | |
---|---|---|
43 | 43 | TILE_GET_INFO_MEMBER(get_searchar_tile_info); |
44 | 44 | virtual void video_start(); |
45 | 45 | DECLARE_VIDEO_START(searchar); |
46 | UINT32 screen_update_pow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
46 | 47 | }; |
47 | 48 | |
48 | 49 | |
r17967 | r17968 | |
50 | 51 | |
51 | 52 | |
52 | 53 | |
53 | ||
54 |
r17967 | r17968 | |
---|---|---|
62 | 62 | TILE_GET_INFO_MEMBER(get_tile_info_FG); |
63 | 63 | DECLARE_VIDEO_START(madalien); |
64 | 64 | DECLARE_PALETTE_INIT(madalien); |
65 | UINT32 screen_update_madalien(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
65 | 66 | }; |
66 | 67 | |
67 | 68 |
r17967 | r17968 | |
---|---|---|
58 | 58 | virtual void machine_start(); |
59 | 59 | virtual void machine_reset(); |
60 | 60 | virtual void video_start(); |
61 | UINT32 screen_update_aeroboto(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
61 | 62 | }; |
62 | 63 | |
63 | 64 | |
64 | 65 | /*----------- defined in video/aeroboto.c -----------*/ |
65 | 66 | |
66 | 67 | |
67 | SCREEN_UPDATE_IND16( aeroboto ); | |
68 | 68 | |
69 |
r17967 | r17968 | |
---|---|---|
70 | 70 | virtual void machine_reset(); |
71 | 71 | virtual void video_start(); |
72 | 72 | virtual void palette_init(); |
73 | UINT32 screen_update_firetrap(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
73 | 74 | }; |
74 | 75 | |
75 | 76 | |
r17967 | r17968 | |
78 | 79 | |
79 | 80 | |
80 | 81 | |
81 | ||
82 |
r17967 | r17968 | |
---|---|---|
53 | 53 | virtual void machine_start(); |
54 | 54 | virtual void machine_reset(); |
55 | 55 | DECLARE_VIDEO_START(crgolf); |
56 | UINT32 screen_update_crgolf(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
56 | 57 | }; |
57 | 58 | |
58 | 59 | /*----------- defined in video/crgolf.c -----------*/ |
r17967 | r17968 | |
---|---|---|
49 | 49 | virtual void machine_reset(); |
50 | 50 | virtual void video_start(); |
51 | 51 | virtual void palette_init(); |
52 | UINT32 screen_update_thedeep(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
52 | 53 | }; |
53 | 54 | |
54 | 55 | |
r17967 | r17968 | |
57 | 58 | |
58 | 59 | |
59 | 60 | |
60 | SCREEN_UPDATE_IND16( thedeep ); | |
61 | 61 | |
62 |
r17967 | r17968 | |
---|---|---|
49 | 49 | virtual void machine_start(); |
50 | 50 | virtual void machine_reset(); |
51 | 51 | 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); | |
52 | 54 | }; |
53 | 55 | |
54 | 56 | /*----------- defined in video/oneshot.c -----------*/ |
55 | 57 | |
56 | 58 | |
57 | 59 | |
58 | SCREEN_UPDATE_IND16( oneshot ); | |
59 | SCREEN_UPDATE_IND16( maddonna ); | |
60 | ||
61 |
r17967 | r17968 | |
---|---|---|
43 | 43 | TILE_GET_INFO_MEMBER(get_stlforce_mhigh_tile_info); |
44 | 44 | TILE_GET_INFO_MEMBER(get_stlforce_tx_tile_info); |
45 | 45 | virtual void video_start(); |
46 | UINT32 screen_update_stlforce(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
46 | 47 | }; |
47 | 48 | |
48 | 49 | |
49 | 50 | /*----------- defined in video/stlforce.c -----------*/ |
50 | 51 | |
51 | 52 | |
52 | ||
53 |
r17967 | r17968 | |
---|---|---|
54 | 54 | DECLARE_CUSTOM_INPUT_MEMBER(topspeed_pedal_r); |
55 | 55 | virtual void machine_start(); |
56 | 56 | virtual void machine_reset(); |
57 | UINT32 screen_update_topspeed(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
57 | 58 | }; |
58 | 59 | |
59 | 60 | |
60 | 61 | /*----------- defined in video/topspeed.c -----------*/ |
61 | 62 | |
62 | ||
63 |
r17967 | r17968 | |
---|---|---|
43 | 43 | virtual void machine_start(); |
44 | 44 | virtual void machine_reset(); |
45 | 45 | virtual void video_start(); |
46 | UINT32 screen_update_amspdwy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
46 | 47 | }; |
47 | 48 | |
48 | 49 | |
r17967 | r17968 | |
50 | 51 | |
51 | 52 | |
52 | 53 | |
53 | ||
54 |
r17967 | r17968 | |
---|---|---|
47 | 47 | DECLARE_MACHINE_RESET(fantland); |
48 | 48 | DECLARE_MACHINE_START(borntofi); |
49 | 49 | DECLARE_MACHINE_RESET(borntofi); |
50 | UINT32 screen_update_fantland(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
50 | 51 | }; |
51 | 52 | |
52 | 53 | |
53 | 54 | /*----------- defined in video/fantland.c -----------*/ |
54 | 55 | |
55 | ||
56 |
r17967 | r17968 | |
---|---|---|
49 | 49 | DECLARE_MACHINE_START(atarig1); |
50 | 50 | DECLARE_MACHINE_RESET(atarig1); |
51 | 51 | 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); | |
52 | 54 | }; |
53 | 55 | |
54 | 56 | |
r17967 | r17968 | |
56 | 58 | |
57 | 59 | |
58 | 60 | |
59 | SCREEN_VBLANK( atarig1 ); | |
60 | SCREEN_UPDATE_IND16( atarig1 ); | |
61 | 61 | |
62 | ||
63 | ||
62 | 64 | void atarig1_scanline_update(screen_device &screen, int scanline); |
r17967 | r17968 | |
---|---|---|
34 | 34 | virtual void machine_start(); |
35 | 35 | virtual void machine_reset(); |
36 | 36 | virtual void palette_init(); |
37 | UINT32 screen_update_bladestl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
37 | 38 | }; |
38 | 39 | |
39 | 40 | |
r17967 | r17968 | |
42 | 43 | |
43 | 44 | |
44 | 45 | |
45 | SCREEN_UPDATE_IND16( bladestl ); | |
46 | 46 | |
47 | ||
47 | 48 | void bladestl_tile_callback(running_machine &machine, int layer, int bank, int *code, int *color, int *flags); |
48 | 49 | void bladestl_sprite_callback(running_machine &machine, int *code, int *color); |
r17967 | r17968 | |
---|---|---|
25 | 25 | DECLARE_MACHINE_START(toobin); |
26 | 26 | DECLARE_MACHINE_RESET(toobin); |
27 | 27 | DECLARE_VIDEO_START(toobin); |
28 | UINT32 screen_update_toobin(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
28 | 29 | }; |
29 | 30 | |
30 | 31 | |
r17967 | r17968 | |
37 | 38 | DECLARE_WRITE16_HANDLER( toobin_slip_w ); |
38 | 39 | |
39 | 40 | |
40 | ||
41 |
r17967 | r17968 | |
---|---|---|
27 | 27 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
28 | 28 | virtual void machine_start(); |
29 | 29 | virtual void video_start(); |
30 | UINT32 screen_update_srumbler(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
30 | 31 | }; |
31 | 32 | |
32 | 33 | |
r17967 | r17968 | |
34 | 35 | |
35 | 36 | |
36 | 37 | |
37 | SCREEN_UPDATE_IND16( srumbler ); | |
38 | SCREEN_VBLANK( srumbler ); | |
38 | ||
39 |
r17967 | r17968 | |
---|---|---|
49 | 49 | DECLARE_VIDEO_START(denjinmk); |
50 | 50 | DECLARE_VIDEO_START(grainbow); |
51 | 51 | 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); | |
52 | 55 | }; |
53 | 56 | |
54 | 57 | |
r17967 | r17968 | |
57 | 60 | void heatbrl_setgfxbank(running_machine &machine, UINT16 data); |
58 | 61 | void denjinmk_setgfxbank(running_machine &machine, UINT16 data); |
59 | 62 | |
60 | SCREEN_UPDATE_IND16( legionna ); | |
61 | SCREEN_UPDATE_IND16( godzilla ); | |
62 | SCREEN_UPDATE_IND16( grainbow ); | |
63 | ||
64 | ||
65 |
r17967 | r17968 | |
---|---|---|
51 | 51 | virtual void machine_start(); |
52 | 52 | virtual void machine_reset(); |
53 | 53 | virtual void video_start(); |
54 | UINT32 screen_update_pbaction(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
54 | 55 | }; |
55 | 56 | |
56 | 57 |
r17967 | r17968 | |
---|---|---|
96 | 96 | DECLARE_MACHINE_START(mcr68); |
97 | 97 | DECLARE_MACHINE_RESET(mcr68); |
98 | 98 | 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); | |
99 | 101 | }; |
100 | 102 | |
101 | 103 | /*----------- defined in machine/mcr68.c -----------*/ |
r17967 | r17968 | |
118 | 120 | |
119 | 121 | |
120 | 122 | |
121 | SCREEN_UPDATE_IND16( mcr68 ); | |
122 | 123 | |
123 | 124 | |
124 | 125 | |
125 | SCREEN_UPDATE_IND16( zwackery ); | |
126 | ||
127 |
r17967 | r17968 | |
---|---|---|
29 | 29 | DECLARE_VIDEO_START(funworld); |
30 | 30 | DECLARE_PALETTE_INIT(funworld); |
31 | 31 | DECLARE_VIDEO_START(magicrd2); |
32 | UINT32 screen_update_funworld(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
32 | 33 | }; |
33 | 34 | |
34 | 35 | |
r17967 | r17968 | |
37 | 38 | |
38 | 39 | |
39 | 40 | |
40 | ||
41 |
r17967 | r17968 | |
---|---|---|
42 | 42 | DECLARE_READ8_MEMBER(overdriv_2_sound_r); |
43 | 43 | virtual void machine_start(); |
44 | 44 | virtual void machine_reset(); |
45 | UINT32 screen_update_overdriv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
45 | 46 | }; |
46 | 47 | |
47 | 48 | /*----------- defined in video/overdriv.c -----------*/ |
r17967 | r17968 | |
50 | 51 | extern void overdriv_zoom_callback_0(running_machine &machine, int *code,int *color,int *flags); |
51 | 52 | extern void overdriv_zoom_callback_1(running_machine &machine, int *code,int *color,int *flags); |
52 | 53 | |
53 | ||
54 |
r17967 | r17968 | |
---|---|---|
50 | 50 | DECLARE_MACHINE_RESET(scontra); |
51 | 51 | DECLARE_MACHINE_START(thunderx); |
52 | 52 | DECLARE_MACHINE_RESET(thunderx); |
53 | UINT32 screen_update_scontra(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
53 | 54 | }; |
54 | 55 | |
55 | 56 | |
r17967 | r17968 | |
59 | 60 | extern void thunderx_sprite_callback(running_machine &machine, int *code,int *color,int *priority_mask,int *shadow); |
60 | 61 | |
61 | 62 | |
62 | ||
63 |
r17967 | r17968 | |
---|---|---|
33 | 33 | DECLARE_WRITE8_MEMBER(irq_mask_w); |
34 | 34 | DECLARE_WRITE8_MEMBER(spcforce_flip_screen_w); |
35 | 35 | virtual void palette_init(); |
36 | UINT32 screen_update_spcforce(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
36 | 37 | }; |
37 | 38 | |
38 | 39 | |
39 | 40 | /*----------- defined in video/spcforce.c -----------*/ |
40 | 41 | |
41 | ||
42 |
r17967 | r17968 | |
---|---|---|
45 | 45 | DECLARE_PALETTE_INIT(gsword); |
46 | 46 | DECLARE_MACHINE_RESET(josvolly); |
47 | 47 | DECLARE_PALETTE_INIT(josvolly); |
48 | UINT32 screen_update_gsword(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
48 | 49 | }; |
49 | 50 | |
50 | 51 | |
r17967 | r17968 | |
54 | 55 | |
55 | 56 | |
56 | 57 | |
57 | ||
58 |
r17967 | r17968 | |
---|---|---|
49 | 49 | virtual void machine_start(); |
50 | 50 | virtual void machine_reset(); |
51 | 51 | 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); | |
52 | 56 | }; |
53 | 57 | |
54 | 58 | /*----------- defined in video/xmen.c -----------*/ |
r17967 | r17968 | |
57 | 61 | void xmen_sprite_callback(running_machine &machine, int *code,int *color,int *priority_mask); |
58 | 62 | |
59 | 63 | |
60 | SCREEN_UPDATE_IND16( xmen ); | |
61 | SCREEN_UPDATE_IND16( xmen6p_left ); | |
62 | SCREEN_UPDATE_IND16( xmen6p_right ); | |
63 | SCREEN_VBLANK( xmen6p ); | |
64 | ||
65 | ||
66 | ||
67 |
r17967 | r17968 | |
---|---|---|
81 | 81 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
82 | 82 | virtual void video_start(); |
83 | 83 | virtual void palette_init(); |
84 | UINT32 screen_update_mario(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
84 | 85 | }; |
85 | 86 | |
86 | 87 | /*----------- defined in video/mario.c -----------*/ |
r17967 | r17968 | |
88 | 89 | |
89 | 90 | |
90 | 91 | |
91 | SCREEN_UPDATE_IND16( mario ); | |
92 | 92 | |
93 | 93 | |
94 | ||
94 | 95 | /*----------- defined in audio/mario.c -----------*/ |
95 | 96 | |
96 | 97 | DECLARE_WRITE8_DEVICE_HANDLER( mario_sh1_w ); |
r17967 | r17968 | |
---|---|---|
44 | 44 | DECLARE_DRIVER_INIT(togenkyo); |
45 | 45 | DECLARE_DRIVER_INIT(ohpaipee); |
46 | 46 | virtual void video_start(); |
47 | UINT32 screen_update_nbmj8900(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
47 | 48 | }; |
48 | 49 | |
49 | 50 | |
50 | 51 | /*----------- defined in video/nbmj8900.c -----------*/ |
51 | 52 | |
52 | SCREEN_UPDATE_IND16( nbmj8900 ); | |
53 | 53 | |
54 | 54 | |
55 |
r17967 | r17968 | |
---|---|---|
28 | 28 | TILE_GET_INFO_MEMBER(get_fg2_tile_info); |
29 | 29 | TILE_GET_INFO_MEMBER(get_fg3_tile_info); |
30 | 30 | virtual void video_start(); |
31 | UINT32 screen_update_silkroad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
31 | 32 | }; |
32 | 33 | |
33 | 34 | |
34 | 35 | /*----------- defined in video/silkroad.c -----------*/ |
35 | 36 | |
36 | 37 | |
37 | ||
38 |
r17967 | r17968 | |
---|---|---|
79 | 79 | virtual void machine_reset(); |
80 | 80 | virtual void video_start(); |
81 | 81 | 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); | |
82 | 85 | }; |
83 | 86 | |
84 | 87 | |
r17967 | r17968 | |
98 | 101 | /*----------- defined in video/atarifb.c -----------*/ |
99 | 102 | |
100 | 103 | |
101 | SCREEN_UPDATE_IND16( atarifb ); | |
102 | SCREEN_UPDATE_IND16( abaseb ); | |
103 | SCREEN_UPDATE_IND16( soccer ); | |
104 | 104 | |
105 | ||
106 | ||
107 |
r17967 | r17968 | |
---|---|---|
39 | 39 | virtual void machine_start(); |
40 | 40 | virtual void machine_reset(); |
41 | 41 | virtual void video_start(); |
42 | UINT32 screen_update_lethalen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
42 | 43 | }; |
43 | 44 | |
44 | 45 | /*----------- defined in video/lethal.c -----------*/ |
r17967 | r17968 | |
48 | 49 | |
49 | 50 | |
50 | 51 | |
51 | ||
52 |
r17967 | r17968 | |
---|---|---|
41 | 41 | TILE_GET_INFO_MEMBER(get_tile_info); |
42 | 42 | virtual void machine_reset(); |
43 | 43 | virtual void video_start(); |
44 | UINT32 screen_update_videopin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
44 | 45 | }; |
45 | 46 | |
46 | 47 | |
r17967 | r17968 | |
53 | 54 | |
54 | 55 | |
55 | 56 | |
56 | SCREEN_UPDATE_IND16( videopin ); | |
57 | 57 | |
58 |
r17967 | r17968 | |
---|---|---|
53 | 53 | virtual void machine_start(); |
54 | 54 | virtual void machine_reset(); |
55 | 55 | virtual void video_start(); |
56 | UINT32 screen_update_exprraid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
56 | 57 | }; |
57 | 58 | |
58 | 59 |
r17967 | r17968 | |
---|---|---|
49 | 49 | virtual void video_start(); |
50 | 50 | DECLARE_VIDEO_START(ginkun); |
51 | 51 | DECLARE_VIDEO_START(riot); |
52 | UINT32 screen_update_tecmo16(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
52 | 53 | }; |
53 | 54 | |
54 | 55 | |
r17967 | r17968 | |
59 | 60 | |
60 | 61 | |
61 | 62 | |
62 | ||
63 |
r17967 | r17968 | |
---|---|---|
31 | 31 | DECLARE_DRIVER_INIT(popflame); |
32 | 32 | virtual void video_start(); |
33 | 33 | virtual void palette_init(); |
34 | UINT32 screen_update_naughtyb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
34 | 35 | }; |
35 | 36 | |
36 | 37 | |
r17967 | r17968 | |
39 | 40 | |
40 | 41 | |
41 | 42 | |
42 | ||
43 |
r17967 | r17968 | |
---|---|---|
24 | 24 | virtual void machine_reset(); |
25 | 25 | virtual void video_start(); |
26 | 26 | 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); | |
27 | 29 | }; |
28 | 30 | |
29 | 31 | |
r17967 | r17968 | |
31 | 33 | |
32 | 34 | |
33 | 35 | |
34 | SCREEN_UPDATE_IND16( runaway ); | |
35 | SCREEN_UPDATE_IND16( qwak ); | |
36 | 36 | |
37 | ||
38 |
r17967 | r17968 | |
---|---|---|
91 | 91 | DECLARE_VIDEO_START(suprtrio); |
92 | 92 | DECLARE_VIDEO_START(pangpang); |
93 | 93 | 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); | |
94 | 104 | }; |
95 | 105 | |
96 | 106 | |
97 | 107 | /*----------- defined in video/tumbleb.c -----------*/ |
98 | 108 | |
99 | SCREEN_UPDATE_IND16( tumblepb ); | |
100 | SCREEN_UPDATE_IND16( jumpkids ); | |
101 | SCREEN_UPDATE_IND16( fncywld ); | |
102 | SCREEN_UPDATE_IND16( semicom ); | |
103 | SCREEN_UPDATE_IND16( semicom_altoffsets ); | |
104 | SCREEN_UPDATE_IND16( bcstory ); | |
105 | SCREEN_UPDATE_IND16( semibase ); | |
106 | SCREEN_UPDATE_IND16( suprtrio ); | |
107 | SCREEN_UPDATE_IND16( pangpang ); | |
108 | SCREEN_UPDATE_IND16( sdfight ); | |
109 | ||
110 | ||
111 | ||
112 | ||
113 | ||
114 | ||
115 | ||
116 | ||
117 | ||
118 |
r17967 | r17968 | |
---|---|---|
49 | 49 | virtual void machine_reset(); |
50 | 50 | virtual void video_start(); |
51 | 51 | virtual void palette_init(); |
52 | UINT32 screen_update_toypop(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
52 | 53 | }; |
53 | 54 | |
54 | 55 | |
55 | 56 | /*----------- defined in video/toypop.c -----------*/ |
56 | 57 | |
57 | 58 | |
58 | SCREEN_UPDATE_IND16( toypop ); | |
59 | 59 | |
60 |
r17967 | r17968 | |
---|---|---|
45 | 45 | DECLARE_WRITE8_MEMBER(momoko_flipscreen_w); |
46 | 46 | virtual void machine_start(); |
47 | 47 | virtual void machine_reset(); |
48 | UINT32 screen_update_momoko(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
48 | 49 | }; |
49 | 50 | |
50 | 51 | |
51 | 52 | /*----------- defined in video/momoko.c -----------*/ |
52 | 53 | |
53 | 54 | |
54 | ||
55 |
r17967 | r17968 | |
---|---|---|
48 | 48 | virtual void palette_init(); |
49 | 49 | DECLARE_MACHINE_START(kchampvs); |
50 | 50 | 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); | |
51 | 53 | }; |
52 | 54 | |
53 | 55 | |
r17967 | r17968 | |
56 | 58 | |
57 | 59 | |
58 | 60 | |
59 | SCREEN_UPDATE_IND16( kchamp ); | |
60 | SCREEN_UPDATE_IND16( kchampvs ); | |
61 | ||
62 |
r17967 | r17968 | |
---|---|---|
39 | 39 | virtual void machine_reset(); |
40 | 40 | virtual void video_start(); |
41 | 41 | 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); | |
42 | 44 | }; |
43 | 45 | |
44 | 46 | |
r17967 | r17968 | |
46 | 48 | |
47 | 49 | |
48 | 50 | |
49 | SCREEN_UPDATE_IND16( ultratnk ); | |
50 | SCREEN_VBLANK( ultratnk ); | |
51 | 51 | |
52 | ||
53 |
r17967 | r17968 | |
---|---|---|
40 | 40 | virtual void video_start(); |
41 | 41 | DECLARE_VIDEO_START(bomblord); |
42 | 42 | 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); | |
43 | 46 | }; |
44 | 47 | |
45 | 48 | |
r17967 | r17968 | |
48 | 51 | |
49 | 52 | |
50 | 53 | |
51 | SCREEN_UPDATE_IND16( m90 ); | |
52 | SCREEN_UPDATE_IND16( dynablsb ); | |
53 | SCREEN_UPDATE_IND16( bomblord ); | |
54 | ||
55 | ||
56 |
r17967 | r17968 | |
---|---|---|
39 | 39 | DECLARE_DRIVER_INIT(gunbustrj); |
40 | 40 | DECLARE_DRIVER_INIT(gunbustr); |
41 | 41 | virtual void video_start(); |
42 | UINT32 screen_update_gunbustr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
42 | 43 | }; |
43 | 44 | |
44 | 45 | |
45 | 46 | /*----------- defined in video/gunbustr.c -----------*/ |
46 | 47 | |
47 | 48 | |
48 | ||
49 |
r17967 | r17968 | |
---|---|---|
25 | 25 | TILE_GET_INFO_MEMBER(scotrsht_get_bg_tile_info); |
26 | 26 | virtual void video_start(); |
27 | 27 | virtual void palette_init(); |
28 | UINT32 screen_update_scotrsht(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
28 | 29 | }; |
29 | 30 | |
30 | 31 | |
r17967 | r17968 | |
33 | 34 | |
34 | 35 | |
35 | 36 | |
36 | ||
37 |
r17967 | r17968 | |
---|---|---|
77 | 77 | DECLARE_MACHINE_RESET(taitoz); |
78 | 78 | DECLARE_VIDEO_START(taitoz); |
79 | 79 | 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); | |
80 | 88 | }; |
81 | 89 | |
82 | 90 | /*----------- defined in video/taito_z.c -----------*/ |
r17967 | r17968 | |
84 | 92 | |
85 | 93 | |
86 | 94 | |
87 | SCREEN_UPDATE_IND16( contcirc ); | |
88 | SCREEN_UPDATE_IND16( chasehq ); | |
89 | SCREEN_UPDATE_IND16( bshark ); | |
90 | SCREEN_UPDATE_IND16( sci ); | |
91 | SCREEN_UPDATE_IND16( aquajack ); | |
92 | SCREEN_UPDATE_IND16( spacegun ); | |
93 | SCREEN_UPDATE_IND16( dblaxle ); | |
94 | SCREEN_UPDATE_IND16( racingb ); | |
95 | ||
96 | ||
97 | ||
98 | ||
99 | ||
100 | ||
101 | ||
102 |
r17967 | r17968 | |
---|---|---|
35 | 35 | DECLARE_PALETTE_INIT(phoenix); |
36 | 36 | DECLARE_PALETTE_INIT(survival); |
37 | 37 | DECLARE_PALETTE_INIT(pleiads); |
38 | UINT32 screen_update_phoenix(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
38 | 39 | }; |
39 | 40 | |
40 | 41 | |
r17967 | r17968 | |
89 | 90 | |
90 | 91 | |
91 | 92 | |
92 | SCREEN_UPDATE_IND16( phoenix ); | |
93 | 93 | |
94 | 94 | |
95 | ||
95 | 96 | DECLARE_READ8_DEVICE_HANDLER( survival_protection_r ); |
96 | 97 | |
97 | 98 | READ_LINE_DEVICE_HANDLER( survival_sid_callback ); |
r17967 | r17968 | |
---|---|---|
76 | 76 | DECLARE_VIDEO_START(pbillian); |
77 | 77 | DECLARE_MACHINE_START(superqix); |
78 | 78 | 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); | |
79 | 81 | }; |
80 | 82 | |
81 | 83 | |
r17967 | r17968 | |
83 | 85 | |
84 | 86 | |
85 | 87 | |
86 | SCREEN_UPDATE_IND16( pbillian ); | |
87 | 88 | |
88 | SCREEN_UPDATE_IND16( superqix ); | |
89 | ||
90 |
r17967 | r17968 | |
---|---|---|
26 | 26 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
27 | 27 | virtual void video_start(); |
28 | 28 | virtual void palette_init(); |
29 | UINT32 screen_update_markham(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
29 | 30 | }; |
30 | 31 | |
31 | 32 | |
r17967 | r17968 | |
34 | 35 | |
35 | 36 | |
36 | 37 | |
37 | ||
38 |
r17967 | r17968 | |
---|---|---|
72 | 72 | virtual void machine_reset(); |
73 | 73 | virtual void video_start(); |
74 | 74 | DECLARE_MACHINE_RESET(ta7630); |
75 | UINT32 screen_update_msisaac(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
75 | 76 | }; |
76 | 77 | |
77 | 78 | |
r17967 | r17968 | |
79 | 80 | |
80 | 81 | |
81 | 82 | |
82 | SCREEN_UPDATE_IND16( msisaac ); | |
83 | 83 | |
84 |
r17967 | r17968 | |
---|---|---|
114 | 114 | virtual void palette_init(); |
115 | 115 | DECLARE_MACHINE_START(playch10_hboard); |
116 | 116 | 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); | |
117 | 120 | }; |
118 | 121 | |
119 | 122 | |
r17967 | r17968 | |
133 | 136 | |
134 | 137 | |
135 | 138 | |
136 | SCREEN_UPDATE_IND16( playch10_top ); | |
137 | SCREEN_UPDATE_IND16( playch10_bottom ); | |
139 | ||
140 |
r17967 | r17968 | |
---|---|---|
50 | 50 | virtual void machine_reset(); |
51 | 51 | virtual void video_start(); |
52 | 52 | virtual void palette_init(); |
53 | UINT32 screen_update_dday(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
53 | 54 | }; |
54 | 55 | |
55 | 56 | |
r17967 | r17968 | |
57 | 58 | |
58 | 59 | |
59 | 60 | |
60 | SCREEN_UPDATE_IND16( dday ); | |
61 | 61 | |
62 |
r17967 | r17968 | |
---|---|---|
53 | 53 | DECLARE_VIDEO_START(cyberbal); |
54 | 54 | DECLARE_MACHINE_RESET(cyberbal2p); |
55 | 55 | 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); | |
56 | 59 | }; |
57 | 60 | |
58 | 61 | |
r17967 | r17968 | |
75 | 78 | |
76 | 79 | |
77 | 80 | |
78 | SCREEN_UPDATE_IND16( cyberbal_left ); | |
79 | SCREEN_UPDATE_IND16( cyberbal_right ); | |
80 | SCREEN_UPDATE_IND16( cyberbal2p ); | |
81 | 81 | |
82 | ||
83 | ||
84 | ||
82 | 85 | void cyberbal_scanline_update(screen_device &screen, int scanline); |
r17967 | r17968 | |
---|---|---|
103 | 103 | virtual void machine_reset(); |
104 | 104 | virtual void video_start(); |
105 | 105 | 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); | |
106 | 108 | }; |
107 | 109 | |
108 | 110 | |
r17967 | r17968 | |
110 | 112 | |
111 | 113 | |
112 | 114 | |
113 | SCREEN_UPDATE_IND16( lockon ); | |
114 | SCREEN_VBLANK( lockon ); | |
115 | 115 | |
116 | ||
117 |
r17967 | r17968 | |
---|---|---|
49 | 49 | DECLARE_MACHINE_RESET(mappy); |
50 | 50 | DECLARE_VIDEO_START(mappy); |
51 | 51 | 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); | |
52 | 55 | }; |
53 | 56 | |
54 | 57 | |
r17967 | r17968 | |
56 | 59 | |
57 | 60 | |
58 | 61 | |
59 | SCREEN_UPDATE_IND16( phozon ); | |
60 | 62 | |
61 | 63 | |
62 | 64 | |
63 | 65 | |
64 | 66 | |
65 | SCREEN_UPDATE_IND16( superpac ); | |
66 | SCREEN_UPDATE_IND16( mappy ); | |
67 | ||
68 | ||
69 |
r17967 | r17968 | |
---|---|---|
33 | 33 | DECLARE_WRITE8_MEMBER(rastan_msm5205_stop_w); |
34 | 34 | virtual void machine_start(); |
35 | 35 | virtual void machine_reset(); |
36 | UINT32 screen_update_rastan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
36 | 37 | }; |
37 | 38 | |
38 | 39 | |
39 | 40 | /*----------- defined in video/rastan.c -----------*/ |
40 | 41 | |
41 | 42 | |
42 | ||
43 |
r17967 | r17968 | |
---|---|---|
44 | 44 | virtual void machine_start(); |
45 | 45 | virtual void machine_reset(); |
46 | 46 | virtual void video_start(); |
47 | UINT32 screen_update_gijoe(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
47 | 48 | }; |
48 | 49 | |
49 | 50 | /*----------- defined in video/gijoe.c -----------*/ |
r17967 | r17968 | |
52 | 53 | extern void gijoe_tile_callback(running_machine &machine, int layer, int *code, int *color, int *flags); |
53 | 54 | |
54 | 55 | |
55 | ||
56 |
r17967 | r17968 | |
---|---|---|
27 | 27 | TILE_GET_INFO_MEMBER(get_fg_tile_info); |
28 | 28 | TILEMAP_MAPPER_MEMBER(tigeroad_tilemap_scan); |
29 | 29 | virtual void video_start(); |
30 | UINT32 screen_update_tigeroad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
30 | 31 | }; |
31 | 32 | |
32 | 33 | |
33 | 34 | /*----------- defined in video/tigeroad.c -----------*/ |
34 | 35 | |
35 | 36 | |
36 | ||
37 |
r17967 | r17968 | |
---|---|---|
46 | 46 | virtual void machine_start(); |
47 | 47 | virtual void machine_reset(); |
48 | 48 | virtual void video_start(); |
49 | UINT32 screen_update_rltennis(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
49 | 50 | }; |
50 | 51 | |
51 | 52 | |
52 | 53 | |
53 | 54 | |
54 | SCREEN_UPDATE_IND16( rltennis ); | |
55 | 55 | |
56 |
r17967 | r17968 | |
---|---|---|
174 | 174 | DECLARE_MACHINE_RESET(system32); |
175 | 175 | DECLARE_VIDEO_START(system32); |
176 | 176 | 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); | |
177 | 180 | }; |
178 | 181 | |
179 | 182 | |
r17967 | r17968 | |
195 | 198 | |
196 | 199 | |
197 | 200 | |
198 | SCREEN_UPDATE_RGB32(system32); | |
199 | SCREEN_UPDATE_RGB32(multi32_left); | |
200 | SCREEN_UPDATE_RGB32(multi32_right); | |
201 | ||
202 | ||
203 | ||
201 | 204 | void system32_set_vblank(running_machine &machine, int state); |
202 | 205 | |
203 | 206 |
r17967 | r17968 | |
---|---|---|
48 | 48 | DECLARE_DRIVER_INIT(metalmx); |
49 | 49 | virtual void machine_reset(); |
50 | 50 | virtual void video_start(); |
51 | UINT32 screen_update_metalmx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
51 | 52 | }; |
r17967 | r17968 | |
---|---|---|
30 | 30 | DECLARE_MACHINE_RESET(badlands); |
31 | 31 | DECLARE_VIDEO_START(badlands); |
32 | 32 | DECLARE_MACHINE_RESET(badlandsb); |
33 | UINT32 screen_update_badlands(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
33 | 34 | }; |
34 | 35 | |
35 | 36 | |
r17967 | r17968 | |
38 | 39 | DECLARE_WRITE16_HANDLER( badlands_pf_bank_w ); |
39 | 40 | |
40 | 41 | |
41 | ||
42 |
r17967 | r17968 | |
---|---|---|
123 | 123 | DECLARE_MACHINE_RESET(slapfight); |
124 | 124 | DECLARE_VIDEO_START(perfrman); |
125 | 125 | 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); | |
126 | 128 | }; |
127 | 129 | |
128 | 130 | |
r17967 | r17968 | |
156 | 158 | |
157 | 159 | /*----------- defined in video/slapfght.c -----------*/ |
158 | 160 | |
159 | SCREEN_UPDATE_IND16( slapfight ); | |
160 | SCREEN_UPDATE_IND16( perfrman ); | |
161 | 161 | |
162 | 162 | |
163 | 163 | |
164 | ||
165 |
r17967 | r17968 | |
---|---|---|
65 | 65 | DECLARE_DRIVER_INIT(s1945ii); |
66 | 66 | virtual void machine_start(); |
67 | 67 | virtual void video_start(); |
68 | UINT32 screen_update_psikyosh(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
68 | 69 | }; |
69 | 70 | |
70 | 71 | /*----------- defined in video/psikyosh.c -----------*/ |
71 | 72 | |
72 | 73 | |
73 | SCREEN_UPDATE_RGB32( psikyosh ); | |
74 | SCREEN_VBLANK( psikyosh ); | |
74 | ||
75 |
r17967 | r17968 | |
---|---|---|
47 | 47 | DECLARE_WRITE8_MEMBER(sound_bankswitch_w); |
48 | 48 | DECLARE_DRIVER_INIT(boogwing); |
49 | 49 | virtual void video_start(); |
50 | UINT32 screen_update_boogwing(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
50 | 51 | }; |
51 | 52 | |
52 | 53 | |
53 | 54 | /*----------- defined in video/boogwing.c -----------*/ |
54 | 55 | |
55 | 56 | |
56 | SCREEN_UPDATE_RGB32( boogwing ); | |
57 | 57 | |
58 |
r17967 | r17968 | |
---|---|---|
24 | 24 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
25 | 25 | TILE_GET_INFO_MEMBER(get_fg_tile_info); |
26 | 26 | virtual void video_start(); |
27 | UINT32 screen_update_quizdna(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
27 | 28 | }; |
28 | 29 | |
29 | 30 | |
30 | 31 | /*----------- defined in video/quizdna.c -----------*/ |
31 | 32 | |
32 | 33 | |
33 | SCREEN_UPDATE_IND16( quizdna ); | |
34 | 34 | |
35 | 35 | |
36 |
r17967 | r17968 | |
---|---|---|
33 | 33 | DECLARE_MACHINE_START(offtwall); |
34 | 34 | DECLARE_MACHINE_RESET(offtwall); |
35 | 35 | DECLARE_VIDEO_START(offtwall); |
36 | UINT32 screen_update_offtwall(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
36 | 37 | }; |
37 | 38 | |
38 | 39 | |
39 | 40 | /*----------- defined in video/offtwall.c -----------*/ |
40 | 41 | |
41 | 42 | |
42 | ||
43 |
r17967 | r17968 | |
---|---|---|
104 | 104 | DECLARE_PALETTE_INIT(equites); |
105 | 105 | DECLARE_VIDEO_START(splndrbt); |
106 | 106 | 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); | |
107 | 109 | }; |
108 | 110 | |
109 | 111 |
r17967 | r17968 | |
---|---|---|
48 | 48 | virtual void machine_start(); |
49 | 49 | virtual void machine_reset(); |
50 | 50 | virtual void video_start(); |
51 | UINT32 screen_update_gradius3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
51 | 52 | }; |
52 | 53 | |
53 | 54 | /*----------- defined in video/gradius3.c -----------*/ |
r17967 | r17968 | |
57 | 58 | |
58 | 59 | |
59 | 60 | |
60 | ||
61 |
r17967 | r17968 | |
---|---|---|
67 | 67 | DECLARE_VIDEO_START(gaiapols); |
68 | 68 | DECLARE_MACHINE_RESET(martchmp); |
69 | 69 | 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); | |
70 | 74 | }; |
71 | 75 | |
72 | 76 | |
r17967 | r17968 | |
78 | 82 | |
79 | 83 | |
80 | 84 | |
81 | SCREEN_UPDATE_RGB32( dadandrn ); | |
82 | SCREEN_UPDATE_RGB32( mystwarr ); | |
83 | SCREEN_UPDATE_RGB32( metamrph ); | |
84 | SCREEN_UPDATE_RGB32( martchmp ); | |
85 | 85 | |
86 | ||
87 | ||
88 | ||
89 |
r17967 | r17968 | |
---|---|---|
84 | 84 | DECLARE_MACHINE_RESET(pipedrm); |
85 | 85 | DECLARE_VIDEO_START(pipedrm); |
86 | 86 | 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); | |
87 | 89 | }; |
88 | 90 | |
89 | 91 | |
r17967 | r17968 | |
93 | 95 | |
94 | 96 | |
95 | 97 | |
96 | SCREEN_UPDATE_IND16( fromance ); | |
97 | SCREEN_UPDATE_IND16( pipedrm ); | |
98 | 98 | |
99 | 99 | |
100 | 100 | |
101 | 101 | |
102 | 102 | |
103 | ||
104 |
r17967 | r17968 | |
---|---|---|
40 | 40 | virtual void machine_start(); |
41 | 41 | virtual void video_start(); |
42 | 42 | virtual void palette_init(); |
43 | UINT32 screen_update_skykid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
43 | 44 | }; |
44 | 45 | |
45 | 46 | |
46 | 47 | /*----------- defined in video/skykid.c -----------*/ |
47 | 48 | |
48 | 49 | |
49 | SCREEN_UPDATE_IND16( skykid ); | |
50 | 50 | |
51 | 51 | |
52 |
r17967 | r17968 | |
---|---|---|
77 | 77 | virtual void machine_reset(); |
78 | 78 | virtual void video_start(); |
79 | 79 | virtual void palette_init(); |
80 | UINT32 screen_update_irobot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
80 | 81 | }; |
81 | 82 | |
82 | 83 | /*----------- defined in machine/irobot.c -----------*/ |
r17967 | r17968 | |
92 | 93 | |
93 | 94 | |
94 | 95 | |
95 | SCREEN_UPDATE_IND16( irobot ); | |
96 | 96 | |
97 | 97 | |
98 | ||
98 | 99 | void irobot_poly_clear(running_machine &machine); |
99 | 100 | void irobot_run_video(running_machine &machine); |
r17967 | r17968 | |
---|---|---|
16 | 16 | DECLARE_MACHINE_START(klax); |
17 | 17 | DECLARE_MACHINE_RESET(klax); |
18 | 18 | DECLARE_VIDEO_START(klax); |
19 | UINT32 screen_update_klax(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
19 | 20 | }; |
20 | 21 | |
21 | 22 | |
r17967 | r17968 | |
24 | 25 | DECLARE_WRITE16_HANDLER( klax_latch_w ); |
25 | 26 | |
26 | 27 | |
27 | ||
28 |
r17967 | r17968 | |
---|---|---|
21 | 21 | TILE_GET_INFO_MEMBER(bg_tile_info); |
22 | 22 | TILE_GET_INFO_MEMBER(txt_tile_info); |
23 | 23 | virtual void video_start(); |
24 | UINT32 screen_update_quizpani(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
24 | 25 | }; |
25 | 26 | |
26 | 27 | |
r17967 | r17968 | |
28 | 29 | |
29 | 30 | |
30 | 31 | |
31 | ||
32 |
r17967 | r17968 | |
---|---|---|
25 | 25 | TILE_GET_INFO_MEMBER(get_fg_tile_info); |
26 | 26 | virtual void video_start(); |
27 | 27 | virtual void palette_init(); |
28 | UINT32 screen_update_gomoku(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
28 | 29 | }; |
29 | 30 | |
30 | 31 | |
r17967 | r17968 | |
62 | 63 | |
63 | 64 | |
64 | 65 | |
65 | SCREEN_UPDATE_IND16( gomoku ); | |
66 | 66 | |
67 |
r17967 | r17968 | |
---|---|---|
53 | 53 | virtual void machine_start(); |
54 | 54 | virtual void machine_reset(); |
55 | 55 | virtual void video_start(); |
56 | UINT32 screen_update_djmain(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
56 | 57 | }; |
57 | 58 | |
58 | 59 | |
59 | 60 | /*----------- defined in video/djmain.c -----------*/ |
60 | 61 | |
61 | SCREEN_UPDATE_RGB32( djmain ); | |
62 | 62 | |
63 | 63 | |
64 | ||
64 | 65 | void djmain_tile_callback(running_machine& machine, int layer, int *code, int *color, int *flags); |
r17967 | r17968 | |
---|---|---|
101 | 101 | DECLARE_VIDEO_START(superbug); |
102 | 102 | DECLARE_VIDEO_START(montecar); |
103 | 103 | 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); | |
104 | 107 | }; |
105 | 108 | |
106 | 109 | |
r17967 | r17968 | |
126 | 129 | |
127 | 130 | |
128 | 131 | |
129 | SCREEN_UPDATE_IND16( firetrk ); | |
130 | SCREEN_UPDATE_IND16( superbug ); | |
131 | SCREEN_UPDATE_IND16( montecar ); | |
132 | 132 | |
133 | 133 | |
134 | ||
135 | ||
136 |
r17967 | r17968 | |
---|---|---|
20 | 20 | TILE_GET_INFO_MEMBER(get_tile_info); |
21 | 21 | virtual void video_start(); |
22 | 22 | virtual void palette_init(); |
23 | UINT32 screen_update_m57(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
23 | 24 | }; |
24 | 25 | |
25 | 26 | /*----------- defined in video/m57.c -----------*/ |
r17967 | r17968 | |
27 | 28 | |
28 | 29 | |
29 | 30 | |
30 | ||
31 |
r17967 | r17968 | |
---|---|---|
112 | 112 | DECLARE_DRIVER_INIT(sgmast); |
113 | 113 | virtual void machine_start(); |
114 | 114 | virtual void machine_reset(); |
115 | UINT32 screen_update_system24(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
115 | 116 | }; |
116 | 117 | |
117 | 118 | /*----------- defined in video/segas24.c -----------*/ |
118 | 119 | |
119 | ||
120 |
r17967 | r17968 | |
---|---|---|
19 | 19 | virtual void machine_start(); |
20 | 20 | virtual void video_start(); |
21 | 21 | virtual void palette_init(); |
22 | UINT32 screen_update_mustache(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
22 | 23 | }; |
23 | 24 | |
24 | 25 | |
25 | 26 | /*----------- defined in video/mustache.c -----------*/ |
26 | 27 | |
27 | 28 | |
28 | SCREEN_UPDATE_IND16( mustache ); | |
29 | 29 | |
30 |
r17967 | r17968 | |
---|---|---|
207 | 207 | virtual void machine_reset(); |
208 | 208 | virtual void video_start(); |
209 | 209 | virtual void video_reset(); |
210 | UINT32 screen_update_neogeo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
210 | 211 | }; |
211 | 212 | |
212 | 213 | |
r17967 | r17968 | |
308 | 309 | |
309 | 310 | |
310 | 311 | |
311 | SCREEN_UPDATE_RGB32( neogeo ); | |
312 | 312 | |
313 | 313 | |
314 | ||
314 | 315 | void neogeo_set_palette_bank(running_machine &machine, UINT8 data); |
315 | 316 | void neogeo_set_screen_dark(running_machine &machine, UINT8 data); |
316 | 317 |
r17967 | r17968 | |
---|---|---|
28 | 28 | virtual void palette_init(); |
29 | 29 | DECLARE_VIDEO_START(apple10); |
30 | 30 | DECLARE_PALETTE_INIT(apple10); |
31 | UINT32 screen_update_snookr10(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
31 | 32 | }; |
32 | 33 | |
33 | 34 | |
r17967 | r17968 | |
37 | 38 | |
38 | 39 | |
39 | 40 | |
40 | SCREEN_UPDATE_IND16( snookr10 ); | |
41 | 41 | |
42 |
r17967 | r17968 | |
---|---|---|
75 | 75 | DECLARE_VIDEO_START(konamigx_type4_vsn); |
76 | 76 | DECLARE_VIDEO_START(konamigx_type4_sd2); |
77 | 77 | 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); | |
78 | 81 | }; |
79 | 82 | |
80 | 83 | |
r17967 | r17968 | |
160 | 163 | |
161 | 164 | |
162 | 165 | |
163 | SCREEN_UPDATE_RGB32(konamigx); | |
164 | SCREEN_UPDATE_RGB32(konamigx_left); | |
165 | SCREEN_UPDATE_RGB32(konamigx_right); | |
166 | 166 | |
167 | ||
168 | ||
169 | ||
167 | 170 | extern int konamigx_current_frame; |
168 | 171 | |
169 | 172 |
r17967 | r17968 | |
---|---|---|
30 | 30 | virtual void machine_start(); |
31 | 31 | virtual void video_start(); |
32 | 32 | virtual void palette_init(); |
33 | UINT32 screen_update_sprcros2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
33 | 34 | }; |
34 | 35 | |
35 | 36 | |
r17967 | r17968 | |
38 | 39 | |
39 | 40 | |
40 | 41 | |
41 | ||
42 |
r17967 | r17968 | |
---|---|---|
69 | 69 | DECLARE_DRIVER_INIT(vectrex); |
70 | 70 | virtual void video_start(); |
71 | 71 | DECLARE_VIDEO_START(raaspec); |
72 | UINT32 screen_update_vectrex(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
72 | 73 | }; |
73 | 74 | |
74 | 75 | |
r17967 | r17968 | |
94 | 95 | extern const via6522_interface spectrum1_via6522_interface; |
95 | 96 | |
96 | 97 | |
97 | SCREEN_UPDATE_RGB32( vectrex ); | |
98 | 98 | |
99 | 99 | |
100 | 100 | |
101 | 101 | |
102 | 102 | |
103 | ||
103 | 104 | void vectrex_add_point_stereo (running_machine &machine, int x, int y, rgb_t color, int intensity); |
104 | 105 | void vectrex_add_point (running_machine &machine, int x, int y, rgb_t color, int intensity); |
105 | 106 |
r17967 | r17968 | |
---|---|---|
33 | 33 | virtual void machine_start(); |
34 | 34 | virtual void machine_reset(); |
35 | 35 | virtual void video_start(); |
36 | UINT32 screen_update_ultraman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
36 | 37 | }; |
37 | 38 | |
38 | 39 | |
r17967 | r17968 | |
46 | 47 | |
47 | 48 | |
48 | 49 | |
49 | ||
50 |
r17967 | r17968 | |
---|---|---|
24 | 24 | DECLARE_MACHINE_START(thunderj); |
25 | 25 | DECLARE_MACHINE_RESET(thunderj); |
26 | 26 | DECLARE_VIDEO_START(thunderj); |
27 | UINT32 screen_update_thunderj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
27 | 28 | }; |
28 | 29 | |
29 | 30 | |
30 | 31 | /*----------- defined in video/thunderj.c -----------*/ |
31 | 32 | |
32 | 33 | |
33 | ||
34 |
r17967 | r17968 | |
---|---|---|
42 | 42 | DECLARE_READ8_MEMBER(parodius_sound_r); |
43 | 43 | virtual void machine_start(); |
44 | 44 | virtual void machine_reset(); |
45 | UINT32 screen_update_parodius(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
45 | 46 | }; |
46 | 47 | |
47 | 48 | /*----------- defined in video/parodius.c -----------*/ |
r17967 | r17968 | |
49 | 50 | extern void parodius_tile_callback(running_machine &machine, int layer,int bank,int *code,int *color,int *flags,int *priority); |
50 | 51 | extern void parodius_sprite_callback(running_machine &machine, int *code,int *color,int *priority_mask); |
51 | 52 | |
52 | ||
53 |
r17967 | r17968 | |
---|---|---|
76 | 76 | DECLARE_MACHINE_RESET(redclash); |
77 | 77 | DECLARE_VIDEO_START(redclash); |
78 | 78 | 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); | |
79 | 84 | }; |
80 | 85 | |
81 | 86 | |
r17967 | r17968 | |
84 | 89 | |
85 | 90 | |
86 | 91 | |
87 | SCREEN_UPDATE_IND16( ladybug ); | |
88 | 92 | |
89 | 93 | |
90 | 94 | |
91 | SCREEN_UPDATE_IND16( sraider ); | |
92 | SCREEN_VBLANK( sraider ); | |
93 | 95 | |
96 | ||
97 | ||
98 | ||
94 | 99 | /*----------- defined in video/redclash.c -----------*/ |
95 | 100 | |
96 | 101 | DECLARE_WRITE8_HANDLER( redclash_videoram_w ); |
r17967 | r17968 | |
104 | 109 | |
105 | 110 | |
106 | 111 | |
107 | SCREEN_UPDATE_IND16( redclash ); | |
108 | SCREEN_VBLANK( redclash ); | |
109 | 112 | |
113 | ||
114 | ||
110 | 115 | /* sraider uses the zerohour star generator board */ |
111 | 116 | void redclash_set_stars_enable(running_machine &machine, UINT8 on); |
112 | 117 | void redclash_update_stars_state(running_machine &machine); |
r17967 | r17968 | |
---|---|---|
79 | 79 | DECLARE_MACHINE_START(combatscb); |
80 | 80 | DECLARE_VIDEO_START(combatscb); |
81 | 81 | 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); | |
82 | 84 | }; |
83 | 85 | |
84 | 86 | |
r17967 | r17968 | |
90 | 92 | |
91 | 93 | |
92 | 94 | |
93 | SCREEN_UPDATE_IND16( combatscb ); | |
94 | SCREEN_UPDATE_IND16( combatsc ); | |
95 | ||
96 |
r17967 | r17968 | |
---|---|---|
41 | 41 | virtual void machine_reset(); |
42 | 42 | virtual void video_start(); |
43 | 43 | virtual void palette_init(); |
44 | UINT32 screen_update_blueprnt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
44 | 45 | }; |
45 | 46 | |
46 | 47 | |
r17967 | r17968 | |
49 | 50 | |
50 | 51 | |
51 | 52 | |
52 | ||
53 |
r17967 | r17968 | |
---|---|---|
30 | 30 | virtual void machine_start(); |
31 | 31 | virtual void machine_reset(); |
32 | 32 | virtual void palette_init(); |
33 | UINT32 screen_update_rockrage(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
33 | 34 | }; |
34 | 35 | |
35 | 36 | |
36 | 37 | /*----------- defined in video/rockrage.c -----------*/ |
37 | 38 | |
38 | 39 | |
39 | SCREEN_UPDATE_IND16( rockrage ); | |
40 | 40 | |
41 | 41 | |
42 | ||
42 | 43 | void rockrage_tile_callback(running_machine &machine, int layer, int bank, int *code, int *color, int *flags); |
43 | 44 | void rockrage_sprite_callback(running_machine &machine, int *code, int *color); |
r17967 | r17968 | |
---|---|---|
55 | 55 | virtual void machine_reset(); |
56 | 56 | virtual void video_start(); |
57 | 57 | virtual void palette_init(); |
58 | UINT32 screen_update_buggychl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
58 | 59 | }; |
59 | 60 | |
60 | 61 | |
r17967 | r17968 | |
63 | 64 | |
64 | 65 | |
65 | 66 | |
66 | ||
67 |
r17967 | r17968 | |
---|---|---|
41 | 41 | virtual void machine_start(); |
42 | 42 | virtual void machine_reset(); |
43 | 43 | virtual void video_start(); |
44 | UINT32 screen_update_gotcha(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
44 | 45 | }; |
45 | 46 | |
46 | 47 | |
r17967 | r17968 | |
48 | 49 | |
49 | 50 | |
50 | 51 | |
51 | SCREEN_UPDATE_IND16( gotcha ); | |
52 | 52 | |
53 |
r17967 | r17968 | |
---|---|---|
78 | 78 | TILE_GET_INFO_MEMBER(get_tile_info); |
79 | 79 | virtual void video_start(); |
80 | 80 | 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); | |
81 | 83 | }; |
82 | 84 | |
83 | 85 | |
r17967 | r17968 | |
86 | 88 | |
87 | 89 | |
88 | 90 | |
89 | SCREEN_UPDATE_IND16( starshp1 ); | |
90 | SCREEN_VBLANK( starshp1 ); | |
91 | 91 | |
92 | 92 | |
93 | 93 | |
94 | ||
95 | ||
94 | 96 | /*----------- defined in audio/starshp1.c -----------*/ |
95 | 97 | |
96 | 98 | DISCRETE_SOUND_EXTERN( starshp1 ); |
r17967 | r17968 | |
---|---|---|
30 | 30 | TILE_GET_INFO_MEMBER(get_bsb_tile2_info); |
31 | 31 | TILE_GET_INFO_MEMBER(get_bsb_tile3_info); |
32 | 32 | virtual void video_start(); |
33 | UINT32 screen_update_bigstrkb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
33 | 34 | }; |
34 | 35 | |
35 | 36 | |
36 | 37 | /*----------- defined in video/bigstrkb.c -----------*/ |
37 | 38 | |
38 | 39 | |
39 | ||
40 |
r17967 | r17968 | |
---|---|---|
23 | 23 | virtual void machine_start(); |
24 | 24 | virtual void machine_reset(); |
25 | 25 | virtual void video_start(); |
26 | UINT32 screen_update_n64(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
26 | 27 | }; |
27 | 28 | |
28 | 29 | /*----------- devices -----------*/ |
r17967 | r17968 | |
---|---|---|
129 | 129 | DECLARE_VIDEO_START(taitof2_deadconxj); |
130 | 130 | DECLARE_VIDEO_START(taitof2_dinorex); |
131 | 131 | 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); | |
132 | 145 | }; |
133 | 146 | |
134 | 147 | /*----------- defined in video/taito_f2.c -----------*/ |
r17967 | r17968 | |
157 | 170 | |
158 | 171 | |
159 | 172 | |
160 | SCREEN_VBLANK( taitof2_no_buffer ); | |
161 | SCREEN_VBLANK( taitof2_full_buffer_delayed ); | |
162 | SCREEN_VBLANK( taitof2_partial_buffer_delayed ); | |
163 | SCREEN_VBLANK( taitof2_partial_buffer_delayed_thundfox ); | |
164 | SCREEN_VBLANK( taitof2_partial_buffer_delayed_qzchikyu ); | |
165 | 173 | |
166 | SCREEN_UPDATE_IND16( taitof2 ); | |
167 | SCREEN_UPDATE_IND16( taitof2_pri ); | |
168 | SCREEN_UPDATE_IND16( taitof2_pri_roz ); | |
169 | SCREEN_UPDATE_IND16( taitof2_ssi ); | |
170 | SCREEN_UPDATE_IND16( taitof2_thundfox ); | |
171 | SCREEN_UPDATE_IND16( taitof2_deadconx ); | |
172 | SCREEN_UPDATE_IND16( taitof2_metalb ); | |
173 | SCREEN_UPDATE_IND16( taitof2_yesnoj ); | |
174 | 174 | |
175 | ||
176 | ||
177 | ||
178 | ||
179 | ||
180 | ||
181 | ||
182 | ||
183 | ||
184 | ||
185 | ||
186 | ||
187 |
r17967 | r17968 | |
---|---|---|
50 | 50 | virtual void machine_reset(); |
51 | 51 | virtual void video_start(); |
52 | 52 | virtual void palette_init(); |
53 | UINT32 screen_update_pandoras(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
53 | 54 | }; |
54 | 55 | |
55 | 56 | |
r17967 | r17968 | |
59 | 60 | |
60 | 61 | |
61 | 62 | |
62 | SCREEN_UPDATE_IND16( pandoras ); | |
63 | 63 | |
64 |
r17967 | r17968 | |
---|---|---|
55 | 55 | DECLARE_MACHINE_RESET(gberet); |
56 | 56 | DECLARE_VIDEO_START(gberet); |
57 | 57 | 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); | |
58 | 60 | }; |
59 | 61 | |
60 | 62 | |
r17967 | r17968 | |
63 | 65 | |
64 | 66 | |
65 | 67 | |
66 | SCREEN_UPDATE_IND16( gberet ); | |
67 | SCREEN_UPDATE_IND16( gberetb ); | |
68 | ||
69 |
r17967 | r17968 | |
---|---|---|
45 | 45 | virtual void machine_reset(); |
46 | 46 | virtual void video_start(); |
47 | 47 | virtual void palette_init(); |
48 | UINT32 screen_update_stfight(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
48 | 49 | }; |
49 | 50 | |
50 | 51 | |
r17967 | r17968 | |
60 | 61 | |
61 | 62 | |
62 | 63 | |
63 | ||
64 |
r17967 | r17968 | |
---|---|---|
301 | 301 | virtual void machine_reset(); |
302 | 302 | virtual void video_start(); |
303 | 303 | DECLARE_VIDEO_START(screwloo); |
304 | UINT32 screen_update_gottlieb(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
304 | 305 | }; |
305 | 306 | |
306 | 307 | |
r17967 | r17968 | |
309 | 310 | |
310 | 311 | |
311 | 312 | |
312 | SCREEN_UPDATE_RGB32( gottlieb ); | |
313 | 313 | |
314 | ||
314 | 315 | #if USE_FAKE_VOTRAX |
315 | 316 | MACHINE_CONFIG_EXTERN( reactor_samples ); |
316 | 317 | MACHINE_CONFIG_EXTERN( qbert_samples ); |
r17967 | r17968 | |
---|---|---|
99 | 99 | DECLARE_MACHINE_START(ddragon); |
100 | 100 | DECLARE_MACHINE_RESET(ddragon); |
101 | 101 | DECLARE_VIDEO_START(ddragon); |
102 | UINT32 screen_update_ddragon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
102 | 103 | }; |
103 | 104 | |
104 | 105 | |
r17967 | r17968 | |
107 | 108 | |
108 | 109 | |
109 | 110 | |
110 | SCREEN_UPDATE_IND16( ddragon ); | |
111 | 111 | |
112 |
r17967 | r17968 | |
---|---|---|
42 | 42 | DECLARE_DRIVER_INIT(asterix); |
43 | 43 | virtual void machine_start(); |
44 | 44 | virtual void machine_reset(); |
45 | UINT32 screen_update_asterix(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
45 | 46 | }; |
46 | 47 | |
47 | 48 | |
48 | 49 | |
49 | 50 | /*----------- defined in video/asterix.c -----------*/ |
50 | 51 | |
51 | SCREEN_UPDATE_IND16( asterix ); | |
52 | 52 | |
53 | ||
53 | 54 | extern void asterix_tile_callback(running_machine &machine, int layer, int *code, int *color, int *flags); |
54 | 55 | extern void asterix_sprite_callback(running_machine &machine, int *code, int *color, int *priority_mask); |
r17967 | r17968 | |
---|---|---|
76 | 76 | DECLARE_MACHINE_START(rjammer); |
77 | 77 | DECLARE_MACHINE_RESET(rjammer); |
78 | 78 | 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); | |
79 | 81 | }; |
80 | 82 | |
81 | 83 | |
r17967 | r17968 | |
83 | 85 | |
84 | 86 | void tubep_vblank_end(running_machine &machine); |
85 | 87 | |
86 | SCREEN_UPDATE_IND16( tubep ); | |
87 | 88 | |
88 | SCREEN_UPDATE_IND16( rjammer ); | |
89 | 89 | |
90 | 90 | |
91 | 91 | |
r17967 | r17968 | |
93 | 93 | |
94 | 94 | |
95 | 95 | |
96 | ||
97 |
r17967 | r17968 | |
---|---|---|
120 | 120 | DECLARE_VIDEO_START(mirderby); |
121 | 121 | DECLARE_PALETTE_INIT(mirderby); |
122 | 122 | 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); | |
123 | 128 | }; |
124 | 129 | |
125 | 130 | |
r17967 | r17968 | |
137 | 142 | |
138 | 143 | |
139 | 144 | |
140 | SCREEN_UPDATE_IND16( mrokumei ); | |
141 | SCREEN_UPDATE_IND16( reikaids ); | |
142 | SCREEN_UPDATE_IND16( pteacher ); | |
143 | SCREEN_UPDATE_IND16( mirderby ); | |
144 | SCREEN_VBLANK( homedata ); | |
145 | ||
146 | ||
147 | ||
148 | ||
149 |
r17967 | r17968 | |
---|---|---|
67 | 67 | DECLARE_DRIVER_INIT(phantoma); |
68 | 68 | virtual void video_start(); |
69 | 69 | DECLARE_MACHINE_START(teetert); |
70 | UINT32 screen_update_exidy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
70 | 71 | }; |
71 | 72 | |
72 | 73 | |
r17967 | r17968 | |
74 | 75 | |
75 | 76 | void exidy_video_config(running_machine &machine, UINT8 _collision_mask, UINT8 _collision_invert, int _is_2bpp); |
76 | 77 | |
77 | SCREEN_UPDATE_IND16( exidy ); | |
78 | 78 | |
79 | ||
79 | 80 | INTERRUPT_GEN( exidy_vblank_interrupt ); |
80 | 81 |
r17967 | r17968 | |
---|---|---|
28 | 28 | TILE_GET_INFO_MEMBER(get_fg_tile_info); |
29 | 29 | virtual void machine_start(); |
30 | 30 | virtual void video_start(); |
31 | UINT32 screen_update_xxmissio(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
31 | 32 | }; |
32 | 33 | |
33 | 34 | |
34 | 35 | /*----------- defined in video/xxmissio.c -----------*/ |
35 | 36 | |
36 | 37 | |
37 | SCREEN_UPDATE_IND16( xxmissio ); | |
38 | 38 | |
39 | ||
39 | 40 | DECLARE_WRITE8_DEVICE_HANDLER( xxmissio_scroll_x_w ); |
40 | 41 | DECLARE_WRITE8_DEVICE_HANDLER( xxmissio_scroll_y_w ); |
41 | 42 |
r17967 | r17968 | |
---|---|---|
30 | 30 | TILE_GET_INFO_MEMBER(get_mugsmash_tile_info2); |
31 | 31 | virtual void machine_start(); |
32 | 32 | virtual void video_start(); |
33 | UINT32 screen_update_mugsmash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
33 | 34 | }; |
34 | 35 | |
35 | 36 | |
36 | 37 | /*----------- defined in video/mugsmash.c -----------*/ |
37 | 38 | |
38 | 39 | |
39 | SCREEN_UPDATE_IND16( mugsmash ); | |
40 | 40 | |
41 |
r17967 | r17968 | |
---|---|---|
17 | 17 | DECLARE_DRIVER_INIT(deco222); |
18 | 18 | DECLARE_DRIVER_INIT(graphics); |
19 | 19 | 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); | |
20 | 22 | }; |
21 | 23 | |
22 | 24 | |
r17967 | r17968 | |
24 | 26 | |
25 | 27 | |
26 | 28 | |
27 | SCREEN_UPDATE_IND16( pcktgal ); | |
28 | SCREEN_UPDATE_IND16( pcktgalb ); | |
29 | ||
30 |
r17967 | r17968 | |
---|---|---|
186 | 186 | virtual void machine_start(); |
187 | 187 | virtual void machine_reset(); |
188 | 188 | 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); | |
189 | 191 | }; |
190 | 192 | |
191 | 193 | |
r17967 | r17968 | |
194 | 196 | void hng64_command3d(running_machine& machine, const UINT16* packet); |
195 | 197 | |
196 | 198 | |
197 | SCREEN_UPDATE_RGB32( hng64 ); | |
198 | SCREEN_VBLANK( hng64 ); | |
199 | ||
200 |
r17967 | r17968 | |
---|---|---|
30 | 30 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
31 | 31 | TILE_GET_INFO_MEMBER(get_fg_tile_info); |
32 | 32 | virtual void video_start(); |
33 | UINT32 screen_update_solomon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
33 | 34 | }; |
34 | 35 | |
35 | 36 | |
r17967 | r17968 | |
37 | 38 | |
38 | 39 | |
39 | 40 | |
40 | ||
41 |
r17967 | r17968 | |
---|---|---|
23 | 23 | DECLARE_DRIVER_INIT(hyhoo2); |
24 | 24 | DECLARE_DRIVER_INIT(hyhoo); |
25 | 25 | virtual void video_start(); |
26 | UINT32 screen_update_hyhoo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
26 | 27 | }; |
27 | 28 | |
28 | 29 | |
29 | 30 | /*----------- defined in video/hyhoo.c -----------*/ |
30 | 31 | |
31 | SCREEN_UPDATE_RGB32( hyhoo ); | |
32 | 32 | |
33 | 33 | |
34 |
r17967 | r17968 | |
---|---|---|
71 | 71 | virtual void machine_start(); |
72 | 72 | virtual void machine_reset(); |
73 | 73 | 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); | |
74 | 76 | }; |
75 | 77 | |
76 | 78 | /*----------- defined in video/macrossp.c -----------*/ |
77 | 79 | |
78 | 80 | |
79 | 81 | |
80 | SCREEN_UPDATE_RGB32(macrossp); | |
81 | SCREEN_VBLANK(macrossp); | |
82 | ||
83 |
r17967 | r17968 | |
---|---|---|
64 | 64 | DECLARE_VIDEO_START(ppking); |
65 | 65 | DECLARE_MACHINE_RESET(gladiator); |
66 | 66 | 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); | |
67 | 69 | }; |
68 | 70 | |
69 | 71 | /*----------- defined in video/gladiatr.c -----------*/ |
70 | 72 | |
71 | 73 | |
72 | SCREEN_UPDATE_IND16( ppking ); | |
73 | 74 | |
74 | SCREEN_UPDATE_IND16( gladiatr ); | |
75 | ||
76 |
r17967 | r17968 | |
---|---|---|
53 | 53 | DECLARE_MACHINE_START(moo); |
54 | 54 | DECLARE_MACHINE_RESET(moo); |
55 | 55 | DECLARE_VIDEO_START(moo); |
56 | UINT32 screen_update_moo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
56 | 57 | }; |
57 | 58 | |
58 | 59 | |
r17967 | r17968 | |
63 | 64 | extern void moo_sprite_callback(running_machine &machine, int *code, int *color, int *priority_mask); |
64 | 65 | |
65 | 66 | |
66 | ||
67 |
r17967 | r17968 | |
---|---|---|
119 | 119 | DECLARE_MACHINE_RESET(horshoes); |
120 | 120 | DECLARE_MACHINE_RESET(palamed); |
121 | 121 | 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); | |
122 | 124 | }; |
123 | 125 | |
124 | 126 | /*----------- defined in video/taito_l.c -----------*/ |
125 | 127 | |
126 | SCREEN_VBLANK( taitol ); | |
127 | 128 | |
128 | SCREEN_UPDATE_IND16( taitol ); | |
129 | 129 | |
130 | ||
131 | ||
130 | 132 | void taitol_chardef14_m(running_machine &machine, int offset); |
131 | 133 | void taitol_chardef15_m(running_machine &machine, int offset); |
132 | 134 | void taitol_chardef16_m(running_machine &machine, int offset); |
r17967 | r17968 | |
---|---|---|
47 | 47 | virtual void machine_start(); |
48 | 48 | virtual void machine_reset(); |
49 | 49 | virtual void video_start(); |
50 | UINT32 screen_update_goindol(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
50 | 51 | }; |
51 | 52 | |
52 | 53 | |
r17967 | r17968 | |
55 | 56 | |
56 | 57 | |
57 | 58 | |
58 | ||
59 |
r17967 | r17968 | |
---|---|---|
53 | 53 | virtual void machine_start(); |
54 | 54 | virtual void video_start(); |
55 | 55 | virtual void palette_init(); |
56 | UINT32 screen_update_gyruss(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
56 | 57 | }; |
57 | 58 | |
58 | 59 | |
r17967 | r17968 | |
60 | 61 | |
61 | 62 | |
62 | 63 | |
63 | ||
64 |
r17967 | r17968 | |
---|---|---|
37 | 37 | DECLARE_CUSTOM_INPUT_MEMBER(coin_word_r); |
38 | 38 | DECLARE_DRIVER_INIT(groundfx); |
39 | 39 | virtual void video_start(); |
40 | UINT32 screen_update_groundfx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
40 | 41 | }; |
41 | 42 | |
42 | 43 | |
43 | 44 | /*----------- defined in video/groundfx.c -----------*/ |
44 | 45 | |
45 | 46 | |
46 | ||
47 |
r17967 | r17968 | |
---|---|---|
48 | 48 | virtual void machine_start(); |
49 | 49 | virtual void video_start(); |
50 | 50 | virtual void palette_init(); |
51 | UINT32 screen_update_fastlane(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
51 | 52 | }; |
52 | 53 | |
53 | 54 | |
r17967 | r17968 | |
58 | 59 | |
59 | 60 | |
60 | 61 | |
61 | ||
62 |
r17967 | r17968 | |
---|---|---|
30 | 30 | virtual void machine_reset(); |
31 | 31 | virtual void video_start(); |
32 | 32 | DECLARE_MACHINE_START(kangaroo_mcu); |
33 | UINT32 screen_update_kangaroo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
33 | 34 | }; |
34 | 35 | |
35 | 36 | |
r17967 | r17968 | |
38 | 39 | /*----------- defined in video/kangaroo.c -----------*/ |
39 | 40 | |
40 | 41 | |
41 | SCREEN_UPDATE_RGB32( kangaroo ); | |
42 | 42 | |
43 |
r17967 | r17968 | |
---|---|---|
34 | 34 | TILE_GET_INFO_MEMBER(get_text_tile_info); |
35 | 35 | virtual void video_start(); |
36 | 36 | DECLARE_MACHINE_RESET(cabalbl); |
37 | UINT32 screen_update_cabal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
37 | 38 | }; |
38 | 39 | |
39 | 40 |
r17967 | r17968 | |
---|---|---|
22 | 22 | TILE_GET_INFO_MEMBER(get_tile_info); |
23 | 23 | virtual void video_start(); |
24 | 24 | virtual void palette_init(); |
25 | UINT32 screen_update_suprloco(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
25 | 26 | }; |
26 | 27 | |
27 | 28 | |
r17967 | r17968 | |
29 | 30 | |
30 | 31 | |
31 | 32 | |
32 | ||
33 |
r17967 | r17968 | |
---|---|---|
75 | 75 | DECLARE_MACHINE_RESET(m92); |
76 | 76 | DECLARE_VIDEO_START(m92); |
77 | 77 | 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); | |
78 | 80 | }; |
79 | 81 | |
80 | 82 | |
r17967 | r17968 | |
87 | 89 | |
88 | 90 | |
89 | 91 | |
90 | SCREEN_UPDATE_IND16( m92 ); | |
91 | 92 | |
92 | SCREEN_UPDATE_IND16( ppan ); | |
93 | ||
94 |
r17967 | r17968 | |
---|---|---|
30 | 30 | TILEMAP_MAPPER_MEMBER(yard_tilemap_scan_rows); |
31 | 31 | virtual void video_start(); |
32 | 32 | virtual void palette_init(); |
33 | UINT32 screen_update_yard(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
33 | 34 | }; |
34 | 35 | |
35 | 36 | /*----------- defined in video/m58.c -----------*/ |
r17967 | r17968 | |
37 | 38 | |
38 | 39 | |
39 | 40 | |
40 | ||
41 |
r17967 | r17968 | |
---|---|---|
43 | 43 | DECLARE_DRIVER_INIT(esckids); |
44 | 44 | virtual void machine_start(); |
45 | 45 | virtual void machine_reset(); |
46 | UINT32 screen_update_vendetta(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
46 | 47 | }; |
47 | 48 | |
48 | 49 | /*----------- defined in video/vendetta.c -----------*/ |
r17967 | r17968 | |
51 | 52 | extern void esckids_tile_callback(running_machine &machine, int layer,int bank,int *code,int *color,int *flags,int *priority); |
52 | 53 | extern void vendetta_sprite_callback(running_machine &machine, int *code,int *color,int *priority_mask); |
53 | 54 | |
54 | ||
55 |
r17967 | r17968 | |
---|---|---|
66 | 66 | virtual void machine_reset(); |
67 | 67 | virtual void video_start(); |
68 | 68 | virtual void palette_init(); |
69 | UINT32 screen_update_fcombat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
69 | 70 | }; |
70 | 71 | |
71 | 72 | |
r17967 | r17968 | |
74 | 75 | |
75 | 76 | |
76 | 77 | |
77 | SCREEN_UPDATE_IND16( fcombat ); | |
78 | 78 | |
79 |
r17967 | r17968 | |
---|---|---|
20 | 20 | TILE_GET_INFO_MEMBER(get_tile_info_thoop2_screen0); |
21 | 21 | TILE_GET_INFO_MEMBER(get_tile_info_thoop2_screen1); |
22 | 22 | virtual void video_start(); |
23 | UINT32 screen_update_thoop2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
23 | 24 | }; |
24 | 25 | |
25 | 26 | |
26 | 27 | /*----------- defined in video/thoop2.c -----------*/ |
27 | 28 | |
28 | 29 | |
29 | ||
30 |
r17967 | r17968 | |
---|---|---|
43 | 43 | TILE_GET_INFO_MEMBER(get_bg1_tile_info); |
44 | 44 | virtual void video_start(); |
45 | 45 | DECLARE_VIDEO_START(wwfwfstb); |
46 | UINT32 screen_update_wwfwfest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
46 | 47 | }; |
47 | 48 | |
48 | 49 | |
r17967 | r17968 | |
50 | 51 | |
51 | 52 | |
52 | 53 | |
53 | ||
54 |
r17967 | r17968 | |
---|---|---|
39 | 39 | virtual void video_start(); |
40 | 40 | virtual void palette_init(); |
41 | 41 | 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); | |
42 | 47 | }; |
43 | 48 | |
44 | 49 | |
r17967 | r17968 | |
47 | 52 | |
48 | 53 | |
49 | 54 | |
50 | SCREEN_UPDATE_IND16( marineb ); | |
51 | SCREEN_UPDATE_IND16( changes ); | |
52 | SCREEN_UPDATE_IND16( springer ); | |
53 | SCREEN_UPDATE_IND16( hoccer ); | |
54 | SCREEN_UPDATE_IND16( hopprobo ); | |
55 | ||
56 | ||
57 | ||
58 | ||
59 |
r17967 | r17968 | |
---|---|---|
50 | 50 | virtual void video_start(); |
51 | 51 | virtual void palette_init(); |
52 | 52 | DECLARE_VIDEO_START(chkun); |
53 | UINT32 screen_update_timeplt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
53 | 54 | }; |
54 | 55 | |
55 | 56 | |
r17967 | r17968 | |
59 | 60 | |
60 | 61 | |
61 | 62 | |
62 | ||
63 |
r17967 | r17968 | |
---|---|---|
32 | 32 | DECLARE_WRITE16_MEMBER(pktgaldx_oki_bank_w); |
33 | 33 | DECLARE_DRIVER_INIT(pktgaldx); |
34 | 34 | 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); | |
35 | 37 | }; |
36 | 38 | |
37 | 39 | |
38 | 40 | |
39 | 41 | /*----------- defined in video/pktgaldx.c -----------*/ |
40 | 42 | |
41 | SCREEN_UPDATE_IND16( pktgaldx ); | |
42 | SCREEN_UPDATE_IND16( pktgaldb ); | |
43 | ||
44 |
r17967 | r17968 | |
---|---|---|
46 | 46 | DECLARE_MACHINE_START(atarigx2); |
47 | 47 | DECLARE_MACHINE_RESET(atarigx2); |
48 | 48 | 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); | |
49 | 51 | }; |
50 | 52 | |
51 | 53 | |
52 | 54 | /*----------- defined in video/atarigx2.c -----------*/ |
53 | 55 | |
54 | 56 | |
55 | SCREEN_VBLANK( atarigx2 ); | |
56 | SCREEN_UPDATE_IND16( atarigx2 ); | |
57 | 57 | |
58 | ||
59 | ||
58 | 60 | DECLARE_WRITE16_HANDLER( atarigx2_mo_control_w ); |
59 | 61 | |
60 | 62 | void atarigx2_scanline_update(screen_device &screen, int scanline); |
r17967 | r17968 | |
---|---|---|
43 | 43 | virtual void machine_start(); |
44 | 44 | virtual void machine_reset(); |
45 | 45 | virtual void video_start(); |
46 | UINT32 screen_update_fuuki16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
46 | 47 | }; |
47 | 48 | |
48 | 49 | |
r17967 | r17968 | |
50 | 51 | |
51 | 52 | |
52 | 53 | |
53 | ||
54 |
r17967 | r17968 | |
---|---|---|
25 | 25 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
26 | 26 | virtual void video_start(); |
27 | 27 | virtual void palette_init(); |
28 | UINT32 screen_update_vulgus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
28 | 29 | }; |
29 | 30 | |
30 | 31 | |
r17967 | r17968 | |
33 | 34 | |
34 | 35 | |
35 | 36 | |
36 | ||
37 |
r17967 | r17968 | |
---|---|---|
36 | 36 | virtual void machine_start(); |
37 | 37 | virtual void machine_reset(); |
38 | 38 | 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); | |
39 | 43 | }; |
40 | 44 | |
41 | 45 |
r17967 | r17968 | |
---|---|---|
33 | 33 | TILE_GET_INFO_MEMBER(get_sderby_md_tile_info); |
34 | 34 | TILE_GET_INFO_MEMBER(get_sderby_fg_tile_info); |
35 | 35 | 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); | |
36 | 38 | }; |
37 | 39 | |
38 | 40 | |
39 | 41 | /*----------- defined in video/sderby.c -----------*/ |
40 | 42 | |
41 | 43 | |
42 | SCREEN_UPDATE_IND16( sderby ); | |
43 | SCREEN_UPDATE_IND16( pmroulet ); | |
44 | ||
45 |
r17967 | r17968 | |
---|---|---|
21 | 21 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
22 | 22 | virtual void video_start(); |
23 | 23 | virtual void palette_init(); |
24 | UINT32 screen_update_tinvader(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
24 | 25 | }; |
25 | 26 | |
26 | 27 | |
r17967 | r17968 | |
28 | 29 | |
29 | 30 | |
30 | 31 | |
31 | SCREEN_UPDATE_IND16( tinvader ); | |
32 | 32 | |
33 |
r17967 | r17968 | |
---|---|---|
27 | 27 | DECLARE_DRIVER_INIT(shangha3); |
28 | 28 | DECLARE_DRIVER_INIT(heberpop); |
29 | 29 | virtual void video_start(); |
30 | UINT32 screen_update_shangha3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
30 | 31 | }; |
31 | 32 | |
32 | 33 | |
33 | 34 | /*----------- defined in video/shangha3.c -----------*/ |
34 | 35 | |
35 | 36 | |
36 | ||
37 |
r17967 | r17968 | |
---|---|---|
46 | 46 | TILE_GET_INFO_MEMBER(get_bg2_tile_info); |
47 | 47 | virtual void machine_reset(); |
48 | 48 | virtual void video_start(); |
49 | UINT32 screen_update_vastar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
49 | 50 | }; |
50 | 51 | |
51 | 52 | |
r17967 | r17968 | |
53 | 54 | |
54 | 55 | |
55 | 56 | |
56 | ||
57 |
r17967 | r17968 | |
---|---|---|
30 | 30 | TILE_GET_INFO_MEMBER(taotaido_bg_tile_info); |
31 | 31 | TILEMAP_MAPPER_MEMBER(taotaido_tilemap_scan_rows); |
32 | 32 | 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); | |
33 | 35 | }; |
34 | 36 | |
35 | 37 | |
36 | 38 | /*----------- defined in video/taotaido.c -----------*/ |
37 | 39 | |
38 | 40 | |
39 | SCREEN_UPDATE_IND16( taotaido ); | |
40 | SCREEN_VBLANK( taotaido ); | |
41 | ||
42 |
r17967 | r17968 | |
---|---|---|
26 | 26 | DECLARE_MACHINE_START(relief); |
27 | 27 | DECLARE_MACHINE_RESET(relief); |
28 | 28 | DECLARE_VIDEO_START(relief); |
29 | UINT32 screen_update_relief(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
29 | 30 | }; |
30 | 31 | |
31 | 32 | |
32 | 33 | /*----------- defined in video/relief.c -----------*/ |
33 | 34 | |
34 | 35 | |
35 | ||
36 |
r17967 | r17968 | |
---|---|---|
270 | 270 | TILE_GET_INFO_MEMBER(get_tile_info_pixel); |
271 | 271 | DECLARE_MACHINE_START(f3); |
272 | 272 | 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); | |
273 | 275 | }; |
274 | 276 | |
275 | 277 | |
276 | 278 | /*----------- defined in video/taito_f3.c -----------*/ |
277 | 279 | |
278 | 280 | |
279 | SCREEN_UPDATE_RGB32( f3 ); | |
280 | SCREEN_VBLANK( f3 ); | |
281 | 281 | |
282 | 282 | |
283 | ||
284 |
r17967 | r17968 | |
---|---|---|
49 | 49 | TILE_GET_INFO_MEMBER(get_tile_info_gaelco2_screen1_dual); |
50 | 50 | DECLARE_VIDEO_START(gaelco2); |
51 | 51 | 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); | |
52 | 55 | }; |
53 | 56 | |
54 | 57 | |
r17967 | r17968 | |
61 | 64 | |
62 | 65 | /*----------- defined in video/gaelco2.c -----------*/ |
63 | 66 | |
64 | SCREEN_UPDATE_IND16( gaelco2 ); | |
65 | 67 | |
66 | SCREEN_UPDATE_IND16( gaelco2_left ); | |
67 | SCREEN_UPDATE_IND16( gaelco2_right ); | |
68 | 68 | |
69 | ||
70 | ||
71 |
r17967 | r17968 | |
---|---|---|
52 | 52 | virtual void machine_start(); |
53 | 53 | virtual void machine_reset(); |
54 | 54 | virtual void video_start(); |
55 | UINT32 screen_update_homerun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
55 | 56 | }; |
56 | 57 | |
57 | 58 | |
r17967 | r17968 | |
60 | 61 | DECLARE_WRITE8_DEVICE_HANDLER( homerun_banking_w ); |
61 | 62 | |
62 | 63 | |
63 | ||
64 |
r17967 | r17968 | |
---|---|---|
60 | 60 | DECLARE_MACHINE_START(exctsccr); |
61 | 61 | DECLARE_VIDEO_START(exctsccr); |
62 | 62 | 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); | |
63 | 66 | }; |
64 | 67 | |
65 | 68 | |
r17967 | r17968 | |
70 | 73 | |
71 | 74 | |
72 | 75 | |
73 | SCREEN_UPDATE_IND16( champbas ); | |
74 | SCREEN_UPDATE_IND16( exctsccr ); | |
75 | 76 | |
76 | 77 | |
78 | ||
79 |
r17967 | r17968 | |
---|---|---|
38 | 38 | TILE_GET_INFO_MEMBER(get_tile_info1); |
39 | 39 | virtual void video_start(); |
40 | 40 | 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); | |
41 | 43 | }; |
42 | 44 | |
43 | 45 | |
44 | 46 | /*----------- defined in video/baraduke.c -----------*/ |
45 | 47 | |
46 | 48 | |
47 | SCREEN_UPDATE_IND16( baraduke ); | |
48 | SCREEN_VBLANK( baraduke ); | |
49 | 49 | |
50 | ||
51 |
r17967 | r17968 | |
---|---|---|
35 | 35 | TILE_GET_INFO_MEMBER(get_fg_tile_info); |
36 | 36 | virtual void video_start(); |
37 | 37 | virtual void palette_init(); |
38 | UINT32 screen_update_ssozumo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
38 | 39 | }; |
39 | 40 | |
40 | 41 | |
r17967 | r17968 | |
43 | 44 | |
44 | 45 | |
45 | 46 | |
46 | ||
47 |
r17967 | r17968 | |
---|---|---|
100 | 100 | DECLARE_MACHINE_RESET(mcr); |
101 | 101 | DECLARE_VIDEO_START(mcr); |
102 | 102 | DECLARE_MACHINE_START(nflfoot); |
103 | UINT32 screen_update_mcr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
103 | 104 | }; |
104 | 105 | |
105 | 106 | |
r17967 | r17968 | |
143 | 144 | |
144 | 145 | |
145 | 146 | |
146 | ||
147 |
r17967 | r17968 | |
---|---|---|
49 | 49 | TILE_GET_INFO_MEMBER(get_pf_tile_info); |
50 | 50 | virtual void machine_start(); |
51 | 51 | virtual void video_start(); |
52 | UINT32 screen_update_m107(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
52 | 53 | }; |
53 | 54 | |
54 | 55 | |
55 | 56 | /*----------- defined in video/m107.c -----------*/ |
56 | 57 | |
57 | SCREEN_UPDATE_IND16( m107 ); | |
58 | 58 | |
59 |
r17967 | r17968 | |
---|---|---|
43 | 43 | virtual void machine_start(); |
44 | 44 | virtual void machine_reset(); |
45 | 45 | 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); | |
46 | 49 | }; |
47 | 50 | |
48 | 51 | |
49 | 52 | /*----------- defined in video/ninjaw.c -----------*/ |
50 | 53 | |
51 | 54 | |
52 | SCREEN_UPDATE_IND16( ninjaw_left ); | |
53 | SCREEN_UPDATE_IND16( ninjaw_middle ); | |
54 | SCREEN_UPDATE_IND16( ninjaw_right ); | |
55 | ||
56 | ||
57 |
r17967 | r17968 | |
---|---|---|
59 | 59 | DECLARE_MACHINE_START(matmania); |
60 | 60 | DECLARE_MACHINE_START(maniach); |
61 | 61 | 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); | |
62 | 64 | }; |
63 | 65 | |
64 | 66 | /*----------- defined in machine/maniach.c -----------*/ |
r17967 | r17968 | |
80 | 82 | /*----------- defined in video/matmania.c -----------*/ |
81 | 83 | |
82 | 84 | |
83 | SCREEN_UPDATE_IND16( maniach ); | |
84 | 85 | |
85 | SCREEN_UPDATE_IND16( matmania ); | |
86 | ||
87 |
r17967 | r17968 | |
---|---|---|
77 | 77 | DECLARE_MACHINE_START(arkanoid); |
78 | 78 | DECLARE_MACHINE_RESET(arkanoid); |
79 | 79 | 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); | |
80 | 82 | }; |
81 | 83 | |
82 | 84 |
r17967 | r17968 | |
---|---|---|
61 | 61 | DECLARE_MACHINE_START(twin16); |
62 | 62 | DECLARE_MACHINE_RESET(twin16); |
63 | 63 | 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); | |
64 | 66 | }; |
65 | 67 | |
66 | 68 | |
r17967 | r17968 | |
73 | 75 | |
74 | 76 | |
75 | 77 | |
76 | SCREEN_UPDATE_IND16( twin16 ); | |
77 | SCREEN_VBLANK( twin16 ); | |
78 | 78 | |
79 | ||
80 | ||
79 | 81 | void twin16_spriteram_process( running_machine &machine ); |
r17967 | r17968 | |
---|---|---|
110 | 110 | DECLARE_VIDEO_START(megasys1); |
111 | 111 | DECLARE_PALETTE_INIT(megasys1); |
112 | 112 | 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); | |
113 | 115 | }; |
114 | 116 | |
115 | 117 | |
116 | 118 | /*----------- defined in video/megasys1.c -----------*/ |
117 | 119 | |
118 | 120 | |
119 | SCREEN_UPDATE_IND16( megasys1 ); | |
120 | SCREEN_VBLANK( megasys1 ); | |
121 | 121 | |
122 | 122 | |
123 | 123 | |
124 | 124 | |
125 | 125 | |
126 | ||
127 |
r17967 | r17968 | |
---|---|---|
50 | 50 | virtual void machine_start(); |
51 | 51 | virtual void machine_reset(); |
52 | 52 | 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); | |
53 | 55 | }; |
54 | 56 | |
55 | 57 | /*----------- defined in video/crshrace.c -----------*/ |
56 | 58 | |
57 | 59 | |
58 | 60 | |
59 | SCREEN_VBLANK( crshrace ); | |
60 | SCREEN_UPDATE_IND16( crshrace ); | |
61 | ||
62 |
r17967 | r17968 | |
---|---|---|
66 | 66 | virtual void machine_start(); |
67 | 67 | virtual void machine_reset(); |
68 | 68 | 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); | |
69 | 71 | }; |
70 | 72 | |
71 | 73 | |
r17967 | r17968 | |
73 | 75 | |
74 | 76 | |
75 | 77 | |
76 | SCREEN_UPDATE_IND16( airbustr ); | |
77 | SCREEN_VBLANK( airbustr ); | |
78 | ||
79 |
r17967 | r17968 | |
---|---|---|
30 | 30 | DECLARE_PALETTE_INIT(firebatl); |
31 | 31 | DECLARE_VIDEO_START(clshroad); |
32 | 32 | DECLARE_PALETTE_INIT(clshroad); |
33 | UINT32 screen_update_clshroad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
33 | 34 | }; |
34 | 35 | |
35 | 36 | |
r17967 | r17968 | |
40 | 41 | |
41 | 42 | |
42 | 43 | |
43 | ||
44 |
r17967 | r17968 | |
---|---|---|
134 | 134 | DECLARE_MACHINE_RESET(superabc); |
135 | 135 | DECLARE_VIDEO_START(pengo); |
136 | 136 | 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); | |
137 | 139 | }; |
138 | 140 | |
139 | 141 | |
r17967 | r17968 | |
141 | 143 | |
142 | 144 | |
143 | 145 | |
144 | SCREEN_UPDATE_IND16( pacman ); | |
145 | 146 | |
146 | 147 | |
147 | 148 | |
148 | 149 | |
149 | SCREEN_UPDATE_IND16( s2650games ); | |
150 | 150 | |
151 | 151 | |
152 | 152 | |
153 | 153 | |
154 | 154 | |
155 | 155 | |
156 | ||
157 | ||
156 | 158 | /*----------- defined in machine/pacplus.c -----------*/ |
157 | 159 | |
158 | 160 | void pacplus_decode(running_machine &machine); |
r17967 | r17968 | |
---|---|---|
46 | 46 | virtual void machine_start(); |
47 | 47 | virtual void video_start(); |
48 | 48 | virtual void palette_init(); |
49 | UINT32 screen_update_dcheese(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
49 | 50 | }; |
50 | 51 | |
51 | 52 | |
r17967 | r17968 | |
58 | 59 | |
59 | 60 | |
60 | 61 | |
61 | SCREEN_UPDATE_IND16( dcheese ); | |
62 | 62 | |
63 | 63 | |
64 |
r17967 | r17968 | |
---|---|---|
43 | 43 | virtual void machine_start(); |
44 | 44 | virtual void machine_reset(); |
45 | 45 | virtual void video_start(); |
46 | UINT32 screen_update_chqflag(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
46 | 47 | }; |
47 | 48 | |
48 | 49 | /*----------- defined in video/chqflag.c -----------*/ |
r17967 | r17968 | |
52 | 53 | extern void chqflag_zoom_callback_1(running_machine &machine, int *code,int *color,int *flags); |
53 | 54 | |
54 | 55 | |
55 | ||
56 |
r17967 | r17968 | |
---|---|---|
74 | 74 | virtual void machine_start(); |
75 | 75 | virtual void machine_reset(); |
76 | 76 | virtual void video_start(); |
77 | UINT32 screen_update_bwing(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
77 | 78 | }; |
78 | 79 | |
79 | 80 | |
r17967 | r17968 | |
83 | 84 | |
84 | 85 | |
85 | 86 | |
86 | ||
87 |
r17967 | r17968 | |
---|---|---|
47 | 47 | virtual void machine_start(); |
48 | 48 | virtual void machine_reset(); |
49 | 49 | virtual void video_start(); |
50 | UINT32 screen_update_sf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
50 | 51 | }; |
51 | 52 | |
52 | 53 | |
r17967 | r17968 | |
54 | 55 | |
55 | 56 | |
56 | 57 | |
57 | ||
58 |
r17967 | r17968 | |
---|---|---|
59 | 59 | DECLARE_WRITE8_MEMBER(unk); |
60 | 60 | DECLARE_MACHINE_START(lsasquad); |
61 | 61 | 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); | |
62 | 64 | }; |
63 | 65 | |
64 | 66 | /*----------- defined in machine/lsasquad.c -----------*/ |
r17967 | r17968 | |
69 | 71 | |
70 | 72 | /*----------- defined in video/lsasquad.c -----------*/ |
71 | 73 | |
72 | SCREEN_UPDATE_IND16( lsasquad ); | |
73 | SCREEN_UPDATE_IND16( daikaiju ); | |
74 | ||
75 |
r17967 | r17968 | |
---|---|---|
79 | 79 | DECLARE_VIDEO_START(primella); |
80 | 80 | DECLARE_VIDEO_START(rshark); |
81 | 81 | 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); | |
82 | 90 | }; |
83 | 91 | |
84 | 92 | |
r17967 | r17968 | |
88 | 96 | |
89 | 97 | |
90 | 98 | |
91 | SCREEN_UPDATE_IND16( lastday ); | |
92 | SCREEN_UPDATE_IND16( gulfstrm ); | |
93 | SCREEN_UPDATE_IND16( pollux ); | |
94 | SCREEN_UPDATE_IND16( bluehawk ); | |
95 | SCREEN_UPDATE_IND16( flytiger ); | |
96 | SCREEN_UPDATE_IND16( primella ); | |
97 | SCREEN_UPDATE_IND16( rshark ); | |
98 | SCREEN_UPDATE_IND16( popbingo ); | |
99 | 99 | |
100 | 100 | |
101 | 101 | |
r17967 | r17968 | |
105 | 105 | |
106 | 106 | |
107 | 107 | |
108 | ||
109 | ||
110 | ||
111 | ||
112 | ||
113 | ||
114 | ||
115 |
r17967 | r17968 | |
---|---|---|
200 | 200 | DECLARE_PALETTE_INIT(pwrinst2); |
201 | 201 | DECLARE_VIDEO_START(sailormn_3_layers); |
202 | 202 | DECLARE_PALETTE_INIT(sailormn); |
203 | UINT32 screen_update_cave(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
203 | 204 | }; |
204 | 205 | |
205 | 206 | /*----------- defined in video/cave.c -----------*/ |
r17967 | r17968 | |
221 | 222 | |
222 | 223 | |
223 | 224 | |
224 | SCREEN_UPDATE_IND16( cave ); | |
225 | 225 | |
226 | ||
226 | 227 | void cave_get_sprite_info(running_machine &machine); |
227 | 228 | void sailormn_tilebank_w(running_machine &machine, int bank); |
r17967 | r17968 | |
---|---|---|
104 | 104 | DECLARE_VIDEO_START(blaster); |
105 | 105 | DECLARE_MACHINE_START(williams_common); |
106 | 106 | 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); | |
107 | 110 | }; |
108 | 111 | |
109 | 112 | |
r17967 | r17968 | |
195 | 198 | |
196 | 199 | |
197 | 200 | |
198 | SCREEN_UPDATE_RGB32( williams ); | |
199 | SCREEN_UPDATE_RGB32( blaster ); | |
200 | SCREEN_UPDATE_RGB32( williams2 ); | |
201 | 201 | |
202 | 202 | |
203 | ||
204 | ||
205 |
r17967 | r17968 | |
---|---|---|
45 | 45 | virtual void machine_reset(); |
46 | 46 | virtual void video_start(); |
47 | 47 | virtual void palette_init(); |
48 | UINT32 screen_update_brkthru(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
48 | 49 | }; |
49 | 50 | |
50 | 51 | |
r17967 | r17968 | |
52 | 53 | |
53 | 54 | |
54 | 55 | |
55 | ||
56 |
r17967 | r17968 | |
---|---|---|
61 | 61 | virtual void machine_start(); |
62 | 62 | virtual void machine_reset(); |
63 | 63 | 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); | |
64 | 66 | }; |
65 | 67 | |
66 | 68 | |
r17967 | r17968 | |
68 | 70 | |
69 | 71 | |
70 | 72 | |
71 | SCREEN_UPDATE_IND16( fuuki32 ); | |
72 | SCREEN_VBLANK( fuuki32 ); | |
73 | ||
74 |
r17967 | r17968 | |
---|---|---|
121 | 121 | DECLARE_VIDEO_START(oscar); |
122 | 122 | DECLARE_VIDEO_START(srdarwin); |
123 | 123 | 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); | |
124 | 133 | }; |
125 | 134 | |
126 | 135 | /*----------- defined in video/dec8.c -----------*/ |
127 | 136 | |
128 | 137 | |
129 | 138 | |
130 | SCREEN_UPDATE_IND16( cobracom ); | |
131 | SCREEN_UPDATE_IND16( ghostb ); | |
132 | SCREEN_UPDATE_IND16( srdarwin ); | |
133 | SCREEN_UPDATE_IND16( gondo ); | |
134 | SCREEN_UPDATE_IND16( garyoret ); | |
135 | SCREEN_UPDATE_IND16( lastmisn ); | |
136 | SCREEN_UPDATE_IND16( shackled ); | |
137 | SCREEN_UPDATE_IND16( oscar ); | |
138 | 139 | |
139 | 140 | |
140 | 141 | |
r17967 | r17968 | |
144 | 145 | |
145 | 146 | |
146 | 147 | |
148 | ||
149 | ||
150 | ||
151 | ||
152 | ||
153 | ||
154 | ||
155 | ||
147 | 156 | DECLARE_WRITE8_HANDLER( dec8_bac06_0_w ); |
148 | 157 | DECLARE_WRITE8_HANDLER( dec8_bac06_1_w ); |
149 | 158 | DECLARE_WRITE8_HANDLER( dec8_pf1_data_w ); |
r17967 | r17968 | |
---|---|---|
50 | 50 | TILE_GET_INFO_MEMBER(get_bg2_tile_info); |
51 | 51 | virtual void machine_reset(); |
52 | 52 | 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); | |
53 | 55 | }; |
54 | 56 | |
55 | 57 | |
r17967 | r17968 | |
58 | 60 | |
59 | 61 | |
60 | 62 | |
61 | SCREEN_UPDATE_IND16( tbowl_left ); | |
62 | SCREEN_UPDATE_IND16( tbowl_right ); | |
63 | 63 | |
64 | ||
65 |
r17967 | r17968 | |
---|---|---|
38 | 38 | virtual void machine_start(); |
39 | 39 | virtual void machine_reset(); |
40 | 40 | virtual void video_start(); |
41 | UINT32 screen_update_battlane(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
41 | 42 | }; |
42 | 43 | |
43 | 44 | |
r17967 | r17968 | |
45 | 46 | |
46 | 47 | |
47 | 48 | |
48 | ||
49 |
r17967 | r17968 | |
---|---|---|
71 | 71 | DECLARE_MACHINE_START(atarigt); |
72 | 72 | DECLARE_MACHINE_RESET(atarigt); |
73 | 73 | 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); | |
74 | 76 | }; |
75 | 77 | |
76 | 78 | |
r17967 | r17968 | |
79 | 81 | |
80 | 82 | |
81 | 83 | |
82 | SCREEN_VBLANK( atarigt ); | |
83 | SCREEN_UPDATE_RGB32( atarigt ); | |
84 | 84 | |
85 | ||
86 | ||
85 | 87 | void atarigt_scanline_update(screen_device &screen, int scanline); |
r17967 | r17968 | |
---|---|---|
38 | 38 | virtual void video_start(); |
39 | 39 | virtual void palette_init(); |
40 | 40 | DECLARE_PALETTE_INIT(suprmous); |
41 | UINT32 screen_update_thepit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
41 | 42 | }; |
42 | 43 | |
43 | 44 | |
r17967 | r17968 | |
46 | 47 | |
47 | 48 | |
48 | 49 | |
49 | ||
50 |
r17967 | r17968 | |
---|---|---|
58 | 58 | virtual void machine_start(); |
59 | 59 | virtual void machine_reset(); |
60 | 60 | virtual void video_start(); |
61 | UINT32 screen_update_cloud9(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
61 | 62 | }; |
62 | 63 | |
63 | 64 | |
64 | 65 | /*----------- defined in video/cloud9.c -----------*/ |
65 | 66 | |
66 | 67 | |
67 | SCREEN_UPDATE_IND16( cloud9 ); | |
68 | 68 | |
69 | 69 | |
70 | 70 | |
71 |
r17967 | r17968 | |
---|---|---|
39 | 39 | TILE_GET_INFO_MEMBER(get_bg1_tile_info); |
40 | 40 | virtual void machine_reset(); |
41 | 41 | virtual void video_start(); |
42 | UINT32 screen_update_rpunch(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
42 | 43 | }; |
43 | 44 | |
44 | 45 | |
45 | 46 | /*----------- defined in video/rpunch.c -----------*/ |
46 | 47 | |
47 | 48 | |
48 | SCREEN_UPDATE_IND16( rpunch ); | |
49 | 49 | |
50 |
r17967 | r17968 | |
---|---|---|
88 | 88 | virtual void machine_start(); |
89 | 89 | virtual void machine_reset(); |
90 | 90 | virtual void video_start(); |
91 | UINT32 screen_update_changela(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
91 | 92 | }; |
92 | 93 | |
93 | 94 | /*----------- defined in video/changela.c -----------*/ |
94 | 95 | |
95 | 96 | |
96 | SCREEN_UPDATE_IND16( changela ); | |
97 | 97 | |
98 |
r17967 | r17968 | |
---|---|---|
31 | 31 | virtual void machine_start(); |
32 | 32 | virtual void machine_reset(); |
33 | 33 | virtual void video_start(); |
34 | UINT32 screen_update_crimfght(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
34 | 35 | }; |
35 | 36 | |
36 | 37 | /*----------- defined in video/crimfght.c -----------*/ |
r17967 | r17968 | |
39 | 40 | extern void crimfght_sprite_callback(running_machine &machine, int *code,int *color,int *priority,int *shadow); |
40 | 41 | |
41 | 42 | |
42 | ||
43 |
r17967 | r17968 | |
---|---|---|
47 | 47 | DECLARE_WRITE8_MEMBER(asuka_msm5205_stop_w); |
48 | 48 | virtual void machine_start(); |
49 | 49 | 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); | |
50 | 53 | }; |
51 | 54 | |
52 | 55 | |
r17967 | r17968 | |
63 | 66 | /*----------- defined in video/asuka.c -----------*/ |
64 | 67 | |
65 | 68 | |
66 | SCREEN_UPDATE_IND16( asuka ); | |
67 | SCREEN_UPDATE_IND16( bonzeadv ); | |
69 | ||
70 |
r17967 | r17968 | |
---|---|---|
50 | 50 | TILE_GET_INFO_MEMBER(get_tile_info); |
51 | 51 | virtual void video_start(); |
52 | 52 | virtual void palette_init(); |
53 | UINT32 screen_update_triplhnt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
53 | 54 | }; |
54 | 55 | |
55 | 56 | |
r17967 | r17968 | |
67 | 68 | /*----------- defined in video/triplhnt.c -----------*/ |
68 | 69 | |
69 | 70 | |
70 | SCREEN_UPDATE_IND16( triplhnt ); | |
71 | 71 | |
72 | 72 | |
73 |
r17967 | r17968 | |
---|---|---|
32 | 32 | virtual void machine_reset(); |
33 | 33 | virtual void video_start(); |
34 | 34 | virtual void palette_init(); |
35 | UINT32 screen_update_pooyan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
35 | 36 | }; |
36 | 37 | |
37 | 38 | |
r17967 | r17968 | |
40 | 41 | |
41 | 42 | |
42 | 43 | |
43 | ||
44 |
r17967 | r17968 | |
---|---|---|
54 | 54 | virtual void machine_reset(); |
55 | 55 | virtual void video_start(); |
56 | 56 | 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); | |
57 | 59 | }; |
58 | 60 | |
59 | 61 | |
60 | 62 | /*----------- defined in video/wolfpack.c -----------*/ |
61 | 63 | |
62 | 64 | |
63 | SCREEN_UPDATE_IND16( wolfpack ); | |
64 | 65 | |
65 | SCREEN_VBLANK( wolfpack ); | |
66 | 66 | |
67 | ||
68 |
r17967 | r17968 | |
---|---|---|
28 | 28 | TILE_GET_INFO_MEMBER(get_tile_info); |
29 | 29 | virtual void video_start(); |
30 | 30 | virtual void palette_init(); |
31 | UINT32 screen_update_sidepckt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
31 | 32 | }; |
32 | 33 | |
33 | 34 | |
r17967 | r17968 | |
35 | 36 | |
36 | 37 | |
37 | 38 | |
38 | SCREEN_UPDATE_IND16( sidepckt ); | |
39 | 39 | |
40 |
r17967 | r17968 | |
---|---|---|
36 | 36 | virtual void machine_start(); |
37 | 37 | virtual void machine_reset(); |
38 | 38 | virtual void video_start(); |
39 | UINT32 screen_update_rollerg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
39 | 40 | }; |
40 | 41 | |
41 | 42 | /*----------- defined in video/rollerg.c -----------*/ |
r17967 | r17968 | |
44 | 45 | extern void rollerg_zoom_callback(running_machine &machine, int *code,int *color,int *flags); |
45 | 46 | |
46 | 47 | |
47 | ||
48 |
r17967 | r17968 | |
---|---|---|
29 | 29 | TILE_GET_INFO_MEMBER(get_fg_tile_info); |
30 | 30 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
31 | 31 | virtual void video_start(); |
32 | UINT32 screen_update_pirates(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
32 | 33 | }; |
33 | 34 | |
34 | 35 | |
r17967 | r17968 | |
36 | 37 | |
37 | 38 | |
38 | 39 | |
39 | ||
40 |
r17967 | r17968 | |
---|---|---|
29 | 29 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
30 | 30 | virtual void video_start(); |
31 | 31 | virtual void palette_init(); |
32 | UINT32 screen_update_tankbatt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
32 | 33 | }; |
33 | 34 | |
34 | 35 | |
r17967 | r17968 | |
37 | 38 | |
38 | 39 | |
39 | 40 | |
40 | ||
41 |
r17967 | r17968 | |
---|---|---|
61 | 61 | virtual void machine_reset(); |
62 | 62 | virtual void video_start(); |
63 | 63 | virtual void palette_init(); |
64 | UINT32 screen_update_exerion(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
64 | 65 | }; |
65 | 66 | |
66 | 67 | |
r17967 | r17968 | |
69 | 70 | |
70 | 71 | |
71 | 72 | |
72 | SCREEN_UPDATE_IND16( exerion ); | |
73 | 73 | |
74 |
r17967 | r17968 | |
---|---|---|
24 | 24 | TILE_GET_INFO_MEMBER(get_tile_info_wrally_screen0); |
25 | 25 | TILE_GET_INFO_MEMBER(get_tile_info_wrally_screen1); |
26 | 26 | virtual void video_start(); |
27 | UINT32 screen_update_wrally(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
27 | 28 | }; |
28 | 29 | |
29 | 30 | |
r17967 | r17968 | |
33 | 34 | /*----------- defined in video/wrally.c -----------*/ |
34 | 35 | |
35 | 36 | |
36 | SCREEN_UPDATE_IND16( wrally ); | |
37 | 37 | |
38 |
r17967 | r17968 | |
---|---|---|
34 | 34 | virtual void machine_start(); |
35 | 35 | virtual void machine_reset(); |
36 | 36 | virtual void video_start(); |
37 | UINT32 screen_update_mosaic(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
37 | 38 | }; |
38 | 39 | |
39 | 40 | |
r17967 | r17968 | |
41 | 42 | |
42 | 43 | |
43 | 44 | |
44 | ||
45 |
r17967 | r17968 | |
---|---|---|
44 | 44 | virtual void machine_start(); |
45 | 45 | virtual void machine_reset(); |
46 | 46 | virtual void video_start(); |
47 | UINT32 screen_update_crospang(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
47 | 48 | }; |
48 | 49 | |
49 | 50 | |
50 | 51 | /*----------- defined in video/crospang.c -----------*/ |
51 | 52 | |
52 | 53 | |
53 | SCREEN_UPDATE_IND16( crospang ); | |
54 | 54 | |
55 | 55 | |
56 | 56 | |
57 |
r17967 | r17968 | |
---|---|---|
42 | 42 | DECLARE_WRITE8_MEMBER(subs_invert2_w); |
43 | 43 | virtual void machine_reset(); |
44 | 44 | 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); | |
45 | 47 | }; |
46 | 48 | |
47 | 49 | |
r17967 | r17968 | |
64 | 66 | |
65 | 67 | /*----------- defined in video/subs.c -----------*/ |
66 | 68 | |
67 | SCREEN_UPDATE_IND16( subs_left ); | |
68 | SCREEN_UPDATE_IND16( subs_right ); | |
69 | 69 | |
70 | ||
71 |
r17967 | r17968 | |
---|---|---|
27 | 27 | TILE_GET_INFO_MEMBER(get_txttile_info); |
28 | 28 | virtual void video_start(); |
29 | 29 | virtual void palette_init(); |
30 | UINT32 screen_update_darkmist(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
30 | 31 | }; |
31 | 32 | |
32 | 33 | |
33 | 34 | /*----------- defined in video/darkmist.c -----------*/ |
34 | 35 | |
35 | 36 | |
36 | SCREEN_UPDATE_IND16( darkmist ); | |
37 | 37 | |
38 | 38 | |
39 |
r17967 | r17968 | |
---|---|---|
36 | 36 | virtual void machine_start(); |
37 | 37 | virtual void machine_reset(); |
38 | 38 | virtual void video_start(); |
39 | UINT32 screen_update_ajax(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
39 | 40 | }; |
40 | 41 | |
41 | 42 | |
r17967 | r17968 | |
48 | 49 | /*----------- defined in video/ajax.c -----------*/ |
49 | 50 | |
50 | 51 | |
51 | SCREEN_UPDATE_IND16( ajax ); | |
52 | 52 | |
53 | ||
53 | 54 | extern void ajax_tile_callback(running_machine &machine, int layer,int bank,int *code,int *color,int *flags,int *priority); |
54 | 55 | extern void ajax_sprite_callback(running_machine &machine, int *code,int *color,int *priority,int *shadow); |
55 | 56 | extern void ajax_zoom_callback(running_machine &machine, int *code,int *color,int *flags); |
r17967 | r17968 | |
---|---|---|
22 | 22 | DECLARE_WRITE8_MEMBER(funybubl_oki_bank_sw); |
23 | 23 | virtual void machine_start(); |
24 | 24 | virtual void video_start(); |
25 | UINT32 screen_update_funybubl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
25 | 26 | }; |
26 | 27 | |
27 | 28 | |
r17967 | r17968 | |
30 | 31 | |
31 | 32 | |
32 | 33 | |
33 | ||
34 |
r17967 | r17968 | |
---|---|---|
32 | 32 | m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(sbugger_state::get_sbugger_tile_info),this), TILEMAP_SCAN_ROWS, 8, 16, 64, 16); |
33 | 33 | } |
34 | 34 | |
35 | ||
35 | ||
36 | 36 | { |
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); | |
39 | 38 | return 0; |
40 | 39 | } |
41 | 40 |
r17967 | r17968 | |
---|---|---|
129 | 129 | |
130 | 130 | ***************************************************************************/ |
131 | 131 | |
132 | ||
132 | ||
133 | 133 | { |
134 | targeth_state *state = screen.machine().driver_data<targeth_state>(); | |
135 | 134 | /* 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]); | |
140 | 139 | |
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); | |
143 | 142 | draw_sprites(screen.machine(), bitmap,cliprect); |
144 | 143 | |
145 | 144 | return 0; |
r17967 | r17968 | |
---|---|---|
237 | 237 | } |
238 | 238 | #endif |
239 | 239 | |
240 | ||
240 | ||
241 | 241 | { |
242 | nycaptor_state *state = screen.machine().driver_data<nycaptor_state>(); | |
243 | 242 | |
244 | 243 | #if NYCAPTOR_DEBUG |
245 | 244 | nycaptor_setmask(screen.machine()); |
246 | if ( | |
245 | if ( | |
247 | 246 | { |
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); | |
256 | 255 | draw_sprites(screen.machine(), bitmap, cliprect, 0); |
257 | 256 | draw_sprites(screen.machine(), bitmap, cliprect, 1); |
258 | 257 | draw_sprites(screen.machine(), bitmap, cliprect, 2); |
r17967 | r17968 | |
267 | 266 | switch (nycaptor_spot(screen.machine()) & 3) |
268 | 267 | { |
269 | 268 | case 0: |
270 | | |
269 | | |
271 | 270 | 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); | |
276 | 275 | draw_sprites(screen.machine(), bitmap, cliprect, 3); |
277 | | |
276 | | |
278 | 277 | draw_sprites(screen.machine(), bitmap, cliprect, 0); |
279 | 278 | draw_sprites(screen.machine(), bitmap, cliprect, 2); |
280 | | |
279 | | |
281 | 280 | draw_sprites(screen.machine(), bitmap, cliprect, 1); |
282 | | |
281 | | |
283 | 282 | break; |
284 | 283 | |
285 | 284 | case 1: |
286 | | |
285 | | |
287 | 286 | draw_sprites(screen.machine(), bitmap, cliprect, 3); |
288 | | |
287 | | |
289 | 288 | 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); | |
292 | 291 | 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); | |
295 | 294 | 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); | |
298 | 297 | break; |
299 | 298 | |
300 | 299 | 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); | |
304 | 303 | 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); | |
308 | 307 | 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); | |
311 | 310 | break; |
312 | 311 | |
313 | 312 | case 3: |
314 | | |
313 | | |
315 | 314 | draw_sprites(screen.machine(), bitmap, cliprect, 1); |
316 | | |
315 | | |
317 | 316 | 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); | |
320 | 319 | break; |
321 | 320 | } |
322 | 321 |
r17967 | r17968 | |
---|---|---|
310 | 310 | } |
311 | 311 | } |
312 | 312 | |
313 | ||
313 | ||
314 | 314 | { |
315 | mitchell_state *state = screen.machine().driver_data<mitchell_state>(); | |
316 | 315 | |
317 | 316 | bitmap.fill(0, cliprect); |
318 | | |
317 | | |
319 | 318 | draw_sprites(screen.machine(), bitmap, cliprect); |
320 | 319 | return 0; |
321 | 320 | } |
r17967 | r17968 | |
---|---|---|
40 | 40 | |
41 | 41 | /***************************************************************************/ |
42 | 42 | |
43 | ||
43 | ||
44 | 44 | { |
45 | rbisland_state *state = screen.machine().driver_data<rbisland_state>(); | |
46 | 45 | int layer[2]; |
47 | 46 | |
48 | pc080sn_tilemap_update( | |
47 | pc080sn_tilemap_update( | |
49 | 48 | |
50 | 49 | layer[0] = 0; |
51 | 50 | layer[1] = 1; |
52 | 51 | |
53 | 52 | screen.machine().priority_bitmap.fill(0, cliprect); |
54 | 53 | |
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); | |
57 | 56 | |
58 | pc090oj_draw_sprites( | |
57 | pc090oj_draw_sprites( | |
59 | 58 | return 0; |
60 | 59 | } |
61 | 60 | |
r17967 | r17968 | |
84 | 83 | } |
85 | 84 | |
86 | 85 | |
87 | ||
86 | ||
88 | 87 | { |
89 | rbisland_state *state = screen.machine().driver_data<rbisland_state>(); | |
90 | UINT16 *spriteram = state->m_spriteram; | |
88 | UINT16 *spriteram = m_spriteram; | |
91 | 89 | int offs, layer[2]; |
92 | int sprite_colbank = ( | |
90 | int sprite_colbank = ( | |
93 | 91 | |
94 | pc080sn_tilemap_update( | |
92 | pc080sn_tilemap_update( | |
95 | 93 | |
96 | 94 | /* Override values, or foreground layer is in wrong position */ |
97 | pc080sn_set_scroll( | |
95 | pc080sn_set_scroll( | |
98 | 96 | |
99 | 97 | layer[0] = 0; |
100 | 98 | layer[1] = 1; |
101 | 99 | |
102 | 100 | screen.machine().priority_bitmap.fill(0, cliprect); |
103 | 101 | |
104 | pc080sn_tilemap_draw( | |
102 | pc080sn_tilemap_draw( | |
105 | 103 | |
106 | 104 | /* Draw the sprites. 128 sprites in total */ |
107 | for (offs = | |
105 | for (offs = | |
108 | 106 | { |
109 | 107 | int tile = spriteram[offs]; |
110 | 108 | if (tile < screen.machine().gfx[1]->elements()) |
r17967 | r17968 | |
127 | 125 | } |
128 | 126 | } |
129 | 127 | |
130 | pc080sn_tilemap_draw( | |
128 | pc080sn_tilemap_draw( | |
131 | 129 | |
132 | 130 | #if 0 |
133 | 131 | { |
134 | 132 | char buf[80]; |
135 | sprintf(buf,"sprite_ctrl: %04x", | |
133 | sprintf(buf,"sprite_ctrl: %04x", | |
136 | 134 | popmessage(buf); |
137 | 135 | } |
138 | 136 | #endif |
r17967 | r17968 | |
---|---|---|
101 | 101 | } |
102 | 102 | |
103 | 103 | |
104 | ||
104 | ||
105 | 105 | { |
106 | galspnbl_state *state = screen.machine().driver_data<galspnbl_state>(); | |
107 | 106 | int offs; |
108 | 107 | |
109 | 108 | draw_background(screen.machine(), bitmap, cliprect); |
r17967 | r17968 | |
114 | 113 | { |
115 | 114 | int sx, sy, code, attr, color; |
116 | 115 | |
117 | code = state->m_videoram[offs]; | |
118 | attr = state->m_colorram[offs]; | |
116 | code = m_videoram[offs]; | |
117 | attr = m_colorram[offs]; | |
119 | 118 | color = (attr & 0x00f0) >> 4; |
120 | 119 | sx = offs % 64; |
121 | 120 | sy = offs / 64; |
r17967 | r17968 | |
---|---|---|
495 | 495 | } |
496 | 496 | |
497 | 497 | |
498 | ||
498 | ||
499 | 499 | { |
500 | xevious_state *state = screen.machine().driver_data<xevious_state>(); | |
501 | 500 | |
502 | | |
501 | | |
503 | 502 | draw_sprites(screen.machine(), bitmap,cliprect); |
504 | | |
503 | | |
505 | 504 | return 0; |
506 | 505 | } |
r17967 | r17968 | |
---|---|---|
219 | 219 | } |
220 | 220 | } |
221 | 221 | |
222 | ||
222 | ||
223 | 223 | { |
224 | dynduke_state *state = screen.machine().driver_data<dynduke_state>(); | |
225 | 224 | /* 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); | |
230 | 229 | |
231 | 230 | |
232 | 231 | draw_background(screen.machine(), bitmap, cliprect,0x00); |
r17967 | r17968 | |
235 | 234 | draw_background(screen.machine(), bitmap, cliprect,0x20); |
236 | 235 | |
237 | 236 | draw_sprites(screen.machine(),bitmap,cliprect,2); |
238 | | |
237 | | |
239 | 238 | draw_sprites(screen.machine(),bitmap,cliprect,3); |
240 | | |
239 | | |
241 | 240 | |
242 | 241 | return 0; |
243 | 242 | } |
r17967 | r17968 | |
---|---|---|
218 | 218 | } |
219 | 219 | } |
220 | 220 | |
221 | ||
221 | ||
222 | 222 | { |
223 | blktiger_state *state = screen.machine().driver_data<blktiger_state>(); | |
224 | 223 | |
225 | 224 | bitmap.fill(1023, cliprect); |
226 | 225 | |
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); | |
229 | 228 | |
230 | if ( | |
229 | if ( | |
231 | 230 | draw_sprites(screen.machine(), bitmap, cliprect); |
232 | 231 | |
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); | |
235 | 234 | |
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); | |
238 | 237 | |
239 | 238 | return 0; |
240 | 239 | } |
r17967 | r17968 | |
---|---|---|
374 | 374 | 255-hposition-16,vstart-32,0 ); |
375 | 375 | } |
376 | 376 | |
377 | ||
377 | ||
378 | 378 | { |
379 | tunhunt_state *state = screen.machine().driver_data<tunhunt_state>(); | |
380 | 379 | set_pens(screen.machine()); |
381 | 380 | |
382 | 381 | draw_box(screen.machine(), bitmap, cliprect); |
r17967 | r17968 | |
384 | 383 | draw_motion_object(screen.machine(), bitmap, cliprect); |
385 | 384 | |
386 | 385 | 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 */ | |
393 | 392 | |
394 | 393 | 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 */ | |
401 | 400 | |
402 | | |
401 | | |
403 | 402 | return 0; |
404 | 403 | } |
r17967 | r17968 | |
---|---|---|
493 | 493 | } |
494 | 494 | } |
495 | 495 | |
496 | ||
496 | void | |
497 | 497 | { |
498 | 498 | // rising edge |
499 | if ( | |
499 | if (st | |
500 | 500 | { |
501 | deco_mlc_state *state = screen.machine().driver_data<deco_mlc_state>(); | |
502 | 501 | /* Spriteram is definitely double buffered, as the vram lookup tables |
503 | 502 | are often updated a frame after spriteram is setup to point to a new |
504 | 503 | lookup table. Without buffering incorrect one frame glitches are seen |
505 | 504 | in several places, especially in Hoops. |
506 | 505 | */ |
507 | memcpy( | |
506 | memcpy( | |
508 | 507 | } |
509 | 508 | } |
510 | 509 | |
511 | ||
510 | ||
512 | 511 | { |
513 | 512 | // temp_bitmap->fill(0, cliprect); |
514 | 513 | bitmap.fill(screen.machine().pens[0], cliprect); /* Pen 0 fill colour confirmed from Skull Fang level 2 */ |
r17967 | r17968 | |
---|---|---|
227 | 227 | } |
228 | 228 | } |
229 | 229 | |
230 | ||
230 | ||
231 | 231 | { |
232 | tryout_state *state = screen.machine().driver_data<tryout_state>(); | |
233 | 232 | int scrollx = 0; |
234 | 233 | |
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 */ | |
237 | 236 | else |
238 | | |
237 | | |
239 | 238 | |
240 | scrollx = | |
239 | scrollx = | |
241 | 240 | |
242 | 241 | /* wrap-around */ |
243 | if( | |
242 | if( | |
244 | 243 | |
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]); | |
247 | 246 | |
248 | if(!( | |
247 | if(!( | |
249 | 248 | { |
250 | 249 | /* TODO: Color might be different, needs a video from an original pcb. */ |
251 | 250 | bitmap.fill(screen.machine().pens[0x10], cliprect); |
252 | 251 | } |
253 | 252 | else |
254 | 253 | { |
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); | |
257 | 256 | draw_sprites(screen.machine(), bitmap,cliprect); |
258 | 257 | } |
259 | 258 | |
260 | // popmessage("%02x %02x %02x %02x", | |
259 | // popmessage("%02x %02x %02x %02x", | |
261 | 260 | return 0; |
262 | 261 | } |
r17967 | r17968 | |
---|---|---|
97 | 97 | m_sprite_colorbase = 0x20; |
98 | 98 | } |
99 | 99 | |
100 | ||
100 | ||
101 | 101 | { |
102 | rungun_state *state = screen.machine().driver_data<rungun_state>(); | |
103 | 102 | |
104 | 103 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
105 | 104 | screen.machine().priority_bitmap.fill(0, cliprect); |
106 | 105 | |
107 | k053936_zoom_draw( | |
106 | k053936_zoom_draw( | |
108 | 107 | |
109 | k053247_sprites_draw( | |
108 | k053247_sprites_draw( | |
110 | 109 | |
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); | |
113 | 112 | return 0; |
114 | 113 | } |
r17967 | r17968 | |
---|---|---|
229 | 229 | * |
230 | 230 | *************************************/ |
231 | 231 | |
232 | ||
232 | ||
233 | 233 | { |
234 | eprom_state *state = screen.machine().driver_data<eprom_state>(); | |
235 | 234 | atarimo_rect_list rectlist; |
236 | 235 | bitmap_ind16 *mobitmap; |
237 | 236 | int x, y, r; |
238 | 237 | |
239 | if ( | |
238 | if ( | |
240 | 239 | { |
241 | 240 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
242 | 241 | return 0; |
r17967 | r17968 | |
245 | 244 | update_palette(screen.machine()); |
246 | 245 | |
247 | 246 | /* draw the playfield */ |
248 | | |
247 | | |
249 | 248 | |
250 | 249 | /* draw and merge the MO */ |
251 | 250 | mobitmap = atarimo_render(0, cliprect, &rectlist); |
r17967 | r17968 | |
354 | 353 | } |
355 | 354 | |
356 | 355 | /* add the alpha on top */ |
357 | | |
356 | | |
358 | 357 | |
359 | 358 | /* now go back and process the upper bit of MO priority */ |
360 | 359 | rectlist.rect -= rectlist.numrects; |
r17967 | r17968 | |
384 | 383 | } |
385 | 384 | |
386 | 385 | |
387 | ||
386 | ||
388 | 387 | { |
389 | eprom_state *state = screen.machine().driver_data<eprom_state>(); | |
390 | 388 | atarimo_rect_list rectlist; |
391 | 389 | bitmap_ind16 *mobitmap; |
392 | 390 | int x, y, r; |
393 | 391 | |
394 | if ( | |
392 | if ( | |
395 | 393 | { |
396 | 394 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
397 | 395 | return 0; |
r17967 | r17968 | |
400 | 398 | update_palette(screen.machine()); |
401 | 399 | |
402 | 400 | /* draw the playfield */ |
403 | | |
401 | | |
404 | 402 | |
405 | 403 | /* draw and merge the MO */ |
406 | 404 | mobitmap = atarimo_render(0, cliprect, &rectlist); |
r17967 | r17968 | |
428 | 426 | } |
429 | 427 | |
430 | 428 | /* add the alpha on top */ |
431 | | |
429 | | |
432 | 430 | |
433 | 431 | /* now go back and process the upper bit of MO priority */ |
434 | 432 | rectlist.rect -= rectlist.numrects; |
r17967 | r17968 | |
---|---|---|
22 | 22 | |
23 | 23 | /******************************************************************************/ |
24 | 24 | |
25 | ||
25 | ||
26 | 26 | { |
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()); | |
29 | 28 | |
30 | 29 | // screen.machine().tilemap().set_flip_all(screen.machine().device<deco_bac06_device>("tilegen1")->get_flip_state() ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0); |
31 | 30 | |
32 | 31 | screen.machine().device<deco_bac06_device>("tilegen3")->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00); |
33 | 32 | 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, | |
33 | screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, | |
35 | 34 | screen.machine().device<deco_bac06_device>("tilegen1")->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00); |
36 | 35 | return 0; |
37 | 36 | } |
r17967 | r17968 | |
---|---|---|
10 | 10 | #include "includes/bublbobl.h" |
11 | 11 | |
12 | 12 | |
13 | ||
13 | ||
14 | 14 | { |
15 | bublbobl_state *state = screen.machine().driver_data<bublbobl_state>(); | |
16 | 15 | int offs; |
17 | 16 | int sx, sy, xc, yc; |
18 | 17 | int gfx_num, gfx_attr, gfx_offs; |
r17967 | r17968 | |
27 | 26 | /* This clears & redraws the entire screen each pass */ |
28 | 27 | bitmap.fill(255, cliprect); |
29 | 28 | |
30 | if (! | |
29 | if (! | |
31 | 30 | return 0; |
32 | 31 | |
33 | 32 | sx = 0; |
34 | 33 | |
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) | |
37 | 36 | { |
38 | 37 | /* skip empty sprites */ |
39 | 38 | /* this is dword aligned so the UINT32 * cast shouldn't give problems */ |
40 | 39 | /* on any architecture */ |
41 | if (*(UINT32 *)(& | |
40 | if (*(UINT32 *)(& | |
42 | 41 | continue; |
43 | 42 | |
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]; | |
46 | 45 | prom_line = prom + 0x80 + ((gfx_num & 0xe0) >> 1); |
47 | 46 | |
48 | 47 | gfx_offs = ((gfx_num & 0x1f) * 0x80); |
49 | 48 | if ((gfx_num & 0xa0) == 0xa0) |
50 | 49 | gfx_offs |= 0x1000; |
51 | 50 | |
52 | sy = - | |
51 | sy = - | |
53 | 52 | |
54 | 53 | for (yc = 0; yc < 32; yc++) |
55 | 54 | { |
r17967 | r17968 | |
57 | 56 | |
58 | 57 | if (!(prom_line[yc / 2] & 0x04)) /* next column */ |
59 | 58 | { |
60 | sx = | |
59 | sx = | |
61 | 60 | if (gfx_attr & 0x40) sx -= 256; |
62 | 61 | } |
63 | 62 | |
r17967 | r17968 | |
66 | 65 | int goffs, code, color, flipx, flipy, x, y; |
67 | 66 | |
68 | 67 | 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; | |
73 | 72 | x = sx + xc * 8; |
74 | 73 | y = (sy + yc * 8) & 0xff; |
75 | 74 | |
76 | if ( | |
75 | if ( | |
77 | 76 | { |
78 | 77 | x = 248 - x; |
79 | 78 | y = 248 - y; |
r17967 | r17968 | |
---|---|---|
280 | 280 | ***************************************************************************/ |
281 | 281 | |
282 | 282 | |
283 | ||
283 | ||
284 | 284 | { |
285 | 285 | bitmap.fill(255, cliprect); // the bg is black |
286 | 286 | draw_background(screen.machine(), bitmap, cliprect); |
r17967 | r17968 | |
---|---|---|
139 | 139 | } |
140 | 140 | } |
141 | 141 | |
142 | ||
142 | ||
143 | 143 | { |
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); | |
146 | 145 | draw_sprites(screen.machine(), bitmap, cliprect); |
147 | 146 | return 0; |
148 | 147 | } |
r17967 | r17968 | |
---|---|---|
811 | 811 | } |
812 | 812 | |
813 | 813 | |
814 | ||
814 | ||
815 | 815 | { |
816 | aerofgt_state *state = screen.machine().driver_data<aerofgt_state>(); | |
817 | 816 | int i, scrolly; |
818 | 817 | |
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; | |
821 | 820 | 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); | |
824 | 823 | |
825 | 824 | screen.machine().priority_bitmap.fill(0, cliprect); |
826 | 825 | |
827 | | |
826 | | |
828 | 827 | turbofrc_draw_sprites(screen.machine(), bitmap, cliprect, 0, -1); |
829 | 828 | turbofrc_draw_sprites(screen.machine(), bitmap, cliprect, 0, 0); |
830 | 829 | return 0; |
831 | 830 | } |
832 | 831 | |
833 | ||
832 | ||
834 | 833 | { |
835 | aerofgt_state *state = screen.machine().driver_data<aerofgt_state>(); | |
836 | 834 | int i, scrolly; |
837 | 835 | |
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; | |
840 | 838 | 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); | |
843 | 841 | |
844 | | |
842 | | |
845 | 843 | pspikesb_draw_sprites(screen.machine(), bitmap, cliprect); |
846 | 844 | return 0; |
847 | 845 | } |
848 | 846 | |
849 | ||
847 | ||
850 | 848 | { |
851 | aerofgt_state *state = screen.machine().driver_data<aerofgt_state>(); | |
852 | 849 | int i, scrolly; |
853 | 850 | int y, x; |
854 | 851 | int count; |
855 | 852 | gfx_element *gfx = screen.machine().gfx[0]; |
856 | 853 | |
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; | |
859 | 856 | |
860 | 857 | 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); | |
863 | 860 | |
864 | | |
861 | | |
865 | 862 | spikes91_draw_sprites(screen.machine(), bitmap, cliprect); |
866 | 863 | |
867 | 864 | /* we could use a tilemap, but it's easier to just do it here */ |
r17967 | r17968 | |
870 | 867 | { |
871 | 868 | for (x = 0; x < 64; x++) |
872 | 869 | { |
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; | |
875 | 872 | drawgfx_transpen(bitmap,cliprect,gfx, |
876 | 873 | tileno, |
877 | 874 | colour>>13, |
r17967 | r17968 | |
887 | 884 | return 0; |
888 | 885 | } |
889 | 886 | |
890 | ||
887 | ||
891 | 888 | { |
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); | |
897 | 893 | |
898 | 894 | screen.machine().priority_bitmap.fill(0, cliprect); |
899 | 895 | |
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); | |
902 | 898 | |
903 | 899 | /* we use the priority buffer so sprites are drawn front to back */ |
904 | 900 | turbofrc_draw_sprites(screen.machine(), bitmap, cliprect, 1, -1); |
r17967 | r17968 | |
908 | 904 | return 0; |
909 | 905 | } |
910 | 906 | |
911 | ||
907 | ||
912 | 908 | { |
913 | aerofgt_state *state = screen.machine().driver_data<aerofgt_state>(); | |
914 | 909 | int i, scrolly; |
915 | 910 | |
916 | | |
911 | | |
917 | 912 | scrolly = 0; |
918 | 913 | 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); | |
923 | 918 | |
924 | 919 | screen.machine().priority_bitmap.fill(0, cliprect); |
925 | 920 | |
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); | |
928 | 923 | |
929 | 924 | /* we use the priority buffer so sprites are drawn front to back */ |
930 | 925 | spinlbrk_draw_sprites(screen.machine(), bitmap, cliprect, 0, 0); |
r17967 | r17968 | |
934 | 929 | return 0; |
935 | 930 | } |
936 | 931 | |
937 | ||
932 | ||
938 | 933 | { |
939 | aerofgt_state *state = screen.machine().driver_data<aerofgt_state>(); | |
940 | 934 | int i, scrolly; |
941 | 935 | |
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; | |
944 | 938 | 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); | |
950 | 944 | |
951 | 945 | screen.machine().priority_bitmap.fill(0, cliprect); |
952 | 946 | |
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); | |
955 | 949 | |
956 | 950 | /* we use the priority buffer so sprites are drawn front to back */ |
957 | 951 | turbofrc_draw_sprites(screen.machine(), bitmap, cliprect, 1, -1); //ship |
r17967 | r17968 | |
961 | 955 | return 0; |
962 | 956 | } |
963 | 957 | |
964 | ||
958 | ||
965 | 959 | { |
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); | |
971 | 964 | |
972 | 965 | screen.machine().priority_bitmap.fill(0, cliprect); |
973 | 966 | |
974 | | |
967 | | |
975 | 968 | |
976 | 969 | aerofgt_draw_sprites(screen.machine(), bitmap, cliprect, 0); |
977 | 970 | aerofgt_draw_sprites(screen.machine(), bitmap, cliprect, 1); |
978 | 971 | |
979 | | |
972 | | |
980 | 973 | |
981 | 974 | aerofgt_draw_sprites(screen.machine(), bitmap, cliprect, 2); |
982 | 975 | aerofgt_draw_sprites(screen.machine(), bitmap, cliprect, 3); |
r17967 | r17968 | |
984 | 977 | } |
985 | 978 | |
986 | 979 | |
987 | ||
980 | ||
988 | 981 | { |
989 | aerofgt_state *state = screen.machine().driver_data<aerofgt_state>(); | |
990 | 982 | int i, scrolly; |
991 | 983 | |
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; | |
994 | 986 | 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); | |
999 | 991 | |
1000 | 992 | screen.machine().priority_bitmap.fill(0, cliprect); |
1001 | 993 | |
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); | |
1004 | 996 | |
1005 | 997 | /* we use the priority buffer so sprites are drawn front to back */ |
1006 | 998 | aerfboot_draw_sprites(screen.machine(), bitmap, cliprect); |
1007 | 999 | return 0; |
1008 | 1000 | } |
1009 | 1001 | |
1010 | ||
1002 | ||
1011 | 1003 | { |
1012 | aerofgt_state *state = screen.machine().driver_data<aerofgt_state>(); | |
1013 | 1004 | int i, scrolly; |
1014 | 1005 | |
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; | |
1017 | 1008 | 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); | |
1023 | 1014 | |
1024 | 1015 | screen.machine().priority_bitmap.fill(0, cliprect); |
1025 | 1016 | |
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); | |
1028 | 1019 | |
1029 | 1020 | /* we use the priority buffer so sprites are drawn front to back */ |
1030 | 1021 | aerfboo2_draw_sprites(screen.machine(), bitmap, cliprect, 1, -1); //ship |
r17967 | r17968 | |
1034 | 1025 | return 0; |
1035 | 1026 | } |
1036 | 1027 | |
1037 | ||
1028 | ||
1038 | 1029 | { |
1039 | aerofgt_state *state = screen.machine().driver_data<aerofgt_state>(); | |
1040 | 1030 | int i, scrolly; |
1041 | 1031 | |
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; | |
1044 | 1034 | 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); | |
1047 | 1037 | |
1048 | 1038 | screen.machine().priority_bitmap.fill(0, cliprect); |
1049 | 1039 | |
1050 | if ( | |
1040 | if ( | |
1051 | 1041 | { |
1052 | 1042 | wbbc97_draw_bitmap(screen.machine(), bitmap); |
1053 | | |
1043 | | |
1054 | 1044 | } |
1055 | 1045 | else |
1056 | 1046 | { |
1057 | | |
1047 | | |
1058 | 1048 | } |
1059 | 1049 | |
1060 | 1050 | turbofrc_draw_sprites(screen.machine(), bitmap, cliprect, 0, -1); |
r17967 | r17968 | |
---|---|---|
1660 | 1660 | screen->register_screen_bitmap(m_lcdbitmap); |
1661 | 1661 | } |
1662 | 1662 | |
1663 | ||
1663 | ||
1664 | 1664 | { |
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); | |
1667 | 1666 | return 0; |
1668 | 1667 | } |
1669 | 1668 | |
1670 | ||
1669 | ||
1671 | 1670 | { |
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); | |
1674 | 1672 | return 0; |
1675 | 1673 | } |
r17967 | r17968 | |
---|---|---|
36 | 36 | } |
37 | 37 | |
38 | 38 | |
39 | ||
39 | ||
40 | 40 | { |
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; | |
43 | 42 | |
44 | 43 | int x; |
45 | 44 | int y; |
r17967 | r17968 | |
47 | 46 | |
48 | 47 | /* draw color overlay foreground and background */ |
49 | 48 | |
50 | if ( | |
49 | if ( | |
51 | 50 | { |
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, | |
54 | 53 | 1, 1, |
55 | 54 | 0, 16, |
56 | 55 | 0x40000, |
57 | 56 | 0x40000); |
58 | 57 | |
59 | drawgfxzoom_opaque( | |
58 | drawgfxzoom_opaque( | |
60 | 59 | 0, 0, |
61 | 60 | 1, 1, |
62 | 61 | 0, 16, |
r17967 | r17968 | |
65 | 64 | } |
66 | 65 | else |
67 | 66 | { |
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, | |
70 | 69 | 0, 0, |
71 | 70 | 0, 0, |
72 | 71 | 0x40000, |
73 | 72 | 0x40000); |
74 | 73 | |
75 | drawgfxzoom_opaque( | |
74 | drawgfxzoom_opaque( | |
76 | 75 | 0, 0, |
77 | 76 | 0, 0, |
78 | 77 | 0, 0, |
r17967 | r17968 | |
82 | 81 | |
83 | 82 | /* the ball has a fixed color */ |
84 | 83 | |
85 | for (y = | |
84 | for (y = | |
86 | 85 | { |
87 | for (x = | |
86 | for (x = | |
88 | 87 | { |
89 | 88 | if (y < 256 && x < 256) |
90 | 89 | { |
91 | | |
90 | | |
92 | 91 | } |
93 | 92 | } |
94 | 93 | } |
r17967 | r17968 | |
99 | 98 | { |
100 | 99 | UINT16* p = &bitmap.pix16(y); |
101 | 100 | |
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); | |
104 | 103 | |
105 | 104 | for (x = 0; x < 256; x += 8) |
106 | 105 | { |
r17967 | r17968 | |
---|---|---|
218 | 218 | } |
219 | 219 | } |
220 | 220 | |
221 | ||
221 | ||
222 | 222 | { |
223 | docastle_state *state = screen.machine().driver_data<docastle_state>(); | |
224 | 223 | |
225 | | |
224 | | |
226 | 225 | draw_sprites(screen.machine(), bitmap, cliprect); |
227 | | |
226 | | |
228 | 227 | return 0; |
229 | 228 | } |
r17967 | r17968 | |
---|---|---|
249 | 249 | * |
250 | 250 | *************************************/ |
251 | 251 | |
252 | static | |
252 | UINT32 mystston_state::screen_update_mystston(screen_device &screen, bitmap_ind | |
253 | 253 | { |
254 | mystston_state *state = screen.machine().driver_data<mystston_state>(); | |
255 | 254 | |
256 | int flip = (* | |
255 | int flip = (* | |
257 | 256 | |
258 | set_palette(screen.machine(), | |
257 | set_palette(screen.machine(), | |
259 | 258 | |
260 | 259 | screen.machine().tilemap().mark_all_dirty(); |
261 | | |
260 | | |
262 | 261 | screen.machine().tilemap().set_flip_all(flip ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0); |
263 | 262 | |
264 | | |
263 | | |
265 | 264 | draw_sprites(bitmap, cliprect, screen.machine().gfx[2], flip); |
266 | | |
265 | | |
267 | 266 | |
268 | 267 | return 0; |
269 | 268 | } |
r17967 | r17968 | |
325 | 324 | |
326 | 325 | MCFG_SCREEN_ADD("screen", RASTER) |
327 | 326 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
328 | MCFG_SCREEN_UPDATE_ | |
327 | MCFG_SCREEN_UPDATE_DR | |
329 | 328 | MACHINE_CONFIG_END |
r17967 | r17968 | |
---|---|---|
163 | 163 | } |
164 | 164 | |
165 | 165 | |
166 | ||
166 | ||
167 | 167 | { |
168 | mainsnk_state *state = screen.machine().driver_data<mainsnk_state>(); | |
169 | 168 | |
170 | | |
169 | | |
171 | 170 | draw_sprites(screen.machine(), bitmap, cliprect, 0, 0); |
172 | | |
171 | | |
173 | 172 | |
174 | 173 | return 0; |
175 | 174 | } |
r17967 | r17968 | |
---|---|---|
72 | 72 | * |
73 | 73 | *************************************/ |
74 | 74 | |
75 | ||
75 | ||
76 | 76 | { |
77 | 77 | atarimo_rect_list rectlist; |
78 | 78 | bitmap_ind16 *mobitmap; |
r17967 | r17968 | |
---|---|---|
276 | 276 | } |
277 | 277 | } |
278 | 278 | |
279 | ||
279 | ||
280 | 280 | { |
281 | senjyo_state *state = screen.machine().driver_data<senjyo_state>(); | |
282 | 281 | int i; |
283 | 282 | |
284 | 283 | |
r17967 | r17968 | |
287 | 286 | palette_set_color(screen.machine(),513,MAKE_RGB(0xff,0xff,0x00)); /* yellow for player */ |
288 | 287 | |
289 | 288 | { |
290 | int flip = | |
289 | int flip = | |
291 | 290 | int scrollx,scrolly; |
292 | 291 | |
293 | 292 | for (i = 0;i < 32;i++) |
294 | | |
293 | | |
295 | 294 | |
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]; | |
298 | 297 | if (flip) |
299 | 298 | 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); | |
302 | 301 | |
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 */ | |
306 | 305 | { |
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]; | |
309 | 308 | } |
310 | 309 | if (flip) |
311 | 310 | 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); | |
314 | 313 | |
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]; | |
317 | 316 | if (flip) |
318 | 317 | 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); | |
321 | 320 | } |
322 | 321 | |
323 | 322 | draw_bgbitmap(screen.machine(), bitmap, cliprect); |
324 | 323 | draw_sprites(screen.machine(), bitmap, cliprect, 0); |
325 | | |
324 | | |
326 | 325 | draw_sprites(screen.machine(), bitmap, cliprect, 1); |
327 | | |
326 | | |
328 | 327 | draw_sprites(screen.machine(), bitmap, cliprect, 2); |
329 | | |
328 | | |
330 | 329 | draw_sprites(screen.machine(), bitmap, cliprect, 3); |
331 | | |
330 | | |
332 | 331 | draw_radar(screen.machine(), bitmap, cliprect); |
333 | 332 | |
334 | 333 | #if 0 |
335 | 334 | { |
336 | 335 | char baf[80]; |
337 | UINT8 *senjyo_scrolly3 = | |
336 | UINT8 *senjyo_scrolly3 = | |
338 | 337 | |
339 | 338 | sprintf(baf,"%02x %02x %02x %02x %02x %02x %02x %02x", |
340 | 339 | senjyo_scrolly3[0x00], |
r17967 | r17968 | |
---|---|---|
138 | 138 | } |
139 | 139 | } |
140 | 140 | |
141 | ||
141 | ||
142 | 142 | { |
143 | yiear_state *state = screen.machine().driver_data<yiear_state>(); | |
144 | 143 | |
145 | | |
144 | | |
146 | 145 | draw_sprites(screen.machine(), bitmap, cliprect); |
147 | 146 | return 0; |
148 | 147 | } |
r17967 | r17968 | |
---|---|---|
438 | 438 | |
439 | 439 | |
440 | 440 | ******************************************************************************/ |
441 | ||
441 | ||
442 | 442 | { |
443 | nbmj9195_state *state = screen.machine().driver_data<nbmj9195_state>(); | |
444 | 443 | int i; |
445 | 444 | int x, y; |
446 | 445 | int scrolly[2]; |
447 | 446 | |
448 | if ( | |
447 | if ( | |
449 | 448 | { |
450 | 449 | int width = screen.width(); |
451 | 450 | int height = screen.height(); |
452 | 451 | |
453 | | |
452 | | |
454 | 453 | |
455 | 454 | for (y = 0; y < height; y++) |
456 | 455 | for (x = 0; x < width; x++) |
457 | 456 | { |
458 | 457 | update_pixel(screen.machine(), 0, x, y); |
459 | 458 | |
460 | if ( | |
459 | if ( | |
461 | 460 | update_pixel(screen.machine(), 1, x, y); |
462 | 461 | } |
463 | 462 | } |
464 | 463 | |
465 | 464 | for (i = 0; i < 2; i++) |
466 | 465 | { |
467 | if ( | |
466 | if ( | |
468 | 467 | { |
469 | for ( ; | |
468 | for ( ; | |
470 | 469 | { |
471 | | |
470 | | |
472 | 471 | } |
473 | scrolly[i] = (- | |
472 | scrolly[i] = (- | |
474 | 473 | } |
475 | 474 | else |
476 | 475 | { |
477 | for ( ; | |
476 | for ( ; | |
478 | 477 | { |
479 | | |
478 | | |
480 | 479 | } |
481 | scrolly[i] = | |
480 | scrolly[i] = | |
482 | 481 | } |
483 | | |
482 | | |
484 | 483 | } |
485 | 484 | |
486 | if ( | |
485 | if ( | |
487 | 486 | // nbmj9195 1layer |
488 | copyscrollbitmap(bitmap, | |
487 | copyscrollbitmap(bitmap, | |
489 | 488 | else |
490 | 489 | bitmap.fill(0x0ff); |
491 | 490 | |
492 | if ( | |
491 | if ( | |
493 | 492 | { |
494 | if ( | |
493 | if ( | |
495 | 494 | // nbmj9195 2layer |
496 | copyscrollbitmap_trans(bitmap, | |
495 | copyscrollbitmap_trans(bitmap, | |
497 | 496 | |
498 | if ( | |
497 | if ( | |
499 | 498 | // nbmj9195 nb22090 2layer |
500 | copyscrollbitmap_trans(bitmap, | |
499 | copyscrollbitmap_trans(bitmap, | |
501 | 500 | } |
502 | 501 | return 0; |
503 | 502 | } |
r17967 | r17968 | |
---|---|---|
181 | 181 | save_item(NAME(m_sprites_x_offset)); |
182 | 182 | } |
183 | 183 | |
184 | ||
184 | ||
185 | 185 | { |
186 | sslam_state *state = screen.machine().driver_data<sslam_state>(); | |
187 | 186 | |
188 | if (!( | |
187 | if (!( | |
189 | 188 | { |
190 | 189 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
191 | 190 | return 0; |
192 | 191 | } |
193 | 192 | |
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); | |
200 | 199 | |
201 | | |
200 | | |
202 | 201 | |
203 | 202 | /* remove wraparound from the tilemap (used on title screen) */ |
204 | if ( | |
203 | if ( | |
205 | 204 | { |
206 | 205 | rectangle md_clip; |
207 | 206 | md_clip.min_x = cliprect.min_x; |
208 | md_clip.max_x = cliprect.max_x - ( | |
207 | md_clip.max_x = cliprect.max_x - ( | |
209 | 208 | md_clip.min_y = cliprect.min_y; |
210 | 209 | md_clip.max_y = cliprect.max_y; |
211 | 210 | |
212 | | |
211 | | |
213 | 212 | } |
214 | 213 | else |
215 | 214 | { |
216 | | |
215 | | |
217 | 216 | } |
218 | 217 | |
219 | 218 | draw_sprites(screen.machine(), bitmap,cliprect); |
220 | | |
219 | | |
221 | 220 | return 0; |
222 | 221 | } |
223 | 222 | |
224 | ||
223 | ||
225 | 224 | { |
226 | sslam_state *state = screen.machine().driver_data<sslam_state>(); | |
227 | 225 | |
228 | if (!( | |
226 | if (!( | |
229 | 227 | { |
230 | 228 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
231 | 229 | return 0; |
232 | 230 | } |
233 | 231 | |
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); | |
236 | 234 | |
237 | | |
235 | | |
238 | 236 | draw_sprites(screen.machine(), bitmap,cliprect); |
239 | 237 | return 0; |
240 | 238 | } |
r17967 | r17968 | |
---|---|---|
171 | 171 | } |
172 | 172 | } |
173 | 173 | |
174 | ||
174 | ||
175 | 175 | { |
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); | |
178 | 177 | draw_sprites(screen.machine(), bitmap, cliprect); |
179 | 178 | return 0; |
180 | 179 | } |
r17967 | r17968 | |
---|---|---|
25 | 25 | save_pointer(NAME(m_spriteram), 0x2000/2); |
26 | 26 | } |
27 | 27 | |
28 | ||
28 | ||
29 | 29 | { |
30 | simpl156_state *state = screen.machine().driver_data<simpl156_state>(); | |
31 | 30 | |
32 | 31 | screen.machine().priority_bitmap.fill(0); |
33 | 32 | |
34 | deco16ic_pf_update( | |
33 | deco16ic_pf_update( | |
35 | 34 | |
36 | 35 | bitmap.fill(256, cliprect); |
37 | 36 | |
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); | |
40 | 39 | |
41 | 40 | //FIXME: flip_screen_x should not be written! |
42 | | |
41 | | |
43 | 42 | |
44 | screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, | |
43 | screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, | |
45 | 44 | return 0; |
46 | 45 | } |
r17967 | r17968 | |
---|---|---|
215 | 215 | |
216 | 216 | /*****************************************************************************/ |
217 | 217 | |
218 | ||
218 | ||
219 | 219 | { |
220 | hcastle_state *state = screen.machine().driver_data<hcastle_state>(); | |
221 | 220 | address_space &space = screen.machine().driver_data()->generic_space(); |
222 | 221 | |
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); | |
231 | 230 | |
232 | 231 | set_pens(screen.machine()); |
233 | 232 | |
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); | |
236 | 235 | |
237 | 236 | if (ctrl_1_3 & 0x01) |
238 | | |
237 | | |
239 | 238 | if (ctrl_2_3 & 0x01) |
240 | | |
239 | | |
241 | 240 | |
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(); | |
244 | 243 | |
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(); | |
247 | 246 | |
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; | |
250 | 249 | |
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)); | |
255 | 254 | |
256 | 255 | // /* Sprite priority */ |
257 | 256 | // if (ctrl_1_3 & 0x20) |
258 | if (( | |
257 | if (( | |
259 | 258 | { |
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); | |
264 | 263 | } |
265 | 264 | else |
266 | 265 | { |
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); | |
271 | 270 | } |
272 | 271 | return 0; |
273 | 272 | } |
r17967 | r17968 | |
---|---|---|
124 | 124 | } |
125 | 125 | } |
126 | 126 | |
127 | ||
127 | ||
128 | 128 | { |
129 | deadang_state *state = screen.machine().driver_data<deadang_state>(); | |
130 | 129 | /* 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) ); | |
137 | 136 | |
138 | 137 | /* Control byte: |
139 | 138 | 0x01: Background playfield disable |
r17967 | r17968 | |
145 | 144 | 0x40: Flipscreen |
146 | 145 | 0x80: Always set? |
147 | 146 | */ |
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 ); | |
152 | 151 | |
153 | 152 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
154 | 153 | 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); | |
160 | 159 | return 0; |
161 | 160 | } |
r17967 | r17968 | |
---|---|---|
8 | 8 | #include "includes/copsnrob.h" |
9 | 9 | |
10 | 10 | |
11 | ||
11 | ||
12 | 12 | { |
13 | copsnrob_state *state = screen.machine().driver_data<copsnrob_state>(); | |
14 | 13 | int offs, x, y; |
15 | 14 | |
16 | 15 | /* redrawing the entire display is faster in this case */ |
17 | 16 | |
18 | for (offs = | |
17 | for (offs = | |
19 | 18 | { |
20 | 19 | int sx,sy; |
21 | 20 | |
r17967 | r17968 | |
23 | 22 | sy = offs / 32; |
24 | 23 | |
25 | 24 | drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0], |
26 | | |
25 | | |
27 | 26 | 0,0, |
28 | 27 | 8*sx,8*sy); |
29 | 28 | } |
30 | 29 | |
31 | 30 | |
32 | 31 | /* Draw the cars. Positioning was based on a screen shot */ |
33 | if ( | |
32 | if ( | |
34 | 33 | drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[1], |
35 | | |
34 | | |
36 | 35 | 1,0, |
37 | 0xe4,256 - | |
36 | 0xe4,256 - | |
38 | 37 | |
39 | if ( | |
38 | if ( | |
40 | 39 | drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[1], |
41 | | |
40 | | |
42 | 41 | 1,0, |
43 | 0xc4,256 - | |
42 | 0xc4,256 - | |
44 | 43 | |
45 | if ( | |
44 | if ( | |
46 | 45 | drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[1], |
47 | | |
46 | | |
48 | 47 | 0,0, |
49 | 0x24,256 - | |
48 | 0x24,256 - | |
50 | 49 | |
51 | if ( | |
50 | if ( | |
52 | 51 | drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[1], |
53 | | |
52 | | |
54 | 53 | 0,0, |
55 | 0x04,256 - | |
54 | 0x04,256 - | |
56 | 55 | |
57 | 56 | |
58 | 57 | /* Draw the beer truck. Positioning was based on a screen shot. |
r17967 | r17968 | |
70 | 69 | /* y is going up the screen, but the truck window RAM locations |
71 | 70 | go down the screen. */ |
72 | 71 | |
73 | if ( | |
72 | if ( | |
74 | 73 | { |
75 | 74 | /* The hardware only uses the low 5 bits of the truck image line |
76 | 75 | sync register. */ |
77 | if (( | |
76 | if (( | |
78 | 77 | { |
79 | 78 | /* We've hit a truck's back end, so draw the truck. The front |
80 | 79 | end may be off the top of the screen, but we don't care. */ |
r17967 | r17968 | |
86 | 85 | truck twice. */ |
87 | 86 | y += 31; |
88 | 87 | } |
89 | else if (( | |
88 | else if (( | |
90 | 89 | { |
91 | 90 | /* We missed a truck's back end (it was off the bottom of the |
92 | 91 | screen) but have hit its front end, so draw the truck. */ |
r17967 | r17968 | |
107 | 106 | { |
108 | 107 | int bullet, mask1, mask2, val; |
109 | 108 | |
110 | val = | |
109 | val = | |
111 | 110 | |
112 | 111 | // Check for the most common case |
113 | 112 | if (!(val & 0x0f)) |
r17967 | r17968 | |
122 | 121 | if (val & mask1) |
123 | 122 | { |
124 | 123 | for (y = cliprect.min_y; y <= cliprect.max_y; y++) |
125 | if ( | |
124 | if ( | |
126 | 125 | bitmap.pix16(y, 256 - x) = 1; |
127 | 126 | } |
128 | 127 |
r17967 | r17968 | |
---|---|---|
493 | 493 | Draw the game screen in the given bitmap_ind16. |
494 | 494 | ***************************************************************************/ |
495 | 495 | |
496 | ||
496 | ||
497 | 497 | { |
498 | twincobr_state *state = screen.machine().driver_data<twincobr_state>(); | |
499 | 498 | twincobr_log_vram(screen.machine()); |
500 | 499 | |
501 | if ( | |
500 | if ( | |
502 | 501 | |
503 | 502 | bitmap.fill(0, cliprect); |
504 | 503 | |
505 | | |
504 | | |
506 | 505 | draw_sprites(screen.machine(), bitmap,cliprect,0x0400); |
507 | | |
506 | | |
508 | 507 | draw_sprites(screen.machine(), bitmap,cliprect,0x0800); |
509 | | |
508 | | |
510 | 509 | draw_sprites(screen.machine(), bitmap,cliprect,0x0c00); |
511 | 510 | return 0; |
512 | 511 | } |
r17967 | r17968 | |
---|---|---|
233 | 233 | } |
234 | 234 | |
235 | 235 | |
236 | ||
236 | ||
237 | 237 | { |
238 | bking_state *state = screen.machine().driver_data<bking_state>(); | |
239 | 238 | |
240 | | |
239 | | |
241 | 240 | |
242 | 241 | /* draw the balls */ |
243 | 242 | 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, | |
246 | 245 | 0, 0, |
247 | | |
246 | | |
248 | 247 | |
249 | 248 | 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, | |
252 | 251 | 0, 0, |
253 | | |
252 | | |
254 | 253 | |
255 | 254 | /* draw the crow */ |
256 | 255 | 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); | |
261 | 260 | return 0; |
262 | 261 | } |
263 | 262 | |
264 | 263 | |
265 | ||
264 | void | |
266 | 265 | { |
267 | 266 | // rising edge |
268 | if ( | |
267 | if (st | |
269 | 268 | { |
270 | bking_state *state = screen.machine().driver_data<bking_state>(); | |
271 | 269 | const rectangle rect(0, 7, 0, 15); |
272 | 270 | |
273 | 271 | int xld = 0; |
r17967 | r17968 | |
275 | 273 | |
276 | 274 | UINT32 latch = 0; |
277 | 275 | |
278 | if ( | |
276 | if ( | |
279 | 277 | { |
280 | xld = state->m_xld1; | |
281 | yld = state->m_yld1; | |
278 | xld = m_xld1; | |
279 | yld = m_yld1; | |
282 | 280 | |
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, | |
285 | 283 | 0, |
286 | 284 | 0, 0, |
287 | 285 | 0, 0); |
r17967 | r17968 | |
289 | 287 | latch = 0x0c00; |
290 | 288 | } |
291 | 289 | |
292 | if ( | |
290 | if ( | |
293 | 291 | { |
294 | xld = state->m_xld2; | |
295 | yld = state->m_yld2; | |
292 | xld = m_xld2; | |
293 | yld = m_yld2; | |
296 | 294 | |
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, | |
299 | 297 | 0, |
300 | 298 | 0, 0, |
301 | 299 | 0, 0); |
r17967 | r17968 | |
303 | 301 | latch = 0x0400; |
304 | 302 | } |
305 | 303 | |
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); | |
308 | 306 | |
309 | | |
307 | | |
310 | 308 | |
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); | |
313 | 311 | |
314 | 312 | if (latch != 0) |
315 | 313 | { |
316 | const UINT8* MASK = screen.machine().root_device().memregion("user1")->base() + 8 * | |
314 | const UINT8* MASK = screen.machine().root_device().memregion("user1")->base() + 8 * | |
317 | 315 | |
318 | 316 | int x; |
319 | 317 | int y; |
320 | 318 | |
321 | 319 | for (y = rect.min_y; y <= rect.max_y; y++) |
322 | 320 | { |
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); | |
325 | 323 | |
326 | 324 | for (x = rect.min_x; x <= rect.max_x; x++) |
327 | 325 | { |
r17967 | r17968 | |
330 | 328 | int col = (xld + x) / 8 + 1; |
331 | 329 | int row = (yld + y) / 8 + 0; |
332 | 330 | |
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; | |
335 | 333 | |
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; | |
340 | 338 | |
341 | 339 | return; |
342 | 340 | } |
r17967 | r17968 | |
---|---|---|
157 | 157 | |
158 | 158 | ***************************************************************************/ |
159 | 159 | |
160 | ||
160 | ||
161 | 161 | { |
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); | |
165 | 164 | return 0; |
166 | 165 | } |
r17967 | r17968 | |
---|---|---|
42 | 42 | |
43 | 43 | ***************************************************************************/ |
44 | 44 | |
45 | ||
45 | ||
46 | 46 | { |
47 | battlnts_state *state = screen.machine().driver_data<battlnts_state>(); | |
48 | 47 | |
49 | k007342_tilemap_update( | |
48 | k007342_tilemap_update( | |
50 | 49 | |
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); | |
54 | 53 | return 0; |
55 | 54 | } |
r17967 | r17968 | |
---|---|---|
365 | 365 | * |
366 | 366 | *************************************/ |
367 | 367 | |
368 | ||
368 | ||
369 | 369 | { |
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]; | |
372 | 371 | int y; |
373 | 372 | |
374 | 373 | /* render the screen from the bitmap */ |
375 | 374 | for (y = 0; y < BITMAP_HEIGHT; y++) |
376 | 375 | { |
377 | 376 | /* 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); | |
380 | 379 | |
381 | 380 | /* flipped case */ |
382 | 381 | else |
r17967 | r17968 | |
384 | 383 | UINT8 scanline[BITMAP_WIDTH]; |
385 | 384 | int x; |
386 | 385 | for (x = 0; x < BITMAP_WIDTH; x++) |
387 | scanline[BITMAP_WIDTH - 1 - x] = | |
386 | scanline[BITMAP_WIDTH - 1 - x] = | |
388 | 387 | draw_scanline8(bitmap, 0, BITMAP_HEIGHT - 1 - y, BITMAP_WIDTH, scanline, pens); |
389 | 388 | } |
390 | 389 | } |
r17967 | r17968 | |
---|---|---|
137 | 137 | |
138 | 138 | ***************************************************************************/ |
139 | 139 | |
140 | ||
140 | ||
141 | 141 | { |
142 | galpani2_state *state = screen.machine().driver_data<galpani2_state>(); | |
143 | 142 | int layers_ctrl = -1; |
144 | 143 | |
145 | 144 | #ifdef MAME_DEBUG |
r17967 | r17968 | |
161 | 160 | { |
162 | 161 | int x = 0; |
163 | 162 | int y = 0; |
164 | copyscrollbitmap_trans(bitmap, * | |
163 | copyscrollbitmap_trans(bitmap, * | |
165 | 164 | 1, &x, 1, &y, |
166 | 165 | cliprect,0x4200 + 0); |
167 | 166 | } |
r17967 | r17968 | |
174 | 173 | |
175 | 174 | if (layers_ctrl & 0x2) |
176 | 175 | { |
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], | |
180 | 179 | 1, &x, 1, &y, |
181 | 180 | cliprect,0x4000 + 0); |
182 | 181 | } |
183 | 182 | |
184 | 183 | if (layers_ctrl & 0x4) |
185 | 184 | { |
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], | |
189 | 188 | 1, &x, 1, &y, |
190 | 189 | cliprect,0x4000 + 0); |
191 | 190 | } |
192 | 191 | |
193 | if (layers_ctrl & 0x8) | |
192 | if (layers_ctrl & 0x8) | |
194 | 193 | return 0; |
195 | 194 | } |
r17967 | r17968 | |
---|---|---|
139 | 139 | } |
140 | 140 | |
141 | 141 | |
142 | ||
142 | ||
143 | 143 | { |
144 | taitoo_state *state = screen.machine().driver_data<taitoo_state>(); | |
145 | 144 | |
146 | tc0080vco_tilemap_update( | |
145 | tc0080vco_tilemap_update( | |
147 | 146 | |
148 | 147 | bitmap.fill(0, cliprect); |
149 | 148 | |
150 | tc0080vco_tilemap_draw( | |
149 | tc0080vco_tilemap_draw( | |
151 | 150 | |
152 | 151 | parentj_draw_sprites(screen.machine(), bitmap, cliprect, 0); |
153 | 152 | parentj_draw_sprites(screen.machine(), bitmap, cliprect, 1); |
154 | 153 | |
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); | |
157 | 156 | |
158 | 157 | return 0; |
159 | 158 | } |
r17967 | r17968 | |
---|---|---|
176 | 176 | |
177 | 177 | ***************************************************************************/ |
178 | 178 | |
179 | ||
179 | ||
180 | 180 | { |
181 | labyrunr_state *state = screen.machine().driver_data<labyrunr_state>(); | |
182 | 181 | address_space &space = screen.machine().driver_data()->generic_space(); |
183 | UINT8 ctrl_0 = k007121_ctrlram_r( | |
182 | UINT8 ctrl_0 = k007121_ctrlram_r( | |
184 | 183 | rectangle finalclip0, finalclip1; |
185 | 184 | |
186 | 185 | set_pens(screen.machine()); |
r17967 | r17968 | |
188 | 187 | screen.machine().priority_bitmap.fill(0, cliprect); |
189 | 188 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
190 | 189 | |
191 | if (~k007121_ctrlram_r( | |
190 | if (~k007121_ctrlram_r( | |
192 | 191 | { |
193 | 192 | int i; |
194 | 193 | |
195 | finalclip0 = state->m_clip0; | |
196 | finalclip1 = state->m_clip1; | |
194 | finalclip0 = m_clip0; | |
195 | finalclip1 = m_clip1; | |
197 | 196 | |
198 | 197 | finalclip0 &= cliprect; |
199 | 198 | finalclip1 &= cliprect; |
200 | 199 | |
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); | |
203 | 202 | |
204 | 203 | for(i = 0; i < 32; i++) |
205 | 204 | { |
206 | 205 | /* 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]); | |
209 | 208 | else |
210 | | |
209 | | |
211 | 210 | } |
212 | 211 | |
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); | |
215 | 214 | /* we ignore the transparency because layer1 is drawn only at the top of the screen also covering sprites */ |
216 | | |
215 | | |
217 | 216 | } |
218 | 217 | else |
219 | 218 | { |
r17967 | r17968 | |
224 | 223 | finalclip0.min_y = finalclip1.min_y = cliprect.min_y; |
225 | 224 | finalclip0.max_y = finalclip1.max_y = cliprect.max_y; |
226 | 225 | |
227 | if(k007121_ctrlram_r( | |
226 | if(k007121_ctrlram_r( | |
228 | 227 | { |
229 | 228 | finalclip0.min_x = cliprect.max_x - ctrl_0 + 8; |
230 | 229 | finalclip0.max_x = cliprect.max_x; |
r17967 | r17968 | |
270 | 269 | finalclip3.max_x = 40 - ctrl_0 - 8; |
271 | 270 | } |
272 | 271 | |
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); | |
275 | 274 | |
276 | | |
275 | | |
277 | 276 | if(use_clip3[0]) |
278 | | |
277 | | |
279 | 278 | |
280 | | |
279 | | |
281 | 280 | if(use_clip3[1]) |
282 | | |
281 | | |
283 | 282 | |
284 | k007121_sprites_draw( | |
283 | k007121_sprites_draw( | |
285 | 284 | } |
286 | 285 | return 0; |
287 | 286 | } |
r17967 | r17968 | |
---|---|---|
99 | 99 | m_coprocessor.context_ram = auto_alloc_array(machine(), UINT8, 0x400 ); |
100 | 100 | } |
101 | 101 | |
102 | SCREEN_UPDATE_IND16( thief ){ | |
103 | thief_state *state = screen.machine().driver_data<thief_state>(); | |
104 | UINT8 *videoram = state->m_videoram; | |
102 | UINT32 thief_state::screen_update_thief(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ | |
103 | UINT8 *videoram = m_videoram; | |
105 | 104 | UINT32 offs; |
106 | int flipscreen = | |
105 | int flipscreen = | |
107 | 106 | const UINT8 *source = videoram; |
108 | 107 | |
109 | 108 | if (tms9927_screen_reset(screen.machine().device("tms"))) |
r17967 | r17968 | |
112 | 111 | return 0; |
113 | 112 | } |
114 | 113 | |
115 | if( | |
114 | if( | |
116 | 115 | source += 0x2000*4; |
117 | 116 | |
118 | 117 | for( offs=0; offs<0x2000; offs++ ){ |
r17967 | r17968 | |
---|---|---|
155 | 155 | } |
156 | 156 | } |
157 | 157 | |
158 | ||
158 | ||
159 | 159 | { |
160 | ddragon3_state *state = screen.machine().driver_data<ddragon3_state>(); | |
161 | 160 | |
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); | |
166 | 165 | |
167 | if (( | |
166 | if (( | |
168 | 167 | { |
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); | |
171 | 170 | draw_sprites(screen.machine(), bitmap, cliprect); |
172 | 171 | } |
173 | else if (( | |
172 | else if (( | |
174 | 173 | { |
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); | |
177 | 176 | draw_sprites(screen.machine(), bitmap, cliprect); |
178 | 177 | } |
179 | 178 | else |
180 | 179 | { |
181 | | |
180 | | |
182 | 181 | draw_sprites(screen.machine(), bitmap, cliprect); |
183 | | |
182 | | |
184 | 183 | } |
185 | 184 | return 0; |
186 | 185 | } |
187 | 186 | |
188 | ||
187 | ||
189 | 188 | { |
190 | ddragon3_state *state = screen.machine().driver_data<ddragon3_state>(); | |
191 | 189 | |
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); | |
196 | 194 | |
197 | if( | |
195 | if( | |
198 | 196 | { |
199 | | |
197 | | |
200 | 198 | draw_sprites(screen.machine(), bitmap, cliprect); |
201 | | |
199 | | |
202 | 200 | } |
203 | 201 | else |
204 | 202 | { |
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); | |
207 | 205 | draw_sprites(screen.machine(), bitmap, cliprect); |
208 | 206 | } |
209 | 207 | return 0; |
r17967 | r17968 | |
---|---|---|
114 | 114 | } |
115 | 115 | |
116 | 116 | |
117 | ||
117 | ||
118 | 118 | { |
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; | |
121 | 120 | int i; |
122 | 121 | |
123 | | |
122 | | |
124 | 123 | |
125 | 124 | /* draw the sprites */ |
126 | 125 | |
r17967 | r17968 | |
137 | 136 | } |
138 | 137 | |
139 | 138 | |
140 | ||
139 | void | |
141 | 140 | { |
142 | 141 | // rising edge |
143 | if ( | |
142 | if (st | |
144 | 143 | { |
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; | |
147 | 145 | int i; |
148 | 146 | int j; |
149 | 147 | const rectangle &visarea = screen.machine().primary_screen->visible_area(); |
r17967 | r17968 | |
151 | 149 | /* |
152 | 150 | * Collisions are detected for both player cars: |
153 | 151 | * |
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 | |
156 | 154 | * |
157 | 155 | */ |
158 | 156 | |
r17967 | r17968 | |
169 | 167 | |
170 | 168 | /* check for sprite-tilemap collisions */ |
171 | 169 | |
172 | | |
170 | | |
173 | 171 | |
174 | drawgfx_transpen( | |
172 | drawgfx_transpen( | |
175 | 173 | get_sprite_code(video_ram, i), |
176 | 174 | 0, |
177 | 175 | 0, 0, |
178 | 176 | get_sprite_x(video_ram, i), |
179 | 177 | get_sprite_y(video_ram, i), 1); |
180 | 178 | |
181 | | |
179 | | |
182 | 180 | |
183 | 181 | /* check for sprite-sprite collisions */ |
184 | 182 | |
185 | 183 | for (j = 0; j < 4; j++) |
186 | 184 | if (j != i) |
187 | 185 | { |
188 | drawgfx_transpen( | |
186 | drawgfx_transpen( | |
189 | 187 | get_sprite_code(video_ram, j), |
190 | 188 | 1, |
191 | 189 | 0, 0, |
r17967 | r17968 | |
193 | 191 | get_sprite_y(video_ram, j), 0); |
194 | 192 | } |
195 | 193 | |
196 | drawgfx_transpen( | |
194 | drawgfx_transpen( | |
197 | 195 | get_sprite_code(video_ram, i), |
198 | 196 | 0, |
199 | 197 | 0, 0, |
200 | 198 | get_sprite_x(video_ram, i), |
201 | 199 | get_sprite_y(video_ram, i), 1); |
202 | 200 | |
203 | | |
201 | | |
204 | 202 | } |
205 | 203 | } |
206 | 204 | } |
r17967 | r17968 | |
---|---|---|
257 | 257 | * |
258 | 258 | *************************************/ |
259 | 259 | |
260 | ||
260 | ||
261 | 261 | { |
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 */ | |
265 | 264 | pen_t black = get_black_pen(screen.machine()); |
266 | 265 | int x, y, offs; |
267 | 266 | |
268 | 267 | /* draw the sprites */ |
269 | | |
268 | | |
270 | 269 | for (offs = 0; offs < 320/2; offs += 4) |
271 | 270 | { |
272 | 271 | int x = spriteaddr[offs + 3]; |
r17967 | r17968 | |
274 | 273 | int which = spriteaddr[offs]; |
275 | 274 | int color = spriteaddr[offs + 2] >> 7; |
276 | 275 | |
277 | drawgfx_transpen( | |
276 | drawgfx_transpen( | |
278 | 277 | } |
279 | 278 | |
280 | 279 | /* draw the bitmap to the screen, looping over Y */ |
r17967 | r17968 | |
283 | 282 | UINT16 *dst = &bitmap.pix16(y); |
284 | 283 | |
285 | 284 | /* if we're in the VBLANK region, just fill with black */ |
286 | if ( | |
285 | if ( | |
287 | 286 | { |
288 | 287 | for (x = cliprect.min_x; x <= cliprect.max_x; x++) |
289 | 288 | dst[x] = black; |
r17967 | r17968 | |
292 | 291 | /* non-VBLANK region: merge the sprites and the bitmap */ |
293 | 292 | else |
294 | 293 | { |
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; | |
297 | 296 | UINT8 *src; |
298 | 297 | |
299 | 298 | /* the "POTATO" chip does some magic here; this is just a guess */ |
300 | 299 | if (effy < 24) |
301 | 300 | effy = 24; |
302 | src = & | |
301 | src = & | |
303 | 302 | |
304 | 303 | /* loop over X */ |
305 | 304 | for (x = cliprect.min_x; x <= cliprect.max_x; x++) |
r17967 | r17968 | |
311 | 310 | /* otherwise, process normally */ |
312 | 311 | else |
313 | 312 | { |
314 | int effx = ( | |
313 | int effx = ( | |
315 | 314 | |
316 | 315 | /* low 4 bits = left pixel, high 4 bits = right pixel */ |
317 | 316 | UINT8 pix = (src[effx / 2] >> ((effx & 1) * 4)) & 0x0f; |
r17967 | r17968 | |
333 | 332 | prindex |= (mopix & 7) << 2; |
334 | 333 | prindex |= (mopix & 8) >> 2; |
335 | 334 | prindex |= (pix & 8) >> 3; |
336 | prvalue = | |
335 | prvalue = | |
337 | 336 | |
338 | 337 | /* Bit 1 of prvalue selects the low 4 bits of the final pixel */ |
339 | 338 | if (prvalue & 2) |
r17967 | r17968 | |
---|---|---|
45 | 45 | } |
46 | 46 | |
47 | 47 | |
48 | ||
48 | ||
49 | 49 | { |
50 | dragrace_state *state = screen.machine().driver_data<dragrace_state>(); | |
51 | 50 | int y; |
52 | 51 | |
53 | | |
52 | | |
54 | 53 | |
55 | 54 | for (y = 0; y < 256; y += 4) |
56 | 55 | { |
57 | 56 | rectangle rect = cliprect; |
58 | 57 | |
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; | |
63 | 62 | |
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); | |
66 | 65 | |
67 | 66 | if (rect.min_y < y + 0) rect.min_y = y + 0; |
68 | 67 | if (rect.max_y > y + 3) rect.max_y = y + 3; |
69 | 68 | |
70 | | |
69 | | |
71 | 70 | } |
72 | 71 | return 0; |
73 | 72 | } |
r17967 | r17968 | |
---|---|---|
76 | 76 | } |
77 | 77 | |
78 | 78 | |
79 | ||
79 | ||
80 | 80 | { |
81 | orbit_state *state = screen.machine().driver_data<orbit_state>(); | |
82 | 81 | |
83 | | |
82 | | |
84 | 83 | |
85 | | |
84 | | |
86 | 85 | |
87 | 86 | draw_sprites(screen.machine(), bitmap, cliprect); |
88 | 87 | return 0; |
r17967 | r17968 | |
---|---|---|
88 | 88 | } |
89 | 89 | |
90 | 90 | |
91 | ||
91 | ||
92 | 92 | { |
93 | ambush_state *state = screen.machine().driver_data<ambush_state>(); | |
94 | 93 | int offs; |
95 | 94 | |
96 | 95 | bitmap.fill(0, cliprect); |
r17967 | r17968 | |
99 | 98 | draw_chars(screen.machine(), bitmap, cliprect, 0x00); |
100 | 99 | |
101 | 100 | /* Draw the sprites. */ |
102 | for (offs = | |
101 | for (offs = | |
103 | 102 | { |
104 | 103 | int code, col, sx, sy, flipx, flipy, gfx; |
105 | 104 | |
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]; | |
108 | 107 | |
109 | 108 | if ( (sy == 0) || |
110 | 109 | (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)))) | |
113 | 112 | continue; /* prevent wraparound */ |
114 | 113 | |
115 | 114 | |
116 | code = ( | |
115 | code = ( | |
117 | 116 | |
118 | if ( | |
117 | if ( | |
119 | 118 | { |
120 | 119 | /* 16x16 sprites */ |
121 | 120 | gfx = 1; |
122 | 121 | |
123 | if (! | |
122 | if (! | |
124 | 123 | sy = 240 - sy; |
125 | 124 | else |
126 | 125 | sx = 240 - sx; |
r17967 | r17968 | |
131 | 130 | gfx = 0; |
132 | 131 | code <<= 2; |
133 | 132 | |
134 | if (! | |
133 | if (! | |
135 | 134 | sy = 248 - sy; |
136 | 135 | else |
137 | 136 | sx = 248 - sx; |
138 | 137 | } |
139 | 138 | |
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; | |
143 | 142 | |
144 | if ( | |
143 | if ( | |
145 | 144 | { |
146 | 145 | flipx = !flipx; |
147 | 146 | flipy = !flipy; |
148 | 147 | } |
149 | 148 | |
150 | 149 | drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[gfx], |
151 | code, col | ((* | |
150 | code, col | ((* | |
152 | 151 | flipx, flipy, |
153 | 152 | sx,sy,0); |
154 | 153 | } |
r17967 | r17968 | |
---|---|---|
343 | 343 | * |
344 | 344 | *************************************/ |
345 | 345 | |
346 | ||
346 | ||
347 | 347 | { |
348 | policetr_state *state = screen.machine().driver_data<policetr_state>(); | |
349 | 348 | int width = cliprect.width(); |
350 | 349 | int y; |
351 | 350 | |
352 | 351 | /* render all the scanlines from the dstbitmap to MAME's bitmap */ |
353 | 352 | for (y = cliprect.min_y; y <= cliprect.max_y; y++) |
354 | draw_scanline8(bitmap, cliprect.min_x, y, width, & | |
353 | draw_scanline8(bitmap, cliprect.min_x, y, width, & | |
355 | 354 | |
356 | 355 | return 0; |
357 | 356 | } |
r17967 | r17968 | |
---|---|---|
591 | 591 | |
592 | 592 | |
593 | 593 | |
594 | ||
594 | ||
595 | 595 | { |
596 | seibuspi_state *state = screen.machine().driver_data<seibuspi_state>(); | |
597 | 596 | 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]; | |
602 | 601 | } else { |
603 | 602 | back_rowscroll = NULL; |
604 | 603 | mid_rowscroll = NULL; |
605 | 604 | fore_rowscroll = NULL; |
606 | 605 | } |
607 | 606 | |
608 | if( | |
607 | if( | |
609 | 608 | bitmap.fill(0, cliprect); |
610 | 609 | |
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); | |
613 | 612 | |
614 | 613 | draw_sprites(screen.machine(), bitmap, cliprect, 0); |
615 | 614 | |
616 | 615 | // if fore layer is enabled, draw priority 1 sprites behind mid layer |
617 | if (!( | |
616 | if (!( | |
618 | 617 | draw_sprites(screen.machine(), bitmap, cliprect, 1); |
619 | 618 | |
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); | |
622 | 621 | |
623 | 622 | // if fore layer is disabled, draw priority 1 sprites above mid layer |
624 | if (( | |
623 | if (( | |
625 | 624 | draw_sprites(screen.machine(), bitmap, cliprect, 1); |
626 | 625 | |
627 | 626 | draw_sprites(screen.machine(), bitmap, cliprect, 2); |
628 | 627 | |
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); | |
631 | 630 | |
632 | 631 | draw_sprites(screen.machine(), bitmap, cliprect, 3); |
633 | 632 | |
634 | combine_tilemap(screen.machine(), bitmap, cliprect, | |
633 | combine_tilemap(screen.machine(), bitmap, cliprect, | |
635 | 634 | return 0; |
636 | 635 | } |
637 | 636 | |
r17967 | r17968 | |
653 | 652 | memset(m_alpha_table, 0, 8192 * sizeof(UINT8)); |
654 | 653 | } |
655 | 654 | |
656 | ||
655 | ||
657 | 656 | { |
658 | 657 | bitmap.fill(0, cliprect); |
659 | 658 | draw_sprites(screen.machine(), bitmap, cliprect, 0); |
r17967 | r17968 | |
---|---|---|
144 | 144 | } |
145 | 145 | } |
146 | 146 | |
147 | ||
147 | ||
148 | 148 | { |
149 | sauro_state *state = screen.machine().driver_data<sauro_state>(); | |
150 | 149 | |
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); | |
153 | 152 | sauro_draw_sprites(screen.machine(), bitmap, cliprect); |
154 | 153 | return 0; |
155 | 154 | } |
r17967 | r17968 | |
219 | 218 | } |
220 | 219 | } |
221 | 220 | |
222 | ||
221 | ||
223 | 222 | { |
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); | |
226 | 224 | trckydoc_draw_sprites(screen.machine(), bitmap, cliprect); |
227 | 225 | return 0; |
228 | 226 | } |
r17967 | r17968 | |
---|---|---|
303 | 303 | } |
304 | 304 | } |
305 | 305 | |
306 | ||
306 | ||
307 | 307 | { |
308 | gaplus_state *state = screen.machine().driver_data<gaplus_state>(); | |
309 | 308 | /* flip screen control is embedded in RAM */ |
310 | | |
309 | | |
311 | 310 | |
312 | 311 | bitmap.fill(0, cliprect); |
313 | 312 | |
314 | 313 | starfield_render(screen.machine(), bitmap); |
315 | 314 | |
316 | 315 | /* draw the low priority characters */ |
317 | | |
316 | | |
318 | 317 | |
319 | 318 | draw_sprites(screen.machine(), bitmap, cliprect); |
320 | 319 | |
321 | 320 | /* draw the high priority characters */ |
322 | 321 | /* (I don't know if this feature is used by Gaplus, but it's shown in the schematics) */ |
323 | | |
322 | | |
324 | 323 | return 0; |
325 | 324 | } |
326 | 325 | |
327 | 326 | |
328 | ||
327 | void | |
329 | 328 | { |
330 | 329 | // falling edge |
331 | if (! | |
330 | if (!st | |
332 | 331 | { |
333 | gaplus_state *state = screen.machine().driver_data<gaplus_state>(); | |
334 | struct star *stars = state->m_stars; | |
332 | struct star *stars = m_stars; | |
335 | 333 | int i; |
336 | 334 | |
337 | 335 | int width = screen.machine().primary_screen->width(); |
338 | 336 | int height = screen.machine().primary_screen->height(); |
339 | 337 | |
340 | 338 | /* check if we're running */ |
341 | if ( ( | |
339 | if ( ( | |
342 | 340 | return; |
343 | 341 | |
344 | 342 | /* 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] ) { | |
347 | 345 | case 0x87: |
348 | 346 | /* stand still */ |
349 | 347 | break; |
r17967 | r17968 | |
---|---|---|
113 | 113 | m_bg2->set_transparent_pen(0); |
114 | 114 | } |
115 | 115 | |
116 | ||
116 | ||
117 | 117 | { |
118 | drmicro_state *state = screen.machine().driver_data<drmicro_state>(); | |
119 | 118 | int offs, adr, g; |
120 | 119 | int chr, col, attr; |
121 | 120 | int x, y, fx, fy; |
122 | 121 | |
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); | |
125 | 124 | |
126 | 125 | /* draw sprites */ |
127 | 126 | for (g = 0; g < 2; g++) |
r17967 | r17968 | |
130 | 129 | |
131 | 130 | for (offs = 0x00; offs < 0x20; offs += 4) |
132 | 131 | { |
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]; | |
137 | 136 | |
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; | |
140 | 139 | |
141 | 140 | chr = (chr >> 2) | (attr & 0xc0); |
142 | 141 | |
143 | 142 | col = (attr & 0x0f) + 0x00; |
144 | 143 | |
145 | if (! | |
144 | if (! | |
146 | 145 | y = (240 - y) & 0xff; |
147 | 146 | else |
148 | 147 | x = (240 - x) & 0xff; |
r17967 | r17968 | |
---|---|---|
220 | 220 | } |
221 | 221 | |
222 | 222 | |
223 | ||
223 | ||
224 | 224 | { |
225 | carpolo_state *state = screen.machine().driver_data<carpolo_state>(); | |
226 | 225 | /* draw the playfield elements in the correct priority order */ |
227 | 226 | |
228 | 227 | /* score area - position determined by bit 4 of the vertical timing PROM */ |
r17967 | r17968 | |
233 | 232 | |
234 | 233 | /* car 1 */ |
235 | 234 | 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); | |
238 | 237 | |
239 | 238 | /* border - position determined by bit 4 and 7 of the vertical timing PROM */ |
240 | 239 | bitmap.plot_box(0,TOP_BORDER, RIGHT_BORDER+1,1,LINE_PEN); |
r17967 | r17968 | |
244 | 243 | |
245 | 244 | /* car 4 */ |
246 | 245 | 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); | |
249 | 248 | |
250 | 249 | /* car 3 */ |
251 | 250 | 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); | |
254 | 253 | |
255 | 254 | /* car 2 */ |
256 | 255 | 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); | |
259 | 258 | |
260 | 259 | /* ball */ |
261 | 260 | 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); | |
264 | 263 | |
265 | 264 | /* left goal - position determined by bit 6 of the |
266 | 265 | horizontal and vertical timing PROMs */ |
r17967 | r17968 | |
279 | 278 | |
280 | 279 | /* special char - bit 0 of 0x0f enables it, |
281 | 280 | bit 1 marked as WIDE, but never appears to be set */ |
282 | if ( | |
281 | if ( | |
283 | 282 | popmessage("WIDE!\n"); |
284 | 283 | |
285 | if ( | |
284 | if ( | |
286 | 285 | 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); | |
289 | 288 | |
290 | 289 | |
291 | 290 | /* draw the alpha layer */ |
r17967 | r17968 | |
548 | 547 | } |
549 | 548 | |
550 | 549 | |
551 | ||
550 | void | |
552 | 551 | { |
553 | 552 | // rising edge |
554 | if ( | |
553 | if (st | |
555 | 554 | { |
556 | carpolo_state *state = screen.machine().driver_data<carpolo_state>(); | |
557 | 555 | int col_x, col_y; |
558 | 556 | int car1_x, car2_x, car3_x, car4_x, ball_x; |
559 | 557 | int car1_y, car2_y, car3_y, car4_y, ball_y; |
r17967 | r17968 | |
563 | 561 | |
564 | 562 | /* check car-car collision first */ |
565 | 563 | |
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); | |
569 | 567 | |
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); | |
573 | 571 | |
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); | |
577 | 575 | |
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); | |
581 | 579 | |
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); | |
585 | 583 | |
586 | 584 | |
587 | 585 | /* cars 1 and 2 */ |
r17967 | r17968 | |
---|---|---|
85 | 85 | } |
86 | 86 | } |
87 | 87 | |
88 | ||
88 | ||
89 | 89 | { |
90 | speedatk_state *state = screen.machine().driver_data<speedatk_state>(); | |
91 | 90 | int x,y; |
92 | 91 | int count; |
93 | 92 | UINT16 tile; |
r17967 | r17968 | |
95 | 94 | |
96 | 95 | bitmap.fill(0, cliprect); |
97 | 96 | |
98 | count = ( | |
97 | count = ( | |
99 | 98 | |
100 | if( | |
99 | if( | |
101 | 100 | |
102 | for(y=0;y< | |
101 | for(y=0;y< | |
103 | 102 | { |
104 | for(x=0;x< | |
103 | for(x=0;x< | |
105 | 104 | { |
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; | |
109 | 108 | |
110 | drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[region],tile,color, | |
109 | drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[region],tile,color, | |
111 | 110 | |
112 | count = ( | |
111 | count = ( | |
113 | 112 | count&=0x3ff; |
114 | 113 | } |
115 | 114 | } |
r17967 | r17968 | |
---|---|---|
558 | 558 | * |
559 | 559 | *************************************/ |
560 | 560 | |
561 | ||
561 | ||
562 | 562 | { |
563 | system1_state *state = screen.machine().driver_data<system1_state>(); | |
564 | UINT8 *videoram = state->m_videoram; | |
563 | UINT8 *videoram = m_videoram; | |
565 | 564 | bitmap_ind16 *bgpixmaps[4]; |
566 | 565 | int bgrowscroll[32]; |
567 | 566 | int xscroll, yscroll; |
568 | 567 | int y; |
569 | 568 | |
570 | 569 | /* all 4 background pages are the same, fixed to page 0 */ |
571 | bgpixmaps[0] = bgpixmaps[1] = bgpixmaps[2] = bgpixmaps[3] = & | |
570 | bgpixmaps[0] = bgpixmaps[1] = bgpixmaps[2] = bgpixmaps[3] = & | |
572 | 571 | |
573 | 572 | /* foreground is fixed to page 1 */ |
574 | bitmap_ind16 &fgpixmap = | |
573 | bitmap_ind16 &fgpixmap = | |
575 | 574 | |
576 | 575 | /* get fixed scroll offsets */ |
577 | 576 | xscroll = (INT16)((videoram[0xffc] | (videoram[0xffd] << 8)) + 28); |
578 | 577 | yscroll = videoram[0xfbd]; |
579 | 578 | |
580 | 579 | /* adjust for flipping */ |
581 | if ( | |
580 | if ( | |
582 | 581 | { |
583 | 582 | xscroll = 640 - (xscroll & 0x1ff); |
584 | 583 | yscroll = 764 - (yscroll & 0x1ff); |
r17967 | r17968 | |
594 | 593 | } |
595 | 594 | |
596 | 595 | |
597 | ||
596 | ||
598 | 597 | { |
599 | system1_state *state = screen.machine().driver_data<system1_state>(); | |
600 | UINT8 *videoram = state->m_videoram; | |
598 | UINT8 *videoram = m_videoram; | |
601 | 599 | bitmap_ind16 *bgpixmaps[4]; |
602 | 600 | int rowscroll[32]; |
603 | 601 | int xscroll, yscroll; |
r17967 | r17968 | |
605 | 603 | int y; |
606 | 604 | |
607 | 605 | /* 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(); | |
612 | 610 | |
613 | 611 | /* foreground is fixed to page 0 */ |
614 | bitmap_ind16 &fgpixmap = | |
612 | bitmap_ind16 &fgpixmap = | |
615 | 613 | |
616 | 614 | /* get scroll offsets */ |
617 | if (! | |
615 | if (! | |
618 | 616 | { |
619 | 617 | xscroll = ((videoram[0x7c0] | (videoram[0x7c1] << 8)) & 0x1ff) - 512 + 10; |
620 | 618 | yscroll = videoram[0x7ba]; |
r17967 | r17968 | |
637 | 635 | } |
638 | 636 | |
639 | 637 | |
640 | ||
638 | ||
641 | 639 | { |
642 | system1_state *state = screen.machine().driver_data<system1_state>(); | |
643 | UINT8 *videoram = state->m_videoram; | |
640 | UINT8 *videoram = m_videoram; | |
644 | 641 | bitmap_ind16 *bgpixmaps[4]; |
645 | 642 | int rowscroll[32]; |
646 | 643 | int yscroll; |
r17967 | r17968 | |
648 | 645 | int y; |
649 | 646 | |
650 | 647 | /* 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(); | |
655 | 652 | |
656 | 653 | /* foreground is fixed to page 0 */ |
657 | bitmap_ind16 &fgpixmap = | |
654 | bitmap_ind16 &fgpixmap = | |
658 | 655 | |
659 | 656 | /* get scroll offsets */ |
660 | if (! | |
657 | if (! | |
661 | 658 | { |
662 | 659 | for (y = 0; y < 32; y++) |
663 | 660 | rowscroll[y] = ((videoram[0x7c0 + y * 2] | (videoram[0x7c1 + y * 2] << 8)) & 0x1ff) - 512 + 10; |
r17967 | r17968 | |
---|---|---|
325 | 325 | ***************************************************************************/ |
326 | 326 | |
327 | 327 | |
328 | ||
328 | ||
329 | 329 | { |
330 | powerins_state *state = screen.machine().driver_data<powerins_state>(); | |
331 | 330 | int layers_ctrl = -1; |
332 | 331 | |
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; | |
335 | 334 | |
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 ); | |
338 | 337 | |
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); | |
341 | 340 | |
342 | 341 | #ifdef MAME_DEBUG |
343 | 342 | if (screen.machine().input().code_pressed(KEYCODE_Z)) |
r17967 | r17968 | |
352 | 351 | } |
353 | 352 | #endif |
354 | 353 | |
355 | if (layers_ctrl&1) | |
354 | if (layers_ctrl&1) | |
356 | 355 | else bitmap.fill(0, cliprect); |
357 | 356 | if (layers_ctrl&8) draw_sprites(screen.machine(),bitmap,cliprect); |
358 | if (layers_ctrl&2) | |
357 | if (layers_ctrl&2) | |
359 | 358 | return 0; |
360 | 359 | } |
r17967 | r17968 | |
---|---|---|
6636 | 6636 | stv_sprite_priorities_usage_valid = 1; |
6637 | 6637 | } |
6638 | 6638 | |
6639 | ||
6639 | ||
6640 | 6640 | { |
6641 | 6641 | saturn_state *state = screen.machine().driver_data<saturn_state>(); |
6642 | 6642 | |
6643 | 6643 | stv_vdp2_fade_effects(screen.machine()); |
6644 | 6644 | |
6645 | stv_vdp2_draw_back(screen.machine(), | |
6645 | stv_vdp2_draw_back(screen.machine(), | |
6646 | 6646 | |
6647 | 6647 | #if DEBUG_MODE |
6648 | 6648 | if(screen.machine().input().code_pressed_once(KEYCODE_T)) |
r17967 | r17968 | |
6688 | 6688 | /*If a plane has a priority value of zero it isn't shown at all.*/ |
6689 | 6689 | for(pri=1;pri<8;pri++) |
6690 | 6690 | { |
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); } | |
6697 | 6697 | } |
6698 | 6698 | } |
6699 | 6699 | |
r17967 | r17968 | |
6755 | 6755 | fp=fopen("mamevdp1", "w+b"); |
6756 | 6756 | if (fp) |
6757 | 6757 | { |
6758 | fwrite( | |
6758 | fwrite( | |
6759 | 6759 | fclose(fp); |
6760 | 6760 | } |
6761 | 6761 | } |
r17967 | r17968 | |
6767 | 6767 | fp=fopen("vdp1_vram.bin", "r+b"); |
6768 | 6768 | if (fp) |
6769 | 6769 | { |
6770 | fread( | |
6770 | fread( | |
6771 | 6771 | fclose(fp); |
6772 | 6772 | } |
6773 | 6773 | } |
6774 | 6774 | |
6775 | 6775 | #endif |
6776 | 6776 | |
6777 | copybitmap(bitmap, | |
6777 | copybitmap(bitmap, | |
6778 | 6778 | |
6779 | 6779 | return 0; |
6780 | 6780 | } |
r17967 | r17968 | |
7188 | 7188 | } |
7189 | 7189 | } |
7190 | 7190 | |
7191 | ||
7191 | ||
7192 | 7192 | { |
7193 | 7193 | saturn_state *state = screen.machine().driver_data<saturn_state>(); |
7194 | 7194 | static UINT8 disclaimer; |
r17967 | r17968 | |
---|---|---|
382 | 382 | |
383 | 383 | |
384 | 384 | ******************************************************************************/ |
385 | ||
385 | ||
386 | 386 | { |
387 | niyanpai_state *state = screen.machine().driver_data<niyanpai_state>(); | |
388 | 387 | int i; |
389 | 388 | int x, y; |
390 | 389 | int scrollx[3], scrolly[3]; |
391 | 390 | |
392 | if ( | |
391 | if ( | |
393 | 392 | { |
394 | 393 | int width = screen.width(); |
395 | 394 | int height = screen.height(); |
396 | 395 | |
397 | | |
396 | | |
398 | 397 | |
399 | 398 | for (y = 0; y < height; y++) |
400 | 399 | for (x = 0; x < width; x++) |
r17967 | r17968 | |
407 | 406 | |
408 | 407 | for (i = 0; i < 3; i++) |
409 | 408 | { |
410 | if ( | |
409 | if ( | |
411 | 410 | { |
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; | |
414 | 413 | } |
415 | 414 | else |
416 | 415 | { |
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; | |
419 | 418 | } |
420 | 419 | } |
421 | 420 | |
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); | |
424 | 423 | else |
425 | 424 | bitmap.fill(0x00ff); |
426 | 425 | |
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); | |
429 | 428 | |
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); | |
432 | 431 | |
433 | 432 | return 0; |
434 | 433 | } |
r17967 | r17968 | |
---|---|---|
212 | 212 | } |
213 | 213 | } |
214 | 214 | |
215 | ||
215 | ||
216 | 216 | { |
217 | exedexes_state *state = screen.machine().driver_data<exedexes_state>(); | |
218 | if (state->m_sc2on) | |
217 | if (m_sc2on) | |
219 | 218 | { |
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); | |
222 | 221 | } |
223 | 222 | else |
224 | 223 | bitmap.fill(0, cliprect); |
225 | 224 | |
226 | 225 | draw_sprites(screen.machine(), bitmap, cliprect, 1); |
227 | 226 | |
228 | if ( | |
227 | if ( | |
229 | 228 | { |
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); | |
233 | 232 | } |
234 | 233 | |
235 | 234 | draw_sprites(screen.machine(), bitmap, cliprect, 0); |
236 | 235 | |
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); | |
239 | 238 | |
240 | 239 | return 0; |
241 | 240 | } |
r17967 | r17968 | |
---|---|---|
324 | 324 | * |
325 | 325 | *************************************/ |
326 | 326 | |
327 | static | |
327 | UINT32 jedi_state::screen_update_jedi(screen_device &screen, bitmap_rgb | |
328 | 328 | { |
329 | jedi_state *state = screen.machine().driver_data<jedi_state>(); | |
330 | 329 | |
331 | 330 | /* if no video, clear it all to black */ |
332 | if (* | |
331 | if (* | |
333 | 332 | bitmap.fill(RGB_BLACK, cliprect); |
334 | 333 | else |
335 | 334 | { |
336 | 335 | /* draw the background/text layers, followed by the sprites |
337 | 336 | - 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); | |
341 | 340 | } |
342 | 341 | |
343 | 342 | return 0; |
r17967 | r17968 | |
356 | 355 | MCFG_SCREEN_REFRESH_RATE(60) |
357 | 356 | MCFG_SCREEN_SIZE(64*8, 262) /* verify vert size */ |
358 | 357 | MCFG_SCREEN_VISIBLE_AREA(0*8, 37*8-1, 0*8, 30*8-1) |
359 | MCFG_SCREEN_UPDATE_ | |
358 | MCFG_SCREEN_UPDATE_DR | |
360 | 359 | |
361 | 360 | MCFG_VIDEO_START_OVERRIDE(jedi_state,jedi) |
362 | 361 | MACHINE_CONFIG_END |
r17967 | r17968 | |
---|---|---|
444 | 444 | } |
445 | 445 | } |
446 | 446 | |
447 | ||
447 | ||
448 | 448 | { |
449 | skns_state *state = screen.machine().driver_data<skns_state>(); | |
450 | 449 | |
451 | 450 | palette_update(screen.machine()); |
452 | 451 | |
453 | 452 | 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); | |
458 | 457 | |
459 | 458 | { |
460 | 459 | int supernova_pri_a; |
461 | 460 | int supernova_pri_b; |
462 | 461 | int tran = 0; |
463 | 462 | |
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; | |
466 | 465 | |
467 | 466 | //popmessage("pri %d %d\n", supernova_pri_a, supernova_pri_b); |
468 | 467 | |
469 | 468 | /*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; | |
472 | 471 | |
473 | 472 | { |
474 | 473 | int x,y; |
r17967 | r17968 | |
483 | 482 | |
484 | 483 | for (y=0;y<240;y++) |
485 | 484 | { |
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); | |
488 | 487 | |
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); | |
491 | 490 | |
492 | src3 = & | |
491 | src3 = & | |
493 | 492 | |
494 | 493 | dst = &bitmap.pix32(y); |
495 | 494 | |
r17967 | r17968 | |
558 | 557 | if (pendata3&0xff) |
559 | 558 | { |
560 | 559 | |
561 | UINT16 palvalue = | |
560 | UINT16 palvalue = | |
562 | 561 | |
563 | 562 | coldat = clut[pendata3]; |
564 | 563 | |
r17967 | r17968 | |
578 | 577 | g2 = (dstcolour & 0x0000ff00)>> 8; |
579 | 578 | b2 = (dstcolour & 0x00ff0000)>> 16; |
580 | 579 | |
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; | |
584 | 583 | |
585 | 584 | r = (r+r2); |
586 | 585 | if (r>255) r = 255; |
r17967 | r17968 | |
619 | 618 | } |
620 | 619 | } |
621 | 620 | |
622 | | |
621 | | |
623 | 622 | |
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 ); | |
626 | 625 | |
627 | 626 | |
628 | 627 | return 0; |
629 | 628 | } |
630 | 629 | |
631 | ||
630 | void skns_ | |
632 | 631 | { |
633 | 632 | |
634 | 633 | } |
r17967 | r17968 | |
---|---|---|
475 | 475 | m_yoffset = 0x10; |
476 | 476 | } |
477 | 477 | |
478 | ||
478 | ||
479 | 479 | { |
480 | seta2_state *state = screen.machine().driver_data<seta2_state>(); | |
481 | 480 | |
482 | 481 | // Black or pen 0? |
483 | 482 | bitmap.fill(screen.machine().pens[0], cliprect); |
484 | 483 | |
485 | if ( ( | |
484 | if ( ( | |
486 | 485 | draw_sprites(screen.machine(), bitmap, cliprect); |
487 | 486 | |
488 | 487 | return 0; |
489 | 488 | } |
490 | 489 | |
491 | ||
490 | void | |
492 | 491 | { |
493 | 492 | // rising edge |
494 | if ( | |
493 | if (st | |
495 | 494 | { |
496 | seta2_state *state = screen.machine().driver_data<seta2_state>(); | |
497 | 495 | |
498 | 496 | // Buffer sprites by 1 frame |
499 | memcpy( | |
497 | memcpy( | |
500 | 498 | } |
501 | 499 | } |
r17967 | r17968 | |
---|---|---|
127 | 127 | |
128 | 128 | ***************************************************************************/ |
129 | 129 | |
130 | ||
130 | ||
131 | 131 | { |
132 | flkatck_state *state = screen.machine().driver_data<flkatck_state>(); | |
133 | 132 | rectangle clip[2]; |
134 | 133 | const rectangle &visarea = screen.visible_area(); |
135 | 134 | |
136 | 135 | address_space &space = screen.machine().driver_data()->generic_space(); |
137 | if ( | |
136 | if ( | |
138 | 137 | { |
139 | 138 | clip[0] = visarea; |
140 | 139 | clip[0].max_x -= 40; |
r17967 | r17968 | |
142 | 141 | clip[1] = visarea; |
143 | 142 | clip[1].min_x = clip[1].max_x - 40; |
144 | 143 | |
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); | |
148 | 147 | } |
149 | 148 | else |
150 | 149 | { |
r17967 | r17968 | |
155 | 154 | clip[1].max_x = 39; |
156 | 155 | clip[1].min_x = 0; |
157 | 156 | |
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); | |
161 | 160 | } |
162 | 161 | |
163 | 162 | /* compute clipping */ |
r17967 | r17968 | |
165 | 164 | clip[1] &= cliprect; |
166 | 165 | |
167 | 166 | /* 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); | |
171 | 170 | return 0; |
172 | 171 | } |
r17967 | r17968 | |
---|---|---|
80 | 80 | } |
81 | 81 | |
82 | 82 | |
83 | ||
83 | ||
84 | 84 | { |
85 | namcofl_state *state = screen.machine().driver_data<namcofl_state>(); | |
86 | 85 | int pri; |
87 | 86 | |
88 | 87 | namcofl_install_palette(screen.machine()); |
r17967 | r17968 | |
91 | 90 | |
92 | 91 | for( pri=0; pri<16; pri++ ) |
93 | 92 | { |
94 | | |
93 | | |
95 | 94 | if((pri&1)==0) |
96 | 95 | namco_tilemap_draw( bitmap, cliprect, pri>>1 ); |
97 | | |
96 | | |
98 | 97 | } |
99 | 98 | |
100 | 99 | return 0; |
r17967 | r17968 | |
---|---|---|
1238 | 1238 | |
1239 | 1239 | |
1240 | 1240 | |
1241 | ||
1241 | ||
1242 | 1242 | { |
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; | |
1245 | 1244 | int lay[4]; |
1246 | 1245 | |
1247 | 1246 | if (debug_viewer(screen.machine(), bitmap, cliprect)) |
r17967 | r17968 | |
1249 | 1248 | |
1250 | 1249 | layers_ctrl &= debug_mask(screen.machine()); |
1251 | 1250 | |
1252 | bitmap.fill(( | |
1251 | bitmap.fill(( | |
1253 | 1252 | |
1254 | 1253 | /* bit 4 = display enable? */ |
1255 | if (!( | |
1254 | if (!( | |
1256 | 1255 | return 0; |
1257 | 1256 | |
1258 | switch ( | |
1257 | switch ( | |
1259 | 1258 | { |
1260 | default: popmessage("unknown priority %02x", | |
1259 | default: popmessage("unknown priority %02x", | |
1261 | 1260 | case 0x10: lay[0] = 0; lay[1] = 1; lay[2] = 2; lay[3] = 3; break; |
1262 | 1261 | case 0x11: lay[0] = 0; lay[1] = 3; lay[2] = 2; lay[3] = 1; break; |
1263 | 1262 | case 0x12: lay[0] = 0; lay[1] = 1; lay[2] = 3; lay[3] = 2; break; |
r17967 | r17968 | |
1274 | 1273 | } |
1275 | 1274 | |
1276 | 1275 | |
1277 | ||
1276 | ||
1278 | 1277 | { |
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); | |
1281 | 1279 | int lay[4]; |
1282 | 1280 | int pri; |
1283 | 1281 | |
r17967 | r17968 | |
1286 | 1284 | |
1287 | 1285 | layers_ctrl &= debug_mask(screen.machine()); |
1288 | 1286 | |
1289 | bitmap.fill(( | |
1287 | bitmap.fill(( | |
1290 | 1288 | |
1291 | pri = | |
1289 | pri = | |
1292 | 1290 | |
1293 | 1291 | if (pri > 7) |
1294 | 1292 | { |
1295 | popmessage("unknown priority %02x", | |
1293 | popmessage("unknown priority %02x", | |
1296 | 1294 | pri = 0; |
1297 | 1295 | } |
1298 | 1296 | |
1299 | pri = | |
1297 | pri = | |
1300 | 1298 | lay[0] = (pri >> 12) & 3; |
1301 | 1299 | lay[1] = (pri >> 8) & 3; |
1302 | 1300 | lay[2] = (pri >> 4) & 3; |
r17967 | r17968 | |
1311 | 1309 | } |
1312 | 1310 | |
1313 | 1311 | |
1314 | ||
1312 | ||
1315 | 1313 | { |
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; | |
1318 | 1315 | |
1319 | 1316 | if (debug_viewer(screen.machine(),bitmap,cliprect)) |
1320 | 1317 | return 0; |
1321 | 1318 | |
1322 | 1319 | layers_ctrl &= debug_mask(screen.machine()); |
1323 | 1320 | |
1324 | bitmap.fill(( | |
1321 | bitmap.fill(( | |
1325 | 1322 | |
1326 | 1323 | if (BIT(layers_ctrl, 0)) hanamai_copylayer(screen.machine(), bitmap, cliprect, 0); |
1327 | 1324 | if (BIT(layers_ctrl, 1)) hanamai_copylayer(screen.machine(), bitmap, cliprect, 1); |
r17967 | r17968 | |
1329 | 1326 | return 0; |
1330 | 1327 | } |
1331 | 1328 | |
1332 | ||
1329 | ||
1333 | 1330 | { |
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; | |
1336 | 1332 | |
1337 | 1333 | if (debug_viewer(screen.machine(), bitmap, cliprect)) |
1338 | 1334 | return 0; |
1339 | 1335 | |
1340 | 1336 | layers_ctrl &= debug_mask(screen.machine()); |
1341 | 1337 | |
1342 | bitmap.fill(( | |
1338 | bitmap.fill(( | |
1343 | 1339 | |
1344 | 1340 | // if (BIT(layers_ctrl, 0)) jantouki_copylayer(screen.machine(), bitmap, cliprect, 3, 0); |
1345 | 1341 | if (BIT(layers_ctrl, 1)) jantouki_copylayer(screen.machine(), bitmap, cliprect, 2, 0); |
r17967 | r17968 | |
1348 | 1344 | return 0; |
1349 | 1345 | } |
1350 | 1346 | |
1351 | ||
1347 | ||
1352 | 1348 | { |
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; | |
1355 | 1350 | |
1356 | 1351 | if (debug_viewer(screen.machine(), bitmap, cliprect)) |
1357 | 1352 | return 0; |
1358 | 1353 | |
1359 | 1354 | layers_ctrl &= debug_mask(screen.machine()); |
1360 | 1355 | |
1361 | bitmap.fill(( | |
1356 | bitmap.fill(( | |
1362 | 1357 | |
1363 | 1358 | if (BIT(layers_ctrl, 0)) jantouki_copylayer(screen.machine(), bitmap, cliprect, 3, 0); |
1364 | 1359 | if (BIT(layers_ctrl, 4)) jantouki_copylayer(screen.machine(), bitmap, cliprect, 7, 0); |
r17967 | r17968 | |
1369 | 1364 | } |
1370 | 1365 | |
1371 | 1366 | |
1372 | ||
1367 | ||
1373 | 1368 | { |
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; | |
1376 | 1370 | |
1377 | 1371 | if (debug_viewer(screen.machine(), bitmap, cliprect)) |
1378 | 1372 | return 0; |
1379 | 1373 | |
1380 | 1374 | layers_ctrl &= debug_mask(screen.machine()); |
1381 | 1375 | |
1382 | bitmap.fill(( | |
1376 | bitmap.fill(( | |
1383 | 1377 | |
1384 | 1378 | if (BIT(layers_ctrl, 0)) mjdialq2_copylayer(screen.machine(), bitmap, cliprect, 0); |
1385 | 1379 | if (BIT(layers_ctrl, 1)) mjdialq2_copylayer(screen.machine(), bitmap, cliprect, 1); |
r17967 | r17968 | |
1394 | 1388 | VIDEO_START_CALL_MEMBER(hnoridur); |
1395 | 1389 | } |
1396 | 1390 | |
1397 | ||
1391 | ||
1398 | 1392 | { |
1399 | dynax_state *state = screen.machine().driver_data<dynax_state>(); | |
1400 | 1393 | int layer, x, y; |
1401 | 1394 | |
1402 | 1395 | // render the layers, one by one, "dynax.c" style. Then convert the pixmaps to "ddenlovr.c" |
r17967 | r17968 | |
1408 | 1401 | |
1409 | 1402 | for (y = 0; y < 256; y++) |
1410 | 1403 | for (x = 0; x < 512; x++) |
1411 | | |
1404 | | |
1412 | 1405 | } |
1413 | 1406 | |
1414 | return SCREEN_UPDATE16_CALL(ddenlovr); | |
1407 | return SCREEN_UPDATE16_CALL_MEMBER(ddenlovr); | |
1415 | 1408 | } |
r17967 | r17968 | |
---|---|---|
167 | 167 | } |
168 | 168 | } |
169 | 169 | |
170 | ||
170 | ||
171 | 171 | { |
172 | shootout_state *state = screen.machine().driver_data<shootout_state>(); | |
173 | 172 | |
174 | 173 | screen.machine().priority_bitmap.fill(0, cliprect); |
175 | 174 | |
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); | |
178 | 177 | draw_sprites(screen.machine(), bitmap,cliprect,3/*bank bits */); |
179 | 178 | return 0; |
180 | 179 | } |
181 | 180 | |
182 | ||
181 | ||
183 | 182 | { |
184 | shootout_state *state = screen.machine().driver_data<shootout_state>(); | |
185 | 183 | |
186 | 184 | screen.machine().priority_bitmap.fill(0, cliprect); |
187 | 185 | |
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); | |
190 | 188 | draw_sprites(screen.machine(), bitmap,cliprect,2/*bank bits*/); |
191 | 189 | return 0; |
192 | 190 | } |
r17967 | r17968 | |
---|---|---|
306 | 306 | k007121_sprites_draw(k007121, bitmap, cliprect, machine.gfx[bank], machine.colortable, source, base_color, 40, 0, (UINT32)-1); |
307 | 307 | } |
308 | 308 | |
309 | ||
309 | ||
310 | 310 | { |
311 | contra_state *state = screen.machine().driver_data<contra_state>(); | |
312 | 311 | 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; | |
320 | 319 | |
321 | 320 | bg_finalclip &= cliprect; |
322 | 321 | fg_finalclip &= cliprect; |
r17967 | r17968 | |
324 | 323 | |
325 | 324 | set_pens(screen.machine()); |
326 | 325 | |
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); | |
331 | 330 | |
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); | |
334 | 333 | draw_sprites(screen.machine(),bitmap,cliprect, 0); |
335 | 334 | draw_sprites(screen.machine(),bitmap,cliprect, 1); |
336 | | |
335 | | |
337 | 336 | return 0; |
338 | 337 | } |
r17967 | r17968 | |
---|---|---|
122 | 122 | } |
123 | 123 | } |
124 | 124 | |
125 | ||
125 | ||
126 | 126 | { |
127 | volfied_state *state = screen.machine().driver_data<volfied_state>(); | |
128 | 127 | |
129 | 128 | screen.machine().priority_bitmap.fill(0, cliprect); |
130 | 129 | refresh_pixel_layer(screen.machine(), bitmap); |
131 | pc090oj_draw_sprites( | |
130 | pc090oj_draw_sprites( | |
132 | 131 | return 0; |
133 | 132 | } |
r17967 | r17968 | |
---|---|---|
230 | 230 | |
231 | 231 | ***************************************************************************/ |
232 | 232 | |
233 | ||
233 | ||
234 | 234 | { |
235 | paradise_state *state = screen.machine().driver_data<paradise_state>(); | |
236 | 235 | int layers_ctrl = -1; |
237 | 236 | |
238 | 237 | #ifdef MAME_DEBUG |
r17967 | r17968 | |
250 | 249 | |
251 | 250 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
252 | 251 | |
253 | if (!( | |
252 | if (!( | |
254 | 253 | return 0; |
255 | 254 | |
256 | if ( | |
255 | if ( | |
257 | 256 | if (layers_ctrl & 16) |
258 | 257 | draw_sprites(screen.machine(), bitmap, cliprect); |
259 | 258 | |
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); | |
263 | 262 | |
264 | if ( | |
263 | if ( | |
265 | 264 | { |
266 | if (!( | |
265 | if (!( | |
267 | 266 | if (layers_ctrl & 16) |
268 | 267 | draw_sprites(screen.machine(), bitmap, cliprect); |
269 | 268 | if (layers_ctrl & 8) |
270 | | |
269 | | |
271 | 270 | } |
272 | 271 | else |
273 | 272 | { |
274 | 273 | 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)) | |
277 | 276 | if (layers_ctrl & 16) |
278 | 277 | draw_sprites(screen.machine(), bitmap, cliprect); |
279 | 278 | } |
r17967 | r17968 | |
281 | 280 | } |
282 | 281 | |
283 | 282 | /* no pix layer, no tilemap_0, different priority bits */ |
284 | ||
283 | ||
285 | 284 | { |
286 | paradise_state *state = screen.machine().driver_data<paradise_state>(); | |
287 | 285 | |
288 | 286 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
289 | 287 | |
290 | if (!( | |
288 | if (!( | |
291 | 289 | return 0; |
292 | 290 | |
293 | if ( | |
291 | if ( | |
294 | 292 | draw_sprites(screen.machine(), bitmap, cliprect); |
295 | 293 | |
296 | | |
294 | | |
297 | 295 | |
298 | if ( | |
296 | if ( | |
299 | 297 | { |
300 | if (!( | |
298 | if (!( | |
301 | 299 | draw_sprites(screen.machine(), bitmap, cliprect); |
302 | 300 | |
303 | | |
301 | | |
304 | 302 | } |
305 | 303 | else |
306 | 304 | { |
307 | | |
305 | | |
308 | 306 | |
309 | if (!( | |
307 | if (!( | |
310 | 308 | draw_sprites(screen.machine(), bitmap,cliprect); |
311 | 309 | } |
312 | 310 | return 0; |
313 | 311 | } |
314 | 312 | |
315 | 313 | /* I don't know how the priority bits work on this one */ |
316 | ||
314 | ||
317 | 315 | { |
318 | paradise_state *state = screen.machine().driver_data<paradise_state>(); | |
319 | 316 | |
320 | 317 | 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); | |
324 | 321 | draw_sprites(screen.machine(), bitmap, cliprect); |
325 | 322 | return 0; |
326 | 323 | } |
r17967 | r17968 | |
---|---|---|
57 | 57 | * |
58 | 58 | *************************************/ |
59 | 59 | |
60 | ||
60 | ||
61 | 61 | { |
62 | dribling_state *state = screen.machine().driver_data<dribling_state>(); | |
63 | 62 | UINT8 *prombase = screen.machine().root_device().memregion("proms")->base(); |
64 | UINT8 *gfxbase = | |
63 | UINT8 *gfxbase = | |
65 | 64 | int x, y; |
66 | 65 | |
67 | 66 | /* loop over rows */ |
r17967 | r17968 | |
73 | 72 | for (x = cliprect.min_x; x <= cliprect.max_x; x++) |
74 | 73 | { |
75 | 74 | int b7 = prombase[(x >> 3) | ((y >> 3) << 5)] & 1; |
76 | int b6 = | |
75 | int b6 = | |
77 | 76 | int b5 = (x >> 3) & 1; |
78 | 77 | 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; | |
81 | 80 | |
82 | 81 | /* assemble the various bits into a palette PROM index */ |
83 | 82 | dst[x] = (b7 << 7) | (b6 << 6) | (b5 << 5) | (b4 << 4) | (b3 << 3) | b2_0; |
r17967 | r17968 | |
---|---|---|
206 | 206 | * |
207 | 207 | *************************************/ |
208 | 208 | |
209 | ||
209 | ||
210 | 210 | { |
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]; | |
213 | 212 | int y, i; |
214 | 213 | |
215 | 214 | /* draw scanlines from the VRAM directly */ |
216 | 215 | for (y = cliprect.min_y; y <= cliprect.max_y; y++) |
217 | draw_scanline8(bitmap, 0, y, 256, & | |
216 | draw_scanline8(bitmap, 0, y, 256, & | |
218 | 217 | |
219 | 218 | /* draw the sprite images */ |
220 | 219 | for (i = 0; i < 40; i++) |
221 | draw_one_sprite(screen.machine(), bitmap, cliprect, & | |
220 | draw_one_sprite(screen.machine(), bitmap, cliprect, & | |
222 | 221 | |
223 | 222 | return 0; |
224 | 223 | } |
r17967 | r17968 | |
---|---|---|
1409 | 1409 | * |
1410 | 1410 | *************************************/ |
1411 | 1411 | |
1412 | ||
1412 | ||
1413 | 1413 | { |
1414 | itech32_state *state = screen.machine().driver_data<itech32_state>(); | |
1415 | 1414 | int y; |
1416 | 1415 | |
1417 | 1416 | /* loop over height */ |
1418 | 1417 | for (y = cliprect.min_y; y <= cliprect.max_y; y++) |
1419 | 1418 | { |
1420 | UINT16 *src1 = & | |
1419 | UINT16 *src1 = & | |
1421 | 1420 | |
1422 | 1421 | /* handle multi-plane case */ |
1423 | if ( | |
1422 | if ( | |
1424 | 1423 | { |
1425 | UINT16 *src2 = & | |
1424 | UINT16 *src2 = & | |
1426 | 1425 | UINT16 scanline[384]; |
1427 | 1426 | int x; |
1428 | 1427 |
r17967 | r17968 | |
---|---|---|
15 | 15 | |
16 | 16 | |
17 | 17 | |
18 | ||
18 | ||
19 | 19 | { |
20 | mexico86_state *state = screen.machine().driver_data<mexico86_state>(); | |
21 | 20 | int offs; |
22 | 21 | int sx, sy, xc, yc; |
23 | 22 | int gfx_num, gfx_attr, gfx_offs; |
r17967 | r17968 | |
31 | 30 | sx = 0; |
32 | 31 | |
33 | 32 | /* the score display seems to be outside of the main objectram. */ |
34 | for (offs = 0; offs < | |
33 | for (offs = 0; offs < | |
35 | 34 | { |
36 | 35 | int height; |
37 | 36 | |
38 | if (offs >= | |
37 | if (offs >= | |
39 | 38 | continue; |
40 | 39 | |
41 | if (offs >= | |
40 | if (offs >= | |
42 | 41 | continue; |
43 | 42 | |
44 | 43 | /* skip empty sprites */ |
45 | 44 | /* this is dword aligned so the UINT32 * cast shouldn't give problems */ |
46 | 45 | /* on any architecture */ |
47 | if (*(UINT32 *)(& | |
46 | if (*(UINT32 *)(& | |
48 | 47 | continue; |
49 | 48 | |
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]; | |
52 | 51 | |
53 | 52 | if (!BIT(gfx_num, 7)) /* 16x16 sprites */ |
54 | 53 | { |
r17967 | r17968 | |
65 | 64 | sx += 16; |
66 | 65 | else |
67 | 66 | { |
68 | sx = | |
67 | sx = | |
69 | 68 | //if (gfx_attr & 0x40) sx -= 256; |
70 | 69 | } |
71 | sy = 256 - height * 8 - ( | |
70 | sy = 256 - height * 8 - ( | |
72 | 71 | |
73 | 72 | for (xc = 0; xc < 2; xc++) |
74 | 73 | { |
r17967 | r17968 | |
77 | 76 | int goffs, code, color, flipx, flipy, x, y; |
78 | 77 | |
79 | 78 | 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; | |
84 | 83 | flipy = 0; |
85 | 84 | |
86 | 85 | //x = sx + xc * 8; |
r17967 | r17968 | |
98 | 97 | return 0; |
99 | 98 | } |
100 | 99 | |
101 | ||
100 | ||
102 | 101 | { |
103 | mexico86_state *state = screen.machine().driver_data<mexico86_state>(); | |
104 | 102 | int offs; |
105 | 103 | int sx, sy, yc; |
106 | 104 | int gfx_num, /*gfx_attr,*/ gfx_offs; |
r17967 | r17968 | |
110 | 108 | |
111 | 109 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
112 | 110 | sx = 0; |
113 | for (offs = 0; offs < | |
111 | for (offs = 0; offs < | |
114 | 112 | { |
115 | if (*(UINT32*)( | |
113 | if (*(UINT32*)( | |
116 | 114 | continue; |
117 | 115 | |
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]; | |
122 | 120 | |
123 | 121 | if (gfx_num & 0x80) |
124 | 122 | { |
r17967 | r17968 | |
142 | 140 | { |
143 | 141 | y = (sy + (yc << 2)) & 0xff; |
144 | 142 | 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; | |
147 | 145 | goffs += 0x40; |
148 | 146 | |
149 | 147 | drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[0], |
r17967 | r17968 | |
152 | 150 | 0,0, |
153 | 151 | sx&0xff,y,15); |
154 | 152 | |
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; | |
157 | 155 | |
158 | 156 | drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[0], |
159 | 157 | code, |
r17967 | r17968 | |
---|---|---|
253 | 253 | } |
254 | 254 | } |
255 | 255 | |
256 | ||
256 | ||
257 | 257 | { |
258 | chaknpop_state *state = screen.machine().driver_data<chaknpop_state>(); | |
259 | 258 | |
260 | | |
259 | | |
261 | 260 | draw_sprites(screen.machine(), bitmap, cliprect); |
262 | 261 | draw_bitmap(screen.machine(), bitmap, cliprect); |
263 | 262 | return 0; |
r17967 | r17968 | |
---|---|---|
107 | 107 | m_fof_txt_tilemap->set_transparent_pen(0); |
108 | 108 | } |
109 | 109 | |
110 | ||
110 | ||
111 | 111 | { |
112 | fitfight_state *state = screen.machine().driver_data<fitfight_state>(); | |
113 | 112 | |
114 | 113 | /* scroll isn't right */ |
115 | 114 | |
116 | 115 | int vblank; |
117 | 116 | int scrollbak, scrollmid; |
118 | 117 | |
119 | vblank = ( | |
118 | vblank = ( | |
120 | 119 | |
121 | 120 | if (vblank > 0) |
122 | 121 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
123 | 122 | else { |
124 | 123 | // if (screen.machine().input().code_pressed(KEYCODE_Q)) |
125 | // scrollbak = (( | |
124 | // scrollbak = (( | |
126 | 125 | // else if (screen.machine().input().code_pressed(KEYCODE_W)) |
127 | // scrollbak = (( | |
126 | // scrollbak = (( | |
128 | 127 | // else if (screen.machine().input().code_pressed(KEYCODE_E)) |
129 | // scrollbak = (( | |
128 | // scrollbak = (( | |
130 | 129 | // else if (screen.machine().input().code_pressed(KEYCODE_R)) |
131 | // scrollbak = (( | |
130 | // scrollbak = (( | |
132 | 131 | // 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); | |
137 | 136 | |
138 | 137 | draw_sprites(screen.machine(), bitmap, cliprect, 0); |
139 | 138 | |
140 | 139 | // if (screen.machine().input().code_pressed(KEYCODE_A)) |
141 | // scrollmid = (( | |
140 | // scrollmid = (( | |
142 | 141 | // else if (screen.machine().input().code_pressed(KEYCODE_S)) |
143 | // scrollmid = (( | |
142 | // scrollmid = (( | |
144 | 143 | // else if (screen.machine().input().code_pressed(KEYCODE_D)) |
145 | // scrollmid = (( | |
144 | // scrollmid = (( | |
146 | 145 | // else if (screen.machine().input().code_pressed(KEYCODE_F)) |
147 | // scrollmid = (( | |
146 | // scrollmid = (( | |
148 | 147 | // 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); | |
152 | 151 | // if (!screen.machine().input().code_pressed(KEYCODE_F)) |
153 | | |
152 | | |
154 | 153 | |
155 | 154 | draw_sprites(screen.machine(), bitmap, cliprect, 1); |
156 | 155 | |
157 | | |
156 | | |
158 | 157 | } |
159 | 158 | /* 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] ); | |
163 | 162 | */ |
164 | 163 | return 0; |
165 | 164 | } |
r17967 | r17968 | |
---|---|---|
245 | 245 | } |
246 | 246 | |
247 | 247 | |
248 | ||
248 | ||
249 | 249 | { |
250 | 250 | draw_track(screen.machine(), bitmap); |
251 | 251 | draw_drones(screen.machine(), bitmap, cliprect); |
r17967 | r17968 | |
254 | 254 | } |
255 | 255 | |
256 | 256 | |
257 | ||
257 | void | |
258 | 258 | { |
259 | 259 | // rising edge |
260 | if ( | |
260 | if (st | |
261 | 261 | { |
262 | sspeedr_state *state = screen.machine().driver_data<sspeedr_state>(); | |
263 | state->m_toggle ^= 1; | |
262 | m_toggle ^= 1; | |
264 | 263 | } |
265 | 264 | } |
r17967 | r17968 | |
---|---|---|
207 | 207 | m_joetilemap5->set_transparent_pen(15); |
208 | 208 | } |
209 | 209 | |
210 | ||
210 | ||
211 | 211 | { |
212 | ashnojoe_state *state = screen.machine().driver_data<ashnojoe_state>(); | |
213 | 212 | |
214 | // | |
213 | // | |
215 | 214 | |
216 | | |
215 | | |
217 | 216 | |
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); | |
220 | 219 | else |
221 | | |
220 | | |
222 | 221 | |
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); | |
228 | 227 | |
229 | 228 | return 0; |
230 | 229 | } |
r17967 | r17968 | |
---|---|---|
194 | 194 | state_save_register_global(machine(), m_yscroll); |
195 | 195 | } |
196 | 196 | |
197 | ||
197 | ||
198 | 198 | { |
199 | terracre_state *state = screen.machine().driver_data<terracre_state>(); | |
200 | if( state->m_xscroll&0x2000 ) | |
199 | if( m_xscroll&0x2000 ) | |
201 | 200 | bitmap.fill(get_black_pen(screen.machine()), cliprect ); |
202 | 201 | else |
203 | | |
202 | | |
204 | 203 | |
205 | 204 | draw_sprites(screen.machine(), bitmap,cliprect ); |
206 | | |
205 | | |
207 | 206 | return 0; |
208 | 207 | } |
r17967 | r17968 | |
---|---|---|
244 | 244 | |
245 | 245 | ***************************************************************************/ |
246 | 246 | |
247 | ||
247 | ||
248 | 248 | { |
249 | ddribble_state *state = screen.machine().driver_data<ddribble_state>(); | |
250 | 249 | set_pens(screen.machine()); |
251 | 250 | |
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); | |
254 | 253 | |
255 | 254 | /* 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]); | |
260 | 259 | |
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); | |
265 | 264 | return 0; |
266 | 265 | } |
r17967 | r17968 | |
---|---|---|
55 | 55 | flip_screen_y_set(~data & 1); |
56 | 56 | } |
57 | 57 | |
58 | ||
58 | ||
59 | 59 | { |
60 | mouser_state *state = screen.machine().driver_data<mouser_state>(); | |
61 | UINT8 *spriteram = state->m_spriteram; | |
60 | UINT8 *spriteram = m_spriteram; | |
62 | 61 | int offs; |
63 | 62 | int sx, sy; |
64 | 63 | int flipx, flipy; |
r17967 | r17968 | |
72 | 71 | sx = offs % 32; |
73 | 72 | sy = offs / 32; |
74 | 73 | |
75 | if ( | |
74 | if ( | |
76 | 75 | { |
77 | 76 | sx = 31 - sx; |
78 | 77 | } |
79 | 78 | |
80 | if ( | |
79 | if ( | |
81 | 80 | { |
82 | 81 | sy = 31 - sy; |
83 | 82 | } |
r17967 | r17968 | |
92 | 91 | color_offs = offs % 32 + ((256 + 8 * (offs / 32) - spriteram[offs % 32] )% 256) / 8 * 32; |
93 | 92 | |
94 | 93 | 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(), | |
98 | 97 | 8*sx,scrolled_y_position); |
99 | 98 | } |
100 | 99 | |
r17967 | r17968 | |
109 | 108 | flipx = BIT(spriteram[offs], 6); |
110 | 109 | flipy = BIT(spriteram[offs], 7); |
111 | 110 | |
112 | if ( | |
111 | if ( | |
113 | 112 | { |
114 | 113 | flipx = !flipx; |
115 | 114 | sx = 240 - sx; |
116 | 115 | } |
117 | 116 | |
118 | if ( | |
117 | if ( | |
119 | 118 | { |
120 | 119 | flipy = !flipy; |
121 | 120 | sy = 238 - sy; |
r17967 | r17968 | |
138 | 137 | flipx = BIT(spriteram[offs], 6); |
139 | 138 | flipy = BIT(spriteram[offs], 7); |
140 | 139 | |
141 | if ( | |
140 | if ( | |
142 | 141 | { |
143 | 142 | flipx = !flipx; |
144 | 143 | sx = 240 - sx; |
145 | 144 | } |
146 | 145 | |
147 | if ( | |
146 | if ( | |
148 | 147 | { |
149 | 148 | flipy = !flipy; |
150 | 149 | sy = 238 - sy; |
r17967 | r17968 | |
---|---|---|
999 | 999 | *************************************/ |
1000 | 1000 | |
1001 | 1001 | /* TODO: alg.c requires that this uses RGB32 */ |
1002 | ||
1002 | ||
1003 | 1003 | { |
1004 | 1004 | int y; |
1005 | 1005 |
r17967 | r17968 | |
---|---|---|
346 | 346 | SCREEN REFRESH |
347 | 347 | **************************************************************/ |
348 | 348 | |
349 | ||
349 | ||
350 | 350 | { |
351 | 351 | device_t *tc0100scn = screen.machine().device("tc0100scn"); |
352 | 352 | device_t *tc0480scp = screen.machine().device("tc0480scp"); |
r17967 | r17968 | |
356 | 356 | UINT16 priority; |
357 | 357 | |
358 | 358 | #ifdef MAME_DEBUG |
359 | undrfire_state *state = screen.machine().driver_data<undrfire_state>(); | |
360 | 359 | if (screen.machine().input().code_pressed_once (KEYCODE_X)) |
361 | 360 | { |
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]); | |
364 | 363 | } |
365 | 364 | if (screen.machine().input().code_pressed_once (KEYCODE_C)) |
366 | 365 | { |
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]); | |
369 | 368 | } |
370 | 369 | |
371 | 370 | if (screen.machine().input().code_pressed_once (KEYCODE_V)) |
372 | 371 | { |
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]); | |
375 | 374 | } |
376 | 375 | |
377 | 376 | if (screen.machine().input().code_pressed_once (KEYCODE_B)) |
378 | 377 | { |
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]); | |
381 | 380 | } |
382 | 381 | |
383 | 382 | if (screen.machine().input().code_pressed_once (KEYCODE_N)) |
384 | 383 | { |
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]); | |
387 | 386 | } |
388 | 387 | |
389 | 388 | if (screen.machine().input().code_pressed_once (KEYCODE_M)) |
390 | 389 | { |
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]); | |
393 | 392 | } |
394 | 393 | #endif |
395 | 394 | |
r17967 | r17968 | |
422 | 421 | tc0100scn_tilemap_draw(tc0100scn, bitmap, cliprect, pivlayer[1], 0, 0); |
423 | 422 | |
424 | 423 | #ifdef MAME_DEBUG |
425 | if ( | |
424 | if ( | |
426 | 425 | #endif |
427 | 426 | tc0480scp_tilemap_draw(tc0480scp, bitmap, cliprect, layer[0], 0, 1); |
428 | 427 | |
429 | 428 | #ifdef MAME_DEBUG |
430 | if ( | |
429 | if ( | |
431 | 430 | #endif |
432 | 431 | tc0480scp_tilemap_draw(tc0480scp, bitmap, cliprect, layer[1], 0, 2); |
433 | 432 | |
434 | 433 | #ifdef MAME_DEBUG |
435 | if ( | |
434 | if ( | |
436 | 435 | #endif |
437 | 436 | tc0480scp_tilemap_draw(tc0480scp, bitmap, cliprect, layer[2], 0, 4); |
438 | 437 | |
439 | 438 | #ifdef MAME_DEBUG |
440 | if ( | |
439 | if ( | |
441 | 440 | #endif |
442 | 441 | tc0480scp_tilemap_draw(tc0480scp, bitmap, cliprect, layer[3], 0, 8); |
443 | 442 | |
444 | 443 | #ifdef MAME_DEBUG |
445 | if ( | |
444 | if ( | |
446 | 445 | #endif |
447 | 446 | /* Sprites have variable priority (we kludge this on road levels) */ |
448 | 447 | { |
r17967 | r17968 | |
459 | 458 | } |
460 | 459 | |
461 | 460 | #ifdef MAME_DEBUG |
462 | if ( | |
461 | if ( | |
463 | 462 | #endif |
464 | 463 | tc0100scn_tilemap_draw(tc0100scn, bitmap, cliprect, pivlayer[2], 0, 0); /* piv text layer */ |
465 | 464 | |
r17967 | r17968 | |
481 | 480 | |
482 | 481 | for (i = 0; i < 8; i += 1) |
483 | 482 | { |
484 | sprintf (buf, "%02x: %04x", i, | |
483 | sprintf (buf, "%02x: %04x", i, | |
485 | 484 | ui_draw_text (buf, 0, i*8); |
486 | 485 | } |
487 | 486 | } |
r17967 | r17968 | |
490 | 489 | } |
491 | 490 | |
492 | 491 | |
493 | ||
492 | ||
494 | 493 | { |
495 | 494 | device_t *tc0100scn = screen.machine().device("tc0100scn"); |
496 | 495 | device_t *tc0480scp = screen.machine().device("tc0480scp"); |
r17967 | r17968 | |
500 | 499 | UINT16 priority; |
501 | 500 | |
502 | 501 | #ifdef MAME_DEBUG |
503 | undrfire_state *state = screen.machine().driver_data<undrfire_state>(); | |
504 | 502 | if (screen.machine().input().code_pressed_once (KEYCODE_X)) |
505 | 503 | { |
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]); | |
508 | 506 | } |
509 | 507 | if (screen.machine().input().code_pressed_once (KEYCODE_C)) |
510 | 508 | { |
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]); | |
513 | 511 | } |
514 | 512 | |
515 | 513 | if (screen.machine().input().code_pressed_once (KEYCODE_V)) |
516 | 514 | { |
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]); | |
519 | 517 | } |
520 | 518 | |
521 | 519 | if (screen.machine().input().code_pressed_once (KEYCODE_B)) |
522 | 520 | { |
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]); | |
525 | 523 | } |
526 | 524 | |
527 | 525 | if (screen.machine().input().code_pressed_once (KEYCODE_N)) |
528 | 526 | { |
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]); | |
531 | 529 | } |
532 | 530 | |
533 | 531 | if (screen.machine().input().code_pressed_once (KEYCODE_M)) |
534 | 532 | { |
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]); | |
537 | 535 | } |
538 | 536 | #endif |
539 | 537 | |
r17967 | r17968 | |
566 | 564 | tc0100scn_tilemap_draw(tc0100scn, bitmap, cliprect, pivlayer[1], 0, 0); |
567 | 565 | |
568 | 566 | #ifdef MAME_DEBUG |
569 | if ( | |
567 | if ( | |
570 | 568 | #endif |
571 | 569 | tc0480scp_tilemap_draw(tc0480scp, bitmap, cliprect, layer[0], 0, 1); |
572 | 570 | |
573 | 571 | #ifdef MAME_DEBUG |
574 | if ( | |
572 | if ( | |
575 | 573 | #endif |
576 | 574 | tc0480scp_tilemap_draw(tc0480scp, bitmap, cliprect, layer[1], 0, 2); |
577 | 575 | |
578 | 576 | #ifdef MAME_DEBUG |
579 | if ( | |
577 | if ( | |
580 | 578 | #endif |
581 | 579 | tc0480scp_tilemap_draw(tc0480scp, bitmap, cliprect, layer[2], 0, 4); |
582 | 580 | |
583 | 581 | #ifdef MAME_DEBUG |
584 | if ( | |
582 | if ( | |
585 | 583 | #endif |
586 | 584 | tc0480scp_tilemap_draw(tc0480scp, bitmap, cliprect, layer[3], 0, 8); |
587 | 585 | |
588 | 586 | #ifdef MAME_DEBUG |
589 | if ( | |
587 | if ( | |
590 | 588 | #endif |
591 | 589 | /* Sprites have variable priority (we kludge this on road levels) */ |
592 | 590 | { |
r17967 | r17968 | |
603 | 601 | } |
604 | 602 | |
605 | 603 | #ifdef MAME_DEBUG |
606 | if ( | |
604 | if ( | |
607 | 605 | #endif |
608 | 606 | tc0100scn_tilemap_draw(tc0100scn, bitmap, cliprect, pivlayer[2], 0, 0); /* piv text layer */ |
609 | 607 | |
r17967 | r17968 | |
617 | 615 | |
618 | 616 | for (i = 0; i < 8; i += 1) |
619 | 617 | { |
620 | sprintf (buf, "%02x: %04x", i, | |
618 | sprintf (buf, "%02x: %04x", i, | |
621 | 619 | ui_draw_text (buf, 0, i*8); |
622 | 620 | } |
623 | 621 | } |
r17967 | r17968 | |
---|---|---|
17 | 17 | #include "video/saa5050.h" |
18 | 18 | #include "includes/malzak.h" |
19 | 19 | |
20 | ||
20 | ||
21 | 21 | { |
22 | 22 | const rgb_t *palette = palette_entry_list_raw(bitmap.palette()); |
23 | malzak_state *state = screen.machine().driver_data<malzak_state>(); | |
24 | 23 | int sx, sy; |
25 | 24 | int x,y; |
26 | 25 | |
27 | 26 | bitmap.fill(RGB_BLACK); |
28 | 27 | |
29 | | |
28 | | |
30 | 29 | |
31 | 30 | // playfield - not sure exactly how this works... |
32 | 31 | for (x = 0; x < 16; x++) |
33 | 32 | for (y = 0; y < 16; y++) |
34 | 33 | { |
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; | |
37 | 36 | |
38 | 37 | if (sx < -271*2) |
39 | 38 | sx += 512*2; |
40 | 39 | if (sx < -15*2) |
41 | 40 | sx += 256*2; |
42 | 41 | |
43 | drawgfxzoom_transpen(bitmap,cliprect, screen.machine().gfx[0], | |
42 | drawgfxzoom_transpen(bitmap,cliprect, screen.machine().gfx[0], | |
44 | 43 | } |
45 | 44 | |
46 | 45 | /* 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); | |
49 | 48 | |
50 | 49 | /* copy the S2636 images into the main bitmap */ |
51 | 50 | { |
r17967 | r17968 | |
---|---|---|
558 | 558 | |
559 | 559 | /******************************************************************************/ |
560 | 560 | |
561 | ||
561 | void | |
562 | 562 | { |
563 | 563 | |
564 | 564 | } |
565 | 565 | |
566 | ||
566 | void | |
567 | 567 | { |
568 | 568 | |
569 | 569 | } |
r17967 | r17968 | |
571 | 571 | |
572 | 572 | /******************************************************************************/ |
573 | 573 | |
574 | ||
574 | ||
575 | 575 | { |
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"); | |
579 | 578 | |
580 | screen.machine().tilemap().set_flip_all( | |
579 | screen.machine().tilemap().set_flip_all( | |
581 | 580 | |
582 | 581 | screen.machine().priority_bitmap.fill(0, cliprect); |
583 | 582 | bitmap.fill(screen.machine().pens[0x000], cliprect); // Palette index not confirmed |
584 | 583 | |
585 | deco16ic_set_pf1_8bpp_mode( | |
584 | deco16ic_set_pf1_8bpp_mode( | |
586 | 585 | |
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); | |
589 | 588 | |
590 | 589 | // pf4 not used (because pf3 is in 8bpp mode) |
591 | 590 | |
592 | if (( | |
591 | if (( | |
593 | 592 | { |
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); | |
596 | 595 | } |
597 | 596 | else |
598 | 597 | { |
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); | |
601 | 600 | } |
602 | 601 | |
603 | deco16ic_tilemap_1_draw( | |
602 | deco16ic_tilemap_1_draw( | |
604 | 603 | |
605 | 604 | screen.machine().device<decospr_device>("spritegen")->set_alt_format(true); |
606 | screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, | |
605 | screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, | |
607 | 606 | |
608 | 607 | return 0; |
609 | 608 | } |
610 | 609 | |
611 | ||
610 | ||
612 | 611 | { |
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"); | |
616 | 614 | |
617 | 615 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
618 | 616 | |
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); | |
621 | 619 | |
622 | //deco16ic_set_pf3_8bpp_mode( | |
620 | //deco16ic_set_pf3_8bpp_mode( | |
623 | 621 | |
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); | |
627 | 625 | |
628 | 626 | // zooming sprite draw is very slow, and sprites are buffered.. however, one of the levels attempts to use |
629 | 627 | // partial updates for every line, which causes things to be very slow... the sprites appear to support |
r17967 | r17968 | |
639 | 637 | { |
640 | 638 | rectangle clip(cliprect.min_x, cliprect.max_x, 8, 247); |
641 | 639 | |
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); | |
644 | 642 | |
645 | 643 | } |
646 | 644 | |
r17967 | r17968 | |
648 | 646 | } |
649 | 647 | |
650 | 648 | |
651 | ||
649 | ||
652 | 650 | { |
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"); | |
656 | 653 | |
657 | 654 | screen.machine().priority_bitmap.fill(0, cliprect); |
658 | 655 | bitmap.fill(screen.machine().pens[0x000], cliprect); // Palette index not confirmed |
659 | 656 | |
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); | |
662 | 659 | |
663 | screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, | |
660 | screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, | |
664 | 661 | |
665 | 662 | /* Draw screen */ |
666 | deco16ic_tilemap_2_draw( | |
663 | deco16ic_tilemap_2_draw( | |
667 | 664 | |
668 | if( | |
665 | if( | |
669 | 666 | { |
670 | deco16ic_tilemap_2_draw( | |
667 | deco16ic_tilemap_2_draw( | |
671 | 668 | screen.machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0800, 0x0800, 1024, 0x1ff); |
672 | deco16ic_tilemap_1_draw( | |
669 | deco16ic_tilemap_1_draw( | |
673 | 670 | } |
674 | 671 | else |
675 | 672 | { |
676 | deco16ic_tilemap_1_draw( | |
673 | deco16ic_tilemap_1_draw( | |
677 | 674 | screen.machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0800, 0x0800, 1024, 0x1ff); |
678 | deco16ic_tilemap_2_draw( | |
675 | deco16ic_tilemap_2_draw( | |
679 | 676 | } |
680 | 677 | |
681 | 678 | screen.machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0800, 1024, 0x1ff); |
682 | 679 | |
683 | deco16ic_tilemap_1_draw( | |
680 | deco16ic_tilemap_1_draw( | |
684 | 681 | return 0; |
685 | 682 | } |
686 | 683 | |
r17967 | r17968 | |
825 | 822 | } |
826 | 823 | } |
827 | 824 | |
828 | ||
825 | ||
829 | 826 | { |
830 | deco32_state *state = screen.machine().driver_data<deco32_state>(); | |
831 | 827 | 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"); | |
834 | 830 | |
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); | |
837 | 833 | |
838 | 834 | /* This is not a conclusive test for deciding if tilemap needs alpha blending */ |
839 | if ( | |
835 | if ( | |
840 | 836 | alphaTilemap=1; |
841 | 837 | |
842 | if ( | |
838 | if ( | |
843 | 839 | updateAceRam(screen.machine()); |
844 | 840 | |
845 | 841 | screen.machine().priority_bitmap.fill(0, cliprect); |
r17967 | r17968 | |
850 | 846 | screen.machine().device<decospr_device>("spritegen1")->set_pix_raw_shift(8); |
851 | 847 | screen.machine().device<decospr_device>("spritegen2")->set_pix_raw_shift(8); |
852 | 848 | |
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); | |
855 | 851 | |
856 | 852 | |
857 | 853 | /* Render alpha-blended tilemap to separate buffer for proper mixing */ |
858 | | |
854 | | |
859 | 855 | |
860 | 856 | /* Draw playfields & sprites */ |
861 | if ( | |
857 | if ( | |
862 | 858 | { |
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); | |
865 | 861 | } |
866 | 862 | else |
867 | 863 | { |
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) | |
870 | 866 | { |
871 | deco16ic_tilemap_2_draw( | |
867 | deco16ic_tilemap_2_draw( | |
872 | 868 | if (alphaTilemap) |
873 | deco16ic_tilemap_1_draw( | |
869 | deco16ic_tilemap_1_draw( | |
874 | 870 | else |
875 | deco16ic_tilemap_1_draw( | |
871 | deco16ic_tilemap_1_draw( | |
876 | 872 | } |
877 | 873 | else |
878 | 874 | { |
879 | deco16ic_tilemap_1_draw( | |
875 | deco16ic_tilemap_1_draw( | |
880 | 876 | if (alphaTilemap) |
881 | deco16ic_tilemap_2_draw( | |
877 | deco16ic_tilemap_2_draw( | |
882 | 878 | else |
883 | deco16ic_tilemap_2_draw( | |
879 | deco16ic_tilemap_2_draw( | |
884 | 880 | } |
885 | 881 | } |
886 | 882 | |
887 | 883 | mixDualAlphaSprites(bitmap, cliprect, screen.machine().gfx[3], screen.machine().gfx[4], alphaTilemap); |
888 | 884 | |
889 | deco16ic_tilemap_1_draw( | |
885 | deco16ic_tilemap_1_draw( | |
890 | 886 | return 0; |
891 | 887 | } |
r17967 | r17968 | |
---|---|---|
329 | 329 | * |
330 | 330 | *************************************/ |
331 | 331 | |
332 | ||
332 | ||
333 | 333 | { |
334 | 334 | int x, y; |
335 | 335 | |
r17967 | r17968 | |
338 | 338 | /* normal update case */ |
339 | 339 | if (!screen.machine().input().code_pressed(KEYCODE_W)) |
340 | 340 | { |
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]); | |
343 | 342 | int xoffs = screen.visible_area().min_x; |
344 | 343 | for (y = cliprect.min_y; y <= cliprect.max_y; y++) |
345 | 344 | { |
r17967 | r17968 | |
---|---|---|
1154 | 1154 | #endif |
1155 | 1155 | } |
1156 | 1156 | |
1157 | ||
1157 | ||
1158 | 1158 | { |
1159 | argus_state *state = screen.machine().driver_data<argus_state>(); | |
1160 | 1159 | bg_setting(screen.machine()); |
1161 | 1160 | |
1162 | 1161 | /* scroll BG0 and render tile at proper position */ |
1163 | 1162 | argus_bg0_scroll_handle(screen.machine()); |
1164 | 1163 | |
1165 | | |
1164 | | |
1166 | 1165 | 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); | |
1169 | 1168 | argus_draw_sprites(screen.machine(), bitmap, cliprect, 1); |
1170 | | |
1169 | | |
1171 | 1170 | return 0; |
1172 | 1171 | } |
1173 | 1172 | |
1174 | ||
1173 | ||
1175 | 1174 | { |
1176 | argus_state *state = screen.machine().driver_data<argus_state>(); | |
1177 | 1175 | bg_setting(screen.machine()); |
1178 | 1176 | |
1179 | if ( | |
1177 | if ( | |
1180 | 1178 | valtric_draw_mosaic(screen, bitmap, cliprect); |
1181 | 1179 | else |
1182 | 1180 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
1183 | 1181 | valtric_draw_sprites(screen.machine(), bitmap, cliprect); |
1184 | | |
1182 | | |
1185 | 1183 | return 0; |
1186 | 1184 | } |
1187 | 1185 | |
1188 | ||
1186 | ||
1189 | 1187 | { |
1190 | argus_state *state = screen.machine().driver_data<argus_state>(); | |
1191 | 1188 | bg_setting(screen.machine()); |
1192 | 1189 | |
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); | |
1195 | 1192 | else |
1196 | 1193 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
1197 | if ( | |
1194 | if ( | |
1198 | 1195 | butasan_draw_sprites(screen.machine(), bitmap, cliprect); |
1199 | | |
1196 | | |
1200 | 1197 | |
1201 | 1198 | butasan_log_vram(screen.machine()); |
1202 | 1199 | return 0; |
r17967 | r17968 | |
---|---|---|
343 | 343 | } |
344 | 344 | |
345 | 345 | |
346 | ||
346 | ||
347 | 347 | { |
348 | 348 | static const rgb_t objpix_lookup[8] = |
349 | 349 | { |
r17967 | r17968 | |
357 | 357 | MAKE_RGB(RGB_MAX,RGB_MAX,RGB_MAX) |
358 | 358 | }; |
359 | 359 | |
360 | grchamp_state *state = screen.machine().driver_data<grchamp_state>(); | |
361 | 360 | const UINT8 *amedata = screen.machine().root_device().memregion("gfx5")->base(); |
362 | 361 | 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(); | |
367 | 366 | 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; | |
371 | 370 | int cxmask; |
372 | 371 | int x, y; |
373 | 372 | |
r17967 | r17968 | |
376 | 375 | assert(lpixmap.height() == rpixmap.height() && lpixmap.height() == cpixmap.height()); |
377 | 376 | |
378 | 377 | /* 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]; | |
384 | 383 | |
385 | 384 | /* determine the center background mask, controlled by attribute bit 0x20 */ |
386 | cxmask = ( | |
385 | cxmask = ( | |
387 | 386 | |
388 | 387 | /* iterate over scanlines */ |
389 | 388 | for (y = cliprect.min_y; y <= cliprect.max_y; y++) |
r17967 | r17968 | |
400 | 399 | UINT8 objdata[256]; |
401 | 400 | |
402 | 401 | /* draw the objects for this scanline */ |
403 | draw_objects(screen.machine(), | |
402 | draw_objects(screen.machine(), | |
404 | 403 | |
405 | 404 | /* iterate over columns */ |
406 | 405 | for (x = cliprect.min_x; x <= cliprect.max_x; x++) |
r17967 | r17968 | |
423 | 422 | objpix = objdata[x]; |
424 | 423 | |
425 | 424 | /* 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) | |
429 | 428 | { |
430 | 429 | int bits = headdata[((mydh & 0x38) >> 3) | |
431 | 430 | ((mydv & 0x3f) << 3) | |
432 | 431 | ((~mydv & 0x40) << 3) | |
433 | (( | |
432 | (( | |
434 | 433 | headbit = (bits >> (~mydh & 0x07)) & 0x01; |
435 | 434 | } |
436 | 435 | |
437 | 436 | /* if the headlamp is on and we're not in the headlamp area, */ |
438 | 437 | /* and this isn't a character pixel, the /KILL switch is set */ |
439 | if (( | |
438 | if (( | |
440 | 439 | { |
441 | 440 | kill = 1; |
442 | 441 | objpix &= ~7; |
r17967 | r17968 | |
454 | 453 | /* handle collision detection between MYCARRED and MVID/OBJECT */ |
455 | 454 | |
456 | 455 | /* skip if the state is being held clear, or if we already have a collision */ |
457 | if (( | |
456 | if (( | |
458 | 457 | { |
459 | 458 | if (objpix & 0x08) |
460 | 459 | { |
461 | 460 | mame_printf_debug("Collide car/object @ (%d,%d)\n", x, y); |
462 | | |
461 | | |
463 | 462 | } |
464 | 463 | else if ((mvid & 0x0f) != 0) |
465 | 464 | { |
466 | 465 | mame_printf_debug("Collide car/bg @ (%d,%d)\n", x, y); |
467 | | |
466 | | |
468 | 467 | } |
469 | 468 | } |
470 | 469 | } |
r17967 | r17968 | |
475 | 474 | /* if rain is enabled, it ORs against the bits */ |
476 | 475 | if (amebase != 0) |
477 | 476 | { |
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; | |
480 | 479 | if ((amedata[(amebase << 5) | (effy << 1) | (effx >> 3)] >> (effx & 0x07)) & 0x01) |
481 | 480 | objpix |= 7; |
482 | 481 | } |
483 | 482 | |
484 | 483 | /* if the radar is on, it ORs against the bits */ |
485 | if (y >= 192 && ( | |
484 | if (y >= 192 && ( | |
486 | 485 | { |
487 | if (( | |
486 | if (( | |
488 | 487 | objpix |= 7; |
489 | 488 | } |
490 | 489 | |
491 | 490 | /* handle collision detection between MVID and OBJECT */ |
492 | if (!( | |
491 | if (!( | |
493 | 492 | { |
494 | 493 | mame_printf_debug("Collide bg/object @ (%d,%d)\n", x, y); |
495 | | |
494 | | |
496 | 495 | } |
497 | 496 | |
498 | 497 | /* |
r17967 | r17968 | |
521 | 520 | |
522 | 521 | /* otherwise, it's the background, unless it's been KILL'ed */ |
523 | 522 | else if (!kill) |
524 | finalpix = | |
523 | finalpix = | |
525 | 524 | |
526 | 525 | /* in which case it's black */ |
527 | 526 | else |
r17967 | r17968 | |
---|---|---|
167 | 167 | } |
168 | 168 | } |
169 | 169 | |
170 | ||
170 | ||
171 | 171 | { |
172 | lkage_state *state = screen.machine().driver_data<lkage_state>(); | |
173 | 172 | int bank; |
174 | 173 | |
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); | |
177 | 176 | |
178 | bank = | |
177 | bank = | |
179 | 178 | |
180 | if ( | |
179 | if ( | |
181 | 180 | { |
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(); | |
184 | 183 | } |
185 | 184 | |
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) | |
188 | 187 | { |
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(); | |
191 | 190 | } |
192 | 191 | |
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) | |
195 | 194 | { |
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(); | |
198 | 197 | } |
199 | 198 | |
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); | |
203 | 202 | |
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]); | |
206 | 205 | |
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]); | |
209 | 208 | |
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]); | |
212 | 211 | |
213 | 212 | screen.machine().priority_bitmap.fill(0, cliprect); |
214 | if (( | |
213 | if (( | |
215 | 214 | { |
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); | |
219 | 218 | draw_sprites(screen.machine(), bitmap, cliprect); |
220 | 219 | } |
221 | 220 | else |
222 | 221 | { |
223 | | |
222 | | |
224 | 223 | } |
225 | 224 | |
226 | 225 | return 0; |
r17967 | r17968 | |
---|---|---|
641 | 641 | } |
642 | 642 | } |
643 | 643 | |
644 | ||
644 | ||
645 | 645 | { |
646 | gaiden_state *state = screen.machine().driver_data<gaiden_state>(); | |
647 | 646 | screen.machine().priority_bitmap.fill(0, cliprect); |
648 | 647 | |
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); | |
652 | 651 | |
653 | 652 | /* 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); | |
656 | 655 | /* draw the blended tiles at a lower priority |
657 | 656 | 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); | |
660 | 659 | |
661 | 660 | /* draw sprites into a 16-bit bitmap */ |
662 | gaiden_draw_sprites(screen.machine(), | |
661 | gaiden_draw_sprites(screen.machine(), | |
663 | 662 | |
664 | 663 | /* mix & blend the tilemaps and sprites into a 32-bit bitmap */ |
665 | blendbitmaps(screen.machine(), bitmap, | |
664 | blendbitmaps(screen.machine(), bitmap, | |
666 | 665 | return 0; |
667 | 666 | |
668 | 667 | } |
669 | 668 | |
670 | ||
669 | ||
671 | 670 | { |
672 | gaiden_state *state = screen.machine().driver_data<gaiden_state>(); | |
673 | 671 | screen.machine().priority_bitmap.fill(0, cliprect); |
674 | 672 | |
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); | |
678 | 676 | |
679 | 677 | /* 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); | |
682 | 680 | /* draw the blended tiles at a lower priority |
683 | 681 | 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); | |
686 | 684 | |
687 | 685 | /* draw sprites into a 16-bit bitmap */ |
688 | raiga_draw_sprites(screen.machine(), | |
686 | raiga_draw_sprites(screen.machine(), | |
689 | 687 | |
690 | 688 | /* mix & blend the tilemaps and sprites into a 32-bit bitmap */ |
691 | blendbitmaps(screen.machine(), bitmap, | |
689 | blendbitmaps(screen.machine(), bitmap, | |
692 | 690 | return 0; |
693 | 691 | } |
694 | 692 | |
695 | ||
693 | ||
696 | 694 | { |
697 | gaiden_state *state = screen.machine().driver_data<gaiden_state>(); | |
698 | 695 | screen.machine().priority_bitmap.fill(0, cliprect); |
699 | 696 | |
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); | |
703 | 700 | drgnbowl_draw_sprites(screen.machine(), bitmap, cliprect); |
704 | 701 | return 0; |
705 | 702 | } |
r17967 | r17968 | |
---|---|---|
460 | 460 | * |
461 | 461 | *************************************/ |
462 | 462 | |
463 | ||
463 | ||
464 | 464 | { |
465 | zaxxon_state *state = screen.machine().driver_data<zaxxon_state>(); | |
466 | 465 | |
467 | 466 | draw_background(screen.machine(), bitmap, cliprect, TRUE); |
468 | 467 | draw_sprites(screen.machine(), bitmap, cliprect, 0x140, 0x180); |
469 | | |
468 | | |
470 | 469 | return 0; |
471 | 470 | } |
472 | 471 | |
473 | 472 | |
474 | ||
473 | ||
475 | 474 | { |
476 | zaxxon_state *state = screen.machine().driver_data<zaxxon_state>(); | |
477 | 475 | |
478 | 476 | draw_background(screen.machine(), bitmap, cliprect, TRUE); |
479 | 477 | draw_sprites(screen.machine(), bitmap, cliprect, 0x180, 0x180); |
480 | | |
478 | | |
481 | 479 | return 0; |
482 | 480 | } |
483 | 481 | |
484 | 482 | |
485 | ||
483 | ||
486 | 484 | { |
487 | zaxxon_state *state = screen.machine().driver_data<zaxxon_state>(); | |
488 | 485 | |
489 | 486 | draw_background(screen.machine(), bitmap, cliprect, FALSE); |
490 | 487 | draw_sprites(screen.machine(), bitmap, cliprect, 0x140, 0x180); |
491 | | |
488 | | |
492 | 489 | return 0; |
493 | 490 | } |
494 | 491 | |
495 | 492 | |
496 | ||
493 | ||
497 | 494 | { |
498 | zaxxon_state *state = screen.machine().driver_data<zaxxon_state>(); | |
499 | 495 | |
500 | 496 | draw_background(screen.machine(), bitmap, cliprect, TRUE); |
501 | 497 | draw_sprites(screen.machine(), bitmap, cliprect, 0x280, 0x180); |
502 | | |
498 | | |
503 | 499 | return 0; |
504 | 500 | } |
r17967 | r17968 | |
---|---|---|
182 | 182 | } |
183 | 183 | } |
184 | 184 | |
185 | ||
185 | ||
186 | 186 | { |
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 ); | |
192 | 191 | |
193 | | |
192 | | |
194 | 193 | shangkid_draw_sprites(screen.machine(), bitmap,cliprect ); |
195 | | |
194 | | |
196 | 195 | return 0; |
197 | 196 | } |
198 | 197 | |
r17967 | r17968 | |
319 | 318 | } |
320 | 319 | } |
321 | 320 | |
322 | ||
321 | ||
323 | 322 | { |
324 | 323 | dynamski_draw_background(screen.machine(), bitmap,cliprect, 0 ); |
325 | 324 | dynamski_draw_sprites(screen.machine(), bitmap,cliprect ); |
r17967 | r17968 | |
---|---|---|
243 | 243 | |
244 | 244 | |
245 | 245 | |
246 | ||
246 | ||
247 | 247 | { |
248 | trackfld_state *state = screen.machine().driver_data<trackfld_state>(); | |
249 | 248 | int row, scrollx; |
250 | 249 | |
251 | 250 | for (row = 0; row < 32; row++) |
252 | 251 | { |
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); | |
256 | 255 | } |
257 | 256 | |
258 | | |
257 | | |
259 | 258 | draw_sprites(screen.machine(), bitmap, cliprect); |
260 | 259 | return 0; |
261 | 260 | } |
r17967 | r17968 | |
---|---|---|
295 | 295 | } |
296 | 296 | |
297 | 297 | |
298 | ||
298 | ||
299 | 299 | { |
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); | |
303 | 302 | draw_sprites(screen.machine(), bitmap, cliprect); |
304 | 303 | |
305 | 304 | return 0; |
r17967 | r17968 | |
362 | 361 | palette_set_color(machine(),256+64+1,MAKE_RGB(0x00,0x00,0x00)); |
363 | 362 | } |
364 | 363 | |
365 | ||
364 | ||
366 | 365 | { |
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); | |
369 | 367 | galaxold_draw_stars(screen.machine(), bitmap, cliprect); |
370 | | |
368 | | |
371 | 369 | draw_sprites(screen.machine(), bitmap, cliprect); |
372 | | |
370 | | |
373 | 371 | |
374 | 372 | return 0; |
375 | 373 | } |
r17967 | r17968 | |
---|---|---|
124 | 124 | |
125 | 125 | /******************************************************************************/ |
126 | 126 | |
127 | ||
127 | ||
128 | 128 | { |
129 | karnov_state *state = screen.machine().driver_data<karnov_state>(); | |
130 | 129 | 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); | |
133 | 132 | return 0; |
134 | 133 | } |
135 | 134 |
r17967 | r17968 | |
---|---|---|
257 | 257 | } |
258 | 258 | } |
259 | 259 | |
260 | ||
260 | ||
261 | 261 | { |
262 | lwings_state *state = screen.machine().driver_data<lwings_state>(); | |
263 | 262 | |
264 | | |
263 | | |
265 | 264 | lwings_draw_sprites(screen.machine(), bitmap, cliprect); |
266 | | |
265 | | |
267 | 266 | return 0; |
268 | 267 | } |
269 | 268 | |
270 | ||
269 | ||
271 | 270 | { |
272 | lwings_state *state = screen.machine().driver_data<lwings_state>(); | |
273 | 271 | |
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); | |
276 | 274 | 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); | |
279 | 277 | return 0; |
280 | 278 | } |
r17967 | r17968 | |
---|---|---|
351 | 351 | } |
352 | 352 | |
353 | 353 | |
354 | ||
354 | ||
355 | 355 | { |
356 | punchout_state *state = screen.machine().driver_data<punchout_state>(); | |
357 | 356 | |
358 | punchout_copy_top_palette(screen.machine(), BIT(* | |
357 | punchout_copy_top_palette(screen.machine(), BIT(* | |
359 | 358 | |
360 | | |
359 | | |
361 | 360 | |
362 | if ( | |
361 | if ( | |
363 | 362 | draw_big_sprite(screen.machine(), bitmap, cliprect, 0); |
364 | 363 | |
365 | 364 | return 0; |
366 | 365 | } |
367 | 366 | |
368 | ||
367 | ||
369 | 368 | { |
370 | punchout_state *state = screen.machine().driver_data<punchout_state>(); | |
371 | 369 | int offs; |
372 | 370 | |
373 | punchout_copy_bot_palette(screen.machine(), BIT(* | |
371 | punchout_copy_bot_palette(screen.machine(), BIT(* | |
374 | 372 | |
375 | 373 | /* copy the character mapped graphics */ |
376 | 374 | for (offs = 0;offs < 32;offs++) |
377 | | |
375 | | |
378 | 376 | |
379 | | |
377 | | |
380 | 378 | |
381 | if ( | |
379 | if ( | |
382 | 380 | draw_big_sprite(screen.machine(), bitmap, cliprect, 1); |
383 | 381 | drawbs2(screen.machine(), bitmap, cliprect); |
384 | 382 | |
r17967 | r17968 | |
386 | 384 | } |
387 | 385 | |
388 | 386 | |
389 | ||
387 | ||
390 | 388 | { |
391 | punchout_state *state = screen.machine().driver_data<punchout_state>(); | |
392 | 389 | |
393 | punchout_copy_top_palette(screen.machine(), BIT(* | |
390 | punchout_copy_top_palette(screen.machine(), BIT(* | |
394 | 391 | |
395 | | |
392 | | |
396 | 393 | |
397 | if ( | |
394 | if ( | |
398 | 395 | armwrest_draw_big_sprite(screen.machine(), bitmap, cliprect, 0); |
399 | 396 | |
400 | 397 | return 0; |
401 | 398 | } |
402 | 399 | |
403 | ||
400 | ||
404 | 401 | { |
405 | punchout_state *state = screen.machine().driver_data<punchout_state>(); | |
406 | 402 | |
407 | punchout_copy_bot_palette(screen.machine(), BIT(* | |
403 | punchout_copy_bot_palette(screen.machine(), BIT(* | |
408 | 404 | |
409 | | |
405 | | |
410 | 406 | |
411 | if ( | |
407 | if ( | |
412 | 408 | armwrest_draw_big_sprite(screen.machine(), bitmap, cliprect, 1); |
413 | 409 | drawbs2(screen.machine(), bitmap, cliprect); |
414 | 410 | |
415 | | |
411 | | |
416 | 412 | |
417 | 413 | return 0; |
418 | 414 | } |
r17967 | r17968 | |
---|---|---|
90 | 90 | m_bg_tilemap->set_scrolldx(16, 16); |
91 | 91 | } |
92 | 92 | |
93 | ||
93 | ||
94 | 94 | { |
95 | kopunch_state *state = screen.machine().driver_data<kopunch_state>(); | |
96 | 95 | |
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); | |
99 | 98 | |
100 | 99 | return 0; |
101 | 100 | } |
r17967 | r17968 | |
---|---|---|
237 | 237 | } |
238 | 238 | |
239 | 239 | |
240 | ||
240 | ||
241 | 241 | { |
242 | tecmo_state *state = screen.machine().driver_data<tecmo_state>(); | |
243 | 242 | screen.machine().priority_bitmap.fill(0, cliprect); |
244 | 243 | 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); | |
248 | 247 | |
249 | 248 | draw_sprites(screen.machine(), bitmap,cliprect); |
250 | 249 | return 0; |
r17967 | r17968 | |
---|---|---|
91 | 91 | |
92 | 92 | ***************************************************************************/ |
93 | 93 | |
94 | ||
94 | ||
95 | 95 | { |
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); | |
99 | 98 | return 0; |
100 | 99 | } |
r17967 | r17968 | |
---|---|---|
100 | 100 | } |
101 | 101 | } |
102 | 102 | |
103 | ||
103 | ||
104 | 104 | { |
105 | galpanic_state *state = screen.machine().driver_data<galpanic_state>(); | |
106 | 105 | device_t *pandora = screen.machine().device("pandora"); |
107 | 106 | |
108 | 107 | /* copy the temporary bitmap to the screen */ |
109 | copybitmap(bitmap, | |
108 | copybitmap(bitmap, | |
110 | 109 | |
111 | 110 | draw_fgbitmap(screen.machine(), bitmap, cliprect); |
112 | 111 | |
r17967 | r17968 | |
115 | 114 | return 0; |
116 | 115 | } |
117 | 116 | |
118 | ||
117 | ||
119 | 118 | { |
120 | galpanic_state *state = screen.machine().driver_data<galpanic_state>(); | |
121 | 119 | /* copy the temporary bitmap to the screen */ |
122 | copybitmap(bitmap, | |
120 | copybitmap(bitmap, | |
123 | 121 | |
124 | 122 | draw_fgbitmap(screen.machine(), bitmap, cliprect); |
125 | 123 | |
126 | 124 | |
127 | 125 | // if(galpanic_clear_sprites) |
128 | 126 | { |
129 | | |
127 | | |
130 | 128 | comad_draw_sprites(screen.machine(),bitmap,cliprect); |
131 | 129 | } |
132 | 130 | // else |
133 | 131 | // { |
134 | 132 | // /* 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); | |
137 | 135 | // } |
138 | 136 | return 0; |
139 | 137 | } |
r17967 | r17968 | |
---|---|---|
82 | 82 | |
83 | 83 | |
84 | 84 | |
85 | ||
85 | ||
86 | 86 | { |
87 | finalizr_state *state = screen.machine().driver_data<finalizr_state>(); | |
88 | 87 | int offs; |
89 | 88 | |
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(); | |
92 | 91 | |
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); | |
95 | 94 | |
96 | 95 | /* Draw the sprites. */ |
97 | 96 | { |
98 | 97 | gfx_element *gfx1 = screen.machine().gfx[1]; |
99 | 98 | gfx_element *gfx2 = screen.machine().gfx[2]; |
100 | 99 | |
101 | UINT8 *sr = | |
100 | UINT8 *sr = | |
102 | 101 | |
103 | 102 | |
104 | for (offs = 0; offs <= | |
103 | for (offs = 0; offs <= | |
105 | 104 | { |
106 | 105 | int sx, sy, flipx, flipy, code, color, size; |
107 | 106 | |
r17967 | r17968 | |
119 | 118 | |
120 | 119 | if (size >= 0x10) /* 32x32 */ |
121 | 120 | { |
122 | if ( | |
121 | if ( | |
123 | 122 | { |
124 | 123 | sx = 256 - sx; |
125 | 124 | sy = 224 - sy; |
r17967 | r17968 | |
150 | 149 | } |
151 | 150 | else |
152 | 151 | { |
153 | if ( | |
152 | if ( | |
154 | 153 | { |
155 | 154 | sx = ((size & 0x08) ? 280:272) - sx; |
156 | 155 | sy = ((size & 0x04) ? 248:240) - sy; |
r17967 | r17968 | |
216 | 215 | /* draw top status region */ |
217 | 216 | clip.min_x = visarea.min_x; |
218 | 217 | 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); | |
221 | 220 | } |
222 | 221 | return 0; |
223 | 222 | } |
r17967 | r17968 | |
---|---|---|
87 | 87 | * |
88 | 88 | *************************************/ |
89 | 89 | |
90 | ||
90 | ||
91 | 91 | { |
92 | shuuz_state *state = screen.machine().driver_data<shuuz_state>(); | |
93 | 92 | atarimo_rect_list rectlist; |
94 | 93 | bitmap_ind16 *mobitmap; |
95 | 94 | int x, y, r; |
96 | 95 | |
97 | 96 | /* draw the playfield */ |
98 | | |
97 | | |
99 | 98 | |
100 | 99 | /* draw and merge the MO */ |
101 | 100 | mobitmap = atarimo_render(0, cliprect, &rectlist); |
r17967 | r17968 | |
---|---|---|
111 | 111 | } |
112 | 112 | } |
113 | 113 | |
114 | ||
114 | ||
115 | 115 | { |
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); | |
118 | 117 | draw_sprites(screen.machine(), bitmap, cliprect); |
119 | 118 | return 0; |
120 | 119 | } |
r17967 | r17968 | |
---|---|---|
655 | 655 | } |
656 | 656 | |
657 | 657 | |
658 | ||
658 | ||
659 | 659 | { |
660 | cclimber_state *state = screen.machine().driver_data<cclimber_state>(); | |
661 | 660 | bitmap.fill(CCLIMBER_BG_PEN, cliprect); |
662 | 661 | draw_playfield(screen.machine(), bitmap, cliprect); |
663 | 662 | |
664 | 663 | /* draw the "big sprite" under the regular sprites */ |
665 | if (( | |
664 | if (( | |
666 | 665 | { |
667 | 666 | cclimber_draw_bigsprite(screen.machine(), bitmap, cliprect); |
668 | 667 | cclimber_draw_sprites(bitmap, cliprect, screen.machine().gfx[1]); |
r17967 | r17968 | |
679 | 678 | } |
680 | 679 | |
681 | 680 | |
682 | ||
681 | ||
683 | 682 | { |
684 | 683 | cclimber_state *state = screen.machine().driver_data<cclimber_state>(); |
685 | 684 | int i; |
686 | UINT8 *sky_rom = | |
685 | UINT8 *sky_rom = | |
687 | 686 | |
688 | 687 | for (i = 0; i < 0x100; i++) |
689 | 688 | { |
r17967 | r17968 | |
697 | 696 | draw_playfield(screen.machine(), bitmap, cliprect); |
698 | 697 | |
699 | 698 | /* draw the "big sprite" under the regular sprites */ |
700 | if (( | |
699 | if (( | |
701 | 700 | { |
702 | 701 | cclimber_draw_bigsprite(screen.machine(), bitmap, cliprect); |
703 | 702 | toprollr_draw_sprites(bitmap, cliprect, screen.machine().gfx[1]); |
r17967 | r17968 | |
714 | 713 | } |
715 | 714 | |
716 | 715 | |
717 | ||
716 | ||
718 | 717 | { |
719 | 718 | cclimber_state *state = screen.machine().driver_data<cclimber_state>(); |
720 | 719 | swimmer_set_background_pen(screen.machine()); |
721 | 720 | |
722 | if (* | |
721 | if (* | |
723 | 722 | { |
724 | 723 | if (CCLIMBER_FLIP_X) |
725 | 724 | { |
r17967 | r17968 | |
750 | 749 | draw_playfield(screen.machine(), bitmap, cliprect); |
751 | 750 | |
752 | 751 | /* draw the "big sprite" under the regular sprites */ |
753 | if (( | |
752 | if (( | |
754 | 753 | { |
755 | 754 | cclimber_draw_bigsprite(screen.machine(), bitmap, cliprect); |
756 | 755 | swimmer_draw_sprites(bitmap, cliprect, screen.machine().gfx[1]); |
r17967 | r17968 | |
767 | 766 | } |
768 | 767 | |
769 | 768 | |
770 | ||
769 | ||
771 | 770 | { |
772 | 771 | cclimber_state *state = screen.machine().driver_data<cclimber_state>(); |
773 | 772 | rectangle scroll_area_clip = cliprect; |
r17967 | r17968 | |
776 | 775 | |
777 | 776 | bitmap.fill(CCLIMBER_BG_PEN, cliprect); |
778 | 777 | |
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) | | |
781 | 780 | (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); | |
784 | 783 | |
785 | 784 | /* draw the "big sprite" over the regular sprites */ |
786 | if (( | |
785 | if (( | |
787 | 786 | { |
788 | 787 | toprollr_draw_sprites(bitmap, scroll_area_clip, screen.machine().gfx[1]); |
789 | 788 | toprollr_draw_bigsprite(screen.machine(), bitmap, scroll_area_clip); |
r17967 | r17968 | |
796 | 795 | toprollr_draw_sprites(bitmap, scroll_area_clip, screen.machine().gfx[1]); |
797 | 796 | } |
798 | 797 | |
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) | | |
801 | 800 | (CCLIMBER_FLIP_Y ? TILEMAP_FLIPY : 0)); |
802 | | |
801 | | |
803 | 802 | |
804 | 803 | return 0; |
805 | 804 | } |
r17967 | r17968 | |
---|---|---|
86 | 86 | } |
87 | 87 | |
88 | 88 | |
89 | ||
89 | ||
90 | 90 | { |
91 | speedspn_state *state = screen.machine().driver_data<speedspn_state>(); | |
92 | if (state->m_display_disable) | |
91 | if (m_display_disable) | |
93 | 92 | { |
94 | 93 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
95 | 94 | return 0; |
r17967 | r17968 | |
99 | 98 | { |
100 | 99 | FILE* f; |
101 | 100 | f = fopen("vidram.bin","wb"); |
102 | fwrite( | |
101 | fwrite( | |
103 | 102 | fclose(f); |
104 | 103 | } |
105 | 104 | #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); | |
108 | 107 | draw_sprites(screen.machine(), bitmap,cliprect); |
109 | 108 | return 0; |
110 | 109 | } |
r17967 | r17968 | |
---|---|---|
859 | 859 | * |
860 | 860 | *************************************/ |
861 | 861 | |
862 | ||
862 | ||
863 | 863 | { |
864 | 864 | int y; |
865 | 865 |
r17967 | r17968 | |
---|---|---|
222 | 222 | } |
223 | 223 | } |
224 | 224 | |
225 | ||
225 | ||
226 | 226 | { |
227 | cloak_state *state = screen.machine().driver_data<cloak_state>(); | |
228 | 227 | set_pens(screen.machine()); |
229 | | |
228 | | |
230 | 229 | draw_bitmap(screen.machine(), bitmap, cliprect); |
231 | 230 | draw_sprites(screen.machine(), bitmap, cliprect); |
232 | 231 | return 0; |
r17967 | r17968 | |
---|---|---|
111 | 111 | * |
112 | 112 | *************************************/ |
113 | 113 | |
114 | ||
114 | ||
115 | 115 | { |
116 | foodf_state *state = screen.machine().driver_data<foodf_state>(); | |
117 | 116 | int offs; |
118 | 117 | gfx_element *gfx = screen.machine().gfx[1]; |
119 | 118 | bitmap_ind8 &priority_bitmap = screen.machine().priority_bitmap; |
120 | UINT16 *spriteram16 = | |
119 | UINT16 *spriteram16 = | |
121 | 120 | |
122 | 121 | /* first draw the playfield opaquely */ |
123 | | |
122 | | |
124 | 123 | |
125 | 124 | /* then draw the non-transparent parts with a priority of 1 */ |
126 | 125 | priority_bitmap.fill(0); |
127 | | |
126 | | |
128 | 127 | |
129 | 128 | /* draw the motion objects front-to-back */ |
130 | 129 | for (offs = 0x80-2; offs >= 0x20; offs -= 2) |
r17967 | r17968 | |
---|---|---|
630 | 630 | } |
631 | 631 | } /* draw_background */ |
632 | 632 | |
633 | ||
633 | ||
634 | 634 | { |
635 | namcona1_state *state = screen.machine().driver_data<namcona1_state>(); | |
636 | 635 | int which; |
637 | 636 | int priority; |
638 | 637 | |
639 | /* int flipscreen = | |
638 | /* int flipscreen = | |
640 | 639 | |
641 | if( | |
640 | if( | |
642 | 641 | { /* gfx enabled */ |
643 | if( | |
642 | if( | |
644 | 643 | { |
645 | 644 | /* palette updates are delayed when graphics are disabled */ |
646 | 645 | for( which=0; which<0x1000; which++ ) |
647 | 646 | { |
648 | 647 | UpdatePalette(screen.machine(), which ); |
649 | 648 | } |
650 | | |
649 | | |
651 | 650 | } |
652 | 651 | UpdateGfx(screen.machine()); |
653 | 652 | for( which=0; which<NAMCONA1_NUM_TILEMAPS; which++ ) |
654 | 653 | { |
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] ) | |
657 | 656 | { |
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; | |
660 | 659 | } |
661 | 660 | } /* next tilemap */ |
662 | 661 | |
663 | 662 | { /* 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 ) | |
666 | 665 | { |
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; | |
669 | 668 | } |
670 | 669 | } |
671 | 670 | |
r17967 | r17968 | |
680 | 679 | int pri; |
681 | 680 | if( which==4 ) |
682 | 681 | { |
683 | pri = | |
682 | pri = | |
684 | 683 | } |
685 | 684 | else |
686 | 685 | { |
687 | pri = | |
686 | pri = | |
688 | 687 | } |
689 | 688 | if( pri == priority ) |
690 | 689 | { |
r17967 | r17968 | |
---|---|---|
367 | 367 | } |
368 | 368 | } |
369 | 369 | |
370 | ||
370 | ||
371 | 371 | { |
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; | |
374 | 373 | |
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); | |
378 | 377 | |
379 | switch ( | |
378 | switch ( | |
380 | 379 | { |
381 | 380 | case 0: /* terra force, kozure ookami */ |
382 | 381 | case 2: /* legion */ |
383 | 382 | 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)); | |
386 | 385 | break; |
387 | 386 | |
388 | 387 | 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); | |
391 | 390 | break; |
392 | 391 | |
393 | 392 | } |
394 | 393 | |
395 | 394 | bitmap.fill(0xff, cliprect ); |
396 | 395 | |
397 | | |
396 | | |
398 | 397 | |
399 | | |
398 | | |
400 | 399 | |
401 | 400 | if (sprite_enable) |
402 | 401 | draw_sprites(screen.machine(), bitmap, cliprect, 2); |
403 | 402 | |
404 | | |
403 | | |
405 | 404 | |
406 | 405 | if (sprite_enable) |
407 | 406 | draw_sprites(screen.machine(), bitmap, cliprect, 1); |
r17967 | r17968 | |
409 | 408 | if (sprite_enable) |
410 | 409 | draw_sprites(screen.machine(), bitmap, cliprect, 0); |
411 | 410 | |
412 | | |
411 | | |
413 | 412 | |
414 | 413 | return 0; |
415 | 414 | } |
r17967 | r17968 | |
---|---|---|
50 | 50 | } |
51 | 51 | } |
52 | 52 | |
53 | ||
53 | ||
54 | 54 | { |
55 | bsktball_state *state = screen.machine().driver_data<bsktball_state>(); | |
56 | 55 | |
57 | | |
56 | | |
58 | 57 | draw_sprites(screen.machine(), bitmap, cliprect); |
59 | 58 | return 0; |
60 | 59 | } |
r17967 | r17968 | |
---|---|---|
952 | 952 | } |
953 | 953 | } |
954 | 954 | |
955 | ||
955 | ||
956 | 956 | { |
957 | dkong_state *state = screen.machine().driver_data<dkong_state>(); | |
958 | 957 | |
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); | |
962 | 961 | |
963 | switch ( | |
962 | switch ( | |
964 | 963 | { |
965 | 964 | case HARDWARE_TKG02: |
966 | 965 | case HARDWARE_TKG04: |
967 | 966 | check_palette(screen.machine()); |
968 | | |
967 | | |
969 | 968 | draw_sprites(screen.machine(), bitmap, cliprect, 0x40, 1); |
970 | 969 | break; |
971 | 970 | case HARDWARE_TRS01: |
972 | 971 | case HARDWARE_TRS02: |
973 | | |
972 | | |
974 | 973 | draw_sprites(screen.machine(), bitmap, cliprect, 0x40, 1); |
975 | radarscp_draw_background(screen.machine(), | |
974 | radarscp_draw_background(screen.machine(), | |
976 | 975 | break; |
977 | 976 | default: |
978 | 977 | fatalerror("Invalid hardware type in dkong_video_update\n"); |
r17967 | r17968 | |
980 | 979 | return 0; |
981 | 980 | } |
982 | 981 | |
983 | ||
982 | ||
984 | 983 | { |
985 | dkong_state *state = screen.machine().driver_data<dkong_state>(); | |
986 | 984 | int offs; |
987 | 985 | |
988 | | |
986 | | |
989 | 987 | |
990 | 988 | /* Draw the sprites. */ |
991 | for (offs = 0;offs < | |
989 | for (offs = 0;offs < | |
992 | 990 | { |
993 | if ( | |
991 | if ( | |
994 | 992 | { |
995 | 993 | 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); | |
1000 | 998 | } |
1001 | 999 | } |
1002 | 1000 | return 0; |
1003 | 1001 | } |
1004 | 1002 | |
1005 | ||
1003 | ||
1006 | 1004 | { |
1007 | dkong_state *state = screen.machine().driver_data<dkong_state>(); | |
1008 | 1005 | |
1009 | | |
1006 | | |
1010 | 1007 | |
1011 | 1008 | /* it uses sprite_ram[offs + 2] & 0x10 for sprite bank */ |
1012 | 1009 | draw_sprites(screen.machine(), bitmap, cliprect, 0x10, 3); |
r17967 | r17968 | |
---|---|---|
55 | 55 | } |
56 | 56 | |
57 | 57 | |
58 | ||
58 | ||
59 | 59 | { |
60 | sprint4_state *state = screen.machine().driver_data<sprint4_state>(); | |
61 | UINT8 *videoram = state->m_videoram; | |
60 | UINT8 *videoram = m_videoram; | |
62 | 61 | int i; |
63 | 62 | |
64 | | |
63 | | |
65 | 64 | |
66 | 65 | for (i = 0; i < 4; i++) |
67 | 66 | { |
r17967 | r17968 | |
86 | 85 | } |
87 | 86 | |
88 | 87 | |
89 | ||
88 | void | |
90 | 89 | { |
91 | 90 | // rising edge |
92 | if ( | |
91 | if (st | |
93 | 92 | { |
94 | sprint4_state *state = screen.machine().driver_data<sprint4_state>(); | |
95 | UINT8 *videoram = state->m_videoram; | |
93 | UINT8 *videoram = m_videoram; | |
96 | 94 | int i; |
97 | 95 | |
98 | 96 | /* check for sprite-playfield collisions */ |
r17967 | r17968 | |
119 | 117 | |
120 | 118 | rect &= screen.machine().primary_screen->visible_area(); |
121 | 119 | |
122 | | |
120 | | |
123 | 121 | |
124 | 122 | if (i & 1) |
125 | 123 | bank = 32; |
126 | 124 | |
127 | drawgfx_transpen( | |
125 | drawgfx_transpen( | |
128 | 126 | (code >> 3) | bank, |
129 | 127 | 4, |
130 | 128 | 0, 0, |
r17967 | r17968 | |
133 | 131 | |
134 | 132 | for (y = rect.min_y; y <= rect.max_y; y++) |
135 | 133 | 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; | |
138 | 136 | } |
139 | 137 | |
140 | 138 | /* update sound status */ |
r17967 | r17968 | |
---|---|---|
265 | 265 | } |
266 | 266 | |
267 | 267 | |
268 | ||
268 | ||
269 | 269 | { |
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); | |
272 | 271 | |
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); | |
275 | 274 | |
276 | 275 | /* draw sprites */ |
277 | if ( | |
276 | if ( | |
278 | 277 | { |
279 | 278 | /* sprite set #1 */ |
280 | appoooh_draw_sprites(bitmap, cliprect, screen.machine().gfx[2], | |
279 | appoooh_draw_sprites(bitmap, cliprect, screen.machine().gfx[2], | |
281 | 280 | /* sprite set #2 */ |
282 | appoooh_draw_sprites(bitmap, cliprect, screen.machine().gfx[3], | |
281 | appoooh_draw_sprites(bitmap, cliprect, screen.machine().gfx[3], | |
283 | 282 | } |
284 | 283 | else |
285 | 284 | { |
286 | 285 | /* sprite set #2 */ |
287 | appoooh_draw_sprites(bitmap, cliprect, screen.machine().gfx[3], | |
286 | appoooh_draw_sprites(bitmap, cliprect, screen.machine().gfx[3], | |
288 | 287 | /* sprite set #1 */ |
289 | appoooh_draw_sprites(bitmap, cliprect, screen.machine().gfx[2], | |
288 | appoooh_draw_sprites(bitmap, cliprect, screen.machine().gfx[2], | |
290 | 289 | } |
291 | 290 | |
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); | |
294 | 293 | |
295 | 294 | return 0; |
296 | 295 | } |
297 | 296 | |
298 | ||
297 | ||
299 | 298 | { |
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); | |
302 | 300 | |
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); | |
305 | 303 | |
306 | 304 | /* draw sprites */ |
307 | if ( | |
305 | if ( | |
308 | 306 | { |
309 | 307 | /* sprite set #1 */ |
310 | robowres_draw_sprites(bitmap, cliprect, screen.machine().gfx[2], | |
308 | robowres_draw_sprites(bitmap, cliprect, screen.machine().gfx[2], | |
311 | 309 | /* sprite set #2 */ |
312 | robowres_draw_sprites(bitmap, cliprect, screen.machine().gfx[3], | |
310 | robowres_draw_sprites(bitmap, cliprect, screen.machine().gfx[3], | |
313 | 311 | } |
314 | 312 | else |
315 | 313 | { |
316 | 314 | /* sprite set #2 */ |
317 | robowres_draw_sprites(bitmap, cliprect, screen.machine().gfx[3], | |
315 | robowres_draw_sprites(bitmap, cliprect, screen.machine().gfx[3], | |
318 | 316 | /* sprite set #1 */ |
319 | robowres_draw_sprites(bitmap, cliprect, screen.machine().gfx[2], | |
317 | robowres_draw_sprites(bitmap, cliprect, screen.machine().gfx[2], | |
320 | 318 | } |
321 | 319 | |
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); | |
324 | 322 | |
325 | 323 | return 0; |
326 | 324 | } |
r17967 | r17968 | |
---|---|---|
132 | 132 | } |
133 | 133 | |
134 | 134 | |
135 | ||
135 | ||
136 | 136 | { |
137 | skyraid_state *state = screen.machine().driver_data<skyraid_state>(); | |
138 | 137 | |
139 | 138 | bitmap.fill(0, cliprect); |
140 | 139 | |
141 | 140 | rectangle helper_clip = cliprect; |
142 | helper_clip &= | |
141 | helper_clip &= | |
143 | 142 | |
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); | |
148 | 147 | draw_text(screen.machine(), bitmap, cliprect); |
149 | 148 | return 0; |
150 | 149 | } |
r17967 | r17968 | |
---|---|---|
329 | 329 | } |
330 | 330 | |
331 | 331 | |
332 | ||
332 | ||
333 | 333 | { |
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); | |
336 | 335 | draw_sprites(screen.machine(), bitmap,cliprect); |
337 | | |
336 | | |
338 | 337 | return 0; |
339 | 338 | } |
r17967 | r17968 | |
---|---|---|
72 | 72 | |
73 | 73 | ***************************************************************************/ |
74 | 74 | |
75 | ||
75 | ||
76 | 76 | { |
77 | aliens_state *state = screen.machine().driver_data<aliens_state>(); | |
78 | 77 | |
79 | k052109_tilemap_update( | |
78 | k052109_tilemap_update( | |
80 | 79 | |
81 | 80 | screen.machine().priority_bitmap.fill(0, cliprect); |
82 | bitmap.fill( | |
81 | bitmap.fill( | |
83 | 82 | |
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); | |
87 | 86 | |
88 | k051960_sprites_draw( | |
87 | k051960_sprites_draw( | |
89 | 88 | return 0; |
90 | 89 | } |
r17967 | r17968 | |
---|---|---|
235 | 235 | |
236 | 236 | ***************************************************************************/ |
237 | 237 | |
238 | ||
238 | ||
239 | 239 | { |
240 | metlclsh_state *state = screen.machine().driver_data<metlclsh_state>(); | |
241 | 240 | |
242 | 241 | bitmap.fill(0x10, cliprect); |
243 | 242 | |
244 | | |
243 | | |
245 | 244 | |
246 | if ( | |
245 | if ( | |
247 | 246 | { |
248 | 247 | /* 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); | |
252 | 251 | } |
253 | 252 | draw_sprites(screen.machine(), bitmap, cliprect); // sprites |
254 | | |
253 | | |
255 | 254 | |
256 | // popmessage("%02X", | |
255 | // popmessage("%02X", | |
257 | 256 | return 0; |
258 | 257 | } |
259 | 258 |
r17967 | r17968 | |
---|---|---|
54 | 54 | |
55 | 55 | ***************************************************************************/ |
56 | 56 | |
57 | ||
57 | ||
58 | 58 | { |
59 | _88games_state *state = screen.machine().driver_data<_88games_state>(); | |
60 | 59 | |
61 | k052109_tilemap_update( | |
60 | k052109_tilemap_update( | |
62 | 61 | |
63 | if ( | |
62 | if ( | |
64 | 63 | { |
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); | |
71 | 70 | } |
72 | 71 | else |
73 | 72 | { |
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 | |
80 | 79 | } |
81 | 80 | |
82 | 81 | return 0; |
r17967 | r17968 | |
---|---|---|
19 | 19 | #endif |
20 | 20 | } |
21 | 21 | |
22 | ||
22 | ||
23 | 23 | { |
24 | beezer_state *state = screen.machine().driver_data<beezer_state>(); | |
25 | UINT8 *videoram = state->m_videoram; | |
24 | UINT8 *videoram = m_videoram; | |
26 | 25 | int x,y; |
27 | 26 | |
28 | 27 | for (y = cliprect.min_y; y <= cliprect.max_y; y++) |
r17967 | r17968 | |
---|---|---|
44 | 44 | |
45 | 45 | } |
46 | 46 | |
47 | static | |
47 | UINT32 kaneko16_state::screen_update_common(screen_device &screen, bitmap_ind | |
48 | 48 | { |
49 | 49 | int i; |
50 | kaneko16_state *state = screen.machine().driver_data<kaneko16_state>(); | |
51 | 50 | |
52 | 51 | screen.machine().priority_bitmap.fill(0, cliprect); |
53 | 52 | |
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); | |
56 | 55 | |
57 | 56 | for ( i = 0; i < 8; i++ ) |
58 | 57 | { |
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); | |
61 | 60 | } |
62 | 61 | |
63 | 62 | return 0; |
r17967 | r17968 | |
67 | 66 | |
68 | 67 | |
69 | 68 | |
70 | ||
69 | ||
71 | 70 | { |
72 | kaneko16_state *state = screen.machine().driver_data<kaneko16_state>(); | |
73 | 71 | kaneko16_fill_bitmap(screen.machine(),bitmap,cliprect); |
74 | 72 | |
75 | 73 | // if the display is disabled, do nothing? |
76 | if (! | |
74 | if (! | |
77 | 75 | |
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()); | |
80 | 78 | return 0; |
81 | 79 | } |
82 | 80 | |
r17967 | r17968 | |
191 | 189 | // flag = 0; |
192 | 190 | } |
193 | 191 | } |
194 | ||
192 | ||
195 | 193 | { |
196 | kaneko16_state *state = screen.machine().driver_data<kaneko16_state>(); | |
197 | 194 | // berlwall uses a 15bpp bitmap as a bg, not a solid fill |
198 | 195 | kaneko16_render_15bpp_bitmap(screen.machine(),bitmap,cliprect); |
199 | 196 | |
200 | 197 | // if the display is disabled, do nothing? |
201 | if (! | |
198 | if (! | |
202 | 199 | |
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()); | |
205 | 202 | return 0; |
206 | 203 | } |
r17967 | r17968 | |
---|---|---|
362 | 362 | |
363 | 363 | |
364 | 364 | |
365 | ||
365 | ||
366 | 366 | { |
367 | goldstar_state *state = screen.machine().driver_data<goldstar_state>(); | |
368 | 367 | int i; |
369 | 368 | |
370 | 369 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
371 | 370 | |
372 | if (!( | |
371 | if (!( | |
373 | 372 | return 0; |
374 | 373 | |
375 | if ( | |
374 | if ( | |
376 | 375 | { |
377 | 376 | for (i= 0;i < 64;i++) |
378 | 377 | { |
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]); | |
382 | 381 | } |
383 | 382 | |
384 | 383 | |
r17967 | r17968 | |
387 | 386 | const rectangle visible2(0*8, (14+48)*8-1, 12*8, (12+7)*8-1); |
388 | 387 | const rectangle visible3(0*8, (14+48)*8-1, 20*8, (20+7)*8-1); |
389 | 388 | |
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); | |
393 | 392 | } |
394 | 393 | |
395 | if ( | |
394 | if ( | |
396 | 395 | { |
397 | 396 | if (screen.machine().root_device().memregion("user1")->base()) |
398 | 397 | { |
399 | 398 | 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); | |
402 | 401 | |
403 | drawgfxzoom_transpen(bitmap,cliprect,gfx, | |
402 | drawgfxzoom_transpen(bitmap,cliprect,gfx, | |
404 | 403 | } |
405 | 404 | } |
406 | 405 | |
407 | if ( | |
406 | if ( | |
408 | 407 | { |
409 | | |
408 | | |
410 | 409 | } |
411 | 410 | |
412 | 411 | return 0; |
413 | 412 | } |
414 | 413 | |
415 | 414 | |
416 | ||
415 | ||
417 | 416 | { |
418 | goldstar_state *state = screen.machine().driver_data<goldstar_state>(); | |
419 | 417 | int i; |
420 | 418 | |
421 | 419 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
422 | 420 | |
423 | if (!( | |
421 | if (!( | |
424 | 422 | return 0; |
425 | 423 | |
426 | if ( | |
424 | if ( | |
427 | 425 | { |
428 | 426 | for (i= 0;i < 64;i++) |
429 | 427 | { |
430 | | |
428 | | |
431 | 429 | } |
432 | 430 | |
433 | 431 | |
434 | 432 | const rectangle visible1(0*8, (14+48)*8-1, 3*8, (4+7)*8-1); |
435 | | |
433 | | |
436 | 434 | } |
437 | 435 | |
438 | if ( | |
436 | if ( | |
439 | 437 | { |
440 | 438 | if (screen.machine().root_device().memregion("user1")->base()) |
441 | 439 | { |
442 | 440 | 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); | |
445 | 443 | |
446 | drawgfxzoom_transpen(bitmap,cliprect,gfx, | |
444 | drawgfxzoom_transpen(bitmap,cliprect,gfx, | |
447 | 445 | } |
448 | 446 | } |
449 | 447 | |
450 | if ( | |
448 | if ( | |
451 | 449 | { |
452 | | |
450 | | |
453 | 451 | } |
454 | 452 | |
455 | 453 | return 0; |
456 | 454 | } |
457 | 455 | |
458 | 456 | |
459 | ||
457 | ||
460 | 458 | { |
461 | goldstar_state *state = screen.machine().driver_data<goldstar_state>(); | |
462 | 459 | int i; |
463 | 460 | |
464 | 461 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
465 | 462 | |
466 | if (!( | |
463 | if (!( | |
467 | 464 | return 0; |
468 | 465 | |
469 | if ( | |
466 | if ( | |
470 | 467 | { |
471 | 468 | // guess, could be wrong, but different screens clearly need different reel layouts |
472 | if ( | |
469 | if ( | |
473 | 470 | { |
474 | 471 | for (i= 0;i < 32;i++) |
475 | 472 | { |
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]); | |
479 | 476 | } |
480 | 477 | |
481 | 478 | |
482 | 479 | const rectangle visible1alt(0*8, (16+48)*8-1, 4*8, 16*8-1); |
483 | 480 | const rectangle visible2alt(0*8, (16+48)*8-1, 16*8, 28*8-1); |
484 | 481 | |
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); | |
488 | 485 | } |
489 | 486 | else |
490 | 487 | { |
491 | 488 | for (i= 0;i < 32;i++) |
492 | 489 | { |
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]); | |
496 | 493 | } |
497 | 494 | |
498 | 495 | |
r17967 | r17968 | |
500 | 497 | const rectangle visible2(0*8, (14+48)*8-1, 12*8, (12+8)*8-1); |
501 | 498 | const rectangle visible3(0*8, (14+48)*8-1, 20*8, (20+8)*8-1); |
502 | 499 | |
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); | |
506 | 503 | } |
507 | 504 | } |
508 | 505 | |
509 | if ( | |
506 | if ( | |
510 | 507 | { |
511 | | |
508 | | |
512 | 509 | } |
513 | 510 | |
514 | 511 | return 0; |
515 | 512 | } |
516 | 513 | |
517 | 514 | |
518 | ||
515 | ||
519 | 516 | { |
520 | goldstar_state *state = screen.machine().driver_data<goldstar_state>(); | |
521 | 517 | int i; |
522 | 518 | |
523 | 519 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
524 | 520 | |
525 | if (!( | |
521 | if (!( | |
526 | 522 | return 0; |
527 | 523 | |
528 | if ( | |
524 | if ( | |
529 | 525 | { |
530 | 526 | // guess, this could be something else completely!! |
531 | 527 | // only draw the first 'reels' tilemap, but fullscreen, using alt registers? (or no scrolling at all? - doubtful, see girl) |
532 | if ( | |
528 | if ( | |
533 | 529 | { |
534 | 530 | for (i= 0;i < 32;i++) |
535 | 531 | { |
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]); | |
539 | 535 | } |
540 | 536 | |
541 | | |
537 | | |
542 | 538 | |
543 | 539 | } |
544 | 540 | // or draw the reels normally? |
r17967 | r17968 | |
546 | 542 | { |
547 | 543 | for (i= 0;i < 32;i++) |
548 | 544 | { |
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]); | |
552 | 548 | } |
553 | 549 | |
554 | 550 | const rectangle visible1(0*8, (14+48)*8-1, 3*8, (3+7)*8-1); |
555 | 551 | const rectangle visible2(0*8, (14+48)*8-1, 10*8, (10+7)*8-1); |
556 | 552 | const rectangle visible3(0*8, (14+48)*8-1, 17*8, (17+7)*8-1); |
557 | 553 | |
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); | |
561 | 557 | } |
562 | 558 | } |
563 | 559 | |
564 | if ( | |
560 | if ( | |
565 | 561 | { |
566 | | |
562 | | |
567 | 563 | } |
568 | 564 | |
569 | 565 | return 0; |
570 | 566 | } |
571 | 567 | |
572 | ||
568 | ||
573 | 569 | { |
574 | goldstar_state *state = screen.machine().driver_data<goldstar_state>(); | |
575 | 570 | int i; |
576 | 571 | |
577 | 572 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
578 | 573 | |
579 | if (!( | |
574 | if (!( | |
580 | 575 | return 0; |
581 | 576 | |
582 | if ( | |
577 | if ( | |
583 | 578 | { |
584 | 579 | for (i= 0;i < 64;i++) |
585 | 580 | { |
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]); | |
589 | 584 | } |
590 | 585 | |
591 | 586 | const rectangle visible1(0*8, (14+48)*8-1, 4*8, (4+7)*8-1); /* same start for reel1 */ |
592 | 587 | const rectangle visible2(0*8, (14+48)*8-1, 11*8, (12+7)*8-1); /* 4 pixels less for reel2 */ |
593 | 588 | const rectangle visible3(0*8, (14+48)*8-1, 19*8, (19+7)*8-1); /* 8 pixels less for reel3 */ |
594 | 589 | |
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); | |
598 | 593 | } |
599 | 594 | |
600 | if ( | |
595 | if ( | |
601 | 596 | { |
602 | | |
597 | | |
603 | 598 | } |
604 | 599 | |
605 | 600 | return 0; |
606 | 601 | } |
607 | 602 | |
608 | ||
603 | ||
609 | 604 | { |
610 | goldstar_state *state = screen.machine().driver_data<goldstar_state>(); | |
611 | 605 | int i; |
612 | 606 | |
613 | 607 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
614 | 608 | |
615 | if (!( | |
609 | if (!( | |
616 | 610 | return 0; |
617 | 611 | |
618 | if ( | |
612 | if ( | |
619 | 613 | { |
620 | 614 | for (i= 0;i < 64;i++) |
621 | 615 | { |
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]); | |
625 | 619 | } |
626 | 620 | |
627 | 621 | const rectangle visible1(0*8, (14+48)*8-1, 4*8, (4+6)*8-1); |
628 | 622 | const rectangle visible2(0*8, (14+48)*8-1, 10*8, (10+6)*8-1); |
629 | 623 | const rectangle visible3(0*8, (14+48)*8-1, 16*8, (16+6)*8-1); |
630 | 624 | |
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); | |
634 | 628 | } |
635 | 629 | |
636 | if ( | |
630 | if ( | |
637 | 631 | { |
638 | 632 | // no girls |
639 | 633 | } |
640 | 634 | |
641 | if ( | |
635 | if ( | |
642 | 636 | { |
643 | | |
637 | | |
644 | 638 | } |
645 | 639 | |
646 | 640 | return 0; |
r17967 | r17968 | |
---|---|---|
92 | 92 | k053247_set_sprite_offs(m_k053246, -87, 32); |
93 | 93 | } |
94 | 94 | |
95 | ||
95 | ||
96 | 96 | { |
97 | dbz_state *state = screen.machine().driver_data<dbz_state>(); | |
98 | 97 | static const int K053251_CI[6] = { K053251_CI3, K053251_CI4, K053251_CI4, K053251_CI4, K053251_CI2, K053251_CI1 }; |
99 | 98 | int layer[5], plane, new_colorbase; |
100 | 99 | |
101 | | |
100 | | |
102 | 101 | |
103 | 102 | for (plane = 0; plane < 6; plane++) |
104 | 103 | { |
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) | |
107 | 106 | { |
108 | | |
107 | | |
109 | 108 | if (plane <= 3) |
110 | k056832_mark_plane_dirty( | |
109 | k056832_mark_plane_dirty( | |
111 | 110 | else if (plane == 4) |
112 | | |
111 | | |
113 | 112 | else if (plane == 5) |
114 | | |
113 | | |
115 | 114 | } |
116 | 115 | } |
117 | 116 | |
118 | 117 | //layers priority |
119 | 118 | |
120 | 119 | layer[0] = 0; |
121 | | |
120 | | |
122 | 121 | layer[1] = 1; |
123 | | |
122 | | |
124 | 123 | layer[2] = 3; |
125 | | |
124 | | |
126 | 125 | layer[3] = 4; |
127 | | |
126 | | |
128 | 127 | layer[4] = 5; |
129 | | |
128 | | |
130 | 129 | |
131 | konami_sortlayers5(layer, | |
130 | konami_sortlayers5(layer, | |
132 | 131 | |
133 | 132 | screen.machine().priority_bitmap.fill(0, cliprect); |
134 | 133 | |
r17967 | r17968 | |
148 | 147 | } |
149 | 148 | |
150 | 149 | if(layer[plane] == 4) |
151 | k053936_zoom_draw( | |
150 | k053936_zoom_draw( | |
152 | 151 | else if(layer[plane] == 5) |
153 | k053936_zoom_draw( | |
152 | k053936_zoom_draw( | |
154 | 153 | else |
155 | k056832_tilemap_draw( | |
154 | k056832_tilemap_draw( | |
156 | 155 | } |
157 | 156 | |
158 | k053247_sprites_draw( | |
157 | k053247_sprites_draw( | |
159 | 158 | return 0; |
160 | 159 | } |
161 | 160 |
r17967 | r17968 | |
---|---|---|
335 | 335 | #undef WC90_DRAW_SPRITE |
336 | 336 | |
337 | 337 | |
338 | ||
338 | ||
339 | 339 | { |
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]); | |
347 | 346 | |
348 | 347 | // draw_sprites(screen.machine(), bitmap,cliprect, 3 ); |
349 | | |
348 | | |
350 | 349 | draw_sprites(screen.machine(), bitmap,cliprect, 2 ); |
351 | | |
350 | | |
352 | 351 | draw_sprites(screen.machine(), bitmap,cliprect, 1 ); |
353 | | |
352 | | |
354 | 353 | draw_sprites(screen.machine(), bitmap,cliprect, 0 ); |
355 | 354 | return 0; |
356 | 355 | } |
r17967 | r17968 | |
---|---|---|
173 | 173 | * |
174 | 174 | *************************************/ |
175 | 175 | |
176 | ||
176 | ||
177 | 177 | { |
178 | gauntlet_state *state = screen.machine().driver_data<gauntlet_state>(); | |
179 | 178 | atarimo_rect_list rectlist; |
180 | 179 | bitmap_ind16 *mobitmap; |
181 | 180 | int x, y, r; |
182 | 181 | |
183 | 182 | /* draw the playfield */ |
184 | | |
183 | | |
185 | 184 | |
186 | 185 | /* draw and merge the MO */ |
187 | 186 | mobitmap = atarimo_render(0, cliprect, &rectlist); |
r17967 | r17968 | |
200 | 199 | if ((mo[x] & 0x0f) == 1) |
201 | 200 | { |
202 | 201 | /* Vindicators Part II has extra logic here for the bases */ |
203 | if (! | |
202 | if (! | |
204 | 203 | pf[x] ^= 0x80; |
205 | 204 | } |
206 | 205 | else |
r17967 | r17968 | |
212 | 211 | } |
213 | 212 | |
214 | 213 | /* add the alpha on top */ |
215 | | |
214 | | |
216 | 215 | return 0; |
217 | 216 | } |
r17967 | r17968 | |
---|---|---|
348 | 348 | |
349 | 349 | |
350 | 350 | |
351 | ||
351 | ||
352 | 352 | { |
353 | ms32_state *state = screen.machine().driver_data<ms32_state>(); | |
354 | 353 | int scrollx,scrolly; |
355 | 354 | int asc_pri; |
356 | 355 | int scr_pri; |
r17967 | r17968 | |
369 | 368 | for (i = 0;i < 0x10000;i++) // colors 0x3000-0x3fff are not used |
370 | 369 | update_color(screen.machine(), i); |
371 | 370 | |
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); | |
376 | 375 | |
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); | |
383 | 382 | |
384 | 383 | |
385 | 384 | screen.machine().priority_bitmap.fill(0, cliprect); |
r17967 | r17968 | |
388 | 387 | |
389 | 388 | /* TODO: 0 is correct for gametngk, but break f1superb scrolling grid (text at |
390 | 389 | top and bottom of the screen becomes black on black) */ |
391 | | |
390 | | |
392 | 391 | |
393 | 392 | /* 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); | |
396 | 395 | |
397 | draw_sprites(screen.machine(), | |
396 | draw_sprites(screen.machine(), | |
398 | 397 | |
399 | 398 | |
400 | 399 | |
401 | 400 | |
402 | 401 | asc_pri = scr_pri = rot_pri = 0; |
403 | 402 | |
404 | if(( | |
403 | if(( | |
405 | 404 | asc_pri++; |
406 | 405 | else |
407 | 406 | rot_pri++; |
408 | 407 | |
409 | if(( | |
408 | if(( | |
410 | 409 | asc_pri++; |
411 | 410 | else |
412 | 411 | scr_pri++; |
413 | 412 | |
414 | if(( | |
413 | if(( | |
415 | 414 | scr_pri++; |
416 | 415 | else |
417 | 416 | rot_pri++; |
418 | 417 | |
419 | 418 | if (rot_pri == 0) |
420 | draw_roz(screen.machine(), | |
419 | draw_roz(screen.machine(), | |
421 | 420 | else if (scr_pri == 0) |
422 | if ( | |
421 | if ( | |
423 | 422 | { |
424 | | |
423 | | |
425 | 424 | } |
426 | 425 | else |
427 | 426 | { |
428 | | |
427 | | |
429 | 428 | } |
430 | 429 | else if (asc_pri == 0) |
431 | | |
430 | | |
432 | 431 | |
433 | 432 | if (rot_pri == 1) |
434 | draw_roz(screen.machine(), | |
433 | draw_roz(screen.machine(), | |
435 | 434 | else if (scr_pri == 1) |
436 | if ( | |
435 | if ( | |
437 | 436 | { |
438 | | |
437 | | |
439 | 438 | } |
440 | 439 | else |
441 | 440 | { |
442 | | |
441 | | |
443 | 442 | } |
444 | 443 | else if (asc_pri == 1) |
445 | | |
444 | | |
446 | 445 | |
447 | 446 | if (rot_pri == 2) |
448 | draw_roz(screen.machine(), | |
447 | draw_roz(screen.machine(), | |
449 | 448 | else if (scr_pri == 2) |
450 | if ( | |
449 | if ( | |
451 | 450 | { |
452 | | |
451 | | |
453 | 452 | } |
454 | 453 | else |
455 | 454 | { |
456 | | |
455 | | |
457 | 456 | } |
458 | 457 | else if (asc_pri == 2) |
459 | | |
458 | | |
460 | 459 | |
461 | 460 | /* MIX it! */ |
462 | 461 | /* this mixing isn't 100% accurate, it should be using ALL the data in |
r17967 | r17968 | |
479 | 478 | |
480 | 479 | for (yy=0;yy<height;yy++) |
481 | 480 | { |
482 | srcptr_tile = & | |
481 | srcptr_tile = & | |
483 | 482 | 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); | |
486 | 485 | dstptr_bitmap = &bitmap.pix32(yy); |
487 | 486 | for (xx=0;xx<width;xx++) |
488 | 487 | { |
r17967 | r17968 | |
495 | 494 | int primask = 0; |
496 | 495 | |
497 | 496 | // 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; | |
506 | 505 | |
507 | 506 | |
508 | 507 | if (primask == 0x00) |
r17967 | r17968 | |
---|---|---|
60 | 60 | |
61 | 61 | /******************************************************************************/ |
62 | 62 | |
63 | ||
63 | ||
64 | 64 | { |
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); | |
67 | 66 | |
68 | 67 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
69 | 68 | |
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); | |
72 | 71 | |
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); | |
75 | 74 | |
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); | |
79 | 78 | |
80 | 79 | return 0; |
81 | 80 | } |
r17967 | r17968 | |
---|---|---|
406 | 406 | * |
407 | 407 | *************************************/ |
408 | 408 | |
409 | stat | |
409 | UINT32 _20pacgal_state::screen | |
410 | 410 | { |
411 | _20pacgal_state *state = screen.machine().driver_data<_20pacgal_state>(); | |
412 | 411 | |
413 | 412 | 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); | |
418 | 417 | |
419 | 418 | return 0; |
420 | 419 | } |
r17967 | r17968 | |
433 | 432 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
434 | 433 | MCFG_SCREEN_SIZE(SCREEN_WIDTH, SCREEN_HEIGHT) |
435 | 434 | MCFG_SCREEN_VISIBLE_AREA(0, SCREEN_WIDTH - 1, 0, SCREEN_HEIGHT - 1) |
436 | MCFG_SCREEN_UPDATE_ | |
435 | MCFG_SCREEN_UPDATE_DR | |
437 | 436 | MACHINE_CONFIG_END |
r17967 | r17968 | |
---|---|---|
134 | 134 | } |
135 | 135 | } |
136 | 136 | |
137 | ||
137 | ||
138 | 138 | { |
139 | seicross_state *state = screen.machine().driver_data<seicross_state>(); | |
140 | 139 | int col; |
141 | 140 | |
142 | 141 | for (col = 0; col < 32; col++) |
143 | | |
142 | | |
144 | 143 | |
145 | | |
144 | | |
146 | 145 | draw_sprites(screen.machine(), bitmap, cliprect); |
147 | 146 | return 0; |
148 | 147 | } |
r17967 | r17968 | |
---|---|---|
114 | 114 | machine().primary_screen->register_screen_bitmap(m_tile_bitmap_fg); |
115 | 115 | } |
116 | 116 | |
117 | ||
117 | ||
118 | 118 | { |
119 | spbactn_state *state = screen.machine().driver_data<spbactn_state>(); | |
120 | 119 | int offs, sx, sy; |
121 | 120 | |
122 | | |
121 | | |
123 | 122 | |
124 | 123 | /* draw table bg gfx */ |
125 | 124 | for (sx = sy = offs = 0; offs < 0x4000 / 2; offs++) |
126 | 125 | { |
127 | 126 | int attr, code, color; |
128 | 127 | |
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]; | |
131 | 130 | |
132 | 131 | color = ((attr & 0x00f0) >> 4) | 0x80; |
133 | 132 | |
134 | drawgfx_transpen_raw( | |
133 | drawgfx_transpen_raw( | |
135 | 134 | code, |
136 | 135 | screen.machine().gfx[1]->colorbase() + color * screen.machine().gfx[1]->granularity(), |
137 | 136 | 0, 0, |
r17967 | r17968 | |
146 | 145 | } |
147 | 146 | } |
148 | 147 | |
149 | if (draw_sprites(screen.machine(), | |
148 | if (draw_sprites(screen.machine(), | |
150 | 149 | { |
151 | 150 | /* kludge: draw table bg gfx again if priority 0 sprites are enabled */ |
152 | 151 | for (sx = sy = offs = 0; offs < 0x4000 / 2; offs++) |
153 | 152 | { |
154 | 153 | int attr, code, color; |
155 | 154 | |
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]; | |
158 | 157 | |
159 | 158 | color = ((attr & 0x00f0) >> 4) | 0x80; |
160 | 159 | |
161 | drawgfx_transpen_raw( | |
160 | drawgfx_transpen_raw( | |
162 | 161 | code, |
163 | 162 | screen.machine().gfx[1]->colorbase() + color * screen.machine().gfx[1]->granularity(), |
164 | 163 | 0, 0, |
r17967 | r17968 | |
174 | 173 | } |
175 | 174 | } |
176 | 175 | |
177 | draw_sprites(screen.machine(), | |
176 | draw_sprites(screen.machine(), | |
178 | 177 | |
179 | 178 | /* draw table fg gfx */ |
180 | 179 | for (sx = sy = offs = 0; offs < 0x4000 / 2; offs++) |
181 | 180 | { |
182 | 181 | int attr, code, color; |
183 | 182 | |
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]; | |
186 | 185 | |
187 | 186 | color = ((attr & 0x00f0) >> 4); |
188 | 187 | |
r17967 | r17968 | |
192 | 191 | else |
193 | 192 | color |= 0x0080; |
194 | 193 | |
195 | drawgfx_transpen_raw( | |
194 | drawgfx_transpen_raw( | |
196 | 195 | code, |
197 | 196 | screen.machine().gfx[0]->colorbase() + color * screen.machine().gfx[0]->granularity(), |
198 | 197 | 0, 0, |
r17967 | r17968 | |
207 | 206 | } |
208 | 207 | } |
209 | 208 | |
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); | |
212 | 211 | |
213 | 212 | /* mix & blend the tilemaps and sprites into a 32-bit bitmap */ |
214 | blendbitmaps(screen.machine(), bitmap, | |
213 | blendbitmaps(screen.machine(), bitmap, | |
215 | 214 | return 0; |
216 | 215 | } |
r17967 | r17968 | |
---|---|---|
604 | 604 | } |
605 | 605 | |
606 | 606 | // Passing Shot (2 player), Shinobi (Datsu), Wonderboy 3 |
607 | ||
607 | ||
608 | 608 | { |
609 | segas1x_bootleg_state *state = screen.machine().driver_data<segas1x_bootleg_state>(); | |
610 | 609 | |
611 | 610 | // passing shot |
612 | 611 | int offset_txtx = 192; |
r17967 | r17968 | |
619 | 618 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
620 | 619 | |
621 | 620 | // start the sprites drawing |
622 | | |
621 | | |
623 | 622 | |
624 | 623 | // 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(); | |
628 | 627 | |
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); | |
631 | 630 | |
632 | if (( | |
631 | if (( | |
633 | 632 | { |
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); | |
638 | 637 | |
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); | |
641 | 640 | |
642 | | |
641 | | |
643 | 642 | |
644 | | |
643 | | |
645 | 644 | } |
646 | else if (( | |
645 | else if (( | |
647 | 646 | { |
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 ); | |
652 | 651 | |
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); | |
655 | 654 | |
656 | | |
655 | | |
657 | 656 | |
658 | | |
657 | | |
659 | 658 | } |
660 | 659 | |
661 | 660 | // 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()) | |
664 | 663 | for (int y = rect->min_y; y <= rect->max_y; y++) |
665 | 664 | { |
666 | 665 | UINT16 *dest = &bitmap.pix(y); |
r17967 | r17968 | |
678 | 677 | { |
679 | 678 | // if the color is set to maximum, shadow pixels underneath us |
680 | 679 | if ((pix & 0x03f0) == 0x03f0) |
681 | dest[x] += ( | |
680 | dest[x] += ( | |
682 | 681 | |
683 | 682 | // otherwise, just add in sprite palette base |
684 | 683 | else |
r17967 | r17968 | |
693 | 692 | } |
694 | 693 | |
695 | 694 | /* The Passing Shot 4 Player bootleg has weird scroll registers (different offsets, ^0x7 xor) */ |
696 | ||
695 | ||
697 | 696 | { |
698 | segas1x_bootleg_state *state = screen.machine().driver_data<segas1x_bootleg_state>(); | |
699 | 697 | |
700 | 698 | // passing shot |
701 | 699 | int offset_txtx = 192; |
r17967 | r17968 | |
708 | 706 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
709 | 707 | |
710 | 708 | // start the sprites drawing |
711 | | |
709 | | |
712 | 710 | |
713 | 711 | // 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(); | |
717 | 715 | |
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); | |
720 | 718 | |
721 | if (( | |
719 | if (( | |
722 | 720 | { |
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); | |
727 | 725 | |
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); | |
731 | 729 | } |
732 | 730 | |
733 | 731 | // 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()) | |
736 | 734 | for (int y = rect->min_y; y <= rect->max_y; y++) |
737 | 735 | { |
738 | 736 | UINT16 *dest = &bitmap.pix(y); |
r17967 | r17968 | |
750 | 748 | { |
751 | 749 | // if the color is set to maximum, shadow pixels underneath us |
752 | 750 | if ((pix & 0x03f0) == 0x03f0) |
753 | dest[x] += ( | |
751 | dest[x] += ( | |
754 | 752 | |
755 | 753 | // otherwise, just add in sprite palette base |
756 | 754 | else |
r17967 | r17968 | |
767 | 765 | |
768 | 766 | /***************************************************************************/ |
769 | 767 | |
770 | ||
768 | ||
771 | 769 | { |
772 | segas1x_bootleg_state *state = screen.machine().driver_data<segas1x_bootleg_state>(); | |
773 | 770 | |
774 | if (! | |
771 | if (! | |
775 | 772 | { |
776 | 773 | bitmap.fill(0, cliprect); |
777 | 774 | return 0; |
778 | 775 | } |
779 | 776 | |
780 | 777 | // start the sprites drawing |
781 | | |
778 | | |
782 | 779 | |
783 | 780 | update_page(screen.machine()); |
784 | 781 | |
785 | 782 | screen.machine().priority_bitmap.fill(0, cliprect); |
786 | 783 | |
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); | |
791 | 788 | |
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); | |
794 | 791 | |
795 | 792 | /* Background */ |
796 | | |
793 | | |
797 | 794 | |
798 | 795 | /* 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); | |
801 | 798 | |
802 | 799 | |
803 | 800 | /* Text Layer */ |
804 | if ( | |
801 | if ( | |
805 | 802 | { |
806 | | |
803 | | |
807 | 804 | } |
808 | 805 | |
809 | | |
806 | | |
810 | 807 | |
811 | 808 | //draw_sprites(screen.machine(), bitmap, cliprect,0); |
812 | 809 | |
813 | 810 | |
814 | 811 | // 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()) | |
817 | 814 | for (int y = rect->min_y; y <= rect->max_y; y++) |
818 | 815 | { |
819 | 816 | UINT16 *dest = &bitmap.pix(y); |
r17967 | r17968 | |
831 | 828 | { |
832 | 829 | // if the color is set to maximum, shadow pixels underneath us |
833 | 830 | if ((pix & 0x03f0) == 0x03f0) |
834 | dest[x] += ( | |
831 | dest[x] += ( | |
835 | 832 | |
836 | 833 | // otherwise, just add in sprite palette base |
837 | 834 | else |
r17967 | r17968 | |
845 | 842 | } |
846 | 843 | |
847 | 844 | |
848 | ||
845 | ||
849 | 846 | { |
850 | segas1x_bootleg_state *state = screen.machine().driver_data<segas1x_bootleg_state>(); | |
851 | 847 | |
852 | if (! | |
848 | if (! | |
853 | 849 | { |
854 | 850 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
855 | 851 | return 0; |
856 | 852 | } |
857 | 853 | |
858 | 854 | // start the sprites drawing |
859 | | |
855 | | |
860 | 856 | |
861 | 857 | update_page(screen.machine()); |
862 | 858 | |
r17967 | r17968 | |
864 | 860 | |
865 | 861 | bitmap.fill(0, cliprect); |
866 | 862 | |
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); | |
872 | 868 | |
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); | |
875 | 871 | |
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); | |
878 | 874 | |
879 | 875 | // 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()) | |
882 | 878 | for (int y = rect->min_y; y <= rect->max_y; y++) |
883 | 879 | { |
884 | 880 | UINT16 *dest = &bitmap.pix(y); |
r17967 | r17968 | |
896 | 892 | { |
897 | 893 | // if the color is set to maximum, shadow pixels underneath us |
898 | 894 | if ((pix & 0x03f0) == 0x03f0) |
899 | dest[x] += ( | |
895 | dest[x] += ( | |
900 | 896 | |
901 | 897 | // otherwise, just add in sprite palette base |
902 | 898 | else |
r17967 | r17968 | |
---|---|---|
362 | 362 | } |
363 | 363 | } |
364 | 364 | |
365 | ||
365 | ||
366 | 366 | { |
367 | deniam_state *state = screen.machine().driver_data<deniam_state>(); | |
368 | 367 | int bg_scrollx, bg_scrolly, fg_scrollx, fg_scrolly; |
369 | 368 | int page; |
370 | 369 | |
371 | if (! | |
370 | if (! | |
372 | 371 | return 0; /* don't update (freeze display) */ |
373 | 372 | |
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]; | |
377 | 376 | set_bg_page(screen.machine(), 3, (page >>12) & 0x0f); |
378 | 377 | set_bg_page(screen.machine(), 2, (page >> 8) & 0x0f); |
379 | 378 | set_bg_page(screen.machine(), 1, (page >> 4) & 0x0f); |
380 | 379 | set_bg_page(screen.machine(), 0, (page >> 0) & 0x0f); |
381 | 380 | |
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]; | |
385 | 384 | set_fg_page(screen.machine(), 3, (page >>12) & 0x0f); |
386 | 385 | set_fg_page(screen.machine(), 2, (page >> 8) & 0x0f); |
387 | 386 | set_fg_page(screen.machine(), 1, (page >> 4) & 0x0f); |
388 | 387 | set_fg_page(screen.machine(), 0, (page >> 0) & 0x0f); |
389 | 388 | |
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); | |
394 | 393 | |
395 | 394 | screen.machine().priority_bitmap.fill(0, cliprect); |
396 | 395 | |
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); | |
400 | 399 | |
401 | 400 | draw_sprites(screen.machine(), bitmap, cliprect); |
402 | 401 | return 0; |
r17967 | r17968 | |
---|---|---|
183 | 183 | * |
184 | 184 | *************************************/ |
185 | 185 | |
186 | static | |
186 | UINT32 redalert_state::screen_update_redalert(screen_device &screen, bitmap_rgb | |
187 | 187 | { |
188 | redalert_state *state = screen.machine().driver_data<redalert_state>(); | |
189 | 188 | pen_t pens[NUM_CHARMAP_PENS + NUM_BITMAP_PENS + 1]; |
190 | 189 | offs_t offs; |
191 | 190 | |
r17967 | r17968 | |
200 | 199 | UINT8 y = offs & 0xff; |
201 | 200 | UINT8 x = (~offs >> 8) << 3; |
202 | 201 | |
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]; | |
205 | 204 | |
206 | UINT8 charmap_code = | |
205 | UINT8 charmap_code = | |
207 | 206 | offs_t charmap_data_base = ((charmap_code & 0x7f) << 3) | (offs & 0x07); |
208 | 207 | |
209 | 208 | /* D7 of the char code selects the char set to use */ |
210 | 209 | if (charmap_code & 0x80) |
211 | 210 | { |
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]; | |
214 | 213 | } |
215 | 214 | else |
216 | 215 | { |
217 | 216 | charmap_data_1 = 0; /* effectively disables A0 of the color PROM */ |
218 | charmap_data_2 = | |
217 | charmap_data_2 = | |
219 | 218 | } |
220 | 219 | |
221 | 220 | for (i = 0; i < 8; i++) |
r17967 | r17968 | |
231 | 230 | else |
232 | 231 | pen = pens[((charmap_code & 0xfe) << 1) | color_prom_a0_a1]; |
233 | 232 | |
234 | if ((* | |
233 | if ((* | |
235 | 234 | bitmap.pix32(y, x) = pen; |
236 | 235 | else |
237 | 236 | bitmap.pix32(y ^ 0xff, x ^ 0xff) = pen; |
r17967 | r17968 | |
256 | 255 | * |
257 | 256 | *************************************/ |
258 | 257 | |
259 | static | |
258 | UINT32 redalert_state::screen_update_demoneye(screen_device &screen, bitmap_rgb | |
260 | 259 | { |
261 | redalert_state *state = screen.machine().driver_data<redalert_state>(); | |
262 | 260 | pen_t pens[NUM_CHARMAP_PENS + NUM_BITMAP_PENS + 1]; |
263 | 261 | offs_t offs; |
264 | 262 | |
r17967 | r17968 | |
273 | 271 | UINT8 y = offs & 0xff; |
274 | 272 | UINT8 x = (~offs >> 8) << 3; |
275 | 273 | |
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]; | |
278 | 276 | |
279 | UINT8 charmap_code = | |
277 | UINT8 charmap_code = | |
280 | 278 | offs_t charmap_data_base = ((charmap_code & 0x7f) << 3) | (offs & 0x07); |
281 | 279 | |
282 | 280 | /* D7 of the char code selects the char set to use */ |
283 | 281 | if (charmap_code & 0x80) |
284 | 282 | { |
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]; | |
287 | 285 | } |
288 | 286 | else |
289 | 287 | { |
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]; | |
292 | 290 | } |
293 | 291 | |
294 | 292 | /* 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]; | |
297 | 295 | |
298 | 296 | for (i = 0; i < 8; i++) |
299 | 297 | { |
r17967 | r17968 | |
308 | 306 | else |
309 | 307 | pen = pens[((charmap_code & 0xfe) << 1) | color_prom_a0_a1]; |
310 | 308 | |
311 | if (* | |
309 | if (* | |
312 | 310 | bitmap.pix32(y ^ 0xff, x ^ 0xff) = pen; |
313 | 311 | else |
314 | 312 | bitmap.pix32(y, x) = pen; |
r17967 | r17968 | |
331 | 329 | * |
332 | 330 | *************************************/ |
333 | 331 | |
334 | static | |
332 | UINT32 redalert_state::screen_update_panther(screen_device &screen, bitmap_rgb | |
335 | 333 | { |
336 | redalert_state *state = screen.machine().driver_data<redalert_state>(); | |
337 | 334 | pen_t pens[NUM_CHARMAP_PENS + NUM_BITMAP_PENS + 1]; |
338 | 335 | offs_t offs; |
339 | 336 | |
r17967 | r17968 | |
348 | 345 | UINT8 y = offs & 0xff; |
349 | 346 | UINT8 x = (~offs >> 8) << 3; |
350 | 347 | |
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]; | |
353 | 350 | |
354 | UINT8 charmap_code = | |
351 | UINT8 charmap_code = | |
355 | 352 | offs_t charmap_data_base = ((charmap_code & 0x7f) << 3) | (offs & 0x07); |
356 | 353 | |
357 | 354 | /* D7 of the char code selects the char set to use */ |
358 | 355 | if (charmap_code & 0x80) |
359 | 356 | { |
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]; | |
362 | 359 | } |
363 | 360 | else |
364 | 361 | { |
365 | 362 | charmap_data_1 = 0; /* effectively disables A0 of the color PROM */ |
366 | charmap_data_2 = | |
363 | charmap_data_2 = | |
367 | 364 | } |
368 | 365 | |
369 | 366 | for (i = 0; i < 8; i++) |
r17967 | r17968 | |
379 | 376 | else |
380 | 377 | pen = pens[((charmap_code & 0xfe) << 1) | color_prom_a0_a1]; |
381 | 378 | |
382 | if ((* | |
379 | if ((* | |
383 | 380 | bitmap.pix32(y, x) = pen; |
384 | 381 | else |
385 | 382 | bitmap.pix32(y ^ 0xff, x ^ 0xff) = pen; |
r17967 | r17968 | |
409 | 406 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
410 | 407 | MCFG_SCREEN_SIZE(32*8, 32*8) |
411 | 408 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
412 | MCFG_SCREEN_UPDATE_ | |
409 | MCFG_SCREEN_UPDATE_DR | |
413 | 410 | MACHINE_CONFIG_END |
414 | 411 | |
415 | 412 | MACHINE_CONFIG_FRAGMENT( redalert_video ) |
r17967 | r17968 | |
441 | 438 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
442 | 439 | MCFG_SCREEN_SIZE(32*8, 32*8) |
443 | 440 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
444 | MCFG_SCREEN_UPDATE_ | |
441 | MCFG_SCREEN_UPDATE_DR | |
445 | 442 | MACHINE_CONFIG_END |
446 | 443 | |
447 | 444 | |
r17967 | r17968 | |
454 | 451 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
455 | 452 | MCFG_SCREEN_SIZE(32*8, 32*8) |
456 | 453 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
457 | MCFG_SCREEN_UPDATE_ | |
454 | MCFG_SCREEN_UPDATE_DR | |
458 | 455 | MACHINE_CONFIG_END |
459 | 456 |
r17967 | r17968 | |
---|---|---|
269 | 269 | * |
270 | 270 | *************************************/ |
271 | 271 | |
272 | ||
272 | ||
273 | 273 | { |
274 | mcr3_state *state = screen.machine().driver_data<mcr3_state>(); | |
275 | 274 | /* update the flip state */ |
276 | | |
275 | | |
277 | 276 | |
278 | 277 | /* draw the background */ |
279 | | |
278 | | |
280 | 279 | |
281 | 280 | /* draw the sprites */ |
282 | 281 | mcr3_update_sprites(screen.machine(), bitmap, cliprect, 0x03, 0, 0, 0); |
r17967 | r17968 | |
284 | 283 | } |
285 | 284 | |
286 | 285 | |
287 | ||
286 | ||
288 | 287 | { |
289 | mcr3_state *state = screen.machine().driver_data<mcr3_state>(); | |
290 | 288 | /* for every character in the Video RAM, check if it has been modified */ |
291 | 289 | /* 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); | |
295 | 293 | |
296 | 294 | /* draw the sprites */ |
297 | mcr3_update_sprites(screen.machine(), bitmap, cliprect, | |
295 | mcr3_update_sprites(screen.machine(), bitmap, cliprect, | |
298 | 296 | |
299 | 297 | /* render any characters on top */ |
300 | | |
298 | | |
301 | 299 | return 0; |
302 | 300 | } |
r17967 | r17968 | |
---|---|---|
19 | 19 | |
20 | 20 | /******************************************************************************/ |
21 | 21 | |
22 | ||
22 | ||
23 | 23 | { |
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); | |
26 | 25 | |
27 | 26 | screen.machine().device<deco_bac06_device>("tilegen1")->set_bppmultmask(0x8, 0x7); |
28 | 27 | 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); | |
31 | 30 | return 0; |
32 | 31 | } |
33 | 32 |
r17967 | r17968 | |
---|---|---|
118 | 118 | |
119 | 119 | ***************************************************************************/ |
120 | 120 | |
121 | ||
121 | ||
122 | 122 | { |
123 | simpsons_state *state = screen.machine().driver_data<simpsons_state>(); | |
124 | 123 | int layer[3], bg_colorbase; |
125 | 124 | |
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); | |
131 | 130 | |
132 | k052109_tilemap_update( | |
131 | k052109_tilemap_update( | |
133 | 132 | |
134 | 133 | layer[0] = 0; |
135 | | |
134 | | |
136 | 135 | layer[1] = 1; |
137 | | |
136 | | |
138 | 137 | layer[2] = 2; |
139 | | |
138 | | |
140 | 139 | |
141 | konami_sortlayers3(layer, | |
140 | konami_sortlayers3(layer, | |
142 | 141 | |
143 | 142 | screen.machine().priority_bitmap.fill(0, cliprect); |
144 | 143 | 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); | |
148 | 147 | |
149 | k053247_sprites_draw( | |
148 | k053247_sprites_draw( | |
150 | 149 | return 0; |
151 | 150 | } |
r17967 | r17968 | |
---|---|---|
157 | 157 | } |
158 | 158 | } |
159 | 159 | |
160 | ||
160 | ||
161 | 161 | { |
162 | prehisle_state *state = screen.machine().driver_data<prehisle_state>(); | |
163 | 162 | |
164 | | |
163 | | |
165 | 164 | draw_sprites(screen.machine(), bitmap, cliprect, 0); |
166 | | |
165 | | |
167 | 166 | draw_sprites(screen.machine(), bitmap, cliprect, 1); |
168 | | |
167 | | |
169 | 168 | return 0; |
170 | 169 | } |
r17967 | r17968 | |
---|---|---|
215 | 215 | m_fg0_tilemap->set_transparent_pen(0); |
216 | 216 | } |
217 | 217 | |
218 | ||
218 | ||
219 | 219 | { |
220 | wwfsstar_state *state = screen.machine().driver_data<wwfsstar_state>(); | |
221 | 220 | |
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 ); | |
224 | 223 | |
225 | | |
224 | | |
226 | 225 | draw_sprites(screen.machine(), bitmap,cliprect ); |
227 | | |
226 | | |
228 | 227 | |
229 | 228 | return 0; |
230 | 229 | } |
r17967 | r17968 | |
---|---|---|
1465 | 1465 | state_save_register_global_array(machine(), m_listctl); |
1466 | 1466 | } |
1467 | 1467 | |
1468 | ||
1468 | ||
1469 | 1469 | { |
1470 | model1_state *state = screen.machine().driver_data<model1_state>(); | |
1471 | struct view *view = state->m_view; | |
1470 | struct view *view = m_view; | |
1472 | 1471 | #if 0 |
1473 | 1472 | { |
1474 | 1473 | int mod = 0; |
r17967 | r17968 | |
1534 | 1533 | return 0; |
1535 | 1534 | } |
1536 | 1535 | |
1537 | ||
1536 | void model1_state::screen_eof_model1(screen_device &screen, bool state) | |
1538 | 1537 | { |
1539 | 1538 | // on rising edge |
1540 | if ( | |
1539 | if (st | |
1541 | 1540 | { |
1542 | 1541 | tgp_scan(screen.machine()); |
1543 | 1542 | end_frame(screen.machine()); |
r17967 | r17968 | |
---|---|---|
365 | 365 | g_profiler.stop(); |
366 | 366 | } |
367 | 367 | |
368 | ||
368 | ||
369 | 369 | { |
370 | taitob_state *state = screen.machine().driver_data<taitob_state>(); | |
371 | 370 | address_space &space = screen.machine().driver_data()->generic_space(); |
372 | UINT8 video_control = tc0180vcu_get_videoctrl( | |
371 | UINT8 video_control = tc0180vcu_get_videoctrl( | |
373 | 372 | |
374 | 373 | if ((video_control & 0x20) == 0) |
375 | 374 | { |
r17967 | r17968 | |
378 | 377 | } |
379 | 378 | |
380 | 379 | /* Draw playfields */ |
381 | tc0180vcu_tilemap_draw( | |
380 | tc0180vcu_tilemap_draw( | |
382 | 381 | |
383 | 382 | draw_framebuffer(screen.machine(), bitmap, cliprect, 1); |
384 | 383 | |
385 | tc0180vcu_tilemap_draw( | |
384 | tc0180vcu_tilemap_draw( | |
386 | 385 | |
387 | if ( | |
386 | if ( | |
388 | 387 | { |
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; | |
391 | 390 | /* bit 15 of pixel_scroll[0] is probably flip screen */ |
392 | 391 | |
393 | copyscrollbitmap_trans(bitmap, * | |
392 | copyscrollbitmap_trans(bitmap, * | |
394 | 393 | } |
395 | 394 | |
396 | 395 | draw_framebuffer(screen.machine(), bitmap, cliprect, 0); |
397 | 396 | |
398 | tc0180vcu_tilemap_draw( | |
397 | tc0180vcu_tilemap_draw( | |
399 | 398 | |
400 | 399 | return 0; |
401 | 400 | } |
402 | 401 | |
403 | 402 | |
404 | 403 | |
405 | ||
404 | ||
406 | 405 | { |
407 | taitob_state *state = screen.machine().driver_data<taitob_state>(); | |
408 | 406 | address_space &space = screen.machine().driver_data()->generic_space(); |
409 | 407 | const rgb_t *palette = palette_entry_list_adjusted(screen.machine().palette); |
410 | UINT8 video_control = tc0180vcu_get_videoctrl( | |
408 | UINT8 video_control = tc0180vcu_get_videoctrl( | |
411 | 409 | int x, y; |
412 | 410 | |
413 | 411 | /* Video blanked? */ |
r17967 | r17968 | |
418 | 416 | } |
419 | 417 | |
420 | 418 | /* Draw the palettized playfields to an indexed bitmap */ |
421 | tc0180vcu_tilemap_draw( | |
419 | tc0180vcu_tilemap_draw( | |
422 | 420 | |
423 | draw_framebuffer(screen.machine(), * | |
421 | draw_framebuffer(screen.machine(), * | |
424 | 422 | |
425 | tc0180vcu_tilemap_draw( | |
423 | tc0180vcu_tilemap_draw( | |
426 | 424 | |
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); | |
429 | 427 | |
430 | 428 | /* Copy the intermediate bitmap to the output bitmap, applying the palette */ |
431 | 429 | for (y = 0; y <= cliprect.max_y; y++) |
432 | 430 | for (x = 0; x <= cliprect.max_x; x++) |
433 | bitmap.pix32(y, x) = palette[ | |
431 | bitmap.pix32(y, x) = palette[ | |
434 | 432 | |
435 | 433 | /* Draw the 15bpp raw CRTC frame buffer directly to the output bitmap */ |
436 | if ( | |
434 | if ( | |
437 | 435 | { |
438 | 436 | device_t *hd63484 = screen.machine().device("hd63484"); |
439 | 437 | |
r17967 | r17968 | |
463 | 461 | } |
464 | 462 | } |
465 | 463 | /* Draw the 15bpp raw output of the camera ADCs (TODO) */ |
466 | else if ( | |
464 | else if ( | |
467 | 465 | { |
468 | 466 | for (y = 0; y <= cliprect.max_y; y++) |
469 | 467 | { |
r17967 | r17968 | |
473 | 471 | } |
474 | 472 | |
475 | 473 | /* Clear the indexed bitmap and draw the final indexed layers */ |
476 | | |
474 | | |
477 | 475 | |
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); | |
480 | 478 | |
481 | tc0180vcu_tilemap_draw( | |
479 | tc0180vcu_tilemap_draw( | |
482 | 480 | |
483 | 481 | /* Merge the indexed layers with the output bitmap */ |
484 | 482 | for (y = 0; y <= cliprect.max_y; y++) |
485 | 483 | { |
486 | 484 | for (x = 0; x <= cliprect.max_x; x++) |
487 | 485 | { |
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)]; | |
490 | 488 | } |
491 | 489 | } |
492 | 490 | |
r17967 | r17968 | |
495 | 493 | |
496 | 494 | |
497 | 495 | |
498 | ||
496 | void | |
499 | 497 | { |
500 | 498 | // rising edge |
501 | if ( | |
499 | if (st | |
502 | 500 | { |
503 | taitob_state *state = screen.machine().driver_data<taitob_state>(); | |
504 | 501 | 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); | |
507 | 504 | |
508 | 505 | if (~video_control & 0x01) |
509 | | |
506 | | |
510 | 507 | |
511 | 508 | if (~video_control & 0x80) |
512 | 509 | { |
513 | 510 | framebuffer_page ^= 1; |
514 | tc0180vcu_set_fb_page( | |
511 | tc0180vcu_set_fb_page( | |
515 | 512 | } |
516 | 513 | |
517 | draw_sprites(screen.machine(), * | |
514 | draw_sprites(screen.machine(), * | |
518 | 515 | } |
519 | 516 | } |
r17967 | r17968 | |
---|---|---|
24 | 24 | |
25 | 25 | /******************************************************************************/ |
26 | 26 | |
27 | ||
27 | ||
28 | 28 | { |
29 | actfancr_state *state = screen.machine().driver_data<actfancr_state>(); | |
30 | 29 | |
31 | 30 | /* 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); | |
34 | 33 | |
35 | 34 | 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, | |
35 | screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, | |
37 | 36 | screen.machine().device<deco_bac06_device>("tilegen2")->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00); |
38 | 37 | |
39 | 38 | return 0; |
r17967 | r17968 | |
---|---|---|
498 | 498 | } |
499 | 499 | |
500 | 500 | |
501 | ||
501 | ||
502 | 502 | { |
503 | polepos_state *state = screen.machine().driver_data<polepos_state>(); | |
504 | 503 | rectangle clip = cliprect; |
505 | 504 | clip.max_y = 127; |
506 | | |
505 | | |
507 | 506 | draw_road(screen.machine(), bitmap); |
508 | 507 | draw_sprites(screen.machine(), bitmap,cliprect); |
509 | | |
508 | | |
510 | 509 | return 0; |
511 | 510 | } |
r17967 | r17968 | |
---|---|---|
223 | 223 | draw_sprites_region(machine, bitmap, cliprect, sr, 0x500, 1); |
224 | 224 | } |
225 | 225 | |
226 | ||
226 | ||
227 | 227 | { |
228 | 228 | set_pens(screen.machine()); |
229 | 229 | draw_background(screen.machine(), bitmap, cliprect); |
r17967 | r17968 | |
---|---|---|
174 | 174 | } |
175 | 175 | |
176 | 176 | |
177 | ||
177 | ||
178 | 178 | { |
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); | |
182 | 181 | |
183 | 182 | draw_sprites(screen.machine(), bitmap, cliprect); |
184 | 183 | draw_bullets(screen.machine(), bitmap, cliprect); |
r17967 | r17968 | |
186 | 185 | } |
187 | 186 | |
188 | 187 | |
189 | ||
188 | void | |
190 | 189 | { |
191 | 190 | // on falling edge |
192 | if (! | |
191 | if (!st | |
193 | 192 | { |
194 | tank8_state *state = screen.machine().driver_data<tank8_state>(); | |
195 | 193 | int x; |
196 | 194 | int y; |
197 | 195 | const rectangle &visarea = screen.machine().primary_screen->visible_area(); |
198 | 196 | |
199 | | |
197 | | |
200 | 198 | |
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); | |
203 | 201 | |
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); | |
206 | 204 | |
207 | 205 | for (y = visarea.min_y; y <= visarea.max_y; y++) |
208 | 206 | { |
209 | 207 | int _state = 0; |
210 | 208 | |
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); | |
214 | 212 | |
215 | 213 | if (y % 2 != screen.machine().primary_screen->frame_number() % 2) |
216 | 214 | continue; /* video display is interlaced */ |
r17967 | r17968 | |
264 | 262 | if (p1[x] == 0x11) |
265 | 263 | index |= 0x20; |
266 | 264 | |
267 | if (y - get_y_pos( | |
265 | if (y - get_y_pos( | |
268 | 266 | index |= 0x40; /* collision on bottom side */ |
269 | 267 | |
270 | if (x - get_x_pos( | |
268 | if (x - get_x_pos( | |
271 | 269 | index |= 0x80; /* collision on right side */ |
272 | 270 | } |
273 | 271 |
r17967 | r17968 | |
---|---|---|
8 | 8 | #include "includes/mw8080bw.h" |
9 | 9 | |
10 | 10 | |
11 | ||
11 | ||
12 | 12 | { |
13 | mw8080bw_state *state = screen.machine().driver_data<mw8080bw_state>(); | |
14 | 13 | UINT8 x = 0; |
15 | 14 | UINT8 y = MW8080BW_VCOUNTER_START_NO_VBLANK; |
16 | 15 | UINT8 video_data = 0; |
r17967 | r17968 | |
51 | 50 | else if ((x & 0x07) == 0x04) |
52 | 51 | { |
53 | 52 | offs_t offs = ((offs_t)y << 5) | (x >> 3); |
54 | video_data = | |
53 | video_data = | |
55 | 54 | } |
56 | 55 | } |
57 | 56 | |
r17967 | r17968 | |
75 | 74 | #define PHANTOM2_SIDE_TRENCH_LIGHT_RGB32_PEN MAKE_RGB(0x72, 0x72, 0x72) |
76 | 75 | |
77 | 76 | |
78 | ||
77 | ||
79 | 78 | { |
80 | mw8080bw_state *state = screen.machine().driver_data<mw8080bw_state>(); | |
81 | 79 | UINT8 line_buf[256]; /* 256x1 bit RAM */ |
82 | 80 | |
83 | 81 | UINT8 x = 0; |
r17967 | r17968 | |
86 | 84 | UINT8 draw_line = 0; |
87 | 85 | UINT8 draw_trench = 0; |
88 | 86 | UINT8 draw_floor = 0; |
89 | UINT8 width = | |
87 | UINT8 width = | |
90 | 88 | UINT8 floor_width = width; |
91 | UINT8 center = | |
89 | UINT8 center = | |
92 | 90 | |
93 | 91 | memset(line_buf, 0, 256); |
94 | 92 | |
r17967 | r17968 | |
150 | 148 | |
151 | 149 | /* update the trench control for the next line */ |
152 | 150 | offs = ((offs_t)y << 5) | 0x1f; |
153 | trench_control = | |
151 | trench_control = | |
154 | 152 | |
155 | 153 | if (trench_control & 0x40) |
156 | 154 | draw_trench = 1; |
r17967 | r17968 | |
168 | 166 | |
169 | 167 | /* add the lower 2 bits stored in the slope array to width */ |
170 | 168 | if (draw_trench) |
171 | width = width + ( | |
169 | width = width + ( | |
172 | 170 | |
173 | 171 | /* add the higher 2 bits stored in the slope array to floor width */ |
174 | 172 | if (draw_floor) |
175 | floor_width = floor_width + (( | |
173 | floor_width = floor_width + (( | |
176 | 174 | |
177 | 175 | /* next row, video_data is now 0, so the next line will start |
178 | 176 | with 4 blank pixels */ |
r17967 | r17968 | |
186 | 184 | else if ((x & 0x07) == 0x04) |
187 | 185 | { |
188 | 186 | offs_t offs = ((offs_t)y << 5) | (x >> 3); |
189 | video_data = | |
187 | video_data = | |
190 | 188 | } |
191 | 189 | } |
192 | 190 | |
r17967 | r17968 | |
219 | 217 | #define PHANTOM2_RGB32_CLOUD_PEN MAKE_RGB(0xc0, 0xc0, 0xc0) |
220 | 218 | |
221 | 219 | |
222 | ||
220 | ||
223 | 221 | { |
224 | mw8080bw_state *state = screen.machine().driver_data<mw8080bw_state>(); | |
225 | 222 | UINT8 x = 0; |
226 | 223 | UINT8 y = MW8080BW_VCOUNTER_START_NO_VBLANK; |
227 | 224 | UINT8 video_data = 0; |
228 | 225 | UINT8 cloud_data = 0; |
229 | 226 | |
230 | UINT16 cloud_counter = | |
227 | UINT16 cloud_counter = | |
231 | 228 | |
232 | UINT8 *cloud_region = | |
229 | UINT8 *cloud_region = | |
233 | 230 | |
234 | 231 | while (1) |
235 | 232 | { |
r17967 | r17968 | |
303 | 300 | else if ((x & 0x07) == 0x04) |
304 | 301 | { |
305 | 302 | offs_t offs = ((offs_t)y << 5) | (x >> 3); |
306 | video_data = | |
303 | video_data = | |
307 | 304 | } |
308 | 305 | } |
309 | 306 | |
r17967 | r17968 | |
311 | 308 | } |
312 | 309 | |
313 | 310 | |
314 | ||
311 | void | |
315 | 312 | { |
316 | 313 | // falling edge |
317 | if (! | |
314 | if (!st | |
318 | 315 | { |
319 | mw8080bw_state *state = screen.machine().driver_data<mw8080bw_state>(); | |
320 | 316 | |
321 | | |
317 | | |
322 | 318 | |
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); | |
325 | 321 | } |
326 | 322 | } |
327 | 323 | |
r17967 | r17968 | |
335 | 331 | |
336 | 332 | /* the flip screen circuit is just a couple of relays on the monitor PCB */ |
337 | 333 | |
338 | ||
334 | ||
339 | 335 | { |
340 | mw8080bw_state *state = screen.machine().driver_data<mw8080bw_state>(); | |
341 | 336 | UINT8 x = 0; |
342 | 337 | UINT8 y = MW8080BW_VCOUNTER_START_NO_VBLANK; |
343 | 338 | UINT8 video_data = 0; |
344 | UINT8 flip = | |
339 | UINT8 flip = | |
345 | 340 | |
346 | 341 | while (1) |
347 | 342 | { |
r17967 | r17968 | |
387 | 382 | else if ((x & 0x07) == 0x04) |
388 | 383 | { |
389 | 384 | offs_t offs = ((offs_t)y << 5) | (x >> 3); |
390 | video_data = | |
385 | video_data = | |
391 | 386 | } |
392 | 387 | } |
393 | 388 |
r17967 | r17968 | |
---|---|---|
50 | 50 | /******************************************************************************/ |
51 | 51 | |
52 | 52 | |
53 | ||
53 | ||
54 | 54 | { |
55 | vaportra_state *state = screen.machine().driver_data<vaportra_state>(); | |
56 | 55 | 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; | |
59 | 58 | |
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); | |
63 | 62 | |
64 | 63 | 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 |
65 | 64 | |
66 | 65 | /* Draw playfields */ |
67 | 66 | if (pri == 0) |
68 | 67 | { |
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); | |
73 | 72 | } |
74 | 73 | else if (pri == 1) |
75 | 74 | { |
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); | |
80 | 79 | } |
81 | 80 | else if (pri == 2) |
82 | 81 | { |
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); | |
87 | 86 | } |
88 | 87 | else |
89 | 88 | { |
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); | |
94 | 93 | } |
95 | 94 | |
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); | |
98 | 97 | return 0; |
99 | 98 | } |
r17967 | r17968 | |
---|---|---|
349 | 349 | } |
350 | 350 | |
351 | 351 | |
352 | ||
352 | ||
353 | 353 | { |
354 | namcos86_state *state = screen.machine().driver_data<namcos86_state>(); | |
355 | 354 | int layer; |
356 | 355 | |
357 | 356 | /* 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); | |
361 | 360 | set_scroll(screen.machine(), 0); |
362 | 361 | set_scroll(screen.machine(), 1); |
363 | 362 | set_scroll(screen.machine(), 2); |
r17967 | r17968 | |
365 | 364 | |
366 | 365 | screen.machine().priority_bitmap.fill(0, cliprect); |
367 | 366 | |
368 | bitmap.fill(screen.machine().gfx[0]->colorbase() + 8* | |
367 | bitmap.fill(screen.machine().gfx[0]->colorbase() + 8* | |
369 | 368 | |
370 | 369 | for (layer = 0;layer < 8;layer++) |
371 | 370 | { |
r17967 | r17968 | |
373 | 372 | |
374 | 373 | for (i = 3;i >= 0;i--) |
375 | 374 | { |
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); | |
378 | 377 | } |
379 | 378 | } |
380 | 379 | |
r17967 | r17968 | |
383 | 382 | } |
384 | 383 | |
385 | 384 | |
386 | ||
385 | void | |
387 | 386 | { |
388 | 387 | // rising edge |
389 | if ( | |
388 | if (st | |
390 | 389 | { |
391 | namcos86_state *state = screen.machine().driver_data<namcos86_state>(); | |
392 | if (state->m_copy_sprites) | |
390 | if (m_copy_sprites) | |
393 | 391 | { |
394 | UINT8 *spriteram = | |
392 | UINT8 *spriteram = | |
395 | 393 | int i,j; |
396 | 394 | |
397 | 395 | for (i = 0;i < 0x800;i += 16) |
r17967 | r17968 | |
400 | 398 | spriteram[i+j] = spriteram[i+j - 6]; |
401 | 399 | } |
402 | 400 | |
403 | | |
401 | | |
404 | 402 | } |
405 | 403 | } |
406 | 404 | } |
r17967 | r17968 | |
---|---|---|
427 | 427 | |
428 | 428 | ***************************************************************************/ |
429 | 429 | |
430 | ||
430 | ||
431 | 431 | { |
432 | 432 | /* see hardhead, hardhea2 test mode (press button 2 for both players) */ |
433 | 433 | bitmap.fill(0xff, cliprect); |
r17967 | r17968 | |
436 | 436 | #if TILEMAPS |
437 | 437 | if (screen.machine().input().code_pressed(KEYCODE_Z) || screen.machine().input().code_pressed(KEYCODE_X)) |
438 | 438 | { |
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); | |
441 | 440 | |
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(); } | |
448 | 447 | |
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; | |
453 | 452 | |
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); | |
457 | 456 | #if 1 |
458 | 457 | 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); | |
461 | 460 | #endif |
462 | 461 | } |
463 | 462 | else |
r17967 | r17968 | |
---|---|---|
57 | 57 | |
58 | 58 | ***************************************************************************/ |
59 | 59 | |
60 | ||
60 | ||
61 | 61 | { |
62 | 62 | device_t *k056832 = screen.machine().device("k056832"); |
63 | 63 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
r17967 | r17968 | |
---|---|---|
411 | 411 | } |
412 | 412 | |
413 | 413 | |
414 | ||
414 | ||
415 | 415 | { |
416 | btime_state *state = screen.machine().driver_data<btime_state>(); | |
417 | if (state->m_bnj_scroll1 & 0x10) | |
416 | if (m_bnj_scroll1 & 0x10) | |
418 | 417 | { |
419 | 418 | int i, start; |
420 | 419 | |
421 | 420 | // Generate tile map |
422 | if ( | |
421 | if ( | |
423 | 422 | start = 0; |
424 | 423 | else |
425 | 424 | start = 1; |
426 | 425 | |
427 | 426 | for (i = 0; i < 4; i++) |
428 | 427 | { |
429 | | |
428 | | |
430 | 429 | start = (start + 1) & 0x03; |
431 | 430 | } |
432 | 431 | |
433 | draw_background(screen.machine(), bitmap, cliprect, | |
432 | draw_background(screen.machine(), bitmap, cliprect, | |
434 | 433 | draw_chars(screen.machine(), bitmap, cliprect, TRUE, 0, -1); |
435 | 434 | } |
436 | 435 | else |
437 | 436 | draw_chars(screen.machine(), bitmap, cliprect, FALSE, 0, -1); |
438 | 437 | |
439 | draw_sprites(screen.machine(), bitmap, cliprect, 0, 1, 0, | |
438 | draw_sprites(screen.machine(), bitmap, cliprect, 0, 1, 0, | |
440 | 439 | |
441 | 440 | return 0; |
442 | 441 | } |
443 | 442 | |
444 | 443 | |
445 | ||
444 | ||
446 | 445 | { |
447 | btime_state *state = screen.machine().driver_data<btime_state>(); | |
448 | 446 | draw_chars(screen.machine(), bitmap, cliprect, FALSE, 0, -1); |
449 | draw_sprites(screen.machine(), bitmap, cliprect, 0, 0, 0, | |
447 | draw_sprites(screen.machine(), bitmap, cliprect, 0, 0, 0, | |
450 | 448 | |
451 | 449 | return 0; |
452 | 450 | } |
453 | 451 | |
454 | 452 | |
455 | ||
453 | ||
456 | 454 | { |
457 | btime_state *state = screen.machine().driver_data<btime_state>(); | |
458 | 455 | draw_chars(screen.machine(), bitmap, cliprect, FALSE, 0, -1); |
459 | draw_sprites(screen.machine(), bitmap, cliprect, 0, 1, 2, | |
456 | draw_sprites(screen.machine(), bitmap, cliprect, 0, 1, 2, | |
460 | 457 | |
461 | 458 | return 0; |
462 | 459 | } |
463 | 460 | |
464 | 461 | |
465 | ||
462 | ||
466 | 463 | { |
467 | btime_state *state = screen.machine().driver_data<btime_state>(); | |
468 | if (state->m_bnj_scroll1 & 0x04) | |
464 | if (m_bnj_scroll1 & 0x04) | |
469 | 465 | { |
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); | |
472 | 468 | } |
473 | 469 | else |
474 | draw_chars(screen.machine(), bitmap, cliprect, FALSE, | |
470 | draw_chars(screen.machine(), bitmap, cliprect, FALSE, | |
475 | 471 | |
476 | 472 | /* 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); | |
479 | 475 | |
480 | 476 | return 0; |
481 | 477 | } |
482 | 478 | |
483 | 479 | |
484 | ||
480 | ||
485 | 481 | { |
486 | btime_state *state = screen.machine().driver_data<btime_state>(); | |
487 | if (state->m_bnj_scroll1) | |
482 | if (m_bnj_scroll1) | |
488 | 483 | { |
489 | 484 | int scroll, offs; |
490 | 485 | |
491 | for (offs = | |
486 | for (offs = | |
492 | 487 | { |
493 | 488 | int sx, sy; |
494 | 489 | |
r17967 | r17968 | |
496 | 491 | sy = 16 * (((offs % 0x100) < 0x80) ? offs % 8 : (offs % 8) + 8); |
497 | 492 | sx = 496 - sx; |
498 | 493 | |
499 | if ( | |
494 | if ( | |
500 | 495 | { |
501 | 496 | sx = 496 - sx; |
502 | 497 | sy = 256 - sy; |
503 | 498 | } |
504 | 499 | |
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, | |
507 | 502 | 0, |
508 | | |
503 | | |
509 | 504 | sx, sy); |
510 | 505 | } |
511 | 506 | |
512 | 507 | /* 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()) | |
515 | 510 | scroll = 767 - scroll; |
516 | copyscrollbitmap(bitmap, * | |
511 | copyscrollbitmap(bitmap, * | |
517 | 512 | |
518 | 513 | /* copy the low priority characters followed by the sprites |
519 | 514 | then the high priority characters */ |
520 | 515 | draw_chars(screen.machine(), bitmap, cliprect, TRUE, 0, 1); |
521 | draw_sprites(screen.machine(), bitmap, cliprect, 0, 0, 0, | |
516 | draw_sprites(screen.machine(), bitmap, cliprect, 0, 0, 0, | |
522 | 517 | draw_chars(screen.machine(), bitmap, cliprect, TRUE, 0, 0); |
523 | 518 | } |
524 | 519 | else |
525 | 520 | { |
526 | 521 | draw_chars(screen.machine(), bitmap, cliprect, FALSE, 0, -1); |
527 | draw_sprites(screen.machine(), bitmap, cliprect, 0, 0, 0, | |
522 | draw_sprites(screen.machine(), bitmap, cliprect, 0, 0, 0, | |
528 | 523 | } |
529 | 524 | |
530 | 525 | return 0; |
531 | 526 | } |
532 | 527 | |
533 | 528 | |
534 | ||
529 | ||
535 | 530 | { |
536 | btime_state *state = screen.machine().driver_data<btime_state>(); | |
537 | 531 | int offs; |
538 | 532 | |
539 | for (offs = | |
533 | for (offs = | |
540 | 534 | { |
541 | 535 | int sx, sy; |
542 | 536 | |
543 | 537 | sx = 31 - (offs / 32); |
544 | 538 | sy = offs % 32; |
545 | 539 | |
546 | if ( | |
540 | if ( | |
547 | 541 | { |
548 | 542 | sx = 31 - sx; |
549 | 543 | sy = 33 - sy; |
550 | 544 | } |
551 | 545 | |
552 | 546 | drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[2], |
553 | | |
547 | | |
554 | 548 | 0, |
555 | | |
549 | | |
556 | 550 | 8*sx,8*sy); |
557 | 551 | } |
558 | 552 | |
559 | 553 | draw_chars(screen.machine(), bitmap, cliprect, TRUE, 0, -1); |
560 | draw_sprites(screen.machine(), bitmap, cliprect, 0, 1, 0, | |
554 | draw_sprites(screen.machine(), bitmap, cliprect, 0, 1, 0, | |
561 | 555 | |
562 | 556 | return 0; |
563 | 557 | } |
564 | 558 | |
565 | 559 | |
566 | ||
560 | ||
567 | 561 | { |
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); | |
571 | 564 | |
572 | 565 | return 0; |
573 | 566 | } |
r17967 | r17968 | |
---|---|---|
2790 | 2790 | |
2791 | 2791 | ***************************************************************************/ |
2792 | 2792 | |
2793 | ||
2793 | ||
2794 | 2794 | { |
2795 | cps_state *state = screen.machine().driver_data<cps_state>(); | |
2796 | 2795 | int layercontrol, l0, l1, l2, l3; |
2797 | int videocontrol = | |
2796 | int videocontrol = | |
2798 | 2797 | |
2799 | | |
2798 | | |
2800 | 2799 | |
2801 | layercontrol = | |
2800 | layercontrol = | |
2802 | 2801 | |
2803 | 2802 | /* Get video memory base registers */ |
2804 | 2803 | cps1_get_video_base(screen.machine()); |
r17967 | r17968 | |
2806 | 2805 | /* Find the offset of the last sprite in the sprite table */ |
2807 | 2806 | cps1_find_last_sprite(screen.machine()); |
2808 | 2807 | |
2809 | if ( | |
2808 | if ( | |
2810 | 2809 | { |
2811 | 2810 | cps2_find_last_sprite(screen.machine()); |
2812 | 2811 | } |
2813 | 2812 | |
2814 | 2813 | cps1_update_transmasks(screen.machine()); |
2815 | 2814 | |
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); | |
2818 | 2817 | |
2819 | 2818 | if (videocontrol & 0x01) /* linescroll enable */ |
2820 | 2819 | { |
2821 | int scrly = - | |
2820 | int scrly = - | |
2822 | 2821 | int i; |
2823 | 2822 | int otheroffs; |
2824 | 2823 | |
2825 | | |
2824 | | |
2826 | 2825 | |
2827 | otheroffs = | |
2826 | otheroffs = | |
2828 | 2827 | |
2829 | 2828 | for (i = 0; i < 256; i++) |
2830 | | |
2829 | | |
2831 | 2830 | } |
2832 | 2831 | else |
2833 | 2832 | { |
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); | |
2836 | 2835 | } |
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); | |
2840 | 2839 | |
2841 | 2840 | |
2842 | 2841 | /* Blank screen */ |
2843 | if ( | |
2842 | if ( | |
2844 | 2843 | { |
2845 | 2844 | // CPS1 games use pen 0xbff as background color; this is used in 3wonders, |
2846 | 2845 | // mtwins (explosion during attract), mercs (intermission). |
r17967 | r17968 | |
2865 | 2864 | l3 = (layercontrol >> 0x0c) & 03; |
2866 | 2865 | screen.machine().priority_bitmap.fill(0, cliprect); |
2867 | 2866 | |
2868 | if ( | |
2867 | if ( | |
2869 | 2868 | { |
2870 | 2869 | cps1_render_layer(screen.machine(), bitmap, cliprect, l0, 0); |
2871 | 2870 | |
r17967 | r17968 | |
2888 | 2887 | { |
2889 | 2888 | int l0pri, l1pri, l2pri, l3pri; |
2890 | 2889 | 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; | |
2895 | 2894 | |
2896 | 2895 | #if 0 |
2897 | 2896 | if ( (cps2_port(screen.machine(), CPS2_OBJ_BASE) != 0x7080 && cps2_port(screen.machine(), CPS2_OBJ_BASE) != 0x7000) || |
r17967 | r17968 | |
2942 | 2941 | return 0; |
2943 | 2942 | } |
2944 | 2943 | |
2945 | ||
2944 | void | |
2946 | 2945 | { |
2947 | 2946 | // rising edge |
2948 | if ( | |
2947 | if (st | |
2949 | 2948 | { |
2950 | cps_state *state = screen.machine().driver_data<cps_state>(); | |
2951 | 2949 | |
2952 | 2950 | /* Get video memory base registers */ |
2953 | 2951 | cps1_get_video_base(screen.machine()); |
2954 | 2952 | |
2955 | if ( | |
2953 | if ( | |
2956 | 2954 | { |
2957 | 2955 | /* CPS1 sprites have to be delayed one frame */ |
2958 | memcpy( | |
2956 | memcpy( | |
2959 | 2957 | } |
2960 | 2958 | } |
2961 | 2959 | } |
r17967 | r17968 | |
---|---|---|
400 | 400 | return 0; |
401 | 401 | } |
402 | 402 | |
403 | ||
403 | ||
404 | 404 | { |
405 | starcrus_state *state = screen.machine().driver_data<starcrus_state>(); | |
406 | 405 | |
407 | 406 | bitmap.fill(0, cliprect); |
408 | 407 | |
409 | 408 | /* Draw ship 1 */ |
410 | 409 | drawgfx_transpen(bitmap, |
411 | 410 | 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, | |
414 | 413 | 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, | |
417 | 416 | 0); |
418 | 417 | |
419 | 418 | /* Draw ship 2 */ |
420 | 419 | drawgfx_transpen(bitmap, |
421 | 420 | 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, | |
424 | 423 | 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, | |
427 | 426 | 0); |
428 | 427 | |
429 | 428 | /* Draw score/projectile 1 */ |
430 | 429 | drawgfx_transpen(bitmap, |
431 | 430 | 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, | |
434 | 433 | 0, |
435 | 434 | 0,0, |
436 | | |
435 | | |
437 | 436 | 0); |
438 | 437 | |
439 | 438 | /* Draw score/projectile 2 */ |
440 | 439 | drawgfx_transpen(bitmap, |
441 | 440 | 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, | |
444 | 443 | 0, |
445 | 444 | 0,0, |
446 | | |
445 | | |
447 | 446 | 0); |
448 | 447 | |
449 | 448 | /* Collision detection */ |
450 | 449 | if (cliprect.max_y == screen.visible_area().max_y) |
451 | 450 | { |
452 | | |
451 | | |
453 | 452 | |
454 | 453 | /* Check for collisions between ship1 and ship2 */ |
455 | 454 | if (collision_check_s1s2(screen.machine())) |
456 | 455 | { |
457 | | |
456 | | |
458 | 457 | } |
459 | 458 | /* Check for collisions between ship1 and projectiles */ |
460 | 459 | if (collision_check_s1p1p2(screen.machine())) |
461 | 460 | { |
462 | | |
461 | | |
463 | 462 | } |
464 | 463 | /* Check for collisions between ship1 and projectiles */ |
465 | 464 | if (collision_check_s2p1p2(screen.machine())) |
466 | 465 | { |
467 | | |
466 | | |
468 | 467 | } |
469 | 468 | /* Check for collisions between ship1 and projectiles */ |
470 | 469 | /* Note: I don't think this is used by the game */ |
471 | 470 | if (collision_check_p1p2(screen.machine())) |
472 | 471 | { |
473 | | |
472 | | |
474 | 473 | } |
475 | 474 | } |
476 | 475 |
r17967 | r17968 | |
---|---|---|
339 | 339 | |
340 | 340 | |
341 | 341 | |
342 | ||
342 | ||
343 | 343 | { |
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); | |
346 | 345 | |
347 | 346 | nova2001_draw_sprites(screen.machine(), bitmap, cliprect); |
348 | 347 | |
349 | 348 | // according to the schematics, fg category 0 should be drawn behind sprites, |
350 | 349 | // 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); | |
353 | 352 | |
354 | 353 | return 0; |
355 | 354 | } |
356 | 355 | |
357 | ||
356 | ||
358 | 357 | { |
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); | |
361 | 359 | |
362 | 360 | pkunwar_draw_sprites(screen.machine(), bitmap, cliprect); |
363 | 361 | |
364 | | |
362 | | |
365 | 363 | |
366 | 364 | return 0; |
367 | 365 | } |
368 | 366 | |
369 | ||
367 | ||
370 | 368 | { |
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); | |
373 | 370 | |
374 | | |
371 | | |
375 | 372 | |
376 | 373 | nova2001_draw_sprites(screen.machine(), bitmap, cliprect); |
377 | 374 | |
378 | | |
375 | | |
379 | 376 | |
380 | 377 | return 0; |
381 | 378 | } |
382 | 379 | |
383 | ||
380 | ||
384 | 381 | { |
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); | |
387 | 383 | |
388 | 384 | pkunwar_draw_sprites(screen.machine(), bitmap, cliprect); |
389 | 385 | |
390 | | |
386 | | |
391 | 387 | |
392 | 388 | return 0; |
393 | 389 | } |
r17967 | r17968 | |
---|---|---|
195 | 195 | ***************************************************************************/ |
196 | 196 | |
197 | 197 | |
198 | ||
198 | ||
199 | 199 | { |
200 | yunsun16_state *state = screen.machine().driver_data<yunsun16_state>(); | |
201 | 200 | |
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]); | |
204 | 203 | |
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]); | |
207 | 206 | |
208 | //popmessage("%04X", * | |
207 | //popmessage("%04X", * | |
209 | 208 | |
210 | 209 | screen.machine().priority_bitmap.fill(0, cliprect); |
211 | 210 | |
212 | if ((* | |
211 | if ((* | |
213 | 212 | { |
214 | 213 | /* 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); | |
218 | 217 | } |
219 | else if ((* | |
218 | else if ((* | |
220 | 219 | { |
221 | 220 | /* 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); | |
225 | 224 | } |
226 | 225 | |
227 | 226 | draw_sprites(screen.machine(), bitmap, cliprect); |
r17967 | r17968 | |
---|---|---|
201 | 201 | } |
202 | 202 | |
203 | 203 | |
204 | ||
204 | ||
205 | 205 | { |
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); | |
209 | 208 | 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); | |
212 | 211 | return 0; |
213 | 212 | } |
214 | 213 | |
215 | ||
214 | ||
216 | 215 | { |
217 | wiz_state *state = screen.machine().driver_data<wiz_state>(); | |
218 | 216 | int bank; |
219 | 217 | |
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); | |
222 | 220 | draw_foreground(screen.machine(), bitmap, cliprect, 0); |
223 | 221 | |
224 | 222 | const rectangle spritevisiblearea(2*8, 32*8-1, 2*8, 30*8-1); |
225 | 223 | const rectangle spritevisibleareaflipx(0*8, 30*8-1, 2*8, 30*8-1); |
226 | const rectangle &visible_area = | |
224 | const rectangle &visible_area = | |
227 | 225 | |
228 | bank = 7 + * | |
226 | bank = 7 + * | |
229 | 227 | |
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); | |
232 | 230 | return 0; |
233 | 231 | } |
234 | 232 | |
235 | 233 | |
236 | ||
234 | ||
237 | 235 | { |
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); | |
241 | 238 | 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); | |
244 | 241 | return 0; |
245 | 242 | } |
r17967 | r17968 | |
---|---|---|
381 | 381 | * |
382 | 382 | *************************************/ |
383 | 383 | |
384 | static | |
384 | UINT32 stactics | |
385 | 385 | { |
386 | stactics_state *state = screen.machine().driver_data<stactics_state>(); | |
387 | 386 | |
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); | |
391 | 390 | |
392 | | |
391 | | |
393 | 392 | |
394 | 393 | return 0; |
395 | 394 | } |
r17967 | r17968 | |
411 | 410 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
412 | 411 | MCFG_SCREEN_SIZE(32*8, 32*8) |
413 | 412 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1) |
414 | MCFG_SCREEN_UPDATE_ | |
413 | MCFG_SCREEN_UPDATE_DR | |
415 | 414 | |
416 | 415 | MCFG_PALETTE_LENGTH(0x400) |
417 | 416 |
r17967 | r17968 | |
---|---|---|
221 | 221 | } |
222 | 222 | } |
223 | 223 | |
224 | ||
224 | ||
225 | 225 | { |
226 | mermaid_state *state = screen.machine().driver_data<mermaid_state>(); | |
227 | 226 | |
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); | |
230 | 229 | draw_sprites(screen.machine(), bitmap, cliprect); |
231 | 230 | return 0; |
232 | 231 | } |
r17967 | r17968 | |
253 | 252 | return data; |
254 | 253 | } |
255 | 254 | |
256 | ||
255 | void | |
257 | 256 | { |
258 | 257 | // rising edge |
259 | if ( | |
258 | if (st | |
260 | 259 | { |
261 | mermaid_state *state = screen.machine().driver_data<mermaid_state>(); | |
262 | 260 | const rectangle &visarea = screen.machine().primary_screen->visible_area(); |
263 | UINT8 *spriteram = | |
261 | UINT8 *spriteram = | |
264 | 262 | |
265 | 263 | int offs, offs2; |
266 | 264 | |
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; | |
272 | 270 | |
273 | 271 | // check for bit 0 (sprite-sprite), 1 (sprite-foreground), 2 (sprite-background) |
274 | 272 | |
275 | for (offs = | |
273 | for (offs = | |
276 | 274 | { |
277 | 275 | int attr = spriteram[offs + 2]; |
278 | 276 | int bank = (attr & 0x30) >> 4; |
r17967 | r17968 | |
287 | 285 | |
288 | 286 | if (coll != 1) continue; |
289 | 287 | |
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; | |
292 | 290 | |
293 | if ( | |
291 | if ( | |
294 | 292 | { |
295 | 293 | flipx = !flipx; |
296 | 294 | sx = 240 - sx; |
297 | 295 | } |
298 | 296 | |
299 | if ( | |
297 | if ( | |
300 | 298 | { |
301 | 299 | flipy = !flipy; |
302 | 300 | sy = 240 - sy; |
r17967 | r17968 | |
311 | 309 | |
312 | 310 | // check collision sprite - background |
313 | 311 | |
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); | |
316 | 314 | |
317 | | |
315 | | |
318 | 316 | |
319 | drawgfx_transpen( | |
317 | drawgfx_transpen( | |
320 | 318 | |
321 | | |
319 | | |
322 | 320 | |
323 | 321 | // check collision sprite - foreground |
324 | 322 | |
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); | |
327 | 325 | |
328 | | |
326 | | |
329 | 327 | |
330 | drawgfx_transpen( | |
328 | drawgfx_transpen( | |
331 | 329 | |
332 | | |
330 | | |
333 | 331 | |
334 | 332 | // check collision sprite - sprite |
335 | 333 | |
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); | |
338 | 336 | |
339 | for (offs2 = | |
337 | for (offs2 = | |
340 | 338 | if (offs != offs2) |
341 | 339 | { |
342 | 340 | int attr2 = spriteram[offs2 + 2]; |
r17967 | r17968 | |
350 | 348 | |
351 | 349 | if (coll2 != 0) continue; |
352 | 350 | |
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; | |
355 | 353 | |
356 | if ( | |
354 | if ( | |
357 | 355 | { |
358 | 356 | flipx2 = !flipx2; |
359 | 357 | sx2 = 240 - sx2; |
360 | 358 | } |
361 | 359 | |
362 | if ( | |
360 | if ( | |
363 | 361 | { |
364 | 362 | flipy2 = !flipy2; |
365 | 363 | sy2 = 240 - sy2; |
366 | 364 | } |
367 | 365 | |
368 | drawgfx_transpen( | |
366 | drawgfx_transpen( | |
369 | 367 | } |
370 | 368 | |
371 | drawgfx_transpen( | |
369 | drawgfx_transpen( | |
372 | 370 | |
373 | | |
371 | | |
374 | 372 | } |
375 | 373 | |
376 | 374 | // check for bit 3 (sprite-sprite) |
377 | 375 | |
378 | for (offs = | |
376 | for (offs = | |
379 | 377 | { |
380 | 378 | int attr = spriteram[offs + 2]; |
381 | 379 | int bank = (attr & 0x30) >> 4; |
r17967 | r17968 | |
390 | 388 | |
391 | 389 | if (coll != 2) continue; |
392 | 390 | |
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; | |
395 | 393 | |
396 | if ( | |
394 | if ( | |
397 | 395 | { |
398 | 396 | flipx = !flipx; |
399 | 397 | sx = 240 - sx; |
400 | 398 | } |
401 | 399 | |
402 | if ( | |
400 | if ( | |
403 | 401 | { |
404 | 402 | flipy = !flipy; |
405 | 403 | sy = 240 - sy; |
r17967 | r17968 | |
414 | 412 | |
415 | 413 | // check collision sprite - sprite |
416 | 414 | |
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); | |
419 | 417 | |
420 | for (offs2 = | |
418 | for (offs2 = | |
421 | 419 | if (offs != offs2) |
422 | 420 | { |
423 | 421 | int attr2 = spriteram[offs2 + 2]; |
r17967 | r17968 | |
431 | 429 | |
432 | 430 | if (coll2 != 0) continue; |
433 | 431 | |
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; | |
436 | 434 | |
437 | if ( | |
435 | if ( | |
438 | 436 | { |
439 | 437 | flipx2 = !flipx2; |
440 | 438 | sx2 = 240 - sx2; |
441 | 439 | } |
442 | 440 | |
443 | if ( | |
441 | if ( | |
444 | 442 | { |
445 | 443 | flipy2 = !flipy2; |
446 | 444 | sy2 = 240 - sy2; |
447 | 445 | } |
448 | 446 | |
449 | drawgfx_transpen( | |
447 | drawgfx_transpen( | |
450 | 448 | } |
451 | 449 | |
452 | drawgfx_transpen( | |
450 | drawgfx_transpen( | |
453 | 451 | |
454 | | |
452 | | |
455 | 453 | } |
456 | 454 | |
457 | 455 | // check for bit 6 |
458 | 456 | |
459 | for (offs = | |
457 | for (offs = | |
460 | 458 | { |
461 | 459 | int attr = spriteram[offs + 2]; |
462 | 460 | int bank = (attr & 0x30) >> 4; |
r17967 | r17968 | |
471 | 469 | |
472 | 470 | if (coll != 1) continue; |
473 | 471 | |
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; | |
476 | 474 | |
477 | if ( | |
475 | if ( | |
478 | 476 | { |
479 | 477 | flipx = !flipx; |
480 | 478 | sx = 240 - sx; |
481 | 479 | } |
482 | 480 | |
483 | if ( | |
481 | if ( | |
484 | 482 | { |
485 | 483 | flipy = !flipy; |
486 | 484 | sy = 240 - sy; |
r17967 | r17968 | |
495 | 493 | |
496 | 494 | // check collision sprite - sprite |
497 | 495 | |
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); | |
500 | 498 | |
501 | for (offs2 = | |
499 | for (offs2 = | |
502 | 500 | if (offs != offs2) |
503 | 501 | { |
504 | 502 | int attr2 = spriteram[offs2 + 2]; |
r17967 | r17968 | |
512 | 510 | |
513 | 511 | if (coll2 != 2) continue; |
514 | 512 | |
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; | |
517 | 515 | |
518 | if ( | |
516 | if ( | |
519 | 517 | { |
520 | 518 | flipx2 = !flipx2; |
521 | 519 | sx2 = 240 - sx2; |
522 | 520 | } |
523 | 521 | |
524 | if ( | |
522 | if ( | |
525 | 523 | { |
526 | 524 | flipy2 = !flipy2; |
527 | 525 | sy2 = 240 - sy2; |
528 | 526 | } |
529 | 527 | |
530 | drawgfx_transpen( | |
528 | drawgfx_transpen( | |
531 | 529 | } |
532 | 530 | |
533 | drawgfx_transpen( | |
531 | drawgfx_transpen( | |
534 | 532 | |
535 | | |
533 | | |
536 | 534 | } |
537 | 535 | } |
538 | 536 | } |
r17967 | r17968 | |
---|---|---|
427 | 427 | * |
428 | 428 | *************************************/ |
429 | 429 | |
430 | ||
430 | ||
431 | 431 | { |
432 | gaelco3d_state *state = screen.machine().driver_data<gaelco3d_state>(); | |
433 | 432 | int ret; |
434 | 433 | |
435 | 434 | /* |
436 | 435 | if (DISPLAY_TEXTURE && (screen.machine().input().code_pressed(KEYCODE_Z) || screen.machine().input().code_pressed(KEYCODE_X))) |
437 | 436 | { |
438 | 437 | 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; | |
441 | 440 | |
442 | 441 | if (screen.machine().input().code_pressed(KEYCODE_X)) |
443 | 442 | { |
444 | base = state->m_texmask; | |
445 | length = state->m_texmask_size; | |
443 | base = m_texmask; | |
444 | length = m_texmask_size; | |
446 | 445 | } |
447 | 446 | |
448 | 447 | if (screen.machine().input().code_pressed(KEYCODE_LEFT) && xv >= 4) |
r17967 | r17968 | |
471 | 470 | } |
472 | 471 | else*/ |
473 | 472 | { |
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; | |
478 | 477 | } |
479 | 478 | |
480 | 479 | logerror("---update---\n"); |
r17967 | r17968 | |
---|---|---|
265 | 265 | } |
266 | 266 | } |
267 | 267 | |
268 | ||
268 | ||
269 | 269 | { |
270 | dcon_state *state = screen.machine().driver_data<dcon_state>(); | |
271 | 270 | screen.machine().priority_bitmap.fill(0, cliprect); |
272 | 271 | |
273 | 272 | /* 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] ); | |
280 | 279 | |
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); | |
283 | 282 | else |
284 | 283 | bitmap.fill(15, cliprect); /* Should always be black, not pen 15 */ |
285 | 284 | |
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); | |
289 | 288 | |
290 | 289 | draw_sprites(screen.machine(),bitmap,cliprect); |
291 | 290 | return 0; |
292 | 291 | } |
293 | 292 | |
294 | ||
293 | ||
295 | 294 | { |
296 | dcon_state *state = screen.machine().driver_data<dcon_state>(); | |
297 | 295 | |
298 | 296 | screen.machine().priority_bitmap.fill(0, cliprect); |
299 | 297 | |
300 | 298 | /* Gfx banking */ |
301 | if ( | |
299 | if ( | |
302 | 300 | { |
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; | |
305 | 303 | } |
306 | 304 | |
307 | 305 | /* 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 ); | |
316 | 314 | |
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); | |
319 | 317 | else |
320 | 318 | bitmap.fill(15, cliprect); /* Should always be black, not pen 15 */ |
321 | 319 | |
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); | |
325 | 323 | |
326 | 324 | draw_sprites(screen.machine(),bitmap,cliprect); |
327 | 325 | return 0; |
r17967 | r17968 | |
---|---|---|
450 | 450 | * |
451 | 451 | *************************************/ |
452 | 452 | |
453 | ||
453 | ||
454 | 454 | { |
455 | galaxian_state *state = screen.machine().driver_data<galaxian_state>(); | |
456 | 455 | /* draw the background layer (including stars) */ |
457 | (* | |
456 | (* | |
458 | 457 | |
459 | 458 | /* draw the tilemap characters over top */ |
460 | | |
459 | | |
461 | 460 | |
462 | 461 | /* 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]); | |
465 | 464 | |
466 | 465 | /* 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]); | |
469 | 468 | |
470 | 469 | return 0; |
471 | 470 | } |
r17967 | r17968 | |
---|---|---|
160 | 160 | |
161 | 161 | |
162 | 162 | |
163 | ||
163 | ||
164 | 164 | { |
165 | kickgoal_state *state = screen.machine().driver_data<kickgoal_state>(); | |
166 | 165 | |
167 | 166 | /* 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]); | |
174 | 173 | |
175 | 174 | /* 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); | |
178 | 177 | |
179 | 178 | kickgoal_draw_sprites(screen.machine(), bitmap, cliprect); |
180 | 179 | |
181 | | |
180 | | |
182 | 181 | |
183 | 182 | return 0; |
184 | 183 | } |
r17967 | r17968 | |
---|---|---|
602 | 602 | * |
603 | 603 | *************************************/ |
604 | 604 | |
605 | ||
605 | ||
606 | 606 | { |
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; | |
609 | 608 | UINT32 page_offset; |
610 | 609 | int x, y; |
611 | 610 | const rgb_t *pens = tlc34076_get_pens(screen.machine().device("tlc34076")); |
r17967 | r17968 | |
640 | 639 | } |
641 | 640 | |
642 | 641 | |
643 | ||
642 | ||
644 | 643 | { |
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; | |
647 | 645 | UINT32 page_offset; |
648 | 646 | int x, y; |
649 | 647 | |
r17967 | r17968 | |
662 | 660 | /* bottom layer @ 0x20000 is 4bpp, colors come from TMS34070, enabled via palette control */ |
663 | 661 | /* 4bpp pixels are packed 2 to a byte */ |
664 | 662 | /* xscroll is set via a separate register */ |
665 | page_offset = (tms_state.dispstart & 0x0ffff) | | |
663 | page_offset = (tms_state.dispstart & 0x0ffff) | | |
666 | 664 | for (y = cliprect.min_y; y <= cliprect.max_y; y++) |
667 | 665 | { |
668 | 666 | UINT8 *base0 = &tms_state.vram[0x00000 + ((page_offset + y * 256) & 0xffff)]; |
r17967 | r17968 | |
675 | 673 | UINT8 pix2 = base2[x / 2]; |
676 | 674 | |
677 | 675 | if ((pix0 & 0xf0) != 0) |
678 | dest[x] = | |
676 | dest[x] = | |
679 | 677 | else |
680 | dest[x] = | |
678 | dest[x] = | |
681 | 679 | |
682 | 680 | if ((pix0 & 0x0f) != 0) |
683 | dest[x + 1] = | |
681 | dest[x + 1] = | |
684 | 682 | else |
685 | dest[x + 1] = | |
683 | dest[x + 1] = | |
686 | 684 | } |
687 | 685 | } |
688 | 686 | return 0; |
689 | 687 | } |
690 | 688 | |
691 | 689 | |
692 | ||
690 | ||
693 | 691 | { |
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; | |
696 | 693 | UINT32 page_offset; |
697 | 694 | int x, y; |
698 | 695 | const rgb_t *pens = tlc34076_get_pens(screen.machine().device("tlc34076")); |
r17967 | r17968 | |
709 | 706 | |
710 | 707 | /* there are two pages, each of which is a full 8bpp */ |
711 | 708 | /* page index is selected by the top bit of the page_select register */ |
712 | page_offset = (( | |
709 | page_offset = (( | |
713 | 710 | for (y = cliprect.min_y; y <= cliprect.max_y; y++) |
714 | 711 | { |
715 | 712 | UINT8 *base = &tms_state.vram[(page_offset + y * 256) & 0x3ffff]; |
r17967 | r17968 | |
722 | 719 | } |
723 | 720 | |
724 | 721 | |
725 | ||
722 | ||
726 | 723 | { |
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; | |
729 | 725 | UINT32 page_offset; |
730 | 726 | int x, y; |
731 | 727 | const rgb_t *pens = tlc34076_get_pens(screen.machine().device("tlc34076")); |
r17967 | r17968 | |
744 | 740 | /* the low 4 bits come from the bitmap directly */ |
745 | 741 | /* the upper 4 bits were latched on each write into a separate bitmap */ |
746 | 742 | /* page index is selected by the top bit of the page_select register */ |
747 | page_offset = ((~ | |
743 | page_offset = ((~ | |
748 | 744 | for (y = cliprect.min_y; y <= cliprect.max_y; y++) |
749 | 745 | { |
750 | 746 | UINT8 *base = &tms_state.vram[(page_offset + y * 256) & 0x3ffff]; |
r17967 | r17968 | |
---|---|---|
174 | 174 | } |
175 | 175 | } |
176 | 176 | |
177 | ||
177 | ||
178 | 178 | { |
179 | othldrby_state *state = screen.machine().driver_data<othldrby_state>(); | |
180 | 179 | int layer; |
181 | 180 | |
182 | | |
181 | | |
183 | 182 | |
184 | 183 | for (layer = 0; layer < 3; layer++) |
185 | 184 | { |
186 | if ( | |
185 | if ( | |
187 | 186 | { |
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); | |
190 | 189 | } |
191 | 190 | else |
192 | 191 | { |
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); | |
195 | 194 | } |
196 | 195 | } |
197 | 196 | |
r17967 | r17968 | |
200 | 199 | bitmap.fill(0, cliprect); |
201 | 200 | |
202 | 201 | for (layer = 0; layer < 3; layer++) |
203 | | |
202 | | |
204 | 203 | draw_sprites(screen.machine(), bitmap, cliprect, 0); |
205 | 204 | |
206 | 205 | for (layer = 0; layer < 3; layer++) |
207 | | |
206 | | |
208 | 207 | draw_sprites(screen.machine(), bitmap, cliprect, 1); |
209 | 208 | |
210 | 209 | for (layer = 0; layer < 3; layer++) |
211 | | |
210 | | |
212 | 211 | draw_sprites(screen.machine(), bitmap, cliprect, 2); |
213 | 212 | |
214 | 213 | for (layer = 0; layer < 3; layer++) |
215 | | |
214 | | |
216 | 215 | draw_sprites(screen.machine(), bitmap, cliprect, 3); |
217 | 216 | |
218 | 217 | return 0; |
219 | 218 | } |
220 | 219 | |
221 | ||
220 | void | |
222 | 221 | { |
223 | 222 | // rising edge |
224 | if ( | |
223 | if (st | |
225 | 224 | { |
226 | othldrby_state *state = screen.machine().driver_data<othldrby_state>(); | |
227 | 225 | |
228 | 226 | /* 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])); | |
231 | 229 | } |
232 | 230 | } |
r17967 | r17968 | |
---|---|---|
271 | 271 | |
272 | 272 | /******************************************************************************/ |
273 | 273 | |
274 | ||
274 | ||
275 | 275 | { |
276 | bbusters_state *state = screen.machine().driver_data<bbusters_state>(); | |
277 | 276 | |
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]); | |
282 | 281 | |
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); | |
289 | 288 | return 0; |
290 | 289 | } |
291 | 290 | |
292 | ||
291 | ||
293 | 292 | { |
294 | bbusters_state *state = screen.machine().driver_data<bbusters_state>(); | |
295 | 293 | |
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]); | |
300 | 298 | |
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); | |
305 | 303 | return 0; |
306 | 304 | } |
r17967 | r17968 | |
---|---|---|
525 | 525 | #endif |
526 | 526 | |
527 | 527 | |
528 | ||
528 | ||
529 | 529 | { |
530 | gstriker_state *state = screen.machine().driver_data<gstriker_state>(); | |
531 | 530 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
532 | 531 | |
533 | 532 | // Sandwitched screen/sprite0/score/sprite1. Surely wrong, probably |
r17967 | r17968 | |
536 | 535 | |
537 | 536 | CG10103_draw(screen.machine(), 0, bitmap, cliprect, 0); |
538 | 537 | |
539 | VS920A_draw( | |
538 | VS920A_draw( | |
540 | 539 | |
541 | 540 | CG10103_draw(screen.machine(), 0, bitmap, cliprect, 1); |
542 | 541 | |
543 | 542 | #if 0 |
544 | 543 | 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] | |
547 | 546 | ); |
548 | 547 | #endif |
549 | 548 |
r17967 | r17968 | |
---|---|---|
940 | 940 | |
941 | 941 | /**************************************************************/ |
942 | 942 | |
943 | ||
943 | ||
944 | 944 | { |
945 | snk_state *state = screen.machine().driver_data<snk_state>(); | |
946 | 945 | |
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); | |
951 | 950 | |
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); | |
957 | 956 | |
958 | 957 | return 0; |
959 | 958 | } |
960 | 959 | |
961 | 960 | |
962 | ||
961 | ||
963 | 962 | { |
964 | snk_state *state = screen.machine().driver_data<snk_state>(); | |
965 | 963 | |
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); | |
968 | 966 | |
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); | |
972 | 970 | |
973 | 971 | return 0; |
974 | 972 | } |
975 | 973 | |
976 | 974 | |
977 | ||
975 | ||
978 | 976 | { |
979 | snk_state *state = screen.machine().driver_data<snk_state>(); | |
980 | 977 | |
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); | |
983 | 980 | |
984 | | |
981 | | |
985 | 982 | |
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 ); | |
989 | 986 | |
990 | | |
987 | | |
991 | 988 | return 0; |
992 | 989 | } |
993 | 990 | |
994 | 991 | |
995 | ||
992 | ||
996 | 993 | { |
997 | snk_state *state = screen.machine().driver_data<snk_state>(); | |
998 | 994 | |
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); | |
1001 | 997 | |
1002 | | |
998 | | |
1003 | 999 | |
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 ); | |
1007 | 1003 | |
1008 | | |
1004 | | |
1009 | 1005 | |
1010 | 1006 | return 0; |
1011 | 1007 | } |
1012 | 1008 | |
1013 | 1009 | |
1014 | ||
1010 | ||
1015 | 1011 | { |
1016 | snk_state *state = screen.machine().driver_data<snk_state>(); | |
1017 | 1012 | |
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); | |
1020 | 1015 | |
1021 | | |
1016 | | |
1022 | 1017 | |
1023 | tdfever_draw_sprites(screen.machine(), bitmap, cliprect, | |
1018 | tdfever_draw_sprites(screen.machine(), bitmap, cliprect, | |
1024 | 1019 | |
1025 | | |
1020 | | |
1026 | 1021 | |
1027 | 1022 | return 0; |
1028 | 1023 | } |
r17967 | r17968 | |
---|---|---|
670 | 670 | } |
671 | 671 | |
672 | 672 | |
673 | ||
673 | ||
674 | 674 | { |
675 | hyprduel_state *state = screen.machine().driver_data<hyprduel_state>(); | |
676 | 675 | int i, pri, layers_ctrl = -1; |
677 | UINT16 screenctrl = * | |
676 | UINT16 screenctrl = * | |
678 | 677 | |
679 | 678 | { |
680 | 679 | int dirty = 0; |
681 | 680 | |
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++) | |
684 | 683 | { |
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]; | |
687 | 686 | |
688 | 687 | if ((tile_new ^ tile_old) & 0x0fffffff) |
689 | 688 | { |
690 | | |
689 | | |
691 | 690 | dirty = 1; |
692 | 691 | } |
693 | 692 | } |
694 | memcpy( | |
693 | memcpy( | |
695 | 694 | |
696 | 695 | if (dirty) |
697 | 696 | { |
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); | |
701 | 700 | } |
702 | 701 | } |
703 | 702 | |
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; | |
706 | 705 | |
707 | 706 | /* The background color is selected by a register */ |
708 | 707 | screen.machine().priority_bitmap.fill(0, cliprect); |
709 | bitmap.fill(( | |
708 | bitmap.fill(( | |
710 | 709 | |
711 | 710 | /* Screen Control Register: |
712 | 711 | |
r17967 | r17968 | |
721 | 720 | ---- ---- ---- ---0 Flip Screen */ |
722 | 721 | if (screenctrl & 2) |
723 | 722 | return 0; |
724 | | |
723 | | |
725 | 724 | |
726 | 725 | #if 0 |
727 | 726 | if (screen.machine().input().code_pressed(KEYCODE_Z)) |
r17967 | r17968 | |
737 | 736 | } |
738 | 737 | |
739 | 738 | 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); | |
743 | 742 | } |
744 | 743 | #endif |
745 | 744 |
r17967 | r17968 | |
---|---|---|
77 | 77 | * |
78 | 78 | *************************************/ |
79 | 79 | |
80 | ||
80 | ||
81 | 81 | { |
82 | arcadecl_state *state = screen.machine().driver_data<arcadecl_state>(); | |
83 | 82 | |
84 | 83 | /* draw the playfield */ |
85 | 84 | arcadecl_bitmap_render(screen.machine(), bitmap, cliprect); |
86 | 85 | |
87 | 86 | /* draw and merge the MO */ |
88 | if ( | |
87 | if ( | |
89 | 88 | { |
90 | 89 | atarimo_rect_list rectlist; |
91 | 90 | bitmap_ind16 *mobitmap; |
r17967 | r17968 | |
---|---|---|
132 | 132 | |
133 | 133 | /************************************************************************************************/ |
134 | 134 | |
135 | ||
135 | ||
136 | 136 | { |
137 | 137 | /* compute window for custom screen blanking */ |
138 | 138 | rectangle clip; |
139 | 139 | //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]; | |
143 | 142 | clip.min_x = (xclip>>16) - 0x4a; |
144 | 143 | clip.max_x = (xclip&0xffff) - 0x4a - 1; |
145 | 144 | clip.min_y = (yclip>>16) - 0x21; |
r17967 | r17968 | |
170 | 169 | |
171 | 170 | /****************************************************************************************************/ |
172 | 171 | |
173 | ||
172 | ||
174 | 173 | { |
175 | namconb1_state *state = screen.machine().driver_data<namconb1_state>(); | |
176 | 174 | /* compute window for custom screen blanking */ |
177 | 175 | rectangle clip; |
178 | 176 | //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]; | |
181 | 179 | clip.min_x = (xclip>>16) - 0x4b; |
182 | 180 | clip.max_x = (xclip&0xffff) - 0x4b - 1; |
183 | 181 | clip.min_y = (yclip>>16) - 0x21; |
r17967 | r17968 | |
187 | 185 | |
188 | 186 | bitmap.fill(get_black_pen(screen.machine()), cliprect ); |
189 | 187 | |
190 | if( memcmp( | |
188 | if( memcmp( | |
191 | 189 | { |
192 | 190 | namco_tilemap_invalidate(); |
193 | memcpy( | |
191 | memcpy( | |
194 | 192 | } |
195 | 193 | video_update_common( screen.machine(), bitmap, clip, 1 ); |
196 | 194 | return 0; |
r17967 | r17968 | |
---|---|---|
204 | 204 | } |
205 | 205 | } |
206 | 206 | |
207 | ||
207 | ||
208 | 208 | { |
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); | |
212 | 211 | flstory_draw_sprites(screen.machine(), bitmap, cliprect, 0x00); |
213 | | |
212 | | |
214 | 213 | flstory_draw_sprites(screen.machine(), bitmap, cliprect, 0x80); |
215 | | |
214 | | |
216 | 215 | return 0; |
217 | 216 | } |
218 | 217 | |
r17967 | r17968 | |
261 | 260 | } |
262 | 261 | } |
263 | 262 | |
264 | ||
263 | ||
265 | 264 | { |
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); | |
268 | 266 | victnine_draw_sprites(screen.machine(), bitmap, cliprect); |
269 | 267 | return 0; |
270 | 268 | } |
271 | 269 | |
272 | ||
270 | ||
273 | 271 | { |
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); | |
277 | 274 | victnine_draw_sprites(screen.machine(), bitmap, cliprect); |
278 | | |
275 | | |
279 | 276 | victnine_draw_sprites(screen.machine(), bitmap, cliprect); |
280 | | |
277 | | |
281 | 278 | return 0; |
282 | 279 | } |
r17967 | r17968 | |
---|---|---|
147 | 147 | m_screen_tilemap->set_transparent_pen(15); |
148 | 148 | } |
149 | 149 | |
150 | ||
150 | ||
151 | 151 | { |
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] ); | |
154 | 153 | |
155 | 154 | 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)) | |
158 | 157 | 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) | |
161 | 160 | draw_sprites(screen.machine(), bitmap, cliprect); |
162 | 161 | return 0; |
163 | 162 | } |
r17967 | r17968 | |
---|---|---|
59 | 59 | 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); |
60 | 60 | } |
61 | 61 | |
62 | ||
62 | ||
63 | 63 | { |
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); | |
66 | 65 | return 0; |
67 | 66 | } |
68 | 67 |
r17967 | r17968 | |
---|---|---|
120 | 120 | } |
121 | 121 | } |
122 | 122 | |
123 | ||
123 | ||
124 | 124 | { |
125 | strnskil_state *state = screen.machine().driver_data<strnskil_state>(); | |
126 | 125 | int row; |
127 | const UINT8 *usr1 = | |
126 | const UINT8 *usr1 = | |
128 | 127 | |
129 | 128 | for (row = 0; row < 32; row++) |
130 | 129 | { |
131 | if ( | |
130 | if ( | |
132 | 131 | { |
133 | switch (usr1[ | |
132 | switch (usr1[ | |
134 | 133 | { |
135 | 134 | case 2: |
136 | | |
135 | | |
137 | 136 | break; |
138 | 137 | case 4: |
139 | | |
138 | | |
140 | 139 | break; |
141 | 140 | } |
142 | 141 | } |
143 | 142 | } |
144 | 143 | |
145 | | |
144 | | |
146 | 145 | draw_sprites(screen.machine(), bitmap, cliprect); |
147 | 146 | return 0; |
148 | 147 | } |
r17967 | r17968 | |
---|---|---|
61 | 61 | * |
62 | 62 | *************************************/ |
63 | 63 | |
64 | ||
64 | ||
65 | 65 | { |
66 | atetris_state *state = screen.machine().driver_data<atetris_state>(); | |
67 | 66 | |
68 | | |
67 | | |
69 | 68 | return 0; |
70 | 69 | } |
r17967 | r17968 | |
---|---|---|
546 | 546 | } |
547 | 547 | |
548 | 548 | |
549 | ||
549 | ||
550 | 550 | { |
551 | 551 | bitmap.fill(0, cliprect); |
552 | 552 | draw_bitmap(screen.machine(), bitmap, cliprect); |
r17967 | r17968 | |
554 | 554 | } |
555 | 555 | |
556 | 556 | |
557 | ||
557 | ||
558 | 558 | { |
559 | 559 | bitmap.fill(0, cliprect); |
560 | 560 | draw_bitmap(screen.machine(), bitmap, cliprect); |
r17967 | r17968 | |
563 | 563 | } |
564 | 564 | |
565 | 565 | |
566 | ||
566 | ||
567 | 567 | { |
568 | 568 | bitmap.fill(0, cliprect); |
569 | 569 | cosmica_draw_starfield(screen, bitmap, cliprect); |
r17967 | r17968 | |
573 | 573 | } |
574 | 574 | |
575 | 575 | |
576 | ||
576 | ||
577 | 577 | { |
578 | 578 | bitmap.fill(0, cliprect); |
579 | 579 | draw_bitmap(screen.machine(), bitmap, cliprect); |
r17967 | r17968 | |
582 | 582 | } |
583 | 583 | |
584 | 584 | |
585 | ||
585 | ||
586 | 586 | { |
587 | cosmic_state *state = screen.machine().driver_data<cosmic_state>(); | |
588 | 587 | |
589 | 588 | bitmap.fill(0, cliprect); |
590 | 589 | |
591 | if ( | |
590 | if ( | |
592 | 591 | devzone_draw_grid(screen.machine(), bitmap, cliprect); |
593 | 592 | |
594 | 593 | draw_bitmap(screen.machine(), bitmap, cliprect); |
r17967 | r17968 | |
597 | 596 | } |
598 | 597 | |
599 | 598 | |
600 | ||
599 | ||
601 | 600 | { |
602 | cosmic_state *state = screen.machine().driver_data<cosmic_state>(); | |
603 | 601 | |
604 | 602 | /* according to the video summation logic on pg4, the trees and river |
605 | 603 | have the highest priority */ |
r17967 | r17968 | |
608 | 606 | draw_bitmap(screen.machine(), bitmap, cliprect); |
609 | 607 | draw_sprites(screen.machine(), bitmap, cliprect, 0x07, 0); |
610 | 608 | |
611 | if ( | |
609 | if ( | |
612 | 610 | nomnlnd_draw_background(screen, bitmap, cliprect); |
613 | 611 | |
614 | 612 | return 0; |
r17967 | r17968 | |
---|---|---|
186 | 186 | } |
187 | 187 | } |
188 | 188 | |
189 | ||
189 | ||
190 | 190 | { |
191 | shaolins_state *state = screen.machine().driver_data<shaolins_state>(); | |
192 | 191 | |
193 | | |
192 | | |
194 | 193 | draw_sprites(screen.machine(), bitmap, cliprect); |
195 | 194 | return 0; |
196 | 195 | } |
r17967 | r17968 | |
---|---|---|
2717 | 2717 | geo_init( machine(), (UINT32*)memregion("user2")->base() ); |
2718 | 2718 | } |
2719 | 2719 | |
2720 | ||
2720 | ||
2721 | 2721 | { |
2722 | model2_state *state = screen.machine().driver_data<model2_state>(); | |
2723 | 2722 | logerror("--- frame ---\n"); |
2724 | 2723 | |
2725 | 2724 | bitmap.fill(screen.machine().pens[0], cliprect); |
2726 | | |
2725 | | |
2727 | 2726 | |
2728 | 2727 | 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); | |
2733 | 2732 | |
2734 | copybitmap_trans(bitmap, | |
2733 | copybitmap_trans(bitmap, | |
2735 | 2734 | |
2736 | 2735 | /* tell the rasterizer we're starting a frame */ |
2737 | model2_3d_frame_start( | |
2736 | model2_3d_frame_start( | |
2738 | 2737 | |
2739 | 2738 | /* let the geometry engine do it's thing */ |
2740 | geo_parse( | |
2739 | geo_parse( | |
2741 | 2740 | |
2742 | 2741 | /* have the rasterizer output the frame */ |
2743 | model2_3d_frame_end( | |
2742 | model2_3d_frame_end( | |
2744 | 2743 | |
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); | |
2750 | 2749 | |
2751 | copybitmap_trans(bitmap, | |
2750 | copybitmap_trans(bitmap, | |
2752 | 2751 | |
2753 | 2752 | return 0; |
2754 | 2753 | } |
r17967 | r17968 | |
---|---|---|
28 | 28 | |
29 | 29 | /******************************************************************************/ |
30 | 30 | |
31 | ||
31 | ||
32 | 32 | { |
33 | sshangha_state *state = screen.machine().driver_data<sshangha_state>(); | |
34 | 33 | |
35 | screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, | |
34 | screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, | |
36 | 35 | |
37 | 36 | // 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); | |
40 | 39 | |
41 | screen.machine().tilemap().set_flip_all( | |
40 | screen.machine().tilemap().set_flip_all( | |
42 | 41 | |
43 | 42 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
44 | 43 | |
45 | deco16ic_pf_update( | |
44 | deco16ic_pf_update( | |
46 | 45 | |
47 | 46 | /* 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); | |
50 | 49 | screen.machine().device<decospr_device>("spritegen1")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0200, 0x0200, 0x100, 0x1ff); |
51 | 50 | } |
52 | 51 | else { |
53 | 52 | |
54 | deco16ic_tilemap_2_draw( | |
53 | deco16ic_tilemap_2_draw( | |
55 | 54 | screen.machine().device<decospr_device>("spritegen1")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0200, 0x0200, 0x100, 0x1ff); |
56 | deco16ic_tilemap_1_draw( | |
55 | deco16ic_tilemap_1_draw( | |
57 | 56 | } |
58 | 57 | |
59 | if ( | |
58 | if ( | |
60 | 59 | screen.machine().device<decospr_device>("spritegen2")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0000, 0, 0x1ff); |
61 | 60 | |
62 | 61 | screen.machine().device<decospr_device>("spritegen1")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0200, 0, 0x1ff); |
r17967 | r17968 | |
---|---|---|
86 | 86 | } |
87 | 87 | |
88 | 88 | |
89 | ||
89 | ||
90 | 90 | { |
91 | wiping_state *state = screen.machine().driver_data<wiping_state>(); | |
92 | UINT8 *spriteram = state->m_spriteram; | |
91 | UINT8 *spriteram = m_spriteram; | |
93 | 92 | int offs; |
94 | 93 | |
95 | 94 | for (offs = 0x3ff; offs > 0; offs--) |
r17967 | r17968 | |
115 | 114 | sy = my - 2; |
116 | 115 | } |
117 | 116 | |
118 | if ( | |
117 | if ( | |
119 | 118 | { |
120 | 119 | sx = 35 - sx; |
121 | 120 | sy = 27 - sy; |
122 | 121 | } |
123 | 122 | |
124 | 123 | 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, | |
128 | 127 | sx*8,sy*8); |
129 | 128 | } |
130 | 129 | |
r17967 | r17968 | |
142 | 141 | flipy = spriteram[offs] & 0x40; |
143 | 142 | flipx = spriteram[offs] & 0x80; |
144 | 143 | |
145 | if ( | |
144 | if ( | |
146 | 145 | { |
147 | 146 | sy = 208 - sy; |
148 | 147 | flipx = !flipx; |
r17967 | r17968 | |
160 | 159 | /* redraw high priority chars */ |
161 | 160 | for (offs = 0x3ff; offs > 0; offs--) |
162 | 161 | { |
163 | if ( | |
162 | if ( | |
164 | 163 | { |
165 | 164 | int mx,my,sx,sy; |
166 | 165 | |
r17967 | r17968 | |
183 | 182 | sy = my - 2; |
184 | 183 | } |
185 | 184 | |
186 | if ( | |
185 | if ( | |
187 | 186 | { |
188 | 187 | sx = 35 - sx; |
189 | 188 | sy = 27 - sy; |
190 | 189 | } |
191 | 190 | |
192 | 191 | 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, | |
196 | 195 | sx*8,sy*8); |
197 | 196 | } |
198 | 197 | } |
r17967 | r17968 | |
207 | 206 | for (j = 0;j < 8;j++) |
208 | 207 | { |
209 | 208 | char buf[40]; |
210 | sprintf(buf,"%01x", | |
209 | sprintf(buf,"%01x", | |
211 | 210 | ui_draw_text(buf,j*10,i*8); |
212 | 211 | } |
213 | 212 | } |
r17967 | r17968 | |
217 | 216 | for (j = 0;j < 8;j++) |
218 | 217 | { |
219 | 218 | char buf[40]; |
220 | sprintf(buf,"%01x", | |
219 | sprintf(buf,"%01x", | |
221 | 220 | ui_draw_text(buf,j*10,80+i*8); |
222 | 221 | } |
223 | 222 | } |
r17967 | r17968 | |
---|---|---|
209 | 209 | } |
210 | 210 | |
211 | 211 | |
212 | ||
212 | ||
213 | 213 | { |
214 | kyugo_state *state = screen.machine().driver_data<kyugo_state>(); | |
215 | 214 | |
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))); | |
218 | 217 | else |
219 | | |
218 | | |
220 | 219 | |
221 | | |
220 | | |
222 | 221 | |
223 | | |
222 | | |
224 | 223 | draw_sprites(screen.machine(), bitmap, cliprect); |
225 | | |
224 | | |
226 | 225 | return 0; |
227 | 226 | } |
r17967 | r17968 | |
---|---|---|
385 | 385 | * |
386 | 386 | *************************************/ |
387 | 387 | |
388 | static | |
388 | UINT32 leland_state::screen_update_leland(screen_device &screen, bitmap_ind | |
389 | 389 | { |
390 | leland_state *state = screen.machine().driver_data<leland_state>(); | |
391 | 390 | int y; |
392 | 391 | |
393 | 392 | const UINT8 *bg_prom = screen.machine().root_device().memregion("user1")->base(); |
394 | 393 | 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; | |
398 | 397 | |
399 | 398 | /* for each scanline in the visible region */ |
400 | 399 | for (y = cliprect.min_y; y <= cliprect.max_y; y++) |
r17967 | r17968 | |
403 | 402 | UINT8 fg_data = 0; |
404 | 403 | |
405 | 404 | UINT16 *dst = &bitmap.pix16(y); |
406 | UINT8 *fg_src = & | |
405 | UINT8 *fg_src = & | |
407 | 406 | |
408 | 407 | /* for each pixel on the scanline */ |
409 | 408 | for (x = 0; x < VIDEO_WIDTH; x++) |
410 | 409 | { |
411 | 410 | /* 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; | |
414 | 413 | |
415 | 414 | /* get the byte address this background pixel comes from */ |
416 | 415 | offs_t bg_prom_offs = (sx >> 3) | |
r17967 | r17968 | |
454 | 453 | * |
455 | 454 | *************************************/ |
456 | 455 | |
457 | static | |
456 | UINT32 leland_state::screen_update_ataxx(screen_device &screen, bitmap_ind | |
458 | 457 | { |
459 | leland_state *state = screen.machine().driver_data<leland_state>(); | |
460 | 458 | int y; |
461 | 459 | |
462 | 460 | const UINT8 *bg_gfx = screen.machine().root_device().memregion("gfx1")->base(); |
463 | offs_t bg_gfx_bank_page_size = | |
461 | offs_t bg_gfx_bank_page_size = | |
464 | 462 | offs_t bg_gfx_offs_mask = bg_gfx_bank_page_size - 1; |
465 | 463 | |
466 | 464 | /* for each scanline in the visible region */ |
r17967 | r17968 | |
470 | 468 | UINT8 fg_data = 0; |
471 | 469 | |
472 | 470 | UINT16 *dst = &bitmap.pix16(y); |
473 | UINT8 *fg_src = & | |
471 | UINT8 *fg_src = & | |
474 | 472 | |
475 | 473 | /* for each pixel on the scanline */ |
476 | 474 | for (x = 0; x < VIDEO_WIDTH; x++) |
477 | 475 | { |
478 | 476 | /* 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; | |
481 | 479 | |
482 | 480 | /* get the byte address this background pixel comes from */ |
483 | 481 | offs_t qram_offs = (sx >> 3) | |
r17967 | r17968 | |
485 | 483 | ((sy << 6) & 0x8000); |
486 | 484 | |
487 | 485 | 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; | |
490 | 488 | |
491 | 489 | /* build the pen, background is d0-d5 */ |
492 | 490 | pen_t pen = (((bg_gfx[bg_gfx_offs + (0 * bg_gfx_bank_page_size)] << (sx & 0x07)) & 0x80) >> 7) | /* d0 */ |
r17967 | r17968 | |
531 | 529 | MCFG_SCREEN_SIZE(40*8, 32*8) |
532 | 530 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) |
533 | 531 | MCFG_SCREEN_REFRESH_RATE(60) |
534 | MCFG_SCREEN_UPDATE_ | |
532 | MCFG_SCREEN_UPDATE_DR | |
535 | 533 | MACHINE_CONFIG_END |
536 | 534 | |
537 | 535 | |
538 | 536 | MACHINE_CONFIG_DERIVED( ataxx_video, leland_video ) |
539 | 537 | MCFG_VIDEO_START_OVERRIDE(leland_state,ataxx) |
540 | 538 | MCFG_SCREEN_MODIFY("screen") |
541 | MCFG_SCREEN_UPDATE_ | |
539 | MCFG_SCREEN_UPDATE_DR | |
542 | 540 | MACHINE_CONFIG_END |
r17967 | r17968 | |
---|---|---|
365 | 365 | } |
366 | 366 | } |
367 | 367 | |
368 | ||
368 | ||
369 | 369 | { |
370 | popeye_state *state = screen.machine().driver_data<popeye_state>(); | |
371 | 370 | draw_background(screen.machine(), bitmap, cliprect); |
372 | 371 | draw_sprites(screen.machine(), bitmap, cliprect); |
373 | | |
372 | | |
374 | 373 | return 0; |
375 | 374 | } |
r17967 | r17968 | |
---|---|---|
50 | 50 | } |
51 | 51 | |
52 | 52 | |
53 | ||
53 | ||
54 | 54 | { |
55 | lazercmd_state *state = screen.machine().driver_data<lazercmd_state>(); | |
56 | 55 | int i, x, y; |
57 | 56 | |
58 | 57 | int video_inverted = screen.machine().root_device().ioport("DSW")->read() & 0x20; |
r17967 | r17968 | |
69 | 68 | sy *= VERT_CHR; |
70 | 69 | |
71 | 70 | drawgfx_opaque(bitmap, cliprect,screen.machine().gfx[0], |
72 | | |
71 | | |
73 | 72 | 0,0, |
74 | 73 | sx,sy); |
75 | 74 | } |
76 | 75 | |
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 */ | |
79 | 78 | plot_pattern(screen.machine(), bitmap, x, y); |
80 | 79 | |
81 | 80 | return 0; |
r17967 | r17968 | |
---|---|---|
34 | 34 | m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(_4enraya_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); |
35 | 35 | } |
36 | 36 | |
37 | ||
37 | ||
38 | 38 | { |
39 | _4enraya_state *state = screen.machine().driver_data<_4enraya_state>(); | |
40 | 39 | |
41 | | |
40 | | |
42 | 41 | return 0; |
43 | 42 | } |
r17967 | r17968 | |
---|---|---|
25 | 25 | 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); |
26 | 26 | } |
27 | 27 | |
28 | ||
28 | ||
29 | 29 | { |
30 | blockade_state *state = screen.machine().driver_data<blockade_state>(); | |
31 | 30 | |
32 | | |
31 | | |
33 | 32 | return 0; |
34 | 33 | } |
r17967 | r17968 | |
---|---|---|
114 | 114 | } |
115 | 115 | } |
116 | 116 | |
117 | ||
117 | ||
118 | 118 | { |
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; | |
122 | 121 | |
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); | |
125 | 124 | |
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); | |
128 | 127 | draw_sprites(screen.machine(), bitmap, cliprect); |
129 | 128 | return 0; |
130 | 129 | } |
r17967 | r17968 | |
---|---|---|
317 | 317 | |
318 | 318 | ***************************************************************************/ |
319 | 319 | |
320 | ||
320 | ||
321 | 321 | { |
322 | lordgun_state *state = screen.machine().driver_data<lordgun_state>(); | |
323 | 322 | int layers_ctrl = -1; |
324 | 323 | |
325 | 324 | #ifdef MAME_DEBUG |
r17967 | r17968 | |
336 | 335 | } |
337 | 336 | #endif |
338 | 337 | |
339 | if ( | |
338 | if ( | |
340 | 339 | { |
341 | 340 | bitmap.fill(get_white_pen(screen.machine()), cliprect); |
342 | 341 | return 0; |
r17967 | r17968 | |
346 | 345 | |
347 | 346 | int x, y; |
348 | 347 | |
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] ); | |
351 | 350 | |
352 | 351 | 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] ); | |
355 | 354 | |
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] ); | |
358 | 357 | |
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] ); | |
361 | 360 | |
362 | 361 | // Rendering: |
363 | 362 | |
r17967 | r17968 | |
368 | 367 | |
369 | 368 | int l; |
370 | 369 | for (l = 0; l < 5; l++) |
371 | | |
370 | | |
372 | 371 | |
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); | |
378 | 377 | |
379 | 378 | // copy to screen bitmap |
380 | 379 | |
r17967 | r17968 | |
394 | 393 | // bits 0-4: layer transparency |
395 | 394 | for (l = 0; l < 5; l++) |
396 | 395 | { |
397 | pens[l] = | |
396 | pens[l] = | |
398 | 397 | if (pens[l] == trans_pen) |
399 | 398 | pri_addr |= 1 << layer2bit[l]; |
400 | 399 | } |
r17967 | r17968 | |
410 | 409 | |
411 | 410 | pri_addr &= 0x7fff; |
412 | 411 | |
413 | l = pri2layer[ | |
412 | l = pri2layer[ | |
414 | 413 | |
415 | 414 | bitmap.pix16(y, x) = pens[l]; |
416 | 415 | } |
r17967 | r17968 | |
---|---|---|
116 | 116 | } |
117 | 117 | } |
118 | 118 | |
119 | ||
119 | ||
120 | 120 | { |
121 | pushman_state *state = screen.machine().driver_data<pushman_state>(); | |
122 | 121 | |
123 | 122 | /* 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]); | |
126 | 125 | |
127 | | |
126 | | |
128 | 127 | draw_sprites(screen.machine(), bitmap, cliprect); |
129 | | |
128 | | |
130 | 129 | return 0; |
131 | 130 | } |
r17967 | r17968 | |
---|---|---|
47 | 47 | save_item(NAME(m_sprite_triple_buffer_1)); |
48 | 48 | } |
49 | 49 | |
50 | ||
50 | void | |
51 | 51 | { |
52 | 52 | // rising edge |
53 | if ( | |
53 | if (st | |
54 | 54 | { |
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); | |
58 | 57 | } |
59 | 58 | } |
60 | 59 | |
r17967 | r17968 | |
128 | 127 | } |
129 | 128 | } |
130 | 129 | |
131 | ||
130 | ||
132 | 131 | { |
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]; | |
136 | 134 | int y = 0; |
137 | 135 | rectangle rect; |
138 | 136 | rect.max_y = cliprect.max_y; |
139 | 137 | rect.min_y = cliprect.min_y; |
140 | 138 | |
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); | |
143 | 141 | |
144 | 142 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
145 | 143 | screen.machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0800, 0x0800, 0x300, 0xff); |
146 | 144 | |
147 | 145 | /* Pixel layer can be windowed in hardware (two player mode) */ |
148 | if (( | |
146 | if (( | |
149 | 147 | { |
150 | lemmings_copy_bitmap(screen.machine(), bitmap, | |
148 | lemmings_copy_bitmap(screen.machine(), bitmap, | |
151 | 149 | } |
152 | 150 | else |
153 | 151 | { |
154 | 152 | rect.max_x = 159; |
155 | 153 | rect.min_x = 0; |
156 | lemmings_copy_bitmap(screen.machine(), bitmap, | |
154 | lemmings_copy_bitmap(screen.machine(), bitmap, | |
157 | 155 | |
158 | 156 | rect.max_x = 319; |
159 | 157 | rect.min_x = 160; |
160 | lemmings_copy_bitmap(screen.machine(), bitmap, | |
158 | lemmings_copy_bitmap(screen.machine(), bitmap, | |
161 | 159 | } |
162 | 160 | |
163 | 161 | screen.machine().device<decospr_device>("spritegen2")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0800, 0x0800, 0x200, 0xff); |
164 | 162 | screen.machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0800, 0x300, 0xff); |
165 | | |
163 | | |
166 | 164 | screen.machine().device<decospr_device>("spritegen2")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0800, 0x200, 0xff); |
167 | 165 | return 0; |
168 | 166 | } |
r17967 | r17968 | |
---|---|---|
225 | 225 | } |
226 | 226 | |
227 | 227 | |
228 | ||
228 | ||
229 | 229 | { |
230 | espial_state *state = screen.machine().driver_data<espial_state>(); | |
231 | 230 | |
232 | | |
231 | | |
233 | 232 | draw_sprites(screen.machine(), bitmap, cliprect); |
234 | 233 | return 0; |
235 | 234 | } |
r17967 | r17968 | |
---|---|---|
171 | 171 | } |
172 | 172 | } |
173 | 173 | |
174 | ||
174 | ||
175 | 175 | { |
176 | hyperspt_state *state = screen.machine().driver_data<hyperspt_state>(); | |
177 | 176 | int row; |
178 | 177 | |
179 | 178 | for (row = 0; row < 32; row++) |
180 | 179 | { |
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); | |
184 | 183 | } |
185 | 184 | |
186 | | |
185 | | |
187 | 186 | draw_sprites(screen.machine(), bitmap, cliprect); |
188 | 187 | return 0; |
189 | 188 | } |
r17967 | r17968 | |
---|---|---|
176 | 176 | } |
177 | 177 | } |
178 | 178 | |
179 | ||
179 | ||
180 | 180 | { |
181 | tiamc1_state *state = screen.machine().driver_data<tiamc1_state>(); | |
182 | 181 | #if 0 |
183 | 182 | int i; |
184 | 183 | |
185 | 184 | for (i = 0; i < 32; i++) |
186 | 185 | { |
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); | |
189 | 188 | } |
190 | 189 | |
191 | 190 | for (i = 0; i < 32; i++) |
192 | 191 | { |
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); | |
195 | 194 | } |
196 | 195 | #endif |
197 | 196 | |
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); | |
200 | 199 | else |
201 | | |
200 | | |
202 | 201 | |
203 | 202 | |
204 | 203 | draw_sprites(screen.machine(), bitmap, cliprect); |
r17967 | r17968 | |
---|---|---|
1130 | 1130 | Draw the game screen in the given bitmap_ind16. |
1131 | 1131 | ***************************************************************************/ |
1132 | 1132 | |
1133 | ||
1133 | ||
1134 | 1134 | { |
1135 | toaplan1_state *state = screen.machine().driver_data<toaplan1_state>(); | |
1136 | 1135 | int priority; |
1137 | 1136 | |
1138 | 1137 | toaplan1_log_vram(screen.machine()); |
1139 | 1138 | |
1140 | 1139 | bitmap.fill(0x120, cliprect); |
1141 | 1140 | |
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); | |
1144 | 1143 | |
1145 | 1144 | for (priority = 1; priority < 16; priority++) |
1146 | 1145 | { |
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); | |
1151 | 1150 | rallybik_draw_sprites(screen.machine(), bitmap,cliprect,priority << 8); |
1152 | 1151 | } |
1153 | 1152 | |
1154 | 1153 | return 0; |
1155 | 1154 | } |
1156 | 1155 | |
1157 | ||
1156 | ||
1158 | 1157 | { |
1159 | toaplan1_state *state = screen.machine().driver_data<toaplan1_state>(); | |
1160 | 1158 | int priority; |
1161 | 1159 | |
1162 | 1160 | toaplan1_log_vram(screen.machine()); |
r17967 | r17968 | |
1165 | 1163 | bitmap.fill(0x120, cliprect); |
1166 | 1164 | |
1167 | 1165 | // 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); | |
1170 | 1168 | |
1171 | 1169 | for (priority = 1; priority < 16; priority++) |
1172 | 1170 | { |
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); | |
1177 | 1175 | } |
1178 | 1176 | |
1179 | 1177 | draw_sprites(screen.machine(), bitmap, cliprect); |
r17967 | r17968 | |
1186 | 1184 | assume it happens automatically every frame, at the end of vblank |
1187 | 1185 | ****************************************************************************/ |
1188 | 1186 | |
1189 | ||
1187 | void | |
1190 | 1188 | { |
1191 | 1189 | // rising edge |
1192 | if ( | |
1190 | if (st | |
1193 | 1191 | { |
1194 | toaplan1_state *state = screen.machine().driver_data<toaplan1_state>(); | |
1195 | 1192 | |
1196 | memcpy( | |
1193 | memcpy( | |
1197 | 1194 | } |
1198 | 1195 | } |
1199 | 1196 | |
1200 | ||
1197 | void | |
1201 | 1198 | { |
1202 | 1199 | // rising edge |
1203 | if ( | |
1200 | if (st | |
1204 | 1201 | { |
1205 | toaplan1_state *state = screen.machine().driver_data<toaplan1_state>(); | |
1206 | 1202 | |
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); | |
1209 | 1205 | } |
1210 | 1206 | } |
1211 | 1207 | |
1212 | ||
1208 | void | |
1213 | 1209 | { |
1214 | 1210 | // rising edge |
1215 | if ( | |
1211 | if (st | |
1216 | 1212 | { |
1217 | toaplan1_state *state = screen.machine().driver_data<toaplan1_state>(); | |
1218 | 1213 | |
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); | |
1221 | 1216 | screen.machine().device("maincpu")->execute().set_input_line(M68K_IRQ_2, HOLD_LINE); /* Frame done */ |
1222 | 1217 | } |
1223 | 1218 | } |
r17967 | r17968 | |
---|---|---|
792 | 792 | * |
793 | 793 | *************************************/ |
794 | 794 | |
795 | ||
795 | ||
796 | 796 | { |
797 | segag80r_state *state = screen.machine().driver_data<segag80r_state>(); | |
798 | 797 | UINT8 transparent_pens[16]; |
799 | 798 | |
800 | switch ( | |
799 | switch ( | |
801 | 800 | { |
802 | 801 | /* foreground: opaque */ |
803 | 802 | /* background: none */ |
r17967 | r17968 | |
---|---|---|
257 | 257 | } |
258 | 258 | |
259 | 259 | |
260 | ||
260 | ||
261 | 261 | { |
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; | |
267 | 266 | |
268 | if ( | |
267 | if ( | |
269 | 268 | { |
270 | 269 | draw_layer_interleaved(screen.machine(), bitmap, cliprect, 3, 2, col1, 0); |
271 | 270 | draw_layer_interleaved(screen.machine(), bitmap, cliprect, 1, 0, col0, 1); |
r17967 | r17968 | |
---|---|---|
557 | 557 | |
558 | 558 | ***************************************************************************/ |
559 | 559 | |
560 | ||
560 | ||
561 | 561 | { |
562 | tmnt_state *state = screen.machine().driver_data<tmnt_state>(); | |
563 | 562 | |
564 | k052109_tilemap_update( | |
563 | k052109_tilemap_update( | |
565 | 564 | |
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); | |
571 | 570 | |
572 | 571 | return 0; |
573 | 572 | } |
574 | 573 | |
575 | ||
574 | ||
576 | 575 | { |
577 | tmnt_state *state = screen.machine().driver_data<tmnt_state>(); | |
578 | 576 | |
579 | k052109_tilemap_update( | |
577 | k052109_tilemap_update( | |
580 | 578 | |
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); | |
586 | 584 | |
587 | 585 | return 0; |
588 | 586 | } |
589 | 587 | |
590 | 588 | |
591 | ||
589 | ||
592 | 590 | { |
593 | tmnt_state *state = screen.machine().driver_data<tmnt_state>(); | |
594 | 591 | |
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); | |
599 | 596 | |
600 | k052109_tilemap_update( | |
597 | k052109_tilemap_update( | |
601 | 598 | |
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); | |
608 | 605 | |
609 | konami_sortlayers3( | |
606 | konami_sortlayers3( | |
610 | 607 | |
611 | 608 | 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); | |
615 | 612 | |
616 | k051960_sprites_draw( | |
613 | k051960_sprites_draw( | |
617 | 614 | return 0; |
618 | 615 | } |
619 | 616 | |
620 | 617 | |
621 | ||
618 | ||
622 | 619 | { |
623 | tmnt_state *state = screen.machine().driver_data<tmnt_state>(); | |
624 | 620 | int bg_colorbase; |
625 | 621 | |
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); | |
631 | 627 | |
632 | k052109_tilemap_update( | |
628 | k052109_tilemap_update( | |
633 | 629 | |
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); | |
640 | 636 | |
641 | konami_sortlayers3( | |
637 | konami_sortlayers3( | |
642 | 638 | |
643 | 639 | screen.machine().priority_bitmap.fill(0, cliprect); |
644 | 640 | 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); | |
648 | 644 | |
649 | k053245_sprites_draw( | |
645 | k053245_sprites_draw( | |
650 | 646 | return 0; |
651 | 647 | } |
652 | 648 | |
r17967 | r17968 | |
664 | 660 | return m_glfgreat_pixel & 0xff; |
665 | 661 | } |
666 | 662 | |
667 | ||
663 | ||
668 | 664 | { |
669 | tmnt_state *state = screen.machine().driver_data<tmnt_state>(); | |
670 | 665 | int bg_colorbase; |
671 | 666 | |
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); | |
677 | 672 | |
678 | k052109_tilemap_update( | |
673 | k052109_tilemap_update( | |
679 | 674 | |
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); | |
686 | 681 | |
687 | konami_sortlayers3( | |
682 | konami_sortlayers3( | |
688 | 683 | |
689 | 684 | /* not sure about the 053936 priority, but it seems to work */ |
690 | 685 | |
691 | 686 | screen.machine().priority_bitmap.fill(0, cliprect); |
692 | 687 | bitmap.fill(16 * bg_colorbase, cliprect); |
693 | k052109_tilemap_draw( | |
688 | k052109_tilemap_draw( | |
694 | 689 | |
695 | if ( | |
690 | if ( | |
696 | 691 | { |
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); | |
699 | 694 | } |
700 | 695 | |
701 | k052109_tilemap_draw( | |
696 | k052109_tilemap_draw( | |
702 | 697 | |
703 | if ( | |
698 | if ( | |
704 | 699 | { |
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); | |
707 | 702 | } |
708 | 703 | |
709 | k052109_tilemap_draw( | |
704 | k052109_tilemap_draw( | |
710 | 705 | |
711 | if ( | |
706 | if ( | |
712 | 707 | { |
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); | |
715 | 710 | } |
716 | 711 | |
717 | k053245_sprites_draw( | |
712 | k053245_sprites_draw( | |
718 | 713 | return 0; |
719 | 714 | } |
720 | 715 | |
721 | ||
716 | ||
722 | 717 | { |
723 | tmnt_state *state = screen.machine().driver_data<tmnt_state>(); | |
724 | 718 | double brt; |
725 | 719 | int i, newdim, newen, cb, ce; |
726 | 720 | |
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); | |
729 | 723 | |
730 | if (newdim != | |
724 | if (newdim != | |
731 | 725 | { |
732 | 726 | brt = 1.0; |
733 | 727 | if (newen) |
734 | 728 | 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; | |
737 | 731 | |
738 | 732 | /* |
739 | 733 | Only affect the background and sprites, not text layer. |
r17967 | r17968 | |
744 | 738 | */ |
745 | 739 | |
746 | 740 | // find the text layer's palette range |
747 | cb = | |
741 | cb = | |
748 | 742 | ce = cb + 128; |
749 | 743 | |
750 | 744 | // dim all colors before it |
r17967 | r17968 | |
760 | 754 | palette_set_pen_contrast(screen.machine(), i, brt); |
761 | 755 | |
762 | 756 | // toggle shadow/highlight |
763 | if (~ | |
757 | if (~ | |
764 | 758 | palette_set_shadow_mode(screen.machine(), 1); |
765 | 759 | else |
766 | 760 | palette_set_shadow_mode(screen.machine(), 0); |
767 | 761 | } |
768 | 762 | |
769 | SCREEN_UPDATE16_CALL(lgtnfght); | |
763 | SCREEN_UPDATE16_CALL_MEMBER(lgtnfght); | |
770 | 764 | return 0; |
771 | 765 | } |
772 | 766 | |
773 | 767 | |
774 | ||
768 | ||
775 | 769 | { |
776 | tmnt_state *state = screen.machine().driver_data<tmnt_state>(); | |
777 | 770 | int bg_colorbase; |
778 | 771 | |
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); | |
784 | 777 | |
785 | k052109_tilemap_update( | |
778 | k052109_tilemap_update( | |
786 | 779 | |
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); | |
793 | 786 | |
794 | konami_sortlayers3( | |
787 | konami_sortlayers3( | |
795 | 788 | |
796 | 789 | screen.machine().priority_bitmap.fill(0, cliprect); |
797 | 790 | 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); | |
801 | 794 | |
802 | k051960_sprites_draw( | |
795 | k051960_sprites_draw( | |
803 | 796 | return 0; |
804 | 797 | } |
805 | 798 | |
r17967 | r17968 | |
811 | 804 | |
812 | 805 | ***************************************************************************/ |
813 | 806 | |
814 | ||
807 | void | |
815 | 808 | { |
816 | 809 | // on rising edge |
817 | if ( | |
810 | if (st | |
818 | 811 | { |
819 | tmnt_state *state = screen.machine().driver_data<tmnt_state>(); | |
820 | k053245_clear_buffer(state->m_k053245); | |
812 | k053245_clear_buffer(m_k053245); | |
821 | 813 | } |
822 | 814 | } |
r17967 | r17968 | |
---|---|---|
48 | 48 | ---- ---- ---- ---- xxxx xxxx ---- ---- Green |
49 | 49 | ---- ---- ---- ---- ---- ---- xxxx xxxx Blue |
50 | 50 | */ |
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) | |
55 | 55 | |
56 | 56 | /* |
57 | 57 | SPG_HBLANK |
r17967 | r17968 | |
92 | 92 | #define spg_pclk_delay ((state->pvrta_regs[VO_CONTROL] & 0x003f0000) >> 16) |
93 | 93 | #define spg_pixel_double ((state->pvrta_regs[VO_CONTROL] & 0x00000100) >> 8) |
94 | 94 | #define spg_field_mode ((state->pvrta_regs[VO_CONTROL] & 0x000000f0) >> 4) |
95 | #define spg_blank_video (( | |
95 | #define spg_blank_video (( | |
96 | 96 | #define spg_blank_pol ((state->pvrta_regs[VO_CONTROL] & 0x00000004) >> 2) |
97 | 97 | #define spg_vsync_pol ((state->pvrta_regs[VO_CONTROL] & 0x00000002) >> 1) |
98 | 98 | #define spg_hsync_pol ((state->pvrta_regs[VO_CONTROL] & 0x00000001) >> 0) |
r17967 | r17968 | |
2637 | 2637 | |
2638 | 2638 | } |
2639 | 2639 | |
2640 | ||
2640 | ||
2641 | 2641 | { |
2642 | dc_state *state = screen.machine().driver_data<dc_state>(); | |
2643 | 2642 | |
2644 | 2643 | /****************** |
2645 | 2644 | MAME note |
r17967 | r17968 | |
2681 | 2680 | pvr_drawframebuffer(screen.machine(),bitmap,cliprect); |
2682 | 2681 | |
2683 | 2682 | // update this here so we only do string lookup once per frame |
2684 | | |
2683 | | |
2685 | 2684 | |
2686 | 2685 | return 0; |
2687 | 2686 | } |
r17967 | r17968 | |
---|---|---|
9 | 9 | |
10 | 10 | |
11 | 11 | |
12 | ||
12 | ||
13 | 13 | { |
14 | taxidriv_state *state = screen.machine().driver_data<taxidriv_state>(); | |
15 | 14 | int offs; |
16 | 15 | int sx,sy; |
17 | 16 | |
18 | 17 | |
19 | if ( | |
18 | if ( | |
20 | 19 | { |
21 | 20 | bitmap.fill(0, cliprect); |
22 | 21 | |
23 | 22 | |
24 | 23 | /* 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; | |
27 | 26 | } |
28 | 27 | else |
29 | 28 | { |
r17967 | r17968 | |
33 | 32 | sy = offs / 32; |
34 | 33 | |
35 | 34 | drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[3], |
36 | | |
35 | | |
37 | 36 | 0, |
38 | 37 | 0,0, |
39 | (sx*8- | |
38 | (sx*8- | |
40 | 39 | } |
41 | 40 | |
42 | 41 | for (offs = 0;offs < 0x400;offs++) |
r17967 | r17968 | |
45 | 44 | sy = offs / 32; |
46 | 45 | |
47 | 46 | drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[2], |
48 | | |
47 | | |
49 | 48 | 0, |
50 | 49 | 0,0, |
51 | (sx*8- | |
50 | (sx*8- | |
52 | 51 | } |
53 | 52 | |
54 | if ( | |
53 | if ( | |
55 | 54 | { |
56 | 55 | for (offs = 0;offs < 0x1000;offs++) |
57 | 56 | { |
58 | 57 | int color; |
59 | 58 | |
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; | |
62 | 61 | |
63 | color = ( | |
62 | color = ( | |
64 | 63 | if (color) |
65 | 64 | { |
66 | 65 | if (sx > 0 && sx < 256 && sy > 0 && sy < 256) |
r17967 | r17968 | |
69 | 68 | } |
70 | 69 | } |
71 | 70 | |
72 | if ( | |
71 | if ( | |
73 | 72 | { |
74 | 73 | for (offs = 0;offs < 0x1000;offs++) |
75 | 74 | { |
76 | 75 | int color; |
77 | 76 | |
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; | |
80 | 79 | |
81 | color = ( | |
80 | color = ( | |
82 | 81 | if (color) |
83 | 82 | { |
84 | 83 | if (sx > 0 && sx < 256 && sy > 0 && sy < 256) |
r17967 | r17968 | |
87 | 86 | } |
88 | 87 | } |
89 | 88 | |
90 | if ( | |
89 | if ( | |
91 | 90 | { |
92 | 91 | for (offs = 0;offs < 0x1000;offs++) |
93 | 92 | { |
94 | 93 | int color; |
95 | 94 | |
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; | |
98 | 97 | |
99 | color = ( | |
98 | color = ( | |
100 | 99 | if (color) |
101 | 100 | { |
102 | 101 | if (sx > 0 && sx < 256 && sy > 0 && sy < 256) |
r17967 | r17968 | |
111 | 110 | sy = offs / 32; |
112 | 111 | |
113 | 112 | drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[1], |
114 | | |
113 | | |
115 | 114 | 0, |
116 | 115 | 0,0, |
117 | 116 | sx*8,sy*8,0); |
r17967 | r17968 | |
124 | 123 | sx = (offs/2) % 64; |
125 | 124 | sy = (offs/2) / 64; |
126 | 125 | |
127 | color = ( | |
126 | color = ( | |
128 | 127 | if (color) |
129 | 128 | { |
130 | 129 | bitmap.pix16(sy, sx) = 2 * color; |
r17967 | r17968 | |
138 | 137 | sy = offs / 32; |
139 | 138 | |
140 | 139 | drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[0], |
141 | | |
140 | | |
142 | 141 | 0, |
143 | 142 | 0,0, |
144 | 143 | sx*8,sy*8,0); |
r17967 | r17968 | |
---|---|---|
329 | 329 | m_renderer = auto_alloc(machine(), taitojc_renderer(machine(), &m_framebuffer, &m_zbuffer, m_texture)); |
330 | 330 | } |
331 | 331 | |
332 | ||
332 | ||
333 | 333 | { |
334 | taitojc_state *state = screen.machine().driver_data<taitojc_state>(); | |
335 | 334 | |
336 | 335 | bitmap.fill(0, cliprect); |
337 | 336 | |
r17967 | r17968 | |
341 | 340 | draw_object_bank(screen.machine(), bitmap, cliprect, 2, 0); |
342 | 341 | |
343 | 342 | // 3D layer |
344 | copybitmap_trans(bitmap, | |
343 | copybitmap_trans(bitmap, | |
345 | 344 | |
346 | 345 | // high priority objects |
347 | 346 | draw_object_bank(screen.machine(), bitmap, cliprect, 0, 1); |
r17967 | r17968 | |
349 | 348 | draw_object_bank(screen.machine(), bitmap, cliprect, 2, 1); |
350 | 349 | |
351 | 350 | // 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); | |
354 | 353 | |
355 | 354 | return 0; |
356 | 355 | } |
357 | 356 | |
358 | ||
357 | ||
359 | 358 | { |
360 | taitojc_state *state = screen.machine().driver_data<taitojc_state>(); | |
361 | 359 | |
362 | 360 | // update controller state in artwork |
363 | UINT8 btn = ( | |
361 | UINT8 btn = ( | |
364 | 362 | int level; |
365 | 363 | for (level = 5; level > 0; level--) |
366 | 364 | if (btn == dendego_mascon_table[level]) break; |
r17967 | r17968 | |
368 | 366 | if (level != output_get_value("counter0")) |
369 | 367 | output_set_value("counter0", level); |
370 | 368 | |
371 | btn = ( | |
369 | btn = ( | |
372 | 370 | for (level = 10; level > 0; level--) |
373 | 371 | if (btn >= dendego_brake_table[level]) break; |
374 | 372 | |
375 | 373 | if (level != output_get_value("counter1")) |
376 | 374 | output_set_value("counter1", level); |
377 | 375 | |
378 | return SCREEN_UPDATE16_CALL(taitojc); | |
376 | return SCREEN_UPDATE16_CALL_MEMBER(taitojc); | |
379 | 377 | } |
380 | 378 | |
381 | 379 |
r17967 | r17968 | |
---|---|---|
207 | 207 | } |
208 | 208 | } |
209 | 209 | |
210 | ||
210 | ||
211 | 211 | { |
212 | pitnrun_state *state = screen.machine().driver_data<pitnrun_state>(); | |
213 | 212 | int dx=0,dy=0; |
214 | 213 | rectangle myclip=cliprect; |
215 | 214 | |
216 | 215 | #ifdef MAME_DEBUG |
217 | 216 | if (screen.machine().input().code_pressed_once(KEYCODE_Q)) |
218 | 217 | { |
219 | UINT8 *ROM = | |
218 | UINT8 *ROM = | |
220 | 219 | ROM[0x84f6]=0; /* lap 0 - normal */ |
221 | 220 | } |
222 | 221 | |
r17967 | r17968 | |
236 | 235 | |
237 | 236 | bitmap.fill(0, cliprect); |
238 | 237 | |
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); | |
241 | 240 | else |
242 | 241 | { |
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); | |
245 | 244 | |
246 | if ( | |
245 | if ( | |
247 | 246 | dx=128-dx+16; |
248 | 247 | |
249 | if ( | |
248 | if ( | |
250 | 249 | dy=128-dy; |
251 | 250 | |
252 | 251 | myclip.set(dx, dx+127, dy, dy+127); |
253 | 252 | myclip &= cliprect; |
254 | 253 | |
255 | | |
254 | | |
256 | 255 | } |
257 | 256 | |
258 | 257 | draw_sprites(screen.machine(),bitmap,myclip); |
259 | 258 | |
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); | |
263 | 262 | return 0; |
264 | 263 | } |
265 | 264 |
r17967 | r17968 | |
---|---|---|
357 | 357 | * |
358 | 358 | *************************************/ |
359 | 359 | |
360 | ||
360 | ||
361 | 361 | { |
362 | 362 | int x, y; |
363 | 363 | |
r17967 | r17968 | |
369 | 369 | /* normal update case */ |
370 | 370 | if (!screen.machine().input().code_pressed(KEYCODE_W)) |
371 | 371 | { |
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]); | |
374 | 373 | int xoffs = screen.visible_area().min_x; |
375 | 374 | for (y = cliprect.min_y; y <= cliprect.max_y; y++) |
376 | 375 | { |
r17967 | r17968 | |
---|---|---|
154 | 154 | } |
155 | 155 | } |
156 | 156 | |
157 | ||
157 | ||
158 | 158 | { |
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); | |
163 | 162 | 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); | |
167 | 166 | return 0; |
168 | 167 | } |
r17967 | r17968 | |
---|---|---|
236 | 236 | } |
237 | 237 | } |
238 | 238 | |
239 | ||
239 | ||
240 | 240 | { |
241 | bionicc_state *state = screen.machine().driver_data<bionicc_state>(); | |
242 | 241 | |
243 | 242 | 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); | |
247 | 246 | 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); | |
250 | 249 | return 0; |
251 | 250 | } |
r17967 | r17968 | |
---|---|---|
135 | 135 | palette_set_color_rgb(machine, color, pal4bit(data >> 12), pal4bit(data >> 8), pal4bit(data >> 4)); |
136 | 136 | } |
137 | 137 | |
138 | ||
138 | ||
139 | 139 | { |
140 | citycon_state *state = screen.machine().driver_data<citycon_state>(); | |
141 | 140 | int offs, scroll; |
142 | 141 | |
143 | 142 | /* Update the virtual palette to support text color code changing on every scanline. */ |
144 | 143 | for (offs = 0; offs < 256; offs++) |
145 | 144 | { |
146 | int indx = | |
145 | int indx = | |
147 | 146 | int i; |
148 | 147 | |
149 | 148 | for (i = 0; i < 4; i++) |
r17967 | r17968 | |
151 | 150 | } |
152 | 151 | |
153 | 152 | |
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); | |
156 | 155 | for (offs = 6; offs < 32; offs++) |
157 | | |
156 | | |
158 | 157 | |
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); | |
161 | 160 | draw_sprites(screen.machine(), bitmap, cliprect); |
162 | 161 | return 0; |
163 | 162 | } |
r17967 | r17968 | |
---|---|---|
157 | 157 | * |
158 | 158 | *************************************/ |
159 | 159 | |
160 | ||
160 | ||
161 | 161 | { |
162 | suprridr_state *state = screen.machine().driver_data<suprridr_state>(); | |
163 | UINT8 *spriteram = state->m_spriteram; | |
162 | UINT8 *spriteram = m_spriteram; | |
164 | 163 | rectangle subclip; |
165 | 164 | int i; |
166 | 165 | const rectangle &visarea = screen.visible_area(); |
167 | 166 | |
168 | 167 | /* render left 4 columns with no scroll */ |
169 | 168 | subclip = visarea;; |
170 | subclip.max_x = subclip.min_x + ( | |
169 | subclip.max_x = subclip.min_x + ( | |
171 | 170 | subclip &= cliprect; |
172 | | |
171 | | |
173 | 172 | |
174 | 173 | /* render right 1 column with no scroll */ |
175 | 174 | subclip = visarea;; |
176 | subclip.min_x = subclip.max_x - ( | |
175 | subclip.min_x = subclip.max_x - ( | |
177 | 176 | subclip &= cliprect; |
178 | | |
177 | | |
179 | 178 | |
180 | 179 | /* render the middle columns normally */ |
181 | 180 | 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; | |
184 | 183 | subclip &= cliprect; |
185 | | |
184 | | |
186 | 185 | |
187 | 186 | /* render the top layer */ |
188 | | |
187 | | |
189 | 188 | |
190 | 189 | /* draw the sprites */ |
191 | 190 | for (i = 0; i < 48; i++) |
r17967 | r17968 | |
197 | 196 | int x = spriteram[i*4+3]; |
198 | 197 | int y = 240 - spriteram[i*4+0]; |
199 | 198 | |
200 | if ( | |
199 | if ( | |
201 | 200 | { |
202 | 201 | fx = !fx; |
203 | 202 | x = 240 - x; |
204 | 203 | } |
205 | if ( | |
204 | if ( | |
206 | 205 | { |
207 | 206 | fy = !fy; |
208 | 207 | y = 240 - y; |
r17967 | r17968 | |
---|---|---|
61 | 61 | |
62 | 62 | ***************************************************************************/ |
63 | 63 | |
64 | ||
64 | ||
65 | 65 | { |
66 | spy_state *state = screen.machine().driver_data<spy_state>(); | |
67 | 66 | |
68 | k052109_tilemap_update( | |
67 | k052109_tilemap_update( | |
69 | 68 | |
70 | 69 | screen.machine().priority_bitmap.fill(0, cliprect); |
71 | 70 | |
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); | |
74 | 73 | else |
75 | 74 | { |
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); | |
80 | 79 | } |
81 | 80 | |
82 | 81 | return 0; |
r17967 | r17968 | |
---|---|---|
515 | 515 | return 0x10 * 16; |
516 | 516 | } |
517 | 517 | |
518 | ||
518 | ||
519 | 519 | { |
520 | psikyo_state *state = screen.machine().driver_data<psikyo_state>(); | |
521 | 520 | int i, layers_ctrl = -1; |
522 | 521 | |
523 | 522 | UINT32 tm0size, tm1size; |
524 | 523 | |
525 | 524 | UINT32 layer0_scrollx, layer0_scrolly; |
526 | 525 | 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]; | |
530 | 529 | |
531 | 530 | tilemap_t *tmptilemap0, *tmptilemap1; |
532 | 531 | |
533 | | |
532 | | |
534 | 533 | |
535 | 534 | /* Layers enable (not quite right) */ |
536 | 535 | |
r17967 | r17968 | |
563 | 562 | */ |
564 | 563 | |
565 | 564 | /* For gfx banking for s1945jn/gunbird/btlkroad */ |
566 | if ( | |
565 | if ( | |
567 | 566 | { |
568 | 567 | psikyo_switch_banks(screen.machine(), 0, (layer0_ctrl & 0x400) >> 10); |
569 | 568 | psikyo_switch_banks(screen.machine(), 1, (layer1_ctrl & 0x400) >> 10); |
r17967 | r17968 | |
586 | 585 | } |
587 | 586 | |
588 | 587 | if (tm0size == 0) |
589 | tmptilemap0 = | |
588 | tmptilemap0 = | |
590 | 589 | else if (tm0size == 1) |
591 | tmptilemap0 = | |
590 | tmptilemap0 = | |
592 | 591 | else if (tm0size == 2) |
593 | tmptilemap0 = | |
592 | tmptilemap0 = | |
594 | 593 | else |
595 | tmptilemap0 = | |
594 | tmptilemap0 = | |
596 | 595 | |
597 | 596 | if (tm1size == 0) |
598 | tmptilemap1 = | |
597 | tmptilemap1 = | |
599 | 598 | else if (tm1size == 1) |
600 | tmptilemap1 = | |
599 | tmptilemap1 = | |
601 | 600 | else if (tm1size == 2) |
602 | tmptilemap1 = | |
601 | tmptilemap1 = | |
603 | 602 | else |
604 | tmptilemap1 = | |
603 | tmptilemap1 = | |
605 | 604 | |
606 | 605 | tmptilemap0->enable(~layer0_ctrl & 1); |
607 | 606 | tmptilemap1->enable(~layer1_ctrl & 1); |
608 | 607 | |
609 | 608 | /* Layers scrolling */ |
610 | 609 | |
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]; | |
615 | 614 | |
616 | 615 | tmptilemap0->set_scrolly(0, layer0_scrolly); |
617 | 616 | |
r17967 | r17968 | |
626 | 625 | { |
627 | 626 | if (layer0_ctrl & 0x0200) |
628 | 627 | /* per-tile rowscroll */ |
629 | x0 = ((UINT16 *) | |
628 | x0 = ((UINT16 *) | |
630 | 629 | else |
631 | 630 | /* per-line rowscroll */ |
632 | x0 = ((UINT16 *) | |
631 | x0 = ((UINT16 *) | |
633 | 632 | } |
634 | 633 | |
635 | 634 | |
r17967 | r17968 | |
643 | 642 | { |
644 | 643 | if (layer1_ctrl & 0x0200) |
645 | 644 | /* per-tile rowscroll */ |
646 | x1 = ((UINT16 *) | |
645 | x1 = ((UINT16 *) | |
647 | 646 | else |
648 | 647 | /* per-line rowscroll */ |
649 | x1 = ((UINT16 *) | |
648 | x1 = ((UINT16 *) | |
650 | 649 | } |
651 | 650 | |
652 | 651 | |
r17967 | r17968 | |
655 | 654 | layer1_scrollx + x1 ); |
656 | 655 | } |
657 | 656 | |
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)); | |
662 | 661 | |
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)); | |
667 | 666 | |
668 | 667 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
669 | 668 | |
r17967 | r17968 | |
689 | 688 | |
690 | 689 | */ |
691 | 690 | |
692 | ||
691 | ||
693 | 692 | { |
694 | psikyo_state *state = screen.machine().driver_data<psikyo_state>(); | |
695 | 693 | int i, layers_ctrl = -1; |
696 | 694 | |
697 | 695 | UINT32 tm0size, tm1size; |
698 | 696 | |
699 | 697 | UINT32 layer0_scrollx, layer0_scrolly; |
700 | 698 | 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]; | |
704 | 702 | |
705 | 703 | tilemap_t *tmptilemap0, *tmptilemap1; |
706 | 704 | |
707 | | |
705 | | |
708 | 706 | |
709 | 707 | /* Layers enable (not quite right) */ |
710 | 708 | |
r17967 | r17968 | |
737 | 735 | */ |
738 | 736 | |
739 | 737 | /* For gfx banking for s1945jn/gunbird/btlkroad */ |
740 | if ( | |
738 | if ( | |
741 | 739 | { |
742 | 740 | psikyo_switch_banks(screen.machine(), 0, (layer0_ctrl & 0x400) >> 10); |
743 | 741 | psikyo_switch_banks(screen.machine(), 1, (layer1_ctrl & 0x400) >> 10); |
r17967 | r17968 | |
760 | 758 | } |
761 | 759 | |
762 | 760 | if (tm0size == 0) |
763 | tmptilemap0 = | |
761 | tmptilemap0 = | |
764 | 762 | else if (tm0size == 1) |
765 | tmptilemap0 = | |
763 | tmptilemap0 = | |
766 | 764 | else if (tm0size == 2) |
767 | tmptilemap0 = | |
765 | tmptilemap0 = | |
768 | 766 | else |
769 | tmptilemap0 = | |
767 | tmptilemap0 = | |
770 | 768 | |
771 | 769 | if (tm1size == 0) |
772 | tmptilemap1 = | |
770 | tmptilemap1 = | |
773 | 771 | else if (tm1size == 1) |
774 | tmptilemap1 = | |
772 | tmptilemap1 = | |
775 | 773 | else if (tm1size == 2) |
776 | tmptilemap1 = | |
774 | tmptilemap1 = | |
777 | 775 | else |
778 | tmptilemap1 = | |
776 | tmptilemap1 = | |
779 | 777 | |
780 | 778 | tmptilemap0->enable(~layer0_ctrl & 1); |
781 | 779 | tmptilemap1->enable(~layer1_ctrl & 1); |
782 | 780 | |
783 | 781 | /* Layers scrolling */ |
784 | 782 | |
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]; | |
789 | 787 | |
790 | 788 | tmptilemap0->set_scrolly(0, layer0_scrolly); |
791 | 789 | |
r17967 | r17968 | |
800 | 798 | { |
801 | 799 | if (layer0_ctrl & 0x0200) |
802 | 800 | /* per-tile rowscroll */ |
803 | x0 = ((UINT16 *) | |
801 | x0 = ((UINT16 *) | |
804 | 802 | else |
805 | 803 | /* per-line rowscroll */ |
806 | x0 = ((UINT16 *) | |
804 | x0 = ((UINT16 *) | |
807 | 805 | } |
808 | 806 | |
809 | 807 | |
r17967 | r17968 | |
817 | 815 | { |
818 | 816 | if (layer1_ctrl & 0x0200) |
819 | 817 | /* per-tile rowscroll */ |
820 | x1 = ((UINT16 *) | |
818 | x1 = ((UINT16 *) | |
821 | 819 | else |
822 | 820 | /* per-line rowscroll */ |
823 | x1 = ((UINT16 *) | |
821 | x1 = ((UINT16 *) | |
824 | 822 | } |
825 | 823 | |
826 | 824 | |
r17967 | r17968 | |
829 | 827 | layer1_scrollx + x1 ); |
830 | 828 | } |
831 | 829 | |
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)); | |
836 | 834 | |
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)); | |
841 | 839 | |
842 | 840 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
843 | 841 | |
r17967 | r17968 | |
856 | 854 | } |
857 | 855 | |
858 | 856 | |
859 | ||
857 | void | |
860 | 858 | { |
861 | 859 | // rising edge |
862 | if ( | |
860 | if (st | |
863 | 861 | { |
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); | |
867 | 864 | } |
868 | 865 | } |
r17967 | r17968 | |
---|---|---|
157 | 157 | 8, 8, 64, 32); |
158 | 158 | } |
159 | 159 | |
160 | ||
160 | ||
161 | 161 | { |
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); | |
164 | 163 | return 0; |
165 | 164 | } |
r17967 | r17968 | |
---|---|---|
493 | 493 | } |
494 | 494 | } |
495 | 495 | |
496 | ||
496 | ||
497 | 497 | { |
498 | playmark_state *state = screen.machine().driver_data<playmark_state>(); | |
499 | 498 | |
500 | 499 | screen.machine().priority_bitmap.fill(0, cliprect); |
501 | 500 | |
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) | |
504 | 503 | draw_bitmap(screen.machine(), bitmap, cliprect); |
505 | 504 | draw_sprites(screen.machine(), bitmap, cliprect, 4); |
506 | | |
505 | | |
507 | 506 | return 0; |
508 | 507 | } |
509 | 508 | |
510 | 509 | |
511 | ||
510 | ||
512 | 511 | { |
513 | playmark_state *state = screen.machine().driver_data<playmark_state>(); | |
514 | 512 | |
515 | 513 | // video enabled |
516 | if ( | |
514 | if ( | |
517 | 515 | { |
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); | |
520 | 518 | bigtwinb_draw_sprites(screen.machine(), bitmap, cliprect, 4); |
521 | | |
519 | | |
522 | 520 | } |
523 | 521 | else |
524 | 522 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
525 | 523 | return 0; |
526 | 524 | } |
527 | 525 | |
528 | ||
526 | ||
529 | 527 | { |
530 | playmark_state *state = screen.machine().driver_data<playmark_state>(); | |
531 | 528 | |
532 | 529 | screen.machine().priority_bitmap.fill(0, cliprect); |
533 | 530 | |
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) | |
536 | 533 | draw_bitmap(screen.machine(), bitmap, cliprect); |
537 | | |
534 | | |
538 | 535 | draw_sprites(screen.machine(), bitmap, cliprect, 2); |
539 | 536 | return 0; |
540 | 537 | } |
541 | 538 | |
542 | ||
539 | ||
543 | 540 | { |
544 | playmark_state *state = screen.machine().driver_data<playmark_state>(); | |
545 | 541 | |
546 | if ( | |
542 | if ( | |
547 | 543 | { |
548 | 544 | int i; |
549 | 545 | |
550 | | |
546 | | |
551 | 547 | for (i = 0; i < 256; i++) |
552 | | |
548 | | |
553 | 549 | } |
554 | 550 | else |
555 | 551 | { |
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); | |
558 | 554 | } |
559 | 555 | |
560 | 556 | screen.machine().priority_bitmap.fill(0, cliprect); |
561 | 557 | |
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); | |
564 | 560 | draw_sprites(screen.machine(), bitmap, cliprect, 0); |
565 | | |
561 | | |
566 | 562 | return 0; |
567 | 563 | } |
568 | 564 | |
569 | ||
565 | ||
570 | 566 | { |
571 | playmark_state *state = screen.machine().driver_data<playmark_state>(); | |
572 | 567 | |
573 | 568 | screen.machine().priority_bitmap.fill(0, cliprect); |
574 | 569 | |
575 | 570 | // video enabled |
576 | if ( | |
571 | if ( | |
577 | 572 | { |
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); | |
580 | 575 | draw_sprites(screen.machine(), bitmap, cliprect, 2); |
581 | | |
576 | | |
582 | 577 | } |
583 | 578 | else |
584 | 579 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
r17967 | r17968 | |
---|---|---|
163 | 163 | |
164 | 164 | ***************************************************************************/ |
165 | 165 | |
166 | ||
166 | ||
167 | 167 | { |
168 | esd16_state *state = screen.machine().driver_data<esd16_state>(); | |
169 | 168 | int layers_ctrl = -1; |
170 | 169 | |
171 | 170 | screen.machine().priority_bitmap.fill(0, cliprect); |
r17967 | r17968 | |
183 | 182 | |
184 | 183 | if (layers_ctrl & 1) |
185 | 184 | { |
186 | if ( | |
185 | if ( | |
187 | 186 | { |
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); | |
191 | 190 | } |
192 | 191 | else |
193 | 192 | { |
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); | |
197 | 196 | } |
198 | 197 | } |
199 | 198 | else |
r17967 | r17968 | |
204 | 203 | |
205 | 204 | if (layers_ctrl & 2) |
206 | 205 | { |
207 | if ( | |
206 | if ( | |
208 | 207 | { |
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); | |
212 | 211 | } |
213 | 212 | else |
214 | 213 | { |
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); | |
218 | 217 | } |
219 | 218 | |
220 | 219 | } |
221 | 220 | |
222 | if (layers_ctrl & 4) screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, | |
221 | if (layers_ctrl & 4) screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, | |
223 | 222 | |
224 | 223 | // popmessage("%04x %04x %04x %04x %04x",head_unknown1[0],head_layersize[0],head_unknown3[0],head_unknown4[0],head_unknown5[0]); |
225 | 224 | return 0; |
r17967 | r17968 | |
---|---|---|
637 | 637 | save_pointer(NAME(m_spritebufferram), 0xa00/2); |
638 | 638 | } |
639 | 639 | |
640 | ||
640 | ||
641 | 641 | { |
642 | pgm_state *state = screen.machine().driver_data<pgm_state>(); | |
643 | 642 | int y; |
644 | 643 | |
645 | 644 | bitmap.fill(0x3ff, cliprect); // ddp2 igs logo needs 0x3ff |
646 | 645 | |
647 | 646 | screen.machine().priority_bitmap.fill(0, cliprect); |
648 | 647 | |
649 | | |
648 | | |
650 | 649 | |
651 | 650 | for (y = 0; y < 224; y++) |
652 | | |
651 | | |
653 | 652 | |
654 | 653 | |
655 | | |
654 | | |
656 | 655 | |
657 | draw_sprites( | |
656 | draw_sprites( | |
658 | 657 | |
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 | |
661 | 660 | |
662 | 661 | |
663 | | |
662 | | |
664 | 663 | |
665 | 664 | |
666 | 665 | return 0; |
667 | 666 | |
668 | 667 | } |
669 | 668 | |
670 | ||
669 | void | |
671 | 670 | { |
672 | 671 | // rising edge |
673 | if ( | |
672 | if (st | |
674 | 673 | { |
675 | pgm_state *state = screen.machine().driver_data<pgm_state>(); | |
676 | 674 | |
677 | 675 | /* first 0xa00 of main ram = sprites, seems to be buffered, DMA? */ |
678 | memcpy( | |
676 | memcpy( | |
679 | 677 | } |
680 | 678 | } |
r17967 | r17968 | |
---|---|---|
165 | 165 | } /* update_palette */ |
166 | 166 | |
167 | 167 | |
168 | ||
168 | ||
169 | 169 | { |
170 | namcos21_state *state = screen.machine().driver_data<namcos21_state>(); | |
171 | UINT8 *videoram = state->m_videoram; | |
170 | UINT8 *videoram = m_videoram; | |
172 | 171 | int pivot = 3; |
173 | 172 | int pri; |
174 | 173 | update_palette(screen.machine()); |
175 | 174 | bitmap.fill(0xff, cliprect ); |
176 | 175 | |
177 | if( | |
176 | if( | |
178 | 177 | { /* 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 | |
181 | 180 | } |
182 | 181 | |
183 | 182 | CopyVisiblePolyFrameBuffer( screen.machine(), bitmap, cliprect, 0x7fc0, 0x7ffe ); |
184 | 183 | |
185 | if( | |
184 | if( | |
186 | 185 | { /* 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 ); | |
189 | 188 | } |
190 | 189 | |
191 | 190 | CopyVisiblePolyFrameBuffer( screen.machine(), bitmap, cliprect, 0, 0x7fbf ); |
192 | 191 | |
193 | 192 | |
194 | if( | |
193 | if( | |
195 | 194 | { /* draw high priority 2d sprites */ |
196 | 195 | for( pri=pivot; pri<8; pri++ ) |
197 | 196 | { |
198 | | |
197 | | |
199 | 198 | } |
200 | | |
199 | | |
201 | 200 | } |
202 | 201 | else |
203 | 202 | { /* 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); | |
206 | 205 | int sx,sy; |
207 | 206 | for( sy=cliprect.min_y; sy<=cliprect.max_y; sy++ ) |
208 | 207 | { |
r17967 | r17968 | |
---|---|---|
333 | 333 | } |
334 | 334 | #endif |
335 | 335 | |
336 | ||
336 | ||
337 | 337 | { |
338 | model3_state *state = screen.machine().driver_data<model3_state>(); | |
339 | 338 | #if 0 |
340 | 339 | int layer_scroll_x[4], layer_scroll_y[4]; |
341 | 340 | UINT32 layer_data[4]; |
342 | 341 | |
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)); | |
347 | 346 | layer_scroll_x[0] = (layer_data[0] & 0x8000) ? (layer_data[0] & 0x1ff) : -(layer_data[0] & 0x1ff); |
348 | 347 | layer_scroll_y[0] = (layer_data[0] & 0x8000) ? (layer_data[0] & 0x1ff) : -(layer_data[0] & 0x1ff); |
349 | 348 | layer_scroll_x[1] = (layer_data[1] & 0x8000) ? (layer_data[1] & 0x1ff) : -(layer_data[1] & 0x1ff); |
r17967 | r17968 | |
353 | 352 | layer_scroll_x[3] = (layer_data[3] & 0x8000) ? (layer_data[3] & 0x1ff) : -(layer_data[3] & 0x1ff); |
354 | 353 | layer_scroll_y[3] = (layer_data[3] & 0x8000) ? (layer_data[3] & 0x1ff) : -(layer_data[3] & 0x1ff); |
355 | 354 | #endif |
356 | | |
355 | | |
357 | 356 | |
358 | | |
357 | | |
359 | 358 | |
360 | 359 | /* 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; | |
364 | 363 | |
365 | 364 | if( screen.machine().input().code_pressed(KEYCODE_Y) ) |
366 | | |
365 | | |
367 | 366 | if( screen.machine().input().code_pressed(KEYCODE_U) ) |
368 | | |
367 | | |
369 | 368 | if( screen.machine().input().code_pressed(KEYCODE_I) ) |
370 | | |
369 | | |
371 | 370 | if( screen.machine().input().code_pressed(KEYCODE_O) ) |
372 | | |
371 | | |
373 | 372 | if( screen.machine().input().code_pressed(KEYCODE_T) ) |
374 | | |
373 | | |
375 | 374 | } |
376 | 375 | |
377 | 376 | bitmap.fill(0, cliprect); |
378 | 377 | |
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); | |
381 | 380 | |
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); | |
384 | 383 | |
385 | if( !( | |
384 | if( !( | |
386 | 385 | { |
387 | 386 | #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); | |
391 | 390 | real3d_traverse_display_list(screen.machine()); |
392 | 391 | } |
393 | 392 | #endif |
394 | copybitmap_trans(bitmap, | |
393 | copybitmap_trans(bitmap, | |
395 | 394 | } |
396 | 395 | |
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); | |
399 | 398 | |
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); | |
402 | 401 | |
403 | 402 | //copy_screen(bitmap, cliprect); |
404 | 403 | |
405 | 404 | //draw_texture_sheet(bitmap, cliprect); |
406 | 405 | |
407 | | |
406 | | |
408 | 407 | return 0; |
409 | 408 | } |
410 | 409 |
r17967 | r17968 | |
---|---|---|
69 | 69 | * |
70 | 70 | *************************************/ |
71 | 71 | |
72 | stat | |
72 | UINT32 gameplan_state::screen | |
73 | 73 | { |
74 | gameplan_state *state = screen.machine().driver_data<gameplan_state>(); | |
75 | 74 | pen_t pens[GAMEPLAN_NUM_PENS]; |
76 | 75 | offs_t offs; |
77 | 76 | |
78 | 77 | gameplan_get_pens(pens); |
79 | 78 | |
80 | for (offs = 0; offs < | |
79 | for (offs = 0; offs < | |
81 | 80 | { |
82 | 81 | UINT8 y = offs >> 8; |
83 | 82 | UINT8 x = offs & 0xff; |
84 | 83 | |
85 | bitmap.pix32(y, x) = pens[ | |
84 | bitmap.pix32(y, x) = pens[ | |
86 | 85 | } |
87 | 86 | |
88 | 87 | return 0; |
89 | 88 | } |
90 | 89 | |
91 | 90 | |
92 | static | |
91 | UINT32 gameplan_state::screen_update_leprechn(screen_device &screen, bitmap_rgb | |
93 | 92 | { |
94 | gameplan_state *state = screen.machine().driver_data<gameplan_state>(); | |
95 | 93 | pen_t pens[LEPRECHN_NUM_PENS]; |
96 | 94 | offs_t offs; |
97 | 95 | |
98 | 96 | leprechn_get_pens(pens); |
99 | 97 | |
100 | for (offs = 0; offs < | |
98 | for (offs = 0; offs < | |
101 | 99 | { |
102 | 100 | UINT8 y = offs >> 8; |
103 | 101 | UINT8 x = offs & 0xff; |
104 | 102 | |
105 | bitmap.pix32(y, x) = pens[ | |
103 | bitmap.pix32(y, x) = pens[ | |
106 | 104 | } |
107 | 105 | |
108 | 106 | return 0; |
r17967 | r17968 | |
343 | 341 | |
344 | 342 | MCFG_SCREEN_ADD("screen", RASTER) |
345 | 343 | MCFG_SCREEN_RAW_PARAMS(GAMEPLAN_PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
346 | MCFG_SCREEN_UPDATE_ | |
344 | MCFG_SCREEN_UPDATE_DR | |
347 | 345 | MACHINE_CONFIG_END |
348 | 346 | |
349 | 347 | |
350 | 348 | MACHINE_CONFIG_FRAGMENT( leprechn_video ) |
351 | 349 | MCFG_VIDEO_START_OVERRIDE(gameplan_state,leprechn) |
352 | 350 | MCFG_SCREEN_MODIFY("screen") |
353 | MCFG_SCREEN_UPDATE_ | |
351 | MCFG_SCREEN_UPDATE_DR | |
354 | 352 | MACHINE_CONFIG_END |
355 | 353 | |
356 | 354 | |
357 | 355 | MACHINE_CONFIG_DERIVED( trvquest_video, gameplan_video ) |
358 | 356 | MCFG_VIDEO_START_OVERRIDE(gameplan_state,trvquest) |
359 | 357 | MCFG_SCREEN_MODIFY("screen") |
360 | MCFG_SCREEN_UPDATE_ | |
358 | MCFG_SCREEN_UPDATE_DR | |
361 | 359 | MACHINE_CONFIG_END |
r17967 | r17968 | |
---|---|---|
83 | 83 | |
84 | 84 | ***************************************************************************/ |
85 | 85 | |
86 | ||
86 | ||
87 | 87 | { |
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); | |
92 | 91 | |
93 | 92 | return 0; |
94 | 93 | } |
r17967 | r17968 | |
---|---|---|
122 | 122 | } |
123 | 123 | |
124 | 124 | |
125 | ||
125 | ||
126 | 126 | { |
127 | ikki_state *state = screen.machine().driver_data<ikki_state>(); | |
128 | 127 | offs_t offs; |
129 | UINT8 *VIDEOATTR = | |
128 | UINT8 *VIDEOATTR = | |
130 | 129 | |
131 | 130 | /* draw bg layer */ |
132 | 131 | |
133 | for (offs = 0; offs < ( | |
132 | for (offs = 0; offs < ( | |
134 | 133 | { |
135 | 134 | int color, bank; |
136 | 135 | |
r17967 | r17968 | |
144 | 143 | switch (d) |
145 | 144 | { |
146 | 145 | case 0x02: /* scroll area */ |
147 | x = sx * 8 - | |
146 | x = sx * 8 - | |
148 | 147 | if (x < 0) |
149 | 148 | x += 8 * 22; |
150 | y = (sy * 8 + ~ | |
149 | y = (sy * 8 + ~ | |
151 | 150 | break; |
152 | 151 | |
153 | 152 | case 0x03: /* non-scroll area */ |
r17967 | r17968 | |
166 | 165 | break; |
167 | 166 | } |
168 | 167 | |
169 | if ( | |
168 | if ( | |
170 | 169 | { |
171 | 170 | x = 248 - x; |
172 | 171 | y = 248 - y; |
173 | 172 | } |
174 | 173 | |
175 | color = | |
174 | color = | |
176 | 175 | bank = (color & 0xe0) << 3; |
177 | 176 | color = ((color & 0x1f)<<0) | ((color & 0x80) >> 2); |
178 | 177 | |
179 | 178 | drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0], |
180 | | |
179 | | |
181 | 180 | color, |
182 | | |
181 | | |
183 | 182 | x,y); |
184 | 183 | } |
185 | 184 | |
r17967 | r17968 | |
187 | 186 | |
188 | 187 | /* mask sprites */ |
189 | 188 | |
190 | for (offs = 0; offs < ( | |
189 | for (offs = 0; offs < ( | |
191 | 190 | { |
192 | 191 | int sx = offs / 32; |
193 | 192 | int sy = offs % 32; |
r17967 | r17968 | |
201 | 200 | int y = sy * 8; |
202 | 201 | int x = sx * 8; |
203 | 202 | |
204 | if ( | |
203 | if ( | |
205 | 204 | { |
206 | 205 | x = 248 - x; |
207 | 206 | y = 248 - y; |
208 | 207 | } |
209 | 208 | |
210 | color = | |
209 | color = | |
211 | 210 | bank = (color & 0xe0) << 3; |
212 | 211 | color = ((color & 0x1f)<<0) | ((color & 0x80) >> 2); |
213 | 212 | |
214 | 213 | drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0], |
215 | | |
214 | | |
216 | 215 | color, |
217 | | |
216 | | |
218 | 217 | x,y); |
219 | 218 | } |
220 | 219 | } |
r17967 | r17968 | |
---|---|---|
113 | 113 | return 0; |
114 | 114 | } |
115 | 115 | |
116 | SCREEN_UPDATE_IND16( darius_left ) { return update_screen(screen, bitmap, cliprect, 36 * 8 * 0); } | |
117 | SCREEN_UPDATE_IND16( darius_middle ) { return update_screen(screen, bitmap, cliprect, 36 * 8 * 1); } | |
118 | SCREEN_UPDATE_IND16( darius_right ) { return update_screen(screen, bitmap, cliprect, 36 * 8 * 2); } | |
116 | UINT32 darius_state::screen_update_darius_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8 * 0); } | |
117 | UINT32 darius_state::screen_update_darius_middle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8 * 1); } | |
118 | UINT32 darius_state::screen_update_darius_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8 * 2); } | |
119 | 119 |
r17967 | r17968 | |
---|---|---|
161 | 161 | } |
162 | 162 | |
163 | 163 | |
164 | ||
164 | ||
165 | 165 | { |
166 | 166 | struct tms34061_display state; |
167 | 167 | int x, y; |
r17967 | r17968 | |
---|---|---|
168 | 168 | } |
169 | 169 | } |
170 | 170 | |
171 | ||
171 | ||
172 | 172 | { |
173 | cbasebal_state *state = screen.machine().driver_data<cbasebal_state>(); | |
174 | 173 | |
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); | |
177 | 176 | else |
178 | 177 | bitmap.fill(768, cliprect); |
179 | 178 | |
180 | if ( | |
179 | if ( | |
181 | 180 | draw_sprites(screen.machine(), bitmap, cliprect); |
182 | 181 | |
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); | |
185 | 184 | return 0; |
186 | 185 | } |
r17967 | r17968 | |
---|---|---|
584 | 584 | } |
585 | 585 | |
586 | 586 | |
587 | void st0016_draw_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) | |
587 | void st0016_state::st0016_draw_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) | |
588 | 588 | { |
589 | 589 | draw_bgmap(screen.machine(), bitmap,cliprect,0); |
590 | 590 | draw_sprites(screen.machine(), bitmap,cliprect); |
591 | 591 | draw_bgmap(screen.machine(), bitmap,cliprect,1); |
592 | 592 | } |
593 | 593 | |
594 | ||
594 | ||
595 | 595 | { |
596 | 596 | |
597 | 597 | #ifdef MAME_DEBUG |
r17967 | r17968 | |
---|---|---|
168 | 168 | } |
169 | 169 | } |
170 | 170 | |
171 | ||
171 | ||
172 | 172 | { |
173 | sbasketb_state *state = screen.machine().driver_data<sbasketb_state>(); | |
174 | 173 | int col; |
175 | 174 | |
176 | 175 | for (col = 6; col < 32; col++) |
177 | | |
176 | | |
178 | 177 | |
179 | | |
178 | | |
180 | 179 | draw_sprites(screen.machine(), bitmap, cliprect); |
181 | 180 | return 0; |
182 | 181 | } |
r17967 | r17968 | |
---|---|---|
11 | 11 | |
12 | 12 | /******************************************************************************/ |
13 | 13 | |
14 | ||
14 | ||
15 | 15 | { |
16 | funkyjet_state *state = screen.machine().driver_data<funkyjet_state>(); | |
17 | 16 | address_space &space = screen.machine().driver_data()->generic_space(); |
18 | UINT16 flip = deco16ic_pf_control_r( | |
17 | UINT16 flip = deco16ic_pf_control_r( | |
19 | 18 | |
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); | |
22 | 21 | |
23 | 22 | 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); | |
27 | 26 | return 0; |
28 | 27 | } |
r17967 | r17968 | |
---|---|---|
45 | 45 | k056832_set_layer_offs(m_k056832, 3, 6, 16); |
46 | 46 | } |
47 | 47 | |
48 | ||
48 | ||
49 | 49 | { |
50 | 50 | static const int K053251_CI[4] = { K053251_CI1, K053251_CI2, K053251_CI3, K053251_CI4 }; |
51 | xexex_state *state = screen.machine().driver_data<xexex_state>(); | |
52 | 51 | int layer[4]; |
53 | 52 | int bg_colorbase, new_colorbase, plane, alpha; |
54 | 53 | |
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; | |
58 | 57 | |
59 | 58 | for (plane = 1; plane < 4; plane++) |
60 | 59 | { |
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) | |
63 | 62 | { |
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); | |
66 | 65 | } |
67 | 66 | } |
68 | 67 | |
69 | 68 | layer[0] = 1; |
70 | | |
69 | | |
71 | 70 | layer[1] = 2; |
72 | | |
71 | | |
73 | 72 | layer[2] = 3; |
74 | | |
73 | | |
75 | 74 | layer[3] = -1; |
76 | | |
75 | | |
77 | 76 | |
78 | konami_sortlayers4(layer, | |
77 | konami_sortlayers4(layer, | |
79 | 78 | |
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); | |
82 | 81 | |
83 | 82 | screen.machine().priority_bitmap.fill(0, cliprect); |
84 | 83 | |
r17967 | r17968 | |
86 | 85 | { |
87 | 86 | if (layer[plane] < 0) |
88 | 87 | { |
89 | | |
88 | | |
90 | 89 | } |
91 | else if (! | |
90 | else if (! | |
92 | 91 | { |
93 | k056832_tilemap_draw( | |
92 | k056832_tilemap_draw( | |
94 | 93 | } |
95 | 94 | } |
96 | 95 | |
97 | k053247_sprites_draw( | |
96 | k053247_sprites_draw( | |
98 | 97 | |
99 | if ( | |
98 | if ( | |
100 | 99 | { |
101 | alpha = k054338_set_alpha_level( | |
100 | alpha = k054338_set_alpha_level( | |
102 | 101 | |
103 | 102 | if (alpha > 0) |
104 | 103 | { |
105 | k056832_tilemap_draw( | |
104 | k056832_tilemap_draw( | |
106 | 105 | } |
107 | 106 | } |
108 | 107 | |
109 | k056832_tilemap_draw( | |
108 | k056832_tilemap_draw( | |
110 | 109 | return 0; |
111 | 110 | } |
r17967 | r17968 | |
---|---|---|
120 | 120 | m_textmap->set_transparent_pen(0); |
121 | 121 | } |
122 | 122 | |
123 | ||
123 | ||
124 | 124 | { |
125 | ksayakyu_state *state = screen.machine().driver_data<ksayakyu_state>(); | |
126 | 125 | |
127 | 126 | bitmap.fill(0, cliprect); |
128 | 127 | |
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); | |
131 | 130 | |
132 | | |
131 | | |
133 | 132 | draw_sprites(screen.machine(), bitmap, cliprect); |
134 | 133 | return 0; |
135 | 134 | } |
r17967 | r17968 | |
---|---|---|
112 | 112 | } |
113 | 113 | } |
114 | 114 | |
115 | ||
115 | ||
116 | 116 | { |
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); | |
120 | 119 | |
121 | | |
120 | | |
122 | 121 | himesiki_draw_sprites(screen.machine(), bitmap, cliprect); |
123 | 122 | |
124 | 123 | return 0; |
r17967 | r17968 | |
---|---|---|
240 | 240 | * |
241 | 241 | *************************************/ |
242 | 242 | |
243 | ||
243 | ||
244 | 244 | { |
245 | skullxbo_state *state = screen.machine().driver_data<skullxbo_state>(); | |
246 | 245 | atarimo_rect_list rectlist; |
247 | 246 | bitmap_ind16 *mobitmap; |
248 | 247 | int x, y, r; |
249 | 248 | |
250 | 249 | /* draw the playfield */ |
251 | | |
250 | | |
252 | 251 | |
253 | 252 | /* draw and merge the MO */ |
254 | 253 | mobitmap = atarimo_render(0, cliprect, &rectlist); |
r17967 | r17968 | |
312 | 311 | } |
313 | 312 | |
314 | 313 | /* add the alpha on top */ |
315 | | |
314 | | |
316 | 315 | return 0; |
317 | 316 | } |
r17967 | r17968 | |
---|---|---|
89 | 89 | } |
90 | 90 | |
91 | 91 | |
92 | ||
92 | ||
93 | 93 | { |
94 | battlex_state *state = screen.machine().driver_data<battlex_state>(); | |
95 | 94 | |
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); | |
98 | 97 | draw_sprites(screen.machine(), bitmap, cliprect); |
99 | 98 | |
100 | 99 | return 0; |
r17967 | r17968 | |
---|---|---|
234 | 234 | } |
235 | 235 | } |
236 | 236 | |
237 | ||
237 | ||
238 | 238 | { |
239 | ironhors_state *state = screen.machine().driver_data<ironhors_state>(); | |
240 | 239 | int row; |
241 | 240 | |
242 | 241 | for (row = 0; row < 32; row++) |
243 | | |
242 | | |
244 | 243 | |
245 | | |
244 | | |
246 | 245 | draw_sprites(screen.machine(), bitmap, cliprect); |
247 | 246 | return 0; |
248 | 247 | } |
r17967 | r17968 | |
345 | 344 | } |
346 | 345 | } |
347 | 346 | |
348 | ||
347 | ||
349 | 348 | { |
350 | ironhors_state *state = screen.machine().driver_data<ironhors_state>(); | |
351 | 349 | int row; |
352 | 350 | |
353 | 351 | for (row = 0; row < 32; row++) |
354 | | |
352 | | |
355 | 353 | |
356 | | |
354 | | |
357 | 355 | farwest_draw_sprites(screen.machine(), bitmap, cliprect); |
358 | 356 | return 0; |
359 | 357 | } |
r17967 | r17968 | |
---|---|---|
101 | 101 | } |
102 | 102 | } |
103 | 103 | |
104 | ||
104 | ||
105 | 105 | { |
106 | 106 | draw_background(screen.machine(), bitmap, cliprect); |
107 | 107 | draw_sprites(screen.machine(), bitmap, cliprect); |
r17967 | r17968 | |
---|---|---|
71 | 71 | } |
72 | 72 | |
73 | 73 | |
74 | ||
74 | ||
75 | 75 | { |
76 | epos_state *state = screen.machine().driver_data<epos_state>(); | |
77 | 76 | pen_t pens[0x20]; |
78 | 77 | offs_t offs; |
79 | 78 | |
80 | 79 | get_pens(screen.machine(), pens); |
81 | 80 | |
82 | for (offs = 0; offs < | |
81 | for (offs = 0; offs < | |
83 | 82 | { |
84 | UINT8 data = | |
83 | UINT8 data = | |
85 | 84 | |
86 | 85 | int x = (offs % 136) * 2; |
87 | 86 | int y = (offs / 136); |
88 | 87 | |
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)]; | |
91 | 90 | } |
92 | 91 | |
93 | 92 | return 0; |
r17967 | r17968 | |
---|---|---|
190 | 190 | |
191 | 191 | ****************************************************************************/ |
192 | 192 | |
193 | ||
193 | ||
194 | 194 | { |
195 | glass_state *state = screen.machine().driver_data<glass_state>(); | |
196 | 195 | /* 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]); | |
201 | 200 | |
202 | 201 | /* draw layers + sprites */ |
203 | 202 | 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); | |
207 | 206 | draw_sprites(screen.machine(), bitmap, cliprect); |
208 | 207 | return 0; |
209 | 208 | } |
r17967 | r17968 | |
---|---|---|
198 | 198 | } |
199 | 199 | } |
200 | 200 | |
201 | ||
201 | ||
202 | 202 | { |
203 | mcatadv_state *state = screen.machine().driver_data<mcatadv_state>(); | |
204 | 203 | int i; |
205 | 204 | |
206 | 205 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
207 | 206 | screen.machine().priority_bitmap.fill(0, cliprect); |
208 | 207 | |
209 | if ( | |
208 | if ( | |
210 | 209 | { |
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(); | |
213 | 212 | } |
214 | 213 | |
215 | if ( | |
214 | if ( | |
216 | 215 | { |
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(); | |
219 | 218 | } |
220 | 219 | |
221 | 220 | /* |
r17967 | r17968 | |
231 | 230 | #ifdef MAME_DEBUG |
232 | 231 | if (!screen.machine().input().code_pressed(KEYCODE_Q)) |
233 | 232 | #endif |
234 | mcatadv_draw_tilemap_part( | |
233 | mcatadv_draw_tilemap_part( | |
235 | 234 | |
236 | 235 | #ifdef MAME_DEBUG |
237 | 236 | if (!screen.machine().input().code_pressed(KEYCODE_W)) |
238 | 237 | #endif |
239 | mcatadv_draw_tilemap_part( | |
238 | mcatadv_draw_tilemap_part( | |
240 | 239 | } |
241 | 240 | |
242 | 241 | g_profiler.start(PROFILER_USER1); |
r17967 | r17968 | |
266 | 265 | save_pointer(NAME(m_vidregs_old), (0x0f + 1) / 2); |
267 | 266 | } |
268 | 267 | |
269 | ||
268 | void | |
270 | 269 | { |
271 | 270 | // rising edge |
272 | if ( | |
271 | if (st | |
273 | 272 | { |
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); | |
277 | 275 | } |
278 | 276 | } |
r17967 | r17968 | |
---|---|---|
286 | 286 | } |
287 | 287 | |
288 | 288 | // Dogyuun doesn't appear to require fancy mixing? |
289 | ||
289 | ||
290 | 290 | { |
291 | toaplan2_state *state = screen.machine().driver_data<toaplan2_state>(); | |
292 | 291 | |
293 | if ( | |
292 | if ( | |
294 | 293 | { |
295 | 294 | 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); | |
298 | 297 | } |
299 | if ( | |
298 | if ( | |
300 | 299 | { |
301 | 300 | // 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); | |
304 | 303 | } |
305 | 304 | |
306 | 305 | |
r17967 | r17968 | |
309 | 308 | |
310 | 309 | |
311 | 310 | // renders to 2 bitmaps, and mixes output |
312 | ||
311 | ||
313 | 312 | { |
314 | toaplan2_state *state = screen.machine().driver_data<toaplan2_state>(); | |
315 | 313 | |
316 | 314 | // bitmap.fill(0, cliprect); |
317 | 315 | // gp9001_custom_priority_bitmap->fill(0, cliprect); |
318 | 316 | |
319 | if ( | |
317 | if ( | |
320 | 318 | { |
321 | 319 | 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); | |
324 | 322 | } |
325 | if ( | |
323 | if ( | |
326 | 324 | { |
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); | |
330 | 328 | } |
331 | 329 | |
332 | 330 | |
r17967 | r17968 | |
341 | 339 | // on that do. |
342 | 340 | // |
343 | 341 | |
344 | if ( | |
342 | if ( | |
345 | 343 | { |
346 | 344 | int width = screen.width(); |
347 | 345 | int height = screen.height(); |
r17967 | r17968 | |
352 | 350 | for (y=0;y<height;y++) |
353 | 351 | { |
354 | 352 | src_vdp0 = &bitmap.pix16(y); |
355 | src_vdp1 = & | |
353 | src_vdp1 = & | |
356 | 354 | |
357 | 355 | for (x=0;x<width;x++) |
358 | 356 | { |
r17967 | r17968 | |
409 | 407 | return 0; |
410 | 408 | } |
411 | 409 | |
412 | ||
410 | ||
413 | 411 | { |
414 | toaplan2_state *state = screen.machine().driver_data<toaplan2_state>(); | |
415 | 412 | |
416 | if ( | |
413 | if ( | |
417 | 414 | { |
418 | 415 | 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); | |
421 | 418 | } |
422 | 419 | |
423 | 420 | return 0; |
424 | 421 | } |
425 | 422 | |
426 | ||
423 | ||
427 | 424 | { |
428 | toaplan2_state *state = screen.machine().driver_data<toaplan2_state>(); | |
429 | 425 | |
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); | |
432 | 428 | return 0; |
433 | 429 | } |
434 | 430 | |
435 | 431 | |
436 | ||
432 | ||
437 | 433 | { |
438 | toaplan2_state *state = screen.machine().driver_data<toaplan2_state>(); | |
439 | 434 | |
440 | SCREEN_UPDATE16_CALL( toaplan2 ); | |
435 | SCREEN_UPDATE16_CALL_MEMBER( toaplan2 ); | |
441 | 436 | |
442 | 437 | int line; |
443 | 438 | rectangle clip; |
r17967 | r17968 | |
448 | 443 | /* used for 'for use in' and '8ing' screen on bbakraid, raizing on batrider */ |
449 | 444 | for (line = 0; line < 256;line++) |
450 | 445 | { |
451 | if ( | |
446 | if ( | |
452 | 447 | { |
453 | 448 | clip.min_y = clip.max_y = 256 - line; |
454 | | |
449 | | |
455 | 450 | } |
456 | 451 | else |
457 | 452 | { |
458 | 453 | clip.min_y = clip.max_y = line; |
459 | | |
454 | | |
460 | 455 | } |
461 | | |
456 | | |
462 | 457 | } |
463 | 458 | return 0; |
464 | 459 | } |
465 | 460 | |
466 | 461 | |
467 | 462 | |
468 | ||
463 | ||
469 | 464 | { |
470 | SCREEN_UPDATE16_CALL( toaplan2_dual ); | |
465 | SCREEN_UPDATE16_CALL_MEMBER( toaplan2_dual ); | |
471 | 466 | return 0; |
472 | 467 | } |
473 | 468 | |
474 | ||
469 | ||
475 | 470 | { |
476 | SCREEN_UPDATE16_CALL( toaplan2_mixed ); | |
471 | SCREEN_UPDATE16_CALL_MEMBER( toaplan2_mixed ); | |
477 | 472 | return 0; |
478 | 473 | } |
479 | 474 | |
480 | ||
475 | void | |
481 | 476 | { |
482 | 477 | // rising edge |
483 | if ( | |
478 | if (st | |
484 | 479 | { |
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(); | |
488 | 482 | } |
489 | 483 | } |
r17967 | r17968 | |
---|---|---|
207 | 207 | * |
208 | 208 | *************************************/ |
209 | 209 | |
210 | ||
210 | ||
211 | 211 | { |
212 | 212 | SCREEN_UPDATE32_CALL(vector); |
213 | 213 | vector_clear_list(); |
r17967 | r17968 | |
225 | 225 | * |
226 | 226 | *************************************/ |
227 | 227 | |
228 | ||
228 | ||
229 | 229 | { |
230 | 230 | int sw_option = screen.machine().root_device().ioport("INPUTS")->read(); |
231 | 231 | |
232 | SCREEN_UPDATE32_CALL(cinemat); | |
232 | SCREEN_UPDATE32_CALL_MEMBER(cinemat); | |
233 | 233 | |
234 | 234 | /* set the state of the artwork */ |
235 | 235 | output_set_value("pressed3", (~sw_option >> 0) & 1); |
r17967 | r17968 | |
---|---|---|
125 | 125 | |
126 | 126 | |
127 | 127 | |
128 | ||
128 | ||
129 | 129 | { |
130 | mjkjidai_state *state = screen.machine().driver_data<mjkjidai_state>(); | |
131 | if (!state->m_display_enable) | |
130 | if (!m_display_enable) | |
132 | 131 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
133 | 132 | else |
134 | 133 | { |
135 | | |
134 | | |
136 | 135 | draw_sprites(screen.machine(), bitmap,cliprect); |
137 | 136 | } |
138 | 137 | return 0; |
r17967 | r17968 | |
---|---|---|
92 | 92 | } |
93 | 93 | } |
94 | 94 | |
95 | ||
95 | ||
96 | 96 | { |
97 | jailbrek_state *state = screen.machine().driver_data<jailbrek_state>(); | |
98 | 97 | int i; |
99 | 98 | |
100 | 99 | // added support for vertical scrolling (credits). 23/1/2002 -BR |
101 | 100 | // bit 2 appears to be horizontal/vertical scroll control |
102 | if ( | |
101 | if ( | |
103 | 102 | { |
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); | |
107 | 106 | |
108 | 107 | for (i = 0; i < 32; i++) |
109 | | |
108 | | |
110 | 109 | } |
111 | 110 | else |
112 | 111 | { |
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); | |
116 | 115 | |
117 | 116 | for (i = 0; i < 32; i++) |
118 | | |
117 | | |
119 | 118 | } |
120 | 119 | |
121 | | |
120 | | |
122 | 121 | draw_sprites(screen.machine(), bitmap, cliprect); |
123 | 122 | return 0; |
124 | 123 | } |
r17967 | r17968 | |
---|---|---|
182 | 182 | |
183 | 183 | ***************************************************************************/ |
184 | 184 | |
185 | ||
185 | ||
186 | 186 | { |
187 | gaelco_state *state = screen.machine().driver_data<gaelco_state>(); | |
188 | 187 | |
189 | 188 | /* 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]); | |
194 | 193 | |
195 | 194 | screen.machine().priority_bitmap.fill(0, cliprect); |
196 | 195 | bitmap.fill(0, cliprect); |
197 | 196 | |
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); | |
200 | 199 | |
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); | |
203 | 202 | |
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); | |
206 | 205 | |
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); | |
209 | 208 | |
210 | 209 | draw_sprites(screen.machine(), bitmap, cliprect); |
211 | 210 | return 0; |
212 | 211 | } |
213 | 212 | |
214 | ||
213 | ||
215 | 214 | { |
216 | gaelco_state *state = screen.machine().driver_data<gaelco_state>(); | |
217 | 215 | |
218 | 216 | /* 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]); | |
223 | 221 | |
224 | 222 | screen.machine().priority_bitmap.fill(0, cliprect); |
225 | 223 | bitmap.fill(0, cliprect); |
226 | 224 | |
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); | |
229 | 227 | |
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); | |
232 | 230 | |
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); | |
235 | 233 | |
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); | |
238 | 236 | |
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); | |
241 | 239 | |
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); | |
244 | 242 | |
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); | |
247 | 245 | |
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); | |
250 | 248 | |
251 | 249 | draw_sprites(screen.machine(), bitmap, cliprect); |
252 | 250 | return 0; |
r17967 | r17968 | |
---|---|---|
1014 | 1014 | Video Updates |
1015 | 1015 | ***************************************************************************/ |
1016 | 1016 | |
1017 | ||
1017 | ||
1018 | 1018 | { |
1019 | wecleman_state *state = screen.machine().driver_data<wecleman_state>(); | |
1020 | 1019 | const pen_t *mrct; |
1021 | 1020 | int video_on; |
1022 | 1021 | int fg_x, bg_x, fg_y, bg_y; |
r17967 | r17968 | |
1025 | 1024 | |
1026 | 1025 | mrct = screen.machine().pens; |
1027 | 1026 | |
1028 | video_on = | |
1027 | video_on = | |
1029 | 1028 | |
1030 | set_led_status(screen.machine(), 0, | |
1029 | set_led_status(screen.machine(), 0, | |
1031 | 1030 | |
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)); | |
1034 | 1033 | |
1035 | cloud_sx = | |
1034 | cloud_sx = | |
1036 | 1035 | cloud_sy = bg_y; |
1037 | 1036 | |
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); | |
1040 | 1039 | |
1041 | 1040 | for (i=0; i<(28<<2); i+=4) |
1042 | 1041 | { |
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); | |
1045 | 1044 | |
1046 | 1045 | k = i<<1; |
1047 | 1046 | for (j=0; j<8; j++) |
1048 | 1047 | { |
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); | |
1051 | 1050 | } |
1052 | 1051 | } |
1053 | 1052 | |
r17967 | r17968 | |
1057 | 1056 | |
1058 | 1057 | get_sprite_info(screen.machine()); |
1059 | 1058 | |
1060 | bitmap.fill( | |
1059 | bitmap.fill( | |
1061 | 1060 | |
1062 | 1061 | /* Draw the road (lines which have priority 0x02) */ |
1063 | 1062 | if (video_on) wecleman_draw_road(screen.machine(), bitmap, cliprect, 0x02); |
1064 | 1063 | |
1065 | 1064 | /* Draw the background */ |
1066 | if (video_on) | |
1065 | if (video_on) | |
1067 | 1066 | |
1068 | 1067 | // draws the cloud layer; needs work |
1069 | if ( | |
1068 | if ( | |
1070 | 1069 | { |
1071 | 1070 | /* palette hacks! */ |
1072 | 1071 | ((pen_t *)mrct)[0] = ((pen_t *)mrct)[0x40] = ((pen_t *)mrct)[0x200] = ((pen_t *)mrct)[0x205]; |
r17967 | r17968 | |
1075 | 1074 | draw_cloud( |
1076 | 1075 | bitmap, |
1077 | 1076 | screen.machine().gfx[0], |
1078 | | |
1077 | | |
1079 | 1078 | BMP_PAD, BMP_PAD, |
1080 | 1079 | 41, 20, |
1081 | 1080 | cloud_sx, cloud_sy, |
1082 | 1081 | 6, 5, |
1083 | | |
1082 | | |
1084 | 1083 | |
1085 | | |
1084 | | |
1086 | 1085 | |
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; } | |
1091 | 1090 | } |
1092 | 1091 | |
1093 | 1092 | /* Draw the foreground */ |
1094 | if (video_on) | |
1093 | if (video_on) | |
1095 | 1094 | |
1096 | 1095 | /* Draw the road (lines which have priority 0x04) */ |
1097 | 1096 | if (video_on) wecleman_draw_road(screen.machine(), bitmap,cliprect, 0x04); |
r17967 | r17968 | |
1100 | 1099 | if (video_on) sprite_draw(screen.machine(), bitmap,cliprect); |
1101 | 1100 | |
1102 | 1101 | /* Draw the text layer */ |
1103 | if (video_on) | |
1102 | if (video_on) | |
1104 | 1103 | return 0; |
1105 | 1104 | } |
1106 | 1105 | |
r17967 | r17968 | |
1108 | 1107 | Hot Chase |
1109 | 1108 | ***************************************************************************/ |
1110 | 1109 | |
1111 | ||
1110 | ||
1112 | 1111 | { |
1113 | wecleman_state *state = screen.machine().driver_data<wecleman_state>(); | |
1114 | 1112 | device_t *k051316_1 = screen.machine().device("k051316_1"); |
1115 | 1113 | device_t *k051316_2 = screen.machine().device("k051316_2"); |
1116 | 1114 | int video_on; |
1117 | 1115 | |
1118 | video_on = | |
1116 | video_on = | |
1119 | 1117 | |
1120 | set_led_status(screen.machine(), 0, | |
1118 | set_led_status(screen.machine(), 0, | |
1121 | 1119 | |
1122 | 1120 | get_sprite_info(screen.machine()); |
1123 | 1121 | |
1124 | bitmap.fill( | |
1122 | bitmap.fill( | |
1125 | 1123 | |
1126 | 1124 | /* Draw the background */ |
1127 | 1125 | if (video_on) |
r17967 | r17968 | |
---|---|---|
221 | 221 | } |
222 | 222 | |
223 | 223 | |
224 | ||
224 | ||
225 | 225 | { |
226 | tankbust_state *state = screen.machine().driver_data<tankbust_state>(); | |
227 | 226 | #if 0 |
228 | 227 | int i; |
229 | 228 | |
230 | 229 | for (i=0; i<0x800; i++) |
231 | 230 | { |
232 | int tile_attrib = | |
231 | int tile_attrib = | |
233 | 232 | |
234 | 233 | if ( (tile_attrib&8) || (tile_attrib&0x80) ) |
235 | 234 | { |
236 | | |
235 | | |
237 | 236 | } |
238 | 237 | } |
239 | 238 | #endif |
240 | 239 | |
241 | | |
240 | | |
242 | 241 | draw_sprites(screen.machine(), bitmap, cliprect); |
243 | | |
242 | | |
244 | 243 | |
245 | | |
244 | | |
246 | 245 | return 0; |
247 | 246 | } |
r17967 | r17968 | |
---|---|---|
165 | 165 | save_item(NAME(m_priority)); |
166 | 166 | } |
167 | 167 | |
168 | ||
168 | ||
169 | 169 | { |
170 | bankp_state *state = screen.machine().driver_data<bankp_state>(); | |
171 | 170 | |
172 | if ( | |
171 | if ( | |
173 | 172 | { |
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); | |
176 | 175 | } |
177 | 176 | else |
178 | 177 | { |
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); | |
181 | 180 | } |
182 | 181 | |
183 | 182 | |
184 | 183 | // only one bit matters? |
185 | switch ( | |
184 | switch ( | |
186 | 185 | { |
187 | 186 | 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); | |
190 | 189 | break; |
191 | 190 | 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); | |
194 | 193 | break; |
195 | 194 | 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); | |
198 | 197 | break; |
199 | 198 | 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); | |
202 | 201 | break; |
203 | 202 | } |
204 | 203 | return 0; |
r17967 | r17968 | |
---|---|---|
144 | 144 | } |
145 | 145 | |
146 | 146 | |
147 | ||
147 | ||
148 | 148 | { |
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); | |
151 | 150 | |
152 | 151 | draw_sprite_and_check_collision(screen.machine(), bitmap); |
153 | 152 |
r17967 | r17968 | |
---|---|---|
296 | 296 | |
297 | 297 | |
298 | 298 | ******************************************************************************/ |
299 | ||
299 | ||
300 | 300 | { |
301 | pastelg_state *state = screen.machine().driver_data<pastelg_state>(); | |
302 | if (state->m_dispflag) | |
301 | if (m_dispflag) | |
303 | 302 | { |
304 | 303 | int x, y; |
305 | 304 | int width = screen.width(); |
r17967 | r17968 | |
307 | 306 | |
308 | 307 | for (y = 0; y < height; y++) |
309 | 308 | for (x = 0; x < width; x++) |
310 | bitmap.pix16(y, x) = | |
309 | bitmap.pix16(y, x) = | |
311 | 310 | } |
312 | 311 | else |
313 | 312 | bitmap.fill(0, cliprect); |
r17967 | r17968 | |
---|---|---|
184 | 184 | } |
185 | 185 | } |
186 | 186 | |
187 | ||
187 | ||
188 | 188 | { |
189 | portrait_state *state = screen.machine().driver_data<portrait_state>(); | |
190 | 189 | rectangle cliprect_scroll, cliprect_no_scroll; |
191 | 190 | |
192 | 191 | cliprect_scroll = cliprect_no_scroll = cliprect; |
r17967 | r17968 | |
194 | 193 | cliprect_no_scroll.min_x = cliprect_no_scroll.max_x - 111; |
195 | 194 | cliprect_scroll.max_x = cliprect_scroll.min_x + 319; |
196 | 195 | |
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); | |
201 | 200 | |
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); | |
206 | 205 | |
207 | 206 | draw_sprites(screen.machine(), bitmap,cliprect); |
208 | 207 | return 0; |
r17967 | r17968 | |
---|---|---|
281 | 281 | } |
282 | 282 | |
283 | 283 | |
284 | ||
284 | ||
285 | 285 | { |
286 | bosco_state *state = screen.machine().driver_data<bosco_state>(); | |
287 | 286 | |
288 | 287 | /* the radar tilemap is just 8x32. We rely on the tilemap code to repeat it across |
289 | 288 | the screen, and clip it to only the position where it is supposed to be shown */ |
290 | 289 | rectangle fg_clip = cliprect; |
291 | 290 | rectangle bg_clip = cliprect; |
292 | if ( | |
291 | if ( | |
293 | 292 | { |
294 | 293 | bg_clip.min_x = 20*8; |
295 | 294 | fg_clip.max_x = 20*8-1; |
r17967 | r17968 | |
301 | 300 | } |
302 | 301 | |
303 | 302 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
304 | draw_stars(screen.machine(),bitmap,cliprect, | |
303 | draw_stars(screen.machine(),bitmap,cliprect, | |
305 | 304 | |
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); | |
308 | 307 | |
309 | 308 | draw_sprites(screen.machine(), bitmap,cliprect); |
310 | 309 | |
311 | 310 | /* 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); | |
314 | 313 | |
315 | 314 | draw_bullets(screen.machine(), bitmap,cliprect); |
316 | 315 | |
r17967 | r17968 | |
318 | 317 | } |
319 | 318 | |
320 | 319 | |
321 | ||
320 | void | |
322 | 321 | { |
323 | 322 | // falling edge |
324 | if (! | |
323 | if (!st | |
325 | 324 | { |
326 | bosco_state *state = screen.machine().driver_data<bosco_state>(); | |
327 | 325 | static const int speedsx[8] = { -1, -2, -3, 0, 3, 2, 1, 0 }; |
328 | 326 | static const int speedsy[8] = { 0, -1, -2, -3, 0, 3, 2, 1 }; |
329 | 327 | |
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]; | |
332 | 330 | } |
333 | 331 | } |
r17967 | r17968 | |
---|---|---|
148 | 148 | } |
149 | 149 | } |
150 | 150 | |
151 | ||
151 | ||
152 | 152 | { |
153 | 153 | draw_background(screen.machine(), bitmap, cliprect); |
154 | 154 | draw_sprites(screen.machine(), bitmap, cliprect); |
r17967 | r17968 | |
---|---|---|
155 | 155 | } |
156 | 156 | } |
157 | 157 | |
158 | ||
158 | ||
159 | 159 | { |
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); | |
162 | 161 | draw_sprites(screen.machine(), bitmap, cliprect); |
163 | 162 | draw_columns(screen.machine(), bitmap, cliprect); |
164 | 163 | return 0; |
r17967 | r17968 | |
---|---|---|
432 | 432 | SCREEN REFRESH |
433 | 433 | **************************************************************/ |
434 | 434 | |
435 | ||
435 | ||
436 | 436 | { |
437 | galastrm_state *state = screen.machine().driver_data<galastrm_state>(); | |
438 | 437 | device_t *tc0100scn = screen.machine().device("tc0100scn"); |
439 | 438 | device_t *tc0480scp = screen.machine().device("tc0480scp"); |
440 | 439 | UINT8 layer[5]; |
r17967 | r17968 | |
461 | 460 | |
462 | 461 | bitmap.fill(0, cliprect); |
463 | 462 | priority_bitmap.fill(0, clip); |
464 | | |
463 | | |
465 | 464 | |
466 | 465 | tc0100scn_tilemap_draw(tc0100scn, bitmap, cliprect, pivlayer[0], 0, 0); |
467 | 466 | tc0100scn_tilemap_draw(tc0100scn, bitmap, cliprect, pivlayer[1], 0, 0); |
r17967 | r17968 | |
469 | 468 | #if 0 |
470 | 469 | if (layer[0]==0 && layer[1]==3 && layer[2]==2 && layer[3]==1) |
471 | 470 | { |
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); | |
476 | 475 | } |
477 | 476 | else |
478 | 477 | { |
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); | |
483 | 482 | } |
484 | 483 | |
485 | 484 | if (layer[0]==3 && layer[1]==0 && layer[2]==1 && layer[3]==2) |
r17967 | r17968 | |
492 | 491 | for (x=0; x < priority_bitmap.width; x++) |
493 | 492 | { |
494 | 493 | pri = &priority_bitmap.pix8(y, x); |
495 | if (!(*pri & 0x02) && | |
494 | if (!(*pri & 0x02) && | |
496 | 495 | *pri |= 0x04; |
497 | 496 | } |
498 | 497 | } |
499 | 498 | } |
500 | 499 | |
501 | 500 | draw_sprites_pre(screen.machine(), 42-X_OFFSET, -571+Y_OFFSET); |
502 | draw_sprites(screen.machine(), | |
501 | draw_sprites(screen.machine(), | |
503 | 502 | |
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); | |
507 | 506 | |
508 | 507 | priority_bitmap.fill(0, cliprect); |
509 | 508 | draw_sprites(screen.machine(),bitmap,cliprect,primasks,0); |
r17967 | r17968 | |
516 | 515 | #else |
517 | 516 | if (layer[0]==0 && layer[1]==3 && layer[2]==2 && layer[3]==1) |
518 | 517 | { |
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); | |
523 | 522 | } |
524 | 523 | else |
525 | 524 | { |
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); | |
530 | 529 | } |
531 | 530 | |
532 | 531 | if (layer[0]==3 && layer[1]==0 && layer[2]==1 && layer[3]==2) |
r17967 | r17968 | |
539 | 538 | for (x=0; x < priority_bitmap.width(); x++) |
540 | 539 | { |
541 | 540 | pri = &priority_bitmap.pix8(y, x); |
542 | if (!(*pri & 0x02) && | |
541 | if (!(*pri & 0x02) && | |
543 | 542 | *pri |= 0x04; |
544 | 543 | } |
545 | 544 | } |
546 | 545 | } |
547 | 546 | |
548 | 547 | draw_sprites_pre(screen.machine(), 42-X_OFFSET, -571+Y_OFFSET); |
549 | draw_sprites(screen.machine(), | |
548 | draw_sprites(screen.machine(), | |
550 | 549 | |
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); | |
554 | 553 | |
555 | 554 | priority_bitmap.fill(0, cliprect); |
556 | 555 | draw_sprites(screen.machine(),bitmap,cliprect,primasks,0); |
r17967 | r17968 | |
---|---|---|
419 | 419 | |
420 | 420 | ***************************************************************************/ |
421 | 421 | |
422 | ||
422 | ||
423 | 423 | { |
424 | tetrisp2_state *state = screen.machine().driver_data<tetrisp2_state>(); | |
425 | 424 | int flipscreen; |
426 | 425 | int asc_pri; |
427 | 426 | int scr_pri; |
428 | 427 | int rot_pri; |
429 | 428 | int rot_ofsx, rot_ofsy; |
430 | 429 | |
431 | flipscreen = ( | |
430 | flipscreen = ( | |
432 | 431 | |
433 | 432 | /* Black background color */ |
434 | 433 | bitmap.fill(0, cliprect); |
435 | 434 | screen.machine().priority_bitmap.fill(0); |
436 | 435 | |
437 | 436 | /* Flip Screen */ |
438 | if (flipscreen != | |
437 | if (flipscreen != | |
439 | 438 | { |
440 | | |
439 | | |
441 | 440 | screen.machine().tilemap().set_flip_all(flipscreen ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0); |
442 | 441 | } |
443 | 442 | |
r17967 | r17968 | |
453 | 452 | rot_ofsy = 0x400; |
454 | 453 | } |
455 | 454 | |
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)); | |
458 | 457 | |
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 ]); | |
461 | 460 | |
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)); | |
464 | 463 | |
465 | 464 | asc_pri = scr_pri = rot_pri = 0; |
466 | 465 | |
467 | if(( | |
466 | if(( | |
468 | 467 | asc_pri++; |
469 | 468 | else |
470 | 469 | rot_pri++; |
471 | 470 | |
472 | if(( | |
471 | if(( | |
473 | 472 | asc_pri++; |
474 | 473 | else |
475 | 474 | scr_pri++; |
476 | 475 | |
477 | if(( | |
476 | if(( | |
478 | 477 | scr_pri++; |
479 | 478 | else |
480 | 479 | rot_pri++; |
481 | 480 | |
482 | 481 | if (rot_pri == 0) |
483 | | |
482 | | |
484 | 483 | else if (scr_pri == 0) |
485 | | |
484 | | |
486 | 485 | else if (asc_pri == 0) |
487 | | |
486 | | |
488 | 487 | |
489 | 488 | if (rot_pri == 1) |
490 | | |
489 | | |
491 | 490 | else if (scr_pri == 1) |
492 | | |
491 | | |
493 | 492 | else if (asc_pri == 1) |
494 | | |
493 | | |
495 | 494 | |
496 | 495 | if (rot_pri == 2) |
497 | | |
496 | | |
498 | 497 | else if (scr_pri == 2) |
499 | | |
498 | | |
500 | 499 | else if (asc_pri == 2) |
501 | | |
500 | | |
502 | 501 | |
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) ); | |
505 | 504 | return 0; |
506 | 505 | } |
507 | 506 | |
508 | ||
507 | ||
509 | 508 | { |
510 | tetrisp2_state *state = screen.machine().driver_data<tetrisp2_state>(); | |
511 | 509 | int flipscreen; |
512 | 510 | int asc_pri; |
513 | 511 | int scr_pri; |
514 | 512 | int rot_pri; |
515 | 513 | int rot_ofsx, rot_ofsy; |
516 | 514 | |
517 | flipscreen = ( | |
515 | flipscreen = ( | |
518 | 516 | |
519 | 517 | /* Black background color */ |
520 | 518 | bitmap.fill(0, cliprect); |
521 | 519 | screen.machine().priority_bitmap.fill(0); |
522 | 520 | |
523 | 521 | /* Flip Screen */ |
524 | if (flipscreen != | |
522 | if (flipscreen != | |
525 | 523 | { |
526 | | |
524 | | |
527 | 525 | screen.machine().tilemap().set_flip_all(flipscreen ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0); |
528 | 526 | } |
529 | 527 | |
r17967 | r17968 | |
539 | 537 | rot_ofsy = 0x400; |
540 | 538 | } |
541 | 539 | |
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)); | |
544 | 542 | |
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 ]); | |
547 | 545 | |
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)); | |
550 | 548 | |
551 | 549 | asc_pri = scr_pri = rot_pri = 0; |
552 | 550 | |
553 | if(( | |
551 | if(( | |
554 | 552 | asc_pri++; |
555 | 553 | else |
556 | 554 | rot_pri++; |
557 | 555 | |
558 | if(( | |
556 | if(( | |
559 | 557 | asc_pri++; |
560 | 558 | else |
561 | 559 | scr_pri++; |
562 | 560 | |
563 | if(( | |
561 | if(( | |
564 | 562 | scr_pri++; |
565 | 563 | else |
566 | 564 | rot_pri++; |
567 | 565 | |
568 | 566 | if (rot_pri == 0) |
569 | | |
567 | | |
570 | 568 | else if (scr_pri == 0) |
571 | | |
569 | | |
572 | 570 | else if (asc_pri == 0) |
573 | | |
571 | | |
574 | 572 | |
575 | 573 | if (rot_pri == 1) |
576 | | |
574 | | |
577 | 575 | else if (scr_pri == 1) |
578 | | |
576 | | |
579 | 577 | else if (asc_pri == 1) |
580 | | |
578 | | |
581 | 579 | |
582 | 580 | if (rot_pri == 2) |
583 | | |
581 | | |
584 | 582 | else if (scr_pri == 2) |
585 | | |
583 | | |
586 | 584 | else if (asc_pri == 2) |
587 | | |
585 | | |
588 | 586 | |
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) ); | |
591 | 589 | return 0; |
592 | 590 | } |
593 | 591 | |
594 | 592 | |
595 | 593 | |
596 | 594 | |
597 | ||
595 | ||
598 | 596 | { |
599 | tetrisp2_state *state = screen.machine().driver_data<tetrisp2_state>(); | |
600 | 597 | int asc_pri; |
601 | 598 | int scr_pri; |
602 | 599 | int rot_pri; |
603 | 600 | |
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); | |
610 | 607 | |
611 | 608 | bitmap.fill(screen.machine().pens[0x0000], cliprect); |
612 | 609 | screen.machine().priority_bitmap.fill(0, cliprect); |
613 | 610 | |
614 | 611 | asc_pri = scr_pri = rot_pri = 0; |
615 | 612 | |
616 | if(( | |
613 | if(( | |
617 | 614 | asc_pri++; |
618 | 615 | else |
619 | 616 | rot_pri++; |
620 | 617 | |
621 | if(( | |
618 | if(( | |
622 | 619 | asc_pri++; |
623 | 620 | else |
624 | 621 | scr_pri++; |
625 | 622 | |
626 | if(( | |
623 | if(( | |
627 | 624 | scr_pri++; |
628 | 625 | else |
629 | 626 | rot_pri++; |
630 | 627 | |
631 | 628 | if (rot_pri == 0) |
632 | | |
629 | | |
633 | 630 | else if (scr_pri == 0) |
634 | | |
631 | | |
635 | 632 | else if (asc_pri == 0) |
636 | | |
633 | | |
637 | 634 | |
638 | 635 | if (rot_pri == 1) |
639 | | |
636 | | |
640 | 637 | else if (scr_pri == 1) |
641 | | |
638 | | |
642 | 639 | else if (asc_pri == 1) |
643 | | |
640 | | |
644 | 641 | |
645 | 642 | if (rot_pri == 2) |
646 | | |
643 | | |
647 | 644 | else if (scr_pri == 2) |
648 | | |
645 | | |
649 | 646 | else if (asc_pri == 2) |
650 | | |
647 | | |
651 | 648 | |
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) ); | |
654 | 651 | |
655 | 652 | return 0; |
656 | 653 | } |
657 | 654 | |
658 | ||
655 | ||
659 | 656 | { |
660 | tetrisp2_state *state = screen.machine().driver_data<tetrisp2_state>(); | |
661 | 657 | int asc_pri; |
662 | 658 | int scr_pri; |
663 | 659 | int rot_pri; |
664 | 660 | |
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); | |
671 | 667 | |
672 | 668 | /* Black background color */ |
673 | 669 | bitmap.fill(screen.machine().pens[0x0000], cliprect); |
r17967 | r17968 | |
675 | 671 | |
676 | 672 | asc_pri = scr_pri = rot_pri = 0; |
677 | 673 | |
678 | if(( | |
674 | if(( | |
679 | 675 | asc_pri++; |
680 | 676 | else |
681 | 677 | rot_pri++; |
682 | 678 | |
683 | if(( | |
679 | if(( | |
684 | 680 | asc_pri++; |
685 | 681 | else |
686 | 682 | scr_pri++; |
687 | 683 | |
688 | if(( | |
684 | if(( | |
689 | 685 | scr_pri++; |
690 | 686 | else |
691 | 687 | rot_pri++; |
692 | 688 | |
693 | 689 | if (rot_pri == 0) |
694 | | |
690 | | |
695 | 691 | else if (scr_pri == 0) |
696 | | |
692 | | |
697 | 693 | else if (asc_pri == 0) |
698 | | |
694 | | |
699 | 695 | |
700 | 696 | if (rot_pri == 1) |
701 | | |
697 | | |
702 | 698 | else if (scr_pri == 1) |
703 | | |
699 | | |
704 | 700 | else if (asc_pri == 1) |
705 | | |
701 | | |
706 | 702 | |
707 | 703 | if (rot_pri == 2) |
708 | | |
704 | | |
709 | 705 | else if (scr_pri == 2) |
710 | | |
706 | | |
711 | 707 | else if (asc_pri == 2) |
712 | | |
708 | | |
713 | 709 | |
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) ); | |
716 | 712 | |
717 | 713 | return 0; |
718 | 714 | } |
r17967 | r17968 | |
761 | 757 | ms32_rearrange_sprites(machine(), "sprites_vert"); |
762 | 758 | } |
763 | 759 | |
764 | ||
760 | ||
765 | 761 | { |
766 | stepstag_state *state = screen.machine().driver_data<stepstag_state>(); | |
767 | 762 | |
768 | 763 | bitmap.fill(0, cliprect); |
769 | 764 | screen.machine().priority_bitmap.fill(0); |
770 | 765 | |
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) ); | |
773 | 768 | return 0; |
774 | 769 | } |
775 | ||
770 | ||
776 | 771 | { |
777 | stepstag_state *state = screen.machine().driver_data<stepstag_state>(); | |
778 | 772 | |
779 | 773 | bitmap.fill(0, cliprect); |
780 | 774 | screen.machine().priority_bitmap.fill(0); |
781 | 775 | |
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) ); | |
784 | 778 | return 0; |
785 | 779 | } |
786 | 780 | |
787 | ||
781 | ||
788 | 782 | { |
789 | stepstag_state *state = screen.machine().driver_data<stepstag_state>(); | |
790 | 783 | |
791 | 784 | bitmap.fill(0, cliprect); |
792 | 785 | screen.machine().priority_bitmap.fill(0); |
793 | 786 | |
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) ); | |
796 | 789 | |
797 | | |
790 | | |
798 | 791 | |
799 | 792 | return 0; |
800 | 793 | } |
r17967 | r17968 | |
---|---|---|
255 | 255 | } |
256 | 256 | } |
257 | 257 | |
258 | ||
258 | ||
259 | 259 | { |
260 | lastduel_state *state = screen.machine().driver_data<lastduel_state>(); | |
261 | 260 | |
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); | |
264 | 263 | draw_sprites(screen.machine(), bitmap, cliprect, 0); |
265 | | |
264 | | |
266 | 265 | draw_sprites(screen.machine(), bitmap, cliprect, 1); |
267 | | |
266 | | |
268 | 267 | return 0; |
269 | 268 | } |
270 | 269 | |
271 | ||
270 | ||
272 | 271 | { |
273 | lastduel_state *state = screen.machine().driver_data<lastduel_state>(); | |
274 | 272 | |
275 | if ( | |
273 | if ( | |
276 | 274 | { |
277 | | |
275 | | |
278 | 276 | 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); | |
281 | 279 | draw_sprites(screen.machine(), bitmap, cliprect, 1); |
282 | 280 | } |
283 | 281 | else |
284 | 282 | { |
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); | |
287 | 285 | draw_sprites(screen.machine(), bitmap, cliprect, 0); |
288 | | |
286 | | |
289 | 287 | draw_sprites(screen.machine(), bitmap, cliprect, 1); |
290 | 288 | } |
291 | | |
289 | | |
292 | 290 | return 0; |
293 | 291 | } |
r17967 | r17968 | |
---|---|---|
124 | 124 | |
125 | 125 | /******************************************************************************/ |
126 | 126 | |
127 | ||
127 | ||
128 | 128 | { |
129 | alpha68k_state *state = screen.machine().driver_data<alpha68k_state>(); | |
130 | 129 | |
131 | if ( | |
130 | if ( | |
132 | 131 | screen.machine().tilemap().mark_all_dirty(); |
133 | 132 | |
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); | |
136 | 135 | |
137 | 136 | bitmap.fill(2047, cliprect); |
138 | 137 | //AT |
r17967 | r17968 | |
141 | 140 | draw_sprites(screen.machine(), bitmap, cliprect, 2, 0x0000, 0x0800); |
142 | 141 | draw_sprites(screen.machine(), bitmap, cliprect, 0, 0x0000, 0x07c0); |
143 | 142 | //ZT |
144 | | |
143 | | |
145 | 144 | return 0; |
146 | 145 | } |
147 | 146 | |
r17967 | r17968 | |
270 | 269 | } |
271 | 270 | } |
272 | 271 | |
273 | ||
272 | ||
274 | 273 | { |
275 | alpha68k_state *state = screen.machine().driver_data<alpha68k_state>(); | |
276 | UINT16 *spriteram = state->m_spriteram; | |
274 | UINT16 *spriteram = m_spriteram; | |
277 | 275 | |
278 | if ( | |
276 | if ( | |
279 | 277 | screen.machine().tilemap().mark_all_dirty(); |
280 | 278 | |
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); | |
283 | 281 | |
284 | 282 | bitmap.fill(4095, cliprect); |
285 | 283 | |
286 | 284 | /* This appears to be correct priority */ |
287 | if ( | |
285 | if ( | |
288 | 286 | { |
289 | 287 | draw_sprites_V(screen.machine(), bitmap, cliprect, 0, 0x07c0, 0x0800, 0, 0x8000, 0x7fff); |
290 | 288 | draw_sprites_V(screen.machine(), bitmap, cliprect, 1, 0x0000, 0x0800, 0, 0x8000, 0x7fff); |
r17967 | r17968 | |
307 | 305 | draw_sprites_V(screen.machine(), bitmap, cliprect, 0, 0x0000, 0x07c0, 0x8000, 0, 0x7fff); |
308 | 306 | } |
309 | 307 | |
310 | | |
308 | | |
311 | 309 | return 0; |
312 | 310 | } |
313 | 311 | |
314 | ||
312 | ||
315 | 313 | { |
316 | alpha68k_state *state = screen.machine().driver_data<alpha68k_state>(); | |
317 | 314 | |
318 | if ( | |
315 | if ( | |
319 | 316 | screen.machine().tilemap().mark_all_dirty(); |
320 | 317 | |
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); | |
323 | 320 | |
324 | 321 | bitmap.fill(4095, cliprect); |
325 | 322 | |
r17967 | r17968 | |
329 | 326 | draw_sprites_V(screen.machine(), bitmap, cliprect, 2, 0x0000, 0x0800, 0x4000, 0x8000, 0x3fff); |
330 | 327 | draw_sprites_V(screen.machine(), bitmap, cliprect, 0, 0x0000, 0x07c0, 0x4000, 0x8000, 0x3fff); |
331 | 328 | |
332 | | |
329 | | |
333 | 330 | return 0; |
334 | 331 | } |
335 | 332 | |
r17967 | r17968 | |
363 | 360 | } |
364 | 361 | } |
365 | 362 | |
366 | ||
363 | ||
367 | 364 | { |
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 | |
370 | 366 | |
371 | 367 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
372 | 368 | |
r17967 | r17968 | |
498 | 494 | } |
499 | 495 | } |
500 | 496 | |
501 | ||
497 | ||
502 | 498 | { |
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); | |
505 | 500 | bitmap.fill(0x100, cliprect); //AT |
506 | 501 | |
507 | 502 | kyros_draw_sprites(screen.machine(), bitmap, cliprect, 2, 0x0800); |
r17967 | r17968 | |
558 | 553 | } |
559 | 554 | } |
560 | 555 | |
561 | ||
556 | ||
562 | 557 | { |
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); | |
565 | 559 | bitmap.fill(0x100, cliprect); //AT |
566 | 560 | |
567 | 561 | sstingry_draw_sprites(screen.machine(), bitmap, cliprect, 2, 0x0800); |
r17967 | r17968 | |
---|---|---|
132 | 132 | m_md_tilemap->set_scroll_rows(1024); |
133 | 133 | } |
134 | 134 | |
135 | ||
135 | ||
136 | 136 | { |
137 | drgnmst_state *state = screen.machine().driver_data<drgnmst_state>(); | |
138 | 137 | int y, rowscroll_bank; |
139 | 138 | |
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 | |
142 | 141 | |
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 | |
145 | 144 | |
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 | |
148 | 147 | |
149 | rowscroll_bank = ( | |
148 | rowscroll_bank = ( | |
150 | 149 | |
151 | 150 | for (y = 0; y < 1024; y++) |
152 | | |
151 | | |
153 | 152 | |
154 | 153 | // todo: figure out which bits relate to the order |
155 | switch ( | |
154 | switch ( | |
156 | 155 | { |
157 | 156 | case 0x2451: // fg unsure |
158 | 157 | case 0x2d9a: // fg unsure |
159 | 158 | case 0x2440: // all ok |
160 | 159 | 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); | |
164 | 163 | break; |
165 | 164 | 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); | |
169 | 168 | break; |
170 | 169 | case 0x38da: // fg unsure |
171 | 170 | case 0x215a: // fg unsure |
172 | 171 | 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); | |
176 | 175 | break; |
177 | 176 | 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); | |
181 | 180 | break; |
182 | 181 | 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]); | |
187 | 186 | |
188 | 187 | } |
189 | 188 | |
190 | 189 | draw_sprites(screen.machine(),bitmap,cliprect); |
191 | 190 | |
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]); | |
194 | 193 | |
195 | 194 | return 0; |
196 | 195 | } |
r17967 | r17968 | |
---|---|---|
263 | 263 | state->m_scanline_timer->adjust(machine.primary_screen->time_until_pos(y), y); |
264 | 264 | } |
265 | 265 | |
266 | ||
266 | ||
267 | 267 | { |
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); | |
270 | 269 | |
271 | 270 | return 0; |
272 | 271 | } |
r17967 | r17968 | |
---|---|---|
89 | 89 | |
90 | 90 | |
91 | 91 | #define cischeat_tmap_SET_SCROLL(_n_) \ |
92 | if ( | |
92 | if ( | |
93 | 93 | { \ |
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_]); \ | |
96 | 96 | } |
97 | 97 | |
98 | 98 | #define cischeat_tmap_DRAW(_n_) \ |
99 | if ( ( | |
99 | if ( ( | |
100 | 100 | { \ |
101 | | |
101 | | |
102 | 102 | flag = 0; \ |
103 | 103 | } |
104 | 104 | |
r17967 | r17968 | |
1227 | 1227 | Big Run |
1228 | 1228 | **************************************************************************/ |
1229 | 1229 | |
1230 | ||
1230 | ||
1231 | 1231 | { |
1232 | cischeat_state *state = screen.machine().driver_data<cischeat_state>(); | |
1233 | 1232 | int i; |
1234 | 1233 | int active_layers1, flag; |
1235 | 1234 | |
1236 | 1235 | #ifdef MAME_DEBUG |
1237 | 1236 | /* 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; | |
1240 | 1239 | #else |
1241 | | |
1240 | | |
1242 | 1241 | #endif |
1243 | 1242 | |
1244 | active_layers1 = | |
1243 | active_layers1 = | |
1245 | 1244 | |
1246 | 1245 | #ifdef MAME_DEBUG |
1247 | 1246 | CISCHEAT_LAYERSCTRL |
r17967 | r17968 | |
1255 | 1254 | |
1256 | 1255 | for (i = 7; i >= 4; i--) |
1257 | 1256 | { /* 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); | |
1260 | 1259 | } |
1261 | 1260 | |
1262 | 1261 | flag = 0; |
r17967 | r17968 | |
1265 | 1264 | |
1266 | 1265 | for (i = 3; i >= 0; i--) |
1267 | 1266 | { /* 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); | |
1270 | 1269 | } |
1271 | 1270 | |
1272 | if ( | |
1271 | if ( | |
1273 | 1272 | |
1274 | 1273 | cischeat_tmap_DRAW(2) |
1275 | 1274 | |
1276 | | |
1275 | | |
1277 | 1276 | return 0; |
1278 | 1277 | } |
1279 | 1278 | |
r17967 | r17968 | |
1282 | 1281 | Cisco Heat |
1283 | 1282 | **************************************************************************/ |
1284 | 1283 | |
1285 | ||
1284 | ||
1286 | 1285 | { |
1287 | cischeat_state *state = screen.machine().driver_data<cischeat_state>(); | |
1288 | 1286 | int active_layers1, flag; |
1289 | 1287 | |
1290 | 1288 | #ifdef MAME_DEBUG |
1291 | 1289 | /* 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; | |
1294 | 1292 | #else |
1295 | | |
1293 | | |
1296 | 1294 | #endif |
1297 | 1295 | |
1298 | active_layers1 = | |
1296 | active_layers1 = | |
1299 | 1297 | |
1300 | 1298 | #ifdef MAME_DEBUG |
1301 | 1299 | CISCHEAT_LAYERSCTRL |
r17967 | r17968 | |
1308 | 1306 | bitmap.fill(0, cliprect); |
1309 | 1307 | |
1310 | 1308 | /* 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); | |
1313 | 1311 | |
1314 | 1312 | flag = 0; |
1315 | 1313 | cischeat_tmap_DRAW(0) |
1316 | 1314 | // else bitmap.fill(0, cliprect); |
1317 | 1315 | cischeat_tmap_DRAW(1) |
1318 | 1316 | |
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); | |
1326 | 1324 | cischeat_tmap_DRAW(2) |
1327 | 1325 | |
1328 | 1326 | /* for the map screen */ |
1329 | if ( | |
1327 | if ( | |
1330 | 1328 | |
1331 | 1329 | |
1332 | | |
1330 | | |
1333 | 1331 | return 0; |
1334 | 1332 | } |
1335 | 1333 | |
r17967 | r17968 | |
1339 | 1337 | F1 GrandPrix Star |
1340 | 1338 | **************************************************************************/ |
1341 | 1339 | |
1342 | ||
1340 | ||
1343 | 1341 | { |
1344 | cischeat_state *state = screen.machine().driver_data<cischeat_state>(); | |
1345 | 1342 | int active_layers1, flag; |
1346 | 1343 | |
1347 | 1344 | #ifdef MAME_DEBUG |
1348 | 1345 | /* 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; | |
1351 | 1348 | #else |
1352 | | |
1349 | | |
1353 | 1350 | #endif |
1354 | 1351 | |
1355 | active_layers1 = | |
1352 | active_layers1 = | |
1356 | 1353 | |
1357 | 1354 | #ifdef MAME_DEBUG |
1358 | 1355 | CISCHEAT_LAYERSCTRL |
r17967 | r17968 | |
1367 | 1364 | /* 1: clouds 5, grad 7, road 0 2: clouds 5, grad 7, road 0, tunnel roof 0 */ |
1368 | 1365 | |
1369 | 1366 | /* 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); | |
1372 | 1369 | |
1373 | 1370 | flag = 0; |
1374 | 1371 | cischeat_tmap_DRAW(0) |
r17967 | r17968 | |
1376 | 1373 | cischeat_tmap_DRAW(1) |
1377 | 1374 | |
1378 | 1375 | /* 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); | |
1381 | 1378 | |
1382 | if ( | |
1379 | if ( | |
1383 | 1380 | |
1384 | 1381 | /* 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); | |
1387 | 1384 | |
1388 | if ( | |
1385 | if ( | |
1389 | 1386 | cischeat_tmap_DRAW(2) |
1390 | if ( | |
1387 | if ( | |
1391 | 1388 | |
1392 | 1389 | |
1393 | | |
1390 | | |
1394 | 1391 | return 0; |
1395 | 1392 | } |
1396 | 1393 | |
r17967 | r17968 | |
1400 | 1397 | Scud Hammer |
1401 | 1398 | **************************************************************************/ |
1402 | 1399 | |
1403 | ||
1400 | ||
1404 | 1401 | { |
1405 | cischeat_state *state = screen.machine().driver_data<cischeat_state>(); | |
1406 | 1402 | 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; | |
1409 | 1405 | |
1410 | 1406 | #ifdef MAME_DEBUG |
1411 | ||
1407 | ||
1412 | 1408 | if ( screen.machine().input().code_pressed(KEYCODE_Z) || screen.machine().input().code_pressed(KEYCODE_X) ) |
1413 | 1409 | { |
1414 | 1410 | int msk = 0; |
1415 | 1411 | if (screen.machine().input().code_pressed(KEYCODE_Q)) { msk |= 0x1;} |
1416 | 1412 | if (screen.machine().input().code_pressed(KEYCODE_W)) { msk |= 0x2;} |
1417 | 1413 | 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;} | |
1422 | 1418 | |
1423 | if (msk != 0) | |
1419 | if (msk != 0) | |
1424 | 1420 | #if 1 |
1425 | 1421 | { |
1426 | 1422 | address_space &space = *screen.machine().device("maincpu")->memory().space(AS_PROGRAM); |
1427 | 1423 | |
1428 | 1424 | 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) ); | |
1433 | 1429 | } |
1434 | 1430 | #endif |
1435 | 1431 | |
r17967 | r17968 | |
1444 | 1440 | flag = 0; |
1445 | 1441 | cischeat_tmap_DRAW(0) |
1446 | 1442 | // no layer 1 |
1447 | if ( | |
1443 | if ( | |
1448 | 1444 | cischeat_tmap_DRAW(2) |
1449 | 1445 | |
1450 | | |
1446 | | |
1451 | 1447 | return 0; |
1452 | 1448 | } |
1453 | 1449 |
r17967 | r17968 | |
---|---|---|
131 | 131 | } |
132 | 132 | } |
133 | 133 | |
134 | ||
134 | ||
135 | 135 | { |
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); | |
138 | 137 | gigas_draw_sprites(screen.machine(), bitmap, cliprect); |
139 | 138 | return 0; |
140 | 139 | } |
141 | 140 | |
142 | ||
141 | ||
143 | 142 | { |
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); | |
146 | 144 | pbillrd_draw_sprites(screen.machine(), bitmap, cliprect); |
147 | 145 | return 0; |
148 | 146 | } |
149 | 147 | |
150 | ||
148 | ||
151 | 149 | { |
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); | |
154 | 151 | freekick_draw_sprites(screen.machine(), bitmap, cliprect); |
155 | 152 | return 0; |
156 | 153 | } |
r17967 | r17968 | |
---|---|---|
2779 | 2779 | VIDEO_START_CALL_MEMBER(common); |
2780 | 2780 | } |
2781 | 2781 | |
2782 | ||
2782 | ||
2783 | 2783 | { |
2784 | namcos22_state *state = screen.machine().driver_data<namcos22_state>(); | |
2785 | 2784 | UpdateVideoMixer(screen.machine()); |
2786 | 2785 | UpdatePalette(screen.machine()); |
2787 | 2786 | namcos22s_recalc_czram(screen.machine()); |
r17967 | r17968 | |
2789 | 2788 | |
2790 | 2789 | // background color |
2791 | 2790 | rgbint bg_color; |
2792 | rgb_comp_to_rgbint(&bg_color, nthbyte( | |
2791 | rgb_comp_to_rgbint(&bg_color, nthbyte( | |
2793 | 2792 | if (mixer.flags&1 && mixer.fadeFactor) |
2794 | 2793 | { |
2795 | 2794 | rgbint fade_color; |
r17967 | r17968 | |
2799 | 2798 | bitmap.fill(rgbint_to_rgb(&bg_color), cliprect); |
2800 | 2799 | |
2801 | 2800 | // layers |
2802 | UINT8 layer = nthbyte( | |
2801 | UINT8 layer = nthbyte( | |
2803 | 2802 | if (layer&4) DrawCharacterLayer(screen.machine(), bitmap, cliprect); |
2804 | 2803 | if (layer&2) DrawSprites(screen.machine(), bitmap, cliprect); |
2805 | 2804 | if (layer&1) DrawPolygons(screen.machine(), bitmap); |
r17967 | r17968 | |
2814 | 2813 | FILE *f = fopen( "dump.txt", "wb" ); |
2815 | 2814 | if( f ) |
2816 | 2815 | { |
2817 | address_space &space = * | |
2816 | address_space &space = * | |
2818 | 2817 | |
2819 | 2818 | if (1) // czram |
2820 | 2819 | { |
r17967 | r17968 | |
2824 | 2823 | fprintf( f, "czram[%d] =", bank ); |
2825 | 2824 | for( i=0; i<256; i++ ) |
2826 | 2825 | { |
2827 | fprintf( f, " %04x", | |
2826 | fprintf( f, " %04x", | |
2828 | 2827 | } |
2829 | 2828 | fprintf( f, "\n" ); |
2830 | 2829 | } |
r17967 | r17968 | |
2837 | 2836 | fprintf(f, "spotram:\n"); |
2838 | 2837 | for (i=0; i<256; i++) |
2839 | 2838 | { |
2840 | fprintf(f, "%02X: %04X %04X %04X %04X\n", i, | |
2839 | fprintf(f, "%02X: %04X %04X %04X %04X\n", i, | |
2841 | 2840 | } |
2842 | 2841 | fprintf(f, "\n"); |
2843 | 2842 | } |
r17967 | r17968 | |
2857 | 2856 | } |
2858 | 2857 | #endif |
2859 | 2858 | |
2860 | // popmessage("%08X %08X %08X %08X", | |
2859 | // popmessage("%08X %08X %08X %08X", | |
2861 | 2860 | |
2862 | 2861 | return 0; |
2863 | 2862 | } |
2864 | 2863 | |
2865 | ||
2864 | ||
2866 | 2865 | { |
2867 | 2866 | UpdateVideoMixer(screen.machine()); |
2868 | 2867 | UpdatePalette(screen.machine()); |
r17967 | r17968 | |
2879 | 2878 | FILE *f = fopen( "dump.txt", "wb" ); |
2880 | 2879 | if( f ) |
2881 | 2880 | { |
2882 | address_space &space = * | |
2881 | address_space &space = * | |
2883 | 2882 | |
2884 | 2883 | //Dump(space, f,0x90000000, 0x90000003, "led?" ); |
2885 | 2884 | Dump(space, f,0x90010000, 0x90017fff, "cz_ram"); |
r17967 | r17968 | |
---|---|---|
417 | 417 | } |
418 | 418 | } |
419 | 419 | |
420 | ||
420 | void | |
421 | 421 | { |
422 | 422 | // falling edge |
423 | if (! | |
423 | if (!st | |
424 | 424 | redclash_update_stars_state(screen.machine()); |
425 | 425 | } |
426 | 426 | |
427 | ||
427 | ||
428 | 428 | { |
429 | ladybug_state *state = screen.machine().driver_data<ladybug_state>(); | |
430 | 429 | |
431 | 430 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
432 | 431 | redclash_draw_stars(screen.machine(), bitmap, cliprect, 0x60, 0, 0x00, 0xff); |
433 | 432 | draw_sprites(screen.machine(), bitmap, cliprect); |
434 | 433 | draw_bullets(screen.machine(), bitmap, cliprect); |
435 | | |
434 | | |
436 | 435 | return 0; |
437 | 436 | } |
r17967 | r17968 | |
---|---|---|
28 | 28 | } |
29 | 29 | |
30 | 30 | |
31 | ||
31 | ||
32 | 32 | { |
33 | vicdual_state *state = screen.machine().driver_data<vicdual_state>(); | |
34 | 33 | UINT8 x = 0; |
35 | 34 | UINT8 y = cliprect.min_y; |
36 | 35 | UINT8 video_data = 0; |
r17967 | r17968 | |
46 | 45 | |
47 | 46 | /* read the character code */ |
48 | 47 | offs = (y >> 3 << 5) | (x >> 3); |
49 | char_code = | |
48 | char_code = | |
50 | 49 | |
51 | 50 | /* read the appropriate line of the character ram */ |
52 | 51 | offs = (char_code << 3) | (y & 0x07); |
53 | video_data = | |
52 | video_data = | |
54 | 53 | } |
55 | 54 | |
56 | 55 | /* plot the current pixel */ |
r17967 | r17968 | |
79 | 78 | } |
80 | 79 | |
81 | 80 | |
82 | ||
81 | ||
83 | 82 | { |
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(); | |
86 | 84 | UINT8 x = 0; |
87 | 85 | UINT8 y = cliprect.min_y; |
88 | 86 | UINT8 video_data = 0; |
r17967 | r17968 | |
100 | 98 | |
101 | 99 | /* read the character code */ |
102 | 100 | offs = (y >> 3 << 5) | (x >> 3); |
103 | char_code = | |
101 | char_code = | |
104 | 102 | |
105 | 103 | /* read the appropriate line of the character ram */ |
106 | 104 | offs = (char_code << 3) | (y & 0x07); |
107 | video_data = | |
105 | video_data = | |
108 | 106 | |
109 | 107 | /* get the foreground and background colors from the PROM */ |
110 | offs = (char_code >> 5) | ( | |
108 | offs = (char_code >> 5) | ( | |
111 | 109 | back_pen = pens_from_color_prom[(color_prom[offs] >> 1) & 0x07]; |
112 | 110 | fore_pen = pens_from_color_prom[(color_prom[offs] >> 5) & 0x07]; |
113 | 111 | } |
r17967 | r17968 | |
138 | 136 | } |
139 | 137 | |
140 | 138 | |
141 | ||
139 | ||
142 | 140 | { |
143 | 141 | if (vicdual_is_cabinet_color(screen.machine())) |
144 | SCREEN_UPDATE32_CALL(vicdual_color); | |
142 | SCREEN_UPDATE32_CALL_MEMBER(vicdual_color); | |
145 | 143 | else |
146 | SCREEN_UPDATE32_CALL(vicdual_bw); | |
144 | SCREEN_UPDATE32_CALL_MEMBER(vicdual_bw); | |
147 | 145 | |
148 | 146 | return 0; |
149 | 147 | } |
r17967 | r17968 | |
---|---|---|
101 | 101 | * |
102 | 102 | *************************************/ |
103 | 103 | |
104 | ||
104 | ||
105 | 105 | { |
106 | xybots_state *state = screen.machine().driver_data<xybots_state>(); | |
107 | 106 | atarimo_rect_list rectlist; |
108 | 107 | bitmap_ind16 *mobitmap; |
109 | 108 | int x, y, r; |
110 | 109 | |
111 | 110 | /* draw the playfield */ |
112 | | |
111 | | |
113 | 112 | |
114 | 113 | /* draw and merge the MO */ |
115 | 114 | mobitmap = atarimo_render(0, cliprect, &rectlist); |
r17967 | r17968 | |
163 | 162 | } |
164 | 163 | |
165 | 164 | /* add the alpha on top */ |
166 | | |
165 | | |
167 | 166 | return 0; |
168 | 167 | } |
r17967 | r17968 | |
---|---|---|
1753 | 1753 | } |
1754 | 1754 | |
1755 | 1755 | |
1756 | ||
1756 | ||
1757 | 1757 | { |
1758 | galaxold_state *state = screen.machine().driver_data<galaxold_state>(); | |
1759 | 1758 | |
1760 | (* | |
1759 | (* | |
1761 | 1760 | |
1762 | if ( | |
1761 | if ( | |
1763 | 1762 | { |
1764 | (* | |
1763 | (* | |
1765 | 1764 | } |
1766 | 1765 | |
1767 | 1766 | |
1768 | | |
1767 | | |
1769 | 1768 | |
1770 | if ( | |
1769 | if ( | |
1771 | 1770 | { |
1772 | 1771 | draw_bullets_common(screen.machine(), bitmap, cliprect); |
1773 | 1772 | } |
1774 | 1773 | |
1775 | 1774 | |
1776 | draw_sprites(screen.machine(), bitmap, | |
1775 | draw_sprites(screen.machine(), bitmap, | |
1777 | 1776 | |
1778 | if ( | |
1777 | if ( | |
1779 | 1778 | { |
1780 | draw_sprites(screen.machine(), bitmap, | |
1779 | draw_sprites(screen.machine(), bitmap, | |
1781 | 1780 | } |
1782 | 1781 | return 0; |
1783 | 1782 | } |
1784 | 1783 | |
1785 | 1784 | |
1786 | ||
1785 | ||
1787 | 1786 | { |
1788 | galaxold_state *state = screen.machine().driver_data<galaxold_state>(); | |
1789 | 1787 | int i, j; |
1790 | 1788 | UINT8 color; |
1791 | 1789 | |
1792 | (* | |
1790 | (* | |
1793 | 1791 | |
1794 | if ( | |
1792 | if ( | |
1795 | 1793 | { |
1796 | (* | |
1794 | (* | |
1797 | 1795 | } |
1798 | 1796 | |
1799 | 1797 | /* save the background for drawing it again later, if background has priority over characters */ |
1800 | copybitmap(* | |
1798 | copybitmap(* | |
1801 | 1799 | |
1802 | | |
1800 | | |
1803 | 1801 | |
1804 | if ( | |
1802 | if ( | |
1805 | 1803 | { |
1806 | 1804 | draw_bullets_common(screen.machine(), bitmap, cliprect); |
1807 | 1805 | } |
1808 | 1806 | |
1809 | draw_sprites(screen.machine(), bitmap, | |
1807 | draw_sprites(screen.machine(), bitmap, | |
1810 | 1808 | |
1811 | if ( | |
1809 | if ( | |
1812 | 1810 | { |
1813 | 1811 | /* draw the upper part of the background, as it has priority */ |
1814 | 1812 | dambustr_draw_upper_background(screen.machine(), bitmap, cliprect); |
1815 | 1813 | |
1816 | 1814 | /* only rows with color code > 3 are stronger than the background */ |
1817 | memset( | |
1815 | memset( | |
1818 | 1816 | for (i=0; i<32; i++) { |
1819 | color = | |
1817 | color = | |
1820 | 1818 | if (color > 3) { |
1821 | 1819 | for (j=0; j<32; j++) |
1822 | | |
1820 | | |
1823 | 1821 | }; |
1824 | 1822 | }; |
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); | |
1827 | 1825 | }; |
1828 | 1826 | |
1829 | 1827 | return 0; |
r17967 | r17968 | |
---|---|---|
417 | 417 | * |
418 | 418 | *************************************/ |
419 | 419 | |
420 | ||
420 | ||
421 | 421 | { |
422 | centiped_state *state = screen.machine().driver_data<centiped_state>(); | |
423 | UINT8 *spriteram = state->m_spriteram; | |
422 | UINT8 *spriteram = m_spriteram; | |
424 | 423 | rectangle spriteclip = cliprect; |
425 | 424 | int offs; |
426 | 425 | |
427 | 426 | /* draw the background */ |
428 | | |
427 | | |
429 | 428 | |
430 | 429 | /* apply the sprite clip */ |
431 | if ( | |
430 | if ( | |
432 | 431 | spriteclip.min_x += 8; |
433 | 432 | else |
434 | 433 | spriteclip.max_x -= 8; |
r17967 | r17968 | |
443 | 442 | int x = spriteram[offs + 0x20]; |
444 | 443 | int y = 240 - spriteram[offs + 0x10]; |
445 | 444 | |
446 | drawgfx_transmask(bitmap, spriteclip, screen.machine().gfx[1], code, color, flipx, flipy, x, y, | |
445 | drawgfx_transmask(bitmap, spriteclip, screen.machine().gfx[1], code, color, flipx, flipy, x, y, | |
447 | 446 | } |
448 | 447 | return 0; |
449 | 448 | } |
450 | 449 | |
451 | 450 | |
452 | ||
451 | ||
453 | 452 | { |
454 | centiped_state *state = screen.machine().driver_data<centiped_state>(); | |
455 | UINT8 *spriteram = state->m_spriteram; | |
453 | UINT8 *spriteram = m_spriteram; | |
456 | 454 | int upright_mode = screen.machine().root_device().ioport("IN0")->read() & 0x80; |
457 | 455 | int offs; |
458 | 456 | |
459 | 457 | /* if the cocktail/upright switch flipped, force refresh */ |
460 | if ( | |
458 | if ( | |
461 | 459 | { |
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(); | |
465 | 463 | } |
466 | 464 | |
467 | 465 | /* draw the background */ |
468 | | |
466 | | |
469 | 467 | |
470 | 468 | /* draw the sprites */ |
471 | 469 | for (offs = 0; offs < 0x10; offs++) |
r17967 | r17968 | |
495 | 493 | } |
496 | 494 | |
497 | 495 | |
498 | ||
496 | ||
499 | 497 | { |
500 | centiped_state *state = screen.machine().driver_data<centiped_state>(); | |
501 | UINT8 *spriteram = state->m_spriteram; | |
498 | UINT8 *spriteram = m_spriteram; | |
502 | 499 | rectangle spriteclip = cliprect; |
503 | 500 | |
504 | 501 | int offs; |
505 | 502 | |
506 | 503 | /* draw the background */ |
507 | | |
504 | | |
508 | 505 | |
509 | 506 | /* apply the sprite clip */ |
510 | if ( | |
507 | if ( | |
511 | 508 | spriteclip.min_x += 8; |
512 | 509 | else |
513 | 510 | spriteclip.max_x -= 8; |
r17967 | r17968 | |
515 | 512 | /* draw the sprites */ |
516 | 513 | for (offs = 0; offs < 0x10; offs++) |
517 | 514 | { |
518 | int code = ((spriteram[offs] & 0x3e) >> 1) | ((spriteram[offs] & 0x01) << 6) | ( | |
515 | int code = ((spriteram[offs] & 0x3e) >> 1) | ((spriteram[offs] & 0x01) << 6) | ( | |
519 | 516 | int color = spriteram[offs + 0x30]; |
520 | 517 | int flipy = (spriteram[offs] >> 7) & 1; |
521 | 518 | int x = spriteram[offs + 0x20]; |
r17967 | r17968 | |
530 | 527 | * This varies from Centipede, in that flipx is not in |
531 | 528 | * the data, but is determined by VIDROT value at 0x2506. |
532 | 529 | */ |
533 | ||
530 | ||
534 | 531 | { |
535 | centiped_state *state = screen.machine().driver_data<centiped_state>(); | |
536 | UINT8 *spriteram = state->m_spriteram; | |
532 | UINT8 *spriteram = m_spriteram; | |
537 | 533 | rectangle spriteclip = cliprect; |
538 | 534 | int offs; |
539 | 535 | |
540 | 536 | /* draw the background */ |
541 | | |
537 | | |
542 | 538 | |
543 | 539 | /* apply the sprite clip */ |
544 | if ( | |
540 | if ( | |
545 | 541 | spriteclip.min_x += 8; |
546 | 542 | else |
547 | 543 | spriteclip.max_x -= 8; |
r17967 | r17968 | |
549 | 545 | /* draw the sprites */ |
550 | 546 | for (offs = 0; offs < 0x10; offs++) |
551 | 547 | { |
552 | int code = ((spriteram[offs] & 0x3e) >> 1) | ((spriteram[offs] & 0x01) << 6) | ( | |
548 | int code = ((spriteram[offs] & 0x3e) >> 1) | ((spriteram[offs] & 0x01) << 6) | ( | |
553 | 549 | int color = spriteram[offs + 0x30]; |
554 | int flipx = | |
550 | int flipx = | |
555 | 551 | int flipy = (spriteram[offs] & 0x80); |
556 | 552 | int x = spriteram[offs + 0x20]; |
557 | 553 | int y = 240 - spriteram[offs + 0x10]; |
r17967 | r17968 | |
559 | 555 | flipy = !flipy; |
560 | 556 | } |
561 | 557 | |
562 | drawgfx_transmask(bitmap, spriteclip, screen.machine().gfx[1], code, color, flipx, flipy, x, y, | |
558 | drawgfx_transmask(bitmap, spriteclip, screen.machine().gfx[1], code, color, flipx, flipy, x, y, | |
563 | 559 | } |
564 | 560 | return 0; |
565 | 561 | } |
r17967 | r17968 | |
---|---|---|
639 | 639 | SCREEN REFRESH |
640 | 640 | **************************************************************/ |
641 | 641 | |
642 | ||
642 | ||
643 | 643 | { |
644 | wgp_state *state = screen.machine().driver_data<wgp_state>(); | |
645 | 644 | int i; |
646 | 645 | UINT8 layer[3]; |
647 | 646 | |
648 | 647 | #ifdef MAME_DEBUG |
649 | 648 | if (screen.machine().input().code_pressed_once (KEYCODE_V)) |
650 | 649 | { |
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]); | |
653 | 652 | } |
654 | 653 | |
655 | 654 | if (screen.machine().input().code_pressed_once (KEYCODE_B)) |
656 | 655 | { |
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]); | |
659 | 658 | } |
660 | 659 | |
661 | 660 | if (screen.machine().input().code_pressed_once (KEYCODE_N)) |
662 | 661 | { |
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]); | |
665 | 664 | } |
666 | 665 | |
667 | 666 | if (screen.machine().input().code_pressed_once (KEYCODE_M)) |
668 | 667 | { |
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]); | |
671 | 670 | } |
672 | 671 | #endif |
673 | 672 | |
674 | 673 | for (i = 0; i < 3; i++) |
675 | 674 | { |
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]); | |
678 | 677 | } |
679 | 678 | |
680 | tc0100scn_tilemap_update( | |
679 | tc0100scn_tilemap_update( | |
681 | 680 | |
682 | 681 | bitmap.fill(0, cliprect); |
683 | 682 | |
r17967 | r17968 | |
685 | 684 | layer[1] = 1; |
686 | 685 | layer[2] = 2; |
687 | 686 | |
688 | if ( | |
687 | if ( | |
689 | 688 | { |
690 | 689 | layer[1] = 2; |
691 | 690 | layer[2] = 1; |
r17967 | r17968 | |
694 | 693 | /* We should draw the following on a 1024x1024 bitmap... */ |
695 | 694 | |
696 | 695 | #ifdef MAME_DEBUG |
697 | if ( | |
696 | if ( | |
698 | 697 | #endif |
699 | 698 | wgp_piv_layer_draw(screen.machine(), bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1); |
700 | 699 | |
701 | 700 | #ifdef MAME_DEBUG |
702 | if ( | |
701 | if ( | |
703 | 702 | #endif |
704 | 703 | wgp_piv_layer_draw(screen.machine(), bitmap, cliprect, layer[1], 0, 2); |
705 | 704 | |
706 | 705 | #ifdef MAME_DEBUG |
707 | if ( | |
706 | if ( | |
708 | 707 | #endif |
709 | 708 | wgp_piv_layer_draw(screen.machine(), bitmap, cliprect, layer[2], 0, 4); |
710 | 709 | |
711 | 710 | draw_sprites(screen.machine(), bitmap, cliprect, 16); |
712 | 711 | |
713 | 712 | /* ... 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( | |
713 | layer[0] = tc0100scn_bottomlayer( | |
715 | 714 | layer[1] = layer[0] ^ 1; |
716 | 715 | layer[2] = 2; |
717 | 716 | |
718 | tc0100scn_tilemap_draw( | |
717 | tc0100scn_tilemap_draw( | |
719 | 718 | |
720 | 719 | #ifdef MAME_DEBUG |
721 | if ( | |
720 | if ( | |
722 | 721 | #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); | |
725 | 724 | |
726 | 725 | #if 0 |
727 | 726 | { |
728 | 727 | 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]); | |
731 | 730 | popmessage(buf); |
732 | 731 | } |
733 | 732 | #endif |
r17967 | r17968 | |
---|---|---|
497 | 497 | * |
498 | 498 | *************************************/ |
499 | 499 | |
500 | ||
500 | ||
501 | 501 | { |
502 | atarisy1_state *state = screen.machine().driver_data<atarisy1_state>(); | |
503 | 502 | atarimo_rect_list rectlist; |
504 | 503 | bitmap_ind16 *mobitmap; |
505 | 504 | int x, y, r; |
506 | 505 | |
507 | 506 | /* draw the playfield */ |
508 | | |
507 | | |
509 | 508 | |
510 | 509 | /* draw and merge the MO */ |
511 | 510 | mobitmap = atarimo_render(0, cliprect, &rectlist); |
r17967 | r17968 | |
529 | 528 | else |
530 | 529 | { |
531 | 530 | /* priority pens for playfield color 0 */ |
532 | if ((pf[x] & 0xf8) != 0 || !( | |
531 | if ((pf[x] & 0xf8) != 0 || !( | |
533 | 532 | pf[x] = mo[x]; |
534 | 533 | } |
535 | 534 | |
r17967 | r17968 | |
539 | 538 | } |
540 | 539 | |
541 | 540 | /* add the alpha on top */ |
542 | | |
541 | | |
543 | 542 | return 0; |
544 | 543 | } |
545 | 544 |
r17967 | r17968 | |
---|---|---|
233 | 233 | } |
234 | 234 | } |
235 | 235 | |
236 | ||
236 | ||
237 | 237 | { |
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); | |
241 | 240 | |
242 | 241 | draw_background(screen.machine(), bitmap, cliprect); |
243 | | |
242 | | |
244 | 243 | draw_sprites(screen.machine(), bitmap, cliprect); |
245 | 244 | return 0; |
246 | 245 | } |
r17967 | r17968 | |
---|---|---|
154 | 154 | } |
155 | 155 | |
156 | 156 | |
157 | ||
157 | ||
158 | 158 | { |
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); | |
162 | 161 | draw_sprites(screen.machine(), bitmap, cliprect); |
163 | 162 | return 0; |
164 | 163 | } |
165 | 164 | |
166 | 165 | |
167 | ||
166 | void | |
168 | 167 | { |
169 | 168 | // rising edge |
170 | if ( | |
169 | if (st | |
171 | 170 | { |
172 | sprint8_state *state = screen.machine().driver_data<sprint8_state>(); | |
173 | 171 | int x; |
174 | 172 | int y; |
175 | 173 | const rectangle &visarea = screen.machine().primary_screen->visible_area(); |
176 | 174 | |
177 | | |
175 | | |
178 | 176 | |
179 | | |
177 | | |
180 | 178 | |
181 | draw_sprites(screen.machine(), | |
179 | draw_sprites(screen.machine(), | |
182 | 180 | |
183 | 181 | for (y = visarea.min_y; y <= visarea.max_y; y++) |
184 | 182 | { |
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); | |
187 | 185 | |
188 | 186 | for (x = visarea.min_x; x <= visarea.max_x; x++) |
189 | 187 | if (p1[x] != 0x20 && p2[x] == 0x23) |
r17967 | r17968 | |
---|---|---|
37 | 37 | m_fg_tilemap->set_transparent_pen(0xff); |
38 | 38 | } |
39 | 39 | |
40 | ||
40 | ||
41 | 41 | { |
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); | |
45 | 44 | return 0; |
46 | 45 | } |
r17967 | r17968 | |
---|---|---|
970 | 970 | |
971 | 971 | ***************************************************************************/ |
972 | 972 | |
973 | ||
973 | ||
974 | 974 | { |
975 | return SCREEN_UPDATE16_CALL(ssv); | |
975 | return SCREEN_UPDATE16_CALL_MEMBER(ssv); | |
976 | 976 | } |
977 | 977 | |
978 | ||
978 | ||
979 | 979 | { |
980 | ssv_state *state = screen.machine().driver_data<ssv_state>(); | |
981 | 980 | |
982 | SCREEN_UPDATE16_CALL(ssv); | |
981 | SCREEN_UPDATE16_CALL_MEMBER(ssv); | |
983 | 982 | |
984 | 983 | // draw zooming sprites |
985 | | |
984 | | |
986 | 985 | |
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); | |
990 | 989 | |
991 | 990 | return 0; |
992 | 991 | } |
r17967 | r17968 | |
998 | 997 | state->m_enable_video = enable; |
999 | 998 | } |
1000 | 999 | |
1001 | ||
1000 | ||
1002 | 1001 | { |
1003 | 1002 | rectangle clip; |
1004 | 1003 | |
1005 | ssv_state *state = screen.machine().driver_data<ssv_state>(); | |
1006 | 1004 | |
1007 | 1005 | // Shadow |
1008 | if ( | |
1006 | if ( | |
1009 | 1007 | { |
1010 | 1008 | // 4 bit shadows (mslider, stmblade) |
1011 | | |
1009 | | |
1012 | 1010 | } |
1013 | 1011 | else |
1014 | 1012 | { |
1015 | 1013 | // 2 bit shadows |
1016 | | |
1014 | | |
1017 | 1015 | } |
1018 | | |
1016 | | |
1019 | 1017 | |
1020 | 1018 | /* The background color is the first one in the palette */ |
1021 | 1019 | bitmap.fill(0, cliprect); |
1022 | 1020 | |
1023 | 1021 | // 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] ; | |
1028 | 1026 | |
1029 | 1027 | // printf("%04x %04x %04x %04x\n",clip.min_x, clip.max_x, clip.min_y, clip.max_y); |
1030 | 1028 | |
r17967 | r17968 | |
1038 | 1036 | if (clip.min_y > clip.max_y) |
1039 | 1037 | clip.min_y = clip.max_y; |
1040 | 1038 | |
1041 | if (! | |
1039 | if (! | |
1042 | 1040 | return 0; |
1043 | 1041 | |
1044 | 1042 | draw_layer(screen.machine(), bitmap, clip, 0); // "background layer" |
r17967 | r17968 | |
---|---|---|
44 | 44 | /******************************************************************************/ |
45 | 45 | |
46 | 46 | |
47 | ||
47 | ||
48 | 48 | { |
49 | dec0_state *state = screen.machine().driver_data<dec0_state>(); | |
50 | 49 | |
51 | | |
50 | | |
52 | 51 | |
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); | |
56 | 55 | |
57 | 56 | /* HB always keeps pf2 on top of pf3, no need explicitly support priority register */ |
58 | 57 | |
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); | |
61 | 60 | return 0; |
62 | 61 | } |
63 | 62 | |
64 | 63 | /******************************************************************************/ |
65 | 64 | |
66 | ||
65 | ||
67 | 66 | { |
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()); | |
70 | 68 | |
71 | 69 | /* WARNING: inverted wrt Midnight Resistance */ |
72 | if (( | |
70 | if (( | |
73 | 71 | { |
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); | |
76 | 74 | |
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 */ | |
79 | 77 | |
80 | | |
78 | | |
81 | 79 | |
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 */ | |
84 | 82 | } |
85 | 83 | else |
86 | 84 | { |
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); | |
89 | 87 | |
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 */ | |
92 | 90 | |
93 | | |
91 | | |
94 | 92 | |
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 */ | |
97 | 95 | } |
98 | 96 | |
99 | | |
97 | | |
100 | 98 | return 0; |
101 | 99 | } |
102 | 100 | |
103 | 101 | /******************************************************************************/ |
104 | 102 | |
105 | ||
103 | ||
106 | 104 | { |
107 | dec0_state *state = screen.machine().driver_data<dec0_state>(); | |
108 | 105 | int trans; |
109 | 106 | |
110 | | |
107 | | |
111 | 108 | |
112 | if ( | |
109 | if ( | |
113 | 110 | trans = 0x08; |
114 | 111 | else |
115 | 112 | trans = 0x00; |
116 | 113 | |
117 | if ( | |
114 | if ( | |
118 | 115 | { |
119 | 116 | /* WARNING: inverted wrt Midnight Resistance */ |
120 | 117 | /* Robocop uses it only for the title screen, so this might be just */ |
121 | 118 | /* completely wrong. The top 8 bits of the register might mean */ |
122 | 119 | /* something (they are 0x80 in midres, 0x00 here) */ |
123 | | |
120 | | |
124 | 121 | |
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); | |
127 | 124 | |
128 | | |
125 | | |
129 | 126 | } |
130 | 127 | else |
131 | 128 | { |
132 | | |
129 | | |
133 | 130 | |
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); | |
136 | 133 | |
137 | | |
134 | | |
138 | 135 | } |
139 | 136 | |
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); | |
142 | 139 | else |
143 | | |
140 | | |
144 | 141 | |
145 | | |
142 | | |
146 | 143 | return 0; |
147 | 144 | } |
148 | 145 | |
149 | 146 | |
150 | ||
147 | ||
151 | 148 | { |
152 | dec0_automat_state *state = screen.machine().driver_data<dec0_automat_state>(); | |
153 | 149 | int trans; |
154 | 150 | |
155 | 151 | // layer enables seem different... where are they? |
156 | 152 | |
157 | 153 | // the bootleg doesn't write these registers, I think they're hardcoded?, so fake them for compatibility with our implementation.. |
158 | 154 | 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 | |
163 | 159 | |
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 | |
168 | 164 | |
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 | |
173 | 169 | |
174 | 170 | // 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? | |
177 | 173 | |
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); | |
180 | 176 | |
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); | |
183 | 179 | |
184 | 180 | |
185 | | |
181 | | |
186 | 182 | |
187 | if ( | |
183 | if ( | |
188 | 184 | trans = 0x08; |
189 | 185 | else |
190 | 186 | trans = 0x00; |
191 | 187 | |
192 | if ( | |
188 | if ( | |
193 | 189 | { |
194 | | |
190 | | |
195 | 191 | |
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); | |
198 | 194 | |
199 | | |
195 | | |
200 | 196 | } |
201 | 197 | else |
202 | 198 | { |
203 | | |
199 | | |
204 | 200 | |
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); | |
207 | 203 | |
208 | | |
204 | | |
209 | 205 | } |
210 | 206 | |
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); | |
213 | 209 | else |
214 | | |
210 | | |
215 | 211 | |
216 | | |
212 | | |
217 | 213 | return 0; |
218 | 214 | } |
219 | 215 | |
220 | ||
216 | ||
221 | 217 | { |
222 | dec0_automat_state *state = screen.machine().driver_data<dec0_automat_state>(); | |
223 | 218 | |
224 | 219 | // layer enables seem different... where are they? |
225 | 220 | |
226 | 221 | // the bootleg doesn't write these registers, I think they're hardcoded?, so fake them for compatibility with our implementation.. |
227 | 222 | 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 | |
232 | 227 | |
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 | |
237 | 232 | |
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 | |
242 | 237 | |
243 | 238 | // 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? | |
246 | 241 | |
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); | |
249 | 244 | |
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); | |
252 | 247 | |
253 | | |
248 | | |
254 | 249 | |
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); | |
257 | 252 | |
258 | | |
253 | | |
259 | 254 | |
260 | 255 | /* 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 | |
263 | 258 | |
264 | | |
259 | | |
265 | 260 | return 0; |
266 | 261 | } |
267 | 262 | |
268 | 263 | |
269 | 264 | /******************************************************************************/ |
270 | 265 | |
271 | ||
266 | ||
272 | 267 | { |
273 | dec0_state *state = screen.machine().driver_data<dec0_state>(); | |
274 | 268 | |
275 | | |
269 | | |
276 | 270 | |
277 | 271 | /* This game doesn't have the extra playfield chip on the game board, but |
278 | 272 | the palette does show through. */ |
279 | 273 | 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); | |
283 | 277 | return 0; |
284 | 278 | } |
285 | 279 | |
286 | 280 | /******************************************************************************/ |
287 | 281 | |
288 | ||
282 | ||
289 | 283 | { |
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()); | |
292 | 285 | |
293 | if ( | |
286 | if ( | |
294 | 287 | { |
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); | |
297 | 290 | } |
298 | 291 | else |
299 | 292 | { |
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); | |
302 | 295 | } |
303 | 296 | |
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); | |
306 | 299 | return 0; |
307 | 300 | } |
308 | 301 | |
309 | 302 | /******************************************************************************/ |
310 | 303 | |
311 | ||
304 | ||
312 | 305 | { |
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()); | |
315 | 307 | |
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); | |
318 | 310 | |
319 | | |
311 | | |
320 | 312 | |
321 | 313 | /* 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 | |
324 | 316 | |
325 | | |
317 | | |
326 | 318 | return 0; |
327 | 319 | } |
328 | 320 | |
329 | 321 | /******************************************************************************/ |
330 | 322 | |
331 | ||
323 | ||
332 | 324 | { |
333 | dec0_state *state = screen.machine().driver_data<dec0_state>(); | |
334 | 325 | int trans; |
335 | 326 | |
336 | | |
327 | | |
337 | 328 | |
338 | if ( | |
329 | if ( | |
339 | 330 | trans = 0x00; |
340 | 331 | else trans = 0x08; |
341 | 332 | |
342 | if ( | |
333 | if ( | |
343 | 334 | { |
344 | | |
335 | | |
345 | 336 | |
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); | |
348 | 339 | |
349 | | |
340 | | |
350 | 341 | } |
351 | 342 | else |
352 | 343 | { |
353 | | |
344 | | |
354 | 345 | |
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); | |
357 | 348 | |
358 | | |
349 | | |
359 | 350 | } |
360 | 351 | |
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); | |
363 | 354 | else |
364 | | |
355 | | |
365 | 356 | |
366 | | |
357 | | |
367 | 358 | return 0; |
368 | 359 | } |
369 | 360 |
r17967 | r17968 | |
---|---|---|
563 | 563 | //m_buffer3d = auto_bitmap_ind16_alloc(machine(), width, height); |
564 | 564 | } |
565 | 565 | |
566 | ||
566 | ||
567 | 567 | { |
568 | taitoair_state *state = screen.machine().driver_data<taitoair_state>(); | |
569 | 568 | |
570 | tc0080vco_tilemap_update( | |
569 | tc0080vco_tilemap_update( | |
571 | 570 | |
572 | 571 | bitmap.fill(0, cliprect); |
573 | 572 | |
r17967 | r17968 | |
600 | 599 | #endif |
601 | 600 | } |
602 | 601 | |
603 | tc0080vco_tilemap_draw( | |
602 | tc0080vco_tilemap_draw( | |
604 | 603 | |
605 | 604 | draw_sprites(screen.machine(), bitmap, cliprect, 0); |
606 | 605 | |
607 | copybitmap_trans(bitmap, * | |
606 | copybitmap_trans(bitmap, * | |
608 | 607 | |
609 | tc0080vco_tilemap_draw( | |
608 | tc0080vco_tilemap_draw( | |
610 | 609 | |
611 | 610 | draw_sprites(screen.machine(), bitmap, cliprect, 1); |
612 | 611 | |
613 | tc0080vco_tilemap_draw( | |
612 | tc0080vco_tilemap_draw( | |
614 | 613 | |
615 | 614 | /* 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); | |
618 | 617 | |
619 | 618 | return 0; |
620 | 619 | } |
r17967 | r17968 | |
---|---|---|
177 | 177 | * |
178 | 178 | *************************************/ |
179 | 179 | |
180 | ||
180 | ||
181 | 181 | { |
182 | atarig42_state *state = screen.machine().driver_data<atarig42_state>(); | |
183 | 182 | bitmap_ind8 &priority_bitmap = screen.machine().priority_bitmap; |
184 | 183 | |
185 | 184 | /* draw the playfield */ |
186 | 185 | 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); | |
195 | 194 | |
196 | 195 | /* copy the motion objects on top */ |
197 | 196 | { |
198 | bitmap_ind16 *mo_bitmap = atarirle_get_vram( | |
197 | bitmap_ind16 *mo_bitmap = atarirle_get_vram( | |
199 | 198 | int left = cliprect.min_x; |
200 | 199 | int top = cliprect.min_y; |
201 | 200 | int right = cliprect.max_x + 1; |
r17967 | r17968 | |
220 | 219 | } |
221 | 220 | |
222 | 221 | /* add the alpha on top */ |
223 | | |
222 | | |
224 | 223 | return 0; |
225 | 224 | } |
226 | 225 | |
227 | ||
226 | void | |
228 | 227 | { |
229 | 228 | // rising edge |
230 | if ( | |
229 | if (st | |
231 | 230 | { |
232 | atarig42_state *state = screen.machine().driver_data<atarig42_state>(); | |
233 | 231 | |
234 | atarirle_eof( | |
232 | atarirle_eof( | |
235 | 233 | } |
236 | 234 | } |
r17967 | r17968 | |
---|---|---|
510 | 510 | } |
511 | 511 | |
512 | 512 | |
513 | ||
513 | ||
514 | 514 | { |
515 | tceptor_state *state = screen.machine().driver_data<tceptor_state>(); | |
516 | 515 | rectangle rect; |
517 | 516 | int pri; |
518 | int bg_center = 144 - (((( | |
517 | int bg_center = 144 - (((( | |
519 | 518 | |
520 | 519 | // left background |
521 | 520 | rect = cliprect; |
522 | 521 | 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); | |
526 | 525 | |
527 | 526 | // right background |
528 | 527 | rect.min_x = bg_center; |
529 | 528 | 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); | |
533 | 532 | |
534 | 533 | for (pri = 0; pri < 8; pri++) |
535 | 534 | { |
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); | |
538 | 537 | draw_sprites(screen.machine(), bitmap, cliprect, pri); |
539 | 538 | } |
540 | 539 | |
541 | | |
540 | | |
542 | 541 | return 0; |
543 | 542 | } |
544 | 543 | |
545 | ||
544 | ||
546 | 545 | { |
547 | 546 | if ((screen.frame_number() & 1) == 1) |
548 | 547 | return UPDATE_HAS_NOT_CHANGED; |
549 | return SCREEN_UPDATE16_CALL( tceptor_2d ); | |
548 | return SCREEN_UPDATE16_CALL_MEMBER( tceptor_2d ); | |
550 | 549 | } |
551 | 550 | |
552 | ||
551 | ||
553 | 552 | { |
554 | 553 | if ((screen.frame_number() & 1) == 0) |
555 | 554 | return UPDATE_HAS_NOT_CHANGED; |
556 | return SCREEN_UPDATE16_CALL( tceptor_2d ); | |
555 | return SCREEN_UPDATE16_CALL_MEMBER( tceptor_2d ); | |
557 | 556 | } |
558 | 557 | |
559 | 558 | |
560 | ||
559 | void | |
561 | 560 | { |
562 | 561 | // rising edge |
563 | if ( | |
562 | if (st | |
564 | 563 | { |
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); | |
567 | 565 | } |
568 | 566 | } |
r17967 | r17968 | |
---|---|---|
216 | 216 | * |
217 | 217 | *************************************/ |
218 | 218 | |
219 | ||
219 | ||
220 | 220 | { |
221 | vindictr_state *state = screen.machine().driver_data<vindictr_state>(); | |
222 | 221 | atarimo_rect_list rectlist; |
223 | 222 | bitmap_ind16 *mobitmap; |
224 | 223 | int x, y, r; |
225 | 224 | |
226 | 225 | /* draw the playfield */ |
227 | | |
226 | | |
228 | 227 | |
229 | 228 | /* draw and merge the MO */ |
230 | 229 | mobitmap = atarimo_render(0, cliprect, &rectlist); |
r17967 | r17968 | |
265 | 264 | } |
266 | 265 | |
267 | 266 | /* add the alpha on top */ |
268 | | |
267 | | |
269 | 268 | |
270 | 269 | /* now go back and process the upper bit of MO priority */ |
271 | 270 | rectlist.rect -= rectlist.numrects; |
r17967 | r17968 | |
---|---|---|
201 | 201 | } |
202 | 202 | |
203 | 203 | |
204 | ||
204 | ||
205 | 205 | { |
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]); | |
209 | 208 | |
210 | | |
209 | | |
211 | 210 | 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 ); | |
214 | 213 | return 0; |
215 | 214 | } |
r17967 | r17968 | |
---|---|---|
106 | 106 | 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); |
107 | 107 | } |
108 | 108 | |
109 | ||
109 | ||
110 | 110 | { |
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); | |
113 | 112 | return 0; |
114 | 113 | } |
r17967 | r17968 | |
---|---|---|
151 | 151 | m_mid_tilemap->set_transparent_pen(0); |
152 | 152 | } |
153 | 153 | |
154 | ||
154 | ||
155 | 155 | { |
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]); | |
163 | 162 | |
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); | |
166 | 165 | |
167 | 166 | draw_sprites(screen.machine(), bitmap, cliprect, 16); |
168 | 167 | |
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); | |
172 | 171 | return 0; |
173 | 172 | } |
r17967 | r17968 | |
---|---|---|
714 | 714 | |
715 | 715 | |
716 | 716 | |
717 | ||
717 | ||
718 | 718 | { |
719 | metro_state *state = screen.machine().driver_data<metro_state>(); | |
720 | 719 | int pri, layers_ctrl = -1; |
721 | UINT16 screenctrl = * | |
720 | UINT16 screenctrl = * | |
722 | 721 | |
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; | |
725 | 724 | |
726 | 725 | /* The background color is selected by a register */ |
727 | 726 | screen.machine().priority_bitmap.fill(0, cliprect); |
728 | bitmap.fill(( | |
727 | bitmap.fill(( | |
729 | 728 | |
730 | 729 | /* Screen Control Register: |
731 | 730 | |
r17967 | r17968 | |
741 | 740 | if (screenctrl & 2) |
742 | 741 | return 0; |
743 | 742 | |
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; | |
746 | 745 | |
747 | 746 | /* If the game supports 16x16 tiles, make sure that the |
748 | 747 | 16x16 and 8x8 tilemaps of a given layer are not simultaneously |
749 | 748 | enabled! */ |
750 | if ( | |
749 | if ( | |
751 | 750 | { |
752 | 751 | int layer; |
753 | 752 | |
r17967 | r17968 | |
755 | 754 | { |
756 | 755 | int big = screenctrl & (0x0020 << layer); |
757 | 756 | |
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; | |
760 | 759 | } |
761 | 760 | } |
762 | 761 | |
r17967 | r17968 | |
776 | 775 | } |
777 | 776 | |
778 | 777 | 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); | |
782 | 781 | } |
783 | 782 | #endif |
784 | 783 | |
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); | |
787 | 786 | |
788 | 787 | for (pri = 3; pri >= 0; pri--) |
789 | 788 | draw_layers(screen.machine(), bitmap, cliprect, pri, layers_ctrl); |
r17967 | r17968 | |
---|---|---|
258 | 258 | |
259 | 259 | /* enable bits are uncertain */ |
260 | 260 | |
261 | ||
261 | ||
262 | 262 | { |
263 | angelkds_state *state = screen.machine().driver_data<angelkds_state>(); | |
264 | 263 | const rectangle &visarea = screen.visible_area(); |
265 | 264 | rectangle clip; |
266 | 265 | |
r17967 | r17968 | |
269 | 268 | /* draw top of screen */ |
270 | 269 | clip.set(8*0, 8*16-1, visarea.min_y, visarea.max_y); |
271 | 270 | |
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); | |
274 | 273 | |
275 | 274 | draw_sprites(screen.machine(), bitmap, clip, 0x80); |
276 | 275 | |
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); | |
279 | 278 | |
280 | 279 | /* draw bottom of screen */ |
281 | 280 | clip.set(8*16, 8*32-1, visarea.min_y, visarea.max_y); |
282 | 281 | |
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); | |
285 | 284 | |
286 | 285 | draw_sprites(screen.machine(), bitmap, clip, 0x40); |
287 | 286 | |
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); | |
290 | 289 | |
291 | 290 | return 0; |
292 | 291 | } |
r17967 | r17968 | |
---|---|---|
195 | 195 | } |
196 | 196 | } |
197 | 197 | |
198 | ||
198 | ||
199 | 199 | { |
200 | circusc_state *state = screen.machine().driver_data<circusc_state>(); | |
201 | 200 | int i; |
202 | 201 | |
203 | 202 | for (i = 0; i < 10; i++) |
204 | | |
203 | | |
205 | 204 | for (i = 10; i < 32; i++) |
206 | | |
205 | | |
207 | 206 | |
208 | 207 | bitmap.fill(0, cliprect); |
209 | | |
208 | | |
210 | 209 | draw_sprites(screen.machine(), bitmap, cliprect); |
211 | | |
210 | | |
212 | 211 | return 0; |
213 | 212 | } |
r17967 | r17968 | |
---|---|---|
171 | 171 | } |
172 | 172 | } |
173 | 173 | |
174 | ||
174 | ||
175 | 175 | { |
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); | |
178 | 177 | draw_sprites(screen.machine(), bitmap, cliprect); |
179 | | |
178 | | |
180 | 179 | return 0; |
181 | 180 | } |
r17967 | r17968 | |
---|---|---|
515 | 515 | * |
516 | 516 | *************************************/ |
517 | 517 | |
518 | ||
518 | ||
519 | 519 | { |
520 | midvunit_state *state = screen.machine().driver_data<midvunit_state>(); | |
521 | 520 | int x, y, width, xoffs; |
522 | 521 | UINT32 offset; |
523 | 522 | |
524 | | |
523 | | |
525 | 524 | |
526 | 525 | /* if the video didn't change, indicate as much */ |
527 | if (! | |
526 | if (! | |
528 | 527 | return UPDATE_HAS_NOT_CHANGED; |
529 | | |
528 | | |
530 | 529 | |
531 | 530 | /* determine the base of the videoram */ |
532 | 531 | #if WATCH_RENDER |
533 | offset = ( | |
532 | offset = ( | |
534 | 533 | #else |
535 | offset = ( | |
534 | offset = ( | |
536 | 535 | #endif |
537 | 536 | |
538 | 537 | /* determine how many pixels to copy */ |
r17967 | r17968 | |
548 | 547 | { |
549 | 548 | UINT16 *dest = &bitmap.pix16(y, cliprect.min_x); |
550 | 549 | for (x = 0; x < width; x++) |
551 | *dest++ = | |
550 | *dest++ = | |
552 | 551 | offset += 512; |
553 | 552 | } |
554 | 553 | return 0; |
r17967 | r17968 | |
---|---|---|
61 | 61 | } |
62 | 62 | |
63 | 63 | |
64 | ||
64 | ||
65 | 65 | { |
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); | |
68 | 67 | return 0; |
69 | 68 | } |
r17967 | r17968 | |
---|---|---|
35 | 35 | |
36 | 36 | /***************************************************************************/ |
37 | 37 | |
38 | ||
38 | ||
39 | 39 | { |
40 | opwolf_state *state = screen.machine().driver_data<opwolf_state>(); | |
41 | 40 | int layer[2]; |
42 | 41 | |
43 | pc080sn_tilemap_update( | |
42 | pc080sn_tilemap_update( | |
44 | 43 | |
45 | 44 | layer[0] = 0; |
46 | 45 | layer[1] = 1; |
47 | 46 | |
48 | 47 | screen.machine().priority_bitmap.fill(0, cliprect); |
49 | 48 | |
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); | |
52 | 51 | |
53 | pc090oj_draw_sprites( | |
52 | pc090oj_draw_sprites( | |
54 | 53 | |
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()); | |
57 | 56 | |
58 | 57 | return 0; |
59 | 58 | } |
r17967 | r17968 | |
---|---|---|
46 | 46 | |
47 | 47 | ***************************************************************************/ |
48 | 48 | |
49 | ||
49 | ||
50 | 50 | { |
51 | surpratk_state *state = screen.machine().driver_data<surpratk_state>(); | |
52 | 51 | int layer[3], bg_colorbase; |
53 | 52 | |
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); | |
59 | 58 | |
60 | k052109_tilemap_update( | |
59 | k052109_tilemap_update( | |
61 | 60 | |
62 | 61 | layer[0] = 0; |
63 | | |
62 | | |
64 | 63 | layer[1] = 1; |
65 | | |
64 | | |
66 | 65 | layer[2] = 2; |
67 | | |
66 | | |
68 | 67 | |
69 | konami_sortlayers3(layer, | |
68 | konami_sortlayers3(layer, | |
70 | 69 | |
71 | 70 | screen.machine().priority_bitmap.fill(0, cliprect); |
72 | 71 | 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); | |
76 | 75 | |
77 | k053245_sprites_draw( | |
76 | k053245_sprites_draw( | |
78 | 77 | return 0; |
79 | 78 | } |
r17967 | r17968 | |
---|---|---|
241 | 241 | } |
242 | 242 | } |
243 | 243 | |
244 | ||
244 | ||
245 | 245 | { |
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); | |
248 | 247 | |
249 | 248 | // 3 layers of sprites, each with their own palette and priorities |
250 | 249 | // 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); | |
254 | 253 | |
255 | 254 | return 0; |
256 | 255 | } |
r17967 | r17968 | |
---|---|---|
217 | 217 | |
218 | 218 | ***************************************************************************/ |
219 | 219 | |
220 | ||
220 | ||
221 | 221 | { |
222 | suna16_state *state = screen.machine().driver_data<suna16_state>(); | |
223 | 222 | |
224 | 223 | /* Suna Quiz indicates the background is the last pen */ |
225 | 224 | bitmap.fill(0xff, cliprect); |
226 | draw_sprites(screen.machine(), bitmap, cliprect, | |
225 | draw_sprites(screen.machine(), bitmap, cliprect, | |
227 | 226 | return 0; |
228 | 227 | } |
229 | 228 | |
230 | ||
229 | ||
231 | 230 | { |
232 | suna16_state *state = screen.machine().driver_data<suna16_state>(); | |
233 | 231 | int layers_ctrl = -1; |
234 | 232 | |
235 | 233 | #ifdef MAME_DEBUG |
r17967 | r17968 | |
243 | 241 | |
244 | 242 | /* Suna Quiz indicates the background is the last pen */ |
245 | 243 | 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); | |
248 | 246 | return 0; |
249 | 247 | } |
r17967 | r17968 | |
---|---|---|
122 | 122 | * * |
123 | 123 | *************************************/ |
124 | 124 | |
125 | ||
125 | ||
126 | 126 | { |
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); | |
130 | 129 | 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); | |
133 | 132 | return 0; |
134 | 133 | } |
r17967 | r17968 | |
---|---|---|
151 | 151 | } |
152 | 152 | } |
153 | 153 | |
154 | ||
154 | ||
155 | 155 | { |
156 | shadfrce_state *state = screen.machine().driver_data<shadfrce_state>(); | |
157 | 156 | screen.machine().priority_bitmap.fill(0, cliprect); |
158 | 157 | |
159 | if ( | |
158 | if ( | |
160 | 159 | { |
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); | |
163 | 162 | draw_sprites(screen.machine(), bitmap,cliprect); |
164 | | |
163 | | |
165 | 164 | } |
166 | 165 | else |
167 | 166 | { |
r17967 | r17968 | |
171 | 170 | return 0; |
172 | 171 | } |
173 | 172 | |
174 | ||
173 | void | |
175 | 174 | { |
176 | 175 | // rising edge |
177 | if ( | |
176 | if (st | |
178 | 177 | { |
179 | shadfrce_state *state = screen.machine().driver_data<shadfrce_state>(); | |
180 | 178 | |
181 | 179 | /* looks like sprites are *two* frames ahead */ |
182 | memcpy( | |
180 | memcpy( | |
183 | 181 | } |
184 | 182 | } |
r17967 | r17968 | |
---|---|---|
186 | 186 | } |
187 | 187 | } |
188 | 188 | |
189 | ||
189 | ||
190 | 190 | { |
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); | |
193 | 192 | draw_sprites(screen.machine(), bitmap, cliprect); |
194 | 193 | return 0; |
195 | 194 | } |
r17967 | r17968 | |
---|---|---|
35 | 35 | m_vram = auto_alloc_array(machine(), UINT32, 0x40000*2/4); |
36 | 36 | } |
37 | 37 | |
38 | ||
38 | ||
39 | 39 | { |
40 | eolith_state *state = screen.machine().driver_data<eolith_state>(); | |
41 | 40 | int y; |
42 | 41 | |
43 | 42 | for (y = 0; y < 240; y++) |
44 | 43 | { |
45 | 44 | int x; |
46 | UINT32 *src = & | |
45 | UINT32 *src = & | |
47 | 46 | UINT16 *dest = &bitmap.pix16(y); |
48 | 47 | |
49 | 48 | for (x = 0; x < 320; x += 2) |
r17967 | r17968 | |
---|---|---|
142 | 142 | } |
143 | 143 | } |
144 | 144 | |
145 | ||
145 | ||
146 | 146 | { |
147 | bagman_state *state = screen.machine().driver_data<bagman_state>(); | |
148 | 147 | bitmap.fill(0, cliprect); |
149 | if (* | |
148 | if (* | |
150 | 149 | return 0; |
151 | 150 | |
152 | | |
151 | | |
153 | 152 | draw_sprites(screen.machine(), bitmap, cliprect); |
154 | 153 | return 0; |
155 | 154 | } |
r17967 | r17968 | |
---|---|---|
85 | 85 | } |
86 | 86 | } |
87 | 87 | |
88 | ||
88 | ||
89 | 89 | { |
90 | bigevglf_state *state = screen.machine().driver_data<bigevglf_state>(); | |
91 | 90 | |
92 | copybitmap(bitmap, | |
91 | copybitmap(bitmap, | |
93 | 92 | draw_sprites(screen.machine(), bitmap, cliprect); |
94 | 93 | return 0; |
95 | 94 | } |
r17967 | r17968 | |
---|---|---|
225 | 225 | |
226 | 226 | ******************************************************************************/ |
227 | 227 | |
228 | ||
228 | ||
229 | 229 | { |
230 | inufuku_state *state = screen.machine().driver_data<inufuku_state>(); | |
231 | 230 | int i; |
232 | 231 | |
233 | 232 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
234 | 233 | screen.machine().priority_bitmap.fill(0); |
235 | 234 | |
236 | if ( | |
235 | if ( | |
237 | 236 | { |
238 | | |
237 | | |
239 | 238 | for (i = 0; i < 256; i++) |
240 | | |
239 | | |
241 | 240 | } |
242 | 241 | else |
243 | 242 | { |
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); | |
246 | 245 | } |
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); | |
249 | 248 | |
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); | |
253 | 252 | |
254 | 253 | draw_sprites(screen.machine(), bitmap, cliprect); |
255 | 254 | return 0; |
r17967 | r17968 | |
---|---|---|
126 | 126 | } |
127 | 127 | } |
128 | 128 | |
129 | ||
129 | ||
130 | 130 | { |
131 | commando_state *state = screen.machine().driver_data<commando_state>(); | |
132 | 131 | |
133 | | |
132 | | |
134 | 133 | draw_sprites(screen.machine(), bitmap, cliprect); |
135 | | |
134 | | |
136 | 135 | return 0; |
137 | 136 | } |
r17967 | r17968 | |
---|---|---|
316 | 316 | * |
317 | 317 | *************************************/ |
318 | 318 | |
319 | ||
319 | ||
320 | 320 | { |
321 | atarisy2_state *state = screen.machine().driver_data<atarisy2_state>(); | |
322 | 321 | bitmap_ind8 &priority_bitmap = screen.machine().priority_bitmap; |
323 | 322 | atarimo_rect_list rectlist; |
324 | 323 | bitmap_ind16 *mobitmap; |
r17967 | r17968 | |
326 | 325 | |
327 | 326 | /* draw the playfield */ |
328 | 327 | 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); | |
333 | 332 | |
334 | 333 | /* draw and merge the MO */ |
335 | 334 | mobitmap = atarimo_render(0, cliprect, &rectlist); |
r17967 | r17968 | |
362 | 361 | } |
363 | 362 | |
364 | 363 | /* add the alpha on top */ |
365 | | |
364 | | |
366 | 365 | return 0; |
367 | 366 | } |
r17967 | r17968 | |
---|---|---|
188 | 188 | |
189 | 189 | ***************************************************************************/ |
190 | 190 | |
191 | ||
191 | ||
192 | 192 | { |
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; | |
195 | 194 | |
196 | 195 | #ifdef MAME_DEBUG |
197 | 196 | if (screen.machine().input().code_pressed(KEYCODE_Z)) |
r17967 | r17968 | |
204 | 203 | #endif |
205 | 204 | |
206 | 205 | if (layers_ctrl & 1) |
207 | | |
206 | | |
208 | 207 | else |
209 | 208 | bitmap.fill(0, cliprect); |
210 | 209 | |
211 | 210 | if (layers_ctrl & 2) |
212 | | |
211 | | |
213 | 212 | |
214 | 213 | return 0; |
215 | 214 | } |
r17967 | r17968 | |
---|---|---|
200 | 200 | } |
201 | 201 | |
202 | 202 | |
203 | ||
203 | ||
204 | 204 | { |
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); | |
207 | 206 | |
208 | 207 | draw_sprites(screen.machine(), bitmap, cliprect); |
209 | 208 | return 0; |
r17967 | r17968 | |
---|---|---|
457 | 457 | ////// The glitch is correct behavior. |
458 | 458 | |
459 | 459 | |
460 | ||
460 | ||
461 | 461 | { |
462 | ninjakd2_state *state = screen.machine().driver_data<ninjakd2_state>(); | |
463 | 462 | // updating sprites here instead than in screen_eof avoids a palette glitch |
464 | 463 | // at the end of the "rainbow sky" screens. |
465 | 464 | update_sprites(screen.machine()); |
466 | | |
465 | | |
467 | 466 | |
468 | 467 | bitmap.fill(0, cliprect); |
469 | 468 | |
470 | | |
469 | | |
471 | 470 | |
472 | copybitmap_trans(bitmap, | |
471 | copybitmap_trans(bitmap, | |
473 | 472 | |
474 | | |
473 | | |
475 | 474 | |
476 | 475 | return 0; |
477 | 476 | } |
478 | 477 | |
479 | ||
478 | ||
480 | 479 | { |
481 | ninjakd2_state *state = screen.machine().driver_data<ninjakd2_state>(); | |
482 | 480 | update_sprites(screen.machine()); |
483 | | |
481 | | |
484 | 482 | |
485 | 483 | bitmap.fill(0, cliprect); |
486 | 484 | |
487 | | |
485 | | |
488 | 486 | |
489 | | |
487 | | |
490 | 488 | |
491 | copybitmap_trans(bitmap, | |
489 | copybitmap_trans(bitmap, | |
492 | 490 | |
493 | | |
491 | | |
494 | 492 | |
495 | | |
493 | | |
496 | 494 | |
497 | 495 | return 0; |
498 | 496 | } |
499 | 497 | |
500 | ||
498 | ||
501 | 499 | { |
502 | ninjakd2_state *state = screen.machine().driver_data<ninjakd2_state>(); | |
503 | 500 | update_sprites(screen.machine()); |
504 | | |
501 | | |
505 | 502 | |
506 | 503 | bitmap.fill(0, cliprect); |
507 | 504 | |
508 | | |
505 | | |
509 | 506 | |
510 | | |
507 | | |
511 | 508 | |
512 | | |
509 | | |
513 | 510 | |
514 | copybitmap_trans(bitmap, | |
511 | copybitmap_trans(bitmap, | |
515 | 512 | |
516 | | |
513 | | |
517 | 514 | |
518 | 515 | return 0; |
519 | 516 | } |
520 | 517 | |
521 | 518 | |
522 | ||
519 | void | |
523 | 520 | { |
524 | 521 | // rising edge |
525 | if ( | |
522 | if (st | |
526 | 523 | { |
527 | ninjakd2_state *state = screen.machine().driver_data<ninjakd2_state>(); | |
528 | if (!state->m_sprites_updated) | |
524 | if (!m_sprites_updated) | |
529 | 525 | update_sprites(screen.machine()); |
530 | 526 | |
531 | | |
527 | | |
532 | 528 | } |
533 | 529 | } |
r17967 | r17968 | |
---|---|---|
351 | 351 | * |
352 | 352 | *************************************/ |
353 | 353 | |
354 | ||
354 | ||
355 | 355 | { |
356 | m52_state *state = screen.machine().driver_data<m52_state>(); | |
357 | 356 | int offs; |
358 | 357 | |
359 | 358 | bitmap.fill(0, cliprect); |
360 | 359 | |
361 | if (!( | |
360 | if (!( | |
362 | 361 | { |
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 */ | |
365 | 364 | |
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 */ | |
368 | 367 | |
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 */ | |
371 | 370 | } |
372 | 371 | |
373 | | |
372 | | |
374 | 373 | |
375 | | |
374 | | |
376 | 375 | |
377 | 376 | /* draw the sprites */ |
378 | 377 | for (offs = 0xfc; offs >= 0; offs -= 4) |
379 | 378 | { |
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]; | |
386 | 385 | rectangle clip; |
387 | 386 | |
388 | 387 | /* sprites from offsets $00-$7F are processed in the upper half of the frame */ |
r17967 | r17968 | |
394 | 393 | clip.min_y = 128, clip.max_y = 255; |
395 | 394 | |
396 | 395 | /* adjust for flipping */ |
397 | if ( | |
396 | if ( | |
398 | 397 | { |
399 | 398 | int temp = clip.min_y; |
400 | 399 | clip.min_y = 255 - clip.max_y; |
r17967 | r17968 | |
---|---|---|
235 | 235 | } |
236 | 236 | } |
237 | 237 | |
238 | ||
238 | ||
239 | 239 | { |
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); | |
242 | 241 | |
243 | draw_ball(screen.machine(), bitmap, cliprect, | |
242 | draw_ball(screen.machine(), bitmap, cliprect, | |
244 | 243 | return 0; |
245 | 244 | } |
r17967 | r17968 | |
---|---|---|
394 | 394 | * |
395 | 395 | *************************************/ |
396 | 396 | |
397 | ||
397 | ||
398 | 398 | { |
399 | 399 | draw_objects(screen.machine(), bitmap, cliprect); |
400 | 400 | draw_starfield(screen, bitmap, cliprect); |
r17967 | r17968 | |
---|---|---|
48 | 48 | machine().device<decospr_device>("spritegen")->alloc_sprite_bitmap(); |
49 | 49 | } |
50 | 50 | |
51 | ||
51 | ||
52 | 52 | { |
53 | cbuster_state *state = screen.machine().driver_data<cbuster_state>(); | |
54 | 53 | address_space &space = screen.machine().driver_data()->generic_space(); |
55 | UINT16 flip = deco16ic_pf_control_r( | |
54 | UINT16 flip = deco16ic_pf_control_r( | |
56 | 55 | |
57 | | |
56 | | |
58 | 57 | |
59 | screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, | |
58 | screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, | |
60 | 59 | |
61 | 60 | |
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); | |
64 | 63 | |
65 | 64 | /* Draw playfields & sprites */ |
66 | deco16ic_tilemap_2_draw( | |
65 | deco16ic_tilemap_2_draw( | |
67 | 66 | screen.machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0800, 0x0900, 0x100, 0x0ff); |
68 | 67 | screen.machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0900, 0x0900, 0x500, 0x0ff); |
69 | 68 | |
70 | if ( | |
69 | if ( | |
71 | 70 | { |
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); | |
74 | 73 | } |
75 | 74 | else |
76 | 75 | { |
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); | |
79 | 78 | } |
80 | 79 | |
81 | 80 | screen.machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0900, 0x100, 0x0ff); |
82 | 81 | screen.machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0100, 0x0900, 0x500, 0x0ff); |
83 | deco16ic_tilemap_1_draw( | |
82 | deco16ic_tilemap_1_draw( | |
84 | 83 | return 0; |
85 | 84 | } |
r17967 | r17968 | |
---|---|---|
133 | 133 | } |
134 | 134 | } |
135 | 135 | |
136 | ||
136 | ||
137 | 137 | { |
138 | gng_state *state = screen.machine().driver_data<gng_state>(); | |
139 | 138 | |
140 | | |
139 | | |
141 | 140 | 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); | |
144 | 143 | return 0; |
145 | 144 | } |
r17967 | r17968 | |
---|---|---|
291 | 291 | |
292 | 292 | ******************************************************************************/ |
293 | 293 | |
294 | ||
294 | ||
295 | 295 | { |
296 | ojankohs_state *state = screen.machine().driver_data<ojankohs_state>(); | |
297 | 296 | |
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); | |
300 | 299 | |
301 | | |
300 | | |
302 | 301 | return 0; |
303 | 302 | } |
304 | 303 | |
305 | ||
304 | ||
306 | 305 | { |
307 | ojankohs_state *state = screen.machine().driver_data<ojankohs_state>(); | |
308 | 306 | int offs; |
309 | 307 | |
310 | if ( | |
308 | if ( | |
311 | 309 | { |
312 | 310 | address_space &space = *screen.machine().device("maincpu")->memory().space(AS_PROGRAM); |
313 | 311 | |
314 | 312 | /* redraw bitmap */ |
315 | 313 | for (offs = 0; offs < 0x8000; offs++) |
316 | 314 | { |
317 | | |
315 | | |
318 | 316 | } |
319 | | |
317 | | |
320 | 318 | } |
321 | 319 | |
322 | copybitmap(bitmap, | |
320 | copybitmap(bitmap, | |
323 | 321 | return 0; |
324 | 322 | } |
r17967 | r17968 | |
---|---|---|
135 | 135 | } |
136 | 136 | |
137 | 137 | |
138 | ||
138 | ||
139 | 139 | { |
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; | |
142 | 141 | |
143 | 142 | int x; |
144 | 143 | int y; |
145 | 144 | |
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(); | |
148 | 147 | |
149 | 148 | for (y = 0; y < 256; y++) |
150 | 149 | { |
r17967 | r17968 | |
156 | 155 | |
157 | 156 | UINT8 color = 0; |
158 | 157 | |
159 | if ( | |
158 | if ( | |
160 | 159 | color = 1; |
161 | 160 | else |
162 | 161 | { |
r17967 | r17968 | |
164 | 163 | |
165 | 164 | if ((x >> 3) == 0x06) |
166 | 165 | { |
167 | color = | |
166 | color = | |
168 | 167 | } |
169 | 168 | |
170 | 169 | if ((x >> 3) == 0x1b) |
r17967 | r17968 | |
205 | 204 | } |
206 | 205 | |
207 | 206 | |
208 | ||
207 | ||
209 | 208 | { |
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; | |
212 | 210 | |
213 | const UINT8* pPROM = | |
211 | const UINT8* pPROM = | |
214 | 212 | |
215 | 213 | int x; |
216 | 214 | int y; |
217 | 215 | |
218 | const UINT8* pRAM = | |
216 | const UINT8* pRAM = | |
219 | 217 | |
220 | 218 | for (y = 0; y < 256; y++) |
221 | 219 | { |
r17967 | r17968 | |
227 | 225 | |
228 | 226 | UINT8 color = pPROM[32 * (y >> 3) + (x >> 3)]; |
229 | 227 | |
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; | |
232 | 230 | |
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; | |
235 | 233 | |
236 | if ( | |
234 | if ( | |
237 | 235 | color = 7; |
238 | 236 | |
239 | 237 | for (n = 0; n < 8; n++) |
r17967 | r17968 | |
248 | 246 | } |
249 | 247 | |
250 | 248 | |
251 | ||
249 | ||
252 | 250 | { |
253 | n8080_state *state = screen.machine().driver_data<n8080_state>(); | |
254 | 251 | int SUN_BRIGHTNESS = screen.machine().root_device().ioport("POT0")->read(); |
255 | 252 | int SEA_BRIGHTNESS = screen.machine().root_device().ioport("POT1")->read(); |
256 | 253 | |
257 | 254 | static const int wave[8] = { 0, 1, 2, 2, 2, 1, 0, 0 }; |
258 | 255 | |
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; | |
261 | 258 | |
262 | 259 | int x; |
263 | 260 | int y; |
r17967 | r17968 | |
266 | 263 | { |
267 | 264 | UINT16* pLine = &bitmap.pix16(y); |
268 | 265 | |
269 | int level = 120 + wave[ | |
266 | int level = 120 + wave[ | |
270 | 267 | |
271 | 268 | /* draw sky */ |
272 | 269 | |
r17967 | r17968 | |
277 | 274 | |
278 | 275 | /* draw stars */ |
279 | 276 | |
280 | if ( | |
277 | if ( | |
281 | 278 | { |
282 | int step = (320 * ( | |
279 | int step = (320 * ( | |
283 | 280 | |
284 | 281 | 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); | |
289 | 286 | |
290 | 287 | pLine[0x80 + data] |= 0x100; |
291 | 288 | } |
292 | 289 | |
293 | if ( | |
290 | if ( | |
294 | 291 | { |
295 | int step = (320 * ( | |
292 | int step = (320 * ( | |
296 | 293 | |
297 | 294 | 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); | |
302 | 299 | |
303 | 300 | pLine[0x00 + data] |= 0x100; |
304 | 301 | } |
r17967 | r17968 | |
320 | 317 | |
321 | 318 | for (n = 0; n < 8; n++) |
322 | 319 | { |
323 | if ( | |
320 | if ( | |
324 | 321 | { |
325 | if (( | |
322 | if (( | |
326 | 323 | { |
327 | pLine[x + n] = | |
324 | pLine[x + n] = | |
328 | 325 | } |
329 | 326 | } |
330 | 327 | else |
331 | 328 | { |
332 | if (( | |
329 | if (( | |
333 | 330 | { |
334 | pLine[x + n] = | |
331 | pLine[x + n] = | |
335 | 332 | } |
336 | 333 | } |
337 | 334 | } |
r17967 | r17968 | |
342 | 339 | helifire_next_line(screen.machine()); |
343 | 340 | } |
344 | 341 | |
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; | |
347 | 344 | return 0; |
348 | 345 | } |
349 | 346 | |
350 | 347 | |
351 | ||
348 | void | |
352 | 349 | { |
353 | 350 | // falling edge |
354 | if (! | |
351 | if (!st | |
355 | 352 | { |
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; | |
358 | 354 | |
359 | 355 | int i; |
360 | 356 | |
r17967 | r17968 | |
364 | 360 | int G = (i & 2); |
365 | 361 | int B = (i & 4); |
366 | 362 | |
367 | if ( | |
363 | if ( | |
368 | 364 | { |
369 | if ( | |
365 | if ( | |
370 | 366 | { |
371 | 367 | G |= B; |
372 | 368 | } |
r17967 | r17968 | |
---|---|---|
507 | 507 | |
508 | 508 | |
509 | 509 | ******************************************************************************/ |
510 | ||
510 | ||
511 | 511 | { |
512 | nbmj8891_state *state = screen.machine().driver_data<nbmj8891_state>(); | |
513 | 512 | int x, y; |
514 | 513 | |
515 | if ( | |
514 | if ( | |
516 | 515 | { |
517 | 516 | int width = screen.width(); |
518 | 517 | int height = screen.height(); |
519 | 518 | |
520 | | |
519 | | |
521 | 520 | for (y = 0; y < height; y++) |
522 | 521 | for (x = 0; x < width; x++) |
523 | 522 | update_pixel0(screen.machine(), x, y); |
524 | 523 | |
525 | if ( | |
524 | if ( | |
526 | 525 | for (y = 0; y < height; y++) |
527 | 526 | for (x = 0; x < width; x++) |
528 | 527 | update_pixel1(screen.machine(), x, y); |
529 | 528 | } |
530 | 529 | |
531 | if ( | |
530 | if ( | |
532 | 531 | { |
533 | 532 | 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; | |
536 | 535 | |
537 | if ( | |
536 | if ( | |
538 | 537 | { |
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); | |
541 | 540 | } |
542 | 541 | else |
543 | copyscrollbitmap(bitmap, | |
542 | copyscrollbitmap(bitmap, | |
544 | 543 | } |
545 | 544 | else |
546 | 545 | bitmap.fill(0xff); |
r17967 | r17968 | |
---|---|---|
125 | 125 | } |
126 | 126 | } |
127 | 127 | |
128 | ||
128 | ||
129 | 129 | { |
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)); | |
135 | 134 | |
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); | |
138 | 137 | draw_sprites(screen.machine(), bitmap,cliprect, 1 ); |
139 | | |
138 | | |
140 | 139 | draw_sprites(screen.machine(), bitmap,cliprect, 0 ); |
141 | 140 | return 0; |
142 | 141 | } |
r17967 | r17968 | |
---|---|---|
234 | 234 | } |
235 | 235 | } |
236 | 236 | |
237 | ||
237 | ||
238 | 238 | { |
239 | kncljoe_state *state = screen.machine().driver_data<kncljoe_state>(); | |
240 | 239 | |
241 | | |
240 | | |
242 | 241 | draw_sprites(screen.machine(), bitmap, cliprect); |
243 | 242 | return 0; |
244 | 243 | } |
r17967 | r17968 | |
---|---|---|
180 | 180 | } |
181 | 181 | } |
182 | 182 | |
183 | ||
183 | ||
184 | 184 | { |
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); | |
188 | 187 | holeland_draw_sprites(screen.machine(), bitmap, cliprect); |
189 | | |
188 | | |
190 | 189 | return 0; |
191 | 190 | } |
192 | 191 | |
193 | ||
192 | ||
194 | 193 | { |
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); | |
197 | 195 | crzrally_draw_sprites(screen.machine(), bitmap, cliprect); |
198 | 196 | return 0; |
199 | 197 | } |
r17967 | r17968 | |
---|---|---|
204 | 204 | #undef DRAW_SPRITE |
205 | 205 | |
206 | 206 | |
207 | ||
207 | ||
208 | 208 | { |
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); | |
212 | 211 | draw_sprites(screen.machine(), bitmap,cliprect); |
213 | 212 | return 0; |
214 | 213 | } |
r17967 | r17968 | |
---|---|---|
499 | 499 | |
500 | 500 | /***************************************************************************/ |
501 | 501 | |
502 | ||
502 | ||
503 | 503 | { |
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]); | |
507 | 506 | |
508 | if ( | |
507 | if ( | |
509 | 508 | bitmap.fill(32, cliprect); |
510 | 509 | else |
511 | | |
510 | | |
512 | 511 | |
513 | | |
512 | | |
514 | 513 | prosoccr_draw_sprites(screen.machine(), bitmap, cliprect); |
515 | 514 | |
516 | 515 | return 0; |
517 | 516 | } |
518 | 517 | |
519 | ||
518 | ||
520 | 519 | { |
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; | |
524 | 522 | int mx, my, tile, offs, gfx_region; |
525 | 523 | int scrollx, scrolly; |
526 | 524 | |
r17967 | r17968 | |
528 | 526 | |
529 | 527 | offs = 0; |
530 | 528 | /* 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]); | |
533 | 531 | |
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); | |
536 | 534 | |
537 | | |
535 | | |
538 | 536 | |
539 | 537 | // 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] |
540 | 538 | // ,deco16_io_ram[4],deco16_io_ram[5],deco16_io_ram[6],deco16_io_ram[7]); |
r17967 | r17968 | |
543 | 541 | { |
544 | 542 | tile = videoram[offs] + ((colorram[offs] & 0x3) << 8); |
545 | 543 | |
546 | if( | |
544 | if( | |
547 | 545 | gfx_region = 3; |
548 | 546 | else |
549 | gfx_region = (( | |
547 | gfx_region = (( | |
550 | 548 | |
551 | 549 | my = (offs) % 32; |
552 | 550 | mx = (offs) / 32; |
r17967 | r17968 | |
560 | 558 | return 0; |
561 | 559 | } |
562 | 560 | |
563 | ||
561 | ||
564 | 562 | { |
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]); | |
568 | 565 | |
569 | if ( | |
566 | if ( | |
570 | 567 | bitmap.fill(32, cliprect); |
571 | 568 | else |
572 | | |
569 | | |
573 | 570 | |
574 | 571 | 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); | |
577 | 574 | |
578 | 575 | boomrang_draw_sprites(screen.machine(), bitmap, cliprect, 0); |
579 | | |
576 | | |
580 | 577 | return 0; |
581 | 578 | } |
582 | 579 | |
583 | ||
580 | ||
584 | 581 | { |
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]); | |
588 | 584 | |
589 | if ( | |
585 | if ( | |
590 | 586 | bitmap.fill(32, cliprect); |
591 | 587 | else |
592 | | |
588 | | |
593 | 589 | |
594 | 590 | liberate_draw_sprites(screen.machine(), bitmap, cliprect); |
595 | | |
591 | | |
596 | 592 | return 0; |
597 | 593 | } |
r17967 | r17968 | |
---|---|---|
169 | 169 | } |
170 | 170 | } |
171 | 171 | |
172 | ||
172 | ||
173 | 173 | { |
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]); | |
177 | 176 | |
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); | |
180 | 179 | else |
181 | 180 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
182 | 181 | |
183 | if ( | |
182 | if ( | |
184 | 183 | draw_sprites(screen.machine(), bitmap, cliprect); |
185 | 184 | |
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); | |
188 | 187 | |
189 | 188 | return 0; |
190 | 189 | } |
r17967 | r17968 | |
---|---|---|
397 | 397 | * |
398 | 398 | *************************************/ |
399 | 399 | |
400 | ||
400 | ||
401 | 401 | { |
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(); | |
404 | 403 | const UINT8 *road_gfxdata = screen.machine().root_device().memregion("gfx3")->base(); |
405 | const UINT8 *prom_base = | |
404 | const UINT8 *prom_base = | |
406 | 405 | const UINT8 *pr1114 = prom_base + 0x000; |
407 | 406 | const UINT8 *pr1115 = prom_base + 0x020; |
408 | 407 | const UINT8 *pr1116 = prom_base + 0x040; |
r17967 | r17968 | |
422 | 421 | sprite_info sprinfo; |
423 | 422 | |
424 | 423 | /* compute the Y sum between opa and the current scanline (p. 141) */ |
425 | int va = (y + | |
424 | int va = (y + | |
426 | 425 | |
427 | 426 | /* the upper bit of OPC inverts the road (p. 141) */ |
428 | if (!( | |
427 | if (!( | |
429 | 428 | va ^= 0xff; |
430 | 429 | |
431 | 430 | /* compute the sprite information; we use y-1 since this info was computed during HBLANK */ |
432 | 431 | /* on the previous scanline */ |
433 | turbo_prepare_sprites(screen.machine(), | |
432 | turbo_prepare_sprites(screen.machine(), | |
434 | 433 | |
435 | 434 | /* loop over columns */ |
436 | 435 | for (x = 0; x <= cliprect.max_x; x += TURBO_X_SCALE) |
r17967 | r17968 | |
442 | 441 | UINT16 he; |
443 | 442 | |
444 | 443 | /* load the bitmask from the sprite position for both halves of the sprites (p. 139) */ |
445 | he = | |
444 | he = | |
446 | 445 | |
447 | 446 | /* the AND of the line enable and horizontal enable is clocked and held in LST0-7 (p. 143) */ |
448 | 447 | he &= sprinfo.ve; |
449 | 448 | sprinfo.lst |= he | (he >> 8); |
450 | 449 | |
451 | 450 | /* compute the X sum between opb and the current column; only the carry matters (p. 141) */ |
452 | carry = (xx + | |
451 | carry = (xx + | |
453 | 452 | |
454 | 453 | /* the carry selects which inputs to use (p. 141) */ |
455 | 454 | if (carry) |
456 | 455 | { |
457 | sel = state->m_turbo_ipb; | |
458 | coch = state->m_turbo_ipc >> 4; | |
456 | sel = m_turbo_ipb; | |
457 | coch = m_turbo_ipc >> 4; | |
459 | 458 | } |
460 | 459 | else |
461 | 460 | { |
462 | sel = state->m_turbo_ipa; | |
463 | coch = state->m_turbo_ipc & 15; | |
461 | sel = m_turbo_ipa; | |
462 | coch = m_turbo_ipc & 15; | |
464 | 463 | } |
465 | 464 | |
466 | 465 | /* look up AREA1 and AREA2 (p. 142) */ |
r17967 | r17968 | |
489 | 488 | |
490 | 489 | /* look up AREA5 (p. 141) */ |
491 | 490 | offs = (xx >> 3) | /* A0- A4 = H3-H7 */ |
492 | (( | |
491 | (( | |
493 | 492 | |
494 | 493 | areatmp = road_gfxdata[0x4000 | offs]; |
495 | 494 | areatmp = (areatmp << (xx & 7)) & 0x80; |
r17967 | r17968 | |
505 | 504 | |
506 | 505 | /* also use the coch value to look up color info in IC13/PR1114 and IC21/PR1117 (p. 144) */ |
507 | 506 | offs = (coch & 0x0f) | /* A0-A3: CONT0-3 = COCH0-3 */ |
508 | (( | |
507 | (( | |
509 | 508 | bacol = pr1114[offs] | (pr1117[offs] << 8); |
510 | 509 | |
511 | 510 | /* at this point, do the character lookup; due to the shift register loading in */ |
r17967 | r17968 | |
526 | 525 | /* CDG0-7 = D8 -D15 */ |
527 | 526 | /* CDR0-7 = D16-D23 */ |
528 | 527 | /* PLB0-7 = D24-D31 */ |
529 | sprbits = turbo_get_sprite_bits( | |
528 | sprbits = turbo_get_sprite_bits( | |
530 | 529 | |
531 | 530 | /* perform collision detection here via lookup in IC20/PR1116 (p. 144) */ |
532 | | |
531 | | |
533 | 532 | |
534 | 533 | /* look up the sprite priority in IC11/PR1122 (p. 144) */ |
535 | 534 | priority = ((sprbits & 0xfe000000) >> 25) | /* A0-A6: PLB1-7 */ |
536 | (( | |
535 | (( | |
537 | 536 | priority = pr1122[priority]; |
538 | 537 | |
539 | 538 | /* use that to look up the overall priority in IC12/PR1123 (p. 144) */ |
r17967 | r17968 | |
542 | 541 | ((foreraw & 0x80) >> 3) | /* A4: PLBE */ |
543 | 542 | ((forebits & 0x08) << 2) | /* A5: PLBF */ |
544 | 543 | ((babit & 0x07) << 6) | /* A6-A8: BABIT1-3 */ |
545 | (( | |
544 | (( | |
546 | 545 | mx = pr1123[mx]; |
547 | 546 | |
548 | 547 | /* the MX output selects one of 16 inputs; build up a 16-bit pattern to match */ |
r17967 | r17968 | |
570 | 569 | (((~red >> mx) & 1) << 4) | /* A4: CDR */ |
571 | 570 | (((~grn >> mx) & 1) << 5) | /* A5: CDG */ |
572 | 571 | (((~blu >> mx) & 1) << 6) | /* A6: CDB */ |
573 | (( | |
572 | (( | |
574 | 573 | dest[x + ix] = pr1121[offs]; |
575 | 574 | } |
576 | 575 | } |
r17967 | r17968 | |
751 | 750 | * |
752 | 751 | *************************************/ |
753 | 752 | |
754 | ||
753 | ||
755 | 754 | { |
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(); | |
759 | 757 | const UINT8 *pr1419 = prom_base + 0x000; |
760 | 758 | const UINT8 *pr1620 = prom_base + 0x200; |
761 | 759 | const UINT8 *pr1450 = prom_base + 0x500; |
r17967 | r17968 | |
771 | 769 | |
772 | 770 | /* compute the sprite information; we use y-1 since this info was computed during HBLANK */ |
773 | 771 | /* on the previous scanline */ |
774 | subroc3d_prepare_sprites(screen.machine(), | |
772 | subroc3d_prepare_sprites(screen.machine(), | |
775 | 773 | |
776 | 774 | /* loop over columns */ |
777 | 775 | for (x = 0; x <= cliprect.max_x; x += TURBO_X_SCALE) |
r17967 | r17968 | |
783 | 781 | UINT32 sprbits; |
784 | 782 | |
785 | 783 | /* load the bitmask from the sprite position for both halves of the sprites (p. 143) */ |
786 | he = | |
784 | he = | |
787 | 785 | |
788 | 786 | /* the AND of the line enable and horizontal enable is clocked and held in LST0-7 (p. 143) */ |
789 | 787 | he &= sprinfo.ve; |
790 | 788 | sprinfo.lst |= he | (he >> 8); |
791 | 789 | |
792 | 790 | /* at this point, do the character lookup */ |
793 | if (! | |
791 | if (! | |
794 | 792 | foreraw = fore[xx]; |
795 | 793 | else |
796 | 794 | foreraw = fore[(pr1454[(xx >> 3) & 0x1f] << 3) | (xx & 0x07)]; |
r17967 | r17968 | |
811 | 809 | /* CDB0-7 = D8 -D15 */ |
812 | 810 | /* CDC0-7 = D16-D23 */ |
813 | 811 | /* CDD0-7 = D24-D31 */ |
814 | sprbits = subroc3d_get_sprite_bits( | |
812 | sprbits = subroc3d_get_sprite_bits( | |
815 | 813 | |
816 | 814 | /* MUX0-3 is selected by PLY0-3 and the sprite enable bits, and is the output */ |
817 | 815 | /* of IC21/PR1450 (p. 141), unless MPLB = 0, in which case the values are grounded (p. 141) */ |
818 | 816 | if (mplb) |
819 | 817 | { |
820 | 818 | 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); | |
823 | 821 | } |
824 | 822 | else |
825 | 823 | mux = 0; |
r17967 | r17968 | |
837 | 835 | /* we then go through a muxer to select one of the 16 outputs computed above (p. 141) */ |
838 | 836 | offs = (finalbits & 0x0f) | /* A0-A3: CD0-CD3 */ |
839 | 837 | ((mux & 0x08) << 1) | /* A4: MUX3 */ |
840 | ( | |
838 | ( | |
841 | 839 | dest[x + ix] = pr1419[offs]; |
842 | 840 | } |
843 | 841 | } |
r17967 | r17968 | |
970 | 968 | * |
971 | 969 | *************************************/ |
972 | 970 | |
973 | ||
971 | ||
974 | 972 | { |
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(); | |
977 | 974 | const UINT8 *bgcolor = screen.machine().root_device().memregion("gfx3")->base(); |
978 | const UINT8 *prom_base = | |
975 | const UINT8 *prom_base = | |
979 | 976 | const UINT8 *pr5194 = prom_base + 0x000; |
980 | 977 | const UINT8 *pr5198 = prom_base + 0x500; |
981 | 978 | const UINT8 *pr5199 = prom_base + 0x700; |
r17967 | r17968 | |
990 | 987 | |
991 | 988 | /* compute the sprite information; we use y-1 since this info was computed during HBLANK */ |
992 | 989 | /* on the previous scanline */ |
993 | buckrog_prepare_sprites(screen.machine(), | |
990 | buckrog_prepare_sprites(screen.machine(), | |
994 | 991 | |
995 | 992 | /* loop over columns */ |
996 | 993 | for (x = 0; x <= cliprect.max_x; x += TURBO_X_SCALE) |
r17967 | r17968 | |
1002 | 999 | int palbits, offs, ix; |
1003 | 1000 | |
1004 | 1001 | /* load the bitmask from the sprite position for both halves of the sprites (p. 143) */ |
1005 | he = | |
1002 | he = | |
1006 | 1003 | |
1007 | 1004 | /* the AND of the line enable and horizontal enable is clocked and held in LST0-7 (p. 143) */ |
1008 | 1005 | he &= sprinfo.ve; |
r17967 | r17968 | |
1012 | 1009 | foreraw = fore[(pr5194[((xx >> 3) - 1) & 0x1f] << 3) | (xx & 0x07)]; |
1013 | 1010 | offs = ((foreraw & 0x03) << 0) | /* A0-A1: BIT0-1 */ |
1014 | 1011 | ((foreraw & 0xf8) >> 1) | /* A2-A6: BANK3-7 */ |
1015 | (( | |
1012 | (( | |
1016 | 1013 | forebits = pr5198[offs]; |
1017 | 1014 | |
1018 | 1015 | /* fetch the STAR bit */ |
1019 | star = | |
1016 | star = | |
1020 | 1017 | |
1021 | 1018 | /* now that we have done all the per-5MHz pixel work, mix the sprites at the scale factor */ |
1022 | 1019 | for (ix = 0; ix < TURBO_X_SCALE; ix++) |
r17967 | r17968 | |
1027 | 1024 | /* CDB0-7 = D8 -D15 */ |
1028 | 1025 | /* CDC0-7 = D16-D23 */ |
1029 | 1026 | /* CDD0-7 = D24-D31 */ |
1030 | sprbits = buckrog_get_sprite_bits( | |
1027 | sprbits = buckrog_get_sprite_bits( | |
1031 | 1028 | |
1032 | 1029 | /* the PLB bits go into an LS148 8-to-1 decoder and become MUX0-3 (PROM board SH 2/10) */ |
1033 | 1030 | if (plb == 0) |
r17967 | r17968 | |
1061 | 1058 | { |
1062 | 1059 | offs = (cd & 0x0f) | /* A0-A3: CD0-3 */ |
1063 | 1060 | ((mux & 0x07) << 4) | /* A4-A6: MUX0-2 */ |
1064 | (( | |
1061 | (( | |
1065 | 1062 | palbits = pr5199[offs]; |
1066 | 1063 | } |
1067 | 1064 | |
r17967 | r17968 | |
1082 | 1079 | /* otherwise, CHNG = 3 */ |
1083 | 1080 | else |
1084 | 1081 | { |
1085 | palbits = bgcolor[y | (( | |
1082 | palbits = bgcolor[y | (( | |
1086 | 1083 | palbits = (palbits & 0xc0) | ((palbits & 0x30) << 4) | ((palbits & 0x0f) << 2); |
1087 | 1084 | } |
1088 | 1085 |
r17967 | r17968 | |
---|---|---|
138 | 138 | } |
139 | 139 | |
140 | 140 | |
141 | ||
141 | ||
142 | 142 | { |
143 | cvs_state *state = screen.machine().driver_data<cvs_state>(); | |
144 | 143 | static const int ram_based_char_start_indices[] = { 0xe0, 0xc0, 0x100, 0x80 }; |
145 | 144 | offs_t offs; |
146 | 145 | int scroll[8]; |
r17967 | r17968 | |
151 | 150 | for (offs = 0; offs < 0x0400; offs++) |
152 | 151 | { |
153 | 152 | 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]; | |
156 | 155 | |
157 | 156 | UINT8 x = offs << 3; |
158 | 157 | UINT8 y = offs >> 5 << 3; |
159 | 158 | |
160 | int gfxnum = (code < ram_based_char_start_indices[ | |
159 | int gfxnum = (code < ram_based_char_start_indices[ | |
161 | 160 | |
162 | drawgfx_opaque( | |
161 | drawgfx_opaque( | |
163 | 162 | code, color, |
164 | 163 | 0, 0, |
165 | 164 | x, y); |
r17967 | r17968 | |
175 | 174 | collision_color = 0x102; |
176 | 175 | } |
177 | 176 | |
178 | drawgfx_opaque( | |
177 | drawgfx_opaque( | |
179 | 178 | code, collision_color, |
180 | 179 | 0, 0, |
181 | 180 | x, y); |
r17967 | r17968 | |
184 | 183 | |
185 | 184 | /* Update screen - 8 regions, fixed scrolling area */ |
186 | 185 | 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; | |
192 | 191 | scroll[6] = 0; |
193 | 192 | scroll[7] = 0; |
194 | 193 | |
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); | |
197 | 196 | |
198 | 197 | /* 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); | |
202 | 201 | |
203 | 202 | /* Bullet Hardware */ |
204 | 203 | for (offs = 8; offs < 256; offs++ ) |
205 | 204 | { |
206 | if ( | |
205 | if ( | |
207 | 206 | { |
208 | 207 | int ct; |
209 | 208 | for (ct = 0; ct < 4; ct++) |
210 | 209 | { |
211 | int bx = 255 - 7 - | |
210 | int bx = 255 - 7 - | |
212 | 211 | |
213 | 212 | /* Bullet/Object Collision */ |
214 | 213 | if ((s2636_0_bitmap.pix16(offs, bx) != 0) || |
215 | 214 | (s2636_1_bitmap.pix16(offs, bx) != 0) || |
216 | 215 | (s2636_2_bitmap.pix16(offs, bx) != 0)) |
217 | | |
216 | | |
218 | 217 | |
219 | 218 | /* 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; | |
222 | 221 | |
223 | 222 | bitmap.pix16(offs, bx) = BULLET_STAR_PEN; |
224 | 223 | } |
r17967 | r17968 | |
247 | 246 | bitmap.pix16(y, x) = SPRITE_PEN_BASE + S2636_PIXEL_COLOR(pixel); |
248 | 247 | |
249 | 248 | /* 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; | |
253 | 252 | |
254 | 253 | /* S2636 vs. background collision detection */ |
255 | if (colortable_entry_get_value(screen.machine().colortable, | |
254 | if (colortable_entry_get_value(screen.machine().colortable, | |
256 | 255 | { |
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; | |
260 | 259 | } |
261 | 260 | } |
262 | 261 | } |
r17967 | r17968 | |
264 | 263 | } |
265 | 264 | |
266 | 265 | /* stars circuit */ |
267 | if ( | |
266 | if ( | |
268 | 267 | cvs_update_stars(screen.machine(), bitmap, cliprect, BULLET_STAR_PEN, 0); |
269 | 268 | |
270 | 269 | return 0; |
r17967 | r17968 | |
---|---|---|
31 | 31 | } |
32 | 32 | } |
33 | 33 | |
34 | ||
34 | ||
35 | 35 | { |
36 | truco_state *state = screen.machine().driver_data<truco_state>(); | |
37 | UINT8 *videoram = state->m_videoram; | |
36 | UINT8 *videoram = m_videoram; | |
38 | 37 | UINT8 *vid = videoram; |
39 | 38 | int x, y; |
40 | 39 |
r17967 | r17968 | |
---|---|---|
824 | 824 | |
825 | 825 | |
826 | 826 | /* For games without tilemaps */ |
827 | ||
827 | ||
828 | 828 | { |
829 | 829 | set_pens(screen.machine()); |
830 | 830 | bitmap.fill(0x1f0, cliprect); |
r17967 | r17968 | |
1042 | 1042 | |
1043 | 1043 | } |
1044 | 1044 | |
1045 | stat | |
1045 | UINT32 seta_state::screen | |
1046 | 1046 | { |
1047 | 1047 | seta_layers_update(screen, bitmap, cliprect, 0x1000, 1 ); |
1048 | 1048 | return 0; |
1049 | 1049 | } |
1050 | 1050 | |
1051 | 1051 | |
1052 | ||
1052 | ||
1053 | 1053 | { |
1054 | 1054 | bitmap.fill(0x0, cliprect); |
1055 | 1055 | |
r17967 | r17968 | |
1061 | 1061 | return 0; |
1062 | 1062 | } |
1063 | 1063 | |
1064 | ||
1064 | void | |
1065 | 1065 | { |
1066 | 1066 | // rising edge |
1067 | if ( | |
1067 | if (st | |
1068 | 1068 | screen.machine().device<seta001_device>("spritegen")->tnzs_eof(); |
1069 | 1069 | } |
1070 | 1070 | |
1071 | 1071 | |
1072 | 1072 | |
1073 | ||
1073 | ||
1074 | 1074 | { |
1075 | 1075 | set_pens(screen.machine()); |
1076 | return SCREEN_UPDATE16_CALL(seta_layers); | |
1076 | return SCREEN_UPDATE16_CALL_MEMBER(seta_layers); | |
1077 | 1077 | } |
1078 | 1078 | |
1079 | 1079 | |
1080 | ||
1080 | ||
1081 | 1081 | { |
1082 | 1082 | usclssic_set_pens(screen.machine()); |
1083 | return SCREEN_UPDATE16_CALL(seta_layers); | |
1083 | return SCREEN_UPDATE16_CALL_MEMBER(seta_layers); | |
1084 | 1084 | } |
1085 | 1085 | |
1086 | 1086 | |
1087 | ||
1087 | ||
1088 | 1088 | { |
1089 | 1089 | /* no palette to set */ |
1090 | return SCREEN_UPDATE16_CALL(seta_layers); | |
1090 | return SCREEN_UPDATE16_CALL_MEMBER(seta_layers); | |
1091 | 1091 | } |
r17967 | r17968 | |
---|---|---|
43 | 43 | } |
44 | 44 | |
45 | 45 | |
46 | ||
46 | ||
47 | 47 | { |
48 | 48 | bitmap.fill(0x1f0, cliprect); |
49 | 49 | |
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 ); | |
52 | 52 | |
53 | | |
53 | | |
54 | 54 | return 0; |
55 | 55 | } |
56 | 56 | |
57 | ||
57 | void | |
58 | 58 | { |
59 | 59 | // 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(); | |
62 | 62 | } |
r17967 | r17968 | |
---|---|---|
172 | 172 | } |
173 | 173 | |
174 | 174 | |
175 | ||
175 | ||
176 | 176 | { |
177 | tp84_state *state = screen.machine().driver_data<tp84_state>(); | |
178 | 177 | rectangle clip = cliprect; |
179 | 178 | const rectangle &visarea = screen.visible_area(); |
180 | 179 | |
r17967 | r17968 | |
182 | 181 | { |
183 | 182 | screen.machine().tilemap().mark_all_dirty(); |
184 | 183 | |
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); | |
187 | 186 | |
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)); | |
190 | 189 | } |
191 | 190 | |
192 | | |
191 | | |
193 | 192 | draw_sprites(screen.machine(), bitmap, cliprect); |
194 | 193 | |
195 | 194 | /* draw top status region */ |
196 | 195 | clip.min_x = visarea.min_x; |
197 | 196 | clip.max_x = visarea.min_x + 15; |
198 | | |
197 | | |
199 | 198 | |
200 | 199 | /* draw bottom status region */ |
201 | 200 | clip.min_x = visarea.max_x - 15; |
202 | 201 | clip.max_x = visarea.max_x; |
203 | | |
202 | | |
204 | 203 | |
205 | 204 | return 0; |
206 | 205 | } |
r17967 | r17968 | |
---|---|---|
156 | 156 | |
157 | 157 | #undef DRAW_SPRITE |
158 | 158 | |
159 | ||
159 | ||
160 | 160 | { |
161 | vball_state *state = screen.machine().driver_data<vball_state>(); | |
162 | 161 | int i; |
163 | 162 | |
164 | | |
163 | | |
165 | 164 | |
166 | 165 | /*To get linescrolling to work properly, we must ignore the 1st two scroll values, no idea why! -SJE */ |
167 | 166 | 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]); | |
170 | 169 | } |
171 | | |
170 | | |
172 | 171 | draw_sprites(screen.machine(),bitmap,cliprect); |
173 | 172 | return 0; |
174 | 173 | } |
r17967 | r17968 | |
---|---|---|
61 | 61 | |
62 | 62 | /******************************************************************************/ |
63 | 63 | |
64 | ||
64 | ||
65 | 65 | { |
66 | rohga_state *state = screen.machine().driver_data<rohga_state>(); | |
67 | 66 | 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); | |
70 | 69 | |
71 | 70 | /* 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); | |
75 | 74 | |
76 | 75 | /* Draw playfields */ |
77 | 76 | screen.machine().priority_bitmap.fill(0, cliprect); |
r17967 | r17968 | |
83 | 82 | if (priority & 4) |
84 | 83 | { |
85 | 84 | // Draw as 1 8BPP layer |
86 | deco16ic_tilemap_12_combine_draw( | |
85 | deco16ic_tilemap_12_combine_draw( | |
87 | 86 | } |
88 | 87 | else |
89 | 88 | { |
90 | 89 | // 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); | |
93 | 92 | } |
94 | deco16ic_tilemap_2_draw( | |
93 | deco16ic_tilemap_2_draw( | |
95 | 94 | break; |
96 | 95 | 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); | |
100 | 99 | break; |
101 | 100 | 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); | |
105 | 104 | break; |
106 | 105 | } |
107 | 106 | |
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); | |
110 | 109 | |
111 | 110 | return 0; |
112 | 111 | } |
r17967 | r17968 | |
165 | 164 | } |
166 | 165 | } |
167 | 166 | |
168 | ||
167 | ||
169 | 168 | { |
170 | rohga_state *state = screen.machine().driver_data<rohga_state>(); | |
171 | 169 | 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); | |
174 | 172 | |
175 | 173 | /* 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); | |
178 | 176 | |
179 | 177 | /* 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); | |
183 | 181 | |
184 | 182 | /* Draw playfields - Palette of 2nd playfield chip visible if playfields turned off */ |
185 | 183 | bitmap.fill(screen.machine().pens[512], cliprect); |
186 | 184 | |
187 | deco16ic_tilemap_2_draw( | |
185 | deco16ic_tilemap_2_draw( | |
188 | 186 | screen.machine().device<decospr_device>("spritegen1")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0600, 0x0600, 0x400, 0x1ff); |
189 | deco16ic_tilemap_2_draw( | |
187 | deco16ic_tilemap_2_draw( | |
190 | 188 | screen.machine().device<decospr_device>("spritegen1")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0400, 0x0600, 0x400, 0x1ff); |
191 | 189 | |
192 | 190 | if ((priority & 0x1f) == 0x1f) /* Wizdfire has bit 0x40 always set, Dark Seal 2 doesn't?! */ |
193 | deco16ic_tilemap_1_draw( | |
191 | deco16ic_tilemap_1_draw( | |
194 | 192 | else |
195 | deco16ic_tilemap_1_draw( | |
193 | deco16ic_tilemap_1_draw( | |
196 | 194 | |
197 | 195 | screen.machine().device<decospr_device>("spritegen1")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0400, 0x400, 0x1ff); // 0x000 and 0x200 of 0x600 |
198 | 196 | |
199 | 197 | mixwizdfirelayer(screen.machine(), bitmap, cliprect, 4, 0x000, 0x000); |
200 | 198 | |
201 | deco16ic_tilemap_1_draw( | |
199 | deco16ic_tilemap_1_draw( | |
202 | 200 | return 0; |
203 | 201 | } |
204 | 202 | |
205 | ||
203 | ||
206 | 204 | { |
207 | rohga_state *state = screen.machine().driver_data<rohga_state>(); | |
208 | 205 | address_space &space = screen.machine().driver_data()->generic_space(); |
209 | UINT16 flip = deco16ic_pf_control_r( | |
206 | UINT16 flip = deco16ic_pf_control_r( | |
210 | 207 | |
211 | 208 | /* draw sprite gfx to temp bitmaps */ |
212 | 209 | screen.machine().device<decospr_device>("spritegen1")->set_alt_format(true); |
213 | 210 | 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); | |
216 | 213 | |
217 | 214 | /* 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); | |
221 | 218 | |
222 | 219 | /* Draw playfields - Palette of 2nd playfield chip visible if playfields turned off */ |
223 | 220 | bitmap.fill(screen.machine().pens[512], cliprect); |
224 | 221 | screen.machine().priority_bitmap.fill(0); |
225 | 222 | |
226 | 223 | /* pf3 and pf4 are combined into a single 8bpp bitmap */ |
227 | deco16ic_tilemap_12_combine_draw( | |
224 | deco16ic_tilemap_12_combine_draw( | |
228 | 225 | |
229 | deco16ic_tilemap_2_draw( | |
226 | deco16ic_tilemap_2_draw( | |
230 | 227 | |
231 | 228 | /* 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 ;-) */ |
232 | 229 | screen.machine().device<decospr_device>("spritegen2")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0000, 0x600, 0xff); |
233 | 230 | screen.machine().device<decospr_device>("spritegen1")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0000, 0x400, 0x1ff); |
234 | 231 | |
235 | 232 | |
236 | deco16ic_tilemap_1_draw( | |
233 | deco16ic_tilemap_1_draw( | |
237 | 234 | return 0; |
238 | 235 | } |
r17967 | r17968 | |
---|---|---|
116 | 116 | save_item(NAME(m_roz_vram)); |
117 | 117 | } |
118 | 118 | |
119 | ||
119 | ||
120 | 120 | { |
121 | polygonet_state *state = screen.machine().driver_data<polygonet_state>(); | |
122 | 121 | device_t *k053936 = screen.machine().device("k053936"); |
123 | 122 | screen.machine().priority_bitmap.fill(0); |
124 | 123 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
125 | 124 | |
126 | k053936_zoom_draw(k053936, bitmap, cliprect, | |
125 | k053936_zoom_draw(k053936, bitmap, cliprect, | |
127 | 126 | |
128 | | |
127 | | |
129 | 128 | return 0; |
130 | 129 | } |
131 | 130 |
r17967 | r17968 | |
---|---|---|
141 | 141 | } |
142 | 142 | } |
143 | 143 | |
144 | ||
144 | ||
145 | 145 | { |
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); | |
148 | 147 | draw_sprites(screen.machine(), bitmap, cliprect); |
149 | 148 | return 0; |
150 | 149 | } |
r17967 | r17968 | |
---|---|---|
190 | 190 | * |
191 | 191 | *************************************/ |
192 | 192 | |
193 | ||
193 | ||
194 | 194 | { |
195 | batman_state *state = screen.machine().driver_data<batman_state>(); | |
196 | 195 | bitmap_ind8 &priority_bitmap = screen.machine().priority_bitmap; |
197 | 196 | atarimo_rect_list rectlist; |
198 | 197 | bitmap_ind16 *mobitmap; |
r17967 | r17968 | |
200 | 199 | |
201 | 200 | /* draw the playfield */ |
202 | 201 | 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); | |
211 | 210 | |
212 | 211 | /* draw and merge the MO */ |
213 | 212 | mobitmap = atarimo_render(0, cliprect, &rectlist); |
r17967 | r17968 | |
280 | 279 | } |
281 | 280 | |
282 | 281 | /* add the alpha on top */ |
283 | | |
282 | | |
284 | 283 | |
285 | 284 | /* now go back and process the upper bit of MO priority */ |
286 | 285 | rectlist.rect -= rectlist.numrects; |
r17967 | r17968 | |
---|---|---|
412 | 412 | |
413 | 413 | /******************************************************************************/ |
414 | 414 | |
415 | ||
415 | ||
416 | 416 | { |
417 | nemesis_state *state = screen.machine().driver_data<nemesis_state>(); | |
418 | 417 | int offs; |
419 | 418 | rectangle clip; |
420 | 419 | |
r17967 | r17968 | |
424 | 423 | clip.min_x = 0; |
425 | 424 | clip.max_x = 255; |
426 | 425 | |
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); | |
431 | 430 | |
432 | 431 | for (offs = 0; offs < 64; offs++) |
433 | 432 | { |
434 | 433 | int offset_x = offs; |
435 | 434 | |
436 | if ( | |
435 | if ( | |
437 | 436 | offset_x = (offs + 0x20) & 0x3f; |
438 | 437 | |
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]); | |
441 | 440 | } |
442 | 441 | |
443 | 442 | for (offs = cliprect.min_y; offs <= cliprect.max_y; offs++) |
r17967 | r17968 | |
448 | 447 | clip.min_y = offs; |
449 | 448 | clip.max_y = offs; |
450 | 449 | |
451 | if ( | |
450 | if ( | |
452 | 451 | offset_y = 255 - offs; |
453 | 452 | |
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)); | |
456 | 455 | |
457 | 456 | for (i = 0; i < 4; i += 2) |
458 | 457 | { |
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); | |
463 | 462 | } |
464 | 463 | } |
465 | 464 |
r17967 | r17968 | |
---|---|---|
145 | 145 | } |
146 | 146 | |
147 | 147 | |
148 | ||
148 | ||
149 | 149 | { |
150 | cheekyms_state *state = screen.machine().driver_data<cheekyms_state>(); | |
151 | 150 | 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; | |
154 | 153 | |
155 | 154 | screen.machine().tilemap().mark_all_dirty(); |
156 | 155 | screen.machine().tilemap().set_flip_all(flip ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0); |
157 | 156 | |
158 | 157 | bitmap.fill(0, cliprect); |
159 | | |
158 | | |
160 | 159 | |
161 | 160 | /* sprites go under the playfield */ |
162 | 161 | draw_sprites(screen.machine(), bitmap, cliprect, screen.machine().gfx[1], flip); |
163 | 162 | |
164 | 163 | /* draw the tilemap to a temp bitmap */ |
165 | | |
164 | | |
166 | 165 | |
167 | 166 | /* draw the tilemap to the final bitmap applying the scroll to the man character */ |
168 | 167 | for (y = cliprect.min_y; y <= cliprect.max_y; y++) |
r17967 | r17968 | |
182 | 181 | |
183 | 182 | if (in_man_area) |
184 | 183 | { |
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); | |
187 | 186 | } |
188 | 187 | else |
189 | 188 | { |
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); | |
192 | 191 | } |
193 | 192 | } |
194 | 193 | } |
r17967 | r17968 | |
---|---|---|
84 | 84 | |
85 | 85 | |
86 | 86 | |
87 | ||
87 | ||
88 | 88 | { |
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; | |
92 | 91 | int offs; |
93 | 92 | |
94 | 93 | /* bit 2 flip screen */ |
95 | | |
94 | | |
96 | 95 | |
97 | 96 | /* copy the background graphics */ |
98 | if (* | |
97 | if (* | |
99 | 98 | bitmap.fill(0, cliprect); |
100 | 99 | else |
101 | 100 | { |
102 | 101 | 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; | |
106 | 105 | |
107 | 106 | /*clear background-over-sprites bitmap*/ |
108 | | |
107 | | |
109 | 108 | |
110 | 109 | for (v = 2*8; v < 30*8; v++) /*only for visible area*/ |
111 | 110 | { |
r17967 | r17968 | |
136 | 135 | LS283 = LS283 + rom18B[ map_v_scr_1fe_6 + h ] + 0xff01; |
137 | 136 | } |
138 | 137 | |
139 | prom_data = | |
138 | prom_data = | |
140 | 139 | |
141 | 140 | rom18D_addr &= 0x20f8; |
142 | 141 | rom18D_addr += (prom_data & 0x1f00) + ((LS283 & 0x38) >>3); |
r17967 | r17968 | |
156 | 155 | |
157 | 156 | /*priority: background over sprites*/ |
158 | 157 | if (map_v_scr_100 && ((graph_data & 0x0c)==0x0c)) |
159 | | |
158 | | |
160 | 159 | } |
161 | 160 | |
162 | if ( | |
161 | if ( | |
163 | 162 | { |
164 | 163 | int i; |
165 | 164 | UINT16 line_data_flip_x[256]; |
r17967 | r17968 | |
173 | 172 | } |
174 | 173 | |
175 | 174 | /* draw the sprites */ |
176 | for (offs = 0; offs < | |
175 | for (offs = 0; offs < | |
177 | 176 | { |
178 | 177 | int sx, sy; |
179 | 178 | |
r17967 | r17968 | |
190 | 189 | sx = (spriteram16[offs + 3] & 0xff) - 0x80 + 0x100 * (attr & 0x01); |
191 | 190 | sy = 239 - sy; |
192 | 191 | |
193 | if ( | |
192 | if ( | |
194 | 193 | { |
195 | 194 | sx = 255-16 - sx; |
196 | 195 | sy = 239 - sy; |
r17967 | r17968 | |
199 | 198 | } |
200 | 199 | |
201 | 200 | if (code & 0x80) /* sprite bankswitch */ |
202 | code += (* | |
201 | code += (* | |
203 | 202 | |
204 | 203 | drawgfx_transmask(bitmap, cliprect, screen.machine().gfx[1], |
205 | 204 | code, |
r17967 | r17968 | |
210 | 209 | } |
211 | 210 | } |
212 | 211 | |
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); | |
215 | 214 | |
216 | 215 | /* draw the foreground characters */ |
217 | 216 | for (offs = 32*32-1; offs >= 0; offs -= 1) |
218 | 217 | { |
219 | //int page = (* | |
218 | //int page = (* | |
220 | 219 | int code; |
221 | 220 | |
222 | 221 | code = videoram[offs /*+ page*/] & 0xff; |
r17967 | r17968 | |
225 | 224 | int sx = (offs % 32); |
226 | 225 | int sy = (offs / 32); |
227 | 226 | |
228 | if ( | |
227 | if ( | |
229 | 228 | { |
230 | 229 | sx = 31 - sx; |
231 | 230 | sy = 31 - sy; |
r17967 | r17968 | |
234 | 233 | drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0], |
235 | 234 | code, |
236 | 235 | 0, |
237 | | |
236 | | |
238 | 237 | 8 * sx, 8 * sy, 0x0f); |
239 | 238 | } |
240 | 239 | } |
r17967 | r17968 | |
---|---|---|
136 | 136 | } |
137 | 137 | |
138 | 138 | |
139 | ||
139 | ||
140 | 140 | { |
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); | |
145 | 144 | |
146 | 145 | draw_sprites(screen.machine(), bitmap, cliprect); |
147 | 146 | |
148 | | |
147 | | |
149 | 148 | return 0; |
150 | 149 | } |
r17967 | r17968 | |
---|---|---|
115 | 115 | return 0; |
116 | 116 | } |
117 | 117 | |
118 | SCREEN_UPDATE_IND16( warriorb_left ) { return update_screen(screen, bitmap, cliprect, 40 * 8 * 0, screen.machine().driver_data<warriorb_state>()->m_tc0100scn_1); } | |
119 | SCREEN_UPDATE_IND16( warriorb_right ) { return update_screen(screen, bitmap, cliprect, 40 * 8 * 1, screen.machine().driver_data<warriorb_state>()->m_tc0100scn_2); } | |
118 | UINT32 warriorb_state::screen_update_warriorb_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 40 * 8 * 0, screen.machine().driver_data<warriorb_state>()->m_tc0100scn_1); } | |
119 | UINT32 warriorb_state::screen_update_warriorb_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 40 * 8 * 1, screen.machine().driver_data<warriorb_state>()->m_tc0100scn_2); } |
r17967 | r17968 | |
---|---|---|
143 | 143 | m_tx_layer->set_transparent_pen(15); |
144 | 144 | } |
145 | 145 | |
146 | ||
146 | ||
147 | 147 | { |
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); | |
151 | 150 | |
152 | if ( | |
151 | if ( | |
153 | 152 | { |
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); | |
156 | 155 | } |
157 | 156 | else |
158 | 157 | { |
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); | |
161 | 160 | } |
162 | 161 | |
163 | 162 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
164 | 163 | |
165 | | |
164 | | |
166 | 165 | draw_sprites(screen.machine(), bitmap, cliprect, 2); |
167 | 166 | |
168 | if (!( | |
167 | if (!( | |
169 | 168 | draw_sprites(screen.machine(), bitmap, cliprect, 1); |
170 | 169 | |
171 | | |
170 | | |
172 | 171 | |
173 | if( | |
172 | if( | |
174 | 173 | draw_sprites(screen.machine(), bitmap, cliprect, 1); |
175 | 174 | |
176 | 175 | draw_sprites(screen.machine(), bitmap, cliprect, 0); |
177 | 176 | draw_sprites(screen.machine(), bitmap, cliprect, 3); |
178 | | |
177 | | |
179 | 178 | return 0; |
180 | 179 | } |
181 | 180 | |
182 | ||
181 | void | |
183 | 182 | { |
184 | 183 | // rising edge |
185 | if ( | |
184 | if (st | |
186 | 185 | { |
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); | |
189 | 187 | } |
190 | 188 | } |
r17967 | r17968 | |
---|---|---|
43 | 43 | m_layer_colorbase[3] = 0xc0; |
44 | 44 | } |
45 | 45 | |
46 | ||
46 | ||
47 | 47 | { |
48 | bishi_state *state = screen.machine().driver_data<bishi_state>(); | |
49 | 48 | int layers[4], layerpri[4], i;/*, old;*/ |
50 | 49 | /* int bg_colorbase, new_colorbase, plane, dirty; */ |
51 | 50 | static const int pris[4] = { K55_PRIINP_0, K55_PRIINP_3, K55_PRIINP_6, K55_PRIINP_7 }; |
52 | 51 | static const int enables[4] = { K55_INP_VRAM_A, K55_INP_VRAM_B, K55_INP_VRAM_C, K55_INP_VRAM_D }; |
53 | 52 | |
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); | |
56 | 55 | |
57 | 56 | for (i = 0; i < 4; i++) |
58 | 57 | { |
59 | 58 | layers[i] = i; |
60 | layerpri[i] = k055555_read_register( | |
59 | layerpri[i] = k055555_read_register( | |
61 | 60 | } |
62 | 61 | |
63 | 62 | konami_sortlayers4(layers, layerpri); |
r17967 | r17968 | |
66 | 65 | |
67 | 66 | for (i = 0; i < 4; i++) |
68 | 67 | { |
69 | if (k055555_read_register( | |
68 | if (k055555_read_register( | |
70 | 69 | { |
71 | k056832_tilemap_draw( | |
70 | k056832_tilemap_draw( | |
72 | 71 | } |
73 | 72 | } |
74 | 73 | return 0; |
r17967 | r17968 | |
---|---|---|
233 | 233 | |
234 | 234 | } |
235 | 235 | |
236 | ||
236 | ||
237 | 237 | { |
238 | _1942_state *state = screen.machine().driver_data<_1942_state>(); | |
239 | 238 | |
240 | | |
239 | | |
241 | 240 | draw_sprites(screen.machine(), bitmap, cliprect); |
242 | | |
241 | | |
243 | 242 | return 0; |
244 | 243 | } |
r17967 | r17968 | |
---|---|---|
25 | 25 | } |
26 | 26 | |
27 | 27 | |
28 | ||
28 | ||
29 | 29 | { |
30 | poolshrk_state *state = screen.machine().driver_data<poolshrk_state>(); | |
31 | 30 | int i; |
32 | 31 | |
33 | | |
32 | | |
34 | 33 | |
35 | 34 | bitmap.fill(0, cliprect); |
36 | 35 | |
r17967 | r17968 | |
38 | 37 | |
39 | 38 | for (i = 0; i < 16; i++) |
40 | 39 | { |
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]; | |
43 | 42 | |
44 | 43 | drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0], i, (i == 0) ? 0 : 1, 0, 0, |
45 | 44 | 248 - hpos, vpos - 15, 0); |
r17967 | r17968 | |
47 | 46 | |
48 | 47 | /* draw playfield */ |
49 | 48 | |
50 | | |
49 | | |
51 | 50 | return 0; |
52 | 51 | } |
r17967 | r17968 | |
---|---|---|
143 | 143 | } |
144 | 144 | } |
145 | 145 | |
146 | ||
146 | ||
147 | 147 | { |
148 | raiden_state *state = screen.machine().driver_data<raiden_state>(); | |
149 | 148 | /* 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]); | |
155 | 154 | } |
156 | 155 | 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) ); | |
161 | 160 | } |
162 | 161 | |
163 | | |
162 | | |
164 | 163 | |
165 | 164 | /* Draw sprites underneath foreground */ |
166 | 165 | draw_sprites(screen.machine(),bitmap,cliprect,0x40); |
167 | | |
166 | | |
168 | 167 | |
169 | 168 | /* Rest of sprites */ |
170 | 169 | draw_sprites(screen.machine(),bitmap,cliprect,0x80); |
171 | 170 | |
172 | 171 | /* Text layer */ |
173 | | |
172 | | |
174 | 173 | return 0; |
175 | 174 | } |
r17967 | r17968 | |
---|---|---|
225 | 225 | |
226 | 226 | |
227 | 227 | |
228 | ||
228 | ||
229 | 229 | { |
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]); | |
235 | 234 | |
236 | 235 | screen.machine().priority_bitmap.fill(0, cliprect); |
237 | 236 | |
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); | |
240 | 239 | bloodbro_draw_sprites(screen.machine(),bitmap,cliprect); |
241 | | |
240 | | |
242 | 241 | return 0; |
243 | 242 | } |
244 | 243 | |
245 | ||
244 | ||
246 | 245 | { |
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]); | |
252 | 250 | |
253 | 251 | screen.machine().priority_bitmap.fill(0, cliprect); |
254 | 252 | |
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); | |
257 | 255 | weststry_draw_sprites(screen.machine(),bitmap,cliprect); |
258 | | |
256 | | |
259 | 257 | return 0; |
260 | 258 | } |
261 | 259 | |
262 | 260 | |
263 | ||
261 | ||
264 | 262 | { |
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]); /* ? */ | |
270 | 267 | |
271 | 268 | screen.machine().priority_bitmap.fill(0, cliprect); |
272 | 269 | |
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); | |
275 | 272 | bloodbro_draw_sprites(screen.machine(),bitmap,cliprect); |
276 | | |
273 | | |
277 | 274 | return 0; |
278 | 275 | } |
279 | 276 |
r17967 | r17968 | |
---|---|---|
107 | 107 | |
108 | 108 | /********************************************************************************/ |
109 | 109 | |
110 | ||
110 | ||
111 | 111 | { |
112 | galaxia_state *state = screen.machine().driver_data<galaxia_state>(); | |
113 | 112 | int x, y; |
114 | 113 | |
115 | 114 | bitmap_ind16 &s2636_0_bitmap = s2636_update(screen.machine().device("s2636_0"), cliprect); |
r17967 | r17968 | |
118 | 117 | |
119 | 118 | bitmap.fill(0, cliprect); |
120 | 119 | cvs_update_stars(screen.machine(), bitmap, cliprect, STAR_PEN, 1); |
121 | | |
120 | | |
122 | 121 | |
123 | 122 | for (y = cliprect.min_y; y <= cliprect.max_y; y++) |
124 | 123 | { |
125 | 124 | for (x = cliprect.min_x; x <= cliprect.max_x; x++) |
126 | 125 | { |
127 | bool bullet = | |
126 | bool bullet = | |
128 | 127 | bool background = (bitmap.pix16(y, x) & 3) != 0; |
129 | 128 | |
130 | 129 | // draw bullets (guesswork) |
131 | 130 | if (bullet) |
132 | 131 | { |
133 | 132 | // background vs. bullet collision detection |
134 | if (background) | |
133 | if (background) | |
135 | 134 | |
136 | 135 | // bullet size/color/priority is guessed |
137 | 136 | bitmap.pix16(y, x) = BULLET_PEN; |
r17967 | r17968 | |
148 | 147 | if (S2636_IS_PIXEL_DRAWN(pixel)) |
149 | 148 | { |
150 | 149 | // 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; | |
154 | 153 | |
155 | 154 | // S2636 vs. bullet collision detection |
156 | if (bullet) | |
155 | if (bullet) | |
157 | 156 | |
158 | 157 | // S2636 vs. background collision detection |
159 | 158 | if (background) |
160 | 159 | { |
161 | 160 | /* 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; | |
165 | 164 | } |
166 | 165 | |
167 | 166 | bitmap.pix16(y, x) = S2636_PIXEL_COLOR(pixel) | SPRITE_PEN_BASE; |
r17967 | r17968 | |
173 | 172 | } |
174 | 173 | |
175 | 174 | |
176 | ||
175 | ||
177 | 176 | { |
178 | 177 | // astrowar has only one S2636 |
179 | galaxia_state *state = screen.machine().driver_data<galaxia_state>(); | |
180 | 178 | int x, y; |
181 | 179 | |
182 | 180 | bitmap_ind16 &s2636_0_bitmap = s2636_update(screen.machine().device("s2636_0"), cliprect); |
183 | 181 | |
184 | 182 | bitmap.fill(0, cliprect); |
185 | 183 | 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); | |
188 | 186 | |
189 | 187 | for (y = cliprect.min_y; y <= cliprect.max_y; y++) |
190 | 188 | { |
191 | 189 | // draw bullets (guesswork) |
192 | if ( | |
190 | if ( | |
193 | 191 | { |
194 | UINT8 pos = | |
192 | UINT8 pos = | |
195 | 193 | |
196 | 194 | // 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; | |
199 | 197 | |
200 | 198 | // bullet size/color/priority is guessed |
201 | 199 | bitmap.pix16(y, pos) = BULLET_PEN; |
r17967 | r17968 | |
218 | 216 | if (S2636_IS_PIXEL_DRAWN(pixel)) |
219 | 217 | { |
220 | 218 | // 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; | |
223 | 221 | |
224 | 222 | bitmap.pix16(y, (int)(sx)) = S2636_PIXEL_COLOR(pixel) | SPRITE_PEN_BASE; |
225 | 223 | bitmap.pix16(y, (int)(sx + 0.5)) = S2636_PIXEL_COLOR(pixel) | SPRITE_PEN_BASE; |
r17967 | r17968 | |
---|---|---|
521 | 521 | |
522 | 522 | ******************************************************************************/ |
523 | 523 | |
524 | ||
524 | ||
525 | 525 | { |
526 | fromanc2_state *state = screen.machine().driver_data<fromanc2_state>(); | |
527 | 526 | int i; |
528 | 527 | |
529 | 528 | for (i = 0; i < 4; i++) |
530 | 529 | { |
531 | if ( | |
530 | if ( | |
532 | 531 | { |
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); | |
536 | 535 | } |
537 | 536 | } |
538 | 537 | |
539 | 538 | return 0; |
540 | 539 | } |
541 | 540 | |
542 | ||
541 | ||
543 | 542 | { |
544 | fromanc2_state *state = screen.machine().driver_data<fromanc2_state>(); | |
545 | 543 | int i; |
546 | 544 | |
547 | 545 | for (i = 0; i < 4; i++) |
548 | 546 | { |
549 | if ( | |
547 | if ( | |
550 | 548 | { |
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); | |
554 | 552 | } |
555 | 553 | } |
556 | 554 |
r17967 | r17968 | |
---|---|---|
127 | 127 | } |
128 | 128 | } |
129 | 129 | |
130 | ||
130 | ||
131 | 131 | { |
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); | |
135 | 134 | draw_sprites(screen.machine(), bitmap, cliprect); |
136 | 135 | return 0; |
137 | 136 | } |
r17967 | r17968 | |
---|---|---|
76 | 76 | 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 ); |
77 | 77 | } |
78 | 78 | |
79 | ||
79 | ||
80 | 80 | { |
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); | |
83 | 82 | return 0; |
84 | 83 | } |
r17967 | r17968 | |
---|---|---|
129 | 129 | /* all the GRIDLEE_VBEND adjustments are needed because the hardware has a separate counting chain |
130 | 130 | to address the video memory instead of using the video chain directly */ |
131 | 131 | |
132 | ||
132 | ||
133 | 133 | { |
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]; | |
136 | 135 | UINT8 *gfx; |
137 | 136 | int x, y, i; |
138 | 137 | |
r17967 | r17968 | |
140 | 139 | for (y = cliprect.min_y; y <= cliprect.max_y; y++) |
141 | 140 | { |
142 | 141 | /* 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); | |
145 | 144 | |
146 | 145 | /* flipped: x-flip the scanline into a temp buffer and draw that */ |
147 | 146 | else |
r17967 | r17968 | |
151 | 150 | int xx; |
152 | 151 | |
153 | 152 | for (xx = 0; xx < 256; xx++) |
154 | temp[xx] = | |
153 | temp[xx] = | |
155 | 154 | draw_scanline8(bitmap, 0, y, 256, temp, pens + 16); |
156 | 155 | } |
157 | 156 | } |
r17967 | r17968 | |
160 | 159 | gfx = screen.machine().root_device().memregion("gfx1")->base(); |
161 | 160 | for (i = 0; i < 32; i++) |
162 | 161 | { |
163 | UINT8 *sprite = | |
162 | UINT8 *sprite = | |
164 | 163 | UINT8 *src; |
165 | 164 | int image = sprite[0]; |
166 | 165 | int ypos = sprite[2] + 17 + GRIDLEE_VBEND; |
r17967 | r17968 | |
175 | 174 | int currxor = 0; |
176 | 175 | |
177 | 176 | /* adjust for flip */ |
178 | if ( | |
177 | if ( | |
179 | 178 | { |
180 | 179 | ypos = 271 - ypos; |
181 | 180 | currxor = 0xff; |
r17967 | r17968 | |
207 | 206 | src += 4; |
208 | 207 | |
209 | 208 | /* de-adjust for flip */ |
210 | if ( | |
209 | if ( | |
211 | 210 | ypos = 271 - ypos; |
212 | 211 | } |
213 | 212 | } |
r17967 | r17968 | |
---|---|---|
621 | 621 | } |
622 | 622 | |
623 | 623 | |
624 | ||
624 | ||
625 | 625 | { |
626 | rallyx_state *state = screen.machine().driver_data<rallyx_state>(); | |
627 | 626 | /* the radar tilemap is just 8x32. We rely on the tilemap code to repeat it across |
628 | 627 | the screen, and clip it to only the position where it is supposed to be shown */ |
629 | 628 | rectangle fg_clip = cliprect; |
630 | 629 | rectangle bg_clip = cliprect; |
631 | 630 | |
632 | if ( | |
631 | if ( | |
633 | 632 | { |
634 | 633 | bg_clip.min_x = 8 * 8; |
635 | 634 | fg_clip.max_x = 8 * 8 - 1; |
r17967 | r17968 | |
642 | 641 | |
643 | 642 | screen.machine().priority_bitmap.fill(0, cliprect); |
644 | 643 | |
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); | |
649 | 648 | |
650 | 649 | rallyx_draw_bullets(screen.machine(), bitmap, cliprect, TRUE); |
651 | 650 | rallyx_draw_sprites(screen.machine(), bitmap, cliprect, 1); |
r17967 | r17968 | |
655 | 654 | } |
656 | 655 | |
657 | 656 | |
658 | ||
657 | ||
659 | 658 | { |
660 | rallyx_state *state = screen.machine().driver_data<rallyx_state>(); | |
661 | 659 | /* the radar tilemap is just 8x32. We rely on the tilemap code to repeat it across |
662 | 660 | the screen, and clip it to only the position where it is supposed to be shown */ |
663 | 661 | rectangle fg_clip = cliprect; |
664 | 662 | rectangle bg_clip = cliprect; |
665 | 663 | |
666 | if ( | |
664 | if ( | |
667 | 665 | { |
668 | 666 | bg_clip.min_x = 8 * 8; |
669 | 667 | fg_clip.max_x = 8 * 8 - 1; |
r17967 | r17968 | |
677 | 675 | screen.machine().priority_bitmap.fill(0, cliprect); |
678 | 676 | |
679 | 677 | /* 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); | |
684 | 682 | |
685 | 683 | jungler_draw_bullets(screen.machine(), bitmap, cliprect, TRUE); |
686 | 684 | rallyx_draw_sprites(screen.machine(), bitmap, cliprect, 0); |
687 | 685 | jungler_draw_bullets(screen.machine(), bitmap, cliprect, FALSE); |
688 | 686 | |
689 | if ( | |
687 | if ( | |
690 | 688 | draw_stars(screen.machine(), bitmap, cliprect); |
691 | 689 | |
692 | 690 | return 0; |
693 | 691 | } |
694 | 692 | |
695 | 693 | |
696 | ||
694 | ||
697 | 695 | { |
698 | rallyx_state *state = screen.machine().driver_data<rallyx_state>(); | |
699 | 696 | /* the radar tilemap is just 8x32. We rely on the tilemap code to repeat it across |
700 | 697 | the screen, and clip it to only the position where it is supposed to be shown */ |
701 | 698 | rectangle fg_clip = cliprect; |
702 | 699 | rectangle bg_clip = cliprect; |
703 | 700 | |
704 | if ( | |
701 | if ( | |
705 | 702 | { |
706 | 703 | /* handle reduced visible area in some games */ |
707 | 704 | if (screen.visible_area().max_x == 32 * 8 - 1) |
r17967 | r17968 | |
723 | 720 | |
724 | 721 | screen.machine().priority_bitmap.fill(0, cliprect); |
725 | 722 | |
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); | |
730 | 727 | |
731 | 728 | locomotn_draw_bullets(screen.machine(), bitmap, cliprect, TRUE); |
732 | 729 | locomotn_draw_sprites(screen.machine(), bitmap, cliprect, 0); |
733 | 730 | locomotn_draw_bullets(screen.machine(), bitmap, cliprect, FALSE); |
734 | 731 | |
735 | if ( | |
732 | if ( | |
736 | 733 | draw_stars(screen.machine(), bitmap, cliprect); |
737 | 734 | |
738 | 735 | return 0; |
r17967 | r17968 | |
---|---|---|
337 | 337 | |
338 | 338 | ***************************************************************************/ |
339 | 339 | |
340 | ||
340 | ||
341 | 341 | { |
342 | unico_state *state = screen.machine().driver_data<unico_state>(); | |
343 | 342 | int layers_ctrl = -1; |
344 | 343 | |
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]); | |
347 | 346 | |
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]); | |
350 | 349 | |
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]); | |
353 | 352 | |
354 | 353 | #ifdef MAME_DEBUG |
355 | 354 | if ( screen.machine().input().code_pressed(KEYCODE_Z) || screen.machine().input().code_pressed(KEYCODE_X) ) |
r17967 | r17968 | |
367 | 366 | bitmap.fill(0x1f00, cliprect); |
368 | 367 | screen.machine().priority_bitmap.fill(0, cliprect); |
369 | 368 | |
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); | |
373 | 372 | |
374 | 373 | /* Sprites are drawn last, using pdrawgfx */ |
375 | 374 | if (layers_ctrl & 8) unico_draw_sprites(screen.machine(), bitmap,cliprect); |
r17967 | r17968 | |
377 | 376 | return 0; |
378 | 377 | } |
379 | 378 | |
380 | ||
379 | ||
381 | 380 | { |
382 | unico_state *state = screen.machine().driver_data<unico_state>(); | |
383 | 381 | int layers_ctrl = -1; |
384 | 382 | |
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); | |
387 | 385 | |
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); | |
390 | 388 | |
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); | |
393 | 391 | |
394 | 392 | #ifdef MAME_DEBUG |
395 | 393 | if ( screen.machine().input().code_pressed(KEYCODE_Z) || screen.machine().input().code_pressed(KEYCODE_X) ) |
r17967 | r17968 | |
407 | 405 | bitmap.fill(0x1f00, cliprect); |
408 | 406 | screen.machine().priority_bitmap.fill(0, cliprect); |
409 | 407 | |
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); | |
413 | 411 | |
414 | 412 | /* Sprites are drawn last, using pdrawgfx */ |
415 | 413 | if (layers_ctrl & 8) zeropnt2_draw_sprites(screen.machine(), bitmap,cliprect); |
r17967 | r17968 | |
---|---|---|
52 | 52 | m_sprite_colorbase = 48; |
53 | 53 | } |
54 | 54 | |
55 | ||
55 | ||
56 | 56 | { |
57 | blockhl_state *state = screen.machine().driver_data<blockhl_state>(); | |
58 | 57 | |
59 | 58 | screen.machine().priority_bitmap.fill(0, cliprect); |
60 | 59 | |
61 | k052109_tilemap_update( | |
60 | k052109_tilemap_update( | |
62 | 61 | |
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 | |
66 | 65 | |
67 | k051960_sprites_draw( | |
66 | k051960_sprites_draw( | |
68 | 67 | return 0; |
69 | 68 | } |
r17967 | r17968 | |
---|---|---|
243 | 243 | SCREEN REFRESH |
244 | 244 | **************************************************************/ |
245 | 245 | |
246 | ||
246 | ||
247 | 247 | { |
248 | gcpinbal_state *state = screen.machine().driver_data<gcpinbal_state>(); | |
249 | 248 | int i; |
250 | 249 | UINT16 tile_sets = 0; |
251 | 250 | UINT8 layer[3]; |
r17967 | r17968 | |
253 | 252 | #ifdef MAME_DEBUG |
254 | 253 | if (screen.machine().input().code_pressed_once(KEYCODE_V)) |
255 | 254 | { |
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]); | |
258 | 257 | } |
259 | 258 | |
260 | 259 | if (screen.machine().input().code_pressed_once(KEYCODE_B)) |
261 | 260 | { |
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]); | |
264 | 263 | } |
265 | 264 | |
266 | 265 | if (screen.machine().input().code_pressed_once(KEYCODE_N)) |
267 | 266 | { |
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]); | |
270 | 269 | } |
271 | 270 | #endif |
272 | 271 | |
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]; | |
279 | 278 | |
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; | |
283 | 282 | |
284 | 283 | for (i = 0; i < 3; i++) |
285 | 284 | { |
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]); | |
288 | 287 | } |
289 | 288 | |
290 | 289 | screen.machine().priority_bitmap.fill(0, cliprect); |
r17967 | r17968 | |
296 | 295 | |
297 | 296 | |
298 | 297 | #ifdef MAME_DEBUG |
299 | if ( | |
298 | if ( | |
300 | 299 | #endif |
301 | | |
300 | | |
302 | 301 | |
303 | 302 | #ifdef MAME_DEBUG |
304 | if ( | |
303 | if ( | |
305 | 304 | #endif |
306 | | |
305 | | |
307 | 306 | |
308 | 307 | #ifdef MAME_DEBUG |
309 | if ( | |
308 | if ( | |
310 | 309 | #endif |
311 | | |
310 | | |
312 | 311 | |
313 | 312 | |
314 | 313 | draw_sprites(screen.machine(), bitmap, cliprect, 16); |
r17967 | r17968 | |
316 | 315 | #if 0 |
317 | 316 | { |
318 | 317 | // char buf[80]; |
319 | sprintf(buf,"bg0_gfx: %04x bg1_gfx: %04x ", | |
318 | sprintf(buf,"bg0_gfx: %04x bg1_gfx: %04x ", | |
320 | 319 | popmessage(buf); |
321 | 320 | } |
322 | 321 | #endif |
r17967 | r17968 | |
---|---|---|
483 | 483 | } |
484 | 484 | } |
485 | 485 | |
486 | ||
486 | ||
487 | 487 | { |
488 | realbrk_state *state = screen.machine().driver_data<realbrk_state>(); | |
489 | 488 | int layers_ctrl = -1; |
490 | 489 | |
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]); | |
493 | 492 | |
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]); | |
496 | 495 | |
497 | 496 | #ifdef MAME_DEBUG |
498 | 497 | if ( screen.machine().input().code_pressed(KEYCODE_Z) ) |
r17967 | r17968 | |
506 | 505 | } |
507 | 506 | #endif |
508 | 507 | |
509 | if ( | |
508 | if ( | |
510 | 509 | { |
511 | 510 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
512 | 511 | return 0; |
513 | 512 | } |
514 | 513 | else |
515 | bitmap.fill( | |
514 | bitmap.fill( | |
516 | 515 | |
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); | |
519 | 518 | |
520 | 519 | if (layers_ctrl & 8) draw_sprites(screen.machine(),bitmap,cliprect); |
521 | 520 | |
522 | if (layers_ctrl & 4) | |
521 | if (layers_ctrl & 4) | |
523 | 522 | |
524 | // popmessage("%04x", | |
523 | // popmessage("%04x", | |
525 | 524 | return 0; |
526 | 525 | } |
527 | 526 | |
528 | 527 | /* DaiDaiKakumei */ |
529 | ||
528 | ||
530 | 529 | { |
531 | realbrk_state *state = screen.machine().driver_data<realbrk_state>(); | |
532 | 530 | int layers_ctrl = -1; |
533 | 531 | int offs, bgx0, bgy0, bgx1, bgy1; |
534 | 532 | |
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]; | |
539 | 537 | |
540 | 538 | // 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)){ | |
544 | 542 | for(offs=0; offs<(512); offs++) { |
545 | | |
543 | | |
546 | 544 | } |
547 | 545 | } else { |
548 | 546 | for(offs=0; offs<(512); offs++) { |
549 | | |
547 | | |
550 | 548 | } |
551 | 549 | } |
552 | | |
550 | | |
553 | 551 | |
554 | 552 | // 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)){ | |
558 | 556 | for(offs=0; offs<(512); offs++) { |
559 | | |
557 | | |
560 | 558 | } |
561 | 559 | } else { |
562 | 560 | for(offs=0; offs<(512); offs++) { |
563 | | |
561 | | |
564 | 562 | } |
565 | 563 | } |
566 | | |
564 | | |
567 | 565 | |
568 | 566 | #ifdef MAME_DEBUG |
569 | 567 | if ( screen.machine().input().code_pressed(KEYCODE_Z) ) |
r17967 | r17968 | |
577 | 575 | } |
578 | 576 | #endif |
579 | 577 | |
580 | if ( | |
578 | if ( | |
581 | 579 | { |
582 | 580 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
583 | 581 | return 0; |
584 | 582 | } |
585 | 583 | else |
586 | bitmap.fill( | |
584 | bitmap.fill( | |
587 | 585 | |
588 | 586 | |
589 | 587 | |
r17967 | r17968 | |
591 | 589 | if (layers_ctrl & 8) dai2kaku_draw_sprites(screen.machine(),bitmap,cliprect,2); |
592 | 590 | |
593 | 591 | // 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); | |
596 | 594 | } else { |
597 | if (layers_ctrl & 2) | |
595 | if (layers_ctrl & 2) | |
598 | 596 | } |
599 | 597 | |
600 | 598 | // spr 1 |
601 | 599 | if (layers_ctrl & 8) dai2kaku_draw_sprites(screen.machine(),bitmap,cliprect,1); |
602 | 600 | |
603 | 601 | // 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); | |
606 | 604 | } else { |
607 | if (layers_ctrl & 1) | |
605 | if (layers_ctrl & 1) | |
608 | 606 | } |
609 | 607 | |
610 | 608 | // spr 2 |
611 | 609 | if (layers_ctrl & 8) dai2kaku_draw_sprites(screen.machine(),bitmap,cliprect,0); |
612 | 610 | |
613 | 611 | // fix |
614 | if (layers_ctrl & 4) | |
612 | if (layers_ctrl & 4) | |
615 | 613 | |
616 | // usrintf_showmessage("%04x", | |
614 | // usrintf_showmessage("%04x", | |
617 | 615 | return 0; |
618 | 616 | } |
r17967 | r17968 | |
---|---|---|
334 | 334 | } |
335 | 335 | |
336 | 336 | |
337 | ||
337 | ||
338 | 338 | { |
339 | 339 | sega_generate_vector_list(screen.machine()); |
340 | 340 | SCREEN_UPDATE32_CALL(vector); |
r17967 | r17968 | |
---|---|---|
104 | 104 | save_item(NAME(m_bgcolor)); |
105 | 105 | } |
106 | 106 | |
107 | ||
107 | ||
108 | 108 | { |
109 | carjmbre_state *state = screen.machine().driver_data<carjmbre_state>(); | |
110 | 109 | int offs, troffs, sx, sy, flipx, flipy; |
111 | 110 | |
112 | 111 | //colorram |
r17967 | r17968 | |
115 | 114 | //-xxx---- unused |
116 | 115 | //----xxxx colour |
117 | 116 | |
118 | | |
117 | | |
119 | 118 | |
120 | 119 | //spriteram[offs] |
121 | 120 | //+0 y pos |
r17967 | r17968 | |
127 | 126 | //--xx---- unused |
128 | 127 | //----xxxx colour |
129 | 128 | //+3 x pos |
130 | for (offs = | |
129 | for (offs = | |
131 | 130 | { |
132 | 131 | //before copying the sprites to spriteram the game reorders the first |
133 | 132 | //sprite to last, sprite ordering is incorrect if this isn't undone |
134 | troffs = (offs - 4 + | |
133 | troffs = (offs - 4 + | |
135 | 134 | |
136 | 135 | //unused sprites are marked with ypos <= 0x02 (or >= 0xfd if screen flipped) |
137 | if ( | |
136 | if ( | |
138 | 137 | { |
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; | |
143 | 142 | |
144 | if ( | |
143 | if ( | |
145 | 144 | { |
146 | 145 | sx = (256 + (226 - sx)) % 256; |
147 | 146 | sy = 242 - sy; |
r17967 | r17968 | |
150 | 149 | } |
151 | 150 | |
152 | 151 | 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, | |
155 | 154 | flipx,flipy, |
156 | 155 | sx,sy,0); |
157 | 156 | } |
r17967 | r17968 | |
---|---|---|
48 | 48 | 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); |
49 | 49 | } |
50 | 50 | |
51 | ||
51 | ||
52 | 52 | { |
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); | |
55 | 54 | return 0; |
56 | 55 | } |
57 | 56 |
r17967 | r17968 | |
---|---|---|
198 | 198 | SCREEN REFRESH |
199 | 199 | **************************************************************/ |
200 | 200 | |
201 | ||
201 | ||
202 | 202 | { |
203 | 203 | device_t *tc0480scp = screen.machine().device("tc0480scp"); |
204 | 204 | UINT8 layer[5]; |
r17967 | r17968 | |
---|---|---|
72 | 72 | |
73 | 73 | ***************************************************************************/ |
74 | 74 | |
75 | ||
75 | ||
76 | 76 | { |
77 | bottom9_state *state = screen.machine().driver_data<bottom9_state>(); | |
78 | 77 | |
79 | k052109_tilemap_update( | |
78 | k052109_tilemap_update( | |
80 | 79 | |
81 | 80 | /* 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) | |
84 | 83 | { |
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); | |
89 | 88 | /* note that priority 3 is opposite to the basic layer priority! */ |
90 | 89 | /* (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); | |
93 | 92 | } |
94 | 93 | return 0; |
95 | 94 | } |
r17967 | r17968 | |
---|---|---|
299 | 299 | |
300 | 300 | /******************************************************************************/ |
301 | 301 | |
302 | ||
302 | ||
303 | 303 | { |
304 | battlera_state *state = screen.machine().driver_data<battlera_state>(); | |
305 | 304 | int offs,code,scrollx,scrolly,mx,my; |
306 | 305 | |
307 | 306 | /* if any tiles changed, redraw the VRAM */ |
308 | if (screen.machine().gfx[0]->dirtyseq() != | |
307 | if (screen.machine().gfx[0]->dirtyseq() != | |
309 | 308 | { |
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); | |
312 | 311 | } |
313 | 312 | |
314 | 313 | mx=-1; |
r17967 | r17968 | |
317 | 316 | { |
318 | 317 | mx++; |
319 | 318 | if (mx==64) {mx=0; my++;} |
320 | code= | |
319 | code= | |
321 | 320 | |
322 | 321 | /* 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], | |
326 | 325 | code, |
327 | | |
326 | | |
328 | 327 | 0,0, |
329 | 328 | 8*mx,8*my); |
330 | drawgfx_opaque(* | |
329 | drawgfx_opaque(* | |
331 | 330 | 0, |
332 | 331 | 0, /* fill the spot with pen 256 */ |
333 | 332 | 0,0, |
334 | 333 | 8*mx,8*my); |
335 | drawgfx_transmask(* | |
334 | drawgfx_transmask(* | |
336 | 335 | code, |
337 | | |
336 | | |
338 | 337 | 0,0, |
339 | 338 | 8*mx,8*my,0x1); |
340 | 339 | } |
341 | 340 | } |
342 | 341 | |
343 | 342 | /* 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; | |
346 | 345 | |
347 | copyscrollbitmap(bitmap,* | |
346 | copyscrollbitmap(bitmap,* | |
348 | 347 | |
349 | 348 | /* Todo: Background enable (not used anyway) */ |
350 | 349 | |
351 | 350 | /* Render low priority sprites, if enabled */ |
352 | if ( | |
351 | if ( | |
353 | 352 | |
354 | 353 | /* Render background over sprites */ |
355 | copyscrollbitmap_trans(bitmap,* | |
354 | copyscrollbitmap_trans(bitmap,* | |
356 | 355 | |
357 | 356 | /* Render high priority sprites, if enabled */ |
358 | if ( | |
357 | if ( | |
359 | 358 | |
360 | 359 | return 0; |
361 | 360 | } |
r17967 | r17968 | |
---|---|---|
160 | 160 | m_text_right_tilemap->set_scrolly(0, 16); |
161 | 161 | } |
162 | 162 | |
163 | ||
163 | ||
164 | 164 | { |
165 | flower_state *state = screen.machine().driver_data<flower_state>(); | |
166 | 165 | rectangle myclip = cliprect; |
167 | 166 | |
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); | |
170 | 169 | |
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); | |
173 | 172 | |
174 | 173 | draw_sprites(screen.machine(),bitmap,cliprect); |
175 | 174 | |
176 | if( | |
175 | if( | |
177 | 176 | { |
178 | 177 | myclip.min_x = cliprect.min_x; |
179 | 178 | myclip.max_x = cliprect.min_x + 15; |
r17967 | r17968 | |
184 | 183 | myclip.max_x = cliprect.max_x; |
185 | 184 | } |
186 | 185 | |
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); | |
189 | 188 | return 0; |
190 | 189 | } |
191 | 190 |
r17967 | r17968 | |
---|---|---|
212 | 212 | } |
213 | 213 | } |
214 | 214 | |
215 | ||
215 | ||
216 | 216 | { |
217 | xain_state *state = screen.machine().driver_data<xain_state>(); | |
218 | switch (state->m_pri&0x7) | |
217 | switch (m_pri&0x7) | |
219 | 218 | { |
220 | 219 | 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); | |
223 | 222 | draw_sprites(screen.machine(), bitmap,cliprect); |
224 | | |
223 | | |
225 | 224 | break; |
226 | 225 | 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); | |
229 | 228 | draw_sprites(screen.machine(), bitmap,cliprect); |
230 | | |
229 | | |
231 | 230 | break; |
232 | 231 | 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); | |
235 | 234 | draw_sprites(screen.machine(), bitmap,cliprect); |
236 | | |
235 | | |
237 | 236 | break; |
238 | 237 | 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); | |
241 | 240 | draw_sprites(screen.machine(), bitmap,cliprect); |
242 | | |
241 | | |
243 | 242 | break; |
244 | 243 | 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); | |
247 | 246 | draw_sprites(screen.machine(), bitmap,cliprect); |
248 | | |
247 | | |
249 | 248 | break; |
250 | 249 | 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); | |
253 | 252 | draw_sprites(screen.machine(), bitmap,cliprect); |
254 | | |
253 | | |
255 | 254 | break; |
256 | 255 | case 6: |
257 | | |
256 | | |
258 | 257 | 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); | |
261 | 260 | break; |
262 | 261 | case 7: |
263 | | |
262 | | |
264 | 263 | 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); | |
267 | 266 | break; |
268 | 267 | } |
269 | 268 | return 0; |
r17967 | r17968 | |
---|---|---|
123 | 123 | |
124 | 124 | ***************************************************************************/ |
125 | 125 | |
126 | ||
126 | ||
127 | 127 | { |
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); | |
131 | 130 | return 0; |
132 | 131 | } |
r17967 | r17968 | |
---|---|---|
254 | 254 | } |
255 | 255 | } |
256 | 256 | |
257 | ||
257 | ||
258 | 258 | { |
259 | mrdo_state *state = screen.machine().driver_data<mrdo_state>(); | |
260 | 259 | |
261 | 260 | 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); | |
264 | 263 | draw_sprites(screen.machine(), bitmap, cliprect); |
265 | 264 | return 0; |
266 | 265 | } |
r17967 | r17968 | |
---|---|---|
363 | 363 | |
364 | 364 | |
365 | 365 | |
366 | ||
366 | ||
367 | 367 | { |
368 | namcos1_state *state = screen.machine().driver_data<namcos1_state>(); | |
369 | 368 | int i, j, scrollx, scrolly, priority; |
370 | 369 | rectangle new_clip = cliprect; |
371 | 370 | |
372 | 371 | /* 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); | |
376 | 375 | |
377 | 376 | |
378 | 377 | /* background color */ |
379 | 378 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
380 | 379 | |
381 | 380 | /* berabohm uses asymmetrical visibility windows to iris on the character */ |
382 | i = (( | |
381 | i = (( | |
383 | 382 | if (new_clip.min_x < i) new_clip.min_x = i; |
384 | i = (( | |
383 | i = (( | |
385 | 384 | if (new_clip.max_x > i) new_clip.max_x = i; |
386 | i = (( | |
385 | i = (( | |
387 | 386 | if (new_clip.min_y < i) new_clip.min_y = i; |
388 | i = (( | |
387 | i = (( | |
389 | 388 | if (new_clip.max_y > i) new_clip.max_y = i; |
390 | 389 | |
391 | 390 | if (new_clip.empty()) |
r17967 | r17968 | |
394 | 393 | |
395 | 394 | /* set palette base */ |
396 | 395 | for (i = 0;i < 6;i++) |
397 | | |
396 | | |
398 | 397 | |
399 | 398 | for (i = 0;i < 4;i++) |
400 | 399 | { |
401 | 400 | static const int disp_x[] = { 25, 27, 28, 29 }; |
402 | 401 | |
403 | 402 | 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; | |
406 | 405 | |
407 | if ( | |
406 | if ( | |
408 | 407 | { |
409 | 408 | scrollx = -scrollx; |
410 | 409 | scrolly = -scrolly; |
411 | 410 | } |
412 | 411 | |
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); | |
415 | 414 | } |
416 | 415 | |
417 | 416 | |
r17967 | r17968 | |
423 | 422 | { |
424 | 423 | for (i = 0;i < 6;i++) |
425 | 424 | { |
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); | |
428 | 427 | } |
429 | 428 | } |
430 | 429 | |
r17967 | r17968 | |
433 | 432 | } |
434 | 433 | |
435 | 434 | |
436 | ||
435 | void | |
437 | 436 | { |
438 | 437 | // rising edge |
439 | if ( | |
438 | if (st | |
440 | 439 | { |
441 | namcos1_state *state = screen.machine().driver_data<namcos1_state>(); | |
442 | if (state->m_copy_sprites) | |
440 | if (m_copy_sprites) | |
443 | 441 | { |
444 | UINT8 *spriteram = | |
442 | UINT8 *spriteram = | |
445 | 443 | int i,j; |
446 | 444 | |
447 | 445 | for (i = 0;i < 0x800;i += 16) |
r17967 | r17968 | |
450 | 448 | spriteram[i+j] = spriteram[i+j - 6]; |
451 | 449 | } |
452 | 450 | |
453 | | |
451 | | |
454 | 452 | } |
455 | 453 | } |
456 | 454 | } |
r17967 | r17968 | |
---|---|---|
91 | 91 | |
92 | 92 | /*****************************************************************************/ |
93 | 93 | |
94 | ||
94 | ||
95 | 95 | { |
96 | mainevt_state *state = screen.machine().driver_data<mainevt_state>(); | |
97 | 96 | |
98 | k052109_tilemap_update( | |
97 | k052109_tilemap_update( | |
99 | 98 | |
100 | 99 | 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); | |
105 | 104 | |
106 | k051960_sprites_draw( | |
105 | k051960_sprites_draw( | |
107 | 106 | return 0; |
108 | 107 | } |
109 | 108 | |
110 | ||
109 | ||
111 | 110 | { |
112 | mainevt_state *state = screen.machine().driver_data<mainevt_state>(); | |
113 | 111 | |
114 | k052109_tilemap_update( | |
112 | k052109_tilemap_update( | |
115 | 113 | |
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); | |
120 | 118 | return 0; |
121 | 119 | } |
r17967 | r17968 | |
---|---|---|
247 | 247 | * |
248 | 248 | *************************************/ |
249 | 249 | |
250 | ||
250 | ||
251 | 251 | { |
252 | astrocde_state *state = screen.machine().driver_data<astrocde_state>(); | |
253 | UINT8 *videoram = state->m_videoram; | |
252 | UINT8 *videoram = m_videoram; | |
254 | 253 | 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; | |
257 | 256 | int y; |
258 | 257 | |
259 | 258 | /* compute the starting point of sparkle for the current frame */ |
260 | 259 | int width = screen.width(); |
261 | 260 | int height = screen.height(); |
262 | 261 | |
263 | if ( | |
262 | if ( | |
264 | 263 | sparklebase = (screen.frame_number() * (UINT64)(width * height)) % RNG_PERIOD; |
265 | 264 | |
266 | 265 | /* iterate over scanlines */ |
r17967 | r17968 | |
273 | 272 | int x; |
274 | 273 | |
275 | 274 | /* compute the star and sparkle offset at the start of this line */ |
276 | if ( | |
275 | if ( | |
277 | 276 | { |
278 | 277 | staroffs = ((effy < 0) ? (effy + 262) : effy) * width; |
279 | 278 | sparkleoffs = sparklebase + y * width; |
r17967 | r17968 | |
285 | 284 | for (x = 0; x < 456/4; x += xystep) |
286 | 285 | { |
287 | 286 | int effx = x - HORZ_OFFSET/4; |
288 | const UINT8 *colorbase = & | |
287 | const UINT8 *colorbase = & | |
289 | 288 | UINT8 data; |
290 | 289 | int xx; |
291 | 290 | |
292 | 291 | /* select either video data or background data */ |
293 | data = (effx >= 0 && effx < 80 && effy >= 0 && effy < | |
292 | data = (effx >= 0 && effx < 80 && effy >= 0 && effy < | |
294 | 293 | |
295 | 294 | /* iterate over the 4 pixels */ |
296 | 295 | for (xx = 0; xx < 4; xx++) |
r17967 | r17968 | |
301 | 300 | rgb_t color; |
302 | 301 | |
303 | 302 | /* handle stars/sparkle */ |
304 | if ( | |
303 | if ( | |
305 | 304 | { |
306 | 305 | /* if sparkle is enabled for this pixel index and either it is non-zero or a star */ |
307 | 306 | /* then adjust the intensity */ |
308 | if ( | |
307 | if ( | |
309 | 308 | { |
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; | |
312 | 311 | else if (pixdata == 0) |
313 | 312 | colordata = luma = 0; |
314 | 313 | } |
r17967 | r17968 | |
333 | 332 | } |
334 | 333 | |
335 | 334 | |
336 | ||
335 | ||
337 | 336 | { |
338 | astrocde_state *state = screen.machine().driver_data<astrocde_state>(); | |
339 | 337 | int y; |
340 | 338 | |
341 | 339 | /* iterate over scanlines */ |
r17967 | r17968 | |
343 | 341 | { |
344 | 342 | int effy = mame_vpos_to_astrocade_vpos(y); |
345 | 343 | UINT16 *dest = &bitmap.pix16(y); |
346 | UINT16 offset = | |
344 | UINT16 offset = | |
347 | 345 | int x; |
348 | 346 | |
349 | 347 | /* star with black */ |
r17967 | r17968 | |
354 | 352 | int effx = x - HORZ_OFFSET/4; |
355 | 353 | |
356 | 354 | /* select either video data or background data */ |
357 | UINT16 data = (effx >= 0 && effx < 80 && effy >= 0 && effy < | |
355 | UINT16 data = (effx >= 0 && effx < 80 && effy >= 0 && effy < | |
358 | 356 | |
359 | 357 | /* 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]; | |
364 | 362 | } |
365 | 363 | } |
366 | 364 |
r17967 | r17968 | |
---|---|---|
463 | 463 | m62_start(machine(), tilemap_get_info_delegate(FUNC(m62_state::get_kungfum_bg_tile_info),this), 32, 0, 8, 8, 64, 32); |
464 | 464 | } |
465 | 465 | |
466 | ||
466 | ||
467 | 467 | { |
468 | m62_state *state = screen.machine().driver_data<m62_state>(); | |
469 | 468 | int i; |
470 | 469 | for (i = 0; i < 6; i++) |
471 | 470 | { |
472 | | |
471 | | |
473 | 472 | } |
474 | 473 | for (i = 6; i < 32; i++) |
475 | 474 | { |
476 | | |
475 | | |
477 | 476 | } |
478 | | |
477 | | |
479 | 478 | draw_sprites(screen.machine(), bitmap, cliprect, 0x1f, 0x00, 0x00); |
480 | | |
479 | | |
481 | 480 | return 0; |
482 | 481 | } |
483 | 482 | |
r17967 | r17968 | |
510 | 509 | m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); /* split type 1 has pen 0 transparent in front half */ |
511 | 510 | } |
512 | 511 | |
513 | ||
512 | ||
514 | 513 | { |
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); | |
518 | 516 | |
519 | | |
517 | | |
520 | 518 | draw_sprites(screen.machine(), bitmap, cliprect, 0x0f, 0x10, 0x00); |
521 | | |
519 | | |
522 | 520 | draw_sprites(screen.machine(), bitmap, cliprect, 0x0f, 0x10, 0x10); |
523 | 521 | return 0; |
524 | 522 | } |
r17967 | r17968 | |
555 | 553 | m_ldrun3_topbottom_mask = data & 1; |
556 | 554 | } |
557 | 555 | |
558 | ||
556 | ||
559 | 557 | { |
560 | m62_state *state = screen.machine().driver_data<m62_state>(); | |
561 | SCREEN_UPDATE16_CALL(ldrun); | |
558 | SCREEN_UPDATE16_CALL_MEMBER(ldrun); | |
562 | 559 | |
563 | if ( | |
560 | if ( | |
564 | 561 | { |
565 | 562 | rectangle my_cliprect = cliprect; |
566 | 563 | |
r17967 | r17968 | |
613 | 610 | m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); /* split type 1 has pen 0 transparent in front half */ |
614 | 611 | } |
615 | 612 | |
616 | ||
613 | ||
617 | 614 | { |
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); | |
624 | 620 | |
625 | | |
621 | | |
626 | 622 | draw_sprites(screen.machine(), bitmap, cliprect, 0x0f, 0x10, 0x00); |
627 | | |
623 | | |
628 | 624 | draw_sprites(screen.machine(), bitmap, cliprect, 0x0f, 0x10, 0x10); |
629 | | |
625 | | |
630 | 626 | return 0; |
631 | 627 | } |
632 | 628 | |
r17967 | r17968 | |
647 | 643 | m62_start(machine(), tilemap_get_info_delegate(FUNC(m62_state::get_ldrun4_bg_tile_info),this), 1, 0, 8, 8, 64, 32); |
648 | 644 | } |
649 | 645 | |
650 | ||
646 | ||
651 | 647 | { |
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); | |
654 | 649 | |
655 | | |
650 | | |
656 | 651 | draw_sprites(screen.machine(), bitmap, cliprect, 0x1f, 0x00, 0x00); |
657 | 652 | return 0; |
658 | 653 | } |
r17967 | r17968 | |
688 | 683 | m62_textlayer(machine(), tilemap_get_info_delegate(FUNC(m62_state::get_lotlot_fg_tile_info),this), 1, 1, 12, 10, 32, 64); |
689 | 684 | } |
690 | 685 | |
691 | ||
686 | ||
692 | 687 | { |
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); | |
699 | 693 | |
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); | |
702 | 696 | draw_sprites(screen.machine(), bitmap, cliprect, 0x1f, 0x00, 0x00); |
703 | 697 | return 0; |
704 | 698 | } |
r17967 | r17968 | |
754 | 748 | m62_textlayer(machine(), tilemap_get_info_delegate(FUNC(m62_state::get_kidniki_fg_tile_info),this), 1, 1, 12, 8, 32, 64); |
755 | 749 | } |
756 | 750 | |
757 | ||
751 | ||
758 | 752 | { |
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); | |
764 | 757 | |
765 | | |
758 | | |
766 | 759 | 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); | |
769 | 762 | return 0; |
770 | 763 | } |
771 | 764 | |
r17967 | r17968 | |
805 | 798 | m62_textlayer(machine(), tilemap_get_info_delegate(FUNC(m62_state::get_spelunkr_fg_tile_info),this), 1, 1, 12, 8, 32, 32); |
806 | 799 | } |
807 | 800 | |
808 | ||
801 | ||
809 | 802 | { |
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); | |
816 | 808 | |
817 | | |
809 | | |
818 | 810 | draw_sprites(screen.machine(), bitmap, cliprect, 0x1f, 0x00, 0x00); |
819 | | |
811 | | |
820 | 812 | return 0; |
821 | 813 | } |
822 | 814 | |
r17967 | r17968 | |
848 | 840 | m62_textlayer(machine(), tilemap_get_info_delegate(FUNC(m62_state::get_spelunkr_fg_tile_info),this), 1, 1, 12, 8, 32, 32); |
849 | 841 | } |
850 | 842 | |
851 | ||
843 | ||
852 | 844 | { |
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); | |
859 | 850 | |
860 | | |
851 | | |
861 | 852 | draw_sprites(screen.machine(), bitmap, cliprect, 0x1f, 0x00, 0x00); |
862 | | |
853 | | |
863 | 854 | return 0; |
864 | 855 | } |
865 | 856 | |
r17967 | r17968 | |
894 | 885 | m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); /* split type 1 has pen 0 transparent in front half */ |
895 | 886 | } |
896 | 887 | |
897 | ||
888 | ||
898 | 889 | { |
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); | |
904 | 894 | |
905 | | |
895 | | |
906 | 896 | 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); | |
909 | 899 | return 0; |
910 | 900 | } |
911 | 901 | |
r17967 | r17968 | |
936 | 926 | m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); /* split type 1 has pen 0 transparent in front half */ |
937 | 927 | } |
938 | 928 | |
939 | ||
929 | ||
940 | 930 | { |
941 | m62_state *state = screen.machine().driver_data<m62_state>(); | |
942 | 931 | int i; |
943 | 932 | for (i = 0; i < 32; i++) |
944 | 933 | { |
945 | | |
934 | | |
946 | 935 | } |
947 | | |
936 | | |
948 | 937 | draw_sprites(screen.machine(), bitmap, cliprect, 0x1f, 0x00, 0x00); |
949 | | |
938 | | |
950 | 939 | return 0; |
951 | 940 | } |
r17967 | r17968 | |
---|---|---|
110 | 110 | } |
111 | 111 | |
112 | 112 | |
113 | ||
113 | ||
114 | 114 | { |
115 | megazone_state *state = screen.machine().driver_data<megazone_state>(); | |
116 | 115 | int offs; |
117 | 116 | int x, y; |
118 | 117 | |
119 | 118 | /* for every character in the Video RAM */ |
120 | for (offs = | |
119 | for (offs = | |
121 | 120 | { |
122 | 121 | int sx, sy, flipx, flipy; |
123 | 122 | |
124 | 123 | sx = offs % 32; |
125 | 124 | 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); | |
128 | 127 | |
129 | if ( | |
128 | if ( | |
130 | 129 | { |
131 | 130 | sx = 31 - sx; |
132 | 131 | sy = 31 - sy; |
r17967 | r17968 | |
134 | 133 | flipy = !flipy; |
135 | 134 | } |
136 | 135 | |
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, | |
140 | 139 | flipx,flipy, |
141 | 140 | 8*sx,8*sy); |
142 | 141 | } |
r17967 | r17968 | |
146 | 145 | int scrollx; |
147 | 146 | int scrolly; |
148 | 147 | |
149 | if ( | |
148 | if ( | |
150 | 149 | { |
151 | scrollx = *state->m_scrolly; | |
152 | scrolly = *state->m_scrollx; | |
150 | scrollx = *m_scrolly; | |
151 | scrolly = *m_scrollx; | |
153 | 152 | } |
154 | 153 | else |
155 | 154 | { |
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; | |
158 | 157 | } |
159 | 158 | |
160 | 159 | |
161 | copyscrollbitmap(bitmap, * | |
160 | copyscrollbitmap(bitmap, * | |
162 | 161 | } |
163 | 162 | |
164 | 163 | |
165 | 164 | /* Draw the sprites. */ |
166 | 165 | { |
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) | |
169 | 168 | { |
170 | 169 | int sx = spriteram[offs + 3]; |
171 | 170 | int sy = 255 - ((spriteram[offs + 1] + 16) & 0xff); |
r17967 | r17968 | |
173 | 172 | int flipx = ~spriteram[offs + 0] & 0x40; |
174 | 173 | int flipy = spriteram[offs + 0] & 0x80; |
175 | 174 | |
176 | if ( | |
175 | if ( | |
177 | 176 | { |
178 | 177 | sx = sx - 11; |
179 | 178 | sy = sy + 2; |
r17967 | r17968 | |
200 | 199 | sx = x; |
201 | 200 | sy = y; |
202 | 201 | |
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); | |
205 | 204 | |
206 | if ( | |
205 | if ( | |
207 | 206 | { |
208 | 207 | sx = 35 - sx; |
209 | 208 | sy = 31 - sy; |
r17967 | r17968 | |
215 | 214 | |
216 | 215 | |
217 | 216 | 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, | |
220 | 219 | flipx,flipy, |
221 | 220 | 8*sx,8*sy); |
222 | 221 | offs++; |
r17967 | r17968 | |
---|---|---|
251 | 251 | * |
252 | 252 | *************************************/ |
253 | 253 | |
254 | ||
254 | ||
255 | 255 | { |
256 | toki_state *state = screen.machine().driver_data<toki_state>(); | |
257 | 256 | int background_y_scroll,foreground_y_scroll,background_x_scroll,foreground_x_scroll; |
258 | 257 | |
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); | |
263 | 262 | |
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 ); | |
266 | 265 | |
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); | |
271 | 270 | |
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 ); | |
274 | 273 | |
275 | | |
274 | | |
276 | 275 | |
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); | |
280 | 279 | } 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); | |
283 | 282 | } |
284 | 283 | toki_draw_sprites(screen.machine(), bitmap,cliprect); |
285 | | |
284 | | |
286 | 285 | return 0; |
287 | 286 | } |
288 | 287 | |
289 | ||
288 | ||
290 | 289 | { |
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 ); | |
298 | 296 | |
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); | |
302 | 300 | } 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); | |
305 | 303 | } |
306 | 304 | |
307 | 305 | tokib_draw_sprites(screen.machine(), bitmap,cliprect); |
308 | | |
306 | | |
309 | 307 | return 0; |
310 | 308 | } |
r17967 | r17968 | |
---|---|---|
52 | 52 | m_fg_tilemap->set_transparent_pen(255); |
53 | 53 | } |
54 | 54 | |
55 | ||
55 | ||
56 | 56 | { |
57 | pass_state *state = screen.machine().driver_data<pass_state>(); | |
58 | 57 | |
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); | |
61 | 60 | |
62 | 61 | return 0; |
63 | 62 | } |
r17967 | r17968 | |
---|---|---|
350 | 350 | copybitmap(bitmap, *state->m_tmp_bitmap2, f, f, state->m_xoffset, 0, cliprect); |
351 | 351 | } |
352 | 352 | |
353 | ||
353 | ||
354 | 354 | { |
355 | fortyl_state *state = screen.machine().driver_data<fortyl_state>(); | |
356 | 355 | draw_pixram(screen.machine(), bitmap, cliprect); |
357 | 356 | |
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); | |
360 | 359 | |
361 | 360 | draw_sprites(screen.machine(), bitmap, cliprect); |
362 | 361 | return 0; |
r17967 | r17968 | |
---|---|---|
124 | 124 | } |
125 | 125 | } |
126 | 126 | |
127 | ||
127 | ||
128 | 128 | { |
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); | |
132 | 131 | draw_sprites(screen.machine(), bitmap, cliprect); |
133 | | |
132 | | |
134 | 133 | return 0; |
135 | 134 | } |
r17967 | r17968 | |
---|---|---|
562 | 562 | } |
563 | 563 | } |
564 | 564 | |
565 | ||
565 | ||
566 | 566 | { |
567 | galaga_state *state = screen.machine().driver_data<galaga_state>(); | |
568 | 567 | |
569 | 568 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
570 | 569 | draw_stars(screen.machine(),bitmap,cliprect); |
571 | 570 | draw_sprites(screen.machine(),bitmap,cliprect); |
572 | | |
571 | | |
573 | 572 | return 0; |
574 | 573 | } |
575 | 574 | |
576 | 575 | |
577 | 576 | |
578 | ||
577 | void | |
579 | 578 | { |
580 | 579 | // falling edge |
581 | if (! | |
580 | if (!st | |
582 | 581 | { |
583 | galaga_state *state = screen.machine().driver_data<galaga_state>(); | |
584 | 582 | /* this function is called by galaga_interrupt_1() */ |
585 | 583 | int s0,s1,s2; |
586 | 584 | static const int speeds[8] = { -1, -2, -3, 0, 3, 2, 1, 0 }; |
587 | 585 | |
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); | |
591 | 589 | |
592 | | |
590 | | |
593 | 591 | } |
594 | 592 | } |
595 | 593 |
r17967 | r17968 | |
---|---|---|
359 | 359 | } |
360 | 360 | |
361 | 361 | |
362 | ||
362 | ||
363 | 363 | { |
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)); | |
366 | 365 | bitmap.fill(0, cliprect); |
367 | 366 | |
368 | | |
367 | | |
369 | 368 | draw_lasso(screen.machine(), bitmap, cliprect); |
370 | 369 | draw_sprites(screen.machine(), bitmap, cliprect, 0); |
371 | 370 | |
372 | 371 | return 0; |
373 | 372 | } |
374 | 373 | |
375 | ||
374 | ||
376 | 375 | { |
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)); | |
379 | 377 | bitmap.fill(0, cliprect); |
380 | 378 | |
381 | | |
379 | | |
382 | 380 | draw_sprites(screen.machine(), bitmap, cliprect, 0); |
383 | 381 | |
384 | 382 | return 0; |
385 | 383 | } |
386 | 384 | |
387 | 385 | |
388 | ||
386 | ||
389 | 387 | { |
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)); | |
392 | 389 | wwjgtin_set_last_four_colors(screen.machine(), screen.machine().colortable); |
393 | 390 | |
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); | |
396 | 393 | |
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); | |
399 | 396 | else |
400 | 397 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
401 | 398 | |
402 | 399 | draw_sprites(screen.machine(), bitmap, cliprect, 1); // reverse order |
403 | | |
400 | | |
404 | 401 | |
405 | 402 | return 0; |
406 | 403 | } |
r17967 | r17968 | |
---|---|---|
660 | 660 | ******************************************************************************/ |
661 | 661 | |
662 | 662 | |
663 | ||
663 | ||
664 | 664 | { |
665 | nbmj8688_state *state = screen.machine().driver_data<nbmj8688_state>(); | |
666 | 665 | int x, y; |
667 | 666 | |
668 | if ( | |
667 | if ( | |
669 | 668 | { |
670 | | |
669 | | |
671 | 670 | for (y = 0; y < 256; y++) |
672 | 671 | { |
673 | 672 | for (x = 0; x < 512; x++) |
674 | 673 | { |
675 | update_pixel( | |
674 | update_pixel( | |
676 | 675 | } |
677 | 676 | } |
678 | 677 | } |
679 | 678 | |
680 | if ( | |
679 | if ( | |
681 | 680 | { |
682 | 681 | 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; | |
685 | 684 | |
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); | |
688 | 687 | } |
689 | 688 | else |
690 | 689 | bitmap.fill(0); |
r17967 | r17968 | |
694 | 693 | |
695 | 694 | |
696 | 695 | |
697 | ||
696 | ||
698 | 697 | { |
699 | nbmj8688_state *state = screen.machine().driver_data<nbmj8688_state>(); | |
700 | 698 | int x, y, b; |
701 | 699 | |
702 | 700 | for (y = 0;y < 64;y++) |
703 | 701 | for (x = 0;x < 60;x++) |
704 | 702 | { |
705 | int data = | |
703 | int data = | |
706 | 704 | |
707 | 705 | for (b = 0;b < 8;b++) |
708 | 706 | bitmap.pix16(y, (8*x+b)) = (data & (1<<b)) ? 0x0000 : 0x18ff; |
r17967 | r17968 | |
710 | 708 | return 0; |
711 | 709 | } |
712 | 710 | |
713 | ||
711 | ||
714 | 712 | { |
715 | nbmj8688_state *state = screen.machine().driver_data<nbmj8688_state>(); | |
716 | 713 | int x, y, b; |
717 | 714 | |
718 | 715 | for (y = 0;y < 64;y++) |
719 | 716 | for (x = 0;x < 60;x++) |
720 | 717 | { |
721 | int data = | |
718 | int data = | |
722 | 719 | |
723 | 720 | for (b = 0;b < 8;b++) |
724 | 721 | bitmap.pix16(y, (8*x+b)) = (data & (1<<b)) ? 0x0000 : 0x18ff; |
r17967 | r17968 | |
---|---|---|
394 | 394 | |
395 | 395 | /**************************************************************************/ |
396 | 396 | |
397 | ||
397 | ||
398 | 398 | { |
399 | taitoh_state *state = screen.machine().driver_data<taitoh_state>(); | |
400 | 399 | |
401 | tc0080vco_tilemap_update( | |
400 | tc0080vco_tilemap_update( | |
402 | 401 | |
403 | 402 | taitoh_log_vram(screen.machine()); |
404 | 403 | |
405 | 404 | bitmap.fill(0, cliprect); |
406 | 405 | |
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); | |
409 | 408 | syvalion_draw_sprites(screen.machine(), bitmap,cliprect); |
410 | tc0080vco_tilemap_draw( | |
409 | tc0080vco_tilemap_draw( | |
411 | 410 | |
412 | 411 | return 0; |
413 | 412 | } |
414 | 413 | |
415 | 414 | |
416 | ||
415 | ||
417 | 416 | { |
418 | taitoh_state *state = screen.machine().driver_data<taitoh_state>(); | |
419 | 417 | |
420 | tc0080vco_tilemap_update( | |
418 | tc0080vco_tilemap_update( | |
421 | 419 | |
422 | 420 | taitoh_log_vram(screen.machine()); |
423 | 421 | |
r17967 | r17968 | |
425 | 423 | |
426 | 424 | #ifdef MAME_DEBUG |
427 | 425 | if (!screen.machine().input().code_pressed(KEYCODE_A)) |
428 | tc0080vco_tilemap_draw( | |
426 | tc0080vco_tilemap_draw( | |
429 | 427 | if (!screen.machine().input().code_pressed(KEYCODE_S)) |
430 | 428 | recordbr_draw_sprites(screen.machine(), bitmap, cliprect, 0); |
431 | 429 | if (!screen.machine().input().code_pressed(KEYCODE_D)) |
432 | tc0080vco_tilemap_draw( | |
430 | tc0080vco_tilemap_draw( | |
433 | 431 | if (!screen.machine().input().code_pressed(KEYCODE_F)) |
434 | 432 | recordbr_draw_sprites(screen.machine(), bitmap, cliprect, 1); |
435 | 433 | #else |
436 | tc0080vco_tilemap_draw( | |
434 | tc0080vco_tilemap_draw( | |
437 | 435 | recordbr_draw_sprites(screen.machine(), bitmap, cliprect, 0); |
438 | tc0080vco_tilemap_draw( | |
436 | tc0080vco_tilemap_draw( | |
439 | 437 | recordbr_draw_sprites(screen.machine(), bitmap, cliprect, 1); |
440 | 438 | #endif |
441 | 439 | |
442 | tc0080vco_tilemap_draw( | |
440 | tc0080vco_tilemap_draw( | |
443 | 441 | return 0; |
444 | 442 | } |
445 | 443 | |
446 | 444 | |
447 | ||
445 | ||
448 | 446 | { |
449 | taitoh_state *state = screen.machine().driver_data<taitoh_state>(); | |
450 | 447 | |
451 | tc0080vco_tilemap_update( | |
448 | tc0080vco_tilemap_update( | |
452 | 449 | |
453 | 450 | taitoh_log_vram(screen.machine()); |
454 | 451 | |
r17967 | r17968 | |
456 | 453 | |
457 | 454 | #ifdef MAME_DEBUG |
458 | 455 | if (!screen.machine().input().code_pressed(KEYCODE_A)) |
459 | tc0080vco_tilemap_draw( | |
456 | tc0080vco_tilemap_draw( | |
460 | 457 | if (!screen.machine().input().code_pressed(KEYCODE_S)) |
461 | 458 | dleague_draw_sprites(screen.machine(), bitmap, cliprect, 0); |
462 | 459 | if (!screen.machine().input().code_pressed(KEYCODE_D)) |
463 | tc0080vco_tilemap_draw( | |
460 | tc0080vco_tilemap_draw( | |
464 | 461 | if (!screen.machine().input().code_pressed(KEYCODE_F)) |
465 | 462 | dleague_draw_sprites(screen.machine(), bitmap, cliprect, 1); |
466 | 463 | #else |
467 | tc0080vco_tilemap_draw( | |
464 | tc0080vco_tilemap_draw( | |
468 | 465 | dleague_draw_sprites (screen.machine(), bitmap, cliprect, 0); |
469 | tc0080vco_tilemap_draw( | |
466 | tc0080vco_tilemap_draw( | |
470 | 467 | dleague_draw_sprites (screen.machine(), bitmap, cliprect, 1); |
471 | 468 | #endif |
472 | 469 | |
473 | tc0080vco_tilemap_draw( | |
470 | tc0080vco_tilemap_draw( | |
474 | 471 | return 0; |
475 | 472 | } |
476 | 473 |
r17967 | r17968 | |
---|---|---|
409 | 409 | state->m_bg_tilemap->draw(bitmap, clip, 0, 0); |
410 | 410 | } |
411 | 411 | |
412 | ||
412 | ||
413 | 413 | { |
414 | psychic5_state *state = screen.machine().driver_data<psychic5_state>(); | |
415 | 414 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
416 | if ( | |
415 | if ( | |
417 | 416 | draw_background(screen.machine(), bitmap, cliprect); |
418 | if (!( | |
417 | if (!( | |
419 | 418 | draw_sprites(screen.machine(), bitmap, cliprect); |
420 | | |
419 | | |
421 | 420 | return 0; |
422 | 421 | } |
423 | 422 | |
424 | ||
423 | ||
425 | 424 | { |
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); | |
429 | 427 | else |
430 | 428 | bitmap.fill(screen.machine().pens[0x0ff], cliprect); |
431 | 429 | draw_sprites(screen.machine(), bitmap, cliprect); |
432 | | |
430 | | |
433 | 431 | return 0; |
434 | 432 | } |
r17967 | r17968 | |
---|---|---|
111 | 111 | } |
112 | 112 | |
113 | 113 | |
114 | ||
114 | ||
115 | 115 | { |
116 | _8080bw_state *state = screen.machine().driver_data<_8080bw_state>(); | |
117 | 116 | pen_t pens[NUM_PENS]; |
118 | 117 | offs_t offs; |
119 | 118 | UINT8 *prom; |
r17967 | r17968 | |
121 | 120 | |
122 | 121 | invadpt2_get_pens(pens); |
123 | 122 | |
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]; | |
126 | 125 | |
127 | for (offs = 0; offs < | |
126 | for (offs = 0; offs < | |
128 | 127 | { |
129 | 128 | UINT8 y = offs >> 5; |
130 | 129 | UINT8 x = offs << 3; |
131 | 130 | |
132 | 131 | offs_t color_address = (offs >> 8 << 5) | (offs & 0x1f); |
133 | 132 | |
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; | |
136 | 135 | |
137 | 136 | set_8_pixels(screen.machine(), bitmap, y, x, data, pens, fore_color, 0); |
138 | 137 | } |
r17967 | r17968 | |
143 | 142 | } |
144 | 143 | |
145 | 144 | |
146 | ||
145 | ||
147 | 146 | { |
148 | _8080bw_state *state = screen.machine().driver_data<_8080bw_state>(); | |
149 | 147 | pen_t pens[NUM_PENS]; |
150 | 148 | offs_t offs; |
151 | 149 | UINT8 *color_map_base; |
r17967 | r17968 | |
153 | 151 | |
154 | 152 | invadpt2_get_pens(pens); |
155 | 153 | |
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]; | |
158 | 156 | |
159 | for (offs = 0; offs < | |
157 | for (offs = 0; offs < | |
160 | 158 | { |
161 | 159 | UINT8 y = offs >> 5; |
162 | 160 | UINT8 x = offs << 3; |
163 | 161 | |
164 | 162 | offs_t color_address = (offs >> 8 << 5) | (offs & 0x1f); |
165 | 163 | |
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; | |
168 | 166 | |
169 | 167 | /* blue background */ |
170 | 168 | set_8_pixels(screen.machine(), bitmap, y, x, data, pens, fore_color, 2); |
r17967 | r17968 | |
176 | 174 | } |
177 | 175 | |
178 | 176 | |
179 | ||
177 | ||
180 | 178 | { |
181 | _8080bw_state *state = screen.machine().driver_data<_8080bw_state>(); | |
182 | 179 | pen_t pens[NUM_PENS]; |
183 | 180 | offs_t offs; |
184 | 181 | UINT8 *background_map_base; |
185 | 182 | |
186 | 183 | invadpt2_get_pens(pens); |
187 | 184 | |
188 | background_map_base = | |
185 | background_map_base = | |
189 | 186 | |
190 | for (offs = 0; offs < | |
187 | for (offs = 0; offs < | |
191 | 188 | { |
192 | 189 | UINT8 back_color = 0; |
193 | 190 | |
194 | 191 | UINT8 y = offs >> 5; |
195 | 192 | UINT8 x = offs << 3; |
196 | 193 | |
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; | |
199 | 196 | |
200 | if (! | |
197 | if (! | |
201 | 198 | { |
202 | 199 | offs_t back_address = (offs >> 8 << 5) | (offs & 0x1f); |
203 | 200 | |
r17967 | r17968 | |
205 | 202 | |
206 | 203 | /* the equations derived from the schematics don't appear to produce |
207 | 204 | the right colors, but this one does, at least for this PROM */ |
208 | back_color = (((back_data & 0x0c) == 0x0c) && | |
205 | back_color = (((back_data & 0x0c) == 0x0c) && | |
209 | 206 | } |
210 | 207 | |
211 | 208 | set_8_pixels(screen.machine(), bitmap, y, x, data, pens, fore_color, back_color); |
212 | 209 | } |
213 | 210 | |
214 | clear_extra_columns(screen.machine(), bitmap, pens, | |
211 | clear_extra_columns(screen.machine(), bitmap, pens, | |
215 | 212 | |
216 | 213 | return 0; |
217 | 214 | } |
218 | 215 | |
219 | 216 | |
220 | ||
217 | ||
221 | 218 | { |
222 | _8080bw_state *state = screen.machine().driver_data<_8080bw_state>(); | |
223 | 219 | pen_t pens[NUM_PENS]; |
224 | 220 | offs_t offs; |
225 | 221 | |
226 | 222 | invadpt2_get_pens(pens); |
227 | 223 | |
228 | for (offs = 0; offs < | |
224 | for (offs = 0; offs < | |
229 | 225 | { |
230 | 226 | UINT8 y = offs >> 5; |
231 | 227 | UINT8 x = offs << 3; |
232 | 228 | |
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; | |
235 | 231 | |
236 | 232 | /* blue background */ |
237 | 233 | set_8_pixels(screen.machine(), bitmap, y, x, data, pens, fore_color, 2); |
r17967 | r17968 | |
243 | 239 | } |
244 | 240 | |
245 | 241 | |
246 | ||
242 | ||
247 | 243 | { |
248 | _8080bw_state *state = screen.machine().driver_data<_8080bw_state>(); | |
249 | 244 | pen_t pens[NUM_PENS]; |
250 | 245 | offs_t offs; |
251 | 246 | |
252 | 247 | invadpt2_get_pens(pens); |
253 | 248 | |
254 | for (offs = 0; offs < | |
249 | for (offs = 0; offs < | |
255 | 250 | { |
256 | 251 | UINT8 y = offs >> 5; |
257 | 252 | UINT8 x = offs << 3; |
258 | 253 | |
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; | |
261 | 256 | |
262 | 257 | set_8_pixels(screen.machine(), bitmap, y, x, data, pens, fore_color, 0); |
263 | 258 | } |
r17967 | r17968 | |
268 | 263 | } |
269 | 264 | |
270 | 265 | |
271 | ||
266 | ||
272 | 267 | { |
273 | _8080bw_state *state = screen.machine().driver_data<_8080bw_state>(); | |
274 | 268 | pen_t pens[NUM_PENS]; |
275 | 269 | offs_t offs; |
276 | 270 | UINT8 *color_map_base; |
r17967 | r17968 | |
279 | 273 | invadpt2_get_pens(pens); |
280 | 274 | |
281 | 275 | color_map_base = screen.machine().root_device().memregion("proms")->base(); |
282 | cloud_gfx = | |
276 | cloud_gfx = | |
283 | 277 | |
284 | for (offs = 0; offs < | |
278 | for (offs = 0; offs < | |
285 | 279 | { |
286 | 280 | UINT8 y = offs >> 5; |
287 | 281 | UINT8 x = offs << 3; |
288 | 282 | |
289 | UINT8 data = | |
283 | UINT8 data = | |
290 | 284 | |
291 | 285 | offs_t color_address = (offs >> 8 << 5) | (offs & 0x1f); |
292 | 286 | |
r17967 | r17968 | |
297 | 291 | bits 1 and 2 are marked 'not use' (sic) */ |
298 | 292 | |
299 | 293 | UINT8 back_color = (color_map_base[color_address] & 0x01) ? 6 : 2; |
300 | UINT8 fore_color = ~ | |
294 | UINT8 fore_color = ~ | |
301 | 295 | |
302 | UINT8 cloud_y = y - | |
296 | UINT8 cloud_y = y - | |
303 | 297 | |
304 | 298 | if ((color_map_base[color_address] & 0x08) || (cloud_y >= 64)) |
305 | 299 | { |
r17967 | r17968 | |
340 | 334 | } |
341 | 335 | |
342 | 336 | |
343 | ||
337 | ||
344 | 338 | { |
345 | _8080bw_state *state = screen.machine().driver_data<_8080bw_state>(); | |
346 | 339 | pen_t pens[NUM_PENS]; |
347 | 340 | offs_t offs; |
348 | 341 | |
349 | 342 | invadpt2_get_pens(pens); |
350 | 343 | |
351 | for (offs = 0; offs < | |
344 | for (offs = 0; offs < | |
352 | 345 | { |
353 | 346 | UINT8 y = offs >> 5; |
354 | 347 | UINT8 x = offs << 3; |
355 | 348 | |
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; | |
358 | 351 | |
359 | 352 | set_8_pixels(screen.machine(), bitmap, y, x, data, pens, fore_color, 0); |
360 | 353 | } |
r17967 | r17968 | |
365 | 358 | } |
366 | 359 | |
367 | 360 | |
368 | ||
361 | ||
369 | 362 | { |
370 | _8080bw_state *state = screen.machine().driver_data<_8080bw_state>(); | |
371 | 363 | pen_t pens[NUM_PENS]; |
372 | 364 | offs_t offs; |
373 | 365 | |
374 | 366 | cosmo_get_pens(pens); |
375 | 367 | |
376 | for (offs = 0; offs < | |
368 | for (offs = 0; offs < | |
377 | 369 | { |
378 | 370 | UINT8 y = offs >> 5; |
379 | 371 | UINT8 x = offs << 3; |
380 | 372 | |
381 | 373 | offs_t color_address = (offs >> 8 << 5) | (offs & 0x1f); |
382 | 374 | |
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; | |
385 | 377 | |
386 | 378 | set_8_pixels(screen.machine(), bitmap, y, x, data, pens, fore_color, 0); |
387 | 379 | } |
r17967 | r17968 | |
392 | 384 | } |
393 | 385 | |
394 | 386 | |
395 | ||
387 | ||
396 | 388 | { |
397 | _8080bw_state *state = screen.machine().driver_data<_8080bw_state>(); | |
398 | 389 | pen_t pens[NUM_PENS]; |
399 | 390 | offs_t offs; |
400 | 391 | UINT8 *color_map_base; |
r17967 | r17968 | |
402 | 393 | |
403 | 394 | cosmo_get_pens(pens); |
404 | 395 | |
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]; | |
407 | 398 | |
408 | for (offs = 0; offs < | |
399 | for (offs = 0; offs < | |
409 | 400 | { |
410 | 401 | UINT8 y = offs >> 5; |
411 | 402 | UINT8 x = offs << 3; |
412 | 403 | |
413 | 404 | offs_t color_address = (offs >> 8 << 5) | (offs & 0x1f); |
414 | 405 | |
415 | UINT8 data = | |
406 | UINT8 data = | |
416 | 407 | UINT8 fore_color = color_map_base[color_address] & 0x07; |
417 | 408 | |
418 | 409 | set_8_pixels(screen.machine(), bitmap, y, x, data, pens, fore_color, 0); |
r17967 | r17968 | |
424 | 415 | } |
425 | 416 | |
426 | 417 | |
427 | ||
418 | ||
428 | 419 | { |
429 | _8080bw_state *state = screen.machine().driver_data<_8080bw_state>(); | |
430 | 420 | pen_t pens[2] = { RGB_BLACK, RGB_WHITE }; |
431 | 421 | offs_t offs; |
432 | 422 | |
433 | for (offs = 0; offs < | |
423 | for (offs = 0; offs < | |
434 | 424 | { |
435 | 425 | int i; |
436 | 426 | |
437 | 427 | UINT8 y = offs >> 5; |
438 | 428 | UINT8 x = offs << 3; |
439 | 429 | |
440 | UINT8 data = | |
430 | UINT8 data = | |
441 | 431 | |
442 | 432 | for (i = 0; i < 8; i++) |
443 | 433 | { |
r17967 | r17968 | |
455 | 445 | } |
456 | 446 | |
457 | 447 | |
458 | ||
448 | ||
459 | 449 | { |
460 | _8080bw_state *state = screen.machine().driver_data<_8080bw_state>(); | |
461 | 450 | pen_t pens[NUM_PENS]; |
462 | 451 | offs_t offs; |
463 | 452 | |
464 | 453 | sflush_get_pens(pens); |
465 | 454 | |
466 | for (offs = 0; offs < | |
455 | for (offs = 0; offs < | |
467 | 456 | { |
468 | 457 | UINT8 y = offs >> 5; |
469 | 458 | UINT8 x = offs << 3; |
470 | 459 | |
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; | |
473 | 462 | |
474 | 463 | set_8_pixels(screen.machine(), bitmap, y, x, data, pens, fore_color, 0); |
475 | 464 | } |
r17967 | r17968 | |
---|---|---|
199 | 199 | SCREEN REFRESH |
200 | 200 | **************************************************************/ |
201 | 201 | |
202 | ||
202 | ||
203 | 203 | { |
204 | othunder_state *state = screen.machine().driver_data<othunder_state>(); | |
205 | 204 | int layer[3]; |
206 | 205 | |
207 | tc0100scn_tilemap_update( | |
206 | tc0100scn_tilemap_update( | |
208 | 207 | |
209 | layer[0] = tc0100scn_bottomlayer( | |
208 | layer[0] = tc0100scn_bottomlayer( | |
210 | 209 | layer[1] = layer[0] ^ 1; |
211 | 210 | layer[2] = 2; |
212 | 211 | |
r17967 | r17968 | |
215 | 214 | /* Ensure screen blanked even when bottom layer not drawn due to disable bit */ |
216 | 215 | bitmap.fill(0, cliprect); |
217 | 216 | |
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); | |
221 | 220 | |
222 | 221 | /* Sprites can be under/over the layer below text layer */ |
223 | 222 | { |
r17967 | r17968 | |
---|---|---|
239 | 239 | } |
240 | 240 | |
241 | 241 | |
242 | ||
242 | ||
243 | 243 | { |
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; | |
246 | 245 | |
247 | 246 | #ifdef MAME_DEBUG |
248 | 247 | if (screen.machine().input().code_pressed(KEYCODE_Z)) |
r17967 | r17968 | |
256 | 255 | if (msk != 0) layers_ctrl1 &= msk; |
257 | 256 | |
258 | 257 | #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)); | |
264 | 263 | |
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 } | |
270 | 269 | |
271 | 270 | } |
272 | 271 | #endif |
273 | 272 | |
274 | 273 | |
275 | 274 | if (layers_ctrl1 & 1) |
276 | | |
275 | | |
277 | 276 | else |
278 | 277 | bitmap.fill(0, cliprect); |
279 | 278 | |
280 | 279 | if (layers_ctrl1 & 2) |
281 | | |
280 | | |
282 | 281 | if (layers_ctrl1 & 8) |
283 | 282 | draw_sprites(screen.machine(), bitmap, cliprect); |
284 | 283 | if (layers_ctrl1 & 4) |
285 | | |
284 | | |
286 | 285 | |
287 | 286 | return 0; |
288 | 287 | } |
r17967 | r17968 | |
---|---|---|
171 | 171 | } |
172 | 172 | } |
173 | 173 | |
174 | ||
174 | ||
175 | 175 | { |
176 | tail2nos_state *state = screen.machine().driver_data<tail2nos_state>(); | |
177 | 176 | |
178 | if ( | |
177 | if ( | |
179 | 178 | { |
180 | k051316_zoom_draw( | |
179 | k051316_zoom_draw( | |
181 | 180 | draw_sprites(screen.machine(), bitmap, cliprect); |
182 | | |
181 | | |
183 | 182 | } |
184 | 183 | else |
185 | 184 | bitmap.fill(0, cliprect); |
r17967 | r17968 | |
---|---|---|
142 | 142 | } |
143 | 143 | } |
144 | 144 | |
145 | ||
145 | ||
146 | 146 | { |
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); | |
149 | 148 | draw_sprites(screen.machine(), bitmap, cliprect); |
150 | 149 | return 0; |
151 | 150 | } |
r17967 | r17968 | |
---|---|---|
103 | 103 | save_pointer(NAME(m_effectram), 0x400); |
104 | 104 | } |
105 | 105 | |
106 | ||
106 | ||
107 | 107 | { |
108 | quasar_state *state = screen.machine().driver_data<quasar_state>(); | |
109 | 108 | int offs; |
110 | 109 | |
111 | 110 | /* for every character in the video RAM */ |
112 | 111 | for (offs = 0; offs < 0x0400; offs++) |
113 | 112 | { |
114 | 113 | int ox, oy; |
115 | UINT8 code = | |
114 | UINT8 code = | |
116 | 115 | UINT8 x = (offs & 0x1f) << 3; |
117 | 116 | UINT8 y = (offs >> 5) << 3; |
118 | 117 | |
119 | 118 | // While we have the current character code, draw the effects layer |
120 | 119 | // intensity / on and off controlled by latch |
121 | 120 | |
122 | int forecolor = 0x208 + | |
121 | int forecolor = 0x208 + | |
123 | 122 | |
124 | 123 | for (ox = 0; ox < 8; ox++) |
125 | 124 | for (oy = 0; oy < 8; oy++) |
r17967 | r17968 | |
128 | 127 | /* Main Screen */ |
129 | 128 | drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[0], |
130 | 129 | code, |
131 | | |
130 | | |
132 | 131 | 0,0, |
133 | 132 | x,y,0); |
134 | 133 | |
135 | 134 | |
136 | 135 | /* background for Collision Detection (it can only hit certain items) */ |
137 | if(( | |
136 | if(( | |
138 | 137 | { |
139 | drawgfx_opaque( | |
138 | drawgfx_opaque( | |
140 | 139 | code, |
141 | 140 | 64, |
142 | 141 | 0,0, |
r17967 | r17968 | |
145 | 144 | } |
146 | 145 | |
147 | 146 | /* 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); | |
151 | 150 | |
152 | 151 | /* Bullet Hardware */ |
153 | 152 | for (offs = 8; offs < 256; offs++ ) |
154 | 153 | { |
155 | if( | |
154 | if( | |
156 | 155 | { |
157 | 156 | int ct; |
158 | 157 | for (ct = 0; ct < 1; ct++) |
159 | 158 | { |
160 | int bx = 255 - 9 - | |
159 | int bx = 255 - 9 - | |
161 | 160 | |
162 | 161 | /* 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; | |
165 | 164 | |
166 | 165 | bitmap.pix16(offs, bx) = 7; |
167 | 166 | } |
r17967 | r17968 | |
190 | 189 | bitmap.pix16(y, x) = S2636_PIXEL_COLOR(pixel); |
191 | 190 | |
192 | 191 | /* S2636 vs. background collision detection */ |
193 | if (colortable_entry_get_value(screen.machine().colortable, | |
192 | if (colortable_entry_get_value(screen.machine().colortable, | |
194 | 193 | { |
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; | |
197 | 196 | } |
198 | 197 | } |
199 | 198 | } |
r17967 | r17968 | |
---|---|---|
427 | 427 | } |
428 | 428 | } |
429 | 429 | |
430 | ||
430 | void | |
431 | 431 | { |
432 | 432 | // rising edge |
433 | if ( | |
433 | if (st | |
434 | 434 | { |
435 | slapshot_state *state = screen.machine().driver_data<slapshot_state>(); | |
436 | 435 | |
437 | 436 | taito_update_sprites_active_area(screen.machine()); |
438 | 437 | |
439 | | |
438 | | |
440 | 439 | } |
441 | 440 | } |
442 | 441 | |
r17967 | r17968 | |
457 | 456 | a bg layer given priority over some sprites. |
458 | 457 | ********************************************************************/ |
459 | 458 | |
460 | ||
459 | ||
461 | 460 | { |
462 | slapshot_state *state = screen.machine().driver_data<slapshot_state>(); | |
463 | 461 | address_space &space = screen.machine().driver_data()->generic_space(); |
464 | 462 | UINT8 layer[5]; |
465 | 463 | UINT8 tilepri[5]; |
r17967 | r17968 | |
469 | 467 | #ifdef MAME_DEBUG |
470 | 468 | if (screen.machine().input().code_pressed_once (KEYCODE_Z)) |
471 | 469 | { |
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]); | |
474 | 472 | } |
475 | 473 | |
476 | 474 | if (screen.machine().input().code_pressed_once (KEYCODE_X)) |
477 | 475 | { |
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]); | |
480 | 478 | } |
481 | 479 | |
482 | 480 | if (screen.machine().input().code_pressed_once (KEYCODE_C)) |
483 | 481 | { |
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]); | |
486 | 484 | } |
487 | 485 | |
488 | 486 | if (screen.machine().input().code_pressed_once (KEYCODE_V)) |
489 | 487 | { |
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]); | |
492 | 490 | } |
493 | 491 | |
494 | 492 | if (screen.machine().input().code_pressed_once (KEYCODE_B)) |
495 | 493 | { |
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]); | |
498 | 496 | } |
499 | 497 | #endif |
500 | 498 | |
501 | 499 | taito_handle_sprite_buffering(screen.machine()); |
502 | 500 | |
503 | tc0480scp_tilemap_update( | |
501 | tc0480scp_tilemap_update( | |
504 | 502 | |
505 | priority = tc0480scp_get_bg_priority( | |
503 | priority = tc0480scp_get_bg_priority( | |
506 | 504 | |
507 | 505 | layer[0] = (priority & 0xf000) >> 12; /* tells us which bg layer is bottom */ |
508 | 506 | layer[1] = (priority & 0x0f00) >> 8; |
r17967 | r17968 | |
510 | 508 | layer[3] = (priority & 0x000f) >> 0; /* tells us which is top */ |
511 | 509 | layer[4] = 4; /* text layer always over bg layers */ |
512 | 510 | |
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 */ | |
517 | 515 | |
518 | 516 | /* we actually assume text layer is on top of everything anyway, but FWIW... */ |
519 | tilepri[layer[4]] = tc0360pri_r( | |
517 | tilepri[layer[4]] = tc0360pri_r( | |
520 | 518 | |
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; | |
525 | 523 | |
526 | 524 | screen.machine().priority_bitmap.fill(0, cliprect); |
527 | 525 | bitmap.fill(0, cliprect); |
528 | 526 | |
529 | 527 | #ifdef MAME_DEBUG |
530 | if ( | |
528 | if ( | |
531 | 529 | #endif |
532 | tc0480scp_tilemap_draw( | |
530 | tc0480scp_tilemap_draw( | |
533 | 531 | |
534 | 532 | #ifdef MAME_DEBUG |
535 | if ( | |
533 | if ( | |
536 | 534 | #endif |
537 | tc0480scp_tilemap_draw( | |
535 | tc0480scp_tilemap_draw( | |
538 | 536 | |
539 | 537 | #ifdef MAME_DEBUG |
540 | if ( | |
538 | if ( | |
541 | 539 | #endif |
542 | tc0480scp_tilemap_draw( | |
540 | tc0480scp_tilemap_draw( | |
543 | 541 | |
544 | 542 | #ifdef MAME_DEBUG |
545 | if ( | |
543 | if ( | |
546 | 544 | #endif |
547 | tc0480scp_tilemap_draw( | |
545 | tc0480scp_tilemap_draw( | |
548 | 546 | |
549 | 547 | { |
550 | 548 | int primasks[4] = {0,0,0,0}; |
r17967 | r17968 | |
568 | 566 | */ |
569 | 567 | |
570 | 568 | #ifdef MAME_DEBUG |
571 | if ( | |
569 | if ( | |
572 | 570 | #endif |
573 | tc0480scp_tilemap_draw( | |
571 | tc0480scp_tilemap_draw( | |
574 | 572 | return 0; |
575 | 573 | } |
576 | 574 |
r17967 | r17968 | |
---|---|---|
54 | 54 | m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(xyonix_state::get_xyonix_tile_info),this), TILEMAP_SCAN_ROWS, 4, 8, 80, 32); |
55 | 55 | } |
56 | 56 | |
57 | ||
57 | ||
58 | 58 | { |
59 | xyonix_state *state = screen.machine().driver_data<xyonix_state>(); | |
60 | 59 | |
61 | | |
60 | | |
62 | 61 | return 0; |
63 | 62 | } |
r17967 | r17968 | |
---|---|---|
1086 | 1086 | * |
1087 | 1087 | *************************************/ |
1088 | 1088 | |
1089 | ||
1089 | ||
1090 | 1090 | { |
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; | |
1093 | 1092 | int count = 0; |
1094 | 1093 | int x, y; |
1095 | 1094 | |
r17967 | r17968 | |
1104 | 1103 | for (y = 0; y < 256; y++) |
1105 | 1104 | { |
1106 | 1105 | 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]; | |
1110 | 1109 | |
1111 | 1110 | /* do the blending */ |
1112 | 1111 | for (x = 0; x < 256; x++) |
1113 | 1112 | { |
1114 | 1113 | int fpix = *fg++; |
1115 | int bpix = bg[(x + | |
1114 | int bpix = bg[(x + | |
1116 | 1115 | scanline[x] = bpix | (fpix << 3); |
1117 | 1116 | if (fpix && (bpix & bgcollmask) && count++ < 128) |
1118 | 1117 | screen.machine().scheduler().timer_set(screen.time_until_pos(y, x), FUNC(bgcoll_irq_callback), x | (y << 8)); |
r17967 | r17968 | |
---|---|---|
249 | 249 | } |
250 | 250 | } |
251 | 251 | |
252 | ||
252 | ||
253 | 253 | { |
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]); | |
258 | 257 | |
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); | |
261 | 260 | else |
262 | 261 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
263 | 262 | |
264 | if ( | |
263 | if ( | |
265 | 264 | draw_sprites(screen.machine(), bitmap, cliprect, 0); |
266 | 265 | |
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); | |
269 | 268 | |
270 | if ( | |
269 | if ( | |
271 | 270 | draw_sprites(screen.machine(), bitmap, cliprect, 1); |
272 | 271 | |
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); | |
275 | 274 | |
276 | 275 | return 0; |
277 | 276 | } |
r17967 | r17968 | |
---|---|---|
235 | 235 | m_fg_tilemap->set_transparent_pen(0); |
236 | 236 | } |
237 | 237 | |
238 | ||
238 | ||
239 | 239 | { |
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); | |
243 | 242 | return 0; |
244 | 243 | } |
245 | 244 |
r17967 | r17968 | |
---|---|---|
124 | 124 | |
125 | 125 | /******************************************************************************/ |
126 | 126 | |
127 | ||
127 | ||
128 | 128 | { |
129 | cninja_state *state = screen.machine().driver_data<cninja_state>(); | |
130 | 129 | address_space &space = screen.machine().driver_data()->generic_space(); |
131 | UINT16 flip = deco16ic_pf_control_r( | |
130 | UINT16 flip = deco16ic_pf_control_r( | |
132 | 131 | |
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); | |
136 | 135 | |
137 | 136 | /* Draw playfields */ |
138 | 137 | screen.machine().priority_bitmap.fill(0, cliprect); |
139 | 138 | 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); | |
146 | 145 | return 0; |
147 | 146 | } |
148 | 147 | |
149 | ||
148 | ||
150 | 149 | { |
151 | cninja_state *state = screen.machine().driver_data<cninja_state>(); | |
152 | 150 | address_space &space = screen.machine().driver_data()->generic_space(); |
153 | UINT16 flip = deco16ic_pf_control_r( | |
151 | UINT16 flip = deco16ic_pf_control_r( | |
154 | 152 | |
155 | 153 | /* 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 ); | |
158 | 156 | |
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); | |
162 | 160 | |
163 | 161 | /* Draw playfields */ |
164 | 162 | screen.machine().priority_bitmap.fill(0, cliprect); |
165 | 163 | 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); | |
170 | 168 | cninjabl_draw_sprites(screen.machine(), bitmap, cliprect); |
171 | deco16ic_tilemap_1_draw( | |
169 | deco16ic_tilemap_1_draw( | |
172 | 170 | return 0; |
173 | 171 | } |
174 | 172 | |
175 | ||
173 | ||
176 | 174 | { |
177 | cninja_state *state = screen.machine().driver_data<cninja_state>(); | |
178 | 175 | address_space &space = screen.machine().driver_data()->generic_space(); |
179 | UINT16 flip = deco16ic_pf_control_r( | |
176 | UINT16 flip = deco16ic_pf_control_r( | |
180 | 177 | |
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); | |
184 | 181 | |
185 | 182 | screen.machine().priority_bitmap.fill(0, cliprect); |
186 | 183 | 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); | |
192 | 189 | return 0; |
193 | 190 | } |
194 | 191 | |
195 | ||
192 | ||
196 | 193 | { |
197 | cninja_state *state = screen.machine().driver_data<cninja_state>(); | |
198 | 194 | 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); | |
201 | 197 | |
202 | 198 | /* One of the tilemap chips can switch between 2 tilemaps at 4bpp, or 1 at 8bpp */ |
203 | 199 | if (priority & 4) |
204 | 200 | { |
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); | |
208 | 204 | } |
209 | 205 | else |
210 | 206 | { |
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); | |
214 | 210 | } |
215 | 211 | |
216 | 212 | /* 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); | |
220 | 216 | |
221 | 217 | /* Draw playfields */ |
222 | 218 | screen.machine().priority_bitmap.fill(0, cliprect); |
223 | 219 | bitmap.fill(0x200, cliprect); |
224 | 220 | |
225 | 221 | if ((priority & 4) == 0) |
226 | deco16ic_tilemap_2_draw( | |
222 | deco16ic_tilemap_2_draw( | |
227 | 223 | |
228 | 224 | /* Switchable priority */ |
229 | 225 | switch (priority & 0x8) |
230 | 226 | { |
231 | 227 | 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); | |
234 | 230 | break; |
235 | 231 | default: |
236 | 232 | 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); | |
239 | 235 | break; |
240 | 236 | } |
241 | 237 | |
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); | |
244 | 240 | return 0; |
245 | 241 | } |
246 | 242 | |
r17967 | r17968 | |
250 | 246 | machine().device<decospr_device>("spritegen2")->alloc_sprite_bitmap(); |
251 | 247 | } |
252 | 248 | |
253 | ||
249 | ||
254 | 250 | { |
255 | cninja_state *state = screen.machine().driver_data<cninja_state>(); | |
256 | 251 | 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); | |
259 | 254 | |
260 | 255 | |
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); | |
264 | 259 | |
265 | 260 | /* Draw playfields */ |
266 | 261 | bitmap.fill(0x400, cliprect); /* Confirmed */ |
267 | 262 | |
268 | 263 | screen.machine().device<decospr_device>("spritegen1")->set_alt_format(true); |
269 | 264 | 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); | |
272 | 267 | |
273 | 268 | |
274 | 269 | /* There is no priority prom on this board, but there is a |
r17967 | r17968 | |
282 | 277 | The other bits may control alpha blend on the 2nd sprite chip, or |
283 | 278 | layer order. |
284 | 279 | */ |
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); | |
288 | 283 | |
289 | 284 | |
290 | 285 | if (priority & 1) |
r17967 | r17968 | |
297 | 292 | 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? |
298 | 293 | screen.machine().device<decospr_device>("spritegen1")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0000, 0x100, 0x1ff); |
299 | 294 | } |
300 | deco16ic_tilemap_1_draw( | |
295 | deco16ic_tilemap_1_draw( | |
301 | 296 | return 0; |
302 | 297 | } |
r17967 | r17968 | |
---|---|---|
365 | 365 | } |
366 | 366 | |
367 | 367 | |
368 | ||
368 | ||
369 | 369 | { |
370 | pacland_state *state = screen.machine().driver_data<pacland_state>(); | |
371 | 370 | int row; |
372 | 371 | |
373 | 372 | 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); | |
376 | 375 | |
377 | 376 | /* draw high priority sprite pixels, setting priority bitmap to non-zero |
378 | 377 | wherever there is a high-priority pixel; note that we draw to the bitmap |
r17967 | r17968 | |
381 | 380 | draw_sprites(screen.machine(), bitmap, cliprect, 0); |
382 | 381 | |
383 | 382 | /* draw background */ |
384 | | |
383 | | |
385 | 384 | |
386 | 385 | /* draw low priority fg tiles */ |
387 | 386 | draw_fg(screen.machine(), bitmap, cliprect, 0); |
r17967 | r17968 | |
---|---|---|
127 | 127 | } |
128 | 128 | } |
129 | 129 | |
130 | ||
130 | ||
131 | 131 | { |
132 | 132 | bitmap.fill(0x1000, cliprect); |
133 | 133 | draw_sprites(screen.machine(), bitmap, cliprect, 0x0000); |
134 | 134 | return 0; |
135 | 135 | } |
136 | 136 | |
137 | ||
137 | ||
138 | 138 | { |
139 | 139 | bitmap.fill(0x1001, cliprect); |
140 | 140 | draw_sprites(screen.machine(), bitmap, cliprect, 0x2000); |
r17967 | r17968 | |
---|---|---|
95 | 95 | m_ra_flipx = data & 0x01; |
96 | 96 | } |
97 | 97 | |
98 | ||
98 | ||
99 | 99 | { |
100 | rollrace_state *state = screen.machine().driver_data<rollrace_state>(); | |
101 | UINT8 *spriteram = state->m_spriteram; | |
100 | UINT8 *spriteram = m_spriteram; | |
102 | 101 | int offs; |
103 | 102 | int sx, sy; |
104 | 103 | int scroll; |
105 | 104 | int col; |
106 | const UINT8 *mem = | |
105 | const UINT8 *mem = | |
107 | 106 | |
108 | 107 | /* fill in background colour*/ |
109 | bitmap.fill( | |
108 | bitmap.fill( | |
110 | 109 | |
111 | 110 | /* draw road */ |
112 | 111 | for (offs = 0x3ff; offs >= 0; offs--) |
113 | 112 | { |
114 | if(!( | |
113 | if(!( | |
115 | 114 | { |
116 | 115 | sy = ( 31 - offs / 32 ) ; |
117 | 116 | } |
r17967 | r17968 | |
120 | 119 | |
121 | 120 | sx = ( offs%32 ) ; |
122 | 121 | |
123 | if( | |
122 | if( | |
124 | 123 | sx = 31-sx ; |
125 | 124 | |
126 | if( | |
125 | if( | |
127 | 126 | sy = 31-sy ; |
128 | 127 | |
129 | 128 | drawgfx_transpen(bitmap, |
130 | 129 | 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), | |
135 | 134 | sx*8,sy*8,0); |
136 | 135 | |
137 | 136 | |
r17967 | r17968 | |
152 | 151 | if(sx && sy) |
153 | 152 | { |
154 | 153 | |
155 | if( | |
154 | if( | |
156 | 155 | sx = 224 - sx; |
157 | if( | |
156 | if( | |
158 | 157 | sy = 224 - sy; |
159 | 158 | |
160 | 159 | if(spriteram[offs+1] & 0x80) |
r17967 | r17968 | |
163 | 162 | bank = (( spriteram[offs+1] & 0x40 ) >> 6 ) ; |
164 | 163 | |
165 | 164 | if(bank) |
166 | bank += | |
165 | bank += | |
167 | 166 | |
168 | 167 | drawgfx_transpen(bitmap, cliprect,screen.machine().gfx[ RA_SP_BASE + bank ], |
169 | 168 | spriteram[offs+1] & 0x3f , |
170 | 169 | spriteram[offs+2] & 0x1f, |
171 | | |
170 | | |
172 | 171 | sx,sy,0); |
173 | 172 | } |
174 | 173 | } |
r17967 | r17968 | |
183 | 182 | sx = offs % 32; |
184 | 183 | sy = offs / 32; |
185 | 184 | |
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; | |
188 | 187 | |
189 | if (! | |
188 | if (! | |
190 | 189 | { |
191 | 190 | scroll = (248 - scroll) % 256; |
192 | 191 | } |
193 | 192 | |
194 | if ( | |
193 | if ( | |
195 | 194 | |
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 ] , | |
198 | 197 | col, |
199 | | |
198 | | |
200 | 199 | 8*sx,scroll,0); |
201 | 200 | |
202 | 201 | } |
r17967 | r17968 | |
---|---|---|
235 | 235 | } |
236 | 236 | } |
237 | 237 | |
238 | ||
238 | ||
239 | 239 | { |
240 | popper_state *state = screen.machine().driver_data<popper_state>(); | |
241 | rectangle finalclip = state->m_tilemap_clip; | |
240 | rectangle finalclip = m_tilemap_clip; | |
242 | 241 | finalclip &= cliprect; |
243 | 242 | |
244 | 243 | //attribram |
r17967 | r17968 | |
247 | 246 | //-xxx---- colour for pen 0 (from second prom?) |
248 | 247 | //----xxxx colour for pens 1,2,3 |
249 | 248 | |
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); | |
254 | 253 | |
255 | 254 | draw_sprites(screen.machine(), bitmap, cliprect); |
256 | 255 | |
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); | |
261 | 260 | return 0; |
262 | 261 | } |
r17967 | r17968 | |
---|---|---|
157 | 157 | } |
158 | 158 | |
159 | 159 | |
160 | ||
160 | ||
161 | 161 | { |
162 | ladyfrog_state *state = screen.machine().driver_data<ladyfrog_state>(); | |
163 | 162 | |
164 | | |
163 | | |
165 | 164 | draw_sprites(screen.machine(), bitmap, cliprect); |
166 | 165 | return 0; |
167 | 166 | } |
r17967 | r17968 | |
---|---|---|
336 | 336 | } |
337 | 337 | } |
338 | 338 | |
339 | ||
339 | ||
340 | 340 | { |
341 | sidearms_state *state = screen.machine().driver_data<sidearms_state>(); | |
342 | 341 | |
343 | 342 | sidearms_draw_starfield(screen.machine(), bitmap); |
344 | 343 | |
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)); | |
347 | 346 | |
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); | |
350 | 349 | |
351 | if ( | |
350 | if ( | |
352 | 351 | draw_sprites(screen.machine(), bitmap, cliprect); |
353 | 352 | |
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); | |
356 | 355 | return 0; |
357 | 356 | } |
r17967 | r17968 | |
---|---|---|
52 | 52 | palette_set_color_rgb(machine(), offset / 2, pal4bit(val >> 8), pal4bit(val >> 4), pal4bit(val >> 0)); |
53 | 53 | } |
54 | 54 | |
55 | ||
55 | ||
56 | 56 | { |
57 | 57 | /** |
58 | 58 | * xx------ msb x |
r17967 | r17968 | |
60 | 60 | * ---x---- flipscreen? |
61 | 61 | * ----xxxx ROM bank |
62 | 62 | */ |
63 | djboy_state *state = screen.machine().driver_data<djboy_state>(); | |
64 | 63 | int scroll; |
65 | 64 | |
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); | |
68 | 67 | |
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); | |
71 | 70 | |
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); | |
74 | 73 | |
75 | 74 | return 0; |
76 | 75 | } |
77 | 76 | |
78 | ||
77 | void | |
79 | 78 | { |
80 | 79 | // rising edge |
81 | if ( | |
80 | if (st | |
82 | 81 | { |
83 | djboy_state *state = screen.machine().driver_data<djboy_state>(); | |
84 | pandora_eof(state->m_pandora); | |
82 | pandora_eof(m_pandora); | |
85 | 83 | } |
86 | 84 | } |
r17967 | r17968 | |
---|---|---|
19 | 19 | #include "video/decospr.h" |
20 | 20 | |
21 | 21 | |
22 | ||
22 | ||
23 | 23 | { |
24 | tumblep_state *state = screen.machine().driver_data<tumblep_state>(); | |
25 | 24 | address_space &space = screen.machine().driver_data()->generic_space(); |
26 | UINT16 flip = deco16ic_pf_control_r( | |
25 | UINT16 flip = deco16ic_pf_control_r( | |
27 | 26 | |
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); | |
30 | 29 | |
31 | 30 | bitmap.fill(256, cliprect); /* not verified */ |
32 | 31 | |
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); | |
35 | 34 | |
36 | screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, | |
35 | screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, | |
37 | 36 | return 0; |
38 | 37 | } |
r17967 | r17968 | |
---|---|---|
93 | 93 | } |
94 | 94 | } |
95 | 95 | |
96 | ||
96 | ||
97 | 97 | { |
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); | |
100 | 99 | jack_draw_sprites(screen.machine(), bitmap, cliprect); |
101 | 100 | return 0; |
102 | 101 | } |
r17967 | r17968 | |
177 | 176 | } |
178 | 177 | } |
179 | 178 | |
180 | ||
179 | ||
181 | 180 | { |
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); | |
184 | 182 | joinem_draw_sprites(screen.machine(), bitmap, cliprect); |
185 | 183 | return 0; |
186 | 184 | } |
r17967 | r17968 | |
---|---|---|
209 | 209 | } |
210 | 210 | |
211 | 211 | |
212 | ||
212 | ||
213 | 213 | { |
214 | dogfgt_state *state = screen.machine().driver_data<dogfgt_state>(); | |
215 | 214 | int offs; |
216 | 215 | |
217 | if ( | |
216 | if ( | |
218 | 217 | { |
219 | 218 | address_space &space = *screen.machine().device("maincpu")->memory().space(AS_PROGRAM); |
220 | 219 | |
221 | state->m_lastflip = state->flip_screen(); | |
222 | state->m_lastpixcolor = state->m_pixcolor; | |
220 | m_lastflip = flip_screen(); | |
221 | m_lastpixcolor = m_pixcolor; | |
223 | 222 | |
224 | 223 | for (offs = 0; offs < BITMAPRAM_SIZE; offs++) |
225 | | |
224 | | |
226 | 225 | } |
227 | 226 | |
228 | 227 | |
229 | | |
228 | | |
230 | 229 | |
231 | 230 | draw_sprites(screen.machine(), bitmap, cliprect); |
232 | 231 | |
233 | copybitmap_trans(bitmap, | |
232 | copybitmap_trans(bitmap, | |
234 | 233 | return 0; |
235 | 234 | } |
r17967 | r17968 | |
---|---|---|
3 | 3 | #include "includes/dietgo.h" |
4 | 4 | #include "video/decospr.h" |
5 | 5 | |
6 | ||
6 | ||
7 | 7 | { |
8 | dietgo_state *state = screen.machine().driver_data<dietgo_state>(); | |
9 | 8 | address_space &space = screen.machine().driver_data()->generic_space(); |
10 | UINT16 flip = deco16ic_pf_control_r( | |
9 | UINT16 flip = deco16ic_pf_control_r( | |
11 | 10 | |
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); | |
14 | 13 | |
15 | 14 | bitmap.fill(256, cliprect); /* not verified */ |
16 | 15 | |
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); | |
19 | 18 | |
20 | screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, | |
19 | screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, | |
21 | 20 | return 0; |
22 | 21 | } |
r17967 | r17968 | |
---|---|---|
261 | 261 | } |
262 | 262 | } |
263 | 263 | |
264 | ||
264 | ||
265 | 265 | { |
266 | vigilant_state *state = screen.machine().driver_data<vigilant_state>(); | |
267 | UINT8 *videoram = state->m_videoram; | |
266 | UINT8 *videoram = m_videoram; | |
268 | 267 | int offs; |
269 | 268 | |
270 | 269 | for (offs = 0; offs < 0x1000; offs += 2) |
r17967 | r17968 | |
286 | 285 | return 0; |
287 | 286 | } |
288 | 287 | |
289 | ||
288 | ||
290 | 289 | { |
291 | vigilant_state *state = screen.machine().driver_data<vigilant_state>(); | |
292 | 290 | int i; |
293 | 291 | |
294 | 292 | /* copy the background palette */ |
r17967 | r17968 | |
297 | 295 | int r,g,b; |
298 | 296 | |
299 | 297 | |
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; | |
303 | 301 | |
304 | 302 | palette_set_color(screen.machine(),512 + i,MAKE_RGB(r,g,b)); |
305 | 303 | |
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; | |
309 | 307 | |
310 | 308 | palette_set_color(screen.machine(),512 + 16 + i,MAKE_RGB(r,g,b)); |
311 | 309 | } |
312 | 310 | |
313 | if ( | |
311 | if ( | |
314 | 312 | { |
315 | 313 | draw_foreground(screen.machine(),bitmap,cliprect,0,1); |
316 | 314 | draw_sprites(screen.machine(),bitmap,bottomvisiblearea); |
r17967 | r17968 | |
---|---|---|
742 | 742 | } |
743 | 743 | |
744 | 744 | |
745 | ||
745 | ||
746 | 746 | { |
747 | 747 | return video_update_common(screen.machine(), bitmap, cliprect, taitosj_copy_layer); |
748 | 748 | } |
749 | 749 | |
750 | 750 | |
751 | ||
751 | ||
752 | 752 | { |
753 | 753 | return video_update_common(screen.machine(), bitmap, cliprect, kikstart_copy_layer); |
754 | 754 | } |
r17967 | r17968 | |
---|---|---|
240 | 240 | } |
241 | 241 | } |
242 | 242 | |
243 | ||
243 | ||
244 | 244 | { |
245 | kingofb_state *state = screen.machine().driver_data<kingofb_state>(); | |
246 | 245 | |
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); | |
249 | 248 | kingofb_draw_sprites(screen.machine(), bitmap, cliprect); |
250 | | |
249 | | |
251 | 250 | return 0; |
252 | 251 | } |
253 | 252 | |
r17967 | r17968 | |
300 | 299 | } |
301 | 300 | } |
302 | 301 | |
303 | ||
302 | ||
304 | 303 | { |
305 | kingofb_state *state = screen.machine().driver_data<kingofb_state>(); | |
306 | 304 | |
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); | |
309 | 307 | ringking_draw_sprites(screen.machine(), bitmap, cliprect); |
310 | | |
308 | | |
311 | 309 | return 0; |
312 | 310 | } |
r17967 | r17968 | |
---|---|---|
337 | 337 | } |
338 | 338 | |
339 | 339 | |
340 | ||
340 | ||
341 | 341 | { |
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)); | |
345 | 344 | |
346 | if ( | |
345 | if ( | |
347 | 346 | bitmap.fill(0, cliprect); |
348 | 347 | else |
349 | | |
348 | | |
350 | 349 | |
351 | if ( | |
350 | if ( | |
352 | 351 | { |
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); | |
355 | 354 | draw_sprites(screen.machine(), bitmap, cliprect); |
356 | 355 | } |
357 | 356 | else |
358 | 357 | { |
359 | 358 | 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); | |
362 | 361 | } |
363 | 362 | |
364 | 363 | return 0; |
365 | 364 | } |
366 | 365 | |
367 | ||
366 | ||
368 | 367 | { |
369 | galivan_state *state = screen.machine().driver_data<galivan_state>(); | |
370 | 368 | |
371 | 369 | /* (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); | |
374 | 372 | |
375 | if ( | |
373 | if ( | |
376 | 374 | bitmap.fill(0, cliprect); |
377 | 375 | else |
378 | | |
376 | | |
379 | 377 | |
380 | 378 | draw_sprites(screen.machine(), bitmap, cliprect); |
381 | | |
379 | | |
382 | 380 | return 0; |
383 | 381 | } |
r17967 | r17968 | |
---|---|---|
298 | 298 | memset(m_videoram, 0x00, (width * height * sizeof(UINT8))); |
299 | 299 | } |
300 | 300 | |
301 | ||
301 | ||
302 | 302 | { |
303 | nbmj8991_state *state = screen.machine().driver_data<nbmj8991_state>(); | |
304 | 303 | int x, y; |
305 | 304 | |
306 | if ( | |
305 | if ( | |
307 | 306 | { |
308 | 307 | int width = screen.machine().primary_screen->width(); |
309 | 308 | int height = screen.machine().primary_screen->height(); |
310 | 309 | |
311 | | |
310 | | |
312 | 311 | |
313 | 312 | for (y = 0; y < height; y++) |
314 | 313 | for (x = 0; x < width; x++) |
315 | 314 | update_pixel(screen.machine(), x, y); |
316 | 315 | } |
317 | 316 | |
318 | if ( | |
317 | if ( | |
319 | 318 | { |
320 | 319 | int scrollx, scrolly; |
321 | 320 | |
322 | if ( | |
321 | if ( | |
323 | 322 | { |
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; | |
326 | 325 | } |
327 | 326 | else |
328 | 327 | { |
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; | |
331 | 330 | } |
332 | 331 | |
333 | copyscrollbitmap(bitmap, | |
332 | copyscrollbitmap(bitmap, | |
334 | 333 | } |
335 | 334 | else |
336 | 335 | bitmap.fill(0); |
r17967 | r17968 | |
338 | 337 | return 0; |
339 | 338 | } |
340 | 339 | |
341 | ||
340 | ||
342 | 341 | { |
343 | nbmj8991_state *state = screen.machine().driver_data<nbmj8991_state>(); | |
344 | 342 | int x, y; |
345 | 343 | |
346 | if ( | |
344 | if ( | |
347 | 345 | { |
348 | 346 | int width = screen.width(); |
349 | 347 | int height = screen.height(); |
350 | 348 | |
351 | | |
349 | | |
352 | 350 | |
353 | 351 | for (y = 0; y < height; y++) |
354 | 352 | for (x = 0; x < width; x++) |
r17967 | r17968 | |
359 | 357 | { |
360 | 358 | int scrollx, scrolly; |
361 | 359 | |
362 | if ( | |
360 | if ( | |
363 | 361 | { |
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; | |
366 | 364 | } |
367 | 365 | else |
368 | 366 | { |
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; | |
371 | 369 | } |
372 | 370 | |
373 | copyscrollbitmap(bitmap, | |
371 | copyscrollbitmap(bitmap, | |
374 | 372 | } |
375 | 373 | else |
376 | 374 | bitmap.fill(0); |
r17967 | r17968 | |
---|---|---|
150 | 150 | state_save_register_global(machine(), m_12sel); |
151 | 151 | } |
152 | 152 | |
153 | ||
153 | ||
154 | 154 | { |
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; | |
157 | 156 | int x, y; |
158 | 157 | |
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; | |
162 | 161 | |
163 | 162 | for (y = cliprect.min_y; y <= cliprect.max_y; ++y) |
164 | 163 | { |
r17967 | r17968 | |
167 | 166 | for (x = 0; x < 512; ++x) |
168 | 167 | { |
169 | 168 | 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); | |
173 | 172 | int i = intensity_buf[x]; |
174 | 173 | |
175 | 174 | *dest++ = MAKE_RGB(r*i, g*i, b*i); |
176 | 175 | |
177 | 176 | /* Clear the line buffer as we scan out */ |
178 | 177 | colour_buf[x] = 0xff; |
179 | intensity_buf[x] = | |
178 | intensity_buf[x] = | |
180 | 179 | priority_buf[x] = 0; |
181 | 180 | } |
182 | 181 | } |
r17967 | r17968 | |
---|---|---|
106 | 106 | |
107 | 107 | |
108 | 108 | |
109 | ||
109 | ||
110 | 110 | { |
111 | blockout_state *state = screen.machine().driver_data<blockout_state>(); | |
112 | 111 | int x, y; |
113 | 112 | pen_t color = 512; |
114 | 113 | |
115 | copybitmap(bitmap, | |
114 | copybitmap(bitmap, | |
116 | 115 | |
117 | 116 | for (y = 0; y < 256; y++) |
118 | 117 | { |
119 | 118 | for (x = 0; x < 320; x += 8) |
120 | 119 | { |
121 | int d = | |
120 | int d = | |
122 | 121 | |
123 | 122 | if (d) |
124 | 123 | { |
r17967 | r17968 | |
---|---|---|
186 | 186 | } |
187 | 187 | } |
188 | 188 | |
189 | ||
189 | ||
190 | 190 | { |
191 | tsamurai_state *state = screen.machine().driver_data<tsamurai_state>(); | |
192 | 191 | int i; |
193 | 192 | |
194 | 193 | /* Do the column scroll used for the "660" logo on the title screen */ |
195 | | |
194 | | |
196 | 195 | for (i = 0 ; i < 32 ; i++) |
197 | 196 | { |
198 | | |
197 | | |
199 | 198 | } |
200 | 199 | /* end of column scroll code */ |
201 | 200 | |
r17967 | r17968 | |
207 | 206 | Note that the background color register isn't well understood |
208 | 207 | (screenshots would be helpful) |
209 | 208 | */ |
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); | |
212 | 211 | draw_sprites(screen.machine(), bitmap,cliprect); |
213 | | |
212 | | |
214 | 213 | return 0; |
215 | 214 | } |
216 | 215 | |
r17967 | r17968 | |
248 | 247 | m_foreground = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(tsamurai_state::get_vsgongf_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32); |
249 | 248 | } |
250 | 249 | |
251 | ||
250 | ||
252 | 251 | { |
253 | tsamurai_state *state = screen.machine().driver_data<tsamurai_state>(); | |
254 | 252 | #ifdef MAME_DEBUG |
255 | 253 | if( screen.machine().input().code_pressed( KEYCODE_Q ) ){ |
256 | 254 | 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(); | |
260 | 258 | } |
261 | 259 | } |
262 | 260 | #endif |
263 | 261 | |
264 | | |
262 | | |
265 | 263 | draw_sprites(screen.machine(),bitmap,cliprect); |
266 | 264 | return 0; |
267 | 265 | } |
r17967 | r17968 | |
---|---|---|
70 | 70 | } |
71 | 71 | |
72 | 72 | |
73 | ||
73 | ||
74 | 74 | { |
75 | canyon_state *state = screen.machine().driver_data<canyon_state>(); | |
76 | 75 | |
77 | | |
76 | | |
78 | 77 | |
79 | 78 | draw_sprites(screen.machine(), bitmap, cliprect); |
80 | 79 |
r17967 | r17968 | |
---|---|---|
254 | 254 | |
255 | 255 | ***************************************************************************/ |
256 | 256 | |
257 | ||
257 | ||
258 | 258 | { |
259 | splash_state *state = screen.machine().driver_data<splash_state>(); | |
260 | 259 | |
261 | 260 | /* 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]); | |
264 | 263 | |
265 | 264 | draw_bitmap(screen.machine(), bitmap, cliprect); |
266 | 265 | |
267 | | |
266 | | |
268 | 267 | splash_draw_sprites(screen.machine(), bitmap, cliprect); |
269 | | |
268 | | |
270 | 269 | return 0; |
271 | 270 | } |
272 | 271 | |
273 | ||
272 | ||
274 | 273 | { |
275 | splash_state *state = screen.machine().driver_data<splash_state>(); | |
276 | 274 | |
277 | 275 | /* 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]); | |
280 | 278 | |
281 | 279 | draw_bitmap(screen.machine(), bitmap, cliprect); |
282 | 280 | |
283 | | |
281 | | |
284 | 282 | /*Sprite chip is similar but not the same*/ |
285 | 283 | funystrp_draw_sprites(screen.machine(), bitmap, cliprect); |
286 | | |
284 | | |
287 | 285 | return 0; |
288 | 286 | } |
r17967 | r17968 | |
---|---|---|
236 | 236 | } |
237 | 237 | |
238 | 238 | |
239 | ||
239 | ||
240 | 240 | { |
241 | f1gp_state *state = screen.machine().driver_data<f1gp_state>(); | |
242 | 241 | |
243 | 242 | screen.machine().priority_bitmap.fill(0, cliprect); |
244 | 243 | |
245 | k053936_zoom_draw( | |
244 | k053936_zoom_draw( | |
246 | 245 | |
247 | | |
246 | | |
248 | 247 | |
249 | 248 | /* quick kludge for "continue" screen priority */ |
250 | if ( | |
249 | if ( | |
251 | 250 | { |
252 | 251 | f1gp_draw_sprites(screen.machine(), bitmap, cliprect, 0, 0x02); |
253 | 252 | f1gp_draw_sprites(screen.machine(), bitmap, cliprect, 1, 0x02); |
r17967 | r17968 | |
329 | 328 | } |
330 | 329 | } |
331 | 330 | |
332 | ||
331 | ||
333 | 332 | { |
334 | f1gp_state *state = screen.machine().driver_data<f1gp_state>(); | |
335 | 333 | UINT32 startx, starty; |
336 | 334 | int incxx, incxy, incyx, incyy; |
337 | 335 | |
338 | incxy = (INT16) | |
336 | incxy = (INT16) | |
339 | 337 | 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]; | |
343 | 341 | |
344 | | |
342 | | |
345 | 343 | |
346 | 344 | screen.machine().priority_bitmap.fill(0, cliprect); |
347 | 345 | |
348 | | |
346 | | |
349 | 347 | startx << 13, starty << 13, |
350 | 348 | incxx << 5, incxy << 5, incyx << 5, incyy << 5, |
351 | 349 | 1, 0, 0); |
352 | 350 | |
353 | | |
351 | | |
354 | 352 | |
355 | 353 | f1gpb_draw_sprites(screen.machine(), bitmap, cliprect); |
356 | 354 | |
r17967 | r17968 | |
430 | 428 | } |
431 | 429 | |
432 | 430 | |
433 | ||
431 | ||
434 | 432 | { |
435 | f1gp_state *state = screen.machine().driver_data<f1gp_state>(); | |
436 | 433 | |
437 | if ( | |
434 | if ( | |
438 | 435 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
439 | 436 | else |
440 | 437 | { |
441 | switch ( | |
438 | switch ( | |
442 | 439 | { |
443 | 440 | case 0: |
444 | k053936_zoom_draw( | |
441 | k053936_zoom_draw( | |
445 | 442 | f1gp2_draw_sprites(screen.machine(), bitmap, cliprect); |
446 | | |
443 | | |
447 | 444 | break; |
448 | 445 | 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); | |
451 | 448 | f1gp2_draw_sprites(screen.machine(), bitmap, cliprect); |
452 | 449 | break; |
453 | 450 | 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); | |
456 | 453 | f1gp2_draw_sprites(screen.machine(), bitmap, cliprect); |
457 | 454 | break; |
458 | 455 | #ifdef MAME_DEBUG |
r17967 | r17968 | |
---|---|---|
110 | 110 | 8, 8, 32, 32); |
111 | 111 | } |
112 | 112 | |
113 | ||
113 | ||
114 | 114 | { |
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); | |
117 | 116 | return 0; |
118 | 117 | } |
r17967 | r17968 | |
---|---|---|
68 | 68 | * a black output. |
69 | 69 | */ |
70 | 70 | |
71 | ||
71 | ||
72 | 72 | { |
73 | route16_state *state = screen.machine().driver_data<route16_state>(); | |
74 | 73 | offs_t offs; |
75 | 74 | |
76 | 75 | UINT8 *color_prom1 = &screen.machine().root_device().memregion("proms")->base()[0x000]; |
77 | UINT8 *color_prom2 = & | |
76 | UINT8 *color_prom2 = & | |
78 | 77 | |
79 | for (offs = 0; offs < | |
78 | for (offs = 0; offs < | |
80 | 79 | { |
81 | 80 | int i; |
82 | 81 | |
83 | 82 | UINT8 y = offs >> 6; |
84 | 83 | UINT8 x = offs << 2; |
85 | 84 | |
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]; | |
88 | 87 | |
89 | 88 | for (i = 0; i < 4; i++) |
90 | 89 | { |
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) | | |
93 | 92 | ((data1 >> 3) & 0x02) | |
94 | 93 | ((data1 >> 0) & 0x01)]; |
95 | 94 | |
96 | 95 | /* 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) | | |
99 | 98 | ((data2 >> 3) & 0x02) | |
100 | 99 | ((data2 >> 0) & 0x01)]; |
101 | 100 | |
r17967 | r17968 | |
104 | 103 | |
105 | 104 | pen_t pen = route16_make_pen(final_color); |
106 | 105 | |
107 | if ( | |
106 | if ( | |
108 | 107 | bitmap.pix32(255 - y, 255 - x) = pen; |
109 | 108 | else |
110 | 109 | bitmap.pix32(y, x) = pen; |
r17967 | r17968 | |
175 | 174 | } |
176 | 175 | |
177 | 176 | |
178 | ||
177 | ||
179 | 178 | { |
180 | 179 | return video_update_stratvox_ttmahjng(screen.machine(), bitmap, cliprect, route16_make_pen); |
181 | 180 | } |
182 | 181 | |
183 | 182 | |
184 | ||
183 | ||
185 | 184 | { |
186 | 185 | return video_update_stratvox_ttmahjng(screen.machine(), bitmap, cliprect, ttmajng_make_pen); |
187 | 186 | } |
r17967 | r17968 | |
---|---|---|
285 | 285 | } |
286 | 286 | |
287 | 287 | |
288 | ||
288 | ||
289 | 289 | { |
290 | tecmosys_state *state = screen.machine().driver_data<tecmosys_state>(); | |
291 | 290 | |
292 | 291 | bitmap.fill(screen.machine().pens[0x4000], cliprect); |
293 | 292 | |
294 | 293 | |
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); | |
297 | 296 | |
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); | |
300 | 299 | |
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); | |
303 | 302 | |
304 | | |
303 | | |
305 | 304 | |
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); | |
309 | 308 | |
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); | |
313 | 312 | |
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); | |
317 | 316 | |
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); | |
321 | 320 | |
322 | 321 | |
323 | 322 | tecmosys_do_final_mix(screen.machine(), bitmap); |
324 | 323 | |
325 | 324 | // 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, | |
325 | tecmosys_render_sprites_to_bitmap(screen.machine(), bitmap, | |
327 | 326 | |
328 | 327 | return 0; |
329 | 328 | } |
r17967 | r17968 | |
---|---|---|
192 | 192 | } |
193 | 193 | |
194 | 194 | |
195 | ||
195 | ||
196 | 196 | { |
197 | snk6502_state *state = screen.machine().driver_data<snk6502_state>(); | |
198 | 197 | |
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); | |
201 | 200 | return 0; |
202 | 201 | } |
203 | 202 |
r17967 | r17968 | |
---|---|---|
4 | 4 | #include "kan_panb.h" |
5 | 5 | #include "includes/snowbros.h" |
6 | 6 | |
7 | ||
7 | ||
8 | 8 | { |
9 | snowbros_state *state = screen.machine().driver_data<snowbros_state>(); | |
10 | UINT16 *spriteram16 = state->m_bootleg_spriteram16; | |
9 | UINT16 *spriteram16 = m_bootleg_spriteram16; | |
11 | 10 | int sx=0, sy=0, x=0, y=0, offs; |
12 | 11 | /* sprites clip on left / right edges when scrolling, but it seems correct, |
13 | 12 | no extra sprite attribute bits are set during this time, the sprite co-ordinates |
r17967 | r17968 | |
33 | 32 | x = dx; |
34 | 33 | y = dy; |
35 | 34 | |
36 | if ( | |
35 | if ( | |
37 | 36 | { |
38 | 37 | sx = 240 - x; |
39 | 38 | sy = 240 - y; |
r17967 | r17968 | |
64 | 63 | x = dx; |
65 | 64 | y = dy; |
66 | 65 | |
67 | if ( | |
66 | if ( | |
68 | 67 | { |
69 | 68 | sx = 240 - x; |
70 | 69 | sy = 240 - y; |
r17967 | r17968 | |
90 | 89 | } |
91 | 90 | |
92 | 91 | |
93 | ||
92 | ||
94 | 93 | { |
95 | snowbros_state *state = screen.machine().driver_data<snowbros_state>(); | |
96 | UINT16 *spriteram16 = state->m_bootleg_spriteram16; | |
94 | UINT16 *spriteram16 = m_bootleg_spriteram16; | |
97 | 95 | int sx=0, sy=0, x=0, y=0, offs; |
98 | 96 | /* sprites clip on left / right edges when scrolling, but it seems correct, |
99 | 97 | no extra sprite attribute bits are set during this time, the sprite co-ordinates |
r17967 | r17968 | |
120 | 118 | x = dx; |
121 | 119 | y = dy; |
122 | 120 | |
123 | if ( | |
121 | if ( | |
124 | 122 | { |
125 | 123 | sx = 240 - x; |
126 | 124 | sy = 240 - y; |
r17967 | r17968 | |
146 | 144 | } |
147 | 145 | |
148 | 146 | |
149 | ||
147 | ||
150 | 148 | { |
151 | snowbros_state *state = screen.machine().driver_data<snowbros_state>(); | |
152 | UINT16 *spriteram16 = state->m_bootleg_spriteram16; | |
149 | UINT16 *spriteram16 = m_bootleg_spriteram16; | |
153 | 150 | int offs; |
154 | 151 | |
155 | 152 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
156 | 153 | |
157 | for (offs = 0;offs < | |
154 | for (offs = 0;offs < | |
158 | 155 | { |
159 | 156 | int xpos = spriteram16[offs] & 0xff; |
160 | 157 | int ypos = spriteram16[offs+4] & 0xff; |
r17967 | r17968 | |
169 | 166 | |
170 | 167 | if (wrapr == 8) xpos -= 256; |
171 | 168 | |
172 | if ( | |
169 | if ( | |
173 | 170 | { |
174 | 171 | xpos = 240 - xpos; |
175 | 172 | ypos = 240 - ypos; |
r17967 | r17968 | |
190 | 187 | } |
191 | 188 | |
192 | 189 | |
193 | ||
190 | ||
194 | 191 | { |
195 | snowbros_state *state = screen.machine().driver_data<snowbros_state>(); | |
196 | UINT16 *spriteram16 = state->m_bootleg_spriteram16; | |
192 | UINT16 *spriteram16 = m_bootleg_spriteram16; | |
197 | 193 | int sx=0, sy=0, x=0, y=0, offs; |
198 | 194 | |
199 | 195 | /* |
r17967 | r17968 | |
222 | 218 | |
223 | 219 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
224 | 220 | |
225 | for (offs = 0;offs < | |
221 | for (offs = 0;offs < | |
226 | 222 | { |
227 | 223 | gfx_element *gfx = screen.machine().gfx[0]; |
228 | 224 | int dx = spriteram16[offs+4] & 0xff; |
r17967 | r17968 | |
249 | 245 | if (x > 511) x &= 0x1ff; |
250 | 246 | if (y > 511) y &= 0x1ff; |
251 | 247 | |
252 | if ( | |
248 | if ( | |
253 | 249 | { |
254 | 250 | sx = 240 - x; |
255 | 251 | sy = 240 - y; |
r17967 | r17968 | |
---|---|---|
45 | 45 | } |
46 | 46 | |
47 | 47 | |
48 | ||
48 | ||
49 | 49 | { |
50 | polyplay_state *state = screen.machine().driver_data<polyplay_state>(); | |
51 | UINT8 *videoram = state->m_videoram; | |
50 | UINT8 *videoram = m_videoram; | |
52 | 51 | offs_t offs; |
53 | 52 | |
54 | 53 |
r17967 | r17968 | |
---|---|---|
68 | 68 | Screen refresh |
69 | 69 | ***************************************************************************/ |
70 | 70 | |
71 | ||
71 | ||
72 | 72 | { |
73 | exzisus_state *state = screen.machine().driver_data<exzisus_state>(); | |
74 | 73 | int offs; |
75 | 74 | int sx, sy, xc, yc; |
76 | 75 | int gfx_num, gfx_attr, gfx_offs; |
r17967 | r17968 | |
80 | 79 | |
81 | 80 | /* ---------- 1st TC0010VCU ---------- */ |
82 | 81 | sx = 0; |
83 | for (offs = 0 ; offs < | |
82 | for (offs = 0 ; offs < | |
84 | 83 | { |
85 | 84 | int height; |
86 | 85 | |
87 | 86 | /* Skip empty sprites. */ |
88 | if ( !(*(UINT32 *)(& | |
87 | if ( !(*(UINT32 *)(& | |
89 | 88 | { |
90 | 89 | continue; |
91 | 90 | } |
92 | 91 | |
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]; | |
95 | 94 | |
96 | 95 | if ((gfx_num & 0x80) == 0) /* 16x16 sprites */ |
97 | 96 | { |
98 | 97 | gfx_offs = ((gfx_num & 0x7f) << 3); |
99 | 98 | height = 2; |
100 | 99 | |
101 | sx = | |
100 | sx = | |
102 | 101 | sx |= (gfx_attr & 0x40) << 2; |
103 | 102 | } |
104 | 103 | else /* tilemaps (each sprite is a 16x256 column) */ |
r17967 | r17968 | |
112 | 111 | } |
113 | 112 | else |
114 | 113 | { |
115 | sx = | |
114 | sx = | |
116 | 115 | sx |= (gfx_attr & 0x40) << 2; |
117 | 116 | } |
118 | 117 | } |
119 | 118 | |
120 | sy = 256 - (height << 3) - ( | |
119 | sy = 256 - (height << 3) - ( | |
121 | 120 | |
122 | 121 | for (xc = 0 ; xc < 2 ; xc++) |
123 | 122 | { |
r17967 | r17968 | |
126 | 125 | { |
127 | 126 | int code, color, x, y; |
128 | 127 | |
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); | |
131 | 130 | x = (sx + (xc << 3)) & 0xff; |
132 | 131 | y = (sy + (yc << 3)) & 0xff; |
133 | 132 | |
134 | if ( | |
133 | if ( | |
135 | 134 | { |
136 | 135 | x = 248 - x; |
137 | 136 | y = 248 - y; |
r17967 | r17968 | |
140 | 139 | drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0], |
141 | 140 | code & 0x3fff, |
142 | 141 | color, |
143 | | |
142 | | |
144 | 143 | x, y, 15); |
145 | 144 | goffs += 2; |
146 | 145 | } |
r17967 | r17968 | |
150 | 149 | |
151 | 150 | /* ---------- 2nd TC0010VCU ---------- */ |
152 | 151 | sx = 0; |
153 | for (offs = 0 ; offs < | |
152 | for (offs = 0 ; offs < | |
154 | 153 | { |
155 | 154 | int height; |
156 | 155 | |
157 | 156 | /* Skip empty sprites. */ |
158 | if ( !(*(UINT32 *)(& | |
157 | if ( !(*(UINT32 *)(& | |
159 | 158 | { |
160 | 159 | continue; |
161 | 160 | } |
162 | 161 | |
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]; | |
165 | 164 | |
166 | 165 | if ((gfx_num & 0x80) == 0) /* 16x16 sprites */ |
167 | 166 | { |
168 | 167 | gfx_offs = ((gfx_num & 0x7f) << 3); |
169 | 168 | height = 2; |
170 | 169 | |
171 | sx = | |
170 | sx = | |
172 | 171 | sx |= (gfx_attr & 0x40) << 2; |
173 | 172 | } |
174 | 173 | else /* tilemaps (each sprite is a 16x256 column) */ |
r17967 | r17968 | |
182 | 181 | } |
183 | 182 | else |
184 | 183 | { |
185 | sx = | |
184 | sx = | |
186 | 185 | sx |= (gfx_attr & 0x40) << 2; |
187 | 186 | } |
188 | 187 | } |
189 | sy = 256 - (height << 3) - ( | |
188 | sy = 256 - (height << 3) - ( | |
190 | 189 | |
191 | 190 | for (xc = 0 ; xc < 2 ; xc++) |
192 | 191 | { |
r17967 | r17968 | |
195 | 194 | { |
196 | 195 | int code, color, x, y; |
197 | 196 | |
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); | |
200 | 199 | x = (sx + (xc << 3)) & 0xff; |
201 | 200 | y = (sy + (yc << 3)) & 0xff; |
202 | 201 | |
203 | if ( | |
202 | if ( | |
204 | 203 | { |
205 | 204 | x = 248 - x; |
206 | 205 | y = 248 - y; |
r17967 | r17968 | |
209 | 208 | drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1], |
210 | 209 | code & 0x3fff, |
211 | 210 | color, |
212 | | |
211 | | |
213 | 212 | x, y, 15); |
214 | 213 | goffs += 2; |
215 | 214 | } |
r17967 | r17968 | |
---|---|---|
423 | 423 | * |
424 | 424 | *************************************/ |
425 | 425 | |
426 | stat | |
426 | UINT32 exidy440_state::screen | |
427 | 427 | { |
428 | 428 | /* redraw the screen */ |
429 | 429 | update_screen(screen, bitmap, cliprect, 0, TRUE); |
r17967 | r17968 | |
455 | 455 | } |
456 | 456 | |
457 | 457 | |
458 | static | |
458 | UINT32 exidy440_state::screen_update_topsecex(screen_device &screen, bitmap_ind | |
459 | 459 | { |
460 | exidy440_state *state = screen.machine().driver_data<exidy440_state>(); | |
461 | 460 | /* redraw the screen */ |
462 | update_screen(screen, bitmap, cliprect, * | |
461 | update_screen(screen, bitmap, cliprect, * | |
463 | 462 | |
464 | 463 | return 0; |
465 | 464 | } |
r17967 | r17968 | |
479 | 478 | |
480 | 479 | MCFG_SCREEN_ADD("screen", RASTER) |
481 | 480 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
482 | MCFG_SCREEN_UPDATE_ | |
481 | MCFG_SCREEN_UPDATE_DR | |
483 | 482 | MACHINE_CONFIG_END |
484 | 483 | |
485 | 484 | |
r17967 | r17968 | |
489 | 488 | |
490 | 489 | MCFG_SCREEN_MODIFY("screen") |
491 | 490 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, TOPSECEX_VBSTART) |
492 | MCFG_SCREEN_UPDATE_ | |
491 | MCFG_SCREEN_UPDATE_DR | |
493 | 492 | MACHINE_CONFIG_END |
r17967 | r17968 | |
---|---|---|
1119 | 1119 | m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(CURSOR_YPOS, CURSOR_XPOS)); |
1120 | 1120 | } |
1121 | 1121 | |
1122 | ||
1122 | void | |
1123 | 1123 | { |
1124 | 1124 | // rising edge |
1125 | if ( | |
1125 | if (st | |
1126 | 1126 | { |
1127 | tx1_state *state = screen.machine().driver_data<tx1_state>(); | |
1128 | 1127 | |
1129 | 1128 | /* /VSYNC: Update TZ113 */ |
1130 | | |
1129 | | |
1131 | 1130 | } |
1132 | 1131 | } |
1133 | 1132 | |
r17967 | r17968 | |
1182 | 1181 | } |
1183 | 1182 | } |
1184 | 1183 | |
1185 | ||
1184 | ||
1186 | 1185 | { |
1187 | tx1_state *state = screen.machine().driver_data<tx1_state>(); | |
1188 | 1186 | |
1189 | memset( | |
1187 | memset( | |
1190 | 1188 | |
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); | |
1194 | 1192 | |
1195 | 1193 | tx1_combine_layers(screen.machine(), bitmap, 0); |
1196 | 1194 | return 0; |
1197 | 1195 | } |
1198 | 1196 | |
1199 | ||
1197 | ||
1200 | 1198 | { |
1201 | 1199 | tx1_combine_layers(screen.machine(), bitmap, 1); |
1202 | 1200 | return 0; |
1203 | 1201 | } |
1204 | 1202 | |
1205 | ||
1203 | ||
1206 | 1204 | { |
1207 | 1205 | tx1_combine_layers(screen.machine(), bitmap, 2); |
1208 | 1206 | return 0; |
r17967 | r17968 | |
3023 | 3021 | m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(CURSOR_YPOS, CURSOR_XPOS)); |
3024 | 3022 | } |
3025 | 3023 | |
3026 | ||
3024 | void | |
3027 | 3025 | { |
3028 | 3026 | // rising edge |
3029 | if ( | |
3027 | if (st | |
3030 | 3028 | { |
3031 | tx1_state *state = screen.machine().driver_data<tx1_state>(); | |
3032 | 3029 | |
3033 | 3030 | /* /VSYNC: Update TZ113 @ 219 */ |
3034 | | |
3031 | | |
3035 | 3032 | |
3036 | 3033 | /* /VSYNC: Clear wave LFSR */ |
3037 | | |
3034 | | |
3038 | 3035 | } |
3039 | 3036 | } |
3040 | 3037 | |
3041 | 3038 | |
3042 | ||
3039 | ||
3043 | 3040 | { |
3044 | tx1_state *state = screen.machine().driver_data<tx1_state>(); | |
3045 | 3041 | |
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); | |
3048 | 3044 | |
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); | |
3052 | 3048 | |
3053 | 3049 | bb_combine_layers(screen.machine(), bitmap, 0); |
3054 | 3050 | return 0; |
3055 | 3051 | } |
3056 | 3052 | |
3057 | ||
3053 | ||
3058 | 3054 | { |
3059 | 3055 | bb_combine_layers(screen.machine(), bitmap, 1); |
3060 | 3056 | return 0; |
3061 | 3057 | } |
3062 | 3058 | |
3063 | ||
3059 | ||
3064 | 3060 | { |
3065 | 3061 | bb_combine_layers(screen.machine(), bitmap, 2); |
3066 | 3062 | return 0; |
3067 | 3063 | } |
3068 | 3064 | |
3069 | ||
3065 | ||
3070 | 3066 | { |
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); | |
3073 | 3068 | |
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); | |
3077 | 3072 | |
3078 | 3073 | bb_combine_layers(screen.machine(), bitmap, -1); |
3079 | 3074 | return 0; |
r17967 | r17968 | |
---|---|---|
74 | 74 | } |
75 | 75 | |
76 | 76 | /* 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... */ |
77 | ||
77 | ||
78 | 78 | { |
79 | dassault_state *state = screen.machine().driver_data<dassault_state>(); | |
80 | 79 | 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); | |
83 | 82 | |
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); | |
86 | 85 | bitmap_ind16* sprite_bitmap1 = &screen.machine().device<decospr_device>("spritegen1")->get_sprite_temp_bitmap(); |
87 | 86 | bitmap_ind16* sprite_bitmap2 = &screen.machine().device<decospr_device>("spritegen2")->get_sprite_temp_bitmap(); |
88 | 87 | |
89 | 88 | /* 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); | |
93 | 92 | |
94 | 93 | /* Draw playfields/update priority bitmap */ |
95 | 94 | screen.machine().priority_bitmap.fill(0, cliprect); |
96 | 95 | bitmap.fill(screen.machine().pens[3072], cliprect); |
97 | deco16ic_tilemap_2_draw( | |
96 | deco16ic_tilemap_2_draw( | |
98 | 97 | |
99 | 98 | /* The middle playfields can be swapped priority-wise */ |
100 | 99 | if ((priority & 3) == 0) |
101 | 100 | { |
102 | 101 | mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap1, cliprect, 0x0600, 0x0600, 0x400, 0xff); // 1 |
103 | deco16ic_tilemap_2_draw( | |
102 | deco16ic_tilemap_2_draw( | |
104 | 103 | mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap1, cliprect, 0x0400, 0x0600, 0x400, 0xff); // 8 |
105 | deco16ic_tilemap_1_draw( | |
104 | deco16ic_tilemap_1_draw( | |
106 | 105 | mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap1, cliprect, 0x0200, 0x0600, 0x400, 0xff); // 32 |
107 | 106 | mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap2, cliprect, 0x0000, 0x0000, 0x800, 0x80); // 64? |
108 | 107 | mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap1, cliprect, 0x0000, 0x0600, 0x400, 0xff); // 128 |
r17967 | r17968 | |
111 | 110 | else if ((priority & 3) == 1) |
112 | 111 | { |
113 | 112 | mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap1, cliprect, 0x0600, 0x0600, 0x400, 0xff); // 1 |
114 | deco16ic_tilemap_1_draw( | |
113 | deco16ic_tilemap_1_draw( | |
115 | 114 | mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap1, cliprect, 0x0400, 0x0600, 0x400, 0xff); // 8 |
116 | 115 | mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap2, cliprect, 0x0000, 0x0000, 0x800, 0x80); // 16? |
117 | 116 | mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap1, cliprect, 0x0200, 0x0600, 0x400, 0xff); // 32 |
118 | deco16ic_tilemap_2_draw( | |
117 | deco16ic_tilemap_2_draw( | |
119 | 118 | mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap1, cliprect, 0x0000, 0x0600, 0x400, 0xff); // 128 |
120 | 119 | } |
121 | 120 | else if ((priority & 3) == 3) |
122 | 121 | { |
123 | 122 | mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap1, cliprect, 0x0600, 0x0600, 0x400, 0xff); // 1 |
124 | deco16ic_tilemap_1_draw( | |
123 | deco16ic_tilemap_1_draw( | |
125 | 124 | mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap1, cliprect, 0x0400, 0x0600, 0x400, 0xff); // 8 |
126 | deco16ic_tilemap_2_draw( | |
125 | deco16ic_tilemap_2_draw( | |
127 | 126 | mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap1, cliprect, 0x0200, 0x0600, 0x400, 0xff); // 32 |
128 | 127 | mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap2, cliprect, 0x0000, 0x0000, 0x800, 0x80); // 64? |
129 | 128 | mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap1, cliprect, 0x0000, 0x0600, 0x400, 0xff); // 128 |
r17967 | r17968 | |
133 | 132 | /* Unused */ |
134 | 133 | } |
135 | 134 | |
136 | deco16ic_tilemap_1_draw( | |
135 | deco16ic_tilemap_1_draw( | |
137 | 136 | return 0; |
138 | 137 | } |
r17967 | r17968 | |
---|---|---|
273 | 273 | palette_set_color_rgb(machine(), i*8+j, fakecols[i][j][0], fakecols[i][j][1], fakecols[i][j][2]); |
274 | 274 | } |
275 | 275 | |
276 | ||
276 | ||
277 | 277 | { |
278 | ssrj_state *state = screen.machine().driver_data<ssrj_state>(); | |
279 | 278 | |
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); | |
283 | 282 | draw_objects(screen.machine(), bitmap, cliprect); |
284 | | |
283 | | |
285 | 284 | |
286 | if ( | |
285 | if ( | |
287 | 286 | return 0; |
288 | 287 | } |
289 | 288 | |
290 | ||
289 | void | |
291 | 290 | { |
292 | 291 | // rising edge |
293 | if ( | |
292 | if (st | |
294 | 293 | { |
295 | ssrj_state *state = screen.machine().driver_data<ssrj_state>(); | |
296 | 294 | |
297 | memcpy( | |
295 | memcpy( | |
298 | 296 | } |
299 | 297 | } |
r17967 | r17968 | |
---|---|---|
143 | 143 | } |
144 | 144 | } |
145 | 145 | |
146 | ||
146 | ||
147 | 147 | { |
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); | |
150 | 149 | draw_sprites(screen.machine(), bitmap, cliprect); |
151 | 150 | return 0; |
152 | 151 | } |
r17967 | r17968 | |
---|---|---|
142 | 142 | * |
143 | 143 | *************************************/ |
144 | 144 | |
145 | ||
145 | ||
146 | 146 | { |
147 | blstroid_state *state = screen.machine().driver_data<blstroid_state>(); | |
148 | 147 | atarimo_rect_list rectlist; |
149 | 148 | bitmap_ind16 *mobitmap; |
150 | 149 | int x, y, r; |
151 | 150 | |
152 | 151 | /* draw the playfield */ |
153 | | |
152 | | |
154 | 153 | |
155 | 154 | /* draw and merge the MO */ |
156 | 155 | mobitmap = atarimo_render(0, cliprect, &rectlist); |
r17967 | r17968 | |
167 | 166 | priority address = HPPPMMMM |
168 | 167 | */ |
169 | 168 | int priaddr = ((pf[x] & 8) << 4) | (pf[x] & 0x70) | ((mo[x] & 0xf0) >> 4); |
170 | if ( | |
169 | if ( | |
171 | 170 | pf[x] = mo[x]; |
172 | 171 | |
173 | 172 | /* erase behind ourselves */ |
r17967 | r17968 | |
---|---|---|
173 | 173 | draw_status_row(machine, bitmap, cliprect, 34, 15); |
174 | 174 | } |
175 | 175 | |
176 | ||
176 | ||
177 | 177 | { |
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); | |
181 | 180 | draw_sprites(screen.machine(), bitmap, cliprect); |
182 | 181 | draw_status(screen.machine(), bitmap, cliprect); |
183 | 182 | return 0; |
r17967 | r17968 | |
---|---|---|
1062 | 1062 | #endif |
1063 | 1063 | /**********************************************************************/ |
1064 | 1064 | |
1065 | ||
1065 | ||
1066 | 1066 | { |
1067 | tatsumi_state *state = screen.machine().driver_data<tatsumi_state>(); | |
1068 | 1067 | update_cluts(screen.machine(), 1024, 0, 2048); |
1069 | 1068 | |
1070 | | |
1069 | | |
1071 | 1070 | |
1072 | 1071 | bitmap.fill(screen.machine().pens[0], cliprect); |
1073 | draw_sky(screen.machine(), bitmap, cliprect, 256, | |
1072 | draw_sky(screen.machine(), bitmap, cliprect, 256, | |
1074 | 1073 | // 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); | |
1077 | 1076 | return 0; |
1078 | 1077 | } |
1079 | 1078 | |
1080 | ||
1079 | ||
1081 | 1080 | { |
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]; | |
1085 | 1083 | |
1086 | 1084 | update_cluts(screen.machine(), 1024, 512, 4096); |
1087 | 1085 | |
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); | |
1090 | 1088 | |
1091 | 1089 | bitmap.fill(screen.machine().pens[384], cliprect); // todo |
1092 | 1090 | screen.machine().priority_bitmap.fill(0, cliprect); |
1093 | 1091 | |
1094 | draw_sprites(screen.machine(), screen.machine().priority_bitmap,cliprect,1,( | |
1092 | draw_sprites(screen.machine(), screen.machine().priority_bitmap,cliprect,1,( | |
1095 | 1093 | 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); | |
1098 | 1096 | return 0; |
1099 | 1097 | } |
1100 | 1098 | |
1101 | ||
1099 | ||
1102 | 1100 | { |
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) | |
1106 | 1103 | { |
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; | |
1112 | 1109 | } |
1113 | 1110 | |
1114 | 1111 | bitmap.fill(screen.machine().pens[0], cliprect); |
1115 | 1112 | |
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); | |
1119 | 1116 | 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); | |
1122 | 1119 | |
1123 | 1120 | return 0; |
1124 | 1121 | } |
1125 | 1122 | |
1126 | ||
1123 | ||
1127 | 1124 | { |
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) | |
1131 | 1127 | { |
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; | |
1137 | 1133 | } |
1138 | 1134 | |
1139 | 1135 | 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); | |
1143 | 1139 | 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); | |
1146 | 1142 | |
1147 | 1143 | return 0; |
1148 | 1144 | } |
r17967 | r17968 | |
---|---|---|
21 | 21 | |
22 | 22 | /******************************************************************************/ |
23 | 23 | |
24 | ||
24 | ||
25 | 25 | { |
26 | supbtime_state *state = screen.machine().driver_data<supbtime_state>(); | |
27 | 26 | address_space &space = screen.machine().driver_data()->generic_space(); |
28 | UINT16 flip = deco16ic_pf_control_r( | |
27 | UINT16 flip = deco16ic_pf_control_r( | |
29 | 28 | |
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); | |
32 | 31 | |
33 | 32 | bitmap.fill(768, cliprect); |
34 | 33 | |
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); | |
38 | 37 | return 0; |
39 | 38 | } |
r17967 | r17968 | |
---|---|---|
213 | 213 | |
214 | 214 | ***************************************************************************/ |
215 | 215 | |
216 | ||
216 | ||
217 | 217 | { |
218 | blmbycar_state *state = screen.machine().driver_data<blmbycar_state>(); | |
219 | 218 | int i, layers_ctrl = -1; |
220 | 219 | |
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]); | |
223 | 222 | |
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); | |
226 | 225 | |
227 | 226 | #ifdef MAME_DEBUG |
228 | 227 | if (screen.machine().input().code_pressed(KEYCODE_Z)) |
r17967 | r17968 | |
241 | 240 | |
242 | 241 | if (layers_ctrl & 1) |
243 | 242 | for (i = 0; i <= 1; i++) |
244 | | |
243 | | |
245 | 244 | else |
246 | 245 | bitmap.fill(0, cliprect); |
247 | 246 | |
248 | 247 | if (layers_ctrl & 2) |
249 | 248 | for (i = 0; i <= 1; i++) |
250 | | |
249 | | |
251 | 250 | |
252 | 251 | if (layers_ctrl & 8) |
253 | 252 | draw_sprites(screen.machine(), bitmap, cliprect); |
r17967 | r17968 | |
---|---|---|
220 | 220 | |
221 | 221 | |
222 | 222 | |
223 | ||
223 | ||
224 | 224 | { |
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); | |
227 | 226 | draw_sprites(screen.machine(), bitmap); |
228 | | |
227 | | |
229 | 228 | return 0; |
230 | 229 | } |
r17967 | r17968 | |
---|---|---|
46 | 46 | } |
47 | 47 | |
48 | 48 | |
49 | ||
49 | ||
50 | 50 | { |
51 | gbusters_state *state = screen.machine().driver_data<gbusters_state>(); | |
52 | 51 | |
53 | k052109_tilemap_update( | |
52 | k052109_tilemap_update( | |
54 | 53 | |
55 | 54 | /* sprite priority 3 = disable */ |
56 | if ( | |
55 | if ( | |
57 | 56 | { |
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); | |
64 | 63 | } |
65 | 64 | else |
66 | 65 | { |
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); | |
73 | 72 | } |
74 | 73 | return 0; |
75 | 74 | } |
r17967 | r17968 | |
---|---|---|
101 | 101 | * |
102 | 102 | *************************************/ |
103 | 103 | |
104 | ||
104 | ||
105 | 105 | { |
106 | meadows_state *state = screen.machine().driver_data<meadows_state>(); | |
107 | 106 | /* draw the background */ |
108 | | |
107 | | |
109 | 108 | |
110 | 109 | /* draw the sprites */ |
111 | 110 | if (screen.machine().gfx[1]) |
r17967 | r17968 | |
---|---|---|
145 | 145 | } |
146 | 146 | } |
147 | 147 | |
148 | ||
148 | ||
149 | 149 | { |
150 | bogeyman_state *state = screen.machine().driver_data<bogeyman_state>(); | |
151 | 150 | |
152 | | |
151 | | |
153 | 152 | draw_sprites(screen.machine(), bitmap, cliprect); |
154 | | |
153 | | |
155 | 154 | return 0; |
156 | 155 | } |
r17967 | r17968 | |
---|---|---|
52 | 52 | } |
53 | 53 | |
54 | 54 | |
55 | ||
55 | ||
56 | 56 | { |
57 | srmp2_state *state = screen.machine().driver_data<srmp2_state>(); | |
58 | 57 | bitmap.fill(0x1ff, cliprect); |
59 | 58 | |
60 | 59 | screen.machine().device<seta001_device>("spritegen")->set_transpen(15); |
61 | 60 | |
62 | screen.machine().device<seta001_device>("spritegen")->set_colorbase(( | |
61 | screen.machine().device<seta001_device>("spritegen")->set_colorbase(( | |
63 | 62 | |
64 | 63 | screen.machine().device<seta001_device>("spritegen")->set_fg_xoffsets( 0x10, 0x10 ); |
65 | 64 | screen.machine().device<seta001_device>("spritegen")->set_fg_yoffsets( 0x05, 0x07 ); |
r17967 | r17968 | |
70 | 69 | return 0; |
71 | 70 | } |
72 | 71 | |
73 | ||
72 | ||
74 | 73 | { |
75 | //srmp2_state *state = screen.machine().driver_data<srmp2_state>(); | |
76 | 74 | bitmap.fill(0x1f0, cliprect); |
77 | 75 | |
78 | 76 | screen.machine().device<seta001_device>("spritegen")->set_fg_xoffsets( 0x10, 0x10 ); |
r17967 | r17968 | |
86 | 84 | return 0; |
87 | 85 | } |
88 | 86 | |
89 | ||
87 | ||
90 | 88 | { |
91 | //srmp2_state *state = screen.machine().driver_data<srmp2_state>(); | |
92 | 89 | bitmap.fill(0x1f0, cliprect); |
93 | 90 | |
94 | 91 | screen.machine().device<seta001_device>("spritegen")->set_fg_xoffsets( 0x10, 0x10 ); |
r17967 | r17968 | |
---|---|---|
515 | 515 | } |
516 | 516 | } |
517 | 517 | |
518 | ||
518 | ||
519 | 519 | { |
520 | m72_state *state = screen.machine().driver_data<m72_state>(); | |
521 | if (state->m_video_off) | |
520 | if (m_video_off) | |
522 | 521 | { |
523 | 522 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
524 | 523 | return 0; |
525 | 524 | } |
526 | 525 | |
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); | |
529 | 528 | |
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); | |
532 | 531 | |
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); | |
535 | 534 | 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); | |
538 | 537 | return 0; |
539 | 538 | } |
540 | 539 | |
541 | ||
540 | ||
542 | 541 | { |
543 | m72_state *state = screen.machine().driver_data<m72_state>(); | |
544 | 542 | int i; |
545 | 543 | |
546 | 544 | |
547 | if ( | |
545 | if ( | |
548 | 546 | { |
549 | 547 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
550 | 548 | return 0; |
551 | 549 | } |
552 | 550 | |
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); | |
555 | 553 | |
556 | if ( | |
554 | if ( | |
557 | 555 | { |
558 | | |
556 | | |
559 | 557 | 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]); | |
562 | 560 | } |
563 | 561 | else |
564 | 562 | { |
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); | |
567 | 565 | } |
568 | | |
566 | | |
569 | 567 | |
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); | |
572 | 570 | majtitle_draw_sprites(screen.machine(), bitmap,cliprect); |
573 | 571 | 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); | |
576 | 574 | return 0; |
577 | 575 | } |
r17967 | r17968 | |
---|---|---|
72 | 72 | } |
73 | 73 | } |
74 | 74 | |
75 | ||
75 | ||
76 | 76 | { |
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); | |
79 | 78 | draw_sprites(screen.machine(), bitmap, cliprect); |
80 | 79 | return 0; |
81 | 80 | } |
r17967 | r17968 | |
---|---|---|
99 | 99 | } |
100 | 100 | } |
101 | 101 | |
102 | ||
102 | ||
103 | 103 | { |
104 | ohmygod_state *state = screen.machine().driver_data<ohmygod_state>(); | |
105 | 104 | |
106 | | |
105 | | |
107 | 106 | draw_sprites(screen.machine(), bitmap, cliprect); |
108 | 107 | return 0; |
109 | 108 | } |
r17967 | r17968 | |
---|---|---|
276 | 276 | } |
277 | 277 | |
278 | 278 | |
279 | ||
279 | ||
280 | 280 | { |
281 | snk68_state *state = screen.machine().driver_data<snk68_state>(); | |
282 | 281 | |
283 | 282 | bitmap.fill(0x7ff, cliprect); |
284 | 283 | |
r17967 | r17968 | |
287 | 286 | draw_sprites(screen.machine(), bitmap, cliprect, 3); |
288 | 287 | draw_sprites(screen.machine(), bitmap, cliprect, 1); |
289 | 288 | |
290 | | |
289 | | |
291 | 290 | return 0; |
292 | 291 | } |
r17967 | r17968 | |
---|---|---|
249 | 249 | } |
250 | 250 | |
251 | 251 | |
252 | static | |
252 | UINT32 madalien_state::screen_update_madalien(screen_device &screen, bitmap_ind | |
253 | 253 | { |
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); | |
256 | 255 | |
257 | 256 | // bits #0 and #1 define scrolling mode |
258 | 257 | // |
r17967 | r17968 | |
261 | 260 | // |
262 | 261 | // mode 2 - transition from B to A |
263 | 262 | // mode 3 - transition from A to B |
264 | int scroll_mode = * | |
263 | int scroll_mode = * | |
265 | 264 | |
266 | 265 | bitmap.fill(0, cliprect); |
267 | 266 | draw_edges(screen.machine(), bitmap, cliprect, flip, scroll_mode); |
r17967 | r17968 | |
272 | 271 | * combined with the headlight signal through NOR gate 1A, |
273 | 272 | * which is used to light up the tunnel when an alien explodes |
274 | 273 | */ |
275 | if (scroll_mode != 1 || * | |
274 | if (scroll_mode != 1 || * | |
276 | 275 | { |
277 | 276 | int x; |
278 | 277 | int y; |
r17967 | r17968 | |
280 | 279 | int min_x = 0; |
281 | 280 | int max_x = 0xff; |
282 | 281 | |
283 | if (!(* | |
282 | if (!(* | |
284 | 283 | { |
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; | |
287 | 286 | } |
288 | 287 | |
289 | 288 | if (flip) |
r17967 | r17968 | |
396 | 395 | MACHINE_CONFIG_FRAGMENT( madalien_video ) |
397 | 396 | MCFG_SCREEN_ADD("screen", RASTER) |
398 | 397 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 336, 0, 256, 288, 0, 256) |
399 | MCFG_SCREEN_UPDATE_ | |
398 | MCFG_SCREEN_UPDATE_DR | |
400 | 399 | |
401 | 400 | MCFG_GFXDECODE(madalien) |
402 | 401 | MCFG_PALETTE_LENGTH(0x30) |
r17967 | r17968 | |
---|---|---|
149 | 149 | } |
150 | 150 | |
151 | 151 | |
152 | ||
152 | ||
153 | 153 | { |
154 | aeroboto_state *state = screen.machine().driver_data<aeroboto_state>(); | |
155 | 154 | |
156 | 155 | const rectangle splitrect1(0, 255, 0, 39); |
157 | 156 | const rectangle splitrect2(0, 255, 40, 255); |
158 | 157 | UINT8 *src_base, *src_colptr, *src_rowptr; |
159 | 158 | int src_offsx, src_colmask, sky_color, star_color, x, y, i, j, pen; |
160 | 159 | |
161 | sky_color = star_color = * | |
160 | sky_color = star_color = * | |
162 | 161 | |
163 | 162 | // the star field is supposed to be seen through tile pen 0 when active |
164 | if (! | |
163 | if (! | |
165 | 164 | { |
166 | 165 | if (star_color < 0xd0) |
167 | 166 | { |
r17967 | r17968 | |
174 | 173 | bitmap.fill(sky_color, cliprect); |
175 | 174 | |
176 | 175 | // 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; | |
180 | 179 | |
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; | |
185 | 184 | |
186 | src_base = | |
185 | src_base = | |
187 | 186 | |
188 | 187 | for (i = 0; i < 256; i++) |
189 | 188 | { |
r17967 | r17968 | |
203 | 202 | } |
204 | 203 | else |
205 | 204 | { |
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; | |
208 | 207 | bitmap.fill(sky_color, cliprect); |
209 | 208 | } |
210 | 209 | |
211 | 210 | for (y = 0; y < 64; y++) |
212 | | |
211 | | |
213 | 212 | |
214 | 213 | // 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); | |
217 | 216 | |
218 | 217 | draw_sprites(screen.machine(), bitmap, cliprect); |
219 | 218 | |
220 | 219 | // 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); | |
223 | 222 | return 0; |
224 | 223 | } |
r17967 | r17968 | |
---|---|---|
261 | 261 | } |
262 | 262 | } |
263 | 263 | |
264 | ||
264 | ||
265 | 265 | { |
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); | |
269 | 268 | draw_sprites(screen.machine(), bitmap, cliprect); |
270 | | |
269 | | |
271 | 270 | return 0; |
272 | 271 | } |
r17967 | r17968 | |
---|---|---|
108 | 108 | * |
109 | 109 | *************************************/ |
110 | 110 | |
111 | static | |
111 | UINT32 crgolf_state::screen_update_crgolf(screen_device &screen, bitmap_rgb | |
112 | 112 | { |
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; | |
115 | 114 | |
116 | 115 | offs_t offs; |
117 | 116 | pen_t pens[NUM_PENS]; |
r17967 | r17968 | |
126 | 125 | UINT8 y = (offs & 0x1fe0) >> 5; |
127 | 126 | UINT8 x = (offs & 0x001f) << 3; |
128 | 127 | |
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]; | |
135 | 134 | |
136 | 135 | if (flip) |
137 | 136 | { |
r17967 | r17968 | |
146 | 145 | UINT8 data_b = 0; |
147 | 146 | UINT8 data_a = 0; |
148 | 147 | |
149 | if (~* | |
148 | if (~* | |
150 | 149 | data_a = ((data_a0 & 0x80) >> 7) | ((data_a1 & 0x80) >> 6) | ((data_a2 & 0x80) >> 5); |
151 | 150 | |
152 | if (~* | |
151 | if (~* | |
153 | 152 | data_b = ((data_b0 & 0x80) >> 7) | ((data_b1 & 0x80) >> 6) | ((data_b2 & 0x80) >> 5); |
154 | 153 | |
155 | 154 | /* screen A has priority over B */ |
r17967 | r17968 | |
159 | 158 | color = data_b | 0x08; |
160 | 159 | |
161 | 160 | /* add HI bit if enabled */ |
162 | if (* | |
161 | if (* | |
163 | 162 | color = color | 0x10; |
164 | 163 | |
165 | 164 | bitmap.pix32(y, x) = pens[color]; |
r17967 | r17968 | |
197 | 196 | MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 247) |
198 | 197 | MCFG_SCREEN_REFRESH_RATE(60) |
199 | 198 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
200 | MCFG_SCREEN_UPDATE_ | |
199 | MCFG_SCREEN_UPDATE_DR | |
201 | 200 | MACHINE_CONFIG_END |
r17967 | r17968 | |
---|---|---|
205 | 205 | |
206 | 206 | ***************************************************************************/ |
207 | 207 | |
208 | ||
208 | ||
209 | 209 | { |
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); | |
213 | 212 | int x; |
214 | 213 | |
215 | | |
214 | | |
216 | 215 | |
217 | 216 | for (x = 0; x < 0x20; x++) |
218 | 217 | { |
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); | |
221 | 220 | } |
222 | 221 | |
223 | 222 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
224 | 223 | |
225 | | |
224 | | |
226 | 225 | draw_sprites(screen.machine(), bitmap,cliprect); |
227 | | |
226 | | |
228 | 227 | return 0; |
229 | 228 | } |
r17967 | r17968 | |
---|---|---|
149 | 149 | |
150 | 150 | } |
151 | 151 | |
152 | ||
152 | ||
153 | 153 | { |
154 | oneshot_state *state = screen.machine().driver_data<oneshot_state>(); | |
155 | 154 | |
156 | 155 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
157 | 156 | |
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]); | |
160 | 159 | |
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); | |
163 | 162 | draw_sprites(screen.machine(), bitmap, cliprect); |
164 | | |
163 | | |
165 | 164 | draw_crosshairs(screen.machine(), bitmap, cliprect); |
166 | 165 | return 0; |
167 | 166 | } |
168 | 167 | |
169 | ||
168 | ||
170 | 169 | { |
171 | oneshot_state *state = screen.machine().driver_data<oneshot_state>(); | |
172 | 170 | |
173 | 171 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
174 | 172 | |
175 | | |
173 | | |
176 | 174 | |
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); | |
180 | 178 | draw_sprites(screen.machine(), bitmap, cliprect); |
181 | 179 | |
182 | // popmessage ("%04x %04x %04x %04x %04x %04x %04x %04x", | |
180 | // popmessage ("%04x %04x %04x %04x %04x %04x %04x %04x", | |
183 | 181 | return 0; |
184 | 182 | } |
r17967 | r17968 | |
---|---|---|
123 | 123 | } |
124 | 124 | } |
125 | 125 | |
126 | ||
126 | ||
127 | 127 | { |
128 | stlforce_state *state = screen.machine().driver_data<stlforce_state>(); | |
129 | 128 | int i; |
130 | 129 | |
131 | if ( | |
130 | if ( | |
132 | 131 | { |
133 | 132 | for(i=0;i<256;i++) |
134 | | |
133 | | |
135 | 134 | } |
136 | 135 | else |
137 | 136 | { |
138 | 137 | for(i=0;i<256;i++) |
139 | | |
138 | | |
140 | 139 | } |
141 | 140 | |
142 | if ( | |
141 | if ( | |
143 | 142 | { |
144 | 143 | for(i=0;i<256;i++) |
145 | | |
144 | | |
146 | 145 | } |
147 | 146 | else |
148 | 147 | { |
149 | 148 | for(i=0;i<256;i++) |
150 | | |
149 | | |
151 | 150 | } |
152 | 151 | |
153 | if ( | |
152 | if ( | |
154 | 153 | { |
155 | 154 | for(i=0;i<256;i++) |
156 | | |
155 | | |
157 | 156 | } |
158 | 157 | else |
159 | 158 | { |
160 | 159 | for(i=0;i<256;i++) |
161 | | |
160 | | |
162 | 161 | } |
163 | 162 | |
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]); | |
167 | 166 | |
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]); | |
170 | 169 | |
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); | |
174 | 173 | draw_sprites(screen.machine(), bitmap,cliprect); |
175 | | |
174 | | |
176 | 175 | return 0; |
177 | 176 | } |
178 | 177 |
r17967 | r17968 | |
---|---|---|
109 | 109 | |
110 | 110 | /***************************************************************************/ |
111 | 111 | |
112 | ||
112 | ||
113 | 113 | { |
114 | topspeed_state *state = screen.machine().driver_data<topspeed_state>(); | |
115 | 114 | UINT8 layer[4]; |
116 | 115 | |
117 | 116 | #ifdef MAME_DEBUG |
118 | 117 | if (screen.machine().input().code_pressed_once (KEYCODE_V)) |
119 | 118 | { |
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]); | |
122 | 121 | } |
123 | 122 | |
124 | 123 | if (screen.machine().input().code_pressed_once (KEYCODE_B)) |
125 | 124 | { |
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]); | |
128 | 127 | } |
129 | 128 | |
130 | 129 | if (screen.machine().input().code_pressed_once (KEYCODE_N)) |
131 | 130 | { |
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]); | |
134 | 133 | } |
135 | 134 | |
136 | 135 | if (screen.machine().input().code_pressed_once (KEYCODE_M)) |
137 | 136 | { |
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]); | |
140 | 139 | } |
141 | 140 | |
142 | 141 | if (screen.machine().input().code_pressed_once (KEYCODE_C)) |
143 | 142 | { |
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]); | |
146 | 145 | } |
147 | 146 | #endif |
148 | 147 | |
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); | |
151 | 150 | |
152 | 151 | /* Tilemap layer priority seems hardwired (the order is odd, too) */ |
153 | 152 | layer[0] = 1; |
r17967 | r17968 | |
159 | 158 | bitmap.fill(0, cliprect); |
160 | 159 | |
161 | 160 | #ifdef MAME_DEBUG |
162 | if ( | |
161 | if ( | |
163 | 162 | #endif |
164 | pc080sn_tilemap_draw( | |
163 | pc080sn_tilemap_draw( | |
165 | 164 | |
166 | 165 | #ifdef MAME_DEBUG |
167 | if ( | |
166 | if ( | |
168 | 167 | #endif |
169 | pc080sn_tilemap_draw_special( | |
168 | pc080sn_tilemap_draw_special( | |
170 | 169 | |
171 | 170 | #ifdef MAME_DEBUG |
172 | if ( | |
171 | if ( | |
173 | 172 | #endif |
174 | pc080sn_tilemap_draw_special( | |
173 | pc080sn_tilemap_draw_special( | |
175 | 174 | |
176 | 175 | #ifdef MAME_DEBUG |
177 | if ( | |
176 | if ( | |
178 | 177 | #endif |
179 | pc080sn_tilemap_draw( | |
178 | pc080sn_tilemap_draw( | |
180 | 179 | |
181 | 180 | #ifdef MAME_DEBUG |
182 | if ( | |
181 | if ( | |
183 | 182 | #endif |
184 | 183 | |
185 | 184 | draw_sprites(screen.machine(), bitmap,cliprect); |
r17967 | r17968 | |
---|---|---|
141 | 141 | |
142 | 142 | ***************************************************************************/ |
143 | 143 | |
144 | ||
144 | ||
145 | 145 | { |
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); | |
148 | 147 | draw_sprites(screen.machine(), bitmap, cliprect); |
149 | 148 | return 0; |
150 | 149 | } |
r17967 | r17968 | |
---|---|---|
139 | 139 | } |
140 | 140 | } |
141 | 141 | |
142 | ||
142 | ||
143 | 143 | { |
144 | 144 | bitmap.fill(0, cliprect); |
145 | 145 | draw_sprites(screen.machine(),bitmap,cliprect); |
r17967 | r17968 | |
---|---|---|
148 | 148 | * |
149 | 149 | *************************************/ |
150 | 150 | |
151 | ||
151 | ||
152 | 152 | { |
153 | atarig1_state *state = screen.machine().driver_data<atarig1_state>(); | |
154 | 153 | |
155 | 154 | /* draw the playfield */ |
156 | | |
155 | | |
157 | 156 | |
158 | 157 | /* copy the motion objects on top */ |
159 | copybitmap_trans(bitmap, *atarirle_get_vram( | |
158 | copybitmap_trans(bitmap, *atarirle_get_vram( | |
160 | 159 | |
161 | 160 | /* add the alpha on top */ |
162 | | |
161 | | |
163 | 162 | return 0; |
164 | 163 | } |
165 | 164 | |
166 | ||
165 | void | |
167 | 166 | { |
168 | 167 | // rising edge |
169 | if ( | |
168 | if (st | |
170 | 169 | { |
171 | atarig1_state *state = screen.machine().driver_data<atarig1_state>(); | |
172 | 170 | |
173 | atarirle_eof( | |
171 | atarirle_eof( | |
174 | 172 | } |
175 | 173 | } |
r17967 | r17968 | |
---|---|---|
77 | 77 | |
78 | 78 | ***************************************************************************/ |
79 | 79 | |
80 | ||
80 | ||
81 | 81 | { |
82 | bladestl_state *state = screen.machine().driver_data<bladestl_state>(); | |
83 | 82 | set_pens(screen.machine()); |
84 | 83 | |
85 | k007342_tilemap_update( | |
84 | k007342_tilemap_update( | |
86 | 85 | |
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); | |
92 | 91 | return 0; |
93 | 92 | } |
r17967 | r17968 | |
---|---|---|
225 | 225 | * |
226 | 226 | *************************************/ |
227 | 227 | |
228 | ||
228 | ||
229 | 229 | { |
230 | toobin_state *state = screen.machine().driver_data<toobin_state>(); | |
231 | 230 | bitmap_ind8 &priority_bitmap = screen.machine().priority_bitmap; |
232 | 231 | const rgb_t *palette = palette_entry_list_adjusted(screen.machine().palette); |
233 | 232 | atarimo_rect_list rectlist; |
r17967 | r17968 | |
236 | 235 | |
237 | 236 | /* draw the playfield */ |
238 | 237 | 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); | |
243 | 242 | |
244 | 243 | /* draw and merge the MO */ |
245 | 244 | mobitmap = atarimo_render(0, cliprect, &rectlist); |
r17967 | r17968 | |
247 | 246 | { |
248 | 247 | UINT32 *dest = &bitmap.pix32(y); |
249 | 248 | UINT16 *mo = &mobitmap->pix16(y); |
250 | UINT16 *pf = & | |
249 | UINT16 *pf = & | |
251 | 250 | UINT8 *pri = &priority_bitmap.pix8(y); |
252 | 251 | for (x = cliprect.min_x; x <= cliprect.max_x; x++) |
253 | 252 | { |
r17967 | r17968 | |
272 | 271 | } |
273 | 272 | |
274 | 273 | /* add the alpha on top */ |
275 | | |
274 | | |
276 | 275 | return 0; |
277 | 276 | } |
r17967 | r17968 | |
---|---|---|
155 | 155 | } |
156 | 156 | |
157 | 157 | |
158 | ||
158 | ||
159 | 159 | { |
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); | |
162 | 161 | 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); | |
165 | 164 | return 0; |
166 | 165 | } |
r17967 | r17968 | |
---|---|---|
409 | 409 | |
410 | 410 | #define LAYER_DB 0 |
411 | 411 | |
412 | ||
412 | ||
413 | 413 | { |
414 | legionna_state *state = screen.machine().driver_data<legionna_state>(); | |
415 | 414 | /* 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]*/ ); | |
424 | 423 | |
425 | 424 | screen.machine().priority_bitmap.fill(0, cliprect); |
426 | 425 | bitmap.fill(get_black_pen(screen.machine()), cliprect); /* wrong color? */ |
427 | 426 | |
428 | /* | |
427 | /* | |
429 | 428 | |
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); | |
434 | 433 | |
435 | 434 | draw_sprites(screen.machine(),bitmap,cliprect); |
436 | 435 | |
r17967 | r17968 | |
439 | 438 | } |
440 | 439 | |
441 | 440 | |
442 | ||
441 | ||
443 | 442 | { |
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 ); | |
447 | 445 | /* 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]*/ ); | |
456 | 454 | |
457 | 455 | |
458 | 456 | bitmap.fill(0x0200, cliprect); |
459 | 457 | screen.machine().priority_bitmap.fill(0, cliprect); |
460 | 458 | |
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); | |
465 | 463 | |
466 | 464 | draw_sprites(screen.machine(),bitmap,cliprect); |
467 | 465 | |
468 | 466 | return 0; |
469 | 467 | } |
470 | 468 | |
471 | ||
469 | ||
472 | 470 | { |
473 | legionna_state *state = screen.machine().driver_data<legionna_state>(); | |
474 | 471 | /* 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]*/ ); | |
483 | 480 | |
484 | 481 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
485 | 482 | screen.machine().priority_bitmap.fill(0, cliprect); |
486 | 483 | |
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); | |
489 | 486 | |
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); | |
492 | 489 | |
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); | |
495 | 492 | |
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); | |
498 | 495 | |
499 | 496 | draw_sprites(screen.machine(),bitmap,cliprect); |
500 | 497 |
r17967 | r17968 | |
---|---|---|
124 | 124 | } |
125 | 125 | } |
126 | 126 | |
127 | ||
127 | ||
128 | 128 | { |
129 | pbaction_state *state = screen.machine().driver_data<pbaction_state>(); | |
130 | 129 | |
131 | | |
130 | | |
132 | 131 | draw_sprites(screen.machine(), bitmap, cliprect); |
133 | | |
132 | | |
134 | 133 | return 0; |
135 | 134 | } |
r17967 | r17968 | |
---|---|---|
314 | 314 | * |
315 | 315 | *************************************/ |
316 | 316 | |
317 | ||
317 | ||
318 | 318 | { |
319 | mcr68_state *state = screen.machine().driver_data<mcr68_state>(); | |
320 | 319 | /* draw the background */ |
321 | | |
320 | | |
322 | 321 | |
323 | 322 | /* draw the low-priority sprites */ |
324 | 323 | mcr68_update_sprites(screen.machine(), bitmap, cliprect, 0); |
325 | 324 | |
326 | 325 | /* redraw tiles with priority over sprites */ |
327 | | |
326 | | |
328 | 327 | |
329 | 328 | /* draw the high-priority sprites */ |
330 | 329 | mcr68_update_sprites(screen.machine(), bitmap, cliprect, 1); |
r17967 | r17968 | |
332 | 331 | } |
333 | 332 | |
334 | 333 | |
335 | ||
334 | ||
336 | 335 | { |
337 | mcr68_state *state = screen.machine().driver_data<mcr68_state>(); | |
338 | 336 | /* draw the background */ |
339 | | |
337 | | |
340 | 338 | |
341 | 339 | /* draw the low-priority sprites */ |
342 | 340 | zwackery_update_sprites(screen.machine(), bitmap, cliprect, 0); |
343 | 341 | |
344 | 342 | /* redraw tiles with priority over sprites */ |
345 | | |
343 | | |
346 | 344 | |
347 | 345 | /* draw the high-priority sprites */ |
348 | 346 | zwackery_update_sprites(screen.machine(), bitmap, cliprect, 1); |
r17967 | r17968 | |
---|---|---|
50 | 50 | |
51 | 51 | ***************************************************************************/ |
52 | 52 | |
53 | ||
53 | ||
54 | 54 | { |
55 | overdriv_state *state = screen.machine().driver_data<overdriv_state>(); | |
56 | 55 | |
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); | |
62 | 61 | |
63 | 62 | screen.machine().priority_bitmap.fill(0, cliprect); |
64 | 63 | |
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); | |
67 | 66 | |
68 | k053247_sprites_draw( | |
67 | k053247_sprites_draw( | |
69 | 68 | return 0; |
70 | 69 | } |
r17967 | r17968 | |
---|---|---|
191 | 191 | } |
192 | 192 | |
193 | 193 | |
194 | ||
194 | ||
195 | 195 | { |
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); | |
198 | 197 | return 0; |
199 | 198 | } |
r17967 | r17968 | |
---|---|---|
65 | 65 | |
66 | 66 | ***************************************************************************/ |
67 | 67 | |
68 | ||
68 | ||
69 | 69 | { |
70 | thunderx_state *state = screen.machine().driver_data<thunderx_state>(); | |
71 | 70 | |
72 | k052109_tilemap_update( | |
71 | k052109_tilemap_update( | |
73 | 72 | |
74 | 73 | screen.machine().priority_bitmap.fill(0, cliprect); |
75 | 74 | |
76 | 75 | /* 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) | |
79 | 78 | { |
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); | |
82 | 81 | } |
83 | 82 | else |
84 | 83 | { |
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); | |
87 | 86 | } |
88 | k052109_tilemap_draw( | |
87 | k052109_tilemap_draw( | |
89 | 88 | |
90 | k051960_sprites_draw( | |
89 | k051960_sprites_draw( | |
91 | 90 | return 0; |
92 | 91 | } |
r17967 | r17968 | |
---|---|---|
16 | 16 | } |
17 | 17 | |
18 | 18 | |
19 | ||
19 | ||
20 | 20 | { |
21 | spcforce_state *state = screen.machine().driver_data<spcforce_state>(); | |
22 | 21 | int offs; |
23 | int flip = | |
22 | int flip = | |
24 | 23 | |
25 | 24 | /* draw the characters as sprites because they could be overlapping */ |
26 | 25 | bitmap.fill(0, cliprect); |
r17967 | r17968 | |
28 | 27 | { |
29 | 28 | int code,sx,sy,col; |
30 | 29 | |
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); | |
33 | 32 | |
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; | |
36 | 35 | |
37 | 36 | if (flip) |
38 | 37 | { |
r17967 | r17968 | |
---|---|---|
202 | 202 | } |
203 | 203 | } |
204 | 204 | |
205 | ||
205 | ||
206 | 206 | { |
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); | |
209 | 208 | draw_sprites(screen.machine(), bitmap, cliprect); |
210 | 209 | return 0; |
211 | 210 | } |
r17967 | r17968 | |
---|---|---|
202 | 202 | } |
203 | 203 | } |
204 | 204 | |
205 | ||
205 | ||
206 | 206 | { |
207 | mario_state *state = screen.machine().driver_data<mario_state>(); | |
208 | 207 | int t; |
209 | 208 | |
210 | 209 | t = screen.machine().root_device().ioport("MONITOR")->read(); |
211 | if (t != | |
210 | if (t != | |
212 | 211 | { |
213 | | |
212 | | |
214 | 213 | screen.machine().tilemap().mark_all_dirty(); |
215 | 214 | } |
216 | 215 | |
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)); | |
219 | 218 | |
220 | | |
219 | | |
221 | 220 | draw_sprites(screen.machine(), bitmap, cliprect); |
222 | 221 | |
223 | 222 | return 0; |
r17967 | r17968 | |
---|---|---|
70 | 70 | |
71 | 71 | ***************************************************************************/ |
72 | 72 | |
73 | ||
73 | ||
74 | 74 | { |
75 | xmen_state *state = screen.machine().driver_data<xmen_state>(); | |
76 | 75 | int layer[3], bg_colorbase; |
77 | 76 | |
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); | |
83 | 82 | |
84 | k052109_tilemap_update( | |
83 | k052109_tilemap_update( | |
85 | 84 | |
86 | 85 | layer[0] = 0; |
87 | | |
86 | | |
88 | 87 | layer[1] = 1; |
89 | | |
88 | | |
90 | 89 | layer[2] = 2; |
91 | | |
90 | | |
92 | 91 | |
93 | konami_sortlayers3(layer, | |
92 | konami_sortlayers3(layer, | |
94 | 93 | |
95 | 94 | screen.machine().priority_bitmap.fill(0, cliprect); |
96 | 95 | /* note the '+1' in the background color!!! */ |
97 | 96 | 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); | |
101 | 100 | |
102 | 101 | /* this isn't supported anymore and it is unsure if still needed; keeping here for reference |
103 | 102 | pdrawgfx_shadow_lowpri = 1; fix shadows of boulders in front of feet */ |
104 | k053247_sprites_draw( | |
103 | k053247_sprites_draw( | |
105 | 104 | return 0; |
106 | 105 | } |
107 | 106 | |
108 | 107 | |
109 | ||
108 | ||
110 | 109 | { |
111 | xmen_state *state = screen.machine().driver_data<xmen_state>(); | |
112 | 110 | int x, y; |
113 | 111 | |
114 | 112 | for(y = 0; y < 32 * 8; y++) |
115 | 113 | { |
116 | 114 | UINT16* line_dest = &bitmap.pix16(y); |
117 | UINT16* line_src = & | |
115 | UINT16* line_src = & | |
118 | 116 | |
119 | 117 | for (x = 12 * 8; x < 52 * 8; x++) |
120 | 118 | line_dest[x] = line_src[x]; |
r17967 | r17968 | |
123 | 121 | return 0; |
124 | 122 | } |
125 | 123 | |
126 | ||
124 | ||
127 | 125 | { |
128 | xmen_state *state = screen.machine().driver_data<xmen_state>(); | |
129 | 126 | int x, y; |
130 | 127 | |
131 | 128 | for(y = 0; y < 32 * 8; y++) |
132 | 129 | { |
133 | 130 | UINT16* line_dest = &bitmap.pix16(y); |
134 | UINT16* line_src = & | |
131 | UINT16* line_src = & | |
135 | 132 | |
136 | 133 | for (x = 12 * 8; x < 52 * 8; x++) |
137 | 134 | line_dest[x] = line_src[x]; |
r17967 | r17968 | |
141 | 138 | } |
142 | 139 | |
143 | 140 | /* my lefts and rights are mixed up in several places.. */ |
144 | ||
141 | void | |
145 | 142 | { |
146 | 143 | // rising edge |
147 | if ( | |
144 | if (st | |
148 | 145 | { |
149 | xmen_state *state = screen.machine().driver_data<xmen_state>(); | |
150 | 146 | int layer[3], bg_colorbase; |
151 | 147 | bitmap_ind16 * renderbitmap; |
152 | 148 | rectangle cliprect; |
r17967 | r17968 | |
163 | 159 | { |
164 | 160 | |
165 | 161 | /* copy the desired spritelist to the chip */ |
166 | memcpy( | |
162 | memcpy( | |
167 | 163 | |
168 | 164 | /* we write the entire content of the tileram to the chip to ensure |
169 | 165 | everything gets marked as dirty and the desired tilemap is rendered |
r17967 | r17968 | |
172 | 168 | for (offset = 0; offset < (0xc000 / 2); offset++) |
173 | 169 | { |
174 | 170 | // K052109_lsb_w |
175 | k052109_w( | |
171 | k052109_w( | |
176 | 172 | } |
177 | 173 | |
178 | 174 | |
179 | renderbitmap = | |
175 | renderbitmap = | |
180 | 176 | } |
181 | 177 | else |
182 | 178 | { |
183 | 179 | /* copy the desired spritelist to the chip */ |
184 | memcpy( | |
180 | memcpy( | |
185 | 181 | |
186 | 182 | /* we write the entire content of the tileram to the chip to ensure |
187 | 183 | everything gets marked as dirty and the desired tilemap is rendered |
r17967 | r17968 | |
191 | 187 | for (offset = 0; offset < (0xc000 / 2); offset++) |
192 | 188 | { |
193 | 189 | // K052109_lsb_w |
194 | k052109_w( | |
190 | k052109_w( | |
195 | 191 | } |
196 | 192 | |
197 | 193 | |
198 | renderbitmap = | |
194 | renderbitmap = | |
199 | 195 | } |
200 | 196 | |
201 | 197 | |
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); | |
207 | 203 | |
208 | k052109_tilemap_update( | |
204 | k052109_tilemap_update( | |
209 | 205 | |
210 | 206 | layer[0] = 0; |
211 | | |
207 | | |
212 | 208 | layer[1] = 1; |
213 | | |
209 | | |
214 | 210 | layer[2] = 2; |
215 | | |
211 | | |
216 | 212 | |
217 | konami_sortlayers3(layer, | |
213 | konami_sortlayers3(layer, | |
218 | 214 | |
219 | 215 | screen.machine().priority_bitmap.fill(0, cliprect); |
220 | 216 | /* note the '+1' in the background color!!! */ |
221 | 217 | 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); | |
225 | 221 | |
226 | 222 | /* this isn't supported anymore and it is unsure if still needed; keeping here for reference |
227 | 223 | pdrawgfx_shadow_lowpri = 1; fix shadows of boulders in front of feet */ |
228 | k053247_sprites_draw( | |
224 | k053247_sprites_draw( | |
229 | 225 | } |
230 | 226 | } |
r17967 | r17968 | |
---|---|---|
385 | 385 | |
386 | 386 | |
387 | 387 | ******************************************************************************/ |
388 | ||
388 | ||
389 | 389 | { |
390 | nbmj8900_state *state = screen.machine().driver_data<nbmj8900_state>(); | |
391 | 390 | int x, y; |
392 | 391 | |
393 | if ( | |
392 | if ( | |
394 | 393 | { |
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++) | |
397 | 396 | { |
398 | for (x = 0; x < | |
397 | for (x = 0; x < | |
399 | 398 | { |
400 | 399 | update_pixel0(screen.machine(), x, y); |
401 | 400 | } |
402 | 401 | } |
403 | if ( | |
402 | if ( | |
404 | 403 | { |
405 | for (y = 0; y < | |
404 | for (y = 0; y < | |
406 | 405 | { |
407 | for (x = 0; x < | |
406 | for (x = 0; x < | |
408 | 407 | { |
409 | 408 | update_pixel1(screen.machine(), x, y); |
410 | 409 | } |
r17967 | r17968 | |
412 | 411 | } |
413 | 412 | } |
414 | 413 | |
415 | if ( | |
414 | if ( | |
416 | 415 | { |
417 | 416 | 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; | |
420 | 419 | |
421 | if ( | |
420 | if ( | |
422 | 421 | { |
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); | |
425 | 424 | } |
426 | 425 | else |
427 | 426 | { |
428 | copyscrollbitmap(bitmap, | |
427 | copyscrollbitmap(bitmap, | |
429 | 428 | } |
430 | 429 | } |
431 | 430 | else |
r17967 | r17968 | |
---|---|---|
134 | 134 | m_fg3_tilemap->set_transparent_pen(0); |
135 | 135 | } |
136 | 136 | |
137 | ||
137 | ||
138 | 138 | { |
139 | silkroad_state *state = screen.machine().driver_data<silkroad_state>(); | |
140 | 139 | screen.machine().priority_bitmap.fill(0, cliprect); |
141 | 140 | bitmap.fill(0x7c0, cliprect); |
142 | 141 | |
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 ); | |
145 | 144 | |
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 ); | |
148 | 147 | |
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 ); | |
151 | 150 | |
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); | |
155 | 154 | draw_sprites(screen.machine(),bitmap,cliprect); |
156 | 155 | |
157 | 156 | if (0) |
158 | 157 | { |
159 | 158 | 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]); | |
165 | 164 | } |
166 | 165 | |
167 | 166 | return 0; |
r17967 | r17968 | |
---|---|---|
173 | 173 | } |
174 | 174 | |
175 | 175 | |
176 | ||
176 | ||
177 | 177 | { |
178 | 178 | draw_playfield_and_alpha(screen.machine(), bitmap, cliprect, 0, 0); |
179 | 179 | |
r17967 | r17968 | |
183 | 183 | } |
184 | 184 | |
185 | 185 | |
186 | ||
186 | ||
187 | 187 | { |
188 | 188 | draw_playfield_and_alpha(screen.machine(), bitmap, cliprect, -8, 0); |
189 | 189 | |
r17967 | r17968 | |
193 | 193 | } |
194 | 194 | |
195 | 195 | |
196 | ||
196 | ||
197 | 197 | { |
198 | 198 | draw_playfield_and_alpha(screen.machine(), bitmap, cliprect, 0, 8); |
199 | 199 |
r17967 | r17968 | |
---|---|---|
100 | 100 | } |
101 | 101 | } |
102 | 102 | |
103 | ||
103 | ||
104 | 104 | { |
105 | lethal_state *state = screen.machine().driver_data<lethal_state>(); | |
106 | 105 | |
107 | 106 | bitmap.fill(7168, cliprect); |
108 | 107 | screen.machine().priority_bitmap.fill(0, cliprect); |
109 | 108 | |
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); | |
113 | 112 | |
114 | k053245_sprites_draw_lethal( | |
113 | k053245_sprites_draw_lethal( | |
115 | 114 | |
116 | 115 | // force "A" layer over top of everything |
117 | k056832_tilemap_draw( | |
116 | k056832_tilemap_draw( | |
118 | 117 | |
119 | 118 | return 0; |
120 | 119 | } |
r17967 | r17968 | |
---|---|---|
31 | 31 | } |
32 | 32 | |
33 | 33 | |
34 | ||
34 | ||
35 | 35 | { |
36 | videopin_state *state = screen.machine().driver_data<videopin_state>(); | |
37 | 36 | int col; |
38 | 37 | int row; |
39 | 38 | |
40 | | |
39 | | |
41 | 40 | |
42 | | |
41 | | |
43 | 42 | |
44 | 43 | for (row = 0; row < 32; row++) |
45 | 44 | { |
46 | 45 | for (col = 0; col < 48; col++) |
47 | 46 | { |
48 | UINT32 offset = | |
47 | UINT32 offset = | |
49 | 48 | |
50 | if ( | |
49 | if ( | |
51 | 50 | { |
52 | 51 | int x = 8 * col; |
53 | 52 | int y = 8 * row; |
r17967 | r17968 | |
60 | 59 | rectangle rect(x, x + 15, y, y + 15); |
61 | 60 | rect &= cliprect; |
62 | 61 | |
63 | x -= state->m_ball_x; | |
64 | y -= state->m_ball_y; | |
62 | x -= m_ball_x; | |
63 | y -= m_ball_y; | |
65 | 64 | |
66 | 65 | /* ball placement is still 0.5 pixels off but don't tell anyone */ |
67 | 66 |
r17967 | r17968 | |
---|---|---|
128 | 128 | } |
129 | 129 | } |
130 | 130 | |
131 | ||
131 | ||
132 | 132 | { |
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); | |
135 | 134 | 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); | |
138 | 137 | return 0; |
139 | 138 | } |
r17967 | r17968 | |
---|---|---|
466 | 466 | |
467 | 467 | /******************************************************************************/ |
468 | 468 | |
469 | ||
469 | ||
470 | 470 | { |
471 | tecmo16_state *state = screen.machine().driver_data<tecmo16_state>(); | |
472 | 471 | screen.machine().priority_bitmap.fill(0, cliprect); |
473 | 472 | |
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); | |
477 | 476 | |
478 | 477 | /* 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); | |
481 | 480 | /* draw the blended tiles at a lower priority |
482 | 481 | 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); | |
485 | 484 | |
486 | 485 | /* draw sprites into a 16-bit bitmap */ |
487 | draw_sprites(screen.machine(), | |
486 | draw_sprites(screen.machine(), | |
488 | 487 | |
489 | 488 | /* mix & blend the tilemaps and sprites into a 32-bit bitmap */ |
490 | blendbitmaps(screen.machine(), bitmap, | |
489 | blendbitmaps(screen.machine(), bitmap, | |
491 | 490 | return 0; |
492 | 491 | } |
r17967 | r17968 | |
---|---|---|
180 | 180 | |
181 | 181 | |
182 | 182 | ***************************************************************************/ |
183 | ||
183 | ||
184 | 184 | { |
185 | 185 | const rectangle scrollvisiblearea(2*8, 34*8-1, 0*8, 28*8-1); |
186 | 186 | const rectangle leftvisiblearea(0*8, 2*8-1, 0*8, 28*8-1); |
187 | 187 | const rectangle rightvisiblearea(34*8, 36*8-1, 0*8, 28*8-1); |
188 | 188 | |
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; | |
192 | 191 | int offs; |
193 | 192 | |
194 | 193 | // for every character in the Video RAM |
r17967 | r17968 | |
197 | 196 | { |
198 | 197 | int sx,sy; |
199 | 198 | |
200 | if ( | |
199 | if ( | |
201 | 200 | { |
202 | 201 | if (offs < 0x700) |
203 | 202 | { |
r17967 | r17968 | |
225 | 224 | } |
226 | 225 | |
227 | 226 | 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, | |
231 | 230 | 8*sx,8*sy); |
232 | 231 | |
233 | 232 | 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, | |
237 | 236 | 8*sx,8*sy,0); |
238 | 237 | } |
239 | 238 | |
r17967 | r17968 | |
244 | 243 | copybitmap(bitmap,tmpbitmap,0,0,-66*8,0,leftvisiblearea); |
245 | 244 | copybitmap(bitmap,tmpbitmap,0,0,-30*8,0,rightvisiblearea); |
246 | 245 | |
247 | scrollx = ( | |
246 | scrollx = ( | |
248 | 247 | copyscrollbitmap(bitmap,tmpbitmap,1,&scrollx,0,0,scrollvisiblearea); |
249 | 248 | } |
250 | 249 | return 0; |
r17967 | r17968 | |
---|---|---|
83 | 83 | |
84 | 84 | |
85 | 85 | |
86 | ||
86 | ||
87 | 87 | { |
88 | runaway_state *state = screen.machine().driver_data<runaway_state>(); | |
89 | 88 | int i; |
90 | 89 | |
91 | | |
90 | | |
92 | 91 | |
93 | 92 | for (i = 0; i < 16; i++) |
94 | 93 | { |
95 | unsigned code = | |
94 | unsigned code = | |
96 | 95 | |
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]; | |
99 | 98 | |
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; | |
102 | 101 | |
103 | code |= ( | |
102 | code |= ( | |
104 | 103 | |
105 | 104 | drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1], |
106 | 105 | code, |
r17967 | r17968 | |
118 | 117 | } |
119 | 118 | |
120 | 119 | |
121 | ||
120 | ||
122 | 121 | { |
123 | runaway_state *state = screen.machine().driver_data<runaway_state>(); | |
124 | 122 | int i; |
125 | 123 | |
126 | | |
124 | | |
127 | 125 | |
128 | 126 | for (i = 0; i < 16; i++) |
129 | 127 | { |
130 | unsigned code = | |
128 | unsigned code = | |
131 | 129 | |
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]; | |
134 | 132 | |
135 | 133 | int flipx = 0; |
136 | int flipy = | |
134 | int flipy = | |
137 | 135 | |
138 | code |= ( | |
136 | code |= ( | |
139 | 137 | |
140 | 138 | drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1], |
141 | 139 | code, |
r17967 | r17968 | |
---|---|---|
322 | 322 | machine.device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, state->m_spriteram.bytes()/2); |
323 | 323 | } |
324 | 324 | |
325 | ||
325 | ||
326 | 326 | { |
327 | tumbleb_state *state = screen.machine().driver_data<tumbleb_state>(); | |
328 | 327 | int offs, offs2; |
329 | 328 | |
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); | |
332 | 331 | |
333 | if ( | |
332 | if ( | |
334 | 333 | offs = 1; |
335 | 334 | else |
336 | 335 | offs = -1; |
337 | 336 | |
338 | if ( | |
337 | if ( | |
339 | 338 | offs2 = -3; |
340 | 339 | else |
341 | 340 | offs2 = -5; |
r17967 | r17968 | |
345 | 344 | return 0; |
346 | 345 | } |
347 | 346 | |
348 | ||
347 | ||
349 | 348 | { |
350 | tumbleb_state *state = screen.machine().driver_data<tumbleb_state>(); | |
351 | 349 | int offs, offs2; |
352 | 350 | |
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); | |
355 | 353 | |
356 | if ( | |
354 | if ( | |
357 | 355 | offs = 1; |
358 | 356 | else |
359 | 357 | offs = -1; |
360 | 358 | |
361 | if ( | |
359 | if ( | |
362 | 360 | offs2 = -3; |
363 | 361 | else |
364 | 362 | offs2 = -5; |
r17967 | r17968 | |
367 | 365 | return 0; |
368 | 366 | } |
369 | 367 | |
370 | ||
368 | ||
371 | 369 | { |
372 | tumbleb_state *state = screen.machine().driver_data<tumbleb_state>(); | |
373 | 370 | int offs, offs2; |
374 | 371 | |
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); | |
377 | 374 | |
378 | if ( | |
375 | if ( | |
379 | 376 | offs = 1; |
380 | 377 | else |
381 | 378 | offs = -1; |
382 | 379 | |
383 | if ( | |
380 | if ( | |
384 | 381 | offs2 = -3; |
385 | 382 | else |
386 | 383 | offs2 = -5; |
r17967 | r17968 | |
389 | 386 | return 0; |
390 | 387 | } |
391 | 388 | |
392 | ||
389 | ||
393 | 390 | { |
394 | tumbleb_state *state = screen.machine().driver_data<tumbleb_state>(); | |
395 | 391 | int offsx, offsy, offsx2; |
396 | 392 | |
397 | | |
393 | | |
398 | 394 | |
399 | 395 | offsx = -1; |
400 | 396 | offsy = 2; |
r17967 | r17968 | |
405 | 401 | return 0; |
406 | 402 | } |
407 | 403 | |
408 | ||
404 | ||
409 | 405 | { |
410 | tumbleb_state *state = screen.machine().driver_data<tumbleb_state>(); | |
411 | 406 | int offs, offs2; |
412 | 407 | |
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); | |
415 | 410 | |
416 | 411 | /* not sure of this */ |
417 | if ( | |
412 | if ( | |
418 | 413 | offs = 1; |
419 | 414 | else |
420 | 415 | offs = 8; |
421 | 416 | |
422 | 417 | /* not sure of this */ |
423 | if ( | |
418 | if ( | |
424 | 419 | offs2 = -3; |
425 | 420 | else |
426 | 421 | offs2 = 8; |
r17967 | r17968 | |
429 | 424 | return 0; |
430 | 425 | } |
431 | 426 | |
432 | ||
427 | ||
433 | 428 | { |
434 | tumbleb_state *state = screen.machine().driver_data<tumbleb_state>(); | |
435 | 429 | int offs, offs2; |
436 | 430 | |
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); | |
439 | 433 | offs = -1; |
440 | 434 | offs2 = -2; |
441 | 435 | |
r17967 | r17968 | |
444 | 438 | return 0; |
445 | 439 | } |
446 | 440 | |
447 | ||
441 | ||
448 | 442 | { |
449 | tumbleb_state *state = screen.machine().driver_data<tumbleb_state>(); | |
450 | 443 | int offs, offs2; |
451 | 444 | |
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); | |
454 | 447 | offs = -1; |
455 | 448 | offs2 = -5; // foreground scroll.. |
456 | 449 | |
457 | 450 | tumbleb_draw_common(screen.machine(),bitmap,cliprect, offs2, -16, offs, 0); |
458 | 451 | |
459 | screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, | |
452 | screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, | |
460 | 453 | return 0; |
461 | 454 | } |
462 | 455 | |
463 | ||
456 | ||
464 | 457 | { |
465 | tumbleb_state *state = screen.machine().driver_data<tumbleb_state>(); | |
466 | 458 | int offs, offs2; |
467 | 459 | |
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); | |
470 | 462 | |
471 | if ( | |
463 | if ( | |
472 | 464 | offs = 1; |
473 | 465 | else |
474 | 466 | offs = -1; |
475 | 467 | |
476 | if ( | |
468 | if ( | |
477 | 469 | offs2 = -3; |
478 | 470 | else |
479 | 471 | offs2 = -5; |
r17967 | r17968 | |
483 | 475 | return 0; |
484 | 476 | } |
485 | 477 | |
486 | ||
478 | ||
487 | 479 | { |
488 | tumbleb_state *state = screen.machine().driver_data<tumbleb_state>(); | |
489 | 480 | int offs, offs2; |
490 | 481 | |
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); | |
493 | 484 | |
494 | if ( | |
485 | if ( | |
495 | 486 | offs = 1; |
496 | 487 | else |
497 | 488 | offs = -1; |
498 | 489 | |
499 | if ( | |
490 | if ( | |
500 | 491 | offs2 = -3; |
501 | 492 | else |
502 | 493 | offs2 = -5; |
r17967 | r17968 | |
507 | 498 | |
508 | 499 | |
509 | 500 | |
510 | ||
501 | ||
511 | 502 | { |
512 | tumbleb_state *state = screen.machine().driver_data<tumbleb_state>(); | |
513 | 503 | |
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]); | |
518 | 508 | |
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); | |
521 | 511 | |
522 | screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, | |
512 | screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, | |
523 | 513 | return 0; |
524 | 514 | } |
525 | 515 |
r17967 | r17968 | |
---|---|---|
270 | 270 | } |
271 | 271 | |
272 | 272 | |
273 | ||
273 | ||
274 | 274 | { |
275 | toypop_state *state = screen.machine().driver_data<toypop_state>(); | |
276 | 275 | 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); | |
279 | 278 | return 0; |
280 | 279 | } |
r17967 | r17968 | |
---|---|---|
101 | 101 | |
102 | 102 | /****************************************************************************/ |
103 | 103 | |
104 | ||
104 | ||
105 | 105 | { |
106 | momoko_state *state = screen.machine().driver_data<momoko_state>(); | |
107 | 106 | int x, y, dx, dy, rx, ry, radr, chr, sy, fx, fy, px, py, offs, col, pri, flip ; |
108 | UINT8 *spriteram = | |
107 | UINT8 *spriteram = | |
109 | 108 | |
110 | 109 | UINT8 *BG_MAP = screen.machine().root_device().memregion("user1")->base(); |
111 | 110 | UINT8 *BG_COL_MAP = screen.machine().root_device().memregion("user2")->base(); |
112 | 111 | UINT8 *FG_MAP = screen.machine().root_device().memregion("user3")->base(); |
113 | UINT8 *TEXT_COLOR = | |
112 | UINT8 *TEXT_COLOR = | |
114 | 113 | |
115 | 114 | |
116 | flip = | |
115 | flip = | |
117 | 116 | |
118 | 117 | /* 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; | |
123 | 122 | |
124 | if ( | |
123 | if ( | |
125 | 124 | { |
126 | 125 | for (y = 0; y < 29; y++) |
127 | 126 | { |
r17967 | r17968 | |
129 | 128 | { |
130 | 129 | radr = ((ry + y + 2) & 0x3ff) * 128 + ((rx + x) & 0x7f); |
131 | 130 | 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; | |
134 | 133 | |
135 | 134 | if (flip == 0) |
136 | 135 | { |
r17967 | r17968 | |
186 | 185 | |
187 | 186 | |
188 | 187 | /* draw BG layer */ |
189 | if ( | |
188 | if ( | |
190 | 189 | { |
191 | 190 | for (y = 0; y < 29; y++) |
192 | 191 | { |
r17967 | r17968 | |
194 | 193 | { |
195 | 194 | radr = ((ry + y + 2) & 0x3ff) * 128 + ((rx + x) & 0x7f) ; |
196 | 195 | chr = BG_MAP[radr] ; |
197 | col = BG_COL_MAP[chr + | |
196 | col = BG_COL_MAP[chr + | |
198 | 197 | pri = (col & 0x10) >> 1; |
199 | 198 | |
200 | 199 | if (flip == 0) |
r17967 | r17968 | |
210 | 209 | if (pri != 0) |
211 | 210 | { |
212 | 211 | col = col & 0x0f; |
213 | chr = chr + | |
212 | chr = chr + | |
214 | 213 | momoko_draw_bg_pri(screen.machine(), bitmap, chr, col, flip, flip, px, py, pri); |
215 | 214 | } |
216 | 215 | } |
r17967 | r17968 | |
219 | 218 | |
220 | 219 | |
221 | 220 | /* draw sprites (others) */ |
222 | for (offs = 9 * 4; offs < | |
221 | for (offs = 9 * 4; offs < | |
223 | 222 | { |
224 | 223 | chr = spriteram[offs + 1] | ((spriteram[offs + 2] & 0x60) << 3); |
225 | 224 | chr = ((chr & 0x380) << 1) | (chr & 0x7f); |
r17967 | r17968 | |
253 | 252 | for (x = 0; x < 32; x++) |
254 | 253 | { |
255 | 254 | sy = y; |
256 | if ( | |
255 | if ( | |
257 | 256 | col = TEXT_COLOR[(sy >> 3) + 0x100] & 0x0f; |
258 | 257 | else |
259 | 258 | { |
260 | 259 | if (TEXT_COLOR[y] < 0x08) |
261 | sy += | |
260 | sy += | |
262 | 261 | col = (TEXT_COLOR[y] & 0x07) + 0x10; |
263 | 262 | } |
264 | 263 | dy = sy & 7; |
r17967 | r17968 | |
273 | 272 | py = 255 - y; |
274 | 273 | } |
275 | 274 | drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[0], |
276 | | |
275 | | |
277 | 276 | col, |
278 | 277 | flip,0, |
279 | 278 | px,py,0); |
r17967 | r17968 | |
282 | 281 | |
283 | 282 | |
284 | 283 | /* draw FG layer */ |
285 | if ( | |
284 | if ( | |
286 | 285 | { |
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; | |
291 | 290 | |
292 | 291 | for (y = 0; y < 29; y++) |
293 | 292 | { |
294 | 293 | for (x = 0; x < 32; x++) |
295 | 294 | { |
296 | radr = ((ry + y + 34) & 0x3f) * 0x20 + ((rx + x) & 0x1f) + ( | |
295 | radr = ((ry + y + 34) & 0x3f) * 0x20 + ((rx + x) & 0x1f) + ( | |
297 | 296 | chr = FG_MAP[radr] ; |
298 | 297 | if (flip == 0) |
299 | 298 | { |
r17967 | r17968 | |
---|---|---|
308 | 308 | } |
309 | 309 | |
310 | 310 | |
311 | ||
311 | ||
312 | 312 | { |
313 | digdug_state *state = screen.machine().driver_data<digdug_state>(); | |
314 | 313 | |
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); | |
317 | 316 | draw_sprites(screen.machine(),bitmap,cliprect); |
318 | 317 | return 0; |
319 | 318 | } |
r17967 | r17968 | |
---|---|---|
124 | 124 | } |
125 | 125 | |
126 | 126 | |
127 | ||
127 | ||
128 | 128 | { |
129 | kchamp_state *state = screen.machine().driver_data<kchamp_state>(); | |
130 | 129 | |
131 | | |
130 | | |
132 | 131 | kchamp_draw_sprites(screen.machine(), bitmap, cliprect); |
133 | 132 | return 0; |
134 | 133 | } |
135 | 134 | |
136 | ||
135 | ||
137 | 136 | { |
138 | kchamp_state *state = screen.machine().driver_data<kchamp_state>(); | |
139 | 137 | |
140 | | |
138 | | |
141 | 139 | kchampvs_draw_sprites(screen.machine(), bitmap, cliprect); |
142 | 140 | return 0; |
143 | 141 | } |
r17967 | r17968 | |
---|---|---|
54 | 54 | } |
55 | 55 | |
56 | 56 | |
57 | ||
57 | ||
58 | 58 | { |
59 | ultratnk_state *state = screen.machine().driver_data<ultratnk_state>(); | |
60 | UINT8 *videoram = state->m_videoram; | |
59 | UINT8 *videoram = m_videoram; | |
61 | 60 | int i; |
62 | 61 | |
63 | | |
62 | | |
64 | 63 | |
65 | 64 | for (i = 0; i < 4; i++) |
66 | 65 | { |
r17967 | r17968 | |
89 | 88 | } |
90 | 89 | |
91 | 90 | |
92 | ||
91 | void | |
93 | 92 | { |
94 | 93 | // rising edge |
95 | if ( | |
94 | if (st | |
96 | 95 | { |
97 | ultratnk_state *state = screen.machine().driver_data<ultratnk_state>(); | |
98 | 96 | int i; |
99 | 97 | UINT16 BG = colortable_entry_get_value(screen.machine().colortable, 0); |
100 | 98 | device_t *discrete = screen.machine().device("discrete"); |
101 | UINT8 *videoram = | |
99 | UINT8 *videoram = | |
102 | 100 | |
103 | 101 | /* check for sprite-playfield collisions */ |
104 | 102 | |
r17967 | r17968 | |
122 | 120 | |
123 | 121 | rect &= screen.machine().primary_screen->visible_area(); |
124 | 122 | |
125 | | |
123 | | |
126 | 124 | |
127 | 125 | if (code & 4) |
128 | 126 | bank = 32; |
129 | 127 | |
130 | drawgfx_transpen( | |
128 | drawgfx_transpen( | |
131 | 129 | (code >> 3) | bank, |
132 | 130 | 4, |
133 | 131 | 0, 0, |
r17967 | r17968 | |
136 | 134 | |
137 | 135 | for (y = rect.min_y; y <= rect.max_y; y++) |
138 | 136 | 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; | |
141 | 139 | } |
142 | 140 | |
143 | 141 | /* update sound status */ |
r17967 | r17968 | |
---|---|---|
292 | 292 | markdirty(m_pf2_wide_layer,m_video_control_data[6] & 0x2,offset); |
293 | 293 | } |
294 | 294 | |
295 | ||
295 | ||
296 | 296 | { |
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; | |
300 | 299 | int i,pf1_enable,pf2_enable, video_enable; |
301 | 300 | |
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; | |
305 | 304 | |
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); | |
310 | 309 | |
311 | 310 | /* Dirty tilemaps if VRAM base changes */ |
312 | if (pf1_base!= | |
311 | if (pf1_base!= | |
313 | 312 | { |
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(); | |
316 | 315 | } |
317 | if (pf2_base!= | |
316 | if (pf2_base!= | |
318 | 317 | { |
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(); | |
321 | 320 | } |
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; | |
324 | 323 | |
325 | 324 | /* Setup scrolling */ |
326 | if ( | |
325 | if ( | |
327 | 326 | { |
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); | |
330 | 329 | |
331 | 330 | for (i=0; i<512; i++) |
332 | | |
331 | | |
333 | 332 | for (i=0; i<512; i++) |
334 | | |
333 | | |
335 | 334 | |
336 | 335 | } |
337 | 336 | else |
338 | 337 | { |
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); | |
343 | 342 | } |
344 | 343 | |
345 | 344 | /* Setup scrolling */ |
346 | if ( | |
345 | if ( | |
347 | 346 | { |
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); | |
350 | 349 | for (i=0; i<512; i++) |
351 | | |
350 | | |
352 | 351 | for (i=0; i<512; i++) |
353 | | |
352 | | |
354 | 353 | } 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 ); | |
359 | 358 | } |
360 | 359 | |
361 | 360 | screen.machine().priority_bitmap.fill(0, cliprect); |
r17967 | r17968 | |
366 | 365 | if (pf2_enable) |
367 | 366 | { |
368 | 367 | // use the playfield 2 y-offset table for each scanline |
369 | if ( | |
368 | if ( | |
370 | 369 | { |
371 | 370 | int line; |
372 | 371 | rectangle clip; |
r17967 | r17968 | |
377 | 376 | { |
378 | 377 | clip.min_y = clip.max_y = line; |
379 | 378 | |
380 | if ( | |
379 | if ( | |
381 | 380 | { |
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); | |
385 | 384 | } 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); | |
389 | 388 | } |
390 | 389 | } |
391 | 390 | } |
392 | 391 | else |
393 | 392 | { |
394 | if ( | |
393 | if ( | |
395 | 394 | { |
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); | |
399 | 398 | } 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); | |
403 | 402 | } |
404 | 403 | } |
405 | 404 | } |
r17967 | r17968 | |
411 | 410 | if (pf1_enable) |
412 | 411 | { |
413 | 412 | // use the playfield 1 y-offset table for each scanline |
414 | if ( | |
413 | if ( | |
415 | 414 | { |
416 | 415 | int line; |
417 | 416 | rectangle clip; |
r17967 | r17968 | |
422 | 421 | { |
423 | 422 | clip.min_y = clip.max_y = line; |
424 | 423 | |
425 | if ( | |
424 | if ( | |
426 | 425 | { |
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); | |
430 | 429 | } 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); | |
434 | 433 | } |
435 | 434 | } |
436 | 435 | } |
437 | 436 | else |
438 | 437 | { |
439 | if ( | |
438 | if ( | |
440 | 439 | { |
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); | |
444 | 443 | } 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); | |
448 | 447 | } |
449 | 448 | } |
450 | 449 | } |
r17967 | r17968 | |
458 | 457 | return 0; |
459 | 458 | } |
460 | 459 | |
461 | ||
460 | ||
462 | 461 | { |
463 | m90_state *state = screen.machine().driver_data<m90_state>(); | |
464 | 462 | int i; |
465 | 463 | screen.machine().priority_bitmap.fill(0, cliprect); |
466 | 464 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
467 | 465 | |
468 | 466 | /* 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); | |
472 | 470 | for (i=0; i<512; i++) |
473 | | |
471 | | |
474 | 472 | for (i=0; i<512; i++) |
475 | | |
473 | | |
476 | 474 | } 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 ); | |
481 | 479 | } |
482 | 480 | |
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); | |
489 | 487 | } 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); | |
495 | 493 | } |
496 | 494 | |
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); | |
502 | 500 | } 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); | |
507 | 505 | } |
508 | 506 | |
509 | 507 | bomblord_draw_sprites(screen.machine(),bitmap,cliprect); |
r17967 | r17968 | |
511 | 509 | return 0; |
512 | 510 | } |
513 | 511 | |
514 | ||
512 | ||
515 | 513 | { |
516 | m90_state *state = screen.machine().driver_data<m90_state>(); | |
517 | 514 | screen.machine().priority_bitmap.fill(0, cliprect); |
518 | 515 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
519 | 516 | |
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); | |
527 | 524 | } 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); | |
534 | 531 | } |
535 | 532 | |
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); | |
543 | 540 | } 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); | |
550 | 547 | } |
551 | 548 | |
552 | 549 | dynablsb_draw_sprites(screen.machine(),bitmap,cliprect); |
r17967 | r17968 | |
---|---|---|
201 | 201 | SCREEN REFRESH |
202 | 202 | **************************************************************/ |
203 | 203 | |
204 | ||
204 | ||
205 | 205 | { |
206 | 206 | device_t *tc0480scp = screen.machine().device("tc0480scp"); |
207 | 207 | UINT8 layer[5]; |
r17967 | r17968 | |
---|---|---|
133 | 133 | m_bg_tilemap->set_scroll_cols(64); |
134 | 134 | } |
135 | 135 | |
136 | ||
136 | ||
137 | 137 | { |
138 | scotrsht_state *state = screen.machine().driver_data<scotrsht_state>(); | |
139 | 138 | int col; |
140 | 139 | |
141 | 140 | for (col = 0; col < 32; col++) |
142 | | |
141 | | |
143 | 142 | |
144 | | |
143 | | |
145 | 144 | draw_sprites(screen.machine(), bitmap, cliprect); |
146 | 145 | return 0; |
147 | 146 | } |
r17967 | r17968 | |
---|---|---|
837 | 837 | } |
838 | 838 | |
839 | 839 | |
840 | ||
840 | ||
841 | 841 | { |
842 | taitoz_state *state = screen.machine().driver_data<taitoz_state>(); | |
843 | 842 | UINT8 layer[3]; |
844 | 843 | |
845 | tc0100scn_tilemap_update( | |
844 | tc0100scn_tilemap_update( | |
846 | 845 | |
847 | layer[0] = tc0100scn_bottomlayer( | |
846 | layer[0] = tc0100scn_bottomlayer( | |
848 | 847 | layer[1] = layer[0] ^ 1; |
849 | 848 | layer[2] = 2; |
850 | 849 | |
r17967 | r17968 | |
852 | 851 | |
853 | 852 | bitmap.fill(0, cliprect); |
854 | 853 | |
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); | |
859 | 858 | |
860 | 859 | contcirc_draw_sprites_16x8(screen.machine(), bitmap, cliprect, 5); // 7 |
861 | 860 | return 0; |
r17967 | r17968 | |
864 | 863 | |
865 | 864 | /* Nightstr and ChaseHQ */ |
866 | 865 | |
867 | ||
866 | ||
868 | 867 | { |
869 | taitoz_state *state = screen.machine().driver_data<taitoz_state>(); | |
870 | 868 | UINT8 layer[3]; |
871 | 869 | |
872 | tc0100scn_tilemap_update( | |
870 | tc0100scn_tilemap_update( | |
873 | 871 | |
874 | layer[0] = tc0100scn_bottomlayer( | |
872 | layer[0] = tc0100scn_bottomlayer( | |
875 | 873 | layer[1] = layer[0] ^ 1; |
876 | 874 | layer[2] = 2; |
877 | 875 | |
r17967 | r17968 | |
880 | 878 | /* Ensure screen blanked even when bottom layer not drawn due to disable bit */ |
881 | 879 | bitmap.fill(0, cliprect); |
882 | 880 | |
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); | |
887 | 885 | |
888 | 886 | chasehq_draw_sprites_16x16(screen.machine(), bitmap, cliprect, 7); |
889 | 887 | return 0; |
890 | 888 | } |
891 | 889 | |
892 | 890 | |
893 | ||
891 | ||
894 | 892 | { |
895 | taitoz_state *state = screen.machine().driver_data<taitoz_state>(); | |
896 | 893 | UINT8 layer[3]; |
897 | 894 | |
898 | tc0100scn_tilemap_update( | |
895 | tc0100scn_tilemap_update( | |
899 | 896 | |
900 | layer[0] = tc0100scn_bottomlayer( | |
897 | layer[0] = tc0100scn_bottomlayer( | |
901 | 898 | layer[1] = layer[0] ^ 1; |
902 | 899 | layer[2] = 2; |
903 | 900 | |
r17967 | r17968 | |
906 | 903 | /* Ensure screen blanked even when bottom layer not drawn due to disable bit */ |
907 | 904 | bitmap.fill(0, cliprect); |
908 | 905 | |
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); | |
913 | 910 | |
914 | 911 | bshark_draw_sprites_16x8(screen.machine(), bitmap, cliprect, 8); |
915 | 912 | return 0; |
916 | 913 | } |
917 | 914 | |
918 | 915 | |
919 | ||
916 | ||
920 | 917 | { |
921 | taitoz_state *state = screen.machine().driver_data<taitoz_state>(); | |
922 | 918 | UINT8 layer[3]; |
923 | 919 | |
924 | tc0100scn_tilemap_update( | |
920 | tc0100scn_tilemap_update( | |
925 | 921 | |
926 | layer[0] = tc0100scn_bottomlayer( | |
922 | layer[0] = tc0100scn_bottomlayer( | |
927 | 923 | layer[1] = layer[0] ^ 1; |
928 | 924 | layer[2] = 2; |
929 | 925 | |
r17967 | r17968 | |
932 | 928 | /* Ensure screen blanked even when bottom layer not drawn due to disable bit */ |
933 | 929 | bitmap.fill(0, cliprect); |
934 | 930 | |
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); | |
939 | 935 | |
940 | 936 | sci_draw_sprites_16x8(screen.machine(), bitmap, cliprect, 6); |
941 | 937 | return 0; |
942 | 938 | } |
943 | 939 | |
944 | 940 | |
945 | ||
941 | ||
946 | 942 | { |
947 | taitoz_state *state = screen.machine().driver_data<taitoz_state>(); | |
948 | 943 | UINT8 layer[3]; |
949 | 944 | |
950 | tc0100scn_tilemap_update( | |
945 | tc0100scn_tilemap_update( | |
951 | 946 | |
952 | layer[0] = tc0100scn_bottomlayer( | |
947 | layer[0] = tc0100scn_bottomlayer( | |
953 | 948 | layer[1] = layer[0] ^ 1; |
954 | 949 | layer[2] = 2; |
955 | 950 | |
r17967 | r17968 | |
958 | 953 | /* Ensure screen blanked even when bottom layer not drawn due to disable bit */ |
959 | 954 | bitmap.fill(0, cliprect); |
960 | 955 | |
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); | |
965 | 960 | |
966 | 961 | aquajack_draw_sprites_16x8(screen.machine(), bitmap, cliprect, 3); |
967 | 962 | return 0; |
968 | 963 | } |
969 | 964 | |
970 | 965 | |
971 | ||
966 | ||
972 | 967 | { |
973 | taitoz_state *state = screen.machine().driver_data<taitoz_state>(); | |
974 | 968 | UINT8 layer[3]; |
975 | 969 | |
976 | tc0100scn_tilemap_update( | |
970 | tc0100scn_tilemap_update( | |
977 | 971 | |
978 | layer[0] = tc0100scn_bottomlayer( | |
972 | layer[0] = tc0100scn_bottomlayer( | |
979 | 973 | layer[1] = layer[0] ^ 1; |
980 | 974 | layer[2] = 2; |
981 | 975 | |
r17967 | r17968 | |
984 | 978 | /* Ensure screen blanked even when bottom layer not drawn due to disable bit */ |
985 | 979 | bitmap.fill(0, cliprect); |
986 | 980 | |
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); | |
990 | 984 | |
991 | 985 | spacegun_draw_sprites_16x8(screen.machine(), bitmap, cliprect, 4); |
992 | 986 | |
r17967 | r17968 | |
994 | 988 | } |
995 | 989 | |
996 | 990 | |
997 | ||
991 | ||
998 | 992 | { |
999 | taitoz_state *state = screen.machine().driver_data<taitoz_state>(); | |
1000 | 993 | UINT8 layer[5]; |
1001 | 994 | UINT16 priority; |
1002 | 995 | |
1003 | tc0480scp_tilemap_update( | |
996 | tc0480scp_tilemap_update( | |
1004 | 997 | |
1005 | priority = tc0480scp_get_bg_priority( | |
998 | priority = tc0480scp_get_bg_priority( | |
1006 | 999 | |
1007 | 1000 | layer[0] = (priority & 0xf000) >> 12; /* tells us which bg layer is bottom */ |
1008 | 1001 | layer[1] = (priority & 0x0f00) >> 8; |
r17967 | r17968 | |
1015 | 1008 | /* Ensure screen blanked - this shouldn't be necessary! */ |
1016 | 1009 | bitmap.fill(0, cliprect); |
1017 | 1010 | |
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); | |
1021 | 1014 | |
1022 | tc0150rod_draw( | |
1015 | tc0150rod_draw( | |
1023 | 1016 | bshark_draw_sprites_16x8(screen.machine(), bitmap, cliprect, 7); |
1024 | 1017 | |
1025 | 1018 | /* This layer used for the big numeric displays */ |
1026 | tc0480scp_tilemap_draw( | |
1019 | tc0480scp_tilemap_draw( | |
1027 | 1020 | |
1028 | tc0480scp_tilemap_draw( | |
1021 | tc0480scp_tilemap_draw( | |
1029 | 1022 | return 0; |
1030 | 1023 | } |
1031 | 1024 | |
1032 | 1025 | |
1033 | ||
1026 | ||
1034 | 1027 | { |
1035 | taitoz_state *state = screen.machine().driver_data<taitoz_state>(); | |
1036 | 1028 | UINT8 layer[5]; |
1037 | 1029 | UINT16 priority; |
1038 | 1030 | |
1039 | tc0480scp_tilemap_update( | |
1031 | tc0480scp_tilemap_update( | |
1040 | 1032 | |
1041 | priority = tc0480scp_get_bg_priority( | |
1033 | priority = tc0480scp_get_bg_priority( | |
1042 | 1034 | |
1043 | 1035 | layer[0] = (priority & 0xf000) >> 12; /* tells us which bg layer is bottom */ |
1044 | 1036 | layer[1] = (priority & 0x0f00) >> 8; |
r17967 | r17968 | |
1051 | 1043 | /* Ensure screen blanked - this shouldn't be necessary! */ |
1052 | 1044 | bitmap.fill(0, cliprect); |
1053 | 1045 | |
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); | |
1058 | 1050 | |
1059 | tc0150rod_draw( | |
1051 | tc0150rod_draw( | |
1060 | 1052 | sci_draw_sprites_16x8(screen.machine(), bitmap, cliprect, 7); |
1061 | 1053 | |
1062 | tc0480scp_tilemap_draw( | |
1054 | tc0480scp_tilemap_draw( | |
1063 | 1055 | return 0; |
1064 | 1056 | } |
r17967 | r17968 | |
---|---|---|
443 | 443 | |
444 | 444 | ***************************************************************************/ |
445 | 445 | |
446 | ||
446 | ||
447 | 447 | { |
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); | |
451 | 450 | return 0; |
452 | 451 | } |
r17967 | r17968 | |
---|---|---|
230 | 230 | } |
231 | 231 | } |
232 | 232 | |
233 | ||
233 | ||
234 | 234 | { |
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); | |
238 | 237 | draw_sprites(screen.machine(), bitmap, cliprect); |
239 | | |
238 | | |
240 | 239 | return 0; |
241 | 240 | } |
r17967 | r17968 | |
---|---|---|
115 | 115 | } |
116 | 116 | } |
117 | 117 | |
118 | ||
118 | ||
119 | 119 | { |
120 | markham_state *state = screen.machine().driver_data<markham_state>(); | |
121 | 120 | int i; |
122 | 121 | |
123 | 122 | for (i = 0; i < 32; i++) |
124 | 123 | { |
125 | 124 | if ((i > 3) && (i < 16)) |
126 | | |
125 | | |
127 | 126 | if (i >= 16) |
128 | | |
127 | | |
129 | 128 | } |
130 | 129 | |
131 | | |
130 | | |
132 | 131 | draw_sprites(screen.machine(), bitmap, cliprect); |
133 | 132 | return 0; |
134 | 133 | } |
r17967 | r17968 | |
---|---|---|
216 | 216 | } |
217 | 217 | } |
218 | 218 | |
219 | ||
219 | ||
220 | 220 | { |
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); | |
223 | 222 | pbillian_draw_sprites(screen.machine(), bitmap,cliprect); |
224 | 223 | |
225 | 224 | return 0; |
226 | 225 | } |
227 | 226 | |
228 | ||
227 | ||
229 | 228 | { |
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); | |
233 | 231 | superqix_draw_sprites(screen.machine(), bitmap,cliprect); |
234 | | |
232 | | |
235 | 233 | return 0; |
236 | 234 | } |
r17967 | r17968 | |
---|---|---|
303 | 303 | |
304 | 304 | ***************************************************************************/ |
305 | 305 | |
306 | ||
306 | ||
307 | 307 | { |
308 | dday_state *state = screen.machine().driver_data<dday_state>(); | |
309 | 308 | |
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); | |
314 | 313 | |
315 | if ( | |
314 | if ( | |
316 | 315 | { |
317 | 316 | /* apply shadow */ |
318 | 317 | int x, y; |
319 | 318 | |
320 | bitmap_ind16 &sl_bitmap = | |
319 | bitmap_ind16 &sl_bitmap = | |
321 | 320 | |
322 | 321 | for (x = cliprect.min_x; x <= cliprect.max_x; x++) |
323 | 322 | for (y = cliprect.min_y; y <= cliprect.max_y; y++) |
324 | 323 | { |
325 | UINT16 src_pixel = | |
324 | UINT16 src_pixel = | |
326 | 325 | |
327 | 326 | if (sl_bitmap.pix16(y, x) == 0xff) |
328 | 327 | src_pixel += screen.machine().total_colors(); |
r17967 | r17968 | |
331 | 330 | } |
332 | 331 | } |
333 | 332 | else |
334 | copybitmap(bitmap, | |
333 | copybitmap(bitmap, | |
335 | 334 | |
336 | 335 | return 0; |
337 | 336 | } |
r17967 | r17968 | |
---|---|---|
113 | 113 | |
114 | 114 | ***************************************************************************/ |
115 | 115 | |
116 | ||
116 | ||
117 | 117 | { |
118 | playch10_state *state = screen.machine().driver_data<playch10_state>(); | |
119 | 118 | ppu2c0x_device *ppu = screen.machine().device<ppu2c0x_device>("ppu"); |
120 | 119 | |
121 | 120 | rectangle top_monitor = screen.visible_area(); |
122 | 121 | |
123 | 122 | top_monitor.max_y = ( top_monitor.max_y - top_monitor.min_y ) / 2; |
124 | 123 | |
125 | if( | |
124 | if( | |
126 | 125 | { |
127 | | |
126 | | |
128 | 127 | |
129 | if(state->m_pc10_dispmask) | |
130 | state->m_pc10_game_mode ^= 1; | |
128 | if(m_pc10_dispmask) | |
129 | m_pc10_game_mode ^= 1; | |
131 | 130 | } |
132 | 131 | |
133 | if ( | |
132 | if ( | |
134 | 133 | /* render the ppu */ |
135 | 134 | ppu->render(bitmap, 0, 0, 0, 0 ); |
136 | 135 | else |
137 | 136 | { |
138 | 137 | /* 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); | |
141 | 140 | } |
142 | 141 | return 0; |
143 | 142 | } |
144 | 143 | |
145 | ||
144 | ||
146 | 145 | { |
147 | playch10_state *state = screen.machine().driver_data<playch10_state>(); | |
148 | 146 | ppu2c0x_device *ppu = screen.machine().device<ppu2c0x_device>("ppu"); |
149 | 147 | |
150 | 148 | /* 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); | |
153 | 151 | |
154 | if (! | |
152 | if (! | |
155 | 153 | /* render the ppu */ |
156 | 154 | ppu->render(bitmap, 0, 0, 0, 0); |
157 | 155 | else |
r17967 | r17968 | |
160 | 158 | return 0; |
161 | 159 | } |
162 | 160 | |
163 | ||
161 | ||
164 | 162 | { |
165 | playch10_state *state = screen.machine().driver_data<playch10_state>(); | |
166 | 163 | |
167 | 164 | /* 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); | |
170 | 167 | |
171 | 168 | /* When the bios is accessing vram, the video circuitry can't access it */ |
172 | 169 | |
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); | |
175 | 172 | else |
176 | 173 | bitmap.fill(0, cliprect); |
177 | 174 |
r17967 | r17968 | |
---|---|---|
377 | 377 | } |
378 | 378 | |
379 | 379 | |
380 | ||
380 | ||
381 | 381 | { |
382 | 382 | return update_one_screen(screen, bitmap, cliprect, 0); |
383 | 383 | } |
384 | 384 | |
385 | ||
385 | ||
386 | 386 | { |
387 | 387 | return update_one_screen(screen, bitmap, cliprect, 1); |
388 | 388 | } |
389 | 389 | |
390 | ||
390 | ||
391 | 391 | { |
392 | 392 | return update_one_screen(screen, bitmap, cliprect, 0); |
393 | 393 | } |
r17967 | r17968 | |
---|---|---|
920 | 920 | save_pointer(NAME(m_obj_pal_ram), 2048); |
921 | 921 | } |
922 | 922 | |
923 | ||
923 | ||
924 | 924 | { |
925 | lockon_state *state = screen.machine().driver_data<lockon_state>(); | |
926 | 925 | |
927 | 926 | /* If screen output is disabled, fill with black */ |
928 | if (!BIT( | |
927 | if (!BIT( | |
929 | 928 | { |
930 | 929 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
931 | 930 | return 0; |
r17967 | r17968 | |
935 | 934 | rotate_draw(screen.machine(), bitmap, cliprect); |
936 | 935 | |
937 | 936 | /* Draw the character tilemap */ |
938 | | |
937 | | |
939 | 938 | |
940 | 939 | /* Draw the HUD */ |
941 | 940 | hud_draw(screen.machine(), bitmap, cliprect); |
r17967 | r17968 | |
943 | 942 | return 0; |
944 | 943 | } |
945 | 944 | |
946 | ||
945 | void | |
947 | 946 | { |
948 | 947 | // on falling edge |
949 | if (! | |
948 | if (!st | |
950 | 949 | { |
951 | lockon_state *state = screen.machine().driver_data<lockon_state>(); | |
952 | 950 | |
953 | 951 | /* 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; | |
957 | 955 | |
958 | 956 | /* Draw the frame buffer layers */ |
959 | 957 | scene_draw(screen.machine()); |
r17967 | r17968 | |
---|---|---|
533 | 533 | } |
534 | 534 | |
535 | 535 | |
536 | ||
536 | ||
537 | 537 | { |
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; | |
540 | 539 | int x,y; |
541 | 540 | |
542 | | |
541 | | |
543 | 542 | |
544 | 543 | sprite_bitmap.fill(15, cliprect); |
545 | mappy_draw_sprites(screen.machine(),sprite_bitmap,cliprect, | |
544 | mappy_draw_sprites(screen.machine(),sprite_bitmap,cliprect, | |
546 | 545 | copybitmap_trans(bitmap,sprite_bitmap,0,0,0,0,cliprect,15); |
547 | 546 | |
548 | 547 | /* Redraw the high priority characters */ |
549 | | |
548 | | |
550 | 549 | |
551 | 550 | /* sprite color 0/1 still has priority over that (ghost eyes in Pac 'n Pal) */ |
552 | 551 | for (y = 0;y < sprite_bitmap.height();y++) |
r17967 | r17968 | |
562 | 561 | return 0; |
563 | 562 | } |
564 | 563 | |
565 | ||
564 | ||
566 | 565 | { |
567 | mappy_state *state = screen.machine().driver_data<mappy_state>(); | |
568 | 566 | |
569 | 567 | /* flip screen control is embedded in RAM */ |
570 | | |
568 | | |
571 | 569 | |
572 | | |
570 | | |
573 | 571 | |
574 | phozon_draw_sprites(screen.machine(),bitmap,cliprect, | |
572 | phozon_draw_sprites(screen.machine(),bitmap,cliprect, | |
575 | 573 | |
576 | 574 | /* Redraw the high priority characters */ |
577 | | |
575 | | |
578 | 576 | return 0; |
579 | 577 | } |
580 | 578 | |
581 | ||
579 | ||
582 | 580 | { |
583 | mappy_state *state = screen.machine().driver_data<mappy_state>(); | |
584 | 581 | int offs; |
585 | 582 | |
586 | 583 | for (offs = 2;offs < 34;offs++) |
587 | | |
584 | | |
588 | 585 | |
589 | | |
586 | | |
590 | 587 | |
591 | mappy_draw_sprites(screen.machine(),bitmap,cliprect, | |
588 | mappy_draw_sprites(screen.machine(),bitmap,cliprect, | |
592 | 589 | |
593 | 590 | /* Redraw the high priority characters */ |
594 | | |
591 | | |
595 | 592 | return 0; |
596 | 593 | } |
r17967 | r17968 | |
---|---|---|
30 | 30 | |
31 | 31 | /***************************************************************************/ |
32 | 32 | |
33 | ||
33 | ||
34 | 34 | { |
35 | rastan_state *state = screen.machine().driver_data<rastan_state>(); | |
36 | 35 | int layer[2]; |
37 | 36 | |
38 | pc080sn_tilemap_update( | |
37 | pc080sn_tilemap_update( | |
39 | 38 | |
40 | 39 | layer[0] = 0; |
41 | 40 | layer[1] = 1; |
42 | 41 | |
43 | 42 | screen.machine().priority_bitmap.fill(0, cliprect); |
44 | 43 | |
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); | |
47 | 46 | |
48 | pc090oj_draw_sprites( | |
47 | pc090oj_draw_sprites( | |
49 | 48 | return 0; |
50 | 49 | } |
r17967 | r17968 | |
---|---|---|
74 | 74 | save_item(NAME(m_layer_pri)); |
75 | 75 | } |
76 | 76 | |
77 | ||
77 | ||
78 | 78 | { |
79 | gijoe_state *state = screen.machine().driver_data<gijoe_state>(); | |
80 | 79 | static const int K053251_CI[4] = { K053251_CI1, K053251_CI2, K053251_CI3, K053251_CI4 }; |
81 | 80 | int layer[4]; |
82 | 81 | int vrc_mode, vrc_new, colorbase_new, /*primode,*/ dirty, i; |
83 | 82 | int mask = 0; |
84 | 83 | |
85 | 84 | // update tile offsets |
86 | k056832_read_avac( | |
85 | k056832_read_avac( | |
87 | 86 | |
88 | 87 | if (vrc_mode) |
89 | 88 | { |
90 | 89 | for (dirty = 0xf000; dirty; dirty >>= 4) |
91 | if (( | |
90 | if (( | |
92 | 91 | mask |= dirty; |
93 | 92 | |
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; | |
99 | 98 | } |
100 | 99 | else |
101 | | |
100 | | |
102 | 101 | |
103 | 102 | // update color info and refresh tilemaps |
104 | | |
103 | | |
105 | 104 | |
106 | 105 | for (i = 0; i < 4; i++) |
107 | 106 | { |
108 | 107 | 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) | |
111 | 110 | { |
112 | | |
111 | | |
113 | 112 | dirty = 1; |
114 | 113 | } |
115 | if ( | |
114 | if ( | |
116 | 115 | dirty = 1; |
117 | 116 | |
118 | 117 | if (dirty) |
119 | 118 | { |
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); | |
122 | 121 | } |
123 | 122 | } |
124 | 123 | |
r17967 | r17968 | |
128 | 127 | written to the layer's X-scroll register otherwise the chip expects totally |
129 | 128 | different alignment values. |
130 | 129 | */ |
131 | if (k056832_read_register( | |
130 | if (k056832_read_register( | |
132 | 131 | { |
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); | |
137 | 136 | } |
138 | 137 | else |
139 | 138 | { |
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? | |
144 | 143 | } |
145 | 144 | |
146 | 145 | // seems to switch the K053251 between different priority modes, detail unknown |
147 | // primode = k053251_get_priority( | |
146 | // primode = k053251_get_priority( | |
148 | 147 | |
149 | 148 | layer[0] = 0; |
150 | | |
149 | | |
151 | 150 | layer[1] = 1; |
152 | | |
151 | | |
153 | 152 | layer[2] = 2; |
154 | | |
153 | | |
155 | 154 | layer[3] = 3; |
156 | | |
155 | | |
157 | 156 | |
158 | konami_sortlayers4(layer, | |
157 | konami_sortlayers4(layer, | |
159 | 158 | |
160 | 159 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
161 | 160 | screen.machine().priority_bitmap.fill(0, cliprect); |
162 | 161 | |
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); | |
167 | 166 | |
168 | k053247_sprites_draw( | |
167 | k053247_sprites_draw( | |
169 | 168 | return 0; |
170 | 169 | } |
r17967 | r17968 | |
---|---|---|
228 | 228 | m_tmp_bitmap[BITMAP_FG_DISPLAY] = auto_bitmap_ind16_alloc(machine(), 512, 256); |
229 | 229 | } |
230 | 230 | |
231 | ||
231 | ||
232 | 232 | { |
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); | |
236 | 235 | return 0; |
237 | 236 | } |
r17967 | r17968 | |
---|---|---|
155 | 155 | m_fg_tilemap->set_transparent_pen(3); |
156 | 156 | } |
157 | 157 | |
158 | ||
158 | ||
159 | 159 | { |
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); | |
162 | 161 | draw_sprites(screen.machine(), bitmap, cliprect, 0); |
163 | | |
162 | | |
164 | 163 | //draw_sprites(screen.machine(), bitmap, cliprect, 1); draw priority sprites? |
165 | | |
164 | | |
166 | 165 | return 0; |
167 | 166 | } |
r17967 | r17968 | |
---|---|---|
2404 | 2404 | } |
2405 | 2405 | } |
2406 | 2406 | |
2407 | ||
2407 | ||
2408 | 2408 | { |
2409 | segas32_state *state = screen.machine().driver_data<segas32_state>(); | |
2410 | 2409 | UINT8 enablemask; |
2411 | 2410 | |
2412 | 2411 | /* update the visible area */ |
2413 | if ( | |
2412 | if ( | |
2414 | 2413 | screen.set_visible_area(0, 52*8-1, 0, 28*8-1); |
2415 | 2414 | else |
2416 | 2415 | screen.set_visible_area(0, 40*8-1, 0, 28*8-1); |
2417 | 2416 | |
2418 | 2417 | /* if the display is off, punt */ |
2419 | if (! | |
2418 | if (! | |
2420 | 2419 | { |
2421 | 2420 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
2422 | 2421 | return 0; |
r17967 | r17968 | |
2439 | 2438 | |
2440 | 2439 | /* do the mixing */ |
2441 | 2440 | g_profiler.start(PROFILER_USER3); |
2442 | mix_all_layers( | |
2441 | mix_all_layers( | |
2443 | 2442 | g_profiler.stop(); |
2444 | 2443 | |
2445 | 2444 | if (LOG_SPRITES && screen.machine().input().code_pressed(KEYCODE_L)) |
r17967 | r17968 | |
2450 | 2449 | |
2451 | 2450 | for (y = visarea.min_y; y <= visarea.max_y; y++) |
2452 | 2451 | { |
2453 | UINT16 *src = get_layer_scanline( | |
2452 | UINT16 *src = get_layer_scanline( | |
2454 | 2453 | for (x = visarea.min_x; x <= visarea.max_x; x++) |
2455 | 2454 | fprintf(f, "%04X ", *src++); |
2456 | 2455 | fprintf(f, "\n"); |
r17967 | r17968 | |
2460 | 2459 | f = fopen("nbg0.txt", "w"); |
2461 | 2460 | for (y = visarea.min_y; y <= visarea.max_y; y++) |
2462 | 2461 | { |
2463 | UINT16 *src = get_layer_scanline( | |
2462 | UINT16 *src = get_layer_scanline( | |
2464 | 2463 | for (x = visarea.min_x; x <= visarea.max_x; x++) |
2465 | 2464 | fprintf(f, "%04X ", *src++); |
2466 | 2465 | fprintf(f, "\n"); |
r17967 | r17968 | |
2470 | 2469 | f = fopen("nbg1.txt", "w"); |
2471 | 2470 | for (y = visarea.min_y; y <= visarea.max_y; y++) |
2472 | 2471 | { |
2473 | UINT16 *src = get_layer_scanline( | |
2472 | UINT16 *src = get_layer_scanline( | |
2474 | 2473 | for (x = visarea.min_x; x <= visarea.max_x; x++) |
2475 | 2474 | fprintf(f, "%04X ", *src++); |
2476 | 2475 | fprintf(f, "\n"); |
r17967 | r17968 | |
2480 | 2479 | f = fopen("nbg2.txt", "w"); |
2481 | 2480 | for (y = visarea.min_y; y <= visarea.max_y; y++) |
2482 | 2481 | { |
2483 | UINT16 *src = get_layer_scanline( | |
2482 | UINT16 *src = get_layer_scanline( | |
2484 | 2483 | for (x = visarea.min_x; x <= visarea.max_x; x++) |
2485 | 2484 | fprintf(f, "%04X ", *src++); |
2486 | 2485 | fprintf(f, "\n"); |
r17967 | r17968 | |
2490 | 2489 | f = fopen("nbg3.txt", "w"); |
2491 | 2490 | for (y = visarea.min_y; y <= visarea.max_y; y++) |
2492 | 2491 | { |
2493 | UINT16 *src = get_layer_scanline( | |
2492 | UINT16 *src = get_layer_scanline( | |
2494 | 2493 | for (x = visarea.min_x; x <= visarea.max_x; x++) |
2495 | 2494 | fprintf(f, "%04X ", *src++); |
2496 | 2495 | fprintf(f, "\n"); |
r17967 | r17968 | |
2503 | 2502 | static const char *const layername[] = { "TEXT ", "NBG0 ", "NBG1 ", "NBG2 ", "NBG3 ", "BITMAP " }; |
2504 | 2503 | char temp[100]; |
2505 | 2504 | int count = 0, i; |
2506 | sprintf(temp, "ALPHA(%d):", ( | |
2505 | sprintf(temp, "ALPHA(%d):", ( | |
2507 | 2506 | for (i = 0; i < 6; i++) |
2508 | 2507 | if (enablemask & (1 << i)) |
2509 | if (( | |
2508 | if (( | |
2510 | 2509 | { |
2511 | 2510 | count++; |
2512 | 2511 | strcat(temp, layername[i]); |
r17967 | r17968 | |
2578 | 2577 | } |
2579 | 2578 | #endif |
2580 | 2579 | |
2581 | if (PRINTF_MIXER_DATA) print_mixer_data( | |
2580 | if (PRINTF_MIXER_DATA) print_mixer_data( | |
2582 | 2581 | return 0; |
2583 | 2582 | } |
2584 | 2583 | |
r17967 | r17968 | |
2645 | 2644 | return 0; |
2646 | 2645 | } |
2647 | 2646 | |
2648 | SCREEN_UPDATE_RGB32( multi32_left ) { return multi32_update(screen, bitmap, cliprect, 0); } | |
2649 | SCREEN_UPDATE_RGB32( multi32_right ) { return multi32_update(screen, bitmap, cliprect, 1); } | |
2647 | UINT32 segas32_state::screen_update_multi32_left(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect){ return multi32_update(screen, bitmap, cliprect, 0); } | |
2648 | UINT32 segas32_state::screen_update_multi32_right(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect){ return multi32_update(screen, bitmap, cliprect, 1); } | |
2650 | 2649 | |
2651 | 2650 | /* |
2652 | 2651 |
r17967 | r17968 | |
---|---|---|
176 | 176 | } |
177 | 177 | |
178 | 178 | |
179 | ||
179 | ||
180 | 180 | { |
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 ); | |
186 | 185 | } |
187 | 186 | else { |
188 | | |
187 | | |
189 | 188 | } |
190 | 189 | |
191 | | |
190 | | |
192 | 191 | draw_sprites(screen.machine(), bitmap,cliprect,0); |
193 | | |
192 | | |
194 | 193 | draw_sprites(screen.machine(), bitmap,cliprect,0x80); |
195 | 194 | |
196 | 195 | slapfght_log_vram(screen.machine()); |
r17967 | r17968 | |
198 | 197 | } |
199 | 198 | |
200 | 199 | |
201 | ||
200 | ||
202 | 201 | { |
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(); | |
205 | 203 | int offs; |
206 | 204 | |
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 */ | |
213 | 211 | } |
214 | 212 | 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 */ | |
219 | 217 | } |
220 | 218 | |
221 | | |
219 | | |
222 | 220 | |
223 | 221 | /* Draw the sprites */ |
224 | for (offs = 0;offs < | |
222 | for (offs = 0;offs < | |
225 | 223 | { |
226 | if ( | |
224 | if ( | |
227 | 225 | drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[2], |
228 | 226 | buffered_spriteram[offs] + ((buffered_spriteram[offs+2] & 0xc0) << 2), |
229 | 227 | (buffered_spriteram[offs+2] & 0x1e) >> 1, |
r17967 | r17968 | |
237 | 235 | (buffered_spriteram[offs+1] + ((buffered_spriteram[offs+2] & 0x01) << 8)) - 13,buffered_spriteram[offs+3],0); |
238 | 236 | } |
239 | 237 | |
240 | | |
238 | | |
241 | 239 | |
242 | 240 | slapfght_log_vram(screen.machine()); |
243 | 241 | return 0; |
r17967 | r17968 | |
---|---|---|
109 | 109 | * |
110 | 110 | *************************************/ |
111 | 111 | |
112 | ||
112 | ||
113 | 113 | { |
114 | badlands_state *state = screen.machine().driver_data<badlands_state>(); | |
115 | 114 | atarimo_rect_list rectlist; |
116 | 115 | bitmap_ind16 *mobitmap; |
117 | 116 | int x, y, r; |
118 | 117 | |
119 | 118 | /* draw the playfield */ |
120 | | |
119 | | |
121 | 120 | |
122 | 121 | /* draw and merge the MO */ |
123 | 122 | mobitmap = atarimo_render(0, cliprect, &rectlist); |
r17967 | r17968 | |
---|---|---|
1254 | 1254 | } |
1255 | 1255 | |
1256 | 1256 | |
1257 | ||
1257 | ||
1258 | 1258 | { |
1259 | 1259 | int i; |
1260 | psikyosh_state *state = screen.machine().driver_data<psikyosh_state>(); | |
1261 | 1260 | |
1262 | 1261 | // show only the priority associated with a given keypress(s) and/or hide sprites/tilemaps |
1263 | 1262 | int pri_debug = false; |
r17967 | r17968 | |
1281 | 1280 | |
1282 | 1281 | #ifdef DEBUG_MESSAGE |
1283 | 1282 | popmessage ("%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]); | |
1288 | 1287 | #endif |
1289 | 1288 | |
1290 | | |
1289 | | |
1291 | 1290 | |
1292 | 1291 | psikyosh_prelineblend(screen.machine(), bitmap, cliprect); // fills screen |
1293 | 1292 | for (i = 0; i <= 7; i++) |
r17967 | r17968 | |
---|---|---|
178 | 178 | } |
179 | 179 | } |
180 | 180 | |
181 | ||
181 | ||
182 | 182 | { |
183 | boogwing_state *state = screen.machine().driver_data<boogwing_state>(); | |
184 | 183 | 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); | |
187 | 186 | |
188 | 187 | /* 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); | |
191 | 190 | |
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); | |
195 | 194 | |
196 | 195 | /* Draw playfields */ |
197 | 196 | bitmap.fill(screen.machine().pens[0x400], cliprect); /* pen not confirmed */ |
r17967 | r17968 | |
201 | 200 | // bit&0x4 combines playfields |
202 | 201 | if ((priority & 0x7) == 0x5) |
203 | 202 | { |
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); | |
206 | 205 | } |
207 | 206 | else if ((priority & 0x7) == 0x1 || (priority & 0x7) == 0x2) |
208 | 207 | { |
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); | |
212 | 211 | } |
213 | 212 | else if ((priority & 0x7) == 0x3) |
214 | 213 | { |
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); | |
217 | 216 | |
218 | 217 | // This mode uses playfield 3 to shadow sprites & playfield 2 (instead of |
219 | 218 | // regular alpha-blending, the destination is inverted). Not yet implemented. |
220 | // deco16ic_tilemap_3_draw( | |
219 | // deco16ic_tilemap_3_draw( | |
221 | 220 | } |
222 | 221 | else |
223 | 222 | { |
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); | |
227 | 226 | } |
228 | 227 | |
229 | 228 | mix_boogwing(screen.machine(), bitmap,cliprect); |
230 | 229 | |
231 | deco16ic_tilemap_1_draw( | |
230 | deco16ic_tilemap_1_draw( | |
232 | 231 | return 0; |
233 | 232 | } |
r17967 | r17968 | |
---|---|---|
184 | 184 | } |
185 | 185 | } |
186 | 186 | |
187 | ||
187 | ||
188 | 188 | { |
189 | quizdna_state *state = screen.machine().driver_data<quizdna_state>(); | |
190 | if (state->m_video_enable) | |
189 | if (m_video_enable) | |
191 | 190 | { |
192 | | |
191 | | |
193 | 192 | draw_sprites(screen.machine(), bitmap, cliprect); |
194 | | |
193 | | |
195 | 194 | } |
196 | 195 | else |
197 | 196 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
r17967 | r17968 | |
---|---|---|
87 | 87 | * |
88 | 88 | *************************************/ |
89 | 89 | |
90 | ||
90 | ||
91 | 91 | { |
92 | offtwall_state *state = screen.machine().driver_data<offtwall_state>(); | |
93 | 92 | atarimo_rect_list rectlist; |
94 | 93 | bitmap_ind16 *mobitmap; |
95 | 94 | int x, y, r; |
96 | 95 | |
97 | 96 | /* draw the playfield */ |
98 | | |
97 | | |
99 | 98 | |
100 | 99 | /* draw and merge the MO */ |
101 | 100 | mobitmap = atarimo_render(0, cliprect, &rectlist); |
r17967 | r17968 | |
---|---|---|
449 | 449 | |
450 | 450 | |
451 | 451 | |
452 | ||
452 | ||
453 | 453 | { |
454 | equites_state *state = screen.machine().driver_data<equites_state>(); | |
455 | bitmap.fill(state->m_bgcolor, cliprect); | |
454 | bitmap.fill(m_bgcolor, cliprect); | |
456 | 455 | |
457 | | |
456 | | |
458 | 457 | |
459 | 458 | equites_draw_sprites(screen.machine(), bitmap, cliprect); |
460 | 459 | |
461 | | |
460 | | |
462 | 461 | |
463 | 462 | return 0; |
464 | 463 | } |
465 | 464 | |
466 | ||
465 | ||
467 | 466 | { |
468 | equites_state *state = screen.machine().driver_data<equites_state>(); | |
469 | bitmap.fill(state->m_bgcolor, cliprect); | |
467 | bitmap.fill(m_bgcolor, cliprect); | |
470 | 468 | |
471 | 469 | splndrbt_copy_bg(screen.machine(), bitmap, cliprect); |
472 | 470 | |
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); | |
475 | 473 | |
476 | 474 | splndrbt_draw_sprites(screen.machine(), bitmap, cliprect); |
477 | 475 | |
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); | |
480 | 478 | |
481 | 479 | return 0; |
482 | 480 | } |
r17967 | r17968 | |
---|---|---|
121 | 121 | |
122 | 122 | ***************************************************************************/ |
123 | 123 | |
124 | ||
124 | ||
125 | 125 | { |
126 | gradius3_state *state = screen.machine().driver_data<gradius3_state>(); | |
127 | 126 | |
128 | 127 | /* TODO: this kludge enforces the char banks. For some reason, they don't work otherwise. */ |
129 | 128 | 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); | |
132 | 131 | |
133 | k052109_tilemap_update( | |
132 | k052109_tilemap_update( | |
134 | 133 | |
135 | 134 | screen.machine().priority_bitmap.fill(0, cliprect); |
136 | if ( | |
135 | if ( | |
137 | 136 | { |
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); | |
141 | 140 | } |
142 | 141 | else |
143 | 142 | { |
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); | |
147 | 146 | } |
148 | 147 | |
149 | k051960_sprites_draw( | |
148 | k051960_sprites_draw( | |
150 | 149 | return 0; |
151 | 150 | } |
r17967 | r17968 | |
---|---|---|
516 | 516 | machine().gfx[2]->decode(16); |
517 | 517 | } |
518 | 518 | |
519 | ||
519 | ||
520 | 520 | { |
521 | decocass_state *state = screen.machine().driver_data<decocass_state>(); | |
522 | 521 | int scrollx, scrolly_l, scrolly_r; |
523 | 522 | rectangle clip; |
524 | 523 | |
525 | 524 | if (0xc0 != (screen.machine().root_device().ioport("IN2")->read() & 0xc0)) /* coin slots assert an NMI */ |
526 | | |
525 | | |
527 | 526 | |
528 | if (0 == ( | |
527 | if (0 == ( | |
529 | 528 | screen.machine().watchdog_reset(); |
530 | else if ( | |
529 | else if ( | |
531 | 530 | screen.machine().watchdog_reset(); |
532 | 531 | |
533 | 532 | #ifdef MAME_DEBUG |
534 | 533 | { |
535 | 534 | 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) | |
538 | 537 | 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); | |
549 | 548 | } |
550 | 549 | #endif |
551 | 550 | |
552 | 551 | bitmap.fill(0, cliprect); |
553 | 552 | |
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; | |
556 | 555 | |
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)) | |
559 | 558 | scrollx += 256; |
560 | 559 | |
561 | 560 | #if 0 |
562 | 561 | /* this is wrong */ |
563 | if (0 != | |
562 | if (0 != | |
564 | 563 | scrollx += 256; |
565 | 564 | #endif |
566 | 565 | |
567 | if (0 == ( | |
566 | if (0 == ( | |
568 | 567 | scrolly_r += 256; |
569 | 568 | else |
570 | 569 | scrolly_l += 256; |
571 | 570 | |
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); | |
574 | 573 | |
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); | |
577 | 576 | |
578 | if ( | |
577 | if ( | |
579 | 578 | { |
580 | clip = | |
579 | clip = | |
581 | 580 | clip &= cliprect; |
582 | | |
581 | | |
583 | 582 | |
584 | clip = | |
583 | clip = | |
585 | 584 | clip &= cliprect; |
586 | | |
585 | | |
587 | 586 | } |
588 | 587 | |
589 | if ( | |
588 | if ( | |
590 | 589 | { |
591 | 590 | draw_object(screen.machine(), bitmap, cliprect); |
592 | 591 | draw_center(screen.machine(), bitmap, cliprect); |
r17967 | r17968 | |
595 | 594 | { |
596 | 595 | draw_object(screen.machine(), bitmap, cliprect); |
597 | 596 | draw_center(screen.machine(), bitmap, cliprect); |
598 | if ( | |
597 | if ( | |
599 | 598 | { |
600 | clip = | |
599 | clip = | |
601 | 600 | clip &= cliprect; |
602 | | |
601 | | |
603 | 602 | |
604 | clip = | |
603 | clip = | |
605 | 604 | clip &= cliprect; |
606 | | |
605 | | |
607 | 606 | } |
608 | 607 | } |
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); | |
612 | 611 | return 0; |
613 | 612 | } |
r17967 | r17968 | |
---|---|---|
321 | 321 | |
322 | 322 | |
323 | 323 | |
324 | ||
324 | ||
325 | 325 | { |
326 | mystwarr_state *state = screen.machine().driver_data<mystwarr_state>(); | |
327 | 326 | int i, old, blendmode=0; |
328 | 327 | |
329 | if ( | |
328 | if ( | |
330 | 329 | |
331 | 330 | for (i = 0; i < 4; i++) |
332 | 331 | { |
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); | |
336 | 335 | } |
337 | 336 | |
338 | | |
337 | | |
339 | 338 | |
340 | 339 | konamigx_mixer(screen.machine(), bitmap, cliprect, 0, 0, 0, 0, blendmode, 0, 0); |
341 | 340 | return 0; |
342 | 341 | } |
343 | 342 | |
344 | ||
343 | ||
345 | 344 | { |
346 | mystwarr_state *state = screen.machine().driver_data<mystwarr_state>(); | |
347 | 345 | int i, old; |
348 | 346 | |
349 | 347 | for (i = 0; i < 4; i++) |
350 | 348 | { |
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); | |
354 | 352 | } |
355 | 353 | |
356 | | |
354 | | |
357 | 355 | |
358 | 356 | konamigx_mixer(screen.machine(), bitmap, cliprect, 0, GXSUB_K053250 | GXSUB_4BPP, 0, 0, 0, 0, 0); |
359 | 357 | return 0; |
360 | 358 | } |
361 | 359 | |
362 | ||
360 | ||
363 | 361 | { |
364 | mystwarr_state *state = screen.machine().driver_data<mystwarr_state>(); | |
365 | 362 | int i, old, blendmode; |
366 | 363 | |
367 | 364 | for (i = 0; i < 4; i++) |
368 | 365 | { |
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); | |
372 | 369 | } |
373 | 370 | |
374 | | |
371 | | |
375 | 372 | |
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); | |
378 | 375 | |
379 | 376 | // not quite right |
380 | blendmode = ( | |
377 | blendmode = ( | |
381 | 378 | |
382 | 379 | konamigx_mixer(screen.machine(), bitmap, cliprect, 0, 0, 0, 0, blendmode, 0, 0); |
383 | 380 | return 0; |
r17967 | r17968 | |
487 | 484 | return ROM[offset]<<8; |
488 | 485 | } |
489 | 486 | |
490 | ||
487 | ||
491 | 488 | { |
492 | mystwarr_state *state = screen.machine().driver_data<mystwarr_state>(); | |
493 | 489 | int i, newbase, dirty, rozmode; |
494 | 490 | |
495 | if ( | |
491 | if ( | |
496 | 492 | { |
497 | | |
493 | | |
498 | 494 | rozmode = GXSUB_4BPP; |
499 | 495 | } |
500 | 496 | else |
501 | 497 | { |
502 | | |
498 | | |
503 | 499 | rozmode = GXSUB_8BPP; |
504 | 500 | } |
505 | 501 | |
r17967 | r17968 | |
508 | 504 | for (i=0; i<4; i++) |
509 | 505 | { |
510 | 506 | newbase = K055555_get_palette_index(i)<<4; |
511 | if ( | |
507 | if ( | |
512 | 508 | { |
513 | | |
509 | | |
514 | 510 | K056832_mark_plane_dirty(i); |
515 | 511 | } |
516 | 512 | } |
r17967 | r17968 | |
520 | 516 | for (dirty=0, i=0; i<4; i++) |
521 | 517 | { |
522 | 518 | newbase = K055555_get_palette_index(i)<<4; |
523 | if ( | |
519 | if ( | |
524 | 520 | { |
525 | | |
521 | | |
526 | 522 | dirty = 1; |
527 | 523 | } |
528 | 524 | } |
r17967 | r17968 | |
530 | 526 | |
531 | 527 | } |
532 | 528 | |
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); | |
535 | 531 | |
536 | if ( | |
532 | if ( | |
537 | 533 | { |
538 | | |
534 | | |
539 | 535 | |
540 | 536 | if (MW_VERBOSE) |
541 | 537 | popmessage("K053936: PSAC colorbase changed"); |
542 | 538 | } |
543 | 539 | |
544 | konamigx_mixer(screen.machine(), bitmap, cliprect, ( | |
540 | konamigx_mixer(screen.machine(), bitmap, cliprect, ( | |
545 | 541 | return 0; |
546 | 542 | } |
r17967 | r17968 | |
---|---|---|
410 | 410 | * |
411 | 411 | *************************************/ |
412 | 412 | |
413 | ||
413 | ||
414 | 414 | { |
415 | fromance_state *state = screen.machine().driver_data<fromance_state>(); | |
416 | 415 | |
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]); | |
421 | 420 | |
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); | |
424 | 423 | return 0; |
425 | 424 | } |
426 | 425 | |
427 | 426 | |
428 | ||
427 | ||
429 | 428 | { |
430 | fromance_state *state = screen.machine().driver_data<fromance_state>(); | |
431 | 429 | |
432 | 430 | /* 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]); | |
435 | 433 | |
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); | |
438 | 436 | |
439 | 437 | draw_sprites(screen, bitmap, cliprect, 0); |
440 | 438 | draw_sprites(screen, bitmap, cliprect, 1); |
r17967 | r17968 | |
---|---|---|
229 | 229 | } |
230 | 230 | |
231 | 231 | |
232 | ||
232 | ||
233 | 233 | { |
234 | skykid_state *state = screen.machine().driver_data<skykid_state>(); | |
235 | if (state->flip_screen()) | |
234 | if (flip_screen()) | |
236 | 235 | { |
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); | |
239 | 238 | } |
240 | 239 | else |
241 | 240 | { |
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); | |
244 | 243 | } |
245 | 244 | |
246 | | |
245 | | |
247 | 246 | |
248 | if ( | |
247 | if ( | |
249 | 248 | { |
250 | 249 | // textlayer priority enabled? |
251 | int cat, pri = | |
250 | int cat, pri = | |
252 | 251 | |
253 | 252 | // draw low priority tiles |
254 | | |
253 | | |
255 | 254 | |
256 | 255 | draw_sprites(screen.machine(), bitmap, cliprect); |
257 | 256 | |
258 | 257 | // draw the other tiles |
259 | 258 | for (cat = 0; cat < 0xf; cat++) |
260 | if (cat != pri) | |
259 | if (cat != pri) | |
261 | 260 | } |
262 | 261 | else |
263 | 262 | { |
264 | 263 | draw_sprites(screen.machine(), bitmap, cliprect); |
265 | | |
264 | | |
266 | 265 | } |
267 | 266 | |
268 | 267 | return 0; |
r17967 | r17968 | |
---|---|---|
346 | 346 | |
347 | 347 | |
348 | 348 | |
349 | ||
349 | ||
350 | 350 | { |
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; | |
354 | 353 | int x, y, offs; |
355 | 354 | |
356 | 355 | /* copy the polygon bitmap */ |
r17967 | r17968 | |
362 | 361 | for (x = 0; x < 32; x++, offs++) |
363 | 362 | { |
364 | 363 | int code = videoram[offs] & 0x3f; |
365 | int color = ((videoram[offs] & 0xc0) >> 6) | ( | |
364 | int color = ((videoram[offs] & 0xc0) >> 6) | ( | |
366 | 365 | |
367 | 366 | drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[0], |
368 | 367 | code, color, |
r17967 | r17968 | |
---|---|---|
99 | 99 | * |
100 | 100 | *************************************/ |
101 | 101 | |
102 | ||
102 | ||
103 | 103 | { |
104 | klax_state *state = screen.machine().driver_data<klax_state>(); | |
105 | 104 | atarimo_rect_list rectlist; |
106 | 105 | bitmap_ind16 *mobitmap; |
107 | 106 | int x, y, r; |
108 | 107 | |
109 | 108 | /* draw the playfield */ |
110 | | |
109 | | |
111 | 110 | |
112 | 111 | /* draw and merge the MO */ |
113 | 112 | mobitmap = atarimo_render(0, cliprect, &rectlist); |
r17967 | r17968 | |
---|---|---|
73 | 73 | m_txt_tilemap->set_transparent_pen(15); |
74 | 74 | } |
75 | 75 | |
76 | ||
76 | ||
77 | 77 | { |
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); | |
83 | 82 | |
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); | |
86 | 85 | return 0; |
87 | 86 | } |
r17967 | r17968 | |
---|---|---|
144 | 144 | |
145 | 145 | ******************************************************************************/ |
146 | 146 | |
147 | ||
147 | ||
148 | 148 | { |
149 | gomoku_state *state = screen.machine().driver_data<gomoku_state>(); | |
150 | 149 | UINT8 *GOMOKU_BG_X = screen.machine().root_device().memregion( "user1" )->base(); |
151 | 150 | UINT8 *GOMOKU_BG_Y = screen.machine().root_device().memregion( "user2" )->base(); |
152 | UINT8 *GOMOKU_BG_D = | |
151 | UINT8 *GOMOKU_BG_D = | |
153 | 152 | int x, y; |
154 | 153 | int bgram; |
155 | 154 | int bgoffs; |
r17967 | r17968 | |
157 | 156 | int color; |
158 | 157 | |
159 | 158 | /* draw background layer */ |
160 | if ( | |
159 | if ( | |
161 | 160 | { |
162 | 161 | /* copy bg bitmap */ |
163 | copybitmap(bitmap, | |
162 | copybitmap(bitmap, | |
164 | 163 | |
165 | 164 | // stone |
166 | 165 | for (y = 0; y < 256; y++) |
r17967 | r17968 | |
170 | 169 | bgoffs = ((((255 - x - 2) / 14) | (((255 - y - 10) / 14) << 4)) & 0xff); |
171 | 170 | |
172 | 171 | bgdata = GOMOKU_BG_D[ GOMOKU_BG_X[x] + (GOMOKU_BG_Y[y] << 4) ]; |
173 | bgram = | |
172 | bgram = | |
174 | 173 | |
175 | 174 | if (bgdata & 0x04) |
176 | 175 | { |
r17967 | r17968 | |
198 | 197 | bgoffs = ((((255 - x - 2) / 14) | (((255 - y - 10) / 14) << 4)) & 0xff); |
199 | 198 | |
200 | 199 | bgdata = GOMOKU_BG_D[ GOMOKU_BG_X[x] + (GOMOKU_BG_Y[y] << 4) ]; |
201 | bgram = | |
200 | bgram = | |
202 | 201 | |
203 | 202 | if (bgdata & 0x08) |
204 | 203 | { |
r17967 | r17968 | |
223 | 222 | bitmap.fill(0x20); |
224 | 223 | } |
225 | 224 | |
226 | | |
225 | | |
227 | 226 | return 0; |
228 | 227 | } |
r17967 | r17968 | |
---|---|---|
143 | 143 | k056832_set_layer_offs(k056832, 1, -88, -27); |
144 | 144 | } |
145 | 145 | |
146 | ||
146 | ||
147 | 147 | { |
148 | 148 | device_t *k056832 = screen.machine().device("k056832"); |
149 | 149 | device_t *k055555 = screen.machine().device("k055555"); |
r17967 | r17968 | |
---|---|---|
347 | 347 | } |
348 | 348 | |
349 | 349 | |
350 | ||
350 | ||
351 | 351 | { |
352 | firetrk_state *state = screen.machine().driver_data<firetrk_state>(); | |
353 | 352 | 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); | |
358 | 357 | |
359 | 358 | 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); | |
365 | 364 | |
366 | 365 | if (cliprect.max_y == screen.visible_area().max_y) |
367 | 366 | { |
368 | | |
367 | | |
369 | 368 | |
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); | |
373 | 372 | |
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); | |
377 | 376 | |
378 | * | |
377 | * | |
379 | 378 | } |
380 | 379 | |
381 | 380 | return 0; |
382 | 381 | } |
383 | 382 | |
384 | 383 | |
385 | ||
384 | ||
386 | 385 | { |
387 | firetrk_state *state = screen.machine().driver_data<firetrk_state>(); | |
388 | 386 | 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); | |
393 | 391 | |
394 | 392 | 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); | |
399 | 397 | |
400 | 398 | if (cliprect.max_y == screen.visible_area().max_y) |
401 | 399 | { |
402 | | |
400 | | |
403 | 401 | |
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); | |
407 | 405 | |
408 | * | |
406 | * | |
409 | 407 | } |
410 | 408 | |
411 | 409 | return 0; |
412 | 410 | } |
413 | 411 | |
414 | 412 | |
415 | ||
413 | ||
416 | 414 | { |
417 | firetrk_state *state = screen.machine().driver_data<firetrk_state>(); | |
418 | 415 | 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); | |
423 | 420 | |
424 | 421 | bitmap.fill(0x2c, cliprect); |
425 | | |
422 | | |
426 | 423 | montecar_draw_car(screen.machine(), bitmap, playfield_window, screen.machine().gfx, 0, FALSE); |
427 | 424 | 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); | |
430 | 427 | |
431 | 428 | if (cliprect.max_y == screen.visible_area().max_y) |
432 | 429 | { |
433 | | |
430 | | |
434 | 431 | |
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); | |
438 | 435 | |
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); | |
442 | 439 | } |
443 | 440 | |
444 | 441 | return 0; |
r17967 | r17968 | |
---|---|---|
23 | 23 | }; |
24 | 24 | }; |
25 | 25 | |
26 | ||
26 | ||
27 | 27 | { |
28 | segas24_state *state = screen.machine().driver_data<segas24_state>(); | |
29 | 28 | |
30 | if( | |
29 | if( | |
31 | 30 | bitmap.fill(get_black_pen(screen.machine())); |
32 | 31 | return 0; |
33 | 32 | } |
r17967 | r17968 | |
40 | 39 | for(int i=0; i<12; i++) |
41 | 40 | order[i] = i; |
42 | 41 | |
43 | std::sort(order.begin(), order.end(), layer_sort( | |
42 | std::sort(order.begin(), order.end(), layer_sort( | |
44 | 43 | |
45 | 44 | int spri[4]; |
46 | 45 | int level = 0; |
47 | 46 | for(int i=0; i<12; i++) |
48 | 47 | if(order[i] < 8) |
49 | | |
48 | | |
50 | 49 | else { |
51 | 50 | spri[order[i]-8] = level; |
52 | 51 | level++; |
53 | 52 | } |
54 | 53 | |
55 | | |
54 | | |
56 | 55 | return 0; |
57 | 56 | } |
r17967 | r17968 | |
---|---|---|
264 | 264 | * |
265 | 265 | *************************************/ |
266 | 266 | |
267 | ||
267 | ||
268 | 268 | { |
269 | 269 | draw_background(screen.machine(), bitmap, cliprect); |
270 | 270 | draw_sprites(screen.machine(), bitmap, cliprect); |
r17967 | r17968 | |
---|---|---|
139 | 139 | } |
140 | 140 | } |
141 | 141 | |
142 | ||
142 | ||
143 | 143 | { |
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); | |
146 | 145 | draw_sprites(screen.machine(), bitmap, cliprect); |
147 | 146 | return 0; |
148 | 147 | } |
r17967 | r17968 | |
---|---|---|
917 | 917 | * |
918 | 918 | *************************************/ |
919 | 919 | |
920 | ||
920 | ||
921 | 921 | { |
922 | neogeo_state *state = screen.machine().driver_data<neogeo_state>(); | |
923 | 922 | |
924 | 923 | /* fill with background color first */ |
925 | bitmap.fill( | |
924 | bitmap.fill( | |
926 | 925 | |
927 | 926 | draw_sprites(screen.machine(), bitmap, cliprect.min_y); |
928 | 927 |
r17967 | r17968 | |
---|---|---|
183 | 183 | 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); |
184 | 184 | } |
185 | 185 | |
186 | ||
186 | ||
187 | 187 | { |
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); | |
190 | 189 | return 0; |
191 | 190 | } |
r17967 | r17968 | |
---|---|---|
2370 | 2370 | |
2371 | 2371 | } |
2372 | 2372 | |
2373 | ||
2373 | ||
2374 | 2374 | { |
2375 | 2375 | int i, newbank, newbase, dirty, unchained; |
2376 | 2376 | |
r17967 | r17968 | |
2495 | 2495 | return 0; |
2496 | 2496 | } |
2497 | 2497 | |
2498 | ||
2498 | ||
2499 | 2499 | { |
2500 | 2500 | /* the video gets demuxed by a board which plugs into the jamma connector */ |
2501 | konamigx_state *state = screen.machine().driver_data<konamigx_state>(); | |
2502 | 2501 | konamigx_current_frame^=1; |
2503 | 2502 | |
2504 | 2503 | if (konamigx_current_frame==1) |
r17967 | r17968 | |
2509 | 2508 | { |
2510 | 2509 | for (offset=0;offset<0x4000/4;offset++) |
2511 | 2510 | { |
2512 | UINT32 coldat = | |
2511 | UINT32 coldat = | |
2513 | 2512 | |
2514 | 2513 | set_color_555(screen.machine(), offset*2, 0, 5, 10,coldat >> 16); |
2515 | 2514 | set_color_555(screen.machine(), offset*2+1, 0, 5, 10,coldat & 0xffff); |
r17967 | r17968 | |
2521 | 2520 | { |
2522 | 2521 | int r,g,b; |
2523 | 2522 | |
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; | |
2527 | 2526 | |
2528 | 2527 | palette_set_color(screen.machine(),offset,MAKE_RGB(r,g,b)); |
2529 | 2528 | } |
2530 | 2529 | } |
2531 | 2530 | |
2532 | | |
2531 | screen_update_ | |
2533 | 2532 | copybitmap(bitmap, *dualscreen_left_tempbitmap, 0, 0, 0, 0, cliprect); |
2534 | 2533 | } |
2535 | 2534 | else |
r17967 | r17968 | |
2540 | 2539 | return 0; |
2541 | 2540 | } |
2542 | 2541 | |
2543 | ||
2542 | ||
2544 | 2543 | { |
2545 | konamigx_state *state = screen.machine().driver_data<konamigx_state>(); | |
2546 | 2544 | |
2547 | 2545 | if (konamigx_current_frame==1) |
2548 | 2546 | { |
r17967 | r17968 | |
2557 | 2555 | { |
2558 | 2556 | for (offset=0;offset<0x4000/4;offset++) |
2559 | 2557 | { |
2560 | UINT32 coldat = | |
2558 | UINT32 coldat = | |
2561 | 2559 | |
2562 | 2560 | set_color_555(screen.machine(), offset*2, 0, 5, 10,coldat >> 16); |
2563 | 2561 | set_color_555(screen.machine(), offset*2+1, 0, 5, 10,coldat & 0xffff); |
r17967 | r17968 | |
2569 | 2567 | { |
2570 | 2568 | int r,g,b; |
2571 | 2569 | |
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; | |
2575 | 2573 | |
2576 | 2574 | palette_set_color(screen.machine(),offset,MAKE_RGB(r,g,b)); |
2577 | 2575 | } |
2578 | 2576 | } |
2579 | 2577 | |
2580 | | |
2578 | screen_update_ | |
2581 | 2579 | copybitmap(bitmap, *dualscreen_right_tempbitmap, 0, 0, 0, 0, cliprect); |
2582 | 2580 | } |
2583 | 2581 |
r17967 | r17968 | |
---|---|---|
188 | 188 | } |
189 | 189 | } |
190 | 190 | |
191 | ||
191 | ||
192 | 192 | { |
193 | sprcros2_state *state = screen.machine().driver_data<sprcros2_state>(); | |
194 | 193 | |
195 | | |
194 | | |
196 | 195 | draw_sprites(screen.machine(), bitmap, cliprect); |
197 | | |
196 | | |
198 | 197 | return 0; |
199 | 198 | } |
r17967 | r17968 | |
---|---|---|
158 | 158 | } |
159 | 159 | |
160 | 160 | |
161 | ||
161 | ||
162 | 162 | { |
163 | vectrex_state *state = screen.machine().driver_data<vectrex_state>(); | |
164 | 163 | int i; |
165 | 164 | |
166 | 165 | vectrex_configuration(screen.machine()); |
167 | 166 | |
168 | 167 | /* start black */ |
169 | 168 | 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, | |
173 | 172 | 0); |
174 | 173 | |
175 | for (i = | |
174 | for (i = | |
176 | 175 | { |
177 | 176 | 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); | |
182 | 181 | } |
183 | 182 | |
184 | 183 | SCREEN_UPDATE32_CALL(vector); |
r17967 | r17968 | |
---|---|---|
118 | 118 | * |
119 | 119 | *************************************/ |
120 | 120 | |
121 | ||
121 | ||
122 | 122 | { |
123 | thunderj_state *state = screen.machine().driver_data<thunderj_state>(); | |
124 | 123 | bitmap_ind8 &priority_bitmap = screen.machine().priority_bitmap; |
125 | 124 | atarimo_rect_list rectlist; |
126 | 125 | bitmap_ind16 *mobitmap; |
r17967 | r17968 | |
128 | 127 | |
129 | 128 | /* draw the playfield */ |
130 | 129 | 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); | |
139 | 138 | |
140 | 139 | /* draw and merge the MO */ |
141 | 140 | mobitmap = atarimo_render(0, cliprect, &rectlist); |
r17967 | r17968 | |
234 | 233 | } |
235 | 234 | |
236 | 235 | /* add the alpha on top */ |
237 | | |
236 | | |
238 | 237 | |
239 | 238 | /* now go back and process the upper bit of MO priority */ |
240 | 239 | rectlist.rect -= rectlist.numrects; |
r17967 | r17968 | |
---|---|---|
120 | 120 | |
121 | 121 | ***************************************************************************/ |
122 | 122 | |
123 | ||
123 | ||
124 | 124 | { |
125 | ultraman_state *state = screen.machine().driver_data<ultraman_state>(); | |
126 | 125 | |
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); | |
132 | 131 | return 0; |
133 | 132 | } |
r17967 | r17968 | |
---|---|---|
45 | 45 | |
46 | 46 | ***************************************************************************/ |
47 | 47 | |
48 | ||
48 | ||
49 | 49 | { |
50 | parodius_state *state = screen.machine().driver_data<parodius_state>(); | |
51 | 50 | int layer[3], bg_colorbase; |
52 | 51 | |
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); | |
58 | 57 | |
59 | k052109_tilemap_update( | |
58 | k052109_tilemap_update( | |
60 | 59 | |
61 | 60 | layer[0] = 0; |
62 | | |
61 | | |
63 | 62 | layer[1] = 1; |
64 | | |
63 | | |
65 | 64 | layer[2] = 2; |
66 | | |
65 | | |
67 | 66 | |
68 | konami_sortlayers3(layer, | |
67 | konami_sortlayers3(layer, | |
69 | 68 | |
70 | 69 | screen.machine().priority_bitmap.fill(0, cliprect); |
71 | 70 | 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); | |
75 | 74 | |
76 | k053245_sprites_draw( | |
75 | k053245_sprites_draw( | |
77 | 76 | return 0; |
78 | 77 | } |
r17967 | r17968 | |
---|---|---|
278 | 278 | } |
279 | 279 | } |
280 | 280 | |
281 | ||
281 | ||
282 | 282 | { |
283 | ladybug_state *state = screen.machine().driver_data<ladybug_state>(); | |
284 | 283 | int offs; |
285 | 284 | |
286 | 285 | // clear the bg bitmap |
r17967 | r17968 | |
291 | 290 | int sx = offs % 4; |
292 | 291 | int sy = offs / 4; |
293 | 292 | |
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]); | |
296 | 295 | else |
297 | | |
296 | | |
298 | 297 | } |
299 | 298 | |
300 | | |
299 | | |
301 | 300 | draw_sprites(screen.machine(), bitmap, cliprect); |
302 | 301 | return 0; |
303 | 302 | } |
304 | 303 | |
305 | ||
304 | void | |
306 | 305 | { |
307 | 306 | // falling edge |
308 | if (! | |
307 | if (!st | |
309 | 308 | redclash_update_stars_state(screen.machine()); |
310 | 309 | } |
311 | 310 | |
312 | ||
311 | ||
313 | 312 | { |
314 | ladybug_state *state = screen.machine().driver_data<ladybug_state>(); | |
315 | 313 | |
316 | 314 | // this part is boilerplate from ladybug, not sure if hardware does this, |
317 | 315 | // since it's not used |
r17967 | r17968 | |
324 | 322 | int sx = offs % 4; |
325 | 323 | int sy = offs / 4; |
326 | 324 | |
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]); | |
329 | 327 | else |
330 | | |
328 | | |
331 | 329 | } |
332 | 330 | |
333 | 331 | // clear the bg bitmap |
334 | 332 | bitmap.fill(0, cliprect); |
335 | 333 | |
336 | 334 | // draw the stars |
337 | if ( | |
335 | if ( | |
338 | 336 | redclash_draw_stars(screen.machine(), bitmap, cliprect, 0x60, 1, 0x27, 0xff); |
339 | 337 | else |
340 | 338 | redclash_draw_stars(screen.machine(), bitmap, cliprect, 0x60, 1, 0x00, 0xd8); |
341 | 339 | |
342 | 340 | // 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()); | |
347 | 345 | |
348 | 346 | for (i = 0; i < 0x100; i++) |
349 | 347 | { |
350 | if ( | |
348 | if ( | |
351 | 349 | { |
352 | 350 | UINT8 x = i; |
353 | 351 | int height = cliprect.max_y - cliprect.min_y + 1; |
354 | 352 | |
355 | if ( | |
353 | if ( | |
356 | 354 | x = ~x; |
357 | 355 | |
358 | 356 | bitmap.plot_box(x, cliprect.min_y, 1, height, 0x81); |
r17967 | r17968 | |
360 | 358 | } |
361 | 359 | |
362 | 360 | // now the chars |
363 | | |
361 | | |
364 | 362 | |
365 | 363 | // now the sprites |
366 | 364 | draw_sprites(screen.machine(), bitmap, cliprect); |
r17967 | r17968 | |
---|---|---|
119 | 119 | } |
120 | 120 | } |
121 | 121 | |
122 | ||
122 | ||
123 | 123 | { |
124 | blueprnt_state *state = screen.machine().driver_data<blueprnt_state>(); | |
125 | 124 | int i; |
126 | 125 | |
127 | if ( | |
126 | if ( | |
128 | 127 | for (i = 0; i < 32; i++) |
129 | | |
128 | | |
130 | 129 | else |
131 | 130 | for (i = 0; i < 32; i++) |
132 | | |
131 | | |
133 | 132 | |
134 | 133 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
135 | | |
134 | | |
136 | 135 | draw_sprites(screen.machine(), bitmap, cliprect); |
137 | | |
136 | | |
138 | 137 | return 0; |
139 | 138 | } |
r17967 | r17968 | |
---|---|---|
393 | 393 | } |
394 | 394 | |
395 | 395 | |
396 | ||
396 | ||
397 | 397 | { |
398 | combatsc_state *state = screen.machine().driver_data<combatsc_state>(); | |
399 | 398 | int i; |
400 | 399 | |
401 | 400 | set_pens(screen.machine()); |
402 | 401 | |
403 | 402 | address_space &space = screen.machine().driver_data()->generic_space(); |
404 | if (k007121_ctrlram_r( | |
403 | if (k007121_ctrlram_r( | |
405 | 404 | { |
406 | | |
405 | | |
407 | 406 | for (i = 0; i < 32; i++) |
408 | | |
407 | | |
409 | 408 | } |
410 | 409 | else |
411 | 410 | { |
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)); | |
414 | 413 | } |
415 | 414 | |
416 | if (k007121_ctrlram_r( | |
415 | if (k007121_ctrlram_r( | |
417 | 416 | { |
418 | | |
417 | | |
419 | 418 | for (i = 0; i < 32; i++) |
420 | | |
419 | | |
421 | 420 | } |
422 | 421 | else |
423 | 422 | { |
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)); | |
426 | 425 | } |
427 | 426 | |
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)); | |
430 | 429 | |
431 | 430 | screen.machine().priority_bitmap.fill(0, cliprect); |
432 | 431 | |
433 | if ( | |
432 | if ( | |
434 | 433 | { |
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); | |
439 | 438 | |
440 | 439 | /* 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); | |
443 | 442 | } |
444 | 443 | else |
445 | 444 | { |
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); | |
450 | 449 | |
451 | 450 | /* 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); | |
454 | 453 | } |
455 | 454 | |
456 | if (k007121_ctrlram_r( | |
455 | if (k007121_ctrlram_r( | |
457 | 456 | { |
458 | 457 | for (i = 0; i < 32; i++) |
459 | 458 | { |
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); | |
462 | 461 | } |
463 | 462 | } |
464 | 463 | |
465 | 464 | /* chop the extreme columns if necessary */ |
466 | if (k007121_ctrlram_r( | |
465 | if (k007121_ctrlram_r( | |
467 | 466 | { |
468 | 467 | rectangle clip; |
469 | 468 | |
r17967 | r17968 | |
552 | 551 | } |
553 | 552 | } |
554 | 553 | |
555 | ||
554 | ||
556 | 555 | { |
557 | combatsc_state *state = screen.machine().driver_data<combatsc_state>(); | |
558 | 556 | int i; |
559 | 557 | |
560 | 558 | set_pens(screen.machine()); |
561 | 559 | |
562 | 560 | for (i = 0; i < 32; i++) |
563 | 561 | { |
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); | |
566 | 564 | } |
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); | |
569 | 567 | |
570 | if ( | |
568 | if ( | |
571 | 569 | { |
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); | |
576 | 574 | } |
577 | 575 | else |
578 | 576 | { |
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); | |
583 | 581 | } |
584 | 582 | |
585 | | |
583 | | |
586 | 584 | return 0; |
587 | 585 | } |
r17967 | r17968 | |
---|---|---|
96 | 96 | |
97 | 97 | ***************************************************************************/ |
98 | 98 | |
99 | ||
99 | ||
100 | 100 | { |
101 | rockrage_state *state = screen.machine().driver_data<rockrage_state>(); | |
102 | 101 | |
103 | 102 | set_pens(screen.machine()); |
104 | 103 | |
105 | k007342_tilemap_update( | |
104 | k007342_tilemap_update( | |
106 | 105 | |
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); | |
112 | 111 | return 0; |
113 | 112 | } |
r17967 | r17968 | |
---|---|---|
229 | 229 | } |
230 | 230 | |
231 | 231 | |
232 | ||
232 | ||
233 | 233 | { |
234 | buggychl_state *state = screen.machine().driver_data<buggychl_state>(); | |
235 | 234 | |
236 | if ( | |
235 | if ( | |
237 | 236 | draw_sky(bitmap, cliprect); |
238 | 237 | else |
239 | 238 | bitmap.fill(0, cliprect); |
240 | 239 | |
241 | if ( | |
240 | if ( | |
242 | 241 | draw_bg(screen.machine(), bitmap, cliprect); |
243 | 242 | |
244 | 243 | draw_sprites(screen.machine(), bitmap, cliprect); |
r17967 | r17968 | |
---|---|---|
99 | 99 | |
100 | 100 | |
101 | 101 | |
102 | ||
102 | ||
103 | 103 | { |
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); | |
108 | 107 | return 0; |
109 | 108 | } |
r17967 | r17968 | |
---|---|---|
350 | 350 | } |
351 | 351 | |
352 | 352 | |
353 | ||
353 | ||
354 | 354 | { |
355 | starshp1_state *state = screen.machine().driver_data<starshp1_state>(); | |
356 | set_pens(state, screen.machine().colortable); | |
355 | set_pens(this, screen.machine().colortable); | |
357 | 356 | |
358 | 357 | bitmap.fill(0, cliprect); |
359 | 358 | |
360 | if (state->m_starfield_kill == 0) | |
361 | draw_starfield(state, bitmap); | |
359 | if (m_starfield_kill == 0) | |
360 | draw_starfield(this, bitmap); | |
362 | 361 | |
363 | 362 | draw_sprites(screen.machine(), bitmap, cliprect); |
364 | 363 | |
365 | if ( | |
364 | if ( | |
366 | 365 | draw_circle(screen.machine(), bitmap); |
367 | 366 | |
368 | if ( | |
367 | if ( | |
369 | 368 | draw_spaceship(screen.machine(), bitmap, cliprect); |
370 | 369 | |
371 | if ( | |
370 | if ( | |
372 | 371 | draw_circle(screen.machine(), bitmap); |
373 | 372 | |
374 | | |
373 | | |
375 | 374 | |
376 | if (state->m_phasor != 0) | |
377 | draw_phasor(state, bitmap); | |
375 | if (m_phasor != 0) | |
376 | draw_phasor(this, bitmap); | |
378 | 377 | |
379 | 378 | return 0; |
380 | 379 | } |
381 | 380 | |
382 | 381 | |
383 | ||
382 | void | |
384 | 383 | { |
385 | 384 | // rising edge |
386 | if ( | |
385 | if (st | |
387 | 386 | { |
388 | starshp1_state *state = screen.machine().driver_data<starshp1_state>(); | |
389 | 387 | rectangle rect; |
390 | 388 | const rectangle &visarea = screen.machine().primary_screen->visible_area(); |
391 | 389 | |
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); | |
394 | 392 | rect.max_x = rect.min_x + screen.machine().gfx[1]->width() - 1; |
395 | 393 | rect.max_y = rect.min_y + screen.machine().gfx[1]->height() - 1; |
396 | 394 | |
397 | rect &= | |
395 | rect &= | |
398 | 396 | |
399 | | |
397 | | |
400 | 398 | |
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); | |
403 | 401 | |
404 | if (circle_collision(state, visarea)) | |
405 | state->m_collision_latch |= 1; | |
402 | if (circle_collision(this, visarea)) | |
403 | m_collision_latch |= 1; | |
406 | 404 | |
407 | if (circle_collision(state, rect)) | |
408 | state->m_collision_latch |= 2; | |
405 | if (circle_collision(this, rect)) | |
406 | m_collision_latch |= 2; | |
409 | 407 | |
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; | |
412 | 410 | |
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; | |
415 | 413 | } |
416 | 414 | } |
r17967 | r17968 | |
---|---|---|
172 | 172 | } |
173 | 173 | } |
174 | 174 | |
175 | ||
175 | ||
176 | 176 | { |
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); | |
181 | 180 | return 0; |
182 | 181 | } |
r17967 | r17968 | |
---|---|---|
121 | 121 | m_tilemap3->set_transparent_pen(15); |
122 | 122 | } |
123 | 123 | |
124 | ||
124 | ||
125 | 125 | { |
126 | bigstrkb_state *state = screen.machine().driver_data<bigstrkb_state>(); | |
127 | 126 | |
128 | 127 | // bitmap.fill(get_black_pen(screen.machine()), cliprect); |
129 | 128 | |
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]); | |
132 | 131 | |
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]); | |
135 | 134 | |
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); | |
138 | 137 | |
139 | 138 | draw_sprites(screen.machine(),bitmap,cliprect); |
140 | | |
139 | | |
141 | 140 | |
142 | 141 | // popmessage ("Regs %08x %08x %08x %08x",bsb_vidreg2[0],bsb_vidreg2[1],bsb_vidreg2[2],bsb_vidreg2[3]); |
143 | 142 | return 0; |
r17967 | r17968 | |
---|---|---|
3847 | 3847 | } |
3848 | 3848 | } |
3849 | 3849 | |
3850 | ||
3850 | ||
3851 | 3851 | { |
3852 | n64_state *state = screen.machine().driver_data<n64_state>(); | |
3853 | 3852 | n64_periphs *n64 = screen.machine().device<n64_periphs>("rcp"); |
3854 | | |
3853 | | |
3855 | 3854 | |
3856 | 3855 | //UINT16 *frame_buffer = (UINT16*)&rdram[(n64->vi_origin & 0xffffff) >> 2]; |
3857 | //UINT8 *cvg_buffer = & | |
3856 | //UINT8 *cvg_buffer = & | |
3858 | 3857 | //int vibuffering = ((n64->vi_control & 2) && fsaa && divot); |
3859 | 3858 | |
3860 | 3859 | //vibuffering = 0; // Disabled for now |
r17967 | r17968 | |
3891 | 3890 | } |
3892 | 3891 | */ |
3893 | 3892 | |
3894 | state->m_rdp->wait(); | |
3895 | state->m_rdp->AuxBufPtr = 0; | |
3893 | m_rdp->wait(); | |
3894 | m_rdp->AuxBufPtr = 0; | |
3896 | 3895 | |
3897 | 3896 | if (n64->vi_blank) |
3898 | 3897 | { |
3899 | bitmap.fill(0, | |
3898 | bitmap.fill(0, | |
3900 | 3899 | return 0; |
3901 | 3900 | } |
3902 | 3901 | |
3903 | | |
3902 | | |
3904 | 3903 | |
3905 | 3904 | return 0; |
3906 | 3905 | } |
r17967 | r17968 | |
---|---|---|
882 | 882 | } |
883 | 883 | |
884 | 884 | |
885 | ||
885 | void | |
886 | 886 | { |
887 | 887 | // rising edge |
888 | if ( | |
888 | if (st | |
889 | 889 | { |
890 | taitof2_state *state = screen.machine().driver_data<taitof2_state>(); | |
891 | 890 | |
892 | 891 | taitof2_update_sprites_active_area(screen.machine()); |
893 | 892 | |
894 | | |
893 | | |
895 | 894 | } |
896 | 895 | } |
897 | 896 | |
898 | ||
897 | void | |
899 | 898 | { |
900 | 899 | // rising edge |
901 | if ( | |
900 | if (st | |
902 | 901 | { |
903 | taitof2_state *state = screen.machine().driver_data<taitof2_state>(); | |
904 | UINT16 *spriteram = state->m_spriteram; | |
902 | UINT16 *spriteram = m_spriteram; | |
905 | 903 | int i; |
906 | 904 | |
907 | 905 | taitof2_update_sprites_active_area(screen.machine()); |
908 | 906 | |
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()); | |
914 | 912 | } |
915 | 913 | } |
916 | 914 | |
917 | ||
915 | void | |
918 | 916 | { |
919 | 917 | // rising edge |
920 | if ( | |
918 | if (st | |
921 | 919 | { |
922 | taitof2_state *state = screen.machine().driver_data<taitof2_state>(); | |
923 | UINT16 *spriteram = state->m_spriteram; | |
920 | UINT16 *spriteram = m_spriteram; | |
924 | 921 | int i; |
925 | 922 | |
926 | 923 | taitof2_update_sprites_active_area(screen.machine()); |
927 | 924 | |
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()); | |
933 | 930 | } |
934 | 931 | } |
935 | 932 | |
936 | ||
933 | void | |
937 | 934 | { |
938 | 935 | // rising edge |
939 | if ( | |
936 | if (st | |
940 | 937 | { |
941 | taitof2_state *state = screen.machine().driver_data<taitof2_state>(); | |
942 | UINT16 *spriteram = state->m_spriteram; | |
938 | UINT16 *spriteram = m_spriteram; | |
943 | 939 | int i; |
944 | 940 | |
945 | 941 | taitof2_update_sprites_active_area(screen.machine()); |
946 | 942 | |
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) | |
950 | 946 | { |
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]; | |
954 | 950 | } |
955 | memcpy( | |
951 | memcpy( | |
956 | 952 | } |
957 | 953 | } |
958 | 954 | |
959 | ||
955 | void | |
960 | 956 | { |
961 | 957 | // rising edge |
962 | if ( | |
958 | if (st | |
963 | 959 | { |
964 | 960 | /* spriteram[2] and [3] are 1 frame behind... |
965 | 961 | probably thundfox_eof_callback would work fine */ |
966 | 962 | |
967 | taitof2_state *state = screen.machine().driver_data<taitof2_state>(); | |
968 | UINT16 *spriteram = state->m_spriteram; | |
963 | UINT16 *spriteram = m_spriteram; | |
969 | 964 | int i; |
970 | 965 | |
971 | 966 | taitof2_update_sprites_active_area(screen.machine()); |
972 | 967 | |
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) | |
976 | 971 | { |
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? | |
983 | 978 | } |
984 | memcpy( | |
979 | memcpy( | |
985 | 980 | } |
986 | 981 | } |
987 | 982 | |
988 | 983 | |
989 | 984 | /* SSI */ |
990 | ||
985 | ||
991 | 986 | { |
992 | 987 | taitof2_handle_sprite_buffering(screen.machine()); |
993 | 988 | |
r17967 | r17968 | |
1000 | 995 | } |
1001 | 996 | |
1002 | 997 | |
1003 | ||
998 | ||
1004 | 999 | { |
1005 | taitof2_state *state = screen.machine().driver_data<taitof2_state>(); | |
1006 | 1000 | |
1007 | 1001 | taitof2_handle_sprite_buffering(screen.machine()); |
1008 | 1002 | |
1009 | tc0100scn_tilemap_update( | |
1003 | tc0100scn_tilemap_update( | |
1010 | 1004 | |
1011 | 1005 | screen.machine().priority_bitmap.fill(0, cliprect); |
1012 | 1006 | bitmap.fill(0, cliprect); /* wrong color? */ |
1013 | 1007 | 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); | |
1017 | 1011 | return 0; |
1018 | 1012 | } |
1019 | 1013 | |
1020 | 1014 | |
1021 | ||
1015 | ||
1022 | 1016 | { |
1023 | taitof2_state *state = screen.machine().driver_data<taitof2_state>(); | |
1024 | 1017 | |
1025 | 1018 | taitof2_handle_sprite_buffering(screen.machine()); |
1026 | 1019 | |
1027 | tc0100scn_tilemap_update( | |
1020 | tc0100scn_tilemap_update( | |
1028 | 1021 | |
1029 | 1022 | screen.machine().priority_bitmap.fill(0, cliprect); |
1030 | 1023 | 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); | |
1033 | 1026 | draw_sprites(screen.machine(), bitmap, cliprect, NULL, 0); |
1034 | tc0100scn_tilemap_draw( | |
1027 | tc0100scn_tilemap_draw( | |
1035 | 1028 | return 0; |
1036 | 1029 | } |
1037 | 1030 | |
1038 | 1031 | |
1039 | ||
1032 | ||
1040 | 1033 | { |
1041 | taitof2_state *state = screen.machine().driver_data<taitof2_state>(); | |
1042 | 1034 | address_space &space = screen.machine().driver_data()->generic_space(); |
1043 | 1035 | int layer[3]; |
1044 | 1036 | |
1045 | 1037 | taitof2_handle_sprite_buffering(screen.machine()); |
1046 | 1038 | |
1047 | tc0100scn_tilemap_update( | |
1039 | tc0100scn_tilemap_update( | |
1048 | 1040 | |
1049 | layer[0] = tc0100scn_bottomlayer( | |
1041 | layer[0] = tc0100scn_bottomlayer( | |
1050 | 1042 | layer[1] = layer[0] ^ 1; |
1051 | 1043 | 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; | |
1055 | 1047 | |
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; | |
1060 | 1052 | |
1061 | | |
1053 | | |
1062 | 1054 | |
1063 | 1055 | screen.machine().priority_bitmap.fill(0, cliprect); |
1064 | 1056 | bitmap.fill(0, cliprect); /* wrong color? */ |
1065 | 1057 | |
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); | |
1069 | 1061 | |
1070 | 1062 | draw_sprites(screen.machine(), bitmap, cliprect, NULL, 1); |
1071 | 1063 | return 0; |
r17967 | r17968 | |
1084 | 1076 | tc0430grw_zoom_draw(state->m_tc0430grw, bitmap, cliprect, state->m_pivot_xdisp, state->m_pivot_ydisp, priority); |
1085 | 1077 | } |
1086 | 1078 | |
1087 | ||
1079 | ||
1088 | 1080 | { |
1089 | taitof2_state *state = screen.machine().driver_data<taitof2_state>(); | |
1090 | 1081 | address_space &space = screen.machine().driver_data()->generic_space(); |
1091 | 1082 | int tilepri[3]; |
1092 | 1083 | int rozpri; |
1093 | 1084 | int layer[3]; |
1094 | 1085 | int drawn; |
1095 | 1086 | int i,j; |
1096 | int roz_base_color = (tc0360pri_r( | |
1087 | int roz_base_color = (tc0360pri_r( | |
1097 | 1088 | |
1098 | 1089 | taitof2_handle_sprite_buffering(screen.machine()); |
1099 | 1090 | |
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); | |
1102 | 1093 | |
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); | |
1105 | 1096 | |
1106 | tc0100scn_tilemap_update( | |
1097 | tc0100scn_tilemap_update( | |
1107 | 1098 | |
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; | |
1110 | 1101 | |
1111 | layer[0] = tc0100scn_bottomlayer( | |
1102 | layer[0] = tc0100scn_bottomlayer( | |
1112 | 1103 | layer[1] = layer[0] ^ 1; |
1113 | 1104 | layer[2] = 2; |
1114 | 1105 | |
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; | |
1118 | 1109 | |
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; | |
1123 | 1114 | |
1124 | | |
1115 | | |
1125 | 1116 | |
1126 | 1117 | screen.machine().priority_bitmap.fill(0, cliprect); |
1127 | 1118 | bitmap.fill(0, cliprect); /* wrong color? */ |
r17967 | r17968 | |
1132 | 1123 | if (rozpri == i) |
1133 | 1124 | { |
1134 | 1125 | draw_roz_layer(screen.machine(), bitmap, cliprect, 1 << drawn); |
1135 | | |
1126 | | |
1136 | 1127 | drawn++; |
1137 | 1128 | } |
1138 | 1129 | |
r17967 | r17968 | |
1140 | 1131 | { |
1141 | 1132 | if (tilepri[layer[j]] == i) |
1142 | 1133 | { |
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; | |
1145 | 1136 | drawn++; |
1146 | 1137 | } |
1147 | 1138 | } |
r17967 | r17968 | |
1154 | 1145 | |
1155 | 1146 | |
1156 | 1147 | /* Thunderfox */ |
1157 | ||
1148 | ||
1158 | 1149 | { |
1159 | taitof2_state *state = screen.machine().driver_data<taitof2_state>(); | |
1160 | 1150 | address_space &space = screen.machine().driver_data()->generic_space(); |
1161 | 1151 | int tilepri[2][3]; |
1162 | 1152 | int spritepri[4]; |
r17967 | r17968 | |
1165 | 1155 | |
1166 | 1156 | taitof2_handle_sprite_buffering(screen.machine()); |
1167 | 1157 | |
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); | |
1170 | 1160 | |
1171 | layer[0][0] = tc0100scn_bottomlayer( | |
1161 | layer[0][0] = tc0100scn_bottomlayer( | |
1172 | 1162 | layer[0][1] = layer[0][0] ^ 1; |
1173 | 1163 | 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; | |
1177 | 1167 | |
1178 | layer[1][0] = tc0100scn_bottomlayer( | |
1168 | layer[1][0] = tc0100scn_bottomlayer( | |
1179 | 1169 | layer[1][1] = layer[1][0] ^ 1; |
1180 | 1170 | 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; | |
1184 | 1174 | |
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; | |
1189 | 1179 | |
1190 | 1180 | screen.machine().priority_bitmap.fill(0, cliprect); |
1191 | 1181 | bitmap.fill(0, cliprect); /* wrong color? */ |
r17967 | r17968 | |
1205 | 1195 | if (tilepri[0][drawn[0]] < tilepri[1][drawn[1]]) |
1206 | 1196 | { |
1207 | 1197 | pick = 0; |
1208 | tc0100scn = | |
1198 | tc0100scn = | |
1209 | 1199 | } |
1210 | 1200 | else |
1211 | 1201 | { |
1212 | 1202 | pick = 1; |
1213 | tc0100scn = | |
1203 | tc0100scn = | |
1214 | 1204 | } |
1215 | 1205 | |
1216 | 1206 | tc0100scn_tilemap_draw(tc0100scn , bitmap, cliprect, layer[pick][drawn[pick]], 0, 1 << (drawn[pick] + 2 * pick)); |
r17967 | r17968 | |
1218 | 1208 | } |
1219 | 1209 | while (drawn[0] < 2) |
1220 | 1210 | { |
1221 | tc0100scn_tilemap_draw( | |
1211 | tc0100scn_tilemap_draw( | |
1222 | 1212 | drawn[0]++; |
1223 | 1213 | } |
1224 | 1214 | while (drawn[1] < 2) |
1225 | 1215 | { |
1226 | tc0100scn_tilemap_draw( | |
1216 | tc0100scn_tilemap_draw( | |
1227 | 1217 | drawn[1]++; |
1228 | 1218 | } |
1229 | 1219 | |
r17967 | r17968 | |
1251 | 1241 | |
1252 | 1242 | if (tilepri[0][2] < tilepri[1][2]) |
1253 | 1243 | { |
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); | |
1256 | 1246 | } |
1257 | 1247 | else |
1258 | 1248 | { |
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); | |
1261 | 1251 | } |
1262 | 1252 | return 0; |
1263 | 1253 | } |
r17967 | r17968 | |
1292 | 1282 | |
1293 | 1283 | ********************************************************************/ |
1294 | 1284 | |
1295 | ||
1285 | ||
1296 | 1286 | { |
1297 | taitof2_state *state = screen.machine().driver_data<taitof2_state>(); | |
1298 | 1287 | address_space &space = screen.machine().driver_data()->generic_space(); |
1299 | 1288 | UINT8 layer[5], invlayer[4]; |
1300 | 1289 | UINT16 priority; |
1301 | 1290 | |
1302 | 1291 | taitof2_handle_sprite_buffering(screen.machine()); |
1303 | 1292 | |
1304 | tc0480scp_tilemap_update( | |
1293 | tc0480scp_tilemap_update( | |
1305 | 1294 | |
1306 | priority = tc0480scp_get_bg_priority( | |
1295 | priority = tc0480scp_get_bg_priority( | |
1307 | 1296 | |
1308 | 1297 | layer[0] = (priority & 0xf000) >> 12; /* tells us which bg layer is bottom */ |
1309 | 1298 | layer[1] = (priority & 0x0f00) >> 8; |
r17967 | r17968 | |
1316 | 1305 | invlayer[layer[2]] = 2; |
1317 | 1306 | invlayer[layer[3]] = 3; |
1318 | 1307 | |
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) */ | |
1324 | 1313 | |
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; | |
1329 | 1318 | |
1330 | | |
1319 | | |
1331 | 1320 | |
1332 | 1321 | screen.machine().priority_bitmap.fill(0, cliprect); |
1333 | 1322 | bitmap.fill(0, cliprect); |
1334 | 1323 | |
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); | |
1340 | 1329 | |
1341 | 1330 | draw_sprites(screen.machine(), bitmap, cliprect, NULL, 1); |
1342 | 1331 | return 0; |
r17967 | r17968 | |
1344 | 1333 | |
1345 | 1334 | |
1346 | 1335 | /* Deadconx, Footchmp */ |
1347 | ||
1336 | ||
1348 | 1337 | { |
1349 | taitof2_state *state = screen.machine().driver_data<taitof2_state>(); | |
1350 | 1338 | address_space &space = screen.machine().driver_data()->generic_space(); |
1351 | 1339 | UINT8 layer[5]; |
1352 | 1340 | UINT8 tilepri[5]; |
r17967 | r17968 | |
1355 | 1343 | |
1356 | 1344 | taitof2_handle_sprite_buffering(screen.machine()); |
1357 | 1345 | |
1358 | tc0480scp_tilemap_update( | |
1346 | tc0480scp_tilemap_update( | |
1359 | 1347 | |
1360 | priority = tc0480scp_get_bg_priority( | |
1348 | priority = tc0480scp_get_bg_priority( | |
1361 | 1349 | |
1362 | 1350 | layer[0] = (priority & 0xf000) >> 12; /* tells us which bg layer is bottom */ |
1363 | 1351 | layer[1] = (priority & 0x0f00) >> 8; |
r17967 | r17968 | |
1365 | 1353 | layer[3] = (priority & 0x000f) >> 0; /* tells us which is top */ |
1366 | 1354 | layer[4] = 4; /* text layer always over bg layers */ |
1367 | 1355 | |
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 */ | |
1372 | 1360 | |
1373 | 1361 | /* we actually assume text layer is on top of everything anyway, but FWIW... */ |
1374 | tilepri[layer[4]] = tc0360pri_r( | |
1362 | tilepri[layer[4]] = tc0360pri_r( | |
1375 | 1363 | |
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; | |
1380 | 1368 | |
1381 | 1369 | screen.machine().priority_bitmap.fill(0, cliprect); |
1382 | 1370 | bitmap.fill(0, cliprect); |
1383 | 1371 | |
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); | |
1388 | 1376 | |
1389 | 1377 | { |
1390 | 1378 | int primasks[4] = {0,0,0,0}; |
r17967 | r17968 | |
1407 | 1395 | that the FG layer is always on top of sprites. |
1408 | 1396 | */ |
1409 | 1397 | |
1410 | tc0480scp_tilemap_draw( | |
1398 | tc0480scp_tilemap_draw( | |
1411 | 1399 | return 0; |
1412 | 1400 | } |
r17967 | r17968 | |
---|---|---|
163 | 163 | } |
164 | 164 | } |
165 | 165 | |
166 | ||
166 | ||
167 | 167 | { |
168 | gberet_state *state = screen.machine().driver_data<gberet_state>(); | |
169 | 168 | |
170 | | |
169 | | |
171 | 170 | gberet_draw_sprites(screen.machine(), bitmap, cliprect); |
172 | | |
171 | | |
173 | 172 | return 0; |
174 | 173 | } |
175 | 174 | |
r17967 | r17968 | |
218 | 217 | } |
219 | 218 | } |
220 | 219 | |
221 | ||
220 | ||
222 | 221 | { |
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); | |
225 | 223 | gberetb_draw_sprites(screen.machine(), bitmap, cliprect); |
226 | | |
224 | | |
227 | 225 | return 0; |
228 | 226 | } |
r17967 | r17968 | |
---|---|---|
288 | 288 | } |
289 | 289 | |
290 | 290 | |
291 | ||
291 | ||
292 | 292 | { |
293 | stfight_state *state = screen.machine().driver_data<stfight_state>(); | |
294 | 293 | set_pens(screen.machine()); |
295 | 294 | |
296 | 295 | screen.machine().priority_bitmap.fill(0, cliprect); |
297 | 296 | |
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); | |
301 | 300 | |
302 | 301 | /* Draw sprites (may be obscured by foreground layer) */ |
303 | if ( | |
302 | if ( | |
304 | 303 | draw_sprites(screen.machine(), bitmap,cliprect); |
305 | 304 | |
306 | | |
305 | | |
307 | 306 | return 0; |
308 | 307 | } |
r17967 | r17968 | |
---|---|---|
240 | 240 | * |
241 | 241 | *************************************/ |
242 | 242 | |
243 | ||
243 | ||
244 | 244 | { |
245 | gottlieb_state *state = screen.machine().driver_data<gottlieb_state>(); | |
246 | 245 | /* 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); | |
249 | 248 | else |
250 | 249 | bitmap.fill(screen.machine().pens[0], cliprect); |
251 | 250 | |
r17967 | r17968 | |
253 | 252 | draw_sprites(screen.machine(), bitmap, cliprect); |
254 | 253 | |
255 | 254 | /* 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); | |
258 | 257 | |
259 | 258 | return 0; |
260 | 259 | } |
r17967 | r17968 | |
---|---|---|
233 | 233 | #undef DRAW_SPRITE |
234 | 234 | |
235 | 235 | |
236 | ||
236 | ||
237 | 237 | { |
238 | ddragon_state *state = screen.machine().driver_data<ddragon_state>(); | |
239 | 238 | |
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; | |
242 | 241 | |
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); | |
245 | 244 | |
246 | | |
245 | | |
247 | 246 | draw_sprites(screen.machine(), bitmap, cliprect); |
248 | | |
247 | | |
249 | 248 | return 0; |
250 | 249 | } |
r17967 | r17968 | |
---|---|---|
45 | 45 | *code = (*code & 0x03ff) | state->m_tilebanks[(*code >> 10) & 3]; |
46 | 46 | } |
47 | 47 | |
48 | ||
48 | ||
49 | 49 | { |
50 | asterix_state *state = screen.machine().driver_data<asterix_state>(); | |
51 | 50 | static const int K053251_CI[4] = { K053251_CI0, K053251_CI2, K053251_CI3, K053251_CI4 }; |
52 | 51 | int layer[3], plane, new_colorbase; |
53 | 52 | |
54 | 53 | /* Layer offsets are different if horizontally flipped */ |
55 | if (k056832_read_register( | |
54 | if (k056832_read_register( | |
56 | 55 | { |
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); | |
61 | 60 | } |
62 | 61 | else |
63 | 62 | { |
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); | |
68 | 67 | } |
69 | 68 | |
70 | 69 | |
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); | |
75 | 74 | |
76 | 75 | // update color info and refresh tilemaps |
77 | | |
76 | | |
78 | 77 | |
79 | 78 | for (plane = 0; plane < 4; plane++) |
80 | 79 | { |
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) | |
83 | 82 | { |
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); | |
86 | 85 | } |
87 | 86 | } |
88 | 87 | |
89 | 88 | layer[0] = 0; |
90 | | |
89 | | |
91 | 90 | layer[1] = 1; |
92 | | |
91 | | |
93 | 92 | layer[2] = 3; |
94 | | |
93 | | |
95 | 94 | |
96 | konami_sortlayers3(layer, | |
95 | konami_sortlayers3(layer, | |
97 | 96 | |
98 | 97 | screen.machine().priority_bitmap.fill(0, cliprect); |
99 | 98 | bitmap.fill(0, cliprect); |
100 | 99 | |
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); | |
104 | 103 | |
105 | 104 | /* this isn't supported anymore and it is unsure if still needed; keeping here for reference |
106 | 105 | pdrawgfx_shadow_lowpri = 1; fix shadows in front of feet */ |
107 | k053245_sprites_draw( | |
106 | k053245_sprites_draw( | |
108 | 107 | |
109 | k056832_tilemap_draw( | |
108 | k056832_tilemap_draw( | |
110 | 109 | return 0; |
111 | 110 | } |
r17967 | r17968 | |
---|---|---|
577 | 577 | } |
578 | 578 | |
579 | 579 | |
580 | ||
580 | ||
581 | 581 | { |
582 | tubep_state *state = screen.machine().driver_data<tubep_state>(); | |
583 | int DISP_ = state->m_DISP^1; | |
582 | int DISP_ = m_DISP^1; | |
584 | 583 | |
585 | 584 | pen_t pen_base = 32; //change it later |
586 | 585 | |
587 | 586 | UINT32 v; |
588 | 587 | UINT8 *text_gfx_base = screen.machine().root_device().memregion("gfx1")->base(); |
589 | UINT8 *romBxx = | |
588 | UINT8 *romBxx = | |
590 | 589 | |
591 | 590 | /* logerror(" update: from DISP=%i y_min=%3i y_max=%3i\n", DISP_, cliprect.min_y, cliprect.max_y+1); */ |
592 | 591 | |
r17967 | r17968 | |
602 | 601 | |
603 | 602 | sp_data2 = sp_data1; |
604 | 603 | sp_data1 = sp_data0; |
605 | sp_data0 = | |
604 | sp_data0 = | |
606 | 605 | |
607 | 606 | text_offs = ((v >> 3) << 6) | ((h >> 3) << 1); |
608 | text_code = | |
607 | text_code = | |
609 | 608 | text_gfx_data = text_gfx_base[(text_code << 3) | (v & 0x07)]; |
610 | 609 | |
611 | 610 | if (text_gfx_data & (0x80 >> (h & 0x07))) |
612 | bitmap.pix16(v, h) = ( | |
611 | bitmap.pix16(v, h) = ( | |
613 | 612 | else |
614 | 613 | { |
615 | 614 | UINT32 bg_data; |
r17967 | r17968 | |
623 | 622 | UINT8 romB_data_h = romBxx[ 0x4000 + 0x4000*rom_select + romB_addr ]; |
624 | 623 | /* romB_data_h = output of LS374 @B3 or @B4 */ |
625 | 624 | |
626 | UINT32 VR_addr = ((romB_data_h + | |
625 | UINT32 VR_addr = ((romB_data_h + | |
627 | 626 | /* VR_addr = output of LS157s @B1 and @B6 */ |
628 | 627 | |
629 | UINT8 xor_logic = (((h^v)&0x80)>>7) ^ ( | |
628 | UINT8 xor_logic = (((h^v)&0x80)>>7) ^ ( | |
630 | 629 | |
631 | 630 | /* read from ROMs: B1/2 */ |
632 | 631 | UINT8 romB_data_l = romBxx[ romB_addr ] ^ (xor_logic?0xff:0x00); |
r17967 | r17968 | |
634 | 633 | |
635 | 634 | UINT8 ls157_b11 = (romB_data_l >> ((rom_select==0)?4:0))&0x0f; |
636 | 635 | |
637 | UINT8 ls283_b12 = (ls157_b11 + | |
636 | UINT8 ls283_b12 = (ls157_b11 + | |
638 | 637 | |
639 | 638 | VR_addr |= (ls283_b12>>1); |
640 | 639 | |
641 | bg_data = | |
640 | bg_data = | |
642 | 641 | |
643 | 642 | romB_data_h>>=2; |
644 | 643 | |
r17967 | r17968 | |
648 | 647 | sp_data = sp_data1; |
649 | 648 | |
650 | 649 | if (sp_data != 0x0f) |
651 | bg_data = | |
650 | bg_data = | |
652 | 651 | |
653 | 652 | bitmap.pix16(v, h) = pen_base + bg_data*64 + romB_data_h; |
654 | 653 | } |
r17967 | r17968 | |
734 | 733 | } |
735 | 734 | |
736 | 735 | |
737 | ||
736 | ||
738 | 737 | { |
739 | tubep_state *state = screen.machine().driver_data<tubep_state>(); | |
740 | int DISP_ = state->m_DISP^1; | |
738 | int DISP_ = m_DISP^1; | |
741 | 739 | |
742 | 740 | UINT32 v; |
743 | 741 | UINT8 *text_gfx_base = screen.machine().root_device().memregion("gfx1")->base(); |
744 | UINT8 *rom13D = | |
742 | UINT8 *rom13D = | |
745 | 743 | UINT8 *rom11BD = rom13D+0x1000; |
746 | 744 | UINT8 *rom19C = rom13D+0x5000; |
747 | 745 | |
r17967 | r17968 | |
757 | 755 | UINT8 pal14h4_pin18; |
758 | 756 | UINT8 pal14h4_pin13; |
759 | 757 | |
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); | |
762 | 760 | |
763 | addr = (v>>3) | (( | |
761 | addr = (v>>3) | (( | |
764 | 762 | pal14h4_pin13 = (rom19C[addr] >> ((v&7)^7) ) &1; |
765 | 763 | pal14h4_pin19 = (ram_data>>13) & 1; |
766 | 764 | |
r17967 | r17968 | |
772 | 770 | |
773 | 771 | sp_data2 = sp_data1; |
774 | 772 | sp_data1 = sp_data0; |
775 | sp_data0 = | |
773 | sp_data0 = | |
776 | 774 | |
777 | 775 | text_offs = ((v >> 3) << 6) | ((h >> 3) << 1); |
778 | text_code = | |
776 | text_code = | |
779 | 777 | text_gfx_data = text_gfx_base[(text_code << 3) | (v & 0x07)]; |
780 | 778 | |
781 | 779 | if (text_gfx_data & (0x80 >> (h & 0x07))) |
782 | bitmap.pix16(v, h) = 0x10 | ( | |
780 | bitmap.pix16(v, h) = 0x10 | ( | |
783 | 781 | else |
784 | 782 | { |
785 | 783 | UINT32 sp_data; |
r17967 | r17968 | |
814 | 812 | else |
815 | 813 | bg_data = (rom11_data>>4) & 0x0f; |
816 | 814 | |
817 | addr = (h>>3) | ( | |
815 | addr = (h>>3) | ( | |
818 | 816 | pal14h4_pin18 = (rom19C[addr] >> ((h&7)^7) ) &1; |
819 | 817 | |
820 | 818 | /* |
r17967 | r17968 | |
---|---|---|
356 | 356 | * |
357 | 357 | *************************************/ |
358 | 358 | |
359 | ||
359 | ||
360 | 360 | { |
361 | exidy_state *state = screen.machine().driver_data<exidy_state>(); | |
362 | 361 | /* refresh the colors from the palette (static or dynamic) */ |
363 | 362 | set_colors(screen.machine()); |
364 | 363 | |
365 | 364 | /* update the background and draw it */ |
366 | 365 | draw_background(screen.machine()); |
367 | copybitmap(bitmap, | |
366 | copybitmap(bitmap, | |
368 | 367 | |
369 | 368 | /* draw the sprites */ |
370 | 369 | draw_sprites(screen.machine(), bitmap, cliprect); |
r17967 | r17968 | |
---|---|---|
801 | 801 | |
802 | 802 | ***************************************************************************/ |
803 | 803 | |
804 | ||
804 | ||
805 | 805 | { |
806 | homedata_state *state = screen.machine().driver_data<homedata_state>(); | |
807 | 806 | int flags,width; |
808 | 807 | |
809 | 808 | /* blank screen */ |
810 | if ( | |
809 | if ( | |
811 | 810 | { |
812 | 811 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
813 | 812 | return 0; |
814 | 813 | } |
815 | 814 | |
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) | |
818 | 817 | { |
819 | | |
818 | | |
820 | 819 | screen.machine().tilemap().mark_all_dirty(); |
821 | 820 | } |
822 | 821 | |
823 | switch ( | |
822 | switch ( | |
824 | 823 | { |
825 | 824 | case 0xb7: width = 54; break; // mjclinic |
826 | 825 | case 0xae: width = 52; break; // mrokumei |
827 | 826 | case 0x9f: width = 49; break; // hourouki, mhgaiden, mjhokite |
828 | 827 | case 0x96: width = 49; break; // mjclinic |
829 | 828 | default: |
830 | if ( | |
829 | if ( | |
831 | 830 | 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]); | |
836 | 835 | width = 54; |
837 | 836 | break; |
838 | 837 | } |
839 | 838 | screen.set_visible_area(0*8, width*8-1, 2*8, 30*8-1); |
840 | 839 | |
841 | | |
840 | | |
842 | 841 | |
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); | |
845 | 844 | return 0; |
846 | 845 | } |
847 | 846 | |
848 | 847 | #ifdef UNUSED_FUNCTION |
849 | ||
848 | ||
850 | 849 | { |
851 | homedata_state *state = screen.machine().driver_data<homedata_state>(); | |
852 | 850 | int flags; |
853 | 851 | static const int pritable[8][4] = |
854 | 852 | { |
r17967 | r17968 | |
864 | 862 | int pri, i; |
865 | 863 | |
866 | 864 | |
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) | |
869 | 867 | { |
870 | | |
868 | | |
871 | 869 | screen.machine().tilemap().mark_all_dirty(); |
872 | 870 | } |
873 | 871 | |
874 | 872 | |
875 | 873 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
876 | 874 | |
877 | pri = ( | |
875 | pri = ( | |
878 | 876 | for (i = 0; i < 4; i++) |
879 | | |
877 | | |
880 | 878 | return 0; |
881 | 879 | } |
882 | 880 | #endif |
883 | 881 | |
884 | ||
882 | ||
885 | 883 | { |
886 | homedata_state *state = screen.machine().driver_data<homedata_state>(); | |
887 | 884 | int flags; |
888 | 885 | static const int pritable[2][8][4] = /* table of priorities derived from the PROM */ |
889 | 886 | { |
r17967 | r17968 | |
911 | 908 | |
912 | 909 | int pri, i; |
913 | 910 | |
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) | |
916 | 913 | { |
917 | | |
914 | | |
918 | 915 | screen.machine().tilemap().mark_all_dirty(); |
919 | 916 | } |
920 | 917 | |
921 | 918 | |
922 | 919 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
923 | 920 | |
924 | pri = ( | |
921 | pri = ( | |
925 | 922 | for (i = 0; i < 4; i++) |
926 | | |
923 | | |
927 | 924 | return 0; |
928 | 925 | } |
929 | 926 | |
930 | 927 | |
931 | ||
928 | ||
932 | 929 | { |
933 | homedata_state *state = screen.machine().driver_data<homedata_state>(); | |
934 | 930 | int flags, scroll_low, scroll_high; |
935 | 931 | |
936 | 932 | |
937 | 933 | /* blank screen */ |
938 | if ( | |
934 | if ( | |
939 | 935 | { |
940 | 936 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
941 | 937 | return 0; |
942 | 938 | } |
943 | 939 | |
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) | |
946 | 942 | { |
947 | | |
943 | | |
948 | 944 | screen.machine().tilemap().mark_all_dirty(); |
949 | 945 | } |
950 | 946 | |
r17967 | r17968 | |
972 | 968 | blanked = c1 c0 ff -- |
973 | 969 | */ |
974 | 970 | |
975 | if ( | |
971 | if ( | |
976 | 972 | { |
977 | if ( | |
973 | if ( | |
978 | 974 | { |
979 | 975 | /* kludge for mjkinjas */ |
980 | 976 | screen.set_visible_area(0*8, 42*8-1, 2*8, 30*8-1); |
r17967 | r17968 | |
982 | 978 | } |
983 | 979 | else |
984 | 980 | { |
985 | if ( | |
981 | if ( | |
986 | 982 | screen.set_visible_area(0*8, 33*8-1, 2*8, 30*8-1); |
987 | 983 | else |
988 | 984 | screen.set_visible_area(0*8, 35*8-1, 2*8, 30*8-1); |
989 | scroll_low = (11 - ( | |
985 | scroll_low = (11 - ( | |
990 | 986 | } |
991 | 987 | } |
992 | 988 | else |
993 | 989 | { |
994 | if ( | |
990 | if ( | |
995 | 991 | screen.set_visible_area(0*8, 51*8-1, 2*8, 30*8-1); |
996 | 992 | else |
997 | 993 | screen.set_visible_area(0*8, 54*8-1, 2*8, 30*8-1); |
998 | scroll_low = 7 - ( | |
994 | scroll_low = 7 - ( | |
999 | 995 | } |
1000 | scroll_high = | |
996 | scroll_high = | |
1001 | 997 | |
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); | |
1004 | 1000 | |
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); | |
1007 | 1003 | return 0; |
1008 | 1004 | } |
1009 | 1005 | |
1010 | ||
1006 | ||
1011 | 1007 | { |
1012 | 1008 | return 0; |
1013 | 1009 | } |
1014 | 1010 | |
1015 | 1011 | |
1016 | ||
1012 | void | |
1017 | 1013 | { |
1018 | 1014 | // rising edge |
1019 | if ( | |
1015 | if (st | |
1020 | 1016 | { |
1021 | homedata_state *state = screen.machine().driver_data<homedata_state>(); | |
1022 | state->m_visible_page ^= 1; | |
1017 | m_visible_page ^= 1; | |
1023 | 1018 | } |
1024 | 1019 | } |
r17967 | r17968 | |
---|---|---|
130 | 130 | } |
131 | 131 | |
132 | 132 | |
133 | ||
133 | ||
134 | 134 | { |
135 | xxmissio_state *state = screen.machine().driver_data<xxmissio_state>(); | |
136 | 135 | screen.machine().tilemap().mark_all_dirty(); |
137 | screen.machine().tilemap().set_flip_all( | |
136 | screen.machine().tilemap().set_flip_all( | |
138 | 137 | |
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); | |
141 | 140 | |
142 | | |
141 | | |
143 | 142 | draw_sprites(bitmap, cliprect, screen.machine().gfx[1]); |
144 | | |
143 | | |
145 | 144 | |
146 | 145 | return 0; |
147 | 146 | } |
r17967 | r17968 | |
---|---|---|
145 | 145 | m_tilemap2 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(mugsmash_state::get_mugsmash_tile_info2),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); |
146 | 146 | } |
147 | 147 | |
148 | ||
148 | ||
149 | 149 | { |
150 | mugsmash_state *state = screen.machine().driver_data<mugsmash_state>(); | |
151 | 150 | |
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); | |
154 | 153 | draw_sprites(screen.machine(), bitmap, cliprect); |
155 | 154 | return 0; |
156 | 155 | } |
r17967 | r17968 | |
---|---|---|
65 | 65 | } |
66 | 66 | } |
67 | 67 | |
68 | ||
68 | ||
69 | 69 | { |
70 | // | |
70 | // | |
71 | 71 | screen.machine().device<deco_bac06_device>("tilegen1")->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00); |
72 | 72 | draw_sprites(screen.machine(), bitmap, cliprect); |
73 | 73 | return 0; |
74 | 74 | } |
75 | 75 | |
76 | ||
76 | ||
77 | 77 | { |
78 | 78 | // the bootleg doesn't properly set the tilemap registers, because it's on non-original hardware, which probably doesn't have the flexible tilemaps. |
79 | 79 | screen.machine().device<deco_bac06_device>("tilegen1")->deco_bac06_pf_draw_bootleg(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0, 2); |
r17967 | r17968 | |
---|---|---|
1430 | 1430 | |
1431 | 1431 | #define IMPORTANT_DIRTY_TILEFLAG_MASK (0x0600) |
1432 | 1432 | |
1433 | ||
1433 | ||
1434 | 1434 | { |
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; | |
1439 | 1438 | UINT32 animmask; |
1440 | 1439 | UINT32 animbits; |
1441 | 1440 | UINT16 tileflags0, tileflags1; |
r17967 | r17968 | |
1455 | 1454 | 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 |
1456 | 1455 | screen.machine().priority_bitmap.fill(0x00, cliprect); |
1457 | 1456 | |
1458 | if ( | |
1457 | if ( | |
1459 | 1458 | return 0; |
1460 | 1459 | |
1461 | 1460 | animmask = hng64_videoregs[0x0b]; |
r17967 | r17968 | |
1466 | 1465 | tileflags3 = hng64_videoregs[0x03]&0xffff; |
1467 | 1466 | |
1468 | 1467 | /* if the auto-animation mask or bits have changed search for tiles using them and mark as dirty */ |
1469 | if (( | |
1468 | if (( | |
1470 | 1469 | { |
1471 | 1470 | int tile_index; |
1472 | 1471 | for (tile_index=0;tile_index<128*128;tile_index++) |
1473 | 1472 | { |
1474 | 1473 | if (hng64_videoram[tile_index+(0x00000/4)]&0x200000) |
1475 | 1474 | { |
1476 | hng64_mark_tile_dirty( | |
1475 | hng64_mark_tile_dirty( | |
1477 | 1476 | } |
1478 | 1477 | if (hng64_videoram[tile_index+(0x10000/4)]&0x200000) |
1479 | 1478 | { |
1480 | hng64_mark_tile_dirty( | |
1479 | hng64_mark_tile_dirty( | |
1481 | 1480 | } |
1482 | 1481 | if (hng64_videoram[tile_index+(0x20000/4)]&0x200000) |
1483 | 1482 | { |
1484 | hng64_mark_tile_dirty( | |
1483 | hng64_mark_tile_dirty( | |
1485 | 1484 | } |
1486 | 1485 | if (hng64_videoram[tile_index+(0x30000/4)]&0x200000) |
1487 | 1486 | { |
1488 | hng64_mark_tile_dirty( | |
1487 | hng64_mark_tile_dirty( | |
1489 | 1488 | } |
1490 | 1489 | } |
1491 | 1490 | |
1492 | state->m_old_animmask = animmask; | |
1493 | state->m_old_animbits = animbits; | |
1491 | m_old_animmask = animmask; | |
1492 | m_old_animbits = animbits; | |
1494 | 1493 | } |
1495 | 1494 | |
1496 | if (( | |
1495 | if (( | |
1497 | 1496 | { |
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; | |
1500 | 1499 | } |
1501 | 1500 | |
1502 | if (( | |
1501 | if (( | |
1503 | 1502 | { |
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; | |
1506 | 1505 | } |
1507 | 1506 | |
1508 | if (( | |
1507 | if (( | |
1509 | 1508 | { |
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; | |
1512 | 1511 | } |
1513 | 1512 | |
1514 | if (( | |
1513 | if (( | |
1515 | 1514 | { |
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; | |
1518 | 1517 | } |
1519 | 1518 | |
1520 | 1519 | // 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); | |
1525 | 1524 | |
1526 | 1525 | hng64_drawtilemap(screen.machine(),bitmap,cliprect, 3); |
1527 | 1526 | hng64_drawtilemap(screen.machine(),bitmap,cliprect, 2); |
r17967 | r17968 | |
1535 | 1534 | // Blit the color buffer into the primary bitmap |
1536 | 1535 | for (y = cliprect.min_y; y <= cliprect.max_y; y++) |
1537 | 1536 | { |
1538 | UINT32 *src = & | |
1537 | UINT32 *src = & | |
1539 | 1538 | UINT32 *dst = &bitmap.pix32(y, cliprect.min_x); |
1540 | 1539 | |
1541 | 1540 | for (x = cliprect.min_x; x <= cliprect.max_x; x++) |
r17967 | r17968 | |
1556 | 1555 | transition_control(screen.machine(), bitmap, cliprect); |
1557 | 1556 | |
1558 | 1557 | if (0) |
1559 | popmessage("%08x %08x %08x %08x %08x", | |
1558 | popmessage("%08x %08x %08x %08x %08x", | |
1560 | 1559 | |
1561 | 1560 | if (0) |
1562 | 1561 | popmessage("%08x %08x TR(%04x %04x %04x %04x) SB(%04x %04x %04x %04x) %08x %08x %08x %08x %08x AA(%08x %08x) %08x %08x", |
r17967 | r17968 | |
1582 | 1581 | |
1583 | 1582 | if (0) |
1584 | 1583 | 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]); | |
1588 | 1587 | |
1589 | 1588 | if (0) |
1590 | 1589 | 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", |
r17967 | r17968 | |
1615 | 1614 | |
1616 | 1615 | if ( screen.machine().input().code_pressed_once(KEYCODE_T) ) |
1617 | 1616 | { |
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); | |
1620 | 1619 | } |
1621 | 1620 | if ( screen.machine().input().code_pressed_once(KEYCODE_Y) ) |
1622 | 1621 | { |
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); | |
1625 | 1624 | } |
1626 | 1625 | if ( screen.machine().input().code_pressed_once(KEYCODE_U) ) |
1627 | 1626 | { |
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); | |
1630 | 1629 | } |
1631 | 1630 | if ( screen.machine().input().code_pressed_once(KEYCODE_I) ) |
1632 | 1631 | { |
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); | |
1635 | 1634 | } |
1636 | 1635 | |
1637 | 1636 | return 0; |
1638 | 1637 | } |
1639 | 1638 | |
1640 | ||
1639 | void | |
1641 | 1640 | { |
1642 | 1641 | // rising edge |
1643 | if ( | |
1642 | if (st | |
1644 | 1643 | clear3d(screen.machine()); |
1645 | 1644 | } |
1646 | 1645 |
r17967 | r17968 | |
---|---|---|
228 | 228 | } |
229 | 229 | |
230 | 230 | |
231 | ||
231 | ||
232 | 232 | { |
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); | |
236 | 235 | else |
237 | 236 | bitmap.fill(RGB_BLACK, cliprect); |
238 | 237 |
r17967 | r17968 | |
---|---|---|
100 | 100 | } |
101 | 101 | } |
102 | 102 | |
103 | ||
103 | ||
104 | 104 | { |
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); | |
108 | 107 | draw_sprites(screen.machine(), bitmap, cliprect); |
109 | 108 | return 0; |
110 | 109 | } |
r17967 | r17968 | |
---|---|---|
240 | 240 | |
241 | 241 | |
242 | 242 | |
243 | ||
243 | ||
244 | 244 | { |
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); | |
247 | 246 | draw_sprites(screen.machine(), bitmap,cliprect); |
248 | 247 | |
249 | 248 | /* the fg layer just selects the upper palette bank on underlying pixels */ |
r17967 | r17968 | |
251 | 250 | int sx = cliprect.min_x; |
252 | 251 | int sy = cliprect.min_y; |
253 | 252 | |
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(); | |
256 | 255 | |
257 | 256 | while( sy <= cliprect.max_y ) |
258 | 257 | { |
259 | 258 | int x = sx; |
260 | int y = (sy + | |
259 | int y = (sy + | |
261 | 260 | |
262 | 261 | UINT16 *dest = &bitmap.pix16(sy, sx); |
263 | 262 | while( x <= cliprect.max_x ) |
r17967 | r17968 | |
275 | 274 | return 0; |
276 | 275 | } |
277 | 276 | |
278 | ||
277 | ||
279 | 278 | { |
280 | gladiatr_state *state = screen.machine().driver_data<gladiatr_state>(); | |
281 | if (state->m_video_attributes & 0x20) | |
279 | if (m_video_attributes & 0x20) | |
282 | 280 | { |
283 | 281 | int scroll; |
284 | 282 | |
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)); | |
289 | 287 | |
290 | 288 | // 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); | |
293 | 291 | |
294 | | |
292 | | |
295 | 293 | draw_sprites(screen.machine(), bitmap,cliprect); |
296 | | |
294 | | |
297 | 295 | } |
298 | 296 | else |
299 | 297 | bitmap.fill(get_black_pen(screen.machine()), cliprect ); |
r17967 | r17968 | |
---|---|---|
378 | 378 | SWAP(1,2) |
379 | 379 | } |
380 | 380 | |
381 | ||
381 | ||
382 | 382 | { |
383 | macrossp_state *state = screen.machine().driver_data<macrossp_state>(); | |
384 | 383 | int layers[3],layerpri[3]; |
385 | 384 | |
386 | 385 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
387 | 386 | |
388 | 387 | layers[0] = 0; |
389 | layerpri[0] = ( | |
388 | layerpri[0] = ( | |
390 | 389 | layers[1] = 1; |
391 | layerpri[1] = ( | |
390 | layerpri[1] = ( | |
392 | 391 | layers[2] = 2; |
393 | layerpri[2] = ( | |
392 | layerpri[2] = ( | |
394 | 393 | |
395 | 394 | sortlayers(layers, layerpri); |
396 | 395 | |
r17967 | r17968 | |
401 | 400 | draw_layer(screen.machine(), bitmap, cliprect, layers[2]); |
402 | 401 | draw_sprites(screen.machine(), bitmap, cliprect, 2); |
403 | 402 | draw_sprites(screen.machine(), bitmap, cliprect, 3); |
404 | | |
403 | | |
405 | 404 | |
406 | 405 | #if 0 |
407 | 406 | popmessage ("scra - %08x %08x %08x\nscrb - %08x %08x %08x\nscrc - %08x %08x %08x", |
408 | state->m_scra_videoregs[0]&0xffff33ff, // yyyyxxxx | |
409 | state->m_scra_videoregs[1], // ??? more scrolling? | |
410 | state->m_scra_videoregs[2], // 08 - 0b | |
407 | m_scra_videoregs[0]&0xffff33ff, // yyyyxxxx | |
408 | m_scra_videoregs[1], // ??? more scrolling? | |
409 | m_scra_videoregs[2], // 08 - 0b | |
411 | 410 | |
412 | state->m_scrb_videoregs[0]&0xffff33ff, // 00 - 03 | |
413 | state->m_scrb_videoregs[1], // 04 - 07 | |
414 | state->m_scrb_videoregs[2], // 08 - 0b | |
411 | m_scrb_videoregs[0]&0xffff33ff, // 00 - 03 | |
412 | m_scrb_videoregs[1], // 04 - 07 | |
413 | m_scrb_videoregs[2], // 08 - 0b | |
415 | 414 | |
416 | state->m_scrc_videoregs[0]&0xffff33ff, // 00 - 03 | |
417 | state->m_scrc_videoregs[1], // 04 - 07 | |
418 | state->m_scrc_videoregs[2]);// 08 - 0b | |
415 | m_scrc_videoregs[0]&0xffff33ff, // 00 - 03 | |
416 | m_scrc_videoregs[1], // 04 - 07 | |
417 | m_scrc_videoregs[2]);// 08 - 0b | |
419 | 418 | #endif |
420 | 419 | return 0; |
421 | 420 | } |
422 | 421 | |
423 | ||
422 | void | |
424 | 423 | { |
425 | 424 | // rising edge |
426 | if ( | |
425 | if (st | |
427 | 426 | { |
428 | macrossp_state *state = screen.machine().driver_data<macrossp_state>(); | |
429 | 427 | |
430 | 428 | /* 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()); | |
433 | 431 | } |
434 | 432 | } |
r17967 | r17968 | |
---|---|---|
62 | 62 | } |
63 | 63 | } |
64 | 64 | |
65 | ||
65 | ||
66 | 66 | { |
67 | moo_state *state = screen.machine().driver_data<moo_state>(); | |
68 | 67 | static const int K053251_CI[4] = { K053251_CI1, K053251_CI2, K053251_CI3, K053251_CI4 }; |
69 | 68 | int layers[3]; |
70 | 69 | int new_colorbase, plane, dirty, alpha; |
71 | 70 | |
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; | |
74 | 73 | |
75 | if (k056832_get_layer_association( | |
74 | if (k056832_get_layer_association( | |
76 | 75 | { |
77 | 76 | for (plane = 1; plane < 4; plane++) |
78 | 77 | { |
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) | |
81 | 80 | { |
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); | |
84 | 83 | } |
85 | 84 | } |
86 | 85 | } |
r17967 | r17968 | |
88 | 87 | { |
89 | 88 | for (dirty = 0, plane = 1; plane < 4; plane++) |
90 | 89 | { |
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) | |
93 | 92 | { |
94 | | |
93 | | |
95 | 94 | dirty = 1; |
96 | 95 | } |
97 | 96 | } |
98 | 97 | if (dirty) |
99 | k056832_mark_all_tmaps_dirty( | |
98 | k056832_mark_all_tmaps_dirty( | |
100 | 99 | } |
101 | 100 | |
102 | 101 | layers[0] = 1; |
103 | | |
102 | | |
104 | 103 | layers[1] = 2; |
105 | | |
104 | | |
106 | 105 | layers[2] = 3; |
107 | | |
106 | | |
108 | 107 | |
109 | konami_sortlayers3(layers, | |
108 | konami_sortlayers3(layers, | |
110 | 109 | |
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); | |
113 | 112 | |
114 | 113 | screen.machine().priority_bitmap.fill(0, cliprect); |
115 | 114 | |
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); | |
118 | 117 | |
119 | k056832_tilemap_draw( | |
118 | k056832_tilemap_draw( | |
120 | 119 | |
121 | 120 | // Enabling alpha improves fog and fading in Moo but causes other things to disappear. |
122 | 121 | // There is probably a control bit somewhere to turn off alpha blending. |
123 | | |
122 | | |
124 | 123 | |
125 | alpha = ( | |
124 | alpha = ( | |
126 | 125 | |
127 | 126 | if (alpha > 0) |
128 | k056832_tilemap_draw( | |
127 | k056832_tilemap_draw( | |
129 | 128 | |
130 | k053247_sprites_draw( | |
129 | k053247_sprites_draw( | |
131 | 130 | |
132 | k056832_tilemap_draw( | |
131 | k056832_tilemap_draw( | |
133 | 132 | return 0; |
134 | 133 | } |
r17967 | r17968 | |
---|---|---|
118 | 118 | } |
119 | 119 | } |
120 | 120 | |
121 | ||
121 | ||
122 | 122 | { |
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); | |
126 | 125 | |
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); | |
131 | 130 | return 0; |
132 | 131 | } |
r17967 | r17968 | |
---|---|---|
275 | 275 | } |
276 | 276 | |
277 | 277 | |
278 | ||
278 | ||
279 | 279 | { |
280 | taitol_state *state = screen.machine().driver_data<taitol_state>(); | |
281 | 280 | int dx, dy; |
282 | 281 | |
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) | |
285 | 284 | dx = ((dx & 0xfffc) | ((dx - 3) & 0x0003)) ^ 0xf; |
286 | dy = | |
285 | dy = | |
287 | 286 | |
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); | |
290 | 289 | |
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) | |
293 | 292 | dx = ((dx & 0xfffc) | ((dx - 3) & 0x0003)) ^ 0xf; |
294 | dy = | |
293 | dy = | |
295 | 294 | |
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); | |
298 | 297 | |
299 | if ( | |
298 | if ( | |
300 | 299 | { |
301 | 300 | screen.machine().priority_bitmap.fill(0, cliprect); |
302 | 301 | |
303 | | |
302 | | |
304 | 303 | |
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); | |
307 | 306 | else /* split priority */ |
308 | | |
307 | | |
309 | 308 | |
310 | 309 | draw_sprites(screen.machine(), bitmap, cliprect); |
311 | 310 | |
312 | | |
311 | | |
313 | 312 | } |
314 | 313 | else |
315 | 314 | bitmap.fill(screen.machine().pens[0], cliprect); |
r17967 | r17968 | |
318 | 317 | |
319 | 318 | |
320 | 319 | |
321 | ||
320 | void | |
322 | 321 | { |
323 | 322 | // rising edge |
324 | if ( | |
323 | if (st | |
325 | 324 | { |
326 | taitol_state *state = screen.machine().driver_data<taitol_state>(); | |
327 | UINT8 *spriteram = state->m_rambanks + 0xb000; | |
325 | UINT8 *spriteram = m_rambanks + 0xb000; | |
328 | 326 | |
329 | memcpy( | |
327 | memcpy( | |
330 | 328 | } |
331 | 329 | } |
r17967 | r17968 | |
---|---|---|
148 | 148 | } |
149 | 149 | |
150 | 150 | |
151 | ||
151 | ||
152 | 152 | { |
153 | gyruss_state *state = screen.machine().driver_data<gyruss_state>(); | |
154 | 153 | |
155 | 154 | if (cliprect.min_y == screen.visible_area().min_y) |
156 | 155 | { |
157 | 156 | screen.machine().tilemap().mark_all_dirty(); |
158 | screen.machine().tilemap().set_flip_all((* | |
157 | screen.machine().tilemap().set_flip_all((* | |
159 | 158 | } |
160 | 159 | |
161 | | |
160 | | |
162 | 161 | draw_sprites(screen.machine(), bitmap, cliprect, screen.machine().gfx); |
163 | | |
162 | | |
164 | 163 | |
165 | 164 | return 0; |
166 | 165 | } |
r17967 | r17968 | |
---|---|---|
195 | 195 | SCREEN REFRESH |
196 | 196 | **************************************************************/ |
197 | 197 | |
198 | ||
198 | ||
199 | 199 | { |
200 | groundfx_state *state = screen.machine().driver_data<groundfx_state>(); | |
201 | 200 | address_space &space = screen.machine().driver_data()->generic_space(); |
202 | 201 | device_t *tc0100scn = screen.machine().device("tc0100scn"); |
203 | 202 | device_t *tc0480scp = screen.machine().device("tc0480scp"); |
r17967 | r17968 | |
252 | 251 | //tc0100scn_tilemap_draw(tc0100scn, bitmap, cliprect, 0, pivlayer[2], 0, 0); |
253 | 252 | |
254 | 253 | if (tc0480scp_long_r(tc0480scp, space, 0x20 / 4, 0xffffffff) != 0x240866) /* Stupid hack for start of race */ |
255 | tc0480scp_tilemap_draw(tc0480scp, bitmap, | |
254 | tc0480scp_tilemap_draw(tc0480scp, bitmap, | |
256 | 255 | draw_sprites(screen.machine(), bitmap, cliprect, 1, 44, -574); |
257 | 256 | } |
258 | 257 | else |
r17967 | r17968 | |
---|---|---|
151 | 151 | |
152 | 152 | ***************************************************************************/ |
153 | 153 | |
154 | ||
154 | ||
155 | 155 | { |
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; | |
158 | 157 | int i, xoffs; |
159 | 158 | |
160 | 159 | finalclip0 &= cliprect; |
r17967 | r17968 | |
164 | 163 | |
165 | 164 | /* set scroll registers */ |
166 | 165 | address_space &space = screen.machine().driver_data()->generic_space(); |
167 | xoffs = k007121_ctrlram_r( | |
166 | xoffs = k007121_ctrlram_r( | |
168 | 167 | for (i = 0; i < 32; i++) |
169 | | |
168 | | |
170 | 169 | |
171 | | |
170 | | |
172 | 171 | |
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); | |
176 | 175 | return 0; |
177 | 176 | } |
r17967 | r17968 | |
---|---|---|
133 | 133 | * |
134 | 134 | *************************************/ |
135 | 135 | |
136 | ||
136 | ||
137 | 137 | { |
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); | |
149 | 148 | rgb_t pens[8]; |
150 | 149 | int x, y; |
151 | 150 | |
r17967 | r17968 | |
164 | 163 | UINT8 effya = scrolly + (y ^ xora); |
165 | 164 | UINT8 effxb = (x / 2) ^ xorb; |
166 | 165 | 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; | |
169 | 168 | UINT8 finalpens; |
170 | 169 | |
171 | 170 | /* for each layer, contribute bits if (a) enabled, and (b) either has priority or the opposite plane is 0 */ |
r17967 | r17968 | |
---|---|---|
140 | 140 | } |
141 | 141 | |
142 | 142 | |
143 | ||
143 | ||
144 | 144 | { |
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); | |
147 | 146 | draw_sprites(screen.machine(),bitmap,cliprect); |
148 | | |
147 | | |
149 | 148 | return 0; |
150 | 149 | } |
151 | 150 |
r17967 | r17968 | |
---|---|---|
259 | 259 | } |
260 | 260 | } |
261 | 261 | |
262 | ||
262 | ||
263 | 263 | { |
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); | |
266 | 265 | draw_sprites(screen.machine(),bitmap,cliprect); |
267 | | |
266 | | |
268 | 267 | return 0; |
269 | 268 | } |
r17967 | r17968 | |
---|---|---|
531 | 531 | } |
532 | 532 | |
533 | 533 | |
534 | ||
534 | ||
535 | 535 | { |
536 | 536 | screen.machine().priority_bitmap.fill(0, cliprect); |
537 | 537 | bitmap.fill(0, cliprect); |
r17967 | r17968 | |
541 | 541 | draw_sprites(screen.machine(), bitmap, cliprect); |
542 | 542 | |
543 | 543 | /* Flipscreen appears hardwired to the dipswitch - strange */ |
544 | m92_state *state = screen.machine().driver_data<m92_state>(); | |
545 | 544 | if (screen.machine().root_device().ioport("DSW")->read() & 0x100) |
546 | | |
545 | | |
547 | 546 | else |
548 | | |
547 | | |
549 | 548 | return 0; |
550 | 549 | } |
551 | 550 | |
552 | ||
551 | ||
553 | 552 | { |
554 | 553 | screen.machine().priority_bitmap.fill(0, cliprect); |
555 | 554 | bitmap.fill(0, cliprect); |
r17967 | r17968 | |
559 | 558 | ppan_draw_sprites(screen.machine(), bitmap, cliprect); |
560 | 559 | |
561 | 560 | /* Flipscreen appears hardwired to the dipswitch - strange */ |
562 | m92_state *state = screen.machine().driver_data<m92_state>(); | |
563 | 561 | if (screen.machine().root_device().ioport("DSW")->read() & 0x100) |
564 | | |
562 | | |
565 | 563 | else |
566 | | |
564 | | |
567 | 565 | return 0; |
568 | 566 | } |
r17967 | r17968 | |
---|---|---|
300 | 300 | * |
301 | 301 | *************************************/ |
302 | 302 | |
303 | ||
303 | ||
304 | 304 | { |
305 | m58_state *state = screen.machine().driver_data<m58_state>(); | |
306 | 305 | |
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); | |
309 | 308 | |
310 | | |
309 | | |
311 | 310 | draw_sprites(screen.machine(), bitmap, cliprect); |
312 | 311 | draw_panel(screen.machine(), bitmap, cliprect); |
313 | 312 | return 0; |
r17967 | r17968 | |
---|---|---|
52 | 52 | |
53 | 53 | ***************************************************************************/ |
54 | 54 | |
55 | ||
55 | ||
56 | 56 | { |
57 | vendetta_state *state = screen.machine().driver_data<vendetta_state>(); | |
58 | 57 | int layer[3]; |
59 | 58 | |
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); | |
64 | 63 | |
65 | k052109_tilemap_update( | |
64 | k052109_tilemap_update( | |
66 | 65 | |
67 | 66 | layer[0] = 0; |
68 | | |
67 | | |
69 | 68 | layer[1] = 1; |
70 | | |
69 | | |
71 | 70 | layer[2] = 2; |
72 | | |
71 | | |
73 | 72 | |
74 | konami_sortlayers3(layer, | |
73 | konami_sortlayers3(layer, | |
75 | 74 | |
76 | 75 | 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); | |
80 | 79 | |
81 | k053247_sprites_draw( | |
80 | k053247_sprites_draw( | |
82 | 81 | return 0; |
83 | 82 | } |
r17967 | r17968 | |
---|---|---|
133 | 133 | |
134 | 134 | |
135 | 135 | |
136 | ||
136 | ||
137 | 137 | { |
138 | fcombat_state *state = screen.machine().driver_data<fcombat_state>(); | |
139 | 138 | int sx, sy, offs, i; |
140 | 139 | |
141 | 140 | /* 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); | |
144 | 143 | |
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); | |
147 | 146 | //draw_background(bitmap, cliprect); |
148 | 147 | |
149 | 148 | /* draw sprites */ |
150 | for (i = 0; i < | |
149 | for (i = 0; i < | |
151 | 150 | { |
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; | |
156 | 155 | |
157 | 156 | int xflip = flags & 0x80; |
158 | 157 | int yflip = flags & 0x40; |
r17967 | r17968 | |
160 | 159 | int wide = flags & 0x08; |
161 | 160 | int code2 = code; |
162 | 161 | |
163 | int color = ((flags >> 1) & 0x03) | ((code >> 5) & 0x04) | (code & 0x08) | ( | |
162 | int color = ((flags >> 1) & 0x03) | ((code >> 5) & 0x04) | (code & 0x08) | ( | |
164 | 163 | gfx_element *gfx = screen.machine().gfx[1]; |
165 | 164 | |
166 | if ( | |
165 | if ( | |
167 | 166 | { |
168 | 167 | x = 64 * 8 - gfx->width() - x; |
169 | 168 | y = 32 * 8 - gfx->height() - y; |
r17967 | r17968 | |
199 | 198 | for (sy = VISIBLE_Y_MIN/8; sy < VISIBLE_Y_MAX/8; sy++) |
200 | 199 | for (sx = VISIBLE_X_MIN/8; sx < VISIBLE_X_MAX/8; sx++) |
201 | 200 | { |
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; | |
204 | 203 | |
205 | 204 | offs = sx + sy * 64; |
206 | 205 | 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); | |
210 | 209 | } |
211 | 210 | return 0; |
212 | 211 | } |
r17967 | r17968 | |
---|---|---|
195 | 195 | |
196 | 196 | ***************************************************************************/ |
197 | 197 | |
198 | ||
198 | ||
199 | 199 | { |
200 | thoop2_state *state = screen.machine().driver_data<thoop2_state>(); | |
201 | 200 | /* 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]); | |
206 | 205 | |
207 | 206 | thoop2_sort_sprites(screen.machine()); |
208 | 207 | |
209 | 208 | bitmap.fill(0, cliprect ); |
210 | 209 | |
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); | |
213 | 212 | 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); | |
216 | 215 | |
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); | |
219 | 218 | 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); | |
222 | 221 | |
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); | |
225 | 224 | 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); | |
228 | 227 | |
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); | |
231 | 230 | 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); | |
234 | 233 | |
235 | 234 | draw_sprites(screen.machine(), bitmap,cliprect,4); |
236 | 235 | return 0; |
r17967 | r17968 | |
---|---|---|
247 | 247 | m_bg1_dx[1] = -2; |
248 | 248 | } |
249 | 249 | |
250 | ||
250 | ||
251 | 251 | { |
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]); | |
258 | 257 | } 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); | |
263 | 262 | } |
264 | 263 | |
265 | 264 | /* todo : which bits of pri are significant to the order */ |
266 | 265 | |
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); | |
270 | 269 | draw_sprites(screen.machine(), bitmap,cliprect); |
271 | | |
270 | | |
272 | 271 | } |
273 | 272 | |
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); | |
276 | 275 | 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); | |
279 | 278 | } |
280 | 279 | |
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); | |
284 | 283 | draw_sprites(screen.machine(), bitmap,cliprect); |
285 | | |
284 | | |
286 | 285 | } |
287 | 286 | return 0; |
288 | 287 | } |
r17967 | r17968 | |
---|---|---|
169 | 169 | } |
170 | 170 | |
171 | 171 | |
172 | ||
172 | ||
173 | 173 | { |
174 | marineb_state *state = screen.machine().driver_data<marineb_state>(); | |
175 | 174 | int offs; |
176 | 175 | |
177 | 176 | set_tilemap_scrolly(screen.machine(), 24); |
178 | | |
177 | | |
179 | 178 | |
180 | 179 | /* draw the sprites */ |
181 | 180 | for (offs = 0x0f; offs >= 0; offs--) |
r17967 | r17968 | |
190 | 189 | else |
191 | 190 | offs2 = 0x03d8 - 8 + offs; |
192 | 191 | |
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; | |
197 | 196 | flipx = code & 0x02; |
198 | 197 | flipy = !(code & 0x01); |
199 | 198 | |
r17967 | r17968 | |
210 | 209 | code >>= 2; |
211 | 210 | } |
212 | 211 | |
213 | if (! | |
212 | if (! | |
214 | 213 | { |
215 | 214 | sy = 256 - screen.machine().gfx[gfx]->width() - sy; |
216 | 215 | flipy = !flipy; |
217 | 216 | } |
218 | 217 | |
219 | if ( | |
218 | if ( | |
220 | 219 | { |
221 | 220 | sx++; |
222 | 221 | } |
r17967 | r17968 | |
231 | 230 | } |
232 | 231 | |
233 | 232 | |
234 | ||
233 | ||
235 | 234 | { |
236 | marineb_state *state = screen.machine().driver_data<marineb_state>(); | |
237 | 235 | int offs, sx, sy, code, col, flipx, flipy; |
238 | 236 | |
239 | 237 | set_tilemap_scrolly(screen.machine(), 26); |
240 | | |
238 | | |
241 | 239 | |
242 | 240 | /* draw the small sprites */ |
243 | 241 | for (offs = 0x05; offs >= 0; offs--) |
r17967 | r17968 | |
246 | 244 | |
247 | 245 | offs2 = 0x001a + offs; |
248 | 246 | |
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; | |
253 | 251 | flipx = code & 0x02; |
254 | 252 | flipy = !(code & 0x01); |
255 | 253 | |
256 | if (! | |
254 | if (! | |
257 | 255 | { |
258 | 256 | sy = 256 - screen.machine().gfx[1]->width() - sy; |
259 | 257 | flipy = !flipy; |
260 | 258 | } |
261 | 259 | |
262 | if ( | |
260 | if ( | |
263 | 261 | { |
264 | 262 | sx++; |
265 | 263 | } |
r17967 | r17968 | |
273 | 271 | |
274 | 272 | /* draw the big sprite */ |
275 | 273 | |
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]; | |
280 | 278 | flipx = code & 0x02; |
281 | 279 | flipy = !(code & 0x01); |
282 | 280 | |
283 | if (! | |
281 | if (! | |
284 | 282 | { |
285 | 283 | sy = 256 - screen.machine().gfx[2]->width() - sy; |
286 | 284 | flipy = !flipy; |
287 | 285 | } |
288 | 286 | |
289 | if ( | |
287 | if ( | |
290 | 288 | { |
291 | 289 | sx++; |
292 | 290 | } |
r17967 | r17968 | |
310 | 308 | } |
311 | 309 | |
312 | 310 | |
313 | ||
311 | ||
314 | 312 | { |
315 | marineb_state *state = screen.machine().driver_data<marineb_state>(); | |
316 | 313 | int offs; |
317 | 314 | |
318 | 315 | set_tilemap_scrolly(screen.machine(), 0); |
319 | | |
316 | | |
320 | 317 | |
321 | 318 | /* draw the sprites */ |
322 | 319 | for (offs = 0x0f; offs >= 0; offs--) |
r17967 | r17968 | |
328 | 325 | |
329 | 326 | offs2 = 0x0010 + offs; |
330 | 327 | |
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; | |
335 | 332 | flipx = !(code & 0x02); |
336 | 333 | flipy = !(code & 0x01); |
337 | 334 | |
r17967 | r17968 | |
349 | 346 | code >>= 2; |
350 | 347 | } |
351 | 348 | |
352 | if (! | |
349 | if (! | |
353 | 350 | { |
354 | 351 | sy = 256 - screen.machine().gfx[gfx]->width() - sy; |
355 | 352 | flipy = !flipy; |
356 | 353 | } |
357 | 354 | |
358 | if (! | |
355 | if (! | |
359 | 356 | { |
360 | 357 | sx--; |
361 | 358 | } |
r17967 | r17968 | |
370 | 367 | } |
371 | 368 | |
372 | 369 | |
373 | ||
370 | ||
374 | 371 | { |
375 | marineb_state *state = screen.machine().driver_data<marineb_state>(); | |
376 | 372 | int offs; |
377 | 373 | |
378 | 374 | set_tilemap_scrolly(screen.machine(), 0); |
379 | | |
375 | | |
380 | 376 | |
381 | 377 | /* draw the sprites */ |
382 | 378 | for (offs = 0x07; offs >= 0; offs--) |
r17967 | r17968 | |
385 | 381 | |
386 | 382 | offs2 = 0x0018 + offs; |
387 | 383 | |
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]; | |
392 | 388 | flipx = code & 0x02; |
393 | 389 | flipy = !(code & 0x01); |
394 | 390 | |
395 | if (! | |
391 | if (! | |
396 | 392 | { |
397 | 393 | sy = 256 - screen.machine().gfx[1]->width() - sy; |
398 | 394 | flipy = !flipy; |
399 | 395 | } |
400 | 396 | |
401 | if ( | |
397 | if ( | |
402 | 398 | { |
403 | 399 | sx = 256 - screen.machine().gfx[1]->width() - sx; |
404 | 400 | flipx = !flipx; |
r17967 | r17968 | |
414 | 410 | } |
415 | 411 | |
416 | 412 | |
417 | ||
413 | ||
418 | 414 | { |
419 | marineb_state *state = screen.machine().driver_data<marineb_state>(); | |
420 | 415 | int offs; |
421 | 416 | |
422 | 417 | set_tilemap_scrolly(screen.machine(), 0); |
423 | | |
418 | | |
424 | 419 | |
425 | 420 | /* draw the sprites */ |
426 | 421 | for (offs = 0x0f; offs >= 0; offs--) |
r17967 | r17968 | |
432 | 427 | |
433 | 428 | offs2 = 0x0010 + offs; |
434 | 429 | |
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; | |
439 | 434 | flipx = code & 0x02; |
440 | 435 | flipy = !(code & 0x01); |
441 | 436 | |
r17967 | r17968 | |
452 | 447 | code >>= 2; |
453 | 448 | } |
454 | 449 | |
455 | if (! | |
450 | if (! | |
456 | 451 | { |
457 | 452 | sy = 256 - screen.machine().gfx[gfx]->width() - sy; |
458 | 453 | flipy = !flipy; |
459 | 454 | } |
460 | 455 | |
461 | if (! | |
456 | if (! | |
462 | 457 | { |
463 | 458 | sx--; |
464 | 459 | } |
r17967 | r17968 | |
---|---|---|
5 | 5 | |
6 | 6 | /* Video on the orginal */ |
7 | 7 | |
8 | ||
8 | ||
9 | 9 | { |
10 | pktgaldx_state *state = screen.machine().driver_data<pktgaldx_state>(); | |
11 | 10 | address_space &space = screen.machine().driver_data()->generic_space(); |
12 | UINT16 flip = deco16ic_pf_control_r( | |
11 | UINT16 flip = deco16ic_pf_control_r( | |
13 | 12 | |
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); | |
16 | 15 | |
17 | 16 | bitmap.fill(0, cliprect); /* not Confirmed */ |
18 | 17 | screen.machine().priority_bitmap.fill(0); |
19 | 18 | |
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); | |
23 | 22 | return 0; |
24 | 23 | } |
25 | 24 | |
26 | 25 | /* Video for the bootleg */ |
27 | 26 | |
28 | ||
27 | ||
29 | 28 | { |
30 | pktgaldx_state *state = screen.machine().driver_data<pktgaldx_state>(); | |
31 | 29 | int x, y; |
32 | 30 | int offset = 0; |
33 | 31 | int tileno; |
r17967 | r17968 | |
38 | 36 | /* the bootleg seems to treat the tilemaps as sprites */ |
39 | 37 | for (offset = 0; offset < 0x1600 / 2; offset += 8) |
40 | 38 | { |
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]; | |
45 | 43 | |
46 | 44 | x -= 0xc2; |
47 | 45 | y &= 0x1ff; |
r17967 | r17968 | |
52 | 50 | |
53 | 51 | for (offset = 0x1600/2; offset < 0x2000 / 2; offset += 8) |
54 | 52 | { |
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; | |
59 | 57 | |
60 | 58 | x -= 0xc2; |
61 | 59 | y &= 0x1ff; |
r17967 | r17968 | |
66 | 64 | |
67 | 65 | for (offset = 0x2000/2; offset < 0x4000 / 2; offset += 8) |
68 | 66 | { |
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; | |
73 | 71 | |
74 | 72 | x -= 0xc2; |
75 | 73 | y &= 0x1ff; |
r17967 | r17968 | |
---|---|---|
204 | 204 | * |
205 | 205 | *************************************/ |
206 | 206 | |
207 | ||
207 | ||
208 | 208 | { |
209 | timeplt_state *state = screen.machine().driver_data<timeplt_state>(); | |
210 | 209 | |
211 | | |
210 | | |
212 | 211 | draw_sprites(screen.machine(), bitmap, cliprect); |
213 | | |
212 | | |
214 | 213 | return 0; |
215 | 214 | } |
r17967 | r17968 | |
---|---|---|
175 | 175 | * |
176 | 176 | *************************************/ |
177 | 177 | |
178 | ||
178 | ||
179 | 179 | { |
180 | atarigx2_state *state = screen.machine().driver_data<atarigx2_state>(); | |
181 | 180 | bitmap_ind8 &priority_bitmap = screen.machine().priority_bitmap; |
182 | 181 | |
183 | 182 | /* draw the playfield */ |
184 | 183 | 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); | |
193 | 192 | |
194 | 193 | /* copy the motion objects on top */ |
195 | 194 | { |
196 | bitmap_ind16 *mo_bitmap = atarirle_get_vram( | |
195 | bitmap_ind16 *mo_bitmap = atarirle_get_vram( | |
197 | 196 | int left = cliprect.min_x; |
198 | 197 | int top = cliprect.min_y; |
199 | 198 | int right = cliprect.max_x + 1; |
r17967 | r17968 | |
213 | 212 | } |
214 | 213 | |
215 | 214 | /* add the alpha on top */ |
216 | | |
215 | | |
217 | 216 | return 0; |
218 | 217 | } |
219 | 218 | |
220 | ||
219 | void | |
221 | 220 | { |
222 | 221 | // rising edge |
223 | if ( | |
222 | if (st | |
224 | 223 | { |
225 | atarigx2_state *state = screen.machine().driver_data<atarigx2_state>(); | |
226 | 224 | |
227 | atarirle_eof( | |
225 | atarirle_eof( | |
228 | 226 | } |
229 | 227 | } |
r17967 | r17968 | |
---|---|---|
282 | 282 | } |
283 | 283 | } |
284 | 284 | |
285 | ||
285 | ||
286 | 286 | { |
287 | fuuki16_state *state = screen.machine().driver_data<fuuki16_state>(); | |
288 | 287 | UINT16 layer0_scrollx, layer0_scrolly; |
289 | 288 | UINT16 layer1_scrollx, layer1_scrolly; |
290 | 289 | UINT16 layer2_scrollx, layer2_scrolly; |
r17967 | r17968 | |
302 | 301 | { 2, 0, 1 }, |
303 | 302 | { 2, 1, 0 }}; |
304 | 303 | |
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]; | |
308 | 307 | |
309 | | |
308 | | |
310 | 309 | |
311 | 310 | /* Layers scrolling */ |
312 | 311 | |
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); | |
315 | 314 | |
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; | |
320 | 319 | |
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]; | |
323 | 322 | |
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); | |
328 | 327 | |
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*/); | |
333 | 332 | |
334 | 333 | /* The backmost tilemap decides the background color(s) but sprites can |
335 | 334 | go below the opaque pixels of that tilemap. We thus need to mark the |
r17967 | r17968 | |
---|---|---|
212 | 212 | } |
213 | 213 | } |
214 | 214 | |
215 | ||
215 | ||
216 | 216 | { |
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]); | |
220 | 219 | |
221 | | |
220 | | |
222 | 221 | draw_sprites(screen.machine(), bitmap,cliprect); |
223 | | |
222 | | |
224 | 223 | return 0; |
225 | 224 | } |
r17967 | r17968 | |
---|---|---|
101 | 101 | m_fg_tilemap->set_transparent_pen(0); |
102 | 102 | } |
103 | 103 | |
104 | ||
104 | ||
105 | 105 | { |
106 | sderby_state *state = screen.machine().driver_data<sderby_state>(); | |
107 | 106 | |
108 | | |
107 | | |
109 | 108 | 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); | |
112 | 111 | return 0; |
113 | 112 | } |
114 | 113 | |
115 | ||
114 | ||
116 | 115 | { |
117 | sderby_state *state = screen.machine().driver_data<sderby_state>(); | |
118 | 116 | |
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); | |
121 | 119 | draw_sprites(screen.machine(), bitmap,cliprect,0); |
122 | | |
120 | | |
123 | 121 | return 0; |
124 | 122 | } |
125 | 123 |
r17967 | r17968 | |
---|---|---|
108 | 108 | draw_line(bitmap, cliprect, 231, 192, 248, 192, 0); |
109 | 109 | } |
110 | 110 | |
111 | ||
111 | ||
112 | 112 | { |
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); | |
115 | 114 | circus_draw_fg(screen.machine(), bitmap, cliprect); |
116 | 115 | draw_sprite_collision(screen.machine(), bitmap, cliprect); |
117 | 116 | return 0; |
r17967 | r17968 | |
179 | 178 | state->m_clown_y + 8, state->m_clown_x + 8, 0); |
180 | 179 | } |
181 | 180 | |
182 | ||
181 | ||
183 | 182 | { |
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); | |
186 | 184 | robotbwl_draw_scoreboard(bitmap, cliprect); |
187 | 185 | robotbwl_draw_bowling_alley(bitmap, cliprect); |
188 | 186 | robotbwl_draw_ball(screen.machine(), bitmap, cliprect); |
r17967 | r17968 | |
200 | 198 | state->m_clown_y, state->m_clown_x - 1, 0); |
201 | 199 | } |
202 | 200 | |
203 | ||
201 | ||
204 | 202 | { |
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); | |
207 | 204 | crash_draw_car(screen.machine(), bitmap, cliprect); |
208 | 205 | return 0; |
209 | 206 | } |
210 | 207 | |
211 | ||
208 | ||
212 | 209 | { |
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); | |
215 | 211 | draw_sprite_collision(screen.machine(), bitmap, cliprect); |
216 | 212 | return 0; |
217 | 213 | } |
r17967 | r17968 | |
---|---|---|
201 | 201 | // if(SpriteCollision(machine, 2,4)) state->m_CollisionSprite |= 0x01; /* Not Used */ |
202 | 202 | } |
203 | 203 | |
204 | ||
204 | ||
205 | 205 | { |
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); | |
208 | 207 | draw_sprites(screen.machine(), bitmap, cliprect); |
209 | 208 | return 0; |
210 | 209 | } |
r17967 | r17968 | |
---|---|---|
254 | 254 | } |
255 | 255 | |
256 | 256 | |
257 | ||
257 | ||
258 | 258 | { |
259 | shangha3_state *state = screen.machine().driver_data<shangha3_state>(); | |
260 | 259 | |
261 | copybitmap(bitmap, | |
260 | copybitmap(bitmap, | |
262 | 261 | return 0; |
263 | 262 | } |
r17967 | r17968 | |
---|---|---|
187 | 187 | } |
188 | 188 | } |
189 | 189 | |
190 | ||
190 | ||
191 | 191 | { |
192 | vastar_state *state = screen.machine().driver_data<vastar_state>(); | |
193 | 192 | int i; |
194 | 193 | |
195 | 194 | |
196 | 195 | for (i = 0;i < 32;i++) |
197 | 196 | { |
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]); | |
200 | 199 | } |
201 | 200 | |
202 | switch (* | |
201 | switch (* | |
203 | 202 | { |
204 | 203 | case 0: |
205 | | |
204 | | |
206 | 205 | 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); | |
209 | 208 | break; |
210 | 209 | |
211 | 210 | case 2: |
212 | | |
211 | | |
213 | 212 | 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); | |
217 | 216 | break; |
218 | 217 | |
219 | 218 | 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); | |
223 | 222 | draw_sprites(screen.machine(), bitmap,cliprect); |
224 | 223 | break; |
225 | 224 | |
226 | 225 | default: |
227 | logerror("Unimplemented priority %X\n", * | |
226 | logerror("Unimplemented priority %X\n", * | |
228 | 227 | break; |
229 | 228 | } |
230 | 229 | return 0; |
r17967 | r17968 | |
---|---|---|
192 | 192 | } |
193 | 193 | |
194 | 194 | |
195 | ||
195 | ||
196 | 196 | { |
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 | |
200 | 199 | |
201 | 200 | /* not amazingly efficient however it should be functional for row select and linescroll */ |
202 | 201 | int line; |
r17967 | r17968 | |
209 | 208 | { |
210 | 209 | clip.min_y = clip.max_y = line; |
211 | 210 | |
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); | |
214 | 213 | |
215 | | |
214 | | |
216 | 215 | } |
217 | 216 | |
218 | 217 | draw_sprites(screen.machine(), bitmap,cliprect); |
219 | 218 | return 0; |
220 | 219 | } |
221 | 220 | |
222 | ||
221 | void | |
223 | 222 | { |
224 | 223 | // rising edge |
225 | if ( | |
224 | if (st | |
226 | 225 | { |
227 | taotaido_state *state = screen.machine().driver_data<taotaido_state>(); | |
228 | 226 | /* sprites need to be delayed by 2 frames? */ |
229 | 227 | |
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); | |
232 | 230 | |
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); | |
235 | 233 | } |
236 | 234 | } |
r17967 | r17968 | |
---|---|---|
105 | 105 | * |
106 | 106 | *************************************/ |
107 | 107 | |
108 | ||
108 | ||
109 | 109 | { |
110 | relief_state *state = screen.machine().driver_data<relief_state>(); | |
111 | 110 | bitmap_ind8 &priority_bitmap = screen.machine().priority_bitmap; |
112 | 111 | atarimo_rect_list rectlist; |
113 | 112 | bitmap_ind16 *mobitmap; |
r17967 | r17968 | |
115 | 114 | |
116 | 115 | /* draw the playfield */ |
117 | 116 | 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); | |
120 | 119 | |
121 | 120 | /* draw and merge the MO */ |
122 | 121 | mobitmap = atarimo_render(0, cliprect, &rectlist); |
r17967 | r17968 | |
---|---|---|
505 | 505 | |
506 | 506 | /******************************************************************************/ |
507 | 507 | |
508 | ||
508 | void | |
509 | 509 | { |
510 | 510 | // rising edge |
511 | if ( | |
511 | if (st | |
512 | 512 | { |
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) | |
515 | 514 | { |
516 | 515 | if (screen.machine().video().skip_this_frame() == 0) |
517 | 516 | { |
518 | get_sprite_info(screen.machine(), | |
517 | get_sprite_info(screen.machine(), | |
519 | 518 | } |
520 | memcpy( | |
519 | memcpy( | |
521 | 520 | } |
522 | else if ( | |
521 | else if ( | |
523 | 522 | { |
524 | 523 | if (screen.machine().video().skip_this_frame() == 0) |
525 | 524 | { |
526 | get_sprite_info(screen.machine(), | |
525 | get_sprite_info(screen.machine(), | |
527 | 526 | } |
528 | 527 | } |
529 | 528 | } |
r17967 | r17968 | |
3149 | 3148 | |
3150 | 3149 | /******************************************************************************/ |
3151 | 3150 | |
3152 | ||
3151 | ||
3153 | 3152 | { |
3154 | taito_f3_state *state = screen.machine().driver_data<taito_f3_state>(); | |
3155 | 3153 | UINT32 sy_fix[5],sx_fix[5]; |
3156 | 3154 | |
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); | |
3159 | 3157 | |
3160 | 3158 | /* 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); | |
3171 | 3169 | |
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; | |
3176 | 3174 | |
3177 | if ( | |
3175 | if ( | |
3178 | 3176 | { |
3179 | 3177 | sy_fix[0]= 0x3000000-sy_fix[0]; |
3180 | 3178 | sy_fix[1]= 0x3000000-sy_fix[1]; |
r17967 | r17968 | |
3188 | 3186 | sy_fix[4]=-sy_fix[4]; |
3189 | 3187 | } |
3190 | 3188 | |
3191 | | |
3189 | | |
3192 | 3190 | |
3193 | 3191 | /* 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); | |
3196 | 3194 | |
3197 | 3195 | /* Update sprite buffer */ |
3198 | 3196 | draw_sprites(screen.machine(), bitmap,cliprect); |
3199 | 3197 | |
3200 | 3198 | /* Parse sprite, alpha & clipping parts of lineram */ |
3201 | get_spritealphaclip_info( | |
3199 | get_spritealphaclip_info( | |
3202 | 3200 | |
3203 | 3201 | /* 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]); | |
3209 | 3207 | |
3210 | 3208 | /* Draw final framebuffer */ |
3211 | 3209 | scanline_draw(screen.machine(), bitmap,cliprect); |
r17967 | r17968 | |
---|---|---|
429 | 429 | |
430 | 430 | ***************************************************************************/ |
431 | 431 | |
432 | ||
432 | ||
433 | 433 | { |
434 | gaelco2_state *state = screen.machine().driver_data<gaelco2_state>(); | |
435 | 434 | int i; |
436 | 435 | |
437 | 436 | /* 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; | |
442 | 441 | |
443 | 442 | /* 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); | |
446 | 445 | |
447 | 446 | /* set x linescroll registers */ |
448 | 447 | 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); | |
451 | 450 | } |
452 | 451 | |
453 | 452 | /* draw screen */ |
454 | 453 | bitmap.fill(0, cliprect); |
455 | 454 | |
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); | |
458 | 457 | draw_sprites(screen, bitmap, cliprect, 0, 0); |
459 | 458 | return 0; |
460 | 459 | } |
r17967 | r17968 | |
489 | 488 | return 0; |
490 | 489 | } |
491 | 490 | |
492 | SCREEN_UPDATE_IND16( gaelco2_left ) { return dual_update(screen, bitmap, cliprect, 0); } | |
493 | SCREEN_UPDATE_IND16( gaelco2_right ) { return dual_update(screen, bitmap, cliprect, 1); } | |
491 | UINT32 gaelco2_state::screen_update_gaelco2_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return dual_update(screen, bitmap, cliprect, 0); } | |
492 | UINT32 gaelco2_state::screen_update_gaelco2_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return dual_update(screen, bitmap, cliprect, 1); } |
r17967 | r17968 | |
---|---|---|
134 | 134 | } |
135 | 135 | } |
136 | 136 | |
137 | ||
137 | ||
138 | 138 | { |
139 | homerun_state *state = screen.machine().driver_data<homerun_state>(); | |
140 | 139 | |
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); | |
143 | 142 | |
144 | | |
143 | | |
145 | 144 | draw_sprites(screen.machine(), bitmap, cliprect); |
146 | 145 | |
147 | 146 | return 0; |
r17967 | r17968 | |
---|---|---|
277 | 277 | |
278 | 278 | |
279 | 279 | |
280 | ||
280 | ||
281 | 281 | { |
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); | |
284 | 283 | champbas_draw_sprites(screen.machine(), bitmap, cliprect); |
285 | 284 | return 0; |
286 | 285 | } |
287 | 286 | |
288 | ||
287 | ||
289 | 288 | { |
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); | |
292 | 290 | exctsccr_draw_sprites(screen.machine(), bitmap, cliprect); |
293 | 291 | return 0; |
294 | 292 | } |
r17967 | r17968 | |
---|---|---|
303 | 303 | } |
304 | 304 | |
305 | 305 | |
306 | ||
306 | ||
307 | 307 | { |
308 | baraduke_state *state = screen.machine().driver_data<baraduke_state>(); | |
309 | UINT8 *spriteram = state->m_spriteram + 0x1800; | |
308 | UINT8 *spriteram = m_spriteram + 0x1800; | |
310 | 309 | int back; |
311 | 310 | |
312 | 311 | /* 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); | |
316 | 315 | set_scroll(screen.machine(), 0); |
317 | 316 | set_scroll(screen.machine(), 1); |
318 | 317 | |
319 | if ((( | |
318 | if ((( | |
320 | 319 | back = 1; |
321 | 320 | else |
322 | 321 | back = 0; |
323 | 322 | |
324 | | |
323 | | |
325 | 324 | draw_sprites(screen.machine(), bitmap,cliprect,0); |
326 | | |
325 | | |
327 | 326 | draw_sprites(screen.machine(), bitmap,cliprect,1); |
328 | 327 | |
329 | | |
328 | | |
330 | 329 | return 0; |
331 | 330 | } |
332 | 331 | |
333 | 332 | |
334 | ||
333 | void | |
335 | 334 | { |
336 | 335 | // rising edge |
337 | if ( | |
336 | if (st | |
338 | 337 | { |
339 | baraduke_state *state = screen.machine().driver_data<baraduke_state>(); | |
340 | if (state->m_copy_sprites) | |
338 | if (m_copy_sprites) | |
341 | 339 | { |
342 | UINT8 *spriteram = | |
340 | UINT8 *spriteram = | |
343 | 341 | int i,j; |
344 | 342 | |
345 | 343 | for (i = 0;i < 0x800;i += 16) |
r17967 | r17968 | |
348 | 346 | spriteram[i+j] = spriteram[i+j - 6]; |
349 | 347 | } |
350 | 348 | |
351 | | |
349 | | |
352 | 350 | } |
353 | 351 | } |
354 | 352 | } |
r17967 | r17968 | |
---|---|---|
176 | 176 | } |
177 | 177 | } |
178 | 178 | |
179 | ||
179 | ||
180 | 180 | { |
181 | ssozumo_state *state = screen.machine().driver_data<ssozumo_state>(); | |
182 | 181 | |
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); | |
185 | 184 | draw_sprites(screen.machine(), bitmap, cliprect); |
186 | 185 | return 0; |
187 | 186 | } |
r17967 | r17968 | |
---|---|---|
395 | 395 | * |
396 | 396 | *************************************/ |
397 | 397 | |
398 | ||
398 | ||
399 | 399 | { |
400 | 400 | /* update the flip state */ |
401 | 401 | bg_tilemap->set_flip(mcr_cocktail_flip ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0); |
r17967 | r17968 | |
---|---|---|
380 | 380 | |
381 | 381 | /*****************************************************************************/ |
382 | 382 | |
383 | ||
383 | ||
384 | 384 | { |
385 | 385 | m107_update_scroll_positions(screen.machine()); |
386 | 386 | m107_screenrefresh(screen.machine(), bitmap, cliprect); |
r17967 | r17968 | |
---|---|---|
127 | 127 | return 0; |
128 | 128 | } |
129 | 129 | |
130 | SCREEN_UPDATE_IND16( ninjaw_left ) { return update_screen(screen, bitmap, cliprect, 36 * 8 * 0, screen.machine().driver_data<ninjaw_state>()->m_tc0100scn_1); } | |
131 | SCREEN_UPDATE_IND16( ninjaw_middle ) { return update_screen(screen, bitmap, cliprect, 36 * 8 * 1, screen.machine().driver_data<ninjaw_state>()->m_tc0100scn_2); } | |
132 | SCREEN_UPDATE_IND16( ninjaw_right ) { return update_screen(screen, bitmap, cliprect, 36 * 8 * 2, screen.machine().driver_data<ninjaw_state>()->m_tc0100scn_3); } | |
130 | UINT32 ninjaw_state::screen_update_ninjaw_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8 * 0, screen.machine().driver_data<ninjaw_state>()->m_tc0100scn_1); } | |
131 | UINT32 ninjaw_state::screen_update_ninjaw_middle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8 * 1, screen.machine().driver_data<ninjaw_state>()->m_tc0100scn_2); } | |
132 | UINT32 ninjaw_state::screen_update_ninjaw_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8 * 2, screen.machine().driver_data<ninjaw_state>()->m_tc0100scn_3); } |
r17967 | r17968 | |
---|---|---|
125 | 125 | |
126 | 126 | |
127 | 127 | |
128 | ||
128 | ||
129 | 129 | { |
130 | matmania_state *state = screen.machine().driver_data<matmania_state>(); | |
131 | UINT8 *spriteram = state->m_spriteram; | |
130 | UINT8 *spriteram = m_spriteram; | |
132 | 131 | int offs; |
133 | 132 | |
134 | 133 | |
135 | 134 | /* Update the tiles in the left tile ram bank */ |
136 | for (offs = | |
135 | for (offs = | |
137 | 136 | { |
138 | 137 | int sx = 15 - offs / 32; |
139 | 138 | int sy = offs % 32; |
140 | 139 | |
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, | |
144 | 143 | 0,sy >= 16, /* flip horizontally tiles on the right half of the bitmap */ |
145 | 144 | 16 * sx, 16 * sy); |
146 | 145 | } |
147 | 146 | |
148 | 147 | /* Update the tiles in the right tile ram bank */ |
149 | for (offs = | |
148 | for (offs = | |
150 | 149 | { |
151 | 150 | int sx = 15 - offs / 32; |
152 | 151 | int sy = offs % 32; |
153 | 152 | |
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, | |
157 | 156 | 0,sy >= 16, /* flip horizontally tiles on the right half of the bitmap */ |
158 | 157 | 16*sx,16*sy); |
159 | 158 | } |
160 | 159 | |
161 | 160 | /* copy the temporary bitmap to the screen */ |
162 | 161 | { |
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); | |
166 | 165 | else |
167 | copyscrollbitmap(bitmap, * | |
166 | copyscrollbitmap(bitmap, * | |
168 | 167 | } |
169 | 168 | |
170 | 169 | |
171 | 170 | /* Draw the sprites */ |
172 | for (offs = 0; offs < | |
171 | for (offs = 0; offs < | |
173 | 172 | { |
174 | 173 | if (spriteram[offs] & 0x01) |
175 | 174 | { |
r17967 | r17968 | |
183 | 182 | |
184 | 183 | |
185 | 184 | /* draw the frontmost playfield. They are characters, but draw them as sprites */ |
186 | for (offs = | |
185 | for (offs = | |
187 | 186 | { |
188 | 187 | int sx = 31 - offs / 32; |
189 | 188 | int sy = offs % 32; |
190 | 189 | |
191 | 190 | 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, | |
194 | 193 | 0,0, |
195 | 194 | 8*sx,8*sy,0); |
196 | 195 | } |
197 | 196 | return 0; |
198 | 197 | } |
199 | 198 | |
200 | ||
199 | ||
201 | 200 | { |
202 | matmania_state *state = screen.machine().driver_data<matmania_state>(); | |
203 | UINT8 *spriteram = state->m_spriteram; | |
201 | UINT8 *spriteram = m_spriteram; | |
204 | 202 | int offs; |
205 | 203 | |
206 | 204 | |
207 | 205 | /* Update the tiles in the left tile ram bank */ |
208 | for (offs = | |
206 | for (offs = | |
209 | 207 | { |
210 | 208 | int sx = 15 - offs / 32; |
211 | 209 | int sy = offs % 32; |
212 | 210 | |
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, | |
216 | 214 | 0,sy >= 16, /* flip horizontally tiles on the right half of the bitmap */ |
217 | 215 | 16*sx,16*sy); |
218 | 216 | } |
219 | 217 | |
220 | 218 | /* Update the tiles in the right tile ram bank */ |
221 | for (offs = | |
219 | for (offs = | |
222 | 220 | { |
223 | 221 | int sx = 15 - offs / 32; |
224 | 222 | int sy = offs % 32; |
225 | 223 | |
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, | |
229 | 227 | 0,sy >= 16, /* flip horizontally tiles on the right half of the bitmap */ |
230 | 228 | 16*sx,16*sy); |
231 | 229 | } |
r17967 | r17968 | |
233 | 231 | |
234 | 232 | /* copy the temporary bitmap to the screen */ |
235 | 233 | { |
236 | int scrolly = -* | |
234 | int scrolly = -* | |
237 | 235 | |
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); | |
240 | 238 | else |
241 | copyscrollbitmap(bitmap, * | |
239 | copyscrollbitmap(bitmap, * | |
242 | 240 | } |
243 | 241 | |
244 | 242 | |
245 | 243 | /* Draw the sprites */ |
246 | for (offs = 0; offs < | |
244 | for (offs = 0; offs < | |
247 | 245 | { |
248 | 246 | if (spriteram[offs] & 0x01) |
249 | 247 | { |
r17967 | r17968 | |
257 | 255 | |
258 | 256 | |
259 | 257 | /* draw the frontmost playfield. They are characters, but draw them as sprites */ |
260 | for (offs = | |
258 | for (offs = | |
261 | 259 | { |
262 | 260 | int sx = 31 - offs / 32; |
263 | 261 | int sy = offs % 32; |
264 | 262 | |
265 | 263 | 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, | |
268 | 266 | 0,0, |
269 | 267 | 8*sx,8*sy,0); |
270 | 268 | } |
r17967 | r17968 | |
---|---|---|
196 | 196 | } |
197 | 197 | |
198 | 198 | |
199 | ||
199 | ||
200 | 200 | { |
201 | arkanoid_state *state = screen.machine().driver_data<arkanoid_state>(); | |
202 | 201 | |
203 | | |
202 | | |
204 | 203 | draw_sprites(screen.machine(), bitmap, cliprect); |
205 | 204 | return 0; |
206 | 205 | } |
207 | 206 | |
208 | ||
207 | ||
209 | 208 | { |
210 | arkanoid_state *state = screen.machine().driver_data<arkanoid_state>(); | |
211 | 209 | |
212 | | |
210 | | |
213 | 211 | return 0; |
214 | 212 | } |
r17967 | r17968 | |
---|---|---|
514 | 514 | state_save_register_global(machine(), m_sprite_busy); |
515 | 515 | } |
516 | 516 | |
517 | ||
517 | ||
518 | 518 | { |
519 | twin16_state *state = screen.machine().driver_data<twin16_state>(); | |
520 | 519 | 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; | |
523 | 522 | |
524 | 523 | screen.machine().priority_bitmap.fill(0, cliprect); |
525 | 524 | draw_layer( screen.machine(), bitmap, 1 ); |
526 | 525 | draw_layer( screen.machine(), bitmap, 0 ); |
527 | 526 | draw_sprites( screen.machine(), bitmap ); |
528 | 527 | |
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); | |
531 | 530 | return 0; |
532 | 531 | } |
533 | 532 | |
534 | ||
533 | void | |
535 | 534 | { |
536 | 535 | // rising edge |
537 | if ( | |
536 | if (st | |
538 | 537 | { |
539 | twin16_state *state = screen.machine().driver_data<twin16_state>(); | |
540 | 538 | twin16_set_sprite_timer(screen.machine()); |
541 | 539 | |
542 | 540 | 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; | |
545 | 543 | |
546 | 544 | /* if the sprite preprocessor is used, sprite ram is copied to an external buffer first, |
547 | 545 | as evidenced by 1-frame sprite lag in gradius2 and devilw otherwise, though there's probably |
548 | 546 | 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)); | |
551 | 549 | } |
552 | 550 | else { |
553 | | |
551 | | |
554 | 552 | } |
555 | 553 | } |
556 | 554 | } |
r17967 | r17968 | |
---|---|---|
917 | 917 | ***************************************************************************/ |
918 | 918 | |
919 | 919 | |
920 | ||
920 | ||
921 | 921 | { |
922 | megasys1_state *state = screen.machine().driver_data<megasys1_state>(); | |
923 | 922 | int i,flag,pri,primask; |
924 | 923 | int active_layers; |
925 | 924 | |
926 | if ( | |
925 | if ( | |
927 | 926 | { |
928 | 927 | /* no layer 2 and fixed layers order? */ |
929 | 928 | active_layers = 0x000b; |
r17967 | r17968 | |
934 | 933 | int reallyactive = 0; |
935 | 934 | |
936 | 935 | /* get layers order */ |
937 | pri = | |
936 | pri = | |
938 | 937 | |
939 | 938 | #ifdef MAME_DEBUG |
940 | 939 | if (pri == 0xfffff) |
941 | 940 | { |
942 | popmessage("Pri: %04X - Flag: %04X", | |
941 | popmessage("Pri: %04X - Flag: %04X", | |
943 | 942 | } |
944 | 943 | #endif |
945 | 944 | |
r17967 | r17968 | |
949 | 948 | for (i = 0;i < 5;i++) |
950 | 949 | reallyactive |= 1 << ((pri >> (4*i)) & 0x0f); |
951 | 950 | |
952 | active_layers = | |
951 | active_layers = | |
953 | 952 | active_layers |= 1 << ((pri & 0xf0000) >> 16); // bottom layer can't be disabled |
954 | 953 | } |
955 | 954 | |
956 | screen.machine().tilemap().set_flip_all(( | |
955 | screen.machine().tilemap().set_flip_all(( | |
957 | 956 | |
958 | 957 | for (i = 0;i < 3;i++) |
959 | 958 | { |
960 | if ( | |
959 | if ( | |
961 | 960 | { |
962 | | |
961 | | |
963 | 962 | |
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]); | |
966 | 965 | } |
967 | 966 | } |
968 | 967 | |
r17967 | r17968 | |
981 | 980 | case 0: |
982 | 981 | case 1: |
983 | 982 | case 2: |
984 | if ( ( | |
983 | if ( ( | |
985 | 984 | { |
986 | | |
985 | | |
987 | 986 | flag = 0; |
988 | 987 | } |
989 | 988 | break; |
r17967 | r17968 | |
995 | 994 | bitmap.fill(0, cliprect); |
996 | 995 | } |
997 | 996 | |
998 | if ( | |
997 | if ( | |
999 | 998 | { |
1000 | 999 | /* following tilemaps will obscure this sprites layer */ |
1001 | 1000 | primask |= 1 << (layer-3); |
r17967 | r17968 | |
1013 | 1012 | return 0; |
1014 | 1013 | } |
1015 | 1014 | |
1016 | ||
1015 | void | |
1017 | 1016 | { |
1018 | 1017 | // rising edge |
1019 | if ( | |
1018 | if (st | |
1020 | 1019 | { |
1021 | megasys1_state *state = screen.machine().driver_data<megasys1_state>(); | |
1022 | 1020 | /* 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); | |
1026 | 1024 | //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); | |
1029 | 1027 | } |
1030 | 1028 | |
1031 | 1029 | } |
r17967 | r17968 | |
---|---|---|
178 | 178 | } |
179 | 179 | |
180 | 180 | |
181 | ||
181 | ||
182 | 182 | { |
183 | crshrace_state *state = screen.machine().driver_data<crshrace_state>(); | |
184 | 183 | |
185 | if ( | |
184 | if ( | |
186 | 185 | { |
187 | 186 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
188 | 187 | return 0; |
r17967 | r17968 | |
190 | 189 | |
191 | 190 | bitmap.fill(0x1ff, cliprect); |
192 | 191 | |
193 | switch ( | |
192 | switch ( | |
194 | 193 | { |
195 | 194 | case 0x00: /* high score screen */ |
196 | 195 | draw_sprites(screen.machine(), bitmap, cliprect); |
r17967 | r17968 | |
204 | 203 | draw_sprites(screen.machine(), bitmap, cliprect); |
205 | 204 | break; |
206 | 205 | default: |
207 | popmessage("gfxctrl = %02x", | |
206 | popmessage("gfxctrl = %02x", | |
208 | 207 | break; |
209 | 208 | } |
210 | 209 | return 0; |
211 | 210 | } |
212 | 211 | |
213 | ||
212 | void | |
214 | 213 | { |
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); | |
218 | 216 | } |
r17967 | r17968 | |
---|---|---|
125 | 125 | } |
126 | 126 | |
127 | 127 | |
128 | ||
128 | ||
129 | 129 | { |
130 | airbustr_state *state = screen.machine().driver_data<airbustr_state>(); | |
131 | 130 | |
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); | |
134 | 133 | |
135 | 134 | // copy the sprite bitmap to the screen |
136 | pandora_update( | |
135 | pandora_update( | |
137 | 136 | |
138 | 137 | return 0; |
139 | 138 | } |
140 | 139 | |
141 | ||
140 | void | |
142 | 141 | { |
143 | 142 | // rising edge |
144 | if ( | |
143 | if (st | |
145 | 144 | { |
146 | airbustr_state *state = screen.machine().driver_data<airbustr_state>(); | |
147 | 145 | |
148 | 146 | // update the sprite bitmap |
149 | pandora_eof( | |
147 | pandora_eof( | |
150 | 148 | } |
151 | 149 | } |
152 | 150 |
r17967 | r17968 | |
---|---|---|
321 | 321 | |
322 | 322 | ***************************************************************************/ |
323 | 323 | |
324 | ||
324 | ||
325 | 325 | { |
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 ]; | |
329 | 328 | |
330 | 329 | /* 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); | |
333 | 332 | |
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); | |
336 | 335 | draw_sprites(screen.machine(),bitmap,cliprect); |
337 | | |
336 | | |
338 | 337 | return 0; |
339 | 338 | } |
r17967 | r17968 | |
---|---|---|
208 | 208 | } |
209 | 209 | |
210 | 210 | |
211 | ||
211 | ||
212 | 212 | { |
213 | pacman_state *state = screen.machine().driver_data<pacman_state>(); | |
214 | if (state->m_bgpriority != 0) | |
213 | if (m_bgpriority != 0) | |
215 | 214 | bitmap.fill(0, cliprect); |
216 | 215 | else |
217 | | |
216 | | |
218 | 217 | |
219 | if( | |
218 | if( | |
220 | 219 | { |
221 | UINT8 *spriteram = state->m_spriteram; | |
222 | UINT8 *spriteram_2 = state->m_spriteram2; | |
220 | UINT8 *spriteram = m_spriteram; | |
221 | UINT8 *spriteram_2 = m_spriteram2; | |
223 | 222 | int offs; |
224 | 223 | |
225 | 224 | rectangle spriteclip(2*8, 34*8-1, 0*8, 28*8-1); |
r17967 | r17968 | |
227 | 226 | |
228 | 227 | /* Draw the sprites. Note that it is important to draw them exactly in this */ |
229 | 228 | /* order, to have the correct priorities. */ |
230 | for (offs = | |
229 | for (offs = | |
231 | 230 | { |
232 | 231 | int color; |
233 | 232 | int sx,sy; |
234 | 233 | UINT8 fx,fy; |
235 | 234 | |
236 | if( | |
235 | if( | |
237 | 236 | { |
238 | 237 | sx = spriteram_2[offs + 1]; |
239 | 238 | sy = 240 - (spriteram_2[offs]); |
r17967 | r17968 | |
244 | 243 | sy = spriteram_2[offs] - 31; |
245 | 244 | } |
246 | 245 | |
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); | |
249 | 248 | |
250 | color = ( spriteram[offs + 1] & 0x1f ) | ( | |
249 | color = ( spriteram[offs + 1] & 0x1f ) | ( | |
251 | 250 | |
252 | 251 | drawgfx_transmask(bitmap,spriteclip,screen.machine().gfx[1], |
253 | ( spriteram[offs] >> 2 ) | ( | |
252 | ( spriteram[offs] >> 2 ) | ( | |
254 | 253 | color, |
255 | 254 | fx,fy, |
256 | 255 | sx,sy, |
r17967 | r17968 | |
258 | 257 | |
259 | 258 | /* also plot the sprite with wraparound (tunnel in Crush Roller) */ |
260 | 259 | drawgfx_transmask(bitmap,spriteclip,screen.machine().gfx[1], |
261 | ( spriteram[offs] >> 2 ) | ( | |
260 | ( spriteram[offs] >> 2 ) | ( | |
262 | 261 | color, |
263 | 262 | fx,fy, |
264 | 263 | sx - 256,sy, |
r17967 | r17968 | |
272 | 271 | int sx,sy; |
273 | 272 | UINT8 fx,fy; |
274 | 273 | |
275 | if( | |
274 | if( | |
276 | 275 | { |
277 | 276 | sx = spriteram_2[offs + 1]; |
278 | 277 | sy = 240 - (spriteram_2[offs]); |
r17967 | r17968 | |
282 | 281 | sx = 272 - spriteram_2[offs + 1]; |
283 | 282 | sy = spriteram_2[offs] - 31; |
284 | 283 | } |
285 | color = ( spriteram[offs + 1] & 0x1f ) | ( | |
284 | color = ( spriteram[offs + 1] & 0x1f ) | ( | |
286 | 285 | |
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); | |
289 | 288 | |
290 | 289 | drawgfx_transmask(bitmap,spriteclip,screen.machine().gfx[1], |
291 | ( spriteram[offs] >> 2 ) | ( | |
290 | ( spriteram[offs] >> 2 ) | ( | |
292 | 291 | color, |
293 | 292 | fx,fy, |
294 | sx,sy + | |
293 | sx,sy + | |
295 | 294 | colortable_get_transpen_mask(screen.machine().colortable, screen.machine().gfx[1], color & 0x3f, 0)); |
296 | 295 | |
297 | 296 | /* also plot the sprite with wraparound (tunnel in Crush Roller) */ |
298 | 297 | drawgfx_transmask(bitmap,spriteclip,screen.machine().gfx[1], |
299 | ( spriteram[offs] >> 2 ) | ( | |
298 | ( spriteram[offs] >> 2 ) | ( | |
300 | 299 | color, |
301 | 300 | fy,fx, //FIXME: flipping bits are really supposed to be inverted here? |
302 | sx - 256,sy + | |
301 | sx - 256,sy + | |
303 | 302 | colortable_get_transpen_mask(screen.machine().colortable, screen.machine().gfx[1], color & 0x3f, 0)); |
304 | 303 | } |
305 | 304 | } |
306 | 305 | |
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); | |
309 | 308 | return 0; |
310 | 309 | } |
311 | 310 | |
r17967 | r17968 | |
400 | 399 | m_bg_tilemap->set_scroll_cols(32); |
401 | 400 | } |
402 | 401 | |
403 | ||
402 | ||
404 | 403 | { |
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; | |
408 | 406 | int offs; |
409 | 407 | |
410 | | |
408 | | |
411 | 409 | |
412 | for (offs = | |
410 | for (offs = | |
413 | 411 | { |
414 | 412 | int color; |
415 | 413 | int sx,sy; |
r17967 | r17968 | |
421 | 419 | |
422 | 420 | /* TODO: ?? */ |
423 | 421 | drawgfx_transmask(bitmap,cliprect,screen.machine().gfx[1], |
424 | (spriteram[offs] >> 2) | (( | |
422 | (spriteram[offs] >> 2) | (( | |
425 | 423 | color, |
426 | 424 | spriteram[offs] & 1,spriteram[offs] & 2, |
427 | 425 | sx,sy, |
r17967 | r17968 | |
441 | 439 | |
442 | 440 | /* TODO: ?? */ |
443 | 441 | drawgfx_transmask(bitmap,cliprect,screen.machine().gfx[1], |
444 | (spriteram[offs] >> 2) | (( | |
442 | (spriteram[offs] >> 2) | (( | |
445 | 443 | color, |
446 | 444 | spriteram[offs] & 1,spriteram[offs] & 2, |
447 | sx,sy + | |
445 | sx,sy + | |
448 | 446 | colortable_get_transpen_mask(screen.machine().colortable, screen.machine().gfx[1], color & 0x3f, 0)); |
449 | 447 | } |
450 | 448 | return 0; |
r17967 | r17968 | |
---|---|---|
115 | 115 | * |
116 | 116 | *************************************/ |
117 | 117 | |
118 | ||
118 | ||
119 | 119 | { |
120 | dcheese_state *state = screen.machine().driver_data<dcheese_state>(); | |
121 | 120 | int x, y; |
122 | 121 | |
123 | 122 | /* update the pixels */ |
124 | 123 | for (y = cliprect.min_y; y <= cliprect.max_y; y++) |
125 | 124 | { |
126 | 125 | UINT16 *dest = &bitmap.pix16(y); |
127 | UINT16 *src = & | |
126 | UINT16 *src = & | |
128 | 127 | |
129 | 128 | for (x = cliprect.min_x; x <= cliprect.max_x; x++) |
130 | 129 | dest[x] = src[x]; |
r17967 | r17968 | |
---|---|---|
68 | 68 | |
69 | 69 | ***************************************************************************/ |
70 | 70 | |
71 | ||
71 | ||
72 | 72 | { |
73 | chqflag_state *state = screen.machine().driver_data<chqflag_state>(); | |
74 | 73 | |
75 | 74 | bitmap.fill(0, cliprect); |
76 | 75 | |
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); | |
82 | 81 | return 0; |
83 | 82 | } |
r17967 | r17968 | |
---|---|---|
282 | 282 | } |
283 | 283 | |
284 | 284 | |
285 | ||
285 | ||
286 | 286 | { |
287 | bwing_state *state = screen.machine().driver_data<bwing_state>(); | |
288 | 287 | unsigned x, y, shiftx; |
289 | 288 | |
290 | if ( | |
289 | if ( | |
291 | 290 | { |
292 | | |
291 | | |
293 | 292 | shiftx = -8; |
294 | 293 | } |
295 | 294 | else |
296 | 295 | { |
297 | | |
296 | | |
298 | 297 | shiftx = 8; |
299 | 298 | } |
300 | 299 | |
301 | 300 | // draw background |
302 | if (!( | |
301 | if (!( | |
303 | 302 | { |
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); | |
310 | 309 | } |
311 | 310 | else |
312 | 311 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
313 | 312 | |
314 | 313 | // draw low priority sprites |
315 | draw_sprites(screen.machine(), bitmap, cliprect, | |
314 | draw_sprites(screen.machine(), bitmap, cliprect, | |
316 | 315 | |
317 | 316 | // draw foreground |
318 | if (!( | |
317 | if (!( | |
319 | 318 | { |
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); | |
326 | 325 | } |
327 | 326 | |
328 | 327 | // draw high priority sprites |
329 | draw_sprites(screen.machine(), bitmap, cliprect, | |
328 | draw_sprites(screen.machine(), bitmap, cliprect, | |
330 | 329 | |
331 | 330 | // draw text layer |
332 | // if ( | |
331 | // if ( | |
333 | 332 | { |
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); | |
336 | 335 | } |
337 | 336 | return 0; |
338 | 337 | } |
r17967 | r17968 | |
---|---|---|
212 | 212 | } |
213 | 213 | |
214 | 214 | |
215 | ||
215 | ||
216 | 216 | { |
217 | sf_state *state = screen.machine().driver_data<sf_state>(); | |
218 | 217 | |
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); | |
221 | 220 | else |
222 | 221 | bitmap.fill(0, cliprect); |
223 | 222 | |
224 | | |
223 | | |
225 | 224 | |
226 | if ( | |
225 | if ( | |
227 | 226 | draw_sprites(screen.machine(), bitmap, cliprect); |
228 | 227 | |
229 | | |
228 | | |
230 | 229 | return 0; |
231 | 230 | } |
r17967 | r17968 | |
---|---|---|
198 | 198 | } |
199 | 199 | } |
200 | 200 | |
201 | ||
201 | ||
202 | 202 | { |
203 | lsasquad_state *state = screen.machine().driver_data<lsasquad_state>(); | |
204 | 203 | bitmap.fill(511, cliprect); |
205 | 204 | |
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); | |
208 | 207 | draw_sprites(screen.machine(), bitmap, cliprect); |
209 | draw_layer(screen.machine(), bitmap, cliprect, | |
208 | draw_layer(screen.machine(), bitmap, cliprect, | |
210 | 209 | return 0; |
211 | 210 | } |
212 | 211 | |
213 | 212 | |
214 | ||
213 | ||
215 | 214 | { |
216 | 215 | bitmap.fill(511, cliprect); |
217 | 216 | drawbg(screen.machine(), bitmap, cliprect, 0); // bottom |
r17967 | r17968 | |
---|---|---|
498 | 498 | } |
499 | 499 | |
500 | 500 | |
501 | ||
501 | ||
502 | 502 | { |
503 | dooyong_state *state = screen.machine().driver_data<dooyong_state>(); | |
504 | 503 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
505 | 504 | screen.machine().priority_bitmap.fill(0, cliprect); |
506 | 505 | |
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); | |
510 | 509 | |
511 | if (! | |
510 | if (! | |
512 | 511 | draw_sprites(screen.machine(), bitmap, cliprect, 0); |
513 | 512 | return 0; |
514 | 513 | } |
515 | 514 | |
516 | ||
515 | ||
517 | 516 | { |
518 | dooyong_state *state = screen.machine().driver_data<dooyong_state>(); | |
519 | 517 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
520 | 518 | screen.machine().priority_bitmap.fill(0, cliprect); |
521 | 519 | |
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); | |
525 | 523 | |
526 | 524 | draw_sprites(screen.machine(), bitmap, cliprect, 1); |
527 | 525 | return 0; |
528 | 526 | } |
529 | 527 | |
530 | ||
528 | ||
531 | 529 | { |
532 | dooyong_state *state = screen.machine().driver_data<dooyong_state>(); | |
533 | 530 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
534 | 531 | screen.machine().priority_bitmap.fill(0, cliprect); |
535 | 532 | |
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); | |
539 | 536 | |
540 | 537 | draw_sprites(screen.machine(), bitmap, cliprect, 2); |
541 | 538 | return 0; |
542 | 539 | } |
543 | 540 | |
544 | ||
541 | ||
545 | 542 | { |
546 | dooyong_state *state = screen.machine().driver_data<dooyong_state>(); | |
547 | 543 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
548 | 544 | screen.machine().priority_bitmap.fill(0, cliprect); |
549 | 545 | |
550 | if ( | |
546 | if ( | |
551 | 547 | { |
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); | |
554 | 550 | } |
555 | 551 | else |
556 | 552 | { |
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); | |
559 | 555 | } |
560 | | |
556 | | |
561 | 557 | |
562 | 558 | draw_sprites(screen.machine(), bitmap, cliprect, 4); |
563 | 559 | return 0; |
564 | 560 | } |
565 | 561 | |
566 | 562 | |
567 | ||
563 | ||
568 | 564 | { |
569 | dooyong_state *state = screen.machine().driver_data<dooyong_state>(); | |
570 | 565 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
571 | 566 | screen.machine().priority_bitmap.fill(0, cliprect); |
572 | 567 | |
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); | |
577 | 572 | |
578 | 573 | draw_sprites(screen.machine(), bitmap, cliprect, 3); |
579 | 574 | return 0; |
580 | 575 | } |
581 | 576 | |
582 | ||
577 | ||
583 | 578 | { |
584 | dooyong_state *state = screen.machine().driver_data<dooyong_state>(); | |
585 | 579 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
586 | 580 | |
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); | |
591 | 585 | return 0; |
592 | 586 | } |
593 | 587 | |
594 | ||
588 | ||
595 | 589 | { |
596 | dooyong_state *state = screen.machine().driver_data<dooyong_state>(); | |
597 | 590 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
598 | 591 | screen.machine().priority_bitmap.fill(0, cliprect); |
599 | 592 | |
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); | |
604 | 597 | |
605 | 598 | rshark_draw_sprites(screen.machine(), bitmap, cliprect); |
606 | 599 | return 0; |
607 | 600 | } |
608 | 601 | |
609 | ||
602 | ||
610 | 603 | { |
611 | dooyong_state *state = screen.machine().driver_data<dooyong_state>(); | |
612 | 604 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
613 | 605 | screen.machine().priority_bitmap.fill(0, cliprect); |
614 | 606 | |
615 | | |
607 | | |
616 | 608 | |
617 | 609 | rshark_draw_sprites(screen.machine(), bitmap, cliprect); |
618 | 610 | return 0; |
r17967 | r17968 | |
---|---|---|
1527 | 1527 | } |
1528 | 1528 | |
1529 | 1529 | |
1530 | ||
1530 | ||
1531 | 1531 | { |
1532 | cave_state *state = screen.machine().driver_data<cave_state>(); | |
1533 | 1532 | int pri, pri2, GFX; |
1534 | 1533 | int layers_ctrl = -1; |
1535 | 1534 | |
1536 | 1535 | set_pens(screen.machine()); |
1537 | 1536 | |
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(); | |
1542 | 1541 | |
1543 | 1542 | /* Choose the tilemap to display (8x8 tiles or 16x16 tiles) */ |
1544 | 1543 | for (GFX = 0; GFX < 4; GFX++) |
1545 | 1544 | { |
1546 | if ( | |
1545 | if ( | |
1547 | 1546 | { |
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]; | |
1552 | 1551 | } |
1553 | 1552 | } |
1554 | 1553 | |
r17967 | r17968 | |
1575 | 1574 | #if 1 |
1576 | 1575 | /* Show the video registers (cave_videoregs) */ |
1577 | 1576 | 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] ); | |
1580 | 1579 | #endif |
1581 | 1580 | /* 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]); | |
1586 | 1585 | } |
1587 | 1586 | |
1588 | 1587 | /* Show the row / "column" scroll enable flags, when they change state */ |
1589 | | |
1588 | | |
1590 | 1589 | for (GFX = 0; GFX < 4; GFX++) |
1591 | 1590 | { |
1592 | if ( | |
1591 | if ( | |
1593 | 1592 | { |
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; | |
1596 | 1595 | } |
1597 | 1596 | } |
1598 | 1597 | |
1599 | if ( | |
1598 | if ( | |
1600 | 1599 | { |
1601 | 1600 | 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; | |
1607 | 1606 | } |
1608 | 1607 | } |
1609 | 1608 | #endif |
1610 | 1609 | |
1611 | 1610 | cave_sprite_check(screen, cliprect); |
1612 | 1611 | |
1613 | bitmap.fill( | |
1612 | bitmap.fill( | |
1614 | 1613 | |
1615 | 1614 | /* |
1616 | 1615 | Tiles and sprites are ordered by priority (0 back, 3 front) with |
r17967 | r17968 | |
1626 | 1625 | */ |
1627 | 1626 | for (pri = 0; pri <= 3; pri++) // tile / sprite priority |
1628 | 1627 | { |
1629 | if (layers_ctrl & (1 << (pri + 16))) (* | |
1628 | if (layers_ctrl & (1 << (pri + 16))) (* | |
1630 | 1629 | |
1631 | 1630 | for (pri2 = 0; pri2 <= 3; pri2++) // priority of the whole layer |
1632 | 1631 | { |
r17967 | r17968 | |
---|---|---|
245 | 245 | } |
246 | 246 | } |
247 | 247 | |
248 | ||
248 | ||
249 | 249 | { |
250 | brkthru_state *state = screen.machine().driver_data<brkthru_state>(); | |
251 | 250 | |
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); | |
254 | 253 | |
255 | 254 | /* low priority sprites */ |
256 | 255 | draw_sprites(screen.machine(), bitmap, cliprect, 0x01); |
257 | 256 | |
258 | 257 | /* draw background over low priority sprites */ |
259 | | |
258 | | |
260 | 259 | |
261 | 260 | /* high priority sprites */ |
262 | 261 | draw_sprites(screen.machine(), bitmap, cliprect, 0x09); |
263 | 262 | |
264 | 263 | /* fg layer */ |
265 | | |
264 | | |
266 | 265 | |
267 | /* show_register(bitmap, 8, 8, (UINT32) | |
266 | /* show_register(bitmap, 8, 8, (UINT32) | |
268 | 267 | |
269 | 268 | return 0; |
270 | 269 | } |
r17967 | r17968 | |
---|---|---|
168 | 168 | * |
169 | 169 | *************************************/ |
170 | 170 | |
171 | ||
171 | ||
172 | 172 | { |
173 | williams_state *state = screen.machine().driver_data<williams_state>(); | |
174 | 173 | rgb_t pens[16]; |
175 | 174 | int x, y; |
176 | 175 | |
177 | 176 | /* precompute the palette */ |
178 | 177 | for (x = 0; x < 16; x++) |
179 | pens[x] = | |
178 | pens[x] = | |
180 | 179 | |
181 | 180 | /* loop over rows */ |
182 | 181 | for (y = cliprect.min_y; y <= cliprect.max_y; y++) |
183 | 182 | { |
184 | UINT8 *source = & | |
183 | UINT8 *source = & | |
185 | 184 | UINT32 *dest = &bitmap.pix32(y); |
186 | 185 | |
187 | 186 | /* loop over columns */ |
r17967 | r17968 | |
196 | 195 | } |
197 | 196 | |
198 | 197 | |
199 | ||
198 | ||
200 | 199 | { |
201 | williams_state *state = screen.machine().driver_data<williams_state>(); | |
202 | 200 | rgb_t pens[16]; |
203 | 201 | int x, y; |
204 | 202 | |
205 | 203 | /* precompute the palette */ |
206 | 204 | for (x = 0; x < 16; x++) |
207 | pens[x] = | |
205 | pens[x] = | |
208 | 206 | |
209 | 207 | /* 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]; | |
212 | 210 | |
213 | 211 | /* loop over rows */ |
214 | 212 | for (y = cliprect.min_y; y <= cliprect.max_y; y++) |
215 | 213 | { |
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]; | |
218 | 216 | UINT32 *dest = &bitmap.pix32(y); |
219 | 217 | |
220 | 218 | /* 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]; | |
223 | 221 | |
224 | 222 | /* loop over columns */ |
225 | 223 | for (x = cliprect.min_x & ~1; x <= cliprect.max_x; x += 2) |
r17967 | r17968 | |
231 | 229 | source[(x/2) * 256] = 0; |
232 | 230 | |
233 | 231 | /* 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]; | |
236 | 234 | } |
237 | 235 | } |
238 | 236 | return 0; |
239 | 237 | } |
240 | 238 | |
241 | 239 | |
242 | ||
240 | ||
243 | 241 | { |
244 | williams_state *state = screen.machine().driver_data<williams_state>(); | |
245 | 242 | rgb_t pens[16]; |
246 | 243 | int x, y; |
247 | 244 | |
248 | 245 | /* draw the background */ |
249 | | |
246 | | |
250 | 247 | |
251 | 248 | /* fetch the relevant pens */ |
252 | 249 | for (x = 1; x < 16; x++) |
253 | pens[x] = palette_get_color(screen.machine(), | |
250 | pens[x] = palette_get_color(screen.machine(), | |
254 | 251 | |
255 | 252 | /* loop over rows */ |
256 | 253 | for (y = cliprect.min_y; y <= cliprect.max_y; y++) |
257 | 254 | { |
258 | UINT8 *source = & | |
255 | UINT8 *source = & | |
259 | 256 | UINT32 *dest = &bitmap.pix32(y); |
260 | 257 | |
261 | 258 | /* loop over columns */ |
r17967 | r17968 | |
---|---|---|
305 | 305 | } |
306 | 306 | } |
307 | 307 | |
308 | ||
308 | ||
309 | 309 | { |
310 | fuuki32_state *state = screen.machine().driver_data<fuuki32_state>(); | |
311 | 310 | UINT16 layer0_scrollx, layer0_scrolly; |
312 | 311 | UINT16 layer1_scrollx, layer1_scrolly; |
313 | 312 | UINT16 layer2_scrollx, layer2_scrolly; |
r17967 | r17968 | |
325 | 324 | { 2, 0, 1 }, // Title etc. - 0>1 (0,1,2 or 0,2,1 or 2,0,1) |
326 | 325 | { 2, 1, 0 }}; // Char Select, prison stage 1>0 (leaves 1,2,0 or 2,1,0) |
327 | 326 | |
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]; | |
331 | 330 | |
332 | | |
331 | | |
333 | 332 | |
334 | 333 | /* Layers scrolling */ |
335 | 334 | |
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); | |
338 | 337 | |
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; | |
343 | 342 | |
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)); | |
346 | 345 | |
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); | |
351 | 350 | |
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); | |
356 | 355 | |
357 | 356 | /* The bg colour is the last pen i.e. 0x1fff */ |
358 | 357 | bitmap.fill((0x800 * 4) - 1, cliprect); |
r17967 | r17968 | |
366 | 365 | return 0; |
367 | 366 | } |
368 | 367 | |
369 | ||
368 | void | |
370 | 369 | { |
371 | 370 | // rising edge |
372 | if ( | |
371 | if (st | |
373 | 372 | { |
374 | fuuki32_state *state = screen.machine().driver_data<fuuki32_state>(); | |
375 | 373 | |
376 | 374 | /* 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()); | |
381 | 379 | } |
382 | 380 | } |
r17967 | r17968 | |
---|---|---|
263 | 263 | |
264 | 264 | /******************************************************************************/ |
265 | 265 | |
266 | ||
266 | ||
267 | 267 | { |
268 | dec8_state *state = screen.machine().driver_data<dec8_state>(); | |
269 | 268 | |
270 | | |
269 | | |
271 | 270 | |
272 | 271 | 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, | |
272 | screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, | |
274 | 273 | 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); | |
277 | 276 | return 0; |
278 | 277 | } |
279 | 278 | |
r17967 | r17968 | |
307 | 306 | |
308 | 307 | /******************************************************************************/ |
309 | 308 | |
310 | ||
309 | ||
311 | 310 | { |
312 | dec8_state *state = screen.machine().driver_data<dec8_state>(); | |
313 | 311 | 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); | |
316 | 314 | return 0; |
317 | 315 | } |
318 | 316 | |
r17967 | r17968 | |
340 | 338 | |
341 | 339 | /******************************************************************************/ |
342 | 340 | |
343 | ||
341 | ||
344 | 342 | { |
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); | |
347 | 344 | |
348 | 345 | // we mimic the priority scheme in dec0.c, this was originally a bit different, so this could be wrong |
349 | 346 | 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, | |
347 | screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, | |
351 | 348 | screen.machine().device<deco_bac06_device>("tilegen1")->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x08,0x08,0x08,0x08); |
352 | | |
349 | | |
353 | 350 | return 0; |
354 | 351 | } |
355 | 352 | |
r17967 | r17968 | |
379 | 376 | |
380 | 377 | /******************************************************************************/ |
381 | 378 | |
382 | ||
379 | ||
383 | 380 | { |
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])); | |
387 | 383 | |
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); | |
391 | 387 | return 0; |
392 | 388 | } |
393 | 389 | |
394 | ||
390 | ||
395 | 391 | { |
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])); | |
399 | 394 | |
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); | |
406 | 401 | return 0; |
407 | 402 | } |
408 | 403 | |
r17967 | r17968 | |
464 | 459 | |
465 | 460 | /******************************************************************************/ |
466 | 461 | |
467 | ||
462 | ||
468 | 463 | { |
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]); | |
471 | 465 | |
472 | | |
466 | | |
473 | 467 | srdarwin_draw_sprites(screen.machine(), bitmap, cliprect, 0); //* (srdarwin37b5gre) |
474 | | |
468 | | |
475 | 469 | srdarwin_draw_sprites(screen.machine(), bitmap, cliprect, 1); |
476 | | |
470 | | |
477 | 471 | return 0; |
478 | 472 | } |
479 | 473 | |
r17967 | r17968 | |
526 | 520 | |
527 | 521 | /******************************************************************************/ |
528 | 522 | |
529 | ||
523 | ||
530 | 524 | { |
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])); | |
534 | 527 | |
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); | |
540 | 533 | return 0; |
541 | 534 | } |
542 | 535 | |
543 | ||
536 | ||
544 | 537 | { |
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])); | |
548 | 540 | |
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); | |
553 | 545 | return 0; |
554 | 546 | } |
555 | 547 |
r17967 | r17968 | |
---|---|---|
199 | 199 | } |
200 | 200 | |
201 | 201 | |
202 | ||
202 | ||
203 | 203 | { |
204 | tbowl_state *state = screen.machine().driver_data<tbowl_state>(); | |
205 | 204 | |
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 ); | |
212 | 211 | |
213 | 212 | bitmap.fill(0x100, cliprect); /* is there a register controling the colour? looks odd when screen is blank */ |
214 | | |
213 | | |
215 | 214 | 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); | |
218 | 217 | |
219 | 218 | return 0; |
220 | 219 | } |
221 | 220 | |
222 | ||
221 | ||
223 | 222 | { |
224 | tbowl_state *state = screen.machine().driver_data<tbowl_state>(); | |
225 | 223 | |
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 ); | |
232 | 230 | |
233 | 231 | bitmap.fill(0x100, cliprect); /* is there a register controling the colour? looks odd when screen is blank */ |
234 | | |
232 | | |
235 | 233 | 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); | |
238 | 236 | |
239 | 237 | return 0; |
240 | 238 | } |
r17967 | r17968 | |
---|---|---|
225 | 225 | } |
226 | 226 | } |
227 | 227 | |
228 | ||
228 | ||
229 | 229 | { |
230 | battlane_state *state = screen.machine().driver_data<battlane_state>(); | |
231 | 230 | |
232 | | |
231 | | |
233 | 232 | |
234 | | |
233 | | |
235 | 234 | draw_sprites(screen.machine(), bitmap, cliprect); |
236 | 235 | draw_fg_bitmap(screen.machine(), bitmap); |
237 | 236 | return 0; |
r17967 | r17968 | |
---|---|---|
503 | 503 | */ |
504 | 504 | |
505 | 505 | |
506 | ||
506 | ||
507 | 507 | { |
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); | |
511 | 510 | UINT16 *cram, *tram; |
512 | 511 | int color_latch; |
513 | 512 | UINT32 *mram; |
514 | 513 | int x, y; |
515 | 514 | |
516 | 515 | /* draw the playfield */ |
517 | | |
516 | | |
518 | 517 | |
519 | 518 | /* draw the alpha layer */ |
520 | | |
519 | | |
521 | 520 | |
522 | 521 | /* 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); | |
527 | 526 | |
528 | 527 | /* now do the nasty blend */ |
529 | 528 | for (y = cliprect.min_y; y <= cliprect.max_y; y++) |
530 | 529 | { |
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); | |
533 | 532 | UINT16 *mo = &mo_bitmap->pix16(y); |
534 | 533 | UINT16 *tm = &tm_bitmap->pix16(y); |
535 | 534 | UINT32 *dst = &bitmap.pix32(y); |
536 | 535 | |
537 | 536 | /* Primal Rage: no TRAM, slightly different priorities */ |
538 | if ( | |
537 | if ( | |
539 | 538 | { |
540 | 539 | for (x = cliprect.min_x; x <= cliprect.max_x; x++) |
541 | 540 | { |
r17967 | r17968 | |
629 | 628 | return 0; |
630 | 629 | } |
631 | 630 | |
632 | ||
631 | void | |
633 | 632 | { |
634 | 633 | // rising edge |
635 | if ( | |
634 | if (st | |
636 | 635 | { |
637 | atarigt_state *state = screen.machine().driver_data<atarigt_state>(); | |
638 | 636 | |
639 | atarirle_eof( | |
637 | atarirle_eof( | |
640 | 638 | } |
641 | 639 | } |
r17967 | r17968 | |
---|---|---|
276 | 276 | } |
277 | 277 | |
278 | 278 | |
279 | ||
279 | ||
280 | 280 | { |
281 | thepit_state *state = screen.machine().driver_data<thepit_state>(); | |
282 | 281 | offs_t offs; |
283 | 282 | |
284 | 283 | for (offs = 0; offs < 32; offs++) |
285 | 284 | { |
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; | |
288 | 287 | |
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); | |
291 | 290 | |
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]); | |
294 | 293 | } |
295 | 294 | |
296 | 295 | /* 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); | |
299 | 298 | |
300 | 299 | /* low priority sprites */ |
301 | 300 | draw_sprites(screen.machine(), bitmap, cliprect, 0); |
302 | 301 | |
303 | 302 | /* high priority tiles */ |
304 | | |
303 | | |
305 | 304 | |
306 | 305 | /* high priority sprites */ |
307 | 306 | draw_sprites(screen.machine(), bitmap, cliprect, 1); |
r17967 | r17968 | |
---|---|---|
263 | 263 | * |
264 | 264 | *************************************/ |
265 | 265 | |
266 | ||
266 | ||
267 | 267 | { |
268 | rpunch_state *state = screen.machine().driver_data<rpunch_state>(); | |
269 | 268 | int effbins; |
270 | 269 | |
271 | 270 | /* this seems like the most plausible explanation */ |
272 | effbins = ( | |
271 | effbins = ( | |
273 | 272 | |
274 | | |
273 | | |
275 | 274 | 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) | |
279 | 278 | draw_bitmap(screen.machine(), bitmap, cliprect); |
280 | 279 | return 0; |
281 | 280 | } |
r17967 | r17968 | |
---|---|---|
241 | 241 | * |
242 | 242 | *************************************/ |
243 | 243 | |
244 | ||
244 | ||
245 | 245 | { |
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 */ | |
249 | 248 | pen_t black = get_black_pen(screen.machine()); |
250 | 249 | int x, y, offs; |
251 | 250 | |
252 | 251 | /* draw the sprites */ |
253 | | |
252 | | |
254 | 253 | for (offs = 0; offs < 0x20; offs++) |
255 | 254 | if (spriteaddr[offs + 0x00] != 0) |
256 | 255 | { |
r17967 | r17968 | |
261 | 260 | int which = spriteaddr[offs + 0x20]; |
262 | 261 | int color = 0; |
263 | 262 | |
264 | drawgfx_transpen( | |
263 | drawgfx_transpen( | |
265 | 264 | if (x >= 256 - 16) |
266 | drawgfx_transpen( | |
265 | drawgfx_transpen( | |
267 | 266 | } |
268 | 267 | |
269 | 268 | /* draw the bitmap to the screen, looping over Y */ |
r17967 | r17968 | |
272 | 271 | UINT16 *dst = &bitmap.pix16(y); |
273 | 272 | |
274 | 273 | /* if we're in the VBLANK region, just fill with black */ |
275 | if (~ | |
274 | if (~ | |
276 | 275 | { |
277 | 276 | for (x = cliprect.min_x; x <= cliprect.max_x; x++) |
278 | 277 | dst[x] = black; |
r17967 | r17968 | |
281 | 280 | /* non-VBLANK region: merge the sprites and the bitmap */ |
282 | 281 | else |
283 | 282 | { |
284 | UINT16 *mosrc = & | |
283 | UINT16 *mosrc = & | |
285 | 284 | int effy = y ^ flip; |
286 | 285 | UINT8 *src[2]; |
287 | 286 | |
288 | 287 | /* 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)]; | |
291 | 290 | |
292 | 291 | /* loop over X */ |
293 | 292 | for (x = cliprect.min_x; x <= cliprect.max_x; x++) |
r17967 | r17968 | |
310 | 309 | pix = mopix | 0x10; |
311 | 310 | |
312 | 311 | /* the high bit is the bank select */ |
313 | pix |= | |
312 | pix |= | |
314 | 313 | |
315 | 314 | /* store the pixel value and also a priority value based on the topmost bit */ |
316 | 315 | dst[x] = pix; |
r17967 | r17968 | |
---|---|---|
721 | 721 | state->m_scanline_timer->adjust(machine.primary_screen->time_until_pos(sy), sy); |
722 | 722 | } |
723 | 723 | |
724 | ||
724 | ||
725 | 725 | { |
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); | |
731 | 730 | draw_obj1(screen.machine(), bitmap); |
732 | 731 | |
733 | 732 | return 0; |
r17967 | r17968 | |
---|---|---|
74 | 74 | |
75 | 75 | ***************************************************************************/ |
76 | 76 | |
77 | ||
77 | ||
78 | 78 | { |
79 | crimfght_state *state = screen.machine().driver_data<crimfght_state>(); | |
80 | 79 | |
81 | k052109_tilemap_update( | |
80 | k052109_tilemap_update( | |
82 | 81 | |
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); | |
89 | 88 | return 0; |
90 | 89 | } |
r17967 | r17968 | |
---|---|---|
18 | 18 | SCREEN REFRESH |
19 | 19 | **************************************************************/ |
20 | 20 | |
21 | ||
21 | ||
22 | 22 | { |
23 | asuka_state *state = screen.machine().driver_data<asuka_state>(); | |
24 | 23 | UINT8 layer[3]; |
25 | 24 | |
26 | tc0100scn_tilemap_update( | |
25 | tc0100scn_tilemap_update( | |
27 | 26 | |
28 | layer[0] = tc0100scn_bottomlayer( | |
27 | layer[0] = tc0100scn_bottomlayer( | |
29 | 28 | layer[1] = layer[0] ^ 1; |
30 | 29 | layer[2] = 2; |
31 | 30 | |
r17967 | r17968 | |
34 | 33 | /* Ensure screen blanked even when bottom layer not drawn due to disable bit */ |
35 | 34 | bitmap.fill(0, cliprect); |
36 | 35 | |
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); | |
40 | 39 | |
41 | 40 | /* Sprites may be over or under top bg layer */ |
42 | pc090oj_draw_sprites( | |
41 | pc090oj_draw_sprites( | |
43 | 42 | return 0; |
44 | 43 | } |
45 | 44 | |
46 | 45 | |
47 | ||
46 | ||
48 | 47 | { |
49 | asuka_state *state = screen.machine().driver_data<asuka_state>(); | |
50 | 48 | UINT8 layer[3]; |
51 | 49 | |
52 | tc0100scn_tilemap_update( | |
50 | tc0100scn_tilemap_update( | |
53 | 51 | |
54 | layer[0] = tc0100scn_bottomlayer( | |
52 | layer[0] = tc0100scn_bottomlayer( | |
55 | 53 | layer[1] = layer[0] ^ 1; |
56 | 54 | layer[2] = 2; |
57 | 55 | |
r17967 | r17968 | |
60 | 58 | /* Ensure screen blanked even when bottom layer not drawn due to disable bit */ |
61 | 59 | bitmap.fill(0, cliprect); |
62 | 60 | |
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); | |
66 | 64 | |
67 | 65 | /* Sprites are always over both bg layers */ |
68 | pc090oj_draw_sprites( | |
66 | pc090oj_draw_sprites( | |
69 | 67 | return 0; |
70 | 68 | } |
r17967 | r17968 | |
---|---|---|
103 | 103 | } |
104 | 104 | |
105 | 105 | |
106 | ||
106 | ||
107 | 107 | { |
108 | triplhnt_state *state = screen.machine().driver_data<triplhnt_state>(); | |
109 | 108 | device_t *discrete = screen.machine().device("discrete"); |
110 | 109 | |
111 | | |
110 | | |
112 | 111 | |
113 | | |
112 | | |
114 | 113 | |
115 | 114 | draw_sprites(screen.machine(), bitmap, cliprect); |
116 | 115 | |
117 | 116 | 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); | |
120 | 119 | return 0; |
121 | 120 | } |
r17967 | r17968 | |
---|---|---|
189 | 189 | * |
190 | 190 | *************************************/ |
191 | 191 | |
192 | ||
192 | ||
193 | 193 | { |
194 | pooyan_state *state = screen.machine().driver_data<pooyan_state>(); | |
195 | 194 | |
196 | | |
195 | | |
197 | 196 | draw_sprites(screen.machine(), bitmap, cliprect); |
198 | 197 | return 0; |
199 | 198 | } |
r17967 | r17968 | |
---|---|---|
138 | 138 | } |
139 | 139 | |
140 | 140 | |
141 | ||
141 | ||
142 | 142 | { |
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); | |
145 | 144 | draw_sprites(screen.machine(), bitmap,cliprect); |
146 | | |
145 | | |
147 | 146 | return 0; |
148 | 147 | } |
r17967 | r17968 | |
---|---|---|
58 | 58 | |
59 | 59 | ***************************************************************************/ |
60 | 60 | |
61 | ||
61 | ||
62 | 62 | { |
63 | rollerg_state *state = screen.machine().driver_data<rollerg_state>(); | |
64 | 63 | int bg_colorbase = 16; |
65 | 64 | |
66 | 65 | screen.machine().priority_bitmap.fill(0, cliprect); |
67 | 66 | 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); | |
70 | 69 | return 0; |
71 | 70 | } |
r17967 | r17968 | |
---|---|---|
237 | 237 | } |
238 | 238 | |
239 | 239 | |
240 | ||
240 | ||
241 | 241 | { |
242 | wolfpack_state *state = screen.machine().driver_data<wolfpack_state>(); | |
243 | 242 | int i; |
244 | 243 | int j; |
245 | 244 | |
246 | 245 | 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; | |
251 | 250 | |
252 | 251 | colortable_palette_set_color(screen.machine().colortable, 3, MAKE_RGB(color,color,color)); |
253 | 252 | colortable_palette_set_color(screen.machine().colortable, 7, MAKE_RGB(color < 0xb8 ? color + 0x48 : 0xff, |
254 | 253 | color < 0xb8 ? color + 0x48 : 0xff, |
255 | 254 | color < 0xb8 ? color + 0x48 : 0xff)); |
256 | 255 | |
257 | bitmap.fill( | |
256 | bitmap.fill( | |
258 | 257 | |
259 | 258 | for (i = 0; i < 8; i++) |
260 | 259 | for (j = 0; j < 32; j++) |
261 | 260 | { |
262 | int code = | |
261 | int code = | |
263 | 262 | |
264 | 263 | drawgfx_opaque(bitmap, cliprect, |
265 | 264 | screen.machine().gfx[0], |
266 | 265 | code, |
267 | | |
266 | | |
268 | 267 | 0, 0, |
269 | 268 | 16 * j, |
270 | 269 | 192 + 8 * i); |
r17967 | r17968 | |
278 | 277 | } |
279 | 278 | |
280 | 279 | |
281 | ||
280 | void | |
282 | 281 | { |
283 | 282 | // rising edge |
284 | if ( | |
283 | if (st | |
285 | 284 | { |
286 | wolfpack_state *state = screen.machine().driver_data<wolfpack_state>(); | |
287 | 285 | |
288 | 286 | int x; |
289 | 287 | int y; |
290 | 288 | |
291 | | |
289 | | |
292 | 290 | |
293 | draw_ship(screen.machine(), | |
291 | draw_ship(screen.machine(), | |
294 | 292 | |
295 | for (y = 128; y < 224 - | |
293 | for (y = 128; y < 224 - | |
296 | 294 | { |
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; | |
299 | 297 | |
300 | 298 | for (x = 2 * x1; x < 2 * x2; x++) |
301 | 299 | { |
302 | if (x < 0 || x >= | |
300 | if (x < 0 || x >= | |
303 | 301 | continue; |
304 | if (y < 0 || y >= | |
302 | if (y < 0 || y >= | |
305 | 303 | continue; |
306 | 304 | |
307 | if (state->m_helper.pix16(y, x)) | |
308 | state->m_collision = 1; | |
305 | if (m_helper.pix16(y, x)) | |
306 | m_collision = 1; | |
309 | 307 | } |
310 | 308 | } |
311 | 309 | |
312 | | |
310 | | |
313 | 311 | } |
314 | 312 | } |
r17967 | r17968 | |
---|---|---|
100 | 100 | } |
101 | 101 | } |
102 | 102 | |
103 | ||
103 | ||
104 | 104 | { |
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); | |
110 | 109 | draw_sprites(screen.machine(),bitmap,cliprect); |
111 | | |
110 | | |
112 | 111 | return 0; |
113 | 112 | } |
r17967 | r17968 | |
---|---|---|
99 | 99 | } |
100 | 100 | } |
101 | 101 | |
102 | ||
102 | ||
103 | 103 | { |
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); | |
106 | 105 | draw_bullets(screen.machine(), bitmap, cliprect); |
107 | 106 | return 0; |
108 | 107 | } |
r17967 | r17968 | |
---|---|---|
348 | 348 | * |
349 | 349 | *************************************/ |
350 | 350 | |
351 | ||
351 | ||
352 | 352 | { |
353 | exerion_state *state = screen.machine().driver_data<exerion_state>(); | |
354 | 353 | int sx, sy, offs, i; |
355 | 354 | |
356 | 355 | /* draw background */ |
357 | 356 | draw_background(screen.machine(), bitmap, cliprect); |
358 | 357 | |
359 | 358 | /* draw sprites */ |
360 | for (i = 0; i < | |
359 | for (i = 0; i < | |
361 | 360 | { |
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; | |
366 | 365 | |
367 | 366 | int xflip = flags & 0x80; |
368 | 367 | int yflip = flags & 0x40; |
r17967 | r17968 | |
370 | 369 | int wide = flags & 0x08; |
371 | 370 | int code2 = code; |
372 | 371 | |
373 | int color = ((flags >> 1) & 0x03) | ((code >> 5) & 0x04) | (code & 0x08) | ( | |
372 | int color = ((flags >> 1) & 0x03) | ((code >> 5) & 0x04) | (code & 0x08) | ( | |
374 | 373 | gfx_element *gfx = doubled ? screen.machine().gfx[2] : screen.machine().gfx[1]; |
375 | 374 | |
376 | if ( | |
375 | if ( | |
377 | 376 | { |
378 | 377 | x = 64*8 - gfx->width() - x; |
379 | 378 | y = 32*8 - gfx->height() - y; |
r17967 | r17968 | |
403 | 402 | for (sy = cliprect.min_y/8; sy <= cliprect.max_y/8; sy++) |
404 | 403 | for (sx = VISIBLE_X_MIN/8; sx < VISIBLE_X_MAX/8; sx++) |
405 | 404 | { |
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; | |
408 | 407 | |
409 | 408 | offs = sx + sy * 64; |
410 | 409 | 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); | |
414 | 413 | } |
415 | 414 | |
416 | 415 | return 0; |
r17967 | r17968 | |
---|---|---|
173 | 173 | |
174 | 174 | ***************************************************************************/ |
175 | 175 | |
176 | ||
176 | ||
177 | 177 | { |
178 | wrally_state *state = screen.machine().driver_data<wrally_state>(); | |
179 | 178 | /* 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]); | |
185 | 184 | } 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]); | |
190 | 189 | } |
191 | 190 | |
192 | 191 | /* 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); | |
196 | 195 | |
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); | |
199 | 198 | |
200 | 199 | draw_sprites(screen.machine(),bitmap,cliprect,0); |
201 | 200 | |
202 | | |
201 | | |
203 | 202 | |
204 | 203 | draw_sprites(screen.machine(),bitmap,cliprect,1); |
205 | 204 |
r17967 | r17968 | |
---|---|---|
75 | 75 | |
76 | 76 | |
77 | 77 | |
78 | ||
78 | ||
79 | 79 | { |
80 | mosaic_state *state = screen.machine().driver_data<mosaic_state>(); | |
81 | 80 | |
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); | |
84 | 83 | return 0; |
85 | 84 | } |
r17967 | r17968 | |
---|---|---|
37 | 37 | } |
38 | 38 | |
39 | 39 | |
40 | ||
40 | ||
41 | 41 | { |
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; | |
45 | 44 | int offs; |
46 | 45 | |
47 | 46 | device_t *discrete = screen.machine().device("discrete"); |
r17967 | r17968 | |
120 | 119 | return 0; |
121 | 120 | } |
122 | 121 | |
123 | ||
122 | ||
124 | 123 | { |
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; | |
128 | 126 | int offs; |
129 | 127 | |
130 | 128 | /* for every character in the Video RAM, check if it has been modified */ |
r17967 | r17968 | |
---|---|---|
115 | 115 | m_fg_layer->set_transparent_pen(0); |
116 | 116 | } |
117 | 117 | |
118 | ||
118 | ||
119 | 119 | { |
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); | |
124 | 123 | return 0; |
125 | 124 | } |
r17967 | r17968 | |
---|---|---|
127 | 127 | m_txtilemap->set_transparent_pen(0); |
128 | 128 | } |
129 | 129 | |
130 | ||
130 | ||
131 | 131 | { |
132 | darkmist_state *state = screen.machine().driver_data<darkmist_state>(); | |
133 | UINT8 *spriteram = state->m_spriteram; | |
132 | UINT8 *spriteram = m_spriteram; | |
134 | 133 | |
135 | #define DM_GETSCROLL(n) ((( | |
134 | #define DM_GETSCROLL(n) ((( | |
136 | 135 | |
137 | 136 | set_pens(screen.machine()); |
138 | 137 | |
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)); | |
143 | 142 | |
144 | 143 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
145 | 144 | |
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); | |
148 | 147 | |
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); | |
151 | 150 | |
152 | if( | |
151 | if( | |
153 | 152 | { |
154 | 153 | /* |
155 | 154 | Sprites |
r17967 | r17968 | |
163 | 162 | |
164 | 163 | */ |
165 | 164 | int i,fx,fy,tile,palette; |
166 | for(i=0;i< | |
165 | for(i=0;i< | |
167 | 166 | { |
168 | 167 | fy=spriteram[i+1]&0x40; |
169 | 168 | fx=spriteram[i+1]&0x80; |
r17967 | r17968 | |
171 | 170 | tile=spriteram[i+0]; |
172 | 171 | |
173 | 172 | if(spriteram[i+1]&0x20) |
174 | tile += (* | |
173 | tile += (* | |
175 | 174 | |
176 | 175 | palette=((spriteram[i+1])>>1)&0xf; |
177 | 176 | |
r17967 | r17968 | |
190 | 189 | } |
191 | 190 | } |
192 | 191 | |
193 | if( | |
192 | if( | |
194 | 193 | { |
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); | |
197 | 196 | } |
198 | 197 | |
199 | 198 |
r17967 | r17968 | |
---|---|---|
86 | 86 | |
87 | 87 | ***************************************************************************/ |
88 | 88 | |
89 | ||
89 | ||
90 | 90 | { |
91 | ajax_state *state = screen.machine().driver_data<ajax_state>(); | |
92 | 91 | |
93 | k052109_tilemap_update( | |
92 | k052109_tilemap_update( | |
94 | 93 | |
95 | 94 | screen.machine().priority_bitmap.fill(0, cliprect); |
96 | 95 | |
97 | 96 | 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) | |
100 | 99 | { |
101 | 100 | /* 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); | |
104 | 103 | } |
105 | 104 | else |
106 | 105 | { |
107 | 106 | /* 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); | |
110 | 109 | } |
111 | k052109_tilemap_draw( | |
110 | k052109_tilemap_draw( | |
112 | 111 | |
113 | k051960_sprites_draw( | |
112 | k051960_sprites_draw( | |
114 | 113 | return 0; |
115 | 114 | } |
r17967 | r17968 | |
---|---|---|
72 | 72 | } |
73 | 73 | |
74 | 74 | |
75 | ||
75 | ||
76 | 76 | { |
77 | funybubl_state *state = screen.machine().driver_data<funybubl_state>(); | |
78 | 77 | int x, y, offs; |
79 | 78 | offs = 0; |
80 | 79 | |
r17967 | r17968 | |
87 | 86 | { |
88 | 87 | int data; |
89 | 88 | |
90 | data = | |
89 | data = | |
91 | 90 | drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0], data & 0x7fff, (data & 0x8000) ? 2 : 1, 0, 0, x*8, y*8, 0); |
92 | 91 | offs += 2; |
93 | 92 | } |
r17967 | r17968 | |
103 | 102 | fp = fopen("funnybubsprites", "w+b"); |
104 | 103 | if (fp) |
105 | 104 | { |
106 | fwrite(& | |
105 | fwrite(& | |
107 | 106 | fclose(fp); |
108 | 107 | } |
109 | 108 | } |
r17967 | r17968 | |
---|---|---|
57 | 57 | 8, 8, 64, 32); |
58 | 58 | } |
59 | 59 | |
60 | ||
60 | ||
61 | 61 | { |
62 | shisen_state *state = screen.machine().driver_data<shisen_state>(); | |
63 | 62 | |
64 | 63 | // on Irem boards, screen flip is handled in both hardware and software. |
65 | 64 | // this game doesn't have cocktail mode so if there's software control we don't |
66 | 65 | // know where it is mapped. |
67 | | |
66 | | |
68 | 67 | |
69 | 68 | |
70 | | |
69 | | |
71 | 70 | return 0; |
72 | 71 | } |
r17967 | r17968 | |
---|---|---|
57 | 57 | * |
58 | 58 | *************************************/ |
59 | 59 | |
60 | ||
60 | ||
61 | 61 | { |
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; | |
65 | 64 | pen_t pens[NUM_PENS]; |
66 | 65 | int x, y; |
67 | 66 | |
r17967 | r17968 | |
74 | 73 | for (x = cliprect.min_x; x <= cliprect.max_x; x++) |
75 | 74 | { |
76 | 75 | UINT8 effx = x ^ xorx; |
77 | UINT8 yscroll = (effx < 192) ? * | |
76 | UINT8 yscroll = (effx < 192) ? * | |
78 | 77 | UINT8 effy = (y ^ xory) + yscroll; |
79 | UINT8 vrambyte = | |
78 | UINT8 vrambyte = | |
80 | 79 | UINT8 shifted = vrambyte >> (4 * (effx % 2)); |
81 | 80 | dst[x] = pens[shifted & 0x0f]; |
82 | 81 | } |
r17967 | r17968 | |
---|---|---|
782 | 782 | |
783 | 783 | ***************************************************************************/ |
784 | 784 | |
785 | ||
785 | ||
786 | 786 | { |
787 | 787 | return nmk16_bg_spr_tx_update(screen, bitmap, cliprect); |
788 | 788 | } |
789 | 789 | |
790 | ||
790 | ||
791 | 791 | { |
792 | 792 | return nmk16_bg_sprflip_tx_update(screen, bitmap, cliprect); |
793 | 793 | } |
794 | 794 | |
795 | ||
795 | ||
796 | 796 | { |
797 | nmk16_state *state = screen.machine().driver_data<nmk16_state>(); | |
798 | 797 | /* I think the protection device probably copies this to the regs... */ |
799 | UINT16 tharrier_scroll = | |
798 | UINT16 tharrier_scroll = | |
800 | 799 | |
801 | | |
800 | | |
802 | 801 | |
803 | 802 | return nmk16_bg_sprflip_tx_update(screen, bitmap, cliprect); |
804 | 803 | } |
805 | 804 | |
806 | ||
805 | ||
807 | 806 | { |
808 | 807 | static int bittbl[8] = { |
809 | 808 | 4, 6, 5, 7, 3, 2, 1, 0 |
r17967 | r17968 | |
812 | 811 | return nmk16_complexbg_sprswap_tx_update(screen, bitmap, cliprect, bittbl); |
813 | 812 | } |
814 | 813 | |
815 | ||
814 | ||
816 | 815 | { |
817 | 816 | static int bittbl[8] = { |
818 | 817 | 7, 6, 5, 4, 3, 2, 1, 0 |
r17967 | r17968 | |
821 | 820 | return nmk16_complexbg_sprswap_tx_update(screen, bitmap, cliprect, bittbl); |
822 | 821 | } |
823 | 822 | |
824 | ||
823 | ||
825 | 824 | { |
826 | 825 | return nmk16_bioshipbg_sprflip_tx_update(screen, bitmap, cliprect); |
827 | 826 | } |
828 | 827 | |
829 | ||
828 | ||
830 | 829 | { |
831 | 830 | return nmk16_bg_fg_spr_tx_update(screen, bitmap, cliprect); |
832 | 831 | } |
833 | 832 | |
834 | ||
833 | ||
835 | 834 | { |
836 | 835 | return nmk16_bg_spr_update(screen, bitmap, cliprect); |
837 | 836 | } |
838 | 837 | |
839 | ||
838 | void | |
840 | 839 | { |
841 | 840 | // rising edge |
842 | if ( | |
841 | if (st | |
843 | 842 | { |
844 | nmk16_state *state = screen.machine().driver_data<nmk16_state>(); | |
845 | 843 | /* sprites are DMA'd from Main RAM to a private buffer automatically |
846 | 844 | (or at least this is how I interpret the datasheet) */ |
847 | 845 | |
848 | 846 | /* -- I actually see little evidence to support this, sprite lag |
849 | 847 | in some games should be checked on real boards */ |
850 | 848 | |
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); | |
853 | 851 | } |
854 | 852 | } |
855 | 853 | |
856 | ||
854 | void | |
857 | 855 | { |
858 | 856 | // rising edge |
859 | if ( | |
857 | if (st | |
860 | 858 | { |
861 | nmk16_state *state = screen.machine().driver_data<nmk16_state>(); | |
862 | 859 | /* sprites are DMA'd from Main RAM to a private buffer automatically |
863 | 860 | (or at least this is how I interpret the datasheet) */ |
864 | 861 | |
r17967 | r17968 | |
867 | 864 | |
868 | 865 | /* strahl sprites are allocated in memory range FF000-FFFFF */ |
869 | 866 | |
870 | memcpy( | |
867 | memcpy( | |
871 | 868 | } |
872 | 869 | } |
873 | 870 | |
r17967 | r17968 | |
993 | 990 | nmk16_draw_sprites_flipsupported(machine, bitmap,cliprect,0); |
994 | 991 | } |
995 | 992 | |
996 | SCREEN_UPDATE_IND16( afega ) { video_update(screen.machine(),bitmap,cliprect, 1, -0x100,+0x000, 0x0001); return 0; } | |
997 | SCREEN_UPDATE_IND16( bubl2000 ) { video_update(screen.machine(),bitmap,cliprect, 0, -0x100,+0x000, 0x0001); return 0; } // no flipscreen support, I really would confirmation from the schematics | |
998 | SCREEN_UPDATE_IND16( redhawkb ) { video_update(screen.machine(),bitmap,cliprect, 0, +0x000,+0x100, 0x0001); return 0; } | |
999 | SCREEN_UPDATE_IND16( redhawki ) { redhawki_video_update(screen.machine(),bitmap,cliprect); return 0;} // strange scroll regs | |
993 | UINT32 nmk16_state::screen_update_afega(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ video_update(screen.machine(),bitmap,cliprect, 1, -0x100,+0x000, 0x0001); return 0; } | |
994 | UINT32 nmk16_state::screen_update_bubl2000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ video_update(screen.machine(),bitmap,cliprect, 0, -0x100,+0x000, 0x0001); return 0; } // no flipscreen support, I really would confirmation from the schematics | |
995 | UINT32 nmk16_state::screen_update_redhawkb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ video_update(screen.machine(),bitmap,cliprect, 0, +0x000,+0x100, 0x0001); return 0; } | |
996 | UINT32 nmk16_state::screen_update_redhawki(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ redhawki_video_update(screen.machine(),bitmap,cliprect); return 0;} // strange scroll regs | |
1000 | 997 | |
1001 | ||
998 | ||
1002 | 999 | { |
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]); | |
1006 | 1002 | |
1007 | | |
1003 | | |
1008 | 1004 | |
1009 | 1005 | nmk16_draw_sprites_flipsupported(screen.machine(), bitmap,cliprect,3); |
1010 | 1006 | nmk16_draw_sprites_flipsupported(screen.machine(), bitmap,cliprect,2); |
1011 | 1007 | nmk16_draw_sprites_flipsupported(screen.machine(), bitmap,cliprect,1); |
1012 | 1008 | nmk16_draw_sprites_flipsupported(screen.machine(), bitmap,cliprect,0); |
1013 | 1009 | |
1014 | | |
1010 | | |
1015 | 1011 | return 0; |
1016 | 1012 | } |
1017 | 1013 |
r17967 | r17968 | |
---|---|---|
69 | 69 | } |
70 | 70 | } |
71 | 71 | |
72 | ||
72 | ||
73 | 73 | { |
74 | nitedrvr_state *state = screen.machine().driver_data<nitedrvr_state>(); | |
75 | 74 | |
76 | | |
75 | | |
77 | 76 | draw_roadway(screen.machine(), bitmap); |
78 | 77 | return 0; |
79 | 78 | } |
r17967 | r17968 | |
---|---|---|
130 | 130 | |
131 | 131 | ***************************************************************************/ |
132 | 132 | |
133 | ||
133 | ||
134 | 134 | { |
135 | m10_state *state = screen.machine().driver_data<m10_state>(); | |
136 | 135 | int offs; |
137 | 136 | static const int color[4]= { 3, 3, 5, 5 }; |
138 | 137 | static const int xpos[4] = { 4*8, 26*8, 7*8, 6*8}; |
r17967 | r17968 | |
141 | 140 | bitmap.fill(0, cliprect); |
142 | 141 | |
143 | 142 | 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); | |
146 | 145 | else |
147 | drawgfx_opaque(bitmap, cliprect, | |
146 | drawgfx_opaque(bitmap, cliprect, | |
148 | 147 | |
149 | if ( | |
148 | if ( | |
150 | 149 | { |
151 | 150 | int y; |
152 | 151 | |
r17967 | r17968 | |
154 | 153 | plot_pixel_m10(screen.machine(), bitmap, 16, y, 1); |
155 | 154 | } |
156 | 155 | |
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); | |
159 | 158 | |
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); | |
162 | 161 | |
163 | 162 | return 0; |
164 | 163 | } |
r17967 | r17968 | |
170 | 169 | |
171 | 170 | ***************************************************************************/ |
172 | 171 | |
173 | ||
172 | ||
174 | 173 | { |
175 | m10_state *state = screen.machine().driver_data<m10_state>(); | |
176 | 174 | int offs; |
177 | 175 | |
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); | |
180 | 178 | |
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); | |
184 | 182 | |
185 | 183 | return 0; |
186 | 184 | } |
r17967 | r17968 | |
---|---|---|
299 | 299 | DECLARE_DRIVER_INIT(bfcobra); |
300 | 300 | virtual void machine_reset(); |
301 | 301 | virtual void video_start(); |
302 | UINT32 screen_update_bfcobra(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
302 | 303 | }; |
303 | 304 | |
304 | 305 | |
r17967 | r17968 | |
366 | 367 | } |
367 | 368 | } |
368 | 369 | |
369 | static | |
370 | UINT32 bfcobra_state::screen_update_bfcobra(screen_device &screen, bitmap_rgb | |
370 | 371 | { |
371 | bfcobra_state *state = screen.machine().driver_data<bfcobra_state>(); | |
372 | 372 | int x, y; |
373 | 373 | UINT8 *src; |
374 | 374 | UINT32 *dest; |
r17967 | r17968 | |
378 | 378 | |
379 | 379 | /* Select screen has to be programmed into two registers */ |
380 | 380 | /* No idea what happens if the registers are different */ |
381 | if ( | |
381 | if ( | |
382 | 382 | offset = 0x10000; |
383 | 383 | else |
384 | 384 | offset = 0; |
385 | 385 | |
386 | if( | |
386 | if( | |
387 | 387 | { |
388 | hirescol = state->m_col3bit; | |
389 | lorescol = state->m_col7bit; | |
388 | hirescol = m_col3bit; | |
389 | lorescol = m_col7bit; | |
390 | 390 | } |
391 | else if( | |
391 | else if( | |
392 | 392 | { |
393 | hirescol = state->m_col4bit; | |
394 | lorescol = state->m_col6bit; | |
393 | hirescol = m_col4bit; | |
394 | lorescol = m_col6bit; | |
395 | 395 | } |
396 | 396 | else |
397 | 397 | { |
398 | hirescol = state->m_col4bit; | |
399 | lorescol = state->m_col8bit; | |
398 | hirescol = m_col4bit; | |
399 | lorescol = m_col8bit; | |
400 | 400 | } |
401 | 401 | |
402 | 402 | for (y = cliprect.min_y; y <= cliprect.max_y; ++y) |
403 | 403 | { |
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]; | |
406 | 406 | dest = &bitmap.pix32(y); |
407 | 407 | |
408 | 408 | for (x = cliprect.min_x; x <= cliprect.max_x / 2; ++x) |
409 | 409 | { |
410 | UINT8 x_offset = x + | |
410 | UINT8 x_offset = x + | |
411 | 411 | UINT8 pen = *(src + x_offset); |
412 | 412 | |
413 | if ( ( | |
413 | if ( ( | |
414 | 414 | { |
415 | 415 | *dest++ = screen.machine().pens[hirescol[pen & 0x0f]]; |
416 | 416 | *dest++ = screen.machine().pens[hirescol[(pen >> 4) & 0x0f]]; |
r17967 | r17968 | |
1794 | 1794 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1795 | 1795 | MCFG_SCREEN_SIZE(512, 256) |
1796 | 1796 | MCFG_SCREEN_VISIBLE_AREA(0, 512 - 1, 0, 256 - 1) |
1797 | MCFG_SCREEN_UPDATE_ | |
1797 | MCFG_SCREEN_UPDATE_DR | |
1798 | 1798 | |
1799 | 1799 | MCFG_PALETTE_LENGTH(256) |
1800 | 1800 |
r17967 | r17968 | |
---|---|---|
254 | 254 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
255 | 255 | MCFG_SCREEN_SIZE(64*8, 32*8) |
256 | 256 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1) |
257 | MCFG_SCREEN_UPDATE_ | |
257 | MCFG_SCREEN_UPDATE_DR | |
258 | 258 | |
259 | 259 | MCFG_PALETTE_LENGTH(512) |
260 | 260 |
r17967 | r17968 | |
---|---|---|
854 | 854 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
855 | 855 | MCFG_SCREEN_SIZE(32*8, 32*8) |
856 | 856 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
857 | MCFG_SCREEN_UPDATE_ | |
857 | MCFG_SCREEN_UPDATE_DR | |
858 | 858 | |
859 | 859 | MCFG_GFXDECODE(nycaptor) |
860 | 860 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
912 | 912 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
913 | 913 | MCFG_SCREEN_SIZE(32*8, 32*8) |
914 | 914 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
915 | MCFG_SCREEN_UPDATE_ | |
915 | MCFG_SCREEN_UPDATE_DR | |
916 | 916 | |
917 | 917 | MCFG_GFXDECODE(nycaptor) |
918 | 918 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
966 | 966 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
967 | 967 | MCFG_SCREEN_SIZE(32*8, 32*8) |
968 | 968 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
969 | MCFG_SCREEN_UPDATE_ | |
969 | MCFG_SCREEN_UPDATE_DR | |
970 | 970 | |
971 | 971 | MCFG_GFXDECODE(nycaptor) |
972 | 972 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
---|---|---|
1128 | 1128 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1129 | 1129 | MCFG_SCREEN_SIZE(64*8, 32*8) |
1130 | 1130 | MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 ) |
1131 | MCFG_SCREEN_UPDATE_ | |
1131 | MCFG_SCREEN_UPDATE_DR | |
1132 | 1132 | |
1133 | 1133 | MCFG_GFXDECODE(mgakuen) |
1134 | 1134 | MCFG_PALETTE_LENGTH(1024) /* less colors than the others */ |
r17967 | r17968 | |
1171 | 1171 | MCFG_PALETTE_LENGTH(2048) |
1172 | 1172 | |
1173 | 1173 | MCFG_VIDEO_START_OVERRIDE(mitchell_state,pang) |
1174 | MCFG_SCREEN_UPDATE_ | |
1174 | MCFG_SCREEN_UPDATE_DR | |
1175 | 1175 | |
1176 | 1176 | /* sound hardware */ |
1177 | 1177 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
1271 | 1271 | MCFG_PALETTE_LENGTH(2048) |
1272 | 1272 | |
1273 | 1273 | MCFG_VIDEO_START_OVERRIDE(mitchell_state,pang) |
1274 | MCFG_SCREEN_UPDATE_ | |
1274 | MCFG_SCREEN_UPDATE_DR | |
1275 | 1275 | |
1276 | 1276 | /* sound hardware */ |
1277 | 1277 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
1303 | 1303 | MCFG_PALETTE_LENGTH(2048) |
1304 | 1304 | |
1305 | 1305 | MCFG_VIDEO_START_OVERRIDE(mitchell_state,pang) |
1306 | MCFG_SCREEN_UPDATE_ | |
1306 | MCFG_SCREEN_UPDATE_DR | |
1307 | 1307 | |
1308 | 1308 | /* sound hardware */ |
1309 | 1309 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
1355 | 1355 | MCFG_PALETTE_LENGTH(2048) |
1356 | 1356 | |
1357 | 1357 | MCFG_VIDEO_START_OVERRIDE(mitchell_state,pang) |
1358 | MCFG_SCREEN_UPDATE_ | |
1358 | MCFG_SCREEN_UPDATE_DR | |
1359 | 1359 | |
1360 | 1360 | /* sound hardware */ |
1361 | 1361 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
---|---|---|
334 | 334 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
335 | 335 | MCFG_SCREEN_SIZE(32*8, 32*8) |
336 | 336 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
337 | MCFG_SCREEN_UPDATE_ | |
337 | MCFG_SCREEN_UPDATE_DR | |
338 | 338 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) |
339 | 339 | |
340 | 340 | MCFG_GFXDECODE(blktiger) |
r17967 | r17968 | |
---|---|---|
294 | 294 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
295 | 295 | MCFG_SCREEN_SIZE(32*8, 32*8) |
296 | 296 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
297 | MCFG_SCREEN_UPDATE_ | |
297 | MCFG_SCREEN_UPDATE_DR | |
298 | 298 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) |
299 | 299 | |
300 | 300 | MCFG_GFXDECODE(dynduke) |
r17967 | r17968 | |
---|---|---|
38 | 38 | virtual void machine_reset(); |
39 | 39 | virtual void video_start(); |
40 | 40 | virtual void palette_init(); |
41 | UINT32 screen_update_mgolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
41 | 42 | }; |
42 | 43 | |
43 | 44 | |
r17967 | r17968 | |
62 | 63 | } |
63 | 64 | |
64 | 65 | |
65 | static | |
66 | UINT32 mgolf_state::screen_update_mgolf(screen_device &screen, bitmap_ind | |
66 | 67 | { |
67 | mgolf_state *state = screen.machine().driver_data<mgolf_state>(); | |
68 | 68 | int i; |
69 | 69 | |
70 | 70 | /* draw playfield */ |
71 | | |
71 | | |
72 | 72 | |
73 | 73 | /* draw sprites */ |
74 | 74 | for (i = 0; i < 2; i++) |
75 | 75 | { |
76 | 76 | drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1], |
77 | | |
77 | | |
78 | 78 | i, |
79 | 79 | 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); | |
82 | 82 | |
83 | 83 | drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1], |
84 | | |
84 | | |
85 | 85 | i, |
86 | 86 | 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); | |
89 | 89 | } |
90 | 90 | return 0; |
91 | 91 | } |
r17967 | r17968 | |
335 | 335 | MCFG_SCREEN_REFRESH_RATE(60) |
336 | 336 | MCFG_SCREEN_SIZE(256, 262) |
337 | 337 | MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 223) |
338 | MCFG_SCREEN_UPDATE_ | |
338 | MCFG_SCREEN_UPDATE_DR | |
339 | 339 | |
340 | 340 | MCFG_GFXDECODE(mgolf) |
341 | 341 | MCFG_PALETTE_LENGTH(4) |
r17967 | r17968 | |
---|---|---|
391 | 391 | MCFG_SCREEN_REFRESH_RATE(58) |
392 | 392 | MCFG_SCREEN_SIZE(40*8, 32*8) |
393 | 393 | 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) | |
396 | 396 | |
397 | 397 | MCFG_GFXDECODE(deco_mlc) |
398 | 398 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
423 | 423 | MCFG_SCREEN_REFRESH_RATE(58) |
424 | 424 | MCFG_SCREEN_SIZE(40*8, 32*8) |
425 | 425 | 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) | |
428 | 428 | |
429 | 429 | MCFG_GFXDECODE(deco_mlc) |
430 | 430 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
---|---|---|
109 | 109 | virtual void machine_start(); |
110 | 110 | virtual void machine_reset(); |
111 | 111 | virtual void video_start(); |
112 | UINT32 screen_update_pasha2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
112 | 113 | }; |
113 | 114 | |
114 | 115 | |
r17967 | r17968 | |
349 | 350 | save_item(NAME(m_bitmap1)); |
350 | 351 | } |
351 | 352 | |
352 | static | |
353 | UINT32 pasha2_state::screen_update_pasha2(screen_device &screen, bitmap_ind | |
353 | 354 | { |
354 | pasha2_state *state = screen.machine().driver_data<pasha2_state>(); | |
355 | 355 | int x, y, count; |
356 | 356 | int color; |
357 | 357 | |
r17967 | r17968 | |
364 | 364 | { |
365 | 365 | if (x * 2 < cliprect.max_x) |
366 | 366 | { |
367 | color = ( | |
367 | color = ( | |
368 | 368 | bitmap.pix16(y, x * 2 + 0) = color + 0x100; |
369 | 369 | |
370 | color = | |
370 | color = | |
371 | 371 | bitmap.pix16(y, x * 2 + 1) = color + 0x100; |
372 | 372 | } |
373 | 373 | |
r17967 | r17968 | |
382 | 382 | { |
383 | 383 | if (x * 2 < cliprect.max_x) |
384 | 384 | { |
385 | color = | |
385 | color = | |
386 | 386 | if (color != 0) |
387 | 387 | bitmap.pix16(y, x * 2 + 1) = color; |
388 | 388 | |
389 | color = ( | |
389 | color = ( | |
390 | 390 | if (color != 0) |
391 | 391 | bitmap.pix16(y, x * 2 + 0) = color; |
392 | 392 | } |
r17967 | r17968 | |
428 | 428 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
429 | 429 | MCFG_SCREEN_SIZE(512, 512) |
430 | 430 | MCFG_SCREEN_VISIBLE_AREA(0, 383, 0, 239) |
431 | MCFG_SCREEN_UPDATE_ | |
431 | MCFG_SCREEN_UPDATE_DR | |
432 | 432 | |
433 | 433 | MCFG_PALETTE_LENGTH(0x200) |
434 | 434 |
r17967 | r17968 | |
---|---|---|
252 | 252 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // we're using PORT_VBLANK |
253 | 253 | MCFG_SCREEN_SIZE(512, 256) |
254 | 254 | 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_ | |
255 | MCFG_SCREEN_UPDATE_DR | |
256 | 256 | |
257 | 257 | MCFG_GFXDECODE(skyfox) |
258 | 258 | MCFG_PALETTE_LENGTH(256+256) /* 256 static colors (+256 for the background??) */ |
r17967 | r17968 | |
---|---|---|
781 | 781 | /* video hardware */ |
782 | 782 | MCFG_SCREEN_ADD("screen", RASTER) |
783 | 783 | MCFG_SCREEN_RAW_PARAMS(MAIN_XTAL/4, 384, 0, 256, 264, 16, 240) |
784 | MCFG_SCREEN_UPDATE_ | |
784 | MCFG_SCREEN_UPDATE_DR | |
785 | 785 | |
786 | 786 | MCFG_GFXDECODE(bublbobl) |
787 | 787 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
862 | 862 | /* video hardware */ |
863 | 863 | MCFG_SCREEN_ADD("screen", RASTER) |
864 | 864 | MCFG_SCREEN_RAW_PARAMS(MAIN_XTAL/4, 384, 0, 256, 264, 16, 240) |
865 | MCFG_SCREEN_UPDATE_ | |
865 | MCFG_SCREEN_UPDATE_DR | |
866 | 866 | |
867 | 867 | MCFG_GFXDECODE(bublbobl) |
868 | 868 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
372 | 372 | MCFG_SCREEN_REFRESH_RATE(60) |
373 | 373 | MCFG_SCREEN_SIZE(256, 263) |
374 | 374 | MCFG_SCREEN_VISIBLE_AREA(0, 255, 16, 255) |
375 | MCFG_SCREEN_UPDATE_ | |
375 | MCFG_SCREEN_UPDATE_DR | |
376 | 376 | |
377 | 377 | MCFG_GFXDECODE(fgoal) |
378 | 378 | MCFG_PALETTE_LENGTH(128 + 16 + 1) |
r17967 | r17968 | |
---|---|---|
55 | 55 | DECLARE_DRIVER_INIT(coinmstr); |
56 | 56 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
57 | 57 | virtual void video_start(); |
58 | UINT32 screen_update_coinmstr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
58 | 59 | }; |
59 | 60 | |
60 | 61 | |
r17967 | r17968 | |
920 | 921 | 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); |
921 | 922 | } |
922 | 923 | |
923 | static | |
924 | UINT32 coinmstr_state::screen_update_coinmstr(screen_device &screen, bitmap_ind | |
924 | 925 | { |
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); | |
927 | 927 | return 0; |
928 | 928 | } |
929 | 929 | |
r17967 | r17968 | |
1022 | 1022 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1023 | 1023 | MCFG_SCREEN_SIZE(64*8, 64*8) |
1024 | 1024 | MCFG_SCREEN_VISIBLE_AREA(0*8, 46*8-1, 0*8, 32*8-1) |
1025 | MCFG_SCREEN_UPDATE_ | |
1025 | MCFG_SCREEN_UPDATE_DR | |
1026 | 1026 | |
1027 | 1027 | MCFG_GFXDECODE(coinmstr) |
1028 | 1028 | MCFG_PALETTE_LENGTH(46*32*4) |
r17967 | r17968 | |
---|---|---|
620 | 620 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
621 | 621 | MCFG_SCREEN_SIZE(32*8, 32*8) |
622 | 622 | MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 28*8-1) |
623 | MCFG_SCREEN_UPDATE_ | |
623 | MCFG_SCREEN_UPDATE_DR | |
624 | 624 | |
625 | 625 | MCFG_GFXDECODE(docastle) |
626 | 626 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
---|---|---|
182 | 182 | virtual void machine_reset(); |
183 | 183 | virtual void video_start(); |
184 | 184 | virtual void palette_init(); |
185 | UINT32 screen_update_galsnew(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
185 | 186 | }; |
186 | 187 | |
187 | 188 | |
r17967 | r17968 | |
196 | 197 | palette_set_color_rgb(machine(),2048 + i,pal5bit(i >> 5),pal5bit(i >> 10),pal5bit(i >> 0)); |
197 | 198 | } |
198 | 199 | |
199 | ||
200 | ||
200 | 201 | { |
201 | expro02_state *state = screen.machine().driver_data<expro02_state>(); | |
202 | 202 | // kaneko16_fill_bitmap(screen.machine(),bitmap,cliprect); |
203 | 203 | int y,x; |
204 | 204 | int count; |
r17967 | r17968 | |
211 | 211 | |
212 | 212 | for (x=0;x<256;x++) |
213 | 213 | { |
214 | UINT16 dat = ( | |
214 | UINT16 dat = ( | |
215 | 215 | dat+=2048; |
216 | 216 | dest[x] = dat; |
217 | 217 | count++; |
r17967 | r17968 | |
225 | 225 | |
226 | 226 | for (x=0;x<256;x++) |
227 | 227 | { |
228 | UINT16 dat = ( | |
228 | UINT16 dat = ( | |
229 | 229 | //dat &=0x3ff; |
230 | 230 | if (dat) |
231 | 231 | dest[x] = dat; |
r17967 | r17968 | |
240 | 240 | |
241 | 241 | screen.machine().priority_bitmap.fill(0, cliprect); |
242 | 242 | |
243 | | |
243 | | |
244 | 244 | |
245 | 245 | for ( i = 0; i < 8; i++ ) |
246 | 246 | { |
247 | | |
247 | | |
248 | 248 | } |
249 | 249 | |
250 | | |
250 | | |
251 | 251 | return 0; |
252 | 252 | } |
253 | 253 | |
r17967 | r17968 | |
557 | 557 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
558 | 558 | MCFG_SCREEN_SIZE(256, 256) |
559 | 559 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-32-1) |
560 | MCFG_SCREEN_UPDATE_ | |
560 | MCFG_SCREEN_UPDATE_DR | |
561 | 561 | |
562 | 562 | MCFG_GFXDECODE(1x4bit_1x4bit) |
563 | 563 | MCFG_PALETTE_LENGTH(2048 + 32768) |
r17967 | r17968 | |
---|---|---|
404 | 404 | MCFG_SCREEN_REFRESH_RATE(60) |
405 | 405 | MCFG_SCREEN_SIZE(36*8, 28*8) |
406 | 406 | MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 28*8-1) |
407 | MCFG_SCREEN_UPDATE_ | |
407 | MCFG_SCREEN_UPDATE_DR | |
408 | 408 | |
409 | 409 | MCFG_GFXDECODE(mainsnk) |
410 | 410 | MCFG_PALETTE_LENGTH(0x400) |
r17967 | r17968 | |
---|---|---|
362 | 362 | /* note: these parameters are from published specs, not derived */ |
363 | 363 | /* the board uses an SOS-2 chip to generate video signals */ |
364 | 364 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 456, 0+12, 336+12, 262, 0, 240) |
365 | MCFG_SCREEN_UPDATE_ | |
365 | MCFG_SCREEN_UPDATE_DR | |
366 | 366 | |
367 | 367 | MCFG_VIDEO_START_OVERRIDE(rampart_state,rampart) |
368 | 368 |
r17967 | r17968 | |
---|---|---|
217 | 217 | DECLARE_DRIVER_INIT(magicard); |
218 | 218 | virtual void machine_reset(); |
219 | 219 | virtual void video_start(); |
220 | UINT32 screen_update_magicard(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
220 | 221 | }; |
221 | 222 | |
222 | 223 | |
r17967 | r17968 | |
412 | 413 | |
413 | 414 | } |
414 | 415 | |
415 | stat | |
416 | UINT32 magicard_state::screen | |
416 | 417 | { |
417 | 418 | magicard_state *state = screen.machine().driver_data<magicard_state>(); |
418 | 419 | int x,y; |
r17967 | r17968 | |
433 | 434 | { |
434 | 435 | UINT32 color; |
435 | 436 | |
436 | color = (( | |
437 | color = (( | |
437 | 438 | |
438 | 439 | if(cliprect.contains((x*4)+3, y)) |
439 | 440 | bitmap.pix32(y, (x*4)+3) = screen.machine().pens[color]; |
440 | 441 | |
441 | color = (( | |
442 | color = (( | |
442 | 443 | |
443 | 444 | if(cliprect.contains((x*4)+2, y)) |
444 | 445 | bitmap.pix32(y, (x*4)+2) = screen.machine().pens[color]; |
445 | 446 | |
446 | color = (( | |
447 | color = (( | |
447 | 448 | |
448 | 449 | if(cliprect.contains((x*4)+1, y)) |
449 | 450 | bitmap.pix32(y, (x*4)+1) = screen.machine().pens[color]; |
450 | 451 | |
451 | color = (( | |
452 | color = (( | |
452 | 453 | |
453 | 454 | if(cliprect.contains((x*4)+0, y)) |
454 | 455 | bitmap.pix32(y, (x*4)+0) = screen.machine().pens[color]; |
r17967 | r17968 | |
465 | 466 | { |
466 | 467 | UINT32 color; |
467 | 468 | |
468 | color = (( | |
469 | color = (( | |
469 | 470 | |
470 | 471 | if(cliprect.contains((x*2)+1, y)) |
471 | 472 | bitmap.pix32(y, (x*2)+1) = screen.machine().pens[color]; |
472 | 473 | |
473 | color = (( | |
474 | color = (( | |
474 | 475 | |
475 | 476 | if(cliprect.contains((x*2)+0, y)) |
476 | 477 | bitmap.pix32(y, (x*2)+0) = screen.machine().pens[color]; |
r17967 | r17968 | |
725 | 726 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
726 | 727 | MCFG_SCREEN_SIZE(400, 300) |
727 | 728 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-1) //dynamic resolution,TODO |
728 | MCFG_SCREEN_UPDATE_ | |
729 | MCFG_SCREEN_UPDATE_DR | |
729 | 730 | |
730 | 731 | MCFG_PALETTE_LENGTH(0x100) |
731 | 732 |
r17967 | r17968 | |
---|---|---|
299 | 299 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
300 | 300 | MCFG_SCREEN_SIZE(32*8, 32*8) |
301 | 301 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
302 | MCFG_SCREEN_UPDATE_ | |
302 | MCFG_SCREEN_UPDATE_DR | |
303 | 303 | |
304 | 304 | MCFG_GFXDECODE(yiear) |
305 | 305 | MCFG_PALETTE_LENGTH(32) |
r17967 | r17968 | |
---|---|---|
120 | 120 | required_shared_ptr<UINT8> m_videoram; |
121 | 121 | DECLARE_WRITE8_MEMBER(outport_w); |
122 | 122 | virtual void palette_init(); |
123 | UINT32 screen_update_murogem(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
123 | 124 | }; |
124 | 125 | |
125 | 126 | |
r17967 | r17968 | |
202 | 203 | void murogem_state::palette_init() |
203 | 204 | {} |
204 | 205 | |
205 | stat | |
206 | UINT32 murogem_state::screen | |
206 | 207 | { |
207 | murogem_state *state = screen.machine().driver_data<murogem_state>(); | |
208 | 208 | int xx,yy,count; |
209 | 209 | count = 0x000; |
210 | 210 | |
r17967 | r17968 | |
214 | 214 | { |
215 | 215 | for(xx=0;xx<32;xx++) |
216 | 216 | { |
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; | |
219 | 219 | |
220 | 220 | drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[0],tileno,attr,0,0,xx*8,yy*8,0); |
221 | 221 | |
r17967 | r17968 | |
255 | 255 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
256 | 256 | MCFG_SCREEN_SIZE((39+1)*8, (38+1)*8) |
257 | 257 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) |
258 | MCFG_SCREEN_UPDATE_ | |
258 | MCFG_SCREEN_UPDATE_DR | |
259 | 259 | |
260 | 260 | MCFG_GFXDECODE(murogem) |
261 | 261 | MCFG_PALETTE_LENGTH(0x100) |
r17967 | r17968 | |
---|---|---|
82 | 82 | } |
83 | 83 | |
84 | 84 | |
85 | stat | |
85 | UINT32 snowbros_state::screen | |
86 | 86 | { |
87 | 87 | device_t *pandora = screen.machine().device("pandora"); |
88 | 88 | |
r17967 | r17968 | |
93 | 93 | } |
94 | 94 | |
95 | 95 | |
96 | stat | |
96 | void snowbros_state::screen | |
97 | 97 | { |
98 | 98 | // rising edge |
99 | if ( | |
99 | if (st | |
100 | 100 | { |
101 | 101 | device_t *pandora = screen.machine().device("pandora"); |
102 | 102 | pandora_eof(pandora); |
r17967 | r17968 | |
1556 | 1556 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1557 | 1557 | MCFG_SCREEN_SIZE(32*8, 262) |
1558 | 1558 | 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) | |
1561 | 1561 | |
1562 | 1562 | MCFG_GFXDECODE(snowbros) |
1563 | 1563 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
1585 | 1585 | /* video hardware */ |
1586 | 1586 | MCFG_GFXDECODE(wb) |
1587 | 1587 | MCFG_SCREEN_MODIFY("screen") |
1588 | MCFG_SCREEN_UPDATE_ | |
1588 | MCFG_SCREEN_UPDATE_DR | |
1589 | 1589 | MCFG_SCREEN_VBLANK_NONE() |
1590 | 1590 | MACHINE_CONFIG_END |
1591 | 1591 | |
r17967 | r17968 | |
1666 | 1666 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1667 | 1667 | MCFG_SCREEN_SIZE(32*8, 262) |
1668 | 1668 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
1669 | MCFG_SCREEN_UPDATE_ | |
1669 | MCFG_SCREEN_UPDATE_DR | |
1670 | 1670 | |
1671 | 1671 | MCFG_GFXDECODE(honeydol) |
1672 | 1672 | MCFG_PALETTE_LENGTH(0x800/2) |
r17967 | r17968 | |
1703 | 1703 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1704 | 1704 | MCFG_SCREEN_SIZE(32*8, 262) |
1705 | 1705 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
1706 | MCFG_SCREEN_UPDATE_ | |
1706 | MCFG_SCREEN_UPDATE_DR | |
1707 | 1707 | |
1708 | 1708 | MCFG_GFXDECODE(twinadv) |
1709 | 1709 | MCFG_PALETTE_LENGTH(0x100) |
r17967 | r17968 | |
1775 | 1775 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1776 | 1776 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1777 | 1777 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
1778 | MCFG_SCREEN_UPDATE_ | |
1778 | MCFG_SCREEN_UPDATE_DR | |
1779 | 1779 | |
1780 | 1780 | MCFG_GFXDECODE(sb3) |
1781 | 1781 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
---|---|---|
3183 | 3183 | MCFG_SCREEN_REFRESH_RATE(60) |
3184 | 3184 | MCFG_SCREEN_SIZE(1024, 512) /* no way this is correct */ |
3185 | 3185 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 240-1) |
3186 | MCFG_SCREEN_UPDATE_ | |
3186 | MCFG_SCREEN_UPDATE_DR | |
3187 | 3187 | |
3188 | 3188 | MCFG_PALETTE_LENGTH(256) |
3189 | 3189 | |
r17967 | r17968 | |
3220 | 3220 | |
3221 | 3221 | MCFG_VIDEO_START_OVERRIDE(nbmj9195_state,nbmj9195_nb22090) |
3222 | 3222 | MCFG_SCREEN_MODIFY("screen") |
3223 | MCFG_SCREEN_UPDATE_ | |
3223 | MCFG_SCREEN_UPDATE_DR | |
3224 | 3224 | MACHINE_CONFIG_END |
3225 | 3225 | |
3226 | 3226 |
r17967 | r17968 | |
---|---|---|
256 | 256 | MCFG_SCREEN_REFRESH_RATE(60) |
257 | 257 | MCFG_SCREEN_SIZE(32*8, 32*8) |
258 | 258 | MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 1*8, 31*8-1) |
259 | MCFG_SCREEN_UPDATE_ | |
259 | MCFG_SCREEN_UPDATE_DR | |
260 | 260 | |
261 | 261 | MCFG_GFXDECODE(sonson) |
262 | 262 | MCFG_PALETTE_LENGTH(64*4+32*8) |
r17967 | r17968 | |
---|---|---|
718 | 718 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
719 | 719 | MCFG_SCREEN_SIZE(64*8, 32*8) |
720 | 720 | MCFG_SCREEN_VISIBLE_AREA(1*8, 39*8-1, 1*8, 31*8-1) |
721 | MCFG_SCREEN_UPDATE_ | |
721 | MCFG_SCREEN_UPDATE_DR | |
722 | 722 | |
723 | 723 | MCFG_GFXDECODE(sslam) |
724 | 724 | MCFG_PALETTE_LENGTH(0x800) |
r17967 | r17968 | |
748 | 748 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
749 | 749 | MCFG_SCREEN_SIZE(64*8, 32*8) |
750 | 750 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
751 | MCFG_SCREEN_UPDATE_ | |
751 | MCFG_SCREEN_UPDATE_DR | |
752 | 752 | |
753 | 753 | MCFG_GFXDECODE(powerbls) |
754 | 754 | MCFG_PALETTE_LENGTH(0x200) |
r17967 | r17968 | |
---|---|---|
224 | 224 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* frames per second verified by comparison with real board */) |
225 | 225 | MCFG_SCREEN_SIZE(32*8, 32*8) |
226 | 226 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
227 | MCFG_SCREEN_UPDATE_ | |
227 | MCFG_SCREEN_UPDATE_DR | |
228 | 228 | |
229 | 229 | MCFG_GFXDECODE(hcastle) |
230 | 230 | MCFG_PALETTE_LENGTH(2*8*16*16) |
r17967 | r17968 | |
---|---|---|
276 | 276 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
277 | 277 | MCFG_SCREEN_SIZE(32*8, 32*8) |
278 | 278 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 26*8-1) |
279 | MCFG_SCREEN_UPDATE_ | |
279 | MCFG_SCREEN_UPDATE_DR | |
280 | 280 | |
281 | 281 | MCFG_GFXDECODE(copsnrob) |
282 | 282 | MCFG_PALETTE_LENGTH(2) |
r17967 | r17968 | |
---|---|---|
90 | 90 | DECLARE_MACHINE_RESET(zerotrgt); |
91 | 91 | DECLARE_VIDEO_START(zerotrgt); |
92 | 92 | 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); | |
93 | 95 | }; |
94 | 96 | |
95 | 97 | |
r17967 | r17968 | |
278 | 280 | } |
279 | 281 | } |
280 | 282 | |
281 | stat | |
283 | UINT32 cntsteer_state::screen | |
282 | 284 | { |
283 | cntsteer_state *state = screen.machine().driver_data<cntsteer_state>(); | |
284 | 285 | |
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); | |
287 | 288 | else |
288 | 289 | { |
289 | 290 | int p1, p2, p3, p4; |
290 | 291 | int rot_val, x, y; |
291 | rot_val = | |
292 | rot_val = | |
292 | 293 | |
293 | // popmessage("%d %02x %02x", rot_val, | |
294 | // popmessage("%d %02x %02x", rot_val, | |
294 | 295 | |
295 | 296 | if (rot_val > 90) { rot_val = 90; } |
296 | 297 | if (rot_val < -90) { rot_val = -90; } |
r17967 | r17968 | |
312 | 313 | p3 = 65536 * 1 * sin(2 * M_PI * (rot_val) / 1024); |
313 | 314 | p4 = -65536 * 1 * cos(2 * M_PI * (rot_val) / 1024); |
314 | 315 | |
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); | |
317 | 318 | |
318 | | |
319 | | |
319 | 320 | (x << 16), (y << 16), |
320 | 321 | p1, p2, |
321 | 322 | p3, p4, |
r17967 | r17968 | |
324 | 325 | } |
325 | 326 | |
326 | 327 | zerotrgt_draw_sprites(screen.machine(), bitmap, cliprect); |
327 | | |
328 | | |
328 | 329 | |
329 | 330 | return 0; |
330 | 331 | } |
331 | 332 | |
332 | static | |
333 | UINT32 cntsteer_state::screen_update_cntsteer(screen_device &screen, bitmap_ind | |
333 | 334 | { |
334 | cntsteer_state *state = screen.machine().driver_data<cntsteer_state>(); | |
335 | 335 | |
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); | |
338 | 338 | else |
339 | 339 | { |
340 | 340 | int p1, p2, p3, p4; |
341 | 341 | int rot_val, x, y; |
342 | 342 | |
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); | |
346 | 346 | |
347 | 347 | /* |
348 | 348 | (u, v) = (a + cx + dy, b - dx + cy) when (x, y)=screen and (u, v) = tilemap |
r17967 | r17968 | |
361 | 361 | p3 = 65536 * 1 * sin(2 * M_PI * (rot_val) / 1024); |
362 | 362 | p4 = -65536 * 1 * cos(2 * M_PI * (rot_val) / 1024); |
363 | 363 | |
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); | |
366 | 366 | |
367 | | |
367 | | |
368 | 368 | (x << 16), (y << 16), |
369 | 369 | p1, p2, |
370 | 370 | p3, p4, |
r17967 | r17968 | |
373 | 373 | } |
374 | 374 | |
375 | 375 | cntsteer_draw_sprites(screen.machine(), bitmap, cliprect); |
376 | | |
376 | | |
377 | 377 | |
378 | 378 | return 0; |
379 | 379 | } |
r17967 | r17968 | |
902 | 902 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
903 | 903 | MCFG_SCREEN_SIZE(256, 256) |
904 | 904 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
905 | MCFG_SCREEN_UPDATE_ | |
905 | MCFG_SCREEN_UPDATE_DR | |
906 | 906 | |
907 | 907 | MCFG_QUANTUM_TIME(attotime::from_hz(6000)) |
908 | 908 | |
r17967 | r17968 | |
951 | 951 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
952 | 952 | MCFG_SCREEN_SIZE(256, 256) |
953 | 953 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
954 | MCFG_SCREEN_UPDATE_ | |
954 | MCFG_SCREEN_UPDATE_DR | |
955 | 955 | |
956 | 956 | MCFG_GFXDECODE(zerotrgt) |
957 | 957 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
50 | 50 | DECLARE_DRIVER_INIT(nexus3d); |
51 | 51 | virtual void machine_reset(); |
52 | 52 | virtual void video_start(); |
53 | UINT32 screen_update_nexus3d(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
53 | 54 | }; |
54 | 55 | |
55 | 56 | |
r17967 | r17968 | |
183 | 184 | |
184 | 185 | } |
185 | 186 | |
186 | ||
187 | ||
187 | 188 | { |
188 | 189 | return 0; |
189 | 190 | } |
r17967 | r17968 | |
204 | 205 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
205 | 206 | MCFG_SCREEN_SIZE(320, 256) |
206 | 207 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-1) |
207 | MCFG_SCREEN_UPDATE_ | |
208 | MCFG_SCREEN_UPDATE_DR | |
208 | 209 | |
209 | 210 | MCFG_PALETTE_LENGTH(256) |
210 | 211 |
r17967 | r17968 | |
---|---|---|
485 | 485 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
486 | 486 | MCFG_SCREEN_SIZE(32*8, 32*8) |
487 | 487 | 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) | |
490 | 490 | |
491 | 491 | MCFG_GFXDECODE(bking) |
492 | 492 | MCFG_PALETTE_LENGTH(4*8+4*4+4*2+4*2) |
r17967 | r17968 | |
---|---|---|
83 | 83 | DECLARE_DRIVER_INIT(dblewing); |
84 | 84 | virtual void machine_start(); |
85 | 85 | virtual void machine_reset(); |
86 | UINT32 screen_update_dblewing(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
86 | 87 | }; |
87 | 88 | |
88 | 89 | UINT16 dblwings_pri_callback(UINT16 x) |
r17967 | r17968 | |
101 | 102 | |
102 | 103 | |
103 | 104 | |
104 | stat | |
105 | UINT32 dblewing_state::screen | |
105 | 106 | { |
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); | |
109 | 109 | |
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); | |
112 | 112 | |
113 | 113 | bitmap.fill(0, cliprect); /* not Confirmed */ |
114 | 114 | screen.machine().priority_bitmap.fill(0); |
115 | 115 | |
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); | |
119 | 119 | return 0; |
120 | 120 | } |
121 | 121 | |
r17967 | r17968 | |
656 | 656 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
657 | 657 | MCFG_SCREEN_SIZE(64*8, 32*8) |
658 | 658 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
659 | MCFG_SCREEN_UPDATE_ | |
659 | MCFG_SCREEN_UPDATE_DR | |
660 | 660 | |
661 | 661 | MCFG_PALETTE_LENGTH(4096) |
662 | 662 | MCFG_GFXDECODE(dblewing) |
r17967 | r17968 | |
---|---|---|
374 | 374 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
375 | 375 | MCFG_SCREEN_SIZE(256, 256) |
376 | 376 | MCFG_SCREEN_VISIBLE_AREA(0, 255, 11, 244) |
377 | MCFG_SCREEN_UPDATE_ | |
377 | MCFG_SCREEN_UPDATE_DR | |
378 | 378 | |
379 | 379 | MCFG_PALETTE_LENGTH(256*32) |
380 | 380 |
r17967 | r17968 | |
---|---|---|
261 | 261 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
262 | 262 | MCFG_SCREEN_SIZE(64*16, 64*16) |
263 | 263 | MCFG_SCREEN_VISIBLE_AREA(0*16, 32*16-1, 3*16, 31*16-1) |
264 | MCFG_SCREEN_UPDATE_ | |
264 | MCFG_SCREEN_UPDATE_DR | |
265 | 265 | |
266 | 266 | MCFG_GFXDECODE(parentj) |
267 | 267 | MCFG_PALETTE_LENGTH(33*16) |
r17967 | r17968 | |
---|---|---|
207 | 207 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
208 | 208 | MCFG_SCREEN_SIZE(37*8, 32*8) |
209 | 209 | MCFG_SCREEN_VISIBLE_AREA(0*8, 35*8-1, 2*8, 30*8-1) |
210 | MCFG_SCREEN_UPDATE_ | |
210 | MCFG_SCREEN_UPDATE_DR | |
211 | 211 | |
212 | 212 | MCFG_GFXDECODE(labyrunr) |
213 | 213 | MCFG_PALETTE_LENGTH(2*8*16*16) |
r17967 | r17968 | |
---|---|---|
111 | 111 | DECLARE_WRITE8_MEMBER(nmi_enable_w); |
112 | 112 | DECLARE_READ8_MEMBER(dummy_r); |
113 | 113 | virtual void palette_init(); |
114 | UINT32 screen_update_shougi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
114 | 115 | }; |
115 | 116 | |
116 | 117 | |
r17967 | r17968 | |
174 | 175 | |
175 | 176 | |
176 | 177 | |
177 | stat | |
178 | UINT32 shougi_state::screen | |
178 | 179 | { |
179 | shougi_state *state = screen.machine().driver_data<shougi_state>(); | |
180 | 180 | int offs; |
181 | 181 | |
182 | 182 | for (offs = 0;offs <0x4000; offs++) |
r17967 | r17968 | |
188 | 188 | //if (flipscreen[0]) sx = 31 - sx; |
189 | 189 | //if (flipscreen[1]) sy = 31 - sy; |
190 | 190 | |
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 */ | |
193 | 193 | |
194 | 194 | for (x=0; x<4; x++) /*4 pixels per byte (2 bitplanes in 2 nibbles: 1st=bits 7-4, 2nd=bits 3-0)*/ |
195 | 195 | { |
r17967 | r17968 | |
425 | 425 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
426 | 426 | MCFG_SCREEN_SIZE(256, 256) |
427 | 427 | MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 255) |
428 | MCFG_SCREEN_UPDATE_ | |
428 | MCFG_SCREEN_UPDATE_DR | |
429 | 429 | |
430 | 430 | MCFG_PALETTE_LENGTH(32) |
431 | 431 |
r17967 | r17968 | |
---|---|---|
447 | 447 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
448 | 448 | MCFG_SCREEN_SIZE(32*8, 32*8) |
449 | 449 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 24*8-1) |
450 | MCFG_SCREEN_UPDATE_ | |
450 | MCFG_SCREEN_UPDATE_DR | |
451 | 451 | |
452 | 452 | MCFG_TMS9927_ADD("tms", MASTER_CLOCK/4, tms9927_intf) |
453 | 453 | |
r17967 | r17968 | |
482 | 482 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
483 | 483 | MCFG_SCREEN_SIZE(32*8, 32*8) |
484 | 484 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) |
485 | MCFG_SCREEN_UPDATE_ | |
485 | MCFG_SCREEN_UPDATE_DR | |
486 | 486 | |
487 | 487 | MCFG_TMS9927_ADD("tms", MASTER_CLOCK/4, tms9927_intf) |
488 | 488 | |
r17967 | r17968 | |
517 | 517 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
518 | 518 | MCFG_SCREEN_SIZE(32*8, 32*8) |
519 | 519 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) |
520 | MCFG_SCREEN_UPDATE_ | |
520 | MCFG_SCREEN_UPDATE_DR | |
521 | 521 | |
522 | 522 | MCFG_TMS9927_ADD("tms", MASTER_CLOCK/4, tms9927_intf) |
523 | 523 |
r17967 | r17968 | |
---|---|---|
369 | 369 | virtual void machine_start(); |
370 | 370 | virtual void machine_reset(); |
371 | 371 | 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); | |
372 | 374 | }; |
373 | 375 | |
374 | 376 | |
r17967 | r17968 | |
420 | 422 | { |
421 | 423 | } |
422 | 424 | |
423 | static | |
425 | UINT32 hornet_state::screen_update_hornet(screen_device &screen, bitmap_rgb | |
424 | 426 | { |
425 | hornet_state *state = screen.machine().driver_data<hornet_state>(); | |
426 | 427 | device_t *voodoo = screen.machine().device("voodoo0"); |
427 | 428 | device_t *k037122 = screen.machine().device("k037122_1"); |
428 | 429 | |
r17967 | r17968 | |
430 | 431 | |
431 | 432 | k037122_tile_draw(k037122, bitmap, cliprect); |
432 | 433 | |
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); | |
435 | 436 | return 0; |
436 | 437 | } |
437 | 438 | |
438 | stat | |
439 | UINT32 hornet_state::screen | |
439 | 440 | { |
440 | hornet_state *state = screen.machine().driver_data<hornet_state>(); | |
441 | 441 | if (strcmp(screen.tag(), ":lscreen") == 0) |
442 | 442 | { |
443 | 443 | device_t *k037122 = screen.machine().device("k037122_1"); |
r17967 | r17968 | |
457 | 457 | k037122_tile_draw(k037122, bitmap, cliprect); |
458 | 458 | } |
459 | 459 | |
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); | |
462 | 462 | return 0; |
463 | 463 | } |
464 | 464 | |
r17967 | r17968 | |
1016 | 1016 | MCFG_SCREEN_REFRESH_RATE(60) |
1017 | 1017 | MCFG_SCREEN_SIZE(64*8, 48*8) |
1018 | 1018 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 48*8-1) |
1019 | MCFG_SCREEN_UPDATE_ | |
1019 | MCFG_SCREEN_UPDATE_DR | |
1020 | 1020 | |
1021 | 1021 | MCFG_PALETTE_LENGTH(65536) |
1022 | 1022 | |
r17967 | r17968 | |
1106 | 1106 | MCFG_SCREEN_REFRESH_RATE(60) |
1107 | 1107 | MCFG_SCREEN_SIZE(512, 384) |
1108 | 1108 | MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383) |
1109 | MCFG_SCREEN_UPDATE_ | |
1109 | MCFG_SCREEN_UPDATE_DR | |
1110 | 1110 | |
1111 | 1111 | MCFG_SCREEN_ADD("rscreen", RASTER) |
1112 | 1112 | MCFG_SCREEN_REFRESH_RATE(60) |
1113 | 1113 | MCFG_SCREEN_SIZE(512, 384) |
1114 | 1114 | MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383) |
1115 | MCFG_SCREEN_UPDATE_ | |
1115 | MCFG_SCREEN_UPDATE_DR | |
1116 | 1116 | MACHINE_CONFIG_END |
1117 | 1117 | |
1118 | 1118 | static MACHINE_CONFIG_DERIVED( terabrst, hornet_2board ) |
r17967 | r17968 | |
---|---|---|
653 | 653 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
654 | 654 | MCFG_SCREEN_SIZE(44*8, 30*8) |
655 | 655 | MCFG_SCREEN_VISIBLE_AREA(0*8, 44*8-1, 0*8, 30*8-1) |
656 | MCFG_SCREEN_UPDATE_ | |
656 | MCFG_SCREEN_UPDATE_DR | |
657 | 657 | |
658 | 658 | MCFG_GFXDECODE(pipedrm) |
659 | 659 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
692 | 692 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
693 | 693 | MCFG_SCREEN_SIZE(44*8, 30*8) |
694 | 694 | MCFG_SCREEN_VISIBLE_AREA(0*8, 44*8-1, 0*8, 30*8-1) |
695 | MCFG_SCREEN_UPDATE_ | |
695 | MCFG_SCREEN_UPDATE_DR | |
696 | 696 | |
697 | 697 | MCFG_GFXDECODE(hatris) |
698 | 698 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
---|---|---|
484 | 484 | |
485 | 485 | MCFG_SCREEN_ADD("screen", RASTER) |
486 | 486 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, 0, HTOTAL - 1, VTOTAL, 0, VTOTAL - 1) /* will be adjusted later */ |
487 | MCFG_SCREEN_UPDATE_ | |
487 | MCFG_SCREEN_UPDATE_DR | |
488 | 488 | |
489 | 489 | |
490 | 490 | /* sound hardware */ |
r17967 | r17968 | |
---|---|---|
602 | 602 | /* video hardware */ |
603 | 603 | MCFG_SCREEN_ADD("screen", RASTER) |
604 | 604 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 448, 0, 320, 272, 8, 248) /* HTOTAL and VTOTAL are guessed */ |
605 | MCFG_SCREEN_UPDATE_ | |
605 | MCFG_SCREEN_UPDATE_DR | |
606 | 606 | |
607 | 607 | MCFG_GFXDECODE(ddragon3) |
608 | 608 | MCFG_PALETTE_LENGTH(768) |
r17967 | r17968 | |
636 | 636 | MCFG_CPU_PROGRAM_MAP(ctribe_sound_map) |
637 | 637 | |
638 | 638 | MCFG_SCREEN_MODIFY("screen") |
639 | MCFG_SCREEN_UPDATE_ | |
639 | MCFG_SCREEN_UPDATE_DR | |
640 | 640 | |
641 | 641 | MCFG_SOUND_MODIFY("ym2151") |
642 | 642 | MCFG_SOUND_ROUTES_RESET() |
r17967 | r17968 | |
---|---|---|
21 | 21 | DECLARE_WRITE8_MEMBER(ioboard_data_w); |
22 | 22 | DECLARE_WRITE8_MEMBER(ioboard_reg_w); |
23 | 23 | virtual void video_start(); |
24 | UINT32 screen_update_hotstuff(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
24 | 25 | }; |
25 | 26 | |
26 | 27 | |
r17967 | r17968 | |
30 | 31 | |
31 | 32 | /* 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 */ |
32 | 33 | |
33 | ||
34 | ||
34 | 35 | { |
35 | hotstuff_state *state = screen.machine().driver_data<hotstuff_state>(); | |
36 | 36 | int count, y,yyy,x,xxx; |
37 | 37 | UINT16 row_palette_data[0x10]; |
38 | 38 | rgb_t row_palette_data_as_rgb32_pen_data[0x10]; |
r17967 | r17968 | |
47 | 47 | |
48 | 48 | for (p=0;p<0x10;p++) |
49 | 49 | { |
50 | row_palette_data[p] = | |
50 | row_palette_data[p] = | |
51 | 51 | |
52 | 52 | 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 ); |
53 | 53 | |
r17967 | r17968 | |
56 | 56 | for(x = 0; x < xxx; x++) |
57 | 57 | { |
58 | 58 | { |
59 | bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[( | |
59 | bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[( | |
60 | 60 | x++; |
61 | bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[( | |
61 | bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[( | |
62 | 62 | x++; |
63 | bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[( | |
63 | bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[( | |
64 | 64 | x++; |
65 | bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[( | |
65 | bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[( | |
66 | 66 | } |
67 | 67 | |
68 | 68 | count++; |
r17967 | r17968 | |
133 | 133 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
134 | 134 | MCFG_SCREEN_SIZE(128*8, 64*8) |
135 | 135 | MCFG_SCREEN_VISIBLE_AREA((0x10*4)+8, 101*8-1, 0*8, 33*8-1) |
136 | MCFG_SCREEN_UPDATE_ | |
136 | MCFG_SCREEN_UPDATE_DR | |
137 | 137 | |
138 | 138 | MCFG_PALETTE_LENGTH(0x200) |
139 | 139 |
r17967 | r17968 | |
---|---|---|
86 | 86 | virtual void machine_start(); |
87 | 87 | virtual void machine_reset(); |
88 | 88 | virtual void video_start(); |
89 | UINT32 screen_update_discoboy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
89 | 90 | }; |
90 | 91 | |
91 | 92 | |
r17967 | r17968 | |
142 | 143 | } |
143 | 144 | |
144 | 145 | |
145 | stat | |
146 | UINT32 discoboy_state::screen | |
146 | 147 | { |
147 | discoboy_state *state = screen.machine().driver_data<discoboy_state>(); | |
148 | 148 | UINT16 x, y; |
149 | 149 | int i; |
150 | 150 | int count = 0; |
r17967 | r17968 | |
153 | 153 | { |
154 | 154 | UINT16 pal; |
155 | 155 | int r, g, b; |
156 | pal = | |
156 | pal = | |
157 | 157 | |
158 | 158 | b = ((pal >> 0) & 0xf) << 4; |
159 | 159 | g = ((pal >> 4) & 0xf) << 4; |
r17967 | r17968 | |
166 | 166 | { |
167 | 167 | UINT16 pal; |
168 | 168 | int r,g,b; |
169 | pal = | |
169 | pal = | |
170 | 170 | |
171 | 171 | b = ((pal >> 0) & 0xf) << 4; |
172 | 172 | g = ((pal >> 4) & 0xf) << 4; |
r17967 | r17968 | |
181 | 181 | { |
182 | 182 | for (x = 0; x < 64; x++) |
183 | 183 | { |
184 | UINT16 tileno = | |
184 | UINT16 tileno = | |
185 | 185 | |
186 | 186 | if (tileno > 0x2000) |
187 | 187 | { |
188 | if (( | |
188 | if (( | |
189 | 189 | tileno = 0x2000 + (tileno & 0x1fff) + 0x2000; |
190 | 190 | else |
191 | 191 | tileno = 0x2000 + (tileno & 0x1fff) + 0x0000; |
192 | 192 | } |
193 | 193 | |
194 | drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[1], tileno, | |
194 | drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[1], tileno, | |
195 | 195 | count += 2; |
196 | 196 | } |
197 | 197 | } |
r17967 | r17968 | |
511 | 511 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
512 | 512 | MCFG_SCREEN_SIZE(512, 256) |
513 | 513 | MCFG_SCREEN_VISIBLE_AREA(8*8, 512-1-8*8, 0+8, 256-1-8) |
514 | MCFG_SCREEN_UPDATE_ | |
514 | MCFG_SCREEN_UPDATE_DR | |
515 | 515 | |
516 | 516 | MCFG_GFXDECODE(discoboy) |
517 | 517 | MCFG_PALETTE_LENGTH(0x1000) |
r17967 | r17968 | |
---|---|---|
176 | 176 | virtual void machine_start(); |
177 | 177 | virtual void video_start(); |
178 | 178 | virtual void palette_init(); |
179 | UINT32 screen_update_wildpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
179 | 180 | }; |
180 | 181 | |
181 | 182 | |
r17967 | r17968 | |
187 | 188 | { |
188 | 189 | } |
189 | 190 | |
190 | stat | |
191 | UINT32 wildpkr_state::screen | |
191 | 192 | { |
192 | // wildpkr_state *state = screen.machine().driver_data<wildpkr_state>(); | |
193 | 193 | return 0; |
194 | 194 | } |
195 | 195 | |
r17967 | r17968 | |
284 | 284 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
285 | 285 | MCFG_SCREEN_SIZE(512, 512) |
286 | 286 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 512-1) |
287 | MCFG_SCREEN_UPDATE_ | |
287 | MCFG_SCREEN_UPDATE_DR | |
288 | 288 | |
289 | 289 | // MCFG_HD63484_ADD("hd63484", wildpkr_hd63484_intf) |
290 | 290 | MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map) |
r17967 | r17968 | |
---|---|---|
185 | 185 | virtual void machine_start(); |
186 | 186 | virtual void machine_reset(); |
187 | 187 | virtual void video_start(); |
188 | UINT32 screen_update_mediagx(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
188 | 189 | }; |
189 | 190 | |
190 | 191 | // Display controller registers |
r17967 | r17968 | |
379 | 380 | } |
380 | 381 | } |
381 | 382 | |
382 | stat | |
383 | UINT32 mediagx_state::screen | |
383 | 384 | { |
384 | mediagx_state *state = screen.machine().driver_data<mediagx_state>(); | |
385 | 385 | bitmap.fill(0, cliprect); |
386 | 386 | |
387 | 387 | draw_framebuffer(screen.machine(), bitmap, cliprect); |
388 | 388 | |
389 | if ( | |
389 | if ( | |
390 | 390 | { |
391 | 391 | draw_cga(screen.machine(), bitmap, cliprect); |
392 | 392 | } |
r17967 | r17968 | |
1192 | 1192 | MCFG_SCREEN_REFRESH_RATE(60) |
1193 | 1193 | MCFG_SCREEN_SIZE(640, 480) |
1194 | 1194 | MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 239) |
1195 | MCFG_SCREEN_UPDATE_ | |
1195 | MCFG_SCREEN_UPDATE_DR | |
1196 | 1196 | |
1197 | 1197 | MCFG_GFXDECODE(CGA) |
1198 | 1198 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
32 | 32 | DECLARE_WRITE8_MEMBER(out_w); |
33 | 33 | virtual void video_start(); |
34 | 34 | virtual void palette_init(); |
35 | UINT32 screen_update_summit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
35 | 36 | }; |
36 | 37 | |
37 | 38 | |
r17967 | r17968 | |
39 | 40 | { |
40 | 41 | } |
41 | 42 | |
42 | stat | |
43 | UINT32 summit_state::screen | |
43 | 44 | { |
44 | summit_state *state = screen.machine().driver_data<summit_state>(); | |
45 | 45 | gfx_element *gfx = screen.machine().gfx[0]; |
46 | 46 | int count = 0x0000; |
47 | 47 | |
r17967 | r17968 | |
52 | 52 | { |
53 | 53 | for (x=0;x<32;x++) |
54 | 54 | { |
55 | int tile = ( | |
55 | int tile = ( | |
56 | 56 | drawgfx_opaque(bitmap,cliprect,gfx,tile,0,0,0,x*8,y*8); |
57 | 57 | |
58 | 58 | count++; |
r17967 | r17968 | |
308 | 308 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
309 | 309 | MCFG_SCREEN_SIZE(256, 256) |
310 | 310 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1) |
311 | MCFG_SCREEN_UPDATE_ | |
311 | MCFG_SCREEN_UPDATE_DR | |
312 | 312 | |
313 | 313 | MCFG_GFXDECODE(summit) |
314 | 314 |
r17967 | r17968 | |
---|---|---|
240 | 240 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
241 | 241 | MCFG_SCREEN_SIZE(32*8, 32*8) |
242 | 242 | 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_ | |
243 | MCFG_SCREEN_UPDATE_DR | |
244 | 244 | |
245 | 245 | MCFG_GFXDECODE(ambush) |
246 | 246 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
307 | 307 | /* video hardware */ |
308 | 308 | MCFG_SCREEN_ADD("screen", RASTER) |
309 | 309 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK*2, 384*2, 0, 256*2, 261*2, 0, 240*2) |
310 | MCFG_SCREEN_UPDATE_ | |
310 | MCFG_SCREEN_UPDATE_DR | |
311 | 311 | |
312 | 312 | MCFG_GFXDECODE(orbit) |
313 | 313 | MCFG_PALETTE_LENGTH(2) |
r17967 | r17968 | |
---|---|---|
427 | 427 | MCFG_SCREEN_REFRESH_RATE(60) |
428 | 428 | MCFG_SCREEN_SIZE(400, 262) /* needs to be verified */ |
429 | 429 | MCFG_SCREEN_VISIBLE_AREA(0, 393, 0, 239) |
430 | MCFG_SCREEN_UPDATE_ | |
430 | MCFG_SCREEN_UPDATE_DR | |
431 | 431 | |
432 | 432 | MCFG_PALETTE_LENGTH(256) |
433 | 433 |
r17967 | r17968 | |
---|---|---|
73 | 73 | DECLARE_READ32_MEMBER(skimaxx_analog_r); |
74 | 74 | virtual void machine_reset(); |
75 | 75 | virtual void video_start(); |
76 | UINT32 screen_update_skimaxx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
76 | 77 | }; |
77 | 78 | |
78 | 79 | |
r17967 | r17968 | |
149 | 150 | membank("bank1")->configure_entry(1, m_bg_buffer_front); |
150 | 151 | } |
151 | 152 | |
152 | stat | |
153 | UINT32 skimaxx_state::screen | |
153 | 154 | { |
154 | // popmessage("%02x %02x", | |
155 | // popmessage("%02x %02x", | |
155 | 156 | |
156 | 157 | SCREEN_UPDATE16_CALL(tms340x0_ind16); |
157 | 158 | |
r17967 | r17968 | |
542 | 543 | MCFG_SCREEN_SIZE(0x400, 0x100) |
543 | 544 | MCFG_SCREEN_VISIBLE_AREA(0, 0x280-1, 0, 0xf0-1) |
544 | 545 | // MCFG_SCREEN_UPDATE_STATIC(tms340x0_ind16) |
545 | MCFG_SCREEN_UPDATE_ | |
546 | MCFG_SCREEN_UPDATE_DR | |
546 | 547 | |
547 | 548 | |
548 | 549 | // MCFG_GFXDECODE( skimaxx ) |
r17967 | r17968 | |
---|---|---|
99 | 99 | virtual void machine_start(); |
100 | 100 | virtual void machine_reset(); |
101 | 101 | virtual void video_start(); |
102 | UINT32 screen_update_mwarr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
102 | 103 | }; |
103 | 104 | |
104 | 105 | |
r17967 | r17968 | |
480 | 481 | } |
481 | 482 | } |
482 | 483 | |
483 | static | |
484 | UINT32 mwarr_state::screen_update_mwarr(screen_device &screen, bitmap_ind | |
484 | 485 | { |
485 | mwarr_state *state = screen.machine().driver_data<mwarr_state>(); | |
486 | 486 | int i; |
487 | 487 | |
488 | 488 | screen.machine().priority_bitmap.fill(0, cliprect); |
489 | 489 | |
490 | if (BIT( | |
490 | if (BIT( | |
491 | 491 | { |
492 | 492 | for (i = 0; i < 256; i++) |
493 | | |
493 | | |
494 | 494 | } |
495 | 495 | else |
496 | 496 | { |
497 | 497 | for (i = 0; i < 256; i++) |
498 | | |
498 | | |
499 | 499 | } |
500 | 500 | |
501 | if (BIT( | |
501 | if (BIT( | |
502 | 502 | { |
503 | 503 | for (i = 0; i < 256; i++) |
504 | | |
504 | | |
505 | 505 | } |
506 | 506 | else |
507 | 507 | { |
508 | 508 | for (i = 0; i < 256; i++) |
509 | | |
509 | | |
510 | 510 | } |
511 | 511 | |
512 | if (BIT( | |
512 | if (BIT( | |
513 | 513 | { |
514 | 514 | for (i = 0; i < 256; i++) |
515 | | |
515 | | |
516 | 516 | } |
517 | 517 | else |
518 | 518 | { |
519 | 519 | for (i = 0; i < 256; i++) |
520 | | |
520 | | |
521 | 521 | } |
522 | 522 | |
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); | |
526 | 526 | |
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); | |
529 | 529 | |
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); | |
534 | 534 | draw_sprites(screen.machine(), bitmap, cliprect); |
535 | 535 | return 0; |
536 | 536 | } |
r17967 | r17968 | |
567 | 567 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
568 | 568 | MCFG_SCREEN_SIZE(64*8, 32*8) |
569 | 569 | MCFG_SCREEN_VISIBLE_AREA(8+1, 48*8-1-8-1, 0, 30*8-1) |
570 | MCFG_SCREEN_UPDATE_ | |
570 | MCFG_SCREEN_UPDATE_DR | |
571 | 571 | |
572 | 572 | MCFG_GFXDECODE(mwarr) |
573 | 573 | MCFG_PALETTE_LENGTH(0x800) |
r17967 | r17968 | |
---|---|---|
583 | 583 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
584 | 584 | MCFG_SCREEN_SIZE(36*8, 28*8) |
585 | 585 | 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) | |
588 | 588 | |
589 | 589 | MCFG_GFXDECODE(gaplus) |
590 | 590 | MCFG_PALETTE_LENGTH(64*4+64*8) |
r17967 | r17968 | |
---|---|---|
273 | 273 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
274 | 274 | MCFG_SCREEN_SIZE(256, 256) |
275 | 275 | 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) | |
278 | 278 | |
279 | 279 | MCFG_GFXDECODE(carpolo) |
280 | 280 | MCFG_PALETTE_LENGTH(12*2+2*16+4*2) |
r17967 | r17968 | |
---|---|---|
62 | 62 | DECLARE_WRITE8_MEMBER(ppi8255_c_w); |
63 | 63 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
64 | 64 | virtual void video_start(); |
65 | UINT32 screen_update_vroulet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
65 | 66 | }; |
66 | 67 | |
67 | 68 | |
r17967 | r17968 | |
115 | 116 | 8, 8, 32, 32); |
116 | 117 | } |
117 | 118 | |
118 | stat | |
119 | UINT32 vroulet_state::screen | |
119 | 120 | { |
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); | |
122 | 122 | drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0], 0x320, 1, 0, 0, |
123 | | |
123 | | |
124 | 124 | return 0; |
125 | 125 | } |
126 | 126 | |
r17967 | r17968 | |
302 | 302 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
303 | 303 | MCFG_SCREEN_SIZE(32*8, 32*8) |
304 | 304 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
305 | MCFG_SCREEN_UPDATE_ | |
305 | MCFG_SCREEN_UPDATE_DR | |
306 | 306 | |
307 | 307 | MCFG_GFXDECODE(vroulet) |
308 | 308 | MCFG_PALETTE_LENGTH(128*4) |
r17967 | r17968 | |
---|---|---|
335 | 335 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
336 | 336 | MCFG_SCREEN_SIZE(320, 256) |
337 | 337 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) |
338 | MCFG_SCREEN_UPDATE_ | |
338 | MCFG_SCREEN_UPDATE_DR | |
339 | 339 | |
340 | 340 | MCFG_MC6845_ADD("crtc", H46505, MASTER_CLOCK/16, mc6845_intf) /* hand tuned to get ~60 fps */ |
341 | 341 |
r17967 | r17968 | |
---|---|---|
236 | 236 | DECLARE_DRIVER_INIT(cmrltv75); |
237 | 237 | virtual void video_start(); |
238 | 238 | virtual void palette_init(); |
239 | UINT32 screen_update_coinmvga(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
239 | 240 | }; |
240 | 241 | |
241 | 242 | |
r17967 | r17968 | |
249 | 250 | } |
250 | 251 | |
251 | 252 | |
252 | stat | |
253 | UINT32 coinmvga_state::screen | |
253 | 254 | { |
254 | coinmvga_state *state = screen.machine().driver_data<coinmvga_state>(); | |
255 | 255 | gfx_element *gfx = screen.machine().gfx[0]; |
256 | 256 | int count = 0x04000/2; |
257 | 257 | |
r17967 | r17968 | |
262 | 262 | { |
263 | 263 | for (x=0;x<128;x++) |
264 | 264 | { |
265 | int tile = | |
265 | int tile = | |
266 | 266 | //int colour = tile>>12; |
267 | 267 | drawgfx_opaque(bitmap,cliprect,gfx,tile,0,0,0,x*8,y*8); |
268 | 268 | |
r17967 | r17968 | |
683 | 683 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
684 | 684 | MCFG_SCREEN_SIZE(640,480) |
685 | 685 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
686 | MCFG_SCREEN_UPDATE_ | |
686 | MCFG_SCREEN_UPDATE_DR | |
687 | 687 | |
688 | 688 | MCFG_GFXDECODE(coinmvga) |
689 | 689 |
r17967 | r17968 | |
---|---|---|
71 | 71 | DECLARE_READ16_MEMBER(twinsa_unk_r); |
72 | 72 | DECLARE_VIDEO_START(twins); |
73 | 73 | 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); | |
74 | 76 | }; |
75 | 77 | |
76 | 78 | |
r17967 | r17968 | |
116 | 118 | m_pal = auto_alloc_array(machine(), UINT16, 0x100); |
117 | 119 | } |
118 | 120 | |
119 | static | |
121 | UINT32 twins_state::screen_update_twins(screen_device &screen, bitmap_ind | |
120 | 122 | { |
121 | twins_state *state = screen.machine().driver_data<twins_state>(); | |
122 | 123 | int y,x,count; |
123 | 124 | int i; |
124 | 125 | static const int xxx=320,yyy=204; |
r17967 | r17968 | |
128 | 129 | for (i=0;i<0x100;i++) |
129 | 130 | { |
130 | 131 | int dat,r,g,b; |
131 | dat = | |
132 | dat = | |
132 | 133 | |
133 | 134 | r = dat & 0x1f; |
134 | 135 | r = BITSWAP8(r,7,6,5,0,1,2,3,4); |
r17967 | r17968 | |
143 | 144 | } |
144 | 145 | |
145 | 146 | count=0; |
146 | UINT8 *videoram = reinterpret_cast<UINT8 *>( | |
147 | UINT8 *videoram = reinterpret_cast<UINT8 *>( | |
147 | 148 | for (y=0;y<yyy;y++) |
148 | 149 | { |
149 | 150 | for(x=0;x<xxx;x++) |
r17967 | r17968 | |
200 | 201 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
201 | 202 | MCFG_SCREEN_SIZE(320,256) |
202 | 203 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1) |
203 | MCFG_SCREEN_UPDATE_ | |
204 | MCFG_SCREEN_UPDATE_DR | |
204 | 205 | |
205 | 206 | MCFG_PALETTE_LENGTH(0x100) |
206 | 207 | |
r17967 | r17968 | |
222 | 223 | m_pal = auto_alloc_array(machine(), UINT16, 0x1000); |
223 | 224 | } |
224 | 225 | |
225 | static | |
226 | UINT32 twins_state::screen_update_twinsa(screen_device &screen, bitmap_ind | |
226 | 227 | { |
227 | twins_state *state = screen.machine().driver_data<twins_state>(); | |
228 | 228 | int y,x,count; |
229 | 229 | int i; |
230 | 230 | static const int xxx=320,yyy=204; |
r17967 | r17968 | |
234 | 234 | for (i=0;i<0x1000-3;i+=3) |
235 | 235 | { |
236 | 236 | 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]; | |
240 | 240 | |
241 | 241 | palette_set_color_rgb(screen.machine(),i/3, pal6bit(r), pal6bit(g), pal6bit(b)); |
242 | 242 | } |
243 | 243 | |
244 | 244 | count=0; |
245 | UINT8 *videoram = reinterpret_cast<UINT8 *>( | |
245 | UINT8 *videoram = reinterpret_cast<UINT8 *>( | |
246 | 246 | for (y=0;y<yyy;y++) |
247 | 247 | { |
248 | 248 | for(x=0;x<xxx;x++) |
r17967 | r17968 | |
289 | 289 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
290 | 290 | MCFG_SCREEN_SIZE(320,256) |
291 | 291 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1) |
292 | MCFG_SCREEN_UPDATE_ | |
292 | MCFG_SCREEN_UPDATE_DR | |
293 | 293 | |
294 | 294 | MCFG_PALETTE_LENGTH(0x1000) |
295 | 295 |
r17967 | r17968 | |
---|---|---|
356 | 356 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
357 | 357 | MCFG_SCREEN_SIZE(320, 256) |
358 | 358 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0+16, 256-16-1) |
359 | MCFG_SCREEN_UPDATE_ | |
359 | MCFG_SCREEN_UPDATE_DR | |
360 | 360 | |
361 | 361 | MCFG_GFXDECODE(powerins) |
362 | 362 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
---|---|---|
56 | 56 | virtual void machine_start(); |
57 | 57 | virtual void machine_reset(); |
58 | 58 | virtual void video_start(); |
59 | UINT32 screen_update_cultures(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
59 | 60 | }; |
60 | 61 | |
61 | 62 | |
r17967 | r17968 | |
98 | 99 | m_bg2_tilemap->set_scrolldy(255, 0); |
99 | 100 | } |
100 | 101 | |
101 | stat | |
102 | UINT32 cultures_state::screen | |
102 | 103 | { |
103 | cultures_state *state = screen.machine().driver_data<cultures_state>(); | |
104 | 104 | int attr; |
105 | 105 | |
106 | 106 | // 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); | |
109 | 109 | |
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); | |
112 | 112 | |
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); | |
115 | 115 | |
116 | 116 | // 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]); | |
123 | 123 | |
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); | |
127 | 127 | |
128 | 128 | return 0; |
129 | 129 | } |
r17967 | r17968 | |
407 | 407 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
408 | 408 | MCFG_SCREEN_SIZE(64*8, 32*8) |
409 | 409 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 30*8-1) |
410 | MCFG_SCREEN_UPDATE_ | |
410 | MCFG_SCREEN_UPDATE_DR | |
411 | 411 | |
412 | 412 | MCFG_GFXDECODE(culture) |
413 | 413 | MCFG_PALETTE_LENGTH(0x2000) |
r17967 | r17968 | |
---|---|---|
486 | 486 | TILE_GET_INFO_MEMBER(get_fclown_tile_info); |
487 | 487 | virtual void video_start(); |
488 | 488 | virtual void palette_init(); |
489 | UINT32 screen_update_fclown(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
489 | 490 | }; |
490 | 491 | |
491 | 492 | |
r17967 | r17968 | |
537 | 538 | } |
538 | 539 | |
539 | 540 | |
540 | static | |
541 | UINT32 _5clown_state::screen_update_fclown(screen_device &screen, bitmap_ind | |
541 | 542 | { |
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); | |
544 | 544 | return 0; |
545 | 545 | } |
546 | 546 | |
r17967 | r17968 | |
1081 | 1081 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1082 | 1082 | MCFG_SCREEN_SIZE((39+1)*8, (31+1)*8) |
1083 | 1083 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) |
1084 | MCFG_SCREEN_UPDATE_ | |
1084 | MCFG_SCREEN_UPDATE_DR | |
1085 | 1085 | |
1086 | 1086 | MCFG_GFXDECODE(fclown) |
1087 | 1087 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
23 | 23 | required_shared_ptr<UINT8> m_ram; |
24 | 24 | UINT8 m_color; |
25 | 25 | DECLARE_WRITE8_MEMBER(color_w); |
26 | UINT32 screen_update_tgtpanic(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
26 | 27 | }; |
27 | 28 | |
28 | 29 | |
r17967 | r17968 | |
32 | 33 | * |
33 | 34 | *************************************/ |
34 | 35 | |
35 | static | |
36 | UINT32 tgtpanic_state::screen_update_tgtpanic(screen_device &screen, bitmap_rgb | |
36 | 37 | { |
37 | tgtpanic_state *state = screen.machine().driver_data<tgtpanic_state>(); | |
38 | 38 | UINT32 colors[4]; |
39 | 39 | UINT32 offs; |
40 | 40 | UINT32 x, y; |
41 | 41 | |
42 | 42 | colors[0] = 0; |
43 | 43 | 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)); | |
46 | 46 | |
47 | 47 | for (offs = 0; offs < 0x2000; ++offs) |
48 | 48 | { |
49 | UINT8 val = | |
49 | UINT8 val = | |
50 | 50 | |
51 | 51 | y = (offs & 0x7f) << 1; |
52 | 52 | x = (offs >> 7) << 2; |
r17967 | r17968 | |
142 | 142 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* Unverified */ |
143 | 143 | MCFG_SCREEN_SIZE(256, 256) |
144 | 144 | MCFG_SCREEN_VISIBLE_AREA(0, 192 - 1, 0, 192 - 1) |
145 | MCFG_SCREEN_UPDATE_ | |
145 | MCFG_SCREEN_UPDATE_DR | |
146 | 146 | MACHINE_CONFIG_END |
147 | 147 | |
148 | 148 |
r17967 | r17968 | |
---|---|---|
243 | 243 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
244 | 244 | MCFG_SCREEN_SIZE(32*8, 32*8) |
245 | 245 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
246 | MCFG_SCREEN_UPDATE_ | |
246 | MCFG_SCREEN_UPDATE_DR | |
247 | 247 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) |
248 | 248 | |
249 | 249 | MCFG_GFXDECODE(exedexes) |
r17967 | r17968 | |
---|---|---|
2036 | 2036 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2037 | 2037 | MCFG_SCREEN_SIZE(0x200, 0x200) |
2038 | 2038 | 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) | |
2041 | 2041 | |
2042 | 2042 | MCFG_GFXDECODE(seta2) |
2043 | 2043 | MCFG_PALETTE_LENGTH(0x8000+0xf0) // extra 0xf0 because we might draw 256-color object with 16-color granularity |
r17967 | r17968 | |
2231 | 2231 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // not accurate |
2232 | 2232 | MCFG_SCREEN_SIZE(0x200, 0x200) |
2233 | 2233 | 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) | |
2236 | 2236 | |
2237 | 2237 | MCFG_GFXDECODE(funcube) |
2238 | 2238 | MCFG_PALETTE_LENGTH(0x8000+0xf0) // extra 0xf0 because we might draw 256-color object with 16-color granularity |
r17967 | r17968 | |
2282 | 2282 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2283 | 2283 | MCFG_SCREEN_SIZE(0x200, 0x200) |
2284 | 2284 | 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) | |
2287 | 2287 | |
2288 | 2288 | MCFG_GFXDECODE(funcube) |
2289 | 2289 | MCFG_PALETTE_LENGTH(0x8000+0xf0) // extra 0xf0 because we might draw 256-color object with 16-color granularity |
r17967 | r17968 | |
---|---|---|
236 | 236 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
237 | 237 | MCFG_SCREEN_SIZE(37*8, 32*8) |
238 | 238 | MCFG_SCREEN_VISIBLE_AREA(0*8, 35*8-1, 2*8, 30*8-1) |
239 | MCFG_SCREEN_UPDATE_ | |
239 | MCFG_SCREEN_UPDATE_DR | |
240 | 240 | |
241 | 241 | MCFG_GFXDECODE(flkatck) |
242 | 242 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
---|---|---|
206 | 206 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
207 | 207 | MCFG_SCREEN_SIZE(37*8, 32*8) |
208 | 208 | MCFG_SCREEN_VISIBLE_AREA(0*8, 35*8-1, 2*8, 30*8-1) |
209 | MCFG_SCREEN_UPDATE_ | |
209 | MCFG_SCREEN_UPDATE_DR | |
210 | 210 | |
211 | 211 | MCFG_GFXDECODE(contra) |
212 | 212 | MCFG_PALETTE_LENGTH(2*8*16*16) |
r17967 | r17968 | |
---|---|---|
717 | 717 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */ /* we're using PORT_VBLANK */) |
718 | 718 | MCFG_SCREEN_SIZE(256, 256) |
719 | 719 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-1-16) |
720 | MCFG_SCREEN_UPDATE_ | |
720 | MCFG_SCREEN_UPDATE_DR | |
721 | 721 | |
722 | 722 | MCFG_GFXDECODE(paradise) |
723 | 723 | MCFG_PALETTE_LENGTH(0x800 + 16) |
r17967 | r17968 | |
749 | 749 | |
750 | 750 | MCFG_GFXDECODE(torus) |
751 | 751 | MCFG_SCREEN_MODIFY("screen") |
752 | MCFG_SCREEN_UPDATE_ | |
752 | MCFG_SCREEN_UPDATE_DR | |
753 | 753 | |
754 | 754 | MCFG_DEVICE_REMOVE("oki2") |
755 | 755 | MACHINE_CONFIG_END |
r17967 | r17968 | |
764 | 764 | MCFG_GFXDECODE(madball) |
765 | 765 | |
766 | 766 | MCFG_SCREEN_MODIFY("screen") |
767 | MCFG_SCREEN_UPDATE_ | |
767 | MCFG_SCREEN_UPDATE_DR | |
768 | 768 | |
769 | 769 | MCFG_DEVICE_REMOVE("oki2") |
770 | 770 | MACHINE_CONFIG_END |
r17967 | r17968 | |
---|---|---|
1222 | 1222 | |
1223 | 1223 | MCFG_SCREEN_ADD("screen", RASTER) |
1224 | 1224 | MCFG_SCREEN_RAW_PARAMS(BALSENTE_PIXEL_CLOCK, BALSENTE_HTOTAL, BALSENTE_HBEND, BALSENTE_HBSTART, BALSENTE_VTOTAL, BALSENTE_VBEND, BALSENTE_VBSTART) |
1225 | MCFG_SCREEN_UPDATE_ | |
1225 | MCFG_SCREEN_UPDATE_DR | |
1226 | 1226 | |
1227 | 1227 | MCFG_PALETTE_LENGTH(1024) |
1228 | 1228 |
r17967 | r17968 | |
---|---|---|
112 | 112 | { |
113 | 113 | } |
114 | 114 | virtual void video_start(); |
115 | UINT32 screen_update_galpani3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
115 | 116 | }; |
116 | 117 | |
117 | 118 | |
r17967 | r17968 | |
188 | 189 | } |
189 | 190 | |
190 | 191 | |
191 | stat | |
192 | UINT32 galpani3_state::screen | |
192 | 193 | { |
193 | galpani3_state *state = screen.machine().driver_data<galpani3_state>(); | |
194 | 194 | int x,y; |
195 | 195 | UINT16* src1; |
196 | 196 | UINT32* dst; |
r17967 | r17968 | |
199 | 199 | |
200 | 200 | bitmap.fill(0x0000, cliprect); |
201 | 201 | |
202 | // popmessage("%02x %02x", | |
202 | // popmessage("%02x %02x", | |
203 | 203 | |
204 | 204 | |
205 | 205 | |
r17967 | r17968 | |
207 | 207 | int drawy, drawx; |
208 | 208 | for (drawy=0;drawy<512;drawy++) |
209 | 209 | { |
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; | |
213 | 213 | |
214 | UINT16* priline = | |
214 | UINT16* priline = | |
215 | 215 | |
216 | 216 | for (drawx=0;drawx<512;drawx++) |
217 | 217 | { |
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; | |
221 | 221 | |
222 | int prioffs = (drawx+ | |
222 | int prioffs = (drawx+ | |
223 | 223 | |
224 | 224 | UINT8 dat1 = srcline1[srcoffs1]; |
225 | 225 | UINT8 dat2 = srcline2[srcoffs2]; |
r17967 | r17968 | |
234 | 234 | // this is all wrong |
235 | 235 | if (pridat==0x0f) // relates to the area you've drawn over |
236 | 236 | { |
237 | if (dat1 && | |
237 | if (dat1 && | |
238 | 238 | { |
239 | 239 | dst[0] = paldata[dat1+0x4000]; |
240 | 240 | } |
241 | 241 | |
242 | if (dat2 && | |
242 | if (dat2 && | |
243 | 243 | { |
244 | 244 | dst[0] = paldata[dat2+0x4100]; |
245 | 245 | } |
r17967 | r17968 | |
254 | 254 | /* this isn't right, but the registers have something to do with |
255 | 255 | alpha / mixing, and bit 0x8000 of the palette is DEFINITELY alpha |
256 | 256 | enable -- see fading in intro */ |
257 | if (dat1 && | |
257 | if (dat1 && | |
258 | 258 | { |
259 | 259 | UINT16 pen = dat1+0x4000; |
260 | 260 | UINT32 pal = paldata[pen]; |
r17967 | r17968 | |
266 | 266 | g = (pal & 0x0000ff00)>>8; |
267 | 267 | b = (pal & 0x000000ff)>>0; |
268 | 268 | |
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; | |
272 | 272 | |
273 | 273 | pal = (r & 0x000000ff)<<16; |
274 | 274 | pal |=(g & 0x000000ff)<<8; |
r17967 | r17968 | |
282 | 282 | } |
283 | 283 | } |
284 | 284 | |
285 | if (dat2 && | |
285 | if (dat2 && | |
286 | 286 | { |
287 | 287 | UINT16 pen = dat2+0x4100; |
288 | 288 | UINT32 pal = paldata[pen]; |
r17967 | r17968 | |
294 | 294 | g = (pal & 0x0000ff00)>>8; |
295 | 295 | b = (pal & 0x000000ff)>>0; |
296 | 296 | |
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; | |
300 | 300 | |
301 | 301 | pal = (r & 0x000000ff)<<16; |
302 | 302 | pal |=(g & 0x000000ff)<<8; |
r17967 | r17968 | |
310 | 310 | } |
311 | 311 | } |
312 | 312 | |
313 | if (dat3 && | |
313 | if (dat3 && | |
314 | 314 | { |
315 | 315 | dst[0] = paldata[dat3+0x4200]; |
316 | 316 | } |
r17967 | r17968 | |
344 | 344 | } |
345 | 345 | |
346 | 346 | |
347 | | |
347 | | |
348 | 348 | |
349 | | |
349 | | |
350 | 350 | |
351 | 351 | // ignoring priority bits for now.. |
352 | 352 | for (y=0;y<240;y++) |
353 | 353 | { |
354 | src1 = & | |
354 | src1 = & | |
355 | 355 | dst = &bitmap.pix32(y); |
356 | 356 | |
357 | 357 | for (x=0;x<320;x++) |
r17967 | r17968 | |
518 | 518 | MCFG_SCREEN_SIZE(64*8, 64*8) |
519 | 519 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) |
520 | 520 | //MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 64*8-1) |
521 | MCFG_SCREEN_UPDATE_ | |
521 | MCFG_SCREEN_UPDATE_DR | |
522 | 522 | |
523 | 523 | MCFG_EEPROM_93C46_ADD("eeprom") |
524 | 524 |
r17967 | r17968 | |
---|---|---|
69 | 69 | virtual void machine_reset(); |
70 | 70 | virtual void video_start(); |
71 | 71 | virtual void palette_init(); |
72 | UINT32 screen_update_itgambl2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
72 | 73 | }; |
73 | 74 | |
74 | 75 | |
r17967 | r17968 | |
84 | 85 | } |
85 | 86 | |
86 | 87 | /* (dirty) debug code for looking 8bpps blitter-based gfxs */ |
87 | stat | |
88 | UINT32 itgambl2_state::screen | |
88 | 89 | { |
89 | itgambl2_state *state = screen.machine().driver_data<itgambl2_state>(); | |
90 | 90 | int x,y,count; |
91 | const UINT8 *blit_ram = | |
91 | const UINT8 *blit_ram = | |
92 | 92 | |
93 | 93 | if(screen.machine().input().code_pressed(KEYCODE_Z)) |
94 | | |
94 | | |
95 | 95 | |
96 | 96 | if(screen.machine().input().code_pressed(KEYCODE_X)) |
97 | | |
97 | | |
98 | 98 | |
99 | 99 | if(screen.machine().input().code_pressed(KEYCODE_A)) |
100 | | |
100 | | |
101 | 101 | |
102 | 102 | if(screen.machine().input().code_pressed(KEYCODE_S)) |
103 | | |
103 | | |
104 | 104 | |
105 | 105 | if(screen.machine().input().code_pressed(KEYCODE_Q)) |
106 | | |
106 | | |
107 | 107 | |
108 | 108 | if(screen.machine().input().code_pressed(KEYCODE_W)) |
109 | | |
109 | | |
110 | 110 | |
111 | 111 | if(screen.machine().input().code_pressed(KEYCODE_E)) |
112 | | |
112 | | |
113 | 113 | |
114 | 114 | if(screen.machine().input().code_pressed(KEYCODE_R)) |
115 | | |
115 | | |
116 | 116 | |
117 | popmessage("%d %d %04x", | |
117 | popmessage("%d %d %04x", | |
118 | 118 | |
119 | 119 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
120 | 120 | |
121 | count = ( | |
121 | count = ( | |
122 | 122 | |
123 | for(y=0;y< | |
123 | for(y=0;y< | |
124 | 124 | { |
125 | for(x=0;x< | |
125 | for(x=0;x< | |
126 | 126 | { |
127 | 127 | UINT32 color; |
128 | 128 | |
r17967 | r17968 | |
273 | 273 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
274 | 274 | MCFG_SCREEN_SIZE(512, 256) |
275 | 275 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) |
276 | MCFG_SCREEN_UPDATE_ | |
276 | MCFG_SCREEN_UPDATE_DR | |
277 | 277 | |
278 | 278 | |
279 | 279 | MCFG_GFXDECODE(itgambl2) |
r17967 | r17968 | |
---|---|---|
751 | 751 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
752 | 752 | MCFG_SCREEN_SIZE(40*8, 32*8) |
753 | 753 | MCFG_SCREEN_VISIBLE_AREA(2*8, 39*8-1, 2*8, 30*8-1) |
754 | MCFG_SCREEN_UPDATE_ | |
754 | MCFG_SCREEN_UPDATE_DR | |
755 | 755 | |
756 | 756 | MCFG_PALETTE_LENGTH(0x800) |
757 | 757 | |
r17967 | r17968 | |
776 | 776 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
777 | 777 | MCFG_SCREEN_SIZE(40*8, 32*8) |
778 | 778 | MCFG_SCREEN_VISIBLE_AREA(2*8, 39*8-1, 2*8, 30*8-1) |
779 | MCFG_SCREEN_UPDATE_ | |
779 | MCFG_SCREEN_UPDATE_DR | |
780 | 780 | |
781 | 781 | MCFG_PALETTE_LENGTH(0x2000) |
782 | 782 |
r17967 | r17968 | |
---|---|---|
542 | 542 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
543 | 543 | MCFG_SCREEN_SIZE(32*8, 32*8) |
544 | 544 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
545 | MCFG_SCREEN_UPDATE_ | |
545 | MCFG_SCREEN_UPDATE_DR | |
546 | 546 | |
547 | 547 | MCFG_GFXDECODE(terracre) |
548 | 548 | MCFG_PALETTE_LENGTH(1*16+16*16+16*256) |
r17967 | r17968 | |
575 | 575 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
576 | 576 | MCFG_SCREEN_SIZE(32*8, 32*8) |
577 | 577 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
578 | MCFG_SCREEN_UPDATE_ | |
578 | MCFG_SCREEN_UPDATE_DR | |
579 | 579 | |
580 | 580 | MCFG_GFXDECODE(terracre) |
581 | 581 | MCFG_PALETTE_LENGTH(1*16+16*16+16*256) |
r17967 | r17968 | |
608 | 608 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
609 | 609 | MCFG_SCREEN_SIZE(32*8, 32*8) |
610 | 610 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
611 | MCFG_SCREEN_UPDATE_ | |
611 | MCFG_SCREEN_UPDATE_DR | |
612 | 612 | |
613 | 613 | MCFG_GFXDECODE(terracre) |
614 | 614 | MCFG_PALETTE_LENGTH(1*16+16*16+16*256) |
r17967 | r17968 | |
---|---|---|
302 | 302 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
303 | 303 | /* MCFG_SCREEN_SIZE(64*8, 32*8) |
304 | 304 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) */ |
305 | MCFG_SCREEN_UPDATE_ | |
305 | MCFG_SCREEN_UPDATE_DR | |
306 | 306 | |
307 | 307 | MCFG_GFXDECODE(ddribble) |
308 | 308 | MCFG_PALETTE_LENGTH(64 + 256) |
r17967 | r17968 | |
---|---|---|
84 | 84 | DECLARE_WRITE8_MEMBER(meyc8080_dac_2_w); |
85 | 85 | DECLARE_WRITE8_MEMBER(meyc8080_dac_3_w); |
86 | 86 | DECLARE_WRITE8_MEMBER(meyc8080_dac_4_w); |
87 | UINT32 screen_update_meyc8080(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
87 | 88 | }; |
88 | 89 | |
89 | 90 | |
r17967 | r17968 | |
93 | 94 | * |
94 | 95 | *************************************/ |
95 | 96 | |
96 | stat | |
97 | UINT32 meyc8080_state::screen | |
97 | 98 | { |
98 | meyc8080_state *state = screen.machine().driver_data<meyc8080_state>(); | |
99 | 99 | offs_t offs; |
100 | 100 | |
101 | for (offs = 0; offs < | |
101 | for (offs = 0; offs < | |
102 | 102 | { |
103 | 103 | int i; |
104 | 104 | |
105 | 105 | UINT8 y = offs >> 5; |
106 | 106 | UINT8 x = offs << 3; |
107 | 107 | |
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]; | |
111 | 111 | |
112 | 112 | /* weird equations, but it matches every flyer screenshot - |
113 | 113 | perhaphs they used a look-up PROM? */ |
r17967 | r17968 | |
588 | 588 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 32*8-1) |
589 | 589 | MCFG_SCREEN_REFRESH_RATE(60) |
590 | 590 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
591 | MCFG_SCREEN_UPDATE_ | |
591 | MCFG_SCREEN_UPDATE_DR | |
592 | 592 | |
593 | 593 | /* audio hardware */ |
594 | 594 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
---|---|---|
366 | 366 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) |
367 | 367 | MCFG_SCREEN_SIZE(480, 512) /* vert size is a guess */ |
368 | 368 | MCFG_SCREEN_VISIBLE_AREA(0, 479, 0, 479) |
369 | MCFG_SCREEN_UPDATE_ | |
369 | MCFG_SCREEN_UPDATE_DR | |
370 | 370 | |
371 | 371 | MCFG_GFXDECODE(malzak) |
372 | 372 | MCFG_PALETTE_LENGTH(128) |
r17967 | r17968 | |
---|---|---|
1748 | 1748 | MCFG_SCREEN_REFRESH_RATE(60) |
1749 | 1749 | MCFG_SCREEN_SIZE(42*8, 32*8) |
1750 | 1750 | 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) | |
1753 | 1753 | |
1754 | 1754 | MCFG_GFXDECODE(captaven) |
1755 | 1755 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
1799 | 1799 | MCFG_SCREEN_REFRESH_RATE(60) |
1800 | 1800 | MCFG_SCREEN_SIZE(42*8, 32*8) |
1801 | 1801 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
1802 | MCFG_SCREEN_UPDATE_ | |
1802 | MCFG_SCREEN_UPDATE_DR | |
1803 | 1803 | |
1804 | 1804 | MCFG_GFXDECODE(fghthist) |
1805 | 1805 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
1845 | 1845 | MCFG_SCREEN_REFRESH_RATE(60) |
1846 | 1846 | MCFG_SCREEN_SIZE(42*8, 32*8) |
1847 | 1847 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
1848 | MCFG_SCREEN_UPDATE_ | |
1848 | MCFG_SCREEN_UPDATE_DR | |
1849 | 1849 | |
1850 | 1850 | MCFG_GFXDECODE(fghthist) |
1851 | 1851 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
1958 | 1958 | MCFG_SCREEN_REFRESH_RATE(60) |
1959 | 1959 | MCFG_SCREEN_SIZE(42*8, 32*8) |
1960 | 1960 | 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) | |
1963 | 1963 | |
1964 | 1964 | MCFG_BUFFERED_SPRITERAM32_ADD("spriteram") |
1965 | 1965 | |
r17967 | r17968 | |
2034 | 2034 | MCFG_SCREEN_REFRESH_RATE(60) |
2035 | 2035 | MCFG_SCREEN_SIZE(42*8, 32*8+22) |
2036 | 2036 | 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) | |
2039 | 2039 | |
2040 | 2040 | MCFG_BUFFERED_SPRITERAM32_ADD("spriteram") |
2041 | 2041 | |
r17967 | r17968 | |
2119 | 2119 | MCFG_SCREEN_SIZE(42*8, 32*8) |
2120 | 2120 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
2121 | 2121 | |
2122 | MCFG_SCREEN_UPDATE_ | |
2122 | MCFG_SCREEN_UPDATE_DR | |
2123 | 2123 | |
2124 | 2124 | MCFG_DECO16IC_ADD("tilegen1", tattass_deco16ic_tilegen1_intf) |
2125 | 2125 | MCFG_DECO16IC_ADD("tilegen2", tattass_deco16ic_tilegen2_intf) |
r17967 | r17968 | |
2158 | 2158 | MCFG_SCREEN_REFRESH_RATE(60) |
2159 | 2159 | MCFG_SCREEN_SIZE(42*8, 32*8) |
2160 | 2160 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
2161 | MCFG_SCREEN_UPDATE_ | |
2161 | MCFG_SCREEN_UPDATE_DR | |
2162 | 2162 | |
2163 | 2163 | MCFG_DECO16IC_ADD("tilegen1", tattass_deco16ic_tilegen1_intf) |
2164 | 2164 | MCFG_DECO16IC_ADD("tilegen2", tattass_deco16ic_tilegen2_intf) |
r17967 | r17968 | |
---|---|---|
1102 | 1102 | |
1103 | 1103 | MCFG_SCREEN_ADD("screen", RASTER) |
1104 | 1104 | MCFG_SCREEN_RAW_PARAMS(MIDZEUS_VIDEO_CLOCK/8, 529, 0, 400, 278, 0, 256) |
1105 | MCFG_SCREEN_UPDATE_ | |
1105 | MCFG_SCREEN_UPDATE_DR | |
1106 | 1106 | |
1107 | 1107 | MCFG_VIDEO_START_OVERRIDE(midzeus_state,midzeus) |
1108 | 1108 | |
r17967 | r17968 | |
1140 | 1140 | /* video hardware */ |
1141 | 1141 | MCFG_SCREEN_ADD("screen", RASTER) |
1142 | 1142 | MCFG_SCREEN_RAW_PARAMS(MIDZEUS_VIDEO_CLOCK/4, 666, 0, 512, 438, 0, 400) |
1143 | MCFG_SCREEN_UPDATE_ | |
1143 | MCFG_SCREEN_UPDATE_DR | |
1144 | 1144 | |
1145 | 1145 | MCFG_VIDEO_START_OVERRIDE(midzeus_state,midzeus2) |
1146 | 1146 |
r17967 | r17968 | |
---|---|---|
70 | 70 | virtual void machine_start(); |
71 | 71 | virtual void video_start(); |
72 | 72 | virtual void palette_init(); |
73 | UINT32 screen_update_drw80pkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
73 | 74 | }; |
74 | 75 | |
75 | 76 | |
r17967 | r17968 | |
339 | 340 | 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); |
340 | 341 | } |
341 | 342 | |
342 | stat | |
343 | UINT32 drw80pkr_state::screen | |
343 | 344 | { |
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); | |
346 | 346 | |
347 | 347 | return 0; |
348 | 348 | } |
r17967 | r17968 | |
477 | 477 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
478 | 478 | MCFG_SCREEN_SIZE((31+1)*8, (31+1)*8) |
479 | 479 | MCFG_SCREEN_VISIBLE_AREA(0*8, 24*8-1, 0*8, 27*8-1) |
480 | MCFG_SCREEN_UPDATE_ | |
480 | MCFG_SCREEN_UPDATE_DR | |
481 | 481 | |
482 | 482 | MCFG_GFXDECODE(drw80pkr) |
483 | 483 | MCFG_PALETTE_LENGTH(16*16) |
r17967 | r17968 | |
---|---|---|
559 | 559 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* This value is referred to psychic5 driver */) |
560 | 560 | MCFG_SCREEN_SIZE(32*16, 32*16) |
561 | 561 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
562 | MCFG_SCREEN_UPDATE_ | |
562 | MCFG_SCREEN_UPDATE_DR | |
563 | 563 | |
564 | 564 | MCFG_GFXDECODE(argus) |
565 | 565 | MCFG_PALETTE_LENGTH(896) |
r17967 | r17968 | |
603 | 603 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* This value is referred to psychic5 driver */) |
604 | 604 | MCFG_SCREEN_SIZE(32*16, 32*16) |
605 | 605 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
606 | MCFG_SCREEN_UPDATE_ | |
606 | MCFG_SCREEN_UPDATE_DR | |
607 | 607 | |
608 | 608 | MCFG_GFXDECODE(valtric) |
609 | 609 | MCFG_PALETTE_LENGTH(768) |
r17967 | r17968 | |
647 | 647 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* This value is taken from psychic5 driver */) |
648 | 648 | MCFG_SCREEN_SIZE(32*16, 32*16) |
649 | 649 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
650 | MCFG_SCREEN_UPDATE_ | |
650 | MCFG_SCREEN_UPDATE_DR | |
651 | 651 | |
652 | 652 | MCFG_GFXDECODE(butasan) |
653 | 653 | MCFG_PALETTE_LENGTH(768) |
r17967 | r17968 | |
---|---|---|
51 | 51 | virtual void machine_reset(); |
52 | 52 | virtual void video_start(); |
53 | 53 | virtual void palette_init(); |
54 | UINT32 screen_update_superdq(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
54 | 55 | }; |
55 | 56 | |
56 | 57 | TILE_GET_INFO_MEMBER(superdq_state::get_tile_info) |
r17967 | r17968 | |
66 | 67 | m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(superdq_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); |
67 | 68 | } |
68 | 69 | |
69 | stat | |
70 | UINT32 superdq_state::screen | |
70 | 71 | { |
71 | superdq_state *state = screen.machine().driver_data<superdq_state>(); | |
72 | 72 | |
73 | | |
73 | | |
74 | 74 | |
75 | 75 | return 0; |
76 | 76 | } |
r17967 | r17968 | |
349 | 349 | |
350 | 350 | |
351 | 351 | MCFG_LASERDISC_LDV1000_ADD("laserdisc") |
352 | MCFG_LASERDISC_OVERLAY_ | |
352 | MCFG_LASERDISC_OVERLAY_DR | |
353 | 353 | |
354 | 354 | /* video hardware */ |
355 | 355 | MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc") |
r17967 | r17968 | |
---|---|---|
51 | 51 | TILE_GET_INFO_MEMBER(get_fg_tile_info); |
52 | 52 | TILEMAP_MAPPER_MEMBER(bsb_bg_scan); |
53 | 53 | 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); | |
54 | 56 | }; |
55 | 57 | |
56 | 58 | |
r17967 | r17968 | |
172 | 174 | } |
173 | 175 | } |
174 | 176 | |
175 | static | |
177 | UINT32 bestleag_state::screen_update_bestleag(screen_device &screen, bitmap_ind | |
176 | 178 | { |
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]); | |
184 | 185 | |
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); | |
187 | 188 | draw_sprites(screen.machine(),bitmap,cliprect); |
188 | | |
189 | | |
189 | 190 | return 0; |
190 | 191 | } |
191 | 192 | |
192 | stat | |
193 | UINT32 bestleag_state::screen | |
193 | 194 | { |
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]); | |
201 | 201 | |
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); | |
204 | 204 | draw_sprites(screen.machine(),bitmap,cliprect); |
205 | | |
205 | | |
206 | 206 | return 0; |
207 | 207 | } |
208 | 208 | |
r17967 | r17968 | |
372 | 372 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
373 | 373 | MCFG_SCREEN_SIZE(32*8, 32*8) |
374 | 374 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
375 | MCFG_SCREEN_UPDATE_ | |
375 | MCFG_SCREEN_UPDATE_DR | |
376 | 376 | |
377 | 377 | MCFG_GFXDECODE(bestleag) |
378 | 378 | MCFG_PALETTE_LENGTH(0x800) |
r17967 | r17968 | |
387 | 387 | |
388 | 388 | static MACHINE_CONFIG_DERIVED( bestleaw, bestleag ) |
389 | 389 | MCFG_SCREEN_MODIFY("screen") |
390 | MCFG_SCREEN_UPDATE_ | |
390 | MCFG_SCREEN_UPDATE_DR | |
391 | 391 | MACHINE_CONFIG_END |
392 | 392 | |
393 | 393 |
r17967 | r17968 | |
---|---|---|
973 | 973 | |
974 | 974 | MCFG_SCREEN_ADD("screen", RASTER) |
975 | 975 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
976 | MCFG_SCREEN_UPDATE_ | |
976 | MCFG_SCREEN_UPDATE_DR | |
977 | 977 | |
978 | 978 | MACHINE_CONFIG_END |
979 | 979 | |
r17967 | r17968 | |
990 | 990 | |
991 | 991 | /* video hardware */ |
992 | 992 | MCFG_SCREEN_MODIFY("screen") |
993 | MCFG_SCREEN_UPDATE_ | |
993 | MCFG_SCREEN_UPDATE_DR | |
994 | 994 | |
995 | 995 | /* sound hardware */ |
996 | 996 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
1008 | 1008 | /* video hardware */ |
1009 | 1009 | MCFG_VIDEO_START_OVERRIDE(zaxxon_state,razmataz) |
1010 | 1010 | MCFG_SCREEN_MODIFY("screen") |
1011 | MCFG_SCREEN_UPDATE_ | |
1011 | MCFG_SCREEN_UPDATE_DR | |
1012 | 1012 | |
1013 | 1013 | /* sound hardware */ |
1014 | 1014 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
1032 | 1032 | MCFG_PALETTE_LENGTH(512) |
1033 | 1033 | MCFG_VIDEO_START_OVERRIDE(zaxxon_state,congo) |
1034 | 1034 | MCFG_SCREEN_MODIFY("screen") |
1035 | MCFG_SCREEN_UPDATE_ | |
1035 | MCFG_SCREEN_UPDATE_DR | |
1036 | 1036 | |
1037 | 1037 | /* sound hardware */ |
1038 | 1038 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
---|---|---|
563 | 563 | } |
564 | 564 | |
565 | 565 | |
566 | stat | |
566 | UINT32 norautp_state::screen | |
567 | 567 | { |
568 | norautp_state *state = screen.machine().driver_data<norautp_state>(); | |
569 | 568 | int x, y, count; |
570 | 569 | |
571 | 570 | count = 0; |
r17967 | r17968 | |
579 | 578 | { |
580 | 579 | for(x = 0; x < 16; x++) |
581 | 580 | { |
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; | |
584 | 583 | |
585 | 584 | drawgfx_opaque(bitmap,cliprect, screen.machine().gfx[1], tile, colour, 0, 0, (x * 32) + 8, y * 32); |
586 | 585 | |
r17967 | r17968 | |
591 | 590 | { |
592 | 591 | for(x = 0; x < 32; x++) |
593 | 592 | { |
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; | |
596 | 595 | |
597 | 596 | drawgfx_opaque(bitmap,cliprect, screen.machine().gfx[0], tile, colour, 0, 0, x * 16, y * 32); |
598 | 597 | |
r17967 | r17968 | |
1265 | 1264 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1266 | 1265 | MCFG_SCREEN_SIZE(32*16, 32*16) |
1267 | 1266 | 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_ | |
1267 | MCFG_SCREEN_UPDATE_DR | |
1269 | 1268 | |
1270 | 1269 | MCFG_GFXDECODE(norautp) |
1271 | 1270 |
r17967 | r17968 | |
---|---|---|
384 | 384 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
385 | 385 | MCFG_SCREEN_SIZE(40*8, 28*8) |
386 | 386 | MCFG_SCREEN_VISIBLE_AREA(16, 319-16, 0, 223) |
387 | MCFG_SCREEN_UPDATE_ | |
387 | MCFG_SCREEN_UPDATE_DR | |
388 | 388 | |
389 | 389 | MCFG_GFXDECODE(chinhero) |
390 | 390 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
463 | 463 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
464 | 464 | MCFG_SCREEN_SIZE(256+32, 256) |
465 | 465 | MCFG_SCREEN_VISIBLE_AREA(0, 255+32, 16, 255-16) |
466 | MCFG_SCREEN_UPDATE_ | |
466 | MCFG_SCREEN_UPDATE_DR | |
467 | 467 | |
468 | 468 | MCFG_GFXDECODE(dynamski) |
469 | 469 | MCFG_PALETTE_LENGTH(16*4+16*4) |
r17967 | r17968 | |
---|---|---|
58 | 58 | virtual void machine_start(); |
59 | 59 | virtual void machine_reset(); |
60 | 60 | virtual void video_start(); |
61 | UINT32 screen_update_shtzone(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
61 | 62 | }; |
62 | 63 | |
63 | 64 | static ADDRESS_MAP_START( shtzone_map, AS_PROGRAM, 8, shtzone_state ) |
r17967 | r17968 | |
86 | 87 | } |
87 | 88 | |
88 | 89 | |
89 | ||
90 | ||
90 | 91 | { |
91 | 92 | |
92 | 93 | return 0; |
r17967 | r17968 | |
108 | 109 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
109 | 110 | MCFG_SCREEN_SIZE(256, 256) |
110 | 111 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1) |
111 | MCFG_SCREEN_UPDATE_ | |
112 | MCFG_SCREEN_UPDATE_DR | |
112 | 113 | |
113 | 114 | MCFG_PALETTE_LENGTH(0x100) |
114 | 115 |
r17967 | r17968 | |
---|---|---|
659 | 659 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) //CLOCK/16/60 |
660 | 660 | MCFG_SCREEN_SIZE(32*8, 32*8) |
661 | 661 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
662 | MCFG_SCREEN_UPDATE_ | |
662 | MCFG_SCREEN_UPDATE_DR | |
663 | 663 | |
664 | 664 | MCFG_GFXDECODE(fastfred) |
665 | 665 | MCFG_PALETTE_LENGTH(32*8) |
r17967 | r17968 | |
706 | 706 | |
707 | 707 | MCFG_VIDEO_START_OVERRIDE(fastfred_state,imago) |
708 | 708 | MCFG_SCREEN_MODIFY("screen") |
709 | MCFG_SCREEN_UPDATE_ | |
709 | MCFG_SCREEN_UPDATE_DR | |
710 | 710 | MACHINE_CONFIG_END |
711 | 711 | |
712 | 712 | #undef CLOCK |
r17967 | r17968 | |
---|---|---|
820 | 820 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
821 | 821 | MCFG_SCREEN_SIZE(32*8, 32*8) |
822 | 822 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
823 | MCFG_SCREEN_UPDATE_ | |
823 | MCFG_SCREEN_UPDATE_DR | |
824 | 824 | |
825 | 825 | MCFG_GFXDECODE(karnov) |
826 | 826 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
861 | 861 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
862 | 862 | MCFG_SCREEN_SIZE(32*8, 32*8) |
863 | 863 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
864 | MCFG_SCREEN_UPDATE_ | |
864 | MCFG_SCREEN_UPDATE_DR | |
865 | 865 | |
866 | 866 | MCFG_GFXDECODE(karnov) |
867 | 867 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
798 | 798 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
799 | 799 | MCFG_SCREEN_SIZE(32*8, 32*8) |
800 | 800 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
801 | MCFG_SCREEN_UPDATE_ | |
801 | MCFG_SCREEN_UPDATE_DR | |
802 | 802 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) |
803 | 803 | |
804 | 804 | MCFG_GFXDECODE(lwings) |
r17967 | r17968 | |
841 | 841 | |
842 | 842 | MCFG_VIDEO_START_OVERRIDE(lwings_state,trojan) |
843 | 843 | MCFG_SCREEN_MODIFY("screen") |
844 | MCFG_SCREEN_UPDATE_ | |
844 | MCFG_SCREEN_UPDATE_DR | |
845 | 845 | |
846 | 846 | /* sound hardware */ |
847 | 847 | MCFG_SOUND_ADD("5205", MSM5205, XTAL_384kHz) /* verified on PCB */ |
r17967 | r17968 | |
---|---|---|
962 | 962 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
963 | 963 | MCFG_SCREEN_SIZE(32*8, 32*8) |
964 | 964 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
965 | MCFG_SCREEN_UPDATE_ | |
965 | MCFG_SCREEN_UPDATE_DR | |
966 | 966 | |
967 | 967 | MCFG_SCREEN_ADD("bottom", RASTER) |
968 | 968 | MCFG_SCREEN_REFRESH_RATE(60) |
969 | 969 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
970 | 970 | MCFG_SCREEN_SIZE(32*8, 32*8) |
971 | 971 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
972 | MCFG_SCREEN_UPDATE_ | |
972 | MCFG_SCREEN_UPDATE_DR | |
973 | 973 | |
974 | 974 | |
975 | 975 | /* sound hardware */ |
r17967 | r17968 | |
996 | 996 | |
997 | 997 | MCFG_VIDEO_START_OVERRIDE(punchout_state,armwrest) |
998 | 998 | MCFG_SCREEN_MODIFY("top") |
999 | MCFG_SCREEN_UPDATE_ | |
999 | MCFG_SCREEN_UPDATE_DR | |
1000 | 1000 | MCFG_SCREEN_MODIFY("bottom") |
1001 | MCFG_SCREEN_UPDATE_ | |
1001 | MCFG_SCREEN_UPDATE_DR | |
1002 | 1002 | MACHINE_CONFIG_END |
1003 | 1003 | |
1004 | 1004 |
r17967 | r17968 | |
---|---|---|
198 | 198 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
199 | 199 | MCFG_SCREEN_SIZE(32*8, 32*8) |
200 | 200 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
201 | MCFG_SCREEN_UPDATE_ | |
201 | MCFG_SCREEN_UPDATE_DR | |
202 | 202 | |
203 | 203 | MCFG_GFXDECODE(kopunch) |
204 | 204 | MCFG_PALETTE_LENGTH(8) |
r17967 | r17968 | |
---|---|---|
139 | 139 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
140 | 140 | MCFG_SCREEN_SIZE(256, 256) |
141 | 141 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1) |
142 | MCFG_SCREEN_UPDATE_ | |
142 | MCFG_SCREEN_UPDATE_DR | |
143 | 143 | |
144 | 144 | MCFG_GFXDECODE(news) |
145 | 145 | MCFG_PALETTE_LENGTH(0x100) |
r17967 | r17968 | |
---|---|---|
85 | 85 | virtual void machine_start(); |
86 | 86 | virtual void machine_reset(); |
87 | 87 | virtual void video_start(); |
88 | UINT32 screen_update_atvtrack(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
88 | 89 | }; |
89 | 90 | |
90 | 91 | static void logbinary(UINT32 data,int high=31,int low=0) |
r17967 | r17968 | |
318 | 319 | { |
319 | 320 | } |
320 | 321 | |
321 | ||
322 | ||
322 | 323 | { |
323 | 324 | return 0; |
324 | 325 | } |
r17967 | r17968 | |
401 | 402 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
402 | 403 | MCFG_SCREEN_SIZE(640, 480) |
403 | 404 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
404 | MCFG_SCREEN_UPDATE_ | |
405 | MCFG_SCREEN_UPDATE_DR | |
405 | 406 | |
406 | 407 | MCFG_PALETTE_LENGTH(0x1000) |
407 | 408 |
r17967 | r17968 | |
---|---|---|
997 | 997 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
998 | 998 | MCFG_SCREEN_SIZE(32*8, 32*8) |
999 | 999 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
1000 | MCFG_SCREEN_UPDATE_ | |
1000 | MCFG_SCREEN_UPDATE_DR | |
1001 | 1001 | |
1002 | 1002 | MCFG_GFXDECODE(cclimber) |
1003 | 1003 | MCFG_PALETTE_LENGTH(16*4+8*4) |
r17967 | r17968 | |
1047 | 1047 | MCFG_PALETTE_LENGTH(16*4+8*4+256) |
1048 | 1048 | MCFG_PALETTE_INIT_OVERRIDE(cclimber_state,yamato) |
1049 | 1049 | MCFG_SCREEN_MODIFY("screen") |
1050 | MCFG_SCREEN_UPDATE_ | |
1050 | MCFG_SCREEN_UPDATE_DR | |
1051 | 1051 | |
1052 | 1052 | /* audio hardware */ |
1053 | 1053 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
1073 | 1073 | |
1074 | 1074 | MCFG_VIDEO_START_OVERRIDE(cclimber_state,toprollr) |
1075 | 1075 | MCFG_SCREEN_MODIFY("screen") |
1076 | MCFG_SCREEN_UPDATE_ | |
1076 | MCFG_SCREEN_UPDATE_DR | |
1077 | 1077 | MACHINE_CONFIG_END |
1078 | 1078 | |
1079 | 1079 | |
r17967 | r17968 | |
1095 | 1095 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1096 | 1096 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1097 | 1097 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
1098 | MCFG_SCREEN_UPDATE_ | |
1098 | MCFG_SCREEN_UPDATE_DR | |
1099 | 1099 | |
1100 | 1100 | MCFG_GFXDECODE(swimmer) |
1101 | 1101 | MCFG_PALETTE_LENGTH(32*8+4*8+1) |
r17967 | r17968 | |
---|---|---|
188 | 188 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
189 | 189 | MCFG_SCREEN_SIZE(32*8, 32*8) |
190 | 190 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
191 | MCFG_SCREEN_UPDATE_ | |
191 | MCFG_SCREEN_UPDATE_DR | |
192 | 192 | |
193 | 193 | MCFG_GFXDECODE(xorworld) |
194 | 194 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
349 | 349 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
350 | 350 | MCFG_SCREEN_SIZE(32*8, 32*8) |
351 | 351 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 3*8, 32*8-1) |
352 | MCFG_SCREEN_UPDATE_ | |
352 | MCFG_SCREEN_UPDATE_DR | |
353 | 353 | |
354 | 354 | MCFG_GFXDECODE(cloak) |
355 | 355 | MCFG_PALETTE_LENGTH(64) |
r17967 | r17968 | |
---|---|---|
371 | 371 | |
372 | 372 | MCFG_SCREEN_ADD("screen", RASTER) |
373 | 373 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 384, 0, 256, 259, 0, 224) |
374 | MCFG_SCREEN_UPDATE_ | |
374 | MCFG_SCREEN_UPDATE_DR | |
375 | 375 | |
376 | 376 | MCFG_VIDEO_START_OVERRIDE(foodf_state,foodf) |
377 | 377 |
r17967 | r17968 | |
---|---|---|
229 | 229 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(22 * 1000000 / 15750)) |
230 | 230 | MCFG_SCREEN_SIZE(512, 240) |
231 | 231 | MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 239) |
232 | MCFG_SCREEN_UPDATE_ | |
232 | MCFG_SCREEN_UPDATE_DR | |
233 | 233 | |
234 | 234 | MCFG_GFXDECODE(skyraid) |
235 | 235 |
r17967 | r17968 | |
---|---|---|
270 | 270 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
271 | 271 | MCFG_SCREEN_SIZE(64*8, 32*8) |
272 | 272 | MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) |
273 | MCFG_SCREEN_UPDATE_ | |
273 | MCFG_SCREEN_UPDATE_DR | |
274 | 274 | |
275 | 275 | MCFG_PALETTE_LENGTH(512) |
276 | 276 |
r17967 | r17968 | |
---|---|---|
99 | 99 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
100 | 100 | MCFG_SCREEN_SIZE(384, 256) |
101 | 101 | MCFG_SCREEN_VISIBLE_AREA(16, 304-1, 0, 240-1) // 288 x 240, correct? |
102 | MCFG_SCREEN_UPDATE_ | |
102 | MCFG_SCREEN_UPDATE_DR | |
103 | 103 | |
104 | 104 | MCFG_PALETTE_LENGTH(16) |
105 | 105 |
r17967 | r17968 | |
---|---|---|
386 | 386 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
387 | 387 | MCFG_SCREEN_SIZE(64*8, 32*8) |
388 | 388 | MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 ) |
389 | MCFG_SCREEN_UPDATE_ | |
389 | MCFG_SCREEN_UPDATE_DR | |
390 | 390 | |
391 | 391 | MCFG_PALETTE_LENGTH(2048) |
392 | 392 |
r17967 | r17968 | |
---|---|---|
1289 | 1289 | } |
1290 | 1290 | } |
1291 | 1291 | |
1292 | ||
1292 | ||
1293 | 1293 | { |
1294 | dynax_state *state = screen.machine().driver_data<dynax_state>(); | |
1295 | 1294 | |
1296 | 1295 | static const int order[24][4] = |
1297 | 1296 | { |
r17967 | r17968 | |
1303 | 1302 | |
1304 | 1303 | int pri; |
1305 | 1304 | |
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; | |
1308 | 1307 | |
1309 | 1308 | #if 0 |
1310 | 1309 | static int base = 0x0; |
1311 | 1310 | const UINT8 *gfx = screen.machine().root_device().memregion("blitter")->base(); |
1312 | 1311 | 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; | |
1322 | 1321 | next = blit_draw(screen.machine(), base, 0); |
1323 | 1322 | popmessage("GFX %06x", base); |
1324 | 1323 | if (screen.machine().input().code_pressed(KEYCODE_S)) base = next; |
r17967 | r17968 | |
1329 | 1328 | if (screen.machine().input().code_pressed_once(KEYCODE_F)) { base++; while ((gfx[base] & 0xf0) != 0x30) base++; } |
1330 | 1329 | #endif |
1331 | 1330 | |
1332 | bitmap.fill( | |
1331 | bitmap.fill( | |
1333 | 1332 | |
1334 | 1333 | #ifdef MAME_DEBUG |
1335 | 1334 | if (screen.machine().input().code_pressed(KEYCODE_Z)) |
r17967 | r17968 | |
1345 | 1344 | |
1346 | 1345 | mask2 = 0; |
1347 | 1346 | |
1348 | if ( | |
1347 | if ( | |
1349 | 1348 | { |
1350 | 1349 | if (screen.machine().input().code_pressed(KEYCODE_A)) mask2 |= 1; |
1351 | 1350 | if (screen.machine().input().code_pressed(KEYCODE_S)) mask2 |= 2; |
r17967 | r17968 | |
1355 | 1354 | |
1356 | 1355 | if (mask || mask2) |
1357 | 1356 | { |
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; | |
1360 | 1359 | } |
1361 | 1360 | } |
1362 | 1361 | #endif |
1363 | 1362 | |
1364 | pri = | |
1363 | pri = | |
1365 | 1364 | |
1366 | 1365 | if (pri >= 24) |
1367 | 1366 | { |
r17967 | r17968 | |
1374 | 1373 | copylayer(screen.machine(), bitmap, cliprect, order[pri][2]); |
1375 | 1374 | copylayer(screen.machine(), bitmap, cliprect, order[pri][3]); |
1376 | 1375 | |
1377 | if ( | |
1376 | if ( | |
1378 | 1377 | { |
1379 | pri = | |
1378 | pri = | |
1380 | 1379 | |
1381 | 1380 | if (pri >= 24) |
1382 | 1381 | { |
r17967 | r17968 | |
1390 | 1389 | copylayer(screen.machine(), bitmap, cliprect, order[pri][3] + 4); |
1391 | 1390 | } |
1392 | 1391 | |
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; | |
1395 | 1394 | |
1396 | 1395 | return 0; |
1397 | 1396 | } |
r17967 | r17968 | |
8513 | 8512 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
8514 | 8513 | MCFG_SCREEN_SIZE(336, 256) |
8515 | 8514 | MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 5, 256-16+5-1) |
8516 | MCFG_SCREEN_UPDATE_ | |
8515 | MCFG_SCREEN_UPDATE_DR | |
8517 | 8516 | |
8518 | 8517 | MCFG_PALETTE_LENGTH(0x100) |
8519 | 8518 | |
r17967 | r17968 | |
8637 | 8636 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
8638 | 8637 | MCFG_SCREEN_SIZE(336, 256+22) |
8639 | 8638 | MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 5, 256-16+5-1) |
8640 | MCFG_SCREEN_UPDATE_ | |
8639 | MCFG_SCREEN_UPDATE_DR | |
8641 | 8640 | |
8642 | 8641 | MCFG_PALETTE_LENGTH(0x100) |
8643 | 8642 | |
r17967 | r17968 | |
8728 | 8727 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
8729 | 8728 | MCFG_SCREEN_SIZE(336, 256+22) |
8730 | 8729 | MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 5, 256-16+5-1) |
8731 | MCFG_SCREEN_UPDATE_ | |
8730 | MCFG_SCREEN_UPDATE_DR | |
8732 | 8731 | |
8733 | 8732 | MCFG_PALETTE_LENGTH(0x100) |
8734 | 8733 | |
r17967 | r17968 | |
8812 | 8811 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
8813 | 8812 | MCFG_SCREEN_SIZE(336, 256+22) |
8814 | 8813 | MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 5, 256-11-1) |
8815 | MCFG_SCREEN_UPDATE_ | |
8814 | MCFG_SCREEN_UPDATE_DR | |
8816 | 8815 | |
8817 | 8816 | MCFG_PALETTE_LENGTH(0x200) |
8818 | 8817 | |
r17967 | r17968 | |
9228 | 9227 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
9229 | 9228 | MCFG_SCREEN_SIZE(336, 256) |
9230 | 9229 | MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 5, 256-11-1) |
9231 | MCFG_SCREEN_UPDATE_ | |
9230 | MCFG_SCREEN_UPDATE_DR | |
9232 | 9231 | |
9233 | 9232 | MCFG_PALETTE_LENGTH(0x200) |
9234 | 9233 | |
r17967 | r17968 | |
9269 | 9268 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
9270 | 9269 | MCFG_SCREEN_SIZE(336, 256+22) |
9271 | 9270 | MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 0+5, 256-12-1) |
9272 | MCFG_SCREEN_UPDATE_ | |
9271 | MCFG_SCREEN_UPDATE_DR | |
9273 | 9272 | |
9274 | 9273 | MCFG_PALETTE_LENGTH(0x100) |
9275 | 9274 | |
r17967 | r17968 | |
9314 | 9313 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
9315 | 9314 | MCFG_SCREEN_SIZE(336, 256+22) |
9316 | 9315 | MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 0+5, 256-12-1) |
9317 | MCFG_SCREEN_UPDATE_ | |
9316 | MCFG_SCREEN_UPDATE_DR | |
9318 | 9317 | |
9319 | 9318 | MCFG_PALETTE_LENGTH(0x100) |
9320 | 9319 | |
r17967 | r17968 | |
9388 | 9387 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
9389 | 9388 | MCFG_SCREEN_SIZE(336, 256+22) |
9390 | 9389 | MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 0+5, 256-12-1) |
9391 | MCFG_SCREEN_UPDATE_ | |
9390 | MCFG_SCREEN_UPDATE_DR | |
9392 | 9391 | |
9393 | 9392 | MCFG_PALETTE_LENGTH(0x100) |
9394 | 9393 | |
r17967 | r17968 | |
9435 | 9434 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
9436 | 9435 | MCFG_SCREEN_SIZE(336, 256+22) |
9437 | 9436 | MCFG_SCREEN_VISIBLE_AREA(0, 336-1-1, 1, 256-15-1) |
9438 | MCFG_SCREEN_UPDATE_ | |
9437 | MCFG_SCREEN_UPDATE_DR | |
9439 | 9438 | |
9440 | 9439 | MCFG_PALETTE_LENGTH(0x200) |
9441 | 9440 |
r17967 | r17968 | |
---|---|---|
587 | 587 | /* video hardware */ |
588 | 588 | MCFG_SCREEN_ADD("screen", RASTER) |
589 | 589 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240) /* based on ddragon driver */ |
590 | MCFG_SCREEN_UPDATE_ | |
590 | MCFG_SCREEN_UPDATE_DR | |
591 | 591 | |
592 | 592 | MCFG_GFXDECODE(chinagat) |
593 | 593 | MCFG_PALETTE_LENGTH(384) |
r17967 | r17968 | |
631 | 631 | /* video hardware */ |
632 | 632 | MCFG_SCREEN_ADD("screen", RASTER) |
633 | 633 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240) /* based on ddragon driver */ |
634 | MCFG_SCREEN_UPDATE_ | |
634 | MCFG_SCREEN_UPDATE_DR | |
635 | 635 | |
636 | 636 | MCFG_GFXDECODE(chinagat) |
637 | 637 | MCFG_PALETTE_LENGTH(384) |
r17967 | r17968 | |
672 | 672 | /* video hardware */ |
673 | 673 | MCFG_SCREEN_ADD("screen", RASTER) |
674 | 674 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240) /* based on ddragon driver */ |
675 | MCFG_SCREEN_UPDATE_ | |
675 | MCFG_SCREEN_UPDATE_DR | |
676 | 676 | |
677 | 677 | MCFG_GFXDECODE(chinagat) |
678 | 678 | MCFG_PALETTE_LENGTH(384) |
r17967 | r17968 | |
---|---|---|
1654 | 1654 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1655 | 1655 | MCFG_SCREEN_SIZE(256, 256) |
1656 | 1656 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1) |
1657 | MCFG_SCREEN_UPDATE_ | |
1657 | MCFG_SCREEN_UPDATE_DR | |
1658 | 1658 | |
1659 | 1659 | MCFG_GFXDECODE(1x4bit_1x4bit) |
1660 | 1660 | MCFG_PALETTE_LENGTH(2048 + 32768) /* 32768 static colors for the bg */ |
r17967 | r17968 | |
1708 | 1708 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1709 | 1709 | MCFG_SCREEN_SIZE(256, 256) |
1710 | 1710 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1) |
1711 | MCFG_SCREEN_UPDATE_ | |
1711 | MCFG_SCREEN_UPDATE_DR | |
1712 | 1712 | |
1713 | 1713 | MCFG_GFXDECODE(1x4bit_2x4bit) |
1714 | 1714 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
1777 | 1777 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1778 | 1778 | MCFG_SCREEN_SIZE(320, 240) |
1779 | 1779 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1 -8) |
1780 | MCFG_SCREEN_UPDATE_ | |
1780 | MCFG_SCREEN_UPDATE_DR | |
1781 | 1781 | |
1782 | 1782 | MCFG_GFXDECODE(1x4bit_1x4bit) |
1783 | 1783 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
1837 | 1837 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1838 | 1838 | MCFG_SCREEN_SIZE(320, 240) |
1839 | 1839 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) |
1840 | MCFG_SCREEN_UPDATE_ | |
1840 | MCFG_SCREEN_UPDATE_DR | |
1841 | 1841 | |
1842 | 1842 | MCFG_GFXDECODE(1x8bit_2x4bit) |
1843 | 1843 | MCFG_PALETTE_LENGTH(32768) |
r17967 | r17968 | |
1955 | 1955 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1956 | 1956 | MCFG_SCREEN_SIZE(256, 256) |
1957 | 1957 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1) |
1958 | MCFG_SCREEN_UPDATE_ | |
1958 | MCFG_SCREEN_UPDATE_DR | |
1959 | 1959 | |
1960 | 1960 | MCFG_GFXDECODE(1x4bit_2x4bit) |
1961 | 1961 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
2079 | 2079 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2080 | 2080 | MCFG_SCREEN_SIZE(320, 240) |
2081 | 2081 | MCFG_SCREEN_VISIBLE_AREA(40, 296-1, 16, 240-1) |
2082 | MCFG_SCREEN_UPDATE_ | |
2082 | MCFG_SCREEN_UPDATE_DR | |
2083 | 2083 | |
2084 | 2084 | MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) |
2085 | 2085 |
r17967 | r17968 | |
---|---|---|
219 | 219 | TILE_GET_INFO_MEMBER(get_tilemap1_tile_info); |
220 | 220 | TILE_GET_INFO_MEMBER(get_tilemap2_tile_info); |
221 | 221 | 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); | |
222 | 224 | }; |
223 | 225 | |
224 | 226 | /* tile format |
r17967 | r17968 | |
498 | 500 | return 0; |
499 | 501 | } |
500 | 502 | |
501 | static SCREEN_UPDATE_IND16( cybertnk_left ) { return update_screen(screen, bitmap, cliprect, 0); } | |
502 | static SCREEN_UPDATE_IND16( cybertnk_right ) { return update_screen(screen, bitmap, cliprect, -256); } | |
503 | UINT32 cybertnk_state::screen_update_cybertnk_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 0); } | |
504 | UINT32 cybertnk_state::screen_update_cybertnk_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, -256); } | |
503 | 505 | |
504 | 506 | |
505 | 507 | WRITE16_MEMBER(cybertnk_state::tilemap0_vram_w) |
r17967 | r17968 | |
851 | 853 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
852 | 854 | MCFG_SCREEN_SIZE(32*8, 32*8) |
853 | 855 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) |
854 | MCFG_SCREEN_UPDATE_ | |
856 | MCFG_SCREEN_UPDATE_DR | |
855 | 857 | |
856 | 858 | MCFG_SCREEN_ADD("rscreen", RASTER) |
857 | 859 | MCFG_SCREEN_REFRESH_RATE(60) |
858 | 860 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
859 | 861 | MCFG_SCREEN_SIZE(32*8, 32*8) |
860 | 862 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) |
861 | MCFG_SCREEN_UPDATE_ | |
863 | MCFG_SCREEN_UPDATE_DR | |
862 | 864 | |
863 | 865 | MCFG_GFXDECODE(cybertnk) |
864 | 866 | MCFG_PALETTE_LENGTH(0x4000) |
r17967 | r17968 | |
---|---|---|
326 | 326 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
327 | 327 | MCFG_SCREEN_SIZE(32*8, 32*8) |
328 | 328 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
329 | MCFG_SCREEN_UPDATE_ | |
329 | MCFG_SCREEN_UPDATE_DR | |
330 | 330 | |
331 | 331 | MCFG_GFXDECODE(wc90) |
332 | 332 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
532 | 532 | /* note: these parameters are from published specs, not derived */ |
533 | 533 | /* the board uses a SYNGEN chip to generate video signals */ |
534 | 534 | MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240) |
535 | MCFG_SCREEN_UPDATE_ | |
535 | MCFG_SCREEN_UPDATE_DR | |
536 | 536 | |
537 | 537 | MCFG_VIDEO_START_OVERRIDE(gauntlet_state,gauntlet) |
538 | 538 |
r17967 | r17968 | |
---|---|---|
1408 | 1408 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1409 | 1409 | MCFG_SCREEN_SIZE(40*8, 28*8) |
1410 | 1410 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) |
1411 | MCFG_SCREEN_UPDATE_ | |
1411 | MCFG_SCREEN_UPDATE_DR | |
1412 | 1412 | |
1413 | 1413 | MCFG_GFXDECODE(ms32) |
1414 | 1414 | MCFG_PALETTE_LENGTH(0x10000) |
r17967 | r17968 | |
---|---|---|
274 | 274 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) |
275 | 275 | MCFG_SCREEN_SIZE(32*8, 32*8) |
276 | 276 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
277 | MCFG_SCREEN_UPDATE_ | |
277 | MCFG_SCREEN_UPDATE_DR | |
278 | 278 | |
279 | 279 | MCFG_GFXDECODE(darkseal) |
280 | 280 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
---|---|---|
286 | 286 | MCFG_SCREEN_SIZE(512, 256) |
287 | 287 | //MCFG_SCREEN_VISIBLE_AREA(24*8, 64*8-1, 0*8, 28*8-1) // looks better but doesn't match hardware |
288 | 288 | MCFG_SCREEN_VISIBLE_AREA(24*8-4, 64*8-5, 0*8, 28*8-1) |
289 | MCFG_SCREEN_UPDATE_ | |
289 | MCFG_SCREEN_UPDATE_DR | |
290 | 290 | |
291 | 291 | MCFG_GFXDECODE(deniam) |
292 | 292 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
318 | 318 | MCFG_SCREEN_SIZE(512, 256) |
319 | 319 | //MCFG_SCREEN_VISIBLE_AREA(24*8, 64*8-1, 0*8, 28*8-1) // looks better but doesn't match hardware |
320 | 320 | MCFG_SCREEN_VISIBLE_AREA(24*8-4, 64*8-5, 0*8, 28*8-1) |
321 | MCFG_SCREEN_UPDATE_ | |
321 | MCFG_SCREEN_UPDATE_DR | |
322 | 322 | |
323 | 323 | MCFG_GFXDECODE(deniam) |
324 | 324 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
---|---|---|
1101 | 1101 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1102 | 1102 | MCFG_SCREEN_SIZE(32*16, 30*16) |
1103 | 1103 | MCFG_SCREEN_VISIBLE_AREA(0*16, 32*16-1, 0*16, 30*16-1) |
1104 | MCFG_SCREEN_UPDATE_ | |
1104 | MCFG_SCREEN_UPDATE_DR | |
1105 | 1105 | |
1106 | 1106 | MCFG_GFXDECODE(mcr3) |
1107 | 1107 | MCFG_PALETTE_LENGTH(64) |
r17967 | r17968 | |
1152 | 1152 | MCFG_SCREEN_MODIFY("screen") |
1153 | 1153 | MCFG_SCREEN_SIZE(30*16, 30*16) |
1154 | 1154 | MCFG_SCREEN_VISIBLE_AREA(0, 30*16-1, 0, 30*16-1) |
1155 | MCFG_SCREEN_UPDATE_ | |
1155 | MCFG_SCREEN_UPDATE_DR | |
1156 | 1156 | MCFG_GFXDECODE(spyhunt) |
1157 | 1157 | MCFG_PALETTE_LENGTH(64+4) |
1158 | 1158 |
r17967 | r17968 | |
---|---|---|
101 | 101 | TILE_GET_INFO_MEMBER(get_tile_info2); |
102 | 102 | virtual void video_start(); |
103 | 103 | virtual void palette_init(); |
104 | UINT32 screen_update_pipeline(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
104 | 105 | }; |
105 | 106 | |
106 | 107 | |
r17967 | r17968 | |
135 | 136 | m_tilemap2->set_transparent_pen(0); |
136 | 137 | } |
137 | 138 | |
138 | static | |
139 | UINT32 pipeline_state::screen_update_pipeline(screen_device &screen, bitmap_ind | |
139 | 140 | { |
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); | |
143 | 143 | return 0; |
144 | 144 | } |
145 | 145 | |
r17967 | r17968 | |
413 | 413 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
414 | 414 | MCFG_SCREEN_SIZE(512, 512) |
415 | 415 | MCFG_SCREEN_VISIBLE_AREA(0, 319, 16, 239) |
416 | MCFG_SCREEN_UPDATE_ | |
416 | MCFG_SCREEN_UPDATE_DR | |
417 | 417 | |
418 | 418 | MCFG_GFXDECODE(pipeline) |
419 | 419 |
r17967 | r17968 | |
---|---|---|
240 | 240 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) |
241 | 241 | MCFG_SCREEN_SIZE(32*8, 32*8) |
242 | 242 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
243 | MCFG_SCREEN_UPDATE_ | |
243 | MCFG_SCREEN_UPDATE_DR | |
244 | 244 | |
245 | 245 | MCFG_GFXDECODE(stadhero) |
246 | 246 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
48 | 48 | DECLARE_DRIVER_INIT(mwskins); |
49 | 49 | virtual void machine_start(); |
50 | 50 | virtual void machine_reset(); |
51 | UINT32 screen_update_mwskins(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
51 | 52 | }; |
52 | 53 | |
53 | 54 | |
r17967 | r17968 | |
85 | 86 | * |
86 | 87 | *************************************/ |
87 | 88 | |
88 | ||
89 | UINT32 atlantis_state::screen | |
89 | 90 | { |
90 | 91 | return 0; |
91 | 92 | } |
r17967 | r17968 | |
166 | 167 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
167 | 168 | MCFG_SCREEN_SIZE(320, 240) |
168 | 169 | MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) |
169 | MCFG_SCREEN_UPDATE_ | |
170 | MCFG_SCREEN_UPDATE_DR | |
170 | 171 | |
171 | 172 | MCFG_PALETTE_INIT(BBBBB_GGGGG_RRRRR) |
172 | 173 | MCFG_PALETTE_LENGTH(32768) |
r17967 | r17968 | |
---|---|---|
434 | 434 | /* video hardware */ |
435 | 435 | MCFG_SCREEN_ADD("screen", RASTER) |
436 | 436 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 320, 0, 256, 272, 8, 248) /* HTOTAL and VTOTAL are guessed */ |
437 | MCFG_SCREEN_UPDATE_ | |
437 | MCFG_SCREEN_UPDATE_DR | |
438 | 438 | |
439 | 439 | MCFG_GFXDECODE(wwfsstar) |
440 | 440 | MCFG_PALETTE_LENGTH(384) |
r17967 | r17968 | |
---|---|---|
2056 | 2056 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2057 | 2057 | MCFG_SCREEN_SIZE(64*8, 32*8) |
2058 | 2058 | 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) | |
2061 | 2061 | |
2062 | 2062 | MCFG_GFXDECODE(taito_b) |
2063 | 2063 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
2100 | 2100 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2101 | 2101 | MCFG_SCREEN_SIZE(64*8, 32*8) |
2102 | 2102 | 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) | |
2105 | 2105 | |
2106 | 2106 | MCFG_GFXDECODE(taito_b) |
2107 | 2107 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
2144 | 2144 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2145 | 2145 | MCFG_SCREEN_SIZE(64*8, 32*8) |
2146 | 2146 | 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) | |
2149 | 2149 | |
2150 | 2150 | MCFG_GFXDECODE(taito_b) |
2151 | 2151 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
2188 | 2188 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2189 | 2189 | MCFG_SCREEN_SIZE(64*8, 32*8) |
2190 | 2190 | 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) | |
2193 | 2193 | |
2194 | 2194 | MCFG_GFXDECODE(taito_b) |
2195 | 2195 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
2231 | 2231 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2232 | 2232 | MCFG_SCREEN_SIZE(64*8, 32*8) |
2233 | 2233 | 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) | |
2236 | 2236 | |
2237 | 2237 | MCFG_GFXDECODE(taito_b) |
2238 | 2238 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
2275 | 2275 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2276 | 2276 | MCFG_SCREEN_SIZE(64*8, 32*8) |
2277 | 2277 | 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) | |
2280 | 2280 | |
2281 | 2281 | MCFG_GFXDECODE(taito_b) |
2282 | 2282 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
2324 | 2324 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2325 | 2325 | MCFG_SCREEN_SIZE(64*8, 32*8) |
2326 | 2326 | 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) | |
2329 | 2329 | |
2330 | 2330 | MCFG_GFXDECODE(rambo3) |
2331 | 2331 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
2368 | 2368 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2369 | 2369 | MCFG_SCREEN_SIZE(64*8, 32*8) |
2370 | 2370 | 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) | |
2373 | 2373 | |
2374 | 2374 | MCFG_GFXDECODE(taito_b) |
2375 | 2375 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
2415 | 2415 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2416 | 2416 | MCFG_SCREEN_SIZE(64*8, 32*8) |
2417 | 2417 | 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) | |
2420 | 2420 | |
2421 | 2421 | MCFG_GFXDECODE(taito_b) |
2422 | 2422 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
2463 | 2463 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2464 | 2464 | MCFG_SCREEN_SIZE(64*8, 32*8) |
2465 | 2465 | 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) | |
2468 | 2468 | |
2469 | 2469 | MCFG_GFXDECODE(taito_b) |
2470 | 2470 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
2507 | 2507 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2508 | 2508 | MCFG_SCREEN_SIZE(64*8, 32*8) |
2509 | 2509 | 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) | |
2512 | 2512 | |
2513 | 2513 | MCFG_GFXDECODE(taito_b) |
2514 | 2514 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
2555 | 2555 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2556 | 2556 | MCFG_SCREEN_SIZE(64*8, 32*8) |
2557 | 2557 | 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) | |
2560 | 2560 | |
2561 | 2561 | MCFG_GFXDECODE(taito_b) |
2562 | 2562 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
2599 | 2599 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2600 | 2600 | MCFG_SCREEN_SIZE(64*8, 32*8) |
2601 | 2601 | 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) | |
2604 | 2604 | |
2605 | 2605 | MCFG_GFXDECODE(taito_b) |
2606 | 2606 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
2646 | 2646 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2647 | 2647 | MCFG_SCREEN_SIZE(64*8, 32*8) |
2648 | 2648 | 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) | |
2651 | 2651 | |
2652 | 2652 | MCFG_GFXDECODE(taito_b) |
2653 | 2653 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
2691 | 2691 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2692 | 2692 | MCFG_SCREEN_SIZE(64*8, 32*8) |
2693 | 2693 | 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) | |
2696 | 2696 | |
2697 | 2697 | MCFG_GFXDECODE(taito_b) |
2698 | 2698 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
2735 | 2735 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2736 | 2736 | MCFG_SCREEN_SIZE(64*8, 32*8) |
2737 | 2737 | 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) | |
2740 | 2740 | |
2741 | 2741 | MCFG_GFXDECODE(taito_b) |
2742 | 2742 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
2788 | 2788 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2789 | 2789 | MCFG_SCREEN_SIZE(64*8, 32*8) |
2790 | 2790 | 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) | |
2793 | 2793 | |
2794 | 2794 | MCFG_GFXDECODE(taito_b) |
2795 | 2795 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
2839 | 2839 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2840 | 2840 | MCFG_SCREEN_SIZE(64*8, 32*8) |
2841 | 2841 | 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) | |
2844 | 2844 | |
2845 | 2845 | MCFG_GFXDECODE(taito_b) |
2846 | 2846 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
2888 | 2888 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2889 | 2889 | MCFG_SCREEN_SIZE(64*8, 32*8) |
2890 | 2890 | 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) | |
2893 | 2893 | |
2894 | 2894 | MCFG_GFXDECODE(taito_b) |
2895 | 2895 | MCFG_PALETTE_LENGTH(4096) |
2896 | 2896 | |
2897 | 2897 | MCFG_VIDEO_START_OVERRIDE(taitob_state,realpunc) |
2898 | MCFG_SCREEN_UPDATE_ | |
2898 | MCFG_SCREEN_UPDATE_DR | |
2899 | 2899 | |
2900 | 2900 | MCFG_HD63484_ADD("hd63484", realpunc_hd63484_intf) |
2901 | 2901 |
r17967 | r17968 | |
---|---|---|
372 | 372 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
373 | 373 | MCFG_SCREEN_SIZE(32*8, 32*8) |
374 | 374 | MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1) |
375 | MCFG_SCREEN_UPDATE_ | |
375 | MCFG_SCREEN_UPDATE_DR | |
376 | 376 | |
377 | 377 | MCFG_GFXDECODE(jackal) |
378 | 378 | MCFG_PALETTE_LENGTH(0x300) |
r17967 | r17968 | |
---|---|---|
303 | 303 | static timer_device *ds2430_bit_timer; |
304 | 304 | |
305 | 305 | |
306 | static 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 | ||
312 | 306 | class viper_state : public driver_device |
313 | 307 | { |
314 | 308 | public: |
r17967 | r17968 | |
352 | 346 | DECLARE_DRIVER_INIT(vipercf); |
353 | 347 | virtual void machine_start(); |
354 | 348 | virtual void machine_reset(); |
349 | UINT32 screen_update_viper(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
355 | 350 | }; |
356 | 351 | |
352 | UINT32 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 | ||
357 | 358 | UINT32 m_mpc8240_regs[256/4]; |
358 | 359 | |
359 | 360 | /*****************************************************************************/ |
r17967 | r17968 | |
2010 | 2011 | |
2011 | 2012 | MCFG_PALETTE_LENGTH(65536) |
2012 | 2013 | |
2013 | MCFG_SCREEN_UPDATE_ | |
2014 | MCFG_SCREEN_UPDATE_DR | |
2014 | 2015 | |
2015 | 2016 | MCFG_TIMER_ADD("ds2430_timer2", NULL) |
2016 | 2017 |
r17967 | r17968 | |
---|---|---|
231 | 231 | /* video hardware */ |
232 | 232 | MCFG_SCREEN_ADD("screen", RASTER) |
233 | 233 | MCFG_SCREEN_RAW_PARAMS(MW8080BW_PIXEL_CLOCK, MW8080BW_HTOTAL, MW8080BW_HBEND, MW8080BW_HPIXCOUNT, MW8080BW_VTOTAL, MW8080BW_VBEND, MW8080BW_VBSTART) |
234 | MCFG_SCREEN_UPDATE_ | |
234 | MCFG_SCREEN_UPDATE_DR | |
235 | 235 | MACHINE_CONFIG_END |
236 | 236 | |
237 | 237 | |
r17967 | r17968 | |
2269 | 2269 | |
2270 | 2270 | /* video hardware */ |
2271 | 2271 | MCFG_SCREEN_MODIFY("screen") |
2272 | MCFG_SCREEN_UPDATE_ | |
2272 | MCFG_SCREEN_UPDATE_DR | |
2273 | 2273 | |
2274 | 2274 | /* audio hardware */ |
2275 | 2275 | MCFG_FRAGMENT_ADD(spcenctr_audio) |
r17967 | r17968 | |
2356 | 2356 | |
2357 | 2357 | /* video hardware */ |
2358 | 2358 | 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) | |
2361 | 2361 | |
2362 | 2362 | /* add shifter */ |
2363 | 2363 | MCFG_MB14241_ADD("mb14241") |
r17967 | r17968 | |
2705 | 2705 | |
2706 | 2706 | /* video hardware */ |
2707 | 2707 | MCFG_SCREEN_MODIFY("screen") |
2708 | MCFG_SCREEN_UPDATE_ | |
2708 | MCFG_SCREEN_UPDATE_DR | |
2709 | 2709 | |
2710 | 2710 | /* add shifter */ |
2711 | 2711 | MCFG_MB14241_ADD("mb14241") |
r17967 | r17968 | |
---|---|---|
76 | 76 | DECLARE_READ8_MEMBER(ronjan_patched_prot_r); |
77 | 77 | DECLARE_DRIVER_INIT(ronjan); |
78 | 78 | virtual void video_start(); |
79 | UINT32 screen_update_pinkiri8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
79 | 80 | }; |
80 | 81 | |
81 | 82 | |
r17967 | r17968 | |
201 | 202 | |
202 | 203 | */ |
203 | 204 | |
204 | stat | |
205 | UINT32 pinkiri8_state::screen | |
205 | 206 | { |
206 | pinkiri8_state *state = screen.machine().driver_data<pinkiri8_state>(); | |
207 | 207 | int col_bank; |
208 | 208 | gfx_element *gfx = screen.machine().gfx[0]; |
209 | 209 | |
210 | 210 | /* update palette */ |
211 | 211 | for (int pen = 0; pen < 0x800 ; pen++) |
212 | 212 | { |
213 | UINT16 val = ( | |
213 | UINT16 val = ( | |
214 | 214 | int r = (val & 0x001f) >> 0; |
215 | 215 | int g = (val & 0x03e0) >> 5; |
216 | 216 | int b = (val & 0x7c00) >> 10; |
r17967 | r17968 | |
230 | 230 | for (i=0x00;i<0x40;i+=2) |
231 | 231 | { |
232 | 232 | |
233 | printf("%02x, ", | |
233 | printf("%02x, ", | |
234 | 234 | |
235 | 235 | count2++; |
236 | 236 | |
r17967 | r17968 | |
248 | 248 | |
249 | 249 | |
250 | 250 | |
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; | |
253 | 253 | |
254 | 254 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
255 | 255 | |
r17967 | r17968 | |
263 | 263 | { |
264 | 264 | for(x=0;x<32;x++) |
265 | 265 | { |
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; | |
268 | 268 | col = (attr >> 4) | 0x10; |
269 | 269 | |
270 | 270 | drawgfx_transpen(bitmap,cliprect,gfx,tile,col,0,0,x*16,y*8,0); |
r17967 | r17968 | |
300 | 300 | |
301 | 301 | */ |
302 | 302 | |
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]; | |
306 | 306 | |
307 | 307 | x &= 0xff; |
308 | 308 | x *= 2; |
309 | 309 | |
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]); | |
312 | 312 | |
313 | 313 | y = 0x100-y; |
314 | 314 | |
r17967 | r17968 | |
321 | 321 | |
322 | 322 | |
323 | 323 | // these bits seem to somehow determine the sprite height / widths for the sprite ram region? |
324 | int bit = | |
324 | int bit = | |
325 | 325 | |
326 | 326 | if (bit) |
327 | 327 | { |
r17967 | r17968 | |
1139 | 1139 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1140 | 1140 | MCFG_SCREEN_SIZE(64*8, 64*8) |
1141 | 1141 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 64*8-1) |
1142 | MCFG_SCREEN_UPDATE_ | |
1142 | MCFG_SCREEN_UPDATE_DR | |
1143 | 1143 | |
1144 | 1144 | MCFG_GFXDECODE(pinkiri8) |
1145 | 1145 | MCFG_PALETTE_LENGTH(0x2000) |
r17967 | r17968 | |
---|---|---|
1637 | 1637 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1638 | 1638 | MCFG_SCREEN_SIZE(256, 256) |
1639 | 1639 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1) |
1640 | MCFG_SCREEN_UPDATE_ | |
1640 | MCFG_SCREEN_UPDATE_DR | |
1641 | 1641 | |
1642 | 1642 | MCFG_GFXDECODE(suna8) |
1643 | 1643 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
1701 | 1701 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1702 | 1702 | MCFG_SCREEN_SIZE(256, 256) |
1703 | 1703 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1) |
1704 | MCFG_SCREEN_UPDATE_ | |
1704 | MCFG_SCREEN_UPDATE_DR | |
1705 | 1705 | |
1706 | 1706 | MCFG_GFXDECODE(suna8) |
1707 | 1707 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
1780 | 1780 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // we're using PORT_VBLANK |
1781 | 1781 | MCFG_SCREEN_SIZE(256, 256) |
1782 | 1782 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1) |
1783 | MCFG_SCREEN_UPDATE_ | |
1783 | MCFG_SCREEN_UPDATE_DR | |
1784 | 1784 | |
1785 | 1785 | MCFG_GFXDECODE(suna8) |
1786 | 1786 | MCFG_PALETTE_LENGTH(256 * 2) // 2 x Palette RAM |
r17967 | r17968 | |
1881 | 1881 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1882 | 1882 | MCFG_SCREEN_SIZE(256, 256) |
1883 | 1883 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1) |
1884 | MCFG_SCREEN_UPDATE_ | |
1884 | MCFG_SCREEN_UPDATE_DR | |
1885 | 1885 | |
1886 | 1886 | MCFG_GFXDECODE(suna8) |
1887 | 1887 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
1928 | 1928 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1929 | 1929 | MCFG_SCREEN_SIZE(256, 256) |
1930 | 1930 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1) |
1931 | MCFG_SCREEN_UPDATE_ | |
1931 | MCFG_SCREEN_UPDATE_DR | |
1932 | 1932 | |
1933 | 1933 | MCFG_GFXDECODE(suna8) |
1934 | 1934 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
---|---|---|
1012 | 1012 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1013 | 1013 | MCFG_SCREEN_SIZE(64*8, 32*8) |
1014 | 1014 | 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) | |
1017 | 1017 | |
1018 | 1018 | MCFG_GFXDECODE(namcos86) |
1019 | 1019 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
---|---|---|
278 | 278 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) |
279 | 279 | MCFG_SCREEN_SIZE(32*8, 32*8) |
280 | 280 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
281 | MCFG_SCREEN_UPDATE_ | |
281 | MCFG_SCREEN_UPDATE_DR | |
282 | 282 | MCFG_GFXDECODE(vaportra) |
283 | 283 | MCFG_PALETTE_LENGTH(1280) |
284 | 284 |
r17967 | r17968 | |
---|---|---|
92 | 92 | virtual void machine_reset(); |
93 | 93 | virtual void video_start(); |
94 | 94 | virtual void palette_init(); |
95 | UINT32 screen_update_chanbara(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
95 | 96 | }; |
96 | 97 | |
97 | 98 | |
r17967 | r17968 | |
206 | 207 | } |
207 | 208 | } |
208 | 209 | |
209 | stat | |
210 | UINT32 chanbara_state::screen | |
210 | 211 | { |
211 | chanbara_state *state = screen.machine().driver_data<chanbara_state>(); | |
212 | 212 | |
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); | |
215 | 215 | draw_sprites(screen.machine(), bitmap, cliprect); |
216 | | |
216 | | |
217 | 217 | return 0; |
218 | 218 | } |
219 | 219 | |
r17967 | r17968 | |
415 | 415 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
416 | 416 | MCFG_SCREEN_SIZE(32*8, 32*8) |
417 | 417 | MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 2*8, 30*8-1) |
418 | MCFG_SCREEN_UPDATE_ | |
418 | MCFG_SCREEN_UPDATE_DR | |
419 | 419 | |
420 | 420 | MCFG_GFXDECODE(chanbara) |
421 | 421 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
1468 | 1468 | /* video hardware */ |
1469 | 1469 | MCFG_SCREEN_ADD("screen", RASTER) |
1470 | 1470 | MCFG_SCREEN_RAW_PARAMS(HCLK, 384, 8, 248, 272, 8, 248) |
1471 | MCFG_SCREEN_UPDATE_ | |
1471 | MCFG_SCREEN_UPDATE_DR | |
1472 | 1472 | |
1473 | 1473 | MCFG_MACHINE_START_OVERRIDE(btime_state,btime) |
1474 | 1474 | MCFG_MACHINE_RESET_OVERRIDE(btime_state,btime) |
r17967 | r17968 | |
1514 | 1514 | MCFG_PALETTE_LENGTH(16) |
1515 | 1515 | |
1516 | 1516 | MCFG_SCREEN_MODIFY("screen") |
1517 | MCFG_SCREEN_UPDATE_ | |
1517 | MCFG_SCREEN_UPDATE_DR | |
1518 | 1518 | MACHINE_CONFIG_END |
1519 | 1519 | |
1520 | 1520 | |
r17967 | r17968 | |
1532 | 1532 | |
1533 | 1533 | MCFG_PALETTE_INIT_OVERRIDE(btime_state,lnc) |
1534 | 1534 | MCFG_SCREEN_MODIFY("screen") |
1535 | MCFG_SCREEN_UPDATE_ | |
1535 | MCFG_SCREEN_UPDATE_DR | |
1536 | 1536 | MACHINE_CONFIG_END |
1537 | 1537 | |
1538 | 1538 | |
r17967 | r17968 | |
1542 | 1542 | |
1543 | 1543 | /* video hardware */ |
1544 | 1544 | MCFG_SCREEN_MODIFY("screen") |
1545 | MCFG_SCREEN_UPDATE_ | |
1545 | MCFG_SCREEN_UPDATE_DR | |
1546 | 1546 | MACHINE_CONFIG_END |
1547 | 1547 | |
1548 | 1548 | |
r17967 | r17968 | |
1569 | 1569 | |
1570 | 1570 | MCFG_VIDEO_START_OVERRIDE(btime_state,bnj) |
1571 | 1571 | MCFG_SCREEN_MODIFY("screen") |
1572 | MCFG_SCREEN_UPDATE_ | |
1572 | MCFG_SCREEN_UPDATE_DR | |
1573 | 1573 | MACHINE_CONFIG_END |
1574 | 1574 | |
1575 | 1575 | |
r17967 | r17968 | |
1597 | 1597 | MCFG_PALETTE_LENGTH(64) |
1598 | 1598 | |
1599 | 1599 | MCFG_SCREEN_MODIFY("screen") |
1600 | MCFG_SCREEN_UPDATE_ | |
1600 | MCFG_SCREEN_UPDATE_DR | |
1601 | 1601 | |
1602 | 1602 | MCFG_SOUND_REPLACE("ay1", AY8910, HCLK1) |
1603 | 1603 | MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.23) |
r17967 | r17968 | |
1623 | 1623 | MCFG_PALETTE_LENGTH(32) |
1624 | 1624 | |
1625 | 1625 | MCFG_SCREEN_MODIFY("screen") |
1626 | MCFG_SCREEN_UPDATE_ | |
1626 | MCFG_SCREEN_UPDATE_DR | |
1627 | 1627 | MACHINE_CONFIG_END |
1628 | 1628 | |
1629 | 1629 |
r17967 | r17968 | |
---|---|---|
85 | 85 | virtual void machine_reset(); |
86 | 86 | virtual void video_start(); |
87 | 87 | virtual void palette_init(); |
88 | UINT32 screen_update_m14(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
88 | 89 | }; |
89 | 90 | |
90 | 91 | |
r17967 | r17968 | |
133 | 134 | 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); |
134 | 135 | } |
135 | 136 | |
136 | stat | |
137 | UINT32 m14_state::screen | |
137 | 138 | { |
138 | m14_state *state = screen.machine().driver_data<m14_state>(); | |
139 | 139 | |
140 | | |
140 | | |
141 | 141 | return 0; |
142 | 142 | } |
143 | 143 | |
r17967 | r17968 | |
349 | 349 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) //not accurate |
350 | 350 | MCFG_SCREEN_SIZE(32*8, 32*8) |
351 | 351 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) |
352 | MCFG_SCREEN_UPDATE_ | |
352 | MCFG_SCREEN_UPDATE_DR | |
353 | 353 | MCFG_GFXDECODE(m14) |
354 | 354 | MCFG_PALETTE_LENGTH(0x20) |
355 | 355 |
r17967 | r17968 | |
---|---|---|
690 | 690 | MCFG_SCREEN_REFRESH_RATE(60) |
691 | 691 | MCFG_SCREEN_SIZE(32*8, 32*8) |
692 | 692 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 28*8-1) |
693 | MCFG_SCREEN_UPDATE_ | |
693 | MCFG_SCREEN_UPDATE_DR | |
694 | 694 | |
695 | 695 | MCFG_GFXDECODE(nova2001) |
696 | 696 | MCFG_PALETTE_LENGTH(0x200) |
r17967 | r17968 | |
731 | 731 | MCFG_SCREEN_REFRESH_RATE(60) |
732 | 732 | MCFG_SCREEN_SIZE(32*8, 32*8) |
733 | 733 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 28*8-1 ) |
734 | MCFG_SCREEN_UPDATE_ | |
734 | MCFG_SCREEN_UPDATE_DR | |
735 | 735 | |
736 | 736 | MCFG_GFXDECODE(ninjakun) |
737 | 737 | MCFG_PALETTE_LENGTH(0x300) |
r17967 | r17968 | |
763 | 763 | MCFG_SCREEN_REFRESH_RATE(60) |
764 | 764 | MCFG_SCREEN_SIZE(32*8, 32*8) |
765 | 765 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 28*8-1) |
766 | MCFG_SCREEN_UPDATE_ | |
766 | MCFG_SCREEN_UPDATE_DR | |
767 | 767 | |
768 | 768 | MCFG_GFXDECODE(pkunwar) |
769 | 769 | MCFG_PALETTE_LENGTH(0x200) |
r17967 | r17968 | |
802 | 802 | MCFG_SCREEN_REFRESH_RATE(60) |
803 | 803 | MCFG_SCREEN_SIZE(32*8, 32*8) |
804 | 804 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 28*8-1) |
805 | MCFG_SCREEN_UPDATE_ | |
805 | MCFG_SCREEN_UPDATE_DR | |
806 | 806 | |
807 | 807 | MCFG_GFXDECODE(raiders5) |
808 | 808 | MCFG_PALETTE_LENGTH(0x300) |
r17967 | r17968 | |
---|---|---|
130 | 130 | virtual void machine_reset(); |
131 | 131 | virtual void video_start(); |
132 | 132 | virtual void palette_init(); |
133 | UINT32 screen_update_jantotsu(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
133 | 134 | }; |
134 | 135 | |
135 | 136 | |
r17967 | r17968 | |
145 | 146 | save_item(NAME(m_bitmap)); |
146 | 147 | } |
147 | 148 | |
148 | stat | |
149 | UINT32 jantotsu_state::screen | |
149 | 150 | { |
150 | jantotsu_state *state = screen.machine().driver_data<jantotsu_state>(); | |
151 | 151 | int x, y, i; |
152 | 152 | int count = 0; |
153 | 153 | UINT8 pen_i; |
154 | 154 | |
155 | if(! | |
155 | if(! | |
156 | 156 | return 0; |
157 | 157 | |
158 | 158 | for (y = 0; y < 256; y++) |
r17967 | r17968 | |
163 | 163 | |
164 | 164 | for (i = 0; i < 8; i++) |
165 | 165 | { |
166 | color = | |
166 | color = | |
167 | 167 | |
168 | 168 | for(pen_i = 0;pen_i<4;pen_i++) |
169 | color |= ((( | |
169 | color |= ((( | |
170 | 170 | |
171 | 171 | if (cliprect.contains(x + i, y)) |
172 | 172 | bitmap.pix32(y, x + i) = screen.machine().pens[color]; |
r17967 | r17968 | |
528 | 528 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) //not accurate |
529 | 529 | MCFG_SCREEN_SIZE(256, 256) |
530 | 530 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1) |
531 | MCFG_SCREEN_UPDATE_ | |
531 | MCFG_SCREEN_UPDATE_DR | |
532 | 532 | |
533 | 533 | MCFG_PALETTE_LENGTH(0x20) |
534 | 534 |
r17967 | r17968 | |
---|---|---|
461 | 461 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
462 | 462 | MCFG_SCREEN_SIZE(32*8, 32*8) |
463 | 463 | 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) | |
466 | 466 | |
467 | 467 | MCFG_GFXDECODE(mermaid) |
468 | 468 | MCFG_PALETTE_LENGTH(4*16+2*2) |
r17967 | r17968 | |
---|---|---|
44 | 44 | * |
45 | 45 | *************************************/ |
46 | 46 | |
47 | stat | |
47 | UINT32 avalnche_state::screen | |
48 | 48 | { |
49 | avalnche_state *state = screen.machine().driver_data<avalnche_state>(); | |
50 | 49 | offs_t offs; |
51 | 50 | |
52 | for (offs = 0; offs < | |
51 | for (offs = 0; offs < | |
53 | 52 | { |
54 | 53 | int i; |
55 | 54 | |
56 | 55 | UINT8 x = offs << 3; |
57 | 56 | int y = offs >> 5; |
58 | UINT8 data = | |
57 | UINT8 data = | |
59 | 58 | |
60 | 59 | for (i = 0; i < 8; i++) |
61 | 60 | { |
62 | 61 | pen_t pen; |
63 | 62 | |
64 | if ( | |
63 | if ( | |
65 | 64 | pen = (data & 0x80) ? RGB_WHITE : RGB_BLACK; |
66 | 65 | else |
67 | 66 | pen = (data & 0x80) ? RGB_BLACK : RGB_WHITE; |
r17967 | r17968 | |
258 | 257 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
259 | 258 | MCFG_SCREEN_SIZE(32*8, 32*8) |
260 | 259 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 32*8-1) |
261 | MCFG_SCREEN_UPDATE_ | |
260 | MCFG_SCREEN_UPDATE_DR | |
262 | 261 | |
263 | 262 | /* sound hardware */ |
264 | 263 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
---|---|---|
1019 | 1019 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1020 | 1020 | MCFG_SCREEN_SIZE(576, 432) |
1021 | 1021 | MCFG_SCREEN_VISIBLE_AREA(0, 575, 0, 431) |
1022 | MCFG_SCREEN_UPDATE_ | |
1022 | MCFG_SCREEN_UPDATE_DR | |
1023 | 1023 | |
1024 | 1024 | MCFG_PALETTE_LENGTH(32768) |
1025 | 1025 |
r17967 | r17968 | |
---|---|---|
263 | 263 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
264 | 264 | MCFG_SCREEN_SIZE(40*8, 32*8) |
265 | 265 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) |
266 | MCFG_SCREEN_UPDATE_ | |
266 | MCFG_SCREEN_UPDATE_DR | |
267 | 267 | |
268 | 268 | MCFG_GFXDECODE(dcon) |
269 | 269 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
290 | 290 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
291 | 291 | MCFG_SCREEN_SIZE(40*8, 32*8) |
292 | 292 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) |
293 | MCFG_SCREEN_UPDATE_ | |
293 | MCFG_SCREEN_UPDATE_DR | |
294 | 294 | |
295 | 295 | MCFG_GFXDECODE(dcon) |
296 | 296 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
---|---|---|
35 | 35 | virtual void machine_reset(); |
36 | 36 | virtual void video_start(); |
37 | 37 | 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); | |
38 | 40 | }; |
39 | 41 | |
40 | 42 | |
r17967 | r17968 | |
106 | 108 | |
107 | 109 | /* Code to change the FLASH status every 25 frames. Note this must be |
108 | 110 | independent of frame skip etc. */ |
109 | stat | |
111 | void photon2_state::screen | |
110 | 112 | { |
111 | 113 | // rising edge |
112 | if ( | |
114 | if (st | |
113 | 115 | { |
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) | |
117 | 118 | { |
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; | |
120 | 121 | } |
121 | 122 | } |
122 | 123 | } |
r17967 | r17968 | |
126 | 127 | bitmap.pix16(y, x) = (UINT16)color; |
127 | 128 | } |
128 | 129 | |
129 | stat | |
130 | UINT32 photon2_state::screen | |
130 | 131 | { |
131 | photon2_state *state = screen.machine().driver_data<photon2_state>(); | |
132 | 132 | /* for now do a full-refresh */ |
133 | 133 | int x, y, b, scrx, scry; |
134 | 134 | unsigned short ink, pap; |
135 | 135 | unsigned char *attr, *scr; |
136 | 136 | // int full_refresh = 1; |
137 | 137 | |
138 | scr= | |
138 | scr= | |
139 | 139 | |
140 | bitmap.fill( | |
140 | bitmap.fill( | |
141 | 141 | |
142 | 142 | for (y=0; y<192; y++) |
143 | 143 | { |
144 | 144 | scrx=SPEC_LEFT_BORDER; |
145 | 145 | scry=((y&7) * 8) + ((y&0x38)>>3) + (y&0xC0); |
146 | attr= | |
146 | attr= | |
147 | 147 | |
148 | 148 | for (x=0;x<32;x++) |
149 | 149 | { |
150 | 150 | /* Get ink and paper colour with bright */ |
151 | if ( | |
151 | if ( | |
152 | 152 | { |
153 | 153 | ink=((*attr)>>3) & 0x0f; |
154 | 154 | pap=((*attr) & 0x07) + (((*attr)>>3) & 0x08); |
r17967 | r17968 | |
331 | 331 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
332 | 332 | MCFG_SCREEN_SIZE(SPEC_SCREEN_WIDTH, SPEC_SCREEN_HEIGHT) |
333 | 333 | 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) | |
336 | 336 | |
337 | 337 | MCFG_PALETTE_LENGTH(16) |
338 | 338 |
r17967 | r17968 | |
---|---|---|
555 | 555 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(5000) /* hand-tuned, it needs a bit */) |
556 | 556 | MCFG_SCREEN_SIZE(64*8, 64*8) |
557 | 557 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) |
558 | MCFG_SCREEN_UPDATE_ | |
558 | MCFG_SCREEN_UPDATE_DR | |
559 | 559 | |
560 | 560 | MCFG_GFXDECODE(gstriker) |
561 | 561 | MCFG_PALETTE_LENGTH(0x800) |
r17967 | r17968 | |
593 | 593 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(5000) /* hand-tuned, it needs a bit */) |
594 | 594 | MCFG_SCREEN_SIZE(64*8, 64*8) |
595 | 595 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) |
596 | MCFG_SCREEN_UPDATE_ | |
596 | MCFG_SCREEN_UPDATE_DR | |
597 | 597 | |
598 | 598 | MCFG_GFXDECODE(gstriker) |
599 | 599 | MCFG_PALETTE_LENGTH(0x2000) |
r17967 | r17968 | |
---|---|---|
3645 | 3645 | MCFG_SCREEN_REFRESH_RATE(60) |
3646 | 3646 | MCFG_SCREEN_SIZE(36*8, 28*8) |
3647 | 3647 | MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 28*8-1) |
3648 | MCFG_SCREEN_UPDATE_ | |
3648 | MCFG_SCREEN_UPDATE_DR | |
3649 | 3649 | |
3650 | 3650 | MCFG_GFXDECODE(marvins) |
3651 | 3651 | MCFG_PALETTE_LENGTH(0x400) |
r17967 | r17968 | |
3714 | 3714 | MCFG_SCREEN_REFRESH_RATE(60) |
3715 | 3715 | MCFG_SCREEN_SIZE(36*8, 28*8) |
3716 | 3716 | MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 28*8-1) |
3717 | MCFG_SCREEN_UPDATE_ | |
3717 | MCFG_SCREEN_UPDATE_DR | |
3718 | 3718 | |
3719 | 3719 | MCFG_GFXDECODE(tnk3) |
3720 | 3720 | MCFG_PALETTE_LENGTH(0x400) |
r17967 | r17968 | |
3792 | 3792 | MCFG_SCREEN_REFRESH_RATE(60) |
3793 | 3793 | MCFG_SCREEN_SIZE(36*8, 28*8) |
3794 | 3794 | MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 28*8-1) |
3795 | MCFG_SCREEN_UPDATE_ | |
3795 | MCFG_SCREEN_UPDATE_DR | |
3796 | 3796 | |
3797 | 3797 | MCFG_GFXDECODE(tnk3) |
3798 | 3798 | MCFG_PALETTE_LENGTH(0x400) |
r17967 | r17968 | |
3876 | 3876 | MCFG_SCREEN_REFRESH_RATE(60) |
3877 | 3877 | MCFG_SCREEN_SIZE(36*8, 28*8) |
3878 | 3878 | MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 28*8-1) |
3879 | MCFG_SCREEN_UPDATE_ | |
3879 | MCFG_SCREEN_UPDATE_DR | |
3880 | 3880 | |
3881 | 3881 | MCFG_GFXDECODE(ikari) |
3882 | 3882 | MCFG_PALETTE_LENGTH(0x400) |
r17967 | r17968 | |
3932 | 3932 | // this visible area matches the psychos pcb |
3933 | 3933 | MCFG_SCREEN_SIZE(50*8, 28*8) |
3934 | 3934 | MCFG_SCREEN_VISIBLE_AREA(0*8, 50*8-1, 0*8, 28*8-1) |
3935 | MCFG_SCREEN_UPDATE_ | |
3935 | MCFG_SCREEN_UPDATE_DR | |
3936 | 3936 | |
3937 | 3937 | MCFG_GFXDECODE(gwar) |
3938 | 3938 | MCFG_PALETTE_LENGTH(0x400) |
r17967 | r17968 | |
4036 | 4036 | MCFG_SCREEN_REFRESH_RATE(60) |
4037 | 4037 | MCFG_SCREEN_SIZE(50*8, 28*8) |
4038 | 4038 | MCFG_SCREEN_VISIBLE_AREA(0*8, 50*8-1, 0*8, 28*8-1) |
4039 | MCFG_SCREEN_UPDATE_ | |
4039 | MCFG_SCREEN_UPDATE_DR | |
4040 | 4040 | |
4041 | 4041 | MCFG_GFXDECODE(tdfever) |
4042 | 4042 | MCFG_PALETTE_LENGTH(0x400) |
r17967 | r17968 | |
---|---|---|
125 | 125 | DECLARE_DRIVER_INIT(fashion); |
126 | 126 | DECLARE_DRIVER_INIT(ciclone); |
127 | 127 | 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); | |
128 | 130 | }; |
129 | 131 | |
130 | 132 | |
r17967 | r17968 | |
135 | 137 | |
136 | 138 | } |
137 | 139 | |
138 | stat | |
140 | UINT32 highvdeo_state::screen | |
139 | 141 | { |
140 | highvdeo_state *state = screen.machine().driver_data<highvdeo_state>(); | |
141 | 142 | int x,y,count; |
142 | 143 | |
143 | 144 | count = (0/2); |
r17967 | r17968 | |
148 | 149 | { |
149 | 150 | UINT32 color; |
150 | 151 | |
151 | color = (( | |
152 | color = (( | |
152 | 153 | |
153 | 154 | if(cliprect.contains((x*2)+0, y)) |
154 | 155 | bitmap.pix32(y, (x*2)+0) = screen.machine().pens[color]; |
155 | 156 | |
156 | color = (( | |
157 | color = (( | |
157 | 158 | |
158 | 159 | if(cliprect.contains((x*2)+1, y)) |
159 | 160 | bitmap.pix32(y, (x*2)+1) = screen.machine().pens[color]; |
r17967 | r17968 | |
166 | 167 | } |
167 | 168 | |
168 | 169 | /*Later HW, RGB565 instead of RAM-based pens (+ ramdac).*/ |
169 | static | |
170 | UINT32 highvdeo_state::screen_update_brasil(screen_device &screen, bitmap_rgb | |
170 | 171 | { |
171 | highvdeo_state *state = screen.machine().driver_data<highvdeo_state>(); | |
172 | 172 | int x,y,count; |
173 | 173 | |
174 | 174 | count = (0/2); |
r17967 | r17968 | |
182 | 182 | UINT32 g; |
183 | 183 | UINT32 r; |
184 | 184 | |
185 | color = ( | |
185 | color = ( | |
186 | 186 | |
187 | 187 | b = (color & 0x001f) << 3; |
188 | 188 | g = (color & 0x07e0) >> 3; |
r17967 | r17968 | |
938 | 938 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
939 | 939 | MCFG_SCREEN_SIZE(400, 300) |
940 | 940 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1) |
941 | MCFG_SCREEN_UPDATE_ | |
941 | MCFG_SCREEN_UPDATE_DR | |
942 | 942 | |
943 | 943 | MCFG_PALETTE_LENGTH(0x100) |
944 | 944 | |
r17967 | r17968 | |
1004 | 1004 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1005 | 1005 | MCFG_SCREEN_SIZE(400, 300) |
1006 | 1006 | MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 300-1) |
1007 | MCFG_SCREEN_UPDATE_ | |
1007 | MCFG_SCREEN_UPDATE_DR | |
1008 | 1008 | |
1009 | 1009 | MCFG_PALETTE_LENGTH(0x100) |
1010 | 1010 |
r17967 | r17968 | |
---|---|---|
82 | 82 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
83 | 83 | virtual void video_start(); |
84 | 84 | virtual void palette_init(); |
85 | UINT32 screen_update_nsmpoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
85 | 86 | }; |
86 | 87 | |
87 | 88 | |
r17967 | r17968 | |
127 | 128 | } |
128 | 129 | |
129 | 130 | |
130 | stat | |
131 | UINT32 nsmpoker_state::screen | |
131 | 132 | { |
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); | |
134 | 134 | return 0; |
135 | 135 | } |
136 | 136 | |
r17967 | r17968 | |
406 | 406 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
407 | 407 | MCFG_SCREEN_SIZE(32*8, 32*8) |
408 | 408 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) |
409 | MCFG_SCREEN_UPDATE_ | |
409 | MCFG_SCREEN_UPDATE_DR | |
410 | 410 | |
411 | 411 | MCFG_GFXDECODE(nsmpoker) |
412 | 412 |
r17967 | r17968 | |
---|---|---|
1024 | 1024 | MCFG_SCREEN_REFRESH_RATE(59.7) |
1025 | 1025 | MCFG_SCREEN_SIZE(NAMCONB1_HTOTAL, NAMCONB1_VTOTAL) |
1026 | 1026 | MCFG_SCREEN_VISIBLE_AREA(0, NAMCONB1_HBSTART-1, 0, NAMCONB1_VBSTART-1) |
1027 | MCFG_SCREEN_UPDATE_ | |
1027 | MCFG_SCREEN_UPDATE_DR | |
1028 | 1028 | |
1029 | 1029 | MCFG_GFXDECODE(namconb1) |
1030 | 1030 | MCFG_PALETTE_LENGTH(0x2000) |
r17967 | r17968 | |
1056 | 1056 | MCFG_SCREEN_REFRESH_RATE(59.7) |
1057 | 1057 | MCFG_SCREEN_SIZE(NAMCONB1_HTOTAL, NAMCONB1_VTOTAL) |
1058 | 1058 | MCFG_SCREEN_VISIBLE_AREA(0, NAMCONB1_HBSTART-1, 0, NAMCONB1_VBSTART-1) |
1059 | MCFG_SCREEN_UPDATE_ | |
1059 | MCFG_SCREEN_UPDATE_DR | |
1060 | 1060 | |
1061 | 1061 | MCFG_GFXDECODE(2) |
1062 | 1062 | MCFG_PALETTE_LENGTH(0x2000) |
r17967 | r17968 | |
---|---|---|
217 | 217 | } |
218 | 218 | } |
219 | 219 | |
220 | static | |
220 | UINT32 cps_state::screen_update_fcrash(screen_device &screen, bitmap_ind | |
221 | 221 | { |
222 | cps_state *state = screen.machine().driver_data<cps_state>(); | |
223 | 222 | int layercontrol, l0, l1, l2, l3; |
224 | int videocontrol = | |
223 | int videocontrol = | |
225 | 224 | |
226 | 225 | |
227 | | |
226 | | |
228 | 227 | |
229 | layercontrol = | |
228 | layercontrol = | |
230 | 229 | |
231 | 230 | /* Get video memory base registers */ |
232 | 231 | cps1_get_video_base(screen.machine()); |
r17967 | r17968 | |
236 | 235 | |
237 | 236 | fcrash_update_transmasks(screen.machine()); |
238 | 237 | |
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); | |
241 | 240 | |
242 | 241 | if (videocontrol & 0x01) /* linescroll enable */ |
243 | 242 | { |
244 | int scrly = - | |
243 | int scrly = - | |
245 | 244 | int i; |
246 | 245 | int otheroffs; |
247 | 246 | |
248 | | |
247 | | |
249 | 248 | |
250 | otheroffs = | |
249 | otheroffs = | |
251 | 250 | |
252 | 251 | for (i = 0; i < 256; i++) |
253 | | |
252 | | |
254 | 253 | } |
255 | 254 | else |
256 | 255 | { |
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); | |
259 | 258 | } |
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); | |
263 | 262 | |
264 | 263 | |
265 | 264 | /* turn all tilemaps on regardless of settings in get_video_base() */ |
266 | 265 | /* 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); | |
270 | 269 | |
271 | 270 | /* Blank screen */ |
272 | 271 | bitmap.fill(0xbff, cliprect); |
r17967 | r17968 | |
298 | 297 | } |
299 | 298 | |
300 | 299 | // doesn't have the scroll offsets like fcrash |
301 | static | |
300 | UINT32 cps_state::screen_update_kodb(screen_device &screen, bitmap_ind | |
302 | 301 | { |
303 | cps_state *state = screen.machine().driver_data<cps_state>(); | |
304 | 302 | int layercontrol, l0, l1, l2, l3; |
305 | int videocontrol = | |
303 | int videocontrol = | |
306 | 304 | |
307 | | |
305 | | |
308 | 306 | |
309 | layercontrol = | |
307 | layercontrol = | |
310 | 308 | |
311 | 309 | /* Get video memory base registers */ |
312 | 310 | cps1_get_video_base(screen.machine()); |
r17967 | r17968 | |
316 | 314 | |
317 | 315 | fcrash_update_transmasks(screen.machine()); |
318 | 316 | |
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); | |
321 | 319 | |
322 | 320 | if (videocontrol & 0x01) /* linescroll enable */ |
323 | 321 | { |
324 | int scrly= - | |
322 | int scrly= - | |
325 | 323 | int i; |
326 | 324 | int otheroffs; |
327 | 325 | |
328 | | |
326 | | |
329 | 327 | |
330 | otheroffs = | |
328 | otheroffs = | |
331 | 329 | |
332 | 330 | for (i = 0; i < 256; i++) |
333 | | |
331 | | |
334 | 332 | } |
335 | 333 | else |
336 | 334 | { |
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); | |
339 | 337 | } |
340 | 338 | |
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); | |
344 | 342 | |
345 | 343 | |
346 | 344 | /* turn all tilemaps on regardless of settings in get_video_base() */ |
347 | 345 | /* 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); | |
351 | 349 | |
352 | 350 | /* Blank screen */ |
353 | 351 | bitmap.fill(0xbff, cliprect); |
r17967 | r17968 | |
742 | 740 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
743 | 741 | MCFG_SCREEN_SIZE(64*8, 32*8) |
744 | 742 | 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) | |
747 | 745 | |
748 | 746 | MCFG_GFXDECODE(cps1) |
749 | 747 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
792 | 790 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
793 | 791 | MCFG_SCREEN_SIZE(64*8, 32*8) |
794 | 792 | 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) | |
797 | 795 | |
798 | 796 | MCFG_GFXDECODE(cps1) |
799 | 797 | MCFG_PALETTE_LENGTH(0xc00) |
r17967 | r17968 | |
948 | 946 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
949 | 947 | MCFG_SCREEN_SIZE(64*8, 32*8) |
950 | 948 | 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) | |
953 | 951 | |
954 | 952 | MCFG_GFXDECODE(cps1) |
955 | 953 | MCFG_PALETTE_LENGTH(0xc00) |
r17967 | r17968 | |
---|---|---|
29 | 29 | required_device<e132xn_device> m_maincpu; |
30 | 30 | required_shared_ptr<UINT32> m_videoram; |
31 | 31 | DECLARE_READ32_MEMBER(f32_input_port_1_r); |
32 | UINT32 screen_update_mosaicf2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
32 | 33 | }; |
33 | 34 | |
34 | 35 | |
35 | static | |
36 | UINT32 mosaicf2_state::screen_update_mosaicf2(screen_device &screen, bitmap_ind | |
36 | 37 | { |
37 | mosaicf2_state *state = screen.machine().driver_data<mosaicf2_state>(); | |
38 | 38 | offs_t offs; |
39 | 39 | |
40 | 40 | for (offs = 0; offs < 0x10000; offs++) |
r17967 | r17968 | |
44 | 44 | |
45 | 45 | if ((x < 0xa0) && (y < 0xe0)) |
46 | 46 | { |
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; | |
49 | 49 | } |
50 | 50 | } |
51 | 51 | |
r17967 | r17968 | |
147 | 147 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
148 | 148 | MCFG_SCREEN_SIZE(512, 512) |
149 | 149 | MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 223) |
150 | MCFG_SCREEN_UPDATE_ | |
150 | MCFG_SCREEN_UPDATE_DR | |
151 | 151 | |
152 | 152 | MCFG_PALETTE_INIT(RRRRR_GGGGG_BBBBB) |
153 | 153 | MCFG_PALETTE_LENGTH(32768) |
r17967 | r17968 | |
---|---|---|
367 | 367 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
368 | 368 | MCFG_SCREEN_SIZE(32*8+3*8, 32*8+3*8) |
369 | 369 | MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1) |
370 | MCFG_SCREEN_UPDATE_ | |
370 | MCFG_SCREEN_UPDATE_DR | |
371 | 371 | |
372 | 372 | MCFG_GFXDECODE(strnskil) |
373 | 373 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
1025 | 1025 | |
1026 | 1026 | MCFG_PALETTE_INIT_OVERRIDE(cosmic_state,panic) |
1027 | 1027 | MCFG_SCREEN_MODIFY("screen") |
1028 | MCFG_SCREEN_UPDATE_ | |
1028 | MCFG_SCREEN_UPDATE_DR | |
1029 | 1029 | |
1030 | 1030 | /* sound hardware */ |
1031 | 1031 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
1050 | 1050 | |
1051 | 1051 | MCFG_PALETTE_INIT_OVERRIDE(cosmic_state,cosmica) |
1052 | 1052 | MCFG_SCREEN_MODIFY("screen") |
1053 | MCFG_SCREEN_UPDATE_ | |
1053 | MCFG_SCREEN_UPDATE_DR | |
1054 | 1054 | |
1055 | 1055 | /* sound hardware */ |
1056 | 1056 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
1083 | 1083 | MCFG_SCREEN_REFRESH_RATE(60) |
1084 | 1084 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1085 | 1085 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 28*8-1) |
1086 | MCFG_SCREEN_UPDATE_ | |
1086 | MCFG_SCREEN_UPDATE_DR | |
1087 | 1087 | |
1088 | 1088 | MCFG_PALETTE_LENGTH(16) |
1089 | 1089 | |
r17967 | r17968 | |
1112 | 1112 | |
1113 | 1113 | MCFG_PALETTE_INIT_OVERRIDE(cosmic_state,magspot) |
1114 | 1114 | MCFG_SCREEN_MODIFY("screen") |
1115 | MCFG_SCREEN_UPDATE_ | |
1115 | MCFG_SCREEN_UPDATE_DR | |
1116 | 1116 | |
1117 | 1117 | /* sound hardware */ |
1118 | 1118 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
1128 | 1128 | |
1129 | 1129 | /* video hardware */ |
1130 | 1130 | MCFG_SCREEN_MODIFY("screen") |
1131 | MCFG_SCREEN_UPDATE_ | |
1131 | MCFG_SCREEN_UPDATE_DR | |
1132 | 1132 | MACHINE_CONFIG_END |
1133 | 1133 | |
1134 | 1134 | |
r17967 | r17968 | |
1144 | 1144 | |
1145 | 1145 | MCFG_PALETTE_INIT_OVERRIDE(cosmic_state,nomnlnd) |
1146 | 1146 | MCFG_SCREEN_MODIFY("screen") |
1147 | MCFG_SCREEN_UPDATE_ | |
1147 | MCFG_SCREEN_UPDATE_DR | |
1148 | 1148 | |
1149 | 1149 | /* sound hardware */ |
1150 | 1150 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
---|---|---|
2001 | 2001 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2002 | 2002 | MCFG_SCREEN_SIZE(62*8, 48*8) |
2003 | 2003 | MCFG_SCREEN_VISIBLE_AREA(0*8, 62*8-1, 0*8, 48*8-1) |
2004 | MCFG_SCREEN_UPDATE_ | |
2004 | MCFG_SCREEN_UPDATE_DR | |
2005 | 2005 | |
2006 | 2006 | MCFG_PALETTE_LENGTH(8192) |
2007 | 2007 | |
r17967 | r17968 | |
2059 | 2059 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2060 | 2060 | MCFG_SCREEN_SIZE(62*8, 48*8) |
2061 | 2061 | MCFG_SCREEN_VISIBLE_AREA(0*8, 62*8-1, 0*8, 48*8-1) |
2062 | MCFG_SCREEN_UPDATE_ | |
2062 | MCFG_SCREEN_UPDATE_DR | |
2063 | 2063 | |
2064 | 2064 | MCFG_PALETTE_LENGTH(8192) |
2065 | 2065 | |
r17967 | r17968 | |
2162 | 2162 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2163 | 2163 | MCFG_SCREEN_SIZE(62*8, 48*8) |
2164 | 2164 | MCFG_SCREEN_VISIBLE_AREA(0*8, 62*8-1, 0*8, 48*8-1) |
2165 | MCFG_SCREEN_UPDATE_ | |
2165 | MCFG_SCREEN_UPDATE_DR | |
2166 | 2166 | |
2167 | 2167 | MCFG_PALETTE_LENGTH(8192) |
2168 | 2168 | |
r17967 | r17968 | |
2209 | 2209 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2210 | 2210 | MCFG_SCREEN_SIZE(62*8, 48*8) |
2211 | 2211 | MCFG_SCREEN_VISIBLE_AREA(0*8, 62*8-1, 0*8, 48*8-1) |
2212 | MCFG_SCREEN_UPDATE_ | |
2212 | MCFG_SCREEN_UPDATE_DR | |
2213 | 2213 | |
2214 | 2214 | MCFG_PALETTE_LENGTH(8192) |
2215 | 2215 |
r17967 | r17968 | |
---|---|---|
493 | 493 | TILE_GET_INFO_MEMBER(bg_get_tile_info); |
494 | 494 | TILE_GET_INFO_MEMBER(fg_get_tile_info); |
495 | 495 | virtual void video_start(); |
496 | UINT32 screen_update_majorpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
496 | 497 | }; |
497 | 498 | |
498 | 499 | |
r17967 | r17968 | |
536 | 537 | } |
537 | 538 | |
538 | 539 | |
539 | static | |
540 | UINT32 majorpkr_state::screen_update_majorpkr(screen_device &screen, bitmap_ind | |
540 | 541 | { |
541 | majorpkr_state *state = screen.machine().driver_data<majorpkr_state>(); | |
542 | 542 | |
543 | 543 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
544 | 544 | |
r17967 | r17968 | |
550 | 550 | custom_clip = cliprect; |
551 | 551 | custom_clip.max_x -= 16; |
552 | 552 | |
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); | |
555 | 555 | |
556 | if ( | |
556 | if ( | |
557 | 557 | { |
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); | |
560 | 560 | } |
561 | 561 | |
562 | 562 | return 0; |
r17967 | r17968 | |
1046 | 1046 | MCFG_GFXDECODE(majorpkr) |
1047 | 1047 | MCFG_PALETTE_LENGTH(0x100 * 16) |
1048 | 1048 | |
1049 | MCFG_SCREEN_UPDATE_ | |
1049 | MCFG_SCREEN_UPDATE_DR | |
1050 | 1050 | |
1051 | 1051 | MCFG_MC6845_ADD("crtc", MC6845, CRTC_CLOCK, mc6845_intf) /* verified */ |
1052 | 1052 |
r17967 | r17968 | |
---|---|---|
408 | 408 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) |
409 | 409 | MCFG_SCREEN_SIZE(40*8, 32*8) |
410 | 410 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
411 | MCFG_SCREEN_UPDATE_ | |
411 | MCFG_SCREEN_UPDATE_DR | |
412 | 412 | |
413 | 413 | MCFG_GFXDECODE(sshangha) |
414 | 414 | MCFG_PALETTE_LENGTH(0x4000) |
r17967 | r17968 | |
---|---|---|
297 | 297 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
298 | 298 | MCFG_SCREEN_SIZE(36*8, 28*8) |
299 | 299 | MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1) |
300 | MCFG_SCREEN_UPDATE_ | |
300 | MCFG_SCREEN_UPDATE_DR | |
301 | 301 | |
302 | 302 | MCFG_GFXDECODE(wiping) |
303 | 303 | MCFG_PALETTE_LENGTH(64*4+64*4) |
r17967 | r17968 | |
---|---|---|
174 | 174 | TILE_GET_INFO_MEMBER(get_supershot_text_tile_info); |
175 | 175 | virtual void video_start(); |
176 | 176 | virtual void palette_init(); |
177 | UINT32 screen_update_supershot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
177 | 178 | }; |
178 | 179 | |
179 | 180 | /************************************* |
r17967 | r17968 | |
194 | 195 | 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); |
195 | 196 | } |
196 | 197 | |
197 | stat | |
198 | UINT32 supershot_state::screen | |
198 | 199 | { |
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); | |
201 | 201 | return 0; |
202 | 202 | } |
203 | 203 | |
r17967 | r17968 | |
340 | 340 | MCFG_SCREEN_SIZE((32)*8, (32)*8) |
341 | 341 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) |
342 | 342 | |
343 | MCFG_SCREEN_UPDATE_ | |
343 | MCFG_SCREEN_UPDATE_DR | |
344 | 344 | |
345 | 345 | MCFG_GFXDECODE(supershot) |
346 | 346 | MCFG_PALETTE_LENGTH(2) |
r17967 | r17968 | |
---|---|---|
436 | 436 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
437 | 437 | MCFG_SCREEN_SIZE(32*16, 32*16) |
438 | 438 | MCFG_SCREEN_VISIBLE_AREA(0*16, 32*16-1, 2*16, 30*16-1) |
439 | MCFG_SCREEN_UPDATE_ | |
439 | MCFG_SCREEN_UPDATE_DR | |
440 | 440 | |
441 | 441 | MCFG_GFXDECODE(popeye) |
442 | 442 | MCFG_PALETTE_LENGTH(16+16*2+64*4) |
r17967 | r17968 | |
---|---|---|
183 | 183 | virtual void machine_start(); |
184 | 184 | virtual void machine_reset(); |
185 | 185 | virtual void video_start(); |
186 | UINT32 screen_update_gstream(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
186 | 187 | }; |
187 | 188 | |
188 | 189 | |
r17967 | r17968 | |
480 | 481 | m_tilemap2->set_transparent_pen(0); |
481 | 482 | } |
482 | 483 | |
483 | static | |
484 | UINT32 gstream_state::screen_update_gstream(screen_device &screen, bitmap_ind | |
484 | 485 | { |
485 | 486 | /* The tilemaps and sprite are interleaved together. |
486 | 487 | Even Words are tilemap tiles |
r17967 | r17968 | |
496 | 497 | are being set ?! |
497 | 498 | */ |
498 | 499 | |
499 | gstream_state *state = screen.machine().driver_data<gstream_state>(); | |
500 | 500 | int i; |
501 | 501 | |
502 | //popmessage("(1) %08x %08x (2) %08x %08x (3) %08x %08x", | |
502 | //popmessage("(1) %08x %08x (2) %08x %08x (3) %08x %08x", | |
503 | 503 | |
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); | |
506 | 506 | |
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); | |
509 | 509 | |
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); | |
512 | 512 | |
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); | |
516 | 516 | |
517 | 517 | for (i = 0x0000 / 4; i < 0x4000 / 4; i += 4) |
518 | 518 | { |
519 | 519 | /* 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; | |
524 | 524 | |
525 | 525 | /* co-ordinates are signed */ |
526 | 526 | if (x & 0x8000) x -= 0x10000; |
r17967 | r17968 | |
576 | 576 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
577 | 577 | MCFG_SCREEN_SIZE(320, 240) |
578 | 578 | MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) |
579 | MCFG_SCREEN_UPDATE_ | |
579 | MCFG_SCREEN_UPDATE_DR | |
580 | 580 | |
581 | 581 | MCFG_PALETTE_LENGTH(0x1000 + 0x400 + 0x400 + 0x400) // sprites + 3 bg layers |
582 | 582 | MCFG_GFXDECODE(gstream) |
r17967 | r17968 | |
---|---|---|
330 | 330 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
331 | 331 | MCFG_SCREEN_SIZE(32*8, 32*8) |
332 | 332 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
333 | MCFG_SCREEN_UPDATE_ | |
333 | MCFG_SCREEN_UPDATE_DR | |
334 | 334 | |
335 | 335 | MCFG_GFXDECODE(4enraya) |
336 | 336 |
r17967 | r17968 | |
---|---|---|
257 | 257 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
258 | 258 | MCFG_SCREEN_SIZE(256, 256) |
259 | 259 | MCFG_SCREEN_VISIBLE_AREA(1*8, 32*8-1, 1*8, 31*8-1) |
260 | MCFG_SCREEN_UPDATE_ | |
260 | MCFG_SCREEN_UPDATE_DR | |
261 | 261 | |
262 | 262 | MCFG_PALETTE_LENGTH(0x100) |
263 | 263 | MCFG_GFXDECODE(compgolf) |
r17967 | r17968 | |
---|---|---|
1241 | 1241 | |
1242 | 1242 | MCFG_SCREEN_ADD("screen", RASTER) |
1243 | 1243 | 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) | |
1246 | 1246 | /* |
1247 | 1247 | Measured clocks: |
1248 | 1248 | V = 59.6376Hz |
r17967 | r17968 | |
---|---|---|
155 | 155 | DECLARE_MACHINE_RESET(iqblocka); |
156 | 156 | DECLARE_MACHINE_RESET(mgcs); |
157 | 157 | DECLARE_MACHINE_RESET(lhzb2a); |
158 | UINT32 screen_update_igs017(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
158 | 159 | }; |
159 | 160 | |
160 | 161 | |
r17967 | r17968 | |
409 | 410 | return 0; |
410 | 411 | } |
411 | 412 | |
412 | stat | |
413 | UINT32 igs017_state::screen | |
413 | 414 | { |
414 | igs017_state *state = screen.machine().driver_data<igs017_state>(); | |
415 | 415 | int layers_ctrl = -1; |
416 | 416 | |
417 | 417 | #ifdef MAME_DEBUG |
r17967 | r17968 | |
430 | 430 | |
431 | 431 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
432 | 432 | |
433 | if ( | |
433 | if ( | |
434 | 434 | return 0; |
435 | 435 | |
436 | if (layers_ctrl & 1) | |
436 | if (layers_ctrl & 1) | |
437 | 437 | |
438 | 438 | if (layers_ctrl & 4) draw_sprites(screen.machine(), bitmap, cliprect); |
439 | 439 | |
440 | if (layers_ctrl & 2) | |
440 | if (layers_ctrl & 2) | |
441 | 441 | |
442 | 442 | return 0; |
443 | 443 | } |
r17967 | r17968 | |
3269 | 3269 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3270 | 3270 | MCFG_SCREEN_SIZE(512, 256) |
3271 | 3271 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 240-1) |
3272 | MCFG_SCREEN_UPDATE_ | |
3272 | MCFG_SCREEN_UPDATE_DR | |
3273 | 3273 | |
3274 | 3274 | MCFG_GFXDECODE(igs017) |
3275 | 3275 | MCFG_PALETTE_LENGTH(0x100*2) |
r17967 | r17968 | |
3334 | 3334 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3335 | 3335 | MCFG_SCREEN_SIZE(512, 256) |
3336 | 3336 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 240-1) |
3337 | MCFG_SCREEN_UPDATE_ | |
3337 | MCFG_SCREEN_UPDATE_DR | |
3338 | 3338 | |
3339 | 3339 | MCFG_GFXDECODE(igs017_flipped) |
3340 | 3340 | MCFG_PALETTE_LENGTH(0x100*2) |
r17967 | r17968 | |
3374 | 3374 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3375 | 3375 | MCFG_SCREEN_SIZE(512, 256) |
3376 | 3376 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 240-1) |
3377 | MCFG_SCREEN_UPDATE_ | |
3377 | MCFG_SCREEN_UPDATE_DR | |
3378 | 3378 | |
3379 | 3379 | MCFG_GFXDECODE(igs017_swapped) |
3380 | 3380 | MCFG_PALETTE_LENGTH(0x100*2) |
r17967 | r17968 | |
3411 | 3411 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3412 | 3412 | MCFG_SCREEN_SIZE(512, 256) |
3413 | 3413 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-16-1) |
3414 | MCFG_SCREEN_UPDATE_ | |
3414 | MCFG_SCREEN_UPDATE_DR | |
3415 | 3415 | |
3416 | 3416 | MCFG_GFXDECODE(igs017_swapped) |
3417 | 3417 | MCFG_PALETTE_LENGTH(0x100*2) |
r17967 | r17968 | |
3442 | 3442 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3443 | 3443 | MCFG_SCREEN_SIZE(512, 256) |
3444 | 3444 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 240-1) |
3445 | MCFG_SCREEN_UPDATE_ | |
3445 | MCFG_SCREEN_UPDATE_DR | |
3446 | 3446 | |
3447 | 3447 | MCFG_GFXDECODE(igs017) |
3448 | 3448 | MCFG_PALETTE_LENGTH(0x100*2) |
r17967 | r17968 | |
3482 | 3482 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3483 | 3483 | MCFG_SCREEN_SIZE(512, 256) |
3484 | 3484 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-16-1) |
3485 | MCFG_SCREEN_UPDATE_ | |
3485 | MCFG_SCREEN_UPDATE_DR | |
3486 | 3486 | |
3487 | 3487 | MCFG_GFXDECODE(igs017) |
3488 | 3488 | MCFG_PALETTE_LENGTH(0x100*2) |
r17967 | r17968 | |
3534 | 3534 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3535 | 3535 | MCFG_SCREEN_SIZE(512, 256) |
3536 | 3536 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-16-1) |
3537 | MCFG_SCREEN_UPDATE_ | |
3537 | MCFG_SCREEN_UPDATE_DR | |
3538 | 3538 | |
3539 | 3539 | MCFG_GFXDECODE(igs017_swapped) |
3540 | 3540 | MCFG_PALETTE_LENGTH(0x100*2) |
r17967 | r17968 | |
3565 | 3565 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3566 | 3566 | MCFG_SCREEN_SIZE(512, 256) |
3567 | 3567 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 240-1) |
3568 | MCFG_SCREEN_UPDATE_ | |
3568 | MCFG_SCREEN_UPDATE_DR | |
3569 | 3569 | |
3570 | 3570 | MCFG_GFXDECODE(igs017) |
3571 | 3571 | MCFG_PALETTE_LENGTH(0x100*2) |
r17967 | r17968 | |
---|---|---|
449 | 449 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
450 | 450 | MCFG_SCREEN_SIZE(32*8, 32*8) |
451 | 451 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
452 | MCFG_SCREEN_UPDATE_ | |
452 | MCFG_SCREEN_UPDATE_DR | |
453 | 453 | |
454 | 454 | MCFG_GFXDECODE(pushman) |
455 | 455 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
495 | 495 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
496 | 496 | MCFG_SCREEN_SIZE(32*8, 32*8) |
497 | 497 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
498 | MCFG_SCREEN_UPDATE_ | |
498 | MCFG_SCREEN_UPDATE_DR | |
499 | 499 | |
500 | 500 | MCFG_GFXDECODE(pushman) |
501 | 501 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
55 | 55 | DECLARE_WRITE8_MEMBER(port3_w); |
56 | 56 | virtual void video_start(); |
57 | 57 | virtual void palette_init(); |
58 | UINT32 screen_update_monzagp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
58 | 59 | }; |
59 | 60 | |
60 | 61 | |
r17967 | r17968 | |
69 | 70 | m_vram = auto_alloc_array(machine(), UINT8, 0x10000); |
70 | 71 | } |
71 | 72 | |
72 | static | |
73 | UINT32 monzagp_state::screen_update_monzagp(screen_device &screen, bitmap_ind | |
73 | 74 | { |
74 | monzagp_state *state = screen.machine().driver_data<monzagp_state>(); | |
75 | 75 | int x,y; |
76 | 76 | |
77 | 77 | if(screen.machine().input().code_pressed_once(KEYCODE_Z)) |
78 | | |
78 | | |
79 | 79 | |
80 | 80 | if(screen.machine().input().code_pressed_once(KEYCODE_X)) |
81 | | |
81 | | |
82 | 82 | |
83 | 83 | if(screen.machine().input().code_pressed_once(KEYCODE_Q)) |
84 | 84 | { |
85 | state->m_screenw--; | |
86 | printf("%x\n",state->m_screenw); | |
85 | m_screenw--; | |
86 | printf("%x\n",m_screenw); | |
87 | 87 | } |
88 | 88 | |
89 | 89 | if(screen.machine().input().code_pressed_once(KEYCODE_W)) |
90 | 90 | { |
91 | state->m_screenw++; | |
92 | printf("%x\n",state->m_screenw); | |
91 | m_screenw++; | |
92 | printf("%x\n",m_screenw); | |
93 | 93 | } |
94 | 94 | |
95 | 95 | if(screen.machine().input().code_pressed_once(KEYCODE_A)) |
96 | 96 | { |
97 | 97 | FILE * p=fopen("vram.bin","wb"); |
98 | fwrite(& | |
98 | fwrite(& | |
99 | 99 | fclose(p); |
100 | 100 | } |
101 | 101 | |
r17967 | r17968 | |
104 | 104 | { |
105 | 105 | for(x=0;x<256;x++) |
106 | 106 | { |
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, | |
110 | 110 | 0, |
111 | 111 | 0, 0, |
112 | 112 | x*8,y*8, |
r17967 | r17968 | |
267 | 267 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
268 | 268 | MCFG_SCREEN_SIZE(32*8, 32*8) |
269 | 269 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) |
270 | MCFG_SCREEN_UPDATE_ | |
270 | MCFG_SCREEN_UPDATE_DR | |
271 | 271 | |
272 | 272 | MCFG_PALETTE_LENGTH(0x200) |
273 | 273 |
r17967 | r17968 | |
---|---|---|
307 | 307 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
308 | 308 | MCFG_SCREEN_SIZE(32*8, 32*8) |
309 | 309 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
310 | MCFG_SCREEN_UPDATE_ | |
310 | MCFG_SCREEN_UPDATE_DR | |
311 | 311 | |
312 | 312 | MCFG_GFXDECODE(hyperspt) |
313 | 313 | MCFG_PALETTE_LENGTH(16*16+16*16) |
r17967 | r17968 | |
---|---|---|
572 | 572 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
573 | 573 | MCFG_SCREEN_SIZE(512, 256) |
574 | 574 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) |
575 | MCFG_SCREEN_UPDATE_ | |
575 | MCFG_SCREEN_UPDATE_DR | |
576 | 576 | |
577 | 577 | MCFG_PALETTE_LENGTH(256) |
578 | 578 |
r17967 | r17968 | |
---|---|---|
38 | 38 | DECLARE_READ16_MEMBER(kothello_hd63484_status_r); |
39 | 39 | virtual void video_start(); |
40 | 40 | DECLARE_PALETTE_INIT(shanghai); |
41 | UINT32 screen_update_shanghai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
41 | 42 | }; |
42 | 43 | |
43 | 44 | |
r17967 | r17968 | |
75 | 76 | { |
76 | 77 | } |
77 | 78 | |
78 | stat | |
79 | UINT32 shanghai_state::screen | |
79 | 80 | { |
80 | 81 | device_t *hd63484 = screen.machine().device("hd63484"); |
81 | 82 | int x, y, b, src; |
r17967 | r17968 | |
452 | 453 | MCFG_SCREEN_REFRESH_RATE(30) |
453 | 454 | MCFG_SCREEN_SIZE(384, 280) |
454 | 455 | MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 280-1) // Base Screen is 384 pixel |
455 | MCFG_SCREEN_UPDATE_ | |
456 | MCFG_SCREEN_UPDATE_DR | |
456 | 457 | |
457 | 458 | MCFG_PALETTE_LENGTH(256) |
458 | 459 | |
r17967 | r17968 | |
485 | 486 | MCFG_SCREEN_REFRESH_RATE(30) |
486 | 487 | MCFG_SCREEN_SIZE(384, 280) |
487 | 488 | MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 280-1) // Base Screen is 384 pixel |
488 | MCFG_SCREEN_UPDATE_ | |
489 | MCFG_SCREEN_UPDATE_DR | |
489 | 490 | |
490 | 491 | MCFG_PALETTE_LENGTH(256) |
491 | 492 | |
r17967 | r17968 | |
522 | 523 | MCFG_SCREEN_REFRESH_RATE(30) |
523 | 524 | MCFG_SCREEN_SIZE(384, 280) |
524 | 525 | MCFG_SCREEN_VISIBLE_AREA(8, 384-1, 0, 250-1) // Base Screen is 376 pixel |
525 | MCFG_SCREEN_UPDATE_ | |
526 | MCFG_SCREEN_UPDATE_DR | |
526 | 527 | |
527 | 528 | MCFG_PALETTE_LENGTH(256) |
528 | 529 |
r17967 | r17968 | |
---|---|---|
452 | 452 | virtual void video_start(); |
453 | 453 | virtual void palette_init(); |
454 | 454 | 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); | |
455 | 457 | }; |
456 | 458 | |
457 | 459 | |
r17967 | r17968 | |
463 | 465 | { |
464 | 466 | } |
465 | 467 | |
466 | static | |
468 | UINT32 amaticmg_state::screen_update_amaticmg(screen_device &screen, bitmap_ind | |
467 | 469 | { |
468 | amaticmg_state *state = screen.machine().driver_data<amaticmg_state>(); | |
469 | 470 | gfx_element *gfx = screen.machine().gfx[0]; |
470 | 471 | int y,x; |
471 | 472 | int count = 0; |
r17967 | r17968 | |
474 | 475 | { |
475 | 476 | for (x=0;x<96;x++) |
476 | 477 | { |
477 | UINT16 tile = | |
478 | UINT16 tile = | |
478 | 479 | UINT8 color; |
479 | 480 | |
480 | tile += (( | |
481 | tile += (( | |
481 | 482 | /* TODO: this looks so out of place ... */ |
482 | color = ( | |
483 | color = ( | |
483 | 484 | |
484 | 485 | drawgfx_opaque(bitmap,cliprect,gfx,tile,color,0,0,x*4,y*8); |
485 | 486 | count++; |
r17967 | r17968 | |
489 | 490 | return 0; |
490 | 491 | } |
491 | 492 | |
492 | stat | |
493 | UINT32 amaticmg_state::screen | |
493 | 494 | { |
494 | amaticmg_state *state = screen.machine().driver_data<amaticmg_state>(); | |
495 | 495 | gfx_element *gfx = screen.machine().gfx[0]; |
496 | 496 | int y,x; |
497 | 497 | int count = 16; |
r17967 | r17968 | |
500 | 500 | { |
501 | 501 | for (x=0;x<96;x++) |
502 | 502 | { |
503 | UINT16 tile = | |
503 | UINT16 tile = | |
504 | 504 | UINT8 color; |
505 | 505 | |
506 | tile += (( | |
506 | tile += (( | |
507 | 507 | color = 0; |
508 | 508 | |
509 | 509 | drawgfx_opaque(bitmap,cliprect,gfx,tile,color,0,0,x*4,y*8); |
r17967 | r17968 | |
881 | 881 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
882 | 882 | MCFG_SCREEN_SIZE(512, 256) |
883 | 883 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) |
884 | MCFG_SCREEN_UPDATE_ | |
884 | MCFG_SCREEN_UPDATE_DR | |
885 | 885 | |
886 | 886 | MCFG_MC6845_ADD("crtc", MC6845, CRTC_CLOCK, mc6845_intf) |
887 | 887 | |
r17967 | r17968 | |
919 | 919 | MCFG_CPU_VBLANK_INT("screen", amaticmg2_irq) |
920 | 920 | |
921 | 921 | MCFG_SCREEN_MODIFY("screen") |
922 | MCFG_SCREEN_UPDATE_ | |
922 | MCFG_SCREEN_UPDATE_DR | |
923 | 923 | |
924 | 924 | MCFG_GFXDECODE(amaticmg2) |
925 | 925 | MCFG_PALETTE_INIT_OVERRIDE(amaticmg_state,amaticmg2) |
r17967 | r17968 | |
---|---|---|
1344 | 1344 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1345 | 1345 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1346 | 1346 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
1347 | MCFG_SCREEN_UPDATE_ | |
1347 | MCFG_SCREEN_UPDATE_DR | |
1348 | 1348 | |
1349 | 1349 | MCFG_GFXDECODE(scramble) |
1350 | 1350 | MCFG_PALETTE_LENGTH(32+64+2+1) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */ |
r17967 | r17968 | |
1572 | 1572 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1573 | 1573 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1574 | 1574 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
1575 | MCFG_SCREEN_UPDATE_ | |
1575 | MCFG_SCREEN_UPDATE_DR | |
1576 | 1576 | |
1577 | 1577 | MCFG_GFXDECODE(ad2083) |
1578 | 1578 | MCFG_PALETTE_LENGTH(32+64+2+8) /* 32 for characters, 64 for stars, 2 for bullets, 8 for background */ |
r17967 | r17968 | |
---|---|---|
395 | 395 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
396 | 396 | MCFG_SCREEN_SIZE(32*8, 32*8) |
397 | 397 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 27*8-1) |
398 | MCFG_SCREEN_UPDATE_ | |
398 | MCFG_SCREEN_UPDATE_DR | |
399 | 399 | |
400 | 400 | MCFG_GFXDECODE(taxidriv) |
401 | 401 | MCFG_PALETTE_LENGTH(16) |
r17967 | r17968 | |
---|---|---|
444 | 444 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
445 | 445 | virtual void video_start(); |
446 | 446 | virtual void palette_init(); |
447 | UINT32 screen_update_avt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
447 | 448 | }; |
448 | 449 | |
449 | 450 | #define mc6845_h_char_total (state->m_crtc_vreg[0]) |
450 | #define mc6845_h_display ( | |
451 | #define mc6845_h_display ( | |
451 | 452 | #define mc6845_h_sync_pos (state->m_crtc_vreg[2]) |
452 | 453 | #define mc6845_sync_width (state->m_crtc_vreg[3]) |
453 | 454 | #define mc6845_v_char_total (state->m_crtc_vreg[4]) |
454 | 455 | #define mc6845_v_total_adj (state->m_crtc_vreg[5]) |
455 | #define mc6845_v_display ( | |
456 | #define mc6845_v_display ( | |
456 | 457 | #define mc6845_v_sync_pos (state->m_crtc_vreg[7]) |
457 | 458 | #define mc6845_mode_ctrl (state->m_crtc_vreg[8]) |
458 | 459 | #define mc6845_tile_height (state->m_crtc_vreg[9]+1) |
r17967 | r17968 | |
504 | 505 | } |
505 | 506 | |
506 | 507 | |
507 | static | |
508 | UINT32 avt_state::screen_update_avt(screen_device &screen, bitmap_ind | |
508 | 509 | { |
509 | avt_state *state = screen.machine().driver_data<avt_state>(); | |
510 | 510 | int x,y; |
511 | 511 | int count; |
512 | 512 | gfx_element *gfx = screen.machine().gfx[0]; |
r17967 | r17968 | |
517 | 517 | { |
518 | 518 | for(x=0;x<mc6845_h_display;x++) |
519 | 519 | { |
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; | |
522 | 522 | |
523 | 523 | drawgfx_opaque(bitmap,cliprect,gfx,tile,color,0,0,x*8,(y*8)); |
524 | 524 | |
525 | 525 | count++; |
526 | 526 | } |
527 | 527 | } |
528 | // | |
528 | // | |
529 | 529 | return 0; |
530 | 530 | } |
531 | 531 | |
r17967 | r17968 | |
902 | 902 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
903 | 903 | MCFG_SCREEN_SIZE(32*8, 32*8) |
904 | 904 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) /* 240x224 (through CRTC) */ |
905 | MCFG_SCREEN_UPDATE_ | |
905 | MCFG_SCREEN_UPDATE_DR | |
906 | 906 | |
907 | 907 | MCFG_GFXDECODE(avt) |
908 | 908 |
r17967 | r17968 | |
---|---|---|
74 | 74 | virtual void machine_reset(); |
75 | 75 | virtual void video_start(); |
76 | 76 | virtual void palette_init(); |
77 | UINT32 screen_update_mole(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
77 | 78 | }; |
78 | 79 | |
79 | 80 | |
r17967 | r17968 | |
122 | 123 | flip_screen_set(data & 0x01); |
123 | 124 | } |
124 | 125 | |
125 | static | |
126 | UINT32 mole_state::screen_update_mole(screen_device &screen, bitmap_ind | |
126 | 127 | { |
127 | mole_state *state = screen.machine().driver_data<mole_state>(); | |
128 | 128 | |
129 | | |
129 | | |
130 | 130 | return 0; |
131 | 131 | } |
132 | 132 | |
r17967 | r17968 | |
325 | 325 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
326 | 326 | MCFG_SCREEN_SIZE(40*8, 25*8) |
327 | 327 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 25*8-1) |
328 | MCFG_SCREEN_UPDATE_ | |
328 | MCFG_SCREEN_UPDATE_DR | |
329 | 329 | |
330 | 330 | MCFG_GFXDECODE(mole) |
331 | 331 | MCFG_PALETTE_LENGTH(8) |
r17967 | r17968 | |
---|---|---|
250 | 250 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
251 | 251 | MCFG_SCREEN_SIZE(256, 256) |
252 | 252 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
253 | MCFG_SCREEN_UPDATE_ | |
253 | MCFG_SCREEN_UPDATE_DR | |
254 | 254 | |
255 | 255 | MCFG_GFXDECODE(pitnrun) |
256 | 256 | MCFG_PALETTE_LENGTH(32*3) |
r17967 | r17968 | |
---|---|---|
38 | 38 | DECLARE_DRIVER_INIT(missb2); |
39 | 39 | DECLARE_MACHINE_START(missb2); |
40 | 40 | DECLARE_MACHINE_RESET(missb2); |
41 | UINT32 screen_update_missb2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
41 | 42 | }; |
42 | 43 | |
43 | 44 | |
44 | 45 | /* Video Hardware */ |
45 | 46 | |
46 | stat | |
47 | UINT32 missb2_state::screen | |
47 | 48 | { |
48 | missb2_state *state = screen.machine().driver_data<missb2_state>(); | |
49 | 49 | int offs; |
50 | 50 | int sx, sy, xc, yc; |
51 | 51 | int gfx_num, gfx_attr, gfx_offs; |
r17967 | r17968 | |
59 | 59 | |
60 | 60 | bitmap.fill(255, cliprect); |
61 | 61 | |
62 | if (! | |
62 | if (! | |
63 | 63 | return 0; |
64 | 64 | |
65 | 65 | /* 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++) | |
68 | 68 | { |
69 | 69 | drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[1], |
70 | 70 | bg_offs, |
r17967 | r17968 | |
77 | 77 | sx = 0; |
78 | 78 | |
79 | 79 | prom = screen.machine().root_device().memregion("proms")->base(); |
80 | for (offs = 0; offs < | |
80 | for (offs = 0; offs < | |
81 | 81 | { |
82 | 82 | /* skip empty sprites */ |
83 | 83 | /* this is dword aligned so the UINT32 * cast shouldn't give problems */ |
84 | 84 | /* on any architecture */ |
85 | if (*(UINT32 *)(& | |
85 | if (*(UINT32 *)(& | |
86 | 86 | continue; |
87 | 87 | |
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]; | |
90 | 90 | prom_line = prom + 0x80 + ((gfx_num & 0xe0) >> 1); |
91 | 91 | |
92 | 92 | gfx_offs = ((gfx_num & 0x1f) * 0x80); |
93 | 93 | if ((gfx_num & 0xa0) == 0xa0) |
94 | 94 | gfx_offs |= 0x1000; |
95 | 95 | |
96 | sy = - | |
96 | sy = - | |
97 | 97 | |
98 | 98 | for (yc = 0; yc < 32; yc++) |
99 | 99 | { |
r17967 | r17968 | |
101 | 101 | |
102 | 102 | if (!(prom_line[yc / 2] & 0x04)) /* next column */ |
103 | 103 | { |
104 | sx = | |
104 | sx = | |
105 | 105 | if (gfx_attr & 0x40) sx -= 256; |
106 | 106 | } |
107 | 107 | |
r17967 | r17968 | |
111 | 111 | |
112 | 112 | goffs = gfx_offs + xc * 0x40 + (yc & 7) * 0x02 + |
113 | 113 | (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; | |
118 | 118 | x = sx + xc * 8; |
119 | 119 | y = (sy + yc * 8) & 0xff; |
120 | 120 | |
121 | if ( | |
121 | if ( | |
122 | 122 | { |
123 | 123 | x = 248 - x; |
124 | 124 | y = 248 - y; |
r17967 | r17968 | |
484 | 484 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
485 | 485 | MCFG_SCREEN_SIZE(32*8, 32*8) |
486 | 486 | MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 2*8, 30*8-1) |
487 | MCFG_SCREEN_UPDATE_ | |
487 | MCFG_SCREEN_UPDATE_DR | |
488 | 488 | |
489 | 489 | MCFG_GFXDECODE(missb2) |
490 | 490 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
---|---|---|
661 | 661 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
662 | 662 | MCFG_SCREEN_SIZE(32*8, 32*8) |
663 | 663 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
664 | MCFG_SCREEN_UPDATE_ | |
664 | MCFG_SCREEN_UPDATE_DR | |
665 | 665 | |
666 | 666 | MCFG_GFXDECODE(tehkanwc) |
667 | 667 | MCFG_PALETTE_LENGTH(768) |
r17967 | r17968 | |
---|---|---|
371 | 371 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
372 | 372 | MCFG_SCREEN_SIZE(32*8, 32*8) |
373 | 373 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
374 | MCFG_SCREEN_UPDATE_ | |
374 | MCFG_SCREEN_UPDATE_DR | |
375 | 375 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) |
376 | 376 | |
377 | 377 | MCFG_GFXDECODE(bionicc) |
r17967 | r17968 | |
---|---|---|
36 | 36 | DECLARE_WRITE8_MEMBER(pk8000_84_portc_w); |
37 | 37 | virtual void machine_reset(); |
38 | 38 | virtual void video_start(); |
39 | UINT32 screen_update_photon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
39 | 40 | }; |
40 | 41 | |
41 | 42 | |
r17967 | r17968 | |
205 | 206 | { |
206 | 207 | } |
207 | 208 | |
208 | static | |
209 | UINT32 photon_state::screen_update_photon(screen_device &screen, bitmap_ind | |
209 | 210 | { |
210 | 211 | return pk8000_video_update(screen, bitmap, cliprect, screen.machine().root_device().memregion("maincpu")->base()); |
211 | 212 | } |
r17967 | r17968 | |
225 | 226 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
226 | 227 | MCFG_SCREEN_SIZE(256+32, 192+32) |
227 | 228 | MCFG_SCREEN_VISIBLE_AREA(0, 256+32-1, 0, 192+32-1) |
228 | ||
229 | | |
229 | 230 | MCFG_PALETTE_LENGTH(16) |
230 | 231 | MCFG_PALETTE_INIT(pk8000) |
231 | 232 |
r17967 | r17968 | |
---|---|---|
219 | 219 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
220 | 220 | MCFG_SCREEN_SIZE(32*8, 32*8) |
221 | 221 | MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1) |
222 | MCFG_SCREEN_UPDATE_ | |
222 | MCFG_SCREEN_UPDATE_DR | |
223 | 223 | |
224 | 224 | MCFG_GFXDECODE(citycon) |
225 | 225 | MCFG_PALETTE_LENGTH(640+1024) /* 640 real palette + 1024 virtual palette */ |
r17967 | r17968 | |
---|---|---|
149 | 149 | virtual void machine_start(); |
150 | 150 | virtual void video_start(); |
151 | 151 | virtual void palette_init(); |
152 | UINT32 screen_update_jwildb52(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
152 | 153 | }; |
153 | 154 | |
154 | 155 | |
r17967 | r17968 | |
165 | 166 | } |
166 | 167 | |
167 | 168 | |
168 | stat | |
169 | UINT32 sigmab52_state::screen | |
169 | 170 | { |
170 | 171 | device_t *hd63484 = screen.machine().device("hd63484"); |
171 | 172 | |
r17967 | r17968 | |
605 | 606 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
606 | 607 | MCFG_SCREEN_SIZE(1024, 1024) |
607 | 608 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 384-1) |
608 | MCFG_SCREEN_UPDATE_ | |
609 | MCFG_SCREEN_UPDATE_DR | |
609 | 610 | |
610 | 611 | MCFG_HD63484_ADD("hd63484", jwildb52_hd63484_intf) |
611 | 612 |
r17967 | r17968 | |
---|---|---|
1084 | 1084 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1085 | 1085 | MCFG_SCREEN_SIZE(64*8, 64*8) |
1086 | 1086 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) |
1087 | MCFG_SCREEN_UPDATE_ | |
1087 | MCFG_SCREEN_UPDATE_DR | |
1088 | 1088 | |
1089 | 1089 | MCFG_GFXDECODE(playmark) |
1090 | 1090 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
1118 | 1118 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1119 | 1119 | MCFG_SCREEN_SIZE(64*8, 64*8) |
1120 | 1120 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) |
1121 | MCFG_SCREEN_UPDATE_ | |
1121 | MCFG_SCREEN_UPDATE_DR | |
1122 | 1122 | |
1123 | 1123 | MCFG_GFXDECODE(bigtwinb) |
1124 | 1124 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
1155 | 1155 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1156 | 1156 | MCFG_SCREEN_SIZE(64*8, 64*8) |
1157 | 1157 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) |
1158 | MCFG_SCREEN_UPDATE_ | |
1158 | MCFG_SCREEN_UPDATE_DR | |
1159 | 1159 | |
1160 | 1160 | MCFG_GFXDECODE(wbeachvl) |
1161 | 1161 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
1189 | 1189 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1190 | 1190 | MCFG_SCREEN_SIZE(64*8, 64*8) |
1191 | 1191 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) |
1192 | MCFG_SCREEN_UPDATE_ | |
1192 | MCFG_SCREEN_UPDATE_DR | |
1193 | 1193 | |
1194 | 1194 | MCFG_GFXDECODE(excelsr) |
1195 | 1195 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
1226 | 1226 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1227 | 1227 | MCFG_SCREEN_SIZE(64*8, 64*8) |
1228 | 1228 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) |
1229 | MCFG_SCREEN_UPDATE_ | |
1229 | MCFG_SCREEN_UPDATE_DR | |
1230 | 1230 | |
1231 | 1231 | MCFG_GFXDECODE(hrdtimes) |
1232 | 1232 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
1260 | 1260 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1261 | 1261 | MCFG_SCREEN_SIZE(64*8, 64*8) |
1262 | 1262 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) |
1263 | MCFG_SCREEN_UPDATE_ | |
1263 | MCFG_SCREEN_UPDATE_DR | |
1264 | 1264 | |
1265 | 1265 | MCFG_GFXDECODE(hrdtimes) |
1266 | 1266 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
65 | 65 | virtual void machine_reset(); |
66 | 66 | virtual void video_start(); |
67 | 67 | virtual void palette_init(); |
68 | UINT32 screen_update_dynadice(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
68 | 69 | }; |
69 | 70 | |
70 | 71 | |
r17967 | r17968 | |
212 | 213 | m_bg_tilemap->set_scrollx(0, -16); |
213 | 214 | } |
214 | 215 | |
215 | stat | |
216 | UINT32 dynadice_state::screen | |
216 | 217 | { |
217 | dynadice_state *state = screen.machine().driver_data<dynadice_state>(); | |
218 | 218 | rectangle myclip = cliprect; |
219 | 219 | 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); | |
222 | 222 | return 0; |
223 | 223 | } |
224 | 224 | |
r17967 | r17968 | |
259 | 259 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
260 | 260 | MCFG_SCREEN_SIZE(256+16, 256) |
261 | 261 | MCFG_SCREEN_VISIBLE_AREA(0*8, 34*8-1, 3*8, 28*8-1) |
262 | MCFG_SCREEN_UPDATE_ | |
262 | MCFG_SCREEN_UPDATE_DR | |
263 | 263 | |
264 | 264 | MCFG_GFXDECODE(dynadice) |
265 | 265 | MCFG_PALETTE_LENGTH(8) |
r17967 | r17968 | |
---|---|---|
1182 | 1182 | */ |
1183 | 1183 | MCFG_SCREEN_SIZE(64*8, 32*8) |
1184 | 1184 | MCFG_SCREEN_VISIBLE_AREA(20*8, 56*8-1, 2*8, 32*8-1) |
1185 | MCFG_SCREEN_UPDATE_ | |
1185 | MCFG_SCREEN_UPDATE_DR | |
1186 | 1186 | |
1187 | 1187 | MCFG_GFXDECODE(ampoker2) |
1188 | 1188 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
---|---|---|
539 | 539 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
540 | 540 | MCFG_SCREEN_SIZE(64*8, 64*8) |
541 | 541 | 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) | |
544 | 544 | |
545 | 545 | MCFG_GFXDECODE(pgm) |
546 | 546 | MCFG_PALETTE_LENGTH(0x1200/2) |
r17967 | r17968 | |
---|---|---|
1526 | 1526 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1527 | 1527 | MCFG_SCREEN_SIZE(NAMCOS21_POLY_FRAME_WIDTH,NAMCOS21_POLY_FRAME_HEIGHT) |
1528 | 1528 | MCFG_SCREEN_VISIBLE_AREA(0,495,0,479) |
1529 | MCFG_SCREEN_UPDATE_ | |
1529 | MCFG_SCREEN_UPDATE_DR | |
1530 | 1530 | |
1531 | 1531 | MCFG_GFXDECODE(namcos21) |
1532 | 1532 | MCFG_PALETTE_LENGTH(NAMCOS21_NUM_COLORS) |
r17967 | r17968 | |
1581 | 1581 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1582 | 1582 | MCFG_SCREEN_SIZE(NAMCOS21_POLY_FRAME_WIDTH,NAMCOS21_POLY_FRAME_HEIGHT) |
1583 | 1583 | MCFG_SCREEN_VISIBLE_AREA(0,495,0,479) |
1584 | MCFG_SCREEN_UPDATE_ | |
1584 | MCFG_SCREEN_UPDATE_DR | |
1585 | 1585 | |
1586 | 1586 | MCFG_GFXDECODE(namcos21) |
1587 | 1587 | MCFG_PALETTE_LENGTH(NAMCOS21_NUM_COLORS) |
r17967 | r17968 | |
1640 | 1640 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1641 | 1641 | MCFG_SCREEN_SIZE(NAMCOS21_POLY_FRAME_WIDTH,NAMCOS21_POLY_FRAME_HEIGHT) |
1642 | 1642 | MCFG_SCREEN_VISIBLE_AREA(0,495,0,479) |
1643 | MCFG_SCREEN_UPDATE_ | |
1643 | MCFG_SCREEN_UPDATE_DR | |
1644 | 1644 | |
1645 | 1645 | MCFG_PALETTE_LENGTH(NAMCOS21_NUM_COLORS) |
1646 | 1646 |
r17967 | r17968 | |
---|---|---|
89 | 89 | DECLARE_MACHINE_RESET(jngolady); |
90 | 90 | DECLARE_MACHINE_START(common); |
91 | 91 | DECLARE_MACHINE_RESET(common); |
92 | UINT32 screen_update_jangou(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
92 | 93 | }; |
93 | 94 | |
94 | 95 | |
r17967 | r17968 | |
145 | 146 | save_item(NAME(m_blit_buffer)); |
146 | 147 | } |
147 | 148 | |
148 | static | |
149 | UINT32 jangou_state::screen_update_jangou(screen_device &screen, bitmap_ind | |
149 | 150 | { |
150 | jangou_state *state = screen.machine().driver_data<jangou_state>(); | |
151 | 151 | int x, y; |
152 | 152 | |
153 | 153 | for (y = cliprect.min_y; y <= cliprect.max_y; ++y) |
154 | 154 | { |
155 | UINT8 *src = & | |
155 | UINT8 *src = & | |
156 | 156 | UINT16 *dst = &bitmap.pix16(y, cliprect.min_x); |
157 | 157 | |
158 | 158 | for (x = cliprect.min_x; x <= cliprect.max_x; x += 2) |
r17967 | r17968 | |
1005 | 1005 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) //not accurate |
1006 | 1006 | MCFG_SCREEN_SIZE(256, 256) |
1007 | 1007 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1) |
1008 | MCFG_SCREEN_UPDATE_ | |
1008 | MCFG_SCREEN_UPDATE_DR | |
1009 | 1009 | |
1010 | 1010 | MCFG_PALETTE_LENGTH(32) |
1011 | 1011 |
r17967 | r17968 | |
---|---|---|
944 | 944 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
945 | 945 | MCFG_SCREEN_SIZE(36*8, 32*8) |
946 | 946 | MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 29*8-1) |
947 | MCFG_SCREEN_UPDATE_ | |
947 | MCFG_SCREEN_UPDATE_DR | |
948 | 948 | |
949 | 949 | MCFG_SCREEN_ADD("mscreen", RASTER) |
950 | 950 | MCFG_SCREEN_REFRESH_RATE(60) |
951 | 951 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
952 | 952 | MCFG_SCREEN_SIZE(36*8, 32*8) |
953 | 953 | MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 29*8-1) |
954 | MCFG_SCREEN_UPDATE_ | |
954 | MCFG_SCREEN_UPDATE_DR | |
955 | 955 | |
956 | 956 | MCFG_SCREEN_ADD("rscreen", RASTER) |
957 | 957 | MCFG_SCREEN_REFRESH_RATE(60) |
958 | 958 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
959 | 959 | MCFG_SCREEN_SIZE(36*8, 32*8) |
960 | 960 | MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 29*8-1) |
961 | MCFG_SCREEN_UPDATE_ | |
961 | MCFG_SCREEN_UPDATE_DR | |
962 | 962 | |
963 | 963 | |
964 | 964 | MCFG_PC080SN_ADD("pc080sn", darius_pc080sn_intf) |
r17967 | r17968 | |
---|---|---|
376 | 376 | MCFG_SCREEN_SIZE(360, 256) |
377 | 377 | MCFG_SCREEN_VISIBLE_AREA(0, 359, 0, 244) |
378 | 378 | MCFG_SCREEN_REFRESH_RATE(57) |
379 | MCFG_SCREEN_UPDATE_ | |
379 | MCFG_SCREEN_UPDATE_DR | |
380 | 380 | |
381 | 381 | /* sound hardware */ |
382 | 382 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
---|---|---|
276 | 276 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
277 | 277 | MCFG_SCREEN_SIZE(32*8, 32*8+3*8) |
278 | 278 | MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1) |
279 | MCFG_SCREEN_UPDATE_ | |
279 | MCFG_SCREEN_UPDATE_DR | |
280 | 280 | |
281 | 281 | MCFG_GFXDECODE(ikki) |
282 | 282 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
162 | 162 | DECLARE_DRIVER_INIT(kinst2); |
163 | 163 | virtual void machine_start(); |
164 | 164 | virtual void machine_reset(); |
165 | UINT32 screen_update_kinst(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
165 | 166 | }; |
166 | 167 | |
167 | 168 | |
r17967 | r17968 | |
242 | 243 | * |
243 | 244 | *************************************/ |
244 | 245 | |
245 | static | |
246 | UINT32 kinst_state::screen_update_kinst(screen_device &screen, bitmap_ind | |
246 | 247 | { |
247 | kinst_state *state = screen.machine().driver_data<kinst_state>(); | |
248 | 248 | int y; |
249 | 249 | |
250 | 250 | /* loop over rows and copy to the destination */ |
251 | 251 | for (y = cliprect.min_y; y <= cliprect.max_y; y++) |
252 | 252 | { |
253 | UINT32 *src = & | |
253 | UINT32 *src = & | |
254 | 254 | UINT16 *dest = &bitmap.pix16(y, cliprect.min_x); |
255 | 255 | int x; |
256 | 256 | |
r17967 | r17968 | |
688 | 688 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
689 | 689 | MCFG_SCREEN_SIZE(320, 240) |
690 | 690 | MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) |
691 | MCFG_SCREEN_UPDATE_ | |
691 | MCFG_SCREEN_UPDATE_DR | |
692 | 692 | |
693 | 693 | MCFG_PALETTE_INIT(BBBBB_GGGGG_RRRRR) |
694 | 694 | MCFG_PALETTE_LENGTH(32768) |
r17967 | r17968 | |
---|---|---|
133 | 133 | DECLARE_WRITE8_MEMBER(nmi_mask_w); |
134 | 134 | virtual void video_start(); |
135 | 135 | virtual void palette_init(); |
136 | UINT32 screen_update_sub(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
136 | 137 | }; |
137 | 138 | |
138 | 139 | void sub_state::video_start() |
139 | 140 | { |
140 | 141 | } |
141 | 142 | |
142 | static | |
143 | UINT32 sub_state::screen_update_sub(screen_device &screen, bitmap_ind | |
143 | 144 | { |
144 | sub_state *state = screen.machine().driver_data<sub_state>(); | |
145 | 145 | gfx_element *gfx = screen.machine().gfx[0]; |
146 | 146 | gfx_element *gfx_1 = screen.machine().gfx[1]; |
147 | 147 | int y,x; |
r17967 | r17968 | |
151 | 151 | { |
152 | 152 | for (x=0;x<32;x++) |
153 | 153 | { |
154 | UINT16 tile = | |
154 | UINT16 tile = | |
155 | 155 | UINT8 col; |
156 | UINT8 y_offs = | |
156 | UINT8 y_offs = | |
157 | 157 | |
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); | |
160 | 160 | |
161 | 161 | drawgfx_opaque(bitmap,cliprect,gfx,tile,col+0x40,0,0,x*8,(y*8)-y_offs); |
162 | 162 | drawgfx_opaque(bitmap,cliprect,gfx,tile,col+0x40,0,0,x*8,(y*8)-y_offs+256); |
r17967 | r17968 | |
177 | 177 | 1 --cc cccc color |
178 | 178 | */ |
179 | 179 | { |
180 | UINT8 *spriteram = state->m_spriteram; | |
181 | UINT8 *spriteram_2 = state->m_spriteram2; | |
180 | UINT8 *spriteram = m_spriteram; | |
181 | UINT8 *spriteram_2 = m_spriteram2; | |
182 | 182 | UINT8 x,y,spr_offs,i,col,fx,fy; |
183 | 183 | |
184 | 184 | for(i=0;i<0x40;i+=2) |
r17967 | r17968 | |
202 | 202 | { |
203 | 203 | for (x=0;x<32;x++) |
204 | 204 | { |
205 | UINT16 tile = | |
205 | UINT16 tile = | |
206 | 206 | UINT8 col; |
207 | UINT8 y_offs = | |
207 | UINT8 y_offs = | |
208 | 208 | |
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); | |
211 | 211 | |
212 | 212 | if(x >= 28) |
213 | 213 | { |
r17967 | r17968 | |
446 | 446 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
447 | 447 | MCFG_SCREEN_SIZE(256, 256) |
448 | 448 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1) |
449 | MCFG_SCREEN_UPDATE_ | |
449 | MCFG_SCREEN_UPDATE_DR | |
450 | 450 | |
451 | 451 | MCFG_GFXDECODE(sub) |
452 | 452 | MCFG_PALETTE_LENGTH(0x400) |
r17967 | r17968 | |
---|---|---|
290 | 290 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
291 | 291 | MCFG_SCREEN_SIZE(64*8, 32*8) |
292 | 292 | MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) |
293 | MCFG_SCREEN_UPDATE_ | |
293 | MCFG_SCREEN_UPDATE_DR | |
294 | 294 | |
295 | 295 | MCFG_GFXDECODE(cbasebal) |
296 | 296 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
454 | 454 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
455 | 455 | MCFG_SCREEN_SIZE(48*8, 48*8) |
456 | 456 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 48*8-1) |
457 | MCFG_SCREEN_UPDATE_ | |
457 | MCFG_SCREEN_UPDATE_DR | |
458 | 458 | |
459 | 459 | MCFG_GFXDECODE(st0016) |
460 | 460 | MCFG_PALETTE_LENGTH(16*16*4+1) |
r17967 | r17968 | |
---|---|---|
197 | 197 | DECLARE_WRITE8_MEMBER(sound_w); |
198 | 198 | virtual void video_start(); |
199 | 199 | virtual void palette_init(); |
200 | UINT32 screen_update_mpoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
200 | 201 | }; |
201 | 202 | |
202 | 203 | |
r17967 | r17968 | |
205 | 206 | |
206 | 207 | } |
207 | 208 | |
208 | static | |
209 | UINT32 mpoker_state::screen_update_mpoker(screen_device &screen, bitmap_ind | |
209 | 210 | { |
210 | mpoker_state *state = screen.machine().driver_data<mpoker_state>(); | |
211 | 211 | int y,x; |
212 | 212 | int count; |
213 | 213 | gfx_element *gfx = screen.machine().gfx[0]; |
r17967 | r17968 | |
217 | 217 | { |
218 | 218 | for (x=0;x<32;x++) |
219 | 219 | { |
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; | |
222 | 222 | drawgfx_opaque(bitmap,cliprect,gfx,dat,col,0,0,x*16,y*16); |
223 | 223 | count++; |
224 | 224 | } |
r17967 | r17968 | |
596 | 596 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
597 | 597 | MCFG_SCREEN_SIZE(512, 256) |
598 | 598 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) |
599 | MCFG_SCREEN_UPDATE_ | |
599 | MCFG_SCREEN_UPDATE_DR | |
600 | 600 | |
601 | 601 | MCFG_GFXDECODE(mpoker) |
602 | 602 | MCFG_PALETTE_LENGTH(0x200) |
r17967 | r17968 | |
---|---|---|
210 | 210 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
211 | 211 | MCFG_SCREEN_SIZE(32*8, 32*8) |
212 | 212 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
213 | MCFG_SCREEN_UPDATE_ | |
213 | MCFG_SCREEN_UPDATE_DR | |
214 | 214 | |
215 | 215 | MCFG_GFXDECODE(sbasketb) |
216 | 216 | MCFG_PALETTE_LENGTH(16*16+16*16*16) |
r17967 | r17968 | |
---|---|---|
53 | 53 | TILE_GET_INFO_MEMBER(get_skyarmy_tile_info); |
54 | 54 | virtual void video_start(); |
55 | 55 | virtual void palette_init(); |
56 | UINT32 screen_update_skyarmy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
56 | 57 | }; |
57 | 58 | |
58 | 59 | WRITE8_MEMBER(skyarmy_state::skyarmy_flip_screen_x_w) |
r17967 | r17968 | |
124 | 125 | } |
125 | 126 | |
126 | 127 | |
127 | stat | |
128 | UINT32 skyarmy_state::screen | |
128 | 129 | { |
129 | skyarmy_state *state = screen.machine().driver_data<skyarmy_state>(); | |
130 | UINT8 *spriteram = state->m_spriteram; | |
130 | UINT8 *spriteram = m_spriteram; | |
131 | 131 | int sx, sy, flipx, flipy, offs,pal; |
132 | 132 | int i; |
133 | 133 | |
134 | 134 | for(i=0;i<0x20;i++) |
135 | | |
135 | | |
136 | 136 | |
137 | | |
137 | | |
138 | 138 | |
139 | 139 | for (offs = 0 ; offs < 0x40; offs+=4) |
140 | 140 | { |
r17967 | r17968 | |
293 | 293 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
294 | 294 | MCFG_SCREEN_SIZE(32*8,32*8) |
295 | 295 | MCFG_SCREEN_VISIBLE_AREA(0*8,32*8-1,1*8,31*8-1) |
296 | MCFG_SCREEN_UPDATE_ | |
296 | MCFG_SCREEN_UPDATE_DR | |
297 | 297 | |
298 | 298 | MCFG_GFXDECODE(skyarmy) |
299 | 299 | MCFG_PALETTE_LENGTH(32) |
r17967 | r17968 | |
---|---|---|
286 | 286 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
287 | 287 | MCFG_SCREEN_SIZE(256, 256) |
288 | 288 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
289 | MCFG_SCREEN_UPDATE_ | |
289 | MCFG_SCREEN_UPDATE_DR | |
290 | 290 | |
291 | 291 | MCFG_GFXDECODE(ksayakyu) |
292 | 292 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
68 | 68 | TILE_GET_INFO_MEMBER(get_tile_info); |
69 | 69 | virtual void machine_reset(); |
70 | 70 | virtual void video_start(); |
71 | UINT32 screen_update_suprgolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
71 | 72 | }; |
72 | 73 | |
73 | 74 | TILE_GET_INFO_MEMBER(suprgolf_state::get_tile_info) |
r17967 | r17968 | |
94 | 95 | m_tilemap->set_transparent_pen(15); |
95 | 96 | } |
96 | 97 | |
97 | stat | |
98 | UINT32 suprgolf_state::screen | |
98 | 99 | { |
99 | suprgolf_state *state = screen.machine().driver_data<suprgolf_state>(); | |
100 | 100 | int x,y,count,color; |
101 | 101 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
102 | 102 | |
r17967 | r17968 | |
107 | 107 | { |
108 | 108 | for(x=0;x<512;x++) |
109 | 109 | { |
110 | color = | |
110 | color = | |
111 | 111 | |
112 | 112 | if(x <= cliprect.max_x && y <= cliprect.max_y) |
113 | 113 | bitmap.pix16(y, x) = screen.machine().pens[(color & 0x7ff)]; |
r17967 | r17968 | |
124 | 124 | { |
125 | 125 | for(x=0;x<512;x++) |
126 | 126 | { |
127 | color = | |
127 | color = | |
128 | 128 | |
129 | if((( | |
129 | if((( | |
130 | 130 | bitmap.pix16(y, x) = screen.machine().pens[(color & 0x7ff)]; |
131 | 131 | |
132 | 132 | count++; |
r17967 | r17968 | |
134 | 134 | } |
135 | 135 | } |
136 | 136 | |
137 | | |
137 | | |
138 | 138 | |
139 | 139 | return 0; |
140 | 140 | } |
r17967 | r17968 | |
528 | 528 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
529 | 529 | MCFG_SCREEN_SIZE(256, 256) |
530 | 530 | MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 191) |
531 | MCFG_SCREEN_UPDATE_ | |
531 | MCFG_SCREEN_UPDATE_DR | |
532 | 532 | |
533 | 533 | MCFG_GFXDECODE(suprgolf) |
534 | 534 | MCFG_PALETTE_LENGTH(0x800) |
r17967 | r17968 | |
---|---|---|
305 | 305 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) |
306 | 306 | MCFG_SCREEN_SIZE(32*8, 32*8) |
307 | 307 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 24*8-1) |
308 | MCFG_SCREEN_UPDATE_ | |
308 | MCFG_SCREEN_UPDATE_DR | |
309 | 309 | |
310 | 310 | MCFG_GFXDECODE(himesiki) |
311 | 311 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
259 | 259 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
260 | 260 | MCFG_SCREEN_SIZE(32*8, 32*8) |
261 | 261 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
262 | MCFG_SCREEN_UPDATE_ | |
262 | MCFG_SCREEN_UPDATE_DR | |
263 | 263 | |
264 | 264 | MCFG_GFXDECODE(battlex) |
265 | 265 | MCFG_PALETTE_LENGTH(64) |
r17967 | r17968 | |
---|---|---|
183 | 183 | DECLARE_MACHINE_START(skattv); |
184 | 184 | DECLARE_MACHINE_RESET(skattv); |
185 | 185 | DECLARE_PALETTE_INIT(adp); |
186 | UINT32 screen_update_adp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
186 | 187 | }; |
187 | 188 | |
188 | 189 | |
r17967 | r17968 | |
203 | 204 | |
204 | 205 | |
205 | 206 | #if 0 |
206 | static | |
207 | UINT32 adp_state::screen_update_adp(screen_device &screen, bitmap_ind | |
207 | 208 | { |
208 | adp_state *state = screen.machine().driver_data<adp_state>(); | |
209 | 209 | |
210 | | |
210 | | |
211 | 211 | |
212 | 212 | #if 0 |
213 | adp_state *state = screen.machine().driver_data<adp_state>(); | |
214 | 213 | int x, y, b, src; |
215 | 214 | |
216 | b = ((hd63484_regs_r( | |
215 | b = ((hd63484_regs_r( | |
217 | 216 | |
218 | 217 | for (y = 0;y < 280;y++) |
219 | 218 | { |
220 | for (x = 0 ; x < (hd63484_regs_r( | |
219 | for (x = 0 ; x < (hd63484_regs_r( | |
221 | 220 | { |
222 | 221 | b &= (HD63484_RAM_SIZE - 1); |
223 | src = hd63484_ram_r( | |
222 | src = hd63484_ram_r( | |
224 | 223 | bitmap.pix16(y, x ) = ((src & 0x000f) >> 0) << 0; |
225 | 224 | bitmap.pix16(y, x + 1) = ((src & 0x00f0) >> 4) << 0; |
226 | 225 | bitmap.pix16(y, x + 2) = ((src & 0x0f00) >> 8) << 0; |
r17967 | r17968 | |
229 | 228 | } |
230 | 229 | } |
231 | 230 | if (!screen.machine().input().code_pressed(KEYCODE_O)) // debug: toggle window |
232 | if ((hd63484_regs_r( | |
231 | if ((hd63484_regs_r( | |
233 | 232 | { |
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; | |
238 | 237 | if (sx < 0) sx = 0; // not sure about this (shangha2 title screen) |
239 | 238 | |
240 | b = (((hd63484_regs_r( | |
239 | b = (((hd63484_regs_r( | |
241 | 240 | |
242 | 241 | for (y = sy ; y <= sy + h && y < 280 ; y++) |
243 | 242 | { |
244 | for (x = 0 ; x < (hd63484_regs_r( | |
243 | for (x = 0 ; x < (hd63484_regs_r( | |
245 | 244 | { |
246 | 245 | b &= (HD63484_RAM_SIZE - 1); |
247 | src = hd63484_ram_r( | |
246 | src = hd63484_ram_r( | |
248 | 247 | |
249 | if (x <= w && x + sx >= 0 && x + sx < (hd63484_regs_r( | |
248 | if (x <= w && x + sx >= 0 && x + sx < (hd63484_regs_r( | |
250 | 249 | { |
251 | 250 | bitmap.pix16(y, x + sx ) = ((src & 0x000f) >> 0) << 0; |
252 | 251 | bitmap.pix16(y, x + sx + 1) = ((src & 0x00f0) >> 4) << 0; |
r17967 | r17968 | |
---|---|---|
124 | 124 | DECLARE_DRIVER_INIT(tetriskr); |
125 | 125 | DECLARE_DRIVER_INIT(filetto); |
126 | 126 | virtual void machine_reset(); |
127 | UINT32 screen_update_tetriskr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
127 | 128 | }; |
128 | 129 | |
129 | stat | |
130 | UINT32 pcxt_state::screen | |
130 | 131 | { |
131 | pcxt_state *state = screen.machine().driver_data<pcxt_state>(); | |
132 | 132 | int x,y; |
133 | 133 | int yi; |
134 | const UINT8 *bg_rom = | |
134 | const UINT8 *bg_rom = | |
135 | 135 | |
136 | 136 | //popmessage("%04x",m_start_offs); |
137 | 137 | |
r17967 | r17968 | |
151 | 151 | color = 0; |
152 | 152 | /* TODO: first byte seems bogus? */ |
153 | 153 | for(pen_i = 0;pen_i<4;pen_i++) |
154 | color |= ((bg_rom[y*320/8+x+(pen_i*0x20000)+yi*0x400+ | |
154 | color |= ((bg_rom[y*320/8+x+(pen_i*0x20000)+yi*0x400+ | |
155 | 155 | |
156 | 156 | if(cliprect.contains(x*8+xi, y*8+yi)) |
157 | 157 | bitmap.pix32(y*8+yi, x*8+xi) = screen.machine().pens[color]; |
r17967 | r17968 | |
766 | 766 | |
767 | 767 | MCFG_DEVICE_MODIFY("screen") |
768 | 768 | MCFG_VIDEO_START(pc_cga_superimpose) |
769 | MCFG_SCREEN_UPDATE_ | |
769 | MCFG_SCREEN_UPDATE_DR | |
770 | 770 | |
771 | 771 | MCFG_DEVICE_REMOVE("voice") |
772 | 772 | MACHINE_CONFIG_END |
r17967 | r17968 | |
---|---|---|
457 | 457 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
458 | 458 | MCFG_SCREEN_SIZE(320, 256) |
459 | 459 | 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) | |
462 | 462 | |
463 | 463 | MCFG_GFXDECODE(mcatadv) |
464 | 464 | MCFG_PALETTE_LENGTH(0x2000/2) |
r17967 | r17968 | |
---|---|---|
3045 | 3045 | MCFG_SCREEN_REFRESH_RATE(60) |
3046 | 3046 | MCFG_SCREEN_SIZE(432, 262) |
3047 | 3047 | 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) | |
3050 | 3050 | |
3051 | 3051 | MCFG_GFXDECODE(toaplan2) |
3052 | 3052 | MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) |
r17967 | r17968 | |
3086 | 3086 | MCFG_SCREEN_REFRESH_RATE(60) |
3087 | 3087 | MCFG_SCREEN_SIZE(432, 262) |
3088 | 3088 | 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) | |
3091 | 3091 | |
3092 | 3092 | MCFG_GFXDECODE(toaplan2) |
3093 | 3093 | MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) |
r17967 | r17968 | |
3176 | 3176 | MCFG_SCREEN_REFRESH_RATE( (double)(XTAL_27MHz / 4) / (432 * 263) ) /* 27MHz Oscillator */ |
3177 | 3177 | MCFG_SCREEN_SIZE(432, 262) |
3178 | 3178 | 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) | |
3181 | 3181 | |
3182 | 3182 | MCFG_GFXDECODE(t2dualvdp) |
3183 | 3183 | MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) |
r17967 | r17968 | |
3220 | 3220 | MCFG_SCREEN_REFRESH_RATE(60) |
3221 | 3221 | MCFG_SCREEN_SIZE(432, 262) |
3222 | 3222 | 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) | |
3225 | 3225 | |
3226 | 3226 | MCFG_GFXDECODE(toaplan2) |
3227 | 3227 | MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) |
r17967 | r17968 | |
3257 | 3257 | MCFG_SCREEN_REFRESH_RATE(60) |
3258 | 3258 | MCFG_SCREEN_SIZE(432, 262) |
3259 | 3259 | 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) | |
3262 | 3262 | |
3263 | 3263 | MCFG_GFXDECODE(toaplan2) |
3264 | 3264 | MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) |
r17967 | r17968 | |
3294 | 3294 | MCFG_SCREEN_REFRESH_RATE( (double)(XTAL_27MHz / 4) / (432 * 263) ) /* 27MHz Oscillator */ |
3295 | 3295 | MCFG_SCREEN_SIZE(432, 262) |
3296 | 3296 | 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) | |
3299 | 3299 | |
3300 | 3300 | MCFG_GFXDECODE(truxton2) |
3301 | 3301 | MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) |
r17967 | r17968 | |
3349 | 3349 | MCFG_SCREEN_REFRESH_RATE(60) |
3350 | 3350 | MCFG_SCREEN_SIZE(432, 262) |
3351 | 3351 | 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) | |
3354 | 3354 | |
3355 | 3355 | MCFG_GFXDECODE(toaplan2) |
3356 | 3356 | MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) |
r17967 | r17968 | |
3390 | 3390 | MCFG_SCREEN_REFRESH_RATE(60) |
3391 | 3391 | MCFG_SCREEN_SIZE(432, 262) |
3392 | 3392 | 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) | |
3395 | 3395 | |
3396 | 3396 | MCFG_GFXDECODE(toaplan2) |
3397 | 3397 | MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) |
r17967 | r17968 | |
3471 | 3471 | MCFG_SCREEN_REFRESH_RATE( (double)(XTAL_27MHz / 4) / (432 * 263) ) /* 27MHz Oscillator */ |
3472 | 3472 | MCFG_SCREEN_SIZE(432, 262) |
3473 | 3473 | 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) | |
3476 | 3476 | |
3477 | 3477 | MCFG_GFXDECODE(truxton2) |
3478 | 3478 | MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) |
r17967 | r17968 | |
3508 | 3508 | MCFG_SCREEN_REFRESH_RATE(60) |
3509 | 3509 | MCFG_SCREEN_SIZE(432, 262) |
3510 | 3510 | 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) | |
3513 | 3513 | |
3514 | 3514 | MCFG_GFXDECODE(fixeightbl) |
3515 | 3515 | MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) |
r17967 | r17968 | |
3548 | 3548 | MCFG_SCREEN_REFRESH_RATE( (double)(XTAL_27MHz / 4) / (432 * 263) ) /* verified on pcb */ |
3549 | 3549 | MCFG_SCREEN_SIZE(432, 262) |
3550 | 3550 | 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) | |
3553 | 3553 | |
3554 | 3554 | MCFG_GFXDECODE(toaplan2) |
3555 | 3555 | MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) |
r17967 | r17968 | |
3586 | 3586 | MCFG_SCREEN_REFRESH_RATE(60) |
3587 | 3587 | MCFG_SCREEN_SIZE(432, 262) |
3588 | 3588 | 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) | |
3591 | 3591 | |
3592 | 3592 | MCFG_GFXDECODE(t2dualvdp) |
3593 | 3593 | MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) |
r17967 | r17968 | |
3624 | 3624 | MCFG_SCREEN_REFRESH_RATE(60) |
3625 | 3625 | MCFG_SCREEN_SIZE(432, 262) |
3626 | 3626 | 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) | |
3629 | 3629 | |
3630 | 3630 | MCFG_GFXDECODE(toaplan2) |
3631 | 3631 | MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) |
r17967 | r17968 | |
3667 | 3667 | MCFG_SCREEN_REFRESH_RATE(60) |
3668 | 3668 | MCFG_SCREEN_SIZE(432, 262) |
3669 | 3669 | 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) | |
3672 | 3672 | |
3673 | 3673 | MCFG_GFXDECODE(raizing) |
3674 | 3674 | MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) |
r17967 | r17968 | |
3710 | 3710 | MCFG_SCREEN_REFRESH_RATE(60) |
3711 | 3711 | MCFG_SCREEN_SIZE(432, 262) |
3712 | 3712 | 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) | |
3715 | 3715 | |
3716 | 3716 | MCFG_GFXDECODE(raizing) |
3717 | 3717 | MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) |
r17967 | r17968 | |
3764 | 3764 | MCFG_SCREEN_REFRESH_RATE(60) |
3765 | 3765 | MCFG_SCREEN_SIZE(432, 262) |
3766 | 3766 | 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) | |
3769 | 3769 | |
3770 | 3770 | MCFG_GFXDECODE(raizing) |
3771 | 3771 | MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) |
r17967 | r17968 | |
3814 | 3814 | MCFG_SCREEN_REFRESH_RATE(60) |
3815 | 3815 | MCFG_SCREEN_SIZE(432, 262) |
3816 | 3816 | MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) |
3817 | MCFG_SCREEN_UPDATE_ | |
3817 | MCFG_SCREEN_UPDATE_DR | |
3818 | 3818 | |
3819 | 3819 | MCFG_GFXDECODE(batrider) |
3820 | 3820 | MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) |
r17967 | r17968 | |
3865 | 3865 | MCFG_SCREEN_REFRESH_RATE(60) |
3866 | 3866 | MCFG_SCREEN_SIZE(432, 262) |
3867 | 3867 | MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) |
3868 | MCFG_SCREEN_UPDATE_ | |
3868 | MCFG_SCREEN_UPDATE_DR | |
3869 | 3869 | |
3870 | 3870 | MCFG_GFXDECODE(batrider) |
3871 | 3871 | MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH) |
r17967 | r17968 | |
---|---|---|
999 | 999 | MCFG_SCREEN_REFRESH_RATE(MASTER_CLOCK/4/16/16/16/16/2) |
1000 | 1000 | MCFG_SCREEN_SIZE(1024, 768) |
1001 | 1001 | MCFG_SCREEN_VISIBLE_AREA(0, 1023, 0, 767) |
1002 | MCFG_SCREEN_UPDATE_ | |
1002 | MCFG_SCREEN_UPDATE_DR | |
1003 | 1003 | |
1004 | 1004 | MACHINE_CONFIG_END |
1005 | 1005 | |
r17967 | r17968 | |
1045 | 1045 | static MACHINE_CONFIG_DERIVED( spacewar, cinemat_nojmi_4k ) |
1046 | 1046 | MCFG_FRAGMENT_ADD(spacewar_sound) |
1047 | 1047 | MCFG_SCREEN_MODIFY("screen") |
1048 | MCFG_SCREEN_UPDATE_ | |
1048 | MCFG_SCREEN_UPDATE_DR | |
1049 | 1049 | MACHINE_CONFIG_END |
1050 | 1050 | |
1051 | 1051 |
r17967 | r17968 | |
---|---|---|
456 | 456 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
457 | 457 | MCFG_SCREEN_SIZE(64*8, 32*8) |
458 | 458 | MCFG_SCREEN_VISIBLE_AREA(3*8, 61*8-1, 2*8, 30*8-1) |
459 | MCFG_SCREEN_UPDATE_ | |
459 | MCFG_SCREEN_UPDATE_DR | |
460 | 460 | |
461 | 461 | MCFG_GFXDECODE(mjkjidai) |
462 | 462 | MCFG_PALETTE_LENGTH(0x100) |
r17967 | r17968 | |
---|---|---|
281 | 281 | |
282 | 282 | MCFG_SCREEN_ADD("screen", RASTER) |
283 | 283 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 396, 8, 248, 256, 16, 240) |
284 | MCFG_SCREEN_UPDATE_ | |
284 | MCFG_SCREEN_UPDATE_DR | |
285 | 285 | |
286 | 286 | |
287 | 287 | /* sound hardware */ |
r17967 | r17968 | |
---|---|---|
520 | 520 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
521 | 521 | MCFG_SCREEN_SIZE(32*16, 32*16) |
522 | 522 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1) |
523 | MCFG_SCREEN_UPDATE_ | |
523 | MCFG_SCREEN_UPDATE_DR | |
524 | 524 | |
525 | 525 | MCFG_GFXDECODE(0x100000) |
526 | 526 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
551 | 551 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
552 | 552 | MCFG_SCREEN_SIZE(32*16, 32*16) |
553 | 553 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1) |
554 | MCFG_SCREEN_UPDATE_ | |
554 | MCFG_SCREEN_UPDATE_DR | |
555 | 555 | |
556 | 556 | MCFG_GFXDECODE(0x100000) |
557 | 557 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
581 | 581 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
582 | 582 | MCFG_SCREEN_SIZE(32*16, 32*16) |
583 | 583 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1) |
584 | MCFG_SCREEN_UPDATE_ | |
584 | MCFG_SCREEN_UPDATE_DR | |
585 | 585 | |
586 | 586 | MCFG_GFXDECODE(0x100000) |
587 | 587 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
611 | 611 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
612 | 612 | MCFG_SCREEN_SIZE(32*16, 32*16) |
613 | 613 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1) |
614 | MCFG_SCREEN_UPDATE_ | |
614 | MCFG_SCREEN_UPDATE_DR | |
615 | 615 | |
616 | 616 | MCFG_GFXDECODE(0x100000) |
617 | 617 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
1074 | 1074 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1075 | 1075 | MCFG_SCREEN_SIZE(320 +16, 256) |
1076 | 1076 | MCFG_SCREEN_VISIBLE_AREA(0 +8, 320-1 +8, 0 +8, 224-1 +8) |
1077 | MCFG_SCREEN_UPDATE_ | |
1077 | MCFG_SCREEN_UPDATE_DR | |
1078 | 1078 | |
1079 | 1079 | MCFG_GFXDECODE(wecleman) |
1080 | 1080 | |
r17967 | r17968 | |
1158 | 1158 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1159 | 1159 | MCFG_SCREEN_SIZE(320 +16, 256) |
1160 | 1160 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) |
1161 | MCFG_SCREEN_UPDATE_ | |
1161 | MCFG_SCREEN_UPDATE_DR | |
1162 | 1162 | |
1163 | 1163 | MCFG_GFXDECODE(hotchase) |
1164 | 1164 | MCFG_PALETTE_LENGTH(2048*2) |
r17967 | r17968 | |
---|---|---|
80 | 80 | TILE_GET_INFO_MEMBER(get_dmndrby_tile_info); |
81 | 81 | virtual void video_start(); |
82 | 82 | virtual void palette_init(); |
83 | UINT32 screen_update_dderby(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
83 | 84 | }; |
84 | 85 | |
85 | 86 | |
r17967 | r17968 | |
345 | 346 | |
346 | 347 | } |
347 | 348 | |
348 | stat | |
349 | UINT32 dmndrby_state::screen | |
349 | 350 | { |
350 | dmndrby_state *state = screen.machine().driver_data<dmndrby_state>(); | |
351 | 351 | int x,y,count; |
352 | 352 | int off,scrolly; |
353 | 353 | gfx_element *gfx = screen.machine().gfx[0]; |
r17967 | r17968 | |
363 | 363 | can we draw it with the tilemap? maybe not, the layout is a litle strange |
364 | 364 | |
365 | 365 | */ |
366 | // base = | |
366 | // base = | |
367 | 367 | |
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; | |
371 | 371 | for(x=0;x<16;x++) { |
372 | 372 | 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; | |
376 | 376 | drawgfx_opaque(bitmap,cliprect,track,chr,col,flipx,0,y*16+scrolly,x*16); |
377 | 377 | // draw another bit of track |
378 | 378 | // 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; | |
382 | 382 | drawgfx_opaque(bitmap,cliprect,track,chr,col,flipx,0,y*16-256+scrolly,x*16); |
383 | 383 | off++; |
384 | 384 | } |
r17967 | r17968 | |
399 | 399 | int a=0; |
400 | 400 | int b=0; |
401 | 401 | 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 | |
408 | 408 | |
409 | 409 | for (a=0;a<8 ;a++) |
410 | 410 | { |
r17967 | r17968 | |
427 | 427 | for(x=0;x<32;x++) |
428 | 428 | { |
429 | 429 | 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; | |
432 | 432 | tileno|=(bank<<8); |
433 | color=(( | |
433 | color=(( | |
434 | 434 | |
435 | 435 | drawgfx_transpen(bitmap,cliprect,gfx,tileno,color,0,0,x*8,y*8,(tileno == 0x38) ? 0 : -1); |
436 | 436 | |
r17967 | r17968 | |
527 | 527 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
528 | 528 | MCFG_SCREEN_SIZE(256, 256) |
529 | 529 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1) |
530 | MCFG_SCREEN_UPDATE_ | |
530 | MCFG_SCREEN_UPDATE_DR | |
531 | 531 | |
532 | 532 | MCFG_GFXDECODE(dmndrby) |
533 | 533 | MCFG_PALETTE_LENGTH(0x300) |
r17967 | r17968 | |
---|---|---|
384 | 384 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
385 | 385 | MCFG_SCREEN_SIZE(32*8, 32*8) |
386 | 386 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) |
387 | MCFG_SCREEN_UPDATE_ | |
387 | MCFG_SCREEN_UPDATE_DR | |
388 | 388 | |
389 | 389 | /* audio hardware */ |
390 | 390 | MCFG_FRAGMENT_ADD(crbaloon_audio) |
r17967 | r17968 | |
---|---|---|
256 | 256 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
257 | 257 | MCFG_SCREEN_SIZE(64*8, 64*8) |
258 | 258 | MCFG_SCREEN_VISIBLE_AREA(0*8, 54*8-1, 0*8, 40*8-1) |
259 | MCFG_SCREEN_UPDATE_ | |
259 | MCFG_SCREEN_UPDATE_DR | |
260 | 260 | |
261 | 261 | MCFG_GFXDECODE(portrait) |
262 | 262 | MCFG_PALETTE_LENGTH(0x800) |
r17967 | r17968 | |
---|---|---|
343 | 343 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
344 | 344 | MCFG_SCREEN_SIZE(256+32+32, 256) |
345 | 345 | MCFG_SCREEN_VISIBLE_AREA(0, 255+32+32,0, 255-16) |
346 | MCFG_SCREEN_UPDATE_ | |
346 | MCFG_SCREEN_UPDATE_DR | |
347 | 347 | |
348 | 348 | MCFG_GFXDECODE(mnchmobl) |
349 | 349 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
305 | 305 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
306 | 306 | MCFG_SCREEN_SIZE(32*8, 32*8) |
307 | 307 | MCFG_SCREEN_VISIBLE_AREA(12, 32*8-8-1, 0*8, 28*8-1) |
308 | MCFG_SCREEN_UPDATE_ | |
308 | MCFG_SCREEN_UPDATE_DR | |
309 | 309 | |
310 | 310 | MCFG_GFXDECODE(funkybee) |
311 | 311 | MCFG_PALETTE_LENGTH(32) |
r17967 | r17968 | |
---|---|---|
516 | 516 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
517 | 517 | MCFG_SCREEN_SIZE(64*8, 32*8) |
518 | 518 | MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 ) |
519 | MCFG_SCREEN_UPDATE_ | |
519 | MCFG_SCREEN_UPDATE_DR | |
520 | 520 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) |
521 | 521 | |
522 | 522 | MCFG_BUFFERED_SPRITERAM16_ADD("spriteram") |
r17967 | r17968 | |
559 | 559 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
560 | 560 | MCFG_SCREEN_SIZE(64*8, 32*8) |
561 | 561 | MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 ) |
562 | MCFG_SCREEN_UPDATE_ | |
562 | MCFG_SCREEN_UPDATE_DR | |
563 | 563 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) |
564 | 564 | |
565 | 565 | MCFG_BUFFERED_SPRITERAM16_ADD("spriteram") |
r17967 | r17968 | |
---|---|---|
411 | 411 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
412 | 412 | MCFG_SCREEN_SIZE(64*8, 32*8) |
413 | 413 | MCFG_SCREEN_VISIBLE_AREA(8*8, 56*8-1, 2*8, 30*8-1) |
414 | MCFG_SCREEN_UPDATE_ | |
414 | MCFG_SCREEN_UPDATE_DR | |
415 | 415 | |
416 | 416 | MCFG_PALETTE_LENGTH(0x2000) |
417 | 417 |
r17967 | r17968 | |
---|---|---|
66 | 66 | DECLARE_READ8_MEMBER(kludge_r); |
67 | 67 | virtual void machine_reset(); |
68 | 68 | virtual void video_start(); |
69 | UINT32 screen_update_cmmb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
69 | 70 | }; |
70 | 71 | |
71 | 72 | |
r17967 | r17968 | |
74 | 75 | |
75 | 76 | } |
76 | 77 | |
77 | stat | |
78 | UINT32 cmmb_state::screen | |
78 | 79 | { |
79 | cmmb_state *state = screen.machine().driver_data<cmmb_state>(); | |
80 | UINT8 *videoram = state->m_videoram; | |
80 | UINT8 *videoram = m_videoram; | |
81 | 81 | gfx_element *gfx = screen.machine().gfx[0]; |
82 | 82 | int count = 0x00000; |
83 | 83 | |
r17967 | r17968 | |
325 | 325 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // unknown |
326 | 326 | MCFG_SCREEN_SIZE(32*8, 32*8) |
327 | 327 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) |
328 | MCFG_SCREEN_UPDATE_ | |
328 | MCFG_SCREEN_UPDATE_DR | |
329 | 329 | |
330 | 330 | MCFG_GFXDECODE(cmmb) |
331 | 331 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
---|---|---|
268 | 268 | /* video hardware */ |
269 | 269 | MCFG_SCREEN_ADD("screen", RASTER) |
270 | 270 | MCFG_SCREEN_RAW_PARAMS(STARFIRE_PIXEL_CLOCK, STARFIRE_HTOTAL, STARFIRE_HBEND, STARFIRE_HBSTART, STARFIRE_VTOTAL, STARFIRE_VBEND, STARFIRE_VBSTART) |
271 | MCFG_SCREEN_UPDATE_ | |
271 | MCFG_SCREEN_UPDATE_DR | |
272 | 272 | |
273 | 273 | |
274 | 274 | /* audio hardware */ |
r17967 | r17968 | |
---|---|---|
49 | 49 | virtual void machine_start(); |
50 | 50 | virtual void machine_reset(); |
51 | 51 | virtual void palette_init(); |
52 | UINT32 screen_update_boxer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
52 | 53 | }; |
53 | 54 | |
54 | 55 | /************************************* |
r17967 | r17968 | |
170 | 171 | } |
171 | 172 | |
172 | 173 | |
173 | static | |
174 | UINT32 boxer_state::screen_update_boxer(screen_device &screen, bitmap_ind | |
174 | 175 | { |
175 | boxer_state *state = screen.machine().driver_data<boxer_state>(); | |
176 | 176 | int i, j; |
177 | 177 | |
178 | 178 | bitmap.fill(1, cliprect); |
r17967 | r17968 | |
181 | 181 | { |
182 | 182 | for (j = 0; j < 32; j++) |
183 | 183 | { |
184 | UINT8 code = | |
184 | UINT8 code = | |
185 | 185 | |
186 | 186 | drawgfx_transpen(bitmap, cliprect, |
187 | 187 | screen.machine().gfx[2], |
r17967 | r17968 | |
455 | 455 | MCFG_SCREEN_REFRESH_RATE(60) |
456 | 456 | MCFG_SCREEN_SIZE(256, 262) |
457 | 457 | MCFG_SCREEN_VISIBLE_AREA(8, 247, 0, 239) |
458 | MCFG_SCREEN_UPDATE_ | |
458 | MCFG_SCREEN_UPDATE_DR | |
459 | 459 | |
460 | 460 | MCFG_GFXDECODE(boxer) |
461 | 461 | MCFG_PALETTE_LENGTH(4) |
r17967 | r17968 | |
---|---|---|
82 | 82 | DECLARE_WRITE8_MEMBER(ball_w); |
83 | 83 | virtual void video_start(); |
84 | 84 | virtual void palette_init(); |
85 | UINT32 screen_update_roul(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
85 | 86 | }; |
86 | 87 | |
87 | 88 | |
r17967 | r17968 | |
214 | 215 | m_videobuf = auto_alloc_array_clear(machine(), UINT8, VIDEOBUF_SIZE); |
215 | 216 | } |
216 | 217 | |
217 | static | |
218 | UINT32 roul_state::screen_update_roul(screen_device &screen, bitmap_ind | |
218 | 219 | { |
219 | roul_state *state = screen.machine().driver_data<roul_state>(); | |
220 | 220 | int i,j; |
221 | 221 | for (i = 0; i < 256; i++) |
222 | 222 | for (j = 0; j < 256; j++) |
223 | bitmap.pix16(j, i) = | |
223 | bitmap.pix16(j, i) = | |
224 | 224 | return 0; |
225 | 225 | } |
226 | 226 | |
r17967 | r17968 | |
294 | 294 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
295 | 295 | MCFG_SCREEN_SIZE(32*8, 32*8) |
296 | 296 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) |
297 | MCFG_SCREEN_UPDATE_ | |
297 | MCFG_SCREEN_UPDATE_DR | |
298 | 298 | |
299 | 299 | MCFG_PALETTE_LENGTH(0x100) |
300 | 300 |
r17967 | r17968 | |
---|---|---|
642 | 642 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
643 | 643 | MCFG_SCREEN_SIZE(32*8, 32*8) |
644 | 644 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
645 | MCFG_SCREEN_UPDATE_ | |
645 | MCFG_SCREEN_UPDATE_DR | |
646 | 646 | |
647 | 647 | MCFG_PALETTE_LENGTH(0x200) |
648 | 648 | MCFG_PALETTE_INIT(RRRR_GGGG_BBBB) |
r17967 | r17968 | |
687 | 687 | MCFG_I8255A_ADD( "ppi8255_1", ppi8255_1_intf ) |
688 | 688 | |
689 | 689 | MCFG_SCREEN_MODIFY("screen") |
690 | MCFG_SCREEN_UPDATE_ | |
690 | MCFG_SCREEN_UPDATE_DR | |
691 | 691 | MACHINE_CONFIG_END |
692 | 692 | |
693 | 693 | static MACHINE_CONFIG_DERIVED( gigas, base ) |
r17967 | r17968 | |
700 | 700 | MCFG_MACHINE_RESET_OVERRIDE(freekick_state,freekick) |
701 | 701 | |
702 | 702 | MCFG_SCREEN_MODIFY("screen") |
703 | MCFG_SCREEN_UPDATE_ | |
703 | MCFG_SCREEN_UPDATE_DR | |
704 | 704 | MACHINE_CONFIG_END |
705 | 705 | |
706 | 706 | static MACHINE_CONFIG_DERIVED( oigas, gigas ) |
r17967 | r17968 | |
---|---|---|
1584 | 1584 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1585 | 1585 | MCFG_SCREEN_SIZE(256, 256) |
1586 | 1586 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1) |
1587 | MCFG_SCREEN_UPDATE_ | |
1587 | MCFG_SCREEN_UPDATE_DR | |
1588 | 1588 | |
1589 | 1589 | MCFG_GFXDECODE(bigrun) |
1590 | 1590 | MCFG_PALETTE_LENGTH(16*16 * 3 + 64*16 * 2 + 64*16) /* scroll 0,1,2; road 0,1; sprites */ |
r17967 | r17968 | |
1626 | 1626 | /* video hardware */ |
1627 | 1627 | MCFG_SCREEN_MODIFY("screen") |
1628 | 1628 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-8-1) |
1629 | MCFG_SCREEN_UPDATE_ | |
1629 | MCFG_SCREEN_UPDATE_DR | |
1630 | 1630 | |
1631 | 1631 | MCFG_GFXDECODE(cischeat) |
1632 | 1632 | MCFG_PALETTE_LENGTH(32*16 * 3 + 64*16 * 2 + 128*16) /* scroll 0,1,2; road 0,1; sprites */ |
r17967 | r17968 | |
1659 | 1659 | |
1660 | 1660 | MCFG_VIDEO_START_OVERRIDE(cischeat_state,f1gpstar) |
1661 | 1661 | MCFG_SCREEN_MODIFY("screen") |
1662 | MCFG_SCREEN_UPDATE_ | |
1662 | MCFG_SCREEN_UPDATE_DR | |
1663 | 1663 | MACHINE_CONFIG_END |
1664 | 1664 | |
1665 | 1665 | |
r17967 | r17968 | |
1717 | 1717 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500 * 3) /* not accurate */) |
1718 | 1718 | MCFG_SCREEN_SIZE(256, 256) |
1719 | 1719 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0 +16, 256-1 -16) |
1720 | MCFG_SCREEN_UPDATE_ | |
1720 | MCFG_SCREEN_UPDATE_DR | |
1721 | 1721 | |
1722 | 1722 | MCFG_GFXDECODE(scudhamm) |
1723 | 1723 | MCFG_PALETTE_LENGTH(16*16+16*16+128*16) |
r17967 | r17968 | |
---|---|---|
365 | 365 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
366 | 366 | MCFG_SCREEN_SIZE(32*8, 32*8) |
367 | 367 | 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) | |
370 | 370 | |
371 | 371 | MCFG_GFXDECODE(redclash) |
372 | 372 | MCFG_PALETTE_LENGTH(4*8+4*16+32) |
r17967 | r17968 | |
393 | 393 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
394 | 394 | MCFG_SCREEN_SIZE(32*8, 32*8) |
395 | 395 | 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) | |
398 | 398 | |
399 | 399 | MCFG_GFXDECODE(redclash) |
400 | 400 | MCFG_PALETTE_LENGTH(4*8+4*16+32) |
r17967 | r17968 | |
---|---|---|
295 | 295 | |
296 | 296 | /* video hardware */ |
297 | 297 | MCFG_SCREEN_MODIFY("screen") |
298 | MCFG_SCREEN_UPDATE_ | |
298 | MCFG_SCREEN_UPDATE_DR | |
299 | 299 | |
300 | 300 | /* audio hardware */ |
301 | 301 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
383 | 383 | |
384 | 384 | /* video hardware */ |
385 | 385 | MCFG_SCREEN_MODIFY("screen") |
386 | MCFG_SCREEN_UPDATE_ | |
386 | MCFG_SCREEN_UPDATE_DR | |
387 | 387 | |
388 | 388 | MACHINE_CONFIG_END |
389 | 389 | |
r17967 | r17968 | |
486 | 486 | |
487 | 487 | /* video hardware */ |
488 | 488 | MCFG_SCREEN_MODIFY("screen") |
489 | MCFG_SCREEN_UPDATE_ | |
489 | MCFG_SCREEN_UPDATE_DR | |
490 | 490 | |
491 | 491 | /* audio hardware */ |
492 | 492 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
674 | 674 | |
675 | 675 | /* video hardware */ |
676 | 676 | MCFG_SCREEN_MODIFY("screen") |
677 | MCFG_SCREEN_UPDATE_ | |
677 | MCFG_SCREEN_UPDATE_DR | |
678 | 678 | |
679 | 679 | /* audio hardware */ |
680 | 680 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
686 | 686 | |
687 | 687 | /* video hardware */ |
688 | 688 | MCFG_SCREEN_MODIFY("screen") |
689 | MCFG_SCREEN_UPDATE_ | |
689 | MCFG_SCREEN_UPDATE_DR | |
690 | 690 | MACHINE_CONFIG_END |
691 | 691 | |
692 | 692 | |
r17967 | r17968 | |
700 | 700 | |
701 | 701 | /* video hardware */ |
702 | 702 | MCFG_SCREEN_MODIFY("screen") |
703 | MCFG_SCREEN_UPDATE_ | |
703 | MCFG_SCREEN_UPDATE_DR | |
704 | 704 | |
705 | 705 | MACHINE_CONFIG_END |
706 | 706 | |
r17967 | r17968 | |
894 | 894 | |
895 | 895 | /* video hardware */ |
896 | 896 | MCFG_SCREEN_MODIFY("screen") |
897 | MCFG_SCREEN_UPDATE_ | |
897 | MCFG_SCREEN_UPDATE_DR | |
898 | 898 | |
899 | 899 | /* audio hardware */ |
900 | 900 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
907 | 907 | /* basic machine hardware */ |
908 | 908 | /* video hardware */ |
909 | 909 | MCFG_SCREEN_MODIFY("screen") |
910 | MCFG_SCREEN_UPDATE_ | |
910 | MCFG_SCREEN_UPDATE_DR | |
911 | 911 | MACHINE_CONFIG_END |
912 | 912 | |
913 | 913 | |
r17967 | r17968 | |
920 | 920 | |
921 | 921 | /* video hardware */ |
922 | 922 | MCFG_SCREEN_MODIFY("screen") |
923 | MCFG_SCREEN_UPDATE_ | |
923 | MCFG_SCREEN_UPDATE_DR | |
924 | 924 | |
925 | 925 | MACHINE_CONFIG_END |
926 | 926 | |
r17967 | r17968 | |
1904 | 1904 | |
1905 | 1905 | /* video hardware */ |
1906 | 1906 | MCFG_SCREEN_MODIFY("screen") |
1907 | MCFG_SCREEN_UPDATE_ | |
1907 | MCFG_SCREEN_UPDATE_DR | |
1908 | 1908 | |
1909 | 1909 | MACHINE_CONFIG_END |
1910 | 1910 | |
r17967 | r17968 | |
2151 | 2151 | |
2152 | 2152 | /* video hardware */ |
2153 | 2153 | MCFG_SCREEN_MODIFY("screen") |
2154 | MCFG_SCREEN_UPDATE_ | |
2154 | MCFG_SCREEN_UPDATE_DR | |
2155 | 2155 | |
2156 | 2156 | MACHINE_CONFIG_END |
2157 | 2157 | |
r17967 | r17968 | |
2246 | 2246 | |
2247 | 2247 | /* video hardware */ |
2248 | 2248 | MCFG_SCREEN_MODIFY("screen") |
2249 | MCFG_SCREEN_UPDATE_ | |
2249 | MCFG_SCREEN_UPDATE_DR | |
2250 | 2250 | |
2251 | 2251 | MACHINE_CONFIG_END |
2252 | 2252 | |
r17967 | r17968 | |
2345 | 2345 | |
2346 | 2346 | /* video hardware */ |
2347 | 2347 | MCFG_SCREEN_MODIFY("screen") |
2348 | MCFG_SCREEN_UPDATE_ | |
2348 | MCFG_SCREEN_UPDATE_DR | |
2349 | 2349 | |
2350 | 2350 | /* audio hardware */ |
2351 | 2351 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
---|---|---|
210 | 210 | /* note: these parameters are from published specs, not derived */ |
211 | 211 | /* the board uses a SYNGEN chip to generate video signals */ |
212 | 212 | MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240) |
213 | MCFG_SCREEN_UPDATE_ | |
213 | MCFG_SCREEN_UPDATE_DR | |
214 | 214 | |
215 | 215 | MCFG_VIDEO_START_OVERRIDE(xybots_state,xybots) |
216 | 216 |
r17967 | r17968 | |
---|---|---|
133 | 133 | DECLARE_DRIVER_INIT(speglsht); |
134 | 134 | DECLARE_MACHINE_RESET(speglsht); |
135 | 135 | DECLARE_VIDEO_START(speglsht); |
136 | UINT32 screen_update_speglsht(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
136 | 137 | }; |
137 | 138 | |
138 | 139 | |
r17967 | r17968 | |
348 | 349 | bitmap.pix32(y, x) = (b) | ((g)<<8) | ((r)<<16); \ |
349 | 350 | } |
350 | 351 | |
351 | stat | |
352 | UINT32 speglsht_state::screen | |
352 | 353 | { |
353 | speglsht_state *state = screen.machine().driver_data<speglsht_state>(); | |
354 | 354 | int x,y,dy; |
355 | 355 | |
356 | dy=( | |
356 | dy=( | |
357 | 357 | |
358 | 358 | for(y=0;y<256;y++) |
359 | 359 | { |
360 | 360 | for(x=0;x<512;x++) |
361 | 361 | { |
362 | 362 | int tmp=dy+y*512+x; |
363 | PLOT_PIXEL_RGB(x-67,y-5,( | |
363 | PLOT_PIXEL_RGB(x-67,y-5,( | |
364 | 364 | } |
365 | 365 | } |
366 | 366 | |
367 | 367 | //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); | |
370 | 370 | |
371 | 371 | //copy temporary bitmap to rgb 32 bit bitmap |
372 | 372 | for(y=cliprect.min_y; y<cliprect.max_y;y++) |
373 | 373 | { |
374 | UINT16 *srcline = & | |
374 | UINT16 *srcline = & | |
375 | 375 | for(x=cliprect.min_x; x<cliprect.max_x;x++) |
376 | 376 | { |
377 | 377 | if(srcline[x]) |
r17967 | r17968 | |
407 | 407 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
408 | 408 | MCFG_SCREEN_SIZE(512, 512) |
409 | 409 | MCFG_SCREEN_VISIBLE_AREA(0, 319, 8, 239-8) |
410 | MCFG_SCREEN_UPDATE_ | |
410 | MCFG_SCREEN_UPDATE_DR | |
411 | 411 | |
412 | 412 | MCFG_GFXDECODE(speglsht) |
413 | 413 | MCFG_PALETTE_LENGTH(16*16*4+1) |
r17967 | r17968 | |
---|---|---|
1766 | 1766 | MCFG_SCREEN_REFRESH_RATE(60) |
1767 | 1767 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1768 | 1768 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1) |
1769 | MCFG_SCREEN_UPDATE_ | |
1769 | MCFG_SCREEN_UPDATE_DR | |
1770 | 1770 | |
1771 | 1771 | MCFG_GFXDECODE(centiped) |
1772 | 1772 | MCFG_PALETTE_LENGTH(4+4*4*4*4) |
r17967 | r17968 | |
1846 | 1846 | |
1847 | 1847 | MCFG_VIDEO_START_OVERRIDE(centiped_state,milliped) |
1848 | 1848 | MCFG_SCREEN_MODIFY("screen") |
1849 | MCFG_SCREEN_UPDATE_ | |
1849 | MCFG_SCREEN_UPDATE_DR | |
1850 | 1850 | |
1851 | 1851 | /* sound hardware */ |
1852 | 1852 | MCFG_POKEY_REPLACE("pokey", 12096000/8) |
r17967 | r17968 | |
1883 | 1883 | MCFG_PALETTE_INIT_OVERRIDE(centiped_state,warlords) |
1884 | 1884 | MCFG_VIDEO_START_OVERRIDE(centiped_state,warlords) |
1885 | 1885 | MCFG_SCREEN_MODIFY("screen") |
1886 | MCFG_SCREEN_UPDATE_ | |
1886 | MCFG_SCREEN_UPDATE_DR | |
1887 | 1887 | |
1888 | 1888 | /* sound hardware */ |
1889 | 1889 | MCFG_POKEY_REPLACE("pokey", 12096000/8) |
r17967 | r17968 | |
1898 | 1898 | MCFG_CPU_MODIFY("maincpu") |
1899 | 1899 | MCFG_CPU_PROGRAM_MAP(mazeinv_map) |
1900 | 1900 | MCFG_SCREEN_MODIFY("screen") |
1901 | MCFG_SCREEN_UPDATE_ | |
1901 | MCFG_SCREEN_UPDATE_DR | |
1902 | 1902 | MACHINE_CONFIG_END |
1903 | 1903 | |
1904 | 1904 | |
r17967 | r17968 | |
1916 | 1916 | MCFG_SCREEN_REFRESH_RATE(60) |
1917 | 1917 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1918 | 1918 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1) |
1919 | MCFG_SCREEN_UPDATE_ | |
1919 | MCFG_SCREEN_UPDATE_DR | |
1920 | 1920 | |
1921 | 1921 | MCFG_GFXDECODE(centiped) |
1922 | 1922 | MCFG_PALETTE_LENGTH(4+4*4*4*4) |
r17967 | r17968 | |
---|---|---|
438 | 438 | virtual void video_start(); |
439 | 439 | virtual void palette_init(); |
440 | 440 | DECLARE_VIDEO_START(7mezzo); |
441 | UINT32 screen_update_magicfly(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
441 | 442 | }; |
442 | 443 | |
443 | 444 | |
r17967 | r17968 | |
518 | 519 | 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); |
519 | 520 | } |
520 | 521 | |
521 | stat | |
522 | UINT32 magicfly_state::screen | |
522 | 523 | { |
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); | |
525 | 525 | return 0; |
526 | 526 | } |
527 | 527 | |
r17967 | r17968 | |
814 | 814 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
815 | 815 | MCFG_SCREEN_SIZE((39+1)*8, (31+1)*8) /* Taken from MC6845 init, registers 00 & 04. Normally programmed with (value-1). */ |
816 | 816 | 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_ | |
817 | MCFG_SCREEN_UPDATE_DR | |
818 | 818 | |
819 | 819 | MCFG_GFXDECODE(magicfly) |
820 | 820 | MCFG_PALETTE_LENGTH(32) |
r17967 | r17968 | |
---|---|---|
1014 | 1014 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1015 | 1015 | MCFG_SCREEN_SIZE(40*8, 32*8) |
1016 | 1016 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) |
1017 | MCFG_SCREEN_UPDATE_ | |
1017 | MCFG_SCREEN_UPDATE_DR | |
1018 | 1018 | |
1019 | 1019 | MCFG_GFXDECODE(wgp) |
1020 | 1020 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
---|---|---|
719 | 719 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
720 | 720 | MCFG_SCREEN_SIZE(512, 256) |
721 | 721 | MCFG_SCREEN_VISIBLE_AREA(15, 367-1, 8, 248-1) |
722 | MCFG_SCREEN_UPDATE_ | |
722 | MCFG_SCREEN_UPDATE_DR | |
723 | 723 | |
724 | 724 | MCFG_GFXDECODE(welltris) |
725 | 725 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
---|---|---|
270 | 270 | /* video hardware */ |
271 | 271 | MCFG_SCREEN_ADD("screen", RASTER) |
272 | 272 | MCFG_SCREEN_RAW_PARAMS(XTAL_12MHz/2, 384, 8, 248, 272, 8, 248) |
273 | MCFG_SCREEN_UPDATE_ | |
273 | MCFG_SCREEN_UPDATE_DR | |
274 | 274 | |
275 | 275 | MCFG_GFXDECODE(scregg) |
276 | 276 | MCFG_PALETTE_LENGTH(8) |
r17967 | r17968 | |
302 | 302 | /* video hardware */ |
303 | 303 | MCFG_SCREEN_ADD("screen", RASTER) |
304 | 304 | MCFG_SCREEN_RAW_PARAMS(XTAL_12MHz/2, 384, 8, 248, 272, 8, 248) |
305 | MCFG_SCREEN_UPDATE_ | |
305 | MCFG_SCREEN_UPDATE_DR | |
306 | 306 | |
307 | 307 | MCFG_GFXDECODE(scregg) |
308 | 308 | MCFG_PALETTE_LENGTH(8) |
r17967 | r17968 | |
---|---|---|
730 | 730 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
731 | 731 | MCFG_SCREEN_SIZE(64*16, 64*16) |
732 | 732 | MCFG_SCREEN_VISIBLE_AREA(0*16, 32*16-1, 3*16, 28*16-1) |
733 | MCFG_SCREEN_UPDATE_ | |
733 | MCFG_SCREEN_UPDATE_DR | |
734 | 734 | |
735 | 735 | MCFG_GFXDECODE(airsys) |
736 | 736 | MCFG_PALETTE_LENGTH(512*16+512*16) |
r17967 | r17968 | |
---|---|---|
398 | 398 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
399 | 399 | MCFG_SCREEN_SIZE(38*8, 32*8) |
400 | 400 | MCFG_SCREEN_VISIBLE_AREA(2*8, 34*8-1 + 2*8, 0*8, 28*8-1 + 0) |
401 | MCFG_SCREEN_UPDATE_ | |
401 | MCFG_SCREEN_UPDATE_DR | |
402 | 402 | |
403 | 403 | MCFG_SCREEN_ADD("3dleft", RASTER) |
404 | 404 | MCFG_SCREEN_REFRESH_RATE(60.606060) |
405 | 405 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
406 | 406 | MCFG_SCREEN_SIZE(38*8, 32*8) |
407 | 407 | MCFG_SCREEN_VISIBLE_AREA(2*8, 34*8-1 + 2*8, 0*8, 28*8-1 + 0) |
408 | MCFG_SCREEN_UPDATE_ | |
408 | MCFG_SCREEN_UPDATE_DR | |
409 | 409 | |
410 | 410 | MCFG_SCREEN_ADD("3dright", RASTER) |
411 | 411 | MCFG_SCREEN_REFRESH_RATE(60.606060) |
412 | 412 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
413 | 413 | MCFG_SCREEN_SIZE(38*8, 32*8) |
414 | 414 | 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) | |
417 | 417 | |
418 | 418 | |
419 | 419 |
r17967 | r17968 | |
---|---|---|
331 | 331 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
332 | 332 | MCFG_SCREEN_SIZE(64*8, 64*8) |
333 | 333 | MCFG_SCREEN_VISIBLE_AREA(2*8, 42*8-1, 2*8, 34*8-1) |
334 | MCFG_SCREEN_UPDATE_ | |
334 | MCFG_SCREEN_UPDATE_DR | |
335 | 335 | |
336 | 336 | MCFG_GFXDECODE(aquarium) |
337 | 337 | MCFG_PALETTE_LENGTH(0x1000/2) |
r17967 | r17968 | |
---|---|---|
159 | 159 | DECLARE_READ32_MEMBER(rso_r); |
160 | 160 | DECLARE_WRITE32_MEMBER(rso_w); |
161 | 161 | DECLARE_VIDEO_START(gal3); |
162 | UINT32 screen_update_gal3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
162 | 163 | }; |
163 | 164 | |
164 | 165 | |
r17967 | r17968 | |
193 | 194 | } |
194 | 195 | } /* update_palette */ |
195 | 196 | |
196 | stat | |
197 | UINT32 gal3_state::screen | |
197 | 198 | { |
198 | gal3_state *state = screen.machine().driver_data<gal3_state>(); | |
199 | 199 | int i; |
200 | 200 | char mst[18], slv[18]; |
201 | 201 | static int pivot = 15; |
r17967 | r17968 | |
208 | 208 | |
209 | 209 | for( pri=0; pri<pivot; pri++ ) |
210 | 210 | { |
211 | | |
211 | | |
212 | 212 | } |
213 | 213 | |
214 | 214 | /* CopyVisiblePolyFrameBuffer( bitmap, cliprect,0,0x7fbf ); |
215 | 215 | |
216 | 216 | for( pri=pivot; pri<15; pri++ ) |
217 | 217 | { |
218 | | |
218 | | |
219 | 219 | }*/ |
220 | 220 | |
221 | 221 | // CPU Diag LEDs |
222 | 222 | mst[17]='\0', slv[17]='\0'; |
223 | /// printf("mst=0x%x\tslv=0x%x\n", | |
223 | /// printf("mst=0x%x\tslv=0x%x\n", | |
224 | 224 | for(i=16;i<32;i++) |
225 | 225 | { |
226 | 226 | int t; |
r17967 | r17968 | |
230 | 230 | t=i+1; |
231 | 231 | mst[8]=' '; slv[8]=' '; |
232 | 232 | |
233 | if( | |
233 | if( | |
234 | 234 | mst[t-16]='*'; |
235 | 235 | else |
236 | 236 | mst[t-16]='O'; |
237 | 237 | |
238 | if( | |
238 | if( | |
239 | 239 | slv[t-16]='*'; |
240 | 240 | else |
241 | 241 | slv[t-16]='O'; |
r17967 | r17968 | |
658 | 658 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
659 | 659 | MCFG_SCREEN_SIZE(64*8, 64*8) |
660 | 660 | MCFG_SCREEN_VISIBLE_AREA(0*8, 512-1, 0*8, 512-1) |
661 | MCFG_SCREEN_UPDATE_ | |
661 | MCFG_SCREEN_UPDATE_DR | |
662 | 662 | |
663 | 663 | MCFG_SCREEN_ADD("rscreen", RASTER) |
664 | 664 | MCFG_SCREEN_REFRESH_RATE(60) |
665 | 665 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
666 | 666 | MCFG_SCREEN_SIZE(64*8, 64*8) |
667 | 667 | MCFG_SCREEN_VISIBLE_AREA(0*8, 512-1, 0*8, 512-1) |
668 | MCFG_SCREEN_UPDATE_ | |
668 | MCFG_SCREEN_UPDATE_DR | |
669 | 669 | |
670 | 670 | MCFG_GFXDECODE(namcos21) |
671 | 671 | MCFG_PALETTE_LENGTH(NAMCOS21_NUM_COLORS) |
r17967 | r17968 | |
---|---|---|
3433 | 3433 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3434 | 3434 | MCFG_SCREEN_SIZE(320, 224) |
3435 | 3435 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) |
3436 | MCFG_SCREEN_UPDATE_ | |
3436 | MCFG_SCREEN_UPDATE_DR | |
3437 | 3437 | |
3438 | 3438 | MCFG_GFXDECODE(i4220) |
3439 | 3439 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
3467 | 3467 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3468 | 3468 | MCFG_SCREEN_SIZE(320, 224) |
3469 | 3469 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) |
3470 | MCFG_SCREEN_UPDATE_ | |
3470 | MCFG_SCREEN_UPDATE_DR | |
3471 | 3471 | |
3472 | 3472 | MCFG_GFXDECODE(i4220) |
3473 | 3473 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
3501 | 3501 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3502 | 3502 | MCFG_SCREEN_SIZE(320, 224) |
3503 | 3503 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) |
3504 | MCFG_SCREEN_UPDATE_ | |
3504 | MCFG_SCREEN_UPDATE_DR | |
3505 | 3505 | |
3506 | 3506 | MCFG_GFXDECODE(i4220) |
3507 | 3507 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
3535 | 3535 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3536 | 3536 | MCFG_SCREEN_SIZE(320, 224) |
3537 | 3537 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) |
3538 | MCFG_SCREEN_UPDATE_ | |
3538 | MCFG_SCREEN_UPDATE_DR | |
3539 | 3539 | |
3540 | 3540 | MCFG_GFXDECODE(i4220) |
3541 | 3541 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
3569 | 3569 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3570 | 3570 | MCFG_SCREEN_SIZE(320, 224) |
3571 | 3571 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) |
3572 | MCFG_SCREEN_UPDATE_ | |
3572 | MCFG_SCREEN_UPDATE_DR | |
3573 | 3573 | |
3574 | 3574 | MCFG_GFXDECODE(i4220) |
3575 | 3575 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
3607 | 3607 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3608 | 3608 | MCFG_SCREEN_SIZE(320, 224) |
3609 | 3609 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) |
3610 | MCFG_SCREEN_UPDATE_ | |
3610 | MCFG_SCREEN_UPDATE_DR | |
3611 | 3611 | |
3612 | 3612 | MCFG_GFXDECODE(i4220) |
3613 | 3613 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
3650 | 3650 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3651 | 3651 | MCFG_SCREEN_SIZE(320, 224) |
3652 | 3652 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) |
3653 | MCFG_SCREEN_UPDATE_ | |
3653 | MCFG_SCREEN_UPDATE_DR | |
3654 | 3654 | |
3655 | 3655 | MCFG_GFXDECODE(i4100) |
3656 | 3656 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
3692 | 3692 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3693 | 3693 | MCFG_SCREEN_SIZE(320, 240) |
3694 | 3694 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) |
3695 | MCFG_SCREEN_UPDATE_ | |
3695 | MCFG_SCREEN_UPDATE_DR | |
3696 | 3696 | |
3697 | 3697 | MCFG_GFXDECODE(i4100) |
3698 | 3698 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
3734 | 3734 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3735 | 3735 | MCFG_SCREEN_SIZE(320, 240) |
3736 | 3736 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) |
3737 | MCFG_SCREEN_UPDATE_ | |
3737 | MCFG_SCREEN_UPDATE_DR | |
3738 | 3738 | |
3739 | 3739 | MCFG_GFXDECODE(i4220) |
3740 | 3740 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
3776 | 3776 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3777 | 3777 | MCFG_SCREEN_SIZE(360, 224) |
3778 | 3778 | MCFG_SCREEN_VISIBLE_AREA(0, 360-1, 0, 224-1) |
3779 | MCFG_SCREEN_UPDATE_ | |
3779 | MCFG_SCREEN_UPDATE_DR | |
3780 | 3780 | |
3781 | 3781 | MCFG_GFXDECODE(i4100) |
3782 | 3782 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
3817 | 3817 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3818 | 3818 | MCFG_SCREEN_SIZE(360, 224) |
3819 | 3819 | MCFG_SCREEN_VISIBLE_AREA(0, 360-1, 0, 224-1) |
3820 | MCFG_SCREEN_UPDATE_ | |
3820 | MCFG_SCREEN_UPDATE_DR | |
3821 | 3821 | |
3822 | 3822 | MCFG_GFXDECODE(i4100) |
3823 | 3823 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
3852 | 3852 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3853 | 3853 | MCFG_SCREEN_SIZE(320, 224) |
3854 | 3854 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) |
3855 | MCFG_SCREEN_UPDATE_ | |
3855 | MCFG_SCREEN_UPDATE_DR | |
3856 | 3856 | |
3857 | 3857 | MCFG_GFXDECODE(i4300) |
3858 | 3858 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
3888 | 3888 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3889 | 3889 | MCFG_SCREEN_SIZE(384, 224) |
3890 | 3890 | MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 224-1) |
3891 | MCFG_SCREEN_UPDATE_ | |
3891 | MCFG_SCREEN_UPDATE_DR | |
3892 | 3892 | |
3893 | 3893 | MCFG_GFXDECODE(i4300) |
3894 | 3894 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
3925 | 3925 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3926 | 3926 | MCFG_SCREEN_SIZE(320, 240) |
3927 | 3927 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) |
3928 | MCFG_SCREEN_UPDATE_ | |
3928 | MCFG_SCREEN_UPDATE_DR | |
3929 | 3929 | |
3930 | 3930 | MCFG_GFXDECODE(i4300) |
3931 | 3931 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
3962 | 3962 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3963 | 3963 | MCFG_SCREEN_SIZE(320, 240) |
3964 | 3964 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) |
3965 | MCFG_SCREEN_UPDATE_ | |
3965 | MCFG_SCREEN_UPDATE_DR | |
3966 | 3966 | |
3967 | 3967 | MCFG_GFXDECODE(i4300) |
3968 | 3968 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
4004 | 4004 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
4005 | 4005 | MCFG_SCREEN_SIZE(360, 224) |
4006 | 4006 | MCFG_SCREEN_VISIBLE_AREA(0, 360-1, 0, 224-1) |
4007 | MCFG_SCREEN_UPDATE_ | |
4007 | MCFG_SCREEN_UPDATE_DR | |
4008 | 4008 | |
4009 | 4009 | MCFG_GFXDECODE(i4100) |
4010 | 4010 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
4046 | 4046 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
4047 | 4047 | MCFG_SCREEN_SIZE(360, 224) |
4048 | 4048 | MCFG_SCREEN_VISIBLE_AREA(0, 360-1, 0, 224-1) |
4049 | MCFG_SCREEN_UPDATE_ | |
4049 | MCFG_SCREEN_UPDATE_DR | |
4050 | 4050 | |
4051 | 4051 | MCFG_GFXDECODE(i4100) |
4052 | 4052 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
4088 | 4088 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
4089 | 4089 | MCFG_SCREEN_SIZE(320, 224) |
4090 | 4090 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) |
4091 | MCFG_SCREEN_UPDATE_ | |
4091 | MCFG_SCREEN_UPDATE_DR | |
4092 | 4092 | |
4093 | 4093 | MCFG_GFXDECODE(i4100) |
4094 | 4094 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
4131 | 4131 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
4132 | 4132 | MCFG_SCREEN_SIZE(360, 224) |
4133 | 4133 | MCFG_SCREEN_VISIBLE_AREA(0, 360-1, 0, 224-1) |
4134 | MCFG_SCREEN_UPDATE_ | |
4134 | MCFG_SCREEN_UPDATE_DR | |
4135 | 4135 | |
4136 | 4136 | MCFG_GFXDECODE(i4100) |
4137 | 4137 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
4173 | 4173 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
4174 | 4174 | MCFG_SCREEN_SIZE(320, 224) |
4175 | 4175 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) |
4176 | MCFG_SCREEN_UPDATE_ | |
4176 | MCFG_SCREEN_UPDATE_DR | |
4177 | 4177 | |
4178 | 4178 | MCFG_GFXDECODE(i4100) |
4179 | 4179 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
4209 | 4209 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
4210 | 4210 | MCFG_SCREEN_SIZE(512, 256) |
4211 | 4211 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) |
4212 | MCFG_SCREEN_UPDATE_ | |
4212 | MCFG_SCREEN_UPDATE_DR | |
4213 | 4213 | |
4214 | 4214 | MCFG_GFXDECODE(i4300) |
4215 | 4215 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
4254 | 4254 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
4255 | 4255 | MCFG_SCREEN_SIZE(320, 224) |
4256 | 4256 | MCFG_SCREEN_VISIBLE_AREA(8, 320-8-1, 0, 224-1) |
4257 | MCFG_SCREEN_UPDATE_ | |
4257 | MCFG_SCREEN_UPDATE_DR | |
4258 | 4258 | |
4259 | 4259 | MCFG_GFXDECODE(blzntrnd) |
4260 | 4260 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
4302 | 4302 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
4303 | 4303 | MCFG_SCREEN_SIZE(320, 224) |
4304 | 4304 | MCFG_SCREEN_VISIBLE_AREA(8, 320-8-1, 0, 224-1) |
4305 | MCFG_SCREEN_UPDATE_ | |
4305 | MCFG_SCREEN_UPDATE_DR | |
4306 | 4306 | |
4307 | 4307 | MCFG_GFXDECODE(gstrik2) |
4308 | 4308 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
4340 | 4340 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
4341 | 4341 | MCFG_SCREEN_SIZE(320, 224) |
4342 | 4342 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) |
4343 | MCFG_SCREEN_UPDATE_ | |
4343 | MCFG_SCREEN_UPDATE_DR | |
4344 | 4344 | |
4345 | 4345 | MCFG_GFXDECODE(i4300) |
4346 | 4346 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
---|---|---|
617 | 617 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
618 | 618 | MCFG_SCREEN_SIZE(32*8, 32*8) |
619 | 619 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
620 | MCFG_SCREEN_UPDATE_ | |
620 | MCFG_SCREEN_UPDATE_DR | |
621 | 621 | |
622 | 622 | MCFG_GFXDECODE(angelkds) |
623 | 623 | MCFG_PALETTE_LENGTH(0x100) |
r17967 | r17968 | |
---|---|---|
302 | 302 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
303 | 303 | MCFG_SCREEN_SIZE(36*8, 28*8) |
304 | 304 | MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1) |
305 | MCFG_SCREEN_UPDATE_ | |
305 | MCFG_SCREEN_UPDATE_DR | |
306 | 306 | |
307 | 307 | MCFG_GFXDECODE(jrpacman) |
308 | 308 | MCFG_PALETTE_LENGTH(128*4) |
r17967 | r17968 | |
---|---|---|
80 | 80 | virtual void machine_reset(); |
81 | 81 | virtual void video_start(); |
82 | 82 | virtual void palette_init(); |
83 | UINT32 screen_update_nightgal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
83 | 84 | }; |
84 | 85 | |
85 | 86 | |
r17967 | r17968 | |
95 | 96 | save_item(NAME(m_blit_buffer)); |
96 | 97 | } |
97 | 98 | |
98 | stat | |
99 | UINT32 nightgal_state::screen | |
99 | 100 | { |
100 | nightgal_state *state = screen.machine().driver_data<nightgal_state>(); | |
101 | 101 | int x, y; |
102 | 102 | |
103 | 103 | for (y = cliprect.min_y; y <= cliprect.max_y; ++y) |
104 | 104 | { |
105 | UINT8 *src = & | |
105 | UINT8 *src = & | |
106 | 106 | UINT16 *dst = &bitmap.pix16(y, cliprect.min_x); |
107 | 107 | |
108 | 108 | for (x = cliprect.min_x; x <= cliprect.max_x; x += 2) |
r17967 | r17968 | |
883 | 883 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
884 | 884 | MCFG_SCREEN_SIZE(256, 256) |
885 | 885 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1) |
886 | MCFG_SCREEN_UPDATE_ | |
886 | MCFG_SCREEN_UPDATE_DR | |
887 | 887 | |
888 | 888 | MCFG_PALETTE_LENGTH(0x10) |
889 | 889 |
r17967 | r17968 | |
---|---|---|
241 | 241 | virtual void machine_start(); |
242 | 242 | virtual void machine_reset(); |
243 | 243 | 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); | |
244 | 246 | }; |
245 | 247 | |
246 | 248 | |
r17967 | r17968 | |
293 | 295 | } |
294 | 296 | |
295 | 297 | |
296 | stat | |
298 | UINT32 maygayv1_state::screen | |
297 | 299 | { |
298 | maygayv1_state *state = screen.machine().driver_data<maygayv1_state>(); | |
299 | i82716_t &i82716 = state->m_i82716; | |
300 | i82716_t &i82716 = m_i82716; | |
300 | 301 | UINT16 *atable = &i82716.dram[VREG(ATBA)]; |
301 | 302 | UINT16 *otable = &i82716.dram[VREG(ODTBA) & 0xfc00]; // both must be bank 0 |
302 | 303 | |
r17967 | r17968 | |
424 | 425 | return 0; |
425 | 426 | } |
426 | 427 | |
427 | stat | |
428 | void maygayv1_state::screen | |
428 | 429 | { |
429 | 430 | // rising edge |
430 | if ( | |
431 | if (st | |
431 | 432 | { |
432 | maygayv1_state *state = screen.machine().driver_data<maygayv1_state>(); | |
433 | i82716_t &i82716 = state->m_i82716; | |
433 | i82716_t &i82716 = m_i82716; | |
434 | 434 | // UCF |
435 | 435 | if (VREG(VCR0) & VCR0_UCF) |
436 | 436 | { |
r17967 | r17968 | |
1054 | 1054 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) |
1055 | 1055 | MCFG_SCREEN_SIZE(640, 300) |
1056 | 1056 | 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) | |
1059 | 1059 | |
1060 | 1060 | MCFG_PALETTE_LENGTH(16) |
1061 | 1061 |
r17967 | r17968 | |
---|---|---|
32 | 32 | UINT8 m_hbeat; |
33 | 33 | DECLARE_CUSTOM_INPUT_MEMBER(rgum_heartbeat_r); |
34 | 34 | virtual void video_start(); |
35 | UINT32 screen_update_royalgum(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
35 | 36 | }; |
36 | 37 | |
37 | 38 | |
r17967 | r17968 | |
39 | 40 | { |
40 | 41 | } |
41 | 42 | |
42 | stat | |
43 | UINT32 rgum_state::screen | |
43 | 44 | { |
44 | rgum_state *state = screen.machine().driver_data<rgum_state>(); | |
45 | 45 | int x,y,count; |
46 | 46 | gfx_element *gfx = screen.machine().gfx[0]; |
47 | 47 | |
r17967 | r17968 | |
51 | 51 | { |
52 | 52 | for(x=0;x<66;x++) |
53 | 53 | { |
54 | int tile = | |
54 | int tile = | |
55 | 55 | |
56 | 56 | drawgfx_opaque(bitmap,cliprect,gfx,tile,0,0,0,x*8,y*8); |
57 | 57 | |
r17967 | r17968 | |
276 | 276 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
277 | 277 | MCFG_SCREEN_SIZE(256, 256) |
278 | 278 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1) |
279 | MCFG_SCREEN_UPDATE_ | |
279 | MCFG_SCREEN_UPDATE_DR | |
280 | 280 | |
281 | 281 | MCFG_MC6845_ADD("crtc", MC6845, 24000000/16, mc6845_intf) /* unknown clock & type, hand tuned to get ~50 fps (?) */ |
282 | 282 |
r17967 | r17968 | |
---|---|---|
241 | 241 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
242 | 242 | MCFG_SCREEN_SIZE(64*8, 32*8) |
243 | 243 | MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) |
244 | MCFG_SCREEN_UPDATE_ | |
244 | MCFG_SCREEN_UPDATE_DR | |
245 | 245 | |
246 | 246 | MCFG_PALETTE_LENGTH(2048) |
247 | 247 |
r17967 | r17968 | |
---|---|---|
606 | 606 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
607 | 607 | MCFG_SCREEN_SIZE(32*8, 32*8) |
608 | 608 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
609 | MCFG_SCREEN_UPDATE_ | |
609 | MCFG_SCREEN_UPDATE_DR | |
610 | 610 | |
611 | 611 | MCFG_GFXDECODE(zaccaria) |
612 | 612 | MCFG_PALETTE_LENGTH(32*8+32*8) |
r17967 | r17968 | |
---|---|---|
238 | 238 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
239 | 239 | MCFG_SCREEN_SIZE(32*8, 32*8) |
240 | 240 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
241 | MCFG_SCREEN_UPDATE_ | |
241 | MCFG_SCREEN_UPDATE_DR | |
242 | 242 | |
243 | 243 | MCFG_GFXDECODE(speedbal) |
244 | 244 | MCFG_PALETTE_LENGTH(768) |
r17967 | r17968 | |
---|---|---|
58 | 58 | virtual void machine_reset(); |
59 | 59 | virtual void video_start(); |
60 | 60 | virtual void palette_init(); |
61 | UINT32 screen_update_jongkyo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
61 | 62 | }; |
62 | 63 | |
63 | 64 | |
r17967 | r17968 | |
72 | 73 | |
73 | 74 | } |
74 | 75 | |
75 | stat | |
76 | UINT32 jongkyo_state::screen | |
76 | 77 | { |
77 | jongkyo_state *state = screen.machine().driver_data<jongkyo_state>(); | |
78 | 78 | int y; |
79 | 79 | |
80 | 80 | for (y = 0; y < 256; ++y) |
r17967 | r17968 | |
88 | 88 | UINT8 data2; |
89 | 89 | UINT8 data3; |
90 | 90 | |
91 | // data3 = | |
91 | // data3 = | |
92 | 92 | |
93 | 93 | // good mahjong tiles |
94 | 94 | 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? |
r17967 | r17968 | |
97 | 97 | |
98 | 98 | |
99 | 99 | |
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]; | |
102 | 102 | |
103 | 103 | for (b = 0; b < 4; ++b) |
104 | 104 | { |
r17967 | r17968 | |
503 | 503 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
504 | 504 | MCFG_SCREEN_SIZE(256, 256) |
505 | 505 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 8, 256-8-1) |
506 | MCFG_SCREEN_UPDATE_ | |
506 | MCFG_SCREEN_UPDATE_DR | |
507 | 507 | |
508 | 508 | MCFG_PALETTE_LENGTH(0x100) |
509 | 509 |
r17967 | r17968 | |
---|---|---|
202 | 202 | // edfc / fffc alternating (display double buffering?) |
203 | 203 | } |
204 | 204 | virtual void video_start(); |
205 | UINT32 screen_update_littlerb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
205 | 206 | }; |
206 | 207 | |
207 | 208 | |
r17967 | r17968 | |
554 | 555 | |
555 | 556 | |
556 | 557 | /* sprite format / offset could be completely wrong, this is just based on our (currently incorrect) vram access */ |
557 | static | |
558 | UINT32 littlerb_state::screen_update_littlerb(screen_device &screen, bitmap_ind | |
558 | 559 | { |
559 | littlerb_state *state = screen.machine().driver_data<littlerb_state>(); | |
560 | 560 | bitmap.fill(0, cliprect); |
561 | 561 | |
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); | |
564 | 564 | |
565 | 565 | return 0; |
566 | 566 | } |
r17967 | r17968 | |
834 | 834 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) |
835 | 835 | MCFG_SCREEN_SIZE(512+22, 312) |
836 | 836 | MCFG_SCREEN_VISIBLE_AREA(0*8, 336-1, 0*8, 288-1) |
837 | MCFG_SCREEN_UPDATE_ | |
837 | MCFG_SCREEN_UPDATE_DR | |
838 | 838 | |
839 | 839 | |
840 | 840 | MCFG_PALETTE_LENGTH(0x100) |
r17967 | r17968 | |
---|---|---|
221 | 221 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(3072)) |
222 | 222 | MCFG_SCREEN_SIZE(32*8, 32*8) |
223 | 223 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
224 | MCFG_SCREEN_UPDATE_ | |
224 | MCFG_SCREEN_UPDATE_DR | |
225 | 225 | |
226 | 226 | MCFG_GFXDECODE(tagteam) |
227 | 227 | MCFG_PALETTE_LENGTH(32) |
r17967 | r17968 | |
---|---|---|
592 | 592 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) |
593 | 593 | MCFG_SCREEN_SIZE(512, 262) |
594 | 594 | MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) |
595 | MCFG_SCREEN_UPDATE_ | |
595 | MCFG_SCREEN_UPDATE_DR | |
596 | 596 | |
597 | 597 | MCFG_PALETTE_INIT(RRRRR_GGGGG_BBBBB) |
598 | 598 | MCFG_PALETTE_LENGTH(32768) |
r17967 | r17968 | |
---|---|---|
1434 | 1434 | DECLARE_MACHINE_START(s23); |
1435 | 1435 | DECLARE_VIDEO_START(ss23); |
1436 | 1436 | DECLARE_MACHINE_RESET(gmen); |
1437 | UINT32 screen_update_ss23(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
1437 | 1438 | }; |
1438 | 1439 | |
1439 | 1440 | |
r17967 | r17968 | |
2418 | 2419 | m_render.polymgr = poly_alloc(machine(), 10000, sizeof(namcos23_render_data), 0); |
2419 | 2420 | } |
2420 | 2421 | |
2421 | stat | |
2422 | UINT32 namcos23_state::screen | |
2422 | 2423 | { |
2423 | namcos23_state *state = screen.machine().driver_data<namcos23_state>(); | |
2424 | 2424 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
2425 | 2425 | |
2426 | 2426 | render_run( screen.machine(), bitmap ); |
r17967 | r17968 | |
2428 | 2428 | gfx_element *gfx = screen.machine().gfx[0]; |
2429 | 2429 | gfx->mark_all_dirty(); |
2430 | 2430 | |
2431 | | |
2431 | | |
2432 | 2432 | return 0; |
2433 | 2433 | } |
2434 | 2434 | |
r17967 | r17968 | |
3166 | 3166 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // Not in any way accurate |
3167 | 3167 | MCFG_SCREEN_SIZE(640, 480) |
3168 | 3168 | MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479) |
3169 | MCFG_SCREEN_UPDATE_ | |
3169 | MCFG_SCREEN_UPDATE_DR | |
3170 | 3170 | |
3171 | 3171 | MCFG_PALETTE_LENGTH(0x8000) |
3172 | 3172 | |
r17967 | r17968 | |
3211 | 3211 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // Not in any way accurate |
3212 | 3212 | MCFG_SCREEN_SIZE(640, 480) |
3213 | 3213 | MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479) |
3214 | MCFG_SCREEN_UPDATE_ | |
3214 | MCFG_SCREEN_UPDATE_DR | |
3215 | 3215 | |
3216 | 3216 | MCFG_PALETTE_LENGTH(0x8000) |
3217 | 3217 | |
r17967 | r17968 | |
3252 | 3252 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // Not in any way accurate |
3253 | 3253 | MCFG_SCREEN_SIZE(640, 480) |
3254 | 3254 | MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479) |
3255 | MCFG_SCREEN_UPDATE_ | |
3255 | MCFG_SCREEN_UPDATE_DR | |
3256 | 3256 | |
3257 | 3257 | MCFG_PALETTE_LENGTH(0x8000) |
3258 | 3258 |
r17967 | r17968 | |
---|---|---|
260 | 260 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
261 | 261 | MCFG_SCREEN_SIZE(32*8, 32*8) |
262 | 262 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
263 | MCFG_SCREEN_UPDATE_ | |
263 | MCFG_SCREEN_UPDATE_DR | |
264 | 264 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) |
265 | 265 | |
266 | 266 | MCFG_GFXDECODE(commando) |
r17967 | r17968 | |
---|---|---|
1279 | 1279 | |
1280 | 1280 | MCFG_SCREEN_ADD("screen", RASTER) |
1281 | 1281 | MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK/2, 640, 0, 512, 416, 0, 384) |
1282 | MCFG_SCREEN_UPDATE_ | |
1282 | MCFG_SCREEN_UPDATE_DR | |
1283 | 1283 | |
1284 | 1284 | MCFG_VIDEO_START_OVERRIDE(atarisy2_state,atarisy2) |
1285 | 1285 |
r17967 | r17968 | |
---|---|---|
388 | 388 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
389 | 389 | MCFG_SCREEN_SIZE(32*8, 32*8) |
390 | 390 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) |
391 | MCFG_SCREEN_UPDATE_ | |
391 | MCFG_SCREEN_UPDATE_DR | |
392 | 392 | |
393 | 393 | MCFG_GFXDECODE(skydiver) |
394 | 394 | MCFG_PALETTE_LENGTH(sizeof(colortable_source) / sizeof(colortable_source[0])) |
r17967 | r17968 | |
---|---|---|
951 | 951 | MCFG_SCREEN_REFRESH_RATE(59.61) /* verified on pcb */ |
952 | 952 | MCFG_SCREEN_SIZE(32*8, 32*8) |
953 | 953 | 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) | |
956 | 956 | |
957 | 957 | MCFG_GFXDECODE(ninjakd2) |
958 | 958 | MCFG_PALETTE_LENGTH(0x300) |
r17967 | r17968 | |
1021 | 1021 | |
1022 | 1022 | MCFG_VIDEO_START_OVERRIDE(ninjakd2_state,robokid) |
1023 | 1023 | MCFG_SCREEN_MODIFY("screen") |
1024 | MCFG_SCREEN_UPDATE_ | |
1024 | MCFG_SCREEN_UPDATE_DR | |
1025 | 1025 | MACHINE_CONFIG_END |
1026 | 1026 | |
1027 | 1027 | static MACHINE_CONFIG_DERIVED( omegaf, robokid ) |
r17967 | r17968 | |
1036 | 1036 | /* video hardware */ |
1037 | 1037 | MCFG_VIDEO_START_OVERRIDE(ninjakd2_state,omegaf) |
1038 | 1038 | MCFG_SCREEN_MODIFY("screen") |
1039 | MCFG_SCREEN_UPDATE_ | |
1039 | MCFG_SCREEN_UPDATE_DR | |
1040 | 1040 | MACHINE_CONFIG_END |
1041 | 1041 | |
1042 | 1042 |
r17967 | r17968 | |
---|---|---|
60 | 60 | virtual void machine_start(); |
61 | 61 | virtual void machine_reset(); |
62 | 62 | virtual void video_start(); |
63 | UINT32 screen_update_mjsister(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
63 | 64 | }; |
64 | 65 | |
65 | 66 | |
r17967 | r17968 | |
127 | 128 | } |
128 | 129 | } |
129 | 130 | |
130 | stat | |
131 | UINT32 mjsister_state::screen | |
131 | 132 | { |
132 | mjsister_state *state = screen.machine().driver_data<mjsister_state>(); | |
133 | int flip = state->m_flip_screen; | |
133 | int flip = m_flip_screen; | |
134 | 134 | int i, j; |
135 | 135 | |
136 | if ( | |
136 | if ( | |
137 | 137 | { |
138 | 138 | int offs; |
139 | 139 | |
140 | 140 | for (offs = 0; offs < 0x8000; offs++) |
141 | 141 | { |
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]); | |
144 | 144 | } |
145 | | |
145 | | |
146 | 146 | } |
147 | 147 | |
148 | if ( | |
148 | if ( | |
149 | 149 | { |
150 | 150 | for (i = 0; i < 256; i++) |
151 | 151 | for (j = 0; j < 4; j++) |
152 | bitmap.pix16(i, 256 + j) = | |
152 | bitmap.pix16(i, 256 + j) = | |
153 | 153 | |
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); | |
156 | 156 | } |
157 | 157 | else |
158 | 158 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
r17967 | r17968 | |
508 | 508 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
509 | 509 | MCFG_SCREEN_SIZE(256+4, 256) |
510 | 510 | MCFG_SCREEN_VISIBLE_AREA(0, 255+4, 8, 247) |
511 | MCFG_SCREEN_UPDATE_ | |
511 | MCFG_SCREEN_UPDATE_DR | |
512 | 512 | |
513 | 513 | MCFG_PALETTE_INIT(RRRR_GGGG_BBBB) |
514 | 514 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
515 | 515 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
516 | 516 | MCFG_SCREEN_SIZE(512, 256) |
517 | 517 | MCFG_SCREEN_VISIBLE_AREA(0+64, 512-64-1, 0+8, 256-8-1) |
518 | MCFG_SCREEN_UPDATE_ | |
518 | MCFG_SCREEN_UPDATE_DR | |
519 | 519 | |
520 | 520 | MCFG_GFXDECODE(yunsung8) |
521 | 521 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
---|---|---|
737 | 737 | /* video hardware */ |
738 | 738 | MCFG_SCREEN_ADD("screen", RASTER) |
739 | 739 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 272, 264, 0, 224) |
740 | MCFG_SCREEN_UPDATE_ | |
740 | MCFG_SCREEN_UPDATE_DR | |
741 | 741 | |
742 | 742 | MCFG_GFXDECODE(1k) |
743 | 743 | MCFG_PALETTE_LENGTH(4*2) |
r17967 | r17968 | |
772 | 772 | /* video hardware */ |
773 | 773 | MCFG_SCREEN_ADD("screen", RASTER) |
774 | 774 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 272, 264, 0, 224) |
775 | MCFG_SCREEN_UPDATE_ | |
775 | MCFG_SCREEN_UPDATE_DR | |
776 | 776 | |
777 | 777 | MCFG_GFXDECODE(color) |
778 | 778 | MCFG_PALETTE_LENGTH(2*256+1) |
r17967 | r17968 | |
---|---|---|
345 | 345 | |
346 | 346 | MCFG_SCREEN_ADD("screen", RASTER) |
347 | 347 | MCFG_SCREEN_RAW_PARAMS(SPACEFB_PIXEL_CLOCK, SPACEFB_HTOTAL, SPACEFB_HBEND, SPACEFB_HBSTART, SPACEFB_VTOTAL, SPACEFB_VBEND, SPACEFB_VBSTART) |
348 | MCFG_SCREEN_UPDATE_ | |
348 | MCFG_SCREEN_UPDATE_DR | |
349 | 349 | |
350 | 350 | /* audio hardware */ |
351 | 351 | MCFG_FRAGMENT_ADD(spacefb_audio) |
r17967 | r17968 | |
---|---|---|
405 | 405 | |
406 | 406 | MCFG_SCREEN_ADD("screen", RASTER) |
407 | 407 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 136, 376, 282, 22, 274) |
408 | MCFG_SCREEN_UPDATE_ | |
408 | MCFG_SCREEN_UPDATE_DR | |
409 | 409 | |
410 | 410 | |
411 | 411 | /* sound hardware */ |
r17967 | r17968 | |
---|---|---|
284 | 284 | virtual void machine_start(); |
285 | 285 | virtual void machine_reset(); |
286 | 286 | 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); | |
287 | 289 | }; |
288 | 290 | |
289 | 291 | |
r17967 | r17968 | |
574 | 576 | m_tmp_bitmap[1] = auto_bitmap_ind16_alloc(machine(), 512, 512); |
575 | 577 | } |
576 | 578 | |
577 | stat | |
579 | UINT32 wheelfir_state::screen | |
578 | 580 | { |
579 | wheelfir_state *state = screen.machine().driver_data<wheelfir_state>(); | |
580 | 581 | |
581 | 582 | bitmap.fill(0, cliprect); |
582 | 583 | |
583 | 584 | for(int y=0;y<NUM_SCANLINES;++y) |
584 | 585 | { |
585 | UINT16 *source = & | |
586 | UINT16 *source = & | |
586 | 587 | UINT16 *dest = &bitmap.pix16(y); |
587 | 588 | |
588 | 589 | for (int x=0;x<336;x++) |
589 | 590 | { |
590 | 591 | |
591 | dest[x] = source[ (x+( | |
592 | dest[x] = source[ (x+( | |
592 | 593 | |
593 | 594 | } |
594 | 595 | } |
595 | 596 | |
596 | copybitmap_trans(bitmap, * | |
597 | copybitmap_trans(bitmap, * | |
597 | 598 | |
598 | 599 | /* |
599 | 600 | { |
600 | | |
601 | | |
601 | 602 | |
602 | 603 | } |
603 | 604 | */ |
r17967 | r17968 | |
605 | 606 | return 0; |
606 | 607 | } |
607 | 608 | |
608 | stat | |
609 | void wheelfir_state::screen | |
609 | 610 | { |
610 | 611 | // rising edge |
611 | if ( | |
612 | if (st | |
612 | 613 | { |
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()); | |
615 | 615 | } |
616 | 616 | } |
617 | 617 | |
r17967 | r17968 | |
828 | 828 | MCFG_SCREEN_REFRESH_RATE(60) |
829 | 829 | MCFG_SCREEN_SIZE(336, NUM_SCANLINES+NUM_VBLANK_LINES) |
830 | 830 | 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) | |
833 | 833 | |
834 | 834 | MCFG_PALETTE_LENGTH(NUM_COLORS) |
835 | 835 |
r17967 | r17968 | |
---|---|---|
75 | 75 | TILE_GET_INFO_MEMBER(get_fg_tile_info); |
76 | 76 | virtual void machine_start(); |
77 | 77 | virtual void video_start(); |
78 | UINT32 screen_update_onetwo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
78 | 79 | }; |
79 | 80 | |
80 | 81 | |
r17967 | r17968 | |
100 | 101 | 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); |
101 | 102 | } |
102 | 103 | |
103 | static | |
104 | UINT32 onetwo_state::screen_update_onetwo(screen_device &screen, bitmap_ind | |
104 | 105 | { |
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); | |
107 | 107 | return 0; |
108 | 108 | } |
109 | 109 | |
r17967 | r17968 | |
375 | 375 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(16)) |
376 | 376 | MCFG_SCREEN_SIZE(512, 256) |
377 | 377 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) |
378 | MCFG_SCREEN_UPDATE_ | |
378 | MCFG_SCREEN_UPDATE_DR | |
379 | 379 | |
380 | 380 | MCFG_GFXDECODE(onetwo) |
381 | 381 | MCFG_PALETTE_LENGTH(0x80) |
r17967 | r17968 | |
---|---|---|
358 | 358 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
359 | 359 | MCFG_SCREEN_SIZE(32*8, 32*8) |
360 | 360 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
361 | MCFG_SCREEN_UPDATE_ | |
361 | MCFG_SCREEN_UPDATE_DR | |
362 | 362 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) |
363 | 363 | |
364 | 364 | MCFG_GFXDECODE(gng) |
r17967 | r17968 | |
---|---|---|
2612 | 2612 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2613 | 2613 | MCFG_SCREEN_SIZE(512, 256) |
2614 | 2614 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 8, 248-1) |
2615 | MCFG_SCREEN_UPDATE_ | |
2615 | MCFG_SCREEN_UPDATE_DR | |
2616 | 2616 | |
2617 | 2617 | MCFG_PALETTE_LENGTH(256) |
2618 | 2618 |
r17967 | r17968 | |
---|---|---|
30 | 30 | { |
31 | 31 | |
32 | 32 | } |
33 | UINT32 screen_update_mpu4plasma(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
33 | 34 | }; |
34 | 35 | |
35 | 36 | |
r17967 | r17968 | |
48 | 49 | AM_RANGE(0xffff04, 0xffff05) AM_WRITE( mpu4plasma_unk_w ) |
49 | 50 | ADDRESS_MAP_END |
50 | 51 | |
51 | ||
52 | ||
52 | 53 | { |
53 | 54 | // don't know if this really gets drawn straight from ram.. |
54 | mpu4plasma_state *state = screen.machine().driver_data<mpu4plasma_state>(); | |
55 | 55 | int base = 0x1600 / 2; |
56 | 56 | |
57 | UINT16* rambase = | |
57 | UINT16* rambase = | |
58 | 58 | UINT16* dst_bitmap; |
59 | 59 | |
60 | 60 | int i,y,x,p; |
r17967 | r17968 | |
94 | 94 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
95 | 95 | MCFG_SCREEN_SIZE(64*8, 32*8) |
96 | 96 | MCFG_SCREEN_VISIBLE_AREA(0, 128-1, 0*8, 40-1) |
97 | MCFG_SCREEN_UPDATE_ | |
97 | MCFG_SCREEN_UPDATE_DR | |
98 | 98 | |
99 | 99 | MCFG_PALETTE_LENGTH(0x200) |
100 | 100 | MACHINE_CONFIG_END |
r17967 | r17968 | |
---|---|---|
381 | 381 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
382 | 382 | MCFG_SCREEN_SIZE(32*8, 32*8) |
383 | 383 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
384 | MCFG_SCREEN_UPDATE_ | |
384 | MCFG_SCREEN_UPDATE_DR | |
385 | 385 | |
386 | 386 | MCFG_GFXDECODE(wc90b) |
387 | 387 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
288 | 288 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
289 | 289 | MCFG_SCREEN_SIZE(32*16, 32*16) |
290 | 290 | MCFG_SCREEN_VISIBLE_AREA(0*16, 32*16-1, 2*16, 30*16-1) |
291 | MCFG_SCREEN_UPDATE_ | |
291 | MCFG_SCREEN_UPDATE_DR | |
292 | 292 | |
293 | 293 | MCFG_GFXDECODE(holeland) |
294 | 294 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
358 | 358 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
359 | 359 | MCFG_SCREEN_SIZE(32*8, 32*8) |
360 | 360 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
361 | MCFG_SCREEN_UPDATE_ | |
361 | MCFG_SCREEN_UPDATE_DR | |
362 | 362 | |
363 | 363 | MCFG_GFXDECODE(crzrally) |
364 | 364 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
840 | 840 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 529ms Vblank duration?? */) |
841 | 841 | MCFG_SCREEN_SIZE(32*8, 32*8) |
842 | 842 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
843 | MCFG_SCREEN_UPDATE_ | |
843 | MCFG_SCREEN_UPDATE_DR | |
844 | 844 | |
845 | 845 | MCFG_GFXDECODE(liberate) |
846 | 846 | MCFG_PALETTE_LENGTH(33) |
r17967 | r17968 | |
870 | 870 | |
871 | 871 | MCFG_VIDEO_START_OVERRIDE(liberate_state,boomrang) |
872 | 872 | MCFG_SCREEN_MODIFY("screen") |
873 | MCFG_SCREEN_UPDATE_ | |
873 | MCFG_SCREEN_UPDATE_DR | |
874 | 874 | MACHINE_CONFIG_END |
875 | 875 | |
876 | 876 | static MACHINE_CONFIG_DERIVED( prosoccr, liberate ) |
r17967 | r17968 | |
889 | 889 | |
890 | 890 | MCFG_SCREEN_MODIFY("screen") |
891 | 891 | MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 0*8, 32*8-1) |
892 | MCFG_SCREEN_UPDATE_ | |
892 | MCFG_SCREEN_UPDATE_DR | |
893 | 893 | |
894 | 894 | MCFG_GFXDECODE(prosoccr) |
895 | 895 | |
r17967 | r17968 | |
919 | 919 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1529) /* 529ms Vblank duration?? */) |
920 | 920 | MCFG_SCREEN_SIZE(32*8, 32*8) |
921 | 921 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
922 | MCFG_SCREEN_UPDATE_ | |
922 | MCFG_SCREEN_UPDATE_DR | |
923 | 923 | |
924 | 924 | MCFG_GFXDECODE(prosport) |
925 | 925 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
314 | 314 | MCFG_GFXDECODE(gunsmoke) |
315 | 315 | MCFG_PALETTE_LENGTH(32*4+16*16+16*16) |
316 | 316 | |
317 | MCFG_SCREEN_UPDATE_ | |
317 | MCFG_SCREEN_UPDATE_DR | |
318 | 318 | |
319 | 319 | /* sound hardware */ |
320 | 320 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
---|---|---|
469 | 469 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
470 | 470 | MCFG_SCREEN_SIZE(256, 192) |
471 | 471 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 192-1) |
472 | MCFG_SCREEN_UPDATE_ | |
472 | MCFG_SCREEN_UPDATE_DR | |
473 | 473 | |
474 | 474 | MCFG_PALETTE_LENGTH(16) |
475 | 475 |
r17967 | r17968 | |
---|---|---|
1595 | 1595 | Sprites Buffering |
1596 | 1596 | |
1597 | 1597 | */ |
1598 | stat | |
1598 | void seta_state::screen | |
1599 | 1599 | { |
1600 | 1600 | // rising edge |
1601 | if ( | |
1601 | if (st | |
1602 | 1602 | { |
1603 | //seta_state *state = machine.driver_data<seta_state>(); | |
1604 | 1603 | screen.machine().device<seta001_device>("spritegen")->setac_eof(); |
1605 | 1604 | } |
1606 | 1605 | } |
r17967 | r17968 | |
7499 | 7498 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
7500 | 7499 | MCFG_SCREEN_SIZE(64*8, 32*8) |
7501 | 7500 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) |
7502 | MCFG_SCREEN_UPDATE_ | |
7501 | MCFG_SCREEN_UPDATE_DR | |
7503 | 7502 | |
7504 | 7503 | MCFG_GFXDECODE(tndrcade) |
7505 | 7504 | MCFG_PALETTE_LENGTH(512) /* sprites only */ |
r17967 | r17968 | |
7549 | 7548 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
7550 | 7549 | MCFG_SCREEN_SIZE(64*8, 32*8) |
7551 | 7550 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) |
7552 | MCFG_SCREEN_UPDATE_ | |
7551 | MCFG_SCREEN_UPDATE_DR | |
7553 | 7552 | |
7554 | 7553 | MCFG_GFXDECODE(downtown) |
7555 | 7554 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
7591 | 7590 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
7592 | 7591 | MCFG_SCREEN_SIZE(64*8, 32*8) |
7593 | 7592 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) |
7594 | MCFG_SCREEN_UPDATE_ | |
7593 | MCFG_SCREEN_UPDATE_DR | |
7595 | 7594 | |
7596 | 7595 | MCFG_GFXDECODE(downtown) |
7597 | 7596 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
7650 | 7649 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
7651 | 7650 | MCFG_SCREEN_SIZE(64*8, 33*8) |
7652 | 7651 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) |
7653 | MCFG_SCREEN_UPDATE_ | |
7652 | MCFG_SCREEN_UPDATE_DR | |
7654 | 7653 | |
7655 | 7654 | MCFG_GFXDECODE(usclssic) |
7656 | 7655 | MCFG_PALETTE_LENGTH(16*32 + 64*32*2) /* sprites, layer */ |
r17967 | r17968 | |
7699 | 7698 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
7700 | 7699 | MCFG_SCREEN_SIZE(64*8, 32*8) |
7701 | 7700 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) |
7702 | MCFG_SCREEN_UPDATE_ | |
7701 | MCFG_SCREEN_UPDATE_DR | |
7703 | 7702 | |
7704 | 7703 | MCFG_GFXDECODE(downtown) |
7705 | 7704 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
7739 | 7738 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
7740 | 7739 | MCFG_SCREEN_SIZE(64*8, 32*8) |
7741 | 7740 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) |
7742 | MCFG_SCREEN_UPDATE_ | |
7741 | MCFG_SCREEN_UPDATE_DR | |
7743 | 7742 | |
7744 | 7743 | MCFG_GFXDECODE(downtown) |
7745 | 7744 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
7775 | 7774 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
7776 | 7775 | MCFG_SCREEN_SIZE(64*8, 32*8) |
7777 | 7776 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) |
7778 | MCFG_SCREEN_UPDATE_ | |
7777 | MCFG_SCREEN_UPDATE_DR | |
7779 | 7778 | |
7780 | 7779 | MCFG_GFXDECODE(tndrcade) |
7781 | 7780 | MCFG_PALETTE_LENGTH(512) /* sprites only */ |
r17967 | r17968 | |
7817 | 7816 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
7818 | 7817 | MCFG_SCREEN_SIZE(64*8, 32*8) |
7819 | 7818 | 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) | |
7822 | 7821 | |
7823 | 7822 | MCFG_GFXDECODE(blandia) |
7824 | 7823 | MCFG_PALETTE_LENGTH((16*32+64*32*4)*2) /* sprites, layer1, layer2, palette effect */ |
r17967 | r17968 | |
7850 | 7849 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
7851 | 7850 | MCFG_SCREEN_SIZE(64*8, 32*8) |
7852 | 7851 | 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) | |
7855 | 7854 | |
7856 | 7855 | MCFG_GFXDECODE(blandia) |
7857 | 7856 | MCFG_PALETTE_LENGTH((16*32+64*32*4)*2) /* sprites, layer1, layer2, palette effect */ |
r17967 | r17968 | |
7888 | 7887 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
7889 | 7888 | MCFG_SCREEN_SIZE(64*8, 32*8) |
7890 | 7889 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) |
7891 | MCFG_SCREEN_UPDATE_ | |
7890 | MCFG_SCREEN_UPDATE_DR | |
7892 | 7891 | |
7893 | 7892 | MCFG_GFXDECODE(tndrcade) |
7894 | 7893 | MCFG_PALETTE_LENGTH(512) /* sprites only */ |
r17967 | r17968 | |
7924 | 7923 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
7925 | 7924 | MCFG_SCREEN_SIZE(64*8, 32*8) |
7926 | 7925 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) |
7927 | MCFG_SCREEN_UPDATE_ | |
7926 | MCFG_SCREEN_UPDATE_DR | |
7928 | 7927 | |
7929 | 7928 | MCFG_GFXDECODE(msgundam) |
7930 | 7929 | MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer1, layer2 */ |
r17967 | r17968 | |
7965 | 7964 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
7966 | 7965 | MCFG_SCREEN_SIZE(64*8, 32*8) |
7967 | 7966 | 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) | |
7970 | 7969 | |
7971 | 7970 | MCFG_GFXDECODE(downtown) |
7972 | 7971 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
8000 | 7999 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
8001 | 8000 | MCFG_SCREEN_SIZE(64*8, 32*8) |
8002 | 8001 | 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) | |
8005 | 8004 | |
8006 | 8005 | MCFG_GFXDECODE(qzkklgy2) |
8007 | 8006 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
8051 | 8050 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
8052 | 8051 | MCFG_SCREEN_SIZE(64*8, 32*8) |
8053 | 8052 | 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) | |
8056 | 8055 | |
8057 | 8056 | MCFG_GFXDECODE(setaroul) |
8058 | 8057 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
8089 | 8088 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
8090 | 8089 | MCFG_SCREEN_SIZE(64*8, 32*8) |
8091 | 8090 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) |
8092 | MCFG_SCREEN_UPDATE_ | |
8091 | MCFG_SCREEN_UPDATE_DR | |
8093 | 8092 | |
8094 | 8093 | MCFG_GFXDECODE(msgundam) |
8095 | 8094 | MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer1, layer2 */ |
r17967 | r17968 | |
8130 | 8129 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
8131 | 8130 | MCFG_SCREEN_SIZE(64*8, 32*8) |
8132 | 8131 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
8133 | MCFG_SCREEN_UPDATE_ | |
8132 | MCFG_SCREEN_UPDATE_DR | |
8134 | 8133 | |
8135 | 8134 | MCFG_GFXDECODE(zingzip) |
8136 | 8135 | MCFG_PALETTE_LENGTH(16*32+16*32+64*32*2) /* sprites, layer2, layer1 */ |
r17967 | r17968 | |
8191 | 8190 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
8192 | 8191 | MCFG_SCREEN_SIZE(64*8, 32*8) |
8193 | 8192 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) |
8194 | MCFG_SCREEN_UPDATE_ | |
8193 | MCFG_SCREEN_UPDATE_DR | |
8195 | 8194 | |
8196 | 8195 | MCFG_GFXDECODE(jjsquawk) |
8197 | 8196 | MCFG_PALETTE_LENGTH(16*32+64*32*4) /* sprites, layer2, layer1 */ |
r17967 | r17968 | |
8232 | 8231 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
8233 | 8232 | MCFG_SCREEN_SIZE(64*8, 32*8) |
8234 | 8233 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) |
8235 | MCFG_SCREEN_UPDATE_ | |
8234 | MCFG_SCREEN_UPDATE_DR | |
8236 | 8235 | |
8237 | 8236 | MCFG_GFXDECODE(jjsquawk) |
8238 | 8237 | MCFG_PALETTE_LENGTH(16*32+64*32*4) /* sprites, layer2, layer1 */ |
r17967 | r17968 | |
8264 | 8263 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
8265 | 8264 | MCFG_SCREEN_SIZE(64*8, 32*8) |
8266 | 8265 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) |
8267 | MCFG_SCREEN_UPDATE_ | |
8266 | MCFG_SCREEN_UPDATE_DR | |
8268 | 8267 | |
8269 | 8268 | MCFG_GFXDECODE(jjsquawk) |
8270 | 8269 | MCFG_PALETTE_LENGTH(16*32+64*32*4) /* sprites, layer2, layer1 */ |
r17967 | r17968 | |
8305 | 8304 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
8306 | 8305 | MCFG_SCREEN_SIZE(64*8, 32*8) |
8307 | 8306 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) |
8308 | MCFG_SCREEN_UPDATE_ | |
8307 | MCFG_SCREEN_UPDATE_DR | |
8309 | 8308 | |
8310 | 8309 | MCFG_GFXDECODE(msgundam) |
8311 | 8310 | MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer2, layer1 */ |
r17967 | r17968 | |
8342 | 8341 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
8343 | 8342 | MCFG_SCREEN_SIZE(64*8, 32*8) |
8344 | 8343 | MCFG_SCREEN_VISIBLE_AREA(1*8, 39*8-1, 1*8, 31*8-1) |
8345 | MCFG_SCREEN_UPDATE_ | |
8344 | MCFG_SCREEN_UPDATE_DR | |
8346 | 8345 | |
8347 | 8346 | MCFG_GFXDECODE(orbs) |
8348 | 8347 | MCFG_PALETTE_LENGTH(512) /* sprites only */ |
r17967 | r17968 | |
8380 | 8379 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
8381 | 8380 | MCFG_SCREEN_SIZE(64*8, 32*8) |
8382 | 8381 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
8383 | MCFG_SCREEN_UPDATE_ | |
8382 | MCFG_SCREEN_UPDATE_DR | |
8384 | 8383 | |
8385 | 8384 | MCFG_GFXDECODE(orbs) |
8386 | 8385 | MCFG_PALETTE_LENGTH(512) /* sprites only */ |
r17967 | r17968 | |
8416 | 8415 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
8417 | 8416 | MCFG_SCREEN_SIZE(64*8, 32*8) |
8418 | 8417 | MCFG_SCREEN_VISIBLE_AREA(1*8, 39*8-1, 1*8, 31*8-1) |
8419 | MCFG_SCREEN_UPDATE_ | |
8418 | MCFG_SCREEN_UPDATE_DR | |
8420 | 8419 | |
8421 | 8420 | MCFG_GFXDECODE(tndrcade) |
8422 | 8421 | MCFG_PALETTE_LENGTH(512) /* sprites only */ |
r17967 | r17968 | |
8457 | 8456 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
8458 | 8457 | MCFG_SCREEN_SIZE(64*8, 32*8) |
8459 | 8458 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) |
8460 | MCFG_SCREEN_UPDATE_ | |
8459 | MCFG_SCREEN_UPDATE_DR | |
8461 | 8460 | |
8462 | 8461 | MCFG_GFXDECODE(jjsquawk) |
8463 | 8462 | MCFG_PALETTE_LENGTH(16*32+64*32*4) /* sprites, layer2, layer1 */ |
r17967 | r17968 | |
8499 | 8498 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
8500 | 8499 | MCFG_SCREEN_SIZE(64*8, 32*8) |
8501 | 8500 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) |
8502 | MCFG_SCREEN_UPDATE_ | |
8501 | MCFG_SCREEN_UPDATE_DR | |
8503 | 8502 | |
8504 | 8503 | MCFG_GFXDECODE(msgundam) |
8505 | 8504 | MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer2, layer1 */ |
r17967 | r17968 | |
8545 | 8544 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
8546 | 8545 | MCFG_SCREEN_SIZE(64*8, 32*8) |
8547 | 8546 | 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) | |
8550 | 8549 | |
8551 | 8550 | MCFG_GFXDECODE(msgundam) |
8552 | 8551 | MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer2, layer1 */ |
r17967 | r17968 | |
8583 | 8582 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
8584 | 8583 | MCFG_SCREEN_SIZE(64*8, 32*8) |
8585 | 8584 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) |
8586 | MCFG_SCREEN_UPDATE_ | |
8585 | MCFG_SCREEN_UPDATE_DR | |
8587 | 8586 | |
8588 | 8587 | MCFG_GFXDECODE(msgundam) |
8589 | 8588 | MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer2, layer1 */ |
r17967 | r17968 | |
8620 | 8619 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
8621 | 8620 | MCFG_SCREEN_SIZE(64*8, 32*8) |
8622 | 8621 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) |
8623 | MCFG_SCREEN_UPDATE_ | |
8622 | MCFG_SCREEN_UPDATE_DR | |
8624 | 8623 | |
8625 | 8624 | MCFG_GFXDECODE(msgundam) |
8626 | 8625 | MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer2, layer1 */ |
r17967 | r17968 | |
8655 | 8654 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
8656 | 8655 | MCFG_SCREEN_SIZE(64*8, 32*8) |
8657 | 8656 | MCFG_SCREEN_VISIBLE_AREA(0*8, 56*8-1, 1*8, 31*8-1) |
8658 | MCFG_SCREEN_UPDATE_ | |
8657 | MCFG_SCREEN_UPDATE_DR | |
8659 | 8658 | |
8660 | 8659 | MCFG_GFXDECODE(tndrcade) |
8661 | 8660 | MCFG_PALETTE_LENGTH(512) /* sprites only */ |
r17967 | r17968 | |
8694 | 8693 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
8695 | 8694 | MCFG_SCREEN_SIZE(64*8, 32*8) |
8696 | 8695 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) |
8697 | MCFG_SCREEN_UPDATE_ | |
8696 | MCFG_SCREEN_UPDATE_DR | |
8698 | 8697 | |
8699 | 8698 | MCFG_GFXDECODE(msgundam) |
8700 | 8699 | MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer1, layer2 */ |
r17967 | r17968 | |
8733 | 8732 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
8734 | 8733 | MCFG_SCREEN_SIZE(64*8, 32*8) |
8735 | 8734 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) |
8736 | MCFG_SCREEN_UPDATE_ | |
8735 | MCFG_SCREEN_UPDATE_DR | |
8737 | 8736 | |
8738 | 8737 | MCFG_GFXDECODE(tndrcade) |
8739 | 8738 | MCFG_PALETTE_LENGTH(512) /* sprites only */ |
r17967 | r17968 | |
8804 | 8803 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
8805 | 8804 | MCFG_SCREEN_SIZE(64*8, 32*8) |
8806 | 8805 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) |
8807 | MCFG_SCREEN_UPDATE_ | |
8806 | MCFG_SCREEN_UPDATE_DR | |
8808 | 8807 | |
8809 | 8808 | MCFG_GFXDECODE(wiggie) |
8810 | 8809 | MCFG_PALETTE_LENGTH(512) /* sprites only */ |
r17967 | r17968 | |
8838 | 8837 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
8839 | 8838 | MCFG_SCREEN_SIZE(64*8, 32*8) |
8840 | 8839 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) |
8841 | MCFG_SCREEN_UPDATE_ | |
8840 | MCFG_SCREEN_UPDATE_DR | |
8842 | 8841 | |
8843 | 8842 | MCFG_GFXDECODE(tndrcade) |
8844 | 8843 | MCFG_PALETTE_LENGTH(512) /* sprites only */ |
r17967 | r17968 | |
8874 | 8873 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
8875 | 8874 | MCFG_SCREEN_SIZE(64*8, 32*8) |
8876 | 8875 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) |
8877 | MCFG_SCREEN_UPDATE_ | |
8876 | MCFG_SCREEN_UPDATE_DR | |
8878 | 8877 | |
8879 | 8878 | MCFG_GFXDECODE(tndrcade) |
8880 | 8879 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
8914 | 8913 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
8915 | 8914 | MCFG_SCREEN_SIZE(64*8, 32*8) |
8916 | 8915 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) |
8917 | MCFG_SCREEN_UPDATE_ | |
8916 | MCFG_SCREEN_UPDATE_DR | |
8918 | 8917 | |
8919 | 8918 | MCFG_GFXDECODE(msgundam) |
8920 | 8919 | MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer2, layer1 */ |
r17967 | r17968 | |
8963 | 8962 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
8964 | 8963 | MCFG_SCREEN_SIZE(64*8, 32*8) |
8965 | 8964 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) |
8966 | MCFG_SCREEN_UPDATE_ | |
8965 | MCFG_SCREEN_UPDATE_DR | |
8967 | 8966 | |
8968 | 8967 | MCFG_GFXDECODE(msgundam) |
8969 | 8968 | MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer1, layer2 */ |
r17967 | r17968 | |
9006 | 9005 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
9007 | 9006 | MCFG_SCREEN_SIZE(64*8, 32*8) |
9008 | 9007 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) |
9009 | MCFG_SCREEN_UPDATE_ | |
9008 | MCFG_SCREEN_UPDATE_DR | |
9010 | 9009 | |
9011 | 9010 | MCFG_GFXDECODE(zingzip) |
9012 | 9011 | MCFG_PALETTE_LENGTH(16*32+16*32+64*32*2) /* sprites, layer2, layer1 */ |
r17967 | r17968 | |
9059 | 9058 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
9060 | 9059 | MCFG_SCREEN_SIZE(64*8, 32*8) |
9061 | 9060 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) |
9062 | MCFG_SCREEN_UPDATE_ | |
9061 | MCFG_SCREEN_UPDATE_DR | |
9063 | 9062 | |
9064 | 9063 | MCFG_GFXDECODE(tndrcade) |
9065 | 9064 | MCFG_PALETTE_LENGTH(2048) /* sprites only */ |
r17967 | r17968 | |
9107 | 9106 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
9108 | 9107 | MCFG_SCREEN_SIZE(64*8, 32*8) |
9109 | 9108 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) |
9110 | MCFG_SCREEN_UPDATE_ | |
9109 | MCFG_SCREEN_UPDATE_DR | |
9111 | 9110 | |
9112 | 9111 | MCFG_GFXDECODE(crazyfgt) |
9113 | 9112 | MCFG_PALETTE_LENGTH(16*32+64*32*4) /* sprites, layer1, layer2 */ |
r17967 | r17968 | |
9204 | 9203 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
9205 | 9204 | MCFG_SCREEN_SIZE(64*8, 32*8) |
9206 | 9205 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) |
9207 | MCFG_SCREEN_UPDATE_ | |
9206 | MCFG_SCREEN_UPDATE_DR | |
9208 | 9207 | |
9209 | 9208 | MCFG_GFXDECODE(inttoote) |
9210 | 9209 | MCFG_PALETTE_LENGTH(512 * 1) |
r17967 | r17968 | |
---|---|---|
494 | 494 | save_item(NAME(m_colorram)); |
495 | 495 | } |
496 | 496 | |
497 | stat | |
497 | UINT32 laserbat_state::screen | |
498 | 498 | { |
499 | laserbat_state *state = screen.machine().driver_data<laserbat_state>(); | |
500 | 499 | int y; |
501 | 500 | |
502 | | |
501 | | |
503 | 502 | |
504 | 503 | /* 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); | |
508 | 507 | |
509 | 508 | /* copy the S2636 images into the main bitmap */ |
510 | 509 | for (y = cliprect.min_y; y <= cliprect.max_y; y++) |
r17967 | r17968 | |
528 | 527 | } |
529 | 528 | } |
530 | 529 | |
531 | if ( | |
530 | if ( | |
532 | 531 | 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, | |
535 | 534 | 0,0, |
536 | | |
535 | | |
537 | 536 | |
538 | 537 | return 0; |
539 | 538 | } |
r17967 | r17968 | |
760 | 759 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
761 | 760 | MCFG_SCREEN_SIZE(256, 256) |
762 | 761 | MCFG_SCREEN_VISIBLE_AREA(1*8, 29*8-1, 2*8, 32*8-1) |
763 | MCFG_SCREEN_UPDATE_ | |
762 | MCFG_SCREEN_UPDATE_DR | |
764 | 763 | |
765 | 764 | MCFG_GFXDECODE(laserbat) |
766 | 765 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
804 | 803 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
805 | 804 | MCFG_SCREEN_SIZE(256, 256) |
806 | 805 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 32*8-1) |
807 | MCFG_SCREEN_UPDATE_ | |
806 | MCFG_SCREEN_UPDATE_DR | |
808 | 807 | |
809 | 808 | MCFG_GFXDECODE(laserbat) |
810 | 809 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
328 | 328 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
329 | 329 | MCFG_SCREEN_SIZE(32*8, 32*8) |
330 | 330 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
331 | MCFG_SCREEN_UPDATE_ | |
331 | MCFG_SCREEN_UPDATE_DR | |
332 | 332 | |
333 | 333 | MCFG_GFXDECODE(tp84) |
334 | 334 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
---|---|---|
419 | 419 | MCFG_SCREEN_ADD("screen", RASTER) |
420 | 420 | MCFG_SCREEN_SIZE(32*8, 32*8) |
421 | 421 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 8, 248) /* based on ddragon driver */ |
422 | MCFG_SCREEN_UPDATE_ | |
422 | MCFG_SCREEN_UPDATE_DR | |
423 | 423 | |
424 | 424 | MCFG_GFXDECODE(vb) |
425 | 425 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
2526 | 2526 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
2527 | 2527 | MCFG_SCREEN_SIZE(640, 480) |
2528 | 2528 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
2529 | MCFG_SCREEN_UPDATE_ | |
2529 | MCFG_SCREEN_UPDATE_DR | |
2530 | 2530 | |
2531 | 2531 | MCFG_PALETTE_LENGTH(0x1000) |
2532 | 2532 |
r17967 | r17968 | |
---|---|---|
139 | 139 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
140 | 140 | MCFG_SCREEN_SIZE(32*8, 32*8) |
141 | 141 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 28*8-1) |
142 | MCFG_SCREEN_UPDATE_ | |
142 | MCFG_SCREEN_UPDATE_DR | |
143 | 143 | |
144 | 144 | MCFG_GFXDECODE(cheekyms) |
145 | 145 | MCFG_PALETTE_LENGTH(0xc0) |
r17967 | r17968 | |
---|---|---|
446 | 446 | } |
447 | 447 | |
448 | 448 | //attotime::never |
449 | static | |
449 | UINT32 mtech_state::screen_update_mtnew(screen_device &screen, bitmap_rgb | |
450 | 450 | { |
451 | mtech_state *state = screen.machine().driver_data<mtech_state>(); | |
452 | 451 | |
453 | 452 | /* 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 (! | |
453 | if (! | |
455 | 454 | SCREEN_UPDATE32_CALL(megadriv); |
456 | 455 | else |
457 | 456 | SCREEN_UPDATE32_CALL(megatech_md_sms); |
458 | 457 | return 0; |
459 | 458 | } |
460 | 459 | |
461 | stat | |
460 | void mtech_state::screen | |
462 | 461 | { |
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) | |
465 | 464 | SCREEN_VBLANK_CALL(megadriv); |
466 | 465 | else |
467 | 466 | SCREEN_VBLANK_CALL(megatech_md_sms); |
r17967 | r17968 | |
476 | 475 | megatech_select_game(machine(), 0); |
477 | 476 | } |
478 | 477 | |
479 | stat | |
478 | UINT32 mtech_state::screen | |
480 | 479 | { |
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); | |
483 | 481 | return 0; |
484 | 482 | } |
485 | 483 | |
r17967 | r17968 | |
522 | 520 | MCFG_SCREEN_RAW_PARAMS(XTAL_10_738635MHz/2, \ |
523 | 521 | SEGA315_5124_WIDTH , SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256, \ |
524 | 522 | 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_ | |
523 | MCFG_SCREEN_UPDATE_DR | |
526 | 524 | |
527 | 525 | MCFG_PALETTE_LENGTH(SEGA315_5124_PALETTE_SIZE) |
528 | 526 | MCFG_PALETTE_INIT(sega315_5124) |
r17967 | r17968 | |
531 | 529 | |
532 | 530 | |
533 | 531 | 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) | |
536 | 534 | |
537 | 535 | /* sound hardware */ |
538 | 536 | MCFG_SOUND_ADD("sn2", SN76496, MASTER_CLOCK/15) |
r17967 | r17968 | |
---|---|---|
245 | 245 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
246 | 246 | MCFG_SCREEN_SIZE(32*8, 32*8) |
247 | 247 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
248 | MCFG_SCREEN_UPDATE_ | |
248 | MCFG_SCREEN_UPDATE_DR | |
249 | 249 | |
250 | 250 | MCFG_GFXDECODE(timelimt) |
251 | 251 | MCFG_PALETTE_LENGTH(64+32) |
r17967 | r17968 | |
---|---|---|
171 | 171 | DECLARE_MACHINE_START(champbwl); |
172 | 172 | DECLARE_MACHINE_RESET(champbwl); |
173 | 173 | 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); | |
174 | 178 | }; |
175 | 179 | |
176 | 180 | |
r17967 | r17968 | |
452 | 456 | |
453 | 457 | } |
454 | 458 | |
455 | ||
459 | ||
456 | 460 | { |
457 | 461 | bitmap.fill(0x1f0, cliprect); |
458 | 462 | |
r17967 | r17968 | |
463 | 467 | return 0; |
464 | 468 | } |
465 | 469 | |
466 | ||
470 | void | |
467 | 471 | { |
468 | 472 | // rising edge |
469 | if ( | |
473 | if (st | |
470 | 474 | screen.machine().device<seta001_device>("spritegen")->tnzs_eof(); |
471 | 475 | } |
472 | 476 | |
r17967 | r17968 | |
491 | 495 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
492 | 496 | MCFG_SCREEN_SIZE(64*8, 32*8) |
493 | 497 | 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) | |
496 | 500 | |
497 | 501 | MCFG_GFXDECODE(champbwl) |
498 | 502 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
511 | 515 | |
512 | 516 | |
513 | 517 | |
514 | stat | |
518 | UINT32 champbwl_state::screen | |
515 | 519 | { |
516 | 520 | bitmap.fill(0x1f0, cliprect); |
517 | 521 | |
r17967 | r17968 | |
522 | 526 | return 0; |
523 | 527 | } |
524 | 528 | |
525 | stat | |
529 | void champbwl_state::screen | |
526 | 530 | { |
527 | 531 | // rising edge |
528 | if ( | |
532 | if (st | |
529 | 533 | screen.machine().device<seta001_device>("spritegen")->setac_eof(); |
530 | 534 | } |
531 | 535 | |
r17967 | r17968 | |
554 | 558 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
555 | 559 | MCFG_SCREEN_SIZE(320, 256) |
556 | 560 | 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) | |
559 | 563 | |
560 | 564 | MCFG_GFXDECODE(champbwl) |
561 | 565 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
---|---|---|
164 | 164 | DECLARE_DRIVER_INIT(vamphalf); |
165 | 165 | DECLARE_DRIVER_INIT(wyvernwg); |
166 | 166 | 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); | |
167 | 169 | }; |
168 | 170 | |
169 | 171 | READ16_MEMBER(vamphalf_state::eeprom_r) |
r17967 | r17968 | |
752 | 754 | } |
753 | 755 | |
754 | 756 | |
755 | static | |
757 | UINT32 vamphalf_state::screen_update_common(screen_device &screen, bitmap_ind | |
756 | 758 | { |
757 | 759 | vamphalf_handle_flipped_visible_area(screen); |
758 | 760 | bitmap.fill(0, cliprect); |
r17967 | r17968 | |
760 | 762 | return 0; |
761 | 763 | } |
762 | 764 | |
763 | static | |
765 | UINT32 vamphalf_state::screen_update_aoh(screen_device &screen, bitmap_ind | |
764 | 766 | { |
765 | 767 | // vamphalf_handle_flipped_visible_area(screen); // not on this? |
766 | 768 | bitmap.fill(0, cliprect); |
r17967 | r17968 | |
993 | 995 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
994 | 996 | MCFG_SCREEN_SIZE(512, 256) |
995 | 997 | MCFG_SCREEN_VISIBLE_AREA(31, 350, 16, 251) |
996 | MCFG_SCREEN_UPDATE_ | |
998 | MCFG_SCREEN_UPDATE_DR | |
997 | 999 | |
998 | 1000 | MCFG_PALETTE_LENGTH(0x8000) |
999 | 1001 | MCFG_GFXDECODE(vamphalf) |
r17967 | r17968 | |
1124 | 1126 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1125 | 1127 | MCFG_SCREEN_SIZE(512, 512) |
1126 | 1128 | MCFG_SCREEN_VISIBLE_AREA(64, 511-64, 16, 255-16) |
1127 | MCFG_SCREEN_UPDATE_ | |
1129 | MCFG_SCREEN_UPDATE_DR | |
1128 | 1130 | |
1129 | 1131 | MCFG_PALETTE_LENGTH(0x8000) |
1130 | 1132 | MCFG_GFXDECODE(vamphalf) |
r17967 | r17968 | |
---|---|---|
422 | 422 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1200)) |
423 | 423 | MCFG_SCREEN_SIZE(64*8, 32*8) |
424 | 424 | MCFG_SCREEN_VISIBLE_AREA(29, 29+288-1, 16, 16+224-1) |
425 | MCFG_SCREEN_UPDATE_ | |
425 | MCFG_SCREEN_UPDATE_DR | |
426 | 426 | |
427 | 427 | MCFG_PALETTE_LENGTH(4096) |
428 | 428 |
r17967 | r17968 | |
---|---|---|
274 | 274 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
275 | 275 | MCFG_SCREEN_SIZE(32*8, 32*8) |
276 | 276 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
277 | MCFG_SCREEN_UPDATE_ | |
277 | MCFG_SCREEN_UPDATE_DR | |
278 | 278 | |
279 | 279 | |
280 | 280 | /* sound hardware */ |
r17967 | r17968 | |
---|---|---|
223 | 223 | MCFG_SCREEN_REFRESH_RATE(60) |
224 | 224 | MCFG_SCREEN_SIZE(256, 256) |
225 | 225 | MCFG_SCREEN_VISIBLE_AREA(1, 255, 24, 255) |
226 | MCFG_SCREEN_UPDATE_ | |
226 | MCFG_SCREEN_UPDATE_DR | |
227 | 227 | |
228 | 228 | MCFG_GFXDECODE(poolshrk) |
229 | 229 | MCFG_PALETTE_LENGTH(4) |
r17967 | r17968 | |
---|---|---|
45 | 45 | virtual void machine_start(); |
46 | 46 | virtual void machine_reset(); |
47 | 47 | virtual void video_start(); |
48 | UINT32 screen_update_mayumi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
48 | 49 | }; |
49 | 50 | |
50 | 51 | |
r17967 | r17968 | |
73 | 74 | m_tilemap->mark_tile_dirty(offset & 0x7ff); |
74 | 75 | } |
75 | 76 | |
76 | stat | |
77 | UINT32 mayumi_state::screen | |
77 | 78 | { |
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); | |
80 | 80 | return 0; |
81 | 81 | } |
82 | 82 | |
r17967 | r17968 | |
410 | 410 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
411 | 411 | MCFG_SCREEN_SIZE(64*8, 32*8) |
412 | 412 | MCFG_SCREEN_VISIBLE_AREA(2*8, 62*8-1, 2*8, 30*8-1) |
413 | MCFG_SCREEN_UPDATE_ | |
413 | MCFG_SCREEN_UPDATE_DR | |
414 | 414 | |
415 | 415 | MCFG_GFXDECODE(mayumi) |
416 | 416 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
267 | 267 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
268 | 268 | MCFG_SCREEN_SIZE(32*8, 32*8) |
269 | 269 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
270 | MCFG_SCREEN_UPDATE_ | |
270 | MCFG_SCREEN_UPDATE_DR | |
271 | 271 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) |
272 | 272 | |
273 | 273 | MCFG_GFXDECODE(raiden) |
r17967 | r17968 | |
---|---|---|
449 | 449 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
450 | 450 | MCFG_SCREEN_SIZE(32*8, 32*8) |
451 | 451 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
452 | MCFG_SCREEN_UPDATE_ | |
452 | MCFG_SCREEN_UPDATE_DR | |
453 | 453 | |
454 | 454 | MCFG_GFXDECODE(bloodbro) |
455 | 455 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
469 | 469 | MCFG_PALETTE_LENGTH(1024) |
470 | 470 | |
471 | 471 | MCFG_SCREEN_MODIFY("screen") |
472 | MCFG_SCREEN_UPDATE_ | |
472 | MCFG_SCREEN_UPDATE_DR | |
473 | 473 | MACHINE_CONFIG_END |
474 | 474 | |
475 | 475 | static MACHINE_CONFIG_DERIVED( skysmash, bloodbro ) |
r17967 | r17968 | |
478 | 478 | MCFG_CPU_VBLANK_INT("screen", irq2_line_hold) |
479 | 479 | |
480 | 480 | MCFG_SCREEN_MODIFY("screen") |
481 | MCFG_SCREEN_UPDATE_ | |
481 | MCFG_SCREEN_UPDATE_DR | |
482 | 482 | MACHINE_CONFIG_END |
483 | 483 | |
484 | 484 | /* ROMs */ |
r17967 | r17968 | |
---|---|---|
41 | 41 | DECLARE_WRITE8_MEMBER(qs1000_p3_w); |
42 | 42 | DECLARE_DRIVER_INIT(vegaeo); |
43 | 43 | DECLARE_VIDEO_START(vega); |
44 | UINT32 screen_update_vega(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
44 | 45 | }; |
45 | 46 | |
46 | 47 | READ8_MEMBER( vegaeo_state::qs1000_p1_r ) |
r17967 | r17968 | |
194 | 195 | m_vega_vram = auto_alloc_array(machine(), UINT32, 0x14000*2/4); |
195 | 196 | } |
196 | 197 | |
197 | static | |
198 | UINT32 vegaeo_state::screen_update_vega(screen_device &screen, bitmap_ind | |
198 | 199 | { |
199 | vegaeo_state *state = screen.machine().driver_data<vegaeo_state>(); | |
200 | 200 | int x,y,count; |
201 | 201 | int color; |
202 | 202 | |
r17967 | r17968 | |
205 | 205 | { |
206 | 206 | for (x=0;x < 320/4;x++) |
207 | 207 | { |
208 | color = | |
208 | color = | |
209 | 209 | bitmap.pix16(y, x*4 + 3) = color; |
210 | 210 | |
211 | color = ( | |
211 | color = ( | |
212 | 212 | bitmap.pix16(y, x*4 + 2) = color; |
213 | 213 | |
214 | color = ( | |
214 | color = ( | |
215 | 215 | bitmap.pix16(y, x*4 + 1) = color; |
216 | 216 | |
217 | color = ( | |
217 | color = ( | |
218 | 218 | bitmap.pix16(y, x*4 + 0) = color; |
219 | 219 | |
220 | 220 | count++; |
r17967 | r17968 | |
261 | 261 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
262 | 262 | MCFG_SCREEN_SIZE(512, 262) |
263 | 263 | MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) |
264 | MCFG_SCREEN_UPDATE_ | |
264 | MCFG_SCREEN_UPDATE_DR | |
265 | 265 | |
266 | 266 | MCFG_PALETTE_LENGTH(256) |
267 | 267 |
r17967 | r17968 | |
---|---|---|
305 | 305 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) |
306 | 306 | MCFG_SCREEN_SIZE(256, 256) |
307 | 307 | MCFG_SCREEN_VISIBLE_AREA(0*8, 30*8-1, 2*8, 32*8-1) |
308 | MCFG_SCREEN_UPDATE_ | |
308 | MCFG_SCREEN_UPDATE_DR | |
309 | 309 | |
310 | 310 | MCFG_GFXDECODE(galaxia) |
311 | 311 | MCFG_PALETTE_LENGTH(0x18+2) |
r17967 | r17968 | |
345 | 345 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) |
346 | 346 | MCFG_SCREEN_SIZE(256, 256) |
347 | 347 | MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 32*8-1) |
348 | MCFG_SCREEN_UPDATE_ | |
348 | MCFG_SCREEN_UPDATE_DR | |
349 | 349 | |
350 | 350 | MCFG_GFXDECODE(astrowar) |
351 | 351 | MCFG_PALETTE_LENGTH(0x18+2) |
r17967 | r17968 | |
---|---|---|
570 | 570 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
571 | 571 | MCFG_SCREEN_SIZE(512, 512) |
572 | 572 | MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1) |
573 | MCFG_SCREEN_UPDATE_ | |
573 | MCFG_SCREEN_UPDATE_DR | |
574 | 574 | |
575 | 575 | MCFG_SCREEN_ADD("rscreen", RASTER) |
576 | 576 | MCFG_SCREEN_REFRESH_RATE(60) |
577 | 577 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
578 | 578 | MCFG_SCREEN_SIZE(512, 512) |
579 | 579 | MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1) |
580 | MCFG_SCREEN_UPDATE_ | |
580 | MCFG_SCREEN_UPDATE_DR | |
581 | 581 | |
582 | 582 | MCFG_VIDEO_START_OVERRIDE(fromanc2_state,fromanc2) |
583 | 583 | |
r17967 | r17968 | |
620 | 620 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
621 | 621 | MCFG_SCREEN_SIZE(512, 512) |
622 | 622 | MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1) |
623 | MCFG_SCREEN_UPDATE_ | |
623 | MCFG_SCREEN_UPDATE_DR | |
624 | 624 | |
625 | 625 | MCFG_SCREEN_ADD("rscreen", RASTER) |
626 | 626 | MCFG_SCREEN_REFRESH_RATE(60) |
627 | 627 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
628 | 628 | MCFG_SCREEN_SIZE(512, 512) |
629 | 629 | MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1) |
630 | MCFG_SCREEN_UPDATE_ | |
630 | MCFG_SCREEN_UPDATE_DR | |
631 | 631 | |
632 | 632 | MCFG_VIDEO_START_OVERRIDE(fromanc2_state,fromancr) |
633 | 633 | |
r17967 | r17968 | |
667 | 667 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
668 | 668 | MCFG_SCREEN_SIZE(2048, 256) |
669 | 669 | MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1) |
670 | MCFG_SCREEN_UPDATE_ | |
670 | MCFG_SCREEN_UPDATE_DR | |
671 | 671 | |
672 | 672 | MCFG_SCREEN_ADD("rscreen", RASTER) |
673 | 673 | MCFG_SCREEN_REFRESH_RATE(60) |
674 | 674 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
675 | 675 | MCFG_SCREEN_SIZE(512, 512) |
676 | 676 | MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1) |
677 | MCFG_SCREEN_UPDATE_ | |
677 | MCFG_SCREEN_UPDATE_DR | |
678 | 678 | |
679 | 679 | MCFG_VIDEO_START_OVERRIDE(fromanc2_state,fromanc4) |
680 | 680 |
r17967 | r17968 | |
---|---|---|
923 | 923 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
924 | 924 | MCFG_SCREEN_SIZE(36*8, 32*8) |
925 | 925 | MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 2*8, 30*8-1) |
926 | MCFG_SCREEN_UPDATE_ | |
926 | MCFG_SCREEN_UPDATE_DR | |
927 | 927 | |
928 | 928 | MCFG_GFXDECODE(rallyx) |
929 | 929 | MCFG_PALETTE_LENGTH(64*4+4) |
r17967 | r17968 | |
961 | 961 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* frames per second, vblank duration */) |
962 | 962 | MCFG_SCREEN_SIZE(36*8, 32*8) |
963 | 963 | MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 2*8, 30*8-1) |
964 | MCFG_SCREEN_UPDATE_ | |
964 | MCFG_SCREEN_UPDATE_DR | |
965 | 965 | |
966 | 966 | MCFG_GFXDECODE(jungler) |
967 | 967 | MCFG_PALETTE_LENGTH(64*4+4+64) |
r17967 | r17968 | |
981 | 981 | /* video hardware */ |
982 | 982 | MCFG_VIDEO_START_OVERRIDE(rallyx_state,locomotn) |
983 | 983 | MCFG_SCREEN_MODIFY("screen") |
984 | MCFG_SCREEN_UPDATE_ | |
984 | MCFG_SCREEN_UPDATE_DR | |
985 | 985 | MACHINE_CONFIG_END |
986 | 986 | |
987 | 987 | |
r17967 | r17968 | |
992 | 992 | /* video hardware */ |
993 | 993 | MCFG_SCREEN_MODIFY("screen") |
994 | 994 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
995 | MCFG_SCREEN_UPDATE_ | |
995 | MCFG_SCREEN_UPDATE_DR | |
996 | 996 | MCFG_VIDEO_START_OVERRIDE(rallyx_state,locomotn) |
997 | 997 | MACHINE_CONFIG_END |
998 | 998 | |
r17967 | r17968 | |
1004 | 1004 | /* video hardware */ |
1005 | 1005 | MCFG_SCREEN_MODIFY("screen") |
1006 | 1006 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
1007 | MCFG_SCREEN_UPDATE_ | |
1007 | MCFG_SCREEN_UPDATE_DR | |
1008 | 1008 | MCFG_VIDEO_START_OVERRIDE(rallyx_state,commsega) |
1009 | 1009 | MACHINE_CONFIG_END |
1010 | 1010 |
r17967 | r17968 | |
---|---|---|
432 | 432 | /* video hardware */ |
433 | 433 | MCFG_SCREEN_ADD("screen", RASTER) |
434 | 434 | MCFG_SCREEN_RAW_PARAMS(GRIDLEE_PIXEL_CLOCK, GRIDLEE_HTOTAL, GRIDLEE_HBEND, GRIDLEE_HBSTART, GRIDLEE_VTOTAL, GRIDLEE_VBEND, GRIDLEE_VBSTART) |
435 | MCFG_SCREEN_UPDATE_ | |
435 | MCFG_SCREEN_UPDATE_DR | |
436 | 436 | |
437 | 437 | MCFG_PALETTE_LENGTH(2048) |
438 | 438 |
r17967 | r17968 | |
---|---|---|
155 | 155 | TILE_GET_INFO_MEMBER(get_ms32_roz1_tile_info); |
156 | 156 | virtual void machine_reset(); |
157 | 157 | 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); | |
158 | 160 | }; |
159 | 161 | |
160 | 162 | |
r17967 | r17968 | |
530 | 532 | |
531 | 533 | |
532 | 534 | |
533 | stat | |
535 | UINT32 bnstars_state::screen | |
534 | 536 | { |
535 | bnstars_state *state = screen.machine().driver_data<bnstars_state>(); | |
536 | 537 | |
537 | 538 | screen.machine().priority_bitmap.fill(0, cliprect); |
538 | 539 | |
539 | 540 | bitmap.fill(0, cliprect); /* bg color */ |
540 | 541 | |
541 | 542 | |
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); | |
545 | 546 | |
546 | 547 | draw_roz(screen.machine(),bitmap,cliprect,2,0); |
547 | 548 | |
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); | |
551 | 552 | |
552 | 553 | |
553 | draw_sprites(screen.machine(),bitmap,cliprect, | |
554 | draw_sprites(screen.machine(),bitmap,cliprect, | |
554 | 555 | |
555 | 556 | return 0; |
556 | 557 | } |
557 | 558 | |
558 | stat | |
559 | UINT32 bnstars_state::screen | |
559 | 560 | { |
560 | bnstars_state *state = screen.machine().driver_data<bnstars_state>(); | |
561 | 561 | |
562 | 562 | screen.machine().priority_bitmap.fill(0, cliprect); |
563 | 563 | |
564 | 564 | bitmap.fill(0x8000+0, cliprect); /* bg color */ |
565 | 565 | |
566 | 566 | |
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); | |
570 | 570 | |
571 | 571 | draw_roz(screen.machine(),bitmap,cliprect,2,1); |
572 | 572 | |
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); | |
576 | 576 | |
577 | draw_sprites(screen.machine(),bitmap,cliprect, | |
577 | draw_sprites(screen.machine(),bitmap,cliprect, | |
578 | 578 | |
579 | 579 | return 0; |
580 | 580 | } |
r17967 | r17968 | |
1396 | 1396 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1397 | 1397 | MCFG_SCREEN_SIZE(40*8, 32*8) |
1398 | 1398 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) |
1399 | MCFG_SCREEN_UPDATE_ | |
1399 | MCFG_SCREEN_UPDATE_DR | |
1400 | 1400 | |
1401 | 1401 | MCFG_SCREEN_ADD("rscreen", RASTER) |
1402 | 1402 | MCFG_SCREEN_REFRESH_RATE(60) |
1403 | 1403 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1404 | 1404 | MCFG_SCREEN_SIZE(40*8, 32*8) |
1405 | 1405 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) |
1406 | MCFG_SCREEN_UPDATE_ | |
1406 | MCFG_SCREEN_UPDATE_DR | |
1407 | 1407 | |
1408 | 1408 | |
1409 | 1409 | /* sound hardware */ |
r17967 | r17968 | |
---|---|---|
67 | 67 | DECLARE_WRITE8_MEMBER(dai3wksi_audio_3_w); |
68 | 68 | virtual void machine_start(); |
69 | 69 | virtual void machine_reset(); |
70 | UINT32 screen_update_dai3wksi(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
70 | 71 | }; |
71 | 72 | |
72 | 73 | |
r17967 | r17968 | |
128 | 129 | } |
129 | 130 | |
130 | 131 | |
131 | stat | |
132 | UINT32 dai3wksi_state::screen | |
132 | 133 | { |
133 | dai3wksi_state *state = screen.machine().driver_data<dai3wksi_state>(); | |
134 | 134 | offs_t offs; |
135 | 135 | pen_t pens[8]; |
136 | 136 | |
137 | 137 | dai3wksi_get_pens(pens); |
138 | 138 | |
139 | for (offs = 0; offs < | |
139 | for (offs = 0; offs < | |
140 | 140 | { |
141 | 141 | offs_t i; |
142 | 142 | |
143 | 143 | UINT8 x = offs << 2; |
144 | 144 | UINT8 y = offs >> 6; |
145 | UINT8 data = | |
145 | UINT8 data = | |
146 | 146 | UINT8 color; |
147 | int value = (x >> 2) + ((y >> 5) << 6) + 64 * 8 * ( | |
147 | int value = (x >> 2) + ((y >> 5) << 6) + 64 * 8 * ( | |
148 | 148 | |
149 | if ( | |
149 | if ( | |
150 | 150 | { |
151 | 151 | color = 0x02; |
152 | 152 | } |
153 | 153 | else |
154 | 154 | { |
155 | if ( | |
155 | if ( | |
156 | 156 | color = vr_prom2[value]; |
157 | 157 | else |
158 | 158 | color = vr_prom1[value]; |
r17967 | r17968 | |
162 | 162 | { |
163 | 163 | pen_t pen = (data & (1 << i)) ? pens[color] : pens[0]; |
164 | 164 | |
165 | if ( | |
165 | if ( | |
166 | 166 | bitmap.pix32(255-y, 255-x) = pen; |
167 | 167 | else |
168 | 168 | bitmap.pix32(y, x) = pen; |
r17967 | r17968 | |
599 | 599 | MCFG_SCREEN_SIZE(256, 256) |
600 | 600 | MCFG_SCREEN_VISIBLE_AREA(4, 251, 8, 247) |
601 | 601 | MCFG_SCREEN_REFRESH_RATE(60) |
602 | MCFG_SCREEN_UPDATE_ | |
602 | MCFG_SCREEN_UPDATE_DR | |
603 | 603 | |
604 | 604 | MCFG_SPEAKER_STANDARD_MONO("mono") |
605 | 605 |
r17967 | r17968 | |
---|---|---|
768 | 768 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
769 | 769 | MCFG_SCREEN_SIZE(0x140, 0xe0) |
770 | 770 | MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xe0-1) |
771 | MCFG_SCREEN_UPDATE_ | |
771 | MCFG_SCREEN_UPDATE_DR | |
772 | 772 | |
773 | 773 | MCFG_GFXDECODE(realbrk) |
774 | 774 | MCFG_PALETTE_LENGTH(0x8000) |
r17967 | r17968 | |
802 | 802 | |
803 | 803 | MCFG_GFXDECODE(dai2kaku) |
804 | 804 | MCFG_SCREEN_MODIFY("screen") |
805 | MCFG_SCREEN_UPDATE_ | |
805 | MCFG_SCREEN_UPDATE_DR | |
806 | 806 | MACHINE_CONFIG_END |
807 | 807 | |
808 | 808 |
r17967 | r17968 | |
---|---|---|
70 | 70 | DECLARE_WRITE8_MEMBER(okibank_w); |
71 | 71 | virtual void machine_start(); |
72 | 72 | virtual void video_start(); |
73 | UINT32 screen_update_diverboy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
73 | 74 | }; |
74 | 75 | |
75 | 76 | |
r17967 | r17968 | |
113 | 114 | } |
114 | 115 | } |
115 | 116 | |
116 | stat | |
117 | UINT32 diverboy_state::screen | |
117 | 118 | { |
118 | 119 | // bitmap.fill(get_black_pen(screen.machine()), cliprect); |
119 | 120 | draw_sprites(screen.machine(), bitmap, cliprect); |
r17967 | r17968 | |
269 | 270 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
270 | 271 | MCFG_SCREEN_SIZE(64*8, 32*8) |
271 | 272 | MCFG_SCREEN_VISIBLE_AREA(0*8+4, 40*8+1, 2*8, 32*8-1) |
272 | MCFG_SCREEN_UPDATE_ | |
273 | MCFG_SCREEN_UPDATE_DR | |
273 | 274 | |
274 | 275 | MCFG_PALETTE_LENGTH(0x400) |
275 | 276 |
r17967 | r17968 | |
---|---|---|
325 | 325 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
326 | 326 | MCFG_SCREEN_SIZE(512*2, 262) |
327 | 327 | MCFG_SCREEN_VISIBLE_AREA((129-8)*2, (449+8-1)*2, 44-8, 244+8-1) |
328 | MCFG_SCREEN_UPDATE_ | |
328 | MCFG_SCREEN_UPDATE_DR | |
329 | 329 | |
330 | 330 | MCFG_PALETTE_LENGTH(4096) |
331 | 331 | MCFG_PALETTE_INIT_OVERRIDE(arcadia_amiga_state,amiga) |
r17967 | r17968 | |
---|---|---|
217 | 217 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
218 | 218 | MCFG_SCREEN_SIZE(32*8, 32*8) |
219 | 219 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
220 | MCFG_SCREEN_UPDATE_ | |
220 | MCFG_SCREEN_UPDATE_DR | |
221 | 221 | |
222 | 222 | MCFG_GFXDECODE(carjmbre) |
223 | 223 | MCFG_PALETTE_LENGTH(64) |
r17967 | r17968 | |
---|---|---|
120 | 120 | TILE_GET_INFO_MEMBER(get_vmetal_mid1tilemap_tile_info); |
121 | 121 | TILE_GET_INFO_MEMBER(get_vmetal_mid2tilemap_tile_info); |
122 | 122 | DECLARE_VIDEO_START(varia); |
123 | UINT32 screen_update_varia(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
123 | 124 | }; |
124 | 125 | |
125 | 126 | |
r17967 | r17968 | |
456 | 457 | expand_gfx1(machine()); |
457 | 458 | } |
458 | 459 | |
459 | static | |
460 | UINT32 vmetal_state::screen_update_varia(screen_device &screen, bitmap_ind | |
460 | 461 | { |
461 | vmetal_state *state = screen.machine().driver_data<vmetal_state>(); | |
462 | 462 | |
463 | 463 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
464 | 464 | screen.machine().priority_bitmap.fill(0, cliprect); |
465 | 465 | |
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]*/); | |
469 | 469 | |
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); | |
473 | 473 | |
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); | |
476 | 476 | metro_draw_sprites(screen.machine(), bitmap, cliprect); |
477 | | |
477 | | |
478 | 478 | return 0; |
479 | 479 | } |
480 | 480 | |
r17967 | r17968 | |
492 | 492 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
493 | 493 | MCFG_SCREEN_SIZE(2048, 2048) |
494 | 494 | MCFG_SCREEN_VISIBLE_AREA(0+64, 319+64, 0+64, 223+64) |
495 | MCFG_SCREEN_UPDATE_ | |
495 | MCFG_SCREEN_UPDATE_DR | |
496 | 496 | |
497 | 497 | MCFG_GFXDECODE(vmetal) |
498 | 498 | MCFG_PALETTE_LENGTH(0x4000) |
r17967 | r17968 | |
---|---|---|
344 | 344 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
345 | 345 | MCFG_SCREEN_SIZE(40*8, 32*8) |
346 | 346 | MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 2*8, 32*8-1) |
347 | MCFG_SCREEN_UPDATE_ | |
347 | MCFG_SCREEN_UPDATE_DR | |
348 | 348 | |
349 | 349 | MCFG_GFXDECODE(superchs) |
350 | 350 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
---|---|---|
245 | 245 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
246 | 246 | MCFG_SCREEN_SIZE(32*8, 32*8) |
247 | 247 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 30*8-1) |
248 | MCFG_SCREEN_UPDATE_ | |
248 | MCFG_SCREEN_UPDATE_DR | |
249 | 249 | |
250 | 250 | MCFG_GFXDECODE(battlera) |
251 | 251 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
---|---|---|
270 | 270 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
271 | 271 | MCFG_SCREEN_SIZE(34*8, 33*8) |
272 | 272 | MCFG_SCREEN_VISIBLE_AREA(0*8, 34*8-1, 0*8, 28*8-1) |
273 | MCFG_SCREEN_UPDATE_ | |
273 | MCFG_SCREEN_UPDATE_DR | |
274 | 274 | |
275 | 275 | MCFG_GFXDECODE(flower) |
276 | 276 |
r17967 | r17968 | |
---|---|---|
596 | 596 | /* video hardware */ |
597 | 597 | MCFG_SCREEN_ADD("screen", RASTER) |
598 | 598 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 8, 248) /* based on ddragon driver */ |
599 | MCFG_SCREEN_UPDATE_ | |
599 | MCFG_SCREEN_UPDATE_DR | |
600 | 600 | |
601 | 601 | MCFG_GFXDECODE(xain) |
602 | 602 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
---|---|---|
1111 | 1111 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1112 | 1112 | MCFG_SCREEN_SIZE(64*8, 64*8) |
1113 | 1113 | 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) | |
1116 | 1116 | |
1117 | 1117 | MCFG_GFXDECODE(namcos1) |
1118 | 1118 | MCFG_PALETTE_LENGTH(0x2000) |
r17967 | r17968 | |
---|---|---|
191 | 191 | /* video hardware */ |
192 | 192 | MCFG_SCREEN_ADD("screen", RASTER) |
193 | 193 | MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK/4, 312, 8, 248, 262, 32, 224) |
194 | MCFG_SCREEN_UPDATE_ | |
194 | MCFG_SCREEN_UPDATE_DR | |
195 | 195 | |
196 | 196 | MCFG_GFXDECODE(mrdo) |
197 | 197 | MCFG_PALETTE_LENGTH(64*4+16*4) |
r17967 | r17968 | |
---|---|---|
419 | 419 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
420 | 420 | MCFG_SCREEN_SIZE(32*8, 32*8) |
421 | 421 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
422 | MCFG_SCREEN_UPDATE_ | |
422 | MCFG_SCREEN_UPDATE_DR | |
423 | 423 | |
424 | 424 | MCFG_GFXDECODE(gundealr) |
425 | 425 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
---|---|---|
98 | 98 | TILE_GET_INFO_MEMBER(bgtile_get_info); |
99 | 99 | virtual void machine_start(); |
100 | 100 | virtual void video_start(); |
101 | UINT32 screen_update_firefox(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
101 | 102 | }; |
102 | 103 | |
103 | 104 | |
r17967 | r17968 | |
214 | 215 | } |
215 | 216 | |
216 | 217 | |
217 | stat | |
218 | UINT32 firefox_state::screen | |
218 | 219 | { |
219 | firefox_state *state = screen.machine().driver_data<firefox_state>(); | |
220 | 220 | int sprite; |
221 | 221 | int gfxtop = screen.visible_area().min_y; |
222 | 222 | |
r17967 | r17968 | |
224 | 224 | |
225 | 225 | for( sprite = 0; sprite < 32; sprite++ ) |
226 | 226 | { |
227 | UINT8 *sprite_data = | |
227 | UINT8 *sprite_data = | |
228 | 228 | int flags = sprite_data[ 0 ]; |
229 | 229 | int y = sprite_data[ 1 ] + ( 256 * ( ( flags >> 0 ) & 1 ) ); |
230 | 230 | int x = sprite_data[ 2 ] + ( 256 * ( ( flags >> 1 ) & 1 ) ); |
r17967 | r17968 | |
245 | 245 | } |
246 | 246 | } |
247 | 247 | |
248 | | |
248 | | |
249 | 249 | |
250 | 250 | return 0; |
251 | 251 | } |
r17967 | r17968 | |
716 | 716 | |
717 | 717 | |
718 | 718 | MCFG_LASERDISC_22VP931_ADD("laserdisc") |
719 | MCFG_LASERDISC_OVERLAY_ | |
719 | MCFG_LASERDISC_OVERLAY_DR | |
720 | 720 | MCFG_LASERDISC_OVERLAY_CLIP(7*8, 53*8-1, 44, 480+44) |
721 | 721 | |
722 | 722 | MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc") |
r17967 | r17968 | |
---|---|---|
469 | 469 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
470 | 470 | MCFG_SCREEN_SIZE(64*8, 32*8) |
471 | 471 | MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) |
472 | MCFG_SCREEN_UPDATE_ | |
472 | MCFG_SCREEN_UPDATE_DR | |
473 | 473 | |
474 | 474 | MCFG_PALETTE_LENGTH(256) |
475 | 475 | |
r17967 | r17968 | |
527 | 527 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
528 | 528 | MCFG_SCREEN_SIZE(64*8, 32*8) |
529 | 529 | MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 ) |
530 | MCFG_SCREEN_UPDATE_ | |
530 | MCFG_SCREEN_UPDATE_DR | |
531 | 531 | |
532 | 532 | MCFG_PALETTE_LENGTH(256) |
533 | 533 |
r17967 | r17968 | |
---|---|---|
431 | 431 | MCFG_SCREEN_REFRESH_RATE(59.61) /* verified on pcb */ |
432 | 432 | MCFG_SCREEN_SIZE(32*8, 32*8) |
433 | 433 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) /* verified */ |
434 | MCFG_SCREEN_UPDATE_ | |
434 | MCFG_SCREEN_UPDATE_DR | |
435 | 435 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) |
436 | 436 | |
437 | 437 | MCFG_GFXDECODE(toki) |
r17967 | r17968 | |
460 | 460 | MCFG_SCREEN_REFRESH_RATE(60) |
461 | 461 | MCFG_SCREEN_SIZE(32*8, 32*8) |
462 | 462 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) /* verified */ |
463 | MCFG_SCREEN_UPDATE_ | |
463 | MCFG_SCREEN_UPDATE_DR | |
464 | 464 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) |
465 | 465 | |
466 | 466 | MCFG_GFXDECODE(tokib) |
r17967 | r17968 | |
---|---|---|
54 | 54 | DECLARE_DRIVER_INIT(hvysmsh); |
55 | 55 | DECLARE_DRIVER_INIT(wcvol95); |
56 | 56 | virtual void video_start(); |
57 | UINT32 screen_update_wcvol95(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
57 | 58 | }; |
58 | 59 | |
59 | 60 | |
r17967 | r17968 | |
68 | 69 | } |
69 | 70 | |
70 | 71 | |
71 | stat | |
72 | UINT32 deco156_state::screen | |
72 | 73 | { |
73 | 74 | //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); | |
76 | 76 | |
77 | 77 | screen.machine().priority_bitmap.fill(0); |
78 | 78 | bitmap.fill(0); |
79 | 79 | |
80 | deco16ic_pf_update( | |
80 | deco16ic_pf_update( | |
81 | 81 | |
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); | |
85 | 85 | return 0; |
86 | 86 | } |
87 | 87 | |
r17967 | r17968 | |
363 | 363 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) |
364 | 364 | MCFG_SCREEN_SIZE(40*8, 32*8) |
365 | 365 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
366 | MCFG_SCREEN_UPDATE_ | |
366 | MCFG_SCREEN_UPDATE_DR | |
367 | 367 | |
368 | 368 | MCFG_GFXDECODE(hvysmsh) |
369 | 369 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
400 | 400 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) |
401 | 401 | MCFG_SCREEN_SIZE(40*8, 32*8) |
402 | 402 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
403 | MCFG_SCREEN_UPDATE_ | |
403 | MCFG_SCREEN_UPDATE_DR | |
404 | 404 | |
405 | 405 | MCFG_GFXDECODE(hvysmsh) |
406 | 406 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
349 | 349 | virtual void machine_reset(); |
350 | 350 | virtual void video_start(); |
351 | 351 | virtual void palette_init(); |
352 | UINT32 screen_update_dwarfd(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
352 | 353 | }; |
353 | 354 | |
354 | 355 | |
r17967 | r17968 | |
847 | 848 | } |
848 | 849 | |
849 | 850 | |
850 | stat | |
851 | UINT32 dwarfd_state::screen | |
851 | 852 | { |
852 | 853 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
853 | 854 | drawCrt(screen.machine(), bitmap, cliprect); |
r17967 | r17968 | |
1080 | 1081 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1081 | 1082 | MCFG_SCREEN_SIZE(272*2, 200+4*8) |
1082 | 1083 | MCFG_SCREEN_VISIBLE_AREA(0, 272*2-1, 0, 200-1) |
1083 | MCFG_SCREEN_UPDATE_ | |
1084 | MCFG_SCREEN_UPDATE_DR | |
1084 | 1085 | |
1085 | 1086 | MCFG_GFXDECODE(dwarfd) |
1086 | 1087 | MCFG_PALETTE_LENGTH(0x100) |
r17967 | r17968 | |
---|---|---|
950 | 950 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)*2) /* not accurate */ |
951 | 951 | MCFG_SCREEN_SIZE(32*8, 32*8) |
952 | 952 | MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 0, 30*8-1) |
953 | ||
953 | | |
954 | 954 | |
955 | 955 | MCFG_GFXDECODE(renegade) |
956 | 956 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
451 | 451 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
452 | 452 | MCFG_SCREEN_SIZE(32*8, 32*8) |
453 | 453 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) /* not sure about the visible area */ |
454 | MCFG_SCREEN_UPDATE_ | |
454 | MCFG_SCREEN_UPDATE_DR | |
455 | 455 | |
456 | 456 | /* sound hardware */ |
457 | 457 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
---|---|---|
68 | 68 | TILE_GET_INFO_MEMBER(get_sc0_tile_info); |
69 | 69 | virtual void video_start(); |
70 | 70 | virtual void palette_init(); |
71 | UINT32 screen_update_vvillage(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
71 | 72 | }; |
72 | 73 | |
73 | 74 | |
r17967 | r17968 | |
89 | 90 | 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); |
90 | 91 | } |
91 | 92 | |
92 | stat | |
93 | UINT32 caswin_state::screen | |
93 | 94 | { |
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); | |
96 | 96 | return 0; |
97 | 97 | } |
98 | 98 | |
r17967 | r17968 | |
313 | 313 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
314 | 314 | MCFG_SCREEN_SIZE(256, 256) |
315 | 315 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1) |
316 | MCFG_SCREEN_UPDATE_ | |
316 | MCFG_SCREEN_UPDATE_DR | |
317 | 317 | |
318 | 318 | MCFG_NVRAM_ADD_0FILL("nvram") |
319 | 319 |
r17967 | r17968 | |
---|---|---|
2921 | 2921 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2922 | 2922 | MCFG_SCREEN_SIZE(512, 256) |
2923 | 2923 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 240-1) |
2924 | MCFG_SCREEN_UPDATE_ | |
2924 | MCFG_SCREEN_UPDATE_DR | |
2925 | 2925 | |
2926 | 2926 | MCFG_PALETTE_LENGTH(4096) |
2927 | 2927 | |
r17967 | r17968 | |
3037 | 3037 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3038 | 3038 | MCFG_SCREEN_SIZE(512, 256) |
3039 | 3039 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 240-1) |
3040 | MCFG_SCREEN_UPDATE_ | |
3040 | MCFG_SCREEN_UPDATE_DR | |
3041 | 3041 | |
3042 | 3042 | MCFG_SCREEN_ADD("lcd0", RASTER) |
3043 | 3043 | MCFG_SCREEN_REFRESH_RATE(60) |
3044 | 3044 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3045 | 3045 | MCFG_SCREEN_SIZE(480, 64) |
3046 | 3046 | MCFG_SCREEN_VISIBLE_AREA(0, 480-1, 0, 64-1) |
3047 | MCFG_SCREEN_UPDATE_ | |
3047 | MCFG_SCREEN_UPDATE_DR | |
3048 | 3048 | |
3049 | 3049 | MCFG_SCREEN_ADD("lcd1", RASTER) |
3050 | 3050 | MCFG_SCREEN_REFRESH_RATE(60) |
3051 | 3051 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3052 | 3052 | MCFG_SCREEN_SIZE(480, 64) |
3053 | 3053 | MCFG_SCREEN_VISIBLE_AREA(0, 480-1, 0, 64-1) |
3054 | MCFG_SCREEN_UPDATE_ | |
3054 | MCFG_SCREEN_UPDATE_DR | |
3055 | 3055 | |
3056 | 3056 | MCFG_VIDEO_START_OVERRIDE(nbmj8688_state,mbmj8688_pure_16bit_LCD) |
3057 | 3057 |
r17967 | r17968 | |
---|---|---|
81 | 81 | DECLARE_READ8_MEMBER(test_r); |
82 | 82 | DECLARE_DRIVER_INIT(hitpoker); |
83 | 83 | virtual void video_start(); |
84 | UINT32 screen_update_hitpoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
84 | 85 | }; |
85 | 86 | |
86 | 87 | |
r17967 | r17968 | |
93 | 94 | m_colorram = auto_alloc_array(machine(), UINT8, 0x2000); |
94 | 95 | } |
95 | 96 | |
96 | static | |
97 | UINT32 hitpoker_state::screen_update_hitpoker(screen_device &screen, bitmap_ind | |
97 | 98 | { |
98 | hitpoker_state *state = screen.machine().driver_data<hitpoker_state>(); | |
99 | 99 | int count = 0; |
100 | 100 | int y,x; |
101 | 101 | |
r17967 | r17968 | |
107 | 107 | { |
108 | 108 | int tile,color,gfx_bpp; |
109 | 109 | |
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); | |
113 | 113 | |
114 | 114 | drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[gfx_bpp],tile,color,0,0,x*8,y*8); |
115 | 115 | |
r17967 | r17968 | |
505 | 505 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // not accurate |
506 | 506 | MCFG_SCREEN_SIZE(648, 480) //setted by the CRTC |
507 | 507 | MCFG_SCREEN_VISIBLE_AREA(0, 648-1, 0, 240-1) |
508 | MCFG_SCREEN_UPDATE_ | |
508 | MCFG_SCREEN_UPDATE_DR | |
509 | 509 | |
510 | 510 | MCFG_MC6845_ADD("crtc", H46505, CRTC_CLOCK/2, mc6845_intf) /* hand tuned to get ~60 fps */ |
511 | 511 |
r17967 | r17968 | |
---|---|---|
582 | 582 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
583 | 583 | MCFG_SCREEN_SIZE(64*16, 64*16) |
584 | 584 | MCFG_SCREEN_VISIBLE_AREA(0*16, 32*16-1, 3*16, 28*16-1) |
585 | MCFG_SCREEN_UPDATE_ | |
585 | MCFG_SCREEN_UPDATE_DR | |
586 | 586 | |
587 | 587 | MCFG_GFXDECODE(syvalion) |
588 | 588 | MCFG_PALETTE_LENGTH(33*16) |
r17967 | r17968 | |
623 | 623 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
624 | 624 | MCFG_SCREEN_SIZE(64*16, 64*16) |
625 | 625 | MCFG_SCREEN_VISIBLE_AREA(1*16, 21*16-1, 2*16, 17*16-1) |
626 | MCFG_SCREEN_UPDATE_ | |
626 | MCFG_SCREEN_UPDATE_DR | |
627 | 627 | |
628 | 628 | MCFG_GFXDECODE(recordbr) |
629 | 629 | MCFG_PALETTE_LENGTH(32*16) |
r17967 | r17968 | |
664 | 664 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
665 | 665 | MCFG_SCREEN_SIZE(64*16, 64*16) |
666 | 666 | MCFG_SCREEN_VISIBLE_AREA(1*16, 21*16-1, 2*16, 17*16-1) |
667 | MCFG_SCREEN_UPDATE_ | |
667 | MCFG_SCREEN_UPDATE_DR | |
668 | 668 | |
669 | 669 | MCFG_GFXDECODE(dleague) |
670 | 670 | MCFG_PALETTE_LENGTH(33*16) |
r17967 | r17968 | |
---|---|---|
275 | 275 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
276 | 276 | MCFG_SCREEN_SIZE(256, 256) |
277 | 277 | MCFG_SCREEN_VISIBLE_AREA(0, 255, 0 + 16 , 255 - 16) |
278 | MCFG_SCREEN_UPDATE_ | |
278 | MCFG_SCREEN_UPDATE_DR | |
279 | 279 | |
280 | 280 | MCFG_GFXDECODE(ginganin) |
281 | 281 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
251 | 251 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
252 | 252 | MCFG_SCREEN_SIZE(64*8, 32*8) |
253 | 253 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
254 | MCFG_SCREEN_UPDATE_ | |
254 | MCFG_SCREEN_UPDATE_DR | |
255 | 255 | |
256 | 256 | MCFG_GFXDECODE(tail2nos) |
257 | 257 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
---|---|---|
78 | 78 | DECLARE_READ8_MEMBER(gray5bit_controller1_r); |
79 | 79 | DECLARE_WRITE8_MEMBER(m79amb_8002_w); |
80 | 80 | DECLARE_DRIVER_INIT(m79amb); |
81 | UINT32 screen_update_ramtek(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
81 | 82 | }; |
82 | 83 | |
83 | 84 | |
r17967 | r17968 | |
86 | 87 | m_videoram[offset] = data & ~*m_mask; |
87 | 88 | } |
88 | 89 | |
89 | stat | |
90 | UINT32 m79amb_state::screen | |
90 | 91 | { |
91 | m79amb_state *state = screen.machine().driver_data<m79amb_state>(); | |
92 | 92 | offs_t offs; |
93 | 93 | |
94 | 94 | for (offs = 0; offs < 0x2000; offs++) |
95 | 95 | { |
96 | 96 | int i; |
97 | 97 | |
98 | UINT8 data = | |
98 | UINT8 data = | |
99 | 99 | int y = offs >> 5; |
100 | 100 | int x = (offs & 0x1f) << 3; |
101 | 101 | |
r17967 | r17968 | |
220 | 220 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
221 | 221 | MCFG_SCREEN_SIZE(32*8, 32*8) |
222 | 222 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 32*8-1) |
223 | MCFG_SCREEN_UPDATE_ | |
223 | MCFG_SCREEN_UPDATE_DR | |
224 | 224 | |
225 | 225 | /* sound hardware */ |
226 | 226 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
---|---|---|
209 | 209 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
210 | 210 | MCFG_SCREEN_SIZE(32*8, 32*8) |
211 | 211 | MCFG_SCREEN_VISIBLE_AREA(0*8, 30*8-1, 2*8, 30*8-1) |
212 | MCFG_SCREEN_UPDATE_ | |
212 | MCFG_SCREEN_UPDATE_DR | |
213 | 213 | |
214 | 214 | MCFG_GFXDECODE(mrjong) |
215 | 215 | MCFG_PALETTE_LENGTH(4*32) |
r17967 | r17968 | |
---|---|---|
559 | 559 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
560 | 560 | MCFG_SCREEN_SIZE(40*8, 32*8) |
561 | 561 | 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) | |
564 | 564 | |
565 | 565 | MCFG_GFXDECODE(slapshot) |
566 | 566 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
605 | 605 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
606 | 606 | MCFG_SCREEN_SIZE(40*8, 32*8) |
607 | 607 | 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) | |
610 | 610 | |
611 | 611 | MCFG_GFXDECODE(slapshot) |
612 | 612 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
---|---|---|
239 | 239 | DECLARE_MACHINE_START(meritm_crt250_crt252_crt258); |
240 | 240 | DECLARE_MACHINE_START(meritm_crt260); |
241 | 241 | DECLARE_MACHINE_START(merit_common); |
242 | UINT32 screen_update_meritm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
242 | 243 | }; |
243 | 244 | |
244 | 245 | |
r17967 | r17968 | |
461 | 462 | state_save_register_global(machine(), m_interrupt_vdp1_state); |
462 | 463 | } |
463 | 464 | |
464 | static | |
465 | UINT32 meritm_state::screen_update_meritm(screen_device &screen, bitmap_ind | |
465 | 466 | { |
466 | meritm_state *state = screen.machine().driver_data<meritm_state>(); | |
467 | 467 | if(screen.machine().input().code_pressed_once(KEYCODE_Q)) |
468 | 468 | { |
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"); | |
471 | 471 | } |
472 | 472 | if(screen.machine().input().code_pressed_once(KEYCODE_W)) |
473 | 473 | { |
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"); | |
476 | 476 | } |
477 | 477 | |
478 | 478 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
479 | 479 | |
480 | if ( | |
480 | if ( | |
481 | 481 | { |
482 | copybitmap(bitmap, | |
482 | copybitmap(bitmap, | |
483 | 483 | } |
484 | 484 | |
485 | if ( | |
485 | if ( | |
486 | 486 | { |
487 | copybitmap_trans(bitmap, | |
487 | copybitmap_trans(bitmap, | |
488 | 488 | } |
489 | 489 | return 0; |
490 | 490 | } |
r17967 | r17968 | |
1198 | 1198 | |
1199 | 1199 | MCFG_SCREEN_SIZE(MSX2_TOTAL_XRES_PIXELS, 262*2) |
1200 | 1200 | 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_ | |
1201 | MCFG_SCREEN_UPDATE_DR | |
1202 | 1202 | MCFG_PALETTE_LENGTH(512) |
1203 | 1203 | |
1204 | 1204 | MCFG_PALETTE_INIT( v9938 ) |
r17967 | r17968 | |
---|---|---|
65 | 65 | TILE_GET_INFO_MEMBER(get_t1_tile_info); |
66 | 66 | TILE_GET_INFO_MEMBER(get_t2_tile_info); |
67 | 67 | virtual void video_start(); |
68 | UINT32 screen_update_koftball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
68 | 69 | }; |
69 | 70 | |
70 | 71 | |
r17967 | r17968 | |
96 | 97 | m_tilemap_1->set_transparent_pen(0); |
97 | 98 | } |
98 | 99 | |
99 | stat | |
100 | UINT32 koftball_state::screen | |
100 | 101 | { |
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); | |
104 | 104 | return 0; |
105 | 105 | } |
106 | 106 | |
r17967 | r17968 | |
248 | 248 | MCFG_SCREEN_ADD("screen", RASTER) |
249 | 249 | MCFG_SCREEN_REFRESH_RATE(60) |
250 | 250 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
251 | MCFG_SCREEN_UPDATE_ | |
251 | MCFG_SCREEN_UPDATE_DR | |
252 | 252 | |
253 | 253 | MCFG_GFXDECODE(koftball) |
254 | 254 |
r17967 | r17968 | |
---|---|---|
224 | 224 | MCFG_SCREEN_ADD("screen", RASTER) |
225 | 225 | /* using the standard Exidy video parameters for now, needs to be confirmed */ |
226 | 226 | MCFG_SCREEN_RAW_PARAMS(VICTORY_PIXEL_CLOCK, VICTORY_HTOTAL, VICTORY_HBEND, VICTORY_HBSTART, VICTORY_VTOTAL, VICTORY_VBEND, VICTORY_VBSTART) |
227 | MCFG_SCREEN_UPDATE_ | |
227 | MCFG_SCREEN_UPDATE_DR | |
228 | 228 | |
229 | 229 | MCFG_PALETTE_LENGTH(64) |
230 | 230 |
r17967 | r17968 | |
---|---|---|
58 | 58 | virtual void video_start(); |
59 | 59 | virtual void video_reset(); |
60 | 60 | DECLARE_MACHINE_RESET(airrace); |
61 | UINT32 screen_update_atarisy4(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
61 | 62 | }; |
62 | 63 | |
63 | 64 | |
r17967 | r17968 | |
155 | 156 | gpu.vblank_wait = 0; |
156 | 157 | } |
157 | 158 | |
158 | stat | |
159 | UINT32 atarisy4_state::screen | |
159 | 160 | { |
160 | atarisy4_state *state = screen.machine().driver_data<atarisy4_state>(); | |
161 | 161 | int y; |
162 | 162 | UINT32 offset = 0; |
163 | 163 | |
r17967 | r17968 | |
174 | 174 | |
175 | 175 | for (y = cliprect.min_y; y <= cliprect.max_y; ++y) |
176 | 176 | { |
177 | UINT16 *src = & | |
177 | UINT16 *src = & | |
178 | 178 | UINT32 *dest = &bitmap.pix32(y, cliprect.min_x); |
179 | 179 | int x; |
180 | 180 | |
r17967 | r17968 | |
740 | 740 | MCFG_SCREEN_ADD("screen", RASTER) |
741 | 741 | MCFG_SCREEN_RAW_PARAMS(32000000/2, 660, 0, 512, 404, 0, 384) |
742 | 742 | MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK) |
743 | MCFG_SCREEN_UPDATE_ | |
743 | MCFG_SCREEN_UPDATE_DR | |
744 | 744 | MCFG_PALETTE_LENGTH(256) |
745 | 745 | |
746 | 746 | MACHINE_CONFIG_END |
r17967 | r17968 | |
---|---|---|
1379 | 1379 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1380 | 1380 | MCFG_SCREEN_SIZE(64*8, 32*8) |
1381 | 1381 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 1*8, 30*8-1) |
1382 | MCFG_SCREEN_UPDATE_ | |
1382 | MCFG_SCREEN_UPDATE_DR | |
1383 | 1383 | |
1384 | 1384 | MCFG_GFXDECODE(lucky74) |
1385 | 1385 |
r17967 | r17968 | |
---|---|---|
414 | 414 | |
415 | 415 | MCFG_SCREEN_ADD("screen", RASTER) |
416 | 416 | MCFG_SCREEN_RAW_PARAMS(XTAL_14MHz/2, 446, 0, 320, 286, 0, 240) |
417 | MCFG_SCREEN_UPDATE_ | |
417 | MCFG_SCREEN_UPDATE_DR | |
418 | 418 | MCFG_SCREEN_VBLANK_DEVICE("spriteram8", buffered_spriteram8_device, vblank_copy_rising) |
419 | 419 | |
420 | 420 | MCFG_GFXDECODE(wardner) |
r17967 | r17968 | |
---|---|---|
919 | 919 | MCFG_SCREEN_REFRESH_RATE(58) |
920 | 920 | MCFG_SCREEN_SIZE(32*8, 32*8) |
921 | 921 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
922 | MCFG_SCREEN_UPDATE_ | |
922 | MCFG_SCREEN_UPDATE_DR | |
923 | 923 | |
924 | 924 | MCFG_GFXDECODE(cninja) |
925 | 925 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
971 | 971 | MCFG_SCREEN_REFRESH_RATE(58) |
972 | 972 | MCFG_SCREEN_SIZE(32*8, 32*8) |
973 | 973 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
974 | MCFG_SCREEN_UPDATE_ | |
974 | MCFG_SCREEN_UPDATE_DR | |
975 | 975 | |
976 | 976 | MCFG_GFXDECODE(cninja) |
977 | 977 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
1023 | 1023 | MCFG_SCREEN_REFRESH_RATE(58) |
1024 | 1024 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1025 | 1025 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
1026 | MCFG_SCREEN_UPDATE_ | |
1026 | MCFG_SCREEN_UPDATE_DR | |
1027 | 1027 | |
1028 | 1028 | MCFG_GFXDECODE(cninjabl) |
1029 | 1029 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
1066 | 1066 | MCFG_SCREEN_REFRESH_RATE(58) |
1067 | 1067 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1068 | 1068 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
1069 | MCFG_SCREEN_UPDATE_ | |
1069 | MCFG_SCREEN_UPDATE_DR | |
1070 | 1070 | |
1071 | 1071 | MCFG_GFXDECODE(cninja) |
1072 | 1072 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
1118 | 1118 | MCFG_SCREEN_REFRESH_RATE(60) |
1119 | 1119 | MCFG_SCREEN_SIZE(40*8, 32*8) |
1120 | 1120 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
1121 | MCFG_SCREEN_UPDATE_ | |
1121 | MCFG_SCREEN_UPDATE_DR | |
1122 | 1122 | |
1123 | 1123 | MCFG_GFXDECODE(robocop2) |
1124 | 1124 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
1171 | 1171 | MCFG_SCREEN_REFRESH_RATE(60) |
1172 | 1172 | MCFG_SCREEN_SIZE(40*8, 32*8) |
1173 | 1173 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
1174 | MCFG_SCREEN_UPDATE_ | |
1174 | MCFG_SCREEN_UPDATE_DR | |
1175 | 1175 | |
1176 | 1176 | MCFG_VIDEO_START_OVERRIDE(cninja_state,mutantf) |
1177 | 1177 |
r17967 | r17968 | |
---|---|---|
381 | 381 | DECLARE_DRIVER_INIT(suprmatk); |
382 | 382 | virtual void machine_start(); |
383 | 383 | virtual void machine_reset(); |
384 | UINT32 screen_update_missile(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
384 | 385 | }; |
385 | 386 | |
386 | 387 | |
r17967 | r17968 | |
666 | 667 | * |
667 | 668 | *************************************/ |
668 | 669 | |
669 | static | |
670 | UINT32 missile_state::screen_update_missile(screen_device &screen, bitmap_ind | |
670 | 671 | { |
671 | missile_state *state = screen.machine().driver_data<missile_state>(); | |
672 | UINT8 *videoram = state->m_videoram; | |
672 | UINT8 *videoram = m_videoram; | |
673 | 673 | int x, y; |
674 | 674 | |
675 | 675 | /* draw the bitmap to the screen, looping over Y */ |
r17967 | r17968 | |
677 | 677 | { |
678 | 678 | UINT16 *dst = &bitmap.pix16(y); |
679 | 679 | |
680 | int effy = | |
680 | int effy = | |
681 | 681 | UINT8 *src = &videoram[effy * 64]; |
682 | 682 | UINT8 *src3 = NULL; |
683 | 683 | |
r17967 | r17968 | |
1044 | 1044 | |
1045 | 1045 | MCFG_SCREEN_ADD("screen", RASTER) |
1046 | 1046 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
1047 | MCFG_SCREEN_UPDATE_ | |
1047 | MCFG_SCREEN_UPDATE_DR | |
1048 | 1048 | |
1049 | 1049 | /* sound hardware */ |
1050 | 1050 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
---|---|---|
53 | 53 | DECLARE_WRITE8_MEMBER(go2000_pcm_1_bankswitch_w); |
54 | 54 | virtual void machine_start(); |
55 | 55 | virtual void video_start(); |
56 | UINT32 screen_update_go2000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
56 | 57 | }; |
57 | 58 | |
58 | 59 | |
r17967 | r17968 | |
174 | 175 | { |
175 | 176 | } |
176 | 177 | |
177 | stat | |
178 | UINT32 go2000_state::screen | |
178 | 179 | { |
179 | go2000_state *state = screen.machine().driver_data<go2000_state>(); | |
180 | 180 | int x,y; |
181 | 181 | int count = 0; |
182 | 182 | |
r17967 | r17968 | |
185 | 185 | { |
186 | 186 | for (y = 0; y < 32; y++) |
187 | 187 | { |
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]; | |
190 | 190 | drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], tile, attr, 0, 0, x * 8, y * 8); |
191 | 191 | count++; |
192 | 192 | } |
r17967 | r17968 | |
197 | 197 | { |
198 | 198 | for (y = 0; y < 32; y++) |
199 | 199 | { |
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]; | |
202 | 202 | drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0], tile, attr, 0, 0, x * 8, y * 8, 0xf); |
203 | 203 | count++; |
204 | 204 | } |
r17967 | r17968 | |
219 | 219 | int dx, dy; |
220 | 220 | int flipx, y0; |
221 | 221 | |
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]; | |
225 | 225 | |
226 | 226 | int bank = (x >> 12) & 0xf; |
227 | 227 | |
r17967 | r17968 | |
270 | 270 | for (dx = 0; dx < dimx * 8; dx += 8) |
271 | 271 | { |
272 | 272 | 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]; | |
275 | 275 | |
276 | 276 | int sx = x + dx; |
277 | 277 | int sy = (y + dy) & 0xff; |
r17967 | r17968 | |
282 | 282 | if (flipx) |
283 | 283 | tile_flipx = !tile_flipx; |
284 | 284 | |
285 | if ( | |
285 | if ( | |
286 | 286 | { |
287 | 287 | sx = max_x - sx; |
288 | 288 | sy = max_y - sy; |
r17967 | r17968 | |
340 | 340 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
341 | 341 | MCFG_SCREEN_SIZE(64*8, 32*8) |
342 | 342 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) |
343 | MCFG_SCREEN_UPDATE_ | |
343 | MCFG_SCREEN_UPDATE_DR | |
344 | 344 | |
345 | 345 | MCFG_PALETTE_LENGTH(0x800) |
346 | 346 |
r17967 | r17968 | |
---|---|---|
826 | 826 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
827 | 827 | MCFG_SCREEN_SIZE(32*8, 32*8) |
828 | 828 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
829 | MCFG_SCREEN_UPDATE_ | |
829 | MCFG_SCREEN_UPDATE_DR | |
830 | 830 | |
831 | 831 | MCFG_GFXDECODE(jack) |
832 | 832 | MCFG_PALETTE_LENGTH(32) |
r17967 | r17968 | |
867 | 867 | |
868 | 868 | MCFG_SCREEN_MODIFY("screen") |
869 | 869 | MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1) |
870 | MCFG_SCREEN_UPDATE_ | |
870 | MCFG_SCREEN_UPDATE_DR | |
871 | 871 | |
872 | 872 | MCFG_PALETTE_INIT_OVERRIDE(jack_state,joinem) |
873 | 873 | MCFG_VIDEO_START_OVERRIDE(jack_state,joinem) |
r17967 | r17968 | |
886 | 886 | |
887 | 887 | MCFG_SCREEN_MODIFY("screen") |
888 | 888 | MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1) |
889 | MCFG_SCREEN_UPDATE_ | |
889 | MCFG_SCREEN_UPDATE_DR | |
890 | 890 | |
891 | 891 | MCFG_PALETTE_INIT_OVERRIDE(jack_state,joinem) |
892 | 892 | MCFG_VIDEO_START_OVERRIDE(jack_state,joinem) |
r17967 | r17968 | |
---|---|---|
256 | 256 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
257 | 257 | MCFG_SCREEN_SIZE(32*8, 32*8) |
258 | 258 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
259 | MCFG_SCREEN_UPDATE_ | |
259 | MCFG_SCREEN_UPDATE_DR | |
260 | 260 | |
261 | 261 | MCFG_GFXDECODE(dogfgt) |
262 | 262 | MCFG_PALETTE_LENGTH(16+64) |
r17967 | r17968 | |
---|---|---|
496 | 496 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
497 | 497 | MCFG_SCREEN_SIZE(64*8, 32*8) |
498 | 498 | MCFG_SCREEN_VISIBLE_AREA(16*8, (64-16)*8-1, 0*8, 32*8-1 ) |
499 | MCFG_SCREEN_UPDATE_ | |
499 | MCFG_SCREEN_UPDATE_DR | |
500 | 500 | |
501 | 501 | MCFG_GFXDECODE(vigilant) |
502 | 502 | MCFG_PALETTE_LENGTH(512+32) /* 512 real palette, 32 virtual palette */ |
r17967 | r17968 | |
536 | 536 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
537 | 537 | MCFG_SCREEN_SIZE(64*8, 32*8) |
538 | 538 | MCFG_SCREEN_VISIBLE_AREA(16*8, (64-16)*8-1, 0*8, 32*8-1 ) |
539 | MCFG_SCREEN_UPDATE_ | |
539 | MCFG_SCREEN_UPDATE_DR | |
540 | 540 | |
541 | 541 | MCFG_GFXDECODE(buccanrs) |
542 | 542 | MCFG_PALETTE_LENGTH(512+32) /* 512 real palette, 32 virtual palette */ |
r17967 | r17968 | |
592 | 592 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
593 | 593 | MCFG_SCREEN_SIZE(64*8, 32*8) |
594 | 594 | MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 0*8, 32*8-1 ) |
595 | MCFG_SCREEN_UPDATE_ | |
595 | MCFG_SCREEN_UPDATE_DR | |
596 | 596 | |
597 | 597 | MCFG_GFXDECODE(kikcubic) |
598 | 598 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
1808 | 1808 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1809 | 1809 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1810 | 1810 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
1811 | MCFG_SCREEN_UPDATE_ | |
1811 | MCFG_SCREEN_UPDATE_DR | |
1812 | 1812 | |
1813 | 1813 | MCFG_GFXDECODE(taitosj) |
1814 | 1814 | MCFG_PALETTE_LENGTH(64) |
r17967 | r17968 | |
1859 | 1859 | MCFG_CPU_PROGRAM_MAP(kikstart_main_map) |
1860 | 1860 | |
1861 | 1861 | MCFG_SCREEN_MODIFY("screen") |
1862 | MCFG_SCREEN_UPDATE_ | |
1862 | MCFG_SCREEN_UPDATE_DR | |
1863 | 1863 | MACHINE_CONFIG_END |
1864 | 1864 | |
1865 | 1865 |
r17967 | r17968 | |
---|---|---|
1481 | 1481 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1482 | 1482 | MCFG_SCREEN_SIZE(1024, 512) |
1483 | 1483 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 240-1) |
1484 | MCFG_SCREEN_UPDATE_ | |
1484 | MCFG_SCREEN_UPDATE_DR | |
1485 | 1485 | |
1486 | 1486 | MCFG_PALETTE_LENGTH(256) |
1487 | 1487 | |
r17967 | r17968 | |
1514 | 1514 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1515 | 1515 | MCFG_SCREEN_SIZE(1024, 512) |
1516 | 1516 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 240-1) |
1517 | MCFG_SCREEN_UPDATE_ | |
1517 | MCFG_SCREEN_UPDATE_DR | |
1518 | 1518 | |
1519 | 1519 | MCFG_PALETTE_LENGTH(256) |
1520 | 1520 |
r17967 | r17968 | |
---|---|---|
452 | 452 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
453 | 453 | MCFG_SCREEN_SIZE(32*8, 32*8) |
454 | 454 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
455 | MCFG_SCREEN_UPDATE_ | |
455 | MCFG_SCREEN_UPDATE_DR | |
456 | 456 | |
457 | 457 | MCFG_GFXDECODE(galivan) |
458 | 458 | MCFG_PALETTE_LENGTH(8*16+16*16+256*16) |
r17967 | r17968 | |
494 | 494 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
495 | 495 | MCFG_SCREEN_SIZE(32*8, 32*8) |
496 | 496 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
497 | MCFG_SCREEN_UPDATE_ | |
497 | MCFG_SCREEN_UPDATE_DR | |
498 | 498 | |
499 | 499 | MCFG_GFXDECODE(ninjemak) |
500 | 500 | MCFG_PALETTE_LENGTH(8*16+16*16+256*16) |
r17967 | r17968 | |
---|---|---|
63 | 63 | |
64 | 64 | DECLARE_WRITE_LINE_MEMBER(meyc8088_sound_out); |
65 | 65 | 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); | |
66 | 68 | }; |
67 | 69 | |
68 | 70 | |
r17967 | r17968 | |
122 | 124 | auto_free(machine(), rgb); |
123 | 125 | } |
124 | 126 | |
125 | stat | |
127 | UINT32 meyc8088_state::screen | |
126 | 128 | { |
127 | meyc8088_state *state = screen.machine().driver_data<meyc8088_state>(); | |
128 | 129 | UINT8 v[5]; |
129 | v[4] = | |
130 | v[4] = | |
130 | 131 | |
131 | if (~ | |
132 | if (~ | |
132 | 133 | { |
133 | 134 | // screen off |
134 | 135 | bitmap.fill(v[4]); |
r17967 | r17968 | |
140 | 141 | UINT8 y = (offs-0x800) >> 6; |
141 | 142 | UINT8 x = (offs-0x800) << 2; |
142 | 143 | |
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 | |
147 | 148 | |
148 | 149 | for (int i = 0; i < 8; i++) |
149 | 150 | 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]; |
r17967 | r17968 | |
152 | 153 | return 0; |
153 | 154 | } |
154 | 155 | |
155 | stat | |
156 | void meyc8088_state::screen | |
156 | 157 | { |
157 | meyc8088_state *state = screen.machine().driver_data<meyc8088_state>(); | |
158 | ||
158 | device_execute_interface *intf; | |
159 | m_maincpu->interface(intf); | |
159 | 160 | // INTR on LC255 (pulses at start and end of vblank), INTA hardwired to $20 |
160 | generic_pulse_irq_line_and_vector( | |
161 | generic_pulse_irq_line_and_vector(* | |
161 | 162 | } |
162 | 163 | |
163 | 164 | |
r17967 | r17968 | |
386 | 387 | /* video hardware */ |
387 | 388 | MCFG_SCREEN_ADD("screen", RASTER) |
388 | 389 | 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) | |
391 | 392 | |
392 | 393 | MCFG_PALETTE_LENGTH(32) |
393 | 394 |
r17967 | r17968 | |
---|---|---|
59 | 59 | virtual void machine_start(); |
60 | 60 | virtual void machine_reset(); |
61 | 61 | virtual void video_start(); |
62 | public: | |
63 | UINT32 screen_update_destiny(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
62 | 64 | }; |
63 | 65 | |
64 | 66 | |
r17967 | r17968 | |
72 | 74 | m_led_array[20] = 0; |
73 | 75 | } |
74 | 76 | |
75 | stat | |
77 | UINT32 destiny_state::screen | |
76 | 78 | { |
77 | destiny_state *state = screen.machine().driver_data<destiny_state>(); | |
78 | popmessage("%s",state->m_led_array); | |
79 | popmessage("%s",m_led_array); | |
79 | 80 | return 0; |
80 | 81 | } |
81 | 82 | |
r17967 | r17968 | |
268 | 269 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
269 | 270 | MCFG_SCREEN_SIZE(48*8, 16*8) |
270 | 271 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 16*8-1) |
271 | MCFG_SCREEN_UPDATE_ | |
272 | MCFG_SCREEN_UPDATE_DR | |
272 | 273 | MCFG_PALETTE_LENGTH(16) |
273 | 274 | |
274 | 275 |
r17967 | r17968 | |
---|---|---|
248 | 248 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(22 * 1000000 / 15750)) |
249 | 249 | MCFG_SCREEN_SIZE(256, 240) |
250 | 250 | MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239) |
251 | MCFG_SCREEN_UPDATE_ | |
251 | MCFG_SCREEN_UPDATE_DR | |
252 | 252 | |
253 | 253 | MCFG_GFXDECODE(canyon) |
254 | 254 | MCFG_PALETTE_LENGTH(4) |
r17967 | r17968 | |
---|---|---|
58 | 58 | TILE_GET_INFO_MEMBER(get_tx_tilemap_tile_info); |
59 | 59 | TILE_GET_INFO_MEMBER(get_bg_tilemap_tile_info); |
60 | 60 | virtual void video_start(); |
61 | UINT32 screen_update_igs_majhong(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
61 | 62 | }; |
62 | 63 | |
63 | 64 | |
r17967 | r17968 | |
181 | 182 | logerror("Video START OK!\n"); |
182 | 183 | } |
183 | 184 | |
184 | stat | |
185 | UINT32 igs_m027_state::screen | |
185 | 186 | { |
186 | igs_m027_state *state = screen.machine().driver_data<igs_m027_state>(); | |
187 | 187 | //?????????? |
188 | 188 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
189 | 189 | |
190 | 190 | //?????? |
191 | | |
191 | | |
192 | 192 | |
193 | 193 | //CG?????? |
194 | 194 | |
195 | 195 | //?????? |
196 | | |
196 | | |
197 | 197 | //fprintf(stdout,"Video UPDATE OK!\n"); |
198 | 198 | return 0; |
199 | 199 | } |
r17967 | r17968 | |
379 | 379 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
380 | 380 | MCFG_SCREEN_SIZE(512, 256) |
381 | 381 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) |
382 | MCFG_SCREEN_UPDATE_ | |
382 | MCFG_SCREEN_UPDATE_DR | |
383 | 383 | |
384 | 384 | MCFG_PALETTE_LENGTH(0x200) |
385 | 385 |
r17967 | r17968 | |
---|---|---|
508 | 508 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
509 | 509 | MCFG_SCREEN_SIZE(64*8, 64*8) |
510 | 510 | MCFG_SCREEN_VISIBLE_AREA(2*8, 48*8-1, 2*8, 32*8-1) |
511 | MCFG_SCREEN_UPDATE_ | |
511 | MCFG_SCREEN_UPDATE_DR | |
512 | 512 | |
513 | 513 | MCFG_GFXDECODE(splash) |
514 | 514 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
565 | 565 | MCFG_SCREEN_SIZE(64*8, 64*8) |
566 | 566 | MCFG_SCREEN_VISIBLE_AREA(2*8, 48*8-1, 2*8, 32*8-1) |
567 | 567 | |
568 | MCFG_SCREEN_UPDATE_ | |
568 | MCFG_SCREEN_UPDATE_DR | |
569 | 569 | |
570 | 570 | MCFG_GFXDECODE(splash) |
571 | 571 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
644 | 644 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
645 | 645 | MCFG_SCREEN_SIZE(64*8, 64*8) |
646 | 646 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 32*8-1) |
647 | MCFG_SCREEN_UPDATE_ | |
647 | MCFG_SCREEN_UPDATE_DR | |
648 | 648 | |
649 | 649 | MCFG_GFXDECODE(splash) |
650 | 650 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
---|---|---|
23 | 23 | DECLARE_READ8_MEMBER(test_r); |
24 | 24 | virtual void video_start(); |
25 | 25 | virtual void palette_init(); |
26 | UINT32 screen_update_buster(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
26 | 27 | }; |
27 | 28 | |
28 | 29 | |
r17967 | r17968 | |
30 | 31 | { |
31 | 32 | } |
32 | 33 | |
33 | static | |
34 | UINT32 buster_state::screen_update_buster(screen_device &screen, bitmap_ind | |
34 | 35 | { |
35 | buster_state *state = screen.machine().driver_data<buster_state>(); | |
36 | 36 | gfx_element *gfx = screen.machine().gfx[0]; |
37 | 37 | int count = 0x0000; |
38 | 38 | |
r17967 | r17968 | |
43 | 43 | { |
44 | 44 | for (x=0;x<32;x++) |
45 | 45 | { |
46 | int tile = ( | |
46 | int tile = ( | |
47 | 47 | //int colour = tile>>12; |
48 | 48 | drawgfx_opaque(bitmap,cliprect,gfx,tile,0,0,0,x*8,y*4); |
49 | 49 | |
r17967 | r17968 | |
341 | 341 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
342 | 342 | MCFG_SCREEN_SIZE(256, 256) |
343 | 343 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1) |
344 | MCFG_SCREEN_UPDATE_ | |
344 | MCFG_SCREEN_UPDATE_DR | |
345 | 345 | MCFG_MC6845_ADD("crtc", MC6845, XTAL_3_579545MHz/4, mc6845_intf) //unknown clock / type |
346 | 346 | |
347 | 347 | MCFG_GFXDECODE(buster) |
r17967 | r17968 | |
---|---|---|
165 | 165 | DECLARE_VIDEO_START(mtrain); |
166 | 166 | DECLARE_MACHINE_RESET(am188em); |
167 | 167 | DECLARE_VIDEO_START(xtrain); |
168 | UINT32 screen_update_subsino2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
168 | 169 | }; |
169 | 170 | |
170 | 171 | |
r17967 | r17968 | |
631 | 632 | m_ss9601_reelrects[2].set(0, 0, 0x18*8, 256-16-1); |
632 | 633 | } |
633 | 634 | |
634 | stat | |
635 | UINT32 subsino2_state::screen | |
635 | 636 | { |
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; | |
638 | 638 | int y; |
639 | 639 | |
640 | 640 | #ifdef MAME_DEBUG |
r17967 | r17968 | |
650 | 650 | // Line Scroll / Reel Control |
651 | 651 | int mask_y[2] = {0, 0}; |
652 | 652 | bool l0_reel = false; |
653 | switch ( | |
653 | switch ( | |
654 | 654 | { |
655 | 655 | case 0xbf: |
656 | 656 | mask_y[0] = ~(32-1); |
r17967 | r17968 | |
669 | 669 | // Scroll |
670 | 670 | for (int i = 0; i < 2; i++) |
671 | 671 | { |
672 | layer_t *l = & | |
672 | layer_t *l = & | |
673 | 673 | |
674 | 674 | l->tmap->set_scroll_cols(1); |
675 | 675 | l->tmap->set_scroll_rows(0x200); |
r17967 | r17968 | |
691 | 691 | |
692 | 692 | if (layers_ctrl & 1) |
693 | 693 | { |
694 | layer_t *l = & | |
694 | layer_t *l = & | |
695 | 695 | |
696 | 696 | if (l0_reel) |
697 | 697 | { |
r17967 | r17968 | |
700 | 700 | |
701 | 701 | for (int r = 0; r < 3; r++) |
702 | 702 | { |
703 | rectangle visible = | |
703 | rectangle visible = | |
704 | 704 | |
705 | 705 | for (int x = 0; x < 0x40; x++) |
706 | 706 | { |
r17967 | r17968 | |
708 | 708 | visible.max_x = 8 * (x+1) - 1; |
709 | 709 | |
710 | 710 | int reeladdr = (visible.min_y / 0x10) * 0x80 + x; |
711 | UINT16 reelscroll = ( | |
711 | UINT16 reelscroll = ( | |
712 | 712 | |
713 | 713 | l->tmap->set_scrollx(0, (reelscroll >> 9) * 8 + l->scroll_x - visible.min_x); |
714 | 714 | |
r17967 | r17968 | |
746 | 746 | } |
747 | 747 | } |
748 | 748 | |
749 | if (layers_ctrl & 2) | |
749 | if (layers_ctrl & 2) | |
750 | 750 | |
751 | // popmessage("scrl: %03x,%03x - %03x,%03x dis: %02x siz: %02x ctrl: %02x", | |
751 | // popmessage("scrl: %03x,%03x - %03x,%03x dis: %02x siz: %02x ctrl: %02x", | |
752 | 752 | |
753 | 753 | return 0; |
754 | 754 | } |
r17967 | r17968 | |
2188 | 2188 | MCFG_SCREEN_SIZE( 512, 256 ) |
2189 | 2189 | MCFG_SCREEN_VISIBLE_AREA( 0, 512-1, 0, 256-16-1 ) |
2190 | 2190 | MCFG_SCREEN_REFRESH_RATE( 60 ) |
2191 | MCFG_SCREEN_UPDATE_ | |
2191 | MCFG_SCREEN_UPDATE_DR | |
2192 | 2192 | |
2193 | 2193 | MCFG_GFXDECODE( ss9601 ) |
2194 | 2194 | MCFG_PALETTE_LENGTH( 256 ) |
r17967 | r17968 | |
2216 | 2216 | MCFG_SCREEN_VISIBLE_AREA( 0, 512-1, 0, 256-32-1 ) |
2217 | 2217 | MCFG_SCREEN_REFRESH_RATE( 58.7270 ) |
2218 | 2218 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // game reads vblank state |
2219 | MCFG_SCREEN_UPDATE_ | |
2219 | MCFG_SCREEN_UPDATE_DR | |
2220 | 2220 | |
2221 | 2221 | MCFG_GFXDECODE( ss9601 ) |
2222 | 2222 | MCFG_PALETTE_LENGTH( 256 ) |
r17967 | r17968 | |
2249 | 2249 | MCFG_SCREEN_VISIBLE_AREA( 0, 512-1, 0, 256-16-1 ) |
2250 | 2250 | MCFG_SCREEN_REFRESH_RATE( 58.7270 ) |
2251 | 2251 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // game reads vblank state |
2252 | MCFG_SCREEN_UPDATE_ | |
2252 | MCFG_SCREEN_UPDATE_DR | |
2253 | 2253 | |
2254 | 2254 | MCFG_GFXDECODE( ss9601 ) |
2255 | 2255 | MCFG_PALETTE_LENGTH( 256 ) |
r17967 | r17968 | |
2286 | 2286 | MCFG_SCREEN_VISIBLE_AREA( 0, 512-1, 0, 256-16-1 ) |
2287 | 2287 | MCFG_SCREEN_REFRESH_RATE( 58.7270 ) |
2288 | 2288 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // game reads vblank state |
2289 | MCFG_SCREEN_UPDATE_ | |
2289 | MCFG_SCREEN_UPDATE_DR | |
2290 | 2290 | |
2291 | 2291 | MCFG_GFXDECODE( ss9601 ) |
2292 | 2292 | MCFG_PALETTE_LENGTH( 256 ) |
r17967 | r17968 | |
---|---|---|
183 | 183 | DECLARE_MACHINE_RESET(m63); |
184 | 184 | DECLARE_VIDEO_START(m63); |
185 | 185 | DECLARE_PALETTE_INIT(m63); |
186 | UINT32 screen_update_m63(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
186 | 187 | }; |
187 | 188 | |
188 | 189 | |
r17967 | r17968 | |
359 | 360 | } |
360 | 361 | } |
361 | 362 | |
362 | stat | |
363 | UINT32 m63_state::screen | |
363 | 364 | { |
364 | m63_state *state = screen.machine().driver_data<m63_state>(); | |
365 | 365 | |
366 | 366 | int col; |
367 | 367 | |
368 | 368 | for (col = 0; col < 32; col++) |
369 | | |
369 | | |
370 | 370 | |
371 | | |
371 | | |
372 | 372 | draw_sprites(screen.machine(), bitmap, cliprect); |
373 | | |
373 | | |
374 | 374 | return 0; |
375 | 375 | } |
376 | 376 | |
r17967 | r17968 | |
784 | 784 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
785 | 785 | MCFG_SCREEN_SIZE(32*8, 32*8) |
786 | 786 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
787 | MCFG_SCREEN_UPDATE_ | |
787 | MCFG_SCREEN_UPDATE_DR | |
788 | 788 | |
789 | 789 | MCFG_GFXDECODE(m63) |
790 | 790 | MCFG_PALETTE_LENGTH(256+4) |
r17967 | r17968 | |
828 | 828 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
829 | 829 | MCFG_SCREEN_SIZE(32*8, 32*8) |
830 | 830 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
831 | MCFG_SCREEN_UPDATE_ | |
831 | MCFG_SCREEN_UPDATE_DR | |
832 | 832 | |
833 | 833 | MCFG_GFXDECODE(fghtbskt) |
834 | 834 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
612 | 612 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1) |
613 | 613 | MCFG_SCREEN_REFRESH_RATE(57) |
614 | 614 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) /* frames per second, vblank duration */ |
615 | MCFG_SCREEN_UPDATE_ | |
615 | MCFG_SCREEN_UPDATE_DR | |
616 | 616 | |
617 | 617 | /* sound hardware */ |
618 | 618 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
640 | 640 | |
641 | 641 | /* video hardware */ |
642 | 642 | MCFG_SCREEN_MODIFY("screen") |
643 | MCFG_SCREEN_UPDATE_ | |
643 | MCFG_SCREEN_UPDATE_DR | |
644 | 644 | |
645 | 645 | /* sound hardware */ |
646 | 646 | MCFG_SOUND_MODIFY("ay8910") |
r17967 | r17968 | |
678 | 678 | |
679 | 679 | /* video hardware */ |
680 | 680 | MCFG_SCREEN_MODIFY("screen") |
681 | MCFG_SCREEN_UPDATE_ | |
681 | MCFG_SCREEN_UPDATE_DR | |
682 | 682 | MACHINE_CONFIG_END |
683 | 683 | |
684 | 684 |
r17967 | r17968 | |
---|---|---|
36 | 36 | virtual void machine_start(); |
37 | 37 | virtual void machine_reset(); |
38 | 38 | 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); | |
39 | 41 | }; |
40 | 42 | |
41 | 43 | static ADDRESS_MAP_START( pgm2_map, AS_PROGRAM, 32, pgm2_state ) |
r17967 | r17968 | |
45 | 47 | static INPUT_PORTS_START( pgm2 ) |
46 | 48 | INPUT_PORTS_END |
47 | 49 | |
48 | static | |
50 | UINT32 pgm2_state::screen_update_pgm2(screen_device &screen, bitmap_ind | |
49 | 51 | { |
50 | 52 | return 0; |
51 | 53 | } |
52 | 54 | |
53 | stat | |
55 | void pgm2_state::screen | |
54 | 56 | { |
55 | 57 | |
56 | 58 | } |
r17967 | r17968 | |
139 | 141 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
140 | 142 | MCFG_SCREEN_SIZE(64*8, 64*8) |
141 | 143 | 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) | |
144 | 146 | |
145 | 147 | MCFG_PALETTE_LENGTH(0x1000) |
146 | 148 |
r17967 | r17968 | |
---|---|---|
474 | 474 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(3000)) |
475 | 475 | MCFG_SCREEN_SIZE(64*8, 64*8) |
476 | 476 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) |
477 | MCFG_SCREEN_UPDATE_ | |
477 | MCFG_SCREEN_UPDATE_DR | |
478 | 478 | |
479 | 479 | MCFG_PALETTE_LENGTH(0x4000+0x800) |
480 | 480 |
r17967 | r17968 | |
---|---|---|
835 | 835 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
836 | 836 | MCFG_SCREEN_SIZE(32*8, 32*8) |
837 | 837 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) |
838 | MCFG_SCREEN_UPDATE_ | |
838 | MCFG_SCREEN_UPDATE_DR | |
839 | 839 | |
840 | 840 | MCFG_GFXDECODE(sasuke) |
841 | 841 | MCFG_PALETTE_LENGTH(32) |
r17967 | r17968 | |
908 | 908 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
909 | 909 | MCFG_SCREEN_SIZE(32*8, 32*8) |
910 | 910 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) |
911 | MCFG_SCREEN_UPDATE_ | |
911 | MCFG_SCREEN_UPDATE_DR | |
912 | 912 | |
913 | 913 | MCFG_GFXDECODE(vanguard) |
914 | 914 | MCFG_PALETTE_LENGTH(64) |
r17967 | r17968 | |
---|---|---|
285 | 285 | MCFG_SCREEN_REFRESH_RATE(50) |
286 | 286 | MCFG_SCREEN_SIZE(64*8, 32*8) |
287 | 287 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1) |
288 | MCFG_SCREEN_UPDATE_ | |
288 | MCFG_SCREEN_UPDATE_DR | |
289 | 289 | |
290 | 290 | MCFG_GFXDECODE(polyplay) |
291 | 291 | MCFG_PALETTE_LENGTH(10) |
r17967 | r17968 | |
---|---|---|
524 | 524 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) |
525 | 525 | MCFG_SCREEN_SIZE(40*8, 32*8) |
526 | 526 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
527 | MCFG_SCREEN_UPDATE_ | |
527 | MCFG_SCREEN_UPDATE_DR | |
528 | 528 | |
529 | 529 | |
530 | 530 | MCFG_GFXDECODE(dassault) |
r17967 | r17968 | |
---|---|---|
261 | 261 | MCFG_SCREEN_REFRESH_RATE(16000.0/132/2) |
262 | 262 | MCFG_SCREEN_SIZE(32*8, 32*8) |
263 | 263 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
264 | MCFG_SCREEN_UPDATE_ | |
264 | MCFG_SCREEN_UPDATE_DR | |
265 | 265 | |
266 | 266 | MCFG_GFXDECODE(dambustr) |
267 | 267 | MCFG_PALETTE_LENGTH(32+2+64+8) /* 32 for the characters, 2 for the bullets, 64 for the stars, 8 for the background */ |
r17967 | r17968 | |
---|---|---|
893 | 893 | /* video hardware */ |
894 | 894 | MCFG_SCREEN_ADD("screen", RASTER) |
895 | 895 | MCFG_SCREEN_RAW_PARAMS(CLOCK_2 / 8, 400, 0, 320, 280, 0, 240) // TODO: Hook up CRTC |
896 | MCFG_SCREEN_UPDATE_ | |
896 | MCFG_SCREEN_UPDATE_DR | |
897 | 897 | |
898 | 898 | MCFG_GFXDECODE(apache3) |
899 | 899 | MCFG_PALETTE_LENGTH(1024 + 4096) /* 1024 real colours, and 4096 arranged as series of cluts */ |
r17967 | r17968 | |
934 | 934 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
935 | 935 | MCFG_SCREEN_SIZE(40*8, 32*8) |
936 | 936 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) |
937 | MCFG_SCREEN_UPDATE_ | |
937 | MCFG_SCREEN_UPDATE_DR | |
938 | 938 | |
939 | 939 | MCFG_GFXDECODE(roundup5) |
940 | 940 | MCFG_PALETTE_LENGTH(1024 + 4096) /* 1024 real colours, and 4096 arranged as series of cluts */ |
r17967 | r17968 | |
976 | 976 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
977 | 977 | MCFG_SCREEN_SIZE(40*8, 32*8) |
978 | 978 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) |
979 | MCFG_SCREEN_UPDATE_ | |
979 | MCFG_SCREEN_UPDATE_DR | |
980 | 980 | |
981 | 981 | MCFG_GFXDECODE(cyclwarr) |
982 | 982 | MCFG_PALETTE_LENGTH(8192 + 8192) |
r17967 | r17968 | |
1018 | 1018 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1019 | 1019 | MCFG_SCREEN_SIZE(40*8, 32*8) |
1020 | 1020 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) |
1021 | MCFG_SCREEN_UPDATE_ | |
1021 | MCFG_SCREEN_UPDATE_DR | |
1022 | 1022 | |
1023 | 1023 | MCFG_GFXDECODE(cyclwarr) |
1024 | 1024 | MCFG_PALETTE_LENGTH(8192 + 8192) |
r17967 | r17968 | |
---|---|---|
357 | 357 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) |
358 | 358 | MCFG_SCREEN_SIZE(40*8, 32*8) |
359 | 359 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
360 | MCFG_SCREEN_UPDATE_ | |
360 | MCFG_SCREEN_UPDATE_DR | |
361 | 361 | |
362 | 362 | MCFG_GFXDECODE(supbtime) |
363 | 363 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
398 | 398 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) |
399 | 399 | MCFG_SCREEN_SIZE(40*8, 32*8) |
400 | 400 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
401 | MCFG_SCREEN_UPDATE_ | |
401 | MCFG_SCREEN_UPDATE_DR | |
402 | 402 | |
403 | 403 | MCFG_GFXDECODE(supbtime) |
404 | 404 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
57 | 57 | DECLARE_WRITE_LINE_MEMBER(sn2_ca2_u2_u3_w); |
58 | 58 | virtual void machine_start(); |
59 | 59 | virtual void machine_reset(); |
60 | UINT32 screen_update_toratora(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
60 | 61 | }; |
61 | 62 | |
62 | 63 | |
r17967 | r17968 | |
79 | 80 | * |
80 | 81 | *************************************/ |
81 | 82 | |
82 | static | |
83 | UINT32 toratora_state::screen_update_toratora(screen_device &screen, bitmap_rgb | |
83 | 84 | { |
84 | toratora_state *state = screen.machine().driver_data<toratora_state>(); | |
85 | 85 | offs_t offs; |
86 | 86 | |
87 | for (offs = 0; offs < | |
87 | for (offs = 0; offs < | |
88 | 88 | { |
89 | 89 | int i; |
90 | 90 | |
91 | 91 | UINT8 y = offs >> 5; |
92 | 92 | UINT8 x = offs << 3; |
93 | UINT8 data = | |
93 | UINT8 data = | |
94 | 94 | |
95 | 95 | for (i = 0; i < 8; i++) |
96 | 96 | { |
r17967 | r17968 | |
102 | 102 | } |
103 | 103 | |
104 | 104 | /* 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; | |
107 | 107 | } |
108 | 108 | |
109 | | |
109 | | |
110 | 110 | |
111 | 111 | return 0; |
112 | 112 | } |
r17967 | r17968 | |
462 | 462 | MCFG_SCREEN_VISIBLE_AREA(0,256-1,8,248-1) |
463 | 463 | MCFG_SCREEN_REFRESH_RATE(60) |
464 | 464 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
465 | MCFG_SCREEN_UPDATE_ | |
465 | MCFG_SCREEN_UPDATE_DR | |
466 | 466 | |
467 | 467 | /* audio hardware */ |
468 | 468 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
---|---|---|
366 | 366 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
367 | 367 | MCFG_SCREEN_SIZE(0x180, 0x100) |
368 | 368 | MCFG_SCREEN_VISIBLE_AREA(0, 0x180-1, 0, 0x100-1) |
369 | MCFG_SCREEN_UPDATE_ | |
369 | MCFG_SCREEN_UPDATE_DR | |
370 | 370 | |
371 | 371 | MCFG_GFXDECODE(blmbycar) |
372 | 372 | MCFG_PALETTE_LENGTH(0x300) |
r17967 | r17968 | |
409 | 409 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
410 | 410 | MCFG_SCREEN_SIZE(0x180, 0x100) |
411 | 411 | MCFG_SCREEN_VISIBLE_AREA(0, 0x180-1, 16, 0x100-1) |
412 | MCFG_SCREEN_UPDATE_ | |
412 | MCFG_SCREEN_UPDATE_DR | |
413 | 413 | |
414 | 414 | MCFG_GFXDECODE(blmbycar) |
415 | 415 | MCFG_PALETTE_LENGTH(0x300) |
r17967 | r17968 | |
---|---|---|
30 | 30 | optional_shared_ptr<UINT8> m_dealem_videoram; |
31 | 31 | DECLARE_MACHINE_RESET(dealem_vid); |
32 | 32 | DECLARE_PALETTE_INIT(dealem); |
33 | UINT32 screen_update_dealem(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
33 | 34 | }; |
34 | 35 | |
35 | 36 | |
r17967 | r17968 | |
112 | 113 | } |
113 | 114 | |
114 | 115 | |
115 | static | |
116 | UINT32 mpu4dealem_state::screen_update_dealem(screen_device &screen, bitmap_ind | |
116 | 117 | { |
117 | mpu4dealem_state *state = screen.machine().driver_data<mpu4dealem_state>(); | |
118 | 118 | int x,y; |
119 | 119 | int count = 0; |
120 | 120 | |
r17967 | r17968 | |
122 | 122 | { |
123 | 123 | for (x = 0; x < 40; x++) |
124 | 124 | { |
125 | int tile = | |
125 | int tile = | |
126 | 126 | count++; |
127 | 127 | drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0],tile,0,0,0,x * 8,y * 8); |
128 | 128 | } |
r17967 | r17968 | |
225 | 225 | MCFG_SCREEN_SIZE((54+1)*8, (32+1)*8) /* Taken from 6845 init, registers 00 & 04. Normally programmed with (value-1) */ |
226 | 226 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 31*8-1) /* Taken from 6845 init, registers 01 & 06 */ |
227 | 227 | MCFG_SCREEN_REFRESH_RATE(56) /* Measured accurately from the flip-flop, but 6845 handles this */ |
228 | MCFG_SCREEN_UPDATE_ | |
228 | MCFG_SCREEN_UPDATE_DR | |
229 | 229 | |
230 | 230 | MCFG_GFXDECODE(dealem) |
231 | 231 |
r17967 | r17968 | |
---|---|---|
317 | 317 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
318 | 318 | MCFG_SCREEN_SIZE(64*8, 32*8) |
319 | 319 | MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) |
320 | MCFG_SCREEN_UPDATE_ | |
320 | MCFG_SCREEN_UPDATE_DR | |
321 | 321 | |
322 | 322 | MCFG_PALETTE_LENGTH(1024) |
323 | 323 |
r17967 | r17968 | |
---|---|---|
617 | 617 | // VIDEO_START_CALL_MEMBER(megaplay_normal); |
618 | 618 | } |
619 | 619 | |
620 | stat | |
620 | UINT32 mplay_state::screen | |
621 | 621 | { |
622 | 622 | //printf("megplay vu\n"); |
623 | 623 | SCREEN_UPDATE32_CALL(megadriv); |
r17967 | r17968 | |
637 | 637 | MACHINE_RESET_CALL_LEGACY(megatech_bios); |
638 | 638 | } |
639 | 639 | |
640 | stat | |
640 | void mplay_state::screen | |
641 | 641 | { |
642 | bool vblank_on = state; | |
642 | 643 | SCREEN_VBLANK_CALL(megadriv); |
643 | 644 | SCREEN_VBLANK_CALL(megatech_bios); |
644 | 645 | } |
r17967 | r17968 | |
664 | 665 | /* New update functions to handle the extra layer */ |
665 | 666 | MCFG_VIDEO_START_OVERRIDE(mplay_state,megplay) |
666 | 667 | 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) | |
669 | 670 | MACHINE_CONFIG_END |
670 | 671 | |
671 | 672 |
r17967 | r17968 | |
---|---|---|
252 | 252 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
253 | 253 | MCFG_SCREEN_SIZE(32*8, 32*8) |
254 | 254 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
255 | MCFG_SCREEN_UPDATE_ | |
255 | MCFG_SCREEN_UPDATE_DR | |
256 | 256 | |
257 | 257 | MCFG_GFXDECODE(bogeyman) |
258 | 258 | MCFG_PALETTE_LENGTH(16+256) |
r17967 | r17968 | |
---|---|---|
1822 | 1822 | |
1823 | 1823 | MCFG_SCREEN_ADD("screen", RASTER) |
1824 | 1824 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) |
1825 | MCFG_SCREEN_UPDATE_ | |
1825 | MCFG_SCREEN_UPDATE_DR | |
1826 | 1826 | |
1827 | 1827 | MCFG_VIDEO_START_OVERRIDE(m72_state,m72) |
1828 | 1828 | |
r17967 | r17968 | |
1877 | 1877 | |
1878 | 1878 | MCFG_SCREEN_ADD("screen", RASTER) |
1879 | 1879 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) |
1880 | MCFG_SCREEN_UPDATE_ | |
1880 | MCFG_SCREEN_UPDATE_DR | |
1881 | 1881 | |
1882 | 1882 | MCFG_VIDEO_START_OVERRIDE(m72_state,m72) |
1883 | 1883 | |
r17967 | r17968 | |
1914 | 1914 | |
1915 | 1915 | MCFG_SCREEN_ADD("screen", RASTER) |
1916 | 1916 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) |
1917 | MCFG_SCREEN_UPDATE_ | |
1917 | MCFG_SCREEN_UPDATE_DR | |
1918 | 1918 | |
1919 | 1919 | MCFG_VIDEO_START_OVERRIDE(m72_state,xmultipl) |
1920 | 1920 | |
r17967 | r17968 | |
1955 | 1955 | |
1956 | 1956 | MCFG_SCREEN_ADD("screen", RASTER) |
1957 | 1957 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) |
1958 | MCFG_SCREEN_UPDATE_ | |
1958 | MCFG_SCREEN_UPDATE_DR | |
1959 | 1959 | |
1960 | 1960 | MCFG_VIDEO_START_OVERRIDE(m72_state,m72) |
1961 | 1961 | |
r17967 | r17968 | |
1996 | 1996 | |
1997 | 1997 | MCFG_SCREEN_ADD("screen", RASTER) |
1998 | 1998 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) |
1999 | MCFG_SCREEN_UPDATE_ | |
1999 | MCFG_SCREEN_UPDATE_DR | |
2000 | 2000 | |
2001 | 2001 | MCFG_VIDEO_START_OVERRIDE(m72_state,hharry) |
2002 | 2002 | |
r17967 | r17968 | |
2037 | 2037 | |
2038 | 2038 | MCFG_SCREEN_ADD("screen", RASTER) |
2039 | 2039 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) |
2040 | MCFG_SCREEN_UPDATE_ | |
2040 | MCFG_SCREEN_UPDATE_DR | |
2041 | 2041 | |
2042 | 2042 | MCFG_VIDEO_START_OVERRIDE(m72_state,m72) |
2043 | 2043 | |
r17967 | r17968 | |
2078 | 2078 | |
2079 | 2079 | MCFG_SCREEN_ADD("screen", RASTER) |
2080 | 2080 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) |
2081 | MCFG_SCREEN_UPDATE_ | |
2081 | MCFG_SCREEN_UPDATE_DR | |
2082 | 2082 | |
2083 | 2083 | MCFG_VIDEO_START_OVERRIDE(m72_state,rtype2) |
2084 | 2084 | |
r17967 | r17968 | |
2119 | 2119 | |
2120 | 2120 | MCFG_SCREEN_ADD("screen", RASTER) |
2121 | 2121 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) |
2122 | MCFG_SCREEN_UPDATE_ | |
2122 | MCFG_SCREEN_UPDATE_DR | |
2123 | 2123 | |
2124 | 2124 | MCFG_VIDEO_START_OVERRIDE(m72_state,majtitle) |
2125 | 2125 | |
r17967 | r17968 | |
2160 | 2160 | |
2161 | 2161 | MCFG_SCREEN_ADD("screen", RASTER) |
2162 | 2162 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) |
2163 | MCFG_SCREEN_UPDATE_ | |
2163 | MCFG_SCREEN_UPDATE_DR | |
2164 | 2164 | |
2165 | 2165 | MCFG_VIDEO_START_OVERRIDE(m72_state,hharry) |
2166 | 2166 | |
r17967 | r17968 | |
2201 | 2201 | |
2202 | 2202 | MCFG_SCREEN_ADD("screen", RASTER) |
2203 | 2203 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) |
2204 | MCFG_SCREEN_UPDATE_ | |
2204 | MCFG_SCREEN_UPDATE_DR | |
2205 | 2205 | |
2206 | 2206 | MCFG_VIDEO_START_OVERRIDE(m72_state,hharryu) |
2207 | 2207 | |
r17967 | r17968 | |
2242 | 2242 | |
2243 | 2243 | MCFG_SCREEN_ADD("screen", RASTER) |
2244 | 2244 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) |
2245 | MCFG_SCREEN_UPDATE_ | |
2245 | MCFG_SCREEN_UPDATE_DR | |
2246 | 2246 | |
2247 | 2247 | MCFG_VIDEO_START_OVERRIDE(m72_state,m72) |
2248 | 2248 | |
r17967 | r17968 | |
2283 | 2283 | |
2284 | 2284 | MCFG_SCREEN_ADD("screen", RASTER) |
2285 | 2285 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) |
2286 | MCFG_SCREEN_UPDATE_ | |
2286 | MCFG_SCREEN_UPDATE_DR | |
2287 | 2287 | |
2288 | 2288 | MCFG_VIDEO_START_OVERRIDE(m72_state,poundfor) |
2289 | 2289 | |
r17967 | r17968 | |
2324 | 2324 | |
2325 | 2325 | MCFG_SCREEN_ADD("screen", RASTER) |
2326 | 2326 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256) |
2327 | MCFG_SCREEN_UPDATE_ | |
2327 | MCFG_SCREEN_UPDATE_DR | |
2328 | 2328 | |
2329 | 2329 | MCFG_VIDEO_START_OVERRIDE(m72_state,poundfor) |
2330 | 2330 |
r17967 | r17968 | |
---|---|---|
218 | 218 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
219 | 219 | MCFG_SCREEN_SIZE(32*8, 32*8) |
220 | 220 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
221 | MCFG_SCREEN_UPDATE_ | |
221 | MCFG_SCREEN_UPDATE_DR | |
222 | 222 | |
223 | 223 | MCFG_GFXDECODE(pokechmp) |
224 | 224 | MCFG_PALETTE_LENGTH(0x400) |
r17967 | r17968 | |
---|---|---|
478 | 478 | DECLARE_DRIVER_INIT(mastboy); |
479 | 479 | virtual void machine_reset(); |
480 | 480 | virtual void video_start(); |
481 | UINT32 screen_update_mastboy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
481 | 482 | }; |
482 | 483 | |
483 | 484 | |
r17967 | r17968 | |
488 | 489 | machine().gfx[0]->set_source(m_vram); |
489 | 490 | } |
490 | 491 | |
491 | stat | |
492 | UINT32 mastboy_state::screen | |
492 | 493 | { |
493 | mastboy_state *state = screen.machine().driver_data<mastboy_state>(); | |
494 | 494 | int y,x,i; |
495 | 495 | int count = 0x000; |
496 | 496 | |
497 | 497 | for (i=0;i<0x200;i+=2) |
498 | 498 | { |
499 | int coldat = | |
499 | int coldat = | |
500 | 500 | |
501 | 501 | palette_set_color_rgb(screen.machine(),i/2,pal4bit(coldat>>8),pal4bit(coldat>>12),pal4bit(coldat>>4)); |
502 | 502 | } |
r17967 | r17968 | |
506 | 506 | for (x=0;x<32;x++) |
507 | 507 | { |
508 | 508 | /* 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; | |
511 | 511 | gfx_element *gfx; |
512 | 512 | |
513 | 513 | if (tileno&0x800) |
r17967 | r17968 | |
899 | 899 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
900 | 900 | MCFG_SCREEN_SIZE(256, 256) |
901 | 901 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1) |
902 | MCFG_SCREEN_UPDATE_ | |
902 | MCFG_SCREEN_UPDATE_DR | |
903 | 903 | |
904 | 904 | MCFG_GFXDECODE(mastboy) |
905 | 905 | MCFG_PALETTE_LENGTH(0x100) |
r17967 | r17968 | |
---|---|---|
143 | 143 | DECLARE_VIDEO_START(darkhors); |
144 | 144 | DECLARE_VIDEO_START(jclub2); |
145 | 145 | 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); | |
146 | 149 | }; |
147 | 150 | |
148 | 151 | |
r17967 | r17968 | |
157 | 160 | ***************************************************************************/ |
158 | 161 | |
159 | 162 | |
160 | static SCREEN_UPDATE_IND16( darkhors ); | |
161 | 163 | |
162 | 164 | |
165 | ||
163 | 166 | TILE_GET_INFO_MEMBER(darkhors_state::get_tile_info_0) |
164 | 167 | { |
165 | 168 | UINT16 tile = m_tmapram[tile_index] >> 16; |
r17967 | r17968 | |
230 | 233 | machine().gfx[0]->set_granularity(64); /* 256 colour sprites with palette selectable on 64 colour boundaries */ |
231 | 234 | } |
232 | 235 | |
233 | stat | |
236 | UINT32 darkhors_state::screen | |
234 | 237 | { |
235 | darkhors_state *state = screen.machine().driver_data<darkhors_state>(); | |
236 | 238 | int layers_ctrl = -1; |
237 | 239 | |
238 | 240 | #if DARKHORS_DEBUG |
r17967 | r17968 | |
248 | 250 | |
249 | 251 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
250 | 252 | |
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); | |
254 | 256 | |
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); | |
258 | 260 | |
259 | 261 | if (layers_ctrl & 4) draw_sprites(screen.machine(),bitmap,cliprect); |
260 | 262 | |
261 | 263 | #if DARKHORS_DEBUG |
262 | 264 | #if 0 |
263 | 265 | 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 | |
270 | 272 | ); |
271 | 273 | #endif |
272 | 274 | #endif |
r17967 | r17968 | |
698 | 700 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
699 | 701 | MCFG_SCREEN_SIZE(0x190, 0x100+16) |
700 | 702 | MCFG_SCREEN_VISIBLE_AREA(0, 0x190-1, 8, 0x100-8-1) |
701 | MCFG_SCREEN_UPDATE_ | |
703 | MCFG_SCREEN_UPDATE_DR | |
702 | 704 | |
703 | 705 | MCFG_GFXDECODE(darkhors) |
704 | 706 | MCFG_PALETTE_LENGTH(0x10000) |
r17967 | r17968 | |
719 | 721 | |
720 | 722 | } |
721 | 723 | |
722 | stat | |
724 | UINT32 darkhors_state::screen | |
723 | 725 | { |
724 | darkhors_state *state = screen.machine().driver_data<darkhors_state>(); | |
725 | 726 | |
726 | 727 | // this isn't an st0020.. |
727 | | |
728 | | |
728 | 729 | |
729 | 730 | return 0; |
730 | 731 | } |
r17967 | r17968 | |
742 | 743 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
743 | 744 | MCFG_SCREEN_SIZE(0x190, 0x100+16) |
744 | 745 | MCFG_SCREEN_VISIBLE_AREA(0, 0x190-1, 8, 0x100-8-1) |
745 | MCFG_SCREEN_UPDATE_ | |
746 | MCFG_SCREEN_UPDATE_DR | |
746 | 747 | |
747 | 748 | // NOT an ST0020 but instead ST0032, ram format isn't compatible at least |
748 | 749 | MCFG_DEVICE_ADD("st0020_spr", ST0020_SPRITES, 0) |
r17967 | r17968 | |
785 | 786 | |
786 | 787 | } |
787 | 788 | |
788 | stat | |
789 | UINT32 darkhors_state::screen | |
789 | 790 | { |
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); | |
792 | 792 | return 0; |
793 | 793 | } |
794 | 794 | |
r17967 | r17968 | |
810 | 810 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
811 | 811 | MCFG_SCREEN_SIZE(0x190, 0x100) |
812 | 812 | MCFG_SCREEN_VISIBLE_AREA(0, 0x190-1, 8, 0x100-8-1) |
813 | MCFG_SCREEN_UPDATE_ | |
813 | MCFG_SCREEN_UPDATE_DR | |
814 | 814 | |
815 | 815 | MCFG_PALETTE_LENGTH(0x10000) |
816 | 816 | MCFG_DEVICE_ADD("st0020_spr", ST0020_SPRITES, 0) |
r17967 | r17968 | |
---|---|---|
59 | 59 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
60 | 60 | virtual void video_start(); |
61 | 61 | DECLARE_MACHINE_RESET(themj); |
62 | UINT32 screen_update_rmhaihai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
62 | 63 | }; |
63 | 64 | |
64 | 65 | |
r17967 | r17968 | |
90 | 91 | 8, 8, 64, 32); |
91 | 92 | } |
92 | 93 | |
93 | stat | |
94 | UINT32 rmhaihai_state::screen | |
94 | 95 | { |
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); | |
97 | 97 | return 0; |
98 | 98 | } |
99 | 99 | |
r17967 | r17968 | |
477 | 477 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
478 | 478 | MCFG_SCREEN_SIZE(64*8, 32*8) |
479 | 479 | MCFG_SCREEN_VISIBLE_AREA(4*8, 60*8-1, 2*8, 30*8-1) |
480 | MCFG_SCREEN_UPDATE_ | |
480 | MCFG_SCREEN_UPDATE_DR | |
481 | 481 | |
482 | 482 | MCFG_GFXDECODE(rmhaihai) |
483 | 483 | MCFG_PALETTE_LENGTH(0x100) |
r17967 | r17968 | |
---|---|---|
769 | 769 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
770 | 770 | MCFG_SCREEN_SIZE(40*8, 32*8) |
771 | 771 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) |
772 | MCFG_SCREEN_UPDATE_ | |
772 | MCFG_SCREEN_UPDATE_DR | |
773 | 773 | |
774 | 774 | MCFG_GFXDECODE(topspeed) |
775 | 775 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
---|---|---|
288 | 288 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
289 | 289 | MCFG_SCREEN_SIZE(256, 256) |
290 | 290 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1) |
291 | MCFG_SCREEN_UPDATE_ | |
291 | MCFG_SCREEN_UPDATE_DR | |
292 | 292 | |
293 | 293 | MCFG_GFXDECODE(amspdwy) |
294 | 294 | MCFG_PALETTE_LENGTH(32) |
r17967 | r17968 | |
---|---|---|
347 | 347 | int m_last2; |
348 | 348 | int m_diff1; |
349 | 349 | int m_diff2; |
350 | UINT32 screen_update_systeme(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
350 | 351 | }; |
351 | 352 | |
352 | 353 | class fantzn2_state : public systeme_state |
r17967 | r17968 | |
1074 | 1075 | }; |
1075 | 1076 | |
1076 | 1077 | |
1077 | static | |
1078 | UINT32 systeme_state::screen_update_systeme(screen_device &screen, bitmap_rgb | |
1078 | 1079 | { |
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(); | |
1083 | 1083 | |
1084 | 1084 | for( int y = cliprect.min_y; y <= cliprect.max_y; y++ ) |
1085 | 1085 | { |
r17967 | r17968 | |
1118 | 1118 | MCFG_SCREEN_RAW_PARAMS(XTAL_10_738635MHz/2, \ |
1119 | 1119 | SEGA315_5124_WIDTH , SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256, \ |
1120 | 1120 | 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_ | |
1121 | MCFG_SCREEN_UPDATE_DR | |
1122 | 1122 | |
1123 | 1123 | MCFG_PALETTE_LENGTH(SEGA315_5124_PALETTE_SIZE) |
1124 | 1124 | MCFG_PALETTE_INIT(sega315_5124) |
r17967 | r17968 | |
---|---|---|
865 | 865 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
866 | 866 | MCFG_SCREEN_SIZE(352,256) |
867 | 867 | MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 256-1) |
868 | MCFG_SCREEN_UPDATE_ | |
868 | MCFG_SCREEN_UPDATE_DR | |
869 | 869 | |
870 | 870 | MCFG_GFXDECODE(fantland) |
871 | 871 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
915 | 915 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
916 | 916 | MCFG_SCREEN_SIZE(352,256) |
917 | 917 | MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 256-1) |
918 | MCFG_SCREEN_UPDATE_ | |
918 | MCFG_SCREEN_UPDATE_DR | |
919 | 919 | |
920 | 920 | MCFG_GFXDECODE(fantland) |
921 | 921 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
1019 | 1019 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1020 | 1020 | MCFG_SCREEN_SIZE(352,256) |
1021 | 1021 | MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 256-1) |
1022 | MCFG_SCREEN_UPDATE_ | |
1022 | MCFG_SCREEN_UPDATE_DR | |
1023 | 1023 | |
1024 | 1024 | MCFG_GFXDECODE(fantland) |
1025 | 1025 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
1059 | 1059 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1060 | 1060 | MCFG_SCREEN_SIZE(256,224) |
1061 | 1061 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 224-1) |
1062 | MCFG_SCREEN_UPDATE_ | |
1062 | MCFG_SCREEN_UPDATE_DR | |
1063 | 1063 | |
1064 | 1064 | MCFG_GFXDECODE(fantland) |
1065 | 1065 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
463 | 463 | MCFG_SCREEN_ADD("screen", RASTER) |
464 | 464 | /* note: these parameters are from published specs, not derived */ |
465 | 465 | 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) | |
468 | 468 | |
469 | 469 | MCFG_VIDEO_START_OVERRIDE(atarig1_state,atarig1) |
470 | 470 |
r17967 | r17968 | |
---|---|---|
237 | 237 | |
238 | 238 | MCFG_SCREEN_ADD("screen", RASTER) |
239 | 239 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 640, 0, 512, 416, 0, 384) |
240 | MCFG_SCREEN_UPDATE_ | |
240 | MCFG_SCREEN_UPDATE_DR | |
241 | 241 | |
242 | 242 | MCFG_GFXDECODE(toobin) |
243 | 243 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
34 | 34 | DECLARE_WRITE8_MEMBER(albazc_vregs_w); |
35 | 35 | virtual void video_start(); |
36 | 36 | virtual void palette_init(); |
37 | UINT32 screen_update_hanaroku(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
37 | 38 | }; |
38 | 39 | |
39 | 40 | |
r17967 | r17968 | |
87 | 88 | } |
88 | 89 | } |
89 | 90 | |
90 | stat | |
91 | UINT32 albazc_state::screen | |
91 | 92 | { |
92 | 93 | bitmap.fill(0x1f0, cliprect); // ??? |
93 | 94 | draw_sprites(screen.machine(), bitmap, cliprect); |
r17967 | r17968 | |
278 | 279 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
279 | 280 | MCFG_SCREEN_SIZE(64*8, 64*8) |
280 | 281 | MCFG_SCREEN_VISIBLE_AREA(0, 48*8-1, 2*8, 30*8-1) |
281 | MCFG_SCREEN_UPDATE_ | |
282 | MCFG_SCREEN_UPDATE_DR | |
282 | 283 | |
283 | 284 | MCFG_GFXDECODE(hanaroku) |
284 | 285 | MCFG_PALETTE_LENGTH(0x200) |
r17967 | r17968 | |
---|---|---|
1064 | 1064 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) |
1065 | 1065 | MCFG_SCREEN_SIZE(36*8, 36*8) |
1066 | 1066 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
1067 | MCFG_SCREEN_UPDATE_ | |
1067 | MCFG_SCREEN_UPDATE_DR | |
1068 | 1068 | |
1069 | 1069 | MCFG_GFXDECODE(legionna) |
1070 | 1070 | MCFG_PALETTE_LENGTH(128*16) |
r17967 | r17968 | |
1094 | 1094 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) |
1095 | 1095 | MCFG_SCREEN_SIZE(36*8, 36*8) |
1096 | 1096 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) |
1097 | MCFG_SCREEN_UPDATE_ | |
1097 | MCFG_SCREEN_UPDATE_DR | |
1098 | 1098 | |
1099 | 1099 | MCFG_GFXDECODE(heatbrl) |
1100 | 1100 | MCFG_PALETTE_LENGTH(128*16) |
r17967 | r17968 | |
1123 | 1123 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) |
1124 | 1124 | MCFG_SCREEN_SIZE(42*8, 36*8) |
1125 | 1125 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) |
1126 | MCFG_SCREEN_UPDATE_ | |
1126 | MCFG_SCREEN_UPDATE_DR | |
1127 | 1127 | |
1128 | 1128 | MCFG_GFXDECODE(heatbrl) |
1129 | 1129 | MCFG_PALETTE_LENGTH(128*16) |
r17967 | r17968 | |
1152 | 1152 | MCFG_SCREEN_REFRESH_RATE(61) |
1153 | 1153 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) |
1154 | 1154 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 32*8-1) |
1155 | MCFG_SCREEN_UPDATE_ | |
1155 | MCFG_SCREEN_UPDATE_DR | |
1156 | 1156 | |
1157 | 1157 | MCFG_GFXDECODE(heatbrl) |
1158 | 1158 | MCFG_PALETTE_LENGTH(128*16) |
r17967 | r17968 | |
1181 | 1181 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) |
1182 | 1182 | MCFG_SCREEN_SIZE(64*8, 36*8) |
1183 | 1183 | MCFG_SCREEN_VISIBLE_AREA(2*8, 42*8-1, 2*8, 30*8-1) |
1184 | MCFG_SCREEN_UPDATE_ | |
1184 | MCFG_SCREEN_UPDATE_DR | |
1185 | 1185 | |
1186 | 1186 | MCFG_GFXDECODE(grainbow) |
1187 | 1187 | MCFG_PALETTE_LENGTH(128*16) |
r17967 | r17968 | |
1211 | 1211 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) |
1212 | 1212 | MCFG_SCREEN_SIZE(42*8, 36*8) |
1213 | 1213 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 32*8-1) |
1214 | MCFG_SCREEN_UPDATE_ | |
1214 | MCFG_SCREEN_UPDATE_DR | |
1215 | 1215 | |
1216 | 1216 | MCFG_GFXDECODE(cupsoc) |
1217 | 1217 | MCFG_PALETTE_LENGTH(128*16) |
r17967 | r17968 | |
1249 | 1249 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1250 | 1250 | MCFG_SCREEN_SIZE(42*8, 36*8) |
1251 | 1251 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 32*8-1) |
1252 | MCFG_SCREEN_UPDATE_ | |
1252 | MCFG_SCREEN_UPDATE_DR | |
1253 | 1253 | |
1254 | 1254 | MCFG_GFXDECODE(heatbrl_csb) |
1255 | 1255 | MCFG_PALETTE_LENGTH(128*16) |
r17967 | r17968 | |
---|---|---|
78 | 78 | DECLARE_DRIVER_INIT(livequiz); |
79 | 79 | TILE_GET_INFO_MEMBER(get_tile_info); |
80 | 80 | virtual void video_start(); |
81 | UINT32 screen_update_midas(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
81 | 82 | }; |
82 | 83 | |
83 | 84 | |
84 | 85 | |
85 | static SCREEN_UPDATE_IND16( midas ); | |
86 | 86 | |
87 | 87 | |
88 | ||
88 | 89 | TILE_GET_INFO_MEMBER(midas_state::get_tile_info) |
89 | 90 | { |
90 | 91 | UINT16 code = m_gfxram[ tile_index + 0x7000 ]; |
r17967 | r17968 | |
184 | 185 | } |
185 | 186 | } |
186 | 187 | |
187 | stat | |
188 | UINT32 midas_state::screen | |
188 | 189 | { |
189 | midas_state *state = screen.machine().driver_data<midas_state>(); | |
190 | 190 | int layers_ctrl = -1; |
191 | 191 | |
192 | 192 | #ifdef MAME_DEBUG |
193 | 193 | if ( screen.machine().input().code_pressed(KEYCODE_Z) ) |
194 | 194 | { |
195 | 195 | int msk = 0; |
196 | if (screen.machine().input().code_pressed(KEYCODE_Q)) msk |= 1 << 0; // for | |
196 | if (screen.machine().input().code_pressed(KEYCODE_Q)) msk |= 1 << 0; // for | |
197 | 197 | if (screen.machine().input().code_pressed(KEYCODE_A)) msk |= 1 << 1; // for sprites |
198 | 198 | if (msk != 0) layers_ctrl &= msk; |
199 | 199 | } |
r17967 | r17968 | |
202 | 202 | bitmap.fill(4095, cliprect); |
203 | 203 | |
204 | 204 | if (layers_ctrl & 2) draw_sprites(screen.machine(), bitmap,cliprect); |
205 | if (layers_ctrl & 1) | |
205 | if (layers_ctrl & 1) | |
206 | 206 | |
207 | 207 | return 0; |
208 | 208 | } |
r17967 | r17968 | |
711 | 711 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
712 | 712 | MCFG_SCREEN_SIZE(320, 256) |
713 | 713 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-16-1) |
714 | MCFG_SCREEN_UPDATE_ | |
714 | MCFG_SCREEN_UPDATE_DR | |
715 | 715 | |
716 | 716 | MCFG_GFXDECODE(midas) |
717 | 717 | MCFG_PALETTE_LENGTH(0x10000) |
r17967 | r17968 | |
744 | 744 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
745 | 745 | MCFG_SCREEN_SIZE(320, 256) |
746 | 746 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-16-1) |
747 | MCFG_SCREEN_UPDATE_ | |
747 | MCFG_SCREEN_UPDATE_DR | |
748 | 748 | |
749 | 749 | MCFG_GFXDECODE(midas) |
750 | 750 | MCFG_PALETTE_LENGTH(0x10000) |
r17967 | r17968 | |
---|---|---|
321 | 321 | virtual void video_start(); |
322 | 322 | virtual void palette_init(); |
323 | 323 | DECLARE_PALETTE_INIT(lions); |
324 | UINT32 screen_update_aristmk4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
324 | 325 | }; |
325 | 326 | |
326 | 327 | /* Partial Cashcade protocol */ |
r17967 | r17968 | |
370 | 371 | } |
371 | 372 | } |
372 | 373 | |
373 | stat | |
374 | UINT32 aristmk4_state::screen | |
374 | 375 | { |
375 | aristmk4_state *state = screen.machine().driver_data<aristmk4_state>(); | |
376 | 376 | gfx_element *gfx = screen.machine().gfx[0]; |
377 | 377 | int x,y; |
378 | 378 | int count = 0; |
r17967 | r17968 | |
386 | 386 | { |
387 | 387 | for (x=38;x--;) |
388 | 388 | { |
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 | |
392 | 392 | uBackgroundColour(screen.machine()); // read sw7 |
393 | 393 | gfx->decode(bgtile); // force the machine to update only the first 256 tiles. |
394 | 394 | // 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); | |
397 | 397 | drawgfx_opaque(bitmap,cliprect,gfx,tile,color,flipx,flipy,(38-x-1)<<3,(27-y-1)<<3); |
398 | 398 | count+=2; |
399 | 399 | } |
r17967 | r17968 | |
1699 | 1699 | MCFG_GFXDECODE(aristmk4) |
1700 | 1700 | MCFG_PALETTE_LENGTH(512) |
1701 | 1701 | |
1702 | MCFG_SCREEN_UPDATE_ | |
1702 | MCFG_SCREEN_UPDATE_DR | |
1703 | 1703 | |
1704 | 1704 | MCFG_I8255A_ADD( "ppi8255_0", ppi8255_intf ) |
1705 | 1705 | MCFG_VIA6522_ADD("via6522_0", 0, via_interface) /* 1 MHz.(only 1 or 2 MHz.are valid) */ |
r17967 | r17968 | |
---|---|---|
674 | 674 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
675 | 675 | MCFG_SCREEN_SIZE(64*8, 32*8) |
676 | 676 | MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) |
677 | MCFG_SCREEN_UPDATE_ | |
677 | MCFG_SCREEN_UPDATE_DR | |
678 | 678 | |
679 | 679 | MCFG_PALETTE_LENGTH(1024) |
680 | 680 | |
r17967 | r17968 | |
717 | 717 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
718 | 718 | MCFG_SCREEN_SIZE(64*8, 32*8) |
719 | 719 | MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) |
720 | MCFG_SCREEN_UPDATE_ | |
720 | MCFG_SCREEN_UPDATE_DR | |
721 | 721 | |
722 | 722 | MCFG_PALETTE_LENGTH(1024) |
723 | 723 |
r17967 | r17968 | |
---|---|---|
94 | 94 | virtual void machine_start(); |
95 | 95 | virtual void machine_reset(); |
96 | 96 | virtual void video_start(); |
97 | UINT32 screen_update_galaxi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
97 | 98 | }; |
98 | 99 | |
99 | 100 | |
r17967 | r17968 | |
181 | 182 | m_bg3_tmap->set_scrolldx(-8, 0); |
182 | 183 | } |
183 | 184 | |
184 | stat | |
185 | UINT32 galaxi_state::screen | |
185 | 186 | { |
186 | galaxi_state *state = screen.machine().driver_data<galaxi_state>(); | |
187 | 187 | int layers_ctrl = -1; |
188 | 188 | |
189 | 189 | #ifdef MAME_DEBUG |
r17967 | r17968 | |
199 | 199 | } |
200 | 200 | #endif |
201 | 201 | |
202 | if (layers_ctrl & 1) | |
202 | if (layers_ctrl & 1) | |
203 | 203 | 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); | |
207 | 207 | |
208 | if (layers_ctrl & 16) | |
208 | if (layers_ctrl & 16) | |
209 | 209 | |
210 | 210 | return 0; |
211 | 211 | } |
r17967 | r17968 | |
416 | 416 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
417 | 417 | MCFG_SCREEN_SIZE(512, 256) |
418 | 418 | MCFG_SCREEN_VISIBLE_AREA(16*5, 512-16*2-1, 16*1, 256-1) |
419 | MCFG_SCREEN_UPDATE_ | |
419 | MCFG_SCREEN_UPDATE_DR | |
420 | 420 | |
421 | 421 | MCFG_GFXDECODE(galaxi) |
422 | 422 | MCFG_PALETTE_LENGTH(0x400) |
r17967 | r17968 | |
---|---|---|
333 | 333 | MCFG_SCREEN_REFRESH_RATE(60) |
334 | 334 | MCFG_SCREEN_SIZE(304, 263) |
335 | 335 | MCFG_SCREEN_VISIBLE_AREA(0, 303, 0, 255) |
336 | MCFG_SCREEN_UPDATE_ | |
336 | MCFG_SCREEN_UPDATE_DR | |
337 | 337 | |
338 | 338 | MCFG_GFXDECODE(videopin) |
339 | 339 | MCFG_PALETTE_LENGTH(2) |
r17967 | r17968 | |
---|---|---|
48 | 48 | required_shared_ptr<UINT8> m_video; |
49 | 49 | virtual void video_start(); |
50 | 50 | virtual void palette_init(); |
51 | UINT32 screen_update_murogmbl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
51 | 52 | }; |
52 | 53 | |
53 | 54 | |
r17967 | r17968 | |
94 | 95 | |
95 | 96 | } |
96 | 97 | |
97 | stat | |
98 | UINT32 murogmbl_state::screen | |
98 | 99 | { |
99 | murogmbl_state *state = screen.machine().driver_data<murogmbl_state>(); | |
100 | 100 | gfx_element *gfx = screen.machine().gfx[0]; |
101 | 101 | int count = 0; |
102 | 102 | |
r17967 | r17968 | |
106 | 106 | { |
107 | 107 | for (x = 0; x < 32; x++) |
108 | 108 | { |
109 | int tile = | |
109 | int tile = | |
110 | 110 | drawgfx_opaque(bitmap, cliprect, gfx, tile, 0, 0, 0, x * 8, y * 8); |
111 | 111 | |
112 | 112 | count++; |
r17967 | r17968 | |
194 | 194 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
195 | 195 | MCFG_SCREEN_SIZE(64*8, 32*8) |
196 | 196 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) |
197 | MCFG_SCREEN_UPDATE_ | |
197 | MCFG_SCREEN_UPDATE_DR | |
198 | 198 | |
199 | 199 | MCFG_PALETTE_LENGTH(0x100) |
200 | 200 |
r17967 | r17968 | |
---|---|---|
359 | 359 | MCFG_SCREEN_REFRESH_RATE(60) |
360 | 360 | MCFG_SCREEN_SIZE(256, 263) |
361 | 361 | MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239) |
362 | MCFG_SCREEN_UPDATE_ | |
362 | MCFG_SCREEN_UPDATE_DR | |
363 | 363 | |
364 | 364 | MCFG_GFXDECODE(runaway) |
365 | 365 | MCFG_PALETTE_LENGTH(16) |
r17967 | r17968 | |
387 | 387 | |
388 | 388 | MCFG_VIDEO_START_OVERRIDE(runaway_state,qwak) |
389 | 389 | MCFG_SCREEN_MODIFY("screen") |
390 | MCFG_SCREEN_UPDATE_ | |
390 | MCFG_SCREEN_UPDATE_DR | |
391 | 391 | |
392 | 392 | MACHINE_CONFIG_END |
393 | 393 |
r17967 | r17968 | |
---|---|---|
572 | 572 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
573 | 573 | MCFG_SCREEN_SIZE(36*8, 28*8) |
574 | 574 | MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1) |
575 | MCFG_SCREEN_UPDATE_ | |
575 | MCFG_SCREEN_UPDATE_DR | |
576 | 576 | |
577 | 577 | MCFG_GFXDECODE(toypop) |
578 | 578 | MCFG_PALETTE_LENGTH(128*4+64*4+16*2) |
r17967 | r17968 | |
---|---|---|
1988 | 1988 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) |
1989 | 1989 | MCFG_SCREEN_SIZE(40*8, 32*8) |
1990 | 1990 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
1991 | MCFG_SCREEN_UPDATE_ | |
1991 | MCFG_SCREEN_UPDATE_DR | |
1992 | 1992 | |
1993 | 1993 | MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) |
1994 | 1994 | decospr_device::set_gfx_region(*device, 3); |
r17967 | r17968 | |
2023 | 2023 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) |
2024 | 2024 | MCFG_SCREEN_SIZE(40*8, 32*8) |
2025 | 2025 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
2026 | MCFG_SCREEN_UPDATE_ | |
2026 | MCFG_SCREEN_UPDATE_DR | |
2027 | 2027 | |
2028 | 2028 | MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) |
2029 | 2029 | decospr_device::set_gfx_region(*device, 3); |
r17967 | r17968 | |
2061 | 2061 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) |
2062 | 2062 | MCFG_SCREEN_SIZE(40*8, 32*8) |
2063 | 2063 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
2064 | MCFG_SCREEN_UPDATE_ | |
2064 | MCFG_SCREEN_UPDATE_DR | |
2065 | 2065 | |
2066 | 2066 | MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) |
2067 | 2067 | decospr_device::set_gfx_region(*device, 3); |
r17967 | r17968 | |
2095 | 2095 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) |
2096 | 2096 | MCFG_SCREEN_SIZE(40*8, 32*8) |
2097 | 2097 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
2098 | MCFG_SCREEN_UPDATE_ | |
2098 | MCFG_SCREEN_UPDATE_DR | |
2099 | 2099 | |
2100 | 2100 | MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) |
2101 | 2101 | decospr_device::set_gfx_region(*device, 3); |
r17967 | r17968 | |
2165 | 2165 | 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?! |
2166 | 2166 | MCFG_SCREEN_SIZE(40*8, 32*8) |
2167 | 2167 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
2168 | MCFG_SCREEN_UPDATE_ | |
2168 | MCFG_SCREEN_UPDATE_DR | |
2169 | 2169 | |
2170 | 2170 | MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) |
2171 | 2171 | decospr_device::set_gfx_region(*device, 3); |
r17967 | r17968 | |
2191 | 2191 | |
2192 | 2192 | static MACHINE_CONFIG_DERIVED( cookbib, htchctch ) |
2193 | 2193 | MCFG_SCREEN_MODIFY("screen") |
2194 | MCFG_SCREEN_UPDATE_ | |
2194 | MCFG_SCREEN_UPDATE_DR | |
2195 | 2195 | MACHINE_CONFIG_END |
2196 | 2196 | |
2197 | 2197 | static MACHINE_CONFIG_DERIVED( cookbib_mcu, htchctch ) |
r17967 | r17968 | |
2203 | 2203 | |
2204 | 2204 | /* video hardware */ |
2205 | 2205 | MCFG_SCREEN_MODIFY("screen") |
2206 | MCFG_SCREEN_UPDATE_ | |
2206 | MCFG_SCREEN_UPDATE_DR | |
2207 | 2207 | MACHINE_CONFIG_END |
2208 | 2208 | |
2209 | 2209 | static MACHINE_CONFIG_DERIVED( bcstory, htchctch ) |
2210 | 2210 | MCFG_SCREEN_MODIFY("screen") |
2211 | MCFG_SCREEN_UPDATE_ | |
2211 | MCFG_SCREEN_UPDATE_DR | |
2212 | 2212 | |
2213 | 2213 | MCFG_SOUND_REPLACE("ymsnd", YM2151, 3427190) |
2214 | 2214 | MCFG_SOUND_CONFIG(semicom_ym2151_interface) |
r17967 | r17968 | |
2218 | 2218 | |
2219 | 2219 | static MACHINE_CONFIG_DERIVED( semibase, bcstory ) |
2220 | 2220 | MCFG_SCREEN_MODIFY("screen") |
2221 | MCFG_SCREEN_UPDATE_ | |
2221 | MCFG_SCREEN_UPDATE_DR | |
2222 | 2222 | MACHINE_CONFIG_END |
2223 | 2223 | |
2224 | 2224 | static MACHINE_CONFIG_DERIVED( sdfight, bcstory ) |
2225 | 2225 | MCFG_VIDEO_START_OVERRIDE(tumbleb_state,sdfight) |
2226 | 2226 | MCFG_SCREEN_MODIFY("screen") |
2227 | MCFG_SCREEN_UPDATE_ | |
2227 | MCFG_SCREEN_UPDATE_DR | |
2228 | 2228 | MACHINE_CONFIG_END |
2229 | 2229 | |
2230 | 2230 | |
r17967 | r17968 | |
2258 | 2258 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) |
2259 | 2259 | MCFG_SCREEN_SIZE(40*8, 32*8) |
2260 | 2260 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8-1, 31*8-2) |
2261 | MCFG_SCREEN_UPDATE_ | |
2261 | MCFG_SCREEN_UPDATE_DR | |
2262 | 2262 | |
2263 | 2263 | MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) |
2264 | 2264 | decospr_device::set_gfx_region(*device, 3); |
r17967 | r17968 | |
2293 | 2293 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1529)) |
2294 | 2294 | MCFG_SCREEN_SIZE(40*8, 32*8) |
2295 | 2295 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
2296 | MCFG_SCREEN_UPDATE_ | |
2296 | MCFG_SCREEN_UPDATE_DR | |
2297 | 2297 | |
2298 | 2298 | MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) |
2299 | 2299 | decospr_device::set_gfx_region(*device, 3); |
r17967 | r17968 | |
---|---|---|
782 | 782 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
783 | 783 | MCFG_SCREEN_SIZE(512*2, 312) |
784 | 784 | MCFG_SCREEN_VISIBLE_AREA((129-8-8)*2, (449+8-1+8)*2, 44-8, 300+8-1) |
785 | MCFG_SCREEN_UPDATE_ | |
785 | MCFG_SCREEN_UPDATE_DR | |
786 | 786 | |
787 | 787 | MCFG_VIDEO_START_OVERRIDE(cd32_state,amiga_aga) |
788 | 788 |
r17967 | r17968 | |
---|---|---|
60 | 60 | required_device<cpu_device> m_maincpu; |
61 | 61 | required_shared_ptr<UINT16> m_videoram; |
62 | 62 | virtual void video_start(); |
63 | UINT32 screen_update_bmcpokr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
63 | 64 | }; |
64 | 65 | |
65 | 66 | |
r17967 | r17968 | |
198 | 199 | GFXDECODE_ENTRY( "gfx1", 0, tiles8x8_layout, 0, 16 ) |
199 | 200 | GFXDECODE_END |
200 | 201 | |
201 | ||
202 | ||
202 | 203 | { |
203 | bmcpokr_state *state = screen.machine().driver_data<bmcpokr_state>(); | |
204 | 204 | gfx_element *gfx = screen.machine().gfx[0]; |
205 | 205 | |
206 | 206 | int count = 0; |
r17967 | r17968 | |
208 | 208 | { |
209 | 209 | for (int x=0;x<64;x++) |
210 | 210 | { |
211 | UINT16 data = | |
211 | UINT16 data = | |
212 | 212 | count++; |
213 | 213 | |
214 | 214 | drawgfx_opaque(bitmap,cliprect,gfx,data,0,0,0,x*8,y*8); |
r17967 | r17968 | |
235 | 235 | MCFG_SCREEN_ADD("screen", RASTER) |
236 | 236 | MCFG_SCREEN_REFRESH_RATE(60) |
237 | 237 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
238 | MCFG_SCREEN_UPDATE_ | |
238 | MCFG_SCREEN_UPDATE_DR | |
239 | 239 | |
240 | 240 | MCFG_GFXDECODE(bmcpokr) |
241 | 241 |
r17967 | r17968 | |
---|---|---|
524 | 524 | virtual void machine_start(); |
525 | 525 | virtual void machine_reset(); |
526 | 526 | virtual void video_start(); |
527 | UINT32 screen_update_taitotz(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
527 | 528 | }; |
528 | 529 | |
529 | 530 | |
r17967 | r17968 | |
1279 | 1280 | wait("render_polygons"); |
1280 | 1281 | } |
1281 | 1282 | |
1282 | stat | |
1283 | UINT32 taitotz_state::screen | |
1283 | 1284 | { |
1284 | taitotz_state *state = screen.machine().driver_data<taitotz_state>(); | |
1285 | 1285 | |
1286 | 1286 | 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); | |
1289 | 1289 | |
1290 | 1290 | |
1291 | UINT16 *screen_src = (UINT16*)& | |
1291 | UINT16 *screen_src = (UINT16*)& | |
1292 | 1292 | |
1293 | 1293 | for (int j=0; j < 384; j++) |
1294 | 1294 | { |
r17967 | r17968 | |
2502 | 2502 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2503 | 2503 | MCFG_SCREEN_SIZE(512, 384) |
2504 | 2504 | MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383) |
2505 | MCFG_SCREEN_UPDATE_ | |
2505 | MCFG_SCREEN_UPDATE_DR | |
2506 | 2506 | |
2507 | 2507 | MACHINE_CONFIG_END |
2508 | 2508 |
r17967 | r17968 | |
---|---|---|
55 | 55 | TILE_GET_INFO_MEMBER(get_fg_tile_info); |
56 | 56 | virtual void machine_reset(); |
57 | 57 | virtual void video_start(); |
58 | UINT32 screen_update_cabaret(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
58 | 59 | }; |
59 | 60 | |
60 | 61 | |
r17967 | r17968 | |
112 | 113 | } |
113 | 114 | |
114 | 115 | |
115 | stat | |
116 | UINT32 cabaret_state::screen | |
116 | 117 | { |
117 | cabaret_state *state = screen.machine().driver_data<cabaret_state>(); | |
118 | 118 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
119 | 119 | |
120 | | |
120 | | |
121 | 121 | |
122 | | |
122 | | |
123 | 123 | |
124 | 124 | return 0; |
125 | 125 | } |
r17967 | r17968 | |
345 | 345 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
346 | 346 | MCFG_SCREEN_SIZE(512, 256) |
347 | 347 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) |
348 | MCFG_SCREEN_UPDATE_ | |
348 | MCFG_SCREEN_UPDATE_DR | |
349 | 349 | |
350 | 350 | MCFG_GFXDECODE(cabaret) |
351 | 351 | MCFG_PALETTE_LENGTH(0x800) |
r17967 | r17968 | |
---|---|---|
275 | 275 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
276 | 276 | MCFG_SCREEN_SIZE(32*8, 32*8) |
277 | 277 | MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 29*8-1) |
278 | MCFG_SCREEN_UPDATE_ | |
278 | MCFG_SCREEN_UPDATE_DR | |
279 | 279 | |
280 | 280 | MCFG_GFXDECODE(momoko) |
281 | 281 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
---|---|---|
430 | 430 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
431 | 431 | MCFG_SCREEN_SIZE(32*8, 32*8) |
432 | 432 | MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 2*8, 30*8-1) |
433 | MCFG_SCREEN_UPDATE_ | |
433 | MCFG_SCREEN_UPDATE_DR | |
434 | 434 | |
435 | 435 | MCFG_GFXDECODE(kchamp) |
436 | 436 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
477 | 477 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
478 | 478 | MCFG_SCREEN_SIZE(32*8, 32*8) |
479 | 479 | MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 2*8, 30*8-1) |
480 | MCFG_SCREEN_UPDATE_ | |
480 | MCFG_SCREEN_UPDATE_DR | |
481 | 481 | |
482 | 482 | MCFG_GFXDECODE(kchamp) |
483 | 483 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
86 | 86 | virtual void machine_reset(); |
87 | 87 | virtual void video_start(); |
88 | 88 | virtual void palette_init(); |
89 | UINT32 screen_update_olibochu(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
89 | 90 | }; |
90 | 91 | |
91 | 92 | |
r17967 | r17968 | |
226 | 227 | } |
227 | 228 | } |
228 | 229 | |
229 | stat | |
230 | UINT32 olibochu_state::screen | |
230 | 231 | { |
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); | |
233 | 233 | draw_sprites(screen.machine(), bitmap, cliprect); |
234 | 234 | return 0; |
235 | 235 | } |
r17967 | r17968 | |
463 | 463 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
464 | 464 | MCFG_SCREEN_SIZE(32*8, 32*8) |
465 | 465 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
466 | MCFG_SCREEN_UPDATE_ | |
466 | MCFG_SCREEN_UPDATE_DR | |
467 | 467 | |
468 | 468 | MCFG_GFXDECODE(olibochu) |
469 | 469 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
---|---|---|
301 | 301 | /* video hardware */ |
302 | 302 | MCFG_SCREEN_ADD("screen", RASTER) |
303 | 303 | 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) | |
306 | 306 | |
307 | 307 | MCFG_GFXDECODE(ultratnk) |
308 | 308 | MCFG_PALETTE_LENGTH(10) |
r17967 | r17968 | |
---|---|---|
732 | 732 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
733 | 733 | MCFG_SCREEN_SIZE(64*8, 64*8) |
734 | 734 | MCFG_SCREEN_VISIBLE_AREA(6*8, 54*8-1, 17*8, 47*8-1) |
735 | MCFG_SCREEN_UPDATE_ | |
735 | MCFG_SCREEN_UPDATE_DR | |
736 | 736 | |
737 | 737 | MCFG_GFXDECODE(m90) |
738 | 738 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
818 | 818 | |
819 | 819 | MCFG_SCREEN_MODIFY("screen") |
820 | 820 | MCFG_SCREEN_VISIBLE_AREA(10*8, 50*8-1, 17*8, 47*8-1) |
821 | MCFG_SCREEN_UPDATE_ | |
821 | MCFG_SCREEN_UPDATE_DR | |
822 | 822 | |
823 | 823 | MCFG_VIDEO_START_OVERRIDE(m90_state,bomblord) |
824 | 824 | MACHINE_CONFIG_END |
r17967 | r17968 | |
837 | 837 | MCFG_SCREEN_MODIFY("screen") |
838 | 838 | MCFG_SCREEN_SIZE(320, 240) |
839 | 839 | MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) |
840 | MCFG_SCREEN_UPDATE_ | |
840 | MCFG_SCREEN_UPDATE_DR | |
841 | 841 | |
842 | 842 | MCFG_VIDEO_START_OVERRIDE(m90_state,dynablsb) |
843 | 843 |
r17967 | r17968 | |
---|---|---|
49 | 49 | DECLARE_WRITE8_MEMBER(tugboat_ctrl_w); |
50 | 50 | virtual void machine_reset(); |
51 | 51 | virtual void palette_init(); |
52 | UINT32 screen_update_tugboat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
52 | 53 | }; |
53 | 54 | |
54 | 55 | |
r17967 | r17968 | |
132 | 133 | } |
133 | 134 | } |
134 | 135 | |
135 | stat | |
136 | UINT32 tugboat_state::screen | |
136 | 137 | { |
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]; | |
140 | 140 | |
141 | 141 | |
142 | 142 | draw_tilemap(screen.machine(), bitmap,cliprect,startaddr0,0,1,FALSE); |
r17967 | r17968 | |
343 | 343 | MCFG_SCREEN_REFRESH_RATE(60) |
344 | 344 | MCFG_SCREEN_SIZE(32*8,32*8) |
345 | 345 | MCFG_SCREEN_VISIBLE_AREA(1*8,31*8-1,2*8,30*8-1) |
346 | MCFG_SCREEN_UPDATE_ | |
346 | MCFG_SCREEN_UPDATE_DR | |
347 | 347 | |
348 | 348 | MCFG_GFXDECODE(tugboat) |
349 | 349 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
110 | 110 | virtual void video_start(); |
111 | 111 | DECLARE_PALETTE_INIT(kingdrby); |
112 | 112 | DECLARE_PALETTE_INIT(kingdrbb); |
113 | UINT32 screen_update_kingdrby(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
113 | 114 | }; |
114 | 115 | |
115 | 116 | |
r17967 | r17968 | |
227 | 228 | } |
228 | 229 | } |
229 | 230 | |
230 | stat | |
231 | UINT32 kingdrby_state::screen | |
231 | 232 | { |
232 | kingdrby_state *state = screen.machine().driver_data<kingdrby_state>(); | |
233 | 233 | const rectangle &visarea = screen.visible_area(); |
234 | 234 | 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); | |
240 | 240 | |
241 | 241 | /* maybe it needs two window tilemaps? (one at the top, the other at the bottom)*/ |
242 | 242 | clip.set(visarea.min_x, 256, 192, visarea.max_y); |
243 | 243 | |
244 | 244 | /*TILEMAP_DRAW_CATEGORY + TILEMAP_DRAW_OPAQUE doesn't suit well?*/ |
245 | | |
245 | | |
246 | 246 | 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); | |
249 | 249 | |
250 | 250 | return 0; |
251 | 251 | } |
r17967 | r17968 | |
1044 | 1044 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
1045 | 1045 | MCFG_SCREEN_SIZE(256, 256) |
1046 | 1046 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 224-1) /* controlled by CRTC */ |
1047 | MCFG_SCREEN_UPDATE_ | |
1047 | MCFG_SCREEN_UPDATE_DR | |
1048 | 1048 | |
1049 | 1049 | |
1050 | 1050 | MCFG_MC6845_ADD("crtc", MC6845, CLK_1/32, mc6845_intf) /* 53.333 Hz. guess */ |
r17967 | r17968 | |
---|---|---|
461 | 461 | /* video hardware */ |
462 | 462 | MCFG_SCREEN_ADD("screen", RASTER) |
463 | 463 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
464 | MCFG_SCREEN_UPDATE_ | |
464 | MCFG_SCREEN_UPDATE_DR | |
465 | 465 | |
466 | 466 | MCFG_GFXDECODE(phoenix) |
467 | 467 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
534 | 534 | */ |
535 | 535 | MCFG_SCREEN_ADD("screen", RASTER) |
536 | 536 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
537 | MCFG_SCREEN_UPDATE_ | |
537 | MCFG_SCREEN_UPDATE_DR | |
538 | 538 | |
539 | 539 | MCFG_GFXDECODE(phoenix) |
540 | 540 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
70 | 70 | tilemap_t *m_fg_tilemap; |
71 | 71 | tilemap_t *m_tx_tilemap; |
72 | 72 | virtual void video_start(); |
73 | UINT32 screen_update_rdx_v33(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
73 | 74 | }; |
74 | 75 | |
75 | 76 | |
r17967 | r17968 | |
213 | 214 | m_tx_tilemap->set_transparent_pen(15); |
214 | 215 | } |
215 | 216 | |
216 | stat | |
217 | UINT32 r2dx_v33_state::screen | |
217 | 218 | { |
218 | r2dx_v33_state *state = screen.machine().driver_data<r2dx_v33_state>(); | |
219 | 219 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
220 | 220 | |
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); | |
224 | 224 | |
225 | 225 | draw_sprites(screen.machine(),bitmap,cliprect,0); |
226 | 226 | |
227 | | |
227 | | |
228 | 228 | |
229 | 229 | /* debug DMA processing */ |
230 | 230 | if(0) |
r17967 | r17968 | |
258 | 258 | } |
259 | 259 | |
260 | 260 | popmessage("%08x 1",src_addr); |
261 | | |
261 | | |
262 | 262 | frame = 0; |
263 | 263 | src_addr+=0x800; |
264 | 264 | } |
r17967 | r17968 | |
704 | 704 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
705 | 705 | MCFG_SCREEN_SIZE(64*8, 64*8) |
706 | 706 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) |
707 | MCFG_SCREEN_UPDATE_ | |
707 | MCFG_SCREEN_UPDATE_DR | |
708 | 708 | |
709 | 709 | MCFG_GFXDECODE(rdx_v33) |
710 | 710 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
737 | 737 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate *//2) |
738 | 738 | MCFG_SCREEN_SIZE(64*8, 64*8) |
739 | 739 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0, 32*8-1) |
740 | MCFG_SCREEN_UPDATE_ | |
740 | MCFG_SCREEN_UPDATE_DR | |
741 | 741 | MCFG_GFXDECODE(rdx_v33) |
742 | 742 | MCFG_PALETTE_LENGTH(2048) |
743 | 743 |
r17967 | r17968 | |
---|---|---|
124 | 124 | virtual void machine_start(); |
125 | 125 | virtual void machine_reset(); |
126 | 126 | virtual void video_start(); |
127 | UINT32 screen_update_lastfght(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
127 | 128 | }; |
128 | 129 | |
129 | 130 | |
r17967 | r17968 | |
143 | 144 | } |
144 | 145 | |
145 | 146 | |
146 | stat | |
147 | UINT32 lastfght_state::screen | |
147 | 148 | { |
148 | lastfght_state *state = screen.machine().driver_data<lastfght_state>(); | |
149 | 149 | |
150 | 150 | #ifdef MAME_DEBUG |
151 | 151 | #if 1 |
r17967 | r17968 | |
154 | 154 | UINT8 *gfxdata = screen.machine().root_device().memregion("gfx1")->base(); |
155 | 155 | UINT8 data; |
156 | 156 | |
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) | |
159 | 159 | { |
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(); | |
163 | 163 | |
164 | count = | |
164 | count = | |
165 | 165 | |
166 | 166 | bitmap.fill(get_black_pen(screen.machine()), cliprect ); |
167 | 167 | for (y = 0 ; y < 256; y++) |
r17967 | r17968 | |
173 | 173 | count++; |
174 | 174 | } |
175 | 175 | } |
176 | popmessage("%x", | |
176 | popmessage("%x", | |
177 | 177 | return 0; |
178 | 178 | } |
179 | 179 | #endif |
180 | 180 | #endif |
181 | 181 | |
182 | copybitmap(bitmap, | |
182 | copybitmap(bitmap, | |
183 | 183 | |
184 | 184 | return 0; |
185 | 185 | } |
r17967 | r17968 | |
594 | 594 | MCFG_SCREEN_SIZE( 512, 256 ) |
595 | 595 | MCFG_SCREEN_VISIBLE_AREA( 0, 512-1, 0, 256-16-1 ) |
596 | 596 | MCFG_SCREEN_REFRESH_RATE( 60 ) |
597 | MCFG_SCREEN_UPDATE_ | |
597 | MCFG_SCREEN_UPDATE_DR | |
598 | 598 | |
599 | 599 | MACHINE_CONFIG_END |
600 | 600 |
r17967 | r17968 | |
---|---|---|
29 | 29 | DECLARE_WRITE8_MEMBER(input_select_w); |
30 | 30 | virtual void machine_start(); |
31 | 31 | virtual void machine_reset(); |
32 | UINT32 screen_update_embargo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
32 | 33 | }; |
33 | 34 | |
34 | 35 | |
r17967 | r17968 | |
38 | 39 | * |
39 | 40 | *************************************/ |
40 | 41 | |
41 | stat | |
42 | UINT32 embargo_state::screen | |
42 | 43 | { |
43 | embargo_state *state = screen.machine().driver_data<embargo_state>(); | |
44 | 44 | offs_t offs; |
45 | 45 | |
46 | for (offs = 0; offs < | |
46 | for (offs = 0; offs < | |
47 | 47 | { |
48 | 48 | int i; |
49 | 49 | |
50 | 50 | UINT8 x = offs << 3; |
51 | 51 | UINT8 y = offs >> 5; |
52 | UINT8 data = | |
52 | UINT8 data = | |
53 | 53 | |
54 | 54 | for (i = 0; i < 8; i++) |
55 | 55 | { |
r17967 | r17968 | |
265 | 265 | MCFG_SCREEN_SIZE(256, 256) |
266 | 266 | MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239) |
267 | 267 | MCFG_SCREEN_REFRESH_RATE(60) |
268 | MCFG_SCREEN_UPDATE_ | |
268 | MCFG_SCREEN_UPDATE_DR | |
269 | 269 | |
270 | 270 | MACHINE_CONFIG_END |
271 | 271 |
r17967 | r17968 | |
---|---|---|
1014 | 1014 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1015 | 1015 | MCFG_SCREEN_SIZE(256, 256) |
1016 | 1016 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
1017 | MCFG_SCREEN_UPDATE_ | |
1017 | MCFG_SCREEN_UPDATE_DR | |
1018 | 1018 | |
1019 | 1019 | MCFG_GFXDECODE(pbillian) |
1020 | 1020 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
1048 | 1048 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1049 | 1049 | MCFG_SCREEN_SIZE(256, 256) |
1050 | 1050 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
1051 | MCFG_SCREEN_UPDATE_ | |
1051 | MCFG_SCREEN_UPDATE_DR | |
1052 | 1052 | |
1053 | 1053 | MCFG_GFXDECODE(pbillian) |
1054 | 1054 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
1086 | 1086 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1087 | 1087 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1088 | 1088 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
1089 | MCFG_SCREEN_UPDATE_ | |
1089 | MCFG_SCREEN_UPDATE_DR | |
1090 | 1090 | |
1091 | 1091 | MCFG_GFXDECODE(sqix) |
1092 | 1092 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
1129 | 1129 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1130 | 1130 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1131 | 1131 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
1132 | MCFG_SCREEN_UPDATE_ | |
1132 | MCFG_SCREEN_UPDATE_DR | |
1133 | 1133 | |
1134 | 1134 | MCFG_GFXDECODE(sqix) |
1135 | 1135 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
208 | 208 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
209 | 209 | MCFG_SCREEN_SIZE(32*8, 32*8) |
210 | 210 | MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1) |
211 | MCFG_SCREEN_UPDATE_ | |
211 | MCFG_SCREEN_UPDATE_DR | |
212 | 212 | |
213 | 213 | MCFG_GFXDECODE(markham) |
214 | 214 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
267 | 267 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
268 | 268 | MCFG_SCREEN_SIZE(32*8, 32*8) |
269 | 269 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) |
270 | MCFG_SCREEN_UPDATE_ | |
270 | MCFG_SCREEN_UPDATE_DR | |
271 | 271 | |
272 | 272 | MCFG_GFXDECODE(dday) |
273 | 273 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
148 | 148 | virtual void machine_start(); |
149 | 149 | virtual void machine_reset(); |
150 | 150 | virtual void palette_init(); |
151 | UINT32 screen_update_vega(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
151 | 152 | }; |
152 | 153 | |
153 | 154 | WRITE8_MEMBER(vega_state::extern_w) |
r17967 | r17968 | |
547 | 548 | |
548 | 549 | } |
549 | 550 | |
550 | static | |
551 | UINT32 vega_state::screen_update_vega(screen_device &screen, bitmap_ind | |
551 | 552 | { |
552 | vega_state *state = screen.machine().driver_data<vega_state>(); | |
553 | ++state->m_frame_counter; | |
553 | ++m_frame_counter; | |
554 | 554 | |
555 | 555 | bitmap.fill(0, cliprect); |
556 | 556 | |
557 | draw_tilemap( | |
557 | draw_tilemap( | |
558 | 558 | |
559 | 559 | |
560 | 560 | { |
561 | 561 | int x,y; |
562 | 562 | int idx=0; |
563 | UINT8 *color_lookup = | |
563 | UINT8 *color_lookup = | |
564 | 564 | |
565 | 565 | for(y=0;y<25;++y) |
566 | 566 | for(x=0;x<40;++x) |
567 | 567 | { |
568 | 568 | |
569 | int character= | |
569 | int character= | |
570 | 570 | //int color=BITSWAP8(color_lookup[character],7,6,5,4,0,1,2,3)>>1; |
571 | 571 | int color=color_lookup[character]&0xf; |
572 | 572 | /* |
r17967 | r17968 | |
593 | 593 | for(int i=OBJ_0;i<OBJ_PLAYER;++i) |
594 | 594 | { |
595 | 595 | |
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; | |
600 | 600 | |
601 | 601 | num*=4*8; |
602 | 602 | for(int x=0;x<8;++x) |
r17967 | r17968 | |
623 | 623 | |
624 | 624 | |
625 | 625 | { |
626 | if(BIT( | |
626 | if(BIT( | |
627 | 627 | { |
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; | |
630 | 630 | |
631 | UINT8 *sprite_lookup = | |
631 | UINT8 *sprite_lookup = | |
632 | 632 | |
633 | 633 | |
634 | 634 | for(int x=0;x<16;++x) |
635 | 635 | { |
636 | int prom_data=sprite_lookup[ (( | |
636 | int prom_data=sprite_lookup[ (( | |
637 | 637 | |
638 | 638 | 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( | |
639 | ( (BIT(prom_data,2)) | (BIT(prom_data,3)) | ( BIT( | |
640 | 640 | |
641 | 641 | int strip_num=((prom_data)&0x7)|( ((x&3)^(xor_line?0x3:0)) <<3)|((BIT(prom_data,3))<<5); |
642 | 642 | |
r17967 | r17968 | |
860 | 860 | |
861 | 861 | MCFG_GFXDECODE(test_decode) |
862 | 862 | |
863 | MCFG_SCREEN_UPDATE_ | |
863 | MCFG_SCREEN_UPDATE_DR | |
864 | 864 | |
865 | 865 | /* sound hardware */ |
866 | 866 |
r17967 | r17968 | |
---|---|---|
457 | 457 | /* note: these parameters are from published specs, not derived */ |
458 | 458 | /* the board uses an SOS-2 chip to generate video signals */ |
459 | 459 | MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz, 456*2, 0, 336*2, 262, 0, 240) |
460 | MCFG_SCREEN_UPDATE_ | |
460 | MCFG_SCREEN_UPDATE_DR | |
461 | 461 | |
462 | 462 | MCFG_SCREEN_ADD("rscreen", RASTER) |
463 | 463 | /* note: these parameters are from published specs, not derived */ |
464 | 464 | /* the board uses an SOS-2 chip to generate video signals */ |
465 | 465 | MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz, 456*2, 0, 336*2, 262, 0, 240) |
466 | MCFG_SCREEN_UPDATE_ | |
466 | MCFG_SCREEN_UPDATE_DR | |
467 | 467 | |
468 | 468 | MCFG_VIDEO_START_OVERRIDE(cyberbal_state,cyberbal) |
469 | 469 | |
r17967 | r17968 | |
503 | 503 | /* note: these parameters are from published specs, not derived */ |
504 | 504 | /* the board uses an SOS-2 chip to generate video signals */ |
505 | 505 | MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz, 456*2, 0, 336*2, 262, 0, 240) |
506 | MCFG_SCREEN_UPDATE_ | |
506 | MCFG_SCREEN_UPDATE_DR | |
507 | 507 | |
508 | 508 | MCFG_VIDEO_START_OVERRIDE(cyberbal_state,cyberbal2p) |
509 | 509 |
r17967 | r17968 | |
---|---|---|
527 | 527 | |
528 | 528 | MCFG_SCREEN_ADD("screen", RASTER) |
529 | 529 | 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) | |
532 | 532 | |
533 | 533 | MCFG_GFXDECODE(lockon) |
534 | 534 | MCFG_PALETTE_LENGTH(1024 + 2048) |
r17967 | r17968 | |
---|---|---|
106 | 106 | TILE_GET_INFO_MEMBER(get_warpspeed_starfield_tile_info); |
107 | 107 | virtual void video_start(); |
108 | 108 | virtual void palette_init(); |
109 | UINT32 screen_update_warpspeed(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
109 | 110 | }; |
110 | 111 | |
111 | 112 | WRITE8_MEMBER(warpspeed_state::warpspeed_hardware_w) |
r17967 | r17968 | |
208 | 209 | } |
209 | 210 | } |
210 | 211 | |
211 | stat | |
212 | UINT32 warpspeed_state::screen | |
212 | 213 | { |
213 | warpspeed_state *state = screen.machine().driver_data<warpspeed_state>(); | |
214 | 214 | |
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); | |
218 | 218 | return 0; |
219 | 219 | } |
220 | 220 | |
r17967 | r17968 | |
318 | 318 | MCFG_SCREEN_SIZE((32)*8, (32)*8) |
319 | 319 | MCFG_SCREEN_VISIBLE_AREA(4*8, 32*8-1, 8*8, 32*8-1) |
320 | 320 | |
321 | MCFG_SCREEN_UPDATE_ | |
321 | MCFG_SCREEN_UPDATE_DR | |
322 | 322 | |
323 | 323 | MCFG_GFXDECODE(warpspeed) |
324 | 324 | MCFG_PALETTE_LENGTH(2+8) |
r17967 | r17968 | |
---|---|---|
312 | 312 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
313 | 313 | MCFG_SCREEN_SIZE(64*8, 32*8) |
314 | 314 | MCFG_SCREEN_VISIBLE_AREA(24, 24+288-1, 16, 16+224-1) |
315 | MCFG_SCREEN_UPDATE_ | |
315 | MCFG_SCREEN_UPDATE_DR | |
316 | 316 | |
317 | 317 | MCFG_PALETTE_LENGTH(2048) |
318 | 318 |
r17967 | r17968 | |
---|---|---|
536 | 536 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
537 | 537 | MCFG_SCREEN_SIZE(32*8, 32*8) |
538 | 538 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
539 | MCFG_SCREEN_UPDATE_ | |
539 | MCFG_SCREEN_UPDATE_DR | |
540 | 540 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) |
541 | 541 | |
542 | 542 | MCFG_GFXDECODE(tigeroad) |
r17967 | r17968 | |
---|---|---|
192 | 192 | MCFG_SCREEN_SIZE(320, 240) |
193 | 193 | MCFG_SCREEN_VISIBLE_AREA(0,319, 0, 239) |
194 | 194 | |
195 | MCFG_SCREEN_UPDATE_ | |
195 | MCFG_SCREEN_UPDATE_DR | |
196 | 196 | MCFG_PALETTE_LENGTH(256) |
197 | 197 | |
198 | 198 | MCFG_NVRAM_ADD_0FILL("nvram") |
r17967 | r17968 | |
---|---|---|
190 | 190 | DECLARE_WRITE8_MEMBER(zvideoram_w); |
191 | 191 | DECLARE_READ8_MEMBER(spaceg_colorram_r); |
192 | 192 | virtual void palette_init(); |
193 | UINT32 screen_update_spaceg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
193 | 194 | }; |
194 | 195 | |
195 | 196 | /************************************* |
r17967 | r17968 | |
297 | 298 | } |
298 | 299 | |
299 | 300 | |
300 | stat | |
301 | UINT32 spaceg_state::screen | |
301 | 302 | { |
302 | spaceg_state *state = screen.machine().driver_data<spaceg_state>(); | |
303 | 303 | offs_t offs; |
304 | 304 | |
305 | 305 | for (offs = 0; offs < 0x2000; offs++) |
306 | 306 | { |
307 | 307 | int i; |
308 | UINT8 data = | |
308 | UINT8 data = | |
309 | 309 | int y = offs & 0xff; |
310 | 310 | int x = (offs >> 8) << 3; |
311 | 311 | |
312 | 312 | for (i = 0; i < 8; i++) |
313 | 313 | { |
314 | bitmap.pix16(y, x) = (data & 0x80) ? | |
314 | bitmap.pix16(y, x) = (data & 0x80) ? | |
315 | 315 | |
316 | 316 | x++; |
317 | 317 | data <<= 1; |
r17967 | r17968 | |
436 | 436 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
437 | 437 | MCFG_SCREEN_SIZE(256, 256) |
438 | 438 | MCFG_SCREEN_VISIBLE_AREA(0, 255, 32, 255) |
439 | MCFG_SCREEN_UPDATE_ | |
439 | MCFG_SCREEN_UPDATE_DR | |
440 | 440 | |
441 | 441 | MCFG_PALETTE_LENGTH(16+128-16) |
442 | 442 |
r17967 | r17968 | |
---|---|---|
2214 | 2214 | MCFG_SCREEN_REFRESH_RATE(60) |
2215 | 2215 | MCFG_SCREEN_SIZE(52*8, 262) |
2216 | 2216 | MCFG_SCREEN_VISIBLE_AREA(0*8, 52*8-1, 0*8, 28*8-1) |
2217 | MCFG_SCREEN_UPDATE_ | |
2217 | MCFG_SCREEN_UPDATE_DR | |
2218 | 2218 | |
2219 | 2219 | MCFG_VIDEO_START_OVERRIDE(segas32_state,system32) |
2220 | 2220 | |
r17967 | r17968 | |
2274 | 2274 | MCFG_SCREEN_REFRESH_RATE(60) |
2275 | 2275 | MCFG_SCREEN_SIZE(52*8, 262) |
2276 | 2276 | MCFG_SCREEN_VISIBLE_AREA(0*8, 52*8-1, 0*8, 28*8-1) |
2277 | MCFG_SCREEN_UPDATE_ | |
2277 | MCFG_SCREEN_UPDATE_DR | |
2278 | 2278 | |
2279 | 2279 | MCFG_SCREEN_ADD("rscreen", RASTER) |
2280 | 2280 | MCFG_SCREEN_REFRESH_RATE(60) |
2281 | 2281 | MCFG_SCREEN_SIZE(52*8, 262) |
2282 | 2282 | MCFG_SCREEN_VISIBLE_AREA(0*8, 52*8-1, 0*8, 28*8-1) |
2283 | MCFG_SCREEN_UPDATE_ | |
2283 | MCFG_SCREEN_UPDATE_DR | |
2284 | 2284 | |
2285 | 2285 | MCFG_VIDEO_START_OVERRIDE(segas32_state,multi32) |
2286 | 2286 |
r17967 | r17968 | |
---|---|---|
142 | 142 | virtual void machine_start(); |
143 | 143 | virtual void video_start(); |
144 | 144 | virtual void palette_init(); |
145 | UINT32 screen_update_looping(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
145 | 146 | }; |
146 | 147 | |
147 | 148 | |
r17967 | r17968 | |
303 | 304 | } |
304 | 305 | |
305 | 306 | |
306 | stat | |
307 | UINT32 looping_state::screen | |
307 | 308 | { |
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); | |
310 | 310 | |
311 | 311 | draw_sprites(screen.machine(), bitmap, cliprect); |
312 | 312 | return 0; |
r17967 | r17968 | |
658 | 658 | /* video hardware */ |
659 | 659 | MCFG_SCREEN_ADD("screen", RASTER) |
660 | 660 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
661 | MCFG_SCREEN_UPDATE_ | |
661 | MCFG_SCREEN_UPDATE_DR | |
662 | 662 | |
663 | 663 | MCFG_GFXDECODE(looping) |
664 | 664 | MCFG_PALETTE_LENGTH(32) |
r17967 | r17968 | |
---|---|---|
77 | 77 | TILE_GET_INFO_MEMBER(get_k3_bg_tile_info); |
78 | 78 | virtual void machine_start(); |
79 | 79 | virtual void video_start(); |
80 | UINT32 screen_update_k3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
80 | 81 | }; |
81 | 82 | |
82 | 83 | |
r17967 | r17968 | |
123 | 124 | } |
124 | 125 | } |
125 | 126 | |
126 | static | |
127 | UINT32 k3_state::screen_update_k3(screen_device &screen, bitmap_ind | |
127 | 128 | { |
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); | |
130 | 130 | draw_sprites(screen.machine(), bitmap, cliprect); |
131 | 131 | return 0; |
132 | 132 | } |
r17967 | r17968 | |
267 | 267 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
268 | 268 | MCFG_SCREEN_SIZE(64*8, 64*8) |
269 | 269 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) |
270 | MCFG_SCREEN_UPDATE_ | |
270 | MCFG_SCREEN_UPDATE_DR | |
271 | 271 | |
272 | 272 | MCFG_PALETTE_LENGTH(0x800) |
273 | 273 |
r17967 | r17968 | |
---|---|---|
520 | 520 | /* note: these parameters are from published specs, not derived */ |
521 | 521 | /* the board uses an SOS-2 chip to generate video signals */ |
522 | 522 | MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240) |
523 | MCFG_SCREEN_UPDATE_ | |
523 | MCFG_SCREEN_UPDATE_DR | |
524 | 524 | |
525 | 525 | MCFG_VIDEO_START_OVERRIDE(badlands_state,badlands) |
526 | 526 | |
r17967 | r17968 | |
726 | 726 | /* note: these parameters are from published specs, not derived */ |
727 | 727 | /* the board uses an SOS-2 chip to generate video signals */ |
728 | 728 | MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240) |
729 | MCFG_SCREEN_UPDATE_ | |
729 | MCFG_SCREEN_UPDATE_DR | |
730 | 730 | |
731 | 731 | MCFG_VIDEO_START_OVERRIDE(badlands_state,badlands) |
732 | 732 |
r17967 | r17968 | |
---|---|---|
767 | 767 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
768 | 768 | MCFG_SCREEN_SIZE(64*8, 32*8) |
769 | 769 | MCFG_SCREEN_VISIBLE_AREA(1*8, 34*8-1, 2*8, 32*8-1) |
770 | MCFG_SCREEN_UPDATE_ | |
770 | MCFG_SCREEN_UPDATE_DR | |
771 | 771 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) |
772 | 772 | |
773 | 773 | MCFG_GFXDECODE(perfrman) |
r17967 | r17968 | |
813 | 813 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
814 | 814 | MCFG_SCREEN_SIZE(64*8, 32*8) |
815 | 815 | MCFG_SCREEN_VISIBLE_AREA(1*8, 36*8-1, 2*8, 32*8-1) |
816 | MCFG_SCREEN_UPDATE_ | |
816 | MCFG_SCREEN_UPDATE_DR | |
817 | 817 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) |
818 | 818 | |
819 | 819 | MCFG_GFXDECODE(slapfght) |
r17967 | r17968 | |
861 | 861 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
862 | 862 | MCFG_SCREEN_SIZE(64*8, 32*8) |
863 | 863 | MCFG_SCREEN_VISIBLE_AREA(1*8, 36*8-1, 2*8, 32*8-1) |
864 | MCFG_SCREEN_UPDATE_ | |
864 | MCFG_SCREEN_UPDATE_DR | |
865 | 865 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) |
866 | 866 | |
867 | 867 | MCFG_GFXDECODE(slapfght) |
r17967 | r17968 | |
910 | 910 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
911 | 911 | MCFG_SCREEN_SIZE(64*8, 32*8) |
912 | 912 | MCFG_SCREEN_VISIBLE_AREA(1*8, 36*8-1, 2*8, 32*8-1) |
913 | MCFG_SCREEN_UPDATE_ | |
913 | MCFG_SCREEN_UPDATE_DR | |
914 | 914 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) |
915 | 915 | |
916 | 916 | MCFG_GFXDECODE(slapfght) |
r17967 | r17968 | |
---|---|---|
822 | 822 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
823 | 823 | MCFG_SCREEN_SIZE(64*8, 32*8) |
824 | 824 | MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 0, 28*8-1) |
825 | MCFG_SCREEN_UPDATE_ | |
825 | MCFG_SCREEN_UPDATE_DR | |
826 | 826 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram32_device, vblank_copy_rising) |
827 | 827 | |
828 | 828 | MCFG_GFXDECODE(psikyosh) |
r17967 | r17968 | |
---|---|---|
81 | 81 | DECLARE_MACHINE_START(spaceint); |
82 | 82 | DECLARE_MACHINE_RESET(spaceint); |
83 | 83 | 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); | |
84 | 86 | }; |
85 | 87 | |
86 | 88 | |
r17967 | r17968 | |
167 | 169 | } |
168 | 170 | |
169 | 171 | |
170 | stat | |
172 | UINT32 astinvad_state::screen | |
171 | 173 | { |
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; | |
175 | 176 | int x, y; |
176 | 177 | |
177 | 178 | /* render the visible pixels */ |
178 | 179 | for (y = cliprect.min_y; y <= cliprect.max_y; y++) |
179 | 180 | for (x = cliprect.min_x & ~7; x <= cliprect.max_x; x += 8) |
180 | 181 | { |
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); | |
184 | 185 | } |
185 | 186 | |
186 | 187 | return 0; |
187 | 188 | } |
188 | 189 | |
189 | 190 | |
190 | stat | |
191 | UINT32 astinvad_state::screen | |
191 | 192 | { |
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(); | |
194 | 194 | int offs; |
195 | 195 | |
196 | for (offs = 0; offs < | |
196 | for (offs = 0; offs < | |
197 | 197 | { |
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]; | |
200 | 200 | |
201 | 201 | UINT8 y = ~offs; |
202 | 202 | UINT8 x = offs >> 8 << 3; |
r17967 | r17968 | |
601 | 601 | /* video hardware */ |
602 | 602 | MCFG_SCREEN_ADD("screen", RASTER) |
603 | 603 | MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK, 320, 0, 256, 256, 32, 256) |
604 | MCFG_SCREEN_UPDATE_ | |
604 | MCFG_SCREEN_UPDATE_DR | |
605 | 605 | |
606 | 606 | /* sound hardware */ |
607 | 607 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
637 | 637 | MCFG_SCREEN_SIZE(32*8, 32*8) |
638 | 638 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
639 | 639 | MCFG_SCREEN_REFRESH_RATE(60) |
640 | MCFG_SCREEN_UPDATE_ | |
640 | MCFG_SCREEN_UPDATE_DR | |
641 | 641 | |
642 | 642 | /* sound hardware */ |
643 | 643 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
---|---|---|
125 | 125 | DECLARE_DRIVER_INIT(supertnk); |
126 | 126 | virtual void machine_reset(); |
127 | 127 | virtual void video_start(); |
128 | UINT32 screen_update_supertnk(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
128 | 129 | }; |
129 | 130 | |
130 | 131 | |
r17967 | r17968 | |
245 | 246 | } |
246 | 247 | |
247 | 248 | |
248 | stat | |
249 | UINT32 supertnk_state::screen | |
249 | 250 | { |
250 | supertnk_state *state = screen.machine().driver_data<supertnk_state>(); | |
251 | 251 | offs_t offs; |
252 | 252 | |
253 | 253 | for (offs = 0; offs < 0x2000; offs++) |
r17967 | r17968 | |
257 | 257 | UINT8 y = offs >> 5; |
258 | 258 | UINT8 x = offs << 3; |
259 | 259 | |
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]; | |
263 | 263 | |
264 | 264 | for (i = 0; i < 8; i++) |
265 | 265 | { |
266 | 266 | UINT8 color = ((data0 & 0x80) >> 5) | ((data1 & 0x80) >> 6) | ((data2 & 0x80) >> 7); |
267 | bitmap.pix32(y, x) = | |
267 | bitmap.pix32(y, x) = | |
268 | 268 | |
269 | 269 | data0 = data0 << 1; |
270 | 270 | data1 = data1 << 1; |
r17967 | r17968 | |
439 | 439 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) |
440 | 440 | MCFG_SCREEN_REFRESH_RATE(60) |
441 | 441 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
442 | MCFG_SCREEN_UPDATE_ | |
442 | MCFG_SCREEN_UPDATE_DR | |
443 | 443 | |
444 | 444 | /* audio hardware */ |
445 | 445 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
---|---|---|
455 | 455 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
456 | 456 | MCFG_SCREEN_SIZE(64*8, 32*8) |
457 | 457 | MCFG_SCREEN_VISIBLE_AREA(8*8, 56*8-1, 2*8, 30*8-1) |
458 | MCFG_SCREEN_UPDATE_ | |
458 | MCFG_SCREEN_UPDATE_DR | |
459 | 459 | |
460 | 460 | MCFG_GFXDECODE(quizdna) |
461 | 461 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
---|---|---|
354 | 354 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
355 | 355 | MCFG_SCREEN_SIZE(40*8, 32*8) |
356 | 356 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
357 | MCFG_SCREEN_UPDATE_ | |
357 | MCFG_SCREEN_UPDATE_DR | |
358 | 358 | |
359 | 359 | MCFG_PALETTE_LENGTH(2048) |
360 | 360 | MCFG_GFXDECODE(boogwing) |
r17967 | r17968 | |
---|---|---|
417 | 417 | /* note: these parameters are from published specs, not derived */ |
418 | 418 | /* the board uses a VAD chip to generate video signals */ |
419 | 419 | MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240) |
420 | MCFG_SCREEN_UPDATE_ | |
420 | MCFG_SCREEN_UPDATE_DR | |
421 | 421 | |
422 | 422 | MCFG_VIDEO_START_OVERRIDE(offtwall_state,offtwall) |
423 | 423 |
r17967 | r17968 | |
---|---|---|
49 | 49 | DECLARE_DRIVER_INIT(esh); |
50 | 50 | virtual void machine_start(); |
51 | 51 | virtual void palette_init(); |
52 | UINT32 screen_update_esh(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
52 | 53 | }; |
53 | 54 | |
54 | 55 | |
r17967 | r17968 | |
57 | 58 | |
58 | 59 | |
59 | 60 | /* VIDEO GOODS */ |
60 | static | |
61 | UINT32 esh_state::screen_update_esh(screen_device &screen, bitmap_rgb | |
61 | 62 | { |
62 | esh_state *state = screen.machine().driver_data<esh_state>(); | |
63 | 63 | int charx, chary; |
64 | 64 | |
65 | 65 | /* clear */ |
r17967 | r17968 | |
72 | 72 | { |
73 | 73 | int current_screen_character = (chary*32) + charx; |
74 | 74 | |
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; | |
79 | 79 | |
80 | 80 | drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0], |
81 | | |
81 | | |
82 | 82 | palIndex, |
83 | 83 | 0, 0, charx*8, chary*8, 0); |
84 | 84 | } |
r17967 | r17968 | |
308 | 308 | |
309 | 309 | |
310 | 310 | MCFG_LASERDISC_LDV1000_ADD("laserdisc") |
311 | MCFG_LASERDISC_OVERLAY_ | |
311 | MCFG_LASERDISC_OVERLAY_DR | |
312 | 312 | |
313 | 313 | /* video hardware */ |
314 | 314 | MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc") |
r17967 | r17968 | |
---|---|---|
1018 | 1018 | MCFG_SCREEN_REFRESH_RATE(60) |
1019 | 1019 | MCFG_SCREEN_SIZE(512, 256) |
1020 | 1020 | MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1) |
1021 | MCFG_SCREEN_UPDATE_ | |
1021 | MCFG_SCREEN_UPDATE_DR | |
1022 | 1022 | |
1023 | 1023 | MCFG_GFXDECODE(fromance) |
1024 | 1024 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
1056 | 1056 | MCFG_SCREEN_REFRESH_RATE(60) |
1057 | 1057 | MCFG_SCREEN_SIZE(512, 256) |
1058 | 1058 | MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1) |
1059 | MCFG_SCREEN_UPDATE_ | |
1059 | MCFG_SCREEN_UPDATE_DR | |
1060 | 1060 | |
1061 | 1061 | MCFG_GFXDECODE(fromance) |
1062 | 1062 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
1094 | 1094 | MCFG_SCREEN_REFRESH_RATE(60) |
1095 | 1095 | MCFG_SCREEN_SIZE(512, 256) |
1096 | 1096 | MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1) |
1097 | MCFG_SCREEN_UPDATE_ | |
1097 | MCFG_SCREEN_UPDATE_DR | |
1098 | 1098 | |
1099 | 1099 | MCFG_GFXDECODE(fromance) |
1100 | 1100 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
---|---|---|
461 | 461 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
462 | 462 | MCFG_SCREEN_SIZE(36*8, 28*8) |
463 | 463 | MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1) |
464 | MCFG_SCREEN_UPDATE_ | |
464 | MCFG_SCREEN_UPDATE_DR | |
465 | 465 | |
466 | 466 | MCFG_GFXDECODE(skykid) |
467 | 467 | MCFG_PALETTE_LENGTH(64*4+128*4+64*8) |
r17967 | r17968 | |
---|---|---|
264 | 264 | virtual void machine_reset(); |
265 | 265 | virtual void video_start(); |
266 | 266 | 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); | |
267 | 269 | }; |
268 | 270 | |
269 | 271 | |
r17967 | r17968 | |
1479 | 1481 | } |
1480 | 1482 | |
1481 | 1483 | |
1482 | stat | |
1484 | UINT32 halleys_state::screen | |
1483 | 1485 | { |
1484 | halleys_state *state = screen.machine().driver_data<halleys_state>(); | |
1485 | 1486 | int i, j; |
1486 | 1487 | |
1487 | if ( | |
1488 | if ( | |
1488 | 1489 | { |
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); | |
1491 | 1492 | } |
1492 | 1493 | else |
1493 | bitmap.fill( | |
1494 | bitmap.fill( | |
1494 | 1495 | |
1495 | 1496 | #ifdef MAME_DEBUG |
1496 | if (screen.machine().root_device().ioport("DEBUG")->read()) copy_scroll_xp(bitmap, | |
1497 | if (screen.machine().root_device().ioport("DEBUG")->read()) copy_scroll_xp(bitmap, | |
1497 | 1498 | #endif |
1498 | 1499 | |
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]); | |
1502 | 1503 | |
1503 | 1504 | // 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); | |
1507 | 1508 | return 0; |
1508 | 1509 | } |
1509 | 1510 | |
1510 | 1511 | |
1511 | stat | |
1512 | UINT32 halleys_state::screen | |
1512 | 1513 | { |
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); | |
1516 | 1516 | else |
1517 | bitmap.fill( | |
1517 | bitmap.fill( | |
1518 | 1518 | |
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]); | |
1521 | 1521 | return 0; |
1522 | 1522 | } |
1523 | 1523 | |
r17967 | r17968 | |
1973 | 1973 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1974 | 1974 | MCFG_SCREEN_SIZE(SCREEN_WIDTH, SCREEN_HEIGHT) |
1975 | 1975 | MCFG_SCREEN_VISIBLE_AREA(VIS_MINX, VIS_MAXX, VIS_MINY, VIS_MAXY) |
1976 | MCFG_SCREEN_UPDATE_ | |
1976 | MCFG_SCREEN_UPDATE_DR | |
1977 | 1977 | |
1978 | 1978 | MCFG_PALETTE_LENGTH(PALETTE_SIZE) |
1979 | 1979 | |
r17967 | r17968 | |
2003 | 2003 | MCFG_TIMER_CALLBACK(benberob_scanline) |
2004 | 2004 | |
2005 | 2005 | MCFG_SCREEN_MODIFY("screen") |
2006 | MCFG_SCREEN_UPDATE_ | |
2006 | MCFG_SCREEN_UPDATE_DR | |
2007 | 2007 | MACHINE_CONFIG_END |
2008 | 2008 | |
2009 | 2009 |
r17967 | r17968 | |
---|---|---|
1471 | 1471 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1472 | 1472 | MCFG_SCREEN_SIZE(64*8, 64*8) |
1473 | 1473 | MCFG_SCREEN_VISIBLE_AREA(12, 512-12-1, 0, 384-1) |
1474 | MCFG_SCREEN_UPDATE_ | |
1474 | MCFG_SCREEN_UPDATE_DR | |
1475 | 1475 | |
1476 | 1476 | MCFG_PALETTE_LENGTH(0x4440/4) |
1477 | 1477 | MCFG_GFXDECODE(djmain) |
r17967 | r17968 | |
---|---|---|
201 | 201 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
202 | 202 | MCFG_SCREEN_SIZE(32*8, 32*8) |
203 | 203 | MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 0, 31*8-1) |
204 | MCFG_SCREEN_UPDATE_ | |
204 | MCFG_SCREEN_UPDATE_DR | |
205 | 205 | |
206 | 206 | MCFG_GFXDECODE(mustache) |
207 | 207 | MCFG_PALETTE_LENGTH(8*16+16*8) |
r17967 | r17968 | |
---|---|---|
1375 | 1375 | |
1376 | 1376 | MCFG_SCREEN_ADD("screen", RASTER) |
1377 | 1377 | MCFG_SCREEN_RAW_PARAMS(NEOGEO_PIXEL_CLOCK, NEOGEO_HTOTAL, NEOGEO_HBEND, NEOGEO_HBSTART, NEOGEO_VTOTAL, NEOGEO_VBEND, NEOGEO_VBSTART) |
1378 | MCFG_SCREEN_UPDATE_ | |
1378 | MCFG_SCREEN_UPDATE_DR | |
1379 | 1379 | |
1380 | 1380 | /* audio hardware */ |
1381 | 1381 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
r17967 | r17968 | |
---|---|---|
701 | 701 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
702 | 702 | MCFG_SCREEN_SIZE(96*4, 30*8) |
703 | 703 | MCFG_SCREEN_VISIBLE_AREA(0*4, 96*4-1, 0*8, 30*8-1) |
704 | MCFG_SCREEN_UPDATE_ | |
704 | MCFG_SCREEN_UPDATE_DR | |
705 | 705 | |
706 | 706 | MCFG_GFXDECODE(snookr10) |
707 | 707 |
r17967 | r17968 | |
---|---|---|
109 | 109 | virtual void video_start(); |
110 | 110 | virtual void palette_init(); |
111 | 111 | DECLARE_VIDEO_START(vertical); |
112 | UINT32 screen_update_statriv2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
112 | 113 | }; |
113 | 114 | |
114 | 115 | |
r17967 | r17968 | |
191 | 192 | * |
192 | 193 | *************************************/ |
193 | 194 | |
194 | static | |
195 | UINT32 statriv2_state::screen | |
195 | 196 | { |
196 | statriv2_state *state = screen.machine().driver_data<statriv2_state>(); | |
197 | 197 | if (tms9927_screen_reset(screen.machine().device("tms"))) |
198 | 198 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
199 | 199 | else |
200 | | |
200 | | |
201 | 201 | return 0; |
202 | 202 | } |
203 | 203 | |
r17967 | r17968 | |
612 | 612 | /* video hardware */ |
613 | 613 | MCFG_SCREEN_ADD("screen", RASTER) |
614 | 614 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 384, 0, 320, 270, 0, 240) |
615 | MCFG_SCREEN_UPDATE_ | |
615 | MCFG_SCREEN_UPDATE_DR | |
616 | 616 | |
617 | 617 | MCFG_TMS9927_ADD("tms", MASTER_CLOCK/2, tms9927_intf) |
618 | 618 |
r17967 | r17968 | |
---|---|---|
62 | 62 | required_shared_ptr<UINT8> m_tileram; |
63 | 63 | DECLARE_READ8_MEMBER(unknown_r); |
64 | 64 | virtual void palette_init(); |
65 | UINT32 screen_update_carrera(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
65 | 66 | }; |
66 | 67 | |
67 | 68 | |
r17967 | r17968 | |
247 | 248 | GFXDECODE_ENTRY( "gfx1", 0, tiles8x8_layout, 0, 1 ) |
248 | 249 | GFXDECODE_END |
249 | 250 | |
250 | stat | |
251 | UINT32 carrera_state::screen | |
251 | 252 | { |
252 | carrera_state *state = screen.machine().driver_data<carrera_state>(); | |
253 | 253 | |
254 | 254 | int x,y; |
255 | 255 | int count = 0; |
r17967 | r17968 | |
258 | 258 | { |
259 | 259 | for (x=0;x<64;x++) |
260 | 260 | { |
261 | int tile = | |
261 | int tile = | |
262 | 262 | |
263 | 263 | drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0],tile,0,0,0,x*8,y*8); |
264 | 264 | count++; |
r17967 | r17968 | |
338 | 338 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
339 | 339 | MCFG_SCREEN_SIZE(512, 256) |
340 | 340 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) |
341 | MCFG_SCREEN_UPDATE_ | |
341 | MCFG_SCREEN_UPDATE_DR | |
342 | 342 | |
343 | 343 | MCFG_MC6845_ADD("crtc", MC6845, MASTER_CLOCK / 16, mc6845_intf) |
344 | 344 |
r17967 | r17968 | |
---|---|---|
106 | 106 | MCFG_SCREEN_REFRESH_RATE(60) |
107 | 107 | MCFG_SCREEN_SIZE(400, 300) |
108 | 108 | MCFG_SCREEN_VISIBLE_AREA(0, 399, 0, 299) |
109 | MCFG_SCREEN_UPDATE_ | |
109 | MCFG_SCREEN_UPDATE_DR | |
110 | 110 | |
111 | 111 | |
112 | 112 | /* sound hardware */ |
r17967 | r17968 | |
---|---|---|
235 | 235 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
236 | 236 | MCFG_SCREEN_SIZE(64*8, 32*8) |
237 | 237 | MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) |
238 | MCFG_SCREEN_UPDATE_ | |
238 | MCFG_SCREEN_UPDATE_DR | |
239 | 239 | |
240 | 240 | MCFG_PALETTE_LENGTH(8192) |
241 | 241 |
r17967 | r17968 | |
---|---|---|
45 | 45 | TILE_GET_INFO_MEMBER(get_sc0_tile_info); |
46 | 46 | virtual void machine_reset(); |
47 | 47 | virtual void video_start(); |
48 | UINT32 screen_update_d9final(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
48 | 49 | }; |
49 | 50 | |
50 | 51 | |
r17967 | r17968 | |
66 | 67 | 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); |
67 | 68 | } |
68 | 69 | |
69 | stat | |
70 | UINT32 d9final_state::screen | |
70 | 71 | { |
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); | |
73 | 73 | return 0; |
74 | 74 | } |
75 | 75 | |
r17967 | r17968 | |
293 | 293 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
294 | 294 | MCFG_SCREEN_SIZE(512, 256) |
295 | 295 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 256-16-1) |
296 | MCFG_SCREEN_UPDATE_ | |
296 | MCFG_SCREEN_UPDATE_DR | |
297 | 297 | |
298 | 298 | MCFG_GFXDECODE(d9final) |
299 | 299 | MCFG_PALETTE_LENGTH(0x400) |
r17967 | r17968 | |
---|---|---|
788 | 788 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
789 | 789 | MCFG_SCREEN_SIZE(32*8, 32*8) |
790 | 790 | MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 28*8-1) |
791 | MCFG_SCREEN_UPDATE_ | |
791 | MCFG_SCREEN_UPDATE_DR | |
792 | 792 | |
793 | 793 | MCFG_GFXDECODE(ladybug) |
794 | 794 | MCFG_PALETTE_LENGTH(4*8+4*16) |
r17967 | r17968 | |
830 | 830 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
831 | 831 | MCFG_SCREEN_SIZE(32*8, 32*8) |
832 | 832 | 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) | |
835 | 835 | |
836 | 836 | MCFG_GFXDECODE(sraider) |
837 | 837 | MCFG_PALETTE_LENGTH(4*8+4*16+32+2) |
r17967 | r17968 | |
---|---|---|
310 | 310 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
311 | 311 | MCFG_SCREEN_SIZE(32*8, 32*8) |
312 | 312 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
313 | MCFG_SCREEN_UPDATE_ | |
313 | MCFG_SCREEN_UPDATE_DR | |
314 | 314 | |
315 | 315 | MCFG_GFXDECODE(blueprnt) |
316 | 316 | MCFG_PALETTE_LENGTH(128*4+8) |
r17967 | r17968 | |
---|---|---|
18 | 18 | UINT8 m_type; |
19 | 19 | DECLARE_READ64_MEMBER(test_r); |
20 | 20 | virtual void video_start(); |
21 | UINT32 screen_update_aristmk6(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
21 | 22 | }; |
22 | 23 | |
23 | 24 | |
r17967 | r17968 | |
25 | 26 | { |
26 | 27 | } |
27 | 28 | |
28 | ||
29 | ||
29 | 30 | { |
30 | aristmk6_state *state = screen.machine().driver_data<aristmk6_state>(); | |
31 | 31 | |
32 | 32 | int x,y,count; |
33 | const UINT8 *blit_ram = | |
33 | const UINT8 *blit_ram = | |
34 | 34 | |
35 | 35 | if(screen.machine().input().code_pressed(KEYCODE_Z)) |
36 | | |
36 | | |
37 | 37 | |
38 | 38 | if(screen.machine().input().code_pressed(KEYCODE_X)) |
39 | | |
39 | | |
40 | 40 | |
41 | 41 | if(screen.machine().input().code_pressed(KEYCODE_A)) |
42 | | |
42 | | |
43 | 43 | |
44 | 44 | if(screen.machine().input().code_pressed(KEYCODE_S)) |
45 | | |
45 | | |
46 | 46 | |
47 | 47 | if(screen.machine().input().code_pressed(KEYCODE_Q)) |
48 | | |
48 | | |
49 | 49 | |
50 | 50 | if(screen.machine().input().code_pressed(KEYCODE_W)) |
51 | | |
51 | | |
52 | 52 | |
53 | 53 | if(screen.machine().input().code_pressed(KEYCODE_E)) |
54 | | |
54 | | |
55 | 55 | |
56 | 56 | if(screen.machine().input().code_pressed(KEYCODE_R)) |
57 | | |
57 | | |
58 | 58 | |
59 | 59 | if(screen.machine().input().code_pressed_once(KEYCODE_L)) |
60 | | |
60 | | |
61 | 61 | |
62 | popmessage("%d %d %04x %d", | |
62 | popmessage("%d %d %04x %d", | |
63 | 63 | |
64 | 64 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
65 | 65 | |
66 | count = ( | |
66 | count = ( | |
67 | 67 | |
68 | for(y=0;y< | |
68 | for(y=0;y< | |
69 | 69 | { |
70 | for(x=0;x< | |
70 | for(x=0;x< | |
71 | 71 | { |
72 | if( | |
72 | if( | |
73 | 73 | { |
74 | 74 | UINT16 vram; |
75 | 75 | int r,g,b; |
r17967 | r17968 | |
143 | 143 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
144 | 144 | MCFG_SCREEN_SIZE(640, 480) |
145 | 145 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
146 | MCFG_SCREEN_UPDATE_ | |
146 | MCFG_SCREEN_UPDATE_DR | |
147 | 147 | |
148 | 148 | MCFG_PALETTE_LENGTH(0x1000) |
149 | 149 |
r17967 | r17968 | |
---|---|---|
84 | 84 | |
85 | 85 | |
86 | 86 | virtual void video_start(); |
87 | UINT32 screen_update_ttchamp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
87 | 88 | }; |
88 | 89 | |
89 | 90 | |
r17967 | r17968 | |
97 | 98 | |
98 | 99 | } |
99 | 100 | |
100 | static | |
101 | UINT32 ttchamp_state::screen_update_ttchamp(screen_device &screen, bitmap_ind | |
101 | 102 | { |
102 | ttchamp_state *state = screen.machine().driver_data<ttchamp_state>(); | |
103 | 103 | int y,x,count; |
104 | 104 | // int i; |
105 | 105 | static const int xxx=320,yyy=204; |
r17967 | r17968 | |
114 | 114 | // b = (dat>>10)&0x1f; |
115 | 115 | // g = (dat>>5)&0x1f; |
116 | 116 | // 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)); | |
118 | 118 | // } |
119 | 119 | |
120 | 120 | count=0; |
121 | UINT8 *videoram = (UINT8*) | |
121 | UINT8 *videoram = (UINT8*) | |
122 | 122 | for (y=0;y<yyy;y++) |
123 | 123 | { |
124 | 124 | for(x=0;x<xxx;x++) |
r17967 | r17968 | |
287 | 287 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
288 | 288 | MCFG_SCREEN_SIZE(1024,1024) |
289 | 289 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1) |
290 | MCFG_SCREEN_UPDATE_ | |
290 | MCFG_SCREEN_UPDATE_DR | |
291 | 291 | |
292 | 292 | MCFG_PALETTE_LENGTH(0x8000) |
293 | 293 |
r17967 | r17968 | |
---|---|---|
412 | 412 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
413 | 413 | MCFG_SCREEN_SIZE(32*8, 32*8) |
414 | 414 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
415 | MCFG_SCREEN_UPDATE_ | |
415 | MCFG_SCREEN_UPDATE_DR | |
416 | 416 | |
417 | 417 | MCFG_GFXDECODE(buggychl) |
418 | 418 | MCFG_PALETTE_LENGTH(128+128) |
r17967 | r17968 | |
---|---|---|
306 | 306 | |
307 | 307 | MCFG_SCREEN_ADD("screen", RASTER) |
308 | 308 | 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) | |
311 | 311 | |
312 | 312 | MCFG_GFXDECODE(starshp1) |
313 | 313 | MCFG_PALETTE_LENGTH(19) |
r17967 | r17968 | |
---|---|---|
291 | 291 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
292 | 292 | MCFG_SCREEN_SIZE(40*8, 32*8) |
293 | 293 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
294 | MCFG_SCREEN_UPDATE_ | |
294 | MCFG_SCREEN_UPDATE_DR | |
295 | 295 | |
296 | 296 | MCFG_GFXDECODE(gotcha) |
297 | 297 | MCFG_PALETTE_LENGTH(768) |
r17967 | r17968 | |
---|---|---|
3053 | 3053 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* frames per second, vblank duration */) |
3054 | 3054 | MCFG_SCREEN_SIZE(40*8, 32*8) |
3055 | 3055 | 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) | |
3058 | 3058 | |
3059 | 3059 | MCFG_GFXDECODE(taitof2) |
3060 | 3060 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
3099 | 3099 | MCFG_GFXDECODE(finalb) |
3100 | 3100 | MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_finalb) |
3101 | 3101 | MCFG_SCREEN_MODIFY("screen") |
3102 | MCFG_SCREEN_VBLANK_ | |
3102 | MCFG_SCREEN_VBLANK_DR | |
3103 | 3103 | |
3104 | 3104 | MCFG_TC0100SCN_ADD("tc0100scn", finalb_tc0100scn_intf) |
3105 | 3105 | MCFG_TC0110PCR_ADD("tc0110pcr", taitof2_tc0110pcr_intf) |
r17967 | r17968 | |
3116 | 3116 | MCFG_GFXDECODE(pivot) |
3117 | 3117 | MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_dondokod) |
3118 | 3118 | 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) | |
3121 | 3121 | |
3122 | 3122 | MCFG_TC0100SCN_ADD("tc0100scn", dondokod_tc0100scn_intf) |
3123 | 3123 | MCFG_TC0430GRW_ADD("tc0280grd", taitof2_tc0280grd_intf) |
r17967 | r17968 | |
3134 | 3134 | /* video hardware */ |
3135 | 3135 | MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_megab) |
3136 | 3136 | MCFG_SCREEN_MODIFY("screen") |
3137 | MCFG_SCREEN_UPDATE_ | |
3137 | MCFG_SCREEN_UPDATE_DR | |
3138 | 3138 | |
3139 | 3139 | MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf) |
3140 | 3140 | MCFG_TC0360PRI_ADD("tc0360pri") |
r17967 | r17968 | |
3151 | 3151 | MCFG_GFXDECODE(thundfox) |
3152 | 3152 | MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_thundfox) |
3153 | 3153 | 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) | |
3156 | 3156 | |
3157 | 3157 | MCFG_TC0100SCN_ADD("tc0100scn_1", thundfox_tc0100scn_intf_1) |
3158 | 3158 | MCFG_TC0100SCN_ADD("tc0100scn_2", thundfox_tc0100scn_intf_2) |
r17967 | r17968 | |
3170 | 3170 | MCFG_GFXDECODE(pivot) |
3171 | 3171 | MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_dondokod) |
3172 | 3172 | MCFG_SCREEN_MODIFY("screen") |
3173 | MCFG_SCREEN_UPDATE_ | |
3173 | MCFG_SCREEN_UPDATE_DR | |
3174 | 3174 | |
3175 | 3175 | MCFG_TC0100SCN_ADD("tc0100scn", dondokod_tc0100scn_intf) |
3176 | 3176 | MCFG_TC0430GRW_ADD("tc0280grd", taitof2_tc0280grd_intf) |
r17967 | r17968 | |
3187 | 3187 | /* video hardware */ |
3188 | 3188 | MCFG_GFXDECODE(yuyugogo) |
3189 | 3189 | MCFG_SCREEN_MODIFY("screen") |
3190 | MCFG_SCREEN_VBLANK_ | |
3190 | MCFG_SCREEN_VBLANK_DR | |
3191 | 3191 | |
3192 | 3192 | MCFG_TC0100SCN_ADD("tc0100scn", taitof2_tc0100scn_intf) |
3193 | 3193 | MCFG_TC0110PCR_ADD("tc0110pcr", taitof2_tc0110pcr_intf) |
r17967 | r17968 | |
3203 | 3203 | /* video hardware */ |
3204 | 3204 | MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_megab) |
3205 | 3205 | 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) | |
3208 | 3208 | |
3209 | 3209 | MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf) |
3210 | 3210 | MCFG_TC0360PRI_ADD("tc0360pri") |
r17967 | r17968 | |
3220 | 3220 | /* video hardware */ |
3221 | 3221 | MCFG_GFXDECODE(yuyugogo) |
3222 | 3222 | MCFG_SCREEN_MODIFY("screen") |
3223 | MCFG_SCREEN_VBLANK_ | |
3223 | MCFG_SCREEN_VBLANK_DR | |
3224 | 3224 | |
3225 | 3225 | MCFG_TC0100SCN_ADD("tc0100scn", taitof2_tc0100scn_intf) |
3226 | 3226 | MCFG_TC0110PCR_ADD("tc0110pcr", taitof2_tc0110pcr_intf) |
r17967 | r17968 | |
3236 | 3236 | /* video hardware */ |
3237 | 3237 | MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_ssi) |
3238 | 3238 | 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) | |
3241 | 3241 | |
3242 | 3242 | MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf) |
3243 | 3243 | MACHINE_CONFIG_END |
r17967 | r17968 | |
3252 | 3252 | /* video hardware */ |
3253 | 3253 | MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_gunfront) |
3254 | 3254 | 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) | |
3257 | 3257 | |
3258 | 3258 | MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf) |
3259 | 3259 | MCFG_TC0360PRI_ADD("tc0360pri") |
r17967 | r17968 | |
3269 | 3269 | /* video hardware */ |
3270 | 3270 | MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_growl) |
3271 | 3271 | MCFG_SCREEN_MODIFY("screen") |
3272 | MCFG_SCREEN_UPDATE_ | |
3272 | MCFG_SCREEN_UPDATE_DR | |
3273 | 3273 | |
3274 | 3274 | MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf) |
3275 | 3275 | MCFG_TC0360PRI_ADD("tc0360pri") |
r17967 | r17968 | |
3300 | 3300 | MCFG_GFXDECODE(deadconx) |
3301 | 3301 | MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_footchmp) |
3302 | 3302 | 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) | |
3305 | 3305 | |
3306 | 3306 | MCFG_TC0480SCP_ADD("tc0480scp", footchmp_tc0480scp_intf) |
3307 | 3307 | MCFG_TC0360PRI_ADD("tc0360pri") |
r17967 | r17968 | |
3324 | 3324 | MCFG_GFXDECODE(deadconx) |
3325 | 3325 | MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_hthero) |
3326 | 3326 | 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) | |
3329 | 3329 | |
3330 | 3330 | MCFG_TC0360PRI_ADD("tc0360pri") |
3331 | 3331 | MCFG_TC0480SCP_ADD("tc0480scp", hthero_tc0480scp_intf) |
r17967 | r17968 | |
3341 | 3341 | /* video hardware */ |
3342 | 3342 | MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_koshien) |
3343 | 3343 | MCFG_SCREEN_MODIFY("screen") |
3344 | MCFG_SCREEN_UPDATE_ | |
3344 | MCFG_SCREEN_UPDATE_DR | |
3345 | 3345 | |
3346 | 3346 | MCFG_TC0100SCN_ADD("tc0100scn", koshien_tc0100scn_intf) |
3347 | 3347 | MCFG_TC0360PRI_ADD("tc0360pri") |
r17967 | r17968 | |
3358 | 3358 | MCFG_GFXDECODE(yuyugogo) |
3359 | 3359 | MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_yuyugogo) |
3360 | 3360 | MCFG_SCREEN_MODIFY("screen") |
3361 | MCFG_SCREEN_UPDATE_ | |
3361 | MCFG_SCREEN_UPDATE_DR | |
3362 | 3362 | |
3363 | 3363 | MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf) |
3364 | 3364 | MACHINE_CONFIG_END |
r17967 | r17968 | |
3373 | 3373 | /* video hardware */ |
3374 | 3374 | MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_ninjak) |
3375 | 3375 | MCFG_SCREEN_MODIFY("screen") |
3376 | MCFG_SCREEN_UPDATE_ | |
3376 | MCFG_SCREEN_UPDATE_DR | |
3377 | 3377 | |
3378 | 3378 | MCFG_TC0100SCN_ADD("tc0100scn", finalb_tc0100scn_intf) |
3379 | 3379 | MCFG_TC0360PRI_ADD("tc0360pri") |
r17967 | r17968 | |
3389 | 3389 | /* video hardware */ |
3390 | 3390 | MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_solfigtr) |
3391 | 3391 | MCFG_SCREEN_MODIFY("screen") |
3392 | MCFG_SCREEN_UPDATE_ | |
3392 | MCFG_SCREEN_UPDATE_DR | |
3393 | 3393 | |
3394 | 3394 | MCFG_TC0100SCN_ADD("tc0100scn", solfigtr_tc0100scn_intf) |
3395 | 3395 | MCFG_TC0360PRI_ADD("tc0360pri") |
r17967 | r17968 | |
3404 | 3404 | |
3405 | 3405 | /* video hardware */ |
3406 | 3406 | MCFG_SCREEN_MODIFY("screen") |
3407 | MCFG_SCREEN_VBLANK_ | |
3407 | MCFG_SCREEN_VBLANK_DR | |
3408 | 3408 | |
3409 | 3409 | MCFG_TC0100SCN_ADD("tc0100scn", taitof2_tc0100scn_intf) |
3410 | 3410 | MACHINE_CONFIG_END |
r17967 | r17968 | |
3420 | 3420 | MCFG_GFXDECODE(pivot) |
3421 | 3421 | MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_pulirula) |
3422 | 3422 | MCFG_SCREEN_MODIFY("screen") |
3423 | MCFG_SCREEN_UPDATE_ | |
3423 | MCFG_SCREEN_UPDATE_DR | |
3424 | 3424 | |
3425 | 3425 | MCFG_TC0100SCN_ADD("tc0100scn", dondokod_tc0100scn_intf) |
3426 | 3426 | MCFG_TC0430GRW_ADD("tc0430grw", taitof2_tc0430grw_intf) |
r17967 | r17968 | |
3439 | 3439 | MCFG_PALETTE_LENGTH(8192) |
3440 | 3440 | MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_metalb) |
3441 | 3441 | MCFG_SCREEN_MODIFY("screen") |
3442 | MCFG_SCREEN_UPDATE_ | |
3442 | MCFG_SCREEN_UPDATE_DR | |
3443 | 3443 | |
3444 | 3444 | MCFG_TC0480SCP_ADD("tc0480scp", metalb_tc0480scp_intf) |
3445 | 3445 | MCFG_TC0360PRI_ADD("tc0360pri") |
r17967 | r17968 | |
3455 | 3455 | /* video hardware */ |
3456 | 3456 | MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_qzchikyu) |
3457 | 3457 | MCFG_SCREEN_MODIFY("screen") |
3458 | MCFG_SCREEN_VBLANK_ | |
3458 | MCFG_SCREEN_VBLANK_DR | |
3459 | 3459 | |
3460 | 3460 | MCFG_TC0100SCN_ADD("tc0100scn", qzchikyu_tc0100scn_intf) |
3461 | 3461 | MACHINE_CONFIG_END |
r17967 | r17968 | |
3471 | 3471 | MCFG_GFXDECODE(yuyugogo) |
3472 | 3472 | MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_yesnoj) |
3473 | 3473 | MCFG_SCREEN_MODIFY("screen") |
3474 | MCFG_SCREEN_UPDATE_ | |
3474 | MCFG_SCREEN_UPDATE_DR | |
3475 | 3475 | |
3476 | 3476 | MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf) |
3477 | 3477 | MACHINE_CONFIG_END |
r17967 | r17968 | |
3487 | 3487 | MCFG_GFXDECODE(deadconx) |
3488 | 3488 | MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_deadconx) |
3489 | 3489 | MCFG_SCREEN_MODIFY("screen") |
3490 | MCFG_SCREEN_UPDATE_ | |
3490 | MCFG_SCREEN_UPDATE_DR | |
3491 | 3491 | |
3492 | 3492 | MCFG_TC0480SCP_ADD("tc0480scp", deadconx_tc0480scp_intf) |
3493 | 3493 | MCFG_TC0360PRI_ADD("tc0360pri") |
r17967 | r17968 | |
3504 | 3504 | MCFG_GFXDECODE(deadconx) |
3505 | 3505 | MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_deadconxj) |
3506 | 3506 | MCFG_SCREEN_MODIFY("screen") |
3507 | MCFG_SCREEN_UPDATE_ | |
3507 | MCFG_SCREEN_UPDATE_DR | |
3508 | 3508 | |
3509 | 3509 | MCFG_TC0480SCP_ADD("tc0480scp", deadconxj_tc0480scp_intf) |
3510 | 3510 | MCFG_TC0360PRI_ADD("tc0360pri") |
r17967 | r17968 | |
3520 | 3520 | /* video hardware */ |
3521 | 3521 | MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_dinorex) |
3522 | 3522 | MCFG_SCREEN_MODIFY("screen") |
3523 | MCFG_SCREEN_UPDATE_ | |
3523 | MCFG_SCREEN_UPDATE_DR | |
3524 | 3524 | |
3525 | 3525 | MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf) |
3526 | 3526 | MCFG_TC0360PRI_ADD("tc0360pri") |
r17967 | r17968 | |
3536 | 3536 | /* video hardware */ |
3537 | 3537 | MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_quiz) |
3538 | 3538 | MCFG_SCREEN_MODIFY("screen") |
3539 | MCFG_SCREEN_UPDATE_ | |
3539 | MCFG_SCREEN_UPDATE_DR | |
3540 | 3540 | |
3541 | 3541 | MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf) |
3542 | 3542 | MCFG_TC0360PRI_ADD("tc0360pri") |
r17967 | r17968 | |
3552 | 3552 | /* video hardware */ |
3553 | 3553 | MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_quiz) |
3554 | 3554 | MCFG_SCREEN_MODIFY("screen") |
3555 | MCFG_SCREEN_UPDATE_ | |
3555 | MCFG_SCREEN_UPDATE_DR | |
3556 | 3556 | |
3557 | 3557 | MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf) |
3558 | 3558 | MCFG_TC0360PRI_ADD("tc0360pri") |
r17967 | r17968 | |
3568 | 3568 | /* video hardware */ |
3569 | 3569 | MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_quiz) |
3570 | 3570 | MCFG_SCREEN_MODIFY("screen") |
3571 | MCFG_SCREEN_UPDATE_ | |
3571 | MCFG_SCREEN_UPDATE_DR | |
3572 | 3572 | |
3573 | 3573 | MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf) |
3574 | 3574 | MCFG_TC0360PRI_ADD("tc0360pri") |
r17967 | r17968 | |
3585 | 3585 | MCFG_GFXDECODE(pivot) |
3586 | 3586 | MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_driftout) |
3587 | 3587 | MCFG_SCREEN_MODIFY("screen") |
3588 | MCFG_SCREEN_UPDATE_ | |
3588 | MCFG_SCREEN_UPDATE_DR | |
3589 | 3589 | |
3590 | 3590 | MCFG_TC0100SCN_ADD("tc0100scn", dondokod_tc0100scn_intf) |
3591 | 3591 | MCFG_TC0430GRW_ADD("tc0430grw", taitof2_tc0430grw_intf) |
r17967 | r17968 | |
3613 | 3613 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3614 | 3614 | MCFG_SCREEN_SIZE(40*8, 32*8) |
3615 | 3615 | 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) | |
3618 | 3618 | |
3619 | 3619 | MCFG_GFXDECODE(pivot) |
3620 | 3620 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
3662 | 3662 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3663 | 3663 | MCFG_SCREEN_SIZE(40*8, 32*8) |
3664 | 3664 | 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) | |
3667 | 3667 | |
3668 | 3668 | MCFG_GFXDECODE(pivot) |
3669 | 3669 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
---|---|---|
366 | 366 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
367 | 367 | MCFG_SCREEN_SIZE(32*8, 32*8) |
368 | 368 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
369 | MCFG_SCREEN_UPDATE_ | |
369 | MCFG_SCREEN_UPDATE_DR | |
370 | 370 | |
371 | 371 | MCFG_GFXDECODE(pandoras) |
372 | 372 | MCFG_PALETTE_LENGTH(16*16+16*16) |
r17967 | r17968 | |
---|---|---|
1719 | 1719 | /* video hardware */ |
1720 | 1720 | MCFG_SCREEN_ADD("screen", RASTER) |
1721 | 1721 | 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_ | |
1722 | MCFG_SCREEN_UPDATE_DR | |
1723 | 1723 | |
1724 | 1724 | MCFG_GFXDECODE(gfxdecode) |
1725 | 1725 | MCFG_PALETTE_LENGTH(16) |
r17967 | r17968 | |
1748 | 1748 | |
1749 | 1749 | MCFG_LASERDISC_PR8210_ADD("laserdisc") |
1750 | 1750 | MCFG_LASERDISC_AUDIO(laserdisc_audio_delegate(FUNC(laserdisc_audio_process), device)) |
1751 | MCFG_LASERDISC_OVERLAY_ | |
1751 | MCFG_LASERDISC_OVERLAY_DR | |
1752 | 1752 | MCFG_LASERDISC_OVERLAY_CLIP(0, GOTTLIEB_VIDEO_HBLANK-1, 0, GOTTLIEB_VIDEO_VBLANK-8) |
1753 | 1753 | MCFG_SOUND_ROUTE(0, "mono", 1.0) |
1754 | 1754 | /* right channel is processed as data */ |
r17967 | r17968 | |
1829 | 1829 | |
1830 | 1830 | MCFG_LASERDISC_PR8210_ADD("laserdisc") |
1831 | 1831 | MCFG_LASERDISC_AUDIO(laserdisc_audio_delegate(FUNC(laserdisc_audio_process), device)) |
1832 | MCFG_LASERDISC_OVERLAY_ | |
1832 | MCFG_LASERDISC_OVERLAY_DR | |
1833 | 1833 | MCFG_LASERDISC_OVERLAY_CLIP(0, GOTTLIEB_VIDEO_HBLANK-1, 0, GOTTLIEB_VIDEO_VBLANK-8) |
1834 | 1834 | MCFG_SOUND_ROUTE(0, "mono", 1.0) |
1835 | 1835 | /* right channel is processed as data */ |
r17967 | r17968 | |
---|---|---|
90 | 90 | virtual void machine_start(); |
91 | 91 | virtual void machine_reset(); |
92 | 92 | 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); | |
93 | 95 | }; |
94 | 96 | |
95 | 97 | |
r17967 | r17968 | |
124 | 126 | } |
125 | 127 | |
126 | 128 | |
127 | static | |
129 | UINT32 psattack_state::screen_update_psattack(screen_device &screen, bitmap_ind | |
128 | 130 | { |
129 | 131 | return 0; |
130 | 132 | } |
131 | 133 | |
132 | stat | |
134 | void psattack_state::screen | |
133 | 135 | { |
134 | 136 | |
135 | 137 | } |
r17967 | r17968 | |
186 | 188 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
187 | 189 | MCFG_SCREEN_SIZE(320, 240) |
188 | 190 | 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) | |
191 | 193 | |
192 | 194 | |
193 | 195 | MCFG_PALETTE_INIT(RRRRR_GGGGGG_BBBBB) |
r17967 | r17968 | |
---|---|---|
985 | 985 | |
986 | 986 | MCFG_SCREEN_ADD("screen", RASTER) |
987 | 987 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240) |
988 | MCFG_SCREEN_UPDATE_ | |
988 | MCFG_SCREEN_UPDATE_DR | |
989 | 989 | |
990 | 990 | MCFG_VIDEO_START_OVERRIDE(ddragon_state,ddragon) |
991 | 991 | |
r17967 | r17968 | |
1048 | 1048 | |
1049 | 1049 | MCFG_SCREEN_ADD("screen", RASTER) |
1050 | 1050 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240) |
1051 | MCFG_SCREEN_UPDATE_ | |
1051 | MCFG_SCREEN_UPDATE_DR | |
1052 | 1052 | |
1053 | 1053 | MCFG_VIDEO_START_OVERRIDE(ddragon_state,ddragon) |
1054 | 1054 | |
r17967 | r17968 | |
1094 | 1094 | |
1095 | 1095 | MCFG_SCREEN_ADD("screen", RASTER) |
1096 | 1096 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240) |
1097 | MCFG_SCREEN_UPDATE_ | |
1097 | MCFG_SCREEN_UPDATE_DR | |
1098 | 1098 | |
1099 | 1099 | MCFG_VIDEO_START_OVERRIDE(ddragon_state,ddragon) |
1100 | 1100 |
r17967 | r17968 | |
---|---|---|
92 | 92 | TILE_GET_INFO_MEMBER(ac_get_bg_tile_info); |
93 | 93 | TILE_GET_INFO_MEMBER(ac_get_tx_tile_info); |
94 | 94 | virtual void video_start(); |
95 | UINT32 screen_update_acommand(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
95 | 96 | }; |
96 | 97 | |
97 | 98 | |
r17967 | r17968 | |
249 | 250 | } |
250 | 251 | |
251 | 252 | |
252 | static | |
253 | UINT32 acommand_state::screen_update_acommand(screen_device &screen, bitmap_ind | |
253 | 254 | { |
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); | |
256 | 256 | draw_sprites(screen.machine(),bitmap,cliprect,0,0); |
257 | | |
257 | | |
258 | 258 | |
259 | 259 | /*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)); | |
263 | 263 | |
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)); | |
267 | 267 | return 0; |
268 | 268 | } |
269 | 269 | |
r17967 | r17968 | |
609 | 609 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
610 | 610 | MCFG_SCREEN_SIZE(32*8, 32*8) |
611 | 611 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
612 | MCFG_SCREEN_UPDATE_ | |
612 | MCFG_SCREEN_UPDATE_DR | |
613 | 613 | |
614 | 614 | MCFG_GFXDECODE(acommand) |
615 | 615 | MCFG_PALETTE_LENGTH(0x4000) |
r17967 | r17968 | |
---|---|---|
307 | 307 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
308 | 308 | MCFG_SCREEN_SIZE(64*8, 32*8) |
309 | 309 | MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) |
310 | MCFG_SCREEN_UPDATE_ | |
310 | MCFG_SCREEN_UPDATE_DR | |
311 | 311 | |
312 | 312 | MCFG_PALETTE_LENGTH(2048) |
313 | 313 |
r17967 | r17968 | |
---|---|---|
155 | 155 | TILE_GET_INFO_MEMBER(get_ppmast93_bg_tile_info); |
156 | 156 | TILE_GET_INFO_MEMBER(get_ppmast93_fg_tile_info); |
157 | 157 | virtual void video_start(); |
158 | UINT32 screen_update_ppmast93(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
158 | 159 | }; |
159 | 160 | |
160 | 161 | |
r17967 | r17968 | |
353 | 354 | m_fg_tilemap->set_transparent_pen(0); |
354 | 355 | } |
355 | 356 | |
356 | stat | |
357 | UINT32 ppmast93_state::screen | |
357 | 358 | { |
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); | |
361 | 361 | return 0; |
362 | 362 | } |
363 | 363 | |
r17967 | r17968 | |
379 | 379 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
380 | 380 | MCFG_SCREEN_SIZE(256, 256) |
381 | 381 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1) |
382 | MCFG_SCREEN_UPDATE_ | |
382 | MCFG_SCREEN_UPDATE_DR | |
383 | 383 | |
384 | 384 | MCFG_GFXDECODE(ppmast93) |
385 | 385 |
r17967 | r17968 | |
---|---|---|
1004 | 1004 | DECLARE_PALETTE_INIT(witchcrd); |
1005 | 1005 | DECLARE_VIDEO_START(wcrdxtnd); |
1006 | 1006 | DECLARE_PALETTE_INIT(wcrdxtnd); |
1007 | UINT32 screen_update_goldnpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
1007 | 1008 | }; |
1008 | 1009 | |
1009 | 1010 | |
r17967 | r17968 | |
1070 | 1071 | 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); |
1071 | 1072 | } |
1072 | 1073 | |
1073 | stat | |
1074 | UINT32 goldnpkr_state::screen | |
1074 | 1075 | { |
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); | |
1077 | 1077 | return 0; |
1078 | 1078 | } |
1079 | 1079 | |
r17967 | r17968 | |
3587 | 3587 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3588 | 3588 | MCFG_SCREEN_SIZE((39+1)*8, (31+1)*8) /* From MC6845 init, registers 00 & 04 (programmed with value-1). */ |
3589 | 3589 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 29*8-1) /* From MC6845 init, registers 01 & 06. */ |
3590 | MCFG_SCREEN_UPDATE_ | |
3590 | MCFG_SCREEN_UPDATE_DR | |
3591 | 3591 | |
3592 | 3592 | MCFG_MC6845_ADD("crtc", MC6845, CPU_CLOCK, mc6845_intf) /* 68B45 or 6845s @ CPU clock */ |
3593 | 3593 |
r17967 | r17968 | |
---|---|---|
301 | 301 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
302 | 302 | MCFG_SCREEN_SIZE(64*8, 32*8) |
303 | 303 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 4*8, 28*8-1) |
304 | MCFG_SCREEN_UPDATE_ | |
304 | MCFG_SCREEN_UPDATE_DR | |
305 | 305 | |
306 | 306 | MCFG_GFXDECODE(xxmissio) |
307 | 307 | MCFG_PALETTE_LENGTH(768) |
r17967 | r17968 | |
---|---|---|
255 | 255 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
256 | 256 | MCFG_SCREEN_SIZE(512, 256) |
257 | 257 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 240-1) |
258 | MCFG_SCREEN_UPDATE_ | |
258 | MCFG_SCREEN_UPDATE_DR | |
259 | 259 | |
260 | 260 | |
261 | 261 | /* sound hardware */ |
r17967 | r17968 | |
---|---|---|
535 | 535 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1200)) // should give IRQ4 sufficient time to update scroll registers |
536 | 536 | MCFG_SCREEN_SIZE(64*8, 32*8) |
537 | 537 | MCFG_SCREEN_VISIBLE_AREA(40, 40+384-1, 16, 16+224-1) |
538 | MCFG_SCREEN_UPDATE_ | |
538 | MCFG_SCREEN_UPDATE_DR | |
539 | 539 | |
540 | 540 | MCFG_PALETTE_LENGTH(2048) |
541 | 541 | |
r17967 | r17968 | |
578 | 578 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1200)) // should give IRQ4 sufficient time to update scroll registers |
579 | 579 | MCFG_SCREEN_SIZE(64*8, 32*8) |
580 | 580 | MCFG_SCREEN_VISIBLE_AREA(40, 40+384-1, 16, 16+224-1) |
581 | MCFG_SCREEN_UPDATE_ | |
581 | MCFG_SCREEN_UPDATE_DR | |
582 | 582 | |
583 | 583 | MCFG_PALETTE_LENGTH(2048) |
584 | 584 |
r17967 | r17968 | |
---|---|---|
1864 | 1864 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1865 | 1865 | MCFG_SCREEN_SIZE(40*8, 32*8) |
1866 | 1866 | 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) | |
1869 | 1869 | |
1870 | 1870 | MCFG_GFXDECODE(2) |
1871 | 1871 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
1956 | 1956 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1957 | 1957 | MCFG_SCREEN_SIZE(40*8, 32*8) |
1958 | 1958 | 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) | |
1961 | 1961 | |
1962 | 1962 | MCFG_GFXDECODE(2) |
1963 | 1963 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
2002 | 2002 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2003 | 2003 | MCFG_SCREEN_SIZE(40*8, 32*8) |
2004 | 2004 | 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) | |
2007 | 2007 | |
2008 | 2008 | MCFG_GFXDECODE(1) |
2009 | 2009 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
2095 | 2095 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2096 | 2096 | MCFG_SCREEN_SIZE(40*8, 32*8) |
2097 | 2097 | 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) | |
2100 | 2100 | |
2101 | 2101 | MCFG_GFXDECODE(2) |
2102 | 2102 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
33 | 33 | DECLARE_DRIVER_INIT(eolith16); |
34 | 34 | DECLARE_VIDEO_START(eolith16); |
35 | 35 | DECLARE_PALETTE_INIT(eolith16); |
36 | UINT32 screen_update_eolith16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
36 | 37 | }; |
37 | 38 | |
38 | 39 | |
r17967 | r17968 | |
126 | 127 | m_vram = auto_alloc_array(machine(), UINT16, 0x10000); |
127 | 128 | } |
128 | 129 | |
129 | stat | |
130 | UINT32 eolith16_state::screen | |
130 | 131 | { |
131 | eolith16_state *state = screen.machine().driver_data<eolith16_state>(); | |
132 | 132 | int x,y,count; |
133 | 133 | int color; |
134 | 134 | |
r17967 | r17968 | |
137 | 137 | { |
138 | 138 | for (x=0;x < 320/2;x++) |
139 | 139 | { |
140 | color = | |
140 | color = | |
141 | 141 | bitmap.pix16(y, x*2 + 0) = color; |
142 | 142 | |
143 | color = ( | |
143 | color = ( | |
144 | 144 | bitmap.pix16(y, x*2 + 1) = color; |
145 | 145 | |
146 | 146 | count++; |
r17967 | r17968 | |
189 | 189 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) |
190 | 190 | MCFG_SCREEN_SIZE(512, 262) |
191 | 191 | MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 199) |
192 | MCFG_SCREEN_UPDATE_ | |
192 | MCFG_SCREEN_UPDATE_DR | |
193 | 193 | |
194 | 194 | MCFG_PALETTE_LENGTH(256) |
195 | 195 |
r17967 | r17968 | |
---|---|---|
376 | 376 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
377 | 377 | MCFG_SCREEN_SIZE(40*8, 32*8) |
378 | 378 | MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 3*8, 32*8-1) |
379 | MCFG_SCREEN_UPDATE_ | |
379 | MCFG_SCREEN_UPDATE_DR | |
380 | 380 | |
381 | 381 | MCFG_GFXDECODE(groundfx) |
382 | 382 | MCFG_PALETTE_LENGTH(16384) |
r17967 | r17968 | |
---|---|---|
58 | 58 | DECLARE_WRITE8_MEMBER(astron_io_bankswitch_w); |
59 | 59 | DECLARE_DRIVER_INIT(astron); |
60 | 60 | virtual void machine_start(); |
61 | UINT32 screen_update_astron(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
61 | 62 | }; |
62 | 63 | |
63 | 64 | /* VIDEO GOODS */ |
r17967 | r17968 | |
106 | 107 | } |
107 | 108 | |
108 | 109 | |
109 | static | |
110 | UINT32 segald_state::screen_update_astron(screen_device &screen, bitmap_rgb | |
110 | 111 | { |
111 | 112 | bitmap.fill(0, cliprect); |
112 | 113 | |
r17967 | r17968 | |
376 | 377 | |
377 | 378 | |
378 | 379 | MCFG_LASERDISC_LDV1000_ADD("laserdisc") |
379 | MCFG_LASERDISC_OVERLAY_ | |
380 | MCFG_LASERDISC_OVERLAY_DR | |
380 | 381 | |
381 | 382 | /* video hardware */ |
382 | 383 | MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc") |
r17967 | r17968 | |
---|---|---|
102 | 102 | DECLARE_READ8_MEMBER(cmd2_r); |
103 | 103 | DECLARE_READ8_MEMBER(cmd_stat8_r); |
104 | 104 | DECLARE_DRIVER_INIT(srmp5); |
105 | UINT32 screen_update_srmp5(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
105 | 106 | }; |
106 | 107 | |
107 | 108 | |
108 | stat | |
109 | UINT32 srmp5_state::screen | |
109 | 110 | { |
110 | srmp5_state *state = screen.machine().driver_data<srmp5_state>(); | |
111 | 111 | 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; | |
115 | 115 | |
116 | 116 | //Table surface seems to be tiles, but display corrupts when switching the scene if always ON. |
117 | 117 | //Currently the tiles are OFF. |
118 | 118 | #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; | |
121 | 121 | if(tile_width && tile_height) |
122 | 122 | { |
123 | 123 | // 16x16 tile |
r17967 | r17968 | |
137 | 137 | UINT8 pen = pixels[address]; |
138 | 138 | if(pen) |
139 | 139 | { |
140 | UINT16 pixdata= | |
140 | UINT16 pixdata= | |
141 | 141 | bitmap.pix32(yw * 16 + y, xw * 16 + x) = ((pixdata&0x7c00)>>7) | ((pixdata&0x3e0)<<6) | ((pixdata&0x1f)<<19); |
142 | 142 | } |
143 | 143 | address++; |
r17967 | r17968 | |
152 | 152 | |
153 | 153 | while((sprite_list[SUBLIST_OFFSET]&SPRITE_LIST_END_MARKER)==0 && sprite_list<sprite_list_end) |
154 | 154 | { |
155 | UINT16 *sprite_sublist=& | |
155 | UINT16 *sprite_sublist=& | |
156 | 156 | UINT16 sublist_length=sprite_list[SUBLIST_LENGTH]; |
157 | 157 | INT16 global_x,global_y; |
158 | 158 | |
r17967 | r17968 | |
189 | 189 | { |
190 | 190 | if(cliprect.contains(xb+xs2, yb+ys2)) |
191 | 191 | { |
192 | UINT16 pixdata= | |
192 | UINT16 pixdata= | |
193 | 193 | bitmap.pix32(yb+ys2, xb+xs2) = ((pixdata&0x7c00)>>7) | ((pixdata&0x3e0)<<6) | ((pixdata&0x1f)<<19); |
194 | 194 | } |
195 | 195 | } |
r17967 | r17968 | |
210 | 210 | int i; |
211 | 211 | for(i = 0; i < 0x2000; i++) |
212 | 212 | { |
213 | if ( | |
213 | if ( | |
214 | 214 | { |
215 | 215 | screen.machine().gfx[0]->decode(i); |
216 | | |
216 | | |
217 | 217 | } |
218 | 218 | } |
219 | 219 | } |
r17967 | r17968 | |
573 | 573 | MCFG_SCREEN_REFRESH_RATE(60) |
574 | 574 | MCFG_SCREEN_SIZE(96*8, 64*8) |
575 | 575 | MCFG_SCREEN_VISIBLE_AREA(0*8, 42*8-1, 2*8, 32*8-1) |
576 | MCFG_SCREEN_UPDATE_ | |
576 | MCFG_SCREEN_UPDATE_DR | |
577 | 577 | |
578 | 578 | MCFG_PALETTE_LENGTH(0x1800) |
579 | 579 | #ifdef DEBUG_CHAR |
r17967 | r17968 | |
---|---|---|
183 | 183 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(5000)) |
184 | 184 | MCFG_SCREEN_SIZE(32*8, 32*8) |
185 | 185 | MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 0*8, 28*8-1) |
186 | MCFG_SCREEN_UPDATE_ | |
186 | MCFG_SCREEN_UPDATE_DR | |
187 | 187 | |
188 | 188 | MCFG_GFXDECODE(suprloco) |
189 | 189 | MCFG_PALETTE_LENGTH(512+256) |
r17967 | r17968 | |
---|---|---|
954 | 954 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
955 | 955 | MCFG_SCREEN_SIZE(512, 256) |
956 | 956 | MCFG_SCREEN_VISIBLE_AREA(80, 511-112, 8, 247) /* 320 x 240 */ |
957 | MCFG_SCREEN_UPDATE_ | |
957 | MCFG_SCREEN_UPDATE_DR | |
958 | 958 | |
959 | 959 | MCFG_GFXDECODE(m92) |
960 | 960 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
1040 | 1040 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1041 | 1041 | MCFG_SCREEN_SIZE(512, 256) |
1042 | 1042 | MCFG_SCREEN_VISIBLE_AREA(80, 511-112, 8, 247) /* 320 x 240 */ |
1043 | MCFG_SCREEN_UPDATE_ | |
1043 | MCFG_SCREEN_UPDATE_DR | |
1044 | 1044 | |
1045 | 1045 | MCFG_GFXDECODE(m92) |
1046 | 1046 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
---|---|---|
201 | 201 | |
202 | 202 | MCFG_SCREEN_ADD("screen", RASTER) |
203 | 203 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 256, 282, 42, 266) |
204 | MCFG_SCREEN_UPDATE_ | |
204 | MCFG_SCREEN_UPDATE_DR | |
205 | 205 | |
206 | 206 | |
207 | 207 | /* sound hardware */ |
r17967 | r17968 | |
---|---|---|
298 | 298 | /* video hardware */ |
299 | 299 | MCFG_SCREEN_ADD("screen", RASTER) |
300 | 300 | MCFG_SCREEN_RAW_PARAMS(FCOMBAT_PIXEL_CLOCK, FCOMBAT_HTOTAL, FCOMBAT_HBEND, FCOMBAT_HBSTART, FCOMBAT_VTOTAL, FCOMBAT_VBEND, FCOMBAT_VBSTART) |
301 | MCFG_SCREEN_UPDATE_ | |
301 | MCFG_SCREEN_UPDATE_DR | |
302 | 302 | |
303 | 303 | MCFG_GFXDECODE(fcombat) |
304 | 304 | MCFG_PALETTE_LENGTH(256*3) |
r17967 | r17968 | |
---|---|---|
51 | 51 | virtual void machine_start(); |
52 | 52 | virtual void machine_reset(); |
53 | 53 | virtual void palette_init(); |
54 | UINT32 screen_update_destroyr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
54 | 55 | }; |
55 | 56 | |
56 | 57 | |
57 | stat | |
58 | UINT32 destroyr_state::screen | |
58 | 59 | { |
59 | destroyr_state *state = screen.machine().driver_data<destroyr_state>(); | |
60 | 60 | int i, j; |
61 | 61 | |
62 | 62 | bitmap.fill(0, cliprect); |
r17967 | r17968 | |
64 | 64 | /* draw major objects */ |
65 | 65 | for (i = 0; i < 16; i++) |
66 | 66 | { |
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]; | |
69 | 69 | |
70 | 70 | int num = attr & 3; |
71 | 71 | int scan = attr & 4; |
r17967 | r17968 | |
90 | 90 | { |
91 | 91 | for (j = 0; j < 32; j++) |
92 | 92 | { |
93 | int num = | |
93 | int num = | |
94 | 94 | |
95 | 95 | drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0], num, 0, 0, 0, 8 * j, 8 * i, 0); |
96 | 96 | } |
r17967 | r17968 | |
99 | 99 | /* draw minor objects */ |
100 | 100 | for (i = 0; i < 2; i++) |
101 | 101 | { |
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]; | |
105 | 105 | |
106 | 106 | drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1], num, 0, 0, 0, horz, vert, 0); |
107 | 107 | } |
r17967 | r17968 | |
109 | 109 | /* draw waves */ |
110 | 110 | for (i = 0; i < 4; i++) |
111 | 111 | { |
112 | drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[3], | |
112 | drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[3], | |
113 | 113 | } |
114 | 114 | |
115 | 115 | /* draw cursor */ |
116 | 116 | for (i = 0; i < 256; i++) |
117 | 117 | { |
118 | 118 | if (i & 4) |
119 | bitmap.pix16( | |
119 | bitmap.pix16( | |
120 | 120 | } |
121 | 121 | return 0; |
122 | 122 | } |
r17967 | r17968 | |
460 | 460 | MCFG_SCREEN_REFRESH_RATE(60) |
461 | 461 | MCFG_SCREEN_SIZE(256, 262) |
462 | 462 | MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239) |
463 | MCFG_SCREEN_UPDATE_ | |
463 | MCFG_SCREEN_UPDATE_DR | |
464 | 464 | |
465 | 465 | MCFG_GFXDECODE(destroyr) |
466 | 466 | MCFG_PALETTE_LENGTH(8) |
r17967 | r17968 | |
---|---|---|
397 | 397 | |
398 | 398 | MCFG_SCREEN_ADD("screen", RASTER) |
399 | 399 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 320, 272, 8, 248) /* HTOTAL and VTOTAL are guessed */ |
400 | MCFG_SCREEN_UPDATE_ | |
400 | MCFG_SCREEN_UPDATE_DR | |
401 | 401 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) |
402 | 402 | |
403 | 403 | MCFG_GFXDECODE(wwfwfest) |
r17967 | r17968 | |
---|---|---|
78 | 78 | DECLARE_WRITE32_MEMBER(output_w); |
79 | 79 | DECLARE_DRIVER_INIT(feversoc); |
80 | 80 | virtual void video_start(); |
81 | UINT32 screen_update_feversoc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
81 | 82 | }; |
82 | 83 | |
83 | 84 | |
r17967 | r17968 | |
88 | 89 | |
89 | 90 | } |
90 | 91 | |
91 | stat | |
92 | UINT32 feversoc_state::screen | |
92 | 93 | { |
93 | feversoc_state *state = screen.machine().driver_data<feversoc_state>(); | |
94 | UINT32 *spriteram32 = state->m_spriteram; | |
94 | UINT32 *spriteram32 = m_spriteram; | |
95 | 95 | int offs,spr_offs,colour,sx,sy,h,w,dx,dy; |
96 | 96 | |
97 | 97 | bitmap.fill(screen.machine().pens[0], cliprect); //black pen |
r17967 | r17968 | |
264 | 264 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
265 | 265 | MCFG_SCREEN_SIZE(40*8, 32*8) |
266 | 266 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) //dynamic resolution? |
267 | MCFG_SCREEN_UPDATE_ | |
267 | MCFG_SCREEN_UPDATE_DR | |
268 | 268 | |
269 | 269 | MCFG_GFXDECODE(feversoc) |
270 | 270 | MCFG_PALETTE_LENGTH(0x1000) |
r17967 | r17968 | |
---|---|---|
144 | 144 | DECLARE_MACHINE_START(multigm3); |
145 | 145 | DECLARE_MACHINE_RESET(multigm3); |
146 | 146 | DECLARE_MACHINE_START(supergm3); |
147 | UINT32 screen_update_multigam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
147 | 148 | }; |
148 | 149 | |
149 | 150 | |
r17967 | r17968 | |
1114 | 1115 | { |
1115 | 1116 | } |
1116 | 1117 | |
1117 | stat | |
1118 | UINT32 multigam_state::screen | |
1118 | 1119 | { |
1119 | 1120 | /* render the ppu */ |
1120 | 1121 | ppu2c0x_device *ppu = screen.machine().device<ppu2c0x_device>("ppu"); |
r17967 | r17968 | |
1203 | 1204 | MCFG_SCREEN_REFRESH_RATE(60) |
1204 | 1205 | MCFG_SCREEN_SIZE(32*8, 262) |
1205 | 1206 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1) |
1206 | MCFG_SCREEN_UPDATE_ | |
1207 | MCFG_SCREEN_UPDATE_DR | |
1207 | 1208 | |
1208 | 1209 | MCFG_GFXDECODE(multigam) |
1209 | 1210 | MCFG_PALETTE_LENGTH(8*4*16) |
r17967 | r17968 | |
---|---|---|
478 | 478 | MCFG_SCREEN_REFRESH_RATE(60) |
479 | 479 | MCFG_SCREEN_SIZE(320, 256) |
480 | 480 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-16-1) |
481 | MCFG_SCREEN_UPDATE_ | |
481 | MCFG_SCREEN_UPDATE_DR | |
482 | 482 | |
483 | 483 | MCFG_GFXDECODE(fuuki16) |
484 | 484 | MCFG_PALETTE_LENGTH(0x800*4) |
r17967 | r17968 | |
---|---|---|
225 | 225 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
226 | 226 | MCFG_SCREEN_SIZE(32*8, 32*8) |
227 | 227 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
228 | MCFG_SCREEN_UPDATE_ | |
228 | MCFG_SCREEN_UPDATE_DR | |
229 | 229 | |
230 | 230 | MCFG_GFXDECODE(vulgus) |
231 | 231 | MCFG_PALETTE_LENGTH(64*4+16*16+4*32*8) |
r17967 | r17968 | |
---|---|---|
506 | 506 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
507 | 507 | MCFG_SCREEN_SIZE(64*8, 64*8) |
508 | 508 | MCFG_SCREEN_VISIBLE_AREA(4*8, 44*8-1, 3*8, 33*8-1) |
509 | MCFG_SCREEN_UPDATE_ | |
509 | MCFG_SCREEN_UPDATE_DR | |
510 | 510 | |
511 | 511 | MCFG_GFXDECODE(sderby) |
512 | 512 | MCFG_PALETTE_LENGTH(0x1000) |
r17967 | r17968 | |
529 | 529 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
530 | 530 | MCFG_SCREEN_SIZE(64*8, 64*8) |
531 | 531 | MCFG_SCREEN_VISIBLE_AREA(4*8, 44*8-1, 3*8, 33*8-1) |
532 | MCFG_SCREEN_UPDATE_ | |
532 | MCFG_SCREEN_UPDATE_DR | |
533 | 533 | |
534 | 534 | MCFG_GFXDECODE(sderby) |
535 | 535 | MCFG_PALETTE_LENGTH(0x1000) |
r17967 | r17968 | |
552 | 552 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
553 | 553 | MCFG_SCREEN_SIZE(64*8, 64*8) |
554 | 554 | MCFG_SCREEN_VISIBLE_AREA(4*8, 44*8-1, 3*8, 33*8-1) |
555 | MCFG_SCREEN_UPDATE_ | |
555 | MCFG_SCREEN_UPDATE_DR | |
556 | 556 | |
557 | 557 | MCFG_GFXDECODE(sderby) |
558 | 558 | MCFG_PALETTE_LENGTH(0x1000) |
r17967 | r17968 | |
575 | 575 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
576 | 576 | MCFG_SCREEN_SIZE(64*8, 64*8) |
577 | 577 | MCFG_SCREEN_VISIBLE_AREA(4*8, 44*8-1, 3*8, 33*8-1) |
578 | MCFG_SCREEN_UPDATE_ | |
578 | MCFG_SCREEN_UPDATE_DR | |
579 | 579 | |
580 | 580 | MCFG_GFXDECODE(sderby) |
581 | 581 | MCFG_PALETTE_LENGTH(0x1000) |
r17967 | r17968 | |
---|---|---|
124 | 124 | DECLARE_DRIVER_INIT(vcombat); |
125 | 125 | DECLARE_MACHINE_RESET(vcombat); |
126 | 126 | 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); | |
127 | 129 | }; |
128 | 130 | |
129 | 131 | static UINT32 update_screen(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int index) |
r17967 | r17968 | |
175 | 177 | return 0; |
176 | 178 | } |
177 | 179 | |
178 | static SCREEN_UPDATE_RGB32( vcombat_main ) { return update_screen(screen, bitmap, cliprect, 0); } | |
179 | static SCREEN_UPDATE_RGB32( vcombat_aux ) { return update_screen(screen, bitmap, cliprect, 1); } | |
180 | UINT32 vcombat_state::screen_update_vcombat_main(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 0); } | |
181 | UINT32 vcombat_state::screen_update_vcombat_aux(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 1); } | |
180 | 182 | |
181 | 183 | |
182 | 184 | WRITE16_MEMBER(vcombat_state::main_video_write) |
r17967 | r17968 | |
612 | 614 | |
613 | 615 | MCFG_SCREEN_ADD("screen", RASTER) |
614 | 616 | MCFG_SCREEN_RAW_PARAMS(XTAL_12MHz / 2, 400, 0, 256, 291, 0, 208) |
615 | MCFG_SCREEN_UPDATE_ | |
617 | MCFG_SCREEN_UPDATE_DR | |
616 | 618 | |
617 | 619 | MCFG_SCREEN_ADD("aux", RASTER) |
618 | 620 | MCFG_SCREEN_RAW_PARAMS(XTAL_12MHz / 2, 400, 0, 256, 291, 0, 208) |
619 | MCFG_SCREEN_UPDATE_ | |
621 | MCFG_SCREEN_UPDATE_DR | |
620 | 622 | |
621 | 623 | MCFG_SPEAKER_STANDARD_MONO("mono") |
622 | 624 | |
r17967 | r17968 | |
647 | 649 | |
648 | 650 | MCFG_SCREEN_ADD("screen", RASTER) |
649 | 651 | MCFG_SCREEN_RAW_PARAMS(XTAL_20MHz / 4, 320, 0, 256, 277, 0, 224) |
650 | MCFG_SCREEN_UPDATE_ | |
652 | MCFG_SCREEN_UPDATE_DR | |
651 | 653 | |
652 | 654 | MCFG_SPEAKER_STANDARD_MONO("mono") |
653 | 655 |
r17967 | r17968 | |
---|---|---|
481 | 481 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
482 | 482 | MCFG_SCREEN_SIZE(24*16, 16*16) |
483 | 483 | MCFG_SCREEN_VISIBLE_AREA(0*16, 24*16-1, 1*16, 15*16-1) |
484 | MCFG_SCREEN_UPDATE_ | |
484 | MCFG_SCREEN_UPDATE_DR | |
485 | 485 | |
486 | 486 | MCFG_GFXDECODE(shangha3) |
487 | 487 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
518 | 518 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
519 | 519 | MCFG_SCREEN_SIZE(24*16, 16*16) |
520 | 520 | MCFG_SCREEN_VISIBLE_AREA(0*16, 24*16-1, 1*16, 15*16-1) |
521 | MCFG_SCREEN_UPDATE_ | |
521 | MCFG_SCREEN_UPDATE_DR | |
522 | 522 | |
523 | 523 | MCFG_GFXDECODE(shangha3) |
524 | 524 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
556 | 556 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
557 | 557 | MCFG_SCREEN_SIZE(24*16, 16*16) |
558 | 558 | MCFG_SCREEN_VISIBLE_AREA(0*16, 24*16-1, 1*16, 15*16-1) |
559 | MCFG_SCREEN_UPDATE_ | |
559 | MCFG_SCREEN_UPDATE_DR | |
560 | 560 | |
561 | 561 | MCFG_GFXDECODE(shangha3) |
562 | 562 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
---|---|---|
44 | 44 | virtual void machine_start(); |
45 | 45 | virtual void machine_reset(); |
46 | 46 | virtual void video_start(); |
47 | UINT32 screen_update_pkscramble(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
47 | 48 | }; |
48 | 49 | |
49 | 50 | |
r17967 | r17968 | |
243 | 244 | m_fg_tilemap->set_transparent_pen(15); |
244 | 245 | } |
245 | 246 | |
246 | stat | |
247 | UINT32 pkscram_state::screen | |
247 | 248 | { |
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); | |
252 | 252 | return 0; |
253 | 253 | } |
254 | 254 | |
r17967 | r17968 | |
316 | 316 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
317 | 317 | MCFG_SCREEN_SIZE(32*8, 32*8) |
318 | 318 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 24*8-1) |
319 | MCFG_SCREEN_UPDATE_ | |
319 | MCFG_SCREEN_UPDATE_DR | |
320 | 320 | |
321 | 321 | MCFG_PALETTE_LENGTH(0x800) |
322 | 322 | MCFG_GFXDECODE(pkscram) |
r17967 | r17968 | |
---|---|---|
319 | 319 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
320 | 320 | MCFG_SCREEN_SIZE(32*8, 32*8) |
321 | 321 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
322 | MCFG_SCREEN_UPDATE_ | |
322 | MCFG_SCREEN_UPDATE_DR | |
323 | 323 | |
324 | 324 | MCFG_GFXDECODE(vastar) |
325 | 325 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
74 | 74 | DECLARE_READ32_MEMBER(prot_cheater_r); |
75 | 75 | DECLARE_DRIVER_INIT(39in1); |
76 | 76 | virtual void machine_start(); |
77 | UINT32 screen_update_39in1(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
77 | 78 | }; |
78 | 79 | |
79 | 80 | |
r17967 | r17968 | |
1517 | 1518 | PORT_SERVICE_NO_TOGGLE( 0x80000000, IP_ACTIVE_LOW ) |
1518 | 1519 | INPUT_PORTS_END |
1519 | 1520 | |
1520 | stat | |
1521 | UINT32 _39in1_state::screen | |
1521 | 1522 | { |
1522 | _39in1_state *state = screen.machine().driver_data<_39in1_state>(); | |
1523 | 1523 | int x = 0; |
1524 | 1524 | int y = 0; |
1525 | 1525 | |
1526 | for(y = 0; y <= ( | |
1526 | for(y = 0; y <= ( | |
1527 | 1527 | { |
1528 | 1528 | UINT32 *d = &bitmap.pix32(y); |
1529 | for(x = 0; x <= ( | |
1529 | for(x = 0; x <= ( | |
1530 | 1530 | { |
1531 | d[x] = | |
1531 | d[x] = | |
1532 | 1532 | } |
1533 | 1533 | } |
1534 | 1534 | return 0; |
r17967 | r17968 | |
1600 | 1600 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1601 | 1601 | MCFG_SCREEN_SIZE(1024, 1024) |
1602 | 1602 | MCFG_SCREEN_VISIBLE_AREA(0, 295, 0, 479) |
1603 | MCFG_SCREEN_UPDATE_ | |
1603 | MCFG_SCREEN_UPDATE_DR | |
1604 | 1604 | |
1605 | 1605 | MCFG_PALETTE_LENGTH(256) |
1606 | 1606 |
r17967 | r17968 | |
---|---|---|
343 | 343 | virtual void machine_reset(); |
344 | 344 | virtual void video_start(); |
345 | 345 | virtual void palette_init(); |
346 | UINT32 screen_update_fortecar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
346 | 347 | }; |
347 | 348 | |
348 | 349 | |
r17967 | r17968 | |
350 | 351 | { |
351 | 352 | } |
352 | 353 | |
353 | static | |
354 | UINT32 fortecar_state::screen_update_fortecar(screen_device &screen, bitmap_ind | |
354 | 355 | { |
355 | fortecar_state *state = screen.machine().driver_data<fortecar_state>(); | |
356 | 356 | int x,y,count; |
357 | 357 | count = 0; |
358 | 358 | |
r17967 | r17968 | |
362 | 362 | { |
363 | 363 | int tile,color,bpp; |
364 | 364 | |
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; | |
368 | 368 | |
369 | 369 | if(bpp) |
370 | 370 | color&=0x3; |
r17967 | r17968 | |
701 | 701 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
702 | 702 | MCFG_SCREEN_SIZE(640, 256) |
703 | 703 | MCFG_SCREEN_VISIBLE_AREA(0, 600-1, 0, 240-1) /* driven by CRTC */ |
704 | MCFG_SCREEN_UPDATE_ | |
704 | MCFG_SCREEN_UPDATE_DR | |
705 | 705 | |
706 | 706 | |
707 | 707 | MCFG_EEPROM_ADD("eeprom", forte_eeprom_intf) |
r17967 | r17968 | |
---|---|---|
94 | 94 | DECLARE_DRIVER_INIT(gunpey); |
95 | 95 | virtual void video_start(); |
96 | 96 | virtual void palette_init(); |
97 | UINT32 screen_update_gunpey(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
97 | 98 | }; |
98 | 99 | |
99 | 100 | |
r17967 | r17968 | |
102 | 103 | m_blit_buffer = auto_alloc_array(machine(), UINT16, 512*512); |
103 | 104 | } |
104 | 105 | |
105 | stat | |
106 | UINT32 gunpey_state::screen | |
106 | 107 | { |
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; | |
109 | 109 | int x,y; |
110 | 110 | int count; |
111 | 111 | |
r17967 | r17968 | |
375 | 375 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) |
376 | 376 | MCFG_SCREEN_SIZE(512, 512) |
377 | 377 | MCFG_SCREEN_VISIBLE_AREA(0*8, 512-1, 0*8, 512-1) |
378 | MCFG_SCREEN_UPDATE_ | |
378 | MCFG_SCREEN_UPDATE_DR | |
379 | 379 | |
380 | 380 | MCFG_PALETTE_LENGTH(0x800) |
381 | 381 |
r17967 | r17968 | |
---|---|---|
73 | 73 | virtual void machine_reset(); |
74 | 74 | virtual void video_start(); |
75 | 75 | virtual void palette_init(); |
76 | UINT32 screen_update_superwng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
76 | 77 | }; |
77 | 78 | |
78 | 79 | TILE_GET_INFO_MEMBER(superwng_state::get_bg_tile_info) |
r17967 | r17968 | |
112 | 113 | m_bg_tilemap->set_scrollx(0, 64); |
113 | 114 | } |
114 | 115 | |
115 | stat | |
116 | UINT32 superwng_state::screen | |
116 | 117 | { |
117 | superwng_state *state = screen.machine().driver_data<superwng_state>(); | |
118 | 118 | |
119 | | |
119 | | |
120 | 120 | rectangle tmp = cliprect; |
121 | 121 | |
122 | if ( | |
122 | if ( | |
123 | 123 | { |
124 | 124 | tmp.min_x += 32; |
125 | | |
125 | | |
126 | 126 | } |
127 | 127 | else |
128 | 128 | { |
129 | 129 | tmp.max_x -= 32; |
130 | | |
130 | | |
131 | 131 | } |
132 | 132 | |
133 | 133 | //sprites |
r17967 | r17968 | |
143 | 143 | x ? |
144 | 144 | xxxx color |
145 | 145 | */ |
146 | if (~ | |
146 | if (~ | |
147 | 147 | continue; |
148 | 148 | |
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; | |
154 | 154 | |
155 | 155 | drawgfx_transpen(bitmap, cliprect,screen.machine().gfx[1], |
156 | 156 | code, |
r17967 | r17968 | |
483 | 483 | MCFG_GFXDECODE(superwng) |
484 | 484 | |
485 | 485 | MCFG_PALETTE_LENGTH(0x40) |
486 | MCFG_SCREEN_UPDATE_ | |
486 | MCFG_SCREEN_UPDATE_DR | |
487 | 487 | |
488 | 488 | MCFG_SPEAKER_STANDARD_MONO("mono") |
489 | 489 |
r17967 | r17968 | |
---|---|---|
119 | 119 | virtual void machine_reset(); |
120 | 120 | virtual void video_start(); |
121 | 121 | 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); | |
122 | 124 | }; |
123 | 125 | |
124 | 126 | |
r17967 | r17968 | |
357 | 359 | } |
358 | 360 | } |
359 | 361 | |
360 | static | |
362 | UINT32 cyclemb_state::screen_update_cyclemb(screen_device &screen, bitmap_ind | |
361 | 363 | { |
362 | 364 | cyclemb_draw_tilemap(screen,bitmap,cliprect); |
363 | 365 | cyclemb_draw_sprites(screen,bitmap,cliprect); |
364 | 366 | return 0; |
365 | 367 | } |
366 | 368 | |
367 | stat | |
369 | UINT32 cyclemb_state::screen | |
368 | 370 | { |
369 | 371 | bitmap.fill(0, cliprect); |
370 | 372 | |
r17967 | r17968 | |
917 | 919 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
918 | 920 | MCFG_SCREEN_SIZE(32*8, 32*8) |
919 | 921 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
920 | MCFG_SCREEN_UPDATE_ | |
922 | MCFG_SCREEN_UPDATE_DR | |
921 | 923 | |
922 | 924 | MCFG_GFXDECODE(cyclemb) |
923 | 925 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
938 | 940 | MCFG_SCREEN_MODIFY("screen") |
939 | 941 | MCFG_SCREEN_SIZE(64*8, 32*8) |
940 | 942 | MCFG_SCREEN_VISIBLE_AREA(2*8, 34*8-1, 2*8, 30*8-1) |
941 | MCFG_SCREEN_UPDATE_ | |
943 | MCFG_SCREEN_UPDATE_DR | |
942 | 944 | |
943 | 945 | // MCFG_PALETTE_INIT_OVERRIDE(cyclemb_state,skydest) |
944 | 946 | MACHINE_CONFIG_END |
r17967 | r17968 | |
---|---|---|
394 | 394 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
395 | 395 | MCFG_SCREEN_SIZE(64*8, 32*8) |
396 | 396 | 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) | |
399 | 399 | |
400 | 400 | MCFG_GFXDECODE(baraduke) |
401 | 401 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
---|---|---|
98 | 98 | virtual void machine_start(); |
99 | 99 | virtual void machine_reset(); |
100 | 100 | virtual void video_start(); |
101 | UINT32 screen_update_guab(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
101 | 102 | }; |
102 | 103 | |
103 | 104 | |
r17967 | r17968 | |
258 | 259 | } |
259 | 260 | |
260 | 261 | |
261 | static | |
262 | UINT32 guab_state::screen_update_guab(screen_device &screen, bitmap_ind | |
262 | 263 | { |
263 | 264 | int x, y; |
264 | 265 | struct tms34061_display state; |
r17967 | r17968 | |
824 | 825 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
825 | 826 | MCFG_SCREEN_SIZE(64*8, 32*8) |
826 | 827 | MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1) |
827 | MCFG_SCREEN_UPDATE_ | |
828 | MCFG_SCREEN_UPDATE_DR | |
828 | 829 | |
829 | 830 | MCFG_PALETTE_LENGTH(16) |
830 | 831 |
r17967 | r17968 | |
---|---|---|
454 | 454 | DECLARE_READ16_MEMBER(test_r); |
455 | 455 | DECLARE_READ8_MEMBER(test8_r); |
456 | 456 | virtual void video_start(); |
457 | UINT32 screen_update_bingor(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
457 | 458 | }; |
458 | 459 | |
459 | 460 | |
r17967 | r17968 | |
461 | 462 | { |
462 | 463 | } |
463 | 464 | |
464 | static | |
465 | UINT32 bingor_state::screen_update_bingor(screen_device &screen, bitmap_rgb | |
465 | 466 | { |
466 | bingor_state *state = screen.machine().driver_data<bingor_state>(); | |
467 | 467 | int x,y,count; |
468 | 468 | |
469 | 469 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
r17967 | r17968 | |
476 | 476 | { |
477 | 477 | UINT32 color; |
478 | 478 | |
479 | color = ( | |
479 | color = ( | |
480 | 480 | |
481 | 481 | if(cliprect.contains(x+3, y)) |
482 | 482 | bitmap.pix32(y, x+3) = screen.machine().pens[color]; |
483 | 483 | |
484 | color = ( | |
484 | color = ( | |
485 | 485 | |
486 | 486 | if(cliprect.contains(x+2, y)) |
487 | 487 | bitmap.pix32(y, x+2) = screen.machine().pens[color]; |
488 | 488 | |
489 | color = ( | |
489 | color = ( | |
490 | 490 | |
491 | 491 | if(cliprect.contains(x+1, y)) |
492 | 492 | bitmap.pix32(y, x+1) = screen.machine().pens[color]; |
493 | 493 | |
494 | color = ( | |
494 | color = ( | |
495 | 495 | |
496 | 496 | if(cliprect.contains(x+0, y)) |
497 | 497 | bitmap.pix32(y, x+0) = screen.machine().pens[color]; |
r17967 | r17968 | |
635 | 635 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
636 | 636 | MCFG_SCREEN_SIZE(400, 300) |
637 | 637 | MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 300-1) |
638 | MCFG_SCREEN_UPDATE_ | |
638 | MCFG_SCREEN_UPDATE_DR | |
639 | 639 | |
640 | 640 | MCFG_PALETTE_LENGTH(0x100) |
641 | 641 |
r17967 | r17968 | |
---|---|---|
1844 | 1844 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1845 | 1845 | MCFG_SCREEN_SIZE(32*16, 30*16) |
1846 | 1846 | MCFG_SCREEN_VISIBLE_AREA(0*16, 32*16-1, 0*16, 30*16-1) |
1847 | MCFG_SCREEN_UPDATE_ | |
1847 | MCFG_SCREEN_UPDATE_DR | |
1848 | 1848 | |
1849 | 1849 | MCFG_GFXDECODE(mcr) |
1850 | 1850 | MCFG_PALETTE_LENGTH(32) |
r17967 | r17968 | |
---|---|---|
79 | 79 | DECLARE_READ8_MEMBER(controller_r); |
80 | 80 | virtual void machine_start(); |
81 | 81 | virtual void machine_reset(); |
82 | UINT32 screen_update_beaminv(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
82 | 83 | }; |
83 | 84 | |
84 | 85 | |
r17967 | r17968 | |
168 | 169 | * |
169 | 170 | *************************************/ |
170 | 171 | |
171 | static | |
172 | UINT32 beaminv_state::screen_update_beaminv(screen_device &screen, bitmap_rgb | |
172 | 173 | { |
173 | beaminv_state *state = screen.machine().driver_data<beaminv_state>(); | |
174 | 174 | offs_t offs; |
175 | 175 | |
176 | for (offs = 0; offs < | |
176 | for (offs = 0; offs < | |
177 | 177 | { |
178 | 178 | int i; |
179 | 179 | |
180 | 180 | UINT8 y = offs; |
181 | 181 | UINT8 x = offs >> 8 << 3; |
182 | UINT8 data = | |
182 | UINT8 data = | |
183 | 183 | |
184 | 184 | for (i = 0; i < 8; i++) |
185 | 185 | { |
r17967 | r17968 | |
342 | 342 | MCFG_SCREEN_SIZE(256, 256) |
343 | 343 | MCFG_SCREEN_VISIBLE_AREA(0, 247, 16, 231) |
344 | 344 | MCFG_SCREEN_REFRESH_RATE(60) |
345 | MCFG_SCREEN_UPDATE_ | |
345 | MCFG_SCREEN_UPDATE_DR | |
346 | 346 | |
347 | 347 | MACHINE_CONFIG_END |
348 | 348 |
r17967 | r17968 | |
---|---|---|
325 | 325 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
326 | 326 | MCFG_SCREEN_SIZE(32*8, 32*8) |
327 | 327 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
328 | MCFG_SCREEN_UPDATE_ | |
328 | MCFG_SCREEN_UPDATE_DR | |
329 | 329 | |
330 | 330 | MCFG_GFXDECODE(matmania) |
331 | 331 | MCFG_PALETTE_LENGTH(64+16) |
r17967 | r17968 | |
414 | 414 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
415 | 415 | MCFG_SCREEN_SIZE(32*8, 32*8) |
416 | 416 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
417 | MCFG_SCREEN_UPDATE_ | |
417 | MCFG_SCREEN_UPDATE_DR | |
418 | 418 | |
419 | 419 | MCFG_GFXDECODE(maniach) |
420 | 420 | MCFG_PALETTE_LENGTH(64+16) |
r17967 | r17968 | |
---|---|---|
268 | 268 | DECLARE_MACHINE_START(mpu4_vid); |
269 | 269 | DECLARE_MACHINE_RESET(mpu4_vid); |
270 | 270 | DECLARE_VIDEO_START(mpu4_vid); |
271 | UINT32 screen_update_mpu4_vid(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
271 | 272 | }; |
272 | 273 | |
273 | 274 | |
r17967 | r17968 | |
511 | 512 | |
512 | 513 | |
513 | 514 | |
514 | stat | |
515 | UINT32 mpu4vid_state::screen | |
515 | 516 | { |
516 | mpu4vid_state *state = screen.machine().driver_data<mpu4vid_state>(); | |
517 | 517 | |
518 | 518 | bitmap.fill(0, cliprect); |
519 | 519 | |
520 | | |
520 | | |
521 | 521 | |
522 | 522 | return 0; |
523 | 523 | } |
r17967 | r17968 | |
1518 | 1518 | MCFG_SCREEN_VISIBLE_AREA(0, (63*8)+(0)-1, 0, (37*8)+0-1) |
1519 | 1519 | |
1520 | 1520 | MCFG_SCREEN_REFRESH_RATE(50) |
1521 | MCFG_SCREEN_UPDATE_ | |
1521 | MCFG_SCREEN_UPDATE_DR | |
1522 | 1522 | |
1523 | 1523 | MCFG_DEVICE_ADD("scn2674_vid", SCN2674_VIDEO, 0) |
1524 | 1524 | scn2674_device::set_irq_update_callback(*device, update_mpu68_interrupts); |
r17967 | r17968 | |
---|---|---|
244 | 244 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
245 | 245 | MCFG_SCREEN_SIZE(0x120, 0x100) |
246 | 246 | MCFG_SCREEN_VISIBLE_AREA(0, 0x120-1, 0x0+16, 0x100-16-1) |
247 | MCFG_SCREEN_UPDATE_ | |
247 | MCFG_SCREEN_UPDATE_DR | |
248 | 248 | |
249 | 249 | MCFG_GFXDECODE(firebatl) |
250 | 250 | MCFG_PALETTE_LENGTH(512+64*4) |
r17967 | r17968 | |
277 | 277 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
278 | 278 | MCFG_SCREEN_SIZE(0x120, 0x100) |
279 | 279 | MCFG_SCREEN_VISIBLE_AREA(0, 0x120-1, 0x0+16, 0x100-16-1) |
280 | MCFG_SCREEN_UPDATE_ | |
280 | MCFG_SCREEN_UPDATE_DR | |
281 | 281 | |
282 | 282 | MCFG_GFXDECODE(clshroad) |
283 | 283 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
424 | 424 | MCFG_SCREEN_REFRESH_RATE(60) |
425 | 425 | MCFG_SCREEN_SIZE(360, 262) /* guess, need to see what the games write to the vid registers */ |
426 | 426 | MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) |
427 | MCFG_SCREEN_UPDATE_ | |
427 | MCFG_SCREEN_UPDATE_DR | |
428 | 428 | |
429 | 429 | MCFG_PALETTE_LENGTH(65534) |
430 | 430 |
r17967 | r17968 | |
---|---|---|
373 | 373 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
374 | 374 | MCFG_SCREEN_SIZE(64*8, 32*8) |
375 | 375 | MCFG_SCREEN_VISIBLE_AREA(12*8, (64-14)*8-1, 2*8, 30*8-1 ) |
376 | MCFG_SCREEN_UPDATE_ | |
376 | MCFG_SCREEN_UPDATE_DR | |
377 | 377 | |
378 | 378 | MCFG_PALETTE_LENGTH(1024) |
379 | 379 |
r17967 | r17968 | |
---|---|---|
640 | 640 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
641 | 641 | MCFG_SCREEN_SIZE(32*8, 32*8) |
642 | 642 | MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 2*8, 30*8-1) |
643 | MCFG_SCREEN_UPDATE_ | |
643 | MCFG_SCREEN_UPDATE_DR | |
644 | 644 | |
645 | 645 | MCFG_GFXDECODE(lsasquad) |
646 | 646 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
701 | 701 | MCFG_PALETTE_LENGTH(512) |
702 | 702 | |
703 | 703 | MCFG_PALETTE_INIT(RRRR_GGGG_BBBB) |
704 | MCFG_SCREEN_UPDATE_ | |
704 | MCFG_SCREEN_UPDATE_DR | |
705 | 705 | |
706 | 706 | /* sound hardware */ |
707 | 707 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
---|---|---|
882 | 882 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
883 | 883 | MCFG_SCREEN_SIZE(64*8, 32*8) |
884 | 884 | MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 ) |
885 | MCFG_SCREEN_UPDATE_ | |
885 | MCFG_SCREEN_UPDATE_DR | |
886 | 886 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) |
887 | 887 | |
888 | 888 | MCFG_GFXDECODE(lastday) |
r17967 | r17968 | |
924 | 924 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
925 | 925 | MCFG_SCREEN_SIZE(64*8, 32*8) |
926 | 926 | MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 ) |
927 | MCFG_SCREEN_UPDATE_ | |
927 | MCFG_SCREEN_UPDATE_DR | |
928 | 928 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) |
929 | 929 | |
930 | 930 | MCFG_GFXDECODE(lastday) |
r17967 | r17968 | |
957 | 957 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
958 | 958 | MCFG_SCREEN_SIZE(64*8, 32*8) |
959 | 959 | MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 ) |
960 | MCFG_SCREEN_UPDATE_ | |
960 | MCFG_SCREEN_UPDATE_DR | |
961 | 961 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) |
962 | 962 | |
963 | 963 | MCFG_GFXDECODE(lastday) |
r17967 | r17968 | |
989 | 989 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
990 | 990 | MCFG_SCREEN_SIZE(64*8, 32*8) |
991 | 991 | MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 ) |
992 | MCFG_SCREEN_UPDATE_ | |
992 | MCFG_SCREEN_UPDATE_DR | |
993 | 993 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) |
994 | 994 | |
995 | 995 | MCFG_GFXDECODE(bluehawk) |
r17967 | r17968 | |
1021 | 1021 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1022 | 1022 | MCFG_SCREEN_SIZE(64*8, 32*8) |
1023 | 1023 | MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 ) |
1024 | MCFG_SCREEN_UPDATE_ | |
1024 | MCFG_SCREEN_UPDATE_DR | |
1025 | 1025 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) |
1026 | 1026 | |
1027 | 1027 | MCFG_GFXDECODE(flytiger) |
r17967 | r17968 | |
1051 | 1051 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1052 | 1052 | MCFG_SCREEN_SIZE(64*8, 32*8) |
1053 | 1053 | MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 0*8, 32*8-1 ) |
1054 | MCFG_SCREEN_UPDATE_ | |
1054 | MCFG_SCREEN_UPDATE_DR | |
1055 | 1055 | |
1056 | 1056 | MCFG_GFXDECODE(primella) |
1057 | 1057 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
1092 | 1092 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1093 | 1093 | MCFG_SCREEN_SIZE(64*8, 32*8) |
1094 | 1094 | MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 ) |
1095 | MCFG_SCREEN_UPDATE_ | |
1095 | MCFG_SCREEN_UPDATE_DR | |
1096 | 1096 | MCFG_SCREEN_VBLANK_DEVICE("spriteram16", buffered_spriteram16_device, vblank_copy_rising) |
1097 | 1097 | |
1098 | 1098 | MCFG_GFXDECODE(rshark) |
r17967 | r17968 | |
1122 | 1122 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1123 | 1123 | MCFG_SCREEN_SIZE(64*8, 32*8) |
1124 | 1124 | MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 ) |
1125 | MCFG_SCREEN_UPDATE_ | |
1125 | MCFG_SCREEN_UPDATE_DR | |
1126 | 1126 | MCFG_SCREEN_VBLANK_DEVICE("spriteram16", buffered_spriteram16_device, vblank_copy_rising) |
1127 | 1127 | |
1128 | 1128 | MCFG_GFXDECODE(rshark) |
r17967 | r17968 | |
1152 | 1152 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1153 | 1153 | MCFG_SCREEN_SIZE(64*8, 32*8) |
1154 | 1154 | MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 ) |
1155 | MCFG_SCREEN_UPDATE_ | |
1155 | MCFG_SCREEN_UPDATE_DR | |
1156 | 1156 | MCFG_SCREEN_VBLANK_DEVICE("spriteram16", buffered_spriteram16_device, vblank_copy_rising) |
1157 | 1157 | |
1158 | 1158 | MCFG_GFXDECODE(popbingo) |
r17967 | r17968 | |
---|---|---|
88 | 88 | virtual void machine_reset(); |
89 | 89 | virtual void video_start(); |
90 | 90 | virtual void palette_init(); |
91 | UINT32 screen_update_cham24(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
91 | 92 | }; |
92 | 93 | |
93 | 94 | |
r17967 | r17968 | |
302 | 303 | { |
303 | 304 | } |
304 | 305 | |
305 | stat | |
306 | UINT32 cham24_state::screen | |
306 | 307 | { |
307 | 308 | /* render the ppu */ |
308 | 309 | ppu2c0x_device *ppu = screen.machine().device<ppu2c0x_device>("ppu"); |
r17967 | r17968 | |
354 | 355 | MCFG_SCREEN_REFRESH_RATE(60) |
355 | 356 | MCFG_SCREEN_SIZE(32*8, 262) |
356 | 357 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1) |
357 | MCFG_SCREEN_UPDATE_ | |
358 | MCFG_SCREEN_UPDATE_DR | |
358 | 359 | |
359 | 360 | MCFG_GFXDECODE(cham24) |
360 | 361 | MCFG_PALETTE_LENGTH(8*4*16) |
r17967 | r17968 | |
---|---|---|
111 | 111 | virtual void machine_start(); |
112 | 112 | virtual void machine_reset(); |
113 | 113 | virtual void video_start(); |
114 | UINT32 screen_update_silvmil(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
114 | 115 | }; |
115 | 116 | |
116 | 117 | |
r17967 | r17968 | |
148 | 149 | m_fg_layer->set_transparent_pen(0); |
149 | 150 | } |
150 | 151 | |
151 | ||
152 | ||
152 | 153 | { |
153 | silvmil_state *state = screen.machine().driver_data<silvmil_state>(); | |
154 | 154 | |
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); | |
158 | 158 | return 0; |
159 | 159 | } |
160 | 160 | |
r17967 | r17968 | |
330 | 330 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
331 | 331 | MCFG_SCREEN_SIZE(64*8, 64*8) |
332 | 332 | MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 0, 30*8-1) |
333 | MCFG_SCREEN_UPDATE_ | |
333 | MCFG_SCREEN_UPDATE_DR | |
334 | 334 | |
335 | 335 | MCFG_PALETTE_LENGTH(0x300) |
336 | 336 | MCFG_GFXDECODE(silvmil) |
r17967 | r17968 | |
---|---|---|
407 | 407 | /* not sure; assuming to be the same as darwin */ |
408 | 408 | MCFG_SCREEN_ADD("screen", RASTER) |
409 | 409 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 384, 8, 248, 272, 8, 248) |
410 | MCFG_SCREEN_UPDATE_ | |
410 | MCFG_SCREEN_UPDATE_DR | |
411 | 411 | |
412 | 412 | |
413 | 413 | /* sound hardware */ |
r17967 | r17968 | |
454 | 454 | = 15.625kHz / (240 + 32) |
455 | 455 | = 57.444855Hz |
456 | 456 | tuned by Shingo SUZUKI(VSyncMAME Project) 2000/10/19 */ |
457 | MCFG_SCREEN_UPDATE_ | |
457 | MCFG_SCREEN_UPDATE_DR | |
458 | 458 | |
459 | 459 | |
460 | 460 | /* sound hardware */ |
r17967 | r17968 | |
---|---|---|
78 | 78 | DECLARE_WRITE8_MEMBER(mcu_io_mux_w); |
79 | 79 | DECLARE_WRITE16_MEMBER(eeprom_w); |
80 | 80 | virtual void video_start(); |
81 | UINT32 screen_update_rbmk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
81 | 82 | }; |
82 | 83 | |
83 | 84 | |
r17967 | r17968 | |
497 | 498 | { |
498 | 499 | } |
499 | 500 | |
500 | static | |
501 | UINT32 rbmk_state::screen_update_rbmk(screen_device &screen, bitmap_ind | |
501 | 502 | { |
502 | rbmk_state *state = screen.machine().driver_data<rbmk_state>(); | |
503 | 503 | int x,y; |
504 | 504 | int count = 0; |
505 | 505 | |
r17967 | r17968 | |
507 | 507 | { |
508 | 508 | for (x=0;x<64;x++) |
509 | 509 | { |
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); | |
512 | 512 | count++; |
513 | 513 | } |
514 | 514 | } |
r17967 | r17968 | |
519 | 519 | { |
520 | 520 | for (x=0;x<64;x++) |
521 | 521 | { |
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); | |
524 | 524 | count++; |
525 | 525 | } |
526 | 526 | } |
r17967 | r17968 | |
550 | 550 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
551 | 551 | MCFG_SCREEN_SIZE(64*8, 32*8) |
552 | 552 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1) |
553 | MCFG_SCREEN_UPDATE_ | |
553 | MCFG_SCREEN_UPDATE_DR | |
554 | 554 | |
555 | 555 | MCFG_PALETTE_LENGTH(0x800) |
556 | 556 |
r17967 | r17968 | |
---|---|---|
661 | 661 | |
662 | 662 | MCFG_SCREEN_ADD("screen", RASTER) |
663 | 663 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
664 | MCFG_SCREEN_UPDATE_ | |
664 | MCFG_SCREEN_UPDATE_DR | |
665 | 665 | |
666 | 666 | |
667 | 667 | /* sound hardware */ |
r17967 | r17968 | |
---|---|---|
86 | 86 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
87 | 87 | virtual void machine_reset(); |
88 | 88 | virtual void video_start(); |
89 | UINT32 screen_update_trvmadns(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
89 | 90 | }; |
90 | 91 | |
91 | 92 | |
r17967 | r17968 | |
291 | 292 | machine().gfx[0]->set_source(m_gfxram); |
292 | 293 | } |
293 | 294 | |
294 | static | |
295 | UINT32 trvmadns_state::screen_update_trvmadns(screen_device &screen, bitmap_ind | |
295 | 296 | { |
296 | trvmadns_state *state = screen.machine().driver_data<trvmadns_state>(); | |
297 | 297 | int x,y,count; |
298 | 298 | gfx_element *gfx = screen.machine().gfx[0]; |
299 | 299 | |
r17967 | r17968 | |
305 | 305 | { |
306 | 306 | for (x=0;x<32;x++) |
307 | 307 | { |
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); | |
310 | 310 | int color = (attr & 0x18) >> 3; |
311 | 311 | int flipx = attr & 4; |
312 | 312 | int flipy = attr & 2; |
r17967 | r17968 | |
323 | 323 | { |
324 | 324 | for (x=0;x<32;x++) |
325 | 325 | { |
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); | |
328 | 328 | int color = (attr & 0x18) >> 3; |
329 | 329 | int flipx = attr & 4; |
330 | 330 | int flipy = attr & 2; |
r17967 | r17968 | |
356 | 356 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
357 | 357 | MCFG_SCREEN_SIZE(256, 256) |
358 | 358 | MCFG_SCREEN_VISIBLE_AREA(0*8, 31*8-1, 0*8, 30*8-1) |
359 | MCFG_SCREEN_UPDATE_ | |
359 | MCFG_SCREEN_UPDATE_DR | |
360 | 360 | |
361 | 361 | MCFG_GFXDECODE(trvmadns) |
362 | 362 | MCFG_PALETTE_LENGTH(16) |
r17967 | r17968 | |
---|---|---|
476 | 476 | MCFG_SCREEN_REFRESH_RATE(60) |
477 | 477 | MCFG_SCREEN_SIZE(304, 224) |
478 | 478 | MCFG_SCREEN_VISIBLE_AREA(8, 303-8, 0, 223-8) |
479 | MCFG_SCREEN_UPDATE_ | |
479 | MCFG_SCREEN_UPDATE_DR | |
480 | 480 | |
481 | 481 | MCFG_GFXDECODE(rpunch) |
482 | 482 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
436 | 436 | MCFG_SCREEN_SIZE(HTOTAL, VTOTAL) |
437 | 437 | MCFG_SCREEN_VBLANK_TIME(0) /* VBLANK is handled manually */ |
438 | 438 | MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 231) |
439 | MCFG_SCREEN_UPDATE_ | |
439 | MCFG_SCREEN_UPDATE_DR | |
440 | 440 | |
441 | 441 | |
442 | 442 | /* sound hardware */ |
r17967 | r17968 | |
---|---|---|
76 | 76 | virtual void machine_start(); |
77 | 77 | virtual void machine_reset(); |
78 | 78 | virtual void video_start(); |
79 | UINT32 screen_update_yumefuda(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
79 | 80 | }; |
80 | 81 | |
81 | 82 | TILE_GET_INFO_MEMBER(albazg_state::y_get_bg_tile_info) |
r17967 | r17968 | |
96 | 97 | 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); |
97 | 98 | } |
98 | 99 | |
99 | stat | |
100 | UINT32 albazg_state::screen | |
100 | 101 | { |
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); | |
103 | 103 | return 0; |
104 | 104 | } |
105 | 105 | |
r17967 | r17968 | |
395 | 395 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
396 | 396 | MCFG_SCREEN_SIZE(32*8, 32*8) |
397 | 397 | MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 0, 32*8-1) |
398 | MCFG_SCREEN_UPDATE_ | |
398 | MCFG_SCREEN_UPDATE_DR | |
399 | 399 | |
400 | 400 | MCFG_MC6845_ADD("crtc", H46505, MASTER_CLOCK/16, mc6845_intf) /* hand tuned to get ~60 fps */ |
401 | 401 |
r17967 | r17968 | |
---|---|---|
46 | 46 | DECLARE_WRITE16_MEMBER(main_sound_latch_w); |
47 | 47 | DECLARE_WRITE8_MEMBER(bingoc_play_w); |
48 | 48 | virtual void video_start(); |
49 | UINT32 screen_update_bingoc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
49 | 50 | }; |
50 | 51 | |
51 | 52 | |
r17967 | r17968 | |
56 | 57 | |
57 | 58 | } |
58 | 59 | |
59 | static | |
60 | UINT32 bingoc_state::screen_update_bingoc(screen_device &screen, bitmap_ind | |
60 | 61 | { |
61 | 62 | return 0; |
62 | 63 | } |
r17967 | r17968 | |
160 | 161 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
161 | 162 | MCFG_SCREEN_SIZE(512, 256) |
162 | 163 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) |
163 | MCFG_SCREEN_UPDATE_ | |
164 | MCFG_SCREEN_UPDATE_DR | |
164 | 165 | |
165 | 166 | MCFG_PALETTE_LENGTH(0x100) |
166 | 167 |
r17967 | r17968 | |
---|---|---|
515 | 515 | MCFG_SCREEN_REFRESH_RATE(60) |
516 | 516 | MCFG_SCREEN_SIZE(32*8, 262) /* vert size is a guess */ |
517 | 517 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 32*8-1) |
518 | MCFG_SCREEN_UPDATE_ | |
518 | MCFG_SCREEN_UPDATE_DR | |
519 | 519 | |
520 | 520 | MCFG_PALETTE_LENGTH(0x40) |
521 | 521 |
r17967 | r17968 | |
---|---|---|
24 | 24 | UINT8 m_flip_screen; |
25 | 25 | UINT8 *m_proms; |
26 | 26 | 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); | |
27 | 29 | }; |
28 | 30 | |
29 | 31 | |
r17967 | r17968 | |
34 | 36 | * |
35 | 37 | *************************************/ |
36 | 38 | |
37 | static | |
39 | UINT32 sstrangr_state::screen_update_sstrangr(screen_device &screen, bitmap_rgb | |
38 | 40 | { |
39 | sstrangr_state *state = screen.machine().driver_data<sstrangr_state>(); | |
40 | 41 | offs_t offs; |
41 | 42 | |
42 | 43 | for (offs = 0; offs < 0x2000; offs++) |
r17967 | r17968 | |
45 | 46 | |
46 | 47 | UINT8 x = offs << 3; |
47 | 48 | int y = offs >> 5; |
48 | UINT8 data = | |
49 | UINT8 data = | |
49 | 50 | |
50 | 51 | for (i = 0; i < 8; i++) |
51 | 52 | { |
52 | 53 | pen_t pen; |
53 | 54 | |
54 | if ( | |
55 | if ( | |
55 | 56 | { |
56 | 57 | pen = (data & 0x80) ? RGB_WHITE : RGB_BLACK; |
57 | 58 | data = data << 1; |
r17967 | r17968 | |
83 | 84 | } |
84 | 85 | |
85 | 86 | |
86 | static | |
87 | UINT32 sstrangr_state::screen_update_sstrngr2(screen_device &screen, bitmap_rgb | |
87 | 88 | { |
88 | sstrangr_state *state = screen.machine().driver_data<sstrangr_state>(); | |
89 | 89 | pen_t pens[NUM_PENS]; |
90 | 90 | offs_t offs; |
91 | 91 | UINT8 *color_map_base; |
92 | 92 | |
93 | 93 | get_pens(pens); |
94 | 94 | |
95 | color_map_base = & | |
95 | color_map_base = & | |
96 | 96 | |
97 | 97 | for (offs = 0; offs < 0x2000; offs++) |
98 | 98 | { |
r17967 | r17968 | |
103 | 103 | |
104 | 104 | offs_t color_address = (offs >> 9 << 5) | (offs & 0x1f); |
105 | 105 | |
106 | UINT8 data = | |
106 | UINT8 data = | |
107 | 107 | UINT8 fore_color = color_map_base[color_address] & 0x07; |
108 | 108 | |
109 | 109 | for (i = 0; i < 8; i++) |
110 | 110 | { |
111 | 111 | UINT8 color; |
112 | 112 | |
113 | if ( | |
113 | if ( | |
114 | 114 | { |
115 | 115 | color = (data & 0x80) ? fore_color : 0; |
116 | 116 | data = data << 1; |
r17967 | r17968 | |
204 | 204 | MCFG_SCREEN_SIZE(32*8, 262) /* vert size is a guess, taken from mw8080bw */ |
205 | 205 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 32*8-1) |
206 | 206 | MCFG_SCREEN_REFRESH_RATE(60) |
207 | MCFG_SCREEN_UPDATE_ | |
207 | MCFG_SCREEN_UPDATE_DR | |
208 | 208 | |
209 | 209 | /* sound hardware */ |
210 | 210 | |
r17967 | r17968 | |
267 | 267 | |
268 | 268 | /* video hardware */ |
269 | 269 | MCFG_SCREEN_MODIFY("screen") |
270 | MCFG_SCREEN_UPDATE_ | |
270 | MCFG_SCREEN_UPDATE_DR | |
271 | 271 | |
272 | 272 | MACHINE_CONFIG_END |
273 | 273 |
r17967 | r17968 | |
---|---|---|
79 | 79 | DECLARE_DRIVER_INIT(backfire); |
80 | 80 | virtual void machine_start(); |
81 | 81 | 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); | |
82 | 84 | }; |
83 | 85 | |
84 | 86 | //UINT32 *backfire_180010, *backfire_188010; |
r17967 | r17968 | |
108 | 110 | |
109 | 111 | |
110 | 112 | |
111 | stat | |
113 | UINT32 backfire_state::screen | |
112 | 114 | { |
113 | backfire_state *state = screen.machine().driver_data<backfire_state>(); | |
114 | 115 | |
115 | 116 | //FIXME: flip_screen_x should not be written! |
116 | | |
117 | | |
117 | 118 | |
118 | 119 | /* screen 1 uses pf1 as the forground and pf3 as the background */ |
119 | 120 | /* 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); | |
122 | 123 | |
123 | 124 | screen.machine().priority_bitmap.fill(0); |
124 | 125 | bitmap.fill(0x100, cliprect); |
125 | 126 | |
126 | if ( | |
127 | if ( | |
127 | 128 | { |
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); | |
131 | 132 | } |
132 | else if ( | |
133 | else if ( | |
133 | 134 | { |
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); | |
137 | 138 | } |
138 | 139 | else |
139 | popmessage( "unknown left priority %08x", | |
140 | popmessage( "unknown left priority %08x", | |
140 | 141 | |
141 | 142 | return 0; |
142 | 143 | } |
143 | 144 | |
144 | stat | |
145 | UINT32 backfire_state::screen | |
145 | 146 | { |
146 | backfire_state *state = screen.machine().driver_data<backfire_state>(); | |
147 | 147 | |
148 | 148 | //FIXME: flip_screen_x should not be written! |
149 | | |
149 | | |
150 | 150 | |
151 | 151 | /* screen 1 uses pf1 as the forground and pf3 as the background */ |
152 | 152 | /* 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); | |
155 | 155 | |
156 | 156 | screen.machine().priority_bitmap.fill(0); |
157 | 157 | bitmap.fill(0x500, cliprect); |
158 | 158 | |
159 | if ( | |
159 | if ( | |
160 | 160 | { |
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); | |
164 | 164 | } |
165 | else if ( | |
165 | else if ( | |
166 | 166 | { |
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); | |
170 | 170 | } |
171 | 171 | else |
172 | popmessage( "unknown right priority %08x", | |
172 | popmessage( "unknown right priority %08x", | |
173 | 173 | |
174 | 174 | return 0; |
175 | 175 | } |
r17967 | r17968 | |
515 | 515 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
516 | 516 | MCFG_SCREEN_SIZE(40*8, 32*8) |
517 | 517 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
518 | MCFG_SCREEN_UPDATE_ | |
518 | MCFG_SCREEN_UPDATE_DR | |
519 | 519 | |
520 | 520 | MCFG_SCREEN_ADD("rscreen", RASTER) |
521 | 521 | MCFG_SCREEN_REFRESH_RATE(60) |
522 | 522 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
523 | 523 | MCFG_SCREEN_SIZE(40*8, 32*8) |
524 | 524 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
525 | MCFG_SCREEN_UPDATE_ | |
525 | MCFG_SCREEN_UPDATE_DR | |
526 | 526 | |
527 | 527 | |
528 | 528 | MCFG_DECO16IC_ADD("tilegen1", backfire_deco16ic_tilegen1_intf) |
r17967 | r17968 | |
---|---|---|
402 | 402 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */ /* VERIFY: May be 55 or 56 */) |
403 | 403 | MCFG_SCREEN_SIZE(32*8, 32*8) |
404 | 404 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
405 | MCFG_SCREEN_UPDATE_ | |
405 | MCFG_SCREEN_UPDATE_DR | |
406 | 406 | |
407 | 407 | MCFG_GFXDECODE(sidepckt) |
408 | 408 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
56 | 56 | virtual void machine_reset(); |
57 | 57 | virtual void video_start(); |
58 | 58 | virtual void palette_init(); |
59 | UINT32 screen_update_cubeqst(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
59 | 60 | }; |
60 | 61 | |
61 | 62 | |
r17967 | r17968 | |
110 | 111 | } |
111 | 112 | |
112 | 113 | /* TODO: This is a simplified version of what actually happens */ |
113 | stat | |
114 | UINT32 cubeqst_state::screen | |
114 | 115 | { |
115 | cubeqst_state *state = screen.machine().driver_data<cubeqst_state>(); | |
116 | 116 | int y; |
117 | 117 | |
118 | 118 | /* |
r17967 | r17968 | |
121 | 121 | */ |
122 | 122 | |
123 | 123 | /* Bit 3 selects LD/#GRAPHICS */ |
124 | bitmap.fill( | |
124 | bitmap.fill( | |
125 | 125 | |
126 | 126 | /* TODO: Add 1 for linebuffering? */ |
127 | 127 | for (y = cliprect.min_y; y <= cliprect.max_y; ++y) |
r17967 | r17968 | |
133 | 133 | UINT32 pen; |
134 | 134 | |
135 | 135 | /* Zap the depth buffer */ |
136 | memset( | |
136 | memset( | |
137 | 137 | |
138 | 138 | /* Process all the spans on this scanline */ |
139 | 139 | if (y < 256) |
r17967 | r17968 | |
170 | 170 | } |
171 | 171 | |
172 | 172 | /* Draw the span, testing for depth */ |
173 | pen = | |
173 | pen = | |
174 | 174 | for (x = h1; x <= h2; ++x) |
175 | 175 | { |
176 | if (!( | |
176 | if (!( | |
177 | 177 | { |
178 | 178 | dest[x] = pen; |
179 | | |
179 | | |
180 | 180 | } |
181 | 181 | } |
182 | 182 | } |
r17967 | r17968 | |
532 | 532 | MCFG_NVRAM_ADD_0FILL("nvram") |
533 | 533 | |
534 | 534 | MCFG_LASERDISC_SIMUTREK_ADD("laserdisc") |
535 | MCFG_LASERDISC_OVERLAY_ | |
535 | MCFG_LASERDISC_OVERLAY_DR | |
536 | 536 | MCFG_LASERDISC_OVERLAY_CLIP(0, 320-1, 0, 256-8) |
537 | 537 | MCFG_LASERDISC_OVERLAY_POSITION(0.002f, -0.018f) |
538 | 538 | MCFG_LASERDISC_OVERLAY_SCALE(1.0f, 1.030f) |
r17967 | r17968 | |
---|---|---|
418 | 418 | /* video hardware */ |
419 | 419 | MCFG_SCREEN_ADD("screen", RASTER) |
420 | 420 | MCFG_SCREEN_RAW_PARAMS(EXERION_PIXEL_CLOCK, EXERION_HTOTAL, EXERION_HBEND, EXERION_HBSTART, EXERION_VTOTAL, EXERION_VBEND, EXERION_VBSTART) |
421 | MCFG_SCREEN_UPDATE_ | |
421 | MCFG_SCREEN_UPDATE_DR | |
422 | 422 | |
423 | 423 | MCFG_GFXDECODE(exerion) |
424 | 424 | MCFG_PALETTE_LENGTH(256*3) |
r17967 | r17968 | |
---|---|---|
276 | 276 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
277 | 277 | MCFG_SCREEN_SIZE(64*8, 32*8) |
278 | 278 | MCFG_SCREEN_VISIBLE_AREA(8*8, 48*8-1, 2*8, 30*8-1) |
279 | MCFG_SCREEN_UPDATE_ | |
279 | MCFG_SCREEN_UPDATE_DR | |
280 | 280 | |
281 | 281 | MCFG_GFXDECODE(mosaic) |
282 | 282 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
96 | 96 | virtual void machine_reset(); |
97 | 97 | virtual void video_start(); |
98 | 98 | virtual void palette_init(); |
99 | UINT32 screen_update_meijinsn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
99 | 100 | }; |
100 | 101 | |
101 | 102 | |
r17967 | r17968 | |
290 | 291 | } |
291 | 292 | |
292 | 293 | |
293 | stat | |
294 | UINT32 meijinsn_state::screen | |
294 | 295 | { |
295 | meijinsn_state *state = screen.machine().driver_data<meijinsn_state>(); | |
296 | 296 | int offs; |
297 | 297 | |
298 | 298 | for (offs = 0; offs < 0x4000; offs++) |
r17967 | r17968 | |
302 | 302 | sx = offs >> 8; |
303 | 303 | sy = offs & 0xff; |
304 | 304 | |
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; | |
307 | 307 | |
308 | 308 | for (x = 0; x < 4; x++) |
309 | 309 | { |
r17967 | r17968 | |
371 | 371 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
372 | 372 | MCFG_SCREEN_SIZE(32*8, 32*8) |
373 | 373 | MCFG_SCREEN_VISIBLE_AREA(12, 243, 2*8, 30*8-1) |
374 | MCFG_SCREEN_UPDATE_ | |
374 | MCFG_SCREEN_UPDATE_DR | |
375 | 375 | |
376 | 376 | MCFG_PALETTE_LENGTH(32) |
377 | 377 |
r17967 | r17968 | |
---|---|---|
34 | 34 | DECLARE_DRIVER_INIT(mv4in1); |
35 | 35 | TILE_GET_INFO_MEMBER(get_ltcasino_tile_info); |
36 | 36 | virtual void video_start(); |
37 | UINT32 screen_update_ltcasino(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
37 | 38 | }; |
38 | 39 | |
39 | 40 | |
r17967 | r17968 | |
635 | 636 | GFXDECODE_END |
636 | 637 | |
637 | 638 | |
638 | stat | |
639 | UINT32 ltcasino_state::screen | |
639 | 640 | { |
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); | |
642 | 642 | return 0; |
643 | 643 | } |
644 | 644 | |
r17967 | r17968 | |
655 | 655 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
656 | 656 | MCFG_SCREEN_SIZE(64*8, 32*8) |
657 | 657 | MCFG_SCREEN_VISIBLE_AREA(6*8, 58*8-1, 0, 32*8-1) |
658 | MCFG_SCREEN_UPDATE_ | |
658 | MCFG_SCREEN_UPDATE_DR | |
659 | 659 | |
660 | 660 | MCFG_GFXDECODE(ltcasino) |
661 | 661 | MCFG_PALETTE_LENGTH(0x100) |
r17967 | r17968 | |
---|---|---|
64 | 64 | DECLARE_DRIVER_INIT(showhanc); |
65 | 65 | DECLARE_DRIVER_INIT(showhand); |
66 | 66 | DECLARE_VIDEO_START(astrocorp); |
67 | UINT32 screen_update_astrocorp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
67 | 68 | }; |
68 | 69 | |
69 | 70 | /*************************************************************************** |
r17967 | r17968 | |
150 | 151 | } |
151 | 152 | } |
152 | 153 | |
153 | stat | |
154 | UINT32 astrocorp_state::screen | |
154 | 155 | { |
155 | astrocorp_state *state = screen.machine().driver_data<astrocorp_state>(); | |
156 | 156 | |
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); | |
159 | 159 | else |
160 | 160 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
161 | 161 | |
r17967 | r17968 | |
487 | 487 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
488 | 488 | MCFG_SCREEN_SIZE(320, 240) |
489 | 489 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) |
490 | MCFG_SCREEN_UPDATE_ | |
490 | MCFG_SCREEN_UPDATE_DR | |
491 | 491 | |
492 | 492 | MCFG_GFXDECODE(astrocorp) |
493 | 493 | MCFG_PALETTE_LENGTH(0x100) |
r17967 | r17968 | |
538 | 538 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
539 | 539 | MCFG_SCREEN_SIZE(0x200, 0x100) |
540 | 540 | MCFG_SCREEN_VISIBLE_AREA(0, 0x200-1, 0, 0xf0-1) |
541 | MCFG_SCREEN_UPDATE_ | |
541 | MCFG_SCREEN_UPDATE_DR | |
542 | 542 | |
543 | 543 | MCFG_GFXDECODE(astrocorp) |
544 | 544 | MCFG_PALETTE_LENGTH(0x100) |
r17967 | r17968 | |
---|---|---|
319 | 319 | DECLARE_DRIVER_INIT(coolridr); |
320 | 320 | virtual void machine_reset(); |
321 | 321 | virtual void video_start(); |
322 | UINT32 screen_update_coolridr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
322 | 323 | }; |
323 | 324 | |
324 | 325 | |
r17967 | r17968 | |
331 | 332 | m_test_offs = 0x2000; |
332 | 333 | } |
333 | 334 | |
334 | stat | |
335 | UINT32 coolridr_state::screen | |
335 | 336 | { |
336 | coolridr_state *state = screen.machine().driver_data<coolridr_state>(); | |
337 | 337 | /* planes seems to basically be at 0x8000 and 0x28000... */ |
338 | 338 | gfx_element *gfx = screen.machine().gfx[2]; |
339 | 339 | UINT32 count; |
r17967 | r17968 | |
341 | 341 | |
342 | 342 | |
343 | 343 | if(screen.machine().input().code_pressed(KEYCODE_Z)) |
344 | | |
344 | | |
345 | 345 | |
346 | 346 | if(screen.machine().input().code_pressed(KEYCODE_X)) |
347 | | |
347 | | |
348 | 348 | |
349 | 349 | if(screen.machine().input().code_pressed(KEYCODE_C)) |
350 | | |
350 | | |
351 | 351 | |
352 | 352 | if(screen.machine().input().code_pressed(KEYCODE_V)) |
353 | | |
353 | | |
354 | 354 | |
355 | 355 | if(screen.machine().input().code_pressed(KEYCODE_B)) |
356 | | |
356 | | |
357 | 357 | |
358 | 358 | if(screen.machine().input().code_pressed(KEYCODE_N)) |
359 | | |
359 | | |
360 | 360 | |
361 | 361 | if(screen.machine().input().code_pressed_once(KEYCODE_A)) |
362 | | |
362 | | |
363 | 363 | |
364 | 364 | if(screen.machine().input().code_pressed_once(KEYCODE_S)) |
365 | | |
365 | | |
366 | 366 | |
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; | |
369 | 369 | |
370 | count = | |
370 | count = | |
371 | 371 | |
372 | popmessage("%08x %04x", | |
372 | popmessage("%08x %04x", | |
373 | 373 | |
374 | 374 | for (y=0;y<64;y++) |
375 | 375 | { |
r17967 | r17968 | |
377 | 377 | { |
378 | 378 | int tile; |
379 | 379 | |
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); | |
382 | 382 | |
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); | |
385 | 385 | |
386 | 386 | count++; |
387 | 387 | } |
388 | 388 | } |
389 | 389 | |
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); | |
392 | 392 | |
393 | 393 | |
394 | 394 | return 0; |
r17967 | r17968 | |
1181 | 1181 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) |
1182 | 1182 | MCFG_SCREEN_SIZE(128*8+22, 64*8+44) |
1183 | 1183 | 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_ | |
1184 | MCFG_SCREEN_UPDATE_DR | |
1185 | 1185 | |
1186 | 1186 | MCFG_PALETTE_LENGTH(0x10000) |
1187 | 1187 |
r17967 | r17968 | |
---|---|---|
313 | 313 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
314 | 314 | virtual void video_start(); |
315 | 315 | virtual void palette_init(); |
316 | UINT32 screen_update_megadpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
316 | 317 | }; |
317 | 318 | |
318 | 319 | |
r17967 | r17968 | |
359 | 360 | 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); |
360 | 361 | } |
361 | 362 | |
362 | stat | |
363 | UINT32 blitz_state::screen | |
363 | 364 | { |
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); | |
366 | 366 | return 0; |
367 | 367 | } |
368 | 368 | |
r17967 | r17968 | |
810 | 810 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
811 | 811 | MCFG_SCREEN_SIZE((32)*8, (32)*8) |
812 | 812 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) |
813 | MCFG_SCREEN_UPDATE_ | |
813 | MCFG_SCREEN_UPDATE_DR | |
814 | 814 | |
815 | 815 | MCFG_MC6845_ADD("crtc", MC6845, CPU_CLOCK, mc6845_intf) |
816 | 816 |
r17967 | r17968 | |
---|---|---|
720 | 720 | DECLARE_DRIVER_INIT(cobra); |
721 | 721 | virtual void machine_reset(); |
722 | 722 | virtual void video_start(); |
723 | UINT32 screen_update_cobra(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
723 | 724 | }; |
724 | 725 | |
725 | 726 | void cobra_renderer::render_color_scan(INT32 scanline, const extent_t &extent, const cobra_polydata &extradata, int threadid) |
r17967 | r17968 | |
994 | 995 | m_renderer->gfx_init(machine()); |
995 | 996 | } |
996 | 997 | |
997 | ||
998 | ||
998 | 999 | { |
999 | cobra_state *cobra = screen.machine().driver_data<cobra_state>(); | |
1000 | 1000 | |
1001 | if ( | |
1001 | if ( | |
1002 | 1002 | { |
1003 | 1003 | device_t *k001604 = screen.machine().device("k001604"); |
1004 | 1004 | |
r17967 | r17968 | |
1006 | 1006 | k001604_draw_front_layer(k001604, bitmap, cliprect); |
1007 | 1007 | } |
1008 | 1008 | |
1009 | | |
1009 | | |
1010 | 1010 | return 0; |
1011 | 1011 | } |
1012 | 1012 | |
r17967 | r17968 | |
3260 | 3260 | MCFG_SCREEN_SIZE(512, 400) |
3261 | 3261 | MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 399) |
3262 | 3262 | MCFG_PALETTE_LENGTH(65536) |
3263 | MCFG_SCREEN_UPDATE_ | |
3263 | MCFG_SCREEN_UPDATE_DR | |
3264 | 3264 | |
3265 | 3265 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
3266 | 3266 |
r17967 | r17968 | |
---|---|---|
232 | 232 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
233 | 233 | MCFG_SCREEN_SIZE(32*8, 32*8) |
234 | 234 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) /* not sure about the visible area */ |
235 | MCFG_SCREEN_UPDATE_ | |
235 | MCFG_SCREEN_UPDATE_DR | |
236 | 236 | |
237 | 237 | /* sound hardware */ |
238 | 238 | MCFG_FRAGMENT_ADD(timeplt_sound) |
r17967 | r17968 | |
---|---|---|
151 | 151 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
152 | 152 | MCFG_SCREEN_SIZE(32*8, 32*8) |
153 | 153 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) |
154 | MCFG_SCREEN_UPDATE_ | |
154 | MCFG_SCREEN_UPDATE_DR | |
155 | 155 | |
156 | 156 | MCFG_GFXDECODE(nitedrvr) |
157 | 157 | MCFG_PALETTE_LENGTH(2) |
r17967 | r17968 | |
---|---|---|
184 | 184 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
185 | 185 | MCFG_SCREEN_SIZE(64*16, 32*16) /* 1024x512 */ |
186 | 186 | MCFG_SCREEN_VISIBLE_AREA(0, 24*16-1, 16, 16*16-1) /* 400x240 */ |
187 | MCFG_SCREEN_UPDATE_ | |
187 | MCFG_SCREEN_UPDATE_DR | |
188 | 188 | |
189 | 189 | MCFG_GFXDECODE(0x080000) |
190 | 190 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
26 | 26 | // DECLARE_READ8_MEMBER(unk_r); |
27 | 27 | DECLARE_DRIVER_INIT(intrscti); |
28 | 28 | virtual void video_start(); |
29 | UINT32 screen_update_intrscti(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
29 | 30 | }; |
30 | 31 | |
31 | 32 | void intrscti_state::video_start() |
32 | 33 | { |
33 | 34 | } |
34 | 35 | |
35 | static | |
36 | UINT32 intrscti_state::screen_update_intrscti(screen_device &screen, bitmap_ind | |
36 | 37 | { |
37 | intrscti_state *state = screen.machine().driver_data<intrscti_state>(); | |
38 | 38 | int y,x; |
39 | 39 | int count; |
40 | 40 | |
r17967 | r17968 | |
46 | 46 | for (x=0;x<32;x++) |
47 | 47 | { |
48 | 48 | int dat; |
49 | dat = | |
49 | dat = | |
50 | 50 | drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[0],dat/*+0x100*/,0,0,0,x*8,y*8,0); |
51 | 51 | count++; |
52 | 52 | } |
r17967 | r17968 | |
58 | 58 | for (x=0;x<32;x++) |
59 | 59 | { |
60 | 60 | int dat; |
61 | dat = | |
61 | dat = | |
62 | 62 | drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[0],dat+0x100,0,0,0,x*8,y*8,0); |
63 | 63 | count++; |
64 | 64 | } |
r17967 | r17968 | |
171 | 171 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
172 | 172 | MCFG_SCREEN_SIZE(256, 256) |
173 | 173 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1) |
174 | MCFG_SCREEN_UPDATE_ | |
174 | MCFG_SCREEN_UPDATE_DR | |
175 | 175 | |
176 | 176 | MCFG_GFXDECODE(intrscti) |
177 | 177 | MCFG_PALETTE_LENGTH(0x100) |
r17967 | r17968 | |
---|---|---|
690 | 690 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
691 | 691 | MCFG_SCREEN_SIZE(40*8, 32*8) |
692 | 692 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) |
693 | MCFG_SCREEN_UPDATE_ | |
693 | MCFG_SCREEN_UPDATE_DR | |
694 | 694 | |
695 | 695 | MCFG_GFXDECODE(rbisland) |
696 | 696 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
730 | 730 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
731 | 731 | MCFG_SCREEN_SIZE(40*8, 32*8) |
732 | 732 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) |
733 | MCFG_SCREEN_UPDATE_ | |
733 | MCFG_SCREEN_UPDATE_DR | |
734 | 734 | |
735 | 735 | MCFG_GFXDECODE(jumping) |
736 | 736 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
---|---|---|
242 | 242 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
243 | 243 | MCFG_SCREEN_SIZE(512, 256) |
244 | 244 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 240-1) |
245 | MCFG_SCREEN_UPDATE_ | |
245 | MCFG_SCREEN_UPDATE_DR | |
246 | 246 | |
247 | 247 | MCFG_GFXDECODE(galspnbl) |
248 | 248 | MCFG_PALETTE_LENGTH(1024 + 32768) |
r17967 | r17968 | |
---|---|---|
305 | 305 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
306 | 306 | MCFG_SCREEN_SIZE(256, 256-16) |
307 | 307 | MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 255-16) |
308 | MCFG_SCREEN_UPDATE_ | |
308 | MCFG_SCREEN_UPDATE_DR | |
309 | 309 | |
310 | 310 | MCFG_GFXDECODE(tunhunt) |
311 | 311 | MCFG_PALETTE_LENGTH(0x1a) |
r17967 | r17968 | |
---|---|---|
200 | 200 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
201 | 201 | MCFG_SCREEN_SIZE(256, 256) |
202 | 202 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
203 | MCFG_SCREEN_UPDATE_ | |
203 | MCFG_SCREEN_UPDATE_DR | |
204 | 204 | |
205 | 205 | MCFG_GFXDECODE(tryout) |
206 | 206 | MCFG_PALETTE_LENGTH(0x20) |
r17967 | r17968 | |
---|---|---|
420 | 420 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
421 | 421 | MCFG_SCREEN_SIZE(64*8, 32*8) |
422 | 422 | MCFG_SCREEN_VISIBLE_AREA(88, 88+384-1, 24, 24+224-1) |
423 | MCFG_SCREEN_UPDATE_ | |
423 | MCFG_SCREEN_UPDATE_DR | |
424 | 424 | |
425 | 425 | MCFG_PALETTE_LENGTH(1024) |
426 | 426 |
r17967 | r17968 | |
---|---|---|
453 | 453 | TILE_GET_INFO_MEMBER(get_sfbonus_reel4_tile_info); |
454 | 454 | virtual void machine_reset(); |
455 | 455 | virtual void video_start(); |
456 | UINT32 screen_update_sfbonus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
456 | 457 | }; |
457 | 458 | |
458 | 459 | |
r17967 | r17968 | |
1059 | 1060 | |
1060 | 1061 | } |
1061 | 1062 | |
1062 | stat | |
1063 | UINT32 sfbonus_state::screen | |
1063 | 1064 | { |
1064 | sfbonus_state *state = screen.machine().driver_data<sfbonus_state>(); | |
1065 | 1065 | |
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]; | |
1069 | 1069 | ioport_constructor ipt; |
1070 | 1070 | int i; |
1071 | 1071 | |
r17967 | r17968 | |
1074 | 1074 | globalxscroll += 8; |
1075 | 1075 | |
1076 | 1076 | bitmap.fill(screen.machine().pens[0], cliprect); |
1077 | | |
1077 | | |
1078 | 1078 | |
1079 | 1079 | /* render reels to bitmap */ |
1080 | sfbonus_draw_reel_layer(screen,* | |
1080 | sfbonus_draw_reel_layer(screen,* | |
1081 | 1081 | |
1082 | 1082 | { |
1083 | 1083 | int y,x; |
r17967 | r17968 | |
1086 | 1086 | { |
1087 | 1087 | for (x=0;x<512;x++) |
1088 | 1088 | { |
1089 | UINT16* src = & | |
1089 | UINT16* src = & | |
1090 | 1090 | UINT16* dst = &bitmap.pix16(y, x); |
1091 | 1091 | |
1092 | 1092 | if ((src[0]&0x100)==0x000) |
r17967 | r17968 | |
1096 | 1096 | } |
1097 | 1097 | |
1098 | 1098 | /* Normal Tilemap */ |
1099 | | |
1099 | | |
1100 | 1100 | for (i=0;i<64;i++) |
1101 | 1101 | { |
1102 | 1102 | int scroll; |
1103 | 1103 | scroll = front_rowscroll[(i*2)+0x000] | (front_rowscroll[(i*2)+0x001]<<8); |
1104 | | |
1104 | | |
1105 | 1105 | } |
1106 | | |
1106 | | |
1107 | 1107 | |
1108 | 1108 | { |
1109 | 1109 | int y,x; |
r17967 | r17968 | |
1112 | 1112 | { |
1113 | 1113 | for (x=0;x<512;x++) |
1114 | 1114 | { |
1115 | UINT16* src = & | |
1115 | UINT16* src = & | |
1116 | 1116 | UINT16* dst = &bitmap.pix16(y, x); |
1117 | 1117 | |
1118 | 1118 | if ((src[0]&0x100)==0x100) |
r17967 | r17968 | |
1122 | 1122 | } |
1123 | 1123 | #if 0 |
1124 | 1124 | 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] | |
1160 | 1160 | ); |
1161 | 1161 | |
1162 | 1162 | 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]); | |
1171 | 1171 | #endif |
1172 | 1172 | |
1173 | 1173 | ipt = screen.machine().system().ipt; |
r17967 | r17968 | |
1175 | 1175 | || (ipt == INPUT_PORTS_NAME(amcoe2_poker))) |
1176 | 1176 | { |
1177 | 1177 | // 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); | |
1184 | 1184 | } |
1185 | 1185 | else if ((ipt == INPUT_PORTS_NAME(amcoe1_reels3)) || (ipt == INPUT_PORTS_NAME(amcoe1_reels4)) |
1186 | 1186 | || (ipt == INPUT_PORTS_NAME(amcoe1_poker))) |
1187 | 1187 | { |
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); | |
1194 | 1194 | } |
1195 | 1195 | |
1196 | 1196 | return 0; |
r17967 | r17968 | |
1372 | 1372 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1373 | 1373 | MCFG_SCREEN_SIZE(128*8, 64*8) |
1374 | 1374 | MCFG_SCREEN_VISIBLE_AREA(0*8, 512-1, 0*8, 288-1) |
1375 | MCFG_SCREEN_UPDATE_ | |
1375 | MCFG_SCREEN_UPDATE_DR | |
1376 | 1376 | |
1377 | 1377 | MCFG_PALETTE_LENGTH(0x100*2) // *2 for priority workaraound / custom drawing |
1378 | 1378 |
r17967 | r17968 | |
---|---|---|
190 | 190 | DECLARE_DRIVER_INIT(evosocc); |
191 | 191 | virtual void machine_start(); |
192 | 192 | 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); | |
193 | 195 | }; |
194 | 196 | |
195 | 197 | static void IntReq( running_machine &machine, int num ) |
r17967 | r17968 | |
647 | 649 | } |
648 | 650 | |
649 | 651 | |
650 | static | |
652 | UINT32 crystal_state::screen_update_crystal(screen_device &screen, bitmap_ind | |
651 | 653 | { |
652 | crystal_state *state = screen.machine().driver_data<crystal_state>(); | |
653 | 654 | address_space &space = *screen.machine().device("maincpu")->memory().space(AS_PROGRAM); |
654 | 655 | int DoFlip; |
655 | 656 | |
r17967 | r17968 | |
664 | 665 | |
665 | 666 | if (GetVidReg(space, 0x8e) & 1) |
666 | 667 | { |
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); | |
669 | 670 | } |
670 | 671 | else |
671 | 672 | { |
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); | |
674 | 675 | } |
675 | 676 | |
676 | 677 | Visible = (UINT16*) Front; |
677 | 678 | // ERROR: This cast is NOT endian-safe without the use of BYTE/WORD/DWORD_XOR_* macros! |
678 | DrawDest = reinterpret_cast<UINT16 *>( | |
679 | DrawDest = reinterpret_cast<UINT16 *>( | |
679 | 680 | |
680 | 681 | |
681 | 682 | if (GetVidReg(space, 0x8c) & 0x80) |
r17967 | r17968 | |
693 | 694 | while ((head & 0x7ff) != (tail & 0x7ff)) |
694 | 695 | { |
695 | 696 | // ERROR: This cast is NOT endian-safe without the use of BYTE/WORD/DWORD_XOR_* macros! |
696 | DoFlip = vrender0_ProcessPacket( | |
697 | DoFlip = vrender0_ProcessPacket( | |
697 | 698 | head++; |
698 | 699 | head &= 0x7ff; |
699 | 700 | if (DoFlip) |
r17967 | r17968 | |
710 | 711 | return 0; |
711 | 712 | } |
712 | 713 | |
713 | stat | |
714 | void crystal_state::screen | |
714 | 715 | { |
715 | 716 | // rising edge |
716 | if ( | |
717 | if (st | |
717 | 718 | { |
718 | crystal_state *state = screen.machine().driver_data<crystal_state>(); | |
719 | 719 | address_space &space = *screen.machine().device("maincpu")->memory().space(AS_PROGRAM); |
720 | 720 | UINT16 head, tail; |
721 | 721 | int DoFlip = 0; |
r17967 | r17968 | |
735 | 735 | SetVidReg(space, 0x82, head); |
736 | 736 | if (DoFlip) |
737 | 737 | { |
738 | if (state->m_FlipCount) | |
739 | state->m_FlipCount--; | |
738 | if (m_FlipCount) | |
739 | m_FlipCount--; | |
740 | 740 | |
741 | 741 | } |
742 | 742 | } |
r17967 | r17968 | |
851 | 851 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
852 | 852 | MCFG_SCREEN_SIZE(320, 240) |
853 | 853 | 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) | |
856 | 856 | |
857 | 857 | MCFG_VIDEO_VRENDER0_ADD("vr0", vr0video_config) |
858 | 858 |
r17967 | r17968 | |
---|---|---|
426 | 426 | /* note: these parameters are from published specs, not derived */ |
427 | 427 | /* the board uses a SYNGEN chip to generate video signals */ |
428 | 428 | MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240) |
429 | MCFG_SCREEN_UPDATE_ | |
429 | MCFG_SCREEN_UPDATE_DR | |
430 | 430 | |
431 | 431 | MCFG_VIDEO_START_OVERRIDE(eprom_state,eprom) |
432 | 432 | |
r17967 | r17968 | |
457 | 457 | /* note: these parameters are from published specs, not derived */ |
458 | 458 | /* the board uses a SYNGEN chip to generate video signals */ |
459 | 459 | MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240) |
460 | MCFG_SCREEN_UPDATE_ | |
460 | MCFG_SCREEN_UPDATE_DR | |
461 | 461 | |
462 | 462 | MCFG_VIDEO_START_OVERRIDE(eprom_state,eprom) |
463 | 463 | |
r17967 | r17968 | |
488 | 488 | /* note: these parameters are from published specs, not derived */ |
489 | 489 | /* the board uses a SYNGEN chip to generate video signals */ |
490 | 490 | MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240) |
491 | MCFG_SCREEN_UPDATE_ | |
491 | MCFG_SCREEN_UPDATE_DR | |
492 | 492 | |
493 | 493 | MCFG_VIDEO_START_OVERRIDE(eprom_state,guts) |
494 | 494 |
r17967 | r17968 | |
---|---|---|
264 | 264 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */ /* frames per second, vblank duration taken from Burger Time */) |
265 | 265 | MCFG_SCREEN_SIZE(32*8, 32*8) |
266 | 266 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
267 | MCFG_SCREEN_UPDATE_ | |
267 | MCFG_SCREEN_UPDATE_DR | |
268 | 268 | |
269 | 269 | MCFG_GFXDECODE(madmotor) |
270 | 270 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
75 | 75 | virtual void machine_reset(); |
76 | 76 | virtual void video_start(); |
77 | 77 | virtual void palette_init(); |
78 | UINT32 screen_update_chinsan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
78 | 79 | }; |
79 | 80 | |
80 | 81 | |
r17967 | r17968 | |
97 | 98 | { |
98 | 99 | } |
99 | 100 | |
100 | static | |
101 | UINT32 chinsan_state::screen_update_chinsan(screen_device &screen, bitmap_ind | |
101 | 102 | { |
102 | chinsan_state *state = screen.machine().driver_data<chinsan_state>(); | |
103 | 103 | int y, x, count; |
104 | 104 | count = 0; |
105 | 105 | for (y = 0; y < 32; y++) |
r17967 | r17968 | |
107 | 107 | for (x = 0; x < 64; x++) |
108 | 108 | { |
109 | 109 | 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; | |
112 | 112 | drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0],tileno,colour,0,0,x*8,y*8); |
113 | 113 | count++; |
114 | 114 | } |
r17967 | r17968 | |
614 | 614 | MCFG_SCREEN_REFRESH_RATE(60) |
615 | 615 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
616 | 616 | MCFG_SCREEN_VISIBLE_AREA(24, 512-24-1, 16, 256-16-1) |
617 | MCFG_SCREEN_UPDATE_ | |
617 | MCFG_SCREEN_UPDATE_DR | |
618 | 618 | |
619 | 619 | MCFG_GFXDECODE(chinsan) |
620 | 620 | MCFG_PALETTE_LENGTH(0x100) |
r17967 | r17968 | |
---|---|---|
109 | 109 | virtual void machine_reset(); |
110 | 110 | virtual void video_start(); |
111 | 111 | virtual void palette_init(); |
112 | UINT32 screen_update_famibox(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
112 | 113 | }; |
113 | 114 | |
114 | 115 | /****************************************************** |
r17967 | r17968 | |
538 | 539 | { |
539 | 540 | } |
540 | 541 | |
541 | stat | |
542 | UINT32 famibox_state::screen | |
542 | 543 | { |
543 | 544 | /* render the ppu */ |
544 | 545 | ppu2c0x_device *ppu = screen.machine().device<ppu2c0x_device>("ppu"); |
r17967 | r17968 | |
589 | 590 | MCFG_SCREEN_REFRESH_RATE(60) |
590 | 591 | MCFG_SCREEN_SIZE(32*8, 262) |
591 | 592 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1) |
592 | MCFG_SCREEN_UPDATE_ | |
593 | MCFG_SCREEN_UPDATE_DR | |
593 | 594 | |
594 | 595 | MCFG_GFXDECODE(famibox) |
595 | 596 | MCFG_PALETTE_LENGTH(8*4*16) |
r17967 | r17968 | |
---|---|---|
119 | 119 | virtual void video_start(); |
120 | 120 | DECLARE_MACHINE_RESET(cshooter); |
121 | 121 | DECLARE_MACHINE_RESET(airraid); |
122 | UINT32 screen_update_cshooter(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
122 | 123 | }; |
123 | 124 | |
124 | 125 | |
r17967 | r17968 | |
150 | 151 | m_txtilemap->set_transparent_pen(3); |
151 | 152 | } |
152 | 153 | |
153 | stat | |
154 | UINT32 cshooter_state::screen | |
154 | 155 | { |
155 | cshooter_state *state = screen.machine().driver_data<cshooter_state>(); | |
156 | 156 | bitmap.fill(0/*get_black_pen(screen.screen.machine(, cliprect))*/); |
157 | | |
157 | | |
158 | 158 | |
159 | 159 | //sprites |
160 | 160 | { |
161 | UINT8 *spriteram = | |
161 | UINT8 *spriteram = | |
162 | 162 | int i; |
163 | for(i=0;i< | |
163 | for(i=0;i< | |
164 | 164 | { |
165 | 165 | if(spriteram[i+3]!=0) |
166 | 166 | { |
r17967 | r17968 | |
193 | 193 | } |
194 | 194 | } |
195 | 195 | |
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); | |
198 | 198 | return 0; |
199 | 199 | } |
200 | 200 | |
r17967 | r17968 | |
452 | 452 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
453 | 453 | MCFG_SCREEN_SIZE(256, 256) |
454 | 454 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-1-16) |
455 | MCFG_SCREEN_UPDATE_ | |
455 | MCFG_SCREEN_UPDATE_DR | |
456 | 456 | |
457 | 457 | MCFG_GFXDECODE(cshooter) |
458 | 458 | MCFG_PALETTE_LENGTH(0x1000) |
r17967 | r17968 | |
478 | 478 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
479 | 479 | MCFG_SCREEN_SIZE(256, 256) |
480 | 480 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-1-16) |
481 | MCFG_SCREEN_UPDATE_ | |
481 | MCFG_SCREEN_UPDATE_DR | |
482 | 482 | |
483 | 483 | MCFG_GFXDECODE(cshooter) |
484 | 484 | MCFG_PALETTE_LENGTH(0x1000) |
r17967 | r17968 | |
---|---|---|
208 | 208 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
209 | 209 | MCFG_SCREEN_SIZE(32*8, 32*8) |
210 | 210 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
211 | MCFG_SCREEN_UPDATE_ | |
211 | MCFG_SCREEN_UPDATE_DR | |
212 | 212 | |
213 | 213 | MCFG_GFXDECODE(rocnrope) |
214 | 214 | MCFG_PALETTE_LENGTH(16*16+16*16) |
r17967 | r17968 | |
---|---|---|
1343 | 1343 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1344 | 1344 | MCFG_SCREEN_SIZE(64*8, 32*8) |
1345 | 1345 | MCFG_SCREEN_VISIBLE_AREA(0*8+4, 44*8+4-1, 0*8, 30*8-1) |
1346 | MCFG_SCREEN_UPDATE_ | |
1346 | MCFG_SCREEN_UPDATE_DR | |
1347 | 1347 | |
1348 | 1348 | MCFG_GFXDECODE(pspikes) |
1349 | 1349 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
1379 | 1379 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1380 | 1380 | MCFG_SCREEN_SIZE(64*8, 32*8) |
1381 | 1381 | MCFG_SCREEN_VISIBLE_AREA(0*8, 320-1, 0*8+4, 224+4-1) |
1382 | MCFG_SCREEN_UPDATE_ | |
1382 | MCFG_SCREEN_UPDATE_DR | |
1383 | 1383 | |
1384 | 1384 | MCFG_GFXDECODE(spikes91) |
1385 | 1385 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
1411 | 1411 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1412 | 1412 | MCFG_SCREEN_SIZE(64*8, 32*8) |
1413 | 1413 | MCFG_SCREEN_VISIBLE_AREA(0*8+4, 44*8+4-1, 0*8, 30*8-1) |
1414 | MCFG_SCREEN_UPDATE_ | |
1414 | MCFG_SCREEN_UPDATE_DR | |
1415 | 1415 | |
1416 | 1416 | MCFG_GFXDECODE(pspikesb) |
1417 | 1417 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
1441 | 1441 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1442 | 1442 | MCFG_SCREEN_SIZE(64*8, 32*8) |
1443 | 1443 | MCFG_SCREEN_VISIBLE_AREA(0*8+4, 44*8+4-1, 0*8, 30*8-1) |
1444 | MCFG_SCREEN_UPDATE_ | |
1444 | MCFG_SCREEN_UPDATE_DR | |
1445 | 1445 | |
1446 | 1446 | MCFG_GFXDECODE(pspikes) |
1447 | 1447 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
1476 | 1476 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1477 | 1477 | MCFG_SCREEN_SIZE(64*8, 32*8) |
1478 | 1478 | MCFG_SCREEN_VISIBLE_AREA(1*8, 45*8-1, 0*8, 30*8-1) |
1479 | MCFG_SCREEN_UPDATE_ | |
1479 | MCFG_SCREEN_UPDATE_DR | |
1480 | 1480 | |
1481 | 1481 | MCFG_GFXDECODE(turbofrc) |
1482 | 1482 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
1515 | 1515 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1516 | 1516 | MCFG_SCREEN_SIZE(64*8, 32*8) |
1517 | 1517 | MCFG_SCREEN_VISIBLE_AREA(1*8, 45*8-1, 0*8, 30*8-1) |
1518 | MCFG_SCREEN_UPDATE_ | |
1518 | MCFG_SCREEN_UPDATE_DR | |
1519 | 1519 | |
1520 | 1520 | MCFG_GFXDECODE(turbofrc) |
1521 | 1521 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
1554 | 1554 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1555 | 1555 | MCFG_SCREEN_SIZE(64*8, 32*8) |
1556 | 1556 | MCFG_SCREEN_VISIBLE_AREA(0*8, 44*8-1, 0*8, 30*8-1) |
1557 | MCFG_SCREEN_UPDATE_ | |
1557 | MCFG_SCREEN_UPDATE_DR | |
1558 | 1558 | |
1559 | 1559 | MCFG_GFXDECODE(turbofrc) |
1560 | 1560 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
1594 | 1594 | /* wrong but improves sprite-background synchronization */ |
1595 | 1595 | MCFG_SCREEN_SIZE(64*8, 32*8) |
1596 | 1596 | MCFG_SCREEN_VISIBLE_AREA(0*8+12, 40*8-1+12, 0*8, 28*8-1) |
1597 | MCFG_SCREEN_UPDATE_ | |
1597 | MCFG_SCREEN_UPDATE_DR | |
1598 | 1598 | |
1599 | 1599 | MCFG_GFXDECODE(aerofgtb) |
1600 | 1600 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
1634 | 1634 | /* wrong but improves sprite-background synchronization */ |
1635 | 1635 | MCFG_SCREEN_SIZE(64*8, 32*8) |
1636 | 1636 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) |
1637 | MCFG_SCREEN_UPDATE_ | |
1637 | MCFG_SCREEN_UPDATE_DR | |
1638 | 1638 | |
1639 | 1639 | MCFG_GFXDECODE(aerofgt) |
1640 | 1640 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
1672 | 1672 | /* wrong but improves sprite-background synchronization */ |
1673 | 1673 | MCFG_SCREEN_SIZE(64*8, 32*8) |
1674 | 1674 | MCFG_SCREEN_VISIBLE_AREA(0*8+12, 40*8-1+12, 0*8, 28*8-1) |
1675 | MCFG_SCREEN_UPDATE_ | |
1675 | MCFG_SCREEN_UPDATE_DR | |
1676 | 1676 | |
1677 | 1677 | MCFG_GFXDECODE(aerfboot) |
1678 | 1678 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
1703 | 1703 | /* wrong but improves sprite-background synchronization */ |
1704 | 1704 | MCFG_SCREEN_SIZE(64*8, 32*8) |
1705 | 1705 | MCFG_SCREEN_VISIBLE_AREA(0*8+12, 40*8-1+12, 0*8, 28*8-1) |
1706 | MCFG_SCREEN_UPDATE_ | |
1706 | MCFG_SCREEN_UPDATE_DR | |
1707 | 1707 | |
1708 | 1708 | MCFG_GFXDECODE(aerfboo2) |
1709 | 1709 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
1736 | 1736 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1737 | 1737 | MCFG_SCREEN_SIZE(64*8, 64*8) |
1738 | 1738 | MCFG_SCREEN_VISIBLE_AREA(0*8+14, 44*8-1+4, 0*8, 30*8-1) |
1739 | MCFG_SCREEN_UPDATE_ | |
1739 | MCFG_SCREEN_UPDATE_DR | |
1740 | 1740 | |
1741 | 1741 | MCFG_GFXDECODE(wbbc97) |
1742 | 1742 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
---|---|---|
76 | 76 | DECLARE_READ8_MEMBER(get_slave_ack); |
77 | 77 | virtual void machine_start(); |
78 | 78 | virtual void video_start(); |
79 | UINT32 screen_update_quake(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
79 | 80 | }; |
80 | 81 | |
81 | 82 | |
r17967 | r17968 | |
83 | 84 | { |
84 | 85 | } |
85 | 86 | |
86 | stat | |
87 | UINT32 quakeat_state::screen | |
87 | 88 | { |
88 | 89 | return 0; |
89 | 90 | } |
r17967 | r17968 | |
182 | 183 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
183 | 184 | MCFG_SCREEN_SIZE(64*8, 32*8) |
184 | 185 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1) |
185 | MCFG_SCREEN_UPDATE_ | |
186 | MCFG_SCREEN_UPDATE_DR | |
186 | 187 | |
187 | 188 | MCFG_PALETTE_LENGTH(0x100) |
188 | 189 |
r17967 | r17968 | |
---|---|---|
35 | 35 | DECLARE_WRITE16_MEMBER(K056800_68k_w); |
36 | 36 | DECLARE_CUSTOM_INPUT_MEMBER(analog_ctrl_r); |
37 | 37 | virtual void machine_start(); |
38 | UINT32 screen_update_ultrsprt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
38 | 39 | }; |
39 | 40 | |
40 | 41 | |
41 | 42 | |
42 | 43 | |
43 | stat | |
44 | UINT32 ultrsprt_state::screen | |
44 | 45 | { |
45 | ultrsprt_state *state = screen.machine().driver_data<ultrsprt_state>(); | |
46 | 46 | int i, j; |
47 | 47 | |
48 | UINT8 *ram = reinterpret_cast<UINT8 *>( | |
48 | UINT8 *ram = reinterpret_cast<UINT8 *>( | |
49 | 49 | |
50 | 50 | for (j=0; j < 400; j++) |
51 | 51 | { |
r17967 | r17968 | |
243 | 243 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
244 | 244 | MCFG_SCREEN_SIZE(512, 400) |
245 | 245 | MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 399) |
246 | MCFG_SCREEN_UPDATE_ | |
246 | MCFG_SCREEN_UPDATE_DR | |
247 | 247 | |
248 | 248 | MCFG_PALETTE_LENGTH(8192) |
249 | 249 |
r17967 | r17968 | |
---|---|---|
65 | 65 | } |
66 | 66 | |
67 | 67 | |
68 | static | |
68 | UINT32 hitme_state::screen_update_hitme(screen_device &screen, bitmap_ind | |
69 | 69 | { |
70 | hitme_state *state = screen.machine().driver_data<hitme_state>(); | |
71 | 70 | /* the card width resistor comes from an input port, scaled to the range 0-25 kOhms */ |
72 | 71 | double width_resist = screen.machine().root_device().ioport("WIDTH")->read() * 25000 / 100; |
73 | 72 | /* this triggers a oneshot for the following length of time */ |
r17967 | r17968 | |
80 | 79 | offs_t offs = 0; |
81 | 80 | |
82 | 81 | /* start by drawing the tilemap */ |
83 | | |
82 | | |
84 | 83 | |
85 | 84 | /* now loop over and invert anything */ |
86 | 85 | for (y = 0; y < 19; y++) |
r17967 | r17968 | |
89 | 88 | for (inv = x = 0; x < 40; x++, offs++) |
90 | 89 | { |
91 | 90 | /* if the high bit is set, reset the oneshot */ |
92 | if ( | |
91 | if ( | |
93 | 92 | inv = width_pixels; |
94 | 93 | |
95 | 94 | /* invert pixels until we run out */ |
r17967 | r17968 | |
113 | 112 | } |
114 | 113 | |
115 | 114 | |
116 | static | |
115 | UINT32 hitme_state::screen_update_barricad(screen_device &screen, bitmap_ind | |
117 | 116 | { |
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); | |
120 | 118 | return 0; |
121 | 119 | } |
122 | 120 | |
r17967 | r17968 | |
326 | 324 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
327 | 325 | MCFG_SCREEN_SIZE(40*8, 19*10) |
328 | 326 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 19*10-1) |
329 | MCFG_SCREEN_UPDATE_ | |
327 | MCFG_SCREEN_UPDATE_DR | |
330 | 328 | |
331 | 329 | MCFG_GFXDECODE(hitme) |
332 | 330 | MCFG_PALETTE_LENGTH(2) |
r17967 | r17968 | |
355 | 353 | MCFG_SCREEN_MODIFY("screen") |
356 | 354 | MCFG_SCREEN_SIZE(32*8, 24*8) |
357 | 355 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 24*8-1) |
358 | MCFG_SCREEN_UPDATE_ | |
356 | MCFG_SCREEN_UPDATE_DR | |
359 | 357 | |
360 | 358 | MCFG_GFXDECODE(barricad) |
361 | 359 |
r17967 | r17968 | |
---|---|---|
589 | 589 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
590 | 590 | MCFG_SCREEN_SIZE(32*8, 32*8) |
591 | 591 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
592 | MCFG_SCREEN_UPDATE_ | |
592 | MCFG_SCREEN_UPDATE_DR | |
593 | 593 | |
594 | 594 | MCFG_GFXDECODE(senjyo) |
595 | 595 | MCFG_PALETTE_LENGTH(512+2) /* 512 real palette + 2 for the radar */ |
r17967 | r17968 | |
---|---|---|
117 | 117 | DECLARE_DRIVER_INIT(spool99); |
118 | 118 | TILE_GET_INFO_MEMBER(get_spool99_tile_info); |
119 | 119 | virtual void video_start(); |
120 | UINT32 screen_update_spool99(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
120 | 121 | }; |
121 | 122 | |
122 | 123 | TILE_GET_INFO_MEMBER(spool99_state::get_spool99_tile_info) |
r17967 | r17968 | |
137 | 138 | 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); |
138 | 139 | } |
139 | 140 | |
140 | stat | |
141 | UINT32 spool99_state::screen | |
141 | 142 | { |
142 | spool99_state *state = screen.machine().driver_data<spool99_state>(); | |
143 | 143 | |
144 | | |
144 | | |
145 | 145 | return 0; |
146 | 146 | } |
147 | 147 | |
r17967 | r17968 | |
361 | 361 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
362 | 362 | MCFG_SCREEN_SIZE(64*8, 32*8) |
363 | 363 | MCFG_SCREEN_VISIBLE_AREA(7*8, 55*8-1, 1*8, 31*8-1) //384x240,raw guess |
364 | MCFG_SCREEN_UPDATE_ | |
364 | MCFG_SCREEN_UPDATE_DR | |
365 | 365 | |
366 | 366 | MCFG_PALETTE_LENGTH(0x200) |
367 | 367 |
r17967 | r17968 | |
---|---|---|
435 | 435 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(800)) |
436 | 436 | MCFG_SCREEN_SIZE(64*8, 32*8) |
437 | 437 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
438 | MCFG_SCREEN_UPDATE_ | |
438 | MCFG_SCREEN_UPDATE_DR | |
439 | 439 | |
440 | 440 | MCFG_PALETTE_LENGTH(4096) |
441 | 441 | MCFG_GFXDECODE(simpl156) |
r17967 | r17968 | |
---|---|---|
86 | 86 | DECLARE_WRITE8_MEMBER(ldp_write); |
87 | 87 | DECLARE_DRIVER_INIT(lgp); |
88 | 88 | virtual void machine_start(); |
89 | UINT32 screen_update_lgp(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
89 | 90 | }; |
90 | 91 | |
91 | 92 | |
r17967 | r17968 | |
95 | 96 | |
96 | 97 | |
97 | 98 | /* VIDEO GOODS */ |
98 | static | |
99 | UINT32 lgp_state::screen_update_lgp(screen_device &screen, bitmap_rgb | |
99 | 100 | { |
100 | lgp_state *state = screen.machine().driver_data<lgp_state>(); | |
101 | 101 | int charx, chary; |
102 | 102 | |
103 | 103 | /* make color 0 transparent */ |
r17967 | r17968 | |
116 | 116 | /* Somewhere there's a flag that offsets the tilemap by 0x100*x */ |
117 | 117 | /* Palette is likely set somewhere as well (tile_control_ram?) */ |
118 | 118 | drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0], |
119 | | |
119 | | |
120 | 120 | 0, |
121 | 121 | 0, 0, charx*8, chary*8, 0); |
122 | 122 | } |
r17967 | r17968 | |
369 | 369 | |
370 | 370 | |
371 | 371 | MCFG_LASERDISC_LDV1000_ADD("laserdisc") |
372 | MCFG_LASERDISC_OVERLAY_ | |
372 | MCFG_LASERDISC_OVERLAY_DR | |
373 | 373 | |
374 | 374 | /* video hardware */ |
375 | 375 | MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc") |
r17967 | r17968 | |
---|---|---|
253 | 253 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
254 | 254 | MCFG_SCREEN_SIZE(32*8, 32*8) |
255 | 255 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
256 | MCFG_SCREEN_UPDATE_ | |
256 | MCFG_SCREEN_UPDATE_DR | |
257 | 257 | |
258 | 258 | MCFG_GFXDECODE(deadang) |
259 | 259 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
---|---|---|
587 | 587 | |
588 | 588 | MCFG_SCREEN_ADD("screen", RASTER) |
589 | 589 | MCFG_SCREEN_RAW_PARAMS(XTAL_28MHz/4, 446, 0, 320, 286, 0, 240) |
590 | MCFG_SCREEN_UPDATE_ | |
590 | MCFG_SCREEN_UPDATE_DR | |
591 | 591 | MCFG_SCREEN_VBLANK_DEVICE("spriteram16", buffered_spriteram16_device, vblank_copy_rising) |
592 | 592 | |
593 | 593 | MCFG_GFXDECODE(twincobr) |
r17967 | r17968 | |
---|---|---|
235 | 235 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
236 | 236 | MCFG_SCREEN_SIZE(64*8, 36*8) |
237 | 237 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1) |
238 | MCFG_SCREEN_UPDATE_ | |
238 | MCFG_SCREEN_UPDATE_DR | |
239 | 239 | |
240 | 240 | MCFG_GFXDECODE(hexion) |
241 | 241 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
260 | 260 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
261 | 261 | MCFG_SCREEN_SIZE(32*8, 32*8) |
262 | 262 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
263 | MCFG_SCREEN_UPDATE_ | |
263 | MCFG_SCREEN_UPDATE_DR | |
264 | 264 | |
265 | 265 | MCFG_GFXDECODE(battlnts) |
266 | 266 | MCFG_PALETTE_LENGTH(128) |
r17967 | r17968 | |
---|---|---|
239 | 239 | virtual void machine_reset(); |
240 | 240 | virtual void video_start(); |
241 | 241 | DECLARE_MACHINE_RESET(island2a); |
242 | UINT32 screen_update_multfish(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
242 | 243 | }; |
243 | 244 | |
244 | 245 | TILE_GET_INFO_MEMBER(multfish_state::get_multfish_tile_info) |
r17967 | r17968 | |
280 | 281 | m_reel_tilemap->set_scroll_cols(64); |
281 | 282 | } |
282 | 283 | |
283 | stat | |
284 | UINT32 multfish_state::screen | |
284 | 285 | { |
285 | multfish_state *state = screen.machine().driver_data<multfish_state>(); | |
286 | 286 | int i; |
287 | 287 | |
288 | 288 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
289 | 289 | |
290 | if (! | |
290 | if (! | |
291 | 291 | |
292 | 292 | /* Draw lower part of static tilemap (low pri tiles) */ |
293 | | |
293 | | |
294 | 294 | |
295 | 295 | /* Setup the column scroll and draw the reels */ |
296 | 296 | for (i=0;i<64;i++) |
297 | 297 | { |
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 ); | |
300 | 300 | } |
301 | | |
301 | | |
302 | 302 | |
303 | 303 | /* Draw upper part of static tilemap (high pri tiles) */ |
304 | | |
304 | | |
305 | 305 | |
306 | 306 | return 0; |
307 | 307 | } |
r17967 | r17968 | |
1108 | 1108 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1109 | 1109 | MCFG_SCREEN_SIZE(64*16, 32*16) |
1110 | 1110 | MCFG_SCREEN_VISIBLE_AREA(17*16, 1024-16*7-1, 1*16, 32*16-1*16-1) |
1111 | MCFG_SCREEN_UPDATE_ | |
1111 | MCFG_SCREEN_UPDATE_DR | |
1112 | 1112 | MCFG_GFXDECODE(multfish) |
1113 | 1113 | MCFG_PALETTE_LENGTH(0x1000) |
1114 | 1114 |
r17967 | r17968 | |
---|---|---|
597 | 597 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
598 | 598 | MCFG_SCREEN_SIZE(320, 256) |
599 | 599 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-1-16) |
600 | MCFG_SCREEN_UPDATE_ | |
600 | MCFG_SCREEN_UPDATE_DR | |
601 | 601 | |
602 | 602 | MCFG_GFXDECODE(galpani2) |
603 | 603 | MCFG_PALETTE_LENGTH(0x4000 + 0x200 + 0x8000) // sprites, bg8, bg15 |
r17967 | r17968 | |
---|---|---|
507 | 507 | MCFG_SCREEN_REFRESH_RATE(60) |
508 | 508 | MCFG_SCREEN_SIZE(512, 262) |
509 | 509 | 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) | |
512 | 512 | |
513 | 513 | MCFG_GFXDECODE(sprint2) |
514 | 514 | MCFG_PALETTE_LENGTH(12) |
r17967 | r17968 | |
---|---|---|
343 | 343 | MCFG_SCREEN_REFRESH_RATE(60) |
344 | 344 | MCFG_SCREEN_SIZE(256, 262) |
345 | 345 | MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239) |
346 | MCFG_SCREEN_UPDATE_ | |
346 | MCFG_SCREEN_UPDATE_DR | |
347 | 347 | |
348 | 348 | MCFG_GFXDECODE(dragrace) |
349 | 349 | MCFG_PALETTE_LENGTH(16) |
r17967 | r17968 | |
---|---|---|
1870 | 1870 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1871 | 1871 | MCFG_SCREEN_SIZE(64*8, 32*8) |
1872 | 1872 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) |
1873 | MCFG_SCREEN_UPDATE_ | |
1873 | MCFG_SCREEN_UPDATE_DR | |
1874 | 1874 | |
1875 | 1875 | MCFG_GFXDECODE(spi) |
1876 | 1876 | MCFG_PALETTE_LENGTH(6144) |
r17967 | r17968 | |
2210 | 2210 | MCFG_PALETTE_LENGTH(6144) |
2211 | 2211 | |
2212 | 2212 | MCFG_VIDEO_START_OVERRIDE(seibuspi_state,spi) |
2213 | MCFG_SCREEN_UPDATE_ | |
2213 | MCFG_SCREEN_UPDATE_DR | |
2214 | 2214 | |
2215 | 2215 | MCFG_SPEAKER_STANDARD_MONO("mono") |
2216 | 2216 | |
r17967 | r17968 | |
2265 | 2265 | MCFG_PALETTE_LENGTH(8192) |
2266 | 2266 | |
2267 | 2267 | MCFG_VIDEO_START_OVERRIDE(seibuspi_state,sys386f2) |
2268 | MCFG_SCREEN_UPDATE_ | |
2268 | MCFG_SCREEN_UPDATE_DR | |
2269 | 2269 | |
2270 | 2270 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
2271 | 2271 |
r17967 | r17968 | |
---|---|---|
407 | 407 | |
408 | 408 | MCFG_VIDEO_START_OVERRIDE(sauro_state,trckydoc) |
409 | 409 | MCFG_SCREEN_MODIFY("screen") |
410 | MCFG_SCREEN_UPDATE_ | |
410 | MCFG_SCREEN_UPDATE_DR | |
411 | 411 | |
412 | 412 | MACHINE_CONFIG_END |
413 | 413 | |
r17967 | r17968 | |
425 | 425 | |
426 | 426 | MCFG_VIDEO_START_OVERRIDE(sauro_state,sauro) |
427 | 427 | MCFG_SCREEN_MODIFY("screen") |
428 | MCFG_SCREEN_UPDATE_ | |
428 | MCFG_SCREEN_UPDATE_DR | |
429 | 429 | |
430 | 430 | MCFG_SOUND_ADD("speech", SP0256, 3120000) |
431 | 431 | MCFG_SOUND_CONFIG(sauro_sp256) |
r17967 | r17968 | |
---|---|---|
42 | 42 | DECLARE_READ8_MEMBER(in_r); |
43 | 43 | DECLARE_READ8_MEMBER(ld_r); |
44 | 44 | virtual void video_start(); |
45 | UINT32 screen_update_timetrv(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
45 | 46 | }; |
46 | 47 | |
47 | 48 | |
r17967 | r17968 | |
51 | 52 | |
52 | 53 | } |
53 | 54 | |
54 | static | |
55 | UINT32 timetrv_state::screen_update_timetrv(screen_device &screen, bitmap_rgb | |
55 | 56 | { |
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())); | |
58 | 58 | return 0; |
59 | 59 | } |
60 | 60 | |
r17967 | r17968 | |
159 | 159 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
160 | 160 | MCFG_SCREEN_SIZE(512, 512) |
161 | 161 | MCFG_SCREEN_VISIBLE_AREA(0*8, 512-1, 0*8, 512-1) |
162 | MCFG_SCREEN_UPDATE_ | |
162 | MCFG_SCREEN_UPDATE_DR | |
163 | 163 | |
164 | 164 | MCFG_PALETTE_LENGTH(512) |
165 | 165 |
r17967 | r17968 | |
---|---|---|
274 | 274 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
275 | 275 | MCFG_SCREEN_SIZE(32*8, 32*8) |
276 | 276 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
277 | MCFG_SCREEN_UPDATE_ | |
277 | MCFG_SCREEN_UPDATE_DR | |
278 | 278 | |
279 | 279 | MCFG_GFXDECODE(drmicro) |
280 | 280 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
---|---|---|
2163 | 2163 | |
2164 | 2164 | MCFG_SCREEN_ADD("screen", RASTER) |
2165 | 2165 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 640, 0, 512, 260, 0, 224) |
2166 | MCFG_SCREEN_UPDATE_ | |
2166 | MCFG_SCREEN_UPDATE_DR | |
2167 | 2167 | |
2168 | 2168 | MCFG_GFXDECODE(system1) |
2169 | 2169 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
2252 | 2252 | /* video hardware */ |
2253 | 2253 | MCFG_VIDEO_START_OVERRIDE(system1_state,system2) |
2254 | 2254 | MCFG_SCREEN_MODIFY("screen") |
2255 | MCFG_SCREEN_UPDATE_ | |
2255 | MCFG_SCREEN_UPDATE_DR | |
2256 | 2256 | MACHINE_CONFIG_END |
2257 | 2257 | |
2258 | 2258 | static MACHINE_CONFIG_DERIVED( sys2m, sys2 ) |
r17967 | r17968 | |
2264 | 2264 | |
2265 | 2265 | /* video hardware */ |
2266 | 2266 | MCFG_SCREEN_MODIFY("screen") |
2267 | MCFG_SCREEN_UPDATE_ | |
2267 | MCFG_SCREEN_UPDATE_DR | |
2268 | 2268 | MACHINE_CONFIG_END |
2269 | 2269 | |
2270 | 2270 | static MACHINE_CONFIG_DERIVED( sys2rowm, sys2row ) |
r17967 | r17968 | |
---|---|---|
42 | 42 | DECLARE_WRITE8_MEMBER(port60_w); |
43 | 43 | DECLARE_DRIVER_INIT(quizo); |
44 | 44 | virtual void palette_init(); |
45 | UINT32 screen_update_quizo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
45 | 46 | }; |
46 | 47 | |
47 | 48 | |
r17967 | r17968 | |
79 | 80 | } |
80 | 81 | } |
81 | 82 | |
82 | static | |
83 | UINT32 quizo_state::screen_update_quizo(screen_device &screen, bitmap_ind | |
83 | 84 | { |
84 | quizo_state *state = screen.machine().driver_data<quizo_state>(); | |
85 | UINT8 *videoram = state->m_videoram; | |
85 | UINT8 *videoram = m_videoram; | |
86 | 86 | int x,y; |
87 | 87 | for(y=0;y<200;y++) |
88 | 88 | { |
r17967 | r17968 | |
216 | 216 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
217 | 217 | MCFG_SCREEN_SIZE(320, 200) |
218 | 218 | MCFG_SCREEN_VISIBLE_AREA(0*8, 320-1, 0*8, 200-1) |
219 | MCFG_SCREEN_UPDATE_ | |
219 | MCFG_SCREEN_UPDATE_DR | |
220 | 220 | |
221 | 221 | MCFG_PALETTE_LENGTH(16) |
222 | 222 |
r17967 | r17968 | |
---|---|---|
960 | 960 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
961 | 961 | MCFG_SCREEN_SIZE(1024, 512) |
962 | 962 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 240-1) |
963 | MCFG_SCREEN_UPDATE_ | |
963 | MCFG_SCREEN_UPDATE_DR | |
964 | 964 | |
965 | 965 | MCFG_PALETTE_LENGTH(256*3) |
966 | 966 |
r17967 | r17968 | |
---|---|---|
67 | 67 | DECLARE_WRITE32_MEMBER(tmmjprd_brt_2_w); |
68 | 68 | DECLARE_WRITE32_MEMBER(tmmjprd_eeprom_write); |
69 | 69 | 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); | |
70 | 72 | }; |
71 | 73 | |
72 | 74 | |
r17967 | r17968 | |
289 | 291 | |
290 | 292 | } |
291 | 293 | |
292 | stat | |
294 | UINT32 tmmjprd_state::screen | |
293 | 295 | { |
294 | tmmjprd_state *state = screen.machine().driver_data<tmmjprd_state>(); | |
295 | UINT8* gfxroms = state->memregion("gfx2")->base(); | |
296 | UINT8* gfxroms = memregion("gfx2")->base(); | |
296 | 297 | |
297 | 298 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
298 | 299 | |
299 | ttmjprd_draw_tilemap( screen.machine(), bitmap, cliprect, | |
300 | ttmjprd_draw_tilemap( screen.machine(), bitmap, cliprect, | |
300 | 301 | draw_sprites(screen.machine(),bitmap,cliprect, 1); |
301 | ttmjprd_draw_tilemap( screen.machine(), bitmap, cliprect, | |
302 | ttmjprd_draw_tilemap( screen.machine(), bitmap, cliprect, | |
302 | 303 | |
303 | 304 | /* |
304 | 305 | 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]); | |
311 | 312 | */ |
312 | 313 | |
313 | 314 | /* |
314 | 315 | 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]); | |
322 | 323 | */ |
323 | 324 | |
324 | 325 | return 0; |
325 | 326 | } |
326 | 327 | |
327 | stat | |
328 | UINT32 tmmjprd_state::screen | |
328 | 329 | { |
329 | tmmjprd_state *state = screen.machine().driver_data<tmmjprd_state>(); | |
330 | UINT8* gfxroms = state->memregion("gfx2")->base(); | |
330 | UINT8* gfxroms = memregion("gfx2")->base(); | |
331 | 331 | |
332 | 332 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
333 | 333 | |
334 | ttmjprd_draw_tilemap( screen.machine(), bitmap, cliprect, | |
334 | ttmjprd_draw_tilemap( screen.machine(), bitmap, cliprect, | |
335 | 335 | draw_sprites(screen.machine(),bitmap,cliprect, 0); |
336 | ttmjprd_draw_tilemap( screen.machine(), bitmap, cliprect, | |
336 | ttmjprd_draw_tilemap( screen.machine(), bitmap, cliprect, | |
337 | 337 | |
338 | 338 | return 0; |
339 | 339 | } |
r17967 | r17968 | |
770 | 770 | MCFG_SCREEN_SIZE(64*16, 64*16) |
771 | 771 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) |
772 | 772 | //MCFG_SCREEN_VISIBLE_AREA(0*8, 64*16-1, 0*8, 64*16-1) |
773 | MCFG_SCREEN_UPDATE_ | |
773 | MCFG_SCREEN_UPDATE_DR | |
774 | 774 | |
775 | 775 | MCFG_SCREEN_ADD("rscreen", RASTER) |
776 | 776 | MCFG_SCREEN_REFRESH_RATE(60) |
r17967 | r17968 | |
778 | 778 | MCFG_SCREEN_SIZE(64*16, 64*16) |
779 | 779 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) |
780 | 780 | //MCFG_SCREEN_VISIBLE_AREA(0*8, 64*16-1, 0*8, 64*16-1) |
781 | MCFG_SCREEN_UPDATE_ | |
781 | MCFG_SCREEN_UPDATE_DR | |
782 | 782 | |
783 | 783 | |
784 | 784 | /* sound hardware */ |
r17967 | r17968 | |
---|---|---|
777 | 777 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
778 | 778 | MCFG_SCREEN_SIZE(340,262) |
779 | 779 | 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) | |
782 | 782 | |
783 | 783 | MCFG_PALETTE_LENGTH(32768) |
784 | 784 | MCFG_GFXDECODE(skns_bg) |
r17967 | r17968 | |
---|---|---|
238 | 238 | TILE_GET_INFO_MEMBER(get_gfx0a_tile_info); |
239 | 239 | TILE_GET_INFO_MEMBER(get_gfx1_tile_info); |
240 | 240 | virtual void video_start(); |
241 | UINT32 screen_update_witch(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
241 | 242 | }; |
242 | 243 | |
243 | 244 | |
r17967 | r17968 | |
764 | 765 | |
765 | 766 | } |
766 | 767 | |
767 | static | |
768 | UINT32 witch_state::screen_update_witch(screen_device &screen, bitmap_ind | |
768 | 769 | { |
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 ); | |
772 | 772 | |
773 | 773 | |
774 | 774 | |
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); | |
777 | 777 | draw_sprites(screen.machine(), bitmap, cliprect); |
778 | | |
778 | | |
779 | 779 | return 0; |
780 | 780 | } |
781 | 781 | |
r17967 | r17968 | |
808 | 808 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
809 | 809 | MCFG_SCREEN_SIZE(256, 256) |
810 | 810 | MCFG_SCREEN_VISIBLE_AREA(8, 256-1-8, 8*4, 256-8*4-1) |
811 | MCFG_SCREEN_UPDATE_ | |
811 | MCFG_SCREEN_UPDATE_DR | |
812 | 812 | |
813 | 813 | MCFG_GFXDECODE(witch) |
814 | 814 | MCFG_PALETTE_LENGTH(0x800) |
r17967 | r17968 | |
---|---|---|
604 | 604 | MCFG_SCREEN_REFRESH_RATE(60) |
605 | 605 | MCFG_SCREEN_SIZE(NAMCOFL_HTOTAL, NAMCOFL_VTOTAL) |
606 | 606 | MCFG_SCREEN_VISIBLE_AREA(0, NAMCOFL_HBSTART-1, 0, NAMCOFL_VBSTART-1) |
607 | MCFG_SCREEN_UPDATE_ | |
607 | MCFG_SCREEN_UPDATE_DR | |
608 | 608 | |
609 | 609 | MCFG_PALETTE_LENGTH(8192) |
610 | 610 |
r17967 | r17968 | |
---|---|---|
150 | 150 | TILE_GET_INFO_MEMBER(get_luckgrln_reel3_tile_info); |
151 | 151 | TILE_GET_INFO_MEMBER(get_luckgrln_reel4_tile_info); |
152 | 152 | virtual void video_start(); |
153 | UINT32 screen_update_luckgrln(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
153 | 154 | }; |
154 | 155 | |
155 | 156 | |
r17967 | r17968 | |
287 | 288 | m_reel4_tilemap->set_transparent_pen(0 ); |
288 | 289 | } |
289 | 290 | |
290 | stat | |
291 | UINT32 luckgrln_state::screen | |
291 | 292 | { |
292 | luckgrln_state *state = screen.machine().driver_data<luckgrln_state>(); | |
293 | 293 | int y,x; |
294 | 294 | int count = 0; |
295 | 295 | const rectangle &visarea = screen.visible_area(); |
r17967 | r17968 | |
301 | 301 | |
302 | 302 | for (i= 0;i < 64;i++) |
303 | 303 | { |
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]); | |
308 | 308 | } |
309 | 309 | |
310 | 310 | |
r17967 | r17968 | |
318 | 318 | |
319 | 319 | for (x=0;x<64;x++) |
320 | 320 | { |
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]); | |
324 | 324 | UINT8 col = 0; |
325 | 325 | UINT8 region = 0; |
326 | 326 | UINT8 bgenable; |
r17967 | r17968 | |
332 | 332 | if (clip.max_x>visarea.max_x) clip.max_x = visarea.max_x; |
333 | 333 | |
334 | 334 | /* |
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)? | |
337 | 337 | |
338 | 338 | |
339 | 339 | */ |
r17967 | r17968 | |
344 | 344 | // ?? low bit is used too |
345 | 345 | col = tile_high&0xf; |
346 | 346 | |
347 | // --ss fbt- | |
347 | // --ss fbt- | |
348 | 348 | // - = unused? |
349 | 349 | // s = reel layer select for this 8x8 region |
350 | 350 | // f = fg enabled for this 8x8 region (or priority?) |
r17967 | r17968 | |
356 | 356 | #if 0 // treat bit as fg enable |
357 | 357 | if (tileattr&0x04) |
358 | 358 | { |
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); | |
363 | 363 | } |
364 | 364 | |
365 | 365 | if (tileattr&0x08) drawgfx_transpen(bitmap,clip,screen.machine().gfx[region],tile,col,0,0,x*8,y*8, 0); |
r17967 | r17968 | |
369 | 369 | |
370 | 370 | if (tileattr&0x04) |
371 | 371 | { |
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); | |
376 | 376 | } |
377 | 377 | |
378 | 378 | if ((tileattr&0x08)) drawgfx_transpen(bitmap,clip,screen.machine().gfx[region],tile,col,0,0,x*8,y*8, 0); |
r17967 | r17968 | |
1006 | 1006 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1007 | 1007 | MCFG_SCREEN_SIZE(512, 256) |
1008 | 1008 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) |
1009 | MCFG_SCREEN_UPDATE_ | |
1009 | MCFG_SCREEN_UPDATE_DR | |
1010 | 1010 | |
1011 | 1011 | MCFG_GFXDECODE(luckgrln) |
1012 | 1012 | MCFG_PALETTE_LENGTH(0x8000) |
r17967 | r17968 | |
---|---|---|
175 | 175 | DECLARE_DRIVER_INIT(ucytokyu); |
176 | 176 | DECLARE_DRIVER_INIT(haekaka); |
177 | 177 | 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); | |
178 | 180 | }; |
179 | 181 | |
180 | 182 | |
r17967 | r17968 | |
302 | 304 | } |
303 | 305 | } |
304 | 306 | |
305 | stat | |
307 | UINT32 sigmab98_state::screen | |
306 | 308 | { |
307 | 309 | int layers_ctrl = -1; |
308 | 310 | |
r17967 | r17968 | |
680 | 682 | m_vblank = (m_vblank & ~0x03) | (data & 0x03); |
681 | 683 | } |
682 | 684 | |
683 | stat | |
685 | void sigmab98_state::screen | |
684 | 686 | { |
685 | 687 | // rising edge |
686 | if ( | |
688 | if (st | |
687 | 689 | { |
688 | sigmab98_state *state = screen.machine().driver_data<sigmab98_state>(); | |
689 | state->m_vblank &= ~0x01; | |
690 | m_vblank &= ~0x01; | |
690 | 691 | } |
691 | 692 | } |
692 | 693 | |
r17967 | r17968 | |
1710 | 1711 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // game reads vblank state |
1711 | 1712 | MCFG_SCREEN_SIZE(0x200, 0x200) |
1712 | 1713 | MCFG_SCREEN_VISIBLE_AREA(0,0x140-1, 0,0xf0-1) |
1713 | MCFG_SCREEN_UPDATE_ | |
1714 | MCFG_SCREEN_UPDATE_DR | |
1714 | 1715 | |
1715 | 1716 | MCFG_GFXDECODE(sigmab98) |
1716 | 1717 | MCFG_PALETTE_LENGTH(0x100) |
r17967 | r17968 | |
1764 | 1765 | MCFG_SCREEN_REFRESH_RATE(60) |
1765 | 1766 | MCFG_SCREEN_SIZE(0x140, 0x100) |
1766 | 1767 | 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) | |
1769 | 1770 | |
1770 | 1771 | MCFG_GFXDECODE(sigmab98) |
1771 | 1772 | MCFG_PALETTE_LENGTH(0x100) |
r17967 | r17968 | |
---|---|---|
4301 | 4301 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
4302 | 4302 | MCFG_SCREEN_SIZE(512, 256) |
4303 | 4303 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1-4, 16+8, 255-8) |
4304 | MCFG_SCREEN_UPDATE_ | |
4304 | MCFG_SCREEN_UPDATE_DR | |
4305 | 4305 | |
4306 | 4306 | MCFG_PALETTE_LENGTH(512) |
4307 | 4307 | |
r17967 | r17968 | |
4358 | 4358 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
4359 | 4359 | MCFG_SCREEN_SIZE(512, 256+22) |
4360 | 4360 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1-4, 16, 256-1) |
4361 | MCFG_SCREEN_UPDATE_ | |
4361 | MCFG_SCREEN_UPDATE_DR | |
4362 | 4362 | |
4363 | 4363 | MCFG_PALETTE_LENGTH(16*256) |
4364 | 4364 | |
r17967 | r17968 | |
4403 | 4403 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
4404 | 4404 | MCFG_SCREEN_SIZE(512, 256) |
4405 | 4405 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1-4, 16, 256-1) |
4406 | MCFG_SCREEN_UPDATE_ | |
4406 | MCFG_SCREEN_UPDATE_DR | |
4407 | 4407 | |
4408 | 4408 | MCFG_PALETTE_LENGTH(16*256) |
4409 | 4409 | |
r17967 | r17968 | |
4461 | 4461 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
4462 | 4462 | MCFG_SCREEN_SIZE(512, 256) |
4463 | 4463 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 256-1) |
4464 | MCFG_SCREEN_UPDATE_ | |
4464 | MCFG_SCREEN_UPDATE_DR | |
4465 | 4465 | |
4466 | 4466 | MCFG_PALETTE_LENGTH(512) |
4467 | 4467 | |
r17967 | r17968 | |
4503 | 4503 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
4504 | 4504 | MCFG_SCREEN_SIZE(256, 256) |
4505 | 4505 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-1) |
4506 | MCFG_SCREEN_UPDATE_ | |
4506 | MCFG_SCREEN_UPDATE_DR | |
4507 | 4507 | |
4508 | 4508 | MCFG_PALETTE_LENGTH(512) |
4509 | 4509 | |
r17967 | r17968 | |
4667 | 4667 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
4668 | 4668 | MCFG_SCREEN_SIZE(512, 256) |
4669 | 4669 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 256-1) |
4670 | MCFG_SCREEN_UPDATE_ | |
4670 | MCFG_SCREEN_UPDATE_DR | |
4671 | 4671 | |
4672 | 4672 | MCFG_SCREEN_ADD("bottom", RASTER) |
4673 | 4673 | MCFG_SCREEN_REFRESH_RATE(60) |
4674 | 4674 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
4675 | 4675 | MCFG_SCREEN_SIZE(512, 256) |
4676 | 4676 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 256-1) |
4677 | MCFG_SCREEN_UPDATE_ | |
4677 | MCFG_SCREEN_UPDATE_DR | |
4678 | 4678 | |
4679 | 4679 | MCFG_PALETTE_INIT_OVERRIDE(dynax_state,sprtmtch) // static palette |
4680 | 4680 | MCFG_VIDEO_START_OVERRIDE(dynax_state,jantouki) |
r17967 | r17968 | |
4840 | 4840 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
4841 | 4841 | MCFG_SCREEN_SIZE(512, 256) |
4842 | 4842 | MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 0+8, 256-1-8) |
4843 | MCFG_SCREEN_UPDATE_ | |
4843 | MCFG_SCREEN_UPDATE_DR | |
4844 | 4844 | |
4845 | 4845 | MCFG_PALETTE_LENGTH(16*256) |
4846 | 4846 | |
r17967 | r17968 | |
4923 | 4923 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
4924 | 4924 | MCFG_SCREEN_SIZE(512, 256+22) |
4925 | 4925 | 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_ | |
4926 | MCFG_SCREEN_UPDATE_DR | |
4927 | 4927 | |
4928 | 4928 | MCFG_PALETTE_LENGTH(16*256) |
4929 | 4929 | |
r17967 | r17968 | |
4992 | 4992 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
4993 | 4993 | MCFG_SCREEN_SIZE(256, 256) |
4994 | 4994 | MCFG_SCREEN_VISIBLE_AREA(2, 256-1, 16, 256-1) |
4995 | MCFG_SCREEN_UPDATE_ | |
4995 | MCFG_SCREEN_UPDATE_DR | |
4996 | 4996 | |
4997 | 4997 | MCFG_PALETTE_LENGTH(512) |
4998 | 4998 | MCFG_PALETTE_INIT_OVERRIDE(dynax_state,sprtmtch) // static palette |
r17967 | r17968 | |
---|---|---|
276 | 276 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
277 | 277 | MCFG_SCREEN_SIZE(32*8, 32*8) |
278 | 278 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
279 | MCFG_SCREEN_UPDATE_ | |
279 | MCFG_SCREEN_UPDATE_DR | |
280 | 280 | |
281 | 281 | MCFG_GFXDECODE(shootout) |
282 | 282 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
303 | 303 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
304 | 304 | MCFG_SCREEN_SIZE(32*8, 32*8) |
305 | 305 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
306 | MCFG_SCREEN_UPDATE_ | |
306 | MCFG_SCREEN_UPDATE_DR | |
307 | 307 | |
308 | 308 | MCFG_GFXDECODE(shootout) |
309 | 309 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
275 | 275 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
276 | 276 | MCFG_SCREEN_SIZE(320, 256) |
277 | 277 | MCFG_SCREEN_VISIBLE_AREA(0, 319, 8, 247) |
278 | MCFG_SCREEN_UPDATE_ | |
278 | MCFG_SCREEN_UPDATE_DR | |
279 | 279 | |
280 | 280 | MCFG_GFXDECODE(volfied) |
281 | 281 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
---|---|---|
319 | 319 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
320 | 320 | MCFG_SCREEN_SIZE(256, 256) |
321 | 321 | MCFG_SCREEN_VISIBLE_AREA(0, 255, 40, 255) |
322 | MCFG_SCREEN_UPDATE_ | |
322 | MCFG_SCREEN_UPDATE_DR | |
323 | 323 | |
324 | 324 | MCFG_PALETTE_LENGTH(256) |
325 | 325 |
r17967 | r17968 | |
---|---|---|
1686 | 1686 | |
1687 | 1687 | MCFG_SCREEN_ADD("screen", RASTER) |
1688 | 1688 | MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK, 508, 0, 384, 262, 0, 256) |
1689 | MCFG_SCREEN_UPDATE_ | |
1689 | MCFG_SCREEN_UPDATE_DR | |
1690 | 1690 | |
1691 | 1691 | |
1692 | 1692 | /* sound hardware */ |
r17967 | r17968 | |
---|---|---|
496 | 496 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* frames per second, vblank duration */) |
497 | 497 | MCFG_SCREEN_SIZE(32*8, 32*8) |
498 | 498 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
499 | MCFG_SCREEN_UPDATE_ | |
499 | MCFG_SCREEN_UPDATE_DR | |
500 | 500 | |
501 | 501 | MCFG_GFXDECODE(mexico86) |
502 | 502 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
523 | 523 | |
524 | 524 | /* video hardware */ |
525 | 525 | MCFG_SCREEN_MODIFY("screen") |
526 | MCFG_SCREEN_UPDATE_ | |
526 | MCFG_SCREEN_UPDATE_DR | |
527 | 527 | MACHINE_CONFIG_END |
528 | 528 | |
529 | 529 | |
r17967 | r17968 | |
538 | 538 | |
539 | 539 | /* video hardware */ |
540 | 540 | MCFG_SCREEN_MODIFY("screen") |
541 | MCFG_SCREEN_UPDATE_ | |
541 | MCFG_SCREEN_UPDATE_DR | |
542 | 542 | MACHINE_CONFIG_END |
543 | 543 | |
544 | 544 |
r17967 | r17968 | |
---|---|---|
384 | 384 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
385 | 385 | MCFG_SCREEN_SIZE(32*8, 32*8) |
386 | 386 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
387 | MCFG_SCREEN_UPDATE_ | |
387 | MCFG_SCREEN_UPDATE_DR | |
388 | 388 | |
389 | 389 | MCFG_GFXDECODE(chaknpop) |
390 | 390 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
198 | 198 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(16 * 1000000 / 15680)) |
199 | 199 | MCFG_SCREEN_SIZE(376, 256) |
200 | 200 | 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) | |
203 | 203 | |
204 | 204 | MCFG_GFXDECODE(sspeedr) |
205 | 205 | MCFG_PALETTE_LENGTH(16) |
r17967 | r17968 | |
---|---|---|
364 | 364 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
365 | 365 | MCFG_SCREEN_SIZE(512, 512) |
366 | 366 | MCFG_SCREEN_VISIBLE_AREA(14*8, 50*8-1, 3*8, 29*8-1) |
367 | MCFG_SCREEN_UPDATE_ | |
367 | MCFG_SCREEN_UPDATE_DR | |
368 | 368 | |
369 | 369 | MCFG_GFXDECODE(ashnojoe) |
370 | 370 | MCFG_PALETTE_LENGTH(0x1000/2) |
r17967 | r17968 | |
---|---|---|
95 | 95 | DECLARE_READ8_MEMBER(popo_620000_r); |
96 | 96 | DECLARE_WRITE8_MEMBER(popobear_irq_ack_w); |
97 | 97 | virtual void video_start(); |
98 | UINT32 screen_update_popobear(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
98 | 99 | }; |
99 | 100 | |
100 | 101 | void popobear_state::video_start() |
r17967 | r17968 | |
256 | 257 | } |
257 | 258 | } |
258 | 259 | |
259 | ||
260 | ||
260 | 261 | { |
261 | // popobear_state *state = screen.machine().driver_data<popobear_state>(); | |
262 | 262 | |
263 | 263 | bitmap.fill(0, cliprect); |
264 | 264 | |
265 | //popmessage("%04x", | |
265 | //popmessage("%04x", | |
266 | 266 | |
267 | 267 | draw_layer(screen.machine(),bitmap,cliprect,3); |
268 | 268 | draw_layer(screen.machine(),bitmap,cliprect,2); |
r17967 | r17968 | |
465 | 465 | MCFG_SCREEN_ADD("screen", RASTER) |
466 | 466 | MCFG_SCREEN_REFRESH_RATE(60) |
467 | 467 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
468 | MCFG_SCREEN_UPDATE_ | |
468 | MCFG_SCREEN_UPDATE_DR | |
469 | 469 | |
470 | 470 | // MCFG_GFXDECODE(popobear) |
471 | 471 |
r17967 | r17968 | |
---|---|---|
23 | 23 | |
24 | 24 | /* memory pointers */ |
25 | 25 | required_shared_ptr<UINT8> m_videoram; |
26 | UINT32 screen_update_minivadr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
26 | 27 | }; |
27 | 28 | |
28 | 29 | /************************************* |
r17967 | r17968 | |
31 | 32 | * |
32 | 33 | *************************************/ |
33 | 34 | |
34 | stat | |
35 | UINT32 minivadr_state::screen | |
35 | 36 | { |
36 | minivadr_state *state = screen.machine().driver_data<minivadr_state>(); | |
37 | 37 | offs_t offs; |
38 | 38 | |
39 | for (offs = 0; offs < | |
39 | for (offs = 0; offs < | |
40 | 40 | { |
41 | 41 | int i; |
42 | 42 | |
43 | 43 | UINT8 x = offs << 3; |
44 | 44 | int y = offs >> 5; |
45 | UINT8 data = | |
45 | UINT8 data = | |
46 | 46 | |
47 | 47 | for (i = 0; i < 8; i++) |
48 | 48 | { |
r17967 | r17968 | |
91 | 91 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
92 | 92 | MCFG_SCREEN_SIZE(256, 256) |
93 | 93 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1) |
94 | MCFG_SCREEN_UPDATE_ | |
94 | MCFG_SCREEN_UPDATE_DR | |
95 | 95 | |
96 | 96 | /* the board has no sound hardware */ |
97 | 97 | MACHINE_CONFIG_END |
r17967 | r17968 | |
---|---|---|
219 | 219 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
220 | 220 | MCFG_SCREEN_SIZE(32*8, 32*8) |
221 | 221 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
222 | MCFG_SCREEN_UPDATE_ | |
222 | MCFG_SCREEN_UPDATE_DR | |
223 | 223 | |
224 | 224 | MCFG_GFXDECODE(mouser) |
225 | 225 | MCFG_PALETTE_LENGTH(64) |
r17967 | r17968 | |
---|---|---|
739 | 739 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
740 | 740 | MCFG_SCREEN_SIZE(40*8, 32*8) |
741 | 741 | MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 3*8, 32*8-1) |
742 | MCFG_SCREEN_UPDATE_ | |
742 | MCFG_SCREEN_UPDATE_DR | |
743 | 743 | |
744 | 744 | MCFG_GFXDECODE(undrfire) |
745 | 745 | MCFG_PALETTE_LENGTH(16384) |
r17967 | r17968 | |
774 | 774 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
775 | 775 | MCFG_SCREEN_SIZE(40*8, 32*8) |
776 | 776 | MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 3*8, 32*8-1) |
777 | MCFG_SCREEN_UPDATE_ | |
777 | MCFG_SCREEN_UPDATE_DR | |
778 | 778 | |
779 | 779 | MCFG_GFXDECODE(cbombers) |
780 | 780 | MCFG_PALETTE_LENGTH(16384) |
r17967 | r17968 | |
---|---|---|
693 | 693 | |
694 | 694 | MCFG_SCREEN_ADD("screen", RASTER) |
695 | 695 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
696 | MCFG_SCREEN_UPDATE_ | |
696 | MCFG_SCREEN_UPDATE_DR | |
697 | 697 | |
698 | 698 | |
699 | 699 | /* sound hardware */ |
r17967 | r17968 | |
---|---|---|
572 | 572 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
573 | 573 | MCFG_SCREEN_SIZE(32*8, 32*8) |
574 | 574 | MCFG_SCREEN_VISIBLE_AREA(2*8, 32*8-1, 2*8, 30*8-1) |
575 | MCFG_SCREEN_UPDATE_ | |
575 | MCFG_SCREEN_UPDATE_DR | |
576 | 576 | |
577 | 577 | MCFG_GFXDECODE(lkage) |
578 | 578 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
615 | 615 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
616 | 616 | MCFG_SCREEN_SIZE(32*8, 32*8) |
617 | 617 | MCFG_SCREEN_VISIBLE_AREA(2*8, 32*8-1, 2*8, 30*8-1) |
618 | MCFG_SCREEN_UPDATE_ | |
618 | MCFG_SCREEN_UPDATE_DR | |
619 | 619 | |
620 | 620 | MCFG_GFXDECODE(lkage) |
621 | 621 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
779 | 779 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
780 | 780 | MCFG_SCREEN_SIZE(32*8, 32*8) |
781 | 781 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 32*8-1) |
782 | MCFG_SCREEN_UPDATE_ | |
782 | MCFG_SCREEN_UPDATE_DR | |
783 | 783 | |
784 | 784 | MCFG_GFXDECODE(gaiden) |
785 | 785 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
809 | 809 | static MACHINE_CONFIG_DERIVED( raiga, shadoww ) |
810 | 810 | |
811 | 811 | MCFG_SCREEN_MODIFY("screen") |
812 | MCFG_SCREEN_UPDATE_ | |
812 | MCFG_SCREEN_UPDATE_DR | |
813 | 813 | |
814 | 814 | MCFG_VIDEO_START_OVERRIDE(gaiden_state,raiga) |
815 | 815 | MCFG_GFXDECODE(raiga) |
r17967 | r17968 | |
835 | 835 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
836 | 836 | MCFG_SCREEN_SIZE(32*8, 32*8) |
837 | 837 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
838 | MCFG_SCREEN_UPDATE_ | |
838 | MCFG_SCREEN_UPDATE_DR | |
839 | 839 | |
840 | 840 | MCFG_GFXDECODE(drgnbowl) |
841 | 841 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
951 | 951 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
952 | 952 | MCFG_SCREEN_SIZE(32*8, 32*8) |
953 | 953 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
954 | MCFG_SCREEN_UPDATE_ | |
954 | MCFG_SCREEN_UPDATE_DR | |
955 | 955 | |
956 | 956 | MCFG_GFXDECODE(mastninj) |
957 | 957 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
---|---|---|
63 | 63 | virtual void machine_reset(); |
64 | 64 | virtual void video_start(); |
65 | 65 | virtual void palette_init(); |
66 | UINT32 screen_update_quizshow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
66 | 67 | }; |
67 | 68 | |
68 | 69 | |
r17967 | r17968 | |
106 | 107 | m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(quizshow_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 16, 32, 16); |
107 | 108 | } |
108 | 109 | |
109 | ||
110 | ||
110 | 111 | { |
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); | |
113 | 113 | return 0; |
114 | 114 | } |
115 | 115 | |
r17967 | r17968 | |
382 | 382 | MCFG_SCREEN_ADD("screen", RASTER) |
383 | 383 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
384 | 384 | |
385 | MCFG_SCREEN_UPDATE_ | |
385 | MCFG_SCREEN_UPDATE_DR | |
386 | 386 | |
387 | 387 | MCFG_GFXDECODE(quizshow) |
388 | 388 | MCFG_PALETTE_LENGTH(8*2) |
r17967 | r17968 | |
---|---|---|
817 | 817 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
818 | 818 | MCFG_SCREEN_SIZE(640, 525) |
819 | 819 | MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 239) |
820 | MCFG_SCREEN_UPDATE_ | |
820 | MCFG_SCREEN_UPDATE_DR | |
821 | 821 | |
822 | 822 | MCFG_PALETTE_LENGTH(0x1000) |
823 | 823 |
r17967 | r17968 | |
---|---|---|
928 | 928 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
929 | 929 | MCFG_SCREEN_SIZE(32*8, 32*8) |
930 | 930 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
931 | MCFG_SCREEN_UPDATE_ | |
931 | MCFG_SCREEN_UPDATE_DR | |
932 | 932 | |
933 | 933 | MCFG_GFXDECODE(trackfld) |
934 | 934 | MCFG_PALETTE_LENGTH(16*16+16*16) |
r17967 | r17968 | |
983 | 983 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
984 | 984 | MCFG_SCREEN_SIZE(32*8, 32*8) |
985 | 985 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
986 | MCFG_SCREEN_UPDATE_ | |
986 | MCFG_SCREEN_UPDATE_DR | |
987 | 987 | |
988 | 988 | MCFG_GFXDECODE(trackfld) |
989 | 989 | MCFG_PALETTE_LENGTH(16*16+16*16) |
r17967 | r17968 | |
---|---|---|
413 | 413 | } |
414 | 414 | |
415 | 415 | |
416 | static | |
416 | UINT32 astrof_state::screen_update_astrof(screen_device &screen, bitmap_rgb | |
417 | 417 | { |
418 | 418 | pen_t pens[ASTROF_NUM_PENS]; |
419 | 419 | |
r17967 | r17968 | |
425 | 425 | } |
426 | 426 | |
427 | 427 | |
428 | stat | |
428 | UINT32 astrof_state::screen | |
429 | 429 | { |
430 | 430 | pen_t pens[TOMAHAWK_NUM_PENS]; |
431 | 431 | |
r17967 | r17968 | |
962 | 962 | |
963 | 963 | /* video hardware */ |
964 | 964 | MCFG_SCREEN_MODIFY("screen") |
965 | MCFG_SCREEN_UPDATE_ | |
965 | MCFG_SCREEN_UPDATE_DR | |
966 | 966 | |
967 | 967 | /* audio hardware */ |
968 | 968 | MCFG_FRAGMENT_ADD(astrof_audio) |
r17967 | r17968 | |
988 | 988 | |
989 | 989 | /* video hardware */ |
990 | 990 | MCFG_SCREEN_MODIFY("screen") |
991 | MCFG_SCREEN_UPDATE_ | |
991 | MCFG_SCREEN_UPDATE_DR | |
992 | 992 | |
993 | 993 | /* audio hardware */ |
994 | 994 | MCFG_FRAGMENT_ADD(spfghmk2_audio) |
r17967 | r17968 | |
1005 | 1005 | |
1006 | 1006 | /* video hardware */ |
1007 | 1007 | MCFG_SCREEN_MODIFY("screen") |
1008 | MCFG_SCREEN_UPDATE_ | |
1008 | MCFG_SCREEN_UPDATE_DR | |
1009 | 1009 | |
1010 | 1010 | /* audio hardware */ |
1011 | 1011 | MCFG_FRAGMENT_ADD(tomahawk_audio) |
r17967 | r17968 | |
---|---|---|
501 | 501 | DECLARE_DRIVER_INIT(sf2049se); |
502 | 502 | virtual void machine_start(); |
503 | 503 | virtual void machine_reset(); |
504 | UINT32 screen_update_vegas(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
504 | 505 | }; |
505 | 506 | |
506 | 507 | |
r17967 | r17968 | |
523 | 524 | * |
524 | 525 | *************************************/ |
525 | 526 | |
526 | stat | |
527 | UINT32 vegas_state::screen | |
527 | 528 | { |
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; | |
530 | 530 | } |
531 | 531 | |
532 | 532 | |
r17967 | r17968 | |
2264 | 2264 | MCFG_SCREEN_REFRESH_RATE(57) |
2265 | 2265 | MCFG_SCREEN_SIZE(640, 480) |
2266 | 2266 | MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479) |
2267 | MCFG_SCREEN_UPDATE_ | |
2267 | MCFG_SCREEN_UPDATE_DR | |
2268 | 2268 | MACHINE_CONFIG_END |
2269 | 2269 | |
2270 | 2270 |
r17967 | r17968 | |
---|---|---|
644 | 644 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* frames per second, vblank duration */) |
645 | 645 | MCFG_SCREEN_SIZE(32*8, 32*8) |
646 | 646 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
647 | MCFG_SCREEN_UPDATE_ | |
647 | MCFG_SCREEN_UPDATE_DR | |
648 | 648 | |
649 | 649 | MCFG_GFXDECODE(tecmo) |
650 | 650 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
703 | 703 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* frames per second, vblank duration */) |
704 | 704 | MCFG_SCREEN_SIZE(32*8, 32*8) |
705 | 705 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
706 | MCFG_SCREEN_UPDATE_ | |
706 | MCFG_SCREEN_UPDATE_DR | |
707 | 707 | |
708 | 708 | MCFG_GFXDECODE(tecmo) |
709 | 709 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
212 | 212 | virtual void machine_start(); |
213 | 213 | virtual void machine_reset(); |
214 | 214 | virtual void video_start(); |
215 | public: | |
216 | UINT32 screen_update_magictg(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
215 | 217 | }; |
216 | 218 | |
217 | 219 | |
r17967 | r17968 | |
259 | 261 | |
260 | 262 | } |
261 | 263 | |
262 | stat | |
264 | UINT32 magictg_state::screen | |
263 | 265 | { |
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; | |
266 | 267 | } |
267 | 268 | |
268 | 269 | |
r17967 | r17968 | |
964 | 965 | MCFG_SCREEN_SIZE(1024, 1024) |
965 | 966 | MCFG_SCREEN_VISIBLE_AREA(0, 511, 16, 447) |
966 | 967 | |
967 | MCFG_SCREEN_UPDATE_ | |
968 | MCFG_SCREEN_UPDATE_DR | |
968 | 969 | MACHINE_CONFIG_END |
969 | 970 | |
970 | 971 |
r17967 | r17968 | |
---|---|---|
276 | 276 | /* note: these parameters are from published specs, not derived */ |
277 | 277 | /* the board uses a VAD chip to generate video signals */ |
278 | 278 | MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240) |
279 | MCFG_SCREEN_UPDATE_ | |
279 | MCFG_SCREEN_UPDATE_DR | |
280 | 280 | |
281 | 281 | MCFG_VIDEO_START_OVERRIDE(shuuz_state,shuuz) |
282 | 282 |
r17967 | r17968 | |
---|---|---|
292 | 292 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
293 | 293 | MCFG_SCREEN_SIZE(36*8, 32*8) |
294 | 294 | MCFG_SCREEN_VISIBLE_AREA(1*8, 35*8-1, 2*8, 30*8-1) |
295 | MCFG_SCREEN_UPDATE_ | |
295 | MCFG_SCREEN_UPDATE_DR | |
296 | 296 | |
297 | 297 | MCFG_GFXDECODE(finalizr) |
298 | 298 | MCFG_PALETTE_LENGTH(2*16*16) |
r17967 | r17968 | |
---|---|---|
124 | 124 | #include "includes/galpanic.h" |
125 | 125 | #include "includes/galpnipt.h" |
126 | 126 | |
127 | stat | |
127 | void galpanic_state::screen | |
128 | 128 | { |
129 | 129 | // rising edge |
130 | if ( | |
130 | if (st | |
131 | 131 | { |
132 | 132 | device_t *pandora = screen.machine().device("pandora"); |
133 | 133 | pandora_eof(pandora); |
r17967 | r17968 | |
567 | 567 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* frames per second, vblank duration */) |
568 | 568 | MCFG_SCREEN_SIZE(256, 256) |
569 | 569 | 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) | |
572 | 572 | |
573 | 573 | MCFG_GFXDECODE(galpanic) |
574 | 574 | MCFG_PALETTE_LENGTH(1024 + 32768) |
r17967 | r17968 | |
611 | 611 | |
612 | 612 | /* video hardware */ |
613 | 613 | MCFG_SCREEN_MODIFY("screen") |
614 | MCFG_SCREEN_UPDATE_ | |
614 | MCFG_SCREEN_UPDATE_DR | |
615 | 615 | MCFG_SCREEN_VBLANK_NONE() |
616 | 616 | MACHINE_CONFIG_END |
617 | 617 | |
r17967 | r17968 | |
625 | 625 | |
626 | 626 | /* video hardware */ |
627 | 627 | MCFG_SCREEN_MODIFY("screen") |
628 | MCFG_SCREEN_UPDATE_ | |
628 | MCFG_SCREEN_UPDATE_DR | |
629 | 629 | MCFG_SCREEN_VBLANK_NONE() |
630 | 630 | |
631 | 631 | /* sound hardware */ |
r17967 | r17968 | |
643 | 643 | |
644 | 644 | /* video hardware */ |
645 | 645 | MCFG_SCREEN_MODIFY("screen") |
646 | MCFG_SCREEN_UPDATE_ | |
646 | MCFG_SCREEN_UPDATE_DR | |
647 | 647 | MCFG_SCREEN_VBLANK_NONE() |
648 | 648 | MACHINE_CONFIG_END |
649 | 649 | |
r17967 | r17968 | |
658 | 658 | |
659 | 659 | /* video hardware */ |
660 | 660 | MCFG_SCREEN_MODIFY("screen") |
661 | MCFG_SCREEN_UPDATE_ | |
661 | MCFG_SCREEN_UPDATE_DR | |
662 | 662 | MCFG_SCREEN_VBLANK_NONE() |
663 | 663 | |
664 | 664 | /* sound hardware */ |
r17967 | r17968 | |
677 | 677 | |
678 | 678 | /* video hardware */ |
679 | 679 | MCFG_SCREEN_MODIFY("screen") |
680 | MCFG_SCREEN_UPDATE_ | |
680 | MCFG_SCREEN_UPDATE_DR | |
681 | 681 | |
682 | 682 | /* sound hardware */ |
683 | 683 | MCFG_OKIM6295_REPLACE("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified |
r17967 | r17968 | |
---|---|---|
284 | 284 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
285 | 285 | MCFG_SCREEN_SIZE(64*8, 32*8) |
286 | 286 | MCFG_SCREEN_VISIBLE_AREA(8*8, 56*8-1, 1*8, 31*8-1) |
287 | MCFG_SCREEN_UPDATE_ | |
287 | MCFG_SCREEN_UPDATE_DR | |
288 | 288 | |
289 | 289 | MCFG_GFXDECODE(speedspn) |
290 | 290 | MCFG_PALETTE_LENGTH(0x400) |
r17967 | r17968 | |
---|---|---|
89 | 89 | DECLARE_DRIVER_INIT(enigma2); |
90 | 90 | virtual void machine_start(); |
91 | 91 | 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); | |
92 | 94 | }; |
93 | 95 | |
94 | 96 | |
r17967 | r17968 | |
205 | 207 | } |
206 | 208 | |
207 | 209 | |
208 | stat | |
210 | UINT32 enigma2_state::screen | |
209 | 211 | { |
210 | enigma2_state *state = screen.machine().driver_data<enigma2_state>(); | |
211 | 212 | pen_t pens[NUM_PENS]; |
212 | 213 | |
213 | 214 | 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]; | |
217 | 218 | |
218 | 219 | UINT8 x = 0; |
219 | 220 | UINT16 bitmap_y = visarea.min_y; |
r17967 | r17968 | |
243 | 244 | |
244 | 245 | /* when the screen is flipped, all the video address bits are inverted, |
245 | 246 | and the adder at 16A is activated */ |
246 | if ( | |
247 | if ( | |
247 | 248 | |
248 | video_data = | |
249 | video_data = | |
249 | 250 | |
250 | 251 | fore_color = color_map_base[color_map_address] & 0x07; |
251 | 252 | star_color = star_map_base[star_map_address] & 0x07; |
252 | 253 | } |
253 | 254 | |
254 | 255 | /* plot the current pixel */ |
255 | if ( | |
256 | if ( | |
256 | 257 | { |
257 | 258 | bit = video_data & 0x80; |
258 | 259 | video_data = video_data << 1; |
r17967 | r17968 | |
287 | 288 | } |
288 | 289 | } |
289 | 290 | |
290 | | |
291 | | |
291 | 292 | |
292 | 293 | return 0; |
293 | 294 | } |
294 | 295 | |
295 | 296 | |
296 | stat | |
297 | UINT32 enigma2_state::screen | |
297 | 298 | { |
298 | enigma2_state *state = screen.machine().driver_data<enigma2_state>(); | |
299 | 299 | UINT8 x = 0; |
300 | 300 | const rectangle &visarea = screen.visible_area(); |
301 | 301 | UINT16 bitmap_y = visarea.min_y; |
r17967 | r17968 | |
314 | 314 | |
315 | 315 | /* when the screen is flipped, all the video address bits are inverted, |
316 | 316 | and the adder at 16A is activated */ |
317 | if ( | |
317 | if ( | |
318 | 318 | |
319 | video_data = | |
319 | video_data = | |
320 | 320 | } |
321 | 321 | |
322 | 322 | /* plot the current pixel */ |
323 | if ( | |
323 | if ( | |
324 | 324 | { |
325 | 325 | bit = video_data & 0x80; |
326 | 326 | video_data = video_data << 1; |
r17967 | r17968 | |
617 | 617 | /* video hardware */ |
618 | 618 | MCFG_SCREEN_ADD("screen", RASTER) |
619 | 619 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
620 | MCFG_SCREEN_UPDATE_ | |
620 | MCFG_SCREEN_UPDATE_DR | |
621 | 621 | |
622 | 622 | /* audio hardware */ |
623 | 623 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
643 | 643 | /* video hardware */ |
644 | 644 | MCFG_SCREEN_ADD("screen", RASTER) |
645 | 645 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
646 | MCFG_SCREEN_UPDATE_ | |
646 | MCFG_SCREEN_UPDATE_DR | |
647 | 647 | |
648 | 648 | /* audio hardware */ |
649 | 649 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
---|---|---|
363 | 363 | DECLARE_VIDEO_START(vidadcba); |
364 | 364 | DECLARE_PALETTE_INIT(babypkr); |
365 | 365 | DECLARE_PALETTE_INIT(fortune1); |
366 | UINT32 screen_update_videopkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
366 | 367 | }; |
367 | 368 | |
368 | 369 | |
r17967 | r17968 | |
520 | 521 | } |
521 | 522 | |
522 | 523 | |
523 | stat | |
524 | UINT32 videopkr_state::screen | |
524 | 525 | { |
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); | |
528 | 528 | return 0; |
529 | 529 | } |
530 | 530 | |
r17967 | r17968 | |
1254 | 1254 | |
1255 | 1255 | MCFG_SCREEN_REFRESH_RATE(60) |
1256 | 1256 | MCFG_SCREEN_VBLANK_TIME(2080) |
1257 | MCFG_SCREEN_UPDATE_ | |
1257 | MCFG_SCREEN_UPDATE_DR | |
1258 | 1258 | |
1259 | 1259 | MCFG_GFXDECODE(videopkr) |
1260 | 1260 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
119 | 119 | virtual void machine_reset(); |
120 | 120 | virtual void video_start(); |
121 | 121 | 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); | |
122 | 124 | }; |
123 | 125 | |
124 | 126 | |
r17967 | r17968 | |
197 | 199 | m_fg_tilemap->set_transparent_pen(0); |
198 | 200 | } |
199 | 201 | |
200 | stat | |
202 | UINT32 igspoker_state::screen | |
201 | 203 | { |
202 | igspoker_state *state = screen.machine().driver_data<igspoker_state>(); | |
203 | 204 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
204 | 205 | |
205 | 206 | // FIX: CSK227IT must have some way to disable background, or wrong gfx? |
206 | if ( | |
207 | if ( | |
207 | 208 | |
208 | | |
209 | | |
209 | 210 | |
210 | 211 | return 0; |
211 | 212 | } |
r17967 | r17968 | |
215 | 216 | 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); |
216 | 217 | } |
217 | 218 | |
218 | stat | |
219 | UINT32 igspoker_state::screen | |
219 | 220 | { |
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); | |
222 | 222 | |
223 | 223 | return 0; |
224 | 224 | } |
r17967 | r17968 | |
1780 | 1780 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1781 | 1781 | MCFG_SCREEN_SIZE(64*8, 32*8) // TODO: wrong screen size! |
1782 | 1782 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0, 32*8-1) |
1783 | MCFG_SCREEN_UPDATE_ | |
1783 | MCFG_SCREEN_UPDATE_DR | |
1784 | 1784 | |
1785 | 1785 | MCFG_GFXDECODE(igspoker) |
1786 | 1786 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
1810 | 1810 | MCFG_CPU_IO_MAP(number10_io_map) |
1811 | 1811 | |
1812 | 1812 | MCFG_SCREEN_MODIFY("screen") |
1813 | MCFG_SCREEN_UPDATE_ | |
1813 | MCFG_SCREEN_UPDATE_DR | |
1814 | 1814 | MCFG_VIDEO_START_OVERRIDE(igspoker_state,cpokerpk) |
1815 | 1815 | |
1816 | 1816 | MCFG_OKIM6295_ADD("oki", XTAL_12MHz / 12, OKIM6295_PIN7_HIGH) |
r17967 | r17968 | |
---|---|---|
122 | 122 | TILE_GET_INFO_MEMBER(get_sc2_tile_info); |
123 | 123 | TILE_GET_INFO_MEMBER(get_sc3_tile_info); |
124 | 124 | virtual void video_start(); |
125 | UINT32 screen_update_mil4000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
125 | 126 | }; |
126 | 127 | |
127 | 128 | |
r17967 | r17968 | |
189 | 190 | m_sc3_tilemap->set_transparent_pen(0); |
190 | 191 | } |
191 | 192 | |
192 | stat | |
193 | UINT32 mil4000_state::screen | |
193 | 194 | { |
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); | |
199 | 199 | return 0; |
200 | 200 | } |
201 | 201 | |
r17967 | r17968 | |
381 | 381 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
382 | 382 | MCFG_SCREEN_SIZE(320, 240) |
383 | 383 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) |
384 | MCFG_SCREEN_UPDATE_ | |
384 | MCFG_SCREEN_UPDATE_DR | |
385 | 385 | |
386 | 386 | MCFG_PALETTE_LENGTH(0x800) |
387 | 387 | MCFG_PALETTE_INIT(all_black) |
r17967 | r17968 | |
---|---|---|
73 | 73 | virtual void machine_reset(); |
74 | 74 | virtual void video_start(); |
75 | 75 | virtual void palette_init(); |
76 | UINT32 screen_update_koikoi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
76 | 77 | }; |
77 | 78 | |
78 | 79 | |
r17967 | r17968 | |
142 | 143 | m_tmap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(koikoi_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); |
143 | 144 | } |
144 | 145 | |
145 | stat | |
146 | UINT32 koikoi_state::screen | |
146 | 147 | { |
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); | |
149 | 149 | return 0; |
150 | 150 | } |
151 | 151 | |
r17967 | r17968 | |
374 | 374 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
375 | 375 | MCFG_SCREEN_SIZE(32*8, 32*8) |
376 | 376 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) |
377 | MCFG_SCREEN_UPDATE_ | |
377 | MCFG_SCREEN_UPDATE_DR | |
378 | 378 | |
379 | 379 | MCFG_GFXDECODE(koikoi) |
380 | 380 | MCFG_PALETTE_LENGTH(8*32) |
r17967 | r17968 | |
---|---|---|
143 | 143 | virtual void machine_reset(); |
144 | 144 | virtual void video_start(); |
145 | 145 | 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); | |
146 | 148 | }; |
147 | 149 | |
148 | 150 | |
r17967 | r17968 | |
203 | 205 | |
204 | 206 | #ifdef UNUSED_DEFINITION |
205 | 207 | |
206 | ||
208 | ||
207 | 209 | { |
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; | |
210 | 211 | char buf[128]; |
211 | 212 | |
212 | 213 | UINT32 color_base = 0; |
213 | 214 | |
214 | if ( | |
215 | if ( | |
215 | 216 | color_base = 0x80; /* 0x80 constant: matches Mazer Blazer movie */ |
216 | 217 | |
217 | if ( | |
218 | if ( | |
218 | 219 | color_base = 0x00; |
219 | 220 | |
220 | 221 | bitmap.fill(0); |
221 | 222 | // logerror("-->frame\n"); |
222 | 223 | |
223 | 224 | if (planes_enabled[3]) |
224 | copybitmap(bitmap, | |
225 | copybitmap(bitmap, | |
225 | 226 | |
226 | 227 | if (planes_enabled[2]) |
227 | copybitmap_trans(bitmap, | |
228 | copybitmap_trans(bitmap, | |
228 | 229 | |
229 | | |
230 | | |
230 | 231 | |
231 | 232 | if (planes_enabled[1]) |
232 | copybitmap_trans(bitmap, | |
233 | copybitmap_trans(bitmap, | |
233 | 234 | |
234 | | |
235 | | |
235 | 236 | |
236 | 237 | if (planes_enabled[0]) |
237 | copybitmap_trans(bitmap, | |
238 | copybitmap_trans(bitmap, | |
238 | 239 | |
239 | | |
240 | | |
240 | 241 | |
241 | 242 | if (screen.machine().input().code_pressed_once(KEYCODE_1)) /* plane 1 */ |
242 | 243 | planes_enabled[0] ^= 1; |
r17967 | r17968 | |
251 | 252 | planes_enabled[3] ^= 1; |
252 | 253 | |
253 | 254 | if (screen.machine().input().code_pressed_once(KEYCODE_I)) /* show/hide debug info */ |
254 | | |
255 | | |
255 | 256 | |
256 | 257 | if (screen.machine().input().code_pressed_once(KEYCODE_G)) /* enable gfx area handling */ |
257 | | |
258 | | |
258 | 259 | |
259 | 260 | if (screen.machine().input().code_pressed_once(KEYCODE_C)) /* enable color area handling */ |
260 | | |
261 | | |
261 | 262 | |
262 | 263 | if (screen.machine().input().code_pressed_once(KEYCODE_V)) /* draw only when vbank==dbg_vbank */ |
263 | | |
264 | | |
264 | 265 | |
265 | 266 | if (screen.machine().input().code_pressed_once(KEYCODE_L)) /* showlookup ram */ |
266 | | |
267 | | |
267 | 268 | |
268 | 269 | |
269 | if ( | |
270 | if ( | |
270 | 271 | { |
271 | 272 | sprintf(buf,"I-info, G-gfx, C-color, V-vbank, 1-4 enable planes"); |
272 | 273 | ui_draw_text(buf, 10, 0 * ui_get_line_height(screen.machine())); |
273 | 274 | |
274 | sprintf(buf,"g:%1i c:%1i v:%1i vbk=%1i planes=%1i%1i%1i%1i ", | |
275 | sprintf(buf,"g:%1i c:%1i v:%1i vbk=%1i planes=%1i%1i%1i%1i ", | |
275 | 276 | planes_enabled[0], |
276 | 277 | planes_enabled[1], |
277 | 278 | planes_enabled[2], |
r17967 | r17968 | |
279 | 280 | |
280 | 281 | ui_draw_text(buf, 10, 1 * ui_get_line_height(screen.machine())); |
281 | 282 | |
282 | if ( | |
283 | if ( | |
283 | 284 | { |
284 | int lookup_offs = ( | |
285 | int lookup_offs = ( | |
285 | 286 | int y, x; |
286 | 287 | |
287 | 288 | for (y = 0; y < 16; y++) |
r17967 | r17968 | |
302 | 303 | #endif |
303 | 304 | |
304 | 305 | |
305 | stat | |
306 | UINT32 mazerbla_state::screen | |
306 | 307 | { |
307 | mazerbla_state *state = screen.machine().driver_data<mazerbla_state>(); | |
308 | 308 | // UINT32 color_base = 0; |
309 | 309 | |
310 | if ( | |
310 | if ( | |
311 | 311 | // color_base = 0x80; /* 0x80 constant: matches Mazer Blazer movie */ |
312 | 312 | |
313 | // if ( | |
313 | // if ( | |
314 | 314 | // color_base = 0x00; |
315 | 315 | |
316 | 316 | // bitmap.fill(0); |
317 | 317 | |
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); | |
322 | 322 | return 0; |
323 | 323 | } |
324 | 324 | |
r17967 | r17968 | |
1535 | 1535 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1536 | 1536 | MCFG_SCREEN_SIZE(40*8, 32*8) |
1537 | 1537 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) |
1538 | MCFG_SCREEN_UPDATE_ | |
1538 | MCFG_SCREEN_UPDATE_DR | |
1539 | 1539 | |
1540 | 1540 | MCFG_PALETTE_LENGTH(256) |
1541 | 1541 | |
r17967 | r17968 | |
1571 | 1571 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1572 | 1572 | MCFG_SCREEN_SIZE(40*8, 32*8) |
1573 | 1573 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) |
1574 | MCFG_SCREEN_UPDATE_ | |
1574 | MCFG_SCREEN_UPDATE_DR | |
1575 | 1575 | |
1576 | 1576 | MCFG_PALETTE_LENGTH(256) |
1577 | 1577 |
r17967 | r17968 | |
---|---|---|
1026 | 1026 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1027 | 1027 | MCFG_SCREEN_SIZE(38*8, 32*8) |
1028 | 1028 | MCFG_SCREEN_VISIBLE_AREA(8, 38*8-1-8, 4*8, 32*8-1) |
1029 | MCFG_SCREEN_UPDATE_ | |
1029 | MCFG_SCREEN_UPDATE_DR | |
1030 | 1030 | |
1031 | 1031 | MCFG_PALETTE_LENGTH(0x2000) |
1032 | 1032 |
r17967 | r17968 | |
---|---|---|
1197 | 1197 | MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 1*8, 31*8-1 ) |
1198 | 1198 | |
1199 | 1199 | MCFG_VIDEO_START_OVERRIDE(armedf_state,terraf) |
1200 | MCFG_SCREEN_UPDATE_ | |
1200 | MCFG_SCREEN_UPDATE_DR | |
1201 | 1201 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) |
1202 | 1202 | |
1203 | 1203 | MCFG_GFXDECODE(armedf) |
r17967 | r17968 | |
1246 | 1246 | MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 1*8, 31*8-1 ) |
1247 | 1247 | |
1248 | 1248 | MCFG_VIDEO_START_OVERRIDE(armedf_state,terraf) |
1249 | MCFG_SCREEN_UPDATE_ | |
1249 | MCFG_SCREEN_UPDATE_DR | |
1250 | 1250 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) |
1251 | 1251 | |
1252 | 1252 | MCFG_GFXDECODE(armedf) |
r17967 | r17968 | |
1290 | 1290 | MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 1*8, 31*8-1 ) // 320 x 240, trusted |
1291 | 1291 | |
1292 | 1292 | MCFG_VIDEO_START_OVERRIDE(armedf_state,terraf) |
1293 | MCFG_SCREEN_UPDATE_ | |
1293 | MCFG_SCREEN_UPDATE_DR | |
1294 | 1294 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) |
1295 | 1295 | |
1296 | 1296 | MCFG_GFXDECODE(armedf) |
r17967 | r17968 | |
1334 | 1334 | MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 1*8, 31*8-1 ) |
1335 | 1335 | |
1336 | 1336 | MCFG_VIDEO_START_OVERRIDE(armedf_state,armedf) |
1337 | MCFG_SCREEN_UPDATE_ | |
1337 | MCFG_SCREEN_UPDATE_DR | |
1338 | 1338 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) |
1339 | 1339 | |
1340 | 1340 | MCFG_GFXDECODE(armedf) |
r17967 | r17968 | |
1378 | 1378 | MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) |
1379 | 1379 | |
1380 | 1380 | MCFG_VIDEO_START_OVERRIDE(armedf_state,terraf) |
1381 | MCFG_SCREEN_UPDATE_ | |
1381 | MCFG_SCREEN_UPDATE_DR | |
1382 | 1382 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) |
1383 | 1383 | |
1384 | 1384 | MCFG_GFXDECODE(armedf) |
r17967 | r17968 | |
1422 | 1422 | MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) |
1423 | 1423 | |
1424 | 1424 | MCFG_VIDEO_START_OVERRIDE(armedf_state,terraf) |
1425 | MCFG_SCREEN_UPDATE_ | |
1425 | MCFG_SCREEN_UPDATE_DR | |
1426 | 1426 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) |
1427 | 1427 | |
1428 | 1428 | MCFG_GFXDECODE(armedf) |
r17967 | r17968 | |
1466 | 1466 | MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) |
1467 | 1467 | |
1468 | 1468 | MCFG_VIDEO_START_OVERRIDE(armedf_state,terraf) |
1469 | MCFG_SCREEN_UPDATE_ | |
1469 | MCFG_SCREEN_UPDATE_DR | |
1470 | 1470 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) |
1471 | 1471 | |
1472 | 1472 | MCFG_GFXDECODE(armedf) |
r17967 | r17968 | |
1523 | 1523 | MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 1*8, 31*8-1 ) |
1524 | 1524 | |
1525 | 1525 | MCFG_VIDEO_START_OVERRIDE(armedf_state,armedf) |
1526 | MCFG_SCREEN_UPDATE_ | |
1526 | MCFG_SCREEN_UPDATE_DR | |
1527 | 1527 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) |
1528 | 1528 | |
1529 | 1529 | MCFG_GFXDECODE(armedf) |
r17967 | r17968 | |
---|---|---|
258 | 258 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
259 | 259 | MCFG_SCREEN_SIZE(32*8, 28*8) |
260 | 260 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) |
261 | MCFG_SCREEN_UPDATE_ | |
261 | MCFG_SCREEN_UPDATE_DR | |
262 | 262 | |
263 | 263 | MCFG_GFXDECODE(bsktball) |
264 | 264 | MCFG_PALETTE_LENGTH(2*4 + 4*4*4*4) |
r17967 | r17968 | |
---|---|---|
331 | 331 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
332 | 332 | MCFG_SCREEN_SIZE(384, 302) |
333 | 333 | MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 22, 302-1) //dynamic resolution,TODO |
334 | MCFG_SCREEN_UPDATE_ | |
334 | MCFG_SCREEN_UPDATE_DR | |
335 | 335 | |
336 | 336 | MCFG_SCREEN_ADD("lcd", RASTER) |
337 | 337 | MCFG_SCREEN_REFRESH_RATE(60) |
338 | 338 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
339 | 339 | MCFG_SCREEN_SIZE(192, 22) |
340 | 340 | MCFG_SCREEN_VISIBLE_AREA(0, 192-1, 0, 22-1) |
341 | ||
341 | | |
342 | 342 | |
343 | 343 | MCFG_PALETTE_LENGTH(0x100) |
344 | 344 |
r17967 | r17968 | |
---|---|---|
57 | 57 | virtual void machine_reset(); |
58 | 58 | virtual void video_start(); |
59 | 59 | virtual void palette_init(); |
60 | UINT32 screen_update_itgambl3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
60 | 61 | }; |
61 | 62 | |
62 | 63 | |
r17967 | r17968 | |
72 | 73 | } |
73 | 74 | |
74 | 75 | /* (dirty) debug code for looking 8bpps blitter-based gfxs */ |
75 | stat | |
76 | UINT32 itgambl3_state::screen | |
76 | 77 | { |
77 | itgambl3_state *state = screen.machine().driver_data<itgambl3_state>(); | |
78 | 78 | int x,y,count; |
79 | const UINT8 *blit_ram = | |
79 | const UINT8 *blit_ram = | |
80 | 80 | |
81 | 81 | if(screen.machine().input().code_pressed(KEYCODE_Z)) |
82 | | |
82 | | |
83 | 83 | |
84 | 84 | if(screen.machine().input().code_pressed(KEYCODE_X)) |
85 | | |
85 | | |
86 | 86 | |
87 | 87 | if(screen.machine().input().code_pressed(KEYCODE_A)) |
88 | | |
88 | | |
89 | 89 | |
90 | 90 | if(screen.machine().input().code_pressed(KEYCODE_S)) |
91 | | |
91 | | |
92 | 92 | |
93 | 93 | if(screen.machine().input().code_pressed(KEYCODE_Q)) |
94 | | |
94 | | |
95 | 95 | |
96 | 96 | if(screen.machine().input().code_pressed(KEYCODE_W)) |
97 | | |
97 | | |
98 | 98 | |
99 | 99 | if(screen.machine().input().code_pressed(KEYCODE_E)) |
100 | | |
100 | | |
101 | 101 | |
102 | 102 | if(screen.machine().input().code_pressed(KEYCODE_R)) |
103 | | |
103 | | |
104 | 104 | |
105 | popmessage("%d %d %04x", | |
105 | popmessage("%d %d %04x", | |
106 | 106 | |
107 | 107 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
108 | 108 | |
109 | count = ( | |
109 | count = ( | |
110 | 110 | |
111 | for(y=0;y< | |
111 | for(y=0;y< | |
112 | 112 | { |
113 | for(x=0;x< | |
113 | for(x=0;x< | |
114 | 114 | { |
115 | 115 | UINT32 color; |
116 | 116 | |
r17967 | r17968 | |
262 | 262 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
263 | 263 | MCFG_SCREEN_SIZE(512, 256) |
264 | 264 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) |
265 | MCFG_SCREEN_UPDATE_ | |
265 | MCFG_SCREEN_UPDATE_DR | |
266 | 266 | |
267 | 267 | |
268 | 268 | MCFG_GFXDECODE(itgambl3) |
r17967 | r17968 | |
---|---|---|
1661 | 1661 | /* video hardware */ |
1662 | 1662 | MCFG_SCREEN_ADD("screen", RASTER) |
1663 | 1663 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
1664 | ||
1664 | | |
1665 | 1665 | |
1666 | 1666 | MCFG_GFXDECODE(dkong) |
1667 | 1667 | MCFG_PALETTE_LENGTH(DK2B_PALETTE_LENGTH) |
r17967 | r17968 | |
1724 | 1724 | /* video hardware */ |
1725 | 1725 | MCFG_SCREEN_ADD("screen", RASTER) |
1726 | 1726 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
1727 | ||
1727 | | |
1728 | 1728 | |
1729 | 1729 | MCFG_GFXDECODE(dkong) |
1730 | 1730 | MCFG_PALETTE_LENGTH(DK3_PALETTE_LENGTH) |
r17967 | r17968 | |
1752 | 1752 | MCFG_PALETTE_LENGTH(DK2B_PALETTE_LENGTH) |
1753 | 1753 | MCFG_PALETTE_INIT_OVERRIDE(dkong_state,dkong2b) /* wrong! */ |
1754 | 1754 | MCFG_SCREEN_MODIFY("screen") |
1755 | ||
1755 | | |
1756 | 1756 | |
1757 | 1757 | MACHINE_CONFIG_END |
1758 | 1758 | |
r17967 | r17968 | |
1790 | 1790 | |
1791 | 1791 | /* video hardware */ |
1792 | 1792 | MCFG_SCREEN_MODIFY("screen") |
1793 | ||
1793 | | |
1794 | 1794 | |
1795 | 1795 | MACHINE_CONFIG_END |
1796 | 1796 |
r17967 | r17968 | |
---|---|---|
39 | 39 | DECLARE_DRIVER_INIT(sidewndr); |
40 | 40 | virtual void video_start(); |
41 | 41 | virtual void palette_init(); |
42 | UINT32 screen_update_acefruit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
42 | 43 | }; |
43 | 44 | |
44 | 45 | |
r17967 | r17968 | |
89 | 90 | state->m_refresh_timer->adjust( attotime::zero ); |
90 | 91 | } |
91 | 92 | |
92 | stat | |
93 | UINT32 acefruit_state::screen | |
93 | 94 | { |
94 | acefruit_state *state = screen.machine().driver_data<acefruit_state>(); | |
95 | 95 | int startrow = cliprect.min_y / 8; |
96 | 96 | int endrow = cliprect.max_y / 8; |
97 | 97 | int row; |
r17967 | r17968 | |
106 | 106 | for( col = 0; col < 32; col++ ) |
107 | 107 | { |
108 | 108 | 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 ]; | |
111 | 111 | |
112 | 112 | if( color < 0x4 ) |
113 | 113 | { |
r17967 | r17968 | |
123 | 123 | |
124 | 124 | for( x = 0; x < 16; x++ ) |
125 | 125 | { |
126 | int sprite = ( | |
126 | int sprite = ( | |
127 | 127 | const UINT8 *gfxdata = gfx->get_data(sprite); |
128 | 128 | |
129 | 129 | for( y = 0; y < 8; y++ ) |
r17967 | r17968 | |
592 | 592 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
593 | 593 | MCFG_SCREEN_SIZE(512, 256) |
594 | 594 | MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 255) |
595 | MCFG_SCREEN_UPDATE_ | |
595 | MCFG_SCREEN_UPDATE_DR | |
596 | 596 | |
597 | 597 | MCFG_PALETTE_LENGTH(16) |
598 | 598 |
r17967 | r17968 | |
---|---|---|
404 | 404 | /* video hardware */ |
405 | 405 | MCFG_SCREEN_ADD("screen", RASTER) |
406 | 406 | 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) | |
409 | 409 | |
410 | 410 | MCFG_GFXDECODE(sprint4) |
411 | 411 | MCFG_PALETTE_LENGTH(10) |
r17967 | r17968 | |
---|---|---|
475 | 475 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
476 | 476 | MCFG_SCREEN_SIZE(32*8, 32*8) |
477 | 477 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
478 | MCFG_SCREEN_UPDATE_ | |
478 | MCFG_SCREEN_UPDATE_DR | |
479 | 479 | |
480 | 480 | MCFG_GFXDECODE(appoooh) |
481 | 481 | MCFG_PALETTE_LENGTH(32*8+32*8) |
r17967 | r17968 | |
493 | 493 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
494 | 494 | MCFG_SCREEN_SIZE(32*8, 32*8) |
495 | 495 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
496 | MCFG_SCREEN_UPDATE_ | |
496 | MCFG_SCREEN_UPDATE_DR | |
497 | 497 | |
498 | 498 | MCFG_GFXDECODE(robowres) |
499 | 499 | MCFG_PALETTE_LENGTH(32*8+32*8) |
r17967 | r17968 | |
---|---|---|
312 | 312 | /* talks about 55Hz and 1790ms vblank duration. */ |
313 | 313 | MCFG_SCREEN_SIZE(32*8, 32*8) |
314 | 314 | MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 0*8, 32*8-1) |
315 | MCFG_SCREEN_UPDATE_ | |
315 | MCFG_SCREEN_UPDATE_DR | |
316 | 316 | |
317 | 317 | MCFG_GFXDECODE(travrusa) |
318 | 318 |
r17967 | r17968 | |
---|---|---|
297 | 297 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // we're using PORT_VBLANK |
298 | 298 | MCFG_SCREEN_SIZE(32*8, 32*8) |
299 | 299 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 30*8-1) |
300 | MCFG_SCREEN_UPDATE_ | |
300 | MCFG_SCREEN_UPDATE_DR | |
301 | 301 | |
302 | 302 | MCFG_GFXDECODE(metlclsh) |
303 | 303 | MCFG_PALETTE_LENGTH(3 * 16) |
r17967 | r17968 | |
---|---|---|
5865 | 5865 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
5866 | 5866 | MCFG_SCREEN_SIZE(64*8, 32*8) |
5867 | 5867 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) |
5868 | MCFG_SCREEN_UPDATE_ | |
5868 | MCFG_SCREEN_UPDATE_DR | |
5869 | 5869 | |
5870 | 5870 | MCFG_GFXDECODE(goldstar) |
5871 | 5871 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
5899 | 5899 | // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
5900 | 5900 | MCFG_SCREEN_SIZE(64*8, 32*8) |
5901 | 5901 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) |
5902 | MCFG_SCREEN_UPDATE_ | |
5902 | MCFG_SCREEN_UPDATE_DR | |
5903 | 5903 | |
5904 | 5904 | MCFG_GFXDECODE(bl) |
5905 | 5905 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
5932 | 5932 | // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
5933 | 5933 | MCFG_SCREEN_SIZE(64*8, 32*8) |
5934 | 5934 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) |
5935 | MCFG_SCREEN_UPDATE_ | |
5935 | MCFG_SCREEN_UPDATE_DR | |
5936 | 5936 | |
5937 | 5937 | MCFG_GFXDECODE(ml) |
5938 | 5938 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
6031 | 6031 | // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
6032 | 6032 | MCFG_SCREEN_SIZE(64*8, 32*8) |
6033 | 6033 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) |
6034 | MCFG_SCREEN_UPDATE_ | |
6034 | MCFG_SCREEN_UPDATE_DR | |
6035 | 6035 | |
6036 | 6036 | MCFG_GFXDECODE(chry10) |
6037 | 6037 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
6073 | 6073 | // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
6074 | 6074 | MCFG_SCREEN_SIZE(64*8, 32*8) |
6075 | 6075 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) |
6076 | MCFG_SCREEN_UPDATE_ | |
6076 | MCFG_SCREEN_UPDATE_DR | |
6077 | 6077 | |
6078 | 6078 | MCFG_GFXDECODE(cb3c) |
6079 | 6079 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
6114 | 6114 | // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
6115 | 6115 | MCFG_SCREEN_SIZE(64*8, 32*8) |
6116 | 6116 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) |
6117 | MCFG_SCREEN_UPDATE_ | |
6117 | MCFG_SCREEN_UPDATE_DR | |
6118 | 6118 | |
6119 | 6119 | MCFG_GFXDECODE(ncb3) |
6120 | 6120 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
6155 | 6155 | // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
6156 | 6156 | MCFG_SCREEN_SIZE(64*8, 32*8) |
6157 | 6157 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) |
6158 | MCFG_SCREEN_UPDATE_ | |
6158 | MCFG_SCREEN_UPDATE_DR | |
6159 | 6159 | |
6160 | 6160 | MCFG_GFXDECODE(cmbitmap) |
6161 | 6161 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
6195 | 6195 | // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
6196 | 6196 | MCFG_SCREEN_SIZE(64*8, 32*8) |
6197 | 6197 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) |
6198 | MCFG_SCREEN_UPDATE_ | |
6198 | MCFG_SCREEN_UPDATE_DR | |
6199 | 6199 | |
6200 | 6200 | MCFG_GFXDECODE(cm) |
6201 | 6201 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
6230 | 6230 | // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
6231 | 6231 | MCFG_SCREEN_SIZE(64*8, 32*8) |
6232 | 6232 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 1*8, 31*8-1) |
6233 | MCFG_SCREEN_UPDATE_ | |
6233 | MCFG_SCREEN_UPDATE_DR | |
6234 | 6234 | |
6235 | 6235 | MCFG_GFXDECODE(cmast91) |
6236 | 6236 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
6274 | 6274 | MCFG_SCREEN_SIZE(64*8, 32*8) |
6275 | 6275 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) |
6276 | 6276 | MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8) |
6277 | MCFG_SCREEN_UPDATE_ | |
6277 | MCFG_SCREEN_UPDATE_DR | |
6278 | 6278 | |
6279 | 6279 | MCFG_GFXDECODE(ncb3) |
6280 | 6280 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
6314 | 6314 | MCFG_SCREEN_SIZE(64*8, 32*8) |
6315 | 6315 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) |
6316 | 6316 | MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8) |
6317 | MCFG_SCREEN_UPDATE_ | |
6317 | MCFG_SCREEN_UPDATE_DR | |
6318 | 6318 | |
6319 | 6319 | MCFG_GFXDECODE(ncb3) |
6320 | 6320 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
6354 | 6354 | MCFG_SCREEN_SIZE(64*8, 32*8) |
6355 | 6355 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) |
6356 | 6356 | MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8) |
6357 | MCFG_SCREEN_UPDATE_ | |
6357 | MCFG_SCREEN_UPDATE_DR | |
6358 | 6358 | |
6359 | 6359 | MCFG_GFXDECODE(bingownga) /* GFX Decode is the only difference with the parent machine */ |
6360 | 6360 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
6410 | 6410 | // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
6411 | 6411 | MCFG_SCREEN_SIZE(64*8, 32*8) |
6412 | 6412 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) |
6413 | MCFG_SCREEN_UPDATE_ | |
6413 | MCFG_SCREEN_UPDATE_DR | |
6414 | 6414 | MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,magodds) |
6415 | 6415 | |
6416 | 6416 | MCFG_GFXDECODE(magodds) |
r17967 | r17968 | |
6452 | 6452 | // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
6453 | 6453 | MCFG_SCREEN_SIZE(64*8, 32*8) |
6454 | 6454 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) |
6455 | MCFG_SCREEN_UPDATE_ | |
6455 | MCFG_SCREEN_UPDATE_DR | |
6456 | 6456 | MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8) |
6457 | 6457 | |
6458 | 6458 | MCFG_GFXDECODE(ncb3) |
r17967 | r17968 | |
6488 | 6488 | // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
6489 | 6489 | MCFG_SCREEN_SIZE(64*8, 32*8) |
6490 | 6490 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) |
6491 | MCFG_SCREEN_UPDATE_ | |
6491 | MCFG_SCREEN_UPDATE_DR | |
6492 | 6492 | MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8) |
6493 | 6493 | |
6494 | 6494 | MCFG_GFXDECODE(ncb3) |
r17967 | r17968 | |
6529 | 6529 | // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
6530 | 6530 | MCFG_SCREEN_SIZE(64*8, 32*8) |
6531 | 6531 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) |
6532 | MCFG_SCREEN_UPDATE_ | |
6532 | MCFG_SCREEN_UPDATE_DR | |
6533 | 6533 | MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8) |
6534 | 6534 | |
6535 | 6535 | MCFG_GFXDECODE(ncb3) |
r17967 | r17968 | |
6571 | 6571 | // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
6572 | 6572 | MCFG_SCREEN_SIZE(64*8, 32*8) |
6573 | 6573 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) |
6574 | MCFG_SCREEN_UPDATE_ | |
6574 | MCFG_SCREEN_UPDATE_DR | |
6575 | 6575 | |
6576 | 6576 | MCFG_GFXDECODE(cm) |
6577 | 6577 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
6610 | 6610 | // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
6611 | 6611 | MCFG_SCREEN_SIZE(64*8, 32*8) |
6612 | 6612 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) |
6613 | MCFG_SCREEN_UPDATE_ | |
6613 | MCFG_SCREEN_UPDATE_DR | |
6614 | 6614 | |
6615 | 6615 | MCFG_GFXDECODE(cm) |
6616 | 6616 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
6649 | 6649 | // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
6650 | 6650 | MCFG_SCREEN_SIZE(64*8, 32*8) |
6651 | 6651 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) |
6652 | MCFG_SCREEN_UPDATE_ | |
6652 | MCFG_SCREEN_UPDATE_DR | |
6653 | 6653 | |
6654 | 6654 | MCFG_GFXDECODE(cm) |
6655 | 6655 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
6683 | 6683 | // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
6684 | 6684 | MCFG_SCREEN_SIZE(64*8, 32*8) |
6685 | 6685 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) |
6686 | MCFG_SCREEN_UPDATE_ | |
6686 | MCFG_SCREEN_UPDATE_DR | |
6687 | 6687 | |
6688 | 6688 | MCFG_GFXDECODE(nfm) |
6689 | 6689 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
6714 | 6714 | // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
6715 | 6715 | MCFG_SCREEN_SIZE(64*8, 32*8) |
6716 | 6716 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 1*8, 31*8-1) |
6717 | MCFG_SCREEN_UPDATE_ | |
6717 | MCFG_SCREEN_UPDATE_DR | |
6718 | 6718 | |
6719 | 6719 | MCFG_GFXDECODE(unkch) |
6720 | 6720 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
6762 | 6762 | // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
6763 | 6763 | MCFG_SCREEN_SIZE(64*8, 32*8) |
6764 | 6764 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) |
6765 | MCFG_SCREEN_UPDATE_ | |
6765 | MCFG_SCREEN_UPDATE_DR | |
6766 | 6766 | |
6767 | 6767 | MCFG_GFXDECODE(pkrmast) |
6768 | 6768 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
398 | 398 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
399 | 399 | MCFG_SCREEN_SIZE(64*8, 40*8) |
400 | 400 | MCFG_SCREEN_VISIBLE_AREA(0, 48*8-1, 0, 32*8-1) |
401 | MCFG_SCREEN_UPDATE_ | |
401 | MCFG_SCREEN_UPDATE_DR | |
402 | 402 | |
403 | 403 | MCFG_GFXDECODE(dbz) |
404 | 404 |
r17967 | r17968 | |
---|---|---|
108 | 108 | TILE_GET_INFO_MEMBER(get_reel_3_tile_info); |
109 | 109 | TILE_GET_INFO_MEMBER(get_reel_4_tile_info); |
110 | 110 | virtual void video_start(); |
111 | UINT32 screen_update_skylncr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
111 | 112 | }; |
112 | 113 | |
113 | 114 | |
r17967 | r17968 | |
182 | 183 | } |
183 | 184 | |
184 | 185 | |
185 | stat | |
186 | UINT32 skylncr_state::screen | |
186 | 187 | { |
187 | skylncr_state *state = screen.machine().driver_data<skylncr_state>(); | |
188 | 188 | int i; |
189 | 189 | |
190 | 190 | bitmap.fill(0, cliprect); |
191 | | |
191 | | |
192 | 192 | |
193 | 193 | // are these hardcoded, or registers? |
194 | 194 | const rectangle visible1(0*8, (20+48)*8-1, 4*8, (4+7)*8-1); |
r17967 | r17968 | |
197 | 197 | |
198 | 198 | for (i= 0;i < 64;i++) |
199 | 199 | { |
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]); | |
203 | 203 | } |
204 | 204 | |
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); | |
208 | 208 | |
209 | 209 | |
210 | | |
210 | | |
211 | 211 | return 0; |
212 | 212 | } |
213 | 213 | |
r17967 | r17968 | |
726 | 726 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
727 | 727 | MCFG_SCREEN_SIZE(512, 256) |
728 | 728 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) |
729 | MCFG_SCREEN_UPDATE_ | |
729 | MCFG_SCREEN_UPDATE_DR | |
730 | 730 | |
731 | 731 | MCFG_GFXDECODE(skylncr) |
732 | 732 | MCFG_PALETTE_LENGTH(0x200) |
r17967 | r17968 | |
---|---|---|
419 | 419 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */ /* frames per second, vblank duration */) |
420 | 420 | MCFG_SCREEN_SIZE(32*8, 32*8) |
421 | 421 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
422 | MCFG_SCREEN_UPDATE_ | |
422 | MCFG_SCREEN_UPDATE_DR | |
423 | 423 | |
424 | 424 | MCFG_GFXDECODE(seicross) |
425 | 425 | MCFG_PALETTE_LENGTH(64) |
r17967 | r17968 | |
---|---|---|
360 | 360 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
361 | 361 | MCFG_SCREEN_SIZE(64*8, 32*8) |
362 | 362 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) |
363 | MCFG_SCREEN_UPDATE_ | |
363 | MCFG_SCREEN_UPDATE_DR | |
364 | 364 | |
365 | 365 | MCFG_GFXDECODE(spbactn) |
366 | 366 | MCFG_PALETTE_LENGTH(0x2800/2) |
r17967 | r17968 | |
---|---|---|
2027 | 2027 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2028 | 2028 | MCFG_SCREEN_SIZE(40*8, 28*8) |
2029 | 2029 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) |
2030 | MCFG_SCREEN_UPDATE_ | |
2030 | MCFG_SCREEN_UPDATE_DR | |
2031 | 2031 | |
2032 | 2032 | MCFG_GFXDECODE(sys16) |
2033 | 2033 | MCFG_PALETTE_LENGTH(2048*SHADOW_COLORS_MULTIPLIER) |
r17967 | r17968 | |
2108 | 2108 | |
2109 | 2109 | MCFG_VIDEO_START_OVERRIDE(segas1x_bootleg_state, s16a_bootleg_shinobi ) |
2110 | 2110 | MCFG_SCREEN_MODIFY("screen") |
2111 | MCFG_SCREEN_UPDATE_ | |
2111 | MCFG_SCREEN_UPDATE_DR | |
2112 | 2112 | MACHINE_CONFIG_END |
2113 | 2113 | |
2114 | 2114 | static MACHINE_CONFIG_DERIVED( passshtb, system16_7759 ) |
r17967 | r17968 | |
2123 | 2123 | |
2124 | 2124 | MCFG_VIDEO_START_OVERRIDE(segas1x_bootleg_state, s16a_bootleg_passsht ) |
2125 | 2125 | MCFG_SCREEN_MODIFY("screen") |
2126 | MCFG_SCREEN_UPDATE_ | |
2126 | MCFG_SCREEN_UPDATE_DR | |
2127 | 2127 | MACHINE_CONFIG_END |
2128 | 2128 | |
2129 | 2129 | |
r17967 | r17968 | |
2140 | 2140 | |
2141 | 2141 | MCFG_VIDEO_START_OVERRIDE(segas1x_bootleg_state, s16a_bootleg_passsht ) |
2142 | 2142 | MCFG_SCREEN_MODIFY("screen") |
2143 | MCFG_SCREEN_UPDATE_ | |
2143 | MCFG_SCREEN_UPDATE_DR | |
2144 | 2144 | MACHINE_CONFIG_END |
2145 | 2145 | |
2146 | 2146 | static MACHINE_CONFIG_DERIVED( wb3bb, system16 ) |
r17967 | r17968 | |
2156 | 2156 | |
2157 | 2157 | MCFG_VIDEO_START_OVERRIDE(segas1x_bootleg_state, s16a_bootleg_wb3bl ) |
2158 | 2158 | MCFG_SCREEN_MODIFY("screen") |
2159 | MCFG_SCREEN_UPDATE_ | |
2159 | MCFG_SCREEN_UPDATE_DR | |
2160 | 2160 | MACHINE_CONFIG_END |
2161 | 2161 | |
2162 | 2162 | |
r17967 | r17968 | |
2174 | 2174 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2175 | 2175 | MCFG_SCREEN_SIZE(40*8, 28*8) |
2176 | 2176 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) |
2177 | MCFG_SCREEN_UPDATE_ | |
2177 | MCFG_SCREEN_UPDATE_DR | |
2178 | 2178 | |
2179 | 2179 | MCFG_GFXDECODE(sys16) |
2180 | 2180 | MCFG_PALETTE_LENGTH(2048*SHADOW_COLORS_MULTIPLIER) |
r17967 | r17968 | |
2307 | 2307 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2308 | 2308 | MCFG_SCREEN_SIZE(40*8, 28*8) |
2309 | 2309 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) |
2310 | MCFG_SCREEN_UPDATE_ | |
2310 | MCFG_SCREEN_UPDATE_DR | |
2311 | 2311 | |
2312 | 2312 | MCFG_GFXDECODE(sys16) |
2313 | 2313 | MCFG_PALETTE_LENGTH((2048+2048)*SHADOW_COLORS_MULTIPLIER) // 64 extra colours for vdp (but we use 2048 so shadow mask works) |
r17967 | r17968 | |
---|---|---|
87 | 87 | TILE_GET_INFO_MEMBER(get_md_tile_info); |
88 | 88 | TILE_GET_INFO_MEMBER(get_fg_tile_info); |
89 | 89 | virtual void video_start(); |
90 | UINT32 screen_update_limenko(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
90 | 91 | }; |
91 | 92 | |
92 | 93 | |
r17967 | r17968 | |
514 | 515 | m_sprites_bitmap_pri.allocate(384,240); |
515 | 516 | } |
516 | 517 | |
517 | static | |
518 | UINT32 limenko_state::screen_update_limenko(screen_device &screen, bitmap_ind | |
518 | 519 | { |
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 ?) | |
521 | 521 | |
522 | 522 | screen.machine().priority_bitmap.fill(0, cliprect); |
523 | 523 | |
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); | |
527 | 527 | |
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); | |
531 | 531 | |
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); | |
535 | 535 | |
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); | |
539 | 539 | |
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); | |
542 | 542 | |
543 | 543 | return 0; |
544 | 544 | } |
r17967 | r17968 | |
762 | 762 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
763 | 763 | MCFG_SCREEN_SIZE(384, 240) |
764 | 764 | MCFG_SCREEN_VISIBLE_AREA(0, 383, 0, 239) |
765 | MCFG_SCREEN_UPDATE_ | |
765 | MCFG_SCREEN_UPDATE_DR | |
766 | 766 | |
767 | 767 | MCFG_GFXDECODE(limenko) |
768 | 768 | MCFG_PALETTE_LENGTH(0x1000) |
r17967 | r17968 | |
793 | 793 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
794 | 794 | MCFG_SCREEN_SIZE(384, 240) |
795 | 795 | MCFG_SCREEN_VISIBLE_AREA(0, 383, 0, 239) |
796 | MCFG_SCREEN_UPDATE_ | |
796 | MCFG_SCREEN_UPDATE_DR | |
797 | 797 | |
798 | 798 | MCFG_GFXDECODE(limenko) |
799 | 799 | MCFG_PALETTE_LENGTH(0x1000) |
r17967 | r17968 | |
---|---|---|
391 | 391 | |
392 | 392 | MCFG_SCREEN_ADD("screen", RASTER) |
393 | 393 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
394 | MCFG_SCREEN_UPDATE_ | |
394 | MCFG_SCREEN_UPDATE_DR | |
395 | 395 | |
396 | 396 | MCFG_PALETTE_INIT_OVERRIDE(pengo_state,pacman) |
397 | 397 | MCFG_VIDEO_START_OVERRIDE(pengo_state,pengo) |
r17967 | r17968 | |
---|---|---|
222 | 222 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
223 | 223 | MCFG_SCREEN_SIZE(32*8, 32*8) |
224 | 224 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
225 | MCFG_SCREEN_UPDATE_ | |
225 | MCFG_SCREEN_UPDATE_DR | |
226 | 226 | |
227 | 227 | MCFG_GFXDECODE(prehisle) |
228 | 228 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
326 | 326 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
327 | 327 | MCFG_SCREEN_SIZE(64*8, 32*8) |
328 | 328 | MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) |
329 | MCFG_SCREEN_UPDATE_ | |
329 | MCFG_SCREEN_UPDATE_DR | |
330 | 330 | |
331 | 331 | MCFG_PALETTE_LENGTH(2048) |
332 | 332 |
r17967 | r17968 | |
---|---|---|
337 | 337 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) |
338 | 338 | MCFG_SCREEN_SIZE(32*8, 32*8) |
339 | 339 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
340 | MCFG_SCREEN_UPDATE_ | |
340 | MCFG_SCREEN_UPDATE_DR | |
341 | 341 | |
342 | 342 | MCFG_GFXDECODE(actfan) |
343 | 343 | MCFG_PALETTE_LENGTH(768) |
r17967 | r17968 | |
387 | 387 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) |
388 | 388 | MCFG_SCREEN_SIZE(32*8, 32*8) |
389 | 389 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
390 | MCFG_SCREEN_UPDATE_ | |
390 | MCFG_SCREEN_UPDATE_DR | |
391 | 391 | |
392 | 392 | MCFG_GFXDECODE(triothep) |
393 | 393 | MCFG_PALETTE_LENGTH(768) |
r17967 | r17968 | |
---|---|---|
908 | 908 | /* video hardware */ |
909 | 909 | MCFG_SCREEN_ADD("screen", RASTER) |
910 | 910 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 384, 0, 256, 264, 16, 224+16) |
911 | MCFG_SCREEN_UPDATE_ | |
911 | MCFG_SCREEN_UPDATE_DR | |
912 | 912 | |
913 | 913 | MCFG_GFXDECODE(polepos) |
914 | 914 | MCFG_PALETTE_LENGTH(0x0f00) |
r17967 | r17968 | |
987 | 987 | /* video hardware */ |
988 | 988 | MCFG_SCREEN_ADD("screen", RASTER) |
989 | 989 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 384, 0, 256, 264, 16, 224+16) |
990 | MCFG_SCREEN_UPDATE_ | |
990 | MCFG_SCREEN_UPDATE_DR | |
991 | 991 | |
992 | 992 | MCFG_GFXDECODE(polepos) |
993 | 993 | MCFG_PALETTE_LENGTH(0x0f00) |
r17967 | r17968 | |
---|---|---|
1535 | 1535 | |
1536 | 1536 | MCFG_SCREEN_ADD("screen", RASTER) |
1537 | 1537 | 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) | |
1540 | 1540 | |
1541 | 1541 | MCFG_PALETTE_LENGTH(8192) |
1542 | 1542 | |
r17967 | r17968 | |
1584 | 1584 | |
1585 | 1585 | MCFG_SCREEN_ADD("screen", RASTER) |
1586 | 1586 | 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) | |
1589 | 1589 | |
1590 | 1590 | MCFG_PALETTE_LENGTH(8192) |
1591 | 1591 |
r17967 | r17968 | |
---|---|---|
345 | 345 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(30 * 1000000 / 15681)) |
346 | 346 | MCFG_SCREEN_SIZE(512, 524) |
347 | 347 | 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) | |
350 | 350 | |
351 | 351 | MCFG_GFXDECODE(tank8) |
352 | 352 | MCFG_PALETTE_LENGTH(20) |
r17967 | r17968 | |
---|---|---|
68 | 68 | DECLARE_READ8_MEMBER(timer_r); |
69 | 69 | virtual void video_start(); |
70 | 70 | virtual void palette_init(); |
71 | UINT32 screen_update_unclepoo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
71 | 72 | }; |
72 | 73 | |
73 | 74 | |
r17967 | r17968 | |
75 | 76 | { |
76 | 77 | } |
77 | 78 | |
78 | stat | |
79 | UINT32 poo_state::screen | |
79 | 80 | { |
80 | poo_state *state = screen.machine().driver_data<poo_state>(); | |
81 | 81 | int y,x; |
82 | 82 | int count; |
83 | 83 | gfx_element *gfx = screen.machine().gfx[0]; |
r17967 | r17968 | |
88 | 88 | { |
89 | 89 | for (y=0;y<32;y++) |
90 | 90 | { |
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]); | |
94 | 94 | |
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); | |
97 | 97 | |
98 | 98 | count++; |
99 | 99 | } |
r17967 | r17968 | |
104 | 104 | |
105 | 105 | for(i=0;i<0x80;i+=4) |
106 | 106 | { |
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; | |
111 | 111 | fx = 0; |
112 | 112 | fy = 0; |
113 | 113 | |
r17967 | r17968 | |
353 | 353 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
354 | 354 | MCFG_SCREEN_SIZE(256, 256) |
355 | 355 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-1) |
356 | MCFG_SCREEN_UPDATE_ | |
356 | MCFG_SCREEN_UPDATE_DR | |
357 | 357 | |
358 | 358 | MCFG_GFXDECODE(unclepoo) |
359 | 359 | MCFG_PALETTE_LENGTH(0x100) |
r17967 | r17968 | |
---|---|---|
47 | 47 | DECLARE_DRIVER_INIT(galaxygame); |
48 | 48 | virtual void machine_reset(); |
49 | 49 | virtual void palette_init(); |
50 | UINT32 screen_update_galaxygame(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
50 | 51 | }; |
51 | 52 | |
52 | 53 | /************************************* |
r17967 | r17968 | |
168 | 169 | * |
169 | 170 | *************************************/ |
170 | 171 | |
171 | stat | |
172 | UINT32 galaxygame_state::screen | |
172 | 173 | { |
173 | galaxygame_state *state = screen.machine().driver_data<galaxygame_state>(); | |
174 | 174 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
175 | for (int i = 0; i < | |
175 | for (int i = 0; i < | |
176 | 176 | { |
177 | bitmap.pix16( | |
177 | bitmap.pix16( | |
178 | 178 | } |
179 | 179 | return 0; |
180 | 180 | } |
r17967 | r17968 | |
339 | 339 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
340 | 340 | MCFG_SCREEN_SIZE(512, 512) |
341 | 341 | MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 511) |
342 | MCFG_SCREEN_UPDATE_ | |
342 | MCFG_SCREEN_UPDATE_DR | |
343 | 343 | |
344 | 344 | MCFG_PALETTE_LENGTH(2) |
345 | 345 |
r17967 | r17968 | |
---|---|---|
690 | 690 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
691 | 691 | MCFG_SCREEN_SIZE(64*8, 32*8) |
692 | 692 | MCFG_SCREEN_VISIBLE_AREA(40, 40+384-1, 16, 16+224-1) |
693 | MCFG_SCREEN_UPDATE_ | |
693 | MCFG_SCREEN_UPDATE_DR | |
694 | 694 | |
695 | 695 | MCFG_PALETTE_LENGTH(2048) |
696 | 696 | |
r17967 | r17968 | |
731 | 731 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
732 | 732 | MCFG_SCREEN_SIZE(64*8, 32*8) |
733 | 733 | MCFG_SCREEN_VISIBLE_AREA(40, 40+384-1, 16, 16+224-1) |
734 | MCFG_SCREEN_UPDATE_ | |
734 | MCFG_SCREEN_UPDATE_DR | |
735 | 735 | |
736 | 736 | MCFG_PALETTE_LENGTH(2048) |
737 | 737 |
r17967 | r17968 | |
---|---|---|
148 | 148 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
149 | 149 | MCFG_SCREEN_SIZE(32*8, 32*8) |
150 | 150 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) |
151 | MCFG_SCREEN_UPDATE_ | |
151 | MCFG_SCREEN_UPDATE_DR | |
152 | 152 | |
153 | 153 | MCFG_GFXDECODE(starcrus) |
154 | 154 | MCFG_PALETTE_LENGTH(2) |
r17967 | r17968 | |
---|---|---|
3067 | 3067 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3068 | 3068 | MCFG_SCREEN_SIZE(64*8, 32*8) |
3069 | 3069 | 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) | |
3072 | 3072 | |
3073 | 3073 | MCFG_GFXDECODE(cps1) |
3074 | 3074 | MCFG_PALETTE_LENGTH(0xc00) |
r17967 | r17968 | |
3151 | 3151 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3152 | 3152 | MCFG_SCREEN_SIZE(64*8, 32*8) |
3153 | 3153 | 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) | |
3156 | 3156 | |
3157 | 3157 | MCFG_GFXDECODE(cps1) |
3158 | 3158 | MCFG_PALETTE_LENGTH(0xc00) |
r17967 | r17968 | |
3225 | 3225 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3226 | 3226 | MCFG_SCREEN_SIZE(64*8, 32*8) |
3227 | 3227 | 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) | |
3230 | 3230 | |
3231 | 3231 | MCFG_GFXDECODE(cps1) |
3232 | 3232 | MCFG_PALETTE_LENGTH(0xc00) |
r17967 | r17968 | |
3309 | 3309 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3310 | 3310 | MCFG_SCREEN_SIZE(64*8, 32*8) |
3311 | 3311 | 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) | |
3314 | 3314 | |
3315 | 3315 | MCFG_GFXDECODE(cps1) |
3316 | 3316 | MCFG_PALETTE_LENGTH(0xc00) |
r17967 | r17968 | |
---|---|---|
603 | 603 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
604 | 604 | MCFG_SCREEN_SIZE(0x180, 0xe0) |
605 | 605 | MCFG_SCREEN_VISIBLE_AREA(0+0x20, 0x180-1-0x20, 0, 0xe0-1) |
606 | MCFG_SCREEN_UPDATE_ | |
606 | MCFG_SCREEN_UPDATE_DR | |
607 | 607 | |
608 | 608 | MCFG_GFXDECODE(yunsun16) |
609 | 609 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
641 | 641 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
642 | 642 | MCFG_SCREEN_SIZE(0x180, 0xe0) |
643 | 643 | MCFG_SCREEN_VISIBLE_AREA(0, 0x180-1-4, 0, 0xe0-1) |
644 | MCFG_SCREEN_UPDATE_ | |
644 | MCFG_SCREEN_UPDATE_DR | |
645 | 645 | |
646 | 646 | MCFG_GFXDECODE(yunsun16) |
647 | 647 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
---|---|---|
735 | 735 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */ /* frames per second, vblank duration */) |
736 | 736 | MCFG_SCREEN_SIZE(32*8, 32*8) |
737 | 737 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
738 | MCFG_SCREEN_UPDATE_ | |
738 | MCFG_SCREEN_UPDATE_DR | |
739 | 739 | |
740 | 740 | MCFG_GFXDECODE(wiz) |
741 | 741 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
765 | 765 | /* video hardware */ |
766 | 766 | MCFG_GFXDECODE(stinger) |
767 | 767 | MCFG_SCREEN_MODIFY("screen") |
768 | MCFG_SCREEN_UPDATE_ | |
768 | MCFG_SCREEN_UPDATE_DR | |
769 | 769 | |
770 | 770 | /* sound hardware */ |
771 | 771 | MCFG_DEVICE_REMOVE("8910.3") |
r17967 | r17968 | |
794 | 794 | /* video hardware */ |
795 | 795 | MCFG_GFXDECODE(stinger) |
796 | 796 | MCFG_SCREEN_MODIFY("screen") |
797 | MCFG_SCREEN_UPDATE_ | |
797 | MCFG_SCREEN_UPDATE_DR | |
798 | 798 | |
799 | 799 | MACHINE_CONFIG_END |
800 | 800 |
r17967 | r17968 | |
---|---|---|
681 | 681 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
682 | 682 | MCFG_SCREEN_SIZE(32*8, 32*8) |
683 | 683 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
684 | MCFG_SCREEN_UPDATE_ | |
684 | MCFG_SCREEN_UPDATE_DR | |
685 | 685 | |
686 | 686 | MCFG_GFXDECODE(scobra) |
687 | 687 | MCFG_PALETTE_LENGTH(32+64+2+1) /* 32 for characters, 64 for stars, 2 for bullets, 1 for background */ |
r17967 | r17968 | |
804 | 804 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
805 | 805 | MCFG_SCREEN_SIZE(32*8, 32*8) |
806 | 806 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
807 | MCFG_SCREEN_UPDATE_ | |
807 | MCFG_SCREEN_UPDATE_DR | |
808 | 808 | |
809 | 809 | MCFG_GFXDECODE(scobra) |
810 | 810 | MCFG_PALETTE_LENGTH(32+64+2) /* 32 for characters, 64 for stars, 2 for bullets */ |
r17967 | r17968 | |
---|---|---|
40 | 40 | virtual void machine_start(); |
41 | 41 | virtual void machine_reset(); |
42 | 42 | virtual void video_start(); |
43 | UINT32 screen_update_drtomy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
43 | 44 | }; |
44 | 45 | |
45 | 46 | |
r17967 | r17968 | |
131 | 132 | m_tilemap_fg->set_transparent_pen(0); |
132 | 133 | } |
133 | 134 | |
134 | stat | |
135 | UINT32 drtomy_state::screen | |
135 | 136 | { |
136 | drtomy_state *state = screen.machine().driver_data<drtomy_state>(); | |
137 | 137 | |
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); | |
140 | 140 | draw_sprites(screen.machine(), bitmap, cliprect); |
141 | 141 | return 0; |
142 | 142 | } |
r17967 | r17968 | |
309 | 309 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
310 | 310 | MCFG_SCREEN_SIZE(32*16, 32*16) |
311 | 311 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1) |
312 | MCFG_SCREEN_UPDATE_ | |
312 | MCFG_SCREEN_UPDATE_DR | |
313 | 313 | |
314 | 314 | MCFG_GFXDECODE(drtomy) |
315 | 315 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
112 | 112 | virtual void machine_start(); |
113 | 113 | virtual void machine_reset(); |
114 | 114 | virtual void video_start(); |
115 | UINT32 screen_update_calorie(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
115 | 116 | }; |
116 | 117 | |
117 | 118 | |
r17967 | r17968 | |
150 | 151 | m_fg_tilemap->set_transparent_pen(0); |
151 | 152 | } |
152 | 153 | |
153 | static | |
154 | UINT32 calorie_state::screen_update_calorie(screen_device &screen, bitmap_ind | |
154 | 155 | { |
155 | calorie_state *state = screen.machine().driver_data<calorie_state>(); | |
156 | 156 | int x; |
157 | 157 | |
158 | if ( | |
158 | if ( | |
159 | 159 | { |
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); | |
162 | 162 | } |
163 | 163 | else |
164 | 164 | { |
165 | | |
165 | | |
166 | 166 | } |
167 | 167 | |
168 | 168 | |
r17967 | r17968 | |
170 | 170 | { |
171 | 171 | int xpos, ypos, tileno, color, flipx, flipy; |
172 | 172 | |
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; | |
176 | 176 | 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]; | |
179 | 179 | |
180 | if ( | |
180 | if ( | |
181 | 181 | { |
182 | if ( | |
182 | if ( | |
183 | 183 | ypos = 0xff - ypos + 32; |
184 | 184 | else |
185 | 185 | ypos = 0xff - ypos + 16; |
r17967 | r17968 | |
189 | 189 | flipy = !flipy; |
190 | 190 | } |
191 | 191 | |
192 | if ( | |
192 | if ( | |
193 | 193 | { |
194 | 194 | /* 32x32 sprites */ |
195 | 195 | drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[3], tileno | 0x40, color, flipx, flipy, xpos, ypos - 31, 0); |
r17967 | r17968 | |
456 | 456 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
457 | 457 | MCFG_SCREEN_SIZE(256, 256) |
458 | 458 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1) |
459 | MCFG_SCREEN_UPDATE_ | |
459 | MCFG_SCREEN_UPDATE_DR | |
460 | 460 | |
461 | 461 | MCFG_GFXDECODE(calorie) |
462 | 462 | MCFG_PALETTE_LENGTH(0x100) |
r17967 | r17968 | |
---|---|---|
2094 | 2094 | |
2095 | 2095 | MCFG_SCREEN_ADD("screen", RASTER) |
2096 | 2096 | MCFG_SCREEN_RAW_PARAMS(GALAXIAN_PIXEL_CLOCK, GALAXIAN_HTOTAL, GALAXIAN_HBEND, GALAXIAN_HBSTART, GALAXIAN_VTOTAL, GALAXIAN_VBEND, GALAXIAN_VBSTART) |
2097 | MCFG_SCREEN_UPDATE_ | |
2097 | MCFG_SCREEN_UPDATE_DR | |
2098 | 2098 | |
2099 | 2099 | |
2100 | 2100 | /* blinking frequency is determined by 555 counter with Ra=100k, Rb=10k, C=10uF */ |
r17967 | r17968 | |
---|---|---|
1792 | 1792 | /* video hardware */ |
1793 | 1793 | MCFG_SCREEN_MODIFY("screen") |
1794 | 1794 | MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239) |
1795 | MCFG_SCREEN_UPDATE_ | |
1795 | MCFG_SCREEN_UPDATE_DR | |
1796 | 1796 | MACHINE_CONFIG_END |
1797 | 1797 | |
1798 | 1798 | |
r17967 | r17968 | |
1804 | 1804 | /* video hardware */ |
1805 | 1805 | MCFG_SCREEN_MODIFY("screen") |
1806 | 1806 | MCFG_SCREEN_VISIBLE_AREA(0, 399, 0, 239) |
1807 | MCFG_SCREEN_UPDATE_ | |
1807 | MCFG_SCREEN_UPDATE_DR | |
1808 | 1808 | |
1809 | 1809 | /* palette updater */ |
1810 | 1810 | MCFG_TIMER_ADD_SCANLINE("palette", grmatch_palette_update, "screen", 0, 0) |
r17967 | r17968 | |
1819 | 1819 | /* video hardware */ |
1820 | 1820 | MCFG_SCREEN_MODIFY("screen") |
1821 | 1821 | MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239) |
1822 | MCFG_SCREEN_UPDATE_ | |
1822 | MCFG_SCREEN_UPDATE_DR | |
1823 | 1823 | MACHINE_CONFIG_END |
1824 | 1824 | |
1825 | 1825 | |
r17967 | r17968 | |
1831 | 1831 | /* video hardware */ |
1832 | 1832 | MCFG_SCREEN_MODIFY("screen") |
1833 | 1833 | MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239) |
1834 | MCFG_SCREEN_UPDATE_ | |
1834 | MCFG_SCREEN_UPDATE_DR | |
1835 | 1835 | MACHINE_CONFIG_END |
1836 | 1836 | |
1837 | 1837 | |
r17967 | r17968 | |
1847 | 1847 | /* video hardware */ |
1848 | 1848 | MCFG_SCREEN_MODIFY("screen") |
1849 | 1849 | MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239) |
1850 | MCFG_SCREEN_UPDATE_ | |
1850 | MCFG_SCREEN_UPDATE_DR | |
1851 | 1851 | MCFG_VIDEO_START_OVERRIDE(itech8_state,slikshot) |
1852 | 1852 | MACHINE_CONFIG_END |
1853 | 1853 | |
r17967 | r17968 | |
1864 | 1864 | /* video hardware */ |
1865 | 1865 | MCFG_SCREEN_MODIFY("screen") |
1866 | 1866 | MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239) |
1867 | MCFG_SCREEN_UPDATE_ | |
1867 | MCFG_SCREEN_UPDATE_DR | |
1868 | 1868 | MCFG_VIDEO_START_OVERRIDE(itech8_state,slikshot) |
1869 | 1869 | MACHINE_CONFIG_END |
1870 | 1870 | |
r17967 | r17968 | |
1877 | 1877 | /* video hardware */ |
1878 | 1878 | MCFG_SCREEN_MODIFY("screen") |
1879 | 1879 | MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239) |
1880 | MCFG_SCREEN_UPDATE_ | |
1880 | MCFG_SCREEN_UPDATE_DR | |
1881 | 1881 | MACHINE_CONFIG_END |
1882 | 1882 | |
1883 | 1883 | |
r17967 | r17968 | |
1897 | 1897 | /* video hardware */ |
1898 | 1898 | MCFG_SCREEN_MODIFY("screen") |
1899 | 1899 | MCFG_SCREEN_VISIBLE_AREA(0, 399, 0, 239) |
1900 | MCFG_SCREEN_UPDATE_ | |
1900 | MCFG_SCREEN_UPDATE_DR | |
1901 | 1901 | MACHINE_CONFIG_END |
1902 | 1902 | |
1903 | 1903 | |
r17967 | r17968 | |
1909 | 1909 | /* video hardware */ |
1910 | 1910 | MCFG_SCREEN_MODIFY("screen") |
1911 | 1911 | MCFG_SCREEN_VISIBLE_AREA(0, 399, 0, 239) |
1912 | MCFG_SCREEN_UPDATE_ | |
1912 | MCFG_SCREEN_UPDATE_DR | |
1913 | 1913 | MACHINE_CONFIG_END |
1914 | 1914 | |
1915 | 1915 | |
r17967 | r17968 | |
1925 | 1925 | /* video hardware */ |
1926 | 1926 | MCFG_SCREEN_MODIFY("screen") |
1927 | 1927 | MCFG_SCREEN_VISIBLE_AREA(24, 375, 0, 239) |
1928 | MCFG_SCREEN_UPDATE_ | |
1928 | MCFG_SCREEN_UPDATE_DR | |
1929 | 1929 | MACHINE_CONFIG_END |
1930 | 1930 | |
1931 | 1931 | |
r17967 | r17968 | |
1941 | 1941 | /* video hardware */ |
1942 | 1942 | MCFG_SCREEN_MODIFY("screen") |
1943 | 1943 | MCFG_SCREEN_VISIBLE_AREA(64, 423, 0, 239) |
1944 | MCFG_SCREEN_UPDATE_ | |
1944 | MCFG_SCREEN_UPDATE_DR | |
1945 | 1945 | MACHINE_CONFIG_END |
1946 | 1946 | |
1947 | 1947 | |
r17967 | r17968 | |
1956 | 1956 | /* video hardware */ |
1957 | 1957 | MCFG_SCREEN_MODIFY("screen") |
1958 | 1958 | MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239) |
1959 | MCFG_SCREEN_UPDATE_ | |
1959 | MCFG_SCREEN_UPDATE_DR | |
1960 | 1960 | MACHINE_CONFIG_END |
1961 | 1961 | |
1962 | 1962 |
r17967 | r17968 | |
---|---|---|
666 | 666 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
667 | 667 | MCFG_SCREEN_SIZE(64*8, 32*8) |
668 | 668 | MCFG_SCREEN_VISIBLE_AREA(9*8, 55*8-1, 2*8, 30*8-1) |
669 | MCFG_SCREEN_UPDATE_ | |
669 | MCFG_SCREEN_UPDATE_DR | |
670 | 670 | |
671 | 671 | MCFG_GFXDECODE(kickgoal) |
672 | 672 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
701 | 701 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
702 | 702 | MCFG_SCREEN_SIZE(64*8, 32*8) |
703 | 703 | MCFG_SCREEN_VISIBLE_AREA(10*8+2, 54*8-1+2, 0*8, 30*8-1) |
704 | MCFG_SCREEN_UPDATE_ | |
704 | MCFG_SCREEN_UPDATE_DR | |
705 | 705 | |
706 | 706 | MCFG_GFXDECODE(actionhw) |
707 | 707 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
251 | 251 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) |
252 | 252 | MCFG_SCREEN_SIZE(64*8, 32*8) |
253 | 253 | 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) | |
256 | 256 | |
257 | 257 | MCFG_GFXDECODE(othldrby) |
258 | 258 | MCFG_PALETTE_LENGTH(0x800) |
r17967 | r17968 | |
---|---|---|
659 | 659 | |
660 | 660 | /******************************************************************************/ |
661 | 661 | |
662 | stat | |
662 | void bbusters_state::screen | |
663 | 663 | { |
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); | |
667 | 666 | } |
668 | 667 | |
669 | 668 | static MACHINE_CONFIG_START( bbusters, bbusters_state ) |
r17967 | r17968 | |
684 | 683 | MCFG_SCREEN_REFRESH_RATE(60) |
685 | 684 | MCFG_SCREEN_SIZE(64*8, 32*8) |
686 | 685 | 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) | |
689 | 688 | |
690 | 689 | MCFG_GFXDECODE(bbusters) |
691 | 690 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
722 | 721 | MCFG_SCREEN_REFRESH_RATE(60) |
723 | 722 | MCFG_SCREEN_SIZE(64*8, 32*8) |
724 | 723 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
725 | MCFG_SCREEN_UPDATE_ | |
724 | MCFG_SCREEN_UPDATE_DR | |
726 | 725 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) |
727 | 726 | |
728 | 727 | MCFG_GFXDECODE(mechatt) |
r17967 | r17968 | |
---|---|---|
687 | 687 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
688 | 688 | MCFG_SCREEN_SIZE(320, 224) |
689 | 689 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, FIRST_VISIBLE_LINE, LAST_VISIBLE_LINE) |
690 | MCFG_SCREEN_UPDATE_ | |
690 | MCFG_SCREEN_UPDATE_DR | |
691 | 691 | |
692 | 692 | MCFG_GFXDECODE(14220) |
693 | 693 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
728 | 728 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
729 | 729 | MCFG_SCREEN_SIZE(320, 224) |
730 | 730 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, FIRST_VISIBLE_LINE, LAST_VISIBLE_LINE) |
731 | MCFG_SCREEN_UPDATE_ | |
731 | MCFG_SCREEN_UPDATE_DR | |
732 | 732 | |
733 | 733 | MCFG_GFXDECODE(14220) |
734 | 734 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
---|---|---|
343 | 343 | /* note: these parameters are from published specs, not derived */ |
344 | 344 | /* the board uses an SOS-2 chip to generate video signals */ |
345 | 345 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 456, 0+12, 336+12, 262, 0, 240) |
346 | MCFG_SCREEN_UPDATE_ | |
346 | MCFG_SCREEN_UPDATE_DR | |
347 | 347 | |
348 | 348 | MCFG_VIDEO_START_OVERRIDE(arcadecl_state,arcadecl) |
349 | 349 |
r17967 | r17968 | |
---|---|---|
1102 | 1102 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1103 | 1103 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1104 | 1104 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
1105 | MCFG_SCREEN_UPDATE_ | |
1105 | MCFG_SCREEN_UPDATE_DR | |
1106 | 1106 | |
1107 | 1107 | MCFG_GFXDECODE(flstory) |
1108 | 1108 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
1159 | 1159 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1160 | 1160 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1161 | 1161 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
1162 | MCFG_SCREEN_UPDATE_ | |
1162 | MCFG_SCREEN_UPDATE_DR | |
1163 | 1163 | |
1164 | 1164 | MCFG_GFXDECODE(flstory) |
1165 | 1165 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
1216 | 1216 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1217 | 1217 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1218 | 1218 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
1219 | MCFG_SCREEN_UPDATE_ | |
1219 | MCFG_SCREEN_UPDATE_DR | |
1220 | 1220 | |
1221 | 1221 | MCFG_GFXDECODE(flstory) |
1222 | 1222 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
1279 | 1279 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1280 | 1280 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1281 | 1281 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
1282 | MCFG_SCREEN_UPDATE_ | |
1282 | MCFG_SCREEN_UPDATE_DR | |
1283 | 1283 | |
1284 | 1284 | MCFG_GFXDECODE(flstory) |
1285 | 1285 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
---|---|---|
332 | 332 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2300) /* hand-tuned */) |
333 | 333 | MCFG_SCREEN_SIZE(64*8, 64*8) |
334 | 334 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) |
335 | MCFG_SCREEN_UPDATE_ | |
335 | MCFG_SCREEN_UPDATE_DR | |
336 | 336 | |
337 | 337 | MCFG_PALETTE_LENGTH(0x800) |
338 | 338 |
r17967 | r17968 | |
---|---|---|
2749 | 2749 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2750 | 2750 | MCFG_SCREEN_SIZE((39+1)*8, (31+1)*8) /* Taken from MC6845 init, registers 00 & 04. Normally programmed with (value-1) */ |
2751 | 2751 | 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_ | |
2752 | MCFG_SCREEN_UPDATE_DR | |
2753 | 2753 | |
2754 | 2754 | MCFG_GFXDECODE(calomega) |
2755 | 2755 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
77 | 77 | DECLARE_DRIVER_INIT(kdynastg); |
78 | 78 | virtual void machine_reset(); |
79 | 79 | virtual void video_start(); |
80 | UINT32 screen_update_dgpix(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
80 | 81 | }; |
81 | 82 | |
82 | 83 | |
r17967 | r17968 | |
291 | 292 | m_vram = auto_alloc_array(machine(), UINT32, 0x40000*2/4); |
292 | 293 | } |
293 | 294 | |
294 | stat | |
295 | UINT32 dgpix_state::screen | |
295 | 296 | { |
296 | dgpix_state *state = screen.machine().driver_data<dgpix_state>(); | |
297 | 297 | int y; |
298 | 298 | |
299 | 299 | for (y = 0; y < 240; y++) |
300 | 300 | { |
301 | 301 | int x; |
302 | UINT32 *src = & | |
302 | UINT32 *src = & | |
303 | 303 | UINT16 *dest = &bitmap.pix16(y); |
304 | 304 | |
305 | 305 | for (x = 0; x < 320; x += 2) |
r17967 | r17968 | |
342 | 342 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
343 | 343 | MCFG_SCREEN_SIZE(512, 256) |
344 | 344 | MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) |
345 | MCFG_SCREEN_UPDATE_ | |
345 | MCFG_SCREEN_UPDATE_DR | |
346 | 346 | |
347 | 347 | MCFG_PALETTE_INIT(BBBBB_GGGGG_RRRRR) |
348 | 348 | MCFG_PALETTE_LENGTH(32768) |
r17967 | r17968 | |
---|---|---|
354 | 354 | /* note: these parameters are from published specs, not derived */ |
355 | 355 | /* the board uses an SOS-2 chip to generate video signals */ |
356 | 356 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 456, 0, 336, 262, 0, 240) |
357 | MCFG_SCREEN_UPDATE_ | |
357 | MCFG_SCREEN_UPDATE_DR | |
358 | 358 | |
359 | 359 | |
360 | 360 | /* sound hardware */ |
r17967 | r17968 | |
386 | 386 | /* note: these parameters are from published specs, not derived */ |
387 | 387 | /* the board uses an SOS-2 chip to generate video signals */ |
388 | 388 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 456, 0, 336, 262, 0, 240) |
389 | MCFG_SCREEN_UPDATE_ | |
389 | MCFG_SCREEN_UPDATE_DR | |
390 | 390 | |
391 | 391 | |
392 | 392 | /* sound hardware */ |
r17967 | r17968 | |
---|---|---|
396 | 396 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
397 | 397 | MCFG_SCREEN_SIZE((124+1)*4, (30+1)*8) /* guess. taken from funworld games */ |
398 | 398 | MCFG_SCREEN_VISIBLE_AREA(0*4, 96*4-1, 0*8, 29*8-1) /* guess. taken from funworld games */ |
399 | MCFG_SCREEN_UPDATE_ | |
399 | MCFG_SCREEN_UPDATE_DR | |
400 | 400 | |
401 | 401 | MCFG_GFXDECODE(4roses) |
402 | 402 |
r17967 | r17968 | |
---|---|---|
215 | 215 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
216 | 216 | MCFG_SCREEN_SIZE(32*8, 32*8) |
217 | 217 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
218 | MCFG_SCREEN_UPDATE_ | |
218 | MCFG_SCREEN_UPDATE_DR | |
219 | 219 | |
220 | 220 | MCFG_GFXDECODE(shaolins) |
221 | 221 | MCFG_PALETTE_LENGTH(16*8*16+16*8*16) |
r17967 | r17968 | |
---|---|---|
137 | 137 | DECLARE_DRIVER_INIT(bmcbowl); |
138 | 138 | virtual void machine_reset(); |
139 | 139 | virtual void video_start(); |
140 | UINT32 screen_update_bmcbowl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
140 | 141 | }; |
141 | 142 | |
142 | 143 | |
r17967 | r17968 | |
148 | 149 | { |
149 | 150 | } |
150 | 151 | |
151 | static | |
152 | UINT32 bmcbowl_state::screen_update_bmcbowl(screen_device &screen, bitmap_ind | |
152 | 153 | { |
153 | bmcbowl_state *state = screen.machine().driver_data<bmcbowl_state>(); | |
154 | 154 | /* |
155 | 155 | 280x230,4 bitmap layers, 8bpp, |
156 | 156 | missing scroll and priorities (maybe fixed ones) |
r17967 | r17968 | |
164 | 164 | { |
165 | 165 | for (x=0;x<280;x+=2) |
166 | 166 | { |
167 | pixdat = | |
167 | pixdat = | |
168 | 168 | |
169 | 169 | if(pixdat&0xff) |
170 | 170 | bitmap.pix16(y, x+1) = (pixdat&0xff); |
171 | 171 | if(pixdat>>8) |
172 | 172 | bitmap.pix16(y, x) = (pixdat>>8); |
173 | 173 | |
174 | pixdat = | |
174 | pixdat = | |
175 | 175 | |
176 | 176 | if(pixdat&0xff) |
177 | 177 | bitmap.pix16(y, x+1) = (pixdat&0xff); |
178 | 178 | if(pixdat>>8) |
179 | 179 | bitmap.pix16(y, x) = (pixdat>>8); |
180 | 180 | |
181 | pixdat = | |
181 | pixdat = | |
182 | 182 | |
183 | 183 | if(pixdat&0xff) |
184 | 184 | bitmap.pix16(y, x+1) = (pixdat&0xff); |
185 | 185 | if(pixdat>>8) |
186 | 186 | bitmap.pix16(y, x) = (pixdat>>8); |
187 | 187 | |
188 | pixdat = | |
188 | pixdat = | |
189 | 189 | |
190 | 190 | if(pixdat&0xff) |
191 | 191 | bitmap.pix16(y, x+1) = (pixdat&0xff); |
r17967 | r17968 | |
510 | 510 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
511 | 511 | MCFG_SCREEN_SIZE(35*8, 30*8) |
512 | 512 | MCFG_SCREEN_VISIBLE_AREA(0*8, 35*8-1, 0*8, 29*8-1) |
513 | MCFG_SCREEN_UPDATE_ | |
513 | MCFG_SCREEN_UPDATE_DR | |
514 | 514 | |
515 | 515 | MCFG_PALETTE_LENGTH(256) |
516 | 516 |
r17967 | r17968 | |
---|---|---|
554 | 554 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
555 | 555 | MCFG_SCREEN_SIZE(64*8, 32*8) |
556 | 556 | MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 2*8, 30*8-1) |
557 | MCFG_SCREEN_UPDATE_ | |
557 | MCFG_SCREEN_UPDATE_DR | |
558 | 558 | |
559 | 559 | MCFG_GFXDECODE(kyugo) |
560 | 560 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
645 | 645 | MCFG_SCREEN_SIZE(HORZ_RES * HORZ_CHR, VERT_RES * VERT_CHR + 16) |
646 | 646 | MCFG_SCREEN_VISIBLE_AREA(0 * HORZ_CHR, HORZ_RES * HORZ_CHR - 1, |
647 | 647 | 0 * VERT_CHR, (VERT_RES - 1) * VERT_CHR - 1) |
648 | MCFG_SCREEN_UPDATE_ | |
648 | MCFG_SCREEN_UPDATE_DR | |
649 | 649 | |
650 | 650 | MCFG_GFXDECODE(lazercmd) |
651 | 651 | MCFG_PALETTE_LENGTH(5) |
r17967 | r17968 | |
679 | 679 | MCFG_SCREEN_SIZE(HORZ_RES * HORZ_CHR, VERT_RES * VERT_CHR) |
680 | 680 | MCFG_SCREEN_VISIBLE_AREA(0 * HORZ_CHR, HORZ_RES * HORZ_CHR - 1, |
681 | 681 | 0 * VERT_CHR, VERT_RES * VERT_CHR - 1) |
682 | MCFG_SCREEN_UPDATE_ | |
682 | MCFG_SCREEN_UPDATE_DR | |
683 | 683 | |
684 | 684 | MCFG_GFXDECODE(lazercmd) |
685 | 685 | MCFG_PALETTE_LENGTH(5) |
r17967 | r17968 | |
713 | 713 | MCFG_SCREEN_SIZE(HORZ_RES * HORZ_CHR, VERT_RES * VERT_CHR) |
714 | 714 | MCFG_SCREEN_VISIBLE_AREA(0 * HORZ_CHR, HORZ_RES * HORZ_CHR - 1, |
715 | 715 | 0 * VERT_CHR, (VERT_RES - 1) * VERT_CHR - 1) |
716 | MCFG_SCREEN_UPDATE_ | |
716 | MCFG_SCREEN_UPDATE_DR | |
717 | 717 | |
718 | 718 | MCFG_GFXDECODE(lazercmd) |
719 | 719 | MCFG_PALETTE_LENGTH(5) |
r17967 | r17968 | |
---|---|---|
481 | 481 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
482 | 482 | MCFG_SCREEN_SIZE(32*8, 28*8) |
483 | 483 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) |
484 | MCFG_SCREEN_UPDATE_ | |
484 | MCFG_SCREEN_UPDATE_DR | |
485 | 485 | |
486 | 486 | MCFG_GFXDECODE(blockade) |
487 | 487 | MCFG_PALETTE_LENGTH(2) |
r17967 | r17968 | |
---|---|---|
673 | 673 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
674 | 674 | MCFG_SCREEN_SIZE(0x200, 0x100) |
675 | 675 | MCFG_SCREEN_VISIBLE_AREA(0,0x1c0-1, 0,0xe0-1) |
676 | MCFG_SCREEN_UPDATE_ | |
676 | MCFG_SCREEN_UPDATE_DR | |
677 | 677 | |
678 | 678 | MCFG_GFXDECODE(lordgun) |
679 | 679 | MCFG_PALETTE_LENGTH(0x800 * 8) // 0x800 real colors, repeated per priority level |
r17967 | r17968 | |
715 | 715 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
716 | 716 | MCFG_SCREEN_SIZE(0x200, 0x100) |
717 | 717 | MCFG_SCREEN_VISIBLE_AREA(0,0x1c0-1, 0,0xe0-1) |
718 | MCFG_SCREEN_UPDATE_ | |
718 | MCFG_SCREEN_UPDATE_DR | |
719 | 719 | |
720 | 720 | MCFG_GFXDECODE(lordgun) |
721 | 721 | MCFG_PALETTE_LENGTH(0x800 * 8) // 0x800 real colors, repeated per priority level |
r17967 | r17968 | |
---|---|---|
278 | 278 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) |
279 | 279 | MCFG_SCREEN_SIZE(40*8, 32*8) |
280 | 280 | 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) | |
283 | 283 | |
284 | 284 | MCFG_GFXDECODE(lemmings) |
285 | 285 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
337 | 337 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
338 | 338 | MCFG_SCREEN_SIZE(32*8, 32*8) |
339 | 339 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
340 | MCFG_SCREEN_UPDATE_ | |
340 | MCFG_SCREEN_UPDATE_DR | |
341 | 341 | |
342 | 342 | MCFG_GFXDECODE(espial) |
343 | 343 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
233 | 233 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1600)) |
234 | 234 | MCFG_SCREEN_SIZE(256, 256) |
235 | 235 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1) |
236 | MCFG_SCREEN_UPDATE_ | |
236 | MCFG_SCREEN_UPDATE_DR | |
237 | 237 | |
238 | 238 | MCFG_GFXDECODE(tiamc1) |
239 | 239 | MCFG_PALETTE_LENGTH(16) |
r17967 | r17968 | |
---|---|---|
1547 | 1547 | |
1548 | 1548 | MCFG_SCREEN_ADD("screen", RASTER) |
1549 | 1549 | 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) | |
1552 | 1552 | |
1553 | 1553 | MCFG_GFXDECODE(rallybik) |
1554 | 1554 | MCFG_PALETTE_LENGTH((64*16)+(64*16)) |
r17967 | r17968 | |
1584 | 1584 | |
1585 | 1585 | MCFG_SCREEN_ADD("screen", RASTER) |
1586 | 1586 | 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) | |
1589 | 1589 | |
1590 | 1590 | MCFG_GFXDECODE(toaplan1) |
1591 | 1591 | MCFG_PALETTE_LENGTH((64*16)+(64*16)) |
r17967 | r17968 | |
1621 | 1621 | |
1622 | 1622 | MCFG_SCREEN_ADD("screen", RASTER) |
1623 | 1623 | 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) | |
1626 | 1626 | |
1627 | 1627 | MCFG_GFXDECODE(toaplan1) |
1628 | 1628 | MCFG_PALETTE_LENGTH((64*16)+(64*16)) |
r17967 | r17968 | |
1658 | 1658 | |
1659 | 1659 | MCFG_SCREEN_ADD("screen", RASTER) |
1660 | 1660 | 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) | |
1663 | 1663 | |
1664 | 1664 | MCFG_GFXDECODE(toaplan1) |
1665 | 1665 | MCFG_PALETTE_LENGTH((64*16)+(64*16)) |
r17967 | r17968 | |
1699 | 1699 | |
1700 | 1700 | MCFG_SCREEN_ADD("screen", RASTER) |
1701 | 1701 | 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) | |
1704 | 1704 | |
1705 | 1705 | MCFG_GFXDECODE(toaplan1) |
1706 | 1706 | MCFG_PALETTE_LENGTH((64*16)+(64*16)) |
r17967 | r17968 | |
1734 | 1734 | |
1735 | 1735 | MCFG_SCREEN_ADD("screen", RASTER) |
1736 | 1736 | 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) | |
1739 | 1739 | |
1740 | 1740 | MCFG_GFXDECODE(toaplan1) |
1741 | 1741 | MCFG_PALETTE_LENGTH((64*16)+(64*16)) |
r17967 | r17968 | |
1771 | 1771 | |
1772 | 1772 | MCFG_SCREEN_ADD("screen", RASTER) |
1773 | 1773 | 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) | |
1776 | 1776 | |
1777 | 1777 | MCFG_GFXDECODE(outzone) |
1778 | 1778 | MCFG_PALETTE_LENGTH((64*16)+(64*16)) |
r17967 | r17968 | |
1806 | 1806 | |
1807 | 1807 | MCFG_SCREEN_ADD("screen", RASTER) |
1808 | 1808 | 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) | |
1811 | 1811 | |
1812 | 1812 | MCFG_GFXDECODE(vm) |
1813 | 1813 | MCFG_PALETTE_LENGTH((64*16)+(64*16)) |
r17967 | r17968 | |
---|---|---|
852 | 852 | |
853 | 853 | MCFG_SCREEN_ADD("screen", RASTER) |
854 | 854 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
855 | MCFG_SCREEN_UPDATE_ | |
855 | MCFG_SCREEN_UPDATE_DR | |
856 | 856 | |
857 | 857 | |
858 | 858 | /* sound hardware */ |
r17967 | r17968 | |
---|---|---|
121 | 121 | TILE_GET_INFO_MEMBER(get_layer1_tile_info); |
122 | 122 | TILE_GET_INFO_MEMBER(get_layer2_tile_info); |
123 | 123 | virtual void video_start(); |
124 | UINT32 screen_update_magic10(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
124 | 125 | }; |
125 | 126 | |
126 | 127 | |
r17967 | r17968 | |
197 | 198 | m_layer2_tilemap->set_transparent_pen(0); |
198 | 199 | } |
199 | 200 | |
200 | static | |
201 | UINT32 magic10_state::screen_update_magic10(screen_device &screen, bitmap_ind | |
201 | 202 | { |
202 | magic10_state *state = screen.machine().driver_data<magic10_state>(); | |
203 | 203 | /*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]); | |
206 | 206 | |
207 | 207 | /* |
208 | 208 | 4 and 6 are y/x global register writes. |
209 | 209 | 0 and 2 are y/x writes for the scrolling layer. |
210 | 210 | */ |
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); | |
213 | 213 | |
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); | |
217 | 217 | |
218 | 218 | return 0; |
219 | 219 | } |
r17967 | r17968 | |
739 | 739 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
740 | 740 | MCFG_SCREEN_SIZE(64*8, 64*8) |
741 | 741 | MCFG_SCREEN_VISIBLE_AREA(0*8, 44*8-1, 2*8, 32*8-1) |
742 | MCFG_SCREEN_UPDATE_ | |
742 | MCFG_SCREEN_UPDATE_DR | |
743 | 743 | |
744 | 744 | MCFG_PALETTE_LENGTH(0x100) |
745 | 745 | MCFG_GFXDECODE(magic10) |
r17967 | r17968 | |
---|---|---|
2269 | 2269 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
2270 | 2270 | MCFG_SCREEN_SIZE(64*8, 32*8) |
2271 | 2271 | MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 ) |
2272 | MCFG_SCREEN_UPDATE_ | |
2272 | MCFG_SCREEN_UPDATE_DR | |
2273 | 2273 | |
2274 | 2274 | MCFG_PALETTE_LENGTH(1024) |
2275 | 2275 | MCFG_NVRAM_ADD_0FILL("nvram") |
r17967 | r17968 | |
2310 | 2310 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
2311 | 2311 | MCFG_SCREEN_SIZE(64*8, 32*8) |
2312 | 2312 | MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 ) |
2313 | MCFG_SCREEN_UPDATE_ | |
2313 | MCFG_SCREEN_UPDATE_DR | |
2314 | 2314 | |
2315 | 2315 | MCFG_PALETTE_LENGTH(1024) |
2316 | 2316 | |
r17967 | r17968 | |
2363 | 2363 | MCFG_SCREEN_SIZE(64*8, 32*8) |
2364 | 2364 | //MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 ) |
2365 | 2365 | MCFG_SCREEN_VISIBLE_AREA(13*8-8, (64-13)*8-1+8, 2*8, 30*8-1 ) |
2366 | MCFG_SCREEN_UPDATE_ | |
2366 | MCFG_SCREEN_UPDATE_DR | |
2367 | 2367 | // We see something strange in the left 8 pixels and the right 8 pixels, but it is same as real PCB. |
2368 | 2368 | |
2369 | 2369 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
2415 | 2415 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
2416 | 2416 | MCFG_SCREEN_SIZE(64*8, 32*8) |
2417 | 2417 | MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) |
2418 | MCFG_SCREEN_UPDATE_ | |
2418 | MCFG_SCREEN_UPDATE_DR | |
2419 | 2419 | |
2420 | 2420 | MCFG_PALETTE_LENGTH(2048) |
2421 | 2421 | |
r17967 | r17968 | |
2456 | 2456 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
2457 | 2457 | MCFG_SCREEN_SIZE(64*8, 32*8) |
2458 | 2458 | MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) |
2459 | MCFG_SCREEN_UPDATE_ | |
2459 | MCFG_SCREEN_UPDATE_DR | |
2460 | 2460 | |
2461 | 2461 | MCFG_PALETTE_LENGTH(2048) |
2462 | 2462 | |
r17967 | r17968 | |
2503 | 2503 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
2504 | 2504 | MCFG_SCREEN_SIZE(64*8, 32*8) |
2505 | 2505 | 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) | |
2508 | 2508 | |
2509 | 2509 | MCFG_PALETTE_LENGTH(2048) |
2510 | 2510 | |
r17967 | r17968 | |
2567 | 2567 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
2568 | 2568 | MCFG_SCREEN_SIZE(64*8, 32*8) |
2569 | 2569 | MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) |
2570 | MCFG_SCREEN_UPDATE_ | |
2570 | MCFG_SCREEN_UPDATE_DR | |
2571 | 2571 | |
2572 | 2572 | MCFG_GFXDECODE(glfgreat) |
2573 | 2573 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
2632 | 2632 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
2633 | 2633 | MCFG_SCREEN_SIZE(64*8, 32*8) |
2634 | 2634 | MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) |
2635 | MCFG_SCREEN_UPDATE_ | |
2635 | MCFG_SCREEN_UPDATE_DR | |
2636 | 2636 | |
2637 | 2637 | MCFG_GFXDECODE(glfgreat) |
2638 | 2638 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
2681 | 2681 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
2682 | 2682 | MCFG_SCREEN_SIZE(64*8, 32*8) |
2683 | 2683 | MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 ) |
2684 | MCFG_SCREEN_UPDATE_ | |
2684 | MCFG_SCREEN_UPDATE_DR | |
2685 | 2685 | |
2686 | 2686 | MCFG_PALETTE_LENGTH(2048) |
2687 | 2687 | |
r17967 | r17968 | |
2728 | 2728 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
2729 | 2729 | MCFG_SCREEN_SIZE(64*8, 32*8) |
2730 | 2730 | MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) |
2731 | MCFG_SCREEN_UPDATE_ | |
2731 | MCFG_SCREEN_UPDATE_DR | |
2732 | 2732 | |
2733 | 2733 | MCFG_PALETTE_LENGTH(2048) |
2734 | 2734 | |
r17967 | r17968 | |
2771 | 2771 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
2772 | 2772 | MCFG_SCREEN_SIZE(64*8, 32*8) |
2773 | 2773 | MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) |
2774 | MCFG_SCREEN_UPDATE_ | |
2774 | MCFG_SCREEN_UPDATE_DR | |
2775 | 2775 | |
2776 | 2776 | MCFG_PALETTE_LENGTH(2048) |
2777 | 2777 | |
r17967 | r17968 | |
2811 | 2811 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
2812 | 2812 | MCFG_SCREEN_SIZE(64*8, 32*8) |
2813 | 2813 | MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) |
2814 | MCFG_SCREEN_UPDATE_ | |
2814 | MCFG_SCREEN_UPDATE_DR | |
2815 | 2815 | |
2816 | 2816 | MCFG_PALETTE_LENGTH(2048) |
2817 | 2817 |
r17967 | r17968 | |
---|---|---|
36 | 36 | DECLARE_WRITE8_MEMBER(kongambl_ff_w); |
37 | 37 | DECLARE_DRIVER_INIT(kingtut); |
38 | 38 | DECLARE_VIDEO_START(kongambl); |
39 | UINT32 screen_update_kongambl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
39 | 40 | }; |
40 | 41 | |
41 | 42 | |
r17967 | r17968 | |
54 | 55 | #endif |
55 | 56 | } |
56 | 57 | |
57 | stat | |
58 | UINT32 kongambl_state::screen | |
58 | 59 | { |
59 | 60 | #if CUSTOM_DRAW |
60 | kongambl_state *state = screen.machine().driver_data<kongambl_state>(); | |
61 | 61 | gfx_element *gfx = screen.machine().gfx[0]; |
62 | 62 | UINT32 count; |
63 | 63 | |
r17967 | r17968 | |
67 | 67 | { |
68 | 68 | for (int x=0;x<128;x++) |
69 | 69 | { |
70 | UINT32 tile = | |
70 | UINT32 tile = | |
71 | 71 | |
72 | 72 | if(screen.machine().primary_screen->visible_area().contains(x*8, y*8)) |
73 | 73 | drawgfx_opaque(bitmap,cliprect,gfx,tile,0,0,0,x*8,y*8); |
r17967 | r17968 | |
82 | 82 | { |
83 | 83 | for (int x=0;x<128;x++) |
84 | 84 | { |
85 | UINT32 tile = | |
85 | UINT32 tile = | |
86 | 86 | |
87 | 87 | if(screen.machine().primary_screen->visible_area().contains(x*8, y*8)) |
88 | 88 | drawgfx_transpen(bitmap,cliprect,gfx,tile,0,0,0,x*8,y*8,0); |
r17967 | r17968 | |
607 | 607 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) |
608 | 608 | MCFG_SCREEN_SIZE(96*8, 64*8+16) |
609 | 609 | MCFG_SCREEN_VISIBLE_AREA(0*8, 80*8-1, 0*8, 64*8-1) |
610 | MCFG_SCREEN_UPDATE_ | |
610 | MCFG_SCREEN_UPDATE_DR | |
611 | 611 | |
612 | 612 | MCFG_PALETTE_LENGTH(0x8000) |
613 | 613 |
r17967 | r17968 | |
---|---|---|
936 | 936 | |
937 | 937 | /* SCREEN_UPDATE_IND16 (move to video file) */ |
938 | 938 | |
939 | stat | |
939 | UINT32 raiden2_state::screen | |
940 | 940 | { |
941 | raiden2_state *state = screen.machine().driver_data<raiden2_state>(); | |
942 | 941 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
943 | 942 | |
944 | 943 | //if (!screen.machine().input().code_pressed(KEYCODE_Q)) |
945 | 944 | { |
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); | |
948 | 947 | } |
949 | 948 | |
950 | 949 | //if (!screen.machine().input().code_pressed(KEYCODE_W)) |
951 | 950 | { |
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); | |
954 | 953 | } |
955 | 954 | |
956 | 955 | //if (!screen.machine().input().code_pressed(KEYCODE_E)) |
957 | 956 | { |
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); | |
960 | 959 | } |
961 | 960 | |
962 | 961 | //if (!screen.machine().input().code_pressed(KEYCODE_S)) |
963 | 962 | { |
964 | 963 | //if (!(raiden2_tilemap_enable & 0x10)) |
965 | | |
964 | | |
966 | 965 | } |
967 | 966 | |
968 | 967 | //if (!screen.machine().input().code_pressed(KEYCODE_A)) |
969 | 968 | { |
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); | |
972 | 971 | } |
973 | 972 | |
974 | 973 | return 0; |
r17967 | r17968 | |
1816 | 1815 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate *//2) |
1817 | 1816 | MCFG_SCREEN_SIZE(64*8, 64*8) |
1818 | 1817 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0, 30*8-1) |
1819 | MCFG_SCREEN_UPDATE_ | |
1818 | MCFG_SCREEN_UPDATE_DR | |
1820 | 1819 | MCFG_GFXDECODE(raiden2) |
1821 | 1820 | MCFG_PALETTE_LENGTH(2048) |
1822 | 1821 | |
r17967 | r17968 | |
1872 | 1871 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate *//2) |
1873 | 1872 | MCFG_SCREEN_SIZE(64*8, 64*8) |
1874 | 1873 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0, 32*8-1) |
1875 | MCFG_SCREEN_UPDATE_ | |
1874 | MCFG_SCREEN_UPDATE_DR | |
1876 | 1875 | MCFG_GFXDECODE(raiden2) |
1877 | 1876 | MCFG_PALETTE_LENGTH(2048) |
1878 | 1877 |
r17967 | r17968 | |
---|---|---|
31 | 31 | virtual void machine_start(); |
32 | 32 | virtual void video_start(); |
33 | 33 | virtual void palette_init(); |
34 | UINT32 screen_update_mogura(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
34 | 35 | }; |
35 | 36 | |
36 | 37 | |
r17967 | r17968 | |
86 | 87 | m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(mogura_state::get_mogura_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); |
87 | 88 | } |
88 | 89 | |
89 | static | |
90 | UINT32 mogura_state::screen_update_mogura(screen_device &screen, bitmap_ind | |
90 | 91 | { |
91 | mogura_state *state = screen.machine().driver_data<mogura_state>(); | |
92 | 92 | const rectangle &visarea = screen.visible_area(); |
93 | 93 | |
94 | 94 | /* tilemap layout is a bit strange ... */ |
95 | 95 | rectangle clip = visarea; |
96 | 96 | 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); | |
99 | 99 | |
100 | 100 | clip.min_x = 256; |
101 | 101 | 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); | |
104 | 104 | |
105 | 105 | return 0; |
106 | 106 | } |
r17967 | r17968 | |
215 | 215 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
216 | 216 | MCFG_SCREEN_SIZE(512, 512) |
217 | 217 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-1) |
218 | MCFG_SCREEN_UPDATE_ | |
218 | MCFG_SCREEN_UPDATE_DR | |
219 | 219 | |
220 | 220 | MCFG_PALETTE_LENGTH(32) |
221 | 221 |
r17967 | r17968 | |
---|---|---|
1263 | 1263 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1264 | 1264 | MCFG_SCREEN_SIZE(512, 400) |
1265 | 1265 | MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 399) |
1266 | MCFG_SCREEN_UPDATE_ | |
1266 | MCFG_SCREEN_UPDATE_DR | |
1267 | 1267 | |
1268 | 1268 | MCFG_PALETTE_LENGTH(32768) |
1269 | 1269 | |
r17967 | r17968 | |
1279 | 1279 | |
1280 | 1280 | /* video hardware */ |
1281 | 1281 | MCFG_SCREEN_MODIFY("screen") |
1282 | MCFG_SCREEN_UPDATE_ | |
1282 | MCFG_SCREEN_UPDATE_DR | |
1283 | 1283 | |
1284 | 1284 | /* sound hardware */ |
1285 | 1285 | MCFG_SPEAKER_ADD("subwoofer", 0.0, 0.0, 1.0) |
r17967 | r17968 | |
---|---|---|
156 | 156 | virtual void machine_start(); |
157 | 157 | virtual void machine_reset(); |
158 | 158 | virtual void video_start(); |
159 | UINT32 screen_update_ddealer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
159 | 160 | }; |
160 | 161 | |
161 | 162 | |
r17967 | r17968 | |
264 | 265 | } |
265 | 266 | |
266 | 267 | |
267 | static | |
268 | UINT32 ddealer_state::screen_update_ddealer(screen_device &screen, bitmap_ind | |
268 | 269 | { |
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); | |
273 | 273 | |
274 | 274 | /* the fg tilemap handling is a little hacky right now, |
275 | 275 | i'm not sure if it should be a single tilemap with |
r17967 | r17968 | |
277 | 277 | combined, the flipscreen case makes things more |
278 | 278 | difficult to understand */ |
279 | 279 | |
280 | if (! | |
280 | if (! | |
281 | 281 | { |
282 | if ( | |
282 | if ( | |
283 | 283 | { |
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); | |
286 | 286 | } |
287 | 287 | else |
288 | 288 | { |
289 | ddealer_draw_video_layer(screen.machine(), & | |
289 | ddealer_draw_video_layer(screen.machine(), & | |
290 | 290 | } |
291 | 291 | } |
292 | 292 | else |
293 | 293 | { |
294 | if ( | |
294 | if ( | |
295 | 295 | { |
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); | |
298 | 298 | } |
299 | 299 | else |
300 | 300 | { |
301 | ddealer_draw_video_layer(screen.machine(), & | |
301 | ddealer_draw_video_layer(screen.machine(), & | |
302 | 302 | } |
303 | 303 | |
304 | 304 | } |
r17967 | r17968 | |
640 | 640 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
641 | 641 | MCFG_SCREEN_SIZE(512, 256) |
642 | 642 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) |
643 | MCFG_SCREEN_UPDATE_ | |
643 | MCFG_SCREEN_UPDATE_DR | |
644 | 644 | |
645 | 645 | MCFG_PALETTE_LENGTH(0x400) |
646 | 646 |
r17967 | r17968 | |
---|---|---|
58 | 58 | virtual void machine_start(); |
59 | 59 | virtual void machine_reset(); |
60 | 60 | virtual void video_start(); |
61 | UINT32 screen_update_berzerk(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
61 | 62 | }; |
62 | 63 | |
63 | 64 | |
r17967 | r17968 | |
455 | 456 | } |
456 | 457 | |
457 | 458 | |
458 | stat | |
459 | UINT32 berzerk_state::screen | |
459 | 460 | { |
460 | berzerk_state *state = screen.machine().driver_data<berzerk_state>(); | |
461 | 461 | pen_t pens[NUM_PENS]; |
462 | 462 | offs_t offs; |
463 | 463 | |
464 | 464 | get_pens(screen.machine(), pens); |
465 | 465 | |
466 | for (offs = 0; offs < | |
466 | for (offs = 0; offs < | |
467 | 467 | { |
468 | 468 | int i; |
469 | 469 | |
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)]; | |
472 | 472 | |
473 | 473 | UINT8 y = offs >> 5; |
474 | 474 | UINT8 x = offs << 3; |
r17967 | r17968 | |
1092 | 1092 | |
1093 | 1093 | MCFG_SCREEN_ADD("screen", RASTER) |
1094 | 1094 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
1095 | MCFG_SCREEN_UPDATE_ | |
1095 | MCFG_SCREEN_UPDATE_DR | |
1096 | 1096 | |
1097 | 1097 | /* audio hardware */ |
1098 | 1098 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
---|---|---|
125 | 125 | DECLARE_WRITE_LINE_MEMBER(ptm_irq); |
126 | 126 | virtual void video_start(); |
127 | 127 | virtual void palette_init(); |
128 | UINT32 screen_update_vpoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
128 | 129 | }; |
129 | 130 | |
130 | 131 | |
r17967 | r17968 | |
133 | 134 | m_videoram = auto_alloc_array(machine(), UINT8, 0x200); |
134 | 135 | } |
135 | 136 | |
136 | static | |
137 | UINT32 vpoker_state::screen_update_vpoker(screen_device &screen, bitmap_ind | |
137 | 138 | { |
138 | vpoker_state *state = screen.machine().driver_data<vpoker_state>(); | |
139 | UINT8 *videoram = state->m_videoram; | |
139 | UINT8 *videoram = m_videoram; | |
140 | 140 | gfx_element *gfx = screen.machine().gfx[0]; |
141 | 141 | int count = 0x0000; |
142 | 142 | |
r17967 | r17968 | |
665 | 665 | MCFG_SCREEN_SIZE(512, 256) |
666 | 666 | MCFG_SCREEN_VISIBLE_AREA(0*8, 480-1, 0*8, 240-1) |
667 | 667 | // MCFG_SCREEN_VISIBLE_AREA(0*8, 512-1, 0*8, 256-1) |
668 | MCFG_SCREEN_UPDATE_ | |
668 | MCFG_SCREEN_UPDATE_DR | |
669 | 669 | |
670 | 670 | MCFG_GFXDECODE(vpoker) |
671 | 671 | MCFG_PALETTE_LENGTH(8) |
r17967 | r17968 | |
---|---|---|
372 | 372 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
373 | 373 | MCFG_SCREEN_SIZE(32*8, 32*8) |
374 | 374 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
375 | MCFG_SCREEN_UPDATE_ | |
375 | MCFG_SCREEN_UPDATE_DR | |
376 | 376 | |
377 | 377 | MCFG_GFXDECODE(suprridr) |
378 | 378 | MCFG_PALETTE_LENGTH(96) |
r17967 | r17968 | |
---|---|---|
547 | 547 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
548 | 548 | MCFG_SCREEN_SIZE(64*8, 32*8) |
549 | 549 | MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 ) |
550 | MCFG_SCREEN_UPDATE_ | |
550 | MCFG_SCREEN_UPDATE_DR | |
551 | 551 | |
552 | 552 | MCFG_PALETTE_LENGTH(1024) |
553 | 553 |
r17967 | r17968 | |
---|---|---|
89 | 89 | virtual void machine_reset(); |
90 | 90 | virtual void video_start(); |
91 | 91 | DECLARE_VIDEO_START(gp98); |
92 | UINT32 screen_update_jingbell(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
92 | 93 | }; |
93 | 94 | |
94 | 95 | |
r17967 | r17968 | |
281 | 282 | } |
282 | 283 | |
283 | 284 | |
284 | stat | |
285 | UINT32 igs009_state::screen | |
285 | 286 | { |
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; | |
288 | 288 | |
289 | 289 | #ifdef MAME_DEBUG |
290 | 290 | if (screen.machine().input().code_pressed(KEYCODE_Z)) |
r17967 | r17968 | |
306 | 306 | |
307 | 307 | for (i= 0;i < 0x80;i++) |
308 | 308 | { |
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); | |
313 | 313 | } |
314 | 314 | |
315 | 315 | |
r17967 | r17968 | |
318 | 318 | for (zz=0;zz<0x80-8;zz++) // -8 because of visible area (2*8 = 16) |
319 | 319 | { |
320 | 320 | rectangle clip; |
321 | int rowenable = | |
321 | int rowenable = | |
322 | 322 | |
323 | 323 | /* draw top of screen */ |
324 | 324 | clip.set(visarea.min_x, visarea.max_x, startclipmin, startclipmin+2); |
r17967 | r17968 | |
327 | 327 | |
328 | 328 | if (rowenable==0) |
329 | 329 | { // 0 and 1 are the same? or is there a global switchoff? |
330 | | |
330 | | |
331 | 331 | } |
332 | 332 | else if (rowenable==1) |
333 | 333 | { |
334 | | |
334 | | |
335 | 335 | } |
336 | 336 | else if (rowenable==2) |
337 | 337 | { |
338 | | |
338 | | |
339 | 339 | } |
340 | 340 | else if (rowenable==3) |
341 | 341 | { |
342 | | |
342 | | |
343 | 343 | } |
344 | 344 | |
345 | 345 | |
r17967 | r17968 | |
350 | 350 | else bitmap.fill(get_black_pen(screen.machine()), cliprect); |
351 | 351 | |
352 | 352 | |
353 | if (layers_ctrl & 2) | |
353 | if (layers_ctrl & 2) | |
354 | 354 | |
355 | 355 | return 0; |
356 | 356 | } |
r17967 | r17968 | |
756 | 756 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
757 | 757 | MCFG_SCREEN_SIZE(512, 256) |
758 | 758 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-16-1) |
759 | MCFG_SCREEN_UPDATE_ | |
759 | MCFG_SCREEN_UPDATE_DR | |
760 | 760 | |
761 | 761 | MCFG_GFXDECODE(jingbell) |
762 | 762 | MCFG_PALETTE_LENGTH(0x400) |
r17967 | r17968 | |
---|---|---|
173 | 173 | DECLARE_DRIVER_INIT(dualgame); |
174 | 174 | DECLARE_VIDEO_START(blitz68k); |
175 | 175 | 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); | |
176 | 178 | }; |
177 | 179 | |
178 | 180 | /************************************************************************************************************* |
r17967 | r17968 | |
206 | 208 | blit.addr_factor = 1; |
207 | 209 | } |
208 | 210 | |
209 | stat | |
211 | UINT32 blitz68k_state::screen | |
210 | 212 | { |
211 | blitz68k_state *state = screen.machine().driver_data<blitz68k_state>(); | |
212 | 213 | int x,y; |
213 | 214 | |
214 | UINT8 *src = | |
215 | UINT8 *src = | |
215 | 216 | |
216 | 217 | for(y = 0; y < 256; y++) |
217 | 218 | { |
r17967 | r17968 | |
227 | 228 | // Blitter-less board (SPI-68K) |
228 | 229 | |
229 | 230 | |
230 | stat | |
231 | UINT32 blitz68k_state::screen | |
231 | 232 | { |
232 | blitz68k_state *state = screen.machine().driver_data<blitz68k_state>(); | |
233 | 233 | int x,y; |
234 | 234 | |
235 | UINT16 *src = | |
235 | UINT16 *src = | |
236 | 236 | |
237 | 237 | for(y = 0; y < 256; y++) |
238 | 238 | { |
r17967 | r17968 | |
1722 | 1722 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1723 | 1723 | MCFG_SCREEN_SIZE(512, 256) |
1724 | 1724 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) |
1725 | MCFG_SCREEN_UPDATE_ | |
1725 | MCFG_SCREEN_UPDATE_DR | |
1726 | 1726 | |
1727 | 1727 | MCFG_NVRAM_ADD_0FILL("nvram") |
1728 | 1728 | |
r17967 | r17968 | |
1797 | 1797 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1798 | 1798 | MCFG_SCREEN_SIZE(512, 256) |
1799 | 1799 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-8-1) |
1800 | MCFG_SCREEN_UPDATE_ | |
1800 | MCFG_SCREEN_UPDATE_DR | |
1801 | 1801 | |
1802 | 1802 | MCFG_MC6845_ADD("crtc", R6545_1, XTAL_22_1184MHz/8, mc6845_intf_irq1) |
1803 | 1803 | |
r17967 | r17968 | |
1829 | 1829 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1830 | 1830 | MCFG_SCREEN_SIZE(512, 256) |
1831 | 1831 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+4, 256-1-4) |
1832 | MCFG_SCREEN_UPDATE_ | |
1832 | MCFG_SCREEN_UPDATE_DR | |
1833 | 1833 | |
1834 | 1834 | MCFG_MC6845_ADD("crtc", H46505, XTAL_11_0592MHz/4, mc6845_intf_irq3) |
1835 | 1835 | |
r17967 | r17968 | |
1859 | 1859 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1860 | 1860 | MCFG_SCREEN_SIZE(512, 256) |
1861 | 1861 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+7, 256-1) |
1862 | MCFG_SCREEN_UPDATE_ | |
1862 | MCFG_SCREEN_UPDATE_DR | |
1863 | 1863 | |
1864 | 1864 | MCFG_MC6845_ADD("crtc", H46505, XTAL_11_0592MHz/4, mc6845_intf_irq5) |
1865 | 1865 | |
r17967 | r17968 | |
1888 | 1888 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1889 | 1889 | MCFG_SCREEN_SIZE(512, 256) |
1890 | 1890 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) |
1891 | MCFG_SCREEN_UPDATE_ | |
1891 | MCFG_SCREEN_UPDATE_DR | |
1892 | 1892 | |
1893 | 1893 | MCFG_MC6845_ADD("crtc", R6545_1, XTAL_22_1184MHz/8, mc6845_intf_irq3) |
1894 | 1894 | |
r17967 | r17968 | |
1919 | 1919 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1920 | 1920 | MCFG_SCREEN_SIZE(512, 256) |
1921 | 1921 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+4, 256-1-4) |
1922 | MCFG_SCREEN_UPDATE_ | |
1922 | MCFG_SCREEN_UPDATE_DR | |
1923 | 1923 | |
1924 | 1924 | MCFG_MC6845_ADD("crtc", H46505, XTAL_11_0592MHz/4, mc6845_intf_irq3) |
1925 | 1925 | |
r17967 | r17968 | |
1948 | 1948 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1949 | 1949 | MCFG_SCREEN_SIZE(512, 256) |
1950 | 1950 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+4, 256-1-4) |
1951 | MCFG_SCREEN_UPDATE_ | |
1951 | MCFG_SCREEN_UPDATE_DR | |
1952 | 1952 | |
1953 | 1953 | MCFG_MC6845_ADD("crtc", H46505, XTAL_22_1184MHz/8, mc6845_intf_irq1) |
1954 | 1954 | |
r17967 | r17968 | |
1982 | 1982 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1983 | 1983 | MCFG_SCREEN_SIZE(512, 256) |
1984 | 1984 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) |
1985 | MCFG_SCREEN_UPDATE_ | |
1985 | MCFG_SCREEN_UPDATE_DR | |
1986 | 1986 | |
1987 | 1987 | MCFG_MC6845_ADD("crtc", H46505, XTAL_11_0592MHz/4, mc6845_intf_irq3) |
1988 | 1988 |
r17967 | r17968 | |
---|---|---|
1062 | 1062 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // we're using PORT_VBLANK |
1063 | 1063 | MCFG_SCREEN_SIZE(320, 256) |
1064 | 1064 | 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) | |
1067 | 1067 | |
1068 | 1068 | MCFG_GFXDECODE(psikyo) |
1069 | 1069 | MCFG_PALETTE_LENGTH(0x1000) |
r17967 | r17968 | |
1111 | 1111 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // we're using PORT_VBLANK |
1112 | 1112 | MCFG_SCREEN_SIZE(320, 256) |
1113 | 1113 | 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) | |
1116 | 1116 | |
1117 | 1117 | MCFG_GFXDECODE(psikyo) |
1118 | 1118 | MCFG_PALETTE_LENGTH(0x1000) |
r17967 | r17968 | |
1144 | 1144 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // we're using PORT_VBLANK |
1145 | 1145 | MCFG_SCREEN_SIZE(320, 256) |
1146 | 1146 | 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) | |
1149 | 1149 | |
1150 | 1150 | MCFG_GFXDECODE(psikyo) |
1151 | 1151 | MCFG_PALETTE_LENGTH(0x1000) |
r17967 | r17968 | |
1198 | 1198 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // we're using PORT_VBLANK |
1199 | 1199 | MCFG_SCREEN_SIZE(320, 256) |
1200 | 1200 | 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) | |
1203 | 1203 | |
1204 | 1204 | MCFG_GFXDECODE(psikyo) |
1205 | 1205 | MCFG_PALETTE_LENGTH(0x1000) |
r17967 | r17968 | |
---|---|---|
89 | 89 | virtual void machine_reset(); |
90 | 90 | virtual void video_start(); |
91 | 91 | virtual void palette_init(); |
92 | UINT32 screen_update_dacholer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
92 | 93 | }; |
93 | 94 | |
94 | 95 | TILE_GET_INFO_MEMBER(dacholer_state::get_bg_tile_info) |
r17967 | r17968 | |
151 | 152 | } |
152 | 153 | } |
153 | 154 | |
154 | static | |
155 | UINT32 dacholer_state::screen_update_dacholer(screen_device &screen, bitmap_ind | |
155 | 156 | { |
156 | dacholer_state *state = screen.machine().driver_data<dacholer_state>(); | |
157 | 157 | |
158 | if ( | |
158 | if ( | |
159 | 159 | { |
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); | |
162 | 162 | } |
163 | 163 | else |
164 | 164 | { |
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); | |
167 | 167 | } |
168 | 168 | |
169 | | |
169 | | |
170 | 170 | draw_sprites(screen.machine(), bitmap, cliprect); |
171 | | |
171 | | |
172 | 172 | return 0; |
173 | 173 | } |
174 | 174 | |
r17967 | r17968 | |
666 | 666 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
667 | 667 | MCFG_SCREEN_SIZE(256, 256) |
668 | 668 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-1-16) |
669 | MCFG_SCREEN_UPDATE_ | |
669 | MCFG_SCREEN_UPDATE_DR | |
670 | 670 | |
671 | 671 | MCFG_PALETTE_LENGTH(32) |
672 | 672 | MCFG_GFXDECODE(dacholer) |
r17967 | r17968 | |
---|---|---|
630 | 630 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
631 | 631 | MCFG_SCREEN_SIZE(0x140, 0x100) |
632 | 632 | MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0+8, 0x100-8-1) |
633 | MCFG_SCREEN_UPDATE_ | |
633 | MCFG_SCREEN_UPDATE_DR | |
634 | 634 | |
635 | 635 | MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0) |
636 | 636 | decospr_device::set_gfx_region(*device, 0); |
r17967 | r17968 | |
---|---|---|
5309 | 5309 | MCFG_SCREEN_REFRESH_RATE(60) |
5310 | 5310 | MCFG_SCREEN_VISIBLE_AREA(0, 495, 0, 383) |
5311 | 5311 | MCFG_SCREEN_SIZE(512, 400) |
5312 | MCFG_SCREEN_UPDATE_ | |
5312 | MCFG_SCREEN_UPDATE_DR | |
5313 | 5313 | |
5314 | 5314 | MCFG_PALETTE_LENGTH(32768) |
5315 | 5315 | MCFG_PALETTE_INIT(RRRRR_GGGGG_BBBBB) |
r17967 | r17968 | |
5350 | 5350 | MCFG_SCREEN_REFRESH_RATE(60) |
5351 | 5351 | MCFG_SCREEN_VISIBLE_AREA(0, 495, 0, 383) |
5352 | 5352 | MCFG_SCREEN_SIZE(496, 400) |
5353 | MCFG_SCREEN_UPDATE_ | |
5353 | MCFG_SCREEN_UPDATE_DR | |
5354 | 5354 | |
5355 | 5355 | MCFG_PALETTE_LENGTH(32768) |
5356 | 5356 | MCFG_PALETTE_INIT(RRRRR_GGGGG_BBBBB) |
r17967 | r17968 | |
5391 | 5391 | MCFG_SCREEN_REFRESH_RATE(60) |
5392 | 5392 | MCFG_SCREEN_VISIBLE_AREA(0, 495, 0, 383) |
5393 | 5393 | MCFG_SCREEN_SIZE(496, 400) |
5394 | MCFG_SCREEN_UPDATE_ | |
5394 | MCFG_SCREEN_UPDATE_DR | |
5395 | 5395 | |
5396 | 5396 | MCFG_PALETTE_LENGTH(32768) |
5397 | 5397 | MCFG_PALETTE_INIT(RRRRR_GGGGG_BBBBB) |
r17967 | r17968 | |
5430 | 5430 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
5431 | 5431 | MCFG_SCREEN_VISIBLE_AREA(0, 495, 0, 383) |
5432 | 5432 | MCFG_SCREEN_SIZE(496, 400) |
5433 | MCFG_SCREEN_UPDATE_ | |
5433 | MCFG_SCREEN_UPDATE_DR | |
5434 | 5434 | |
5435 | 5435 | MCFG_PALETTE_LENGTH(32768) |
5436 | 5436 | MCFG_PALETTE_INIT(RRRRR_GGGGG_BBBBB) |
r17967 | r17968 | |
---|---|---|
285 | 285 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
286 | 286 | MCFG_SCREEN_SIZE(64*8, 32*8) |
287 | 287 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 30*8-1) |
288 | MCFG_SCREEN_UPDATE_ | |
288 | MCFG_SCREEN_UPDATE_DR | |
289 | 289 | |
290 | 290 | MCFG_GFXDECODE(iqblock) |
291 | 291 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
71 | 71 | TILE_GET_INFO_MEMBER(get_cb2001_reel3_tile_info); |
72 | 72 | virtual void video_start(); |
73 | 73 | virtual void palette_init(); |
74 | UINT32 screen_update_cb2001(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
74 | 75 | }; |
75 | 76 | |
76 | 77 | |
r17967 | r17968 | |
331 | 332 | */ |
332 | 333 | |
333 | 334 | |
334 | stat | |
335 | UINT32 cb2001_state::screen | |
335 | 336 | { |
336 | cb2001_state *state = screen.machine().driver_data<cb2001_state>(); | |
337 | 337 | int count,x,y; |
338 | 338 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
339 | 339 | |
340 | 340 | count = 0x0000; |
341 | 341 | |
342 | 342 | // render bg as 8x8 tilemaps |
343 | if ( | |
343 | if ( | |
344 | 344 | { |
345 | if (!( | |
345 | if (!( | |
346 | 346 | { |
347 | 347 | for (y=0;y<32;y++) |
348 | 348 | { |
r17967 | r17968 | |
351 | 351 | int tile; |
352 | 352 | int colour; |
353 | 353 | |
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; | |
357 | 357 | |
358 | 358 | |
359 | 359 | drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0],tile,colour,0,0,x*8,y*8); |
r17967 | r17968 | |
370 | 370 | { |
371 | 371 | UINT16 scroll; |
372 | 372 | |
373 | scroll = | |
373 | scroll = | |
374 | 374 | if (i&1) |
375 | 375 | scroll >>=8; |
376 | 376 | scroll &=0xff; |
377 | 377 | |
378 | | |
378 | | |
379 | 379 | |
380 | scroll = | |
380 | scroll = | |
381 | 381 | if (i&1) |
382 | 382 | scroll >>=8; |
383 | 383 | scroll &=0xff; |
384 | 384 | |
385 | | |
385 | | |
386 | 386 | |
387 | scroll = | |
387 | scroll = | |
388 | 388 | if (i&1) |
389 | 389 | scroll >>=8; |
390 | 390 | scroll &=0xff; |
391 | 391 | |
392 | | |
392 | | |
393 | 393 | |
394 | 394 | } |
395 | 395 | |
r17967 | r17968 | |
398 | 398 | const rectangle visible2(0*8, (14+48)*8-1, 10*8, (10+7)*8-1); |
399 | 399 | const rectangle visible3(0*8, (14+48)*8-1, 17*8, (17+7)*8-1); |
400 | 400 | |
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); | |
404 | 404 | } |
405 | 405 | } |
406 | 406 | |
r17967 | r17968 | |
413 | 413 | int tile; |
414 | 414 | int colour; |
415 | 415 | |
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; | |
419 | 419 | |
420 | if ( | |
420 | if ( | |
421 | 421 | { |
422 | 422 | tile += 0x1000; |
423 | 423 | } |
r17967 | r17968 | |
427 | 427 | } |
428 | 428 | } |
429 | 429 | |
430 | popmessage("%02x %02x %02x %02x\n", | |
430 | popmessage("%02x %02x %02x %02x\n", | |
431 | 431 | |
432 | 432 | return 0; |
433 | 433 | } |
r17967 | r17968 | |
849 | 849 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
850 | 850 | MCFG_SCREEN_SIZE(64*8, 64*8) |
851 | 851 | MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1) |
852 | MCFG_SCREEN_UPDATE_ | |
852 | MCFG_SCREEN_UPDATE_DR | |
853 | 853 | |
854 | 854 | MCFG_PALETTE_LENGTH(0x100) |
855 | 855 |
r17967 | r17968 | |
---|---|---|
324 | 324 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) |
325 | 325 | MCFG_SCREEN_SIZE(40*8, 32*8) |
326 | 326 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
327 | MCFG_SCREEN_UPDATE_ | |
327 | MCFG_SCREEN_UPDATE_DR | |
328 | 328 | |
329 | 329 | MCFG_GFXDECODE(funkyjet) |
330 | 330 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
535 | 535 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
536 | 536 | MCFG_SCREEN_SIZE(64*8, 32*8) |
537 | 537 | MCFG_SCREEN_VISIBLE_AREA(40, 40+384-1, 0, 0+256-1) |
538 | MCFG_SCREEN_UPDATE_ | |
538 | MCFG_SCREEN_UPDATE_DR | |
539 | 539 | |
540 | 540 | MCFG_PALETTE_LENGTH(2048) |
541 | 541 |
r17967 | r17968 | |
---|---|---|
69 | 69 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
70 | 70 | virtual void video_start(); |
71 | 71 | virtual void palette_init(); |
72 | UINT32 screen_update_wallc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
72 | 73 | }; |
73 | 74 | |
74 | 75 | |
r17967 | r17968 | |
153 | 154 | 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); |
154 | 155 | } |
155 | 156 | |
156 | static | |
157 | UINT32 wallc_state::screen_update_wallc(screen_device &screen, bitmap_ind | |
157 | 158 | { |
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); | |
160 | 160 | return 0; |
161 | 161 | } |
162 | 162 | |
r17967 | r17968 | |
310 | 310 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
311 | 311 | MCFG_SCREEN_SIZE(32*8, 32*8) |
312 | 312 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) |
313 | MCFG_SCREEN_UPDATE_ | |
313 | MCFG_SCREEN_UPDATE_DR | |
314 | 314 | |
315 | 315 | MCFG_GFXDECODE(wallc) |
316 | 316 | MCFG_PALETTE_LENGTH(32) |
r17967 | r17968 | |
---|---|---|
272 | 272 | /* note: these parameters are from published specs, not derived */ |
273 | 273 | /* the board uses an SOS-2 chip to generate video signals */ |
274 | 274 | MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz, 456*2, 0, 336*2, 262, 0, 240) |
275 | MCFG_SCREEN_UPDATE_ | |
275 | MCFG_SCREEN_UPDATE_DR | |
276 | 276 | |
277 | 277 | MCFG_VIDEO_START_OVERRIDE(skullxbo_state,skullxbo) |
278 | 278 |
r17967 | r17968 | |
---|---|---|
152 | 152 | virtual void machine_reset(); |
153 | 153 | virtual void video_start(); |
154 | 154 | virtual void palette_init(); |
155 | UINT32 screen_update_marinedt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
155 | 156 | }; |
156 | 157 | |
157 | 158 | |
r17967 | r17968 | |
515 | 516 | #define OBJ_COLOR(a) ((a) & 0x03) |
516 | 517 | #define OBJ_X(x) (256 - 32 - (x)) |
517 | 518 | #define OBJ_Y(y) (256 - 1 - (y)) |
518 | #define OBJ_FLIPX(a) (( | |
519 | #define OBJ_FLIPX(a) (( | |
519 | 520 | #define OBJ_FLIPY(a) ((a) & 0x80) |
520 | 521 | |
521 | static | |
522 | UINT32 marinedt_state::screen_update_marinedt(screen_device &screen, bitmap_ind | |
522 | 523 | { |
523 | marinedt_state *state = screen.machine().driver_data<marinedt_state>(); | |
524 | 524 | int sx, sy; |
525 | 525 | |
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); | |
528 | 528 | |
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), | |
534 | 534 | 0, 0, 0); |
535 | 535 | |
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), | |
541 | 541 | 0, 0, 0); |
542 | 542 | |
543 | 543 | bitmap.fill(0); |
544 | 544 | |
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); | |
547 | 547 | |
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); | |
550 | 550 | |
551 | copybitmap_trans(bitmap, * | |
551 | copybitmap_trans(bitmap, * | |
552 | 552 | |
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) | |
555 | 555 | { |
556 | 556 | for (sx = 0; sx < 32; sx++) |
557 | 557 | for (sy = 0; sy < 32; sy++) |
558 | 558 | { |
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; | |
561 | 561 | |
562 | 562 | if (!cliprect.contains(x, y)) |
563 | 563 | continue; |
564 | 564 | |
565 | if ( | |
565 | if ( | |
566 | 566 | continue; |
567 | 567 | |
568 | if ( | |
568 | if ( | |
569 | 569 | { |
570 | | |
570 | | |
571 | 571 | |
572 | state->m_cx = (x % 128) / 8; | |
573 | state->m_cx &= 0x0f; | |
572 | m_cx = (x % 128) / 8; | |
573 | m_cx &= 0x0f; | |
574 | 574 | |
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; | |
577 | 577 | |
578 | state->m_cyq = y / 64; | |
579 | state->m_cyq &= 0x0f; | |
578 | m_cyq = y / 64; | |
579 | m_cyq &= 0x0f; | |
580 | 580 | |
581 | 581 | break; |
582 | 582 | } |
583 | 583 | } |
584 | 584 | } |
585 | 585 | |
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) | |
588 | 588 | { |
589 | 589 | for (sx = 0; sx < 32; sx++) |
590 | 590 | for (sy = 0; sy < 32; sy++) |
591 | 591 | { |
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); | |
594 | 594 | |
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; | |
597 | 597 | |
598 | 598 | if (xx < 0 || xx >= 32 || yy < 0 || yy >= 32) |
599 | 599 | continue; |
600 | 600 | |
601 | if ( | |
601 | if ( | |
602 | 602 | continue; |
603 | 603 | |
604 | if ( | |
604 | if ( | |
605 | 605 | { |
606 | | |
606 | | |
607 | 607 | |
608 | state->m_cxh = (x % 128) / 8; | |
609 | state->m_cxh &= 0x0f; | |
608 | m_cxh = (x % 128) / 8; | |
609 | m_cxh &= 0x0f; | |
610 | 610 | |
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; | |
613 | 613 | |
614 | state->m_cyqh= y / 64; | |
615 | state->m_cyqh &= 0x0f; | |
614 | m_cyqh= y / 64; | |
615 | m_cyqh &= 0x0f; | |
616 | 616 | |
617 | 617 | break; |
618 | 618 | } |
r17967 | r17968 | |
682 | 682 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
683 | 683 | MCFG_SCREEN_SIZE(4*8+32*8, 32*8) |
684 | 684 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 32*8-1) |
685 | MCFG_SCREEN_UPDATE_ | |
685 | MCFG_SCREEN_UPDATE_DR | |
686 | 686 | |
687 | 687 | MCFG_GFXDECODE(marinedt) |
688 | 688 | MCFG_PALETTE_LENGTH(64) |
r17967 | r17968 | |
---|---|---|
393 | 393 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
394 | 394 | MCFG_SCREEN_SIZE(32*8, 32*8) |
395 | 395 | MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1) |
396 | MCFG_SCREEN_UPDATE_ | |
396 | MCFG_SCREEN_UPDATE_DR | |
397 | 397 | |
398 | 398 | MCFG_GFXDECODE(ironhors) |
399 | 399 | MCFG_PALETTE_LENGTH(16*8*16+16*8*16) |
r17967 | r17968 | |
468 | 468 | MCFG_GFXDECODE(farwest) |
469 | 469 | MCFG_VIDEO_START_OVERRIDE(ironhors_state,farwest) |
470 | 470 | MCFG_SCREEN_MODIFY("screen") |
471 | MCFG_SCREEN_UPDATE_ | |
471 | MCFG_SCREEN_UPDATE_DR | |
472 | 472 | |
473 | 473 | MCFG_SOUND_MODIFY("ym2203") |
474 | 474 | MCFG_SOUND_CONFIG(farwest_ym2203_config) |
r17967 | r17968 | |
---|---|---|
113 | 113 | DECLARE_WRITE16_MEMBER(sound_w); |
114 | 114 | DECLARE_WRITE8_MEMBER(oki_setbank); |
115 | 115 | virtual void video_start(); |
116 | UINT32 screen_update_sliver(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
116 | 117 | }; |
117 | 118 | |
118 | 119 | static void plot_pixel_rgb(sliver_state *state, int x, int y, UINT32 r, UINT32 g, UINT32 b) |
r17967 | r17968 | |
373 | 374 | machine().primary_screen->register_screen_bitmap(m_bitmap_fg); |
374 | 375 | } |
375 | 376 | |
376 | static | |
377 | UINT32 sliver_state::screen_update_sliver(screen_device &screen, bitmap_rgb | |
377 | 378 | { |
378 | sliver_state *state = screen.machine().driver_data<sliver_state>(); | |
379 | 379 | |
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); | |
382 | 382 | return 0; |
383 | 383 | } |
384 | 384 | |
r17967 | r17968 | |
486 | 486 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) |
487 | 487 | MCFG_SCREEN_SIZE(64*8, 32*8) |
488 | 488 | MCFG_SCREEN_VISIBLE_AREA(0*8, 384-1-16, 0*8, 240-1) |
489 | MCFG_SCREEN_UPDATE_ | |
489 | MCFG_SCREEN_UPDATE_DR | |
490 | 490 | |
491 | 491 | MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map) |
492 | 492 |
r17967 | r17968 | |
---|---|---|
407 | 407 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
408 | 408 | MCFG_SCREEN_SIZE(272, 241) |
409 | 409 | MCFG_SCREEN_VISIBLE_AREA(0, 271, 0, 235) |
410 | MCFG_SCREEN_UPDATE_ | |
410 | MCFG_SCREEN_UPDATE_DR | |
411 | 411 | |
412 | 412 | /* sound hardware */ |
413 | 413 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
434 | 434 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
435 | 435 | MCFG_SCREEN_SIZE(272, 241) |
436 | 436 | MCFG_SCREEN_VISIBLE_AREA(0, 271, 0, 235) |
437 | MCFG_SCREEN_UPDATE_ | |
437 | MCFG_SCREEN_UPDATE_DR | |
438 | 438 | |
439 | 439 | /* sound hardware */ |
440 | 440 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
---|---|---|
373 | 373 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
374 | 374 | MCFG_SCREEN_SIZE(32*8, 32*8) |
375 | 375 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 31*8-1) |
376 | MCFG_SCREEN_UPDATE_ | |
376 | MCFG_SCREEN_UPDATE_DR | |
377 | 377 | |
378 | 378 | MCFG_GFXDECODE(mrflea) |
379 | 379 | MCFG_PALETTE_LENGTH(32) |
r17967 | r17968 | |
---|---|---|
933 | 933 | } |
934 | 934 | } |
935 | 935 | |
936 | stat | |
936 | UINT32 cps3_state::screen | |
937 | 937 | { |
938 | cps3_state *state = screen.machine().driver_data<cps3_state>(); | |
939 | 938 | int y,x, count; |
940 | 939 | attoseconds_t period = screen.frame_period().attoseconds; |
941 | 940 | rectangle visarea = screen.visible_area(); |
r17967 | r17968 | |
951 | 950 | /* registers are normally 002a006f 01ef01c6 |
952 | 951 | widescreen mode = 00230076 026501c6 |
953 | 952 | only SFIII2 uses widescreen, I don't know exactly which register controls it */ |
954 | if ((( | |
953 | if ((( | |
955 | 954 | { |
956 | if ( | |
955 | if ( | |
957 | 956 | { |
958 | | |
957 | | |
959 | 958 | visarea.set(0, 496-1, 0, 224-1); |
960 | 959 | screen.configure(496, 224, visarea, period); |
961 | 960 | } |
962 | 961 | } |
963 | 962 | else |
964 | 963 | { |
965 | if ( | |
964 | if ( | |
966 | 965 | { |
967 | | |
966 | | |
968 | 967 | visarea.set(0, 384-1, 0, 224-1); |
969 | 968 | screen.configure(384, 224, visarea, period); |
970 | 969 | } |
971 | 970 | } |
972 | 971 | |
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; | |
975 | 974 | /* clamp at 0x80, I don't know if this is accurate */ |
976 | 975 | if (fullscreenzoomx>0x80) fullscreenzoomx = 0x80; |
977 | 976 | if (fullscreenzoomy>0x80) fullscreenzoomy = 0x80; |
r17967 | r17968 | |
979 | 978 | fszx = (fullscreenzoomx<<16)/0x40; |
980 | 979 | fszy = (fullscreenzoomy<<16)/0x40; |
981 | 980 | |
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; | |
986 | 985 | |
987 | | |
986 | | |
988 | 987 | |
989 | 988 | /* Sprites */ |
990 | 989 | { |
r17967 | r17968 | |
993 | 992 | //printf("Spritelist start:\n"); |
994 | 993 | for (i=0x00000/4;i<0x2000/4;i+=4) |
995 | 994 | { |
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; | |
998 | 997 | 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; | |
1002 | 1001 | |
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; | |
1010 | 1009 | |
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; | |
1013 | 1012 | start = (start * 0x100) >> 2; |
1014 | 1013 | |
1015 | if (( | |
1014 | if (( | |
1016 | 1015 | break; |
1017 | 1016 | |
1018 | 1017 | for (j=0;j<(length)*4;j+=4) |
1019 | 1018 | { |
1020 | 1019 | |
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]); | |
1024 | 1023 | |
1025 | 1024 | |
1026 | //UINT8* srcdata = (UINT8*) | |
1025 | //UINT8* srcdata = (UINT8*) | |
1027 | 1026 | //UINT32 sourceoffset = (value1 >>14)&0x7fffff; |
1028 | 1027 | int count; |
1029 | 1028 | |
r17967 | r17968 | |
1061 | 1060 | //int endline; |
1062 | 1061 | //int height = (value3 & 0x7f000000)>>24; |
1063 | 1062 | int uu; |
1064 | // UINT32* tmapregs[4] = { | |
1063 | // UINT32* tmapregs[4] = { | |
1065 | 1064 | // UINT32* regs; |
1066 | 1065 | // regs = tmapregs[tilemapnum]; |
1067 | 1066 | //endline = value2; |
r17967 | r17968 | |
1083 | 1082 | { |
1084 | 1083 | for (uu=0;uu<1023;uu++) |
1085 | 1084 | { |
1086 | cps3_draw_tilemapsprite_line(screen.machine(), tilemapnum, uu, | |
1085 | cps3_draw_tilemapsprite_line(screen.machine(), tilemapnum, uu, | |
1087 | 1086 | } |
1088 | 1087 | } |
1089 | 1088 | bg_drawn[tilemapnum] = 1; |
r17967 | r17968 | |
1141 | 1140 | |
1142 | 1141 | if (current_ypos&0x200) current_ypos-=0x400; |
1143 | 1142 | |
1144 | //if ( (whichbpp) && (machine.primary_screen->frame_number() & 1)) continue; | |
1143 | //if ( (whichbpp) && (machine().primary_screen->frame_number() & 1)) continue; | |
1145 | 1144 | |
1146 | 1145 | /* use the palette value from the main list or the sublists? */ |
1147 | 1146 | if (whichpal) |
r17967 | r17968 | |
1170 | 1169 | |
1171 | 1170 | if (global_alpha || alpha) |
1172 | 1171 | { |
1173 | cps3_drawgfxzoom( | |
1172 | cps3_drawgfxzoom( | |
1174 | 1173 | } |
1175 | 1174 | else |
1176 | 1175 | { |
1177 | cps3_drawgfxzoom( | |
1176 | cps3_drawgfxzoom( | |
1178 | 1177 | } |
1179 | 1178 | count++; |
1180 | 1179 | } |
r17967 | r17968 | |
1201 | 1200 | for (rendery=0;rendery<224;rendery++) |
1202 | 1201 | { |
1203 | 1202 | dstbitmap = &bitmap.pix32(rendery); |
1204 | srcbitmap = & | |
1203 | srcbitmap = & | |
1205 | 1204 | srcx=0; |
1206 | 1205 | |
1207 | for (renderx=0;renderx< | |
1206 | for (renderx=0;renderx< | |
1208 | 1207 | { |
1209 | dstbitmap[renderx] = | |
1208 | dstbitmap[renderx] = | |
1210 | 1209 | srcx += fszx; |
1211 | 1210 | } |
1212 | 1211 | |
r17967 | r17968 | |
1218 | 1217 | /* Copy the first 0x800 colours to be used for fg layer rendering */ |
1219 | 1218 | // for (offset=0;offset<0x200;offset++) |
1220 | 1219 | // { |
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]); | |
1223 | 1222 | // } |
1224 | 1223 | |
1225 | 1224 | // fg layer |
1226 | 1225 | { |
1227 | 1226 | // bank select? (sfiii2 intro) |
1228 | if ( | |
1227 | if ( | |
1229 | 1228 | else count = 0x800; |
1230 | 1229 | |
1231 | 1230 | for (y=0;y<32;y++) |
1232 | 1231 | { |
1233 | 1232 | for (x=0;x<64;x++) |
1234 | 1233 | { |
1235 | UINT32 data = | |
1234 | UINT32 data = | |
1236 | 1235 | UINT32 tile = (data >> 16) & 0x1ff; |
1237 | 1236 | int pal = (data&0x003f) >> 1; |
1238 | 1237 | int flipx = (data & 0x0080) >> 7; |
1239 | 1238 | int flipy = (data & 0x0040) >> 6; |
1240 | pal += | |
1239 | pal += | |
1241 | 1240 | tile+=0x200; |
1242 | 1241 | |
1243 | 1242 | cps3_drawgfxzoom(bitmap, cliprect, screen.machine().gfx[0],tile,pal,flipx,flipy,x*8,y*8,CPS3_TRANSPARENCY_PEN,0,0x10000,0x10000,NULL,0); |
r17967 | r17968 | |
2506 | 2505 | /* video hardware */ |
2507 | 2506 | MCFG_SCREEN_ADD("screen", RASTER) |
2508 | 2507 | MCFG_SCREEN_RAW_PARAMS(XTAL_60MHz/8, 486, 0, 384, 259, 0, 224) |
2509 | MCFG_SCREEN_UPDATE_ | |
2508 | MCFG_SCREEN_UPDATE_DR | |
2510 | 2509 | /* |
2511 | 2510 | Measured clocks: |
2512 | 2511 | V = 59.5992Hz |
r17967 | r17968 | |
---|---|---|
205 | 205 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
206 | 206 | MCFG_SCREEN_SIZE(32*16, 32*16) |
207 | 207 | MCFG_SCREEN_VISIBLE_AREA(0, 368-1, 16, 256-1) |
208 | MCFG_SCREEN_UPDATE_ | |
208 | MCFG_SCREEN_UPDATE_DR | |
209 | 209 | |
210 | 210 | MCFG_GFXDECODE(glass) |
211 | 211 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
23 | 23 | : driver_device(mconfig, type, tag) { } |
24 | 24 | |
25 | 25 | 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); | |
26 | 28 | }; |
27 | 29 | |
28 | 30 | |
r17967 | r17968 | |
35 | 37 | } |
36 | 38 | |
37 | 39 | |
38 | stat | |
40 | UINT32 ddz_state::screen | |
39 | 41 | { |
40 | 42 | return 0; |
41 | 43 | } |
42 | 44 | |
43 | stat | |
45 | void ddz_state::screen | |
44 | 46 | { |
45 | 47 | |
46 | 48 | } |
r17967 | r17968 | |
75 | 77 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
76 | 78 | MCFG_SCREEN_SIZE(320, 240) |
77 | 79 | 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) | |
80 | 82 | |
81 | 83 | MCFG_PALETTE_LENGTH(8192) |
82 | 84 |
r17967 | r17968 | |
---|---|---|
306 | 306 | DECLARE_PALETTE_INIT(subsino_3proms); |
307 | 307 | DECLARE_VIDEO_START(subsino_reels); |
308 | 308 | 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); | |
309 | 312 | }; |
310 | 313 | |
311 | 314 | |
r17967 | r17968 | |
483 | 486 | } |
484 | 487 | |
485 | 488 | |
486 | stat | |
489 | UINT32 subsino_state::screen | |
487 | 490 | { |
488 | subsino_state *state = screen.machine().driver_data<subsino_state>(); | |
489 | 491 | bitmap.fill(0, cliprect); |
490 | | |
492 | | |
491 | 493 | return 0; |
492 | 494 | } |
493 | 495 | |
494 | stat | |
496 | UINT32 subsino_state::screen | |
495 | 497 | { |
496 | subsino_state *state = screen.machine().driver_data<subsino_state>(); | |
497 | 498 | int i; |
498 | 499 | bitmap.fill(0, cliprect); |
499 | 500 | |
500 | 501 | for (i= 0;i < 64;i++) |
501 | 502 | { |
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]); | |
505 | 506 | } |
506 | 507 | |
507 | if ( | |
508 | if ( | |
508 | 509 | { |
509 | 510 | // are these hardcoded, or registers? |
510 | 511 | const rectangle visible1(0*8, (14+48)*8-1, 4*8, (4+7)*8-1); |
511 | 512 | const rectangle visible2(0*8, (14+48)*8-1, 10*8, (10+7)*8-1); |
512 | 513 | const rectangle visible3(0*8, (14+48)*8-1, 18*8, (18+7)*8-1); |
513 | 514 | |
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); | |
517 | 518 | } |
518 | 519 | |
519 | | |
520 | | |
520 | 521 | return 0; |
521 | 522 | } |
522 | 523 | |
523 | 524 | |
524 | stat | |
525 | UINT32 subsino_state::screen | |
525 | 526 | { |
526 | subsino_state *state = screen.machine().driver_data<subsino_state>(); | |
527 | 527 | int i; |
528 | 528 | bitmap.fill(0, cliprect); |
529 | 529 | |
530 | if ( | |
530 | if ( | |
531 | 531 | { |
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(); | |
535 | 535 | } |
536 | 536 | |
537 | 537 | for (i= 0;i < 64;i++) |
538 | 538 | { |
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]); | |
542 | 542 | } |
543 | 543 | |
544 | if ( | |
544 | if ( | |
545 | 545 | { |
546 | 546 | // areas based on d-up game in attract mode |
547 | 547 | const rectangle visible1(0, 511, 0, 87); |
548 | 548 | const rectangle visible2(0, 511, 88, 143); |
549 | 549 | const rectangle visible3(0, 511, 144, 223); |
550 | 550 | |
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); | |
554 | 554 | } |
555 | 555 | |
556 | | |
556 | | |
557 | 557 | return 0; |
558 | 558 | } |
559 | 559 | |
r17967 | r17968 | |
2657 | 2657 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2658 | 2658 | MCFG_SCREEN_SIZE(512, 256) |
2659 | 2659 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+16, 256-16-1) |
2660 | MCFG_SCREEN_UPDATE_ | |
2660 | MCFG_SCREEN_UPDATE_DR | |
2661 | 2661 | |
2662 | 2662 | MCFG_GFXDECODE(subsino_depth3) |
2663 | 2663 | |
r17967 | r17968 | |
2697 | 2697 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2698 | 2698 | MCFG_SCREEN_SIZE(512, 256) |
2699 | 2699 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+16, 256-16-1) |
2700 | MCFG_SCREEN_UPDATE_ | |
2700 | MCFG_SCREEN_UPDATE_DR | |
2701 | 2701 | |
2702 | 2702 | MCFG_GFXDECODE(subsino_depth4) |
2703 | 2703 | |
r17967 | r17968 | |
2726 | 2726 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2727 | 2727 | MCFG_SCREEN_SIZE(512, 256) |
2728 | 2728 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+16, 256-16-1) |
2729 | MCFG_SCREEN_UPDATE_ | |
2729 | MCFG_SCREEN_UPDATE_DR | |
2730 | 2730 | |
2731 | 2731 | MCFG_GFXDECODE(subsino_depth4) |
2732 | 2732 | |
r17967 | r17968 | |
2765 | 2765 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2766 | 2766 | MCFG_SCREEN_SIZE(512, 256) |
2767 | 2767 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+16, 256-16-1) |
2768 | MCFG_SCREEN_UPDATE_ | |
2768 | MCFG_SCREEN_UPDATE_DR | |
2769 | 2769 | |
2770 | 2770 | MCFG_GFXDECODE(subsino_depth4_reels) |
2771 | 2771 | |
r17967 | r17968 | |
2793 | 2793 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2794 | 2794 | MCFG_SCREEN_SIZE(512, 256) |
2795 | 2795 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+16, 256-16-1) |
2796 | MCFG_SCREEN_UPDATE_ | |
2796 | MCFG_SCREEN_UPDATE_DR | |
2797 | 2797 | |
2798 | 2798 | MCFG_GFXDECODE(subsino_stisub) |
2799 | 2799 |
r17967 | r17968 | |
---|---|---|
224 | 224 | |
225 | 225 | DECLARE_DRIVER_INIT(jchan); |
226 | 226 | virtual void video_start(); |
227 | UINT32 screen_update_jchan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
227 | 228 | }; |
228 | 229 | |
229 | 230 | |
r17967 | r17968 | |
295 | 296 | |
296 | 297 | |
297 | 298 | |
298 | static | |
299 | UINT32 jchan_state::screen_update_jchan(screen_device &screen, bitmap_ind | |
299 | 300 | { |
300 | jchan_state *state = screen.machine().driver_data<jchan_state>(); | |
301 | 301 | int x,y; |
302 | 302 | UINT16* src1; |
303 | 303 | UINT16* src2; |
r17967 | r17968 | |
309 | 309 | |
310 | 310 | screen.machine().priority_bitmap.fill(0, cliprect); |
311 | 311 | |
312 | | |
312 | | |
313 | 313 | |
314 | 314 | for ( int i = 0; i < 8; i++ ) |
315 | 315 | { |
316 | | |
316 | | |
317 | 317 | } |
318 | 318 | |
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); | |
321 | 321 | |
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 ); | |
324 | 324 | |
325 | 325 | // ignoring priority bits for now - might use alpha too, check 0x8000 of palette writes |
326 | 326 | for (y=0;y<240;y++) |
327 | 327 | { |
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); | |
330 | 330 | dst = &bitmap.pix16(y); |
331 | 331 | |
332 | 332 | for (x=0;x<320;x++) |
r17967 | r17968 | |
612 | 612 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
613 | 613 | MCFG_SCREEN_SIZE(64*8, 64*8) |
614 | 614 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) |
615 | MCFG_SCREEN_UPDATE_ | |
615 | MCFG_SCREEN_UPDATE_DR | |
616 | 616 | |
617 | 617 | MCFG_PALETTE_LENGTH(0x10000) |
618 | 618 |
r17967 | r17968 | |
---|---|---|
77 | 77 | DECLARE_DRIVER_INIT(mlanding); |
78 | 78 | virtual void machine_reset(); |
79 | 79 | virtual void video_start(); |
80 | UINT32 screen_update_mlanding(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
80 | 81 | }; |
81 | 82 | |
82 | 83 | |
r17967 | r17968 | |
89 | 90 | // 256: Cockpit |
90 | 91 | // 512: control centre screen |
91 | 92 | // 768: plane landing sequence |
92 | stat | |
93 | UINT32 mlanding_state::screen | |
93 | 94 | { |
94 | mlanding_state *state = screen.machine().driver_data<mlanding_state>(); | |
95 | 95 | int x, y; |
96 | 96 | |
97 | 97 | for (y = cliprect.min_y; y <= cliprect.max_y; ++y) |
98 | 98 | { |
99 | UINT16 *src = & | |
99 | UINT16 *src = & | |
100 | 100 | UINT16 *dst = &bitmap.pix16(y, cliprect.min_x); |
101 | 101 | |
102 | 102 | for (x = cliprect.min_x; x <= cliprect.max_x; x += 2) |
103 | 103 | { |
104 | 104 | UINT16 srcpix = *src++; |
105 | 105 | |
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)]; | |
108 | 108 | } |
109 | 109 | } |
110 | 110 | |
r17967 | r17968 | |
794 | 794 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
795 | 795 | MCFG_SCREEN_SIZE(512, 512) |
796 | 796 | MCFG_SCREEN_VISIBLE_AREA(0, 511, 14*8, 511) |
797 | MCFG_SCREEN_UPDATE_ | |
797 | MCFG_SCREEN_UPDATE_DR | |
798 | 798 | |
799 | 799 | MCFG_PALETTE_LENGTH(512*16) |
800 | 800 |
r17967 | r17968 | |
---|---|---|
347 | 347 | MCFG_SCREEN_SIZE ( 64*8, 32*8 ) |
348 | 348 | MCFG_SCREEN_VISIBLE_AREA ( 16*8, 56*8-1, 1*8, 31*8-1 ) |
349 | 349 | // MCFG_SCREEN_VISIBLE_AREA ( 0*8, 64*8-1, 1*8, 31*8-1 ) |
350 | MCFG_SCREEN_UPDATE_ | |
350 | MCFG_SCREEN_UPDATE_DR | |
351 | 351 | |
352 | 352 | MCFG_GFXDECODE( tankbust ) |
353 | 353 |
r17967 | r17968 | |
---|---|---|
309 | 309 | /* video hardware */ |
310 | 310 | MCFG_SCREEN_ADD("screen", RASTER) |
311 | 311 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
312 | MCFG_SCREEN_UPDATE_ | |
312 | MCFG_SCREEN_UPDATE_DR | |
313 | 313 | |
314 | 314 | MCFG_GFXDECODE(bankp) |
315 | 315 | MCFG_PALETTE_LENGTH(32*4+16*8) |
r17967 | r17968 | |
---|---|---|
55 | 55 | DECLARE_DRIVER_INIT(nprsp); |
56 | 56 | virtual void video_start(); |
57 | 57 | 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); | |
58 | 60 | }; |
59 | 61 | |
60 | 62 | |
r17967 | r17968 | |
109 | 111 | } |
110 | 112 | } |
111 | 113 | |
112 | ||
114 | ||
113 | 115 | { |
114 | 116 | bitmap.fill(0, cliprect); |
115 | 117 | |
r17967 | r17968 | |
119 | 121 | return 0; |
120 | 122 | } |
121 | 123 | |
122 | ||
124 | ||
123 | 125 | { |
124 | 126 | bitmap.fill(0, cliprect); |
125 | 127 | |
r17967 | r17968 | |
479 | 481 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
480 | 482 | MCFG_SCREEN_SIZE(64*8, 32*8) |
481 | 483 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 30*8-1) |
482 | MCFG_SCREEN_UPDATE_ | |
484 | MCFG_SCREEN_UPDATE_DR | |
483 | 485 | |
484 | 486 | MCFG_PALETTE_LENGTH(0x10000) |
485 | 487 | |
r17967 | r17968 | |
519 | 521 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
520 | 522 | MCFG_SCREEN_SIZE(64*8, 32*8) |
521 | 523 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 30*8-1) |
522 | MCFG_SCREEN_UPDATE_ | |
524 | MCFG_SCREEN_UPDATE_DR | |
523 | 525 | |
524 | 526 | MCFG_MACHINE_RESET_OVERRIDE(neoprint_state,nprsp) |
525 | 527 |
r17967 | r17968 | |
---|---|---|
421 | 421 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
422 | 422 | MCFG_SCREEN_SIZE(256, 256) |
423 | 423 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1) |
424 | MCFG_SCREEN_UPDATE_ | |
424 | MCFG_SCREEN_UPDATE_DR | |
425 | 425 | |
426 | 426 | MCFG_PALETTE_LENGTH(32) |
427 | 427 | |
r17967 | r17968 | |
477 | 477 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
478 | 478 | MCFG_SCREEN_SIZE(256, 256) |
479 | 479 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1) |
480 | MCFG_SCREEN_UPDATE_ | |
480 | MCFG_SCREEN_UPDATE_DR | |
481 | 481 | |
482 | 482 | MCFG_PALETTE_LENGTH(32) |
483 | 483 |
r17967 | r17968 | |
---|---|---|
493 | 493 | DECLARE_DRIVER_INIT(blitz99); |
494 | 494 | virtual void machine_start(); |
495 | 495 | virtual void machine_reset(); |
496 | UINT32 screen_update_seattle(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
496 | 497 | }; |
497 | 498 | |
498 | 499 | |
r17967 | r17968 | |
519 | 520 | * |
520 | 521 | *************************************/ |
521 | 522 | |
522 | stat | |
523 | UINT32 seattle_state::screen | |
523 | 524 | { |
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; | |
526 | 526 | } |
527 | 527 | |
528 | 528 | |
r17967 | r17968 | |
2559 | 2559 | MCFG_SCREEN_REFRESH_RATE(57) |
2560 | 2560 | MCFG_SCREEN_SIZE(640, 480) |
2561 | 2561 | MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479) |
2562 | MCFG_SCREEN_UPDATE_ | |
2562 | MCFG_SCREEN_UPDATE_DR | |
2563 | 2563 | |
2564 | 2564 | /* sound hardware */ |
2565 | 2565 | MACHINE_CONFIG_END |
r17967 | r17968 | |
---|---|---|
320 | 320 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
321 | 321 | MCFG_SCREEN_SIZE(64*8, 50*8) |
322 | 322 | MCFG_SCREEN_VISIBLE_AREA(0+96, 40*8-1+96, 3*8+60, 32*8-1+60) |
323 | MCFG_SCREEN_UPDATE_ | |
323 | MCFG_SCREEN_UPDATE_DR | |
324 | 324 | |
325 | 325 | MCFG_GFXDECODE(galastrm) |
326 | 326 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
---|---|---|
1340 | 1340 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1341 | 1341 | MCFG_SCREEN_SIZE(0x140, 0xe0) |
1342 | 1342 | MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xe0-1) |
1343 | MCFG_SCREEN_UPDATE_ | |
1343 | MCFG_SCREEN_UPDATE_DR | |
1344 | 1344 | |
1345 | 1345 | MCFG_GFXDECODE(tetrisp2) |
1346 | 1346 | MCFG_PALETTE_LENGTH(0x8000) |
r17967 | r17968 | |
1371 | 1371 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1372 | 1372 | MCFG_SCREEN_SIZE(0x180, 0xf0) |
1373 | 1373 | MCFG_SCREEN_VISIBLE_AREA(0, 0x180-1, 0, 0xf0-1) |
1374 | MCFG_SCREEN_UPDATE_ | |
1374 | MCFG_SCREEN_UPDATE_DR | |
1375 | 1375 | |
1376 | 1376 | MCFG_GFXDECODE(tetrisp2) |
1377 | 1377 | MCFG_PALETTE_LENGTH(0x8000) |
r17967 | r17968 | |
1401 | 1401 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1402 | 1402 | MCFG_SCREEN_SIZE(0x140, 0xe0) |
1403 | 1403 | MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xe0-1) |
1404 | MCFG_SCREEN_UPDATE_ | |
1404 | MCFG_SCREEN_UPDATE_DR | |
1405 | 1405 | |
1406 | 1406 | MCFG_GFXDECODE(tetrisp2) |
1407 | 1407 | MCFG_PALETTE_LENGTH(0x8000) |
r17967 | r17968 | |
1432 | 1432 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1433 | 1433 | MCFG_SCREEN_SIZE(0x140, 0xe0) |
1434 | 1434 | MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xe0-1) |
1435 | MCFG_SCREEN_UPDATE_ | |
1435 | MCFG_SCREEN_UPDATE_DR | |
1436 | 1436 | |
1437 | 1437 | MCFG_GFXDECODE(tetrisp2) |
1438 | 1438 | MCFG_PALETTE_LENGTH(0x8000) |
r17967 | r17968 | |
1472 | 1472 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1473 | 1473 | MCFG_SCREEN_SIZE(0x140, 0xe0) |
1474 | 1474 | MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xe0-1) |
1475 | MCFG_SCREEN_UPDATE_ | |
1475 | MCFG_SCREEN_UPDATE_DR | |
1476 | 1476 | |
1477 | 1477 | MCFG_SCREEN_ADD("rscreen", RASTER) |
1478 | 1478 | MCFG_SCREEN_REFRESH_RATE(60) |
1479 | 1479 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1480 | 1480 | MCFG_SCREEN_SIZE(0x140, 0xe0) |
1481 | 1481 | MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xe0-1) |
1482 | MCFG_SCREEN_UPDATE_ | |
1482 | MCFG_SCREEN_UPDATE_DR | |
1483 | 1483 | |
1484 | 1484 | MCFG_VIDEO_START_OVERRIDE(tetrisp2_state,rocknms) |
1485 | 1485 | |
r17967 | r17968 | |
1509 | 1509 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1510 | 1510 | MCFG_SCREEN_SIZE(0x160, 0x100) |
1511 | 1511 | MCFG_SCREEN_VISIBLE_AREA(0, 0x160-1, 0, 0xf0-1) |
1512 | MCFG_SCREEN_UPDATE_ | |
1512 | MCFG_SCREEN_UPDATE_DR | |
1513 | 1513 | |
1514 | 1514 | MCFG_SCREEN_ADD("screen", RASTER) |
1515 | 1515 | MCFG_SCREEN_REFRESH_RATE(60) |
1516 | 1516 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1517 | 1517 | MCFG_SCREEN_SIZE(0x160, 0x100) |
1518 | 1518 | MCFG_SCREEN_VISIBLE_AREA(0, 0x160-1, 0, 0xf0-1) |
1519 | MCFG_SCREEN_UPDATE_ | |
1519 | MCFG_SCREEN_UPDATE_DR | |
1520 | 1520 | |
1521 | 1521 | MCFG_SCREEN_ADD("rscreen", RASTER) |
1522 | 1522 | MCFG_SCREEN_REFRESH_RATE(60) |
1523 | 1523 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1524 | 1524 | MCFG_SCREEN_SIZE(0x160, 0x100) |
1525 | 1525 | MCFG_SCREEN_VISIBLE_AREA(0, 0x160-1, 0, 0xf0-1) |
1526 | MCFG_SCREEN_UPDATE_ | |
1526 | MCFG_SCREEN_UPDATE_DR | |
1527 | 1527 | |
1528 | 1528 | MCFG_PALETTE_LENGTH(0x8000) // 0x8000 * 3 needed I guess, but it hits an assert |
1529 | 1529 |
r17967 | r17968 | |
---|---|---|
1978 | 1978 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1979 | 1979 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1980 | 1980 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
1981 | MCFG_SCREEN_UPDATE_ | |
1981 | MCFG_SCREEN_UPDATE_DR | |
1982 | 1982 | |
1983 | 1983 | MCFG_GFXDECODE(sstingry) |
1984 | 1984 | MCFG_PALETTE_LENGTH(256 + 1) |
r17967 | r17968 | |
2023 | 2023 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2024 | 2024 | MCFG_SCREEN_SIZE(32*8, 32*8) |
2025 | 2025 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
2026 | MCFG_SCREEN_UPDATE_ | |
2026 | MCFG_SCREEN_UPDATE_DR | |
2027 | 2027 | |
2028 | 2028 | MCFG_GFXDECODE(kyros) |
2029 | 2029 | MCFG_PALETTE_LENGTH(256 + 1) |
r17967 | r17968 | |
2068 | 2068 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2069 | 2069 | MCFG_SCREEN_SIZE(32*8, 32*8) |
2070 | 2070 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
2071 | MCFG_SCREEN_UPDATE_ | |
2071 | MCFG_SCREEN_UPDATE_DR | |
2072 | 2072 | |
2073 | 2073 | MCFG_GFXDECODE(jongbou) |
2074 | 2074 | MCFG_PALETTE_LENGTH(256 + 1) |
r17967 | r17968 | |
2102 | 2102 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2103 | 2103 | MCFG_SCREEN_SIZE(32*8, 32*8) |
2104 | 2104 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
2105 | MCFG_SCREEN_UPDATE_ | |
2105 | MCFG_SCREEN_UPDATE_DR | |
2106 | 2106 | |
2107 | 2107 | MCFG_GFXDECODE(paddle) |
2108 | 2108 | |
r17967 | r17968 | |
2146 | 2146 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2147 | 2147 | MCFG_SCREEN_SIZE(32*8, 32*8) |
2148 | 2148 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
2149 | MCFG_SCREEN_UPDATE_ | |
2149 | MCFG_SCREEN_UPDATE_DR | |
2150 | 2150 | |
2151 | 2151 | MCFG_GFXDECODE(alpha68k_II) |
2152 | 2152 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
2195 | 2195 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2196 | 2196 | MCFG_SCREEN_SIZE(32*8, 32*8) |
2197 | 2197 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
2198 | MCFG_SCREEN_UPDATE_ | |
2198 | MCFG_SCREEN_UPDATE_DR | |
2199 | 2199 | |
2200 | 2200 | MCFG_GFXDECODE(alpha68k_II) |
2201 | 2201 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
2238 | 2238 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2239 | 2239 | MCFG_SCREEN_SIZE(32*8, 32*8) |
2240 | 2240 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
2241 | MCFG_SCREEN_UPDATE_ | |
2241 | MCFG_SCREEN_UPDATE_DR | |
2242 | 2242 | |
2243 | 2243 | MCFG_GFXDECODE(alpha68k_V) |
2244 | 2244 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
2280 | 2280 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2281 | 2281 | MCFG_SCREEN_SIZE(32*8, 32*8) |
2282 | 2282 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
2283 | MCFG_SCREEN_UPDATE_ | |
2283 | MCFG_SCREEN_UPDATE_DR | |
2284 | 2284 | |
2285 | 2285 | MCFG_GFXDECODE(alpha68k_V) |
2286 | 2286 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
2321 | 2321 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2322 | 2322 | MCFG_SCREEN_SIZE(32*8, 32*8) |
2323 | 2323 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
2324 | MCFG_SCREEN_UPDATE_ | |
2324 | MCFG_SCREEN_UPDATE_DR | |
2325 | 2325 | |
2326 | 2326 | MCFG_GFXDECODE(tnextspc) |
2327 | 2327 |
r17967 | r17968 | |
---|---|---|
183 | 183 | DECLARE_VIDEO_START(tmaster); |
184 | 184 | DECLARE_MACHINE_RESET(galgames); |
185 | 185 | DECLARE_VIDEO_START(galgames); |
186 | UINT32 screen_update_tmaster(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
186 | 187 | }; |
187 | 188 | |
188 | 189 | |
r17967 | r17968 | |
357 | 358 | m_compute_addr = galgames_compute_addr; |
358 | 359 | } |
359 | 360 | |
360 | static | |
361 | UINT32 tmaster_state::screen_update_tmaster(screen_device &screen, bitmap_ind | |
361 | 362 | { |
362 | tmaster_state *state = screen.machine().driver_data<tmaster_state>(); | |
363 | 363 | int layers_ctrl = -1; |
364 | 364 | |
365 | 365 | #ifdef MAME_DEBUG |
r17967 | r17968 | |
375 | 375 | |
376 | 376 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
377 | 377 | |
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); | |
380 | 380 | |
381 | 381 | return 0; |
382 | 382 | } |
r17967 | r17968 | |
941 | 941 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
942 | 942 | MCFG_SCREEN_SIZE(400, 256) |
943 | 943 | MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 256-1) |
944 | MCFG_SCREEN_UPDATE_ | |
944 | MCFG_SCREEN_UPDATE_DR | |
945 | 945 | |
946 | 946 | MCFG_PALETTE_LENGTH(0x1000) |
947 | 947 | |
r17967 | r17968 | |
998 | 998 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
999 | 999 | MCFG_SCREEN_SIZE(400, 256) |
1000 | 1000 | MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 256-1) |
1001 | MCFG_SCREEN_UPDATE_ | |
1001 | MCFG_SCREEN_UPDATE_DR | |
1002 | 1002 | |
1003 | 1003 | MCFG_PALETTE_LENGTH(0x1000) // only 0x100 used |
1004 | 1004 |
r17967 | r17968 | |
---|---|---|
54 | 54 | |
55 | 55 | DECLARE_DRIVER_INIT(tcl); |
56 | 56 | virtual void video_start(); |
57 | UINT32 screen_update_tcl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
57 | 58 | }; |
58 | 59 | |
59 | 60 | |
60 | 61 | void tcl_state::video_start() |
61 | 62 | { |
62 | 63 | } |
63 | static | |
64 | UINT32 tcl_state::screen_update_tcl(screen_device &screen, bitmap_ind | |
64 | 65 | { |
65 | 66 | return 0; |
66 | 67 | } |
r17967 | r17968 | |
135 | 136 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
136 | 137 | MCFG_SCREEN_SIZE(32*8, 32*8) |
137 | 138 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
138 | MCFG_SCREEN_UPDATE_ | |
139 | MCFG_SCREEN_UPDATE_DR | |
139 | 140 | |
140 | 141 | MCFG_GFXDECODE(tcl) |
141 | 142 | MCFG_PALETTE_LENGTH(16*16) |
r17967 | r17968 | |
---|---|---|
2971 | 2971 | MCFG_NVRAM_HANDLER(namcos22) |
2972 | 2972 | MCFG_SCREEN_ADD("screen", RASTER) |
2973 | 2973 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
2974 | MCFG_SCREEN_UPDATE_ | |
2974 | MCFG_SCREEN_UPDATE_DR | |
2975 | 2975 | |
2976 | 2976 | MCFG_PALETTE_LENGTH(NAMCOS22_PALETTE_SIZE) |
2977 | 2977 | MCFG_GFXDECODE(super) |
r17967 | r17968 | |
3219 | 3219 | MCFG_NVRAM_HANDLER(namcos22) |
3220 | 3220 | MCFG_SCREEN_ADD("screen", RASTER) |
3221 | 3221 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
3222 | MCFG_SCREEN_UPDATE_ | |
3222 | MCFG_SCREEN_UPDATE_DR | |
3223 | 3223 | |
3224 | 3224 | MCFG_PALETTE_LENGTH(NAMCOS22_PALETTE_SIZE) |
3225 | 3225 | MCFG_GFXDECODE(namcos22) |
r17967 | r17968 | |
---|---|---|
60 | 60 | virtual void machine_reset(); |
61 | 61 | virtual void video_start(); |
62 | 62 | virtual void palette_init(); |
63 | UINT32 screen_update_flyball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
63 | 64 | }; |
64 | 65 | |
65 | 66 | |
r17967 | r17968 | |
99 | 100 | } |
100 | 101 | |
101 | 102 | |
102 | stat | |
103 | UINT32 flyball_state::screen | |
103 | 104 | { |
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; | |
107 | 107 | |
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; | |
110 | 110 | |
111 | 111 | int x; |
112 | 112 | int y; |
113 | 113 | |
114 | | |
114 | | |
115 | 115 | |
116 | 116 | /* draw playfield */ |
117 | | |
117 | | |
118 | 118 | |
119 | 119 | /* draw pitcher */ |
120 | drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1], | |
120 | drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1], | |
121 | 121 | |
122 | 122 | /* draw ball */ |
123 | 123 | |
r17967 | r17968 | |
423 | 423 | MCFG_SCREEN_REFRESH_RATE(60) |
424 | 424 | MCFG_SCREEN_SIZE(256, 262) |
425 | 425 | MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239) |
426 | MCFG_SCREEN_UPDATE_ | |
426 | MCFG_SCREEN_UPDATE_DR | |
427 | 427 | |
428 | 428 | MCFG_GFXDECODE(flyball) |
429 | 429 | MCFG_PALETTE_LENGTH(4) |
r17967 | r17968 | |
---|---|---|
2187 | 2187 | |
2188 | 2188 | MCFG_SCREEN_ADD("screen", RASTER) |
2189 | 2189 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
2190 | MCFG_SCREEN_UPDATE_ | |
2190 | MCFG_SCREEN_UPDATE_DR | |
2191 | 2191 | |
2192 | 2192 | MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,galaxold) |
2193 | 2193 | MCFG_VIDEO_START_OVERRIDE(galaxold_state,galaxold) |
r17967 | r17968 | |
2340 | 2340 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
2341 | 2341 | MCFG_SCREEN_SIZE(32*8, 32*8) |
2342 | 2342 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
2343 | MCFG_SCREEN_UPDATE_ | |
2343 | MCFG_SCREEN_UPDATE_DR | |
2344 | 2344 | |
2345 | 2345 | MCFG_PALETTE_LENGTH(64) |
2346 | 2346 | MCFG_GFXDECODE(gmgalax) |
r17967 | r17968 | |
2364 | 2364 | |
2365 | 2365 | MCFG_VIDEO_START_OVERRIDE(galaxold_state,bongo) |
2366 | 2366 | MCFG_SCREEN_MODIFY("screen") |
2367 | MCFG_SCREEN_UPDATE_ | |
2367 | MCFG_SCREEN_UPDATE_DR | |
2368 | 2368 | |
2369 | 2369 | MCFG_SOUND_ADD("aysnd", AY8910, PIXEL_CLOCK/4) |
2370 | 2370 | MCFG_SOUND_CONFIG(bongo_ay8910_interface) |
r17967 | r17968 | |
2440 | 2440 | |
2441 | 2441 | MCFG_SCREEN_ADD("screen", RASTER) |
2442 | 2442 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
2443 | MCFG_SCREEN_UPDATE_ | |
2443 | MCFG_SCREEN_UPDATE_DR | |
2444 | 2444 | |
2445 | 2445 | MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,rockclim) |
2446 | 2446 | MCFG_VIDEO_START_OVERRIDE(galaxold_state,racknrol) |
r17967 | r17968 | |
2498 | 2498 | |
2499 | 2499 | MCFG_SCREEN_ADD("screen", RASTER) |
2500 | 2500 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
2501 | MCFG_SCREEN_UPDATE_ | |
2501 | MCFG_SCREEN_UPDATE_DR | |
2502 | 2502 | |
2503 | 2503 | MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,rockclim) |
2504 | 2504 | MCFG_VIDEO_START_OVERRIDE(galaxold_state,racknrol) |
r17967 | r17968 | |
---|---|---|
785 | 785 | /* note: these parameters are from published specs, not derived */ |
786 | 786 | /* video timing comes from an 82S163 (H) and an 82S129 (V) */ |
787 | 787 | MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240) |
788 | MCFG_SCREEN_UPDATE_ | |
788 | MCFG_SCREEN_UPDATE_DR | |
789 | 789 | |
790 | 790 | MCFG_VIDEO_START_OVERRIDE(atarisy1_state,atarisy1) |
791 | 791 |
r17967 | r17968 | |
---|---|---|
39 | 39 | DECLARE_WRITE8_MEMBER(horse_output_w); |
40 | 40 | DECLARE_WRITE_LINE_MEMBER(horse_timer_out); |
41 | 41 | virtual void palette_init(); |
42 | UINT32 screen_update_horse(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
42 | 43 | }; |
43 | 44 | |
44 | 45 | |
r17967 | r17968 | |
55 | 56 | palette_set_color_rgb(machine(), i, pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i >> 0)); |
56 | 57 | } |
57 | 58 | |
58 | static | |
59 | UINT32 horse_state::screen_update_horse(screen_device &screen, bitmap_ind | |
59 | 60 | { |
60 | horse_state *state = screen.machine().driver_data<horse_state>(); | |
61 | 61 | |
62 | 62 | for (int y = cliprect.min_y; y <= cliprect.max_y; y++) |
63 | 63 | { |
64 | 64 | for (int x = 0; x < 32; x++) |
65 | 65 | { |
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; | |
68 | 68 | |
69 | 69 | for (int i = 0; i < 8; i++) |
70 | 70 | bitmap.pix16(y, x << 3 | i) = (data >> i & 1) ? color : 0; |
r17967 | r17968 | |
213 | 213 | MCFG_SCREEN_SIZE(32*8, 32*8) |
214 | 214 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
215 | 215 | |
216 | MCFG_SCREEN_UPDATE_ | |
216 | MCFG_SCREEN_UPDATE_DR | |
217 | 217 | |
218 | 218 | MCFG_PALETTE_LENGTH(8) |
219 | 219 |
r17967 | r17968 | |
---|---|---|
463 | 463 | MCFG_SCREEN_REFRESH_RATE(60) |
464 | 464 | MCFG_SCREEN_SIZE(512, 261) |
465 | 465 | 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) | |
468 | 468 | |
469 | 469 | MCFG_GFXDECODE(sprint8) |
470 | 470 | MCFG_PALETTE_LENGTH(36) |
r17967 | r17968 | |
---|---|---|
117 | 117 | TILE_GET_INFO_MEMBER(get_pturn_bg_tile_info); |
118 | 118 | virtual void machine_reset(); |
119 | 119 | virtual void video_start(); |
120 | UINT32 screen_update_pturn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
120 | 121 | }; |
121 | 122 | |
122 | 123 | |
r17967 | r17968 | |
163 | 164 | m_bgmap->set_transparent_pen(0); |
164 | 165 | } |
165 | 166 | |
166 | static | |
167 | UINT32 pturn_state::screen_update_pturn(screen_device &screen, bitmap_ind | |
167 | 168 | { |
168 | pturn_state *state = screen.machine().driver_data<pturn_state>(); | |
169 | UINT8 *spriteram = state->m_spriteram; | |
169 | UINT8 *spriteram = m_spriteram; | |
170 | 170 | int offs; |
171 | 171 | int sx, sy; |
172 | 172 | int flipx, flipy; |
173 | 173 | |
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); | |
176 | 176 | for ( offs = 0x80-4 ; offs >=0 ; offs -= 4) |
177 | 177 | { |
178 | 178 | sy=256-spriteram[offs]-16 ; |
r17967 | r17968 | |
182 | 182 | flipy=spriteram[offs+1]&0x80; |
183 | 183 | |
184 | 184 | |
185 | if ( | |
185 | if ( | |
186 | 186 | { |
187 | 187 | sx = 224 - sx; |
188 | 188 | flipx ^= 0x40; |
189 | 189 | } |
190 | 190 | |
191 | if ( | |
191 | if ( | |
192 | 192 | { |
193 | 193 | flipy ^= 0x80; |
194 | 194 | sy = 224 - sy; |
r17967 | r17968 | |
203 | 203 | sx,sy,0); |
204 | 204 | } |
205 | 205 | } |
206 | | |
206 | | |
207 | 207 | return 0; |
208 | 208 | } |
209 | 209 | |
r17967 | r17968 | |
498 | 498 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
499 | 499 | MCFG_SCREEN_SIZE(32*8, 32*8) |
500 | 500 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
501 | MCFG_SCREEN_UPDATE_ | |
501 | MCFG_SCREEN_UPDATE_DR | |
502 | 502 | |
503 | 503 | MCFG_PALETTE_LENGTH(0x100) |
504 | 504 | MCFG_PALETTE_INIT(RRRR_GGGG_BBBB) |
r17967 | r17968 | |
---|---|---|
240 | 240 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
241 | 241 | MCFG_SCREEN_SIZE(64*8, 32*8) |
242 | 242 | MCFG_SCREEN_VISIBLE_AREA(8*8, 48*8-1, 2*8, 30*8-1) |
243 | MCFG_SCREEN_UPDATE_ | |
243 | MCFG_SCREEN_UPDATE_DR | |
244 | 244 | |
245 | 245 | MCFG_PALETTE_LENGTH(0x200) |
246 | 246 |
r17967 | r17968 | |
---|---|---|
1413 | 1413 | // MCFG_SCREEN_REFRESH_RATE(57.41) |
1414 | 1414 | // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */) |
1415 | 1415 | MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART) |
1416 | MCFG_SCREEN_UPDATE_ | |
1416 | MCFG_SCREEN_UPDATE_DR | |
1417 | 1417 | MCFG_VIDEO_START_OVERRIDE(dec0_state,dec0_nodma) |
1418 | 1418 | |
1419 | 1419 | MCFG_DEVICE_ADD("tilegen1", DECO_BAC06, 0) |
r17967 | r17968 | |
1466 | 1466 | // MCFG_SCREEN_REFRESH_RATE(57.41) |
1467 | 1467 | // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */) |
1468 | 1468 | MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART) |
1469 | MCFG_SCREEN_UPDATE_ | |
1469 | MCFG_SCREEN_UPDATE_DR | |
1470 | 1470 | MCFG_VIDEO_START_OVERRIDE(dec0_state,dec0_nodma) |
1471 | 1471 | |
1472 | 1472 | MCFG_DEVICE_ADD("tilegen1", DECO_BAC06, 0) |
r17967 | r17968 | |
1525 | 1525 | MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART) |
1526 | 1526 | //MCFG_SCREEN_SIZE(32*8, 32*8) |
1527 | 1527 | //MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
1528 | MCFG_SCREEN_UPDATE_ | |
1528 | MCFG_SCREEN_UPDATE_DR | |
1529 | 1529 | MACHINE_CONFIG_END |
1530 | 1530 | |
1531 | 1531 | static MACHINE_CONFIG_DERIVED( baddudes, dec0_base_sound ) |
r17967 | r17968 | |
1545 | 1545 | MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART) |
1546 | 1546 | // MCFG_SCREEN_SIZE(32*8, 32*8) |
1547 | 1547 | // MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
1548 | MCFG_SCREEN_UPDATE_ | |
1548 | MCFG_SCREEN_UPDATE_DR | |
1549 | 1549 | MACHINE_CONFIG_END |
1550 | 1550 | |
1551 | 1551 | static MACHINE_CONFIG_DERIVED( birdtry, dec0_base_sound ) |
r17967 | r17968 | |
1565 | 1565 | MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART) |
1566 | 1566 | // MCFG_SCREEN_SIZE(32*8, 32*8) |
1567 | 1567 | // MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
1568 | MCFG_SCREEN_UPDATE_ | |
1568 | MCFG_SCREEN_UPDATE_DR | |
1569 | 1569 | MACHINE_CONFIG_END |
1570 | 1570 | |
1571 | 1571 | static MACHINE_CONFIG_DERIVED( robocop, dec0_base_sound ) |
r17967 | r17968 | |
1590 | 1590 | MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART) |
1591 | 1591 | // MCFG_SCREEN_SIZE(32*8, 32*8) |
1592 | 1592 | // MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
1593 | MCFG_SCREEN_UPDATE_ | |
1593 | MCFG_SCREEN_UPDATE_DR | |
1594 | 1594 | MACHINE_CONFIG_END |
1595 | 1595 | |
1596 | 1596 | static MACHINE_CONFIG_DERIVED( robocopb, dec0_base_sound ) |
r17967 | r17968 | |
1610 | 1610 | MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART) |
1611 | 1611 | // MCFG_SCREEN_SIZE(32*8, 32*8) |
1612 | 1612 | // MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
1613 | MCFG_SCREEN_UPDATE_ | |
1613 | MCFG_SCREEN_UPDATE_DR | |
1614 | 1614 | MACHINE_CONFIG_END |
1615 | 1615 | |
1616 | 1616 | static MACHINE_CONFIG_DERIVED( hippodrm, dec0_base_sound ) |
r17967 | r17968 | |
1635 | 1635 | MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART) |
1636 | 1636 | // MCFG_SCREEN_SIZE(32*8, 32*8) |
1637 | 1637 | // MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
1638 | MCFG_SCREEN_UPDATE_ | |
1638 | MCFG_SCREEN_UPDATE_DR | |
1639 | 1639 | MACHINE_CONFIG_END |
1640 | 1640 | |
1641 | 1641 | MACHINE_RESET_MEMBER(dec0_state,slyspy) |
r17967 | r17968 | |
1661 | 1661 | MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART) |
1662 | 1662 | // MCFG_SCREEN_SIZE(32*8, 32*8) |
1663 | 1663 | // MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
1664 | MCFG_SCREEN_UPDATE_ | |
1664 | MCFG_SCREEN_UPDATE_DR | |
1665 | 1665 | |
1666 | 1666 | MCFG_VIDEO_START_OVERRIDE(dec0_state,dec0_nodma) |
1667 | 1667 | |
r17967 | r17968 | |
1688 | 1688 | MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART) |
1689 | 1689 | // MCFG_SCREEN_SIZE(32*8, 32*8) |
1690 | 1690 | // MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
1691 | MCFG_SCREEN_UPDATE_ | |
1691 | MCFG_SCREEN_UPDATE_DR | |
1692 | 1692 | |
1693 | 1693 | MCFG_GFXDECODE(midres) |
1694 | 1694 | MCFG_VIDEO_START_OVERRIDE(dec0_state,dec0_nodma) |
r17967 | r17968 | |
---|---|---|
2610 | 2610 | MCFG_SCREEN_REFRESH_RATE(60) |
2611 | 2611 | MCFG_SCREEN_SIZE(0x1c6, 0x106) |
2612 | 2612 | MCFG_SCREEN_VISIBLE_AREA(0, 0x150-1, 0, 0xf0-1) |
2613 | MCFG_SCREEN_UPDATE_ | |
2613 | MCFG_SCREEN_UPDATE_DR | |
2614 | 2614 | |
2615 | 2615 | MCFG_GFXDECODE(ssv) |
2616 | 2616 | MCFG_PALETTE_LENGTH(0x8000) |
r17967 | r17968 | |
2658 | 2658 | /* video hardware */ |
2659 | 2659 | MCFG_SCREEN_MODIFY("screen") |
2660 | 2660 | MCFG_SCREEN_VISIBLE_AREA(0, (0xd5-0x2c)*2-1, 0, (0x102-0x12)-1) |
2661 | MCFG_SCREEN_UPDATE_ | |
2661 | MCFG_SCREEN_UPDATE_DR | |
2662 | 2662 | |
2663 | 2663 | MCFG_DEVICE_ADD("st0020_spr", ST0020_SPRITES, 0) |
2664 | 2664 | |
r17967 | r17968 | |
2838 | 2838 | /* video hardware */ |
2839 | 2839 | MCFG_SCREEN_MODIFY("screen") |
2840 | 2840 | MCFG_SCREEN_VISIBLE_AREA(0, (0xca - 0x2a)*2-1, 0, (0xf6 - 0x16)-1) |
2841 | MCFG_SCREEN_UPDATE_ | |
2841 | MCFG_SCREEN_UPDATE_DR | |
2842 | 2842 | |
2843 | 2843 | MCFG_GFXDECODE(eaglshot) |
2844 | 2844 | MCFG_VIDEO_START_OVERRIDE(ssv_state,eaglshot) |
r17967 | r17968 | |
---|---|---|
569 | 569 | /* note: these parameters are from published specs, not derived */ |
570 | 570 | /* the board uses an SOS chip to generate video signals */ |
571 | 571 | 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) | |
574 | 574 | |
575 | 575 | MCFG_VIDEO_START_OVERRIDE(atarig42_state,atarig42) |
576 | 576 |
r17967 | r17968 | |
---|---|---|
104 | 104 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
105 | 105 | virtual void video_start(); |
106 | 106 | virtual void palette_init(); |
107 | UINT32 screen_update_jubileep(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
107 | 108 | }; |
108 | 109 | |
109 | 110 | |
r17967 | r17968 | |
134 | 135 | } |
135 | 136 | |
136 | 137 | |
137 | stat | |
138 | UINT32 jubilee_state::screen | |
138 | 139 | { |
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); | |
141 | 141 | return 0; |
142 | 142 | } |
143 | 143 | |
r17967 | r17968 | |
425 | 425 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
426 | 426 | MCFG_SCREEN_SIZE(32*8, 32*8) |
427 | 427 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) |
428 | MCFG_SCREEN_UPDATE_ | |
428 | MCFG_SCREEN_UPDATE_DR | |
429 | 429 | |
430 | 430 | MCFG_GFXDECODE(jubileep) |
431 | 431 |
r17967 | r17968 | |
---|---|---|
211 | 211 | /* note: these parameters are from published specs, not derived */ |
212 | 212 | /* the board uses a SYNGEN chip to generate video signals */ |
213 | 213 | MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240) |
214 | MCFG_SCREEN_UPDATE_ | |
214 | MCFG_SCREEN_UPDATE_DR | |
215 | 215 | |
216 | 216 | MCFG_VIDEO_START_OVERRIDE(vindictr_state,vindictr) |
217 | 217 |
r17967 | r17968 | |
---|---|---|
467 | 467 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
468 | 468 | MCFG_SCREEN_SIZE(32*8, 32*8) |
469 | 469 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
470 | MCFG_SCREEN_UPDATE_ | |
470 | MCFG_SCREEN_UPDATE_DR | |
471 | 471 | |
472 | 472 | MCFG_GFXDECODE(cop01) |
473 | 473 | MCFG_PALETTE_LENGTH(16+8*16+16*16) |
r17967 | r17968 | |
505 | 505 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
506 | 506 | MCFG_SCREEN_SIZE(32*8, 32*8) |
507 | 507 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
508 | MCFG_SCREEN_UPDATE_ | |
508 | MCFG_SCREEN_UPDATE_DR | |
509 | 509 | |
510 | 510 | MCFG_GFXDECODE(cop01) |
511 | 511 | MCFG_PALETTE_LENGTH(16+8*16+16*16) |
r17967 | r17968 | |
---|---|---|
209 | 209 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
210 | 210 | MCFG_SCREEN_SIZE(32*8, 32*8) |
211 | 211 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) |
212 | MCFG_SCREEN_UPDATE_ | |
212 | MCFG_SCREEN_UPDATE_DR | |
213 | 213 | |
214 | 214 | MCFG_GFXDECODE(hanaawas) |
215 | 215 | MCFG_PALETTE_LENGTH(32*8) |
r17967 | r17968 | |
---|---|---|
248 | 248 | DECLARE_READ16_MEMBER(unk_r); |
249 | 249 | virtual void video_start(); |
250 | 250 | virtual void palette_init(); |
251 | UINT32 screen_update_goldngam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
251 | 252 | }; |
252 | 253 | |
253 | 254 | |
r17967 | r17968 | |
260 | 261 | |
261 | 262 | } |
262 | 263 | |
263 | stat | |
264 | UINT32 goldngam_state::screen | |
264 | 265 | { |
265 | goldngam_state *state = screen.machine().driver_data<goldngam_state>(); | |
266 | 266 | |
267 | 267 | int x, y; |
268 | 268 | |
269 | 269 | // ERROR: This cast is NOT endian-safe without the use of BYTE/WORD/DWORD_XOR_* macros! |
270 | UINT8 *tmp = reinterpret_cast<UINT8 *>( | |
270 | UINT8 *tmp = reinterpret_cast<UINT8 *>( | |
271 | 271 | int index = 0; |
272 | 272 | |
273 | 273 | for(y = 0; y < 512; ++y) |
r17967 | r17968 | |
568 | 568 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
569 | 569 | MCFG_SCREEN_SIZE(64*8, 64*8) |
570 | 570 | MCFG_SCREEN_VISIBLE_AREA(4*8, 43*8-1, 1*8, 37*8-1) // 312x288 |
571 | MCFG_SCREEN_UPDATE_ | |
571 | MCFG_SCREEN_UPDATE_DR | |
572 | 572 | |
573 | 573 | MCFG_GFXDECODE(goldngam) |
574 | 574 |
r17967 | r17968 | |
---|---|---|
371 | 371 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
372 | 372 | MCFG_SCREEN_SIZE(32*8, 32*8) |
373 | 373 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
374 | MCFG_SCREEN_UPDATE_ | |
374 | MCFG_SCREEN_UPDATE_DR | |
375 | 375 | |
376 | 376 | MCFG_GFXDECODE(circusc) |
377 | 377 | MCFG_PALETTE_LENGTH(16*16+16*16) |
r17967 | r17968 | |
---|---|---|
59 | 59 | virtual void machine_start(); |
60 | 60 | virtual void machine_reset(); |
61 | 61 | virtual void video_start(); |
62 | UINT32 screen_update_laserbas(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
62 | 63 | }; |
63 | 64 | |
64 | 65 | |
r17967 | r17968 | |
69 | 70 | save_item(NAME(m_vram2)); |
70 | 71 | } |
71 | 72 | |
72 | stat | |
73 | UINT32 laserbas_state::screen | |
73 | 74 | { |
74 | laserbas_state *state = screen.machine().driver_data<laserbas_state>(); | |
75 | 75 | int x, y; |
76 | 76 | |
77 | 77 | for (y = 0; y < 256; y++) |
78 | 78 | for(x = 0; x < 128; x++) |
79 | 79 | { |
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); | |
82 | 82 | else |
83 | bitmap.pix16(y, x * 2) = ( | |
83 | bitmap.pix16(y, x * 2) = ( | |
84 | 84 | |
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); | |
87 | 87 | else |
88 | bitmap.pix16(y, x * 2 + 1) = ( | |
88 | bitmap.pix16(y, x * 2 + 1) = ( | |
89 | 89 | } |
90 | 90 | return 0; |
91 | 91 | } |
r17967 | r17968 | |
319 | 319 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
320 | 320 | MCFG_SCREEN_SIZE(32*8, 32*8) |
321 | 321 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) |
322 | MCFG_SCREEN_UPDATE_ | |
322 | MCFG_SCREEN_UPDATE_DR | |
323 | 323 | |
324 | 324 | MCFG_MC6845_ADD("crtc", H46505, 3000000/4, mc6845_intf) /* unknown clock, hand tuned to get ~60 fps */ |
325 | 325 |
r17967 | r17968 | |
---|---|---|
289 | 289 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
290 | 290 | MCFG_SCREEN_SIZE(32*8, 32*8) |
291 | 291 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
292 | MCFG_SCREEN_UPDATE_ | |
292 | MCFG_SCREEN_UPDATE_DR | |
293 | 293 | |
294 | 294 | MCFG_GFXDECODE(mikie) |
295 | 295 | MCFG_PALETTE_LENGTH(16*8*16+16*8*16) |
r17967 | r17968 | |
---|---|---|
1026 | 1026 | |
1027 | 1027 | MCFG_SCREEN_ADD("screen", RASTER) |
1028 | 1028 | MCFG_SCREEN_RAW_PARAMS(MIDVUNIT_VIDEO_CLOCK/2, 666, 0, 512, 432, 0, 400) |
1029 | MCFG_SCREEN_UPDATE_ | |
1029 | MCFG_SCREEN_UPDATE_DR | |
1030 | 1030 | |
1031 | 1031 | MACHINE_CONFIG_END |
1032 | 1032 |
r17967 | r17968 | |
---|---|---|
244 | 244 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
245 | 245 | MCFG_SCREEN_SIZE(64*8, 32*8) |
246 | 246 | MCFG_SCREEN_VISIBLE_AREA(7*8, 57*8-1, 0*8, 31*8-1) |
247 | MCFG_SCREEN_UPDATE_ | |
247 | MCFG_SCREEN_UPDATE_DR | |
248 | 248 | |
249 | 249 | MCFG_GFXDECODE(usgames) |
250 | 250 | MCFG_PALETTE_LENGTH(2*256) |
r17967 | r17968 | |
---|---|---|
750 | 750 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
751 | 751 | MCFG_SCREEN_SIZE(40*8, 32*8) |
752 | 752 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
753 | MCFG_SCREEN_UPDATE_ | |
753 | MCFG_SCREEN_UPDATE_DR | |
754 | 754 | |
755 | 755 | MCFG_GFXDECODE(opwolf) |
756 | 756 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
803 | 803 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
804 | 804 | MCFG_SCREEN_SIZE(40*8, 32*8) |
805 | 805 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
806 | MCFG_SCREEN_UPDATE_ | |
806 | MCFG_SCREEN_UPDATE_DR | |
807 | 807 | |
808 | 808 | MCFG_GFXDECODE(opwolfb) |
809 | 809 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
---|---|---|
83 | 83 | DECLARE_WRITE8_MEMBER(taitopjc_tlcs900_to1); |
84 | 84 | DECLARE_WRITE8_MEMBER(taitopjc_tlcs900_to3); |
85 | 85 | virtual void video_start(); |
86 | UINT32 screen_update_taitopjc(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
86 | 87 | }; |
87 | 88 | |
88 | 89 | void taitopjc_state::video_start() |
r17967 | r17968 | |
90 | 91 | |
91 | 92 | } |
92 | 93 | |
93 | stat | |
94 | UINT32 taitopjc_state::screen | |
94 | 95 | { |
95 | 96 | { |
96 | 97 | UINT8 *s = (UINT8*)jc_char_ram; |
r17967 | r17968 | |
432 | 433 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
433 | 434 | MCFG_SCREEN_SIZE(640, 768) |
434 | 435 | MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 767) |
435 | MCFG_SCREEN_UPDATE_ | |
436 | MCFG_SCREEN_UPDATE_DR | |
436 | 437 | |
437 | 438 | MACHINE_CONFIG_END |
438 | 439 |
r17967 | r17968 | |
---|---|---|
791 | 791 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
792 | 792 | MCFG_SCREEN_SIZE(256, 256) |
793 | 793 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1) |
794 | MCFG_SCREEN_UPDATE_ | |
794 | MCFG_SCREEN_UPDATE_DR | |
795 | 795 | |
796 | 796 | MCFG_GFXDECODE(suna16) |
797 | 797 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
849 | 849 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
850 | 850 | MCFG_SCREEN_SIZE(256, 256) |
851 | 851 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1) |
852 | MCFG_SCREEN_UPDATE_ | |
852 | MCFG_SCREEN_UPDATE_DR | |
853 | 853 | |
854 | 854 | MCFG_GFXDECODE(suna16) |
855 | 855 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
897 | 897 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
898 | 898 | MCFG_SCREEN_SIZE(256, 256) |
899 | 899 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1) |
900 | MCFG_SCREEN_UPDATE_ | |
900 | MCFG_SCREEN_UPDATE_DR | |
901 | 901 | |
902 | 902 | MCFG_GFXDECODE(suna16) |
903 | 903 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
963 | 963 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
964 | 964 | MCFG_SCREEN_SIZE(256, 256) |
965 | 965 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1) |
966 | MCFG_SCREEN_UPDATE_ | |
966 | MCFG_SCREEN_UPDATE_DR | |
967 | 967 | |
968 | 968 | MCFG_GFXDECODE(bestbest) |
969 | 969 | MCFG_PALETTE_LENGTH(256*8) |
r17967 | r17968 | |
---|---|---|
565 | 565 | |
566 | 566 | MCFG_SCREEN_ADD("screen", RASTER) |
567 | 567 | 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) | |
570 | 570 | |
571 | 571 | MCFG_GFXDECODE(shadfrce) |
572 | 572 | MCFG_PALETTE_LENGTH(0x4000) |
r17967 | r17968 | |
---|---|---|
183 | 183 | DECLARE_MACHINE_START(firebeat); |
184 | 184 | DECLARE_MACHINE_RESET(firebeat); |
185 | 185 | 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); | |
186 | 188 | }; |
187 | 189 | |
188 | 190 | |
r17967 | r17968 | |
598 | 600 | return 0; |
599 | 601 | } |
600 | 602 | |
601 | static SCREEN_UPDATE_IND16( firebeat_0 ) { return update_screen(screen, bitmap, cliprect, 0); } | |
602 | static SCREEN_UPDATE_IND16( firebeat_1 ) { return update_screen(screen, bitmap, cliprect, 1); } | |
603 | UINT32 firebeat_state::screen_update_firebeat_0(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 0); } | |
604 | UINT32 firebeat_state::screen_update_firebeat_1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 1); } | |
603 | 605 | |
604 | 606 | static UINT32 GCU_r(running_machine &machine, int chip, UINT32 offset, UINT32 mem_mask) |
605 | 607 | { |
r17967 | r17968 | |
1994 | 1996 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1995 | 1997 | MCFG_SCREEN_SIZE(640, 480) |
1996 | 1998 | MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479) |
1997 | MCFG_SCREEN_UPDATE_ | |
1999 | MCFG_SCREEN_UPDATE_DR | |
1998 | 2000 | |
1999 | 2001 | MCFG_VIDEO_START_OVERRIDE(firebeat_state,firebeat) |
2000 | 2002 | |
r17967 | r17968 | |
2040 | 2042 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
2041 | 2043 | MCFG_SCREEN_SIZE(640, 480) |
2042 | 2044 | MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479) |
2043 | MCFG_SCREEN_UPDATE_ | |
2045 | MCFG_SCREEN_UPDATE_DR | |
2044 | 2046 | |
2045 | 2047 | MCFG_SCREEN_ADD("rscreen", RASTER) |
2046 | 2048 | MCFG_SCREEN_REFRESH_RATE(60) |
2047 | 2049 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
2048 | 2050 | MCFG_SCREEN_SIZE(640, 480) |
2049 | 2051 | MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479) |
2050 | MCFG_SCREEN_UPDATE_ | |
2052 | MCFG_SCREEN_UPDATE_DR | |
2051 | 2053 | |
2052 | 2054 | MCFG_VIDEO_START_OVERRIDE(firebeat_state,firebeat) |
2053 | 2055 |
r17967 | r17968 | |
---|---|---|
40 | 40 | DECLARE_READ8_MEMBER(input_port_r); |
41 | 41 | virtual void machine_start(); |
42 | 42 | virtual void machine_reset(); |
43 | UINT32 screen_update_clayshoo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
43 | 44 | }; |
44 | 45 | |
45 | 46 | |
r17967 | r17968 | |
185 | 186 | * |
186 | 187 | *************************************/ |
187 | 188 | |
188 | stat | |
189 | UINT32 clayshoo_state::screen | |
189 | 190 | { |
190 | clayshoo_state *state = screen.machine().driver_data<clayshoo_state>(); | |
191 | 191 | offs_t offs; |
192 | 192 | |
193 | for (offs = 0; offs < | |
193 | for (offs = 0; offs < | |
194 | 194 | { |
195 | 195 | int i; |
196 | 196 | UINT8 x = offs << 3; |
197 | 197 | UINT8 y = ~(offs >> 5); |
198 | UINT8 data = | |
198 | UINT8 data = | |
199 | 199 | |
200 | 200 | for (i = 0; i < 8; i++) |
201 | 201 | { |
r17967 | r17968 | |
340 | 340 | MCFG_SCREEN_VISIBLE_AREA(0, 255, 64, 255) |
341 | 341 | MCFG_SCREEN_REFRESH_RATE(60) |
342 | 342 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
343 | MCFG_SCREEN_UPDATE_ | |
343 | MCFG_SCREEN_UPDATE_DR | |
344 | 344 | |
345 | 345 | MCFG_I8255A_ADD( "ppi8255_0", ppi8255_0_intf ) |
346 | 346 | MCFG_I8255A_ADD( "ppi8255_1", ppi8255_1_intf ) |
r17967 | r17968 | |
---|---|---|
394 | 394 | : driver_device(mconfig, type, tag) |
395 | 395 | { } |
396 | 396 | virtual void video_start(); |
397 | UINT32 screen_update_hikaru(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
397 | 398 | }; |
398 | 399 | |
399 | 400 | void hikaru_state::video_start() |
r17967 | r17968 | |
401 | 402 | |
402 | 403 | } |
403 | 404 | |
404 | stat | |
405 | UINT32 hikaru_state::screen | |
405 | 406 | { |
406 | 407 | return 0; |
407 | 408 | } |
r17967 | r17968 | |
500 | 501 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
501 | 502 | MCFG_SCREEN_SIZE(640, 480) |
502 | 503 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
503 | MCFG_SCREEN_UPDATE_ | |
504 | MCFG_SCREEN_UPDATE_DR | |
504 | 505 | |
505 | 506 | MCFG_PALETTE_LENGTH(0x1000) |
506 | 507 |
r17967 | r17968 | |
---|---|---|
484 | 484 | /* video hardware */ |
485 | 485 | MCFG_SCREEN_ADD("screen", RASTER) |
486 | 486 | MCFG_SCREEN_RAW_PARAMS(BAGMAN_HCLK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
487 | MCFG_SCREEN_UPDATE_ | |
487 | MCFG_SCREEN_UPDATE_DR | |
488 | 488 | |
489 | 489 | MCFG_GFXDECODE(bagman) |
490 | 490 | MCFG_PALETTE_LENGTH(64) |
r17967 | r17968 | |
520 | 520 | /* video hardware */ |
521 | 521 | MCFG_SCREEN_ADD("screen", RASTER) |
522 | 522 | MCFG_SCREEN_RAW_PARAMS(BAGMAN_HCLK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
523 | MCFG_SCREEN_UPDATE_ | |
523 | MCFG_SCREEN_UPDATE_DR | |
524 | 524 | |
525 | 525 | MCFG_GFXDECODE(pickin) |
526 | 526 | MCFG_PALETTE_LENGTH(64) |
r17967 | r17968 | |
572 | 572 | /* video hardware */ |
573 | 573 | MCFG_SCREEN_ADD("screen", RASTER) |
574 | 574 | MCFG_SCREEN_RAW_PARAMS(BAGMAN_HCLK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
575 | MCFG_SCREEN_UPDATE_ | |
575 | MCFG_SCREEN_UPDATE_DR | |
576 | 576 | |
577 | 577 | MCFG_GFXDECODE(bagman) |
578 | 578 | MCFG_PALETTE_LENGTH(64) |
r17967 | r17968 | |
---|---|---|
519 | 519 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
520 | 520 | MCFG_SCREEN_SIZE(32*8, 32*8) |
521 | 521 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
522 | MCFG_SCREEN_UPDATE_ | |
522 | MCFG_SCREEN_UPDATE_DR | |
523 | 523 | |
524 | 524 | MCFG_GFXDECODE(bigevglf) |
525 | 525 | MCFG_PALETTE_LENGTH(0x800) |
r17967 | r17968 | |
---|---|---|
364 | 364 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
365 | 365 | MCFG_SCREEN_SIZE(2048, 256) |
366 | 366 | MCFG_SCREEN_VISIBLE_AREA(0, 319-1, 1, 224-1) |
367 | MCFG_SCREEN_UPDATE_ | |
367 | MCFG_SCREEN_UPDATE_DR | |
368 | 368 | |
369 | 369 | MCFG_GFXDECODE(inufuku) |
370 | 370 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
---|---|---|
37 | 37 | TILE_GET_INFO_MEMBER(get_tile_info); |
38 | 38 | virtual void video_start(); |
39 | 39 | virtual void palette_init(); |
40 | UINT32 screen_update_tattack(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
40 | 41 | }; |
41 | 42 | |
42 | 43 | |
r17967 | r17968 | |
58 | 59 | 0); |
59 | 60 | } |
60 | 61 | |
61 | static | |
62 | UINT32 tattack_state::screen_update_tattack(screen_device &screen, bitmap_ind | |
62 | 63 | { |
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); | |
66 | 66 | return 0; |
67 | 67 | } |
68 | 68 | |
r17967 | r17968 | |
209 | 209 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
210 | 210 | MCFG_SCREEN_SIZE(32*8, 32*8) |
211 | 211 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) |
212 | MCFG_SCREEN_UPDATE_ | |
212 | MCFG_SCREEN_UPDATE_DR | |
213 | 213 | |
214 | 214 | MCFG_GFXDECODE(tattack) |
215 | 215 | MCFG_PALETTE_LENGTH(16) |
r17967 | r17968 | |
---|---|---|
338 | 338 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) |
339 | 339 | MCFG_SCREEN_SIZE(32*8, 32*8) |
340 | 340 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
341 | MCFG_SCREEN_UPDATE_ | |
341 | MCFG_SCREEN_UPDATE_DR | |
342 | 342 | |
343 | 343 | MCFG_GFXDECODE(cbuster) |
344 | 344 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
---|---|---|
122 | 122 | virtual void machine_start(); |
123 | 123 | virtual void machine_reset(); |
124 | 124 | virtual void video_start(); |
125 | UINT32 screen_update_dunhuang(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
125 | 126 | }; |
126 | 127 | |
127 | 128 | |
r17967 | r17968 | |
158 | 159 | save_item(NAME(m_paldata)); |
159 | 160 | } |
160 | 161 | |
161 | stat | |
162 | UINT32 dunhuang_state::screen | |
162 | 163 | { |
163 | dunhuang_state *state = screen.machine().driver_data<dunhuang_state>(); | |
164 | 164 | int layers_ctrl = -1; |
165 | 165 | |
166 | 166 | #if DUNHUANG_DEBUG |
r17967 | r17968 | |
175 | 175 | |
176 | 176 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
177 | 177 | |
178 | switch ( | |
178 | switch ( | |
179 | 179 | { |
180 | 180 | 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); | |
183 | 183 | break; |
184 | 184 | case 0x05: // dips: must hide fg |
185 | if (layers_ctrl & 1) | |
185 | if (layers_ctrl & 1) | |
186 | 186 | break; |
187 | 187 | case 0x07: // game,demo: fg over bg |
188 | 188 | 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); | |
191 | 191 | break; |
192 | 192 | } |
193 | 193 | |
r17967 | r17968 | |
830 | 830 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
831 | 831 | MCFG_SCREEN_SIZE(512, 256) |
832 | 832 | MCFG_SCREEN_VISIBLE_AREA(0+8, 512-8-1, 0+16, 256-16-1) |
833 | MCFG_SCREEN_UPDATE_ | |
833 | MCFG_SCREEN_UPDATE_DR | |
834 | 834 | |
835 | 835 | MCFG_GFXDECODE(dunhuang) |
836 | 836 | MCFG_PALETTE_LENGTH(0x100) |
r17967 | r17968 | |
---|---|---|
868 | 868 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
869 | 869 | MCFG_SCREEN_SIZE(512, 512) |
870 | 870 | MCFG_SCREEN_VISIBLE_AREA(0, 288-1, 0, 224-1) |
871 | MCFG_SCREEN_UPDATE_ | |
871 | MCFG_SCREEN_UPDATE_DR | |
872 | 872 | |
873 | 873 | MCFG_GFXDECODE(ojankohs) |
874 | 874 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
904 | 904 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
905 | 905 | MCFG_SCREEN_SIZE(512, 512) |
906 | 906 | MCFG_SCREEN_VISIBLE_AREA(0, 288-1, 0, 224-1) |
907 | MCFG_SCREEN_UPDATE_ | |
907 | MCFG_SCREEN_UPDATE_DR | |
908 | 908 | |
909 | 909 | MCFG_GFXDECODE(ojankohs) |
910 | 910 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
941 | 941 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
942 | 942 | MCFG_SCREEN_SIZE(512, 512) |
943 | 943 | MCFG_SCREEN_VISIBLE_AREA(0, 288-1, 0, 224-1) |
944 | MCFG_SCREEN_UPDATE_ | |
944 | MCFG_SCREEN_UPDATE_DR | |
945 | 945 | |
946 | 946 | MCFG_GFXDECODE(ojankohs) |
947 | 947 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
977 | 977 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
978 | 978 | MCFG_SCREEN_SIZE(32*8, 32*8) |
979 | 979 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 8, 248-1) |
980 | MCFG_SCREEN_UPDATE_ | |
980 | MCFG_SCREEN_UPDATE_DR | |
981 | 981 | |
982 | 982 | MCFG_PALETTE_LENGTH(16) |
983 | 983 |
r17967 | r17968 | |
---|---|---|
554 | 554 | MCFG_SCREEN_REFRESH_RATE(60) |
555 | 555 | MCFG_SCREEN_SIZE(256, 256) |
556 | 556 | MCFG_SCREEN_VISIBLE_AREA(0, 255, 16, 239) |
557 | MCFG_SCREEN_UPDATE_ | |
557 | MCFG_SCREEN_UPDATE_DR | |
558 | 558 | |
559 | 559 | MCFG_PALETTE_LENGTH(8) |
560 | 560 | MCFG_PALETTE_INIT_OVERRIDE(n8080_state,n8080) |
r17967 | r17968 | |
584 | 584 | MCFG_SCREEN_REFRESH_RATE(60) |
585 | 585 | MCFG_SCREEN_SIZE(256, 256) |
586 | 586 | MCFG_SCREEN_VISIBLE_AREA(0, 255, 16, 239) |
587 | MCFG_SCREEN_UPDATE_ | |
587 | MCFG_SCREEN_UPDATE_DR | |
588 | 588 | |
589 | 589 | MCFG_PALETTE_LENGTH(8) |
590 | 590 | MCFG_PALETTE_INIT_OVERRIDE(n8080_state,n8080) |
r17967 | r17968 | |
625 | 625 | MCFG_SCREEN_REFRESH_RATE(60) |
626 | 626 | MCFG_SCREEN_SIZE(256, 256) |
627 | 627 | 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) | |
630 | 630 | |
631 | 631 | MCFG_PALETTE_LENGTH(8 + 0x400) |
632 | 632 | MCFG_PALETTE_INIT_OVERRIDE(n8080_state,helifire) |
r17967 | r17968 | |
---|---|---|
165 | 165 | |
166 | 166 | MCFG_SCREEN_ADD("screen", RASTER) |
167 | 167 | MCFG_SCREEN_RAW_PARAMS( X2_CLOCK_NTSC / 2, 1592, 254, 1534, 263, 22, 262 ) |
168 | MCFG_SCREEN_UPDATE_ | |
168 | MCFG_SCREEN_UPDATE_DR | |
169 | 169 | |
170 | 170 | MCFG_CDROM_ADD( "cdrom", _3do_cdrom) |
171 | 171 | MACHINE_CONFIG_END |
r17967 | r17968 | |
179 | 179 | |
180 | 180 | |
181 | 181 | MCFG_SCREEN_ADD("screen", RASTER) |
182 | MCFG_SCREEN_UPDATE_ | |
182 | MCFG_SCREEN_UPDATE_DR | |
183 | 183 | MCFG_SCREEN_SIZE( 640, 625 ) |
184 | 184 | MCFG_SCREEN_VISIBLE_AREA( 0, 639, 0, 479 ) |
185 | 185 | MCFG_SCREEN_REFRESH_RATE( 50 ) |
r17967 | r17968 | |
---|---|---|
305 | 305 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1500)) |
306 | 306 | MCFG_SCREEN_SIZE(32*8, 32*8) |
307 | 307 | MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 0*8, 32*8-1) |
308 | MCFG_SCREEN_UPDATE_ | |
308 | MCFG_SCREEN_UPDATE_DR | |
309 | 309 | |
310 | 310 | MCFG_GFXDECODE(kncljoe) |
311 | 311 | MCFG_PALETTE_LENGTH(16*8+16*8) |
r17967 | r17968 | |
---|---|---|
421 | 421 | /* video hardware */ |
422 | 422 | MCFG_SCREEN_ADD("screen", RASTER) |
423 | 423 | MCFG_SCREEN_RAW_PARAMS(12000000/2, 384, 0, 256, 272, 0, 240) |
424 | MCFG_SCREEN_UPDATE_ | |
424 | MCFG_SCREEN_UPDATE_DR | |
425 | 425 | |
426 | 426 | MCFG_GFXDECODE(spdodgeb) |
427 | 427 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
146 | 146 | DECLARE_CUSTOM_INPUT_MEMBER(begas_vblank_r); |
147 | 147 | DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); |
148 | 148 | virtual void machine_start(); |
149 | UINT32 screen_update_rblaster(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
149 | 150 | }; |
150 | 151 | |
151 | 152 | static void draw_sprites(running_machine &machine, bitmap_rgb32 &bitmap, const rectangle &cliprect, UINT8 *spriteram, UINT16 tile_bank ) |
r17967 | r17968 | |
193 | 194 | } |
194 | 195 | } |
195 | 196 | |
196 | static | |
197 | UINT32 deco_ld_state::screen_update_rblaster(screen_device &screen, bitmap_rgb | |
197 | 198 | { |
198 | deco_ld_state *state = screen.machine().driver_data<deco_ld_state>(); | |
199 | 199 | gfx_element *gfx = screen.machine().gfx[0]; |
200 | 200 | int y,x; |
201 | 201 | |
202 | 202 | bitmap.fill(0, cliprect); |
203 | 203 | |
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); | |
206 | 206 | |
207 | 207 | for (y=0;y<32;y++) |
208 | 208 | { |
209 | 209 | for (x=0;x<32;x++) |
210 | 210 | { |
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); | |
213 | 213 | int colour = (6 & 0x7); /* TODO */ |
214 | 214 | |
215 | 215 | drawgfx_transpen(bitmap,cliprect,gfx,tile|0x400,colour,0,0,x*8,y*8,0); |
r17967 | r17968 | |
220 | 220 | { |
221 | 221 | for (x=0;x<32;x++) |
222 | 222 | { |
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); | |
225 | 225 | int colour = (6 & 0x7); /* TODO */ |
226 | 226 | |
227 | 227 | drawgfx_transpen(bitmap,cliprect,gfx,tile,colour,0,0,x*8,y*8,0); |
r17967 | r17968 | |
468 | 468 | // MCFG_QUANTUM_TIME(attotime::from_hz(6000)) |
469 | 469 | |
470 | 470 | MCFG_LASERDISC_LDV1000_ADD("laserdisc") //Sony LDP-1000A, is it truly compatible with the Pioneer? |
471 | MCFG_LASERDISC_OVERLAY_ | |
471 | MCFG_LASERDISC_OVERLAY_DR | |
472 | 472 | MCFG_LASERDISC_OVERLAY_CLIP(0, 256-1, 8, 240-1) |
473 | 473 | |
474 | 474 | /* video hardware */ |
r17967 | r17968 | |
---|---|---|
1068 | 1068 | MCFG_SCREEN_VISIBLE_AREA(0*8, 30*8-1, 1*8, 32*8-1) |
1069 | 1069 | MCFG_SCREEN_REFRESH_RATE(60) |
1070 | 1070 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1000)) |
1071 | MCFG_SCREEN_UPDATE_ | |
1071 | MCFG_SCREEN_UPDATE_DR | |
1072 | 1072 | |
1073 | 1073 | MCFG_S2636_ADD("s2636_0", s2636_0_config) |
1074 | 1074 | MCFG_S2636_ADD("s2636_1", s2636_1_config) |
r17967 | r17968 | |
---|---|---|
946 | 946 | |
947 | 947 | MCFG_SCREEN_ADD("screen", RASTER) |
948 | 948 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
949 | MCFG_SCREEN_UPDATE_ | |
949 | MCFG_SCREEN_UPDATE_DR | |
950 | 950 | |
951 | 951 | MCFG_PALETTE_INIT_OVERRIDE(turbo_state,turbo) |
952 | 952 | MCFG_VIDEO_START_OVERRIDE(turbo_state,turbo) |
r17967 | r17968 | |
975 | 975 | |
976 | 976 | MCFG_SCREEN_ADD("screen", RASTER) |
977 | 977 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
978 | MCFG_SCREEN_UPDATE_ | |
978 | MCFG_SCREEN_UPDATE_DR | |
979 | 979 | |
980 | 980 | MCFG_PALETTE_INIT_OVERRIDE(turbo_state,subroc3d) |
981 | 981 | MCFG_VIDEO_START_OVERRIDE(turbo_state,turbo) |
r17967 | r17968 | |
1011 | 1011 | |
1012 | 1012 | MCFG_SCREEN_ADD("screen", RASTER) |
1013 | 1013 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
1014 | MCFG_SCREEN_UPDATE_ | |
1014 | MCFG_SCREEN_UPDATE_DR | |
1015 | 1015 | |
1016 | 1016 | MCFG_PALETTE_INIT_OVERRIDE(turbo_state,buckrog) |
1017 | 1017 | MCFG_VIDEO_START_OVERRIDE(turbo_state,buckrog) |
r17967 | r17968 | |
---|---|---|
1639 | 1639 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1640 | 1640 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1641 | 1641 | 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) | |
1644 | 1644 | |
1645 | 1645 | MCFG_GFXDECODE(tnzs) |
1646 | 1646 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
1680 | 1680 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1681 | 1681 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1682 | 1682 | 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) | |
1685 | 1685 | |
1686 | 1686 | MCFG_GFXDECODE(tnzs) |
1687 | 1687 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
1724 | 1724 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1725 | 1725 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1726 | 1726 | 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) | |
1729 | 1729 | |
1730 | 1730 | MCFG_GFXDECODE(tnzs) |
1731 | 1731 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
1764 | 1764 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1765 | 1765 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1766 | 1766 | 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) | |
1769 | 1769 | |
1770 | 1770 | MCFG_GFXDECODE(insectx) |
1771 | 1771 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
1803 | 1803 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1804 | 1804 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1805 | 1805 | 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) | |
1808 | 1808 | |
1809 | 1809 | MCFG_GFXDECODE(tnzs) |
1810 | 1810 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
1852 | 1852 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1853 | 1853 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1854 | 1854 | 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) | |
1857 | 1857 | |
1858 | 1858 | MCFG_GFXDECODE(tnzs) |
1859 | 1859 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
1911 | 1911 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1912 | 1912 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1913 | 1913 | 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) | |
1916 | 1916 | |
1917 | 1917 | MCFG_GFXDECODE(tnzs) |
1918 | 1918 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
813 | 813 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) |
814 | 814 | MCFG_SCREEN_SIZE(40*8, 32*8) |
815 | 815 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
816 | MCFG_SCREEN_UPDATE_ | |
816 | MCFG_SCREEN_UPDATE_DR | |
817 | 817 | |
818 | 818 | MCFG_GFXDECODE(rohga) |
819 | 819 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
864 | 864 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) |
865 | 865 | MCFG_SCREEN_SIZE(40*8, 32*8) |
866 | 866 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
867 | MCFG_SCREEN_UPDATE_ | |
867 | MCFG_SCREEN_UPDATE_DR | |
868 | 868 | |
869 | 869 | MCFG_GFXDECODE(wizdfire) |
870 | 870 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
918 | 918 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) |
919 | 919 | MCFG_SCREEN_SIZE(40*8, 32*8) |
920 | 920 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
921 | MCFG_SCREEN_UPDATE_ | |
921 | MCFG_SCREEN_UPDATE_DR | |
922 | 922 | |
923 | 923 | MCFG_GFXDECODE(wizdfire) |
924 | 924 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
971 | 971 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) |
972 | 972 | MCFG_SCREEN_SIZE(40*8, 32*8) |
973 | 973 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
974 | MCFG_SCREEN_UPDATE_ | |
974 | MCFG_SCREEN_UPDATE_DR | |
975 | 975 | |
976 | 976 | MCFG_GFXDECODE(schmeisr) |
977 | 977 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
---|---|---|
170 | 170 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
171 | 171 | MCFG_SCREEN_SIZE(32*8, 32*8) |
172 | 172 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
173 | MCFG_SCREEN_UPDATE_ | |
173 | MCFG_SCREEN_UPDATE_DR | |
174 | 174 | |
175 | 175 | MCFG_GFXDECODE(higemaru) |
176 | 176 | MCFG_PALETTE_LENGTH(32*4+16*16) |
r17967 | r17968 | |
---|---|---|
646 | 646 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
647 | 647 | MCFG_SCREEN_SIZE(64*8, 32*8) |
648 | 648 | MCFG_SCREEN_VISIBLE_AREA(64, 64+368-1, 0, 32*8-1) |
649 | MCFG_SCREEN_UPDATE_ | |
649 | MCFG_SCREEN_UPDATE_DR | |
650 | 650 | |
651 | 651 | MCFG_PALETTE_LENGTH(32768) |
652 | 652 |
r17967 | r17968 | |
---|---|---|
248 | 248 | /* note: these parameters are from published specs, not derived */ |
249 | 249 | /* the board uses a VAD chip to generate video signals */ |
250 | 250 | MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240) |
251 | MCFG_SCREEN_UPDATE_ | |
251 | MCFG_SCREEN_UPDATE_DR | |
252 | 252 | |
253 | 253 | MCFG_VIDEO_START_OVERRIDE(batman_state,batman) |
254 | 254 |
r17967 | r17968 | |
---|---|---|
1570 | 1570 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1571 | 1571 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1572 | 1572 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
1573 | MCFG_SCREEN_UPDATE_ | |
1573 | MCFG_SCREEN_UPDATE_DR | |
1574 | 1574 | |
1575 | 1575 | MCFG_GFXDECODE(nemesis) |
1576 | 1576 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
1613 | 1613 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1614 | 1614 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1615 | 1615 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
1616 | MCFG_SCREEN_UPDATE_ | |
1616 | MCFG_SCREEN_UPDATE_DR | |
1617 | 1617 | |
1618 | 1618 | MCFG_GFXDECODE(nemesis) |
1619 | 1619 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
1655 | 1655 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1656 | 1656 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1657 | 1657 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
1658 | MCFG_SCREEN_UPDATE_ | |
1658 | MCFG_SCREEN_UPDATE_DR | |
1659 | 1659 | |
1660 | 1660 | MCFG_GFXDECODE(nemesis) |
1661 | 1661 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
1695 | 1695 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1696 | 1696 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1697 | 1697 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
1698 | MCFG_SCREEN_UPDATE_ | |
1698 | MCFG_SCREEN_UPDATE_DR | |
1699 | 1699 | |
1700 | 1700 | MCFG_GFXDECODE(nemesis) |
1701 | 1701 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
1739 | 1739 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC((264-256)*125/2)) |
1740 | 1740 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1741 | 1741 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
1742 | MCFG_SCREEN_UPDATE_ | |
1742 | MCFG_SCREEN_UPDATE_DR | |
1743 | 1743 | |
1744 | 1744 | MCFG_GFXDECODE(nemesis) |
1745 | 1745 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
1785 | 1785 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1786 | 1786 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1787 | 1787 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
1788 | MCFG_SCREEN_UPDATE_ | |
1788 | MCFG_SCREEN_UPDATE_DR | |
1789 | 1789 | |
1790 | 1790 | MCFG_GFXDECODE(nemesis) |
1791 | 1791 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
1827 | 1827 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1828 | 1828 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1829 | 1829 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
1830 | MCFG_SCREEN_UPDATE_ | |
1830 | MCFG_SCREEN_UPDATE_DR | |
1831 | 1831 | |
1832 | 1832 | MCFG_GFXDECODE(nemesis) |
1833 | 1833 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
1873 | 1873 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1874 | 1874 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1875 | 1875 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
1876 | MCFG_SCREEN_UPDATE_ | |
1876 | MCFG_SCREEN_UPDATE_DR | |
1877 | 1877 | |
1878 | 1878 | MCFG_GFXDECODE(nemesis) |
1879 | 1879 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
1917 | 1917 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1918 | 1918 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1919 | 1919 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
1920 | MCFG_SCREEN_UPDATE_ | |
1920 | MCFG_SCREEN_UPDATE_DR | |
1921 | 1921 | |
1922 | 1922 | MCFG_GFXDECODE(nemesis) |
1923 | 1923 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
2664 | 2664 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
2665 | 2665 | MCFG_SCREEN_SIZE(32*8, 32*8) |
2666 | 2666 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
2667 | MCFG_SCREEN_UPDATE_ | |
2667 | MCFG_SCREEN_UPDATE_DR | |
2668 | 2668 | |
2669 | 2669 | MCFG_GFXDECODE(nemesis) |
2670 | 2670 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
---|---|---|
86 | 86 | DECLARE_DRIVER_INIT(progolf); |
87 | 87 | virtual void video_start(); |
88 | 88 | virtual void palette_init(); |
89 | UINT32 screen_update_progolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
89 | 90 | }; |
90 | 91 | |
91 | 92 | |
r17967 | r17968 | |
101 | 102 | } |
102 | 103 | |
103 | 104 | |
104 | static | |
105 | UINT32 progolf_state::screen_update_progolf(screen_device &screen, bitmap_ind | |
105 | 106 | { |
106 | progolf_state *state = screen.machine().driver_data<progolf_state>(); | |
107 | UINT8 *videoram = state->m_videoram; | |
107 | UINT8 *videoram = m_videoram; | |
108 | 108 | int count,color,x,y,xi,yi; |
109 | 109 | |
110 | 110 | { |
111 | int scroll = ( | |
111 | int scroll = ( | |
112 | 112 | |
113 | 113 | count = 0; |
114 | 114 | |
r17967 | r17968 | |
139 | 139 | { |
140 | 140 | for (xi=0;xi<8;xi++) |
141 | 141 | { |
142 | color = | |
142 | color = | |
143 | 143 | |
144 | 144 | if(color != 0 && cliprect.contains(x+yi, 256-y+xi)) |
145 | 145 | bitmap.pix16(x+yi, 256-y+xi) = screen.machine().pens[(color & 0x7)]; |
r17967 | r17968 | |
436 | 436 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(3072)) |
437 | 437 | MCFG_SCREEN_SIZE(256, 256) |
438 | 438 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) |
439 | MCFG_SCREEN_UPDATE_ | |
439 | MCFG_SCREEN_UPDATE_DR | |
440 | 440 | |
441 | 441 | MCFG_GFXDECODE(progolf) |
442 | 442 | MCFG_PALETTE_LENGTH(32*3) |
r17967 | r17968 | |
---|---|---|
361 | 361 | MCFG_SCREEN_REFRESH_RATE(60) |
362 | 362 | MCFG_SCREEN_SIZE(32*8, 32*8) |
363 | 363 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
364 | MCFG_SCREEN_UPDATE_ | |
364 | MCFG_SCREEN_UPDATE_DR | |
365 | 365 | |
366 | 366 | MCFG_GFXDECODE(magmax) |
367 | 367 | MCFG_PALETTE_LENGTH(1*16 + 16*16 + 256) |
r17967 | r17968 | |
---|---|---|
426 | 426 | m_bg_tilemap->set_scrolly(0, m_bg_yoffset); |
427 | 427 | } |
428 | 428 | |
429 | static | |
429 | UINT32 playmark_state::screen_update_powerbal(screen_device &screen, bitmap_ind | |
430 | 430 | { |
431 | playmark_state *state = screen.machine().driver_data<playmark_state>(); | |
432 | 431 | |
433 | | |
432 | | |
434 | 433 | draw_sprites(screen.machine(), bitmap, cliprect); |
435 | 434 | return 0; |
436 | 435 | } |
r17967 | r17968 | |
496 | 495 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
497 | 496 | MCFG_SCREEN_SIZE(128*8, 64*8) |
498 | 497 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) |
499 | MCFG_SCREEN_UPDATE_ | |
498 | MCFG_SCREEN_UPDATE_DR | |
500 | 499 | |
501 | 500 | MCFG_GFXDECODE(powerbal) |
502 | 501 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
529 | 528 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
530 | 529 | MCFG_SCREEN_SIZE(128*8, 64*8) |
531 | 530 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) |
532 | MCFG_SCREEN_UPDATE_ | |
531 | MCFG_SCREEN_UPDATE_DR | |
533 | 532 | |
534 | 533 | MCFG_GFXDECODE(powerbal) |
535 | 534 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
---|---|---|
110 | 110 | TILE_GET_INFO_MEMBER(get_jackie_reel3_tile_info); |
111 | 111 | virtual void machine_reset(); |
112 | 112 | virtual void video_start(); |
113 | UINT32 screen_update_jackie(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
113 | 114 | }; |
114 | 115 | |
115 | 116 | |
r17967 | r17968 | |
197 | 198 | } |
198 | 199 | |
199 | 200 | |
200 | static | |
201 | UINT32 jackie_state::screen_update_jackie(screen_device &screen, bitmap_ind | |
201 | 202 | { |
202 | jackie_state *state = screen.machine().driver_data<jackie_state>(); | |
203 | 203 | int i,j; |
204 | 204 | int startclipmin = 0; |
205 | 205 | const rectangle &visarea = screen.visible_area(); |
r17967 | r17968 | |
208 | 208 | |
209 | 209 | for (i=0;i < 0x40;i++) |
210 | 210 | { |
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]); | |
214 | 214 | } |
215 | 215 | |
216 | 216 | for (j=0; j < 0x100-1; j++) |
217 | 217 | { |
218 | 218 | rectangle clip; |
219 | int rowenable = | |
219 | int rowenable = | |
220 | 220 | |
221 | 221 | /* draw top of screen */ |
222 | 222 | clip.set(visarea.min_x, visarea.max_x, startclipmin, startclipmin+1); |
223 | 223 | |
224 | 224 | if (rowenable==0) |
225 | 225 | { |
226 | | |
226 | | |
227 | 227 | } |
228 | 228 | else if (rowenable==1) |
229 | 229 | { |
230 | | |
230 | | |
231 | 231 | } |
232 | 232 | else if (rowenable==2) |
233 | 233 | { |
234 | | |
234 | | |
235 | 235 | } |
236 | 236 | else if (rowenable==3) |
237 | 237 | { |
r17967 | r17968 | |
240 | 240 | startclipmin+=1; |
241 | 241 | } |
242 | 242 | |
243 | | |
243 | | |
244 | 244 | |
245 | 245 | return 0; |
246 | 246 | } |
r17967 | r17968 | |
586 | 586 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
587 | 587 | MCFG_SCREEN_SIZE(64*8, 32*8) |
588 | 588 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0, 32*8-1) |
589 | MCFG_SCREEN_UPDATE_ | |
589 | MCFG_SCREEN_UPDATE_DR | |
590 | 590 | |
591 | 591 | MCFG_GFXDECODE(jackie) |
592 | 592 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
---|---|---|
564 | 564 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
565 | 565 | MCFG_SCREEN_SIZE(40*8, 32*8) |
566 | 566 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 3*8, 32*8-1) |
567 | MCFG_SCREEN_UPDATE_ | |
567 | MCFG_SCREEN_UPDATE_DR | |
568 | 568 | |
569 | 569 | MCFG_SCREEN_ADD("rscreen", RASTER) |
570 | 570 | MCFG_SCREEN_REFRESH_RATE(60) |
571 | 571 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
572 | 572 | MCFG_SCREEN_SIZE(40*8, 32*8) |
573 | 573 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 3*8, 32*8-1) |
574 | MCFG_SCREEN_UPDATE_ | |
574 | MCFG_SCREEN_UPDATE_DR | |
575 | 575 | |
576 | 576 | |
577 | 577 | MCFG_TC0100SCN_ADD("tc0100scn_1", darius2d_tc0100scn_intf_l) |
r17967 | r17968 | |
627 | 627 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
628 | 628 | MCFG_SCREEN_SIZE(40*8, 32*8) |
629 | 629 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) |
630 | MCFG_SCREEN_UPDATE_ | |
630 | MCFG_SCREEN_UPDATE_DR | |
631 | 631 | |
632 | 632 | MCFG_SCREEN_ADD("rscreen", RASTER) |
633 | 633 | MCFG_SCREEN_REFRESH_RATE(60) |
634 | 634 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
635 | 635 | MCFG_SCREEN_SIZE(40*8, 32*8) |
636 | 636 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) |
637 | MCFG_SCREEN_UPDATE_ | |
637 | MCFG_SCREEN_UPDATE_DR | |
638 | 638 | |
639 | 639 | |
640 | 640 | MCFG_TC0100SCN_ADD("tc0100scn_1", warriorb_tc0100scn_intf_l) |
r17967 | r17968 | |
---|---|---|
328 | 328 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
329 | 329 | MCFG_SCREEN_SIZE(40*8, 32*8) |
330 | 330 | 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) | |
333 | 333 | |
334 | 334 | MCFG_GFXDECODE(goal92) |
335 | 335 | MCFG_PALETTE_LENGTH(128*16) |
r17967 | r17968 | |
---|---|---|
447 | 447 | MCFG_NVRAM_ADD_0FILL("nvram") |
448 | 448 | |
449 | 449 | MCFG_LASERDISC_LDP1450_ADD("laserdisc") |
450 | MCFG_LASERDISC_OVERLAY_ | |
450 | MCFG_LASERDISC_OVERLAY_DR | |
451 | 451 | MCFG_LASERDISC_OVERLAY_CLIP((129-8)*2, (449+8-1)*2, 44-8, 244+8-1) |
452 | 452 | |
453 | 453 | /* video hardware */ |
r17967 | r17968 | |
---|---|---|
374 | 374 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
375 | 375 | MCFG_SCREEN_SIZE(32*8, 32*8) |
376 | 376 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
377 | MCFG_SCREEN_UPDATE_ | |
377 | MCFG_SCREEN_UPDATE_DR | |
378 | 378 | |
379 | 379 | MCFG_GFXDECODE(bombjack) |
380 | 380 | MCFG_PALETTE_LENGTH(128) |
r17967 | r17968 | |
---|---|---|
143 | 143 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
144 | 144 | MCFG_SCREEN_SIZE(32*8, 32*8) |
145 | 145 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) |
146 | MCFG_SCREEN_UPDATE_ | |
146 | MCFG_SCREEN_UPDATE_DR | |
147 | 147 | |
148 | 148 | MCFG_GFXDECODE(trucocl) |
149 | 149 | MCFG_PALETTE_LENGTH(32) |
r17967 | r17968 | |
---|---|---|
603 | 603 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
604 | 604 | MCFG_SCREEN_SIZE(0x180, 0xe0) |
605 | 605 | MCFG_SCREEN_VISIBLE_AREA(0, 0x180-1, 0, 0xe0-1) |
606 | MCFG_SCREEN_UPDATE_ | |
606 | MCFG_SCREEN_UPDATE_DR | |
607 | 607 | |
608 | 608 | MCFG_GFXDECODE(unico) |
609 | 609 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
648 | 648 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
649 | 649 | MCFG_SCREEN_SIZE(0x180, 0xe0) |
650 | 650 | MCFG_SCREEN_VISIBLE_AREA(0, 0x180-1, 0, 0xe0-1) |
651 | MCFG_SCREEN_UPDATE_ | |
651 | MCFG_SCREEN_UPDATE_DR | |
652 | 652 | |
653 | 653 | MCFG_GFXDECODE(unico) |
654 | 654 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
690 | 690 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
691 | 691 | MCFG_SCREEN_SIZE(0x180, 0xe0) |
692 | 692 | MCFG_SCREEN_VISIBLE_AREA(0, 0x180-1, 0, 0xe0-1) |
693 | MCFG_SCREEN_UPDATE_ | |
693 | MCFG_SCREEN_UPDATE_DR | |
694 | 694 | |
695 | 695 | MCFG_GFXDECODE(unico) |
696 | 696 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
---|---|---|
229 | 229 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
230 | 230 | MCFG_SCREEN_SIZE(64*8, 32*8) |
231 | 231 | MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) |
232 | MCFG_SCREEN_UPDATE_ | |
232 | MCFG_SCREEN_UPDATE_DR | |
233 | 233 | |
234 | 234 | MCFG_PALETTE_LENGTH(1024) |
235 | 235 |
r17967 | r17968 | |
---|---|---|
447 | 447 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* frames per second, vblank duration */) |
448 | 448 | MCFG_SCREEN_SIZE(40*8, 32*8) |
449 | 449 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1) |
450 | MCFG_SCREEN_UPDATE_ | |
450 | MCFG_SCREEN_UPDATE_DR | |
451 | 451 | |
452 | 452 | |
453 | 453 | MCFG_GFXDECODE(gcpinbal) |
r17967 | r17968 | |
---|---|---|
131 | 131 | TILE_GET_INFO_MEMBER(get_bg6_tile_info); |
132 | 132 | TILE_GET_INFO_MEMBER(get_bg7_tile_info); |
133 | 133 | virtual void video_start(); |
134 | UINT32 screen_update_blackt96(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
134 | 135 | }; |
135 | 136 | |
136 | 137 | #define GET_INFO( ram ) \ |
r17967 | r17968 | |
227 | 228 | } |
228 | 229 | |
229 | 230 | |
230 | stat | |
231 | UINT32 blackt96_state::screen | |
231 | 232 | { |
232 | blackt96_state *state = screen.machine().driver_data<blackt96_state>(); | |
233 | 233 | int count; |
234 | 234 | int x,y; |
235 | 235 | gfx_element *gfx = screen.machine().gfx[2]; |
r17967 | r17968 | |
263 | 263 | { |
264 | 264 | for (y=0;y<32;y++) |
265 | 265 | { |
266 | UINT16 tile = ( | |
266 | UINT16 tile = ( | |
267 | 267 | drawgfx_transpen(bitmap,cliprect,gfx,tile,0,0,0,x*8,-16+y*8,0); |
268 | 268 | count++; |
269 | 269 | } |
r17967 | r17968 | |
621 | 621 | MCFG_SCREEN_SIZE(256, 256) |
622 | 622 | // MCFG_SCREEN_VISIBLE_AREA(0*8, 16*32-1, 0*8, 16*32-1) |
623 | 623 | MCFG_SCREEN_VISIBLE_AREA(0*8, 256-1, 0*8, 208-1) |
624 | MCFG_SCREEN_UPDATE_ | |
624 | MCFG_SCREEN_UPDATE_DR | |
625 | 625 | |
626 | 626 | MCFG_PALETTE_LENGTH(0x800) |
627 | 627 |
r17967 | r17968 | |
---|---|---|
906 | 906 | MCFG_SCREEN_REFRESH_RATE(40) |
907 | 907 | MCFG_SCREEN_SIZE(400, 300) |
908 | 908 | MCFG_SCREEN_VISIBLE_AREA(512, 1536, 640-32, 1408+32) |
909 | MCFG_SCREEN_UPDATE_ | |
909 | MCFG_SCREEN_UPDATE_DR | |
910 | 910 | |
911 | 911 | |
912 | 912 | /* sound hardware */ |
r17967 | r17968 | |
---|---|---|
68 | 68 | virtual void machine_reset(); |
69 | 69 | virtual void video_start(); |
70 | 70 | virtual void palette_init(); |
71 | UINT32 screen_update_ace(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
71 | 72 | }; |
72 | 73 | |
73 | 74 | |
r17967 | r17968 | |
91 | 92 | machine().gfx[4]->set_source(m_scoreram); |
92 | 93 | } |
93 | 94 | |
94 | static | |
95 | UINT32 aceal_state::screen_update_ace(screen_device &screen, bitmap_ind | |
95 | 96 | { |
96 | aceal_state *state = screen.machine().driver_data<aceal_state>(); | |
97 | 97 | int offs; |
98 | 98 | |
99 | 99 | /* first of all, fill the screen with the background color */ |
r17967 | r17968 | |
103 | 103 | 0, |
104 | 104 | 0, |
105 | 105 | 0, 0, |
106 | | |
106 | | |
107 | 107 | |
108 | 108 | drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[2], |
109 | 109 | 0, |
110 | 110 | 0, |
111 | 111 | 0, 0, |
112 | | |
112 | | |
113 | 113 | |
114 | 114 | drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[3], |
115 | 115 | 0, |
116 | 116 | 0, |
117 | 117 | 0, 0, |
118 | | |
118 | | |
119 | 119 | |
120 | 120 | for (offs = 0; offs < 8; offs++) |
121 | 121 | { |
r17967 | r17968 | |
359 | 359 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
360 | 360 | MCFG_SCREEN_SIZE(32*8, 32*8) |
361 | 361 | MCFG_SCREEN_VISIBLE_AREA(4*8, 32*8-1, 2*8, 32*8-1) |
362 | MCFG_SCREEN_UPDATE_ | |
362 | MCFG_SCREEN_UPDATE_DR | |
363 | 363 | |
364 | 364 | MCFG_GFXDECODE(ace) |
365 | 365 | MCFG_PALETTE_LENGTH(2) |
r17967 | r17968 | |
---|---|---|
460 | 460 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
461 | 461 | MCFG_SCREEN_SIZE(48*8, 16*16) |
462 | 462 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 16*16-1) |
463 | MCFG_SCREEN_UPDATE_ | |
463 | MCFG_SCREEN_UPDATE_DR | |
464 | 464 | |
465 | 465 | MCFG_GFXDECODE(gat) |
466 | 466 | MCFG_PALETTE_LENGTH(8) |
r17967 | r17968 | |
---|---|---|
368 | 368 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
369 | 369 | MCFG_SCREEN_SIZE(64*8, 32*8) |
370 | 370 | MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) |
371 | MCFG_SCREEN_UPDATE_ | |
371 | MCFG_SCREEN_UPDATE_DR | |
372 | 372 | |
373 | 373 | MCFG_PALETTE_LENGTH(1024) |
374 | 374 |
r17967 | r17968 | |
---|---|---|
163 | 163 | virtual void machine_start(); |
164 | 164 | virtual void machine_reset(); |
165 | 165 | 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); | |
166 | 168 | }; |
167 | 169 | |
168 | 170 | |
r17967 | r17968 | |
284 | 286 | |
285 | 287 | } |
286 | 288 | |
287 | ||
289 | void | |
288 | 290 | { |
289 | 291 | // rising edge |
290 | if ( | |
292 | if (st | |
291 | 293 | { |
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); | |
295 | 296 | } |
296 | 297 | } |
297 | 298 | |
298 | 299 | |
299 | stat | |
300 | UINT32 dreamwld_state::screen | |
300 | 301 | { |
301 | dreamwld_state *state = screen.machine().driver_data<dreamwld_state>(); | |
302 | 302 | // int tm0size, tm1size; |
303 | 303 | |
304 | 304 | tilemap_t *tmptilemap0, *tmptilemap1; |
305 | 305 | |
306 | tmptilemap0 = state->m_bg_tilemap; | |
307 | tmptilemap1 = state->m_bg2_tilemap; | |
306 | tmptilemap0 = m_bg_tilemap; | |
307 | tmptilemap1 = m_bg2_tilemap; | |
308 | 308 | |
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; | |
311 | 311 | |
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]; | |
316 | 316 | |
317 | 317 | tmptilemap0->set_scrolly(0, layer0_scrolly); |
318 | 318 | tmptilemap1->set_scrolly(0, layer1_scrolly); |
r17967 | r17968 | |
342 | 342 | int x0 = 0, x1 = 0; |
343 | 343 | |
344 | 344 | /* layer 0 */ |
345 | UINT16 *vregs = reinterpret_cast<UINT16 *>( | |
345 | UINT16 *vregs = reinterpret_cast<UINT16 *>( | |
346 | 346 | if (layer0_ctrl & 0x0300) |
347 | 347 | { |
348 | 348 | if (layer0_ctrl & 0x0200) |
r17967 | r17968 | |
377 | 377 | } |
378 | 378 | |
379 | 379 | |
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; | |
382 | 382 | |
383 | if ( | |
383 | if ( | |
384 | 384 | { |
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(); | |
387 | 387 | } |
388 | 388 | |
389 | if ( | |
389 | if ( | |
390 | 390 | { |
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(); | |
393 | 393 | } |
394 | 394 | |
395 | 395 | tmptilemap0->draw(bitmap, cliprect, 0, 0); |
r17967 | r17968 | |
598 | 598 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) |
599 | 599 | MCFG_SCREEN_SIZE(512,256) |
600 | 600 | 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) | |
603 | 603 | |
604 | 604 | MCFG_PALETTE_LENGTH(0x1000) |
605 | 605 | MCFG_GFXDECODE(dreamwld) |
r17967 | r17968 | |
---|---|---|
966 | 966 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1790) /* frames per second and vblank duration from the Lode Runner manual */) |
967 | 967 | MCFG_SCREEN_SIZE(64*8, 32*8) |
968 | 968 | MCFG_SCREEN_VISIBLE_AREA((64*8-384)/2, 64*8-(64*8-384)/2-1, 0*8, 32*8-1) |
969 | MCFG_SCREEN_UPDATE_ | |
969 | MCFG_SCREEN_UPDATE_DR | |
970 | 970 | |
971 | 971 | MCFG_GFXDECODE(ldrun) |
972 | 972 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
988 | 988 | /* video hardware */ |
989 | 989 | MCFG_SCREEN_MODIFY("screen") |
990 | 990 | MCFG_SCREEN_VISIBLE_AREA((64*8-256)/2, 64*8-(64*8-256)/2-1, 0*8, 32*8-1) |
991 | MCFG_SCREEN_UPDATE_ | |
991 | MCFG_SCREEN_UPDATE_DR | |
992 | 992 | |
993 | 993 | MCFG_VIDEO_START_OVERRIDE(m62_state,kungfum) |
994 | 994 | MACHINE_CONFIG_END |
r17967 | r17968 | |
1005 | 1005 | /* video hardware */ |
1006 | 1006 | MCFG_SCREEN_MODIFY("screen") |
1007 | 1007 | MCFG_SCREEN_VISIBLE_AREA((64*8-256)/2, 64*8-(64*8-256)/2-1, 0*8, 32*8-1) |
1008 | MCFG_SCREEN_UPDATE_ | |
1008 | MCFG_SCREEN_UPDATE_DR | |
1009 | 1009 | MCFG_GFXDECODE(battroad) |
1010 | 1010 | MCFG_PALETTE_LENGTH(544) |
1011 | 1011 | |
r17967 | r17968 | |
1023 | 1023 | |
1024 | 1024 | MCFG_VIDEO_START_OVERRIDE(m62_state,ldrun2) |
1025 | 1025 | MCFG_SCREEN_MODIFY("screen") |
1026 | MCFG_SCREEN_UPDATE_ | |
1026 | MCFG_SCREEN_UPDATE_DR | |
1027 | 1027 | MACHINE_CONFIG_END |
1028 | 1028 | |
1029 | 1029 | |
r17967 | r17968 | |
1038 | 1038 | MCFG_GFXDECODE(ldrun3) |
1039 | 1039 | MCFG_VIDEO_START_OVERRIDE(m62_state,ldrun2) |
1040 | 1040 | MCFG_SCREEN_MODIFY("screen") |
1041 | MCFG_SCREEN_UPDATE_ | |
1041 | MCFG_SCREEN_UPDATE_DR | |
1042 | 1042 | MACHINE_CONFIG_END |
1043 | 1043 | |
1044 | 1044 | |
r17967 | r17968 | |
1053 | 1053 | MCFG_GFXDECODE(ldrun3) |
1054 | 1054 | MCFG_VIDEO_START_OVERRIDE(m62_state,ldrun4) |
1055 | 1055 | MCFG_SCREEN_MODIFY("screen") |
1056 | MCFG_SCREEN_UPDATE_ | |
1056 | MCFG_SCREEN_UPDATE_DR | |
1057 | 1057 | MACHINE_CONFIG_END |
1058 | 1058 | |
1059 | 1059 | |
r17967 | r17968 | |
1070 | 1070 | MCFG_PALETTE_INIT_OVERRIDE(m62_state,lotlot) |
1071 | 1071 | MCFG_VIDEO_START_OVERRIDE(m62_state,lotlot) |
1072 | 1072 | MCFG_SCREEN_MODIFY("screen") |
1073 | MCFG_SCREEN_UPDATE_ | |
1073 | MCFG_SCREEN_UPDATE_DR | |
1074 | 1074 | MACHINE_CONFIG_END |
1075 | 1075 | |
1076 | 1076 | |
r17967 | r17968 | |
1086 | 1086 | |
1087 | 1087 | MCFG_VIDEO_START_OVERRIDE(m62_state,kidniki) |
1088 | 1088 | MCFG_SCREEN_MODIFY("screen") |
1089 | MCFG_SCREEN_UPDATE_ | |
1089 | MCFG_SCREEN_UPDATE_DR | |
1090 | 1090 | MACHINE_CONFIG_END |
1091 | 1091 | |
1092 | 1092 | |
r17967 | r17968 | |
1101 | 1101 | |
1102 | 1102 | MCFG_VIDEO_START_OVERRIDE(m62_state,spelunkr) |
1103 | 1103 | MCFG_SCREEN_MODIFY("screen") |
1104 | MCFG_SCREEN_UPDATE_ | |
1104 | MCFG_SCREEN_UPDATE_DR | |
1105 | 1105 | MACHINE_CONFIG_END |
1106 | 1106 | |
1107 | 1107 | |
r17967 | r17968 | |
1118 | 1118 | MCFG_PALETTE_INIT_OVERRIDE(m62_state,spelunk2) |
1119 | 1119 | MCFG_VIDEO_START_OVERRIDE(m62_state,spelunk2) |
1120 | 1120 | MCFG_SCREEN_MODIFY("screen") |
1121 | MCFG_SCREEN_UPDATE_ | |
1121 | MCFG_SCREEN_UPDATE_DR | |
1122 | 1122 | MACHINE_CONFIG_END |
1123 | 1123 | |
1124 | 1124 | |
r17967 | r17968 | |
1133 | 1133 | /* video hardware */ |
1134 | 1134 | MCFG_SCREEN_MODIFY("screen") |
1135 | 1135 | MCFG_SCREEN_VISIBLE_AREA((64*8-256)/2, 64*8-(64*8-256)/2-1, 0*8, 32*8-1) |
1136 | MCFG_SCREEN_UPDATE_ | |
1136 | MCFG_SCREEN_UPDATE_DR | |
1137 | 1137 | MCFG_GFXDECODE(youjyudn) |
1138 | 1138 | |
1139 | 1139 | MCFG_VIDEO_START_OVERRIDE(m62_state,youjyudn) |
r17967 | r17968 | |
1149 | 1149 | /* video hardware */ |
1150 | 1150 | MCFG_SCREEN_MODIFY("screen") |
1151 | 1151 | MCFG_SCREEN_VISIBLE_AREA((64*8-256)/2, 64*8-(64*8-256)/2-1, 0*8, 32*8-1) |
1152 | MCFG_SCREEN_UPDATE_ | |
1152 | MCFG_SCREEN_UPDATE_DR | |
1153 | 1153 | |
1154 | 1154 | MCFG_VIDEO_START_OVERRIDE(m62_state,horizon) |
1155 | 1155 | MACHINE_CONFIG_END |
r17967 | r17968 | |
---|---|---|
1298 | 1298 | MCFG_SCREEN_ADD("screen", RASTER) |
1299 | 1299 | MCFG_SCREEN_RAW_PARAMS(ASTROCADE_CLOCK, 455, 0, 352, 262, 0, 240) |
1300 | 1300 | MCFG_SCREEN_DEFAULT_POSITION(1.1, 0.0, 1.18, -0.018) /* clip out borders */ |
1301 | MCFG_SCREEN_UPDATE_ | |
1301 | MCFG_SCREEN_UPDATE_DR | |
1302 | 1302 | |
1303 | 1303 | MACHINE_CONFIG_END |
1304 | 1304 | |
r17967 | r17968 | |
1315 | 1315 | MCFG_VIDEO_START_OVERRIDE(astrocde_state,profpac) |
1316 | 1316 | |
1317 | 1317 | MCFG_SCREEN_MODIFY("screen") |
1318 | MCFG_SCREEN_UPDATE_ | |
1318 | MCFG_SCREEN_UPDATE_DR | |
1319 | 1319 | MACHINE_CONFIG_END |
1320 | 1320 | |
1321 | 1321 |
r17967 | r17968 | |
---|---|---|
277 | 277 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
278 | 278 | MCFG_SCREEN_SIZE(36*8, 32*8) |
279 | 279 | MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 2*8, 30*8-1) |
280 | MCFG_SCREEN_UPDATE_ | |
280 | MCFG_SCREEN_UPDATE_DR | |
281 | 281 | |
282 | 282 | MCFG_GFXDECODE(megazone) |
283 | 283 | MCFG_PALETTE_LENGTH(16*16+16*16) |
r17967 | r17968 | |
---|---|---|
249 | 249 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
250 | 250 | MCFG_SCREEN_SIZE(64*8, 32*8) |
251 | 251 | MCFG_SCREEN_VISIBLE_AREA(8*8, 48*8-1, 2*8, 30*8-1) |
252 | MCFG_SCREEN_UPDATE_ | |
252 | MCFG_SCREEN_UPDATE_DR | |
253 | 253 | |
254 | 254 | MCFG_PALETTE_LENGTH(0x200) |
255 | 255 | MCFG_GFXDECODE(pass) |
r17967 | r17968 | |
---|---|---|
1080 | 1080 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1081 | 1081 | MCFG_SCREEN_SIZE(64*8, 32*8) |
1082 | 1082 | MCFG_SCREEN_VISIBLE_AREA(128,128+255, 2*8, 30*8-1) |
1083 | MCFG_SCREEN_UPDATE_ | |
1083 | MCFG_SCREEN_UPDATE_DR | |
1084 | 1084 | |
1085 | 1085 | MCFG_GFXDECODE(40love) |
1086 | 1086 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
1135 | 1135 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1136 | 1136 | MCFG_SCREEN_SIZE(64*8, 32*8) |
1137 | 1137 | MCFG_SCREEN_VISIBLE_AREA(128,128+255, 2*8, 30*8-1) |
1138 | MCFG_SCREEN_UPDATE_ | |
1138 | MCFG_SCREEN_UPDATE_DR | |
1139 | 1139 | |
1140 | 1140 | MCFG_GFXDECODE(40love) |
1141 | 1141 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
1700 | 1700 | /* video hardware */ |
1701 | 1701 | MCFG_SCREEN_ADD("screen", RASTER) |
1702 | 1702 | 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) | |
1705 | 1705 | |
1706 | 1706 | MCFG_GFXDECODE(bosco) |
1707 | 1707 | MCFG_PALETTE_LENGTH(64*4+64*4+4+64) |
r17967 | r17968 | |
1756 | 1756 | /* video hardware */ |
1757 | 1757 | MCFG_SCREEN_ADD("screen", RASTER) |
1758 | 1758 | 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) | |
1761 | 1761 | |
1762 | 1762 | MCFG_GFXDECODE(galaga) |
1763 | 1763 | MCFG_PALETTE_LENGTH(64*4+64*4+64) |
r17967 | r17968 | |
1834 | 1834 | /* video hardware */ |
1835 | 1835 | MCFG_SCREEN_ADD("screen", RASTER) |
1836 | 1836 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 288, 264, 0, 224) |
1837 | MCFG_SCREEN_UPDATE_ | |
1837 | MCFG_SCREEN_UPDATE_DR | |
1838 | 1838 | |
1839 | 1839 | MCFG_GFXDECODE(xevious) |
1840 | 1840 | MCFG_PALETTE_LENGTH(128*4+64*8+64*2) |
r17967 | r17968 | |
1923 | 1923 | /* video hardware */ |
1924 | 1924 | MCFG_SCREEN_ADD("screen", RASTER) |
1925 | 1925 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 288, 264, 0, 224) |
1926 | MCFG_SCREEN_UPDATE_ | |
1926 | MCFG_SCREEN_UPDATE_DR | |
1927 | 1927 | |
1928 | 1928 | MCFG_GFXDECODE(digdug) |
1929 | 1929 | MCFG_PALETTE_LENGTH(16*2+64*4+64*4) |
r17967 | r17968 | |
---|---|---|
98 | 98 | TILE_GET_INFO_MEMBER(get_txttile_info); |
99 | 99 | virtual void video_start(); |
100 | 100 | virtual void palette_init(); |
101 | UINT32 screen_update_panicr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
101 | 102 | }; |
102 | 103 | |
103 | 104 | |
r17967 | r17968 | |
247 | 248 | } |
248 | 249 | } |
249 | 250 | |
250 | static | |
251 | UINT32 panicr_state::screen_update_panicr(screen_device &screen, bitmap_ind | |
251 | 252 | { |
252 | panicr_state *state = screen.machine().driver_data<panicr_state>(); | |
253 | 253 | 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); | |
257 | 257 | draw_sprites(screen.machine(),bitmap,cliprect); |
258 | | |
258 | | |
259 | 259 | |
260 | 260 | return 0; |
261 | 261 | } |
r17967 | r17968 | |
515 | 515 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
516 | 516 | MCFG_SCREEN_SIZE(32*8, 32*8) |
517 | 517 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
518 | MCFG_SCREEN_UPDATE_ | |
518 | MCFG_SCREEN_UPDATE_DR | |
519 | 519 | |
520 | 520 | MCFG_GFXDECODE(panicr) |
521 | 521 | MCFG_PALETTE_LENGTH(256*3) |
r17967 | r17968 | |
---|---|---|
53 | 53 | DECLARE_DRIVER_INIT(istellar); |
54 | 54 | virtual void machine_start(); |
55 | 55 | virtual void palette_init(); |
56 | UINT32 screen_update_istellar(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
56 | 57 | }; |
57 | 58 | |
58 | 59 | |
r17967 | r17968 | |
61 | 62 | |
62 | 63 | |
63 | 64 | /* VIDEO GOODS */ |
64 | static | |
65 | UINT32 istellar_state::screen_update_istellar(screen_device &screen, bitmap_rgb | |
65 | 66 | { |
66 | istellar_state *state = screen.machine().driver_data<istellar_state>(); | |
67 | 67 | int x, y; |
68 | 68 | |
69 | 69 | /* clear */ |
r17967 | r17968 | |
74 | 74 | { |
75 | 75 | for (x = 0; x < 32; x++) |
76 | 76 | { |
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]; | |
79 | 79 | |
80 | 80 | drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0],tile,attr & 0x0f,0, 0, x*8, y*8, 0); |
81 | 81 | } |
r17967 | r17968 | |
346 | 346 | |
347 | 347 | |
348 | 348 | MCFG_LASERDISC_LDV1000_ADD("laserdisc") |
349 | MCFG_LASERDISC_OVERLAY_ | |
349 | MCFG_LASERDISC_OVERLAY_DR | |
350 | 350 | |
351 | 351 | /* video hardware */ |
352 | 352 | MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc") |
r17967 | r17968 | |
---|---|---|
525 | 525 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
526 | 526 | MCFG_SCREEN_SIZE(32*8, 32*8) |
527 | 527 | MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 2*8, 30*8-1) |
528 | MCFG_SCREEN_UPDATE_ | |
528 | MCFG_SCREEN_UPDATE_DR | |
529 | 529 | |
530 | 530 | MCFG_GFXDECODE(lasso) |
531 | 531 | MCFG_PALETTE_LENGTH(0x40) |
r17967 | r17968 | |
562 | 562 | |
563 | 563 | /* video hardware */ |
564 | 564 | MCFG_SCREEN_MODIFY("screen") |
565 | MCFG_SCREEN_UPDATE_ | |
565 | MCFG_SCREEN_UPDATE_DR | |
566 | 566 | MACHINE_CONFIG_END |
567 | 567 | |
568 | 568 | static MACHINE_CONFIG_DERIVED( wwjgtin, base ) |
r17967 | r17968 | |
580 | 580 | /* video hardware */ |
581 | 581 | MCFG_SCREEN_MODIFY("screen") |
582 | 582 | MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1) // Smaller visible area? |
583 | MCFG_SCREEN_UPDATE_ | |
583 | MCFG_SCREEN_UPDATE_DR | |
584 | 584 | MCFG_GFXDECODE(wwjgtin) // Has 1 additional layer |
585 | 585 | MCFG_PALETTE_LENGTH(0x40 + 16*16) |
586 | 586 | |
r17967 | r17968 | |
609 | 609 | MCFG_PALETTE_INIT(RRRR_GGGG_BBBB) |
610 | 610 | MCFG_VIDEO_START_OVERRIDE(lasso_state,pinbo) |
611 | 611 | MCFG_SCREEN_MODIFY("screen") |
612 | MCFG_SCREEN_UPDATE_ | |
612 | MCFG_SCREEN_UPDATE_DR | |
613 | 613 | |
614 | 614 | /* sound hardware */ |
615 | 615 | MCFG_DEVICE_REMOVE("sn76489.1") |
r17967 | r17968 | |
---|---|---|
491 | 491 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
492 | 492 | MCFG_SCREEN_SIZE(128*8, 128*8) |
493 | 493 | MCFG_SCREEN_VISIBLE_AREA(0*8, 128*8-1, 0*8, 128*8-1) |
494 | MCFG_SCREEN_UPDATE_ | |
494 | MCFG_SCREEN_UPDATE_DR | |
495 | 495 | |
496 | 496 | MCFG_GFXDECODE(macs) |
497 | 497 | MCFG_PALETTE_LENGTH(16*16*4+1) |
r17967 | r17968 | |
---|---|---|
73 | 73 | TILE_GET_INFO_MEMBER(get_sb_tile_info); |
74 | 74 | virtual void video_start(); |
75 | 75 | virtual void palette_init(); |
76 | UINT32 screen_update_sbowling(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
76 | 77 | }; |
77 | 78 | |
78 | 79 | TILE_GET_INFO_MEMBER(sbowling_state::get_sb_tile_info) |
r17967 | r17968 | |
116 | 117 | } |
117 | 118 | } |
118 | 119 | |
119 | stat | |
120 | UINT32 sbowling_state::screen | |
120 | 121 | { |
121 | sbowling_state *state = screen.machine().driver_data<sbowling_state>(); | |
122 | 122 | |
123 | 123 | 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); | |
126 | 126 | return 0; |
127 | 127 | } |
128 | 128 | |
r17967 | r17968 | |
392 | 392 | MCFG_SCREEN_REFRESH_RATE(60) |
393 | 393 | MCFG_SCREEN_SIZE(32*8, 262) /* vert size taken from mw8080bw */ |
394 | 394 | MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 32*8-1) |
395 | MCFG_SCREEN_UPDATE_ | |
395 | MCFG_SCREEN_UPDATE_DR | |
396 | 396 | |
397 | 397 | MCFG_GFXDECODE(sbowling) |
398 | 398 |
r17967 | r17968 | |
---|---|---|
678 | 678 | /* frames per second hand tuned to match game and music speed */ |
679 | 679 | MCFG_SCREEN_SIZE(32*8, 32*8) |
680 | 680 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
681 | MCFG_SCREEN_UPDATE_ | |
681 | MCFG_SCREEN_UPDATE_DR | |
682 | 682 | |
683 | 683 | MCFG_GFXDECODE(psychic5) |
684 | 684 | MCFG_PALETTE_LENGTH(768) |
r17967 | r17968 | |
722 | 722 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
723 | 723 | MCFG_SCREEN_SIZE(64*8, 32*8) |
724 | 724 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
725 | MCFG_SCREEN_UPDATE_ | |
725 | MCFG_SCREEN_UPDATE_DR | |
726 | 726 | |
727 | 727 | MCFG_GFXDECODE(bombsa) |
728 | 728 | MCFG_PALETTE_LENGTH(768) |
r17967 | r17968 | |
---|---|---|
726 | 726 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
727 | 727 | MCFG_SCREEN_SIZE(40*8, 32*8) |
728 | 728 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) |
729 | MCFG_SCREEN_UPDATE_ | |
729 | MCFG_SCREEN_UPDATE_DR | |
730 | 730 | |
731 | 731 | MCFG_GFXDECODE(othunder) |
732 | 732 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
---|---|---|
396 | 396 | |
397 | 397 | /* video hardware */ |
398 | 398 | MCFG_SCREEN_MODIFY("screen") |
399 | MCFG_SCREEN_UPDATE_ | |
399 | MCFG_SCREEN_UPDATE_DR | |
400 | 400 | |
401 | 401 | /* sound hardware */ |
402 | 402 | MCFG_FRAGMENT_ADD(invaders_samples_audio) |
r17967 | r17968 | |
572 | 572 | |
573 | 573 | /* video hardware */ |
574 | 574 | MCFG_SCREEN_MODIFY("screen") |
575 | MCFG_SCREEN_UPDATE_ | |
575 | MCFG_SCREEN_UPDATE_DR | |
576 | 576 | |
577 | 577 | /* sound hardware */ |
578 | 578 | MCFG_FRAGMENT_ADD(invaders_samples_audio) |
r17967 | r17968 | |
802 | 802 | |
803 | 803 | /* video hardware */ |
804 | 804 | MCFG_SCREEN_MODIFY("screen") |
805 | MCFG_SCREEN_UPDATE_ | |
805 | MCFG_SCREEN_UPDATE_DR | |
806 | 806 | |
807 | 807 | /* sound hardware */ |
808 | 808 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
954 | 954 | |
955 | 955 | /* video hardware */ |
956 | 956 | MCFG_SCREEN_MODIFY("screen") |
957 | MCFG_SCREEN_UPDATE_ | |
957 | MCFG_SCREEN_UPDATE_DR | |
958 | 958 | |
959 | 959 | /* sound hardware */ |
960 | 960 | MCFG_FRAGMENT_ADD(invaders_samples_audio) |
r17967 | r17968 | |
1072 | 1072 | |
1073 | 1073 | /* video hardware */ |
1074 | 1074 | MCFG_SCREEN_MODIFY("screen") |
1075 | MCFG_SCREEN_UPDATE_ | |
1075 | MCFG_SCREEN_UPDATE_DR | |
1076 | 1076 | |
1077 | 1077 | /* sound hardware */ |
1078 | 1078 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
1141 | 1141 | |
1142 | 1142 | /* video hardware */ |
1143 | 1143 | MCFG_SCREEN_MODIFY("screen") |
1144 | MCFG_SCREEN_UPDATE_ | |
1144 | MCFG_SCREEN_UPDATE_DR | |
1145 | 1145 | |
1146 | 1146 | /* sound hardware */ |
1147 | 1147 | MCFG_FRAGMENT_ADD(invaders_samples_audio) |
r17967 | r17968 | |
1222 | 1222 | |
1223 | 1223 | /* video hardware */ |
1224 | 1224 | MCFG_SCREEN_MODIFY("screen") |
1225 | MCFG_SCREEN_UPDATE_ | |
1225 | MCFG_SCREEN_UPDATE_DR | |
1226 | 1226 | |
1227 | 1227 | MACHINE_CONFIG_END |
1228 | 1228 | |
r17967 | r17968 | |
1329 | 1329 | |
1330 | 1330 | /* video hardware */ |
1331 | 1331 | MCFG_SCREEN_MODIFY("screen") |
1332 | MCFG_SCREEN_UPDATE_ | |
1332 | MCFG_SCREEN_UPDATE_DR | |
1333 | 1333 | |
1334 | 1334 | /* sound hardware */ |
1335 | 1335 | MCFG_FRAGMENT_ADD(invaders_samples_audio) |
r17967 | r17968 | |
1349 | 1349 | |
1350 | 1350 | /* video hardware */ |
1351 | 1351 | MCFG_SCREEN_MODIFY("screen") |
1352 | MCFG_SCREEN_UPDATE_ | |
1352 | MCFG_SCREEN_UPDATE_DR | |
1353 | 1353 | |
1354 | 1354 | /* sound hardware */ |
1355 | 1355 | MCFG_FRAGMENT_ADD(invaders_samples_audio) |
r17967 | r17968 | |
1469 | 1469 | |
1470 | 1470 | /* video hardware */ |
1471 | 1471 | MCFG_SCREEN_MODIFY("screen") |
1472 | MCFG_SCREEN_UPDATE_ | |
1472 | MCFG_SCREEN_UPDATE_DR | |
1473 | 1473 | |
1474 | 1474 | /* sound hardware */ |
1475 | 1475 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
1592 | 1592 | |
1593 | 1593 | /* video hardware */ |
1594 | 1594 | MCFG_SCREEN_MODIFY("screen") |
1595 | MCFG_SCREEN_UPDATE_ | |
1595 | MCFG_SCREEN_UPDATE_DR | |
1596 | 1596 | |
1597 | 1597 | /* sound hardware */ |
1598 | 1598 | MCFG_FRAGMENT_ADD(invaders_samples_audio) |
r17967 | r17968 | |
1763 | 1763 | |
1764 | 1764 | /* video hardware */ |
1765 | 1765 | MCFG_SCREEN_MODIFY("screen") |
1766 | MCFG_SCREEN_UPDATE_ | |
1766 | MCFG_SCREEN_UPDATE_DR | |
1767 | 1767 | |
1768 | 1768 | /* sound hardware */ |
1769 | 1769 | MCFG_FRAGMENT_ADD(invaders_samples_audio) |
r17967 | r17968 | |
1837 | 1837 | |
1838 | 1838 | /* video hardware */ |
1839 | 1839 | MCFG_SCREEN_MODIFY("screen") |
1840 | MCFG_SCREEN_UPDATE_ | |
1840 | MCFG_SCREEN_UPDATE_DR | |
1841 | 1841 | |
1842 | 1842 | /* sound hardware */ |
1843 | 1843 | MCFG_FRAGMENT_ADD(invaders_samples_audio) |
r17967 | r17968 | |
1972 | 1972 | /* video hardware */ |
1973 | 1973 | MCFG_SCREEN_MODIFY("screen") |
1974 | 1974 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 24*8-1) |
1975 | MCFG_SCREEN_UPDATE_ | |
1975 | MCFG_SCREEN_UPDATE_DR | |
1976 | 1976 | |
1977 | 1977 | /* sound hardware */ |
1978 | 1978 | MCFG_FRAGMENT_ADD(invaders_samples_audio) |
r17967 | r17968 | |
2153 | 2153 | /* video hardware */ |
2154 | 2154 | // TODO: replace with modified invaders color renderer code allowing midscanline color writes |
2155 | 2155 | MCFG_SCREEN_MODIFY("screen") |
2156 | MCFG_SCREEN_UPDATE_ | |
2156 | MCFG_SCREEN_UPDATE_DR | |
2157 | 2157 | |
2158 | 2158 | /* add shifter */ |
2159 | 2159 | MCFG_MB14241_ADD("mb14241") |
r17967 | r17968 | |
---|---|---|
57 | 57 | TILE_GET_INFO_MEMBER(get_fg_tile_info); |
58 | 58 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
59 | 59 | virtual void video_start(); |
60 | UINT32 screen_update_good(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
60 | 61 | }; |
61 | 62 | |
62 | 63 | |
r17967 | r17968 | |
95 | 96 | m_fg_tilemap->set_transparent_pen(0xf); |
96 | 97 | } |
97 | 98 | |
98 | static | |
99 | UINT32 good_state::screen_update_good(screen_device &screen, bitmap_ind | |
99 | 100 | { |
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); | |
103 | 103 | return 0; |
104 | 104 | } |
105 | 105 | |
r17967 | r17968 | |
288 | 288 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
289 | 289 | MCFG_SCREEN_SIZE(32*16, 32*16) |
290 | 290 | MCFG_SCREEN_VISIBLE_AREA(1*16, 23*16-1, 0*16, 14*16-1) |
291 | MCFG_SCREEN_UPDATE_ | |
291 | MCFG_SCREEN_UPDATE_DR | |
292 | 292 | |
293 | 293 | MCFG_PALETTE_LENGTH(0x400) |
294 | 294 |
r17967 | r17968 | |
---|---|---|
345 | 345 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
346 | 346 | MCFG_SCREEN_SIZE(256, 256) |
347 | 347 | MCFG_SCREEN_VISIBLE_AREA(1*8+1, 29*8-1, 2*8, 32*8-1) |
348 | MCFG_SCREEN_UPDATE_ | |
348 | MCFG_SCREEN_UPDATE_DR | |
349 | 349 | |
350 | 350 | MCFG_GFXDECODE(quasar) |
351 | 351 | MCFG_PALETTE_LENGTH((64+1)*8+(4*256)) |
r17967 | r17968 | |
---|---|---|
244 | 244 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
245 | 245 | MCFG_SCREEN_SIZE(80*4, 32*8) |
246 | 246 | MCFG_SCREEN_VISIBLE_AREA(0, 80*4-1, 0, 28*8-1) |
247 | MCFG_SCREEN_UPDATE_ | |
247 | MCFG_SCREEN_UPDATE_DR | |
248 | 248 | |
249 | 249 | MCFG_GFXDECODE(xyonix) |
250 | 250 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
270 | 270 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
271 | 271 | MCFG_SCREEN_SIZE(32*8, 32*8) |
272 | 272 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
273 | MCFG_SCREEN_UPDATE_ | |
273 | MCFG_SCREEN_UPDATE_DR | |
274 | 274 | |
275 | 275 | MCFG_GFXDECODE(1943) |
276 | 276 | MCFG_PALETTE_LENGTH(32*4+16*16+16*16+16*16) |
r17967 | r17968 | |
---|---|---|
697 | 697 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
698 | 698 | MCFG_SCREEN_SIZE(40*8, 32*8) |
699 | 699 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) |
700 | MCFG_SCREEN_UPDATE_ | |
700 | MCFG_SCREEN_UPDATE_DR | |
701 | 701 | |
702 | 702 | MCFG_SCREEN_ADD("rscreen", RASTER) |
703 | 703 | MCFG_SCREEN_REFRESH_RATE(60) |
704 | 704 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
705 | 705 | MCFG_SCREEN_SIZE(40*8, 32*8) |
706 | 706 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) |
707 | MCFG_SCREEN_UPDATE_ | |
707 | MCFG_SCREEN_UPDATE_DR | |
708 | 708 | |
709 | 709 | |
710 | 710 | /* sound hardware */ |
r17967 | r17968 | |
---|---|---|
432 | 432 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
433 | 433 | MCFG_SCREEN_SIZE(64*8, 32*8) |
434 | 434 | MCFG_SCREEN_VISIBLE_AREA(3*8, 39*8-1, 2*8, 30*8-1) |
435 | MCFG_SCREEN_UPDATE_ | |
435 | MCFG_SCREEN_UPDATE_DR | |
436 | 436 | |
437 | 437 | MCFG_GFXDECODE(pacland) |
438 | 438 | MCFG_PALETTE_LENGTH(256*4+256*4+64*16) |
r17967 | r17968 | |
---|---|---|
241 | 241 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
242 | 242 | MCFG_SCREEN_SIZE(256, 256) |
243 | 243 | MCFG_SCREEN_VISIBLE_AREA(16,255,16, 255-16) |
244 | MCFG_SCREEN_UPDATE_ | |
244 | MCFG_SCREEN_UPDATE_DR | |
245 | 245 | |
246 | 246 | MCFG_GFXDECODE(rollrace) |
247 | 247 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
77 | 77 | virtual void machine_start(); |
78 | 78 | virtual void machine_reset(); |
79 | 79 | virtual void video_start(); |
80 | UINT32 screen_update_mirage(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
80 | 81 | }; |
81 | 82 | |
82 | 83 | void miragemi_state::video_start() |
r17967 | r17968 | |
84 | 85 | machine().device<decospr_device>("spritegen")->alloc_sprite_bitmap(); |
85 | 86 | } |
86 | 87 | |
87 | static | |
88 | UINT32 miragemi_state::screen_update_mirage(screen_device &screen, bitmap_rgb | |
88 | 89 | { |
89 | miragemi_state *state = screen.machine().driver_data<miragemi_state>(); | |
90 | 90 | address_space &space = screen.machine().driver_data()->generic_space(); |
91 | UINT16 flip = deco16ic_pf_control_r( | |
91 | UINT16 flip = deco16ic_pf_control_r( | |
92 | 92 | |
93 | | |
93 | | |
94 | 94 | |
95 | screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, | |
95 | screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, | |
96 | 96 | |
97 | deco16ic_pf_update( | |
97 | deco16ic_pf_update( | |
98 | 98 | |
99 | 99 | bitmap.fill(256, cliprect); /* not verified */ |
100 | 100 | |
101 | deco16ic_tilemap_2_draw( | |
101 | deco16ic_tilemap_2_draw( | |
102 | 102 | screen.machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0800, 0x0800, 0x200, 0x1ff); |
103 | deco16ic_tilemap_1_draw( | |
103 | deco16ic_tilemap_1_draw( | |
104 | 104 | screen.machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0800, 0x200, 0x1ff); |
105 | 105 | |
106 | 106 | return 0; |
r17967 | r17968 | |
331 | 331 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) |
332 | 332 | MCFG_SCREEN_SIZE(40*8, 32*8) |
333 | 333 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
334 | MCFG_SCREEN_UPDATE_ | |
334 | MCFG_SCREEN_UPDATE_DR | |
335 | 335 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) |
336 | 336 | |
337 | 337 |
r17967 | r17968 | |
---|---|---|
357 | 357 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
358 | 358 | MCFG_SCREEN_SIZE(33*8, 32*8) |
359 | 359 | MCFG_SCREEN_VISIBLE_AREA(0*8, 33*8-1, 2*8, 30*8-1) |
360 | MCFG_SCREEN_UPDATE_ | |
360 | MCFG_SCREEN_UPDATE_DR | |
361 | 361 | |
362 | 362 | MCFG_GFXDECODE(popper) |
363 | 363 | MCFG_PALETTE_LENGTH(64) |
r17967 | r17968 | |
---|---|---|
321 | 321 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
322 | 322 | MCFG_SCREEN_SIZE(32*8, 32*8) |
323 | 323 | 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_ | |
324 | MCFG_SCREEN_UPDATE_DR | |
325 | 325 | |
326 | 326 | MCFG_GFXDECODE(ladyfrog) |
327 | 327 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
---|---|---|
595 | 595 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
596 | 596 | MCFG_SCREEN_SIZE(256, 256) |
597 | 597 | 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) | |
600 | 600 | |
601 | 601 | MCFG_GFXDECODE(djboy) |
602 | 602 | MCFG_PALETTE_LENGTH(0x200) |
r17967 | r17968 | |
---|---|---|
670 | 670 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
671 | 671 | MCFG_SCREEN_SIZE(64*8, 32*8) |
672 | 672 | MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) |
673 | MCFG_SCREEN_UPDATE_ | |
673 | MCFG_SCREEN_UPDATE_DR | |
674 | 674 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) |
675 | 675 | |
676 | 676 | MCFG_GFXDECODE(sidearms) |
r17967 | r17968 | |
714 | 714 | MCFG_SCREEN_SIZE(64*8, 32*8) |
715 | 715 | MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) |
716 | 716 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) |
717 | MCFG_SCREEN_UPDATE_ | |
717 | MCFG_SCREEN_UPDATE_DR | |
718 | 718 | |
719 | 719 | MCFG_GFXDECODE(turtship) |
720 | 720 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
759 | 759 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
760 | 760 | MCFG_SCREEN_SIZE(64*8, 32*8) |
761 | 761 | MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) |
762 | MCFG_SCREEN_UPDATE_ | |
762 | MCFG_SCREEN_UPDATE_DR | |
763 | 763 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) |
764 | 764 | |
765 | 765 | MCFG_GFXDECODE(turtship) |
r17967 | r17968 | |
---|---|---|
847 | 847 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
848 | 848 | MCFG_SCREEN_SIZE(52*8, 32*8) |
849 | 849 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) |
850 | MCFG_SCREEN_UPDATE_ | |
850 | MCFG_SCREEN_UPDATE_DR | |
851 | 851 | |
852 | 852 | MCFG_GFXDECODE(superman) |
853 | 853 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
889 | 889 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
890 | 890 | MCFG_SCREEN_SIZE(52*8, 32*8) |
891 | 891 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1) |
892 | MCFG_SCREEN_UPDATE_ | |
892 | MCFG_SCREEN_UPDATE_DR | |
893 | 893 | |
894 | 894 | MCFG_GFXDECODE(superman) |
895 | 895 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
929 | 929 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
930 | 930 | MCFG_SCREEN_SIZE(52*8, 32*8) |
931 | 931 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) |
932 | MCFG_SCREEN_UPDATE_ | |
932 | MCFG_SCREEN_UPDATE_DR | |
933 | 933 | |
934 | 934 | MCFG_GFXDECODE(superman) |
935 | 935 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
971 | 971 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
972 | 972 | MCFG_SCREEN_SIZE(52*8, 32*8) |
973 | 973 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1) |
974 | MCFG_SCREEN_UPDATE_ | |
974 | MCFG_SCREEN_UPDATE_DR | |
975 | 975 | |
976 | 976 | MCFG_GFXDECODE(ballbros) |
977 | 977 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
---|---|---|
319 | 319 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529)) |
320 | 320 | MCFG_SCREEN_SIZE(40*8, 32*8) |
321 | 321 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-2, 1*8, 31*8-1) // hmm |
322 | MCFG_SCREEN_UPDATE_ | |
322 | MCFG_SCREEN_UPDATE_DR | |
323 | 323 | |
324 | 324 | MCFG_GFXDECODE(tumblep) |
325 | 325 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
220 | 220 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
221 | 221 | MCFG_SCREEN_SIZE(40*8, 32*8) |
222 | 222 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
223 | MCFG_SCREEN_UPDATE_ | |
223 | MCFG_SCREEN_UPDATE_DR | |
224 | 224 | |
225 | 225 | MCFG_PALETTE_LENGTH(1024) |
226 | 226 | MCFG_GFXDECODE(dietgo) |
r17967 | r17968 | |
---|---|---|
497 | 497 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
498 | 498 | MCFG_SCREEN_SIZE(32*8, 32*8) |
499 | 499 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
500 | MCFG_SCREEN_UPDATE_ | |
500 | MCFG_SCREEN_UPDATE_DR | |
501 | 501 | |
502 | 502 | MCFG_GFXDECODE(kingobox) |
503 | 503 | MCFG_PALETTE_LENGTH(256+8*2) |
r17967 | r17968 | |
547 | 547 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
548 | 548 | MCFG_SCREEN_SIZE(32*8, 32*8) |
549 | 549 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
550 | MCFG_SCREEN_UPDATE_ | |
550 | MCFG_SCREEN_UPDATE_DR | |
551 | 551 | |
552 | 552 | MCFG_GFXDECODE(rk) |
553 | 553 | MCFG_PALETTE_LENGTH(256+8*2) |
r17967 | r17968 | |
---|---|---|
716 | 716 | /* Video hardware */ |
717 | 717 | MCFG_SCREEN_ADD("screen", RASTER) |
718 | 718 | 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_ | |
719 | MCFG_SCREEN_UPDATE_DR | |
720 | 720 | |
721 | 721 | MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) |
722 | 722 |
r17967 | r17968 | |
---|---|---|
322 | 322 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
323 | 323 | MCFG_SCREEN_SIZE(320, 256) |
324 | 324 | MCFG_SCREEN_VISIBLE_AREA(0, 319, 8, 247) |
325 | MCFG_SCREEN_UPDATE_ | |
325 | MCFG_SCREEN_UPDATE_DR | |
326 | 326 | |
327 | 327 | MCFG_PALETTE_LENGTH(513) |
328 | 328 |
r17967 | r17968 | |
---|---|---|
696 | 696 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
697 | 697 | MCFG_SCREEN_SIZE(32*8, 32*8) |
698 | 698 | MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8) |
699 | MCFG_SCREEN_UPDATE_ | |
699 | MCFG_SCREEN_UPDATE_DR | |
700 | 700 | |
701 | 701 | MCFG_GFXDECODE(tsamurai) |
702 | 702 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
736 | 736 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
737 | 737 | MCFG_SCREEN_SIZE(32*8, 32*8) |
738 | 738 | MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8) |
739 | MCFG_SCREEN_UPDATE_ | |
739 | MCFG_SCREEN_UPDATE_DR | |
740 | 740 | |
741 | 741 | MCFG_GFXDECODE(tsamurai) |
742 | 742 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
780 | 780 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
781 | 781 | MCFG_SCREEN_SIZE(32*8, 32*8) |
782 | 782 | MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8) |
783 | MCFG_SCREEN_UPDATE_ | |
783 | MCFG_SCREEN_UPDATE_DR | |
784 | 784 | |
785 | 785 | MCFG_GFXDECODE(tsamurai) |
786 | 786 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
60 | 60 | TILE_GET_INFO_MEMBER(get_tile_info_fg); |
61 | 61 | virtual void video_start(); |
62 | 62 | virtual void palette_init(); |
63 | UINT32 screen_update_ettrivia(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
63 | 64 | }; |
64 | 65 | |
65 | 66 | |
r17967 | r17968 | |
260 | 261 | m_fg_tilemap->set_transparent_pen(0); |
261 | 262 | } |
262 | 263 | |
263 | stat | |
264 | UINT32 ettrivia_state::screen | |
264 | 265 | { |
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); | |
268 | 268 | return 0; |
269 | 269 | } |
270 | 270 | |
r17967 | r17968 | |
311 | 311 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
312 | 312 | MCFG_SCREEN_SIZE(256, 256) |
313 | 313 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) |
314 | MCFG_SCREEN_UPDATE_ | |
314 | MCFG_SCREEN_UPDATE_DR | |
315 | 315 | |
316 | 316 | MCFG_GFXDECODE(ettrivia) |
317 | 317 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
204 | 204 | virtual void machine_reset(); |
205 | 205 | virtual void video_start(); |
206 | 206 | 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); | |
207 | 209 | }; |
208 | 210 | |
209 | 211 | |
r17967 | r17968 | |
436 | 438 | } |
437 | 439 | } |
438 | 440 | |
439 | stat | |
441 | UINT32 jalmah_state::screen | |
440 | 442 | { |
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; | |
443 | 444 | UINT8 cur_prin; |
444 | 445 | jalmah_priority_system(screen.machine()); |
445 | 446 | |
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); | |
450 | 451 | |
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); | |
455 | 456 | |
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); | |
460 | 461 | |
461 | | |
462 | | |
462 | 463 | // 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); | |
465 | 466 | |
466 | 467 | |
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); | |
471 | 472 | |
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); | |
476 | 477 | |
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); | |
481 | 482 | |
482 | | |
483 | | |
483 | 484 | // 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); | |
486 | 487 | |
487 | 488 | bitmap.fill(screen.machine().pens[0xff], cliprect); //selectable by a ram address? |
488 | 489 | |
489 | 490 | for(cur_prin=1;cur_prin<=0x8;cur_prin<<=1) |
490 | 491 | { |
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); } | |
495 | 496 | } |
496 | 497 | |
497 | 498 | return 0; |
498 | 499 | } |
499 | 500 | |
500 | stat | |
501 | UINT32 jalmah_state::screen | |
501 | 502 | { |
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; | |
504 | 504 | /*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]); | |
509 | 509 | |
510 | 510 | 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); } | |
513 | 513 | return 0; |
514 | 514 | } |
515 | 515 | |
r17967 | r17968 | |
1417 | 1417 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1418 | 1418 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1419 | 1419 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
1420 | MCFG_SCREEN_UPDATE_ | |
1420 | MCFG_SCREEN_UPDATE_DR | |
1421 | 1421 | |
1422 | 1422 | MCFG_PALETTE_LENGTH(0x400) |
1423 | 1423 | |
r17967 | r17968 | |
1438 | 1438 | |
1439 | 1439 | MCFG_VIDEO_START_OVERRIDE(jalmah_state,urashima) |
1440 | 1440 | MCFG_SCREEN_MODIFY("screen") |
1441 | MCFG_SCREEN_UPDATE_ | |
1441 | MCFG_SCREEN_UPDATE_DR | |
1442 | 1442 | MACHINE_CONFIG_END |
1443 | 1443 | |
1444 | 1444 | /* |
r17967 | r17968 | |
---|---|---|
471 | 471 | MCFG_SCREEN_REFRESH_RATE(60) |
472 | 472 | MCFG_SCREEN_SIZE(64*8, 32*8) |
473 | 473 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
474 | MCFG_SCREEN_UPDATE_ | |
474 | MCFG_SCREEN_UPDATE_DR | |
475 | 475 | |
476 | 476 | MCFG_GFXDECODE(f1gp) |
477 | 477 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
514 | 514 | MCFG_SCREEN_REFRESH_RATE(60) |
515 | 515 | MCFG_SCREEN_SIZE(64*8, 32*8) |
516 | 516 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
517 | MCFG_SCREEN_UPDATE_ | |
517 | MCFG_SCREEN_UPDATE_DR | |
518 | 518 | |
519 | 519 | MCFG_GFXDECODE(f1gp) |
520 | 520 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
540 | 540 | MCFG_GFXDECODE(f1gp2) |
541 | 541 | MCFG_SCREEN_MODIFY("screen") |
542 | 542 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) |
543 | MCFG_SCREEN_UPDATE_ | |
543 | MCFG_SCREEN_UPDATE_DR | |
544 | 544 | |
545 | 545 | MCFG_DEVICE_REMOVE("k053936") |
546 | 546 | MCFG_K053936_ADD("k053936", f1gp2_k053936_intf) |
r17967 | r17968 | |
---|---|---|
90 | 90 | virtual void machine_reset(); |
91 | 91 | virtual void video_start(); |
92 | 92 | virtual void palette_init(); |
93 | UINT32 screen_update_supdrapo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
93 | 94 | }; |
94 | 95 | |
95 | 96 | |
r17967 | r17968 | |
102 | 103 | } |
103 | 104 | |
104 | 105 | |
105 | stat | |
106 | UINT32 supdrapo_state::screen | |
106 | 107 | { |
107 | supdrapo_state *state = screen.machine().driver_data<supdrapo_state>(); | |
108 | 108 | int x, y; |
109 | 109 | int count; |
110 | 110 | int color; |
r17967 | r17968 | |
115 | 115 | { |
116 | 116 | for(x = 0; x < 32; x++) |
117 | 117 | { |
118 | int tile = | |
118 | int tile = | |
119 | 119 | /* Global Column Coloring, GUESS! */ |
120 | color = | |
120 | color = | |
121 | 121 | |
122 | 122 | drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], tile,color, 0, 0, x*8, y*8); |
123 | 123 | |
r17967 | r17968 | |
456 | 456 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
457 | 457 | MCFG_SCREEN_SIZE(256, 256) |
458 | 458 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) |
459 | MCFG_SCREEN_UPDATE_ | |
459 | MCFG_SCREEN_UPDATE_DR | |
460 | 460 | |
461 | 461 | MCFG_GFXDECODE(supdrapo) |
462 | 462 | MCFG_PALETTE_LENGTH(0x100) |
r17967 | r17968 | |
---|---|---|
474 | 474 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
475 | 475 | MCFG_SCREEN_SIZE(32*8, 32*8) |
476 | 476 | MCFG_SCREEN_VISIBLE_AREA(8*0, 32*8-1, 2*8, 30*8-1) |
477 | MCFG_SCREEN_UPDATE_ | |
477 | MCFG_SCREEN_UPDATE_DR | |
478 | 478 | |
479 | 479 | MCFG_GFXDECODE(lvcards) |
480 | 480 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
295 | 295 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
296 | 296 | MCFG_SCREEN_SIZE(32*8, 32*8) |
297 | 297 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
298 | MCFG_SCREEN_UPDATE_ | |
298 | MCFG_SCREEN_UPDATE_DR | |
299 | 299 | |
300 | 300 | MCFG_GFXDECODE(exzisus) |
301 | 301 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
715 | 715 | |
716 | 716 | MCFG_SCREEN_ADD("lscreen", RASTER) |
717 | 717 | MCFG_SCREEN_RAW_PARAMS(TX1_PIXEL_CLOCK, TX1_HTOTAL, TX1_HBEND, TX1_HBSTART, TX1_VTOTAL, TX1_VBEND, TX1_VBSTART) |
718 | MCFG_SCREEN_UPDATE_ | |
718 | MCFG_SCREEN_UPDATE_DR | |
719 | 719 | |
720 | 720 | MCFG_SCREEN_ADD("cscreen", RASTER) |
721 | 721 | MCFG_SCREEN_RAW_PARAMS(TX1_PIXEL_CLOCK, TX1_HTOTAL, TX1_HBEND, TX1_HBSTART, TX1_VTOTAL, TX1_VBEND, TX1_VBSTART) |
722 | MCFG_SCREEN_UPDATE_ | |
722 | MCFG_SCREEN_UPDATE_DR | |
723 | 723 | |
724 | 724 | MCFG_SCREEN_ADD("rscreen", RASTER) |
725 | 725 | 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) | |
728 | 728 | |
729 | 729 | MCFG_VIDEO_START_OVERRIDE(tx1_state,tx1) |
730 | 730 | |
r17967 | r17968 | |
765 | 765 | |
766 | 766 | MCFG_SCREEN_ADD("lscreen", RASTER) |
767 | 767 | MCFG_SCREEN_RAW_PARAMS(BB_PIXEL_CLOCK, BB_HTOTAL, BB_HBEND, BB_HBSTART, BB_VTOTAL, BB_VBEND, BB_VBSTART) |
768 | MCFG_SCREEN_UPDATE_ | |
768 | MCFG_SCREEN_UPDATE_DR | |
769 | 769 | |
770 | 770 | MCFG_SCREEN_ADD("cscreen", RASTER) |
771 | 771 | MCFG_SCREEN_RAW_PARAMS(BB_PIXEL_CLOCK, BB_HTOTAL, BB_HBEND, BB_HBSTART, BB_VTOTAL, BB_VBEND, BB_VBSTART) |
772 | MCFG_SCREEN_UPDATE_ | |
772 | MCFG_SCREEN_UPDATE_DR | |
773 | 773 | |
774 | 774 | MCFG_SCREEN_ADD("rscreen", RASTER) |
775 | 775 | 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) | |
778 | 778 | |
779 | 779 | MCFG_PALETTE_LENGTH(256) |
780 | 780 | MCFG_PALETTE_INIT_OVERRIDE(tx1_state,buggyboy) |
r17967 | r17968 | |
815 | 815 | |
816 | 816 | MCFG_SCREEN_ADD("screen", RASTER) |
817 | 817 | 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) | |
820 | 820 | |
821 | 821 | MCFG_PALETTE_LENGTH(256) |
822 | 822 | MCFG_PALETTE_INIT_OVERRIDE(tx1_state,buggyboy) |
r17967 | r17968 | |
---|---|---|
472 | 472 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
473 | 473 | MCFG_SCREEN_SIZE(456, 262) |
474 | 474 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
475 | MCFG_SCREEN_UPDATE_ | |
475 | MCFG_SCREEN_UPDATE_DR | |
476 | 476 | |
477 | 477 | MCFG_GFXDECODE(pingpong) |
478 | 478 | MCFG_PALETTE_LENGTH(64*4+64*4) |
r17967 | r17968 | |
---|---|---|
152 | 152 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
153 | 153 | MCFG_SCREEN_SIZE(40*8, 32*8) |
154 | 154 | 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) | |
157 | 157 | |
158 | 158 | MCFG_GFXDECODE(ssrj) |
159 | 159 | MCFG_PALETTE_LENGTH(128) |
r17967 | r17968 | |
---|---|---|
219 | 219 | /* note: these parameters are from published specs, not derived */ |
220 | 220 | /* the board uses an SOS-2 chip to generate video signals */ |
221 | 221 | MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz, 456*2, 0, 320*2, 262, 0, 240) |
222 | MCFG_SCREEN_UPDATE_ | |
222 | MCFG_SCREEN_UPDATE_DR | |
223 | 223 | |
224 | 224 | MCFG_VIDEO_START_OVERRIDE(blstroid_state,blstroid) |
225 | 225 |
r17967 | r17968 | |
---|---|---|
204 | 204 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
205 | 205 | MCFG_SCREEN_SIZE(36*8, 32*8) |
206 | 206 | MCFG_SCREEN_VISIBLE_AREA(0, 36*8-1, 2*8, 30*8-1) |
207 | MCFG_SCREEN_UPDATE_ | |
207 | MCFG_SCREEN_UPDATE_DR | |
208 | 208 | |
209 | 209 | MCFG_GFXDECODE(gotya) |
210 | 210 | MCFG_PALETTE_LENGTH(16*4) |
r17967 | r17968 | |
---|---|---|
236 | 236 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
237 | 237 | MCFG_SCREEN_SIZE(32*8, 32*8) |
238 | 238 | 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) | |
241 | 241 | |
242 | 242 | MCFG_PALETTE_LENGTH(512) |
243 | 243 | MCFG_PALETTE_INIT_OVERRIDE(cchance_state,arknoid2) |
r17967 | r17968 | |
---|---|---|
388 | 388 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
389 | 389 | MCFG_SCREEN_SIZE(36*8, 28*8) |
390 | 390 | MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1) |
391 | MCFG_SCREEN_UPDATE_ | |
391 | MCFG_SCREEN_UPDATE_DR | |
392 | 392 | |
393 | 393 | MCFG_GFXDECODE(retofinv) |
394 | 394 | MCFG_PALETTE_LENGTH(256*2+64*16+64*16) |
r17967 | r17968 | |
---|---|---|
39 | 39 | DECLARE_WRITE8_MEMBER(dotrikun_color_w); |
40 | 40 | virtual void machine_start(); |
41 | 41 | virtual void machine_reset(); |
42 | UINT32 screen_update_dotrikun(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
42 | 43 | }; |
43 | 44 | |
44 | 45 | |
r17967 | r17968 | |
62 | 63 | } |
63 | 64 | |
64 | 65 | |
65 | stat | |
66 | UINT32 dotrikun_state::screen | |
66 | 67 | { |
67 | dotrikun_state *state = screen.machine().driver_data<dotrikun_state>(); | |
68 | 68 | int x,y,i; |
69 | 69 | |
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)); | |
72 | 72 | |
73 | 73 | for(y = (cliprect.min_y & ~1); y < cliprect.max_y; y+=2) |
74 | 74 | { |
75 | 75 | for (x = 0; x < 256; x+=16) |
76 | 76 | { |
77 | UINT8 data = | |
77 | UINT8 data = | |
78 | 78 | |
79 | 79 | for (i = 0; i < 8; i++) |
80 | 80 | { |
r17967 | r17968 | |
161 | 161 | /* video hardware */ |
162 | 162 | MCFG_SCREEN_ADD("screen", RASTER) |
163 | 163 | 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_ | |
164 | MCFG_SCREEN_UPDATE_DR | |
165 | 165 | |
166 | 166 | /* sound hardware */ |
167 | 167 | MACHINE_CONFIG_END |
r17967 | r17968 | |
---|---|---|
658 | 658 | MCFG_SCREEN_REFRESH_RATE(60) |
659 | 659 | MCFG_SCREEN_SIZE(32*8, 30*8) |
660 | 660 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
661 | MCFG_SCREEN_UPDATE_ | |
661 | MCFG_SCREEN_UPDATE_DR | |
662 | 662 | |
663 | 663 | MCFG_GFXDECODE(meadows) |
664 | 664 | MCFG_PALETTE_LENGTH(2) |
r17967 | r17968 | |
688 | 688 | MCFG_SCREEN_REFRESH_RATE(60) |
689 | 689 | MCFG_SCREEN_SIZE(32*8, 32*8) |
690 | 690 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 24*8-1) |
691 | MCFG_SCREEN_UPDATE_ | |
691 | MCFG_SCREEN_UPDATE_DR | |
692 | 692 | |
693 | 693 | MCFG_GFXDECODE(minferno) |
694 | 694 | MCFG_PALETTE_LENGTH(2) |
r17967 | r17968 | |
715 | 715 | MCFG_SCREEN_REFRESH_RATE(60) |
716 | 716 | MCFG_SCREEN_SIZE(32*8, 30*8) |
717 | 717 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
718 | MCFG_SCREEN_UPDATE_ | |
718 | MCFG_SCREEN_UPDATE_DR | |
719 | 719 | |
720 | 720 | MCFG_GFXDECODE(meadows) |
721 | 721 | MCFG_PALETTE_LENGTH(2) |
r17967 | r17968 | |
---|---|---|
245 | 245 | virtual void video_start(); |
246 | 246 | virtual void palette_init(); |
247 | 247 | DECLARE_MACHINE_START(sureshot); |
248 | UINT32 screen_update_sms(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
248 | 249 | }; |
249 | 250 | |
250 | 251 | |
r17967 | r17968 | |
480 | 481 | state_save_register_global_bitmap(machine(), &m_bitmap); |
481 | 482 | } |
482 | 483 | |
483 | static | |
484 | UINT32 smsmfg_state::screen_update_sms(screen_device &screen, bitmap_ind | |
484 | 485 | { |
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); | |
487 | 487 | return 0; |
488 | 488 | } |
489 | 489 | |
r17967 | r17968 | |
578 | 578 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
579 | 579 | MCFG_SCREEN_SIZE(0x1b0, 0x100) |
580 | 580 | MCFG_SCREEN_VISIBLE_AREA(0, 0x1af, 0, 0xff) |
581 | MCFG_SCREEN_UPDATE_ | |
581 | MCFG_SCREEN_UPDATE_DR | |
582 | 582 | |
583 | 583 | MCFG_PALETTE_LENGTH(8) |
584 | 584 |
r17967 | r17968 | |
---|---|---|
58 | 58 | TILE_GET_INFO_MEMBER(get_fg_tile_info); |
59 | 59 | virtual void machine_reset(); |
60 | 60 | virtual void video_start(); |
61 | UINT32 screen_update_spoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
61 | 62 | }; |
62 | 63 | |
63 | 64 | WRITE8_MEMBER(spoker_state::bg_tile_w) |
r17967 | r17968 | |
101 | 102 | m_fg_tilemap->set_transparent_pen(0); |
102 | 103 | } |
103 | 104 | |
104 | static | |
105 | UINT32 spoker_state::screen_update_spoker(screen_device &screen, bitmap_ind | |
105 | 106 | { |
106 | spoker_state *state = screen.machine().driver_data<spoker_state>(); | |
107 | 107 | |
108 | 108 | 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); | |
111 | 111 | return 0; |
112 | 112 | } |
113 | 113 | |
r17967 | r17968 | |
543 | 543 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
544 | 544 | MCFG_SCREEN_SIZE(512, 256) |
545 | 545 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-16-1) |
546 | MCFG_SCREEN_UPDATE_ | |
546 | MCFG_SCREEN_UPDATE_DR | |
547 | 547 | |
548 | 548 | MCFG_GFXDECODE(spoker) |
549 | 549 | MCFG_PALETTE_LENGTH(0x400) |
r17967 | r17968 | |
---|---|---|
1179 | 1179 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1180 | 1180 | MCFG_SCREEN_SIZE(464, 256-16) |
1181 | 1181 | MCFG_SCREEN_VISIBLE_AREA(16, 464-1, 8, 256-1-24) |
1182 | MCFG_SCREEN_UPDATE_ | |
1182 | MCFG_SCREEN_UPDATE_DR | |
1183 | 1183 | |
1184 | 1184 | MCFG_GFXDECODE(srmp2) |
1185 | 1185 | MCFG_PALETTE_LENGTH(1024) /* sprites only */ |
r17967 | r17968 | |
1220 | 1220 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1221 | 1221 | MCFG_SCREEN_SIZE(400, 256-16) |
1222 | 1222 | MCFG_SCREEN_VISIBLE_AREA(16, 400-1, 8, 256-1-24) |
1223 | MCFG_SCREEN_UPDATE_ | |
1223 | MCFG_SCREEN_UPDATE_DR | |
1224 | 1224 | |
1225 | 1225 | MCFG_GFXDECODE(srmp3) |
1226 | 1226 | MCFG_PALETTE_LENGTH(512) /* sprites only */ |
r17967 | r17968 | |
1270 | 1270 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1271 | 1271 | MCFG_SCREEN_SIZE(400, 256-16) |
1272 | 1272 | MCFG_SCREEN_VISIBLE_AREA(16, 400-1, 0, 256-1-16) |
1273 | MCFG_SCREEN_UPDATE_ | |
1273 | MCFG_SCREEN_UPDATE_DR | |
1274 | 1274 | |
1275 | 1275 | MCFG_GFXDECODE(srmp3) |
1276 | 1276 | MCFG_PALETTE_LENGTH(512) /* sprites only */ |
r17967 | r17968 | |
---|---|---|
330 | 330 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
331 | 331 | MCFG_SCREEN_SIZE(64*8, 32*8) |
332 | 332 | MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 0*8, 30*8-1 ) |
333 | MCFG_SCREEN_UPDATE_ | |
333 | MCFG_SCREEN_UPDATE_DR | |
334 | 334 | |
335 | 335 | MCFG_GFXDECODE(ohmygod) |
336 | 336 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
605 | 605 | // give a theoretical refresh rate of 59.1856Hz while the measured |
606 | 606 | // rate on a SAR board is 59.16Hz. |
607 | 607 | MCFG_SCREEN_RAW_PARAMS(XTAL_24MHz/4, 384, 0, 256, 264, 16, 240) |
608 | MCFG_SCREEN_UPDATE_ | |
608 | MCFG_SCREEN_UPDATE_DR | |
609 | 609 | |
610 | 610 | MCFG_GFXDECODE(pow) |
611 | 611 | MCFG_PALETTE_LENGTH(0x800) |
r17967 | r17968 | |
---|---|---|
265 | 265 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
266 | 266 | MCFG_SCREEN_SIZE(32*8, 32*8) |
267 | 267 | MCFG_SCREEN_VISIBLE_AREA(0*8, 31*8-1, 2*8, 30*8-1) |
268 | MCFG_SCREEN_UPDATE_ | |
268 | MCFG_SCREEN_UPDATE_DR | |
269 | 269 | |
270 | 270 | MCFG_GFXDECODE(aeroboto) |
271 | 271 |
r17967 | r17968 | |
---|---|---|
657 | 657 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
658 | 658 | MCFG_SCREEN_SIZE(32*8, 32*8) |
659 | 659 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
660 | MCFG_SCREEN_UPDATE_ | |
660 | MCFG_SCREEN_UPDATE_DR | |
661 | 661 | |
662 | 662 | MCFG_GFXDECODE(firetrap) |
663 | 663 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
697 | 697 | MCFG_GFXDECODE(firetrap) |
698 | 698 | MCFG_PALETTE_LENGTH(256) |
699 | 699 | |
700 | MCFG_SCREEN_UPDATE_ | |
700 | MCFG_SCREEN_UPDATE_DR | |
701 | 701 | |
702 | 702 | /* sound hardware */ |
703 | 703 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
---|---|---|
468 | 468 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
469 | 469 | MCFG_SCREEN_SIZE(0x100, 0xf8) |
470 | 470 | MCFG_SCREEN_VISIBLE_AREA(0, 0x100-1, 0, 0xf8-1) |
471 | MCFG_SCREEN_UPDATE_ | |
471 | MCFG_SCREEN_UPDATE_DR | |
472 | 472 | |
473 | 473 | MCFG_GFXDECODE(thedeep) |
474 | 474 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
---|---|---|
384 | 384 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
385 | 385 | MCFG_SCREEN_SIZE(32*16, 32*16) |
386 | 386 | MCFG_SCREEN_VISIBLE_AREA(0*16, 20*16-1, 0*16, 15*16-1) |
387 | MCFG_SCREEN_UPDATE_ | |
387 | MCFG_SCREEN_UPDATE_DR | |
388 | 388 | |
389 | 389 | MCFG_GFXDECODE(oneshot) |
390 | 390 | MCFG_PALETTE_LENGTH(0x400) |
r17967 | r17968 | |
406 | 406 | |
407 | 407 | /* video hardware */ |
408 | 408 | MCFG_SCREEN_MODIFY("screen") |
409 | MCFG_SCREEN_UPDATE_ | |
409 | MCFG_SCREEN_UPDATE_DR | |
410 | 410 | MACHINE_CONFIG_END |
411 | 411 | |
412 | 412 |
r17967 | r17968 | |
---|---|---|
201 | 201 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
202 | 202 | MCFG_SCREEN_SIZE(64*8, 32*8) |
203 | 203 | MCFG_SCREEN_VISIBLE_AREA(1*8, 47*8-1, 0*8, 30*8-1) |
204 | MCFG_SCREEN_UPDATE_ | |
204 | MCFG_SCREEN_UPDATE_DR | |
205 | 205 | |
206 | 206 | MCFG_GFXDECODE(stlforce) |
207 | 207 | MCFG_PALETTE_LENGTH(0x800) |
r17967 | r17968 | |
---|---|---|
205 | 205 | virtual void machine_reset(); |
206 | 206 | DECLARE_VIDEO_START(zr107); |
207 | 207 | 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); | |
208 | 210 | }; |
209 | 211 | |
210 | 212 | |
r17967 | r17968 | |
218 | 220 | } |
219 | 221 | |
220 | 222 | |
221 | static | |
223 | UINT32 zr107_state::screen_update_jetwave(screen_device &screen, bitmap_rgb | |
222 | 224 | { |
223 | zr107_state *state = screen.machine().driver_data<zr107_state>(); | |
224 | 225 | device_t *k001604 = screen.machine().device("k001604"); |
225 | 226 | |
226 | 227 | bitmap.fill(screen.machine().pens[0], cliprect); |
r17967 | r17968 | |
229 | 230 | |
230 | 231 | k001604_draw_front_layer(k001604, bitmap, cliprect); |
231 | 232 | |
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); | |
234 | 235 | |
235 | 236 | sharc_set_flag_input(screen.machine().device("dsp"), 1, ASSERT_LINE); |
236 | 237 | return 0; |
r17967 | r17968 | |
271 | 272 | K001005_init(machine()); |
272 | 273 | } |
273 | 274 | |
274 | stat | |
275 | UINT32 zr107_state::screen | |
275 | 276 | { |
276 | zr107_state *state = screen.machine().driver_data<zr107_state>(); | |
277 | 277 | device_t *k056832 = screen.machine().device("k056832"); |
278 | 278 | bitmap.fill(screen.machine().pens[0], cliprect); |
279 | 279 | |
r17967 | r17968 | |
281 | 281 | K001005_draw(bitmap, cliprect); |
282 | 282 | k056832_tilemap_draw(k056832, bitmap, cliprect, 0, 0, 0); |
283 | 283 | |
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); | |
286 | 286 | |
287 | 287 | sharc_set_flag_input(screen.machine().device("dsp"), 1, ASSERT_LINE); |
288 | 288 | return 0; |
r17967 | r17968 | |
751 | 751 | MCFG_SCREEN_REFRESH_RATE(60) |
752 | 752 | MCFG_SCREEN_SIZE(64*8, 48*8) |
753 | 753 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 48*8-1) |
754 | MCFG_SCREEN_UPDATE_ | |
754 | MCFG_SCREEN_UPDATE_DR | |
755 | 755 | |
756 | 756 | MCFG_PALETTE_LENGTH(65536) |
757 | 757 | |
r17967 | r17968 | |
807 | 807 | MCFG_SCREEN_REFRESH_RATE(60) |
808 | 808 | MCFG_SCREEN_SIZE(64*8, 48*8) |
809 | 809 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 48*8-1) |
810 | MCFG_SCREEN_UPDATE_ | |
810 | MCFG_SCREEN_UPDATE_DR | |
811 | 811 | |
812 | 812 | MCFG_PALETTE_LENGTH(65536) |
813 | 813 |
r17967 | r17968 | |
---|---|---|
122 | 122 | DECLARE_WRITE8_MEMBER(flipjack_portc_w); |
123 | 123 | virtual void machine_start(); |
124 | 124 | virtual void palette_init(); |
125 | UINT32 screen_update_flipjack(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
125 | 126 | }; |
126 | 127 | |
127 | 128 | |
r17967 | r17968 | |
147 | 148 | } |
148 | 149 | |
149 | 150 | |
150 | stat | |
151 | UINT32 flipjack_state::screen | |
151 | 152 | { |
152 | flipjack_state *state = screen.machine().driver_data<flipjack_state>(); | |
153 | 153 | int x,y,count; |
154 | 154 | |
155 | 155 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
156 | 156 | |
157 | 157 | // draw playfield |
158 | if ( | |
158 | if ( | |
159 | 159 | { |
160 | const UINT8 *blit_data = | |
160 | const UINT8 *blit_data = | |
161 | 161 | |
162 | 162 | count = 0; |
163 | 163 | |
r17967 | r17968 | |
194 | 194 | for (x=0;x<32;x++) |
195 | 195 | { |
196 | 196 | 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; | |
199 | 199 | |
200 | 200 | drawgfx_transpen(bitmap, cliprect, gfx, tile, color, 0, 0, x*8, y*8, 0); |
201 | 201 | } |
202 | 202 | } |
203 | 203 | |
204 | 204 | // draw framebuffer |
205 | if ( | |
205 | if ( | |
206 | 206 | { |
207 | 207 | count = 0; |
208 | 208 | |
r17967 | r17968 | |
213 | 213 | UINT32 pen,color; |
214 | 214 | int xi; |
215 | 215 | |
216 | pen = ( | |
216 | pen = ( | |
217 | 217 | |
218 | 218 | for(xi=0;xi<8;xi++) |
219 | 219 | { |
r17967 | r17968 | |
491 | 491 | /* video hardware */ |
492 | 492 | MCFG_SCREEN_ADD("screen", RASTER) |
493 | 493 | MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK, 0x188, 0, 0x100, 0x100, 0, 0xc0) // from crtc |
494 | MCFG_SCREEN_UPDATE_ | |
494 | MCFG_SCREEN_UPDATE_DR | |
495 | 495 | |
496 | 496 | MCFG_MC6845_ADD("crtc", HD6845, VIDEO_CLOCK/8, mc6845_intf) |
497 | 497 |
r17967 | r17968 | |
---|---|---|
85 | 85 | DECLARE_WRITE8_MEMBER(dominob_d008_w); |
86 | 86 | DECLARE_READ8_MEMBER(dominob_unk_port02_r); |
87 | 87 | virtual void video_start(); |
88 | UINT32 screen_update_dominob(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
88 | 89 | }; |
89 | 90 | |
90 | 91 | void dominob_state::video_start() |
r17967 | r17968 | |
122 | 123 | } |
123 | 124 | |
124 | 125 | |
125 | stat | |
126 | UINT32 dominob_state::screen | |
126 | 127 | { |
127 | dominob_state *state = screen.machine().driver_data<dominob_state>(); | |
128 | 128 | int x,y; |
129 | 129 | int index = 0; |
130 | 130 | |
r17967 | r17968 | |
136 | 136 | drawgfx_opaque(bitmap, |
137 | 137 | cliprect, |
138 | 138 | 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, | |
141 | 141 | 0, 0, |
142 | 142 | x * 32, y * 32); |
143 | 143 | index += 2; |
r17967 | r17968 | |
151 | 151 | drawgfx_transpen( bitmap, |
152 | 152 | cliprect, |
153 | 153 | 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), | |
156 | 156 | 0, 0, |
157 | 157 | x * 8, y * 8,0); |
158 | 158 | } |
r17967 | r17968 | |
307 | 307 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
308 | 308 | MCFG_SCREEN_SIZE(32*8, 32*8) |
309 | 309 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 32*8-1) |
310 | MCFG_SCREEN_UPDATE_ | |
310 | MCFG_SCREEN_UPDATE_DR | |
311 | 311 | |
312 | 312 | MCFG_GFXDECODE(dominob) |
313 | 313 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
---|---|---|
66 | 66 | virtual void machine_start(); |
67 | 67 | virtual void machine_reset(); |
68 | 68 | virtual void video_start(); |
69 | UINT32 screen_update_sbrkout(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
69 | 70 | }; |
70 | 71 | |
71 | 72 | |
r17967 | r17968 | |
327 | 328 | * |
328 | 329 | *************************************/ |
329 | 330 | |
330 | stat | |
331 | UINT32 sbrkout_state::screen | |
331 | 332 | { |
332 | sbrkout_state *state = screen.machine().driver_data<sbrkout_state>(); | |
333 | UINT8 *videoram = state->m_videoram; | |
333 | UINT8 *videoram = m_videoram; | |
334 | 334 | int ball; |
335 | 335 | |
336 | | |
336 | | |
337 | 337 | |
338 | 338 | for (ball = 2; ball >= 0; ball--) |
339 | 339 | { |
r17967 | r17968 | |
514 | 514 | |
515 | 515 | MCFG_SCREEN_ADD("screen", RASTER) |
516 | 516 | MCFG_SCREEN_RAW_PARAMS(MAIN_CLOCK/2, 384, 0, 256, 262, 0, 224) |
517 | MCFG_SCREEN_UPDATE_ | |
517 | MCFG_SCREEN_UPDATE_DR | |
518 | 518 | |
519 | 519 | MCFG_PALETTE_INIT(black_and_white) |
520 | 520 |
r17967 | r17968 | |
---|---|---|
347 | 347 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
348 | 348 | MCFG_SCREEN_SIZE(32*8, 32*8) |
349 | 349 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
350 | MCFG_SCREEN_UPDATE_ | |
350 | MCFG_SCREEN_UPDATE_DR | |
351 | 351 | |
352 | 352 | MCFG_GFXDECODE(bladestl) |
353 | 353 | MCFG_PALETTE_LENGTH(32 + 16*16) |
r17967 | r17968 | |
---|---|---|
254 | 254 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
255 | 255 | MCFG_SCREEN_SIZE(64*8, 32*8) |
256 | 256 | MCFG_SCREEN_VISIBLE_AREA(10*8, (64-10)*8-1, 1*8, 31*8-1 ) |
257 | MCFG_SCREEN_UPDATE_ | |
257 | MCFG_SCREEN_UPDATE_DR | |
258 | 258 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising) |
259 | 259 | |
260 | 260 | MCFG_GFXDECODE(srumbler) |
r17967 | r17968 | |
---|---|---|
981 | 981 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
982 | 982 | MCFG_SCREEN_SIZE(32*16, 30*16) |
983 | 983 | MCFG_SCREEN_VISIBLE_AREA(0, 32*16-1, 0, 30*16-1) |
984 | MCFG_SCREEN_UPDATE_ | |
984 | MCFG_SCREEN_UPDATE_DR | |
985 | 985 | |
986 | 986 | MCFG_GFXDECODE(zwackery) |
987 | 987 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
1012 | 1012 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1013 | 1013 | MCFG_SCREEN_SIZE(32*16, 30*16) |
1014 | 1014 | MCFG_SCREEN_VISIBLE_AREA(0, 32*16-1, 0, 30*16-1) |
1015 | MCFG_SCREEN_UPDATE_ | |
1015 | MCFG_SCREEN_UPDATE_DR | |
1016 | 1016 | |
1017 | 1017 | MCFG_GFXDECODE(mcr68) |
1018 | 1018 | MCFG_PALETTE_LENGTH(64) |
r17967 | r17968 | |
---|---|---|
298 | 298 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
299 | 299 | MCFG_SCREEN_SIZE(32*8, 32*8) |
300 | 300 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
301 | MCFG_SCREEN_UPDATE_ | |
301 | MCFG_SCREEN_UPDATE_DR | |
302 | 302 | |
303 | 303 | MCFG_GFXDECODE(pbaction) |
304 | 304 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
2366 | 2366 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2367 | 2367 | MCFG_SCREEN_SIZE((124+1)*4, (30+1)*8) /* Taken from MC6845 init, registers 00 & 04. Normally programmed with (value-1) */ |
2368 | 2368 | 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_ | |
2369 | MCFG_SCREEN_UPDATE_DR | |
2370 | 2370 | |
2371 | 2371 | MCFG_GFXDECODE(fw1stpal) |
2372 | 2372 |
r17967 | r17968 | |
---|---|---|
355 | 355 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) |
356 | 356 | MCFG_SCREEN_SIZE(64*8, 40*8) |
357 | 357 | MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 0*8, 32*8-1 ) |
358 | MCFG_SCREEN_UPDATE_ | |
358 | MCFG_SCREEN_UPDATE_DR | |
359 | 359 | |
360 | 360 | // MCFG_GFXDECODE(overdriv) |
361 | 361 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
---|---|---|
37 | 37 | DECLARE_WRITE16_MEMBER(jackpool_io_w); |
38 | 38 | DECLARE_DRIVER_INIT(jackpool); |
39 | 39 | virtual void video_start(); |
40 | UINT32 screen_update_jackpool(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
40 | 41 | }; |
41 | 42 | |
42 | 43 | |
r17967 | r17968 | |
44 | 45 | { |
45 | 46 | } |
46 | 47 | |
47 | stat | |
48 | UINT32 jackpool_state::screen | |
48 | 49 | { |
49 | jackpool_state *state = screen.machine().driver_data<jackpool_state>(); | |
50 | 50 | gfx_element *gfx = screen.machine().gfx[0]; |
51 | 51 | int count;// = 0x00000/2; |
52 | 52 | |
53 | 53 | int y,x; |
54 | 54 | |
55 | 55 | { |
56 | count = | |
56 | count = | |
57 | 57 | for (y=0;y<32;y++) |
58 | 58 | { |
59 | 59 | for (x=0;x<64;x++) |
60 | 60 | { |
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; | |
63 | 63 | |
64 | 64 | drawgfx_opaque(bitmap,cliprect,gfx,tile,attr,0,0,x*8,y*8); |
65 | 65 | count++; |
66 | 66 | } |
67 | 67 | } |
68 | 68 | |
69 | count = | |
69 | count = | |
70 | 70 | for (y=0;y<32;y++) |
71 | 71 | { |
72 | 72 | for (x=0;x<64;x++) |
73 | 73 | { |
74 | int tile = ( | |
74 | int tile = ( | |
75 | 75 | |
76 | 76 | if(tile != 0) |
77 | 77 | { |
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); | |
80 | 80 | |
81 | 81 | drawgfx_transpen(bitmap,cliprect,gfx,tile,attr,0,0,x*8,y*8,(t_pen) ? 0 : -1); |
82 | 82 | } |
r17967 | r17968 | |
266 | 266 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) |
267 | 267 | MCFG_SCREEN_SIZE(64*8, 64*8) |
268 | 268 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1) |
269 | MCFG_SCREEN_UPDATE_ | |
269 | MCFG_SCREEN_UPDATE_DR | |
270 | 270 | |
271 | 271 | MCFG_EEPROM_93C46_ADD("eeprom") |
272 | 272 |
r17967 | r17968 | |
---|---|---|
279 | 279 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
280 | 280 | MCFG_SCREEN_SIZE(32*8, 32*8) |
281 | 281 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) |
282 | MCFG_SCREEN_UPDATE_ | |
282 | MCFG_SCREEN_UPDATE_DR | |
283 | 283 | |
284 | 284 | MCFG_GFXDECODE(spcforce) |
285 | 285 | MCFG_PALETTE_LENGTH(sizeof(colortable_source) / sizeof(colortable_source[0])) |
r17967 | r17968 | |
---|---|---|
686 | 686 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
687 | 687 | MCFG_SCREEN_SIZE(32*8, 32*8) |
688 | 688 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
689 | MCFG_SCREEN_UPDATE_ | |
689 | MCFG_SCREEN_UPDATE_DR | |
690 | 690 | |
691 | 691 | MCFG_GFXDECODE(gsword) |
692 | 692 | MCFG_PALETTE_LENGTH(64*4+64*4) |
r17967 | r17968 | |
729 | 729 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
730 | 730 | MCFG_SCREEN_SIZE(32*8, 32*8) |
731 | 731 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
732 | MCFG_SCREEN_UPDATE_ | |
732 | MCFG_SCREEN_UPDATE_DR | |
733 | 733 | |
734 | 734 | MCFG_GFXDECODE(gsword) |
735 | 735 | MCFG_PALETTE_LENGTH(64*4+64*4) |
r17967 | r17968 | |
---|---|---|
275 | 275 | virtual void machine_start(); |
276 | 276 | virtual void machine_reset(); |
277 | 277 | virtual void video_start(); |
278 | UINT32 screen_update_nmg5(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
278 | 279 | }; |
279 | 280 | |
280 | 281 | |
r17967 | r17968 | |
884 | 885 | } |
885 | 886 | |
886 | 887 | |
887 | static | |
888 | UINT32 nmg5_state::screen_update_nmg5(screen_device &screen, bitmap_ind | |
888 | 889 | { |
889 | nmg5_state *state = screen.machine().driver_data<nmg5_state>(); | |
890 | 890 | |
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); | |
895 | 895 | |
896 | | |
896 | | |
897 | 897 | |
898 | if ( | |
898 | if ( | |
899 | 899 | { |
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); | |
902 | 902 | draw_bitmap(screen.machine(), bitmap); |
903 | 903 | } |
904 | else if ( | |
904 | else if ( | |
905 | 905 | { |
906 | 906 | 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); | |
909 | 909 | } |
910 | else if ( | |
910 | else if ( | |
911 | 911 | { |
912 | screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, | |
912 | screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, | |
913 | 913 | draw_bitmap(screen.machine(), bitmap); |
914 | | |
914 | | |
915 | 915 | } |
916 | else if ( | |
916 | else if ( | |
917 | 917 | { |
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); | |
920 | 920 | draw_bitmap(screen.machine(), bitmap); |
921 | 921 | } |
922 | else if ( | |
922 | else if ( | |
923 | 923 | { |
924 | | |
924 | | |
925 | 925 | draw_bitmap(screen.machine(), bitmap); |
926 | screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, | |
926 | screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, | |
927 | 927 | } |
928 | 928 | return 0; |
929 | 929 | } |
r17967 | r17968 | |
1023 | 1023 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1024 | 1024 | MCFG_SCREEN_SIZE(320, 256) |
1025 | 1025 | MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) |
1026 | MCFG_SCREEN_UPDATE_ | |
1026 | MCFG_SCREEN_UPDATE_DR | |
1027 | 1027 | |
1028 | 1028 | MCFG_GFXDECODE(nmg5) |
1029 | 1029 | MCFG_PALETTE_LENGTH(0x400) |
r17967 | r17968 | |
---|---|---|
385 | 385 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
386 | 386 | MCFG_SCREEN_SIZE(64*8, 32*8) |
387 | 387 | MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 ) /* correct, same issue of TMNT2 */ |
388 | MCFG_SCREEN_UPDATE_ | |
388 | MCFG_SCREEN_UPDATE_DR | |
389 | 389 | MCFG_PALETTE_LENGTH(2048) |
390 | 390 | |
391 | 391 | MCFG_K052109_ADD("k052109", xmen_k052109_intf) |
r17967 | r17968 | |
437 | 437 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
438 | 438 | MCFG_SCREEN_SIZE(64*8, 32*8) |
439 | 439 | MCFG_SCREEN_VISIBLE_AREA(12*8, 48*8-1, 2*8, 30*8-1) |
440 | MCFG_SCREEN_UPDATE_ | |
440 | MCFG_SCREEN_UPDATE_DR | |
441 | 441 | |
442 | 442 | MCFG_SCREEN_ADD("rscreen", RASTER) |
443 | 443 | MCFG_SCREEN_REFRESH_RATE(60) |
444 | 444 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
445 | 445 | MCFG_SCREEN_SIZE(64*8, 32*8) |
446 | 446 | 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) | |
449 | 449 | |
450 | 450 | MCFG_VIDEO_START_OVERRIDE(xmen_state,xmen6p) |
451 | 451 |
r17967 | r17968 | |
---|---|---|
345 | 345 | /* video hardware */ |
346 | 346 | MCFG_SCREEN_ADD("screen", RASTER) |
347 | 347 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
348 | MCFG_SCREEN_UPDATE_ | |
348 | MCFG_SCREEN_UPDATE_DR | |
349 | 349 | MCFG_GFXDECODE(mario) |
350 | 350 | MCFG_PALETTE_LENGTH(512) |
351 | 351 |
r17967 | r17968 | |
---|---|---|
318 | 318 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
319 | 319 | MCFG_SCREEN_SIZE(512, 256) |
320 | 320 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 8, 248-1) |
321 | MCFG_SCREEN_UPDATE_ | |
321 | MCFG_SCREEN_UPDATE_DR | |
322 | 322 | MCFG_PALETTE_LENGTH(256) |
323 | 323 | |
324 | 324 |
r17967 | r17968 | |
---|---|---|
42 | 42 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
43 | 43 | virtual void machine_reset(); |
44 | 44 | virtual void video_start(); |
45 | UINT32 screen_update_wink(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
45 | 46 | }; |
46 | 47 | |
47 | 48 | |
r17967 | r17968 | |
65 | 66 | 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); |
66 | 67 | } |
67 | 68 | |
68 | static | |
69 | UINT32 wink_state::screen_update_wink(screen_device &screen, bitmap_ind | |
69 | 70 | { |
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); | |
72 | 72 | return 0; |
73 | 73 | } |
74 | 74 | |
r17967 | r17968 | |
360 | 360 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
361 | 361 | MCFG_SCREEN_SIZE(32*8, 32*8) |
362 | 362 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) |
363 | MCFG_SCREEN_UPDATE_ | |
363 | MCFG_SCREEN_UPDATE_DR | |
364 | 364 | |
365 | 365 | MCFG_GFXDECODE(wink) |
366 | 366 | MCFG_PALETTE_LENGTH(16) |
r17967 | r17968 | |
---|---|---|
564 | 564 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2037) /* 16.3ms * 1/8 = 2037.5. Is it 1/8th or 3/32nds? (1528?) */) |
565 | 565 | MCFG_SCREEN_SIZE(38*8, 32*8) |
566 | 566 | MCFG_SCREEN_VISIBLE_AREA(0*8, 38*8-1, 1*8, 31*8-1) |
567 | MCFG_SCREEN_UPDATE_ | |
567 | MCFG_SCREEN_UPDATE_DR | |
568 | 568 | |
569 | 569 | MCFG_GFXDECODE(atarifb) |
570 | 570 | MCFG_PALETTE_LENGTH(12) |
r17967 | r17968 | |
595 | 595 | |
596 | 596 | /* video hardware */ |
597 | 597 | MCFG_SCREEN_MODIFY("screen") |
598 | MCFG_SCREEN_UPDATE_ | |
598 | MCFG_SCREEN_UPDATE_DR | |
599 | 599 | |
600 | 600 | /* sound hardware */ |
601 | 601 | MCFG_SOUND_REPLACE("discrete", DISCRETE, 0) |
r17967 | r17968 | |
613 | 613 | /* video hardware */ |
614 | 614 | MCFG_SCREEN_MODIFY("screen") |
615 | 615 | MCFG_SCREEN_VISIBLE_AREA(0*8, 38*8-1, 2*8, 32*8-1) |
616 | MCFG_SCREEN_UPDATE_ | |
616 | MCFG_SCREEN_UPDATE_DR | |
617 | 617 | MCFG_GFXDECODE(soccer) |
618 | 618 | MACHINE_CONFIG_END |
619 | 619 |
r17967 | r17968 | |
---|---|---|
291 | 291 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
292 | 292 | MCFG_SCREEN_SIZE(64*8, 32*8) |
293 | 293 | MCFG_SCREEN_VISIBLE_AREA(6*8+2, 64*8-1-(10*8)-2, 2*8, 32*8-1-(2*8)) |
294 | MCFG_SCREEN_UPDATE_ | |
294 | MCFG_SCREEN_UPDATE_DR | |
295 | 295 | |
296 | 296 | MCFG_GFXDECODE(silkroad) |
297 | 297 | MCFG_PALETTE_LENGTH(0x2000) |
r17967 | r17968 | |
---|---|---|
663 | 663 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
664 | 664 | MCFG_SCREEN_SIZE(64*8, 32*8) |
665 | 665 | MCFG_SCREEN_VISIBLE_AREA(216, 504-1, 16, 240-1) |
666 | MCFG_SCREEN_UPDATE_ | |
666 | MCFG_SCREEN_UPDATE_DR | |
667 | 667 | |
668 | 668 | MCFG_PALETTE_LENGTH(7168+1) |
669 | 669 |
r17967 | r17968 | |
---|---|---|
503 | 503 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
504 | 504 | MCFG_SCREEN_SIZE(32*8, 32*8) |
505 | 505 | MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 1*8, 31*8-1) |
506 | MCFG_SCREEN_UPDATE_ | |
506 | MCFG_SCREEN_UPDATE_DR | |
507 | 507 | |
508 | 508 | MCFG_GFXDECODE(exprraid) |
509 | 509 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
391 | 391 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
392 | 392 | MCFG_SCREEN_SIZE(32*8, 32*8) |
393 | 393 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
394 | MCFG_SCREEN_UPDATE_ | |
394 | MCFG_SCREEN_UPDATE_DR | |
395 | 395 | |
396 | 396 | MCFG_GFXDECODE(tecmo16) |
397 | 397 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
---|---|---|
63 | 63 | DECLARE_DRIVER_INIT(drill); |
64 | 64 | DECLARE_MACHINE_START(drill); |
65 | 65 | DECLARE_MACHINE_RESET(drill); |
66 | ||
67 | 66 | }; |
68 | 67 | |
69 | 68 | |
r17967 | r17968 | |
458 | 457 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* inaccurate, same as Taito F3? (needs screen raw params anyway) */ |
459 | 458 | MCFG_SCREEN_SIZE(40*8+48*2, 32*8) |
460 | 459 | 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) | |
463 | 462 | |
464 | 463 | MCFG_PALETTE_LENGTH(0x2000) |
465 | 464 |
r17967 | r17968 | |
---|---|---|
431 | 431 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
432 | 432 | MCFG_SCREEN_SIZE(36*8, 28*8) |
433 | 433 | MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1) |
434 | MCFG_SCREEN_UPDATE_ | |
434 | MCFG_SCREEN_UPDATE_DR | |
435 | 435 | |
436 | 436 | MCFG_GFXDECODE(naughtyb) |
437 | 437 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
463 | 463 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
464 | 464 | MCFG_SCREEN_SIZE(36*8, 28*8) |
465 | 465 | MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1) |
466 | MCFG_SCREEN_UPDATE_ | |
466 | MCFG_SCREEN_UPDATE_DR | |
467 | 467 | |
468 | 468 | MCFG_GFXDECODE(naughtyb) |
469 | 469 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
348 | 348 | DECLARE_WRITE8_MEMBER(ay_port_b_out); |
349 | 349 | virtual void video_start(); |
350 | 350 | 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); | |
351 | 353 | }; |
352 | 354 | |
353 | 355 | |
r17967 | r17968 | |
459 | 461 | m_videobuf = auto_alloc_array_clear(machine(), UINT8, VIDEOBUF_SIZE); |
460 | 462 | } |
461 | 463 | |
462 | static | |
464 | UINT32 corona_state::screen_update_winner(screen_device &screen, bitmap_ind | |
463 | 465 | { |
464 | corona_state *state = screen.machine().driver_data<corona_state>(); | |
465 | 466 | int x, y; |
466 | 467 | |
467 | 468 | for (y = 0; y < 256; y++) |
468 | 469 | for (x = 0; x < 256; x++) |
469 | bitmap.pix16(y, x) = | |
470 | bitmap.pix16(y, x) = | |
470 | 471 | |
471 | 472 | return 0; |
472 | 473 | } |
473 | 474 | |
474 | stat | |
475 | UINT32 corona_state::screen | |
475 | 476 | { |
476 | corona_state *state = screen.machine().driver_data<corona_state>(); | |
477 | 477 | int x, y; |
478 | 478 | |
479 | 479 | for (y = 0; y < 256; y++) |
480 | 480 | for (x = 0; x < 256; x++) |
481 | bitmap.pix16(255 - y, x) = | |
481 | bitmap.pix16(255 - y, x) = | |
482 | 482 | |
483 | 483 | return 0; |
484 | 484 | } |
r17967 | r17968 | |
1374 | 1374 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) //not accurate |
1375 | 1375 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1376 | 1376 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
1377 | MCFG_SCREEN_UPDATE_ | |
1377 | MCFG_SCREEN_UPDATE_DR | |
1378 | 1378 | |
1379 | 1379 | MCFG_PALETTE_LENGTH(0x100) |
1380 | 1380 | |
r17967 | r17968 | |
1405 | 1405 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) //not accurate |
1406 | 1406 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1407 | 1407 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
1408 | MCFG_SCREEN_UPDATE_ | |
1408 | MCFG_SCREEN_UPDATE_DR | |
1409 | 1409 | |
1410 | 1410 | MCFG_PALETTE_LENGTH(0x100) |
1411 | 1411 | |
r17967 | r17968 | |
1436 | 1436 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) //not accurate |
1437 | 1437 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1438 | 1438 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 32*8-1) |
1439 | MCFG_SCREEN_UPDATE_ | |
1439 | MCFG_SCREEN_UPDATE_DR | |
1440 | 1440 | |
1441 | 1441 | MCFG_PALETTE_LENGTH(0x100) |
1442 | 1442 | |
r17967 | r17968 | |
1466 | 1466 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) //not accurate |
1467 | 1467 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1468 | 1468 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 32*8-1) |
1469 | MCFG_SCREEN_UPDATE_ | |
1469 | MCFG_SCREEN_UPDATE_DR | |
1470 | 1470 | |
1471 | 1471 | MCFG_PALETTE_LENGTH(0x100) |
1472 | 1472 | |
r17967 | r17968 | |
1497 | 1497 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) //not accurate |
1498 | 1498 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1499 | 1499 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 30*8-1) |
1500 | MCFG_SCREEN_UPDATE_ | |
1500 | MCFG_SCREEN_UPDATE_DR | |
1501 | 1501 | |
1502 | 1502 | MCFG_PALETTE_LENGTH(0x100) |
1503 | 1503 |
r17967 | r17968 | |
---|---|---|
82 | 82 | virtual void machine_start(); |
83 | 83 | virtual void machine_reset(); |
84 | 84 | virtual void palette_init(); |
85 | UINT32 screen_update_taitowlf(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
85 | 86 | }; |
86 | 87 | |
87 | 88 | #if !ENABLE_VGA |
88 | stat | |
89 | UINT32 taitowlf_state::screen | |
89 | 90 | { |
90 | 91 | int x,y,count; |
91 | 92 | const UINT8 *blit_ram = screen.machine().root_device().memregion("user5")->base(); |
r17967 | r17968 | |
656 | 657 | MCFG_SCREEN_SIZE(512, 256) |
657 | 658 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) |
658 | 659 | MCFG_PALETTE_LENGTH(256) |
659 | MCFG_SCREEN_UPDATE_ | |
660 | MCFG_SCREEN_UPDATE_DR | |
660 | 661 | #endif |
661 | 662 | MACHINE_CONFIG_END |
662 | 663 |
r17967 | r17968 | |
---|---|---|
3096 | 3096 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3097 | 3097 | MCFG_SCREEN_SIZE(40*8, 32*8) |
3098 | 3098 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 3*8, 31*8-1) |
3099 | MCFG_SCREEN_UPDATE_ | |
3099 | MCFG_SCREEN_UPDATE_DR | |
3100 | 3100 | |
3101 | 3101 | MCFG_GFXDECODE(taitoz) |
3102 | 3102 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
3158 | 3158 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3159 | 3159 | MCFG_SCREEN_SIZE(40*8, 32*8) |
3160 | 3160 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) |
3161 | MCFG_SCREEN_UPDATE_ | |
3161 | MCFG_SCREEN_UPDATE_DR | |
3162 | 3162 | |
3163 | 3163 | MCFG_GFXDECODE(chasehq) |
3164 | 3164 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
3222 | 3222 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3223 | 3223 | MCFG_SCREEN_SIZE(40*8, 32*8) |
3224 | 3224 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 31*8-1) |
3225 | MCFG_SCREEN_UPDATE_ | |
3225 | MCFG_SCREEN_UPDATE_DR | |
3226 | 3226 | |
3227 | 3227 | MCFG_GFXDECODE(taitoz) |
3228 | 3228 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
3282 | 3282 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3283 | 3283 | MCFG_SCREEN_SIZE(40*8, 32*8) |
3284 | 3284 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) |
3285 | MCFG_SCREEN_UPDATE_ | |
3285 | MCFG_SCREEN_UPDATE_DR | |
3286 | 3286 | |
3287 | 3287 | MCFG_GFXDECODE(taitoz) |
3288 | 3288 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
3353 | 3353 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3354 | 3354 | MCFG_SCREEN_SIZE(40*8, 32*8) |
3355 | 3355 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) |
3356 | MCFG_SCREEN_UPDATE_ | |
3356 | MCFG_SCREEN_UPDATE_DR | |
3357 | 3357 | |
3358 | 3358 | MCFG_GFXDECODE(taitoz) |
3359 | 3359 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
3415 | 3415 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3416 | 3416 | MCFG_SCREEN_SIZE(40*8, 32*8) |
3417 | 3417 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) |
3418 | MCFG_SCREEN_UPDATE_ | |
3418 | MCFG_SCREEN_UPDATE_DR | |
3419 | 3419 | |
3420 | 3420 | MCFG_GFXDECODE(chasehq) |
3421 | 3421 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
3479 | 3479 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3480 | 3480 | MCFG_SCREEN_SIZE(40*8, 32*8) |
3481 | 3481 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) |
3482 | MCFG_SCREEN_UPDATE_ | |
3482 | MCFG_SCREEN_UPDATE_DR | |
3483 | 3483 | |
3484 | 3484 | MCFG_GFXDECODE(taitoz) |
3485 | 3485 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
3540 | 3540 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3541 | 3541 | MCFG_SCREEN_SIZE(40*8, 32*8) |
3542 | 3542 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) |
3543 | MCFG_SCREEN_UPDATE_ | |
3543 | MCFG_SCREEN_UPDATE_DR | |
3544 | 3544 | |
3545 | 3545 | MCFG_GFXDECODE(taitoz) |
3546 | 3546 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
3601 | 3601 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3602 | 3602 | MCFG_SCREEN_SIZE(40*8, 32*8) |
3603 | 3603 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) |
3604 | MCFG_SCREEN_UPDATE_ | |
3604 | MCFG_SCREEN_UPDATE_DR | |
3605 | 3605 | |
3606 | 3606 | MCFG_GFXDECODE(dblaxle) |
3607 | 3607 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
3663 | 3663 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3664 | 3664 | MCFG_SCREEN_SIZE(40*8, 32*8) |
3665 | 3665 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1) |
3666 | MCFG_SCREEN_UPDATE_ | |
3666 | MCFG_SCREEN_UPDATE_DR | |
3667 | 3667 | |
3668 | 3668 | MCFG_GFXDECODE(dblaxle) |
3669 | 3669 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
---|---|---|
197 | 197 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
198 | 198 | MCFG_SCREEN_SIZE(32*8, 32*8) |
199 | 199 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
200 | MCFG_SCREEN_UPDATE_ | |
200 | MCFG_SCREEN_UPDATE_DR | |
201 | 201 | |
202 | 202 | MCFG_GFXDECODE(scotrsht) |
203 | 203 | MCFG_PALETTE_LENGTH(16*8*16+16*8*16) |
r17967 | r17968 | |
---|---|---|
315 | 315 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
316 | 316 | MCFG_SCREEN_SIZE(40*8, 32*8) |
317 | 317 | MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 2*8, 32*8-1) |
318 | MCFG_SCREEN_UPDATE_ | |
318 | MCFG_SCREEN_UPDATE_DR | |
319 | 319 | |
320 | 320 | MCFG_GFXDECODE(gunbustr) |
321 | 321 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
---|---|---|
497 | 497 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
498 | 498 | MCFG_SCREEN_SIZE(32*8, 32*8) |
499 | 499 | MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 1*8, 31*8-1) |
500 | MCFG_SCREEN_UPDATE_ | |
500 | MCFG_SCREEN_UPDATE_DR | |
501 | 501 | |
502 | 502 | MCFG_GFXDECODE(msisaac) |
503 | 503 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
694 | 694 | MCFG_SCREEN_REFRESH_RATE(60) |
695 | 695 | MCFG_SCREEN_SIZE(32*8, 262) |
696 | 696 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1) |
697 | MCFG_SCREEN_UPDATE_ | |
697 | MCFG_SCREEN_UPDATE_DR | |
698 | 698 | |
699 | 699 | MCFG_SCREEN_ADD("bottom", RASTER) |
700 | 700 | MCFG_SCREEN_REFRESH_RATE(60) |
701 | 701 | MCFG_SCREEN_SIZE(32*8, 262) |
702 | 702 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1) |
703 | MCFG_SCREEN_UPDATE_ | |
703 | MCFG_SCREEN_UPDATE_DR | |
704 | 704 | |
705 | 705 | |
706 | 706 | MCFG_PPU2C03B_ADD("ppu", playch10_ppu_interface) |
r17967 | r17968 | |
---|---|---|
1652 | 1652 | |
1653 | 1653 | MCFG_SCREEN_ADD("screen", RASTER) |
1654 | 1654 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
1655 | MCFG_SCREEN_UPDATE_ | |
1655 | MCFG_SCREEN_UPDATE_DR | |
1656 | 1656 | |
1657 | 1657 | MCFG_PALETTE_INIT_OVERRIDE(mappy_state,superpac) |
1658 | 1658 | MCFG_VIDEO_START_OVERRIDE(mappy_state,superpac) |
r17967 | r17968 | |
1725 | 1725 | |
1726 | 1726 | MCFG_SCREEN_ADD("screen", RASTER) |
1727 | 1727 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
1728 | MCFG_SCREEN_UPDATE_ | |
1728 | MCFG_SCREEN_UPDATE_DR | |
1729 | 1729 | |
1730 | 1730 | MCFG_PALETTE_INIT_OVERRIDE(mappy_state,phozon) |
1731 | 1731 | MCFG_VIDEO_START_OVERRIDE(mappy_state,phozon) |
r17967 | r17968 | |
1765 | 1765 | |
1766 | 1766 | MCFG_SCREEN_ADD("screen", RASTER) |
1767 | 1767 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
1768 | MCFG_SCREEN_UPDATE_ | |
1768 | MCFG_SCREEN_UPDATE_DR | |
1769 | 1769 | |
1770 | 1770 | MCFG_PALETTE_INIT_OVERRIDE(mappy_state,mappy) |
1771 | 1771 | MCFG_VIDEO_START_OVERRIDE(mappy_state,mappy) |
r17967 | r17968 | |
---|---|---|
78 | 78 | virtual void machine_start(); |
79 | 79 | virtual void video_start(); |
80 | 80 | virtual void palette_init(); |
81 | UINT32 screen_update_safarir(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
81 | 82 | }; |
82 | 83 | |
83 | 84 | |
r17967 | r17968 | |
200 | 201 | } |
201 | 202 | |
202 | 203 | |
203 | stat | |
204 | UINT32 safarir_state::screen | |
204 | 205 | { |
205 | safarir_state *state = screen.machine().driver_data<safarir_state>(); | |
206 | 206 | |
207 | | |
207 | | |
208 | 208 | |
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); | |
211 | 211 | |
212 | 212 | return 0; |
213 | 213 | } |
r17967 | r17968 | |
415 | 415 | MCFG_SCREEN_SIZE(32*8, 32*8) |
416 | 416 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 26*8-1) |
417 | 417 | MCFG_SCREEN_REFRESH_RATE(60) |
418 | MCFG_SCREEN_UPDATE_ | |
418 | MCFG_SCREEN_UPDATE_DR | |
419 | 419 | |
420 | 420 | /* audio hardware */ |
421 | 421 | MCFG_FRAGMENT_ADD(safarir_audio) |
r17967 | r17968 | |
---|---|---|
421 | 421 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
422 | 422 | MCFG_SCREEN_SIZE(40*8, 32*8) |
423 | 423 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
424 | MCFG_SCREEN_UPDATE_ | |
424 | MCFG_SCREEN_UPDATE_DR | |
425 | 425 | |
426 | 426 | MCFG_GFXDECODE(rastan) |
427 | 427 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
---|---|---|
59 | 59 | virtual void machine_reset(); |
60 | 60 | virtual void video_start(); |
61 | 61 | virtual void palette_init(); |
62 | UINT32 screen_update_pzletime(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
62 | 63 | }; |
63 | 64 | |
64 | 65 | |
r17967 | r17968 | |
91 | 92 | m_txt_tilemap->set_transparent_pen(0); |
92 | 93 | } |
93 | 94 | |
94 | stat | |
95 | UINT32 pzletime_state::screen | |
95 | 96 | { |
96 | pzletime_state *state = screen.machine().driver_data<pzletime_state>(); | |
97 | 97 | int count; |
98 | 98 | int y, x; |
99 | 99 | |
100 | 100 | bitmap.fill(screen.machine().pens[0], cliprect); //bg pen |
101 | 101 | |
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]); | |
104 | 104 | |
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); | |
107 | 107 | |
108 | if ( | |
108 | if ( | |
109 | 109 | { |
110 | 110 | count = 0; |
111 | 111 | |
r17967 | r17968 | |
113 | 113 | { |
114 | 114 | for (x = 0; x < 512; x++) |
115 | 115 | { |
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); | |
118 | 118 | |
119 | 119 | count++; |
120 | 120 | } |
121 | 121 | } |
122 | 122 | } |
123 | 123 | |
124 | | |
124 | | |
125 | 125 | |
126 | 126 | { |
127 | UINT16 *spriteram = | |
127 | UINT16 *spriteram = | |
128 | 128 | int offs, spr_offs, colour, sx, sy; |
129 | 129 | |
130 | 130 | for(offs = 0; offs < 0x2000 / 2; offs += 4) |
r17967 | r17968 | |
143 | 143 | } |
144 | 144 | } |
145 | 145 | |
146 | | |
146 | | |
147 | 147 | if ((screen.frame_number() % 16) != 0) |
148 | | |
148 | | |
149 | 149 | |
150 | 150 | return 0; |
151 | 151 | } |
r17967 | r17968 | |
333 | 333 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
334 | 334 | MCFG_SCREEN_SIZE(64*8, 32*8) |
335 | 335 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 28*8-1) |
336 | MCFG_SCREEN_UPDATE_ | |
336 | MCFG_SCREEN_UPDATE_DR | |
337 | 337 | MCFG_GFXDECODE(pzletime) |
338 | 338 | MCFG_PALETTE_LENGTH(0x300 + 32768) |
339 | 339 | MCFG_EEPROM_93C46_ADD("eeprom") |
r17967 | r17968 | |
---|---|---|
164 | 164 | DECLARE_WRITE_LINE_MEMBER(funkball_pic8259_1_set_int_line); |
165 | 165 | virtual void machine_start(); |
166 | 166 | virtual void machine_reset(); |
167 | UINT32 screen_update_funkball(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
167 | 168 | }; |
168 | 169 | |
169 | 170 | void funkball_state::video_start() |
r17967 | r17968 | |
1134 | 1135 | m_voodoo_pci_regs.base_addr = 0xff000000; |
1135 | 1136 | } |
1136 | 1137 | |
1137 | ||
1138 | ||
1138 | 1139 | { |
1139 | 1140 | voodoo_update(screen.machine().device("voodoo_0"), bitmap, cliprect); |
1140 | 1141 | return 0; |
r17967 | r17968 | |
---|---|---|
232 | 232 | virtual void machine_reset(); |
233 | 233 | virtual void video_start(); |
234 | 234 | virtual void palette_init(); |
235 | UINT32 screen_update_tmspoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
235 | 236 | }; |
236 | 237 | |
237 | 238 | |
r17967 | r17968 | |
264 | 265 | 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); |
265 | 266 | } |
266 | 267 | |
267 | static | |
268 | UINT32 tmspoker_state::screen_update_tmspoker(screen_device &screen, bitmap_ind | |
268 | 269 | { |
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); | |
271 | 271 | return 0; |
272 | 272 | } |
273 | 273 | |
r17967 | r17968 | |
583 | 583 | |
584 | 584 | MCFG_PALETTE_LENGTH(256) |
585 | 585 | |
586 | MCFG_SCREEN_UPDATE_ | |
586 | MCFG_SCREEN_UPDATE_DR | |
587 | 587 | |
588 | 588 | MCFG_MC6845_ADD("crtc", MC6845, MASTER_CLOCK/4, mc6845_intf) /* guess */ |
589 | 589 |
r17967 | r17968 | |
---|---|---|
278 | 278 | |
279 | 279 | } |
280 | 280 | |
281 | static | |
281 | UINT32 metalmx_state::screen_update_metalmx(screen_device &screen, bitmap_ind | |
282 | 282 | { |
283 | 283 | /* TODO: TMS34020 should take care of this */ |
284 | metalmx_state *state = screen.machine().driver_data<metalmx_state>(); | |
285 | 284 | |
286 | 285 | // UINT32 *src_base = &gsp_vram[(vreg_base[0x40/4] & 0x40) ? 0x20000 : 0]; |
287 | UINT16 *src_base = | |
286 | UINT16 *src_base = | |
288 | 287 | int y; |
289 | 288 | |
290 | 289 | for (y = 0; y < 384; ++y) |
r17967 | r17968 | |
756 | 755 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
757 | 756 | MCFG_SCREEN_SIZE(512, 384) |
758 | 757 | MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383) |
759 | MCFG_SCREEN_UPDATE_ | |
758 | MCFG_SCREEN_UPDATE_DR | |
760 | 759 | |
761 | 760 | MCFG_PALETTE_LENGTH(65536) |
762 | 761 | MCFG_PALETTE_INIT(RRRRR_GGGGGG_BBBBB) |
r17967 | r17968 | |
---|---|---|
324 | 324 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
325 | 325 | MCFG_SCREEN_SIZE(512*2, 262) |
326 | 326 | MCFG_SCREEN_VISIBLE_AREA((129-8)*2, (449+8-1)*2, 44-8, 244+8-1) |
327 | MCFG_SCREEN_UPDATE_ | |
327 | MCFG_SCREEN_UPDATE_DR | |
328 | 328 | |
329 | 329 | MCFG_PALETTE_LENGTH(4096) |
330 | 330 | MCFG_PALETTE_INIT_OVERRIDE(upscope_state,amiga) |
r17967 | r17968 | |
---|---|---|
1263 | 1263 | MCFG_SCREEN_REFRESH_RATE(60) |
1264 | 1264 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1265 | 1265 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 3*8, 29*8-1) |
1266 | MCFG_SCREEN_UPDATE_ | |
1266 | MCFG_SCREEN_UPDATE_DR | |
1267 | 1267 | |
1268 | 1268 | MCFG_GFXDECODE(equites) |
1269 | 1269 | MCFG_PALETTE_LENGTH(0x180) |
r17967 | r17968 | |
1300 | 1300 | MCFG_SCREEN_REFRESH_RATE(60) |
1301 | 1301 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1302 | 1302 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 28*8-1) |
1303 | MCFG_SCREEN_UPDATE_ | |
1303 | MCFG_SCREEN_UPDATE_DR | |
1304 | 1304 | |
1305 | 1305 | MCFG_GFXDECODE(splndrbt) |
1306 | 1306 | MCFG_PALETTE_LENGTH(0x280) |
r17967 | r17968 | |
---|---|---|
129 | 129 | DECLARE_WRITE8_MEMBER(ay2_sel); |
130 | 130 | DECLARE_DRIVER_INIT(mirax); |
131 | 131 | virtual void palette_init(); |
132 | UINT32 screen_update_mirax(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
132 | 133 | }; |
133 | 134 | |
134 | 135 | |
r17967 | r17968 | |
219 | 220 | } |
220 | 221 | } |
221 | 222 | |
222 | static | |
223 | UINT32 mirax_state::screen_update_mirax(screen_device &screen, bitmap_ind | |
223 | 224 | { |
224 | 225 | draw_tilemap(screen.machine(),bitmap,cliprect,1); |
225 | 226 | draw_sprites(screen.machine(),bitmap,cliprect); |
r17967 | r17968 | |
465 | 466 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
466 | 467 | MCFG_SCREEN_SIZE(256, 256) |
467 | 468 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
468 | MCFG_SCREEN_UPDATE_ | |
469 | MCFG_SCREEN_UPDATE_DR | |
469 | 470 | |
470 | 471 | MCFG_PALETTE_LENGTH(0x40) |
471 | 472 | MCFG_GFXDECODE(mirax) |
r17967 | r17968 | |
---|---|---|
339 | 339 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
340 | 340 | MCFG_SCREEN_SIZE(64*8, 32*8) |
341 | 341 | MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 2*8, 30*8-1 ) |
342 | MCFG_SCREEN_UPDATE_ | |
342 | MCFG_SCREEN_UPDATE_DR | |
343 | 343 | |
344 | 344 | MCFG_PALETTE_LENGTH(2048) |
345 | 345 |
r17967 | r17968 | |
---|---|---|
41 | 41 | DECLARE_READ8_MEMBER(unk_r); |
42 | 42 | DECLARE_WRITE8_MEMBER(lamps_w); |
43 | 43 | virtual void palette_init(); |
44 | UINT32 screen_update_cardline(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
44 | 45 | }; |
45 | 46 | |
46 | 47 | |
47 | 48 | |
48 | 49 | #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,\ | |
51 | 52 | 0,0,\ |
52 | 53 | x<<3, y<<3,\ |
53 | 54 | transparency?transparency:(UINT32)-1); |
54 | 55 | |
55 | stat | |
56 | UINT32 cardline_state::screen | |
56 | 57 | { |
57 | cardline_state *state = screen.machine().driver_data<cardline_state>(); | |
58 | 58 | int x,y; |
59 | 59 | bitmap.fill(0, cliprect); |
60 | 60 | for(y=0;y<32;y++) |
r17967 | r17968 | |
62 | 62 | for(x=0;x<64;x++) |
63 | 63 | { |
64 | 64 | int index=y*64+x; |
65 | if( | |
65 | if( | |
66 | 66 | { |
67 | 67 | DRAW_TILE(screen.machine(),0,0); |
68 | 68 | DRAW_TILE(screen.machine(),0x800,1); |
69 | 69 | } |
70 | 70 | |
71 | if( | |
71 | if( | |
72 | 72 | { |
73 | 73 | DRAW_TILE(screen.machine(),0x1000,0); |
74 | 74 | DRAW_TILE(screen.machine(),0x1800,1); |
r17967 | r17968 | |
226 | 226 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
227 | 227 | MCFG_SCREEN_SIZE(64*8, 35*8) |
228 | 228 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1) |
229 | MCFG_SCREEN_UPDATE_ | |
229 | MCFG_SCREEN_UPDATE_DR | |
230 | 230 | |
231 | 231 | MCFG_GFXDECODE(cardline) |
232 | 232 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
---|---|---|
780 | 780 | /* video hardware */ |
781 | 781 | MCFG_SCREEN_ADD("screen", RASTER) |
782 | 782 | MCFG_SCREEN_RAW_PARAMS(HCLK, 384, 0*8, 256, 272, 1*8, 248) |
783 | MCFG_SCREEN_UPDATE_ | |
783 | MCFG_SCREEN_UPDATE_DR | |
784 | 784 | |
785 | 785 | MCFG_GFXDECODE(decocass) |
786 | 786 | MCFG_PALETTE_LENGTH(32+2*8+2*4) |
r17967 | r17968 | |
---|---|---|
1009 | 1009 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(600)) |
1010 | 1010 | MCFG_SCREEN_SIZE(64*8, 32*8) |
1011 | 1011 | MCFG_SCREEN_VISIBLE_AREA(24, 24+288-1, 16, 16+224-1) |
1012 | MCFG_SCREEN_UPDATE_ | |
1012 | MCFG_SCREEN_UPDATE_DR | |
1013 | 1013 | |
1014 | 1014 | MCFG_PALETTE_LENGTH(2048) |
1015 | 1015 | |
r17967 | r17968 | |
1043 | 1043 | /* video hardware */ |
1044 | 1044 | MCFG_VIDEO_START_OVERRIDE(mystwarr_state,viostorm) |
1045 | 1045 | MCFG_SCREEN_MODIFY("screen") |
1046 | MCFG_SCREEN_UPDATE_ | |
1046 | MCFG_SCREEN_UPDATE_DR | |
1047 | 1047 | |
1048 | 1048 | MCFG_SCREEN_MODIFY("screen") |
1049 | 1049 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(900)) |
r17967 | r17968 | |
1068 | 1068 | /* video hardware */ |
1069 | 1069 | MCFG_VIDEO_START_OVERRIDE(mystwarr_state,metamrph) |
1070 | 1070 | MCFG_SCREEN_MODIFY("screen") |
1071 | MCFG_SCREEN_UPDATE_ | |
1071 | MCFG_SCREEN_UPDATE_DR | |
1072 | 1072 | |
1073 | 1073 | MCFG_SCREEN_MODIFY("screen") |
1074 | 1074 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(900)) |
r17967 | r17968 | |
1094 | 1094 | /* video hardware */ |
1095 | 1095 | MCFG_VIDEO_START_OVERRIDE(mystwarr_state,dadandrn) |
1096 | 1096 | MCFG_SCREEN_MODIFY("screen") |
1097 | MCFG_SCREEN_UPDATE_ | |
1097 | MCFG_SCREEN_UPDATE_DR | |
1098 | 1098 | |
1099 | 1099 | MCFG_SCREEN_MODIFY("screen") |
1100 | 1100 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(600)) |
r17967 | r17968 | |
1123 | 1123 | /* video hardware */ |
1124 | 1124 | MCFG_VIDEO_START_OVERRIDE(mystwarr_state,gaiapols) |
1125 | 1125 | MCFG_SCREEN_MODIFY("screen") |
1126 | MCFG_SCREEN_UPDATE_ | |
1126 | MCFG_SCREEN_UPDATE_DR | |
1127 | 1127 | |
1128 | 1128 | MCFG_SCREEN_MODIFY("screen") |
1129 | 1129 | MCFG_SCREEN_RAW_PARAMS(8000000, 384+24+64+40, 0, 383, 224+16+8+16, 0, 223) |
r17967 | r17968 | |
1150 | 1150 | MCFG_VIDEO_START_OVERRIDE(mystwarr_state,martchmp) |
1151 | 1151 | |
1152 | 1152 | MCFG_SCREEN_MODIFY("screen") |
1153 | MCFG_SCREEN_UPDATE_ | |
1153 | MCFG_SCREEN_UPDATE_DR | |
1154 | 1154 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1155 | 1155 | MCFG_SCREEN_SIZE(64*8, 32*8) |
1156 | 1156 | MCFG_SCREEN_VISIBLE_AREA(32, 32+384-1, 16, 16+224-1) |
r17967 | r17968 | |
---|---|---|
113 | 113 | DECLARE_MACHINE_START(dlair); |
114 | 114 | DECLARE_MACHINE_RESET(dlair); |
115 | 115 | DECLARE_PALETTE_INIT(dleuro); |
116 | UINT32 screen_update_dleuro(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
116 | 117 | }; |
117 | 118 | |
118 | 119 | |
r17967 | r17968 | |
226 | 227 | * |
227 | 228 | *************************************/ |
228 | 229 | |
229 | stat | |
230 | UINT32 dlair_state::screen | |
230 | 231 | { |
231 | dlair_state *state = screen.machine().driver_data<dlair_state>(); | |
232 | UINT8 *videoram = state->m_videoram; | |
232 | UINT8 *videoram = m_videoram; | |
233 | 233 | int x, y; |
234 | 234 | |
235 | 235 | /* redraw the overlay */ |
r17967 | r17968 | |
772 | 772 | MCFG_MACHINE_RESET_OVERRIDE(dlair_state,dlair) |
773 | 773 | |
774 | 774 | MCFG_LASERDISC_22VP932_ADD("ld_22vp932") |
775 | MCFG_LASERDISC_OVERLAY_ | |
775 | MCFG_LASERDISC_OVERLAY_DR | |
776 | 776 | |
777 | 777 | /* video hardware */ |
778 | 778 | MCFG_LASERDISC_SCREEN_ADD_PAL("screen", "ld_22vp932") |
r17967 | r17968 | |
---|---|---|
139 | 139 | virtual void machine_reset(); |
140 | 140 | virtual void video_start(); |
141 | 141 | 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); | |
142 | 144 | }; |
143 | 145 | |
144 | 146 | |
r17967 | r17968 | |
492 | 494 | } |
493 | 495 | } |
494 | 496 | |
495 | stat | |
497 | UINT32 jollyjgr_state::screen | |
496 | 498 | { |
497 | jollyjgr_state *state = screen.machine().driver_data<jollyjgr_state>(); | |
498 | UINT8 *spriteram = state->m_spriteram; | |
499 | UINT8 *spriteram = m_spriteram; | |
499 | 500 | int offs; |
500 | 501 | |
501 | 502 | bitmap.fill(32, cliprect); |
502 | 503 | |
503 | if( | |
504 | if( | |
504 | 505 | { |
505 | if(!( | |
506 | if(!( | |
506 | 507 | draw_bitmap(screen.machine(), bitmap); |
507 | 508 | |
508 | | |
509 | | |
509 | 510 | } |
510 | 511 | else |
511 | 512 | { |
512 | | |
513 | | |
513 | 514 | |
514 | if(!( | |
515 | if(!( | |
515 | 516 | draw_bitmap(screen.machine(), bitmap); |
516 | 517 | } |
517 | 518 | |
r17967 | r17968 | |
525 | 526 | int code = spriteram[offs + 1] & 0x3f; |
526 | 527 | int color = spriteram[offs + 2] & 7; |
527 | 528 | |
528 | if ( | |
529 | if ( | |
529 | 530 | { |
530 | 531 | sx = 240 - sx; |
531 | 532 | flipx = !flipx; |
532 | 533 | } |
533 | 534 | |
534 | if ( | |
535 | if ( | |
535 | 536 | flipy = !flipy; |
536 | 537 | else |
537 | 538 | sy = 240 - sy; |
r17967 | r17968 | |
548 | 549 | return 0; |
549 | 550 | } |
550 | 551 | |
551 | stat | |
552 | UINT32 jollyjgr_state::screen | |
552 | 553 | { |
553 | jollyjgr_state *state = screen.machine().driver_data<jollyjgr_state>(); | |
554 | 554 | |
555 | 555 | // Draw bg and sprites |
556 | SCREEN_UPDATE16_CALL(jollyjgr); | |
556 | SCREEN_UPDATE16_CALL_MEMBER(jollyjgr); | |
557 | 557 | |
558 | 558 | /* Draw bullets |
559 | 559 | 16 bytes, 2 bytes per bullet (y,x). 2 player bullets, 6 enemy bullets. |
560 | 560 | Assume bullets to look the same as on Galaxian hw, |
561 | 561 | that is, simply 4 pixels. Colours are unknown. */ |
562 | 562 | 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]; | |
565 | 565 | UINT16 bc=(offs<4)? |
566 | 566 | 32+7: // player, white |
567 | 567 | 32+3; // enemy, yellow |
568 | 568 | |
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; | |
571 | 571 | |
572 | 572 | if (sy>=cliprect.min_y && sy<=cliprect.max_y) |
573 | 573 | for (int x=sx-4;x<sx;x++) |
r17967 | r17968 | |
663 | 663 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
664 | 664 | MCFG_SCREEN_SIZE(256, 256) |
665 | 665 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
666 | MCFG_SCREEN_UPDATE_ | |
666 | MCFG_SCREEN_UPDATE_DR | |
667 | 667 | |
668 | 668 | MCFG_GFXDECODE(jollyjgr) |
669 | 669 | MCFG_PALETTE_LENGTH(32+8) /* 32 for tilemap and sprites + 8 for the bitmap */ |
r17967 | r17968 | |
682 | 682 | MCFG_CPU_PROGRAM_MAP(fspider_map) |
683 | 683 | |
684 | 684 | MCFG_SCREEN_MODIFY("screen") |
685 | MCFG_SCREEN_UPDATE_ | |
685 | MCFG_SCREEN_UPDATE_DR | |
686 | 686 | |
687 | 687 | MACHINE_CONFIG_END |
688 | 688 |
r17967 | r17968 | |
---|---|---|
302 | 302 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
303 | 303 | MCFG_SCREEN_SIZE(32*8, 32*8) |
304 | 304 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 29*8-1) |
305 | MCFG_SCREEN_UPDATE_ | |
305 | MCFG_SCREEN_UPDATE_DR | |
306 | 306 | |
307 | 307 | MCFG_GFXDECODE(irobot) |
308 | 308 | MCFG_PALETTE_LENGTH(64 + 32) /* 64 for polygons, 32 for text */ |
r17967 | r17968 | |
---|---|---|
184 | 184 | /* note: these parameters are from published specs, not derived */ |
185 | 185 | /* the board uses an SOS-2 chip to generate video signals */ |
186 | 186 | MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240) |
187 | MCFG_SCREEN_UPDATE_ | |
187 | MCFG_SCREEN_UPDATE_DR | |
188 | 188 | |
189 | 189 | MCFG_VIDEO_START_OVERRIDE(klax_state,klax) |
190 | 190 |
r17967 | r17968 | |
---|---|---|
208 | 208 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
209 | 209 | MCFG_SCREEN_SIZE(64*8, 32*8) |
210 | 210 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 28*8-1) |
211 | MCFG_SCREEN_UPDATE_ | |
211 | MCFG_SCREEN_UPDATE_DR | |
212 | 212 | |
213 | 213 | |
214 | 214 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
---|---|---|
129 | 129 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
130 | 130 | MCFG_SCREEN_SIZE(256, 256) |
131 | 131 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1) |
132 | MCFG_SCREEN_UPDATE_ | |
132 | MCFG_SCREEN_UPDATE_DR | |
133 | 133 | |
134 | 134 | MCFG_GFXDECODE(gomoku) |
135 | 135 | MCFG_PALETTE_LENGTH(64) |
r17967 | r17968 | |
---|---|---|
246 | 246 | DECLARE_DRIVER_INIT(ppcar); |
247 | 247 | DECLARE_DRIVER_INIT(tetfight); |
248 | 248 | virtual void machine_reset(); |
249 | UINT32 screen_update_ssfindo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
249 | 250 | }; |
250 | 251 | |
251 | 252 | |
r17967 | r17968 | |
253 | 254 | static void PS7500_startTimer1(running_machine &machine); |
254 | 255 | |
255 | 256 | |
256 | stat | |
257 | UINT32 ssfindo_state::screen | |
257 | 258 | { |
258 | ssfindo_state *state = screen.machine().driver_data<ssfindo_state>(); | |
259 | 259 | int s,x,y; |
260 | 260 | |
261 | if( | |
261 | if( | |
262 | 262 | { |
263 | s=( ( | |
263 | s=( ( | |
264 | 264 | |
265 | 265 | if(s>=0 && s<(0x10000000/4)) |
266 | 266 | { |
267 | 267 | for(y=0;y<256;y++) |
268 | 268 | for(x=0;x<320;x+=4) |
269 | 269 | { |
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; | |
274 | 274 | s++; |
275 | 275 | } |
276 | 276 | } |
r17967 | r17968 | |
765 | 765 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
766 | 766 | MCFG_SCREEN_SIZE(320, 256) |
767 | 767 | MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) |
768 | MCFG_SCREEN_UPDATE_ | |
768 | MCFG_SCREEN_UPDATE_DR | |
769 | 769 | |
770 | 770 | MCFG_PALETTE_LENGTH(256) |
771 | 771 | MACHINE_CONFIG_END |
r17967 | r17968 | |
---|---|---|
887 | 887 | MCFG_SCREEN_REFRESH_RATE(60) |
888 | 888 | MCFG_SCREEN_SIZE(320, 262) |
889 | 889 | MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) |
890 | MCFG_SCREEN_UPDATE_ | |
890 | MCFG_SCREEN_UPDATE_DR | |
891 | 891 | |
892 | 892 | MCFG_PALETTE_LENGTH(28) |
893 | 893 | MCFG_GFXDECODE(firetrk) |
r17967 | r17968 | |
909 | 909 | |
910 | 910 | /* video hardware */ |
911 | 911 | MCFG_SCREEN_MODIFY("screen") |
912 | MCFG_SCREEN_UPDATE_ | |
912 | MCFG_SCREEN_UPDATE_DR | |
913 | 913 | |
914 | 914 | MCFG_VIDEO_START_OVERRIDE(firetrk_state,superbug) |
915 | 915 | MCFG_GFXDECODE(superbug) |
r17967 | r17968 | |
930 | 930 | |
931 | 931 | /* video hardware */ |
932 | 932 | MCFG_SCREEN_MODIFY("screen") |
933 | MCFG_SCREEN_UPDATE_ | |
933 | MCFG_SCREEN_UPDATE_DR | |
934 | 934 | |
935 | 935 | MCFG_VIDEO_START_OVERRIDE(firetrk_state,montecar) |
936 | 936 | MCFG_GFXDECODE(montecar) |
r17967 | r17968 | |
---|---|---|
238 | 238 | /* talks about 55Hz and 1790ms vblank duration. */ |
239 | 239 | MCFG_SCREEN_SIZE(32*8, 32*8) |
240 | 240 | MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 1*8, 31*8-1) |
241 | MCFG_SCREEN_UPDATE_ | |
241 | MCFG_SCREEN_UPDATE_DR | |
242 | 242 | |
243 | 243 | MCFG_GFXDECODE(m57) |
244 | 244 | MCFG_PALETTE_LENGTH(32*8+32*8) |
r17967 | r17968 | |
---|---|---|
1967 | 1967 | |
1968 | 1968 | MCFG_SCREEN_ADD("screen", RASTER) |
1969 | 1969 | MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK/2, 656, 0/*+69*/, 496/*+69*/, 424, 0/*+25*/, 384/*+25*/) |
1970 | MCFG_SCREEN_UPDATE_ | |
1970 | MCFG_SCREEN_UPDATE_DR | |
1971 | 1971 | |
1972 | 1972 | MCFG_PALETTE_LENGTH(8192*2) |
1973 | 1973 |
r17967 | r17968 | |
---|---|---|
266 | 266 | virtual void machine_reset(); |
267 | 267 | virtual void video_start(); |
268 | 268 | virtual void palette_init(); |
269 | UINT32 screen_update_peplus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
269 | 270 | }; |
270 | 271 | |
271 | 272 | static const UINT8 id_022[8] = { 0x00, 0x01, 0x04, 0x09, 0x13, 0x16, 0x18, 0x00 }; |
r17967 | r17968 | |
968 | 969 | memset(m_palette_ram2, 0, 0x3000); |
969 | 970 | } |
970 | 971 | |
971 | static | |
972 | UINT32 peplus_state::screen_update_peplus(screen_device &screen, bitmap_ind | |
972 | 973 | { |
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); | |
975 | 975 | |
976 | 976 | return 0; |
977 | 977 | } |
r17967 | r17968 | |
1352 | 1352 | MCFG_SCREEN_REFRESH_RATE(60) |
1353 | 1353 | MCFG_SCREEN_SIZE((52+1)*8, (31+1)*8) |
1354 | 1354 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 25*8-1) |
1355 | MCFG_SCREEN_UPDATE_ | |
1355 | MCFG_SCREEN_UPDATE_DR | |
1356 | 1356 | |
1357 | 1357 | MCFG_GFXDECODE(peplus) |
1358 | 1358 | MCFG_PALETTE_LENGTH(16*16*2) |
r17967 | r17968 | |
---|---|---|
105 | 105 | virtual void machine_reset(); |
106 | 106 | virtual void video_start(); |
107 | 107 | virtual void palette_init(); |
108 | UINT32 screen_update_ddayjlc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
108 | 109 | }; |
109 | 110 | |
110 | 111 | |
r17967 | r17968 | |
388 | 389 | 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); |
389 | 390 | } |
390 | 391 | |
391 | stat | |
392 | UINT32 ddayjlc_state::screen | |
392 | 393 | { |
393 | ddayjlc_state *state = screen.machine().driver_data<ddayjlc_state>(); | |
394 | 394 | UINT32 i; |
395 | | |
395 | | |
396 | 396 | |
397 | 397 | for (i = 0; i < 0x400; i += 4) |
398 | 398 | { |
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; | |
403 | 403 | UINT8 xflip = flags & 0x80; |
404 | 404 | UINT8 yflip = (code & 0x80); |
405 | 405 | UINT8 color = flags & 0xf; |
r17967 | r17968 | |
415 | 415 | for (y = 0; y < 32; y++) |
416 | 416 | for (x = 0; x < 32; x++) |
417 | 417 | { |
418 | c = | |
418 | c = | |
419 | 419 | if (x > 1 && x < 30) |
420 | drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1], c + | |
420 | drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1], c + | |
421 | 421 | else |
422 | drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[1], c + | |
422 | drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[1], c + | |
423 | 423 | } |
424 | 424 | } |
425 | 425 | return 0; |
r17967 | r17968 | |
533 | 533 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
534 | 534 | MCFG_SCREEN_SIZE(32*8, 32*8) |
535 | 535 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
536 | MCFG_SCREEN_UPDATE_ | |
536 | MCFG_SCREEN_UPDATE_DR | |
537 | 537 | |
538 | 538 | MCFG_GFXDECODE(ddayjlc) |
539 | 539 | MCFG_PALETTE_LENGTH(0x200) |
r17967 | r17968 | |
---|---|---|
1789 | 1789 | // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(600)) |
1790 | 1790 | MCFG_SCREEN_SIZE(64*8, 32*8) |
1791 | 1791 | MCFG_SCREEN_VISIBLE_AREA(24, 24+288-1, 16, 16+224-1) |
1792 | MCFG_SCREEN_UPDATE_ | |
1792 | MCFG_SCREEN_UPDATE_DR | |
1793 | 1793 | |
1794 | 1794 | MCFG_PALETTE_LENGTH(8192) |
1795 | 1795 | |
r17967 | r17968 | |
1869 | 1869 | MCFG_SCREEN_MODIFY("screen") |
1870 | 1870 | MCFG_SCREEN_SIZE(576, 264) |
1871 | 1871 | MCFG_SCREEN_VISIBLE_AREA(0, 576-1, 16, 32*8-1-16) |
1872 | MCFG_SCREEN_UPDATE_ | |
1872 | MCFG_SCREEN_UPDATE_DR | |
1873 | 1873 | |
1874 | 1874 | MCFG_SCREEN_ADD("screen2", RASTER) |
1875 | 1875 | MCFG_SCREEN_RAW_PARAMS(6000000, 288+16+32+48, 0, 287, 224+16+8+16, 0, 223) |
1876 | 1876 | MCFG_SCREEN_SIZE(576, 264) |
1877 | 1877 | MCFG_SCREEN_VISIBLE_AREA(0, 576-1, 16, 32*8-1-16) |
1878 | MCFG_SCREEN_UPDATE_ | |
1878 | MCFG_SCREEN_UPDATE_DR | |
1879 | 1879 | |
1880 | 1880 | MCFG_GFXDECODE(type34) |
1881 | 1881 | MACHINE_CONFIG_END |
r17967 | r17968 | |
1894 | 1894 | MCFG_SCREEN_MODIFY("screen") |
1895 | 1895 | MCFG_SCREEN_SIZE(128*8, 264) |
1896 | 1896 | MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 16, 32*8-1-16) |
1897 | MCFG_SCREEN_UPDATE_ | |
1897 | MCFG_SCREEN_UPDATE_DR | |
1898 | 1898 | |
1899 | 1899 | MCFG_SCREEN_ADD("screen2", RASTER) |
1900 | 1900 | MCFG_SCREEN_RAW_PARAMS(6000000, 288+16+32+48, 0, 287, 224+16+8+16, 0, 223) |
1901 | 1901 | MCFG_SCREEN_SIZE(128*8, 264) |
1902 | 1902 | MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 16, 32*8-1-16) |
1903 | MCFG_SCREEN_UPDATE_ | |
1903 | MCFG_SCREEN_UPDATE_DR | |
1904 | 1904 | |
1905 | 1905 | MCFG_PALETTE_LENGTH(8192) |
1906 | 1906 | MCFG_GFXDECODE(type4) |
r17967 | r17968 | |
---|---|---|
297 | 297 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
298 | 298 | MCFG_SCREEN_SIZE(32*8, 32*8) |
299 | 299 | MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1) |
300 | MCFG_SCREEN_UPDATE_ | |
300 | MCFG_SCREEN_UPDATE_DR | |
301 | 301 | |
302 | 302 | MCFG_GFXDECODE(sprcros2) |
303 | 303 | MCFG_PALETTE_LENGTH(768) |
r17967 | r17968 | |
---|---|---|
421 | 421 | DECLARE_WRITE64_MEMBER(gc_exi_w); |
422 | 422 | virtual void machine_start(); |
423 | 423 | virtual void video_start(); |
424 | UINT32 screen_update_triforce(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
424 | 425 | }; |
425 | 426 | |
426 | 427 | READ64_MEMBER(triforce_state::gc_pi_r) |
r17967 | r17968 | |
456 | 457 | |
457 | 458 | } |
458 | 459 | |
459 | stat | |
460 | UINT32 triforce_state::screen | |
460 | 461 | { |
461 | 462 | return 0; |
462 | 463 | } |
r17967 | r17968 | |
541 | 542 | MCFG_SCREEN_REFRESH_RATE(60) |
542 | 543 | MCFG_SCREEN_SIZE(640, 480) |
543 | 544 | MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479) |
544 | MCFG_SCREEN_UPDATE_ | |
545 | MCFG_SCREEN_UPDATE_DR | |
545 | 546 | |
546 | 547 | MCFG_PALETTE_LENGTH(65536) |
547 | 548 |
r17967 | r17968 | |
---|---|---|
35 | 35 | DECLARE_CUSTOM_INPUT_MEMBER(dorachan_v128_r); |
36 | 36 | virtual void machine_start(); |
37 | 37 | virtual void machine_reset(); |
38 | UINT32 screen_update_dorachan(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
38 | 39 | }; |
39 | 40 | |
40 | 41 | |
r17967 | r17968 | |
81 | 82 | } |
82 | 83 | |
83 | 84 | |
84 | static | |
85 | UINT32 dorachan_state::screen_update_dorachan(screen_device &screen, bitmap_rgb | |
85 | 86 | { |
86 | dorachan_state *state = screen.machine().driver_data<dorachan_state>(); | |
87 | 87 | pen_t pens[NUM_PENS]; |
88 | 88 | offs_t offs; |
89 | 89 | const UINT8 *color_map_base; |
90 | 90 | |
91 | 91 | get_pens(pens); |
92 | 92 | |
93 | color_map_base = | |
93 | color_map_base = | |
94 | 94 | |
95 | for (offs = 0; offs < | |
95 | for (offs = 0; offs < | |
96 | 96 | { |
97 | 97 | int i; |
98 | 98 | UINT8 fore_color; |
r17967 | r17968 | |
103 | 103 | /* the need for +1 is extremely unusual, but definetely correct */ |
104 | 104 | offs_t color_address = ((((offs << 2) & 0x03e0) | (offs >> 8)) + 1) & 0x03ff; |
105 | 105 | |
106 | UINT8 data = | |
106 | UINT8 data = | |
107 | 107 | |
108 | if ( | |
108 | if ( | |
109 | 109 | fore_color = (color_map_base[color_address] >> 3) & 0x07; |
110 | 110 | else |
111 | 111 | fore_color = (color_map_base[color_address] >> 0) & 0x07; |
r17967 | r17968 | |
251 | 251 | MCFG_SCREEN_SIZE(32*8, 32*8) |
252 | 252 | MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 1*8, 31*8-1) |
253 | 253 | MCFG_SCREEN_REFRESH_RATE(60) |
254 | MCFG_SCREEN_UPDATE_ | |
254 | MCFG_SCREEN_UPDATE_DR | |
255 | 255 | |
256 | 256 | MACHINE_CONFIG_END |
257 | 257 |
r17967 | r17968 | |
---|---|---|
305 | 305 | /* note: these parameters are from published specs, not derived */ |
306 | 306 | /* the board uses a VAD chip to generate video signals */ |
307 | 307 | MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240) |
308 | MCFG_SCREEN_UPDATE_ | |
308 | MCFG_SCREEN_UPDATE_DR | |
309 | 309 | |
310 | 310 | MCFG_VIDEO_START_OVERRIDE(thunderj_state,thunderj) |
311 | 311 |
r17967 | r17968 | |
---|---|---|
304 | 304 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
305 | 305 | MCFG_SCREEN_SIZE(64*8, 32*8) |
306 | 306 | MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) |
307 | MCFG_SCREEN_UPDATE_ | |
307 | MCFG_SCREEN_UPDATE_DR | |
308 | 308 | |
309 | 309 | MCFG_PALETTE_LENGTH(2048) |
310 | 310 |
r17967 | r17968 | |
---|---|---|
750 | 750 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
751 | 751 | MCFG_SCREEN_SIZE(32*8, 32*8) |
752 | 752 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
753 | MCFG_SCREEN_UPDATE_ | |
753 | MCFG_SCREEN_UPDATE_DR | |
754 | 754 | |
755 | 755 | MCFG_GFXDECODE(combatsc) |
756 | 756 | MCFG_PALETTE_LENGTH(8*16*16) |
r17967 | r17968 | |
801 | 801 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
802 | 802 | MCFG_SCREEN_SIZE(32*8, 32*8) |
803 | 803 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
804 | MCFG_SCREEN_UPDATE_ | |
804 | MCFG_SCREEN_UPDATE_DR | |
805 | 805 | |
806 | 806 | MCFG_GFXDECODE(combatscb) |
807 | 807 | MCFG_PALETTE_LENGTH(8*16*16) |
r17967 | r17968 | |
---|---|---|
275 | 275 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
276 | 276 | MCFG_SCREEN_SIZE(32*8, 32*8) |
277 | 277 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
278 | MCFG_SCREEN_UPDATE_ | |
278 | MCFG_SCREEN_UPDATE_DR | |
279 | 279 | |
280 | 280 | MCFG_K007342_ADD("k007342", rockrage_k007342_intf) |
281 | 281 | MCFG_K007420_ADD("k007420", rockrage_k007420_intf) |
r17967 | r17968 | |
---|---|---|
112 | 112 | TILE_GET_INFO_MEMBER(get_fg_tile_info); |
113 | 113 | virtual void machine_reset(); |
114 | 114 | virtual void video_start(); |
115 | UINT32 screen_update_quizpun2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
115 | 116 | }; |
116 | 117 | |
117 | 118 | |
r17967 | r17968 | |
155 | 156 | m_fg_tmap->set_transparent_pen(0); |
156 | 157 | } |
157 | 158 | |
158 | stat | |
159 | UINT32 quizpun2_state::screen | |
159 | 160 | { |
160 | quizpun2_state *state = screen.machine().driver_data<quizpun2_state>(); | |
161 | 161 | int layers_ctrl = -1; |
162 | 162 | |
163 | 163 | #ifdef MAME_DEBUG |
r17967 | r17968 | |
170 | 170 | } |
171 | 171 | #endif |
172 | 172 | |
173 | if (layers_ctrl & 1) | |
173 | if (layers_ctrl & 1) | |
174 | 174 | else bitmap.fill(get_black_pen(screen.machine()), cliprect); |
175 | 175 | |
176 | 176 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
177 | if (layers_ctrl & 2) | |
177 | if (layers_ctrl & 2) | |
178 | 178 | |
179 | 179 | return 0; |
180 | 180 | } |
r17967 | r17968 | |
503 | 503 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
504 | 504 | MCFG_SCREEN_SIZE(256, 256) |
505 | 505 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1) |
506 | MCFG_SCREEN_UPDATE_ | |
506 | MCFG_SCREEN_UPDATE_DR | |
507 | 507 | |
508 | 508 | MCFG_GFXDECODE(quizpun2) |
509 | 509 | MCFG_PALETTE_LENGTH(0x200) |
r17967 | r17968 | |
---|---|---|
79 | 79 | virtual void machine_start(); |
80 | 80 | virtual void machine_reset(); |
81 | 81 | virtual void video_start(); |
82 | UINT32 screen_update_egghunt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
82 | 83 | }; |
83 | 84 | |
84 | 85 | |
r17967 | r17968 | |
180 | 181 | save_item(NAME(m_spram)); |
181 | 182 | } |
182 | 183 | |
183 | stat | |
184 | UINT32 egghunt_state::screen | |
184 | 185 | { |
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); | |
187 | 187 | draw_sprites(screen.machine(), bitmap, cliprect); |
188 | 188 | return 0; |
189 | 189 | } |
r17967 | r17968 | |
424 | 424 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
425 | 425 | MCFG_SCREEN_SIZE(64*8, 32*8) |
426 | 426 | MCFG_SCREEN_VISIBLE_AREA(8*8, 56*8-1, 1*8, 31*8-1) |
427 | MCFG_SCREEN_UPDATE_ | |
427 | MCFG_SCREEN_UPDATE_DR | |
428 | 428 | |
429 | 429 | MCFG_GFXDECODE(egghunt) |
430 | 430 | MCFG_PALETTE_LENGTH(0x400) |
r17967 | r17968 | |
---|---|---|
1273 | 1273 | |
1274 | 1274 | // C2 doesn't use the internal VDP CRAM, instead it uses the digital output of the chip |
1275 | 1275 | // and applies it's own external colour circuity |
1276 | stat | |
1276 | UINT32 segac2_state::screen | |
1277 | 1277 | { |
1278 | 1278 | 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) | |
1281 | 1280 | { |
1282 | 1281 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
1283 | 1282 | return 0; |
1284 | 1283 | } |
1285 | 1284 | |
1286 | sega_genesis_vdp_device *vdp = | |
1285 | sega_genesis_vdp_device *vdp = | |
1287 | 1286 | |
1288 | 1287 | /* Copy our screen buffer here */ |
1289 | 1288 | for (int y = cliprect.min_y; y <= cliprect.max_y; y++) |
r17967 | r17968 | |
1394 | 1393 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) // Vblank handled manually. |
1395 | 1394 | MCFG_SCREEN_SIZE(64*8, 64*8) |
1396 | 1395 | MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 0, 28*8-1) |
1397 | MCFG_SCREEN_UPDATE_ | |
1396 | MCFG_SCREEN_UPDATE_DR | |
1398 | 1397 | MCFG_SCREEN_VBLANK_STATIC( megadriv ) |
1399 | 1398 | |
1400 | 1399 | MCFG_PALETTE_LENGTH(2048*3) |
r17967 | r17968 | |
---|---|---|
207 | 207 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
208 | 208 | MCFG_SCREEN_SIZE(32*8, 32*8) |
209 | 209 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
210 | MCFG_SCREEN_UPDATE_ | |
210 | MCFG_SCREEN_UPDATE_DR | |
211 | 211 | |
212 | 212 | MCFG_PALETTE_LENGTH(0x400) |
213 | 213 |
r17967 | r17968 | |
---|---|---|
451 | 451 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
452 | 452 | MCFG_SCREEN_SIZE(32*8, 32*8) |
453 | 453 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
454 | MCFG_SCREEN_UPDATE_ | |
454 | MCFG_SCREEN_UPDATE_DR | |
455 | 455 | |
456 | 456 | MCFG_GFXDECODE(stfight) |
457 | 457 | MCFG_PALETTE_LENGTH(16*4+16*16+16*16+16*16) |
r17967 | r17968 | |
---|---|---|
434 | 434 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
435 | 435 | MCFG_SCREEN_SIZE(32*8, 32*8) |
436 | 436 | MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1) |
437 | MCFG_SCREEN_UPDATE_ | |
437 | MCFG_SCREEN_UPDATE_DR | |
438 | 438 | |
439 | 439 | MCFG_GFXDECODE(gberet) |
440 | 440 | MCFG_PALETTE_LENGTH(2*16*16) |
r17967 | r17968 | |
474 | 474 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
475 | 475 | MCFG_SCREEN_SIZE(32*8, 32*8) |
476 | 476 | MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1) |
477 | MCFG_SCREEN_UPDATE_ | |
477 | MCFG_SCREEN_UPDATE_DR | |
478 | 478 | |
479 | 479 | MCFG_GFXDECODE(gberetb) |
480 | 480 | MCFG_PALETTE_LENGTH(2*16*16) |
r17967 | r17968 | |
---|---|---|
109 | 109 | DECLARE_READ8_MEMBER(sandscrp_soundlatch_r); |
110 | 110 | DECLARE_WRITE8_MEMBER(sandscrp_soundlatch_w); |
111 | 111 | 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); | |
112 | 114 | }; |
113 | 115 | |
114 | 116 | |
115 | 117 | |
116 | ||
118 | ||
117 | 119 | { |
118 | sandscrp_state *state = screen.machine().driver_data<sandscrp_state>(); | |
119 | 120 | device_t *pandora = screen.machine().device("pandora"); |
120 | 121 | bitmap.fill(0, cliprect); |
121 | 122 | |
r17967 | r17968 | |
123 | 124 | |
124 | 125 | screen.machine().priority_bitmap.fill(0, cliprect); |
125 | 126 | |
126 | | |
127 | | |
127 | 128 | |
128 | 129 | for ( i = 0; i < 8; i++ ) |
129 | 130 | { |
130 | | |
131 | | |
131 | 132 | } |
132 | 133 | |
133 | 134 | // copy sprite bitmap to screen |
r17967 | r17968 | |
167 | 168 | } |
168 | 169 | |
169 | 170 | |
170 | stat | |
171 | void sandscrp_state::screen | |
171 | 172 | { |
172 | 173 | // rising edge |
173 | if ( | |
174 | if (st | |
174 | 175 | { |
175 | sandscrp_state *state = screen.machine().driver_data<sandscrp_state>(); | |
176 | 176 | device_t *pandora = screen.machine().device("pandora"); |
177 | | |
177 | | |
178 | 178 | update_irq_state(screen.machine()); |
179 | 179 | pandora_eof(pandora); |
180 | 180 | } |
r17967 | r17968 | |
515 | 515 | MCFG_SCREEN_VBLANK_TIME( ATTOSECONDS_IN_USEC(2500) /* not accurate */ ) |
516 | 516 | MCFG_SCREEN_SIZE(256, 256) |
517 | 517 | 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) | |
520 | 520 | |
521 | 521 | MCFG_GFXDECODE(sandscrp) |
522 | 522 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
---|---|---|
71 | 71 | DECLARE_WRITE8_MEMBER(palette_write); |
72 | 72 | DECLARE_DRIVER_INIT(gpworld); |
73 | 73 | virtual void machine_start(); |
74 | UINT32 screen_update_gpworld(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
74 | 75 | }; |
75 | 76 | |
76 | 77 | |
r17967 | r17968 | |
223 | 224 | } |
224 | 225 | |
225 | 226 | |
226 | static | |
227 | UINT32 gpworld_state::screen_update_gpworld(screen_device &screen, bitmap_rgb | |
227 | 228 | { |
228 | 229 | bitmap.fill(0, cliprect); |
229 | 230 | |
r17967 | r17968 | |
470 | 471 | |
471 | 472 | |
472 | 473 | MCFG_LASERDISC_LDV1000_ADD("laserdisc") |
473 | MCFG_LASERDISC_OVERLAY_ | |
474 | MCFG_LASERDISC_OVERLAY_DR | |
474 | 475 | |
475 | 476 | /* video hardware */ |
476 | 477 | MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc") |
r17967 | r17968 | |
---|---|---|
913 | 913 | MCFG_SCREEN_REFRESH_RATE(60) |
914 | 914 | MCFG_SCREEN_SIZE(256, 264) |
915 | 915 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
916 | MCFG_SCREEN_UPDATE_ | |
916 | MCFG_SCREEN_UPDATE_DR | |
917 | 917 | |
918 | 918 | MCFG_PALETTE_LENGTH(32 + 256*64) |
919 | 919 | |
r17967 | r17968 | |
973 | 973 | MCFG_SCREEN_REFRESH_RATE(60) |
974 | 974 | MCFG_SCREEN_SIZE(256, 264) |
975 | 975 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
976 | MCFG_SCREEN_UPDATE_ | |
976 | MCFG_SCREEN_UPDATE_DR | |
977 | 977 | |
978 | 978 | MCFG_PALETTE_LENGTH(64) |
979 | 979 |
r17967 | r17968 | |
---|---|---|
815 | 815 | |
816 | 816 | MCFG_SCREEN_ADD("screen", RASTER) |
817 | 817 | MCFG_SCREEN_RAW_PARAMS(EXIDY_PIXEL_CLOCK, EXIDY_HTOTAL, EXIDY_HBEND, EXIDY_HBSTART, EXIDY_VTOTAL, EXIDY_VBEND, EXIDY_VBSTART) |
818 | MCFG_SCREEN_UPDATE_ | |
818 | MCFG_SCREEN_UPDATE_DR | |
819 | 819 | |
820 | 820 | MACHINE_CONFIG_END |
821 | 821 |
r17967 | r17968 | |
---|---|---|
1262 | 1262 | MCFG_SCREEN_SIZE(64*8, 32*8) |
1263 | 1263 | // visible area can be changed at runtime |
1264 | 1264 | 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) | |
1267 | 1267 | |
1268 | 1268 | MCFG_GFXDECODE(mrokumei) |
1269 | 1269 | MCFG_PALETTE_LENGTH(0x8000) |
r17967 | r17968 | |
1331 | 1331 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1332 | 1332 | MCFG_SCREEN_SIZE(256, 256) |
1333 | 1333 | 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) | |
1336 | 1336 | |
1337 | 1337 | MCFG_GFXDECODE(reikaids) |
1338 | 1338 | MCFG_PALETTE_LENGTH(0x8000) |
r17967 | r17968 | |
1382 | 1382 | MCFG_SCREEN_SIZE(64*8, 32*8) |
1383 | 1383 | // visible area can be changed at runtime |
1384 | 1384 | 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) | |
1387 | 1387 | |
1388 | 1388 | MCFG_GFXDECODE(pteacher) |
1389 | 1389 | MCFG_PALETTE_LENGTH(0x8000) |
r17967 | r17968 | |
1546 | 1546 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1547 | 1547 | MCFG_SCREEN_SIZE(64*8, 32*8) |
1548 | 1548 | MCFG_SCREEN_VISIBLE_AREA(0*8, 54*8-1, 2*8, 30*8-1) |
1549 | MCFG_SCREEN_UPDATE_ | |
1549 | MCFG_SCREEN_UPDATE_DR | |
1550 | 1550 | |
1551 | 1551 | MCFG_GFXDECODE(mirderby) |
1552 | 1552 | MCFG_PALETTE_LENGTH(0x8000) |
r17967 | r17968 | |
---|---|---|
421 | 421 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
422 | 422 | MCFG_SCREEN_SIZE(40*8, 32*8) |
423 | 423 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
424 | MCFG_SCREEN_UPDATE_ | |
424 | MCFG_SCREEN_UPDATE_DR | |
425 | 425 | MCFG_GFXDECODE(mugsmash) |
426 | 426 | |
427 | 427 | MCFG_PALETTE_LENGTH(0x300) |
r17967 | r17968 | |
---|---|---|
235 | 235 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
236 | 236 | MCFG_SCREEN_SIZE(32*8, 32*8) |
237 | 237 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
238 | MCFG_SCREEN_UPDATE_ | |
238 | MCFG_SCREEN_UPDATE_DR | |
239 | 239 | |
240 | 240 | MCFG_GFXDECODE(pcktgal) |
241 | 241 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
262 | 262 | static MACHINE_CONFIG_DERIVED( bootleg, pcktgal ) |
263 | 263 | MCFG_GFXDECODE(bootleg) |
264 | 264 | MCFG_SCREEN_MODIFY("screen") |
265 | MCFG_SCREEN_UPDATE_ | |
265 | MCFG_SCREEN_UPDATE_DR | |
266 | 266 | MACHINE_CONFIG_END |
267 | 267 | |
268 | 268 | /***************************************************************************/ |
r17967 | r17968 | |
---|---|---|
117 | 117 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
118 | 118 | virtual void video_start(); |
119 | 119 | virtual void palette_init(); |
120 | UINT32 screen_update_jokrwild(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
120 | 121 | }; |
121 | 122 | |
122 | 123 | |
r17967 | r17968 | |
160 | 161 | } |
161 | 162 | |
162 | 163 | |
163 | stat | |
164 | UINT32 jokrwild_state::screen | |
164 | 165 | { |
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); | |
167 | 167 | return 0; |
168 | 168 | } |
169 | 169 | |
r17967 | r17968 | |
493 | 493 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
494 | 494 | MCFG_SCREEN_SIZE((32+1)*8, (32+1)*8) /* From MC6845, registers 00 & 04. (value-1) */ |
495 | 495 | MCFG_SCREEN_VISIBLE_AREA(0*8, 24*8-1, 0*8, 26*8-1) /* From MC6845, registers 01 & 06 */ |
496 | MCFG_SCREEN_UPDATE_ | |
496 | MCFG_SCREEN_UPDATE_DR | |
497 | 497 | |
498 | 498 | MCFG_GFXDECODE(jokrwild) |
499 | 499 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
---|---|---|
222 | 222 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
223 | 223 | MCFG_SCREEN_SIZE(32*8, 32*8) |
224 | 224 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
225 | MCFG_SCREEN_UPDATE_ | |
225 | MCFG_SCREEN_UPDATE_DR | |
226 | 226 | |
227 | 227 | MCFG_GFXDECODE(solomon) |
228 | 228 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
1849 | 1849 | |
1850 | 1850 | MCFG_SCREEN_ADD("screen", RASTER) |
1851 | 1851 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
1852 | MCFG_SCREEN_UPDATE_ | |
1852 | MCFG_SCREEN_UPDATE_DR | |
1853 | 1853 | |
1854 | 1854 | MCFG_PALETTE_LENGTH(0x1000) |
1855 | 1855 | |
1856 | MCFG_SCREEN_VBLANK_ | |
1856 | MCFG_SCREEN_VBLANK_DR | |
1857 | 1857 | MACHINE_CONFIG_END |
1858 | 1858 | |
1859 | 1859 |
r17967 | r17968 | |
---|---|---|
687 | 687 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
688 | 688 | MCFG_SCREEN_SIZE(32*8, 32*8) |
689 | 689 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
690 | MCFG_SCREEN_UPDATE_ | |
690 | MCFG_SCREEN_UPDATE_DR | |
691 | 691 | |
692 | 692 | MCFG_GFXDECODE(ppking) |
693 | 693 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
735 | 735 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
736 | 736 | MCFG_SCREEN_SIZE(32*8, 32*8) |
737 | 737 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
738 | MCFG_SCREEN_UPDATE_ | |
738 | MCFG_SCREEN_UPDATE_DR | |
739 | 739 | |
740 | 740 | MCFG_GFXDECODE(gladiatr) |
741 | 741 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
635 | 635 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
636 | 636 | MCFG_SCREEN_SIZE(32*16, 16*16) |
637 | 637 | 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) | |
640 | 640 | |
641 | 641 | MCFG_GFXDECODE(macrossp) |
642 | 642 | MCFG_PALETTE_LENGTH(0x1000) |
r17967 | r17968 | |
---|---|---|
128 | 128 | virtual void machine_start(); |
129 | 129 | virtual void machine_reset(); |
130 | 130 | virtual void video_start(); |
131 | UINT32 screen_update_imolagp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
131 | 132 | }; |
132 | 133 | |
133 | 134 | |
r17967 | r17968 | |
208 | 209 | } |
209 | 210 | |
210 | 211 | |
211 | static | |
212 | UINT32 imolagp_state::screen_update_imolagp(screen_device &screen, bitmap_ind | |
212 | 213 | { |
213 | imolagp_state *state = screen.machine().driver_data<imolagp_state>(); | |
214 | int scroll2 = state->m_scroll ^ 0x03; | |
214 | int scroll2 = m_scroll ^ 0x03; | |
215 | 215 | int pass; |
216 | 216 | for (pass = 0; pass < 2; pass++) |
217 | 217 | { |
218 | 218 | int i; |
219 | const UINT8 *source = | |
219 | const UINT8 *source = | |
220 | 220 | |
221 | 221 | for (i = 0; i < 0x4000; i++) |
222 | 222 | { |
r17967 | r17968 | |
574 | 574 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
575 | 575 | MCFG_SCREEN_SIZE(256,256) |
576 | 576 | MCFG_SCREEN_VISIBLE_AREA(0+64-16,255,0+16,255) |
577 | MCFG_SCREEN_UPDATE_ | |
577 | MCFG_SCREEN_UPDATE_DR | |
578 | 578 | |
579 | 579 | MCFG_PALETTE_LENGTH(0x20) |
580 | 580 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
---|---|---|
33 | 33 | virtual void machine_reset(); |
34 | 34 | virtual void video_start(); |
35 | 35 | virtual void palette_init(); |
36 | UINT32 screen_update_poker72(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
36 | 37 | }; |
37 | 38 | |
38 | 39 | |
r17967 | r17968 | |
40 | 41 | { |
41 | 42 | } |
42 | 43 | |
43 | stat | |
44 | UINT32 poker72_state::screen | |
44 | 45 | { |
45 | poker72_state *state = screen.machine().driver_data<poker72_state>(); | |
46 | 46 | int x,y,count; |
47 | 47 | |
48 | 48 | count = 0; |
r17967 | r17968 | |
51 | 51 | { |
52 | 52 | for (x=0;x<64;x++) |
53 | 53 | { |
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; | |
58 | 58 | |
59 | tile|= | |
59 | tile|= | |
60 | 60 | |
61 | 61 | drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0],tile,color,fx,fy,x*8,y*8); |
62 | 62 | |
r17967 | r17968 | |
363 | 363 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
364 | 364 | MCFG_SCREEN_SIZE(64*8, 32*8) |
365 | 365 | MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1) |
366 | MCFG_SCREEN_UPDATE_ | |
366 | MCFG_SCREEN_UPDATE_DR | |
367 | 367 | |
368 | 368 | MCFG_GFXDECODE(poker72) |
369 | 369 | MCFG_PALETTE_LENGTH(0xe00) |
r17967 | r17968 | |
---|---|---|
67 | 67 | virtual void machine_start(); |
68 | 68 | virtual void machine_reset(); |
69 | 69 | virtual void video_start(); |
70 | UINT32 screen_update_umipoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
70 | 71 | }; |
71 | 72 | |
72 | 73 | TILE_GET_INFO_MEMBER(umipoker_state::get_tile_info_0) |
r17967 | r17968 | |
132 | 133 | |
133 | 134 | } |
134 | 135 | |
135 | stat | |
136 | UINT32 umipoker_state::screen | |
136 | 137 | { |
137 | umipoker_state *state = screen.machine().driver_data<umipoker_state>(); | |
138 | 138 | |
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]); | |
143 | 143 | |
144 | 144 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
145 | 145 | |
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); | |
150 | 150 | |
151 | 151 | return 0; |
152 | 152 | } |
r17967 | r17968 | |
678 | 678 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
679 | 679 | MCFG_SCREEN_SIZE(64*8, 32*8) |
680 | 680 | MCFG_SCREEN_VISIBLE_AREA(8*8, 48*8-1, 2*8, 32*8-1) |
681 | MCFG_SCREEN_UPDATE_ | |
681 | MCFG_SCREEN_UPDATE_DR | |
682 | 682 | |
683 | 683 | MCFG_GFXDECODE(umipoker) |
684 | 684 |
r17967 | r17968 | |
---|---|---|
252 | 252 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
253 | 253 | MCFG_SCREEN_SIZE(32*8, 32*8) |
254 | 254 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
255 | MCFG_SCREEN_UPDATE_ | |
255 | MCFG_SCREEN_UPDATE_DR | |
256 | 256 | |
257 | 257 | MCFG_GFXDECODE(goindol) |
258 | 258 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
537 | 537 | /* video hardware */ |
538 | 538 | MCFG_SCREEN_ADD("screen", RASTER) |
539 | 539 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
540 | MCFG_SCREEN_UPDATE_ | |
540 | MCFG_SCREEN_UPDATE_DR | |
541 | 541 | |
542 | 542 | MCFG_GFXDECODE(gyruss) |
543 | 543 | MCFG_PALETTE_LENGTH(16*4+16*16) |
r17967 | r17968 | |
---|---|---|
228 | 228 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
229 | 229 | MCFG_SCREEN_SIZE(37*8, 32*8) |
230 | 230 | MCFG_SCREEN_VISIBLE_AREA(0*8, 35*8-1, 2*8, 30*8-1) |
231 | MCFG_SCREEN_UPDATE_ | |
231 | MCFG_SCREEN_UPDATE_DR | |
232 | 232 | |
233 | 233 | MCFG_GFXDECODE(fastlane) |
234 | 234 | MCFG_PALETTE_LENGTH(1024*16) |
r17967 | r17968 | |
---|---|---|
119 | 119 | virtual void machine_start(); |
120 | 120 | virtual void machine_reset(); |
121 | 121 | virtual void video_start(); |
122 | UINT32 screen_update_gamecstl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
122 | 123 | }; |
123 | 124 | |
124 | 125 | |
r17967 | r17968 | |
162 | 163 | } |
163 | 164 | } |
164 | 165 | |
165 | stat | |
166 | UINT32 gamecstl_state::screen | |
166 | 167 | { |
167 | gamecstl_state *state = screen.machine().driver_data<gamecstl_state>(); | |
168 | 168 | int i, j; |
169 | 169 | gfx_element *gfx = screen.machine().gfx[0]; |
170 | UINT32 *cga = | |
170 | UINT32 *cga = | |
171 | 171 | int index = 0; |
172 | 172 | |
173 | 173 | bitmap.fill(0, cliprect); |
r17967 | r17968 | |
726 | 726 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
727 | 727 | MCFG_SCREEN_SIZE(640, 480) |
728 | 728 | MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 199) |
729 | MCFG_SCREEN_UPDATE_ | |
729 | MCFG_SCREEN_UPDATE_DR | |
730 | 730 | |
731 | 731 | MCFG_GFXDECODE(CGA) |
732 | 732 | MCFG_PALETTE_LENGTH(16) |
r17967 | r17968 | |
---|---|---|
441 | 441 | |
442 | 442 | MCFG_SCREEN_ADD("screen", RASTER) |
443 | 443 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK, 320*2, 0*2, 256*2, 260, 8, 248) |
444 | MCFG_SCREEN_UPDATE_ | |
444 | MCFG_SCREEN_UPDATE_DR | |
445 | 445 | |
446 | 446 | |
447 | 447 | /* sound hardware */ |
r17967 | r17968 | |
---|---|---|
505 | 505 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
506 | 506 | MCFG_SCREEN_SIZE(256, 256) |
507 | 507 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
508 | MCFG_SCREEN_UPDATE_ | |
508 | MCFG_SCREEN_UPDATE_DR | |
509 | 509 | |
510 | 510 | MCFG_GFXDECODE(cabal) |
511 | 511 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
560 | 560 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
561 | 561 | MCFG_SCREEN_SIZE(256, 256) |
562 | 562 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
563 | MCFG_SCREEN_UPDATE_ | |
563 | MCFG_SCREEN_UPDATE_DR | |
564 | 564 | |
565 | 565 | MCFG_GFXDECODE(cabal) |
566 | 566 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
67 | 67 | DECLARE_WRITE8_MEMBER(hotblock_port0_w); |
68 | 68 | DECLARE_WRITE8_MEMBER(hotblock_video_write); |
69 | 69 | virtual void video_start(); |
70 | UINT32 screen_update_hotblock(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
70 | 71 | }; |
71 | 72 | |
72 | 73 | |
r17967 | r17968 | |
142 | 143 | save_item(NAME(m_pal)); |
143 | 144 | } |
144 | 145 | |
145 | stat | |
146 | UINT32 hotblock_state::screen | |
146 | 147 | { |
147 | hotblock_state *state = screen.machine().driver_data<hotblock_state>(); | |
148 | 148 | int y, x, count; |
149 | 149 | int i; |
150 | 150 | static const int xxx = 320, yyy = 204; |
r17967 | r17968 | |
153 | 153 | |
154 | 154 | for (i = 0; i < 256; i++) |
155 | 155 | { |
156 | int dat = ( | |
156 | int dat = ( | |
157 | 157 | palette_set_color_rgb(screen.machine(), i, pal5bit(dat >> 0), pal5bit(dat >> 5), pal5bit(dat >> 10)); |
158 | 158 | } |
159 | 159 | |
r17967 | r17968 | |
162 | 162 | { |
163 | 163 | for(x = 0; x < xxx; x++) |
164 | 164 | { |
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]; | |
167 | 167 | count++; |
168 | 168 | } |
169 | 169 | } |
r17967 | r17968 | |
225 | 225 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
226 | 226 | MCFG_SCREEN_SIZE(1024,1024) |
227 | 227 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1) |
228 | MCFG_SCREEN_UPDATE_ | |
228 | MCFG_SCREEN_UPDATE_DR | |
229 | 229 | |
230 | 230 | MCFG_PALETTE_LENGTH(256) |
231 | 231 |
r17967 | r17968 | |
---|---|---|
521 | 521 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
522 | 522 | MCFG_SCREEN_SIZE(64*8, 32*8) |
523 | 523 | MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 ) |
524 | MCFG_SCREEN_UPDATE_ | |
524 | MCFG_SCREEN_UPDATE_DR | |
525 | 525 | |
526 | 526 | MCFG_PALETTE_LENGTH(2048) |
527 | 527 |
r17967 | r17968 | |
---|---|---|
199 | 199 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
200 | 200 | MCFG_SCREEN_SIZE(32*16, 32*16) |
201 | 201 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1) |
202 | MCFG_SCREEN_UPDATE_ | |
202 | MCFG_SCREEN_UPDATE_DR | |
203 | 203 | |
204 | 204 | MCFG_GFXDECODE(thoop2) |
205 | 205 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
2207 | 2207 | MCFG_SCREEN_ADD("screen", RASTER) |
2208 | 2208 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK_320/8, 427, 0, 320, 263, 0, 224) |
2209 | 2209 | #if NEW_VIDEO_CODE |
2210 | MCFG_SCREEN_UPDATE_ | |
2210 | MCFG_SCREEN_UPDATE_DR | |
2211 | 2211 | MCFG_PALETTE_LENGTH(2048+(2048*2))//standard palette + extra memory for rgb brightness. (TODO: remove AT LEAST the latter) |
2212 | 2212 | #else |
2213 | MCFG_SCREEN_UPDATE_ | |
2213 | MCFG_SCREEN_UPDATE_DR | |
2214 | 2214 | MCFG_PALETTE_LENGTH(2048+(2048*2))//standard palette + extra memory for rgb brightness. |
2215 | 2215 | #endif |
2216 | 2216 | |
r17967 | r17968 | |
2296 | 2296 | MCFG_SCREEN_ADD("screen", RASTER) |
2297 | 2297 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK_320/8, 427, 0, 320, 263, 0, 224) |
2298 | 2298 | #if NEW_VIDEO_CODE |
2299 | MCFG_SCREEN_UPDATE_ | |
2299 | MCFG_SCREEN_UPDATE_DR | |
2300 | 2300 | MCFG_PALETTE_LENGTH(2048+(2048*2))//standard palette + extra memory for rgb brightness. (TODO: remove AT LEAST the latter) |
2301 | 2301 | #else |
2302 | MCFG_SCREEN_UPDATE_ | |
2302 | MCFG_SCREEN_UPDATE_DR | |
2303 | 2303 | MCFG_PALETTE_LENGTH(2048+(2048*2))//standard palette + extra memory for rgb brightness. |
2304 | 2304 | #endif |
2305 | 2305 |
r17967 | r17968 | |
---|---|---|
555 | 555 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(5000) /* frames per second, vblank duration */) |
556 | 556 | MCFG_SCREEN_SIZE(32*8, 32*8) |
557 | 557 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
558 | MCFG_SCREEN_UPDATE_ | |
558 | MCFG_SCREEN_UPDATE_DR | |
559 | 559 | |
560 | 560 | MCFG_GFXDECODE(marineb) |
561 | 561 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
575 | 575 | /* video hardware */ |
576 | 576 | MCFG_GFXDECODE(changes) |
577 | 577 | MCFG_SCREEN_MODIFY("screen") |
578 | MCFG_SCREEN_UPDATE_ | |
578 | MCFG_SCREEN_UPDATE_DR | |
579 | 579 | MACHINE_CONFIG_END |
580 | 580 | |
581 | 581 | |
r17967 | r17968 | |
586 | 586 | |
587 | 587 | /* video hardware */ |
588 | 588 | MCFG_SCREEN_MODIFY("screen") |
589 | MCFG_SCREEN_UPDATE_ | |
589 | MCFG_SCREEN_UPDATE_DR | |
590 | 590 | MACHINE_CONFIG_END |
591 | 591 | |
592 | 592 | |
r17967 | r17968 | |
597 | 597 | /* video hardware */ |
598 | 598 | MCFG_GFXDECODE(hoccer) |
599 | 599 | MCFG_SCREEN_MODIFY("screen") |
600 | MCFG_SCREEN_UPDATE_ | |
600 | MCFG_SCREEN_UPDATE_DR | |
601 | 601 | MACHINE_CONFIG_END |
602 | 602 | |
603 | 603 | |
r17967 | r17968 | |
611 | 611 | /* video hardware */ |
612 | 612 | MCFG_GFXDECODE(wanted) |
613 | 613 | MCFG_SCREEN_MODIFY("screen") |
614 | MCFG_SCREEN_UPDATE_ | |
614 | MCFG_SCREEN_UPDATE_DR | |
615 | 615 | |
616 | 616 | /* sound hardware */ |
617 | 617 | MCFG_SOUND_REPLACE("ay1", AY8910, 1500000) |
r17967 | r17968 | |
629 | 629 | /* video hardware */ |
630 | 630 | MCFG_GFXDECODE(hopprobo) |
631 | 631 | MCFG_SCREEN_MODIFY("screen") |
632 | MCFG_SCREEN_UPDATE_ | |
632 | MCFG_SCREEN_UPDATE_DR | |
633 | 633 | MACHINE_CONFIG_END |
634 | 634 | |
635 | 635 |
r17967 | r17968 | |
---|---|---|
480 | 480 | MCFG_SCREEN_REFRESH_RATE(60) |
481 | 481 | MCFG_SCREEN_SIZE(32*8, 32*8) |
482 | 482 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
483 | MCFG_SCREEN_UPDATE_ | |
483 | MCFG_SCREEN_UPDATE_DR | |
484 | 484 | |
485 | 485 | MCFG_GFXDECODE(timeplt) |
486 | 486 | MCFG_PALETTE_LENGTH(32*4+64*4) |
r17967 | r17968 | |
---|---|---|
337 | 337 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
338 | 338 | MCFG_SCREEN_SIZE(40*8, 32*8) |
339 | 339 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
340 | MCFG_SCREEN_UPDATE_ | |
340 | MCFG_SCREEN_UPDATE_DR | |
341 | 341 | |
342 | 342 | MCFG_PALETTE_LENGTH(4096) |
343 | 343 | MCFG_GFXDECODE(pktgaldx) |
r17967 | r17968 | |
376 | 376 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
377 | 377 | MCFG_SCREEN_SIZE(40*8, 32*8) |
378 | 378 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) |
379 | MCFG_SCREEN_UPDATE_ | |
379 | MCFG_SCREEN_UPDATE_DR | |
380 | 380 | |
381 | 381 | MCFG_PALETTE_LENGTH(4096) |
382 | 382 | MCFG_GFXDECODE(bootleg) |
r17967 | r17968 | |
---|---|---|
1446 | 1446 | /* note: these parameters are from published specs, not derived */ |
1447 | 1447 | /* the board uses a pair of GALs to determine H and V parameters */ |
1448 | 1448 | 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) | |
1451 | 1451 | |
1452 | 1452 | MCFG_VIDEO_START_OVERRIDE(atarigx2_state,atarigx2) |
1453 | 1453 |
r17967 | r17968 | |
---|---|---|
254 | 254 | DECLARE_DRIVER_INIT(nwktr); |
255 | 255 | virtual void machine_start(); |
256 | 256 | virtual void machine_reset(); |
257 | UINT32 screen_update_nwktr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
257 | 258 | }; |
258 | 259 | |
259 | 260 | |
r17967 | r17968 | |
273 | 274 | } |
274 | 275 | |
275 | 276 | |
276 | static | |
277 | UINT32 nwktr_state::screen_update_nwktr(screen_device &screen, bitmap_rgb | |
277 | 278 | { |
278 | nwktr_state *state = screen.machine().driver_data<nwktr_state>(); | |
279 | 279 | device_t *voodoo = screen.machine().device("voodoo"); |
280 | 280 | device_t *k001604 = screen.machine().device("k001604"); |
281 | 281 | |
r17967 | r17968 | |
288 | 288 | |
289 | 289 | k001604_draw_front_layer(k001604, bitmap, tilemap_rect); |
290 | 290 | |
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); | |
293 | 293 | return 0; |
294 | 294 | } |
295 | 295 | |
r17967 | r17968 | |
745 | 745 | MCFG_SCREEN_REFRESH_RATE(60) |
746 | 746 | MCFG_SCREEN_SIZE(512, 384) |
747 | 747 | MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383) |
748 | MCFG_SCREEN_UPDATE_ | |
748 | MCFG_SCREEN_UPDATE_DR | |
749 | 749 | |
750 | 750 | MCFG_PALETTE_LENGTH(65536) |
751 | 751 |
r17967 | r17968 | |
---|---|---|
296 | 296 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(3500) /* frames per second, vblank duration (complete guess) */) |
297 | 297 | MCFG_SCREEN_SIZE(32*8, 32*8) |
298 | 298 | MCFG_SCREEN_VISIBLE_AREA(0*8, 31*8-1, 0*8, 32*8-1) |
299 | MCFG_SCREEN_UPDATE_ | |
299 | MCFG_SCREEN_UPDATE_DR | |
300 | 300 | |
301 | 301 | MCFG_GFXDECODE(circus) |
302 | 302 | MCFG_PALETTE_LENGTH(2) |
r17967 | r17968 | |
329 | 329 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(3500) /* frames per second, vblank duration (complete guess) */) |
330 | 330 | MCFG_SCREEN_SIZE(32*8, 32*8) |
331 | 331 | MCFG_SCREEN_VISIBLE_AREA(0*8, 31*8-1, 0*8, 32*8-1) |
332 | MCFG_SCREEN_UPDATE_ | |
332 | MCFG_SCREEN_UPDATE_DR | |
333 | 333 | |
334 | 334 | MCFG_GFXDECODE(robotbwl) |
335 | 335 | MCFG_PALETTE_LENGTH(2) |
r17967 | r17968 | |
369 | 369 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(3500) /* frames per second, vblank duration (complete guess) */) |
370 | 370 | MCFG_SCREEN_SIZE(40*8, 40*8) //TODO |
371 | 371 | MCFG_SCREEN_VISIBLE_AREA(0*8, 31*8-1, 0*8, 32*8-1) |
372 | MCFG_SCREEN_UPDATE_ | |
372 | MCFG_SCREEN_UPDATE_DR | |
373 | 373 | |
374 | 374 | MCFG_GFXDECODE(circus) |
375 | 375 | MCFG_PALETTE_LENGTH(2) |
r17967 | r17968 | |
401 | 401 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(3500) /* frames per second, vblank duration (complete guess) */) |
402 | 402 | MCFG_SCREEN_SIZE(32*8, 32*8) |
403 | 403 | MCFG_SCREEN_VISIBLE_AREA(0*8, 31*8-1, 0*8, 32*8-1) |
404 | MCFG_SCREEN_UPDATE_ | |
404 | MCFG_SCREEN_UPDATE_DR | |
405 | 405 | |
406 | 406 | MCFG_GFXDECODE(circus) |
407 | 407 | MCFG_PALETTE_LENGTH(2) |
r17967 | r17968 | |
---|---|---|
244 | 244 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1041)) |
245 | 245 | MCFG_SCREEN_SIZE(30*24, 32*24) |
246 | 246 | MCFG_SCREEN_VISIBLE_AREA(0, 719, 0, 767) |
247 | MCFG_SCREEN_UPDATE_ | |
247 | MCFG_SCREEN_UPDATE_DR | |
248 | 248 | |
249 | 249 | MCFG_GFXDECODE(tinvader) |
250 | 250 | MCFG_PALETTE_LENGTH(4) |
r17967 | r17968 | |
---|---|---|
346 | 346 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
347 | 347 | MCFG_SCREEN_SIZE(40*8, 32*8) |
348 | 348 | 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) | |
351 | 351 | |
352 | 352 | MCFG_PALETTE_LENGTH(0x800) |
353 | 353 |
r17967 | r17968 | |
---|---|---|
309 | 309 | /* note: these parameters are from published specs, not derived */ |
310 | 310 | /* the board uses a VAD chip to generate video signals */ |
311 | 311 | MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240) |
312 | MCFG_SCREEN_UPDATE_ | |
312 | MCFG_SCREEN_UPDATE_DR | |
313 | 313 | |
314 | 314 | MCFG_VIDEO_START_OVERRIDE(relief_state,relief) |
315 | 315 |
r17967 | r17968 | |
---|---|---|
441 | 441 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(624) /* 58.97 Hz, 624us vblank time */) |
442 | 442 | MCFG_SCREEN_SIZE(40*8+48*2, 32*8) |
443 | 443 | 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) | |
446 | 446 | |
447 | 447 | MCFG_GFXDECODE(taito_f3) |
448 | 448 | MCFG_PALETTE_LENGTH(0x2000) |
r17967 | r17968 | |
535 | 535 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(624) /* 58.97 Hz, 624us vblank time */) |
536 | 536 | MCFG_SCREEN_SIZE(40*8+48*2, 32*8) |
537 | 537 | 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) | |
540 | 540 | |
541 | 541 | MCFG_GFXDECODE(bubsympb) |
542 | 542 | MCFG_PALETTE_LENGTH(8192) |
r17967 | r17968 | |
---|---|---|
103 | 103 | DECLARE_VIDEO_START(jpmsys5v); |
104 | 104 | DECLARE_MACHINE_START(jpmsys5); |
105 | 105 | DECLARE_MACHINE_RESET(jpmsys5); |
106 | UINT32 screen_update_jpmsys5v(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
106 | 107 | }; |
107 | 108 | |
108 | 109 | |
r17967 | r17968 | |
223 | 224 | tms34061_start(machine(), &tms34061intf); |
224 | 225 | } |
225 | 226 | |
226 | stat | |
227 | UINT32 jpmsys5_state::screen | |
227 | 228 | { |
228 | 229 | int x, y; |
229 | 230 | struct tms34061_display state; |
r17967 | r17968 | |
723 | 724 | |
724 | 725 | MCFG_SCREEN_ADD("screen", RASTER) |
725 | 726 | MCFG_SCREEN_RAW_PARAMS(XTAL_40MHz / 4, 676, 20*4, 147*4, 256, 0, 254) |
726 | MCFG_SCREEN_UPDATE_ | |
727 | MCFG_SCREEN_UPDATE_DR | |
727 | 728 | |
728 | 729 | MCFG_VIDEO_START_OVERRIDE(jpmsys5_state,jpmsys5v) |
729 | 730 |
r17967 | r17968 | |
---|---|---|
167 | 167 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
168 | 168 | MCFG_SCREEN_SIZE(64*16, 32*16) |
169 | 169 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1) |
170 | MCFG_SCREEN_UPDATE_ | |
170 | MCFG_SCREEN_UPDATE_DR | |
171 | 171 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) |
172 | 172 | |
173 | 173 | MCFG_GFXDECODE(0x0080000) |
r17967 | r17968 | |
300 | 300 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
301 | 301 | MCFG_SCREEN_SIZE(64*16, 32*16) |
302 | 302 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1) |
303 | MCFG_SCREEN_UPDATE_ | |
303 | MCFG_SCREEN_UPDATE_DR | |
304 | 304 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) |
305 | 305 | |
306 | 306 | MCFG_GFXDECODE(0x0200000) |
r17967 | r17968 | |
541 | 541 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
542 | 542 | MCFG_SCREEN_SIZE(64*16, 32*16) |
543 | 543 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1) |
544 | MCFG_SCREEN_UPDATE_ | |
544 | MCFG_SCREEN_UPDATE_DR | |
545 | 545 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) |
546 | 546 | |
547 | 547 | MCFG_GFXDECODE(0x0400000) |
r17967 | r17968 | |
786 | 786 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
787 | 787 | MCFG_SCREEN_SIZE(64*16, 32*16) |
788 | 788 | MCFG_SCREEN_VISIBLE_AREA(0, 480-1, 16, 256-1) |
789 | MCFG_SCREEN_UPDATE_ | |
789 | MCFG_SCREEN_UPDATE_DR | |
790 | 790 | |
791 | 791 | MCFG_SCREEN_ADD("rscreen", RASTER) |
792 | 792 | MCFG_SCREEN_REFRESH_RATE(59.1) |
793 | 793 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
794 | 794 | MCFG_SCREEN_SIZE(64*16, 32*16) |
795 | 795 | MCFG_SCREEN_VISIBLE_AREA(0, 480-1, 16, 256-1) |
796 | MCFG_SCREEN_UPDATE_ | |
796 | MCFG_SCREEN_UPDATE_DR | |
797 | 797 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) |
798 | 798 | |
799 | 799 | MCFG_VIDEO_START_OVERRIDE(gaelco2_state,gaelco2_dual) |
r17967 | r17968 | |
977 | 977 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
978 | 978 | MCFG_SCREEN_SIZE(64*16, 32*16) |
979 | 979 | MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 16, 256-1) |
980 | MCFG_SCREEN_UPDATE_ | |
980 | MCFG_SCREEN_UPDATE_DR | |
981 | 981 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) |
982 | 982 | |
983 | 983 | MCFG_GFXDECODE(0x0400000) |
r17967 | r17968 | |
1221 | 1221 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1222 | 1222 | MCFG_SCREEN_SIZE(384, 32*16) |
1223 | 1223 | MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 16, 256-1) |
1224 | MCFG_SCREEN_UPDATE_ | |
1224 | MCFG_SCREEN_UPDATE_DR | |
1225 | 1225 | |
1226 | 1226 | MCFG_SCREEN_ADD("rscreen", RASTER) |
1227 | 1227 | MCFG_SCREEN_REFRESH_RATE(59.1) |
1228 | 1228 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
1229 | 1229 | MCFG_SCREEN_SIZE(384, 32*16) |
1230 | 1230 | MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 16, 256-1) |
1231 | MCFG_SCREEN_UPDATE_ | |
1231 | MCFG_SCREEN_UPDATE_DR | |
1232 | 1232 | MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising) |
1233 | 1233 | |
1234 | 1234 |
r17967 | r17968 | |
---|---|---|
397 | 397 | MCFG_SCREEN_REFRESH_RATE(60) |
398 | 398 | MCFG_SCREEN_SIZE(256, 256) |
399 | 399 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1) |
400 | MCFG_SCREEN_UPDATE_ | |
400 | MCFG_SCREEN_UPDATE_DR | |
401 | 401 | |
402 | 402 | MCFG_GFXDECODE(homerun) |
403 | 403 | MCFG_PALETTE_LENGTH(16*4) |
r17967 | r17968 | |
---|---|---|
95 | 95 | * |
96 | 96 | *************************************/ |
97 | 97 | |
98 | stat | |
98 | void champbas_state::screen | |
99 | 99 | { |
100 | 100 | // rising edge |
101 | if ( | |
101 | if (st | |
102 | 102 | { |
103 | champbas_state *state = screen.machine().driver_data<champbas_state>(); | |
104 | state->m_watchdog_count++; | |
103 | m_watchdog_count++; | |
105 | 104 | |
106 | if ( | |
105 | if ( | |
107 | 106 | screen.machine().schedule_soft_reset(); |
108 | 107 | } |
109 | 108 | } |
r17967 | r17968 | |
633 | 632 | MCFG_SCREEN_REFRESH_RATE(60) |
634 | 633 | MCFG_SCREEN_SIZE(32*8, 32*8) |
635 | 634 | 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) | |
638 | 637 | |
639 | 638 | MCFG_GFXDECODE(talbot) |
640 | 639 | MCFG_PALETTE_LENGTH(0x200) |
r17967 | r17968 | |
668 | 667 | MCFG_SCREEN_REFRESH_RATE(60) |
669 | 668 | MCFG_SCREEN_SIZE(32*8, 32*8) |
670 | 669 | 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) | |
673 | 672 | |
674 | 673 | MCFG_GFXDECODE(champbas) |
675 | 674 | MCFG_PALETTE_LENGTH(0x200) |
r17967 | r17968 | |
725 | 724 | MCFG_SCREEN_REFRESH_RATE(60.54) |
726 | 725 | MCFG_SCREEN_SIZE(32*8, 32*8) |
727 | 726 | 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) | |
730 | 729 | |
731 | 730 | MCFG_GFXDECODE(exctsccr) |
732 | 731 | MCFG_PALETTE_LENGTH(0x200) |
r17967 | r17968 | |
776 | 775 | MCFG_SCREEN_REFRESH_RATE(60) |
777 | 776 | MCFG_SCREEN_SIZE(32*8, 32*8) |
778 | 777 | 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) | |
781 | 780 | |
782 | 781 | MCFG_GFXDECODE(exctsccr) |
783 | 782 | MCFG_PALETTE_LENGTH(0x200) |
r17967 | r17968 | |
---|---|---|
205 | 205 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
206 | 206 | MCFG_SCREEN_SIZE(32*8, 32*8) |
207 | 207 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8 - 1, 1*8, 31*8 - 1) |
208 | MCFG_SCREEN_UPDATE_ | |
208 | MCFG_SCREEN_UPDATE_DR | |
209 | 209 | |
210 | 210 | MCFG_GFXDECODE(ssozumo) |
211 | 211 | MCFG_PALETTE_LENGTH(64 + 16) |
r17967 | r17968 | |
---|---|---|
788 | 788 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
789 | 789 | MCFG_SCREEN_SIZE(512, 256) |
790 | 790 | MCFG_SCREEN_VISIBLE_AREA(80, 511-112, 8, 247) /* 320 x 240 */ |
791 | MCFG_SCREEN_UPDATE_ | |
791 | MCFG_SCREEN_UPDATE_DR | |
792 | 792 | |
793 | 793 | MCFG_GFXDECODE(firebarr) |
794 | 794 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
---|---|---|
867 | 867 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
868 | 868 | MCFG_SCREEN_SIZE(36*8, 32*8) |
869 | 869 | MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1) |
870 | MCFG_SCREEN_UPDATE_ | |
870 | MCFG_SCREEN_UPDATE_DR | |
871 | 871 | |
872 | 872 | MCFG_SCREEN_ADD("mscreen", RASTER) |
873 | 873 | MCFG_SCREEN_REFRESH_RATE(60) |
874 | 874 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
875 | 875 | MCFG_SCREEN_SIZE(36*8, 32*8) |
876 | 876 | MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1) |
877 | MCFG_SCREEN_UPDATE_ | |
877 | MCFG_SCREEN_UPDATE_DR | |
878 | 878 | |
879 | 879 | MCFG_SCREEN_ADD("rscreen", RASTER) |
880 | 880 | MCFG_SCREEN_REFRESH_RATE(60) |
881 | 881 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
882 | 882 | MCFG_SCREEN_SIZE(36*8, 32*8) |
883 | 883 | MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1) |
884 | MCFG_SCREEN_UPDATE_ | |
884 | MCFG_SCREEN_UPDATE_DR | |
885 | 885 | |
886 | 886 | |
887 | 887 | MCFG_TC0100SCN_ADD("tc0100scn_1", darius2_tc0100scn_intf_l) |
r17967 | r17968 | |
947 | 947 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
948 | 948 | MCFG_SCREEN_SIZE(36*8, 32*8) |
949 | 949 | MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1) |
950 | MCFG_SCREEN_UPDATE_ | |
950 | MCFG_SCREEN_UPDATE_DR | |
951 | 951 | |
952 | 952 | MCFG_SCREEN_ADD("mscreen", RASTER) |
953 | 953 | MCFG_SCREEN_REFRESH_RATE(60) |
954 | 954 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
955 | 955 | MCFG_SCREEN_SIZE(36*8, 32*8) |
956 | 956 | MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1) |
957 | MCFG_SCREEN_UPDATE_ | |
957 | MCFG_SCREEN_UPDATE_DR | |
958 | 958 | |
959 | 959 | MCFG_SCREEN_ADD("rscreen", RASTER) |
960 | 960 | MCFG_SCREEN_REFRESH_RATE(60) |
961 | 961 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
962 | 962 | MCFG_SCREEN_SIZE(36*8, 32*8) |
963 | 963 | MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1) |
964 | MCFG_SCREEN_UPDATE_ | |
964 | MCFG_SCREEN_UPDATE_DR | |
965 | 965 | |
966 | 966 | |
967 | 967 | MCFG_TC0100SCN_ADD("tc0100scn_1", darius2_tc0100scn_intf_l) |
r17967 | r17968 | |
---|---|---|
745 | 745 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2062)) // 32 lines |
746 | 746 | MCFG_SCREEN_SIZE(40*8, 32*8) |
747 | 747 | 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) | |
750 | 750 | |
751 | 751 | MCFG_GFXDECODE(twin16) |
752 | 752 | MCFG_PALETTE_LENGTH(0x400) |
r17967 | r17968 | |
799 | 799 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
800 | 800 | MCFG_SCREEN_SIZE(40*8, 32*8) |
801 | 801 | 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) | |
804 | 804 | |
805 | 805 | MCFG_GFXDECODE(twin16) |
806 | 806 | MCFG_PALETTE_LENGTH(0x400) |
r17967 | r17968 | |
---|---|---|
1036 | 1036 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1037 | 1037 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1038 | 1038 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
1039 | MCFG_SCREEN_UPDATE_ | |
1039 | MCFG_SCREEN_UPDATE_DR | |
1040 | 1040 | |
1041 | 1041 | MCFG_GFXDECODE(arkanoid) |
1042 | 1042 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
1069 | 1069 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1070 | 1070 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1071 | 1071 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
1072 | MCFG_SCREEN_UPDATE_ | |
1072 | MCFG_SCREEN_UPDATE_DR | |
1073 | 1073 | |
1074 | 1074 | MCFG_GFXDECODE(hexa) |
1075 | 1075 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
1481 | 1481 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1482 | 1482 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1483 | 1483 | 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) | |
1486 | 1486 | |
1487 | 1487 | MCFG_GFXDECODE(ABC) |
1488 | 1488 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
1541 | 1541 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1542 | 1542 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1543 | 1543 | 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) | |
1546 | 1546 | |
1547 | 1547 | MCFG_GFXDECODE(ABC) |
1548 | 1548 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
1613 | 1613 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1614 | 1614 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1615 | 1615 | 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) | |
1618 | 1618 | |
1619 | 1619 | MCFG_GFXDECODE(ABC) |
1620 | 1620 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
1676 | 1676 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1677 | 1677 | MCFG_SCREEN_SIZE(32*8, 32*8) |
1678 | 1678 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
1679 | MCFG_SCREEN_UPDATE_ | |
1679 | MCFG_SCREEN_UPDATE_DR | |
1680 | 1680 | |
1681 | 1681 | MCFG_GFXDECODE(Z) |
1682 | 1682 | MCFG_PALETTE_LENGTH(768) |
r17967 | r17968 | |
---|---|---|
475 | 475 | MCFG_SCREEN_REFRESH_RATE(60) |
476 | 476 | MCFG_SCREEN_SIZE(64*8, 32*8) |
477 | 477 | 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) | |
480 | 480 | |
481 | 481 | MCFG_GFXDECODE(crshrace) |
482 | 482 | MCFG_PALETTE_LENGTH(2048) |
r17967 | r17968 | |
---|---|---|
647 | 647 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
648 | 648 | MCFG_SCREEN_SIZE(32*8, 32*8) |
649 | 649 | 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) | |
652 | 652 | |
653 | 653 | MCFG_GFXDECODE(airbustr) |
654 | 654 | MCFG_PALETTE_LENGTH(768) |
r17967 | r17968 | |
---|---|---|
3303 | 3303 | |
3304 | 3304 | MCFG_SCREEN_ADD("screen", RASTER) |
3305 | 3305 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
3306 | MCFG_SCREEN_UPDATE_ | |
3306 | MCFG_SCREEN_UPDATE_DR | |
3307 | 3307 | |
3308 | 3308 | MCFG_PALETTE_INIT_OVERRIDE(pacman_state,pacman) |
3309 | 3309 | MCFG_VIDEO_START_OVERRIDE(pacman_state,pacman) |
r17967 | r17968 | |
3456 | 3456 | MCFG_SCREEN_SIZE(32*8, 32*8) |
3457 | 3457 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
3458 | 3458 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
3459 | MCFG_SCREEN_UPDATE_ | |
3459 | MCFG_SCREEN_UPDATE_DR | |
3460 | 3460 | |
3461 | 3461 | MCFG_VIDEO_START_OVERRIDE(pacman_state,s2650games) |
3462 | 3462 |
r17967 | r17968 | |
---|---|---|
196 | 196 | DECLARE_DRIVER_INIT(vbowlj); |
197 | 197 | DECLARE_DRIVER_INIT(ryukobou); |
198 | 198 | 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); | |
199 | 201 | }; |
200 | 202 | |
201 | 203 | |
r17967 | r17968 | |
243 | 245 | m_lhb2_pen_hi = 0; |
244 | 246 | } |
245 | 247 | |
246 | stat | |
248 | UINT32 igs011_state::screen | |
247 | 249 | { |
248 | igs011_state *state = screen.machine().driver_data<igs011_state>(); | |
249 | 250 | #ifdef MAME_DEBUG |
250 | 251 | int layer_enable = -1; |
251 | 252 | #endif |
r17967 | r17968 | |
269 | 270 | } |
270 | 271 | #endif |
271 | 272 | |
272 | pri_ram = & | |
273 | pri_ram = & | |
273 | 274 | |
274 | 275 | for (y = cliprect.min_y; y <= cliprect.max_y; y++) |
275 | 276 | { |
r17967 | r17968 | |
280 | 281 | |
281 | 282 | for (l = 0; l < 8; l++) |
282 | 283 | { |
283 | if ( ( | |
284 | if ( ( | |
284 | 285 | #ifdef MAME_DEBUG |
285 | 286 | && (layer_enable & (1 << l)) |
286 | 287 | #endif |
r17967 | r17968 | |
296 | 297 | bitmap.pix16(y, x) = get_black_pen(screen.machine()); |
297 | 298 | else |
298 | 299 | #endif |
299 | bitmap.pix16(y, x) = | |
300 | bitmap.pix16(y, x) = | |
300 | 301 | } |
301 | 302 | } |
302 | 303 | return 0; |
r17967 | r17968 | |
2488 | 2489 | return 0xffff; |
2489 | 2490 | } |
2490 | 2491 | |
2491 | stat | |
2492 | void igs011_state::screen | |
2492 | 2493 | { |
2493 | 2494 | // rising edge |
2494 | if ( | |
2495 | if (st | |
2495 | 2496 | { |
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(); | |
2499 | 2499 | } |
2500 | 2500 | } |
2501 | 2501 | |
r17967 | r17968 | |
3809 | 3809 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
3810 | 3810 | MCFG_SCREEN_SIZE(512, 256) |
3811 | 3811 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 240-1) |
3812 | MCFG_SCREEN_UPDATE_ | |
3812 | MCFG_SCREEN_UPDATE_DR | |
3813 | 3813 | |
3814 | 3814 | MCFG_PALETTE_LENGTH(0x800) |
3815 | 3815 | // MCFG_GFXDECODE(igs011) |
r17967 | r17968 | |
3944 | 3944 | // irq 4 points to an apparently unneeded routine |
3945 | 3945 | |
3946 | 3946 | MCFG_SCREEN_MODIFY("screen") |
3947 | MCFG_SCREEN_VBLANK_ | |
3947 | MCFG_SCREEN_VBLANK_DR | |
3948 | 3948 | // MCFG_GFXDECODE(igs011_hi) |
3949 | 3949 | |
3950 | 3950 | MCFG_DEVICE_REMOVE("oki") |
r17967 | r17968 | |
---|---|---|
387 | 387 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(600)) // must be long enough for polling |
388 | 388 | MCFG_SCREEN_SIZE(32*8, 32*8) |
389 | 389 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
390 | MCFG_SCREEN_UPDATE_ | |
390 | MCFG_SCREEN_UPDATE_DR | |
391 | 391 | |
392 | 392 | MCFG_GFXDECODE(bwing) |
393 | 393 | MCFG_PALETTE_LENGTH(64) |
r17967 | r17968 | |
---|---|---|
105 | 105 | DECLARE_READ16_MEMBER(srmp6_irq_ack_r); |
106 | 106 | DECLARE_DRIVER_INIT(INIT); |
107 | 107 | virtual void video_start(); |
108 | UINT32 screen_update_srmp6(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
108 | 109 | }; |
109 | 110 | |
110 | 111 | #define VERBOSE 0 |
r17967 | r17968 | |
172 | 173 | static int xixi=0; |
173 | 174 | #endif |
174 | 175 | |
175 | static | |
176 | UINT32 srmp6_state::screen_update_srmp6(screen_device &screen, bitmap_rgb | |
176 | 177 | { |
177 | srmp6_state *state = screen.machine().driver_data<srmp6_state>(); | |
178 | 178 | int alpha; |
179 | 179 | int x,y,tileno,height,width,xw,yw,sprite,xb,yb; |
180 | UINT16 *sprite_list = | |
180 | UINT16 *sprite_list = | |
181 | 181 | UINT16 mainlist_offset = 0; |
182 | 182 | |
183 | 183 | union |
r17967 | r17968 | |
207 | 207 | while (mainlist_offset<0x2000/2) |
208 | 208 | { |
209 | 209 | |
210 | UINT16 *sprite_sublist = & | |
210 | UINT16 *sprite_sublist = & | |
211 | 211 | UINT16 sublist_length=sprite_list[mainlist_offset+0]&0x7fff; //+1 ? |
212 | 212 | INT16 global_x,global_y, flip_x, flip_y; |
213 | 213 | UINT16 global_pal; |
r17967 | r17968 | |
285 | 285 | mainlist_offset+=8; |
286 | 286 | } |
287 | 287 | |
288 | memcpy( | |
288 | memcpy( | |
289 | 289 | |
290 | 290 | if(screen.machine().input().code_pressed_once(KEYCODE_Q)) |
291 | 291 | { |
292 | 292 | FILE *p=fopen("tileram.bin","wb"); |
293 | fwrite( | |
293 | fwrite( | |
294 | 294 | fclose(p); |
295 | 295 | } |
296 | 296 | |
r17967 | r17968 | |
681 | 681 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
682 | 682 | MCFG_SCREEN_SIZE(64*8, 64*8) |
683 | 683 | MCFG_SCREEN_VISIBLE_AREA(0*8, 42*8-1, 0*8, 30*8-1) |
684 | MCFG_SCREEN_UPDATE_ | |
684 | MCFG_SCREEN_UPDATE_DR | |
685 | 685 | |
686 | 686 | MCFG_PALETTE_LENGTH(0x800) |
687 | 687 |
r17967 | r17968 | |
---|---|---|
856 | 856 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
857 | 857 | MCFG_SCREEN_SIZE(64*8, 32*8) |
858 | 858 | MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 ) |
859 | MCFG_SCREEN_UPDATE_ | |
859 | MCFG_SCREEN_UPDATE_DR | |
860 | 860 | |
861 | 861 | MCFG_GFXDECODE(sf) |
862 | 862 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
32 | 32 | virtual void machine_reset(); |
33 | 33 | virtual void video_start(); |
34 | 34 | virtual void palette_init(); |
35 | UINT32 screen_update_cball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
35 | 36 | }; |
36 | 37 | |
37 | 38 | |
r17967 | r17968 | |
56 | 57 | } |
57 | 58 | |
58 | 59 | |
59 | static | |
60 | UINT32 cball_state::screen_update_cball(screen_device &screen, bitmap_ind | |
60 | 61 | { |
61 | cball_state *state = screen.machine().driver_data<cball_state>(); | |
62 | 62 | |
63 | 63 | /* draw playfield */ |
64 | | |
64 | | |
65 | 65 | |
66 | 66 | /* draw sprite */ |
67 | 67 | drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1], |
68 | | |
68 | | |
69 | 69 | 0, |
70 | 70 | 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); | |
73 | 73 | return 0; |
74 | 74 | } |
75 | 75 | |
r17967 | r17968 | |
236 | 236 | MCFG_SCREEN_REFRESH_RATE(60) |
237 | 237 | MCFG_SCREEN_SIZE(256, 262) |
238 | 238 | MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 223) |
239 | MCFG_SCREEN_UPDATE_ | |
239 | MCFG_SCREEN_UPDATE_DR | |
240 | 240 | |
241 | 241 | MCFG_GFXDECODE(cball) |
242 | 242 | MCFG_PALETTE_LENGTH(6) |
r17967 | r17968 | |
---|---|---|
249 | 249 | DECLARE_READ64_MEMBER(cpu_r); |
250 | 250 | DECLARE_DRIVER_INIT(m2); |
251 | 251 | virtual void video_start(); |
252 | UINT32 screen_update_m2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
252 | 253 | }; |
253 | 254 | |
254 | 255 | |
r17967 | r17968 | |
256 | 257 | { |
257 | 258 | } |
258 | 259 | |
259 | static | |
260 | UINT32 konamim2_state::screen_update_m2(screen_device &screen, bitmap_ind | |
260 | 261 | { |
261 | konamim2_state *state = screen.machine().driver_data<konamim2_state>(); | |
262 | 262 | int i, j; |
263 | 263 | |
264 | 264 | UINT32 fb_start = 0xffffffff; |
265 | if ( | |
265 | if ( | |
266 | 266 | { |
267 | fb_start = *(UINT32*)& | |
267 | fb_start = *(UINT32*)& | |
268 | 268 | } |
269 | 269 | |
270 | 270 | if (fb_start <= 0x800000) |
271 | 271 | { |
272 | UINT16 *frame = (UINT16*)& | |
272 | UINT16 *frame = (UINT16*)& | |
273 | 273 | for (j=0; j < 384; j++) |
274 | 274 | { |
275 | 275 | UINT16 *fb = &frame[(j*512)]; |
r17967 | r17968 | |
1184 | 1184 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1185 | 1185 | MCFG_SCREEN_SIZE(640, 480) |
1186 | 1186 | MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383) |
1187 | MCFG_SCREEN_UPDATE_ | |
1187 | MCFG_SCREEN_UPDATE_DR | |
1188 | 1188 | |
1189 | 1189 | MCFG_PALETTE_LENGTH(32768) |
1190 | 1190 | MCFG_PALETTE_INIT(RRRRR_GGGGG_BBBBB) |
r17967 | r17968 | |
---|---|---|
1868 | 1868 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1869 | 1869 | MCFG_SCREEN_SIZE(320, 240) |
1870 | 1870 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) |
1871 | MCFG_SCREEN_UPDATE_ | |
1871 | MCFG_SCREEN_UPDATE_DR | |
1872 | 1872 | |
1873 | 1873 | MCFG_GFXDECODE(dfeveron) |
1874 | 1874 | MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */ |
r17967 | r17968 | |
1910 | 1910 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1911 | 1911 | MCFG_SCREEN_SIZE(320, 240) |
1912 | 1912 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) |
1913 | MCFG_SCREEN_UPDATE_ | |
1913 | MCFG_SCREEN_UPDATE_DR | |
1914 | 1914 | |
1915 | 1915 | MCFG_GFXDECODE(ddonpach) |
1916 | 1916 | MCFG_PALETTE_LENGTH(0x8000 + 0x40*16) // $400 extra entries for layers 1&2 |
r17967 | r17968 | |
1956 | 1956 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1957 | 1957 | MCFG_SCREEN_SIZE(320, 240) |
1958 | 1958 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) |
1959 | MCFG_SCREEN_UPDATE_ | |
1959 | MCFG_SCREEN_UPDATE_DR | |
1960 | 1960 | |
1961 | 1961 | MCFG_GFXDECODE(donpachi) |
1962 | 1962 | MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */ |
r17967 | r17968 | |
2002 | 2002 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2003 | 2003 | MCFG_SCREEN_SIZE(320, 240) |
2004 | 2004 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) |
2005 | MCFG_SCREEN_UPDATE_ | |
2005 | MCFG_SCREEN_UPDATE_DR | |
2006 | 2006 | |
2007 | 2007 | MCFG_GFXDECODE(esprade) |
2008 | 2008 | MCFG_PALETTE_LENGTH(0x8000) |
r17967 | r17968 | |
2042 | 2042 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2043 | 2043 | MCFG_SCREEN_SIZE(320, 240) |
2044 | 2044 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1) |
2045 | MCFG_SCREEN_UPDATE_ | |
2045 | MCFG_SCREEN_UPDATE_DR | |
2046 | 2046 | |
2047 | 2047 | MCFG_GFXDECODE(esprade) |
2048 | 2048 | MCFG_PALETTE_LENGTH(0x8000) |
r17967 | r17968 | |
2083 | 2083 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2084 | 2084 | MCFG_SCREEN_SIZE(320, 240) |
2085 | 2085 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) |
2086 | MCFG_SCREEN_UPDATE_ | |
2086 | MCFG_SCREEN_UPDATE_DR | |
2087 | 2087 | |
2088 | 2088 | MCFG_GFXDECODE(esprade) |
2089 | 2089 | MCFG_PALETTE_LENGTH(0x8000) |
r17967 | r17968 | |
2127 | 2127 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2128 | 2128 | MCFG_SCREEN_SIZE(384, 240) |
2129 | 2129 | MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 240-1) |
2130 | MCFG_SCREEN_UPDATE_ | |
2130 | MCFG_SCREEN_UPDATE_DR | |
2131 | 2131 | |
2132 | 2132 | MCFG_GFXDECODE(hotdogst) |
2133 | 2133 | MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */ |
r17967 | r17968 | |
2179 | 2179 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2180 | 2180 | MCFG_SCREEN_SIZE(320, 240) |
2181 | 2181 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1-2, 0, 240-1-1) |
2182 | MCFG_SCREEN_UPDATE_ | |
2182 | MCFG_SCREEN_UPDATE_DR | |
2183 | 2183 | |
2184 | 2184 | MCFG_GFXDECODE(korokoro) |
2185 | 2185 | MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */ |
r17967 | r17968 | |
2233 | 2233 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2234 | 2234 | MCFG_SCREEN_SIZE(384, 240) |
2235 | 2235 | MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 240-1) |
2236 | MCFG_SCREEN_UPDATE_ | |
2236 | MCFG_SCREEN_UPDATE_DR | |
2237 | 2237 | |
2238 | 2238 | MCFG_GFXDECODE(mazinger) |
2239 | 2239 | MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */ |
r17967 | r17968 | |
2291 | 2291 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2292 | 2292 | MCFG_SCREEN_SIZE(0x200, 240) |
2293 | 2293 | MCFG_SCREEN_VISIBLE_AREA(0x7d, 0x7d + 0x180-1, 0, 240-1) |
2294 | MCFG_SCREEN_UPDATE_ | |
2294 | MCFG_SCREEN_UPDATE_DR | |
2295 | 2295 | |
2296 | 2296 | MCFG_GFXDECODE(donpachi) |
2297 | 2297 | MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */ |
r17967 | r17968 | |
2346 | 2346 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2347 | 2347 | MCFG_SCREEN_SIZE(0x200, 240) |
2348 | 2348 | MCFG_SCREEN_VISIBLE_AREA(0x80, 0x80 + 0x140-1, 0, 240-1) |
2349 | MCFG_SCREEN_UPDATE_ | |
2349 | MCFG_SCREEN_UPDATE_DR | |
2350 | 2350 | |
2351 | 2351 | MCFG_GFXDECODE(tjumpman) |
2352 | 2352 | MCFG_PALETTE_LENGTH(0x8000) |
r17967 | r17968 | |
2402 | 2402 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2403 | 2403 | MCFG_SCREEN_SIZE(0x200, 240) |
2404 | 2404 | MCFG_SCREEN_VISIBLE_AREA(0x70, 0x70 + 0x140-1, 0, 240-1) |
2405 | MCFG_SCREEN_UPDATE_ | |
2405 | MCFG_SCREEN_UPDATE_DR | |
2406 | 2406 | |
2407 | 2407 | MCFG_GFXDECODE(pwrinst2) |
2408 | 2408 | MCFG_PALETTE_LENGTH(0x8000+0x2800) |
r17967 | r17968 | |
2465 | 2465 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2466 | 2466 | MCFG_SCREEN_SIZE(320+1, 240) |
2467 | 2467 | MCFG_SCREEN_VISIBLE_AREA(0+1, 320+1-1, 0, 240-1) |
2468 | MCFG_SCREEN_UPDATE_ | |
2468 | MCFG_SCREEN_UPDATE_DR | |
2469 | 2469 | |
2470 | 2470 | MCFG_GFXDECODE(sailormn) |
2471 | 2471 | MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */ |
r17967 | r17968 | |
2519 | 2519 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2520 | 2520 | MCFG_SCREEN_SIZE(0x200, 240) |
2521 | 2521 | MCFG_SCREEN_VISIBLE_AREA(0x80, 0x80 + 0x140-1, 0, 240-1) |
2522 | MCFG_SCREEN_UPDATE_ | |
2522 | MCFG_SCREEN_UPDATE_DR | |
2523 | 2523 | |
2524 | 2524 | MCFG_GFXDECODE(tjumpman) |
2525 | 2525 | MCFG_PALETTE_LENGTH(0x8000) |
r17967 | r17968 | |
2560 | 2560 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
2561 | 2561 | MCFG_SCREEN_SIZE(320, 240) |
2562 | 2562 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) |
2563 | MCFG_SCREEN_UPDATE_ | |
2563 | MCFG_SCREEN_UPDATE_DR | |
2564 | 2564 | |
2565 | 2565 | MCFG_GFXDECODE(uopoko) |
2566 | 2566 | MCFG_PALETTE_LENGTH(0x8000) |
r17967 | r17968 | |
---|---|---|
1451 | 1451 | |
1452 | 1452 | MCFG_SCREEN_ADD("screen", RASTER) |
1453 | 1453 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK*2/3, 512, 10, 304, 260, 7, 245) |
1454 | MCFG_SCREEN_UPDATE_ | |
1454 | MCFG_SCREEN_UPDATE_DR | |
1455 | 1455 | |
1456 | 1456 | MCFG_VIDEO_START_OVERRIDE(williams_state,williams) |
1457 | 1457 | |
r17967 | r17968 | |
1590 | 1590 | /* video hardware */ |
1591 | 1591 | MCFG_VIDEO_START_OVERRIDE(williams_state,blaster) |
1592 | 1592 | MCFG_SCREEN_MODIFY("screen") |
1593 | MCFG_SCREEN_UPDATE_ | |
1593 | MCFG_SCREEN_UPDATE_DR | |
1594 | 1594 | |
1595 | 1595 | /* pia */ |
1596 | 1596 | MCFG_PIA6821_MODIFY("pia_0", williams_49way_muxed_pia_0_intf) |
r17967 | r17968 | |
1643 | 1643 | |
1644 | 1644 | MCFG_SCREEN_ADD("screen", RASTER) |
1645 | 1645 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK*2/3, 512, 8, 284, 260, 8, 248) |
1646 | MCFG_SCREEN_UPDATE_ | |
1646 | MCFG_SCREEN_UPDATE_DR | |
1647 | 1647 | |
1648 | 1648 | MCFG_VIDEO_START_OVERRIDE(williams_state,williams2) |
1649 | 1649 |
r17967 | r17968 | |
---|---|---|
66 | 66 | } |
67 | 67 | |
68 | 68 | /* Only used by ghostb, gondo, garyoret, other games can control buffering */ |
69 | stat | |
69 | void dec8_state::screen | |
70 | 70 | { |
71 | dec8_state *state = screen.machine().driver_data<dec8_state>(); | |
72 | 71 | // rising edge |
73 | if ( | |
72 | if (st | |
74 | 73 | { |
75 | 74 | address_space &space = *screen.machine().device("maincpu")->memory().space(AS_PROGRAM); |
76 | | |
75 | | |
77 | 76 | } |
78 | 77 | } |
79 | 78 | |
r17967 | r17968 | |
2056 | 2055 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* 58Hz, 529ms Vblank duration */) |
2057 | 2056 | MCFG_SCREEN_SIZE(32*8, 32*8) |
2058 | 2057 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
2059 | MCFG_SCREEN_UPDATE_ | |
2058 | MCFG_SCREEN_UPDATE_DR | |
2060 | 2059 | |
2061 | 2060 | MCFG_GFXDECODE(shackled) |
2062 | 2061 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
2103 | 2102 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* 58Hz, 529ms Vblank duration */) |
2104 | 2103 | MCFG_SCREEN_SIZE(32*8, 32*8) |
2105 | 2104 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
2106 | MCFG_SCREEN_UPDATE_ | |
2105 | MCFG_SCREEN_UPDATE_DR | |
2107 | 2106 | |
2108 | 2107 | MCFG_GFXDECODE(shackled) |
2109 | 2108 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
2150 | 2149 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 58Hz, 529ms Vblank duration */) |
2151 | 2150 | MCFG_SCREEN_SIZE(32*8, 32*8) |
2152 | 2151 | 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) | |
2155 | 2154 | |
2156 | 2155 | MCFG_GFXDECODE(gondo) |
2157 | 2156 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
2198 | 2197 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 58Hz, 529ms Vblank duration */) |
2199 | 2198 | MCFG_SCREEN_SIZE(32*8, 32*8) |
2200 | 2199 | 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) | |
2203 | 2202 | |
2204 | 2203 | MCFG_GFXDECODE(gondo) |
2205 | 2204 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
2249 | 2248 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* 58Hz, 529ms Vblank duration */) |
2250 | 2249 | MCFG_SCREEN_SIZE(32*8, 32*8) |
2251 | 2250 | 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) | |
2254 | 2253 | |
2255 | 2254 | MCFG_GFXDECODE(ghostb) |
2256 | 2255 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
2299 | 2298 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 58Hz, 529ms Vblank duration */) |
2300 | 2299 | MCFG_SCREEN_SIZE(32*8, 32*8) |
2301 | 2300 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
2302 | MCFG_SCREEN_UPDATE_ | |
2301 | MCFG_SCREEN_UPDATE_DR | |
2303 | 2302 | |
2304 | 2303 | MCFG_GFXDECODE(shackled) |
2305 | 2304 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
2354 | 2353 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* 58Hz, 529ms Vblank duration */) |
2355 | 2354 | MCFG_SCREEN_SIZE(32*8, 32*8) |
2356 | 2355 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
2357 | MCFG_SCREEN_UPDATE_ | |
2356 | MCFG_SCREEN_UPDATE_DR | |
2358 | 2357 | |
2359 | 2358 | MCFG_GFXDECODE(oscar) |
2360 | 2359 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
2395 | 2394 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 58Hz, 529ms Vblank duration */) |
2396 | 2395 | MCFG_SCREEN_SIZE(32*8, 32*8) |
2397 | 2396 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
2398 | MCFG_SCREEN_UPDATE_ | |
2397 | MCFG_SCREEN_UPDATE_DR | |
2399 | 2398 | |
2400 | 2399 | MCFG_GFXDECODE(srdarwin) |
2401 | 2400 | MCFG_PALETTE_LENGTH(144) |
r17967 | r17968 | |
2445 | 2444 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 58Hz, 529ms Vblank duration */) |
2446 | 2445 | MCFG_SCREEN_SIZE(32*8, 32*8) |
2447 | 2446 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1) |
2448 | MCFG_SCREEN_UPDATE_ | |
2447 | MCFG_SCREEN_UPDATE_DR | |
2449 | 2448 | |
2450 | 2449 | MCFG_GFXDECODE(cobracom) |
2451 | 2450 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
605 | 605 | MCFG_SCREEN_REFRESH_RATE(60) |
606 | 606 | MCFG_SCREEN_SIZE(64*8, 32*8) |
607 | 607 | 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) | |
610 | 610 | |
611 | 611 | MCFG_GFXDECODE(fuuki32) |
612 | 612 | MCFG_PALETTE_LENGTH(0x4000/2) |
r17967 | r17968 | |
---|---|---|
62 | 62 | virtual void machine_start(); |
63 | 63 | virtual void machine_reset(); |
64 | 64 | virtual void video_start(); |
65 | UINT32 screen_update_chance32(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
65 | 66 | }; |
66 | 67 | |
67 | 68 | |
r17967 | r17968 | |
101 | 102 | } |
102 | 103 | |
103 | 104 | |
104 | ||
105 | ||
105 | 106 | { |
106 | chance32_state *state = screen.machine().driver_data<chance32_state>(); | |
107 | 107 | |
108 | 108 | /* 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); | |
113 | 113 | |
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); | |
116 | 116 | |
117 | 117 | return 0; |
118 | 118 | } |
r17967 | r17968 | |
481 | 481 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
482 | 482 | MCFG_SCREEN_SIZE(40*16, 32*8) |
483 | 483 | MCFG_SCREEN_VISIBLE_AREA(0, 35*16-1, 0, 29*8-1) |
484 | MCFG_SCREEN_UPDATE_ | |
484 | MCFG_SCREEN_UPDATE_DR | |
485 | 485 | |
486 | 486 | MCFG_MC6845_ADD("crtc", H46505, 12000000/16, mc6845_intf) /* 52.786 Hz (similar to Major Poker) */ |
487 | 487 |
r17967 | r17968 | |
---|---|---|
482 | 482 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
483 | 483 | MCFG_SCREEN_SIZE(32*8, 32*8) |
484 | 484 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
485 | MCFG_SCREEN_UPDATE_ | |
485 | MCFG_SCREEN_UPDATE_DR | |
486 | 486 | |
487 | 487 | MCFG_SCREEN_ADD("rscreen", RASTER) |
488 | 488 | MCFG_SCREEN_REFRESH_RATE(60) |
489 | 489 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
490 | 490 | MCFG_SCREEN_SIZE(32*8, 32*8) |
491 | 491 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
492 | MCFG_SCREEN_UPDATE_ | |
492 | MCFG_SCREEN_UPDATE_DR | |
493 | 493 | |
494 | 494 | |
495 | 495 |
r17967 | r17968 | |
---|---|---|
303 | 303 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
304 | 304 | MCFG_SCREEN_SIZE(32 * 8, 32 * 8) |
305 | 305 | MCFG_SCREEN_VISIBLE_AREA(1 * 8, 31 * 8 - 1, 0 * 8, 32 * 8 - 1) |
306 | MCFG_SCREEN_UPDATE_ | |
306 | MCFG_SCREEN_UPDATE_DR | |
307 | 307 | |
308 | 308 | MCFG_GFXDECODE(battlane) |
309 | 309 | MCFG_PALETTE_LENGTH(64) |
r17967 | r17968 | |
---|---|---|
826 | 826 | /* note: these parameters are from published specs, not derived */ |
827 | 827 | /* the board uses a pair of GALs to determine H and V parameters */ |
828 | 828 | 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) | |
831 | 831 | |
832 | 832 | MCFG_VIDEO_START_OVERRIDE(atarigt_state,atarigt) |
833 | 833 |
r17967 | r17968 | |
---|---|---|
296 | 296 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
297 | 297 | MCFG_SCREEN_SIZE(64*8, 32*8) |
298 | 298 | MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 ) |
299 | MCFG_SCREEN_UPDATE_ | |
299 | MCFG_SCREEN_UPDATE_DR | |
300 | 300 | |
301 | 301 | MCFG_PALETTE_LENGTH(512) |
302 | 302 |
r17967 | r17968 | |
---|---|---|
137 | 137 | TILE_GET_INFO_MEMBER(get_rabbit_tilemap2_tile_info); |
138 | 138 | TILE_GET_INFO_MEMBER(get_rabbit_tilemap3_tile_info); |
139 | 139 | virtual void video_start(); |
140 | UINT32 screen_update_rabbit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
140 | 141 | }; |
141 | 142 | |
142 | 143 | |
r17967 | r17968 | |
461 | 462 | tran ? 0 : TILEMAP_DRAW_OPAQUE,0); |
462 | 463 | } |
463 | 464 | |
464 | static | |
465 | UINT32 rabbit_state::screen_update_rabbit(screen_device &screen, bitmap_ind | |
465 | 466 | { |
466 | rabbit_state *state = screen.machine().driver_data<rabbit_state>(); | |
467 | 467 | int prilevel; |
468 | 468 | |
469 | 469 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
470 | 470 | |
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]); | |
481 | 481 | |
482 | // popmessage("%08x %08x %08x %08x %08x", | |
482 | // popmessage("%08x %08x %08x %08x %08x", | |
483 | 483 | |
484 | 484 | /* prio isnt certain but seems to work.. */ |
485 | 485 | for (prilevel = 0xf; prilevel >0; prilevel--) |
486 | 486 | { |
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); | |
491 | 491 | |
492 | 492 | if (prilevel == 0x09) // should it be selectable? |
493 | 493 | { |
r17967 | r17968 | |
891 | 891 | MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1) |
892 | 892 | // MCFG_SCREEN_VISIBLE_AREA(0*8, 64*16-1, 0*16, 64*16-1) |
893 | 893 | // MCFG_SCREEN_VISIBLE_AREA(0*8, 20*16-1, 32*16, 48*16-1) |
894 | MCFG_SCREEN_UPDATE_ | |
894 | MCFG_SCREEN_UPDATE_DR | |
895 | 895 | |
896 | 896 | MCFG_PALETTE_LENGTH(0x4000) |
897 | 897 | MCFG_PALETTE_INIT( all_black ) |
r17967 | r17968 | |
---|---|---|
320 | 320 | MCFG_SCREEN_REFRESH_RATE(60) |
321 | 321 | MCFG_SCREEN_SIZE(256, 262) |
322 | 322 | MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239) |
323 | MCFG_SCREEN_UPDATE_ | |
323 | MCFG_SCREEN_UPDATE_DR | |
324 | 324 | |
325 | 325 | MCFG_GFXDECODE(triplhnt) |
326 | 326 | MCFG_PALETTE_LENGTH(8) |
r17967 | r17968 | |
---|---|---|
870 | 870 | memset(m_cval, 0, 26); |
871 | 871 | } |
872 | 872 | |
873 | stat | |
873 | void asuka_state::screen | |
874 | 874 | { |
875 | 875 | // rising edge |
876 | if ( | |
876 | if (st | |
877 | 877 | { |
878 | asuka_state *state = screen.machine().driver_data<asuka_state>(); | |
879 | pc090oj_eof_callback(state->m_pc090oj); | |
878 | pc090oj_eof_callback(m_pc090oj); | |
880 | 879 | } |
881 | 880 | } |
882 | 881 | |
r17967 | r17968 | |
911 | 910 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
912 | 911 | MCFG_SCREEN_SIZE(40*8, 32*8) |
913 | 912 | 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) | |
916 | 915 | |
917 | 916 | MCFG_GFXDECODE(asuka) |
918 | 917 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
954 | 953 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
955 | 954 | MCFG_SCREEN_SIZE(40*8, 32*8) |
956 | 955 | 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) | |
959 | 958 | |
960 | 959 | MCFG_GFXDECODE(asuka) |
961 | 960 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
1004 | 1003 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1005 | 1004 | MCFG_SCREEN_SIZE(40*8, 32*8) |
1006 | 1005 | 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) | |
1009 | 1008 | |
1010 | 1009 | MCFG_GFXDECODE(asuka) |
1011 | 1010 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
1046 | 1045 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1047 | 1046 | MCFG_SCREEN_SIZE(40*8, 32*8) |
1048 | 1047 | 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) | |
1051 | 1050 | |
1052 | 1051 | MCFG_GFXDECODE(asuka) |
1053 | 1052 | MCFG_PALETTE_LENGTH(4096) /* only Mofflott uses full palette space */ |
r17967 | r17968 | |
1092 | 1091 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1093 | 1092 | MCFG_SCREEN_SIZE(40*8, 32*8) |
1094 | 1093 | 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) | |
1097 | 1096 | |
1098 | 1097 | MCFG_GFXDECODE(asuka) |
1099 | 1098 | MCFG_PALETTE_LENGTH(4096) /* only Mofflott uses full palette space */ |
r17967 | r17968 | |
1134 | 1133 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
1135 | 1134 | MCFG_SCREEN_SIZE(40*8, 32*8) |
1136 | 1135 | 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) | |
1139 | 1138 | |
1140 | 1139 | MCFG_GFXDECODE(asuka) |
1141 | 1140 | MCFG_PALETTE_LENGTH(4096) |
r17967 | r17968 | |
---|---|---|
201 | 201 | MCFG_SCREEN_REFRESH_RATE(60) |
202 | 202 | MCFG_SCREEN_SIZE(32*8, 32*8) |
203 | 203 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
204 | MCFG_SCREEN_UPDATE_ | |
204 | MCFG_SCREEN_UPDATE_DR | |
205 | 205 | |
206 | 206 | MCFG_GFXDECODE(pooyan) |
207 | 207 | MCFG_PALETTE_LENGTH(16*16+16*16) |
r17967 | r17968 | |
---|---|---|
126 | 126 | virtual void machine_start(); |
127 | 127 | virtual void machine_reset(); |
128 | 128 | 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); | |
129 | 131 | }; |
130 | 132 | |
131 | 133 | |
r17967 | r17968 | |
177 | 179 | 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); |
178 | 180 | } |
179 | 181 | |
180 | stat | |
182 | UINT32 hvyunit_state::screen | |
181 | 183 | { |
182 | 184 | #define SX_POS 96 |
183 | 185 | #define SY_POS 0 |
184 | hvyunit_state *state = screen.machine().driver_data<hvyunit_state>(); | |
185 | 186 | |
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 | |
188 | 189 | 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); | |
191 | 192 | |
192 | 193 | return 0; |
193 | 194 | } |
194 | 195 | |
195 | stat | |
196 | void hvyunit_state::screen | |
196 | 197 | { |
197 | 198 | // rising edge |
198 | if ( | |
199 | if (st | |
199 | 200 | { |
200 | hvyunit_state *state = screen.machine().driver_data<hvyunit_state>(); | |
201 | pandora_eof(state->m_pandora); | |
201 | pandora_eof(m_pandora); | |
202 | 202 | } |
203 | 203 | } |
204 | 204 | |
r17967 | r17968 | |
679 | 679 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
680 | 680 | MCFG_SCREEN_SIZE(256, 256) |
681 | 681 | 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) | |
684 | 684 | |
685 | 685 | MCFG_GFXDECODE(hvyunit) |
686 | 686 | MCFG_PALETTE_LENGTH(0x800) |
r17967 | r17968 | |
---|---|---|
300 | 300 | MCFG_SCREEN_REFRESH_RATE(60) |
301 | 301 | MCFG_SCREEN_SIZE(512, 262) |
302 | 302 | 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) | |
305 | 305 | |
306 | 306 | MCFG_GFXDECODE(wolfpack) |
307 | 307 | MCFG_PALETTE_LENGTH(12) |
r17967 | r17968 | |
---|---|---|
291 | 291 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
292 | 292 | MCFG_SCREEN_SIZE(64*8, 32*8) |
293 | 293 | MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) |
294 | MCFG_SCREEN_UPDATE_ | |
294 | MCFG_SCREEN_UPDATE_DR | |
295 | 295 | |
296 | 296 | MCFG_PALETTE_LENGTH(1024) |
297 | 297 |
r17967 | r17968 | |
---|---|---|
275 | 275 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
276 | 276 | MCFG_SCREEN_SIZE(36*8, 32*8) |
277 | 277 | MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 2*8, 30*8-1) |
278 | MCFG_SCREEN_UPDATE_ | |
278 | MCFG_SCREEN_UPDATE_DR | |
279 | 279 | |
280 | 280 | MCFG_PALETTE_LENGTH(0x2000) |
281 | 281 |
r17967 | r17968 | |
---|---|---|
295 | 295 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
296 | 296 | MCFG_SCREEN_SIZE(32*8, 32*8) |
297 | 297 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
298 | MCFG_SCREEN_UPDATE_ | |
298 | MCFG_SCREEN_UPDATE_DR | |
299 | 299 | |
300 | 300 | MCFG_GFXDECODE(tankbatt) |
301 | 301 | MCFG_PALETTE_LENGTH(256*2) |
r17967 | r17968 | |
---|---|---|
263 | 263 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
264 | 264 | MCFG_SCREEN_SIZE(64*16, 32*16) |
265 | 265 | MCFG_SCREEN_VISIBLE_AREA(8, 24*16-8-1, 16, 16*16-8-1) |
266 | MCFG_SCREEN_UPDATE_ | |
266 | MCFG_SCREEN_UPDATE_DR | |
267 | 267 | |
268 | 268 | MCFG_GFXDECODE(wrally) |
269 | 269 | MCFG_PALETTE_LENGTH(1024*8) |
r17967 | r17968 | |
---|---|---|
196 | 196 | DECLARE_DRIVER_INIT(ippatsu); |
197 | 197 | virtual void palette_init(); |
198 | 198 | DECLARE_PALETTE_INIT(mjderngr); |
199 | UINT32 screen_update_royalmah(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
199 | 200 | }; |
200 | 201 | |
201 | 202 | |
r17967 | r17968 | |
283 | 284 | } |
284 | 285 | |
285 | 286 | |
286 | stat | |
287 | UINT32 royalmah_state::screen | |
287 | 288 | { |
288 | royalmah_state *state = screen.machine().driver_data<royalmah_state>(); | |
289 | UINT8 *videoram = state->m_videoram; | |
289 | UINT8 *videoram = m_videoram; | |
290 | 290 | |
291 | 291 | offs_t offs; |
292 | 292 | |
r17967 | r17968 | |
304 | 304 | { |
305 | 305 | UINT8 pen = ((data2 >> 1) & 0x08) | ((data2 << 2) & 0x04) | ((data1 >> 3) & 0x02) | ((data1 >> 0) & 0x01); |
306 | 306 | |
307 | bitmap.pix16(y, x) = ( | |
307 | bitmap.pix16(y, x) = ( | |
308 | 308 | |
309 | 309 | x = x - 1; |
310 | 310 | data1 = data1 >> 1; |
r17967 | r17968 | |
3181 | 3181 | MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 247) |
3182 | 3182 | MCFG_SCREEN_REFRESH_RATE(60) |
3183 | 3183 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
3184 | MCFG_SCREEN_UPDATE_ | |
3184 | MCFG_SCREEN_UPDATE_DR | |
3185 | 3185 | |
3186 | 3186 | /* sound hardware */ |
3187 | 3187 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
---|---|---|
362 | 362 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
363 | 363 | MCFG_SCREEN_SIZE(64*8, 64*8) |
364 | 364 | MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 0, 30*8-1) |
365 | MCFG_SCREEN_UPDATE_ | |
365 | MCFG_SCREEN_UPDATE_DR | |
366 | 366 | |
367 | 367 | MCFG_PALETTE_LENGTH(0x300) |
368 | 368 | MCFG_GFXDECODE(crospang) |
r17967 | r17968 | |
---|---|---|
192 | 192 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
193 | 193 | MCFG_SCREEN_SIZE(32*8, 32*8) |
194 | 194 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) |
195 | MCFG_SCREEN_UPDATE_ | |
195 | MCFG_SCREEN_UPDATE_DR | |
196 | 196 | |
197 | 197 | MCFG_SCREEN_ADD("rscreen", RASTER) |
198 | 198 | MCFG_SCREEN_REFRESH_RATE(57) |
199 | 199 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
200 | 200 | MCFG_SCREEN_SIZE(32*8, 32*8) |
201 | 201 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1) |
202 | MCFG_SCREEN_UPDATE_ | |
202 | MCFG_SCREEN_UPDATE_DR | |
203 | 203 | |
204 | 204 | |
205 | 205 | /* sound hardware */ |
r17967 | r17968 | |
---|---|---|
242 | 242 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
243 | 243 | MCFG_SCREEN_SIZE(256, 256) |
244 | 244 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1) |
245 | MCFG_SCREEN_UPDATE_ | |
245 | MCFG_SCREEN_UPDATE_DR | |
246 | 246 | |
247 | 247 | MCFG_GFXDECODE(darkmist) |
248 | 248 | MCFG_PALETTE_LENGTH(0x100*4) |
r17967 | r17968 | |
---|---|---|
229 | 229 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
230 | 230 | MCFG_SCREEN_SIZE(64*8, 32*8) |
231 | 231 | MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 ) |
232 | MCFG_SCREEN_UPDATE_ | |
232 | MCFG_SCREEN_UPDATE_DR | |
233 | 233 | |
234 | 234 | MCFG_PALETTE_LENGTH(2048) |
235 | 235 |
r17967 | r17968 | |
---|---|---|
354 | 354 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
355 | 355 | MCFG_SCREEN_SIZE(512*2, 262) |
356 | 356 | MCFG_SCREEN_VISIBLE_AREA((129-8)*2, (449+8-1)*2, 44-8, 244+8-1) |
357 | MCFG_SCREEN_UPDATE_ | |
357 | MCFG_SCREEN_UPDATE_DR | |
358 | 358 | |
359 | 359 | MCFG_PALETTE_LENGTH(4096) |
360 | 360 | MCFG_PALETTE_INIT_OVERRIDE(amiga_state,amiga) |
r17967 | r17968 | |
---|---|---|
234 | 234 | MCFG_SCREEN_SIZE(512, 256) |
235 | 235 | MCFG_SCREEN_VISIBLE_AREA(12*8, 512-12*8-1, 16, 256-16-1) |
236 | 236 | // MCFG_SCREEN_VISIBLE_AREA(0*8, 512-1, 0, 256-1) |
237 | MCFG_SCREEN_UPDATE_ | |
237 | MCFG_SCREEN_UPDATE_DR | |
238 | 238 | |
239 | 239 | MCFG_GFXDECODE(funybubl) |
240 | 240 | MCFG_PALETTE_LENGTH(0x400) |
r17967 | r17968 | |
---|---|---|
26 | 26 | |
27 | 27 | required_device<cpu_device> m_maincpu; |
28 | 28 | required_shared_ptr<UINT8> m_videoram; |
29 | UINT32 screen_update_rotaryf(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
29 | 30 | }; |
30 | 31 | |
31 | 32 | |
r17967 | r17968 | |
61 | 62 | * |
62 | 63 | *************************************/ |
63 | 64 | |
64 | stat | |
65 | UINT32 rotaryf_state::screen | |
65 | 66 | { |
66 | rotaryf_state *state = screen.machine().driver_data<rotaryf_state>(); | |
67 | 67 | offs_t offs; |
68 | 68 | |
69 | for (offs = 0; offs < | |
69 | for (offs = 0; offs < | |
70 | 70 | { |
71 | 71 | int i; |
72 | 72 | |
73 | 73 | UINT8 x = offs << 3; |
74 | 74 | int y = offs >> 5; |
75 | UINT8 data = | |
75 | UINT8 data = | |
76 | 76 | |
77 | 77 | for (i = 0; i < 8; i++) |
78 | 78 | { |
r17967 | r17968 | |
178 | 178 | MCFG_SCREEN_SIZE(32*8, 262) /* vert size is a guess, taken from mw8080bw */ |
179 | 179 | MCFG_SCREEN_VISIBLE_AREA(1*8, 30*8-1, 0*8, 32*8-1) |
180 | 180 | MCFG_SCREEN_REFRESH_RATE(60) |
181 | MCFG_SCREEN_UPDATE_ | |
181 | MCFG_SCREEN_UPDATE_DR | |
182 | 182 | |
183 | 183 | MACHINE_CONFIG_END |
184 | 184 |
r17967 | r17968 | |
---|---|---|
228 | 228 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
229 | 229 | MCFG_SCREEN_SIZE(64*8, 32*8) |
230 | 230 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1) |
231 | MCFG_SCREEN_UPDATE_ | |
231 | MCFG_SCREEN_UPDATE_DR | |
232 | 232 | |
233 | 233 | MCFG_GFXDECODE(shisen) |
234 | 234 | MCFG_PALETTE_LENGTH(256) |
r17967 | r17968 | |
---|---|---|
3564 | 3564 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
3565 | 3565 | MCFG_SCREEN_SIZE(256, 256) |
3566 | 3566 | 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) | |
3569 | 3569 | |
3570 | 3570 | MCFG_GFXDECODE(tharrier) |
3571 | 3571 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
3607 | 3607 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
3608 | 3608 | MCFG_SCREEN_SIZE(256, 256) |
3609 | 3609 | 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) | |
3612 | 3612 | |
3613 | 3613 | MCFG_GFXDECODE(tharrier) |
3614 | 3614 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
3648 | 3648 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
3649 | 3649 | MCFG_SCREEN_SIZE(256, 256) |
3650 | 3650 | 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) | |
3653 | 3653 | |
3654 | 3654 | MCFG_GFXDECODE(macross) |
3655 | 3655 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
3691 | 3691 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
3692 | 3692 | MCFG_SCREEN_SIZE(256, 256) |
3693 | 3693 | 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) | |
3696 | 3696 | |
3697 | 3697 | MCFG_GFXDECODE(macross) |
3698 | 3698 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
3723 | 3723 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
3724 | 3724 | MCFG_SCREEN_SIZE(256, 256) |
3725 | 3725 | 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) | |
3728 | 3728 | |
3729 | 3729 | MCFG_GFXDECODE(bioship) |
3730 | 3730 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
3764 | 3764 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
3765 | 3765 | MCFG_SCREEN_SIZE(256, 256) |
3766 | 3766 | 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) | |
3769 | 3769 | |
3770 | 3770 | MCFG_GFXDECODE(macross) |
3771 | 3771 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
3808 | 3808 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
3809 | 3809 | MCFG_SCREEN_SIZE(256, 256) |
3810 | 3810 | 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) | |
3813 | 3813 | |
3814 | 3814 | MCFG_GFXDECODE(macross) |
3815 | 3815 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
3839 | 3839 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
3840 | 3840 | MCFG_SCREEN_SIZE(256, 256) |
3841 | 3841 | 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) | |
3844 | 3844 | |
3845 | 3845 | MCFG_GFXDECODE(macross) |
3846 | 3846 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
3884 | 3884 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
3885 | 3885 | MCFG_SCREEN_SIZE(256, 256) |
3886 | 3886 | 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) | |
3889 | 3889 | |
3890 | 3890 | MCFG_GFXDECODE(macross) |
3891 | 3891 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
3913 | 3913 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
3914 | 3914 | MCFG_SCREEN_SIZE(256, 256) |
3915 | 3915 | 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) | |
3918 | 3918 | |
3919 | 3919 | MCFG_GFXDECODE(macross) |
3920 | 3920 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
3956 | 3956 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
3957 | 3957 | MCFG_SCREEN_SIZE(256, 256) |
3958 | 3958 | 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) | |
3961 | 3961 | |
3962 | 3962 | MCFG_GFXDECODE(macross) |
3963 | 3963 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
3988 | 3988 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
3989 | 3989 | MCFG_SCREEN_SIZE(256, 256) |
3990 | 3990 | 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) | |
3993 | 3993 | |
3994 | 3994 | MCFG_GFXDECODE(strahl) |
3995 | 3995 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
4029 | 4029 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
4030 | 4030 | MCFG_SCREEN_SIZE(256, 256) |
4031 | 4031 | 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) | |
4034 | 4034 | |
4035 | 4035 | MCFG_GFXDECODE(macross) |
4036 | 4036 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
4071 | 4071 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
4072 | 4072 | MCFG_SCREEN_SIZE(256, 256) |
4073 | 4073 | 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) | |
4076 | 4076 | |
4077 | 4077 | MCFG_GFXDECODE(macross) |
4078 | 4078 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
4112 | 4112 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
4113 | 4113 | MCFG_SCREEN_SIZE(256, 256) |
4114 | 4114 | 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) | |
4117 | 4117 | |
4118 | 4118 | MCFG_GFXDECODE(macross) |
4119 | 4119 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
4153 | 4153 | // MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
4154 | 4154 | MCFG_SCREEN_SIZE(512, 256) |
4155 | 4155 | 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) | |
4158 | 4158 | |
4159 | 4159 | MCFG_GFXDECODE(macross) |
4160 | 4160 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
4196 | 4196 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
4197 | 4197 | MCFG_SCREEN_SIZE(512, 256) |
4198 | 4198 | 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) | |
4201 | 4201 | |
4202 | 4202 | MCFG_GFXDECODE(macross2) |
4203 | 4203 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
4238 | 4238 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
4239 | 4239 | MCFG_SCREEN_SIZE(512, 256) |
4240 | 4240 | 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) | |
4243 | 4243 | |
4244 | 4244 | MCFG_GFXDECODE(macross2) |
4245 | 4245 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
4279 | 4279 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
4280 | 4280 | MCFG_SCREEN_SIZE(512, 256) |
4281 | 4281 | 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) | |
4284 | 4284 | |
4285 | 4285 | MCFG_GFXDECODE(macross2) |
4286 | 4286 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
4317 | 4317 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
4318 | 4318 | MCFG_SCREEN_SIZE(512, 256) |
4319 | 4319 | 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) | |
4322 | 4322 | |
4323 | 4323 | MCFG_GFXDECODE(bjtwin) |
4324 | 4324 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
4826 | 4826 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
4827 | 4827 | MCFG_SCREEN_SIZE(256, 256) |
4828 | 4828 | 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) | |
4831 | 4831 | |
4832 | 4832 | MCFG_GFXDECODE(stagger1) |
4833 | 4833 | MCFG_PALETTE_LENGTH(768) |
r17967 | r17968 | |
4852 | 4852 | /* basic machine hardware */ |
4853 | 4853 | /* video hardware */ |
4854 | 4854 | MCFG_SCREEN_MODIFY("screen") |
4855 | MCFG_SCREEN_UPDATE_ | |
4855 | MCFG_SCREEN_UPDATE_DR | |
4856 | 4856 | MACHINE_CONFIG_END |
4857 | 4857 | |
4858 | 4858 | static MACHINE_CONFIG_DERIVED( redhawkb, stagger1 ) |
r17967 | r17968 | |
4861 | 4861 | /* video hardware */ |
4862 | 4862 | MCFG_GFXDECODE(redhawkb) |
4863 | 4863 | MCFG_SCREEN_MODIFY("screen") |
4864 | MCFG_SCREEN_UPDATE_ | |
4864 | MCFG_SCREEN_UPDATE_DR | |
4865 | 4865 | MACHINE_CONFIG_END |
4866 | 4866 | |
4867 | 4867 | static MACHINE_CONFIG_DERIVED( grdnstrm, stagger1 ) |
r17967 | r17968 | |
4872 | 4872 | MCFG_GFXDECODE(grdnstrm) |
4873 | 4873 | MCFG_VIDEO_START_OVERRIDE(nmk16_state,firehawk) |
4874 | 4874 | MCFG_SCREEN_MODIFY("screen") |
4875 | MCFG_SCREEN_UPDATE_ | |
4875 | MCFG_SCREEN_UPDATE_DR | |
4876 | 4876 | MACHINE_CONFIG_END |
4877 | 4877 | |
4878 | 4878 | static MACHINE_CONFIG_DERIVED( grdnstrmk, stagger1 ) /* Side by side with PCB, the music seems too fast as well */ |
r17967 | r17968 | |
4892 | 4892 | |
4893 | 4893 | /* video hardware */ |
4894 | 4894 | MCFG_SCREEN_MODIFY("screen") |
4895 | MCFG_SCREEN_UPDATE_ | |
4895 | MCFG_SCREEN_UPDATE_DR | |
4896 | 4896 | MACHINE_CONFIG_END |
4897 | 4897 | |
4898 | 4898 | static MACHINE_CONFIG_START( firehawk, nmk16_state ) |
r17967 | r17968 | |
4911 | 4911 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
4912 | 4912 | MCFG_SCREEN_SIZE(256, 256) |
4913 | 4913 | 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) | |
4916 | 4916 | |
4917 | 4917 | MCFG_GFXDECODE(grdnstrm) |
4918 | 4918 | MCFG_PALETTE_LENGTH(768) |
r17967 | r17968 | |
4946 | 4946 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
4947 | 4947 | MCFG_SCREEN_SIZE(256, 256) |
4948 | 4948 | 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) | |
4951 | 4951 | |
4952 | 4952 | MCFG_GFXDECODE(macross) |
4953 | 4953 | MCFG_PALETTE_LENGTH(1024) |
r17967 | r17968 | |
---|---|---|
168 | 168 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
169 | 169 | virtual void video_start(); |
170 | 170 | virtual void palette_init(); |
171 | UINT32 screen_update_miniboy7(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
171 | 172 | }; |
172 | 173 | |
173 | 174 | |
r17967 | r17968 | |
211 | 212 | 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); |
212 | 213 | } |
213 | 214 | |
214 | stat | |
215 | UINT32 miniboy7_state::screen | |
215 | 216 | { |
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); | |
218 | 218 | return 0; |
219 | 219 | } |
220 | 220 | |
r17967 | r17968 | |
462 | 462 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
463 | 463 | MCFG_SCREEN_SIZE((47+1)*8, (39+1)*8) /* Taken from MC6845, registers 00 & 04. Normally programmed with (value-1) */ |
464 | 464 | MCFG_SCREEN_VISIBLE_AREA(0*8, 37*8-1, 0*8, 37*8-1) /* Taken from MC6845, registers 01 & 06 */ |
465 | MCFG_SCREEN_UPDATE_ | |
465 | MCFG_SCREEN_UPDATE_DR | |
466 | 466 | |
467 | 467 | MCFG_GFXDECODE(miniboy7) |
468 | 468 |
r17967 | r17968 | |
---|---|---|
837 | 837 | /* video hardware */ |
838 | 838 | MCFG_SCREEN_ADD("screen", RASTER) |
839 | 839 | MCFG_SCREEN_RAW_PARAMS(IREMM10_PIXEL_CLOCK, IREMM10_HTOTAL, IREMM10_HBEND, IREMM10_HBSTART, IREMM10_VTOTAL, IREMM10_VBEND, IREMM10_VBSTART) |
840 | MCFG_SCREEN_UPDATE_ | |
840 | MCFG_SCREEN_UPDATE_DR | |
841 | 841 | |
842 | 842 | MCFG_GFXDECODE(m10) |
843 | 843 | MCFG_PALETTE_LENGTH(2*8) |
r17967 | r17968 | |
882 | 882 | /* video hardware */ |
883 | 883 | MCFG_SCREEN_ADD("screen", RASTER) |
884 | 884 | MCFG_SCREEN_RAW_PARAMS(IREMM15_PIXEL_CLOCK, IREMM15_HTOTAL, IREMM15_HBEND, IREMM15_HBSTART, IREMM15_VTOTAL, IREMM15_VBEND, IREMM15_VBSTART) |
885 | MCFG_SCREEN_UPDATE_ | |
885 | MCFG_SCREEN_UPDATE_DR | |
886 | 886 | |
887 | 887 | MCFG_PALETTE_LENGTH(2*8) |
888 | 888 |
r17967 | r17968 | |
---|---|---|
352 | 352 | #define SCREEN_UPDATE_RGB32(name) UINT32 SCREEN_UPDATE_NAME(name)(device_t *, screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) |
353 | 353 | #define SCREEN_UPDATE16_CALL(name) SCREEN_UPDATE_NAME(name)(NULL, screen, bitmap, cliprect) |
354 | 354 | #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) | |
355 | 357 | |
356 | 358 | #define SCREEN_VBLANK_NAME(name) screen_vblank_##name |
357 | 359 | #define SCREEN_VBLANK(name) void SCREEN_VBLANK_NAME(name)(device_t *, screen_device &screen, bool vblank_on) |
r17967 | r17968 | |
---|---|---|
1073 | 1073 | } |
1074 | 1074 | |
1075 | 1075 | |
1076 | ||
1076 | ||
1077 | 1077 | { |
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 ); | |
1080 | 1079 | return 0; |
1081 | 1080 | } |
1082 | 1081 | |
r17967 | r17968 | |
2418 | 2417 | } |
2419 | 2418 | |
2420 | 2419 | |
2421 | ||
2420 | void | |
2422 | 2421 | { |
2423 | 2422 | // rising edge |
2424 | if ( | |
2423 | if (st | |
2425 | 2424 | { |
2426 | 2425 | cpc_multiface2_device* mface2 = dynamic_cast<cpc_multiface2_device*>(get_expansion_device(screen.machine(),"multiface2")); |
2427 | 2426 |
r17967 | r17968 | |
---|---|---|
2184 | 2184 | save_item(NAME(m_prevright_bitmap)); |
2185 | 2185 | } |
2186 | 2186 | |
2187 | ||
2187 | ||
2188 | 2188 | { |
2189 | sms_state *state = screen.machine().driver_data<sms_state>(); | |
2190 | 2189 | UINT8 sscope = 0; |
2191 | 2190 | UINT8 sscope_binocular_hack; |
2192 | 2191 | UINT8 occluded_view = 0; |
2193 | 2192 | |
2194 | if (&screen != | |
2193 | if (&screen != | |
2195 | 2194 | { |
2196 | 2195 | sscope = screen.machine().root_device().ioport("SEGASCOPE")->read_safe(0x00); |
2197 | 2196 | if (!sscope) |
2198 | 2197 | { |
2199 | 2198 | occluded_view = 1; |
2200 | 2199 | } |
2201 | else if (&screen == | |
2200 | else if (&screen == | |
2202 | 2201 | { |
2203 | 2202 | // with SegaScope, sscope_state 0 = left screen OFF, right screen ON |
2204 | if (!( | |
2203 | if (!( | |
2205 | 2204 | occluded_view = 1; |
2206 | 2205 | } |
2207 | 2206 | else // it's right LCD |
2208 | 2207 | { |
2209 | 2208 | // with SegaScope, sscope_state 1 = left screen ON, right screen OFF |
2210 | if ( | |
2209 | if ( | |
2211 | 2210 | occluded_view = 1; |
2212 | 2211 | } |
2213 | 2212 | } |
2214 | 2213 | |
2215 | 2214 | if (!occluded_view) |
2216 | 2215 | { |
2217 | | |
2216 | | |
2218 | 2217 | |
2219 | 2218 | // HACK: fake 3D->2D handling (if enabled, it repeats each frame twice on the selected lens) |
2220 | 2219 | // save a copy of current bitmap for the binocular hack |
r17967 | r17968 | |
2222 | 2221 | { |
2223 | 2222 | sscope_binocular_hack = screen.machine().root_device().ioport("SSCOPE_BINOCULAR")->read_safe(0x00); |
2224 | 2223 | |
2225 | if (&screen == | |
2224 | if (&screen == | |
2226 | 2225 | { |
2227 | 2226 | if (sscope_binocular_hack & 0x01) |
2228 | copybitmap( | |
2227 | copybitmap( | |
2229 | 2228 | } |
2230 | 2229 | else // it's right LCD |
2231 | 2230 | { |
2232 | 2231 | if (sscope_binocular_hack & 0x02) |
2233 | copybitmap( | |
2232 | copybitmap( | |
2234 | 2233 | } |
2235 | 2234 | } |
2236 | 2235 | } |
r17967 | r17968 | |
2242 | 2241 | { |
2243 | 2242 | sscope_binocular_hack = screen.machine().root_device().ioport("SSCOPE_BINOCULAR")->read_safe(0x00); |
2244 | 2243 | |
2245 | if (&screen == | |
2244 | if (&screen == | |
2246 | 2245 | { |
2247 | 2246 | if (sscope_binocular_hack & 0x01) |
2248 | 2247 | { |
2249 | copybitmap(bitmap, | |
2248 | copybitmap(bitmap, | |
2250 | 2249 | return 0; |
2251 | 2250 | } |
2252 | 2251 | } |
r17967 | r17968 | |
2254 | 2253 | { |
2255 | 2254 | if (sscope_binocular_hack & 0x02) |
2256 | 2255 | { |
2257 | copybitmap(bitmap, | |
2256 | copybitmap(bitmap, | |
2258 | 2257 | return 0; |
2259 | 2258 | } |
2260 | 2259 | } |
r17967 | r17968 | |
2265 | 2264 | return 0; |
2266 | 2265 | } |
2267 | 2266 | |
2268 | ||
2267 | ||
2269 | 2268 | { |
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); | |
2272 | 2270 | return 0; |
2273 | 2271 | } |
2274 | 2272 | |
r17967 | r17968 | |
2280 | 2278 | save_item(NAME(m_prev_bitmap)); |
2281 | 2279 | } |
2282 | 2280 | |
2283 | ||
2281 | ||
2284 | 2282 | { |
2285 | sms_state *state = screen.machine().driver_data<sms_state>(); | |
2286 | 2283 | int width = screen.width(); |
2287 | 2284 | int height = screen.height(); |
2288 | 2285 | int x, y; |
2289 | 2286 | |
2290 | bitmap_rgb32 &vdp_bitmap = | |
2287 | bitmap_rgb32 &vdp_bitmap = | |
2291 | 2288 | |
2292 | 2289 | // HACK: fake LCD persistence effect |
2293 | 2290 | // (it would be better to generalize this in the core, to be used for all LCD systems) |
r17967 | r17968 | |
2295 | 2292 | { |
2296 | 2293 | UINT32 *linedst = &bitmap.pix32(y); |
2297 | 2294 | UINT32 *line0 = &vdp_bitmap.pix32(y); |
2298 | UINT32 *line1 = & | |
2295 | UINT32 *line1 = & | |
2299 | 2296 | for (x = 0; x < width; x++) |
2300 | 2297 | { |
2301 | 2298 | UINT32 color0 = line0[x]; |
r17967 | r17968 | |
2312 | 2309 | linedst[x] = (r << 16) | (g << 8) | b; |
2313 | 2310 | } |
2314 | 2311 | } |
2315 | copybitmap( | |
2312 | copybitmap( | |
2316 | 2313 | |
2317 | 2314 | return 0; |
2318 | 2315 | } |
r17967 | r17968 | |
---|---|---|
138 | 138 | hd44102ch_init( 2 ); |
139 | 139 | } |
140 | 140 | |
141 | ||
141 | ||
142 | 142 | { |
143 | gamepock_state *state = screen.machine().driver_data<gamepock_state>(); | |
144 | 143 | UINT8 ad; |
145 | 144 | int i,j; |
146 | 145 | |
147 | 146 | /* Handle HD44102CH #0 */ |
148 | ad = | |
147 | ad = | |
149 | 148 | for ( i = 0; i < 4; i++ ) |
150 | 149 | { |
151 | 150 | for ( j = 0; j < 50; j++ ) |
152 | 151 | { |
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; | |
161 | 160 | } |
162 | 161 | ad += 0x40; |
163 | 162 | } |
164 | 163 | |
165 | 164 | /* Handle HD44102CH #1 */ |
166 | ad = | |
165 | ad = | |
167 | 166 | for ( i = 4; i < 8; i++ ) |
168 | 167 | { |
169 | 168 | for ( j = 0; j < 50; j++ ) |
170 | 169 | { |
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; | |
179 | 178 | } |
180 | 179 | ad += 0x40; |
181 | 180 | } |
182 | 181 | |
183 | 182 | /* Handle HD44102CH #2 */ |
184 | ad = | |
183 | ad = | |
185 | 184 | for ( i = 0; i < 4; i++ ) |
186 | 185 | { |
187 | 186 | for ( j = 0; j < 25; j++ ) |
188 | 187 | { |
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; | |
197 | 196 | } |
198 | 197 | for ( j = 25; j < 50; j++ ) |
199 | 198 | { |
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; | |
208 | 207 | } |
209 | 208 | ad += 0x40; |
210 | 209 | } |
r17967 | r17968 | |
---|---|---|
99 | 99 | { |
100 | 100 | } |
101 | 101 | |
102 | ||
102 | ||
103 | 103 | { |
104 | 104 | /* 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; | |
107 | 106 | int x, y; |
108 | 107 | UINT16 *line; |
109 | 108 |
r17967 | r17968 | |
---|---|---|
821 | 821 | /* |
822 | 822 | Video update |
823 | 823 | */ |
824 | ||
824 | ||
825 | 825 | { |
826 | lisa_state *state = screen.machine().driver_data<lisa_state>(); | |
827 | 826 | UINT16 *v; |
828 | 827 | int x, y; |
829 | 828 | /* 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 */ | |
832 | 831 | |
833 | 832 | UINT8 line_buffer[720]; |
834 | 833 | |
835 | v = | |
834 | v = | |
836 | 835 | |
837 | 836 | for (y = 0; y < resy; y++) |
838 | 837 | { |
r17967 | r17968 | |
---|---|---|
238 | 238 | DECLARE_MACHINE_START(fm77av); |
239 | 239 | DECLARE_MACHINE_START(fm11); |
240 | 240 | DECLARE_MACHINE_START(fm16); |
241 | UINT32 screen_update_fm7(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
241 | 242 | }; |
242 | 243 | |
243 | 244 | |
r17967 | r17968 | |
256 | 257 | |
257 | 258 | |
258 | 259 | |
259 | SCREEN_UPDATE_IND16( fm7 ); | |
260 | 260 | |
261 | 261 | |
262 | ||
262 | 263 | #endif /*FM7_H_*/ |
r17967 | r17968 | |
---|---|---|
104 | 104 | const UINT8 *m_sync_rom; |
105 | 105 | const UINT8 *m_char_rom; |
106 | 106 | DECLARE_DRIVER_INIT(vixen); |
107 | UINT32 screen_update_vixen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
107 | 108 | }; |
108 | 109 | |
109 | 110 | #endif |
r17967 | r17968 | |
---|---|---|
186 | 186 | virtual void machine_start(); |
187 | 187 | virtual void machine_reset(); |
188 | 188 | virtual void palette_init(); |
189 | UINT32 screen_update_compis2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
189 | 190 | }; |
190 | 191 | |
191 | 192 |
r17967 | r17968 | |
---|---|---|
54 | 54 | virtual void palette_init(); |
55 | 55 | DECLARE_MACHINE_RESET(laser500); |
56 | 56 | DECLARE_MACHINE_RESET(laser700); |
57 | UINT32 screen_update_laser(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
57 | 58 | }; |
58 | 59 | |
59 | 60 |
r17967 | r17968 | |
---|---|---|
24 | 24 | DECLARE_WRITE8_MEMBER(comquest_write); |
25 | 25 | virtual void machine_reset(); |
26 | 26 | virtual void video_start(); |
27 | UINT32 screen_update_comquest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
27 | 28 | }; |
28 | 29 | |
29 | 30 | |
30 | 31 | /*----------- defined in video/comquest.c -----------*/ |
31 | 32 | |
32 | 33 | |
33 | SCREEN_UPDATE_IND16( comquest ); | |
34 | 34 | |
35 | 35 | |
36 | ||
36 | 37 | #endif /* COMQUEST_H_ */ |
r17967 | r17968 | |
---|---|---|
57 | 57 | DECLARE_PALETTE_INIT(ts1000); |
58 | 58 | DECLARE_MACHINE_RESET(pc8300); |
59 | 59 | DECLARE_MACHINE_RESET(pow3000); |
60 | void screen_eof_zx(screen_device &screen, bool state); | |
60 | 61 | }; |
61 | 62 | |
62 | 63 | |
r17967 | r17968 | |
69 | 70 | /*----------- defined in video/zx.c -----------*/ |
70 | 71 | |
71 | 72 | |
72 | SCREEN_VBLANK( zx ); | |
73 | 73 | |
74 | ||
74 | 75 | void zx_ula_bkgnd(running_machine &machine, int color); |
75 | 76 | void zx_ula_r(running_machine &machine, int offs, const char *region, const UINT8 param); |
76 | 77 |
r17967 | r17968 | |
---|---|---|
259 | 259 | virtual void machine_reset(); |
260 | 260 | virtual void video_start(); |
261 | 261 | 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); | |
262 | 264 | }; |
263 | 265 | |
264 | 266 | |
r17967 | r17968 | |
266 | 268 | /*----------- defined in video/pdp1.c -----------*/ |
267 | 269 | |
268 | 270 | |
269 | SCREEN_VBLANK( pdp1 ); | |
270 | SCREEN_UPDATE_IND16( pdp1 ); | |
271 | 271 | |
272 | ||
273 | ||
272 | 274 | void pdp1_plot(running_machine &machine, int x, int y); |
273 | 275 | void pdp1_typewriter_drawchar(running_machine &machine, int character); |
274 | 276 | void pdp1_update_lightpen_state(running_machine &machine, const lightpen_t *new_state); |
r17967 | r17968 | |
---|---|---|
26 | 26 | int m_power; |
27 | 27 | UINT8 m_reg[0x100]; |
28 | 28 | DECLARE_DRIVER_INIT(pc1401); |
29 | UINT32 screen_update_pc1401(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
29 | 30 | }; |
30 | 31 | |
31 | 32 | |
r17967 | r17968 | |
46 | 47 | |
47 | 48 | DECLARE_READ8_HANDLER(pc1401_lcd_read); |
48 | 49 | DECLARE_WRITE8_HANDLER(pc1401_lcd_write); |
49 | SCREEN_UPDATE_IND16( pc1401 ); | |
50 | 50 | |
51 | 51 | |
52 | ||
52 | 53 | #endif /* PC1401_H_ */ |
r17967 | r17968 | |
---|---|---|
141 | 141 | DECLARE_PALETTE_INIT(apple2gs); |
142 | 142 | DECLARE_MACHINE_START(apple2gsr1); |
143 | 143 | DECLARE_MACHINE_START(apple2gscommon); |
144 | UINT32 screen_update_apple2gs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
144 | 145 | }; |
145 | 146 | |
146 | 147 | |
r17967 | r17968 | |
156 | 157 | /*----------- defined in video/apple2gs.c -----------*/ |
157 | 158 | |
158 | 159 | |
159 | SCREEN_UPDATE_IND16( apple2gs ); | |
160 | 160 | |
161 | 161 | |
162 | ||
162 | 163 | #endif /* APPLE2GS_H_ */ |
r17967 | r17968 | |
---|---|---|
75 | 75 | DECLARE_MACHINE_START(hp48gp); |
76 | 76 | DECLARE_MACHINE_START(hp48sx); |
77 | 77 | DECLARE_MACHINE_START(hp48s); |
78 | UINT32 screen_update_hp48(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
78 | 79 | }; |
79 | 80 | |
80 | 81 | |
r17967 | r17968 | |
183 | 184 | MCFG_DEVICE_ADD(_tag, HP48_PORT, 0) \ |
184 | 185 | MCFG_DEVICE_CONFIG(_intrf) |
185 | 186 | |
186 | /****************************** machine ******************************/ | |
187 | ||
188 | ||
189 | extern MACHINE_START( hp48s ); | |
190 | extern MACHINE_START( hp48sx ); | |
191 | extern MACHINE_START( hp48g ); | |
192 | extern MACHINE_START( hp48gx ); | |
193 | extern MACHINE_START( hp48gp ); | |
194 | ||
195 | extern MACHINE_RESET( hp48 ); | |
196 | ||
197 | /*----------- defined in video/hp48.c -----------*/ | |
198 | ||
199 | /****************************** video ********************************/ | |
200 | ||
201 | extern SCREEN_UPDATE_IND16 ( hp48 ); | |
202 | extern PALETTE_INIT ( hp48 ); |
r17967 | r17968 | |
---|---|---|
59 | 59 | DECLARE_DRIVER_INIT(apple3); |
60 | 60 | DECLARE_MACHINE_RESET(apple3); |
61 | 61 | DECLARE_VIDEO_START(apple3); |
62 | UINT32 screen_update_apple3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
62 | 63 | }; |
63 | 64 | |
64 | 65 | |
r17967 | r17968 | |
77 | 78 | /*----------- defined in video/apple3.c -----------*/ |
78 | 79 | |
79 | 80 | |
80 | ||
81 | ||
81 | 82 | void apple3_write_charmem(running_machine &machine); |
82 | 83 | |
83 | 84 |
r17967 | r17968 | |
---|---|---|
157 | 157 | |
158 | 158 | public: |
159 | 159 | emu_timer *m_scanline_timer; |
160 | UINT32 screen_update_pippin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
160 | 161 | }; |
161 | 162 | |
162 | 163 | #endif /* PCIMAC_H_ */ |
r17967 | r17968 | |
---|---|---|
64 | 64 | DECLARE_READ8_MEMBER( sid_poty_r ); |
65 | 65 | DECLARE_MACHINE_START(c65); |
66 | 66 | DECLARE_PALETTE_INIT(c65); |
67 | UINT32 screen_update_c65(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
67 | 68 | }; |
68 | 69 | |
69 | 70 |
r17967 | r17968 | |
---|---|---|
80 | 80 | virtual void machine_reset(); |
81 | 81 | virtual void video_start(); |
82 | 82 | virtual void palette_init(); |
83 | UINT32 screen_update_dai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
83 | 84 | }; |
84 | 85 | |
85 | 86 | |
r17967 | r17968 | |
98 | 99 | extern const unsigned char dai_palette[16*3]; |
99 | 100 | |
100 | 101 | |
101 | SCREEN_UPDATE_IND16( dai ); | |
102 | 102 | |
103 | 103 | |
104 | 104 | |
105 | ||
105 | 106 | /*----------- defined in audio/dai.c -----------*/ |
106 | 107 | |
107 | 108 | extern const device_type DAI_SOUND; |
r17967 | r17968 | |
---|---|---|
162 | 162 | |
163 | 163 | |
164 | 164 | |
165 | SCREEN_UPDATE_IND16( mac ); | |
166 | SCREEN_UPDATE_IND16( macse30 ); | |
167 | SCREEN_UPDATE_IND16( macprtb ); | |
168 | SCREEN_UPDATE_IND16( macpb140 ); | |
169 | SCREEN_UPDATE_IND16( macpb160 ); | |
170 | SCREEN_UPDATE_RGB32( macrbv ); | |
171 | SCREEN_UPDATE_RGB32( macrbvvram ); | |
172 | SCREEN_UPDATE_RGB32( macdafb ); | |
173 | SCREEN_UPDATE_RGB32( macpbwd ); | |
174 | 165 | |
175 | 166 | |
176 | 167 | |
177 | 168 | |
169 | ||
170 | ||
171 | ||
172 | ||
173 | ||
174 | ||
175 | ||
176 | ||
177 | ||
178 | 178 | /*----------- defined in audio/mac.c -----------*/ |
179 | 179 | |
180 | 180 | class mac_sound_device : public device_t, |
r17967 | r17968 | |
513 | 513 | DECLARE_VIDEO_RESET(macsonora); |
514 | 514 | DECLARE_VIDEO_RESET(maceagle); |
515 | 515 | 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); | |
516 | 525 | }; |
517 | 526 | |
518 | 527 | #endif /* MAC_H_ */ |
r17967 | r17968 | |
---|---|---|
79 | 79 | virtual void palette_init(); |
80 | 80 | DECLARE_MACHINE_START(nc200); |
81 | 81 | DECLARE_MACHINE_RESET(nc200); |
82 | UINT32 screen_update_nc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
82 | 83 | }; |
83 | 84 | |
84 | 85 |
r17967 | r17968 | |
---|---|---|
124 | 124 | void config_memory_map(); |
125 | 125 | int keyboard_decode(); |
126 | 126 | void update_screen(bitmap_ind16 &bitmap); |
127 | UINT32 screen_update_rm380z(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
127 | 128 | }; |
128 | 129 | |
129 | 130 |
r17967 | r17968 | |
---|---|---|
20 | 20 | DECLARE_DRIVER_INIT(ac1); |
21 | 21 | virtual void machine_reset(); |
22 | 22 | 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); | |
23 | 25 | }; |
24 | 26 | |
25 | 27 | |
r17967 | r17968 | |
34 | 36 | extern const gfx_layout ac1_charlayout; |
35 | 37 | |
36 | 38 | |
37 | SCREEN_UPDATE_IND16( ac1 ); | |
38 | SCREEN_UPDATE_IND16( ac1_32 ); | |
39 | 39 | |
40 | 40 | |
41 | ||
42 | ||
41 | 43 | #endif /* AC1_h_ */ |
r17967 | r17968 | |
---|---|---|
42 | 42 | DECLARE_VIDEO_START(mc8020); |
43 | 43 | DECLARE_MACHINE_RESET(mc8030); |
44 | 44 | 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); | |
45 | 47 | }; |
46 | 48 | |
47 | 49 |
r17967 | r17968 | |
---|---|---|
140 | 140 | DECLARE_MACHINE_RESET(mbee128); |
141 | 141 | DECLARE_MACHINE_RESET(mbee256); |
142 | 142 | DECLARE_MACHINE_RESET(mbeett); |
143 | UINT32 screen_update_mbee(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
143 | 144 | }; |
144 | 145 | |
145 | 146 | |
r17967 | r17968 | |
167 | 168 | MC6845_ON_UPDATE_ADDR_CHANGED( mbee256_update_addr ); |
168 | 169 | |
169 | 170 | |
170 | SCREEN_UPDATE_RGB32( mbee ); | |
171 | 171 | |
172 | SCREEN_UPDATE_RGB32( mbeeic ); | |
173 | 172 | |
174 | SCREEN_UPDATE_RGB32( mbeeppc ); | |
175 | 173 | |
176 | 174 | |
177 | 175 | |
178 | 176 | |
177 | ||
178 | ||
179 | ||
179 | 180 | #endif /* MBEE_H_ */ |
r17967 | r17968 | |
---|---|---|
24 | 24 | UINT8 m_outb; |
25 | 25 | int m_power; |
26 | 26 | UINT8 m_reg[0x1000]; |
27 | UINT32 screen_update_pc1350(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
27 | 28 | }; |
28 | 29 | |
29 | 30 | |
r17967 | r17968 | |
44 | 45 | |
45 | 46 | DECLARE_READ8_HANDLER(pc1350_lcd_read); |
46 | 47 | DECLARE_WRITE8_HANDLER(pc1350_lcd_write); |
47 | SCREEN_UPDATE_IND16( pc1350 ); | |
48 | 48 | |
49 | ||
49 | 50 | int pc1350_keyboard_line_r(running_machine &machine); |
50 | 51 | |
51 | 52 |
r17967 | r17968 | |
---|---|---|
210 | 210 | |
211 | 211 | // sound state |
212 | 212 | int m_speaker_drive; |
213 | UINT32 screen_update_pc1512(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
213 | 214 | }; |
214 | 215 | |
215 | 216 | class pc1640_state : public pc1512_state |
r17967 | r17968 | |
---|---|---|
259 | 259 | virtual void machine_reset(); |
260 | 260 | virtual void video_start(); |
261 | 261 | virtual void palette_init(); |
262 | UINT32 screen_update_nes(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
262 | 263 | }; |
263 | 264 | |
264 | 265 | |
r17967 | r17968 | |
285 | 286 | |
286 | 287 | |
287 | 288 | |
288 | SCREEN_UPDATE_IND16( nes ); | |
289 | 289 | |
290 | 290 | |
291 | ||
291 | 292 | #endif /* NES_H_ */ |
r17967 | r17968 | |
---|---|---|
199 | 199 | DECLARE_VIDEO_START(x1); |
200 | 200 | DECLARE_PALETTE_INIT(x1); |
201 | 201 | DECLARE_MACHINE_RESET(x1turbo); |
202 | UINT32 screen_update_x1(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
202 | 203 | }; |
203 | 204 | |
204 | 205 | |
r17967 | r17968 | |
206 | 207 | /*----------- shared with x1twin.c -----------*/ |
207 | 208 | |
208 | 209 | |
209 | SCREEN_UPDATE_RGB32( x1 ); | |
210 | 210 | |
211 | ||
211 | 212 | TIMER_DEVICE_CALLBACK(x1_keyboard_callback); |
212 | 213 | TIMER_CALLBACK(x1_rtc_increment); |
213 | 214 | TIMER_DEVICE_CALLBACK( x1_cmt_wind_timer ); |
r17967 | r17968 | |
---|---|---|
55 | 55 | DECLARE_WRITE8_MEMBER(concept_hdc_reg_w); |
56 | 56 | virtual void machine_start(); |
57 | 57 | virtual void video_start(); |
58 | UINT32 screen_update_concept(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
58 | 59 | }; |
59 | 60 | |
60 | 61 | |
r17967 | r17968 | |
65 | 66 | |
66 | 67 | |
67 | 68 | |
68 | ||
69 | ||
69 | 70 | INTERRUPT_GEN( concept_interrupt ); |
70 | 71 | |
71 | 72 |
r17967 | r17968 | |
---|---|---|
98 | 98 | virtual void machine_start(); |
99 | 99 | virtual void video_start(); |
100 | 100 | virtual void palette_init(); |
101 | UINT32 screen_update_pcw16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
101 | 102 | }; |
102 | 103 | |
103 | 104 |
r17967 | r17968 | |
---|---|---|
38 | 38 | DECLARE_DRIVER_INIT(radio86); |
39 | 39 | DECLARE_MACHINE_RESET(radio86); |
40 | 40 | DECLARE_PALETTE_INIT(radio86); |
41 | UINT32 screen_update_radio86(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
41 | 42 | }; |
42 | 43 | |
43 | 44 | |
r17967 | r17968 | |
49 | 50 | |
50 | 51 | /*----------- defined in machine/radio86.c -----------*/ |
51 | 52 | |
52 | extern MACHINE_RESET( radio86 ); | |
53 | ||
54 | ||
55 | ||
56 | 53 | extern const i8255_interface radio86_ppi8255_interface_1; |
57 | 54 | extern const i8255_interface radio86_ppi8255_interface_2; |
58 | 55 | extern const i8255_interface rk7007_ppi8255_interface; |
r17967 | r17968 | |
78 | 75 | extern I8275_DISPLAY_PIXELS(mikrosha_display_pixels); |
79 | 76 | extern I8275_DISPLAY_PIXELS(apogee_display_pixels); |
80 | 77 | |
81 | extern SCREEN_UPDATE_IND16( radio86 ); | |
82 | extern PALETTE_INIT( radio86 ); | |
83 | ||
84 | 78 | #endif /* radio86_H_ */ |
r17967 | r17968 | |
---|---|---|
151 | 151 | virtual void machine_start(); |
152 | 152 | virtual void machine_reset(); |
153 | 153 | virtual void video_start(); |
154 | UINT32 screen_update_cxhumax(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
154 | 155 | }; |
155 | 156 | |
156 | 157 | #define INTDEST 0 // Interrupt destination (1=IRQ, 0=FIQ) |
r17967 | r17968 | |
---|---|---|
79 | 79 | virtual void machine_start(); |
80 | 80 | virtual void palette_init(); |
81 | 81 | 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); | |
82 | 84 | }; |
83 | 85 | |
84 | 86 | |
r17967 | r17968 | |
101 | 103 | /*----------- defined in video/mz700.c -----------*/ |
102 | 104 | |
103 | 105 | |
104 | SCREEN_UPDATE_IND16( mz700 ); | |
105 | 106 | |
106 | SCREEN_UPDATE_IND16( mz800 ); | |
107 | 107 | |
108 | 108 | |
109 | ||
110 | ||
109 | 111 | #endif /* MZ700_H_ */ |
r17967 | r17968 | |
---|---|---|
48 | 48 | virtual void machine_reset(); |
49 | 49 | virtual void video_start(); |
50 | 50 | virtual void palette_init(); |
51 | UINT32 screen_update_b2m(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
51 | 52 | }; |
52 | 53 | |
53 | 54 | /*----------- defined in machine/b2m.c -----------*/ |
r17967 | r17968 | |
---|---|---|
80 | 80 | DECLARE_DRIVER_INIT(arcadia); |
81 | 81 | virtual void video_start(); |
82 | 82 | virtual void palette_init(); |
83 | UINT32 screen_update_arcadia(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
83 | 84 | }; |
84 | 85 | |
85 | 86 |
r17967 | r17968 | |
---|---|---|
163 | 163 | virtual void machine_start(); |
164 | 164 | virtual void machine_reset(); |
165 | 165 | virtual void video_start(); |
166 | UINT32 screen_update_lisa(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
166 | 167 | }; |
167 | 168 | |
168 | 169 | |
r17967 | r17968 | |
172 | 173 | extern const via6522_interface lisa_via6522_1_intf; |
173 | 174 | |
174 | 175 | |
175 | SCREEN_UPDATE_IND16( lisa ); | |
176 | 176 | |
177 | ||
177 | 178 | extern NVRAM_HANDLER(lisa); |
178 | 179 | |
179 | 180 |
r17967 | r17968 | |
---|---|---|
57 | 57 | |
58 | 58 | required_shared_ptr<UINT8> m_video_ram; |
59 | 59 | required_shared_ptr<UINT8> m_char_ram; |
60 | UINT32 screen_update_ace(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
60 | 61 | }; |
61 | 62 | |
62 | 63 | #endif /* ACE_H_ */ |
r17967 | r17968 | |
---|---|---|
70 | 70 | virtual void video_start(); |
71 | 71 | DECLARE_PALETTE_INIT(cgenie); |
72 | 72 | DECLARE_PALETTE_INIT(cgenienz); |
73 | UINT32 screen_update_cgenie(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
73 | 74 | }; |
74 | 75 | |
75 | 76 | |
r17967 | r17968 | |
124 | 125 | /*----------- defined in video/cgenie.c -----------*/ |
125 | 126 | |
126 | 127 | |
127 | SCREEN_UPDATE_IND16( cgenie ); | |
128 | 128 | |
129 | ||
129 | 130 | DECLARE_READ8_HANDLER ( cgenie_index_r ); |
130 | 131 | DECLARE_READ8_HANDLER ( cgenie_register_r ); |
131 | 132 |
r17967 | r17968 | |
---|---|---|
36 | 36 | TILE_GET_INFO_MEMBER(aquarius_gettileinfo); |
37 | 37 | virtual void video_start(); |
38 | 38 | virtual void palette_init(); |
39 | UINT32 screen_update_aquarius(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
39 | 40 | }; |
40 | 41 | |
41 | 42 | |
r17967 | r17968 | |
44 | 45 | |
45 | 46 | |
46 | 47 | |
47 | SCREEN_UPDATE_IND16( aquarius ); | |
48 | 48 | |
49 | ||
49 | 50 | #endif /* AQUARIUS_H_ */ |
r17967 | r17968 | |
---|---|---|
266 | 266 | DECLARE_MACHINE_START(x68000); |
267 | 267 | DECLARE_VIDEO_START(x68000); |
268 | 268 | DECLARE_PALETTE_INIT(x68000); |
269 | UINT32 screen_update_x68000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
269 | 270 | }; |
270 | 271 | |
271 | 272 | |
r17967 | r17968 | |
300 | 301 | DECLARE_READ32_HANDLER( x68k_gvram32_r ); |
301 | 302 | DECLARE_WRITE32_HANDLER( x68k_tvram32_w ); |
302 | 303 | DECLARE_READ32_HANDLER( x68k_tvram32_r ); |
303 | SCREEN_UPDATE_IND16( x68000 ); | |
304 | 304 | |
305 | 305 | |
306 | 306 | |
307 | ||
307 | 308 | #endif /* X68K_H_ */ |
r17967 | r17968 | |
---|---|---|
19 | 19 | DECLARE_DRIVER_INIT(kramermc); |
20 | 20 | virtual void machine_reset(); |
21 | 21 | virtual void video_start(); |
22 | UINT32 screen_update_kramermc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
22 | 23 | }; |
23 | 24 | |
24 | 25 | |
r17967 | r17968 | |
33 | 34 | extern const gfx_layout kramermc_charlayout; |
34 | 35 | |
35 | 36 | |
36 | SCREEN_UPDATE_IND16( kramermc ); | |
37 | 37 | |
38 | 38 | |
39 | ||
39 | 40 | #endif /* KRAMERMC_h_ */ |
r17967 | r17968 | |
---|---|---|
119 | 119 | DECLARE_MACHINE_RESET(spectrum_plus3); |
120 | 120 | DECLARE_MACHINE_RESET(ts2068); |
121 | 121 | 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); | |
122 | 126 | }; |
123 | 127 | |
124 | 128 | |
r17967 | r17968 | |
152 | 156 | |
153 | 157 | |
154 | 158 | |
155 | SCREEN_UPDATE_IND16( spectrum ); | |
156 | SCREEN_VBLANK( spectrum ); | |
157 | 159 | |
160 | ||
161 | ||
158 | 162 | void spectrum_border_force_redraw (running_machine &machine); |
159 | 163 | void spectrum_border_set_last_color (running_machine &machine, int NewColor); |
160 | 164 | void spectrum_border_draw(running_machine &machine, bitmap_ind16 &bitmap, int full_refresh, |
r17967 | r17968 | |
173 | 177 | /*----------- defined in video/timex.c -----------*/ |
174 | 178 | |
175 | 179 | |
176 | SCREEN_UPDATE_IND16( ts2068 ); | |
177 | 180 | |
178 | SCREEN_UPDATE_IND16( tc2048 ); | |
179 | 181 | |
182 | ||
183 | ||
180 | 184 | #endif /* __SPECTRUM_H__ */ |
r17967 | r17968 | |
---|---|---|
23 | 23 | virtual void machine_start(); |
24 | 24 | virtual void machine_reset(); |
25 | 25 | virtual void video_start(); |
26 | UINT32 screen_update_ondra(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
26 | 27 | }; |
27 | 28 | |
28 | 29 |
r17967 | r17968 | |
---|---|---|
75 | 75 | DECLARE_MACHINE_RESET(kaypro2x); |
76 | 76 | DECLARE_PALETTE_INIT(kaypro); |
77 | 77 | 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); | |
78 | 81 | }; |
79 | 82 | |
80 | 83 | |
r17967 | r17968 | |
111 | 114 | MC6845_UPDATE_ROW( kaypro2x_update_row ); |
112 | 115 | |
113 | 116 | |
114 | SCREEN_UPDATE_IND16( kayproii ); | |
115 | SCREEN_UPDATE_IND16( omni2 ); | |
116 | SCREEN_UPDATE_RGB32( kaypro2x ); | |
117 | ||
118 | ||
119 |
r17967 | r17968 | |
---|---|---|
80 | 80 | DECLARE_VIDEO_START(super80); |
81 | 81 | DECLARE_VIDEO_START(super80v); |
82 | 82 | 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); | |
83 | 89 | }; |
84 | 90 | |
85 | 91 | |
86 | 92 | /*----------- defined in video/super80.c -----------*/ |
87 | 93 | |
88 | 94 | |
89 | SCREEN_UPDATE_IND16( super80 ); | |
90 | SCREEN_UPDATE_IND16( super80d ); | |
91 | SCREEN_UPDATE_IND16( super80e ); | |
92 | SCREEN_UPDATE_IND16( super80m ); | |
93 | 95 | |
94 | SCREEN_VBLANK( super80m ); | |
95 | 96 | |
96 | SCREEN_UPDATE_RGB32( super80v ); | |
97 | ||
98 | ||
99 | ||
100 | ||
101 | ||
102 | ||
97 | 103 | MC6845_UPDATE_ROW( super80v_update_row ); |
98 | 104 | |
99 | 105 | /*----------- defined in machine/super80.c -----------*/ |
r17967 | r17968 | |
---|---|---|
150 | 150 | virtual void machine_reset(); |
151 | 151 | virtual void video_start(); |
152 | 152 | 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); | |
153 | 155 | }; |
154 | 156 | |
155 | 157 | |
156 | 158 | /*----------- defined in video/tx0.c -----------*/ |
157 | 159 | |
158 | 160 | |
159 | SCREEN_VBLANK( tx0 ); | |
160 | SCREEN_UPDATE_IND16( tx0 ); | |
161 | 161 | |
162 | ||
163 | ||
162 | 164 | void tx0_plot(running_machine &machine, int x, int y); |
163 | 165 | void tx0_typewriter_drawchar(running_machine &machine, int character); |
164 | 166 |
r17967 | r17968 | |
---|---|---|
78 | 78 | /* keyboard state */ |
79 | 79 | int m_ksc; /* keyboard scan column */ |
80 | 80 | virtual void palette_init(); |
81 | UINT32 screen_update_px8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
81 | 82 | }; |
82 | 83 | |
83 | 84 | #endif |
r17967 | r17968 | |
---|---|---|
26 | 26 | virtual void machine_reset(); |
27 | 27 | virtual void video_start(); |
28 | 28 | virtual void palette_init(); |
29 | UINT32 screen_update_lviv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
29 | 30 | }; |
30 | 31 | |
31 | 32 |
r17967 | r17968 | |
---|---|---|
112 | 112 | int m_recall; |
113 | 113 | int m_dack3; |
114 | 114 | int m_tc; |
115 | UINT32 screen_update_mm1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
115 | 116 | }; |
116 | 117 | |
117 | 118 |
r17967 | r17968 | |
---|---|---|
43 | 43 | INT8 m_frame_count; |
44 | 44 | DECLARE_VIDEO_START(p2000m); |
45 | 45 | DECLARE_PALETTE_INIT(p2000m); |
46 | UINT32 screen_update_p2000m(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
46 | 47 | }; |
47 | 48 | |
48 | 49 |
r17967 | r17968 | |
---|---|---|
55 | 55 | virtual void machine_reset(); |
56 | 56 | virtual void palette_init(); |
57 | 57 | DECLARE_VIDEO_START(pet_crtc); |
58 | UINT32 screen_update_pet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
58 | 59 | }; |
59 | 60 | |
60 | 61 | /*----------- defined in video/pet.c -----------*/ |
r17967 | r17968 | |
63 | 64 | void pet_vh_init (running_machine &machine); |
64 | 65 | void pet80_vh_init (running_machine &machine); |
65 | 66 | void superpet_vh_init (running_machine &machine); |
66 | ||
67 | ||
67 | 68 | MC6845_UPDATE_ROW( pet40_update_row ); |
68 | 69 | MC6845_UPDATE_ROW( pet80_update_row ); |
69 | 70 | WRITE_LINE_DEVICE_HANDLER( pet_display_enable_changed ); |
r17967 | r17968 | |
---|---|---|
99 | 99 | virtual void machine_reset(); |
100 | 100 | virtual void video_start(); |
101 | 101 | 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); | |
102 | 104 | }; |
103 | 105 | |
104 | 106 |
r17967 | r17968 | |
---|---|---|
107 | 107 | virtual void video_start(); |
108 | 108 | virtual void palette_init(); |
109 | 109 | DECLARE_MACHINE_START(telestrat); |
110 | UINT32 screen_update_oric(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
110 | 111 | }; |
111 | 112 | |
112 | 113 | |
r17967 | r17968 | |
127 | 128 | /*----------- defined in video/oric.c -----------*/ |
128 | 129 | |
129 | 130 | |
130 | SCREEN_UPDATE_IND16( oric ); | |
131 | 131 | |
132 | 132 | |
133 | ||
133 | 134 | #endif /* ORIC_H_ */ |
r17967 | r17968 | |
---|---|---|
31 | 31 | virtual void machine_reset(); |
32 | 32 | virtual void video_start(); |
33 | 33 | virtual void palette_init(); |
34 | UINT32 screen_update_epnick(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
34 | 35 | }; |
35 | 36 | |
36 | 37 | |
r17967 | r17968 | |
38 | 39 | |
39 | 40 | |
40 | 41 | |
41 | SCREEN_UPDATE_IND16( epnick ); | |
42 | 42 | |
43 | ||
43 | 44 | DECLARE_WRITE8_HANDLER( epnick_reg_w ); |
44 | 45 | |
45 | 46 |
r17967 | r17968 | |
---|---|---|
24 | 24 | DECLARE_DRIVER_INIT(orao103); |
25 | 25 | virtual void machine_reset(); |
26 | 26 | virtual void video_start(); |
27 | UINT32 screen_update_orao(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
27 | 28 | }; |
28 | 29 | |
29 | 30 |
r17967 | r17968 | |
---|---|---|
156 | 156 | virtual void video_start(); |
157 | 157 | virtual void video_reset(); |
158 | 158 | virtual void palette_init(); |
159 | void screen_eof_mbc55x(screen_device &screen, bool state); | |
159 | 160 | }; |
160 | 161 | |
161 | 162 | /* IO chips */ |
r17967 | r17968 | |
221 | 222 | DECLARE_WRITE16_HANDLER (mbc55x_video_io_w); |
222 | 223 | |
223 | 224 | |
224 | SCREEN_VBLANK( mbc55x ); | |
225 | 225 | |
226 | 226 | |
227 | ||
227 | 228 | #define RED 0 |
228 | 229 | #define GREEN 1 |
229 | 230 | #define BLUE 2 |
r17967 | r17968 | |
---|---|---|
42 | 42 | UINT32 dcr[1024]; |
43 | 43 | virtual void machine_reset(); |
44 | 44 | virtual void video_start(); |
45 | UINT32 screen_update_dm7000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
45 | 46 | }; |
46 | 47 | |
47 | 48 | /* */ |
r17967 | r17968 | |
---|---|---|
63 | 63 | virtual void machine_reset(); |
64 | 64 | virtual void video_start(); |
65 | 65 | virtual void palette_init(); |
66 | UINT32 screen_update_vector06(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
66 | 67 | }; |
67 | 68 | |
68 | 69 |
r17967 | r17968 | |
---|---|---|
18 | 18 | required_shared_ptr<UINT8> m_video_ram; |
19 | 19 | DECLARE_READ8_MEMBER(galeb_keyboard_r); |
20 | 20 | virtual void video_start(); |
21 | UINT32 screen_update_galeb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
21 | 22 | }; |
22 | 23 | |
23 | 24 | /*----------- defined in video/galeb.c -----------*/ |
r17967 | r17968 | |
---|---|---|
29 | 29 | UINT8 m_reg[0x100]; |
30 | 30 | |
31 | 31 | DECLARE_DRIVER_INIT(pc1403); |
32 | UINT32 screen_update_pc1403(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
32 | 33 | }; |
33 | 34 | |
34 | 35 | |
r17967 | r17968 | |
51 | 52 | /*----------- defined in video/pc1403.c -----------*/ |
52 | 53 | |
53 | 54 | VIDEO_START( pc1403 ); |
54 | SCREEN_UPDATE_IND16( pc1403 ); | |
55 | 55 | |
56 | ||
56 | 57 | DECLARE_READ8_HANDLER(pc1403_lcd_read); |
57 | 58 | DECLARE_WRITE8_HANDLER(pc1403_lcd_write); |
58 | 59 |
r17967 | r17968 | |
---|---|---|
163 | 163 | DECLARE_WRITE32_MEMBER(s3c240x_mmc_w); |
164 | 164 | virtual void machine_start(); |
165 | 165 | virtual void machine_reset(); |
166 | UINT32 screen_update_gp32(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
166 | 167 | }; |
167 | 168 | |
168 | 169 |
r17967 | r17968 | |
---|---|---|
74 | 74 | virtual void machine_start(); |
75 | 75 | virtual void video_start(); |
76 | 76 | virtual void palette_init(); |
77 | UINT32 screen_update_electron(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
77 | 78 | }; |
78 | 79 | |
79 | 80 | |
r17967 | r17968 | |
87 | 88 | /*----------- defined in video/electron.c -----------*/ |
88 | 89 | |
89 | 90 | |
90 | SCREEN_UPDATE_IND16( electron ); | |
91 | 91 | |
92 | 92 | |
93 | ||
93 | 94 | #endif /* ELECTRON_H_ */ |
r17967 | r17968 | |
---|---|---|
88 | 88 | required_shared_ptr<UINT16> m_color_status_bg; |
89 | 89 | required_shared_ptr<UINT16> m_roll_overlay; |
90 | 90 | int m_blink; |
91 | UINT32 screen_update_cgc7900(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
91 | 92 | }; |
92 | 93 | |
93 | 94 | /*----------- defined in video/cgc7900.c -----------*/ |
r17967 | r17968 | |
---|---|---|
50 | 50 | UINT8 port_read_with_latch(UINT8 ext, UINT8 latch_state); |
51 | 51 | virtual void video_start(); |
52 | 52 | virtual void palette_init(); |
53 | UINT32 screen_update_channelf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
53 | 54 | }; |
54 | 55 | |
55 | 56 | |
r17967 | r17968 | |
57 | 58 | |
58 | 59 | |
59 | 60 | |
60 | SCREEN_UPDATE_IND16( channelf ); | |
61 | 61 | |
62 | 62 | |
63 | ||
63 | 64 | /*----------- defined in audio/channelf.c -----------*/ |
64 | 65 | |
65 | 66 | class channelf_sound_device : public device_t, |
r17967 | r17968 | |
---|---|---|
47 | 47 | TILE_GET_INFO_MEMBER(terminal_gettileinfo); |
48 | 48 | virtual void machine_reset(); |
49 | 49 | virtual void video_start(); |
50 | UINT32 screen_update_apple1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
50 | 51 | }; |
51 | 52 | |
52 | 53 | |
r17967 | r17968 | |
62 | 63 | /*----------- defined in video/apple1.c -----------*/ |
63 | 64 | |
64 | 65 | |
65 | SCREEN_UPDATE_IND16( apple1 ); | |
66 | 66 | |
67 | ||
67 | 68 | void apple1_vh_dsp_w (running_machine &machine, int data); |
68 | 69 | void apple1_vh_dsp_clr (running_machine &machine); |
69 | 70 | attotime apple1_vh_dsp_time_to_ready (running_machine &machine); |
r17967 | r17968 | |
---|---|---|
62 | 62 | DECLARE_MACHINE_START(orionz80); |
63 | 63 | DECLARE_MACHINE_RESET(orionz80); |
64 | 64 | DECLARE_MACHINE_RESET(orionpro); |
65 | UINT32 screen_update_orion128(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
65 | 66 | }; |
66 | 67 | |
67 | 68 |
r17967 | r17968 | |
---|---|---|
136 | 136 | DECLARE_MACHINE_RESET(hec2hrx); |
137 | 137 | DECLARE_MACHINE_START(hec2mdhrx); |
138 | 138 | DECLARE_MACHINE_RESET(hec2mdhrx); |
139 | UINT32 screen_update_hec2hrp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
139 | 140 | }; |
140 | 141 | |
141 | 142 | /*----------- defined in machine/hec2hrp.c -----------*/ |
r17967 | r17968 | |
154 | 155 | void hector_80c(running_machine &machine, bitmap_ind16 &bitmap, UINT8 *page, int ymax, int yram) ; |
155 | 156 | void hector_hr(running_machine &machine, bitmap_ind16 &bitmap, UINT8 *page, int ymax, int yram) ; |
156 | 157 | |
157 | SCREEN_UPDATE_IND16( hec2hrp ); | |
158 | 158 | |
159 | ||
159 | 160 | /* Sound function*/ |
160 | 161 | extern const sn76477_interface hector_sn76477_interface; |
161 | 162 |
r17967 | r17968 | |
---|---|---|
36 | 36 | virtual void machine_start(); |
37 | 37 | virtual void machine_reset(); |
38 | 38 | virtual void video_start(); |
39 | UINT32 screen_update_bk0010(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
39 | 40 | }; |
40 | 41 | |
41 | 42 |
r17967 | r17968 | |
---|---|---|
65 | 65 | virtual void video_start(); |
66 | 66 | virtual void palette_init(); |
67 | 67 | DECLARE_PALETTE_INIT(a7800p); |
68 | UINT32 screen_update_a7800(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
68 | 69 | }; |
69 | 70 | |
70 | 71 | |
71 | 72 | /*----------- defined in video/a7800.c -----------*/ |
72 | 73 | |
73 | 74 | |
74 | ||
75 | ||
75 | 76 | TIMER_DEVICE_CALLBACK( a7800_interrupt ); |
76 | 77 | |
77 | 78 |
r17967 | r17968 | |
---|---|---|
48 | 48 | DECLARE_READ8_MEMBER(nascom1_port_02_r); |
49 | 49 | DECLARE_DRIVER_INIT(nascom1); |
50 | 50 | 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); | |
51 | 53 | }; |
52 | 54 | |
53 | 55 | |
r17967 | r17968 | |
69 | 71 | |
70 | 72 | /*----------- defined in video/nascom1.c -----------*/ |
71 | 73 | |
72 | SCREEN_UPDATE_IND16( nascom1 ); | |
73 | SCREEN_UPDATE_IND16( nascom2 ); | |
74 | 74 | |
75 | 75 | |
76 | ||
77 | ||
76 | 78 | #endif /* NASCOM1_H_ */ |
r17967 | r17968 | |
---|---|---|
31 | 31 | DECLARE_WRITE8_MEMBER(gmaster_port_w); |
32 | 32 | DECLARE_DRIVER_INIT(gmaster); |
33 | 33 | virtual void palette_init(); |
34 | UINT32 screen_update_gmaster(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
34 | 35 | }; |
35 | 36 | |
36 | 37 |
r17967 | r17968 | |
---|---|---|
51 | 51 | TILE_GET_INFO_MEMBER(get_bg_tile_info); |
52 | 52 | virtual void machine_reset(); |
53 | 53 | virtual void video_start(); |
54 | UINT32 screen_update_microtan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
54 | 55 | }; |
55 | 56 | |
56 | 57 |
r17967 | r17968 | |
---|---|---|
42 | 42 | DECLARE_VIDEO_START(sapi1); |
43 | 43 | DECLARE_MACHINE_RESET(sapizps3); |
44 | 44 | 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); | |
45 | 47 | }; |
46 | 48 | |
47 | 49 | /*----------- defined in video/sapi1.c -----------*/ |
r17967 | r17968 | |
---|---|---|
82 | 82 | virtual void machine_reset(); |
83 | 83 | DECLARE_MACHINE_START(einstein2); |
84 | 84 | DECLARE_MACHINE_RESET(einstein2); |
85 | UINT32 screen_update_einstein2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
85 | 86 | }; |
86 | 87 | |
87 | 88 |
r17967 | r17968 | |
---|---|---|
90 | 90 | DECLARE_MACHINE_RESET(specimx); |
91 | 91 | DECLARE_VIDEO_START(specimx); |
92 | 92 | 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); | |
93 | 97 | }; |
94 | 98 | |
95 | 99 | |
r17967 | r17968 | |
108 | 112 | /*----------- defined in video/special.c -----------*/ |
109 | 113 | |
110 | 114 | |
111 | SCREEN_UPDATE_IND16( special ); | |
112 | 115 | |
113 | 116 | |
114 | SCREEN_UPDATE_IND16( specialp ); | |
115 | 117 | |
116 | 118 | |
117 | SCREEN_UPDATE_IND16( specimx ); | |
118 | 119 | |
119 | 120 | |
120 | SCREEN_UPDATE_IND16( erik ); | |
121 | 121 | |
122 | 122 | |
123 | 123 | |
124 | ||
125 | ||
126 | ||
127 | ||
124 | 128 | extern const rgb_t specimx_palette[16]; |
125 | 129 | |
126 | 130 | /*----------- defined in audio/special.c -----------*/ |
r17967 | r17968 | |
---|---|---|
130 | 130 | virtual void video_start(); |
131 | 131 | virtual void palette_init(); |
132 | 132 | 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); | |
133 | 135 | }; |
134 | 136 | |
135 | 137 | /*----------- defined in video/intv.c -----------*/ |
r17967 | r17968 | |
---|---|---|
33 | 33 | DECLARE_DRIVER_INIT(mikro80); |
34 | 34 | virtual void machine_reset(); |
35 | 35 | virtual void video_start(); |
36 | UINT32 screen_update_mikro80(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
36 | 37 | }; |
37 | 38 | |
38 | 39 |
r17967 | r17968 | |
---|---|---|
47 | 47 | DECLARE_DRIVER_INIT(ssystem3); |
48 | 48 | virtual void video_start(); |
49 | 49 | virtual void palette_init(); |
50 | UINT32 screen_update_ssystem3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
50 | 51 | }; |
51 | 52 | |
52 | 53 |
r17967 | r17968 | |
---|---|---|
167 | 167 | DECLARE_MACHINE_START(aleste); |
168 | 168 | DECLARE_MACHINE_RESET(aleste); |
169 | 169 | 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); | |
170 | 172 | }; |
171 | 173 | |
172 | 174 | |
r17967 | r17968 | |
205 | 207 | extern const mc6845_interface amstrad_plus_mc6845_intf; |
206 | 208 | |
207 | 209 | |
208 | SCREEN_UPDATE_IND16( amstrad ); | |
209 | SCREEN_VBLANK( amstrad ); | |
210 | 210 | |
211 | 211 | |
212 | ||
213 | ||
212 | 214 | SLOT_INTERFACE_START(cpc_exp_cards) |
213 | 215 | SLOT_INTERFACE("ssa1", CPC_SSA1) |
214 | 216 | SLOT_INTERFACE("dkspeech", CPC_DKSPEECH) |
r17967 | r17968 | |
---|---|---|
226 | 226 | virtual void video_start(); |
227 | 227 | virtual void video_reset(); |
228 | 228 | 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); | |
229 | 231 | }; |
230 | 232 | |
231 | 233 | |
r17967 | r17968 | |
436 | 438 | |
437 | 439 | |
438 | 440 | |
439 | SCREEN_VBLANK( nimbus ); | |
440 | SCREEN_UPDATE_IND16( nimbus ); | |
441 | 441 | |
442 | 442 | |
443 | ||
444 | ||
443 | 445 | #define RED 0 |
444 | 446 | #define GREEN 1 |
445 | 447 | #define BLUE 2 |
r17967 | r17968 | |
---|---|---|
54 | 54 | DECLARE_DRIVER_INIT(mz80k); |
55 | 55 | virtual void machine_reset(); |
56 | 56 | 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); | |
57 | 60 | }; |
58 | 61 | |
59 | 62 |
r17967 | r17968 | |
---|---|---|
181 | 181 | DECLARE_MACHINE_RESET(sms); |
182 | 182 | DECLARE_VIDEO_START(gamegear); |
183 | 183 | 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); | |
184 | 187 | }; |
185 | 188 | |
186 | 189 | |
r17967 | r17968 | |
212 | 215 | |
213 | 216 | |
214 | 217 | |
215 | SCREEN_UPDATE_RGB32( sms1 ); | |
216 | SCREEN_UPDATE_RGB32( sms ); | |
217 | SCREEN_UPDATE_RGB32( gamegear ); | |
218 | 218 | |
219 | ||
220 | ||
221 | ||
219 | 222 | #endif /* SMS_H_ */ |
r17967 | r17968 | |
---|---|---|
33 | 33 | DECLARE_DRIVER_INIT(poly88); |
34 | 34 | virtual void machine_reset(); |
35 | 35 | virtual void video_start(); |
36 | UINT32 screen_update_poly88(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
36 | 37 | }; |
37 | 38 | |
38 | 39 |
r17967 | r17968 | |
---|---|---|
47 | 47 | DECLARE_VIDEO_START(ut88); |
48 | 48 | DECLARE_MACHINE_START(ut88mini); |
49 | 49 | DECLARE_MACHINE_RESET(ut88mini); |
50 | UINT32 screen_update_ut88(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
50 | 51 | }; |
51 | 52 | |
52 | 53 |
r17967 | r17968 | |
---|---|---|
51 | 51 | DECLARE_MACHINE_START(llc1); |
52 | 52 | DECLARE_MACHINE_RESET(llc1); |
53 | 53 | 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); | |
54 | 56 | }; |
55 | 57 | |
56 | 58 |
r17967 | r17968 | |
---|---|---|
116 | 116 | DECLARE_MACHINE_RESET(trs80m4); |
117 | 117 | DECLARE_MACHINE_RESET(lnw80); |
118 | 118 | 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); | |
119 | 125 | }; |
120 | 126 | |
121 | 127 | |
r17967 | r17968 | |
137 | 143 | /*----------- defined in video/trs80.c -----------*/ |
138 | 144 | |
139 | 145 | |
140 | SCREEN_UPDATE_IND16( trs80 ); | |
141 | SCREEN_UPDATE_IND16( ht1080z ); | |
142 | SCREEN_UPDATE_IND16( meritum ); | |
143 | SCREEN_UPDATE_IND16( lnw80 ); | |
144 | SCREEN_UPDATE_IND16( radionic ); | |
145 | SCREEN_UPDATE_IND16( trs80m4 ); | |
146 | 146 | |
147 | 147 | |
148 | 148 | |
149 | 149 | |
150 | 150 | |
151 | ||
152 | ||
153 | ||
154 | ||
155 | ||
156 | ||
151 | 157 | #endif /* TRS80_H_ */ |
r17967 | r17968 | |
---|---|---|
33 | 33 | virtual void machine_reset(); |
34 | 34 | virtual void video_start(); |
35 | 35 | virtual void palette_init(); |
36 | UINT32 screen_update_pp01(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
36 | 37 | }; |
37 | 38 | |
38 | 39 |
r17967 | r17968 | |
---|---|---|
86 | 86 | DECLARE_MACHINE_RESET(cybikov2); |
87 | 87 | DECLARE_MACHINE_START(cybikoxt); |
88 | 88 | DECLARE_MACHINE_RESET(cybikoxt); |
89 | UINT32 screen_update_cybiko(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
89 | 90 | }; |
90 | 91 | |
91 | 92 |
r17967 | r17968 | |
---|---|---|
114 | 114 | virtual void machine_reset(); |
115 | 115 | virtual void video_start(); |
116 | 116 | virtual void palette_init(); |
117 | UINT32 screen_update_odyssey2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
117 | 118 | }; |
118 | 119 | |
119 | 120 | |
r17967 | r17968 | |
122 | 123 | extern const UINT8 odyssey2_colors[]; |
123 | 124 | |
124 | 125 | |
125 | SCREEN_UPDATE_IND16( odyssey2 ); | |
126 | 126 | |
127 | 127 | |
128 | ||
128 | 129 | STREAM_UPDATE( odyssey2_sh_update ); |
129 | 130 | |
130 | 131 | void odyssey2_ef9341_w( running_machine &machine, int command, int b, UINT8 data ); |
r17967 | r17968 | |
---|---|---|
241 | 241 | DECLARE_MACHINE_START(tk2000); |
242 | 242 | DECLARE_MACHINE_START(laser128); |
243 | 243 | DECLARE_MACHINE_START(space84); |
244 | UINT32 screen_update_apple2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
244 | 245 | }; |
245 | 246 | |
246 | 247 | |
r17967 | r17968 | |
288 | 289 | |
289 | 290 | |
290 | 291 | |
291 | SCREEN_UPDATE_IND16( apple2 ); | |
292 | 292 | |
293 | ||
293 | 294 | #endif /* APPLE2_H_ */ |
r17967 | r17968 | |
---|---|---|
33 | 33 | DECLARE_DRIVER_INIT(primo32); |
34 | 34 | virtual void machine_reset(); |
35 | 35 | DECLARE_MACHINE_RESET(primob); |
36 | UINT32 screen_update_primo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
36 | 37 | }; |
37 | 38 | |
38 | 39 |
r17967 | r17968 | |
---|---|---|
101 | 101 | DECLARE_PALETTE_INIT(ti82); |
102 | 102 | DECLARE_MACHINE_START(ti86); |
103 | 103 | DECLARE_MACHINE_START(ti83p); |
104 | UINT32 screen_update_ti85(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
104 | 105 | }; |
105 | 106 | |
106 | 107 | |
r17967 | r17968 | |
120 | 121 | /*----------- defined in video/ti85.c -----------*/ |
121 | 122 | |
122 | 123 | |
123 | SCREEN_UPDATE_IND16( ti85 ); | |
124 | 124 | |
125 | 125 | |
126 | 126 | |
127 | 127 | |
128 | ||
128 | 129 | #endif /* TI85_H_ */ |
r17967 | r17968 | |
---|---|---|
54 | 54 | DECLARE_PALETTE_INIT(svisionp); |
55 | 55 | DECLARE_PALETTE_INIT(svisionn); |
56 | 56 | 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); | |
57 | 59 | }; |
58 | 60 | |
59 | 61 |
r17967 | r17968 | |
---|---|---|
244 | 244 | int m_rmc; // row match count |
245 | 245 | int m_cmc; // column match count |
246 | 246 | int m_amm; // active mover mask |
247 | UINT32 screen_update_abc1600(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
247 | 248 | }; |
248 | 249 | |
249 | 250 |
r17967 | r17968 | |
---|---|---|
30 | 30 | virtual void machine_reset(); |
31 | 31 | virtual void video_start(); |
32 | 32 | virtual void palette_init(); |
33 | UINT32 screen_update_busicom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
33 | 34 | }; |
34 | 35 | |
35 | 36 |
r17967 | r17968 | |
---|---|---|
79 | 79 | |
80 | 80 | // video state |
81 | 81 | required_shared_ptr<UINT8> m_video_ram; |
82 | UINT32 screen_update_tdv2324(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
82 | 83 | }; |
83 | 84 | |
84 | 85 |
r17967 | r17968 | |
---|---|---|
26 | 26 | UINT8 m_reg[0x100]; |
27 | 27 | |
28 | 28 | DECLARE_DRIVER_INIT(pc1251); |
29 | UINT32 screen_update_pc1251(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
29 | 30 | }; |
30 | 31 | |
31 | 32 | |
r17967 | r17968 | |
47 | 48 | |
48 | 49 | DECLARE_READ8_HANDLER(pc1251_lcd_read); |
49 | 50 | DECLARE_WRITE8_HANDLER(pc1251_lcd_write); |
50 | SCREEN_UPDATE_IND16( pc1251 ); | |
51 | 51 | |
52 | 52 | |
53 | ||
53 | 54 | #endif /* PC1251_H_ */ |
r17967 | r17968 | |
---|---|---|
96 | 96 | optional_device<cassette_image_device> m_cass; |
97 | 97 | virtual void video_start(); |
98 | 98 | virtual void palette_init(); |
99 | UINT32 screen_update_vc4000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
99 | 100 | }; |
100 | 101 | |
101 | 102 |
r17967 | r17968 | |
---|---|---|
44 | 44 | virtual void machine_reset(); |
45 | 45 | virtual void video_start(); |
46 | 46 | virtual void palette_init(); |
47 | UINT32 screen_update_pk8020(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
47 | 48 | }; |
48 | 49 | |
49 | 50 |
r17967 | r17968 | |
---|---|---|
31 | 31 | virtual void video_start(); |
32 | 32 | DECLARE_MACHINE_RESET(galaxy); |
33 | 33 | DECLARE_MACHINE_RESET(galaxyp); |
34 | UINT32 screen_update_galaxy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
34 | 35 | }; |
35 | 36 | |
36 | 37 | |
r17967 | r17968 | |
47 | 48 | /*----------- defined in video/galaxy.c -----------*/ |
48 | 49 | |
49 | 50 | |
50 | SCREEN_UPDATE_IND16( galaxy ); | |
51 | 51 | |
52 | ||
52 | 53 | void galaxy_set_timer(running_machine &machine); |
53 | 54 | |
54 | 55 | #endif /* GALAXY_H_ */ |
r17967 | r17968 | |
---|---|---|
281 | 281 | DECLARE_MACHINE_START(bbcbp); |
282 | 282 | DECLARE_MACHINE_RESET(bbcbp); |
283 | 283 | DECLARE_VIDEO_START(bbcbp); |
284 | UINT32 screen_update_bbc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
284 | 285 | }; |
285 | 286 | |
286 | 287 | |
r17967 | r17968 | |
336 | 337 | |
337 | 338 | |
338 | 339 | |
339 | SCREEN_UPDATE_IND16( bbc ); | |
340 | 340 | |
341 | ||
341 | 342 | void bbc_set_video_memory_lookups(running_machine &machine, int ramsize); |
342 | 343 | void bbc_setscreenstart(running_machine &machine, int b4, int b5); |
343 | 344 | void bbcbp_setvideoshadow(running_machine &machine, int vdusel); |
r17967 | r17968 | |
---|---|---|
29 | 29 | DECLARE_READ8_MEMBER( port_b_r ); |
30 | 30 | DECLARE_WRITE8_MEMBER( port_b_w ); |
31 | 31 | DECLARE_READ8_MEMBER( port_c_r ); |
32 | UINT32 screen_update_gamepock(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
32 | 33 | }; |
33 | 34 | |
34 | 35 | |
35 | 36 | /*----------- defined in machine/gamepock.c -----------*/ |
36 | 37 | |
37 | SCREEN_UPDATE_IND16( gamepock ); | |
38 | 38 | |
39 | ||
39 | 40 | int gamepock_io_callback( device_t *device, int ioline, int state ); |
40 | 41 | |
41 | 42 | #endif |
r17967 | r17968 | |
---|---|---|
6 | 6 | { |
7 | 7 | } |
8 | 8 | |
9 | ||
9 | ||
10 | 10 | { |
11 | 11 | int x, y, j; |
12 | 12 |
r17967 | r17968 | |
---|---|---|
197 | 197 | machine().primary_screen->register_screen_bitmap(m_bitmap); |
198 | 198 | } |
199 | 199 | |
200 | ||
200 | void | |
201 | 201 | { |
202 | 202 | // rising edge |
203 | if ( | |
203 | if (st | |
204 | 204 | { |
205 | zx_state *state = screen.machine().driver_data<zx_state>(); | |
206 | 205 | /* 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; | |
209 | 208 | } |
210 | 209 | } |
211 | 210 |
r17967 | r17968 | |
---|---|---|
59 | 59 | } |
60 | 60 | |
61 | 61 | |
62 | ||
62 | void | |
63 | 63 | { |
64 | 64 | // rising edge |
65 | if ( | |
65 | if (st | |
66 | 66 | { |
67 | pdp1_state *state = screen.machine().driver_data<pdp1_state>(); | |
68 | 67 | |
69 | crt_eof( | |
68 | crt_eof( | |
70 | 69 | } |
71 | 70 | } |
72 | 71 | |
r17967 | r17968 | |
86 | 85 | /* |
87 | 86 | video_update_pdp1: effectively redraw the screen |
88 | 87 | */ |
89 | ||
88 | ||
90 | 89 | { |
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); | |
95 | 93 | |
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); | |
98 | 96 | |
99 | copybitmap(bitmap, | |
97 | copybitmap(bitmap, | |
100 | 98 | return 0; |
101 | 99 | } |
102 | 100 |
r17967 | r17968 | |
---|---|---|
131 | 131 | #define DOWN 57 |
132 | 132 | #define RIGHT 114 |
133 | 133 | |
134 | ||
134 | ||
135 | 135 | { |
136 | pc1401_state *state = screen.machine().driver_data<pc1401_state>(); | |
137 | 136 | running_machine &machine = screen.machine(); |
138 | 137 | int x, y, i, j; |
139 | 138 | int color[2]; |
r17967 | r17968 | |
149 | 148 | color[0] = 7; |
150 | 149 | color[1] = 8; |
151 | 150 | |
152 | if ( | |
151 | if ( | |
153 | 152 | { |
154 | 153 | for (x=RIGHT,y=DOWN,i=0; i<0x28;x+=2) |
155 | 154 | { |
156 | 155 | for (j=0; j<5;j++,i++,x+=2) |
157 | drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], | |
156 | drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], | |
158 | 157 | } |
159 | 158 | for (i=0x67; i>=0x40;x+=2) |
160 | 159 | { |
161 | 160 | for (j=0; j<5;j++,i--,x+=2) |
162 | drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], | |
161 | drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], | |
163 | 162 | } |
164 | 163 | } |
165 | 164 | |
166 | 165 | pocketc_draw_special(bitmap, RIGHT+149, DOWN+24, line, |
167 | | |
166 | | |
168 | 167 | |
169 | 168 | pocketc_draw_special(bitmap, RIGHT, DOWN-10, busy, |
170 | | |
169 | | |
171 | 170 | |
172 | 171 | pocketc_draw_special(bitmap, RIGHT+18, DOWN-10, def, |
173 | | |
172 | | |
174 | 173 | |
175 | 174 | pocketc_draw_special(bitmap, RIGHT+43, DOWN-10,shift, |
176 | | |
175 | | |
177 | 176 | |
178 | 177 | pocketc_draw_special(bitmap, RIGHT+63, DOWN-10,hyp, |
179 | | |
178 | | |
180 | 179 | |
181 | 180 | pocketc_draw_special(bitmap, RIGHT+38, DOWN+24,line, |
182 | | |
181 | | |
183 | 182 | |
184 | 183 | pocketc_draw_special(bitmap, RIGHT+23, DOWN+24,line, |
185 | | |
184 | | |
186 | 185 | |
187 | 186 | pocketc_draw_special(bitmap, RIGHT+8, DOWN+24,line, |
188 | | |
187 | | |
189 | 188 | |
190 | 189 | pocketc_draw_special(bitmap, RIGHT+183, DOWN-10,e, |
191 | | |
190 | | |
192 | 191 | |
193 | 192 | pocketc_draw_special(bitmap, RIGHT+176, DOWN-10,m, |
194 | | |
193 | | |
195 | 194 | |
196 | 195 | pocketc_draw_special(bitmap, RIGHT+168, DOWN-10,braces, |
197 | | |
196 | | |
198 | 197 | |
199 | 198 | pocketc_draw_special(bitmap, RIGHT+138, DOWN-10,rad, |
200 | | |
199 | | |
201 | 200 | |
202 | 201 | pocketc_draw_special(bitmap, RIGHT+134, DOWN-10,g, |
203 | | |
202 | | |
204 | 203 | |
205 | 204 | pocketc_draw_special(bitmap, RIGHT+126, DOWN-10,de, |
206 | | |
205 | | |
207 | 206 | |
208 | 207 | pocketc_draw_special(bitmap, RIGHT+165, DOWN+24,line, |
209 | | |
208 | | |
210 | 209 | |
211 | 210 | /* |
212 | 211 | 603c: 3 STAT |
r17967 | r17968 | |
---|---|---|
24 | 24 | |
25 | 25 | |
26 | 26 | |
27 | ||
27 | ||
28 | 28 | { |
29 | apple2gs_state *state = screen.machine().driver_data<apple2gs_state>(); | |
30 | 29 | const UINT8 *vram; |
31 | 30 | UINT16 *scanline; |
32 | 31 | UINT8 scb, b; |
r17967 | r17968 | |
36 | 35 | |
37 | 36 | beamy = cliprect.min_y; |
38 | 37 | |
39 | if ( | |
38 | if ( | |
40 | 39 | { |
41 | 40 | // in top or bottom border? |
42 | 41 | if ((beamy < BORDER_TOP) || (beamy >= 200+BORDER_TOP)) |
r17967 | r17968 | |
50 | 49 | scanline = &bitmap.pix16(beamy); |
51 | 50 | for (col = 0; col < BORDER_LEFT+BORDER_RIGHT+640; col++) |
52 | 51 | { |
53 | scanline[col] = | |
52 | scanline[col] = | |
54 | 53 | } |
55 | 54 | } |
56 | 55 | else // regular screen area |
57 | 56 | { |
58 | 57 | int shrline = beamy - BORDER_TOP; |
59 | 58 | |
60 | scb = | |
59 | scb = | |
61 | 60 | palette = ((scb & 0x0f) << 4) + 16; |
62 | 61 | |
63 | vram = & | |
62 | vram = & | |
64 | 63 | scanline = &bitmap.pix16(beamy); |
65 | 64 | |
66 | 65 | // draw left and right borders |
67 | 66 | for (col = 0; col < BORDER_LEFT; col++) |
68 | 67 | { |
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; | |
71 | 70 | } |
72 | 71 | |
73 | 72 | if (scb & 0x80) // 640 mode |
r17967 | r17968 | |
115 | 114 | /* call legacy Apple II video rendering at scanline 0 to draw into the off-screen buffer */ |
116 | 115 | if (beamy == 0) |
117 | 116 | { |
118 | apple2_state *a2state = screen.machine().driver_data<apple2_state>(); | |
119 | 117 | |
120 | 118 | // check if DHR should be monochrome 560x192 |
121 | if ( | |
119 | if ( | |
122 | 120 | { |
123 | | |
121 | | |
124 | 122 | } |
125 | 123 | else |
126 | 124 | { |
127 | | |
125 | | |
128 | 126 | } |
129 | 127 | |
130 | 128 | rectangle new_cliprect(0, 559, 0, 191); |
131 | | |
129 | screen_update_ | |
132 | 130 | } |
133 | 131 | |
134 | 132 | if ((beamy < (BORDER_TOP+4)) || (beamy >= (192+4+BORDER_TOP))) |
r17967 | r17968 | |
141 | 139 | scanline = &bitmap.pix16(beamy); |
142 | 140 | for (col = 0; col < BORDER_LEFT+BORDER_RIGHT+640; col++) |
143 | 141 | { |
144 | scanline[col] = | |
142 | scanline[col] = | |
145 | 143 | } |
146 | 144 | } |
147 | 145 | else |
r17967 | r17968 | |
151 | 149 | // draw left and right borders |
152 | 150 | for (col = 0; col < BORDER_LEFT + 40; col++) |
153 | 151 | { |
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; | |
156 | 154 | } |
157 | 155 | |
158 | memcpy(scanline + 40 + BORDER_LEFT, & | |
156 | memcpy(scanline + 40 + BORDER_LEFT, & | |
159 | 157 | } |
160 | 158 | } |
161 | 159 | return 0; |
r17967 | r17968 | |
---|---|---|
127 | 127 | draw_pixel; draw_pixel; draw_pixel; draw_pixel; |
128 | 128 | |
129 | 129 | |
130 | ||
130 | ||
131 | 131 | { |
132 | 132 | hp48_state *state = screen.machine().driver_data<hp48_state>(); |
133 | 133 | address_space &space = *screen.machine().device("maincpu")->memory().space(AS_PROGRAM); |
r17967 | r17968 | |
189 | 189 | int acc = 0; |
190 | 190 | for ( i = 0; i < HP48_NB_SCREENS; i++ ) |
191 | 191 | { |
192 | acc += | |
192 | acc += | |
193 | 193 | } |
194 | 194 | acc = (acc * 255) / (33 * HP48_NB_SCREENS); |
195 | 195 | bitmap.pix16(y, x ) = acc; |
196 | 196 | } |
197 | 197 | } |
198 | 198 | |
199 | | |
199 | | |
200 | 200 | |
201 | 201 | return 0; |
202 | 202 | } |
r17967 | r17968 | |
---|---|---|
363 | 363 | |
364 | 364 | |
365 | 365 | |
366 | ||
366 | ||
367 | 367 | { |
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)) | |
370 | 369 | { |
371 | 370 | case 0: |
372 | 371 | case VAR_VM0: |
r17967 | r17968 | |
---|---|---|
55 | 55 | { |
56 | 56 | } |
57 | 57 | |
58 | ||
58 | ||
59 | 59 | { |
60 | dai_state *state = screen.machine().driver_data<dai_state>(); | |
61 | 60 | address_space &space = *screen.machine().device("maincpu")->memory().space(AS_PROGRAM); |
62 | 61 | int i, j, k, l; |
63 | 62 | |
64 | UINT8* char_rom = | |
63 | UINT8* char_rom = | |
65 | 64 | |
66 | 65 | UINT16 dai_video_memory_start = 0xbfff; |
67 | 66 | UINT16 dai_scan_lines = 604; /* scan lines of PAL tv */ |
r17967 | r17968 | |
110 | 109 | unit_mode = (colour & 0x40) >> 6; |
111 | 110 | |
112 | 111 | if (colour & 0x80) |
113 | | |
112 | | |
114 | 113 | |
115 | 114 | switch (display_mode) |
116 | 115 | { |
r17967 | r17968 | |
132 | 131 | { |
133 | 132 | for (k=0; k<8; k++) |
134 | 133 | { |
135 | current_colour = | |
134 | current_colour = | |
136 | 135 | for (l=0; l<12; l++) |
137 | 136 | bitmap.pix16(current_scan_line/2 + j, (i*8+k)*12+l) = current_colour; |
138 | 137 | } |
r17967 | r17968 | |
149 | 148 | { |
150 | 149 | for (k=0; k<8; k++) |
151 | 150 | { |
152 | current_colour = | |
151 | current_colour = | |
153 | 152 | for (l=0; l<12; l++) |
154 | 153 | bitmap.pix16(current_scan_line/2 + j, (i*8+k)*12+l) = current_colour; |
155 | 154 | } |
r17967 | r17968 | |
171 | 170 | { |
172 | 171 | for (k=0; k<8; k++) |
173 | 172 | { |
174 | current_colour = | |
173 | current_colour = | |
175 | 174 | for (l=0; l<6; l++) |
176 | 175 | bitmap.pix16(current_scan_line/2 + j, (i*8+k)*6+l) = current_colour; |
177 | 176 | } |
r17967 | r17968 | |
188 | 187 | { |
189 | 188 | for (k=0; k<8; k++) |
190 | 189 | { |
191 | current_colour = | |
190 | current_colour = | |
192 | 191 | for (l=0; l<6; l++) |
193 | 192 | bitmap.pix16(current_scan_line/2 + j, (i*8+k)*6+l) = current_colour; |
194 | 193 | } |
r17967 | r17968 | |
210 | 209 | { |
211 | 210 | for (k=0; k<8; k++) |
212 | 211 | { |
213 | current_colour = | |
212 | current_colour = | |
214 | 213 | for (l=0; l<3; l++) |
215 | 214 | bitmap.pix16(current_scan_line/2 + j, (i*8+k)*3+l) = current_colour; |
216 | 215 | } |
r17967 | r17968 | |
226 | 225 | { |
227 | 226 | for (k=0; k<8; k++) |
228 | 227 | { |
229 | current_colour = | |
228 | current_colour = | |
230 | 229 | for (l=0; l<3; l++) |
231 | 230 | bitmap.pix16(current_scan_line/2 + j, (i*8+k)*3+l) = current_colour; |
232 | 231 | } |
r17967 | r17968 | |
248 | 247 | { |
249 | 248 | for (k=0; k<8; k++) |
250 | 249 | { |
251 | current_colour = | |
250 | current_colour = | |
252 | 251 | for (l=0; l<2; l++) |
253 | 252 | bitmap.pix16(current_scan_line/2 + j, (i*8+k)*2+l) = current_colour; |
254 | 253 | } |
r17967 | r17968 | |
264 | 263 | { |
265 | 264 | for (k=0; k<8; k++) |
266 | 265 | { |
267 | current_colour = | |
266 | current_colour = | |
268 | 267 | for (l=0; l<2; l++) |
269 | 268 | bitmap.pix16(current_scan_line/2 + j, (i*8+k)*2+l) = current_colour; |
270 | 269 | } |
r17967 | r17968 | |
293 | 292 | { |
294 | 293 | for (k=0; k<8; k++) |
295 | 294 | { |
296 | current_colour = | |
295 | current_colour = | |
297 | 296 | for (l=0; l<12; l++) |
298 | 297 | bitmap.pix16(current_scan_line/2 + j, (i*8+k)*12+l) = current_colour; |
299 | 298 | } |
r17967 | r17968 | |
311 | 310 | { |
312 | 311 | for (k=0; k<8; k++) |
313 | 312 | { |
314 | current_colour = | |
313 | current_colour = | |
315 | 314 | for (l=0; l<12; l++) |
316 | 315 | bitmap.pix16(current_scan_line/2 + j, (i*8+k)*12+l) = current_colour; |
317 | 316 | } |
r17967 | r17968 | |
334 | 333 | { |
335 | 334 | for (k=0; k<8; k++) |
336 | 335 | { |
337 | current_colour = | |
336 | current_colour = | |
338 | 337 | for (l=0; l<6; l++) |
339 | 338 | bitmap.pix16(current_scan_line/2 + j, (i*8+k)*6+l) = current_colour; |
340 | 339 | } |
r17967 | r17968 | |
352 | 351 | { |
353 | 352 | for (k=0; k<8; k++) |
354 | 353 | { |
355 | current_colour = | |
354 | current_colour = | |
356 | 355 | for (l=0; l<6; l++) |
357 | 356 | bitmap.pix16(current_scan_line/2 + j, (i*8+k)*6+l) = current_colour; |
358 | 357 | } |
r17967 | r17968 | |
375 | 374 | { |
376 | 375 | for (k=0; k<8; k++) |
377 | 376 | { |
378 | current_colour = | |
377 | current_colour = | |
379 | 378 | for (l=0; l<3; l++) |
380 | 379 | bitmap.pix16(current_scan_line/2 + j, (i*8+k)*3+l) = current_colour; |
381 | 380 | } |
r17967 | r17968 | |
392 | 391 | { |
393 | 392 | for (k=0; k<8; k++) |
394 | 393 | { |
395 | current_colour = | |
394 | current_colour = | |
396 | 395 | for (l=0; l<3; l++) |
397 | 396 | bitmap.pix16(current_scan_line/2 + j, (i*8+k)*3+l) = current_colour; |
398 | 397 | } |
r17967 | r17968 | |
414 | 413 | { |
415 | 414 | for (k=0; k<8; k++) |
416 | 415 | { |
417 | current_colour = | |
416 | current_colour = | |
418 | 417 | for (l=0; l<2; l++) |
419 | 418 | bitmap.pix16(current_scan_line/2 + j, (i*8+k)*2+l) = current_colour; |
420 | 419 | } |
r17967 | r17968 | |
431 | 430 | { |
432 | 431 | for (k=0; k<8; k++) |
433 | 432 | { |
434 | current_colour = | |
433 | current_colour = | |
435 | 434 | for (l=0; l<2; l++) |
436 | 435 | bitmap.pix16(current_scan_line/2 + j, (i*8+k)*2+l) = current_colour; |
437 | 436 | } |
r17967 | r17968 | |
---|---|---|
53 | 53 | Do NOT call osd_update_display() from this function, |
54 | 54 | it will be called by the main emulation engine. |
55 | 55 | ***************************************************************************/ |
56 | ||
56 | ||
57 | 57 | { |
58 | nc_state *state = screen.machine().driver_data<nc_state>(); | |
59 | 58 | int y; |
60 | 59 | int b; |
61 | 60 | int x; |
62 | 61 | int height, width; |
63 | 62 | int pens[2]; |
64 | 63 | |
65 | if ( | |
64 | if ( | |
66 | 65 | { |
67 | 66 | height = NC200_SCREEN_HEIGHT; |
68 | 67 | width = NC200_SCREEN_WIDTH; |
69 | 68 | |
70 | if ( | |
69 | if ( | |
71 | 70 | { |
72 | 71 | pens[0] = 2; |
73 | 72 | pens[1] = 3; |
r17967 | r17968 | |
91 | 90 | { |
92 | 91 | int by; |
93 | 92 | /* 64 bytes per line */ |
94 | char *line_ptr = ((char*)screen.machine().device<ram_device>(RAM_TAG)->pointer()) + | |
93 | char *line_ptr = ((char*)screen.machine().device<ram_device>(RAM_TAG)->pointer()) + | |
95 | 94 | |
96 | 95 | x = 0; |
97 | 96 | for (by=0; by<width>>3; by++) |
r17967 | r17968 | |
---|---|---|
78 | 78 | #define MAC_MAIN_SCREEN_BUF_OFFSET 0x5900 |
79 | 79 | #define MAC_ALT_SCREEN_BUF_OFFSET 0xD900 |
80 | 80 | |
81 | ||
81 | ||
82 | 82 | { |
83 | 83 | UINT32 video_base; |
84 | 84 | const UINT16 *video_ram; |
85 | 85 | UINT16 word; |
86 | 86 | UINT16 *line; |
87 | 87 | int y, x, b; |
88 | mac_state *state = screen.machine().driver_data<mac_state>(); | |
89 | 88 | |
90 | video_base = screen.machine().device<ram_device>(RAM_TAG)->size() - ( | |
89 | video_base = screen.machine().device<ram_device>(RAM_TAG)->size() - ( | |
91 | 90 | video_ram = (const UINT16 *) (screen.machine().device<ram_device>(RAM_TAG)->pointer() + video_base); |
92 | 91 | |
93 | 92 | for (y = 0; y < MAC_V_VIS; y++) |
r17967 | r17968 | |
106 | 105 | return 0; |
107 | 106 | } |
108 | 107 | |
109 | ||
108 | ||
110 | 109 | { |
111 | 110 | UINT32 video_base; |
112 | 111 | const UINT16 *video_ram; |
113 | 112 | UINT16 word; |
114 | 113 | UINT16 *line; |
115 | 114 | int y, x, b; |
116 | mac_state *state = screen.machine().driver_data<mac_state>(); | |
117 | 115 | |
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]; | |
120 | 118 | |
121 | 119 | for (y = 0; y < MAC_V_VIS; y++) |
122 | 120 | { |
r17967 | r17968 | |
134 | 132 | return 0; |
135 | 133 | } |
136 | 134 | |
137 | ||
135 | ||
138 | 136 | { |
139 | 137 | const UINT16 *video_ram; |
140 | 138 | UINT16 word; |
141 | 139 | UINT16 *line; |
142 | 140 | int y, x, b; |
143 | mac_state *state = screen.machine().driver_data<mac_state>(); | |
144 | 141 | |
145 | video_ram = (const UINT16 *) | |
142 | video_ram = (const UINT16 *) | |
146 | 143 | |
147 | 144 | for (y = 0; y < 400; y++) |
148 | 145 | { |
r17967 | r17968 | |
160 | 157 | return 0; |
161 | 158 | } |
162 | 159 | |
163 | ||
160 | ||
164 | 161 | { |
165 | 162 | const UINT16 *video_ram; |
166 | 163 | UINT16 word; |
167 | 164 | UINT16 *line; |
168 | 165 | int y, x, b; |
169 | mac_state *state = screen.machine().driver_data<mac_state>(); | |
170 | 166 | |
171 | video_ram = (const UINT16 *) | |
167 | video_ram = (const UINT16 *) | |
172 | 168 | |
173 | 169 | for (y = 0; y < 400; y++) |
174 | 170 | { |
r17967 | r17968 | |
186 | 182 | return 0; |
187 | 183 | } |
188 | 184 | |
189 | ||
185 | ||
190 | 186 | { |
191 | 187 | UINT16 *line; |
192 | 188 | int y, x; |
193 | 189 | 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(); | |
196 | 191 | |
197 | 192 | for (y = 0; y < 400; y++) |
198 | 193 | { |
r17967 | r17968 | |
374 | 369 | m_rbv_type = RBV_TYPE_V8; |
375 | 370 | } |
376 | 371 | |
377 | ||
372 | ||
378 | 373 | { |
379 | 374 | UINT32 *scanline; |
380 | 375 | int x, y, hres, vres; |
381 | mac_state *mac = screen.machine().driver_data<mac_state>(); | |
382 | 376 | UINT8 *vram8 = (UINT8 *)screen.machine().device<ram_device>(RAM_TAG)->pointer(); |
383 | 377 | |
384 | switch (m | |
378 | switch (m | |
385 | 379 | { |
386 | 380 | case 32: // classic II built-in display |
387 | 381 | hres = MAC_H_VIS; |
r17967 | r17968 | |
406 | 400 | break; |
407 | 401 | } |
408 | 402 | |
409 | switch (m | |
403 | switch (m | |
410 | 404 | { |
411 | 405 | case 0: // 1bpp |
412 | 406 | { |
r17967 | r17968 | |
419 | 413 | { |
420 | 414 | pixels = vram8[(y * (hres/8)) + ((x/8)^3)]; |
421 | 415 | |
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)]; | |
430 | 424 | } |
431 | 425 | } |
432 | 426 | } |
r17967 | r17968 | |
443 | 437 | { |
444 | 438 | pixels = vram8[(y * (hres/4)) + (BYTE4_XOR_BE(x))]; |
445 | 439 | |
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)]; | |
450 | 444 | } |
451 | 445 | } |
452 | 446 | } |
r17967 | r17968 | |
464 | 458 | { |
465 | 459 | pixels = vram8[(y * (hres/2)) + (BYTE4_XOR_BE(x))]; |
466 | 460 | |
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)]; | |
469 | 463 | } |
470 | 464 | } |
471 | 465 | } |
r17967 | r17968 | |
482 | 476 | for (x = 0; x < hres; x++) |
483 | 477 | { |
484 | 478 | pixels = vram8[(y * hres) + (BYTE4_XOR_BE(x))]; |
485 | *scanline++ = m | |
479 | *scanline++ = m | |
486 | 480 | } |
487 | 481 | } |
488 | 482 | } |
r17967 | r17968 | |
491 | 485 | return 0; |
492 | 486 | } |
493 | 487 | |
494 | ||
488 | ||
495 | 489 | { |
496 | 490 | UINT32 *scanline; |
497 | 491 | int x, y; |
498 | mac_state *mac = screen.machine().driver_data<mac_state>(); | |
499 | 492 | UINT8 mode = 0; |
500 | 493 | |
501 | switch (m | |
494 | switch (m | |
502 | 495 | { |
503 | 496 | case RBV_TYPE_RBV: |
504 | 497 | case RBV_TYPE_V8: |
505 | mode = m | |
498 | mode = m | |
506 | 499 | break; |
507 | 500 | |
508 | 501 | case RBV_TYPE_SONORA: |
509 | mode = m | |
502 | mode = m | |
510 | 503 | |
511 | 504 | // forced blank? |
512 | if (m | |
505 | if (m | |
513 | 506 | { |
514 | 507 | return 0; |
515 | 508 | } |
r17967 | r17968 | |
520 | 513 | { |
521 | 514 | case 0: // 1bpp |
522 | 515 | { |
523 | UINT8 *vram8 = (UINT8 *)m | |
516 | UINT8 *vram8 = (UINT8 *)m | |
524 | 517 | UINT8 pixels; |
525 | 518 | |
526 | if (m | |
519 | if (m | |
527 | 520 | { |
528 | 521 | for (y = 0; y < 480; y++) |
529 | 522 | { |
r17967 | r17968 | |
532 | 525 | { |
533 | 526 | pixels = vram8[(y * 80) + ((x/8)^3)]; |
534 | 527 | |
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)]; | |
543 | 536 | } |
544 | 537 | } |
545 | 538 | } |
r17967 | r17968 | |
552 | 545 | { |
553 | 546 | pixels = vram8[(y * 0x400) + ((x/8)^3)]; |
554 | 547 | |
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)]; | |
563 | 556 | } |
564 | 557 | } |
565 | 558 | } |
r17967 | r17968 | |
568 | 561 | |
569 | 562 | case 1: // 2bpp |
570 | 563 | { |
571 | UINT8 *vram8 = (UINT8 *)m | |
564 | UINT8 *vram8 = (UINT8 *)m | |
572 | 565 | UINT8 pixels; |
573 | 566 | |
574 | 567 | for (y = 0; y < 480; y++) |
r17967 | r17968 | |
578 | 571 | { |
579 | 572 | pixels = vram8[(y * 160) + (BYTE4_XOR_BE(x))]; |
580 | 573 | |
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)]; | |
585 | 578 | } |
586 | 579 | } |
587 | 580 | } |
r17967 | r17968 | |
589 | 582 | |
590 | 583 | case 2: // 4bpp |
591 | 584 | { |
592 | UINT8 *vram8 = (UINT8 *)m | |
585 | UINT8 *vram8 = (UINT8 *)m | |
593 | 586 | UINT8 pixels; |
594 | 587 | |
595 | 588 | for (y = 0; y < 480; y++) |
r17967 | r17968 | |
600 | 593 | { |
601 | 594 | pixels = vram8[(y * 320) + (BYTE4_XOR_BE(x))]; |
602 | 595 | |
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)]; | |
605 | 598 | } |
606 | 599 | } |
607 | 600 | } |
r17967 | r17968 | |
609 | 602 | |
610 | 603 | case 3: // 8bpp |
611 | 604 | { |
612 | UINT8 *vram8 = (UINT8 *)m | |
605 | UINT8 *vram8 = (UINT8 *)m | |
613 | 606 | UINT8 pixels; |
614 | 607 | |
615 | if (m | |
608 | if (m | |
616 | 609 | { |
617 | 610 | for (y = 0; y < 480; y++) |
618 | 611 | { |
r17967 | r17968 | |
621 | 614 | for (x = 0; x < 640; x++) |
622 | 615 | { |
623 | 616 | pixels = vram8[(y * 0x280) + (BYTE4_XOR_BE(x))]; |
624 | *scanline++ = m | |
617 | *scanline++ = m | |
625 | 618 | } |
626 | 619 | } |
627 | 620 | } |
r17967 | r17968 | |
634 | 627 | for (x = 0; x < 640; x++) |
635 | 628 | { |
636 | 629 | pixels = vram8[(y * 2048) + (BYTE4_XOR_BE(x))]; |
637 | *scanline++ = m | |
630 | *scanline++ = m | |
638 | 631 | } |
639 | 632 | } |
640 | 633 | } |
r17967 | r17968 | |
855 | 848 | } |
856 | 849 | } |
857 | 850 | |
858 | ||
851 | ||
859 | 852 | { |
860 | 853 | UINT32 *scanline; |
861 | 854 | int x, y; |
862 | mac_state *mac = screen.machine().driver_data<mac_state>(); | |
863 | 855 | |
864 | switch (m | |
856 | switch (m | |
865 | 857 | { |
866 | 858 | case 0: // 1bpp |
867 | 859 | { |
868 | UINT8 *vram8 = (UINT8 *)m | |
860 | UINT8 *vram8 = (UINT8 *)m | |
869 | 861 | UINT8 pixels; |
870 | vram8 += m | |
862 | vram8 += m | |
871 | 863 | |
872 | 864 | for (y = 0; y < 870; y++) |
873 | 865 | { |
874 | 866 | scanline = &bitmap.pix32(y); |
875 | 867 | for (x = 0; x < 1152; x+=8) |
876 | 868 | { |
877 | pixels = vram8[(y * m | |
869 | pixels = vram8[(y * m | |
878 | 870 | |
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)]; | |
887 | 879 | } |
888 | 880 | } |
889 | 881 | } |
r17967 | r17968 | |
891 | 883 | |
892 | 884 | case 1: // 2bpp |
893 | 885 | { |
894 | UINT8 *vram8 = (UINT8 *)m | |
886 | UINT8 *vram8 = (UINT8 *)m | |
895 | 887 | UINT8 pixels; |
896 | vram8 += m | |
888 | vram8 += m | |
897 | 889 | |
898 | 890 | for (y = 0; y < 870; y++) |
899 | 891 | { |
900 | 892 | scanline = &bitmap.pix32(y); |
901 | 893 | for (x = 0; x < 1152/4; x++) |
902 | 894 | { |
903 | pixels = vram8[(y * m | |
895 | pixels = vram8[(y * m | |
904 | 896 | |
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)]; | |
909 | 901 | } |
910 | 902 | } |
911 | 903 | } |
r17967 | r17968 | |
913 | 905 | |
914 | 906 | case 2: // 4bpp |
915 | 907 | { |
916 | UINT8 *vram8 = (UINT8 *)m | |
908 | UINT8 *vram8 = (UINT8 *)m | |
917 | 909 | UINT8 pixels; |
918 | vram8 += m | |
910 | vram8 += m | |
919 | 911 | |
920 | 912 | for (y = 0; y < 870; y++) |
921 | 913 | { |
r17967 | r17968 | |
923 | 915 | |
924 | 916 | for (x = 0; x < 1152/2; x++) |
925 | 917 | { |
926 | pixels = vram8[(y * m | |
918 | pixels = vram8[(y * m | |
927 | 919 | |
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)]; | |
930 | 922 | } |
931 | 923 | } |
932 | 924 | } |
r17967 | r17968 | |
934 | 926 | |
935 | 927 | case 3: // 8bpp |
936 | 928 | { |
937 | UINT8 *vram8 = (UINT8 *)m | |
929 | UINT8 *vram8 = (UINT8 *)m | |
938 | 930 | UINT8 pixels; |
939 | vram8 += m | |
931 | vram8 += m | |
940 | 932 | |
941 | 933 | for (y = 0; y < 870; y++) |
942 | 934 | { |
r17967 | r17968 | |
944 | 936 | |
945 | 937 | for (x = 0; x < 1152; x++) |
946 | 938 | { |
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]; | |
949 | 941 | } |
950 | 942 | } |
951 | 943 | } |
r17967 | r17968 | |
957 | 949 | UINT32 *base; |
958 | 950 | |
959 | 951 | scanline = &bitmap.pix32(y); |
960 | base = (UINT32 *)&m | |
952 | base = (UINT32 *)&m | |
961 | 953 | for (x = 0; x < 640; x++) |
962 | 954 | { |
963 | 955 | *scanline++ = *base++; |
r17967 | r17968 | |
969 | 961 | return 0; |
970 | 962 | } |
971 | 963 | |
972 | ||
964 | ||
973 | 965 | { |
974 | 966 | UINT32 *scanline; |
975 | 967 | 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(); | |
978 | 969 | UINT8 pixels; |
979 | 970 | |
980 | 971 | // vram8 += 0x40000; |
r17967 | r17968 | |
985 | 976 | for (x = 0; x < 640; x++) |
986 | 977 | { |
987 | 978 | pixels = vram8[(y * 640) + (BYTE4_XOR_BE(x))]; |
988 | *scanline++ = m | |
979 | *scanline++ = m | |
989 | 980 | } |
990 | 981 | } |
991 | 982 |
r17967 | r17968 | |
---|---|---|
26 | 26 | { |
27 | 27 | } |
28 | 28 | |
29 | ||
29 | ||
30 | 30 | { |
31 | 31 | int x,y; |
32 | 32 | address_space &space = *screen.machine().device("maincpu")->memory().space(AS_PROGRAM); |
r17967 | r17968 | |
42 | 42 | return 0; |
43 | 43 | } |
44 | 44 | |
45 | ||
45 | ||
46 | 46 | { |
47 | 47 | int x,y; |
48 | 48 | address_space &space = *screen.machine().device("maincpu")->memory().space(AS_PROGRAM); |
r17967 | r17968 | |
---|---|---|
96 | 96 | { |
97 | 97 | } |
98 | 98 | |
99 | ||
99 | ||
100 | 100 | { |
101 | mc80_state *state = screen.machine().driver_data<mc80_state>(); | |
102 | 101 | UINT8 y,ra,chr,gfx; |
103 | 102 | UINT16 sy=0,ma=0,x; |
104 | 103 | |
r17967 | r17968 | |
112 | 111 | { |
113 | 112 | if (ra > 3 && ra < 12) |
114 | 113 | { |
115 | chr = | |
114 | chr = | |
116 | 115 | gfx = prom[(chr<<3) | (ra-4)]; |
117 | 116 | } |
118 | 117 | else |
r17967 | r17968 | |
142 | 141 | m_p_videoram.set_target(memregion("vram")->base(),m_p_videoram.bytes()); |
143 | 142 | } |
144 | 143 | |
145 | ||
144 | ||
146 | 145 | { |
147 | mc80_state *state = screen.machine().driver_data<mc80_state>(); | |
148 | 146 | UINT8 gfx; |
149 | 147 | UINT16 y=0,ma=0,x; |
150 | 148 | |
r17967 | r17968 | |
154 | 152 | { |
155 | 153 | for (x = ma; x < ma + 64; x++) |
156 | 154 | { |
157 | gfx = | |
155 | gfx = | |
158 | 156 | |
159 | 157 | /* Display a scanline of a character */ |
160 | 158 | *p++ = BIT(gfx, 7); |
r17967 | r17968 | |
---|---|---|
383 | 383 | m_is_premium = 1; |
384 | 384 | } |
385 | 385 | |
386 | ||
386 | ||
387 | 387 | { |
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); | |
393 | 392 | return 0; |
394 | 393 | } |
395 | 394 |
r17967 | r17968 | |
---|---|---|
129 | 129 | #define DOWN 45 |
130 | 130 | #define RIGHT 76 |
131 | 131 | |
132 | ||
132 | ||
133 | 133 | { |
134 | pc1350_state *state = screen.machine().driver_data<pc1350_state>(); /* The contrast colours need some work done - select contrast level 7 for now */ | |
135 | 134 | int x, y=DOWN, i, j, k=0, b; |
136 | 135 | int color[4]; |
137 | 136 | running_machine &machine = screen.machine(); |
r17967 | r17968 | |
148 | 147 | for (x=RIGHT, i=pc1350_addr[k]; i<0xa00; i+=0x200) |
149 | 148 | for (j=0; j<=0x1d; j++, x+=2) |
150 | 149 | for (b = 0; b < 8; b++) |
151 | bitmap.plot_box(x, y + b * 2, 2, 2, color[( | |
150 | bitmap.plot_box(x, y + b * 2, 2, 2, color[( | |
152 | 151 | |
153 | 152 | |
154 | 153 | /* 783c: 0 SHIFT 1 DEF 4 RUN 5 PRO 6 JAPAN 7 SML */ |
155 | 154 | /* I don't know how they really look like in the lcd */ |
156 | 155 | pocketc_draw_special(bitmap, RIGHT-30, DOWN+45, shift, |
157 | | |
156 | | |
158 | 157 | pocketc_draw_special(bitmap, RIGHT-30, DOWN+55, def, |
159 | | |
158 | | |
160 | 159 | pocketc_draw_special(bitmap, RIGHT-30, DOWN+5, run, |
161 | | |
160 | | |
162 | 161 | pocketc_draw_special(bitmap, RIGHT-30, DOWN+15, pro, |
163 | | |
162 | | |
164 | 163 | pocketc_draw_special(bitmap, RIGHT-30, DOWN+25, japan, |
165 | | |
164 | | |
166 | 165 | pocketc_draw_special(bitmap, RIGHT-30, DOWN+35, sml, |
167 | | |
166 | | |
168 | 167 | |
169 | 168 | return 0; |
170 | 169 | } |
r17967 | r17968 | |
---|---|---|
37 | 37 | |
38 | 38 | ***************************************************************************/ |
39 | 39 | |
40 | ||
40 | ||
41 | 41 | { |
42 | nes_state *state = screen.machine().driver_data<nes_state>(); | |
43 | 42 | |
44 | 43 | /* render the ppu */ |
45 | | |
44 | | |
46 | 45 | |
47 | 46 | /* if this is a disk system game, check for the flip-disk key */ |
48 | if ( | |
47 | if ( | |
49 | 48 | { |
50 | 49 | // latch this input so it doesn't go at warp speed |
51 | if ((screen.machine().root_device().ioport("FLIPDISK")->read() & 0x01) && (! | |
50 | if ((screen.machine().root_device().ioport("FLIPDISK")->read() & 0x01) && (! | |
52 | 51 | { |
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; | |
57 | 56 | |
58 | if ( | |
57 | if ( | |
59 | 58 | popmessage("No disk inserted."); |
60 | 59 | else |
61 | popmessage("Disk set to side %d", | |
60 | popmessage("Disk set to side %d", | |
62 | 61 | } |
63 | 62 | |
64 | 63 | if (!(screen.machine().root_device().ioport("FLIPDISK")->read() & 0x01)) |
65 | | |
64 | | |
66 | 65 | } |
67 | 66 | return 0; |
68 | 67 | } |
r17967 | r17968 | |
---|---|---|
154 | 154 | Do NOT call osd_update_display() from this function, |
155 | 155 | it will be called by the main emulation engine. |
156 | 156 | ***************************************************************************/ |
157 | ||
157 | ||
158 | 158 | { |
159 | pcw16_state *state = screen.machine().driver_data<pcw16_state>(); | |
160 | 159 | UINT8 *ram = screen.machine().device<ram_device>(RAM_TAG)->pointer(); |
161 | 160 | unsigned char *pScanLine = (unsigned char *)ram + 0x0fc00; //0x03c00; //0x020FC00; |
162 | 161 | |
r17967 | r17968 | |
165 | 164 | |
166 | 165 | int border_colour; |
167 | 166 | |
168 | border_colour = | |
167 | border_colour = | |
169 | 168 | |
170 | 169 | /* reverse video? */ |
171 | if ( | |
170 | if ( | |
172 | 171 | { |
173 | 172 | /* colour 0 and colour 1 need to be inverted? - what happens in mode 1 and 2 - ignored? or is bit 1 toggled, |
174 | 173 | or is whole lot toggled? */ |
175 | 174 | |
176 | 175 | /* force border to be colour 1 */ |
177 | border_colour = | |
176 | border_colour = | |
178 | 177 | } |
179 | 178 | |
180 | if (( | |
179 | if (( | |
181 | 180 | { |
182 | 181 | /* blank */ |
183 | 182 | rectangle rect(0, PCW16_SCREEN_WIDTH, 0, PCW16_SCREEN_HEIGHT); |
r17967 | r17968 | |
234 | 233 | { |
235 | 234 | case 0: |
236 | 235 | { |
237 | pcw16_vh_decode_mode0( | |
236 | pcw16_vh_decode_mode0( | |
238 | 237 | } |
239 | 238 | break; |
240 | 239 | |
241 | 240 | case 1: |
242 | 241 | { |
243 | pcw16_vh_decode_mode1( | |
242 | pcw16_vh_decode_mode1( | |
244 | 243 | } |
245 | 244 | break; |
246 | 245 | |
247 | 246 | case 3: |
248 | 247 | case 2: |
249 | 248 | { |
250 | pcw16_vh_decode_mode2( | |
249 | pcw16_vh_decode_mode2( | |
251 | 250 | } |
252 | 251 | break; |
253 | 252 | } |
r17967 | r17968 | |
---|---|---|
1034 | 1034 | } |
1035 | 1035 | |
1036 | 1036 | |
1037 | ||
1037 | ||
1038 | 1038 | { |
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); | |
1042 | 1041 | return 0; |
1043 | 1042 | } |
r17967 | r17968 | |
---|---|---|
107 | 107 | } |
108 | 108 | } |
109 | 109 | |
110 | ||
110 | ||
111 | 111 | { |
112 | radio86_state *state = screen.machine().driver_data<radio86_state>(); | |
113 | 112 | device_t *devconf = screen.machine().device("i8275"); |
114 | 113 | i8275_update( devconf, bitmap, cliprect); |
115 | copybitmap(bitmap, | |
114 | copybitmap(bitmap, | |
116 | 115 | return 0; |
117 | 116 | } |
118 | 117 |
r17967 | r17968 | |
---|---|---|
46 | 46 | } |
47 | 47 | |
48 | 48 | |
49 | ||
49 | ||
50 | 50 | { |
51 | mz_state *state = screen.machine().driver_data<mz_state>(); | |
52 | UINT8 *videoram = state->m_videoram; | |
51 | UINT8 *videoram = m_videoram; | |
53 | 52 | int offs; |
54 | mz_state *mz = screen.machine().driver_data<mz_state>(); | |
55 | 53 | |
56 | 54 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
57 | 55 | |
r17967 | r17968 | |
62 | 60 | sy = (offs / 40) * 8; |
63 | 61 | sx = (offs % 40) * 8; |
64 | 62 | |
65 | color = m | |
63 | color = m | |
66 | 64 | code = videoram[offs] | (color & 0x80) << 1; |
67 | 65 | |
68 | 66 | drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], code, color, 0, 0, sx, sy); |
r17967 | r17968 | |
81 | 79 | machine().gfx[0]->set_source(m_cgram); |
82 | 80 | } |
83 | 81 | |
84 | ||
82 | ||
85 | 83 | { |
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; | |
89 | 85 | |
90 | 86 | bitmap.fill(get_black_pen(screen.machine()), cliprect); |
91 | 87 | |
92 | if (mz->m_mz700_mode) | |
93 | return SCREEN_UPDATE16_CALL(mz700); | |
88 | if (m_mz700_mode) | |
89 | return SCREEN_UPDATE16_CALL_MEMBER(mz700); | |
94 | 90 | else |
95 | 91 | { |
96 | if (m | |
92 | if (m | |
97 | 93 | { |
98 | 94 | |
99 | 95 | } |
r17967 | r17968 | |
---|---|---|
15 | 15 | { |
16 | 16 | } |
17 | 17 | |
18 | ||
18 | ||
19 | 19 | { |
20 | b2m_state *state = screen.machine().driver_data<b2m_state>(); | |
21 | 20 | UINT8 code1; |
22 | 21 | UINT8 code2; |
23 | 22 | UINT8 col; |
r17967 | r17968 | |
28 | 27 | { |
29 | 28 | for (y = 0; y < 256; y++) |
30 | 29 | { |
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)]; | |
34 | 33 | } 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)]; | |
37 | 36 | } |
38 | 37 | for (b = 7; b >= 0; b--) |
39 | 38 | { |
r17967 | r17968 | |
---|---|---|
673 | 673 | return m_line>=216 ? 0x80 : 0 ; |
674 | 674 | } |
675 | 675 | |
676 | ||
676 | ||
677 | 677 | { |
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); | |
680 | 679 | return 0; |
681 | 680 | } |
r17967 | r17968 | |
---|---|---|
93 | 93 | m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(aquarius_state::aquarius_gettileinfo),this), TILEMAP_SCAN_ROWS, 8, 8, 40, 25); |
94 | 94 | } |
95 | 95 | |
96 | ||
96 | ||
97 | 97 | { |
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); | |
100 | 99 | |
101 | 100 | return 0; |
102 | 101 | } |
r17967 | r17968 | |
---|---|---|
410 | 410 | /*************************************************************************** |
411 | 411 | Draw the game screen in the given bitmap_ind16. |
412 | 412 | ***************************************************************************/ |
413 | ||
413 | ||
414 | 414 | { |
415 | cgenie_state *state = screen.machine().driver_data<cgenie_state>(); | |
416 | if( state->m_tv_mode ) | |
415 | if( m_tv_mode ) | |
417 | 416 | cgenie_refresh_tv_set(screen.machine(), bitmap, cliprect); |
418 | 417 | else |
419 | 418 | cgenie_refresh_monitor(screen.machine(), bitmap, cliprect); |
r17967 | r17968 | |
---|---|---|
1160 | 1160 | // m_scanline_timer->adjust(attotime::zero, 0, attotime::from_hz(55.45)/568); |
1161 | 1161 | } |
1162 | 1162 | |
1163 | ||
1163 | ||
1164 | 1164 | { |
1165 | x68k_state *state = screen.machine().driver_data<x68k_state>(); | |
1166 | 1165 | rectangle rect(0,0,0,0); |
1167 | 1166 | int priority; |
1168 | 1167 | int xscr,yscr; |
r17967 | r17968 | |
1171 | 1170 | tilemap_t* x68k_bg1; |
1172 | 1171 | //UINT8 *rom; |
1173 | 1172 | |
1174 | if(( | |
1173 | if(( | |
1175 | 1174 | { |
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; | |
1178 | 1177 | } |
1179 | 1178 | else |
1180 | 1179 | { |
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; | |
1183 | 1182 | } |
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; | |
1186 | 1185 | bitmap.fill(0, cliprect); |
1187 | 1186 | |
1188 | if( | |
1187 | if( | |
1189 | 1188 | return 0; |
1190 | 1189 | |
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; | |
1197 | 1196 | |
1198 | 1197 | if(rect.min_y < cliprect.min_y) |
1199 | 1198 | rect.min_y = cliprect.min_y; |
r17967 | r17968 | |
1204 | 1203 | //rom = screen.machine().root_device().memregion("user1")->base(); |
1205 | 1204 | for(x=0;x<256;x++) |
1206 | 1205 | { |
1207 | if( | |
1206 | if( | |
1208 | 1207 | { |
1209 | 1208 | screen.machine().gfx[1]->mark_dirty(x); |
1210 | | |
1209 | | |
1211 | 1210 | } |
1212 | if( | |
1211 | if( | |
1213 | 1212 | { |
1214 | 1213 | screen.machine().gfx[0]->mark_dirty(x); |
1215 | | |
1214 | | |
1216 | 1215 | } |
1217 | 1216 | } |
1218 | 1217 | |
1219 | 1218 | for(priority=3;priority>=0;priority--) |
1220 | 1219 | { |
1221 | 1220 | // Graphics screen(s) |
1222 | if(priority == | |
1221 | if(priority == | |
1223 | 1222 | x68k_draw_gfx(screen.machine(),bitmap,rect); |
1224 | 1223 | |
1225 | 1224 | // Sprite / BG Tiles |
1226 | if(priority == | |
1225 | if(priority == | |
1227 | 1226 | { |
1228 | 1227 | x68k_draw_sprites(screen.machine(), bitmap,1,rect); |
1229 | if(( | |
1228 | if(( | |
1230 | 1229 | { |
1231 | if(( | |
1230 | if(( | |
1232 | 1231 | { |
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); | |
1235 | 1234 | x68k_bg0->draw(bitmap,rect,0,0); |
1236 | 1235 | } |
1237 | 1236 | else |
1238 | 1237 | { |
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); | |
1241 | 1240 | x68k_bg1->draw(bitmap,rect,0,0); |
1242 | 1241 | } |
1243 | 1242 | } |
1244 | 1243 | x68k_draw_sprites(screen.machine(),bitmap,2,rect); |
1245 | if(( | |
1244 | if(( | |
1246 | 1245 | { |
1247 | if(( | |
1246 | if(( | |
1248 | 1247 | { |
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); | |
1251 | 1250 | x68k_bg0->draw(bitmap,rect,0,0); |
1252 | 1251 | } |
1253 | 1252 | else |
1254 | 1253 | { |
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); | |
1257 | 1256 | x68k_bg1->draw(bitmap,rect,0,0); |
1258 | 1257 | } |
1259 | 1258 | } |
r17967 | r17968 | |
1261 | 1260 | } |
1262 | 1261 | |
1263 | 1262 | // Text screen |
1264 | if( | |
1263 | if( | |
1265 | 1264 | { |
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 | |
1269 | 1268 | x68k_draw_text(screen.machine(),bitmap,xscr,yscr,rect); |
1270 | 1269 | } |
1271 | 1270 | } |
r17967 | r17968 | |
1273 | 1272 | #ifdef MAME_DEBUG |
1274 | 1273 | if(screen.machine().input().code_pressed(KEYCODE_I)) |
1275 | 1274 | { |
1276 | state->m_mfp.isra = 0; | |
1277 | state->m_mfp.isrb = 0; | |
1275 | m_mfp.isra = 0; | |
1276 | m_mfp.isrb = 0; | |
1278 | 1277 | // 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); | |
1280 | 1279 | } |
1281 | 1280 | if(screen.machine().input().code_pressed(KEYCODE_9)) |
1282 | 1281 | { |
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); | |
1285 | 1284 | } |
1286 | 1285 | if(screen.machine().input().code_pressed(KEYCODE_0)) |
1287 | 1286 | { |
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); | |
1290 | 1289 | } |
1291 | 1290 | |
1292 | 1291 | #endif |
1293 | 1292 | |
1294 | 1293 | #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); | |
1311 | 1310 | // 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]); | |
1315 | 1314 | #endif |
1316 | 1315 | return 0; |
1317 | 1316 | } |
r17967 | r17968 | |
---|---|---|
27 | 27 | { |
28 | 28 | } |
29 | 29 | |
30 | ||
30 | ||
31 | 31 | { |
32 | 32 | int x,y; |
33 | 33 | address_space &space = *screen.machine().device("maincpu")->memory().space(AS_PROGRAM); |
r17967 | r17968 | |
---|---|---|
57 | 57 | |
58 | 58 | /* Code to change the FLASH status every 25 frames. Note this must be |
59 | 59 | independent of frame skip etc. */ |
60 | ||
60 | void | |
61 | 61 | { |
62 | 62 | // rising edge |
63 | if ( | |
63 | if (st | |
64 | 64 | { |
65 | spectrum_state *state = screen.machine().driver_data<spectrum_state>(); | |
66 | 65 | EVENT_LIST_ITEM *pItem; |
67 | 66 | int NumItems; |
68 | 67 | |
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) | |
71 | 70 | { |
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; | |
74 | 73 | } |
75 | 74 | |
76 | 75 | /* Empty event buffer for undisplayed frames noting the last border |
r17967 | r17968 | |
117 | 116 | bitmap.pix16(y, x) = (UINT16)color; |
118 | 117 | } |
119 | 118 | |
120 | ||
119 | ||
121 | 120 | { |
122 | 121 | /* for now do a full-refresh */ |
123 | spectrum_state *state = screen.machine().driver_data<spectrum_state>(); | |
124 | 122 | int x, y, b, scrx, scry; |
125 | 123 | unsigned short ink, pap; |
126 | 124 | unsigned char *attr, *scr; |
127 | 125 | int full_refresh = 1; |
128 | 126 | |
129 | scr= | |
127 | scr= | |
130 | 128 | |
131 | 129 | for (y=0; y<192; y++) |
132 | 130 | { |
133 | 131 | scrx=SPEC_LEFT_BORDER; |
134 | 132 | scry=((y&7) * 8) + ((y&0x38)>>3) + (y&0xC0); |
135 | attr= | |
133 | attr= | |
136 | 134 | |
137 | 135 | for (x=0;x<32;x++) |
138 | 136 | { |
139 | 137 | /* Get ink and paper colour with bright */ |
140 | if ( | |
138 | if ( | |
141 | 139 | { |
142 | 140 | ink=((*attr)>>3) & 0x0f; |
143 | 141 | pap=((*attr) & 0x07) + (((*attr)>>3) & 0x08); |
r17967 | r17968 | |
165 | 163 | SPEC_TOP_BORDER, SPEC_DISPLAY_YSIZE, SPEC_BOTTOM_BORDER, |
166 | 164 | SPEC_LEFT_BORDER, SPEC_DISPLAY_XSIZE, SPEC_RIGHT_BORDER, |
167 | 165 | SPEC_LEFT_BORDER_CYCLES, SPEC_DISPLAY_XSIZE_CYCLES, |
168 | SPEC_RIGHT_BORDER_CYCLES, | |
166 | SPEC_RIGHT_BORDER_CYCLES, | |
169 | 167 | return 0; |
170 | 168 | } |
171 | 169 |
r17967 | r17968 | |
---|---|---|
18 | 18 | m_video_enable = 0; |
19 | 19 | } |
20 | 20 | |
21 | ||
21 | ||
22 | 22 | { |
23 | ondra_state *state = screen.machine().driver_data<ondra_state>(); | |
24 | 23 | UINT8 code1,code2; |
25 | 24 | int y, x, b; |
26 | 25 | int Vaddr = 0x2800; |
27 | 26 | |
28 | if ( | |
27 | if ( | |
29 | 28 | for (x = 0; x < 40; x++) |
30 | 29 | { |
31 | 30 | for (y = 127; y >=0; y--) |
r17967 | r17968 | |
---|---|---|
16 | 16 | palette_set_color(machine(), 2, MAKE_RGB(0, 110, 0)); /* low intensity green */ |
17 | 17 | } |
18 | 18 | |
19 | ||
19 | ||
20 | 20 | { |
21 | kaypro_state *state = screen.machine().driver_data<kaypro_state>(); | |
22 | 21 | /* The display consists of 80 columns and 24 rows. Each row is allocated 128 bytes of ram, |
23 | 22 | but only the first 80 are used. The total video ram therefore is 0x0c00 bytes. |
24 | 23 | There is one video attribute: bit 7 causes blinking. The first half of the |
r17967 | r17968 | |
29 | 28 | UINT8 y,ra,chr,gfx; |
30 | 29 | UINT16 sy=0,ma=0,x; |
31 | 30 | |
32 | | |
31 | | |
33 | 32 | |
34 | 33 | for (y = 0; y < 24; y++) |
35 | 34 | { |
r17967 | r17968 | |
43 | 42 | |
44 | 43 | if (ra < 8) |
45 | 44 | { |
46 | chr = | |
45 | chr = | |
47 | 46 | |
48 | 47 | /* Take care of flashing characters */ |
49 | if ((chr < 0x80) && ( | |
48 | if ((chr < 0x80) && ( | |
50 | 49 | chr |= 0x80; |
51 | 50 | |
52 | 51 | /* get pattern of pixels for that character scanline */ |
53 | gfx = | |
52 | gfx = | |
54 | 53 | } |
55 | 54 | |
56 | 55 | /* Display a scanline of a character (7 pixels) */ |
r17967 | r17968 | |
68 | 67 | return 0; |
69 | 68 | } |
70 | 69 | |
71 | ||
70 | ||
72 | 71 | { |
73 | kaypro_state *state = screen.machine().driver_data<kaypro_state>(); | |
74 | 72 | UINT8 y,ra,chr,gfx; |
75 | 73 | UINT16 sy=0,ma=0,x; |
76 | 74 | |
77 | | |
75 | | |
78 | 76 | |
79 | 77 | for (y = 0; y < 24; y++) |
80 | 78 | { |
r17967 | r17968 | |
88 | 86 | |
89 | 87 | if (ra < 8) |
90 | 88 | { |
91 | chr = | |
89 | chr = | |
92 | 90 | |
93 | 91 | /* Take care of flashing characters */ |
94 | if ((chr > 0x7f) && ( | |
92 | if ((chr > 0x7f) && ( | |
95 | 93 | chr |= 0x80; |
96 | 94 | |
97 | 95 | /* get pattern of pixels for that character scanline */ |
98 | gfx = | |
96 | gfx = | |
99 | 97 | } |
100 | 98 | |
101 | 99 | /* Display a scanline of a character (7 pixels) */ |
r17967 | r17968 | |
113 | 111 | return 0; |
114 | 112 | } |
115 | 113 | |
116 | ||
114 | ||
117 | 115 | { |
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); | |
124 | 121 | return 0; |
125 | 122 | } |
126 | 123 |
r17967 | r17968 | |
---|---|---|
70 | 70 | |
71 | 71 | |
72 | 72 | |
73 | ||
73 | void | |
74 | 74 | { |
75 | 75 | // rising edge |
76 | if ( | |
76 | if (st | |
77 | 77 | { |
78 | super80_state *state = screen.machine().driver_data<super80_state>(); | |
79 | 78 | /* if we chose another palette or colour mode, enable it */ |
80 | 79 | UINT8 chosen_palette = (screen.machine().root_device().ioport("CONFIG")->read() & 0x60)>>5; // read colour dipswitches |
81 | 80 | |
82 | if (chosen_palette != | |
81 | if (chosen_palette != | |
83 | 82 | { |
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) | |
86 | 85 | palette_set_colors_rgb(screen.machine(), super80_comp_palette); // composite colour |
87 | 86 | else |
88 | 87 | palette_set_colors_rgb(screen.machine(), super80_rgb_palette); // rgb and b&w |
r17967 | r17968 | |
90 | 89 | } |
91 | 90 | } |
92 | 91 | |
93 | ||
92 | ||
94 | 93 | { |
95 | super80_state *state = screen.machine().driver_data<super80_state>(); | |
96 | 94 | 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(); | |
99 | 97 | |
100 | output_set_value("cass_led",( | |
98 | output_set_value("cass_led",( | |
101 | 99 | |
102 | if (( | |
100 | if (( | |
103 | 101 | screen_on++; |
104 | 102 | |
105 | 103 | for (y = 0; y < 16; y++) |
r17967 | r17968 | |
114 | 112 | chr = RAM[ma | x] & 0x3f; |
115 | 113 | |
116 | 114 | /* get pattern of pixels for that character scanline */ |
117 | gfx = | |
115 | gfx = | |
118 | 116 | |
119 | 117 | /* Display a scanline of a character */ |
120 | 118 | *p++ = BIT(gfx, 7); |
r17967 | r17968 | |
132 | 130 | return 0; |
133 | 131 | } |
134 | 132 | |
135 | ||
133 | ||
136 | 134 | { |
137 | super80_state *state = screen.machine().driver_data<super80_state>(); | |
138 | 135 | 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(); | |
141 | 138 | |
142 | output_set_value("cass_led",( | |
139 | output_set_value("cass_led",( | |
143 | 140 | |
144 | if (( | |
141 | if (( | |
145 | 142 | screen_on++; |
146 | 143 | |
147 | 144 | for (y = 0; y < 16; y++) |
r17967 | r17968 | |
156 | 153 | chr = RAM[ma | x]; |
157 | 154 | |
158 | 155 | /* get pattern of pixels for that character scanline */ |
159 | gfx = | |
156 | gfx = | |
160 | 157 | |
161 | 158 | /* Display a scanline of a character */ |
162 | 159 | *p++ = BIT(gfx, 7); |
r17967 | r17968 | |
174 | 171 | return 0; |
175 | 172 | } |
176 | 173 | |
177 | ||
174 | ||
178 | 175 | { |
179 | super80_state *state = screen.machine().driver_data<super80_state>(); | |
180 | 176 | 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(); | |
183 | 179 | |
184 | output_set_value("cass_led",( | |
180 | output_set_value("cass_led",( | |
185 | 181 | |
186 | if (( | |
182 | if (( | |
187 | 183 | screen_on++; |
188 | 184 | |
189 | 185 | for (y = 0; y < 16; y++) |
r17967 | r17968 | |
198 | 194 | chr = RAM[ma | x]; |
199 | 195 | |
200 | 196 | /* get pattern of pixels for that character scanline */ |
201 | gfx = | |
197 | gfx = | |
202 | 198 | |
203 | 199 | /* Display a scanline of a character */ |
204 | 200 | *p++ = BIT(gfx, 7); |
r17967 | r17968 | |
216 | 212 | return 0; |
217 | 213 | } |
218 | 214 | |
219 | ||
215 | ||
220 | 216 | { |
221 | super80_state *state = screen.machine().driver_data<super80_state>(); | |
222 | 217 | UINT8 y,ra,chr=32,gfx,screen_on=0; |
223 | UINT16 sy=0,ma= | |
218 | UINT16 sy=0,ma= | |
224 | 219 | UINT8 col, bg=0, fg=0, options=screen.machine().root_device().ioport("CONFIG")->read(); |
225 | UINT8 *RAM = | |
220 | UINT8 *RAM = | |
226 | 221 | |
227 | 222 | /* get selected character generator */ |
228 | UINT8 cgen = | |
223 | UINT8 cgen = | |
229 | 224 | |
230 | output_set_value("cass_led",( | |
225 | output_set_value("cass_led",( | |
231 | 226 | |
232 | if (( | |
227 | if (( | |
233 | 228 | screen_on++; |
234 | 229 | |
235 | 230 | if (screen_on) |
r17967 | r17968 | |
260 | 255 | |
261 | 256 | /* get pattern of pixels for that character scanline */ |
262 | 257 | if (cgen) |
263 | gfx = | |
258 | gfx = | |
264 | 259 | else |
265 | gfx = | |
260 | gfx = | |
266 | 261 | |
267 | 262 | /* Display a scanline of a character */ |
268 | 263 | *p++ = BIT(gfx, 7) ? fg : bg; |
r17967 | r17968 | |
384 | 379 | m_p_colorram = memregion("colorram")->base(); |
385 | 380 | } |
386 | 381 | |
387 | ||
382 | ||
388 | 383 | { |
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); | |
396 | 390 | return 0; |
397 | 391 | } |
398 | 392 |
r17967 | r17968 | |
---|---|---|
45 | 45 | } |
46 | 46 | |
47 | 47 | |
48 | ||
48 | void | |
49 | 49 | { |
50 | 50 | // rising edge |
51 | if ( | |
51 | if (st | |
52 | 52 | { |
53 | tx0_state *state = screen.machine().driver_data<tx0_state>(); | |
54 | 53 | |
55 | crt_eof( | |
54 | crt_eof( | |
56 | 55 | } |
57 | 56 | } |
58 | 57 | |
r17967 | r17968 | |
74 | 73 | /* |
75 | 74 | SCREEN_UPDATE_IND16( tx0 ): effectively redraw the screen |
76 | 75 | */ |
77 | ||
76 | ||
78 | 77 | { |
79 | tx0_state *state = screen.machine().driver_data<tx0_state>(); | |
80 | crt_update(state->m_crt, bitmap); | |
78 | crt_update(m_crt, bitmap); | |
81 | 79 | |
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); | |
84 | 82 | |
85 | copybitmap(bitmap, | |
83 | copybitmap(bitmap, | |
86 | 84 | return 0; |
87 | 85 | } |
88 | 86 |
r17967 | r17968 | |
---|---|---|
63 | 63 | { |
64 | 64 | } |
65 | 65 | |
66 | ||
66 | ||
67 | 67 | { |
68 | lviv_state *state = screen.machine().driver_data<lviv_state>(); | |
69 | 68 | int x,y; |
70 | 69 | int pen; |
71 | 70 | UINT8 data; |
r17967 | r17968 | |
73 | 72 | for (y=0; y<256; y++) |
74 | 73 | for (x=0; x<256; x+=4) |
75 | 74 | { |
76 | data = | |
75 | data = | |
77 | 76 | |
78 | pen = | |
77 | pen = | |
79 | 78 | bitmap.pix16(y, x + 0) = pen; |
80 | 79 | |
81 | pen = | |
80 | pen = | |
82 | 81 | bitmap.pix16(y, x + 1) = pen; |
83 | 82 | |
84 | pen = | |
83 | pen = | |
85 | 84 | bitmap.pix16(y, x + 2) = pen; |
86 | 85 | |
87 | pen = | |
86 | pen = | |
88 | 87 | bitmap.pix16(y, x + 3) = pen; |
89 | 88 | } |
90 | 89 | return 0; |
r17967 | r17968 | |
---|---|---|
178 | 178 | } |
179 | 179 | } |
180 | 180 | |
181 | ||
181 | ||
182 | 182 | { |
183 | 183 | /* for now TS2068 will do a full-refresh */ |
184 | spectrum_state *state = screen.machine().driver_data<spectrum_state>(); | |
185 | 184 | int count; |
186 | 185 | int full_refresh = 1; |
187 | 186 | |
188 | if (( | |
187 | if (( | |
189 | 188 | { |
190 | 189 | /* 64 Column mode */ |
191 | unsigned short inkcolor = ( | |
190 | unsigned short inkcolor = ( | |
192 | 191 | for (count = 0; count < 192; count++) |
193 | 192 | ts2068_64col_scanline(screen.machine(),bitmap, count, TS2068_TOP_BORDER, inkcolor); |
194 | 193 | } |
195 | else if (( | |
194 | else if (( | |
196 | 195 | { |
197 | 196 | /* Extended Color mode */ |
198 | 197 | for (count = 0; count < 192; count++) |
199 | 198 | ts2068_hires_scanline(screen.machine(),bitmap, count, TS2068_TOP_BORDER); |
200 | 199 | } |
201 | else if (( | |
200 | else if (( | |
202 | 201 | { |
203 | 202 | /* Screen 6000-7aff */ |
204 | 203 | for (count = 0; count < 192; count++) |
r17967 | r17968 | |
219 | 218 | return 0; |
220 | 219 | } |
221 | 220 | |
222 | ||
221 | ||
223 | 222 | { |
224 | 223 | /* for now TS2068 will do a full-refresh */ |
225 | spectrum_state *state = screen.machine().driver_data<spectrum_state>(); | |
226 | 224 | int count; |
227 | 225 | int full_refresh = 1; |
228 | 226 | |
229 | if (( | |
227 | if (( | |
230 | 228 | { |
231 | 229 | /* 64 Column mode */ |
232 | unsigned short inkcolor = ( | |
230 | unsigned short inkcolor = ( | |
233 | 231 | for (count = 0; count < 192; count++) |
234 | 232 | ts2068_64col_scanline(screen.machine(),bitmap, count, SPEC_TOP_BORDER, inkcolor); |
235 | 233 | } |
236 | else if (( | |
234 | else if (( | |
237 | 235 | { |
238 | 236 | /* Extended Color mode */ |
239 | 237 | for (count = 0; count < 192; count++) |
240 | 238 | ts2068_hires_scanline(screen.machine(),bitmap, count, SPEC_TOP_BORDER); |
241 | 239 | } |
242 | else if (( | |
240 | else if (( | |
243 | 241 | { |
244 | 242 | /* Screen 6000-7aff */ |
245 | 243 | for (count = 0; count < 192; count++) |
r17967 | r17968 | |
---|---|---|
66 | 66 | } |
67 | 67 | |
68 | 68 | // commodore pet discrete video circuit |
69 | ||
69 | ||
70 | 70 | { |
71 | pet_state *state = screen.machine().driver_data<pet_state>(); | |
72 | UINT8 *videoram = state->m_videoram; | |
71 | UINT8 *videoram = m_videoram; | |
73 | 72 | int x, y, i; |
74 | 73 | |
75 | 74 | for (y=0, i=0; y<25;y++) |
76 | 75 | { |
77 | 76 | for (x=0;x<40;x++, i++) |
78 | 77 | { |
79 | drawgfx_opaque(bitmap, cliprect,screen.machine().gfx[ | |
78 | drawgfx_opaque(bitmap, cliprect,screen.machine().gfx[ | |
80 | 79 | videoram[i], 0, 0, 0, 8*x,8*y); |
81 | 80 | } |
82 | 81 | } |
r17967 | r17968 | |
---|---|---|
52 | 52 | Do NOT call osd_update_display() from this function, |
53 | 53 | it will be called by the main emulation engine. |
54 | 54 | ***************************************************************************/ |
55 | ||
55 | ||
56 | 56 | { |
57 | pcw_state *state = screen.machine().driver_data<pcw_state>(); | |
58 | 57 | int x,y,b; |
59 | 58 | unsigned short roller_ram_offs; |
60 | 59 | unsigned char *roller_ram_ptr; |
r17967 | r17968 | |
64 | 63 | pen1 = 1; |
65 | 64 | |
66 | 65 | /* invert? */ |
67 | if ( | |
66 | if ( | |
68 | 67 | { |
69 | 68 | /* yes */ |
70 | 69 | pen1^=1; |
r17967 | r17968 | |
72 | 71 | } |
73 | 72 | |
74 | 73 | /* video enable? */ |
75 | if (( | |
74 | if (( | |
76 | 75 | { |
77 | 76 | /* render top border */ |
78 | 77 | rectangle rect(0, PCW_SCREEN_WIDTH, 0, PCW_BORDER_HEIGHT); |
r17967 | r17968 | |
83 | 82 | bitmap.fill(pen0, rect); |
84 | 83 | |
85 | 84 | /* offset to start in table */ |
86 | roller_ram_offs = ( | |
85 | roller_ram_offs = ( | |
87 | 86 | |
88 | 87 | for (y=0; y<256; y++) |
89 | 88 | { |
r17967 | r17968 | |
93 | 92 | |
94 | 93 | x = PCW_BORDER_WIDTH; |
95 | 94 | |
96 | roller_ram_ptr = screen.machine().device<ram_device>(RAM_TAG)->pointer() + | |
95 | roller_ram_ptr = screen.machine().device<ram_device>(RAM_TAG)->pointer() + | |
97 | 96 | |
98 | 97 | /* get line address */ |
99 | 98 | /* 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. */ |
r17967 | r17968 | |
166 | 165 | return 0; |
167 | 166 | } |
168 | 167 | |
169 | ||
168 | ||
170 | 169 | { |
171 | pcw_state *state = screen.machine().driver_data<pcw_state>(); | |
172 | 170 | |
173 | 171 | // printer output |
174 | 172 | INT32 feed; |
175 | 173 | 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; | |
185 | 183 | return 0; |
186 | 184 | } |
187 | 185 |
r17967 | r17968 | |
---|---|---|
163 | 163 | /*************************************************************************** |
164 | 164 | oric_vh_screenrefresh |
165 | 165 | ***************************************************************************/ |
166 | ||
166 | ||
167 | 167 | { |
168 | oric_state *state = screen.machine().driver_data<oric_state>(); | |
169 | 168 | UINT8 *RAM, y; |
170 | 169 | offs_t byte_offset, read_addr_base; |
171 | 170 | bool hires_active; |
172 | 171 | |
173 | RAM = | |
172 | RAM = | |
174 | 173 | |
175 | 174 | /* set initial base */ |
176 | read_addr_base = | |
175 | read_addr_base = | |
177 | 176 | |
178 | 177 | /* is hires active? */ |
179 | hires_active = BIT( | |
178 | hires_active = BIT( | |
180 | 179 | |
181 | 180 | for (y = 0; y < 224; y++) |
182 | 181 | { |
r17967 | r17968 | |
222 | 221 | oric_vh_update_attribute(screen.machine(), c); |
223 | 222 | |
224 | 223 | /* display background colour when attribute has been found */ |
225 | oric_vh_render_6pixels(bitmap, x, y, | |
224 | oric_vh_render_6pixels(bitmap, x, y, | |
226 | 225 | |
227 | 226 | if (y < 200) |
228 | 227 | { |
229 | 228 | /* 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; | |
232 | 231 | } |
233 | 232 | } |
234 | 233 | else |
r17967 | r17968 | |
238 | 237 | { |
239 | 238 | UINT8 pixel_data = c & 0x03f; |
240 | 239 | /* plot hires pixels */ |
241 | oric_vh_render_6pixels(bitmap,x,y, | |
240 | oric_vh_render_6pixels(bitmap,x,y, | |
242 | 241 | } |
243 | 242 | else |
244 | 243 | { |
r17967 | r17968 | |
249 | 248 | ch_line = y & 7; |
250 | 249 | |
251 | 250 | /* is double height set? */ |
252 | if (BIT( | |
251 | if (BIT( | |
253 | 252 | { |
254 | 253 | /* if char line is even, top half of character is displayed else bottom half */ |
255 | 254 | UINT8 double_height_flag = BIT(y, 3); |
r17967 | r17968 | |
259 | 258 | } |
260 | 259 | |
261 | 260 | /* fetch pixel data for this char line */ |
262 | char_data = | |
261 | char_data = | |
263 | 262 | |
264 | 263 | /* draw! */ |
265 | 264 | 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)); | |
268 | 267 | } |
269 | 268 | |
270 | 269 | } |
r17967 | r17968 | |
---|---|---|
14 | 14 | { |
15 | 15 | } |
16 | 16 | |
17 | ||
17 | ||
18 | 18 | { |
19 | orao_state *state = screen.machine().driver_data<orao_state>(); | |
20 | 19 | UINT8 code; |
21 | 20 | int y, x, b; |
22 | 21 | |
r17967 | r17968 | |
26 | 25 | int horpos = 0; |
27 | 26 | for (x = 0; x < 32; x++) |
28 | 27 | { |
29 | code = | |
28 | code = | |
30 | 29 | for (b = 0; b < 8; b++) |
31 | 30 | { |
32 | 31 | bitmap.pix16(y, horpos++) = (code >> b) & 0x01; |
r17967 | r17968 | |
---|---|---|
193 | 193 | logerror("Video reset\n"); |
194 | 194 | } |
195 | 195 | |
196 | ||
196 | void | |
197 | 197 | { |
198 | 198 | // logerror("SCREEN_VBLANK( mbc55x )\n"); |
199 | 199 | } |
r17967 | r17968 | |
---|---|---|
14 | 14 | { |
15 | 15 | } |
16 | 16 | |
17 | ||
17 | ||
18 | 18 | { |
19 | vector06_state *state = screen.machine().driver_data<vector06_state>(); | |
20 | 19 | UINT8 code1,code2,code3,code4; |
21 | 20 | UINT8 col; |
22 | 21 | int y, x, b,draw_y; |
23 | 22 | UINT8 *ram = screen.machine().device<ram_device>(RAM_TAG)->pointer(); |
24 | 23 | |
25 | int width = ( | |
24 | int width = ( | |
26 | 25 | rectangle screen_area(0,width+64-1,0,256+64-1); |
27 | 26 | // fill border color |
28 | bitmap.fill( | |
27 | bitmap.fill( | |
29 | 28 | |
30 | 29 | // draw image |
31 | 30 | for (x = 0; x < 32; x++) |
r17967 | r17968 | |
33 | 32 | for (y = 0; y < 256; y++) |
34 | 33 | { |
35 | 34 | // port A of 8255 also used as scroll |
36 | draw_y = ((255-y- | |
35 | draw_y = ((255-y- | |
37 | 36 | code1 = ram[0x8000 + x*256 + y]; |
38 | 37 | code2 = ram[0xa000 + x*256 + y]; |
39 | 38 | code3 = ram[0xc000 + x*256 + y]; |
r17967 | r17968 | |
41 | 40 | for (b = 0; b < 8; b++) |
42 | 41 | { |
43 | 42 | col = ((code1 >> b) & 0x01) * 8 + ((code2 >> b) & 0x01) * 4 + ((code3 >> b) & 0x01)* 2+ ((code4 >> b) & 0x01); |
44 | if ( | |
43 | if ( | |
45 | 44 | bitmap.pix16(draw_y, x*8+(7-b)+32) = col; |
46 | 45 | } else { |
47 | 46 | bitmap.pix16(draw_y, x*16+(7-b)*2+1+32) = ((code2 >> b) & 0x01) * 2; |
r17967 | r17968 | |
---|---|---|
147 | 147 | "11 1 1 111e" |
148 | 148 | }; |
149 | 149 | |
150 | ||
150 | ||
151 | 151 | { |
152 | pc1403_state *state = screen.machine().driver_data<pc1403_state>(); | |
153 | 152 | running_machine &machine = screen.machine(); |
154 | 153 | int x, y, i, j; |
155 | 154 | int color[3]; |
r17967 | r17968 | |
159 | 158 | /* HJB: we cannot initialize array with values from other arrays, thus... */ |
160 | 159 | color[0] = 7; // pocketc_colortable[CONTRAST][0]; |
161 | 160 | color[2] = 8; // pocketc_colortable[CONTRAST][1]; |
162 | color[1] = ( | |
161 | color[1] = ( | |
163 | 162 | |
164 | if ( | |
163 | if ( | |
165 | 164 | { |
166 | for (x= | |
165 | for (x= | |
167 | 166 | for (j=0; j<5; j++, i++, x+=2) |
168 | drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], | |
167 | drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], | |
169 | 168 | x,y); |
170 | 169 | } |
171 | 170 | for (i=9*5; i<12*5; x+=2) |
172 | 171 | { |
173 | 172 | for (j=0; j<5; j++, i++, x+=2) |
174 | drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], | |
173 | drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], | |
175 | 174 | x,y); |
176 | 175 | } |
177 | 176 | for (i=6*5; i<9*5; x+=2) |
178 | 177 | { |
179 | 178 | for (j=0; j<5; j++, i++, x+=2) |
180 | drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], | |
179 | drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], | |
181 | 180 | x,y); |
182 | 181 | } |
183 | 182 | for (i=0x7b-3*5; i>0x7b-6*5; x+=2) |
184 | 183 | { |
185 | 184 | for (j=0; j<5; j++, i--, x+=2) |
186 | drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], | |
185 | drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], | |
187 | 186 | x,y); |
188 | 187 | } |
189 | 188 | for (i=0x7b; i>0x7b-3*5; x+=2) |
190 | 189 | { |
191 | 190 | for (j=0; j<5; j++, i--, x+=2) |
192 | drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], | |
191 | drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], | |
193 | 192 | x,y); |
194 | 193 | } |
195 | 194 | for (i=0x7b-6*5; i>0x7b-12*5; x+=2) |
196 | 195 | { |
197 | 196 | for (j=0; j<5; j++, i--, x+=2) |
198 | drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], | |
197 | drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], | |
199 | 198 | x,y); |
200 | 199 | } |
201 | 200 | } |
202 | 201 | /* if display is off, busy is always visible? it seems to behave like that. */ |
203 | 202 | /* But if computer is off, busy is hidden. */ |
204 | if(!( | |
203 | if(!( | |
205 | 204 | { |
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]); | |
209 | 208 | |
210 | else pocketc_draw_special(bitmap, | |
209 | else pocketc_draw_special(bitmap, | |
211 | 210 | } |
212 | 211 | else |
213 | pocketc_draw_special(bitmap, | |
212 | pocketc_draw_special(bitmap, | |
214 | 213 | |
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]); | |
221 | 220 | |
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]); | |
228 | 227 | |
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]); | |
235 | 234 | |
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]); | |
242 | 241 | |
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]); | |
253 | 252 | |
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]); | |
260 | 259 | |
261 | 260 | return 0; |
262 | 261 | } |
r17967 | r17968 | |
---|---|---|
27 | 27 | { |
28 | 28 | } |
29 | 29 | |
30 | ||
30 | ||
31 | 31 | { |
32 | galeb_state *state = screen.machine().driver_data<galeb_state>(); | |
33 | 32 | int x,y; |
34 | 33 | |
35 | 34 | for(y = 0; y < 16; y++ ) |
36 | 35 | { |
37 | 36 | for(x = 0; x < 48; x++ ) |
38 | 37 | { |
39 | int code = | |
38 | int code = | |
40 | 39 | drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], code , 0, 0,0, x*8,y*8); |
41 | 40 | } |
42 | 41 | } |
r17967 | r17968 | |
---|---|---|
59 | 59 | bitmap.pix16(y, x) = (UINT16)color; |
60 | 60 | } |
61 | 61 | |
62 | ||
62 | ||
63 | 63 | { |
64 | electron_state *state = screen.machine().driver_data<electron_state>(); | |
65 | 64 | int i; |
66 | 65 | int x = 0; |
67 | 66 | int pal[16]; |
r17967 | r17968 | |
70 | 69 | r.min_y = r.max_y = scanline; |
71 | 70 | |
72 | 71 | /* set up palette */ |
73 | switch( | |
72 | switch( | |
74 | 73 | { |
75 | 74 | 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]; | |
78 | 77 | break; |
79 | 78 | 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]; | |
84 | 83 | break; |
85 | 84 | case 2: /* 16 colour mode */ |
86 | 85 | for( i = 0; i < 16; i++ ) |
87 | pal[i] = | |
86 | pal[i] = | |
88 | 87 | } |
89 | 88 | |
90 | 89 | /* draw line */ |
91 | switch( | |
90 | switch( | |
92 | 91 | { |
93 | 92 | case 0: |
94 | 93 | for( i = 0; i < 80; i++ ) |
95 | 94 | { |
96 | UINT8 pattern = read_vram( | |
95 | UINT8 pattern = read_vram( | |
97 | 96 | electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>7)& 1] ); |
98 | 97 | electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>6)& 1] ); |
99 | 98 | electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>5)& 1] ); |
r17967 | r17968 | |
103 | 102 | electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>1)& 1] ); |
104 | 103 | electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>0)& 1] ); |
105 | 104 | } |
106 | | |
105 | | |
107 | 106 | if ( ( scanline & 0x07 ) == 7 ) |
108 | | |
107 | | |
109 | 108 | break; |
110 | 109 | |
111 | 110 | case 1: |
112 | 111 | for( i = 0; i < 80; i++ ) |
113 | 112 | { |
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]] ); | |
123 | 122 | } |
124 | | |
123 | | |
125 | 124 | if ( ( scanline & 0x07 ) == 7 ) |
126 | | |
125 | | |
127 | 126 | break; |
128 | 127 | |
129 | 128 | case 2: |
130 | 129 | for( i = 0; i < 80; i++ ) |
131 | 130 | { |
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]] ); | |
141 | 140 | } |
142 | | |
141 | | |
143 | 142 | if ( ( scanline & 0x07 ) == 7 ) |
144 | | |
143 | | |
145 | 144 | break; |
146 | 145 | |
147 | 146 | case 3: |
r17967 | r17968 | |
151 | 150 | { |
152 | 151 | for( i = 0; i < 80; i++ ) |
153 | 152 | { |
154 | UINT8 pattern = read_vram( | |
153 | UINT8 pattern = read_vram( | |
155 | 154 | electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>7)&1] ); |
156 | 155 | electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>6)&1] ); |
157 | 156 | electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>5)&1] ); |
r17967 | r17968 | |
161 | 160 | electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>1)&1] ); |
162 | 161 | electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>0)&1] ); |
163 | 162 | } |
164 | | |
163 | | |
165 | 164 | } |
166 | 165 | if ( scanline % 10 == 9 ) |
167 | | |
166 | | |
168 | 167 | break; |
169 | 168 | |
170 | 169 | case 4: |
171 | 170 | case 7: |
172 | 171 | for( i = 0; i < 40; i++ ) |
173 | 172 | { |
174 | UINT8 pattern = read_vram( | |
173 | UINT8 pattern = read_vram( | |
175 | 174 | electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>7)&1] ); |
176 | 175 | electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>7)&1] ); |
177 | 176 | electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>6)&1] ); |
r17967 | r17968 | |
189 | 188 | electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>0)&1] ); |
190 | 189 | electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>0)&1] ); |
191 | 190 | } |
192 | | |
191 | | |
193 | 192 | if ( ( scanline & 0x07 ) == 7 ) |
194 | | |
193 | | |
195 | 194 | break; |
196 | 195 | |
197 | 196 | case 5: |
198 | 197 | for( i = 0; i < 40; i++ ) |
199 | 198 | { |
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]] ); | |
217 | 216 | } |
218 | | |
217 | | |
219 | 218 | if ( ( scanline & 0x07 ) == 7 ) |
220 | | |
219 | | |
221 | 220 | break; |
222 | 221 | |
223 | 222 | case 6: |
r17967 | r17968 | |
227 | 226 | { |
228 | 227 | for( i = 0; i < 40; i++ ) |
229 | 228 | { |
230 | UINT8 pattern = read_vram( | |
229 | UINT8 pattern = read_vram( | |
231 | 230 | electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>7)&1] ); |
232 | 231 | electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>7)&1] ); |
233 | 232 | electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>6)&1] ); |
r17967 | r17968 | |
245 | 244 | electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>0)&1] ); |
246 | 245 | electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>0)&1] ); |
247 | 246 | } |
248 | | |
247 | | |
249 | 248 | if ( ( scanline % 10 ) == 7 ) |
250 | | |
249 | | |
251 | 250 | } |
252 | 251 | break; |
253 | 252 | } |
r17967 | r17968 | |
---|---|---|
47 | 47 | return ((reg2&0x2)|(reg1>>1)) << 2; |
48 | 48 | } |
49 | 49 | |
50 | ||
50 | ||
51 | 51 | { |
52 | channelf_state *state = screen.machine().driver_data<channelf_state>(); | |
53 | 52 | UINT8 y,col; |
54 | 53 | UINT16 ma=0,x; |
55 | 54 | int palette_offset; |
r17967 | r17968 | |
57 | 56 | for(y = 0; y < 64; y++ ) |
58 | 57 | { |
59 | 58 | UINT16 *p = &bitmap.pix16(y); |
60 | palette_offset = recalc_palette_offset( | |
59 | palette_offset = recalc_palette_offset( | |
61 | 60 | |
62 | 61 | for (x = ma; x < ma + 128; x++) |
63 | 62 | { |
64 | col = palette_offset+( | |
63 | col = palette_offset+( | |
65 | 64 | *p++ = colormap[col]; |
66 | 65 | } |
67 | 66 | ma+=128; |
r17967 | r17968 | |
---|---|---|
391 | 391 | } |
392 | 392 | } |
393 | 393 | |
394 | ||
394 | ||
395 | 395 | { |
396 | apple1_state *state = screen.machine().driver_data<apple1_state>(); | |
397 | 396 | apple1_vh_cursor_blink(screen.machine()); |
398 | terminal_draw(screen.machine(), bitmap, cliprect, | |
397 | terminal_draw(screen.machine(), bitmap, cliprect, | |
399 | 398 | return 0; |
400 | 399 | } |
r17967 | r17968 | |
---|---|---|
16 | 16 | { |
17 | 17 | } |
18 | 18 | |
19 | ||
19 | ||
20 | 20 | { |
21 | orion_state *state = screen.machine().driver_data<orion_state>(); | |
22 | 21 | UINT8 code1,code2,code3,code4,color,val; |
23 | 22 | 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; | |
26 | 25 | int part2addr = part1addr + 0x10000; |
27 | int video_mode = | |
26 | int video_mode = | |
28 | 27 | UINT8 *ram = screen.machine().device<ram_device>(RAM_TAG)->pointer(); |
29 | 28 | |
30 | for (x = 0; x < | |
29 | for (x = 0; x < | |
31 | 30 | { |
32 | 31 | for (y = 0; y < 256; y++) |
33 | 32 | { |
r17967 | r17968 | |
36 | 35 | code3 = ram[part1addr + y + x*256 + 0x4000]; |
37 | 36 | code4 = ram[part2addr + y + x*256 + 0x4000]; |
38 | 37 | if ((video_mode==14) || (video_mode==15)) { |
39 | code2 = | |
38 | code2 = | |
40 | 39 | } |
41 | 40 | color = 0; |
42 | 41 | for (b = 7; b >= 0; b--) |
43 | 42 | { |
44 | switch( | |
43 | switch( | |
45 | 44 | case 0 : color = ((code1 >> b) & 0x01) ? 10 : 0; break; |
46 | 45 | case 1 : color = ((code1 >> b) & 0x01) ? 17 : 16; break; |
47 | 46 | case 4 : val = (((code1 >> b) & 0x01) << 1) + ((code2 >> b) & 0x01); |
r17967 | r17968 | |
67 | 66 | color = ((code1 >> b) & 0x01) ? (code2 & 0x0f) : (code2 >> 4); break; |
68 | 67 | |
69 | 68 | default: |
70 | switch( | |
69 | switch( | |
71 | 70 | case 16 : |
72 | 71 | color = (((code1 >> b) & 0x01) << 2) + (((code3 >> b) & 0x01) << 1) + ((code2 >> b) & 0x01); |
73 | 72 | break; |
r17967 | r17968 | |
---|---|---|
15 | 15 | { |
16 | 16 | } |
17 | 17 | |
18 | ||
18 | ||
19 | 19 | { |
20 | bk_state *state = screen.machine().driver_data<bk_state>(); | |
21 | 20 | UINT16 code; |
22 | 21 | int y, x, b; |
23 | 22 | int nOfs; |
24 | 23 | |
25 | nOfs = ( | |
24 | nOfs = ( | |
26 | 25 | |
27 | 26 | for (y = 0; y < 256; y++) |
28 | 27 | { |
29 | 28 | for (x = 0; x < 32; x++) |
30 | 29 | { |
31 | code = | |
30 | code = | |
32 | 31 | for (b = 0; b < 16; b++) |
33 | 32 | { |
34 | 33 | bitmap.pix16(y, x*16 + b) = (code >> b) & 0x01; |
r17967 | r17968 | |
---|---|---|
428 | 428 | |
429 | 429 | ***************************************************************************/ |
430 | 430 | /* This routine is called at the start of vblank to refresh the screen */ |
431 | ||
431 | ||
432 | 432 | { |
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); | |
436 | 435 | return 0; |
437 | 436 | } |
438 | 437 |
r17967 | r17968 | |
---|---|---|
9 | 9 | #include "emu.h" |
10 | 10 | #include "includes/nascom1.h" |
11 | 11 | |
12 | ||
12 | ||
13 | 13 | { |
14 | nascom1_state *state = screen.machine().driver_data<nascom1_state>(); | |
15 | UINT8 *videoram = state->m_videoram; | |
14 | UINT8 *videoram = m_videoram; | |
16 | 15 | int sy, sx; |
17 | 16 | |
18 | 17 | for (sx = 0; sx < 48; sx++) |
r17967 | r17968 | |
34 | 33 | return 0; |
35 | 34 | } |
36 | 35 | |
37 | ||
36 | ||
38 | 37 | { |
39 | nascom1_state *state = screen.machine().driver_data<nascom1_state>(); | |
40 | UINT8 *videoram = state->m_videoram; | |
38 | UINT8 *videoram = m_videoram; | |
41 | 39 | int sy, sx; |
42 | 40 | |
43 | 41 | for (sx = 0; sx < 48; sx++) |
r17967 | r17968 | |
---|---|---|
48 | 48 | m_chunky_graphics = 0; |
49 | 49 | } |
50 | 50 | |
51 | ||
51 | ||
52 | 52 | { |
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); | |
55 | 54 | return 0; |
56 | 55 | } |
r17967 | r17968 | |
---|---|---|
89 | 89 | m_refresh_counter = 0; |
90 | 90 | } |
91 | 91 | |
92 | ||
92 | ||
93 | 93 | { |
94 | sapi1_state *state = screen.machine().driver_data<sapi1_state>(); | |
95 | 94 | int x,y,j,b; |
96 | 95 | UINT16 addr; |
97 | 96 | int xpos; |
r17967 | r17968 | |
102 | 101 | xpos = 0; |
103 | 102 | for(x = 0; x < 40; x++ ) |
104 | 103 | { |
105 | UINT8 code = | |
104 | UINT8 code = | |
106 | 105 | UINT8 attr = (code >> 6) & 3; |
107 | 106 | code &= 0x3f; |
108 | 107 | for(j = 0; j < 9; j++ ) |
r17967 | r17968 | |
112 | 111 | UINT8 val; |
113 | 112 | if (j==8) { |
114 | 113 | if (attr==2) { |
115 | val = ( | |
114 | val = ( | |
116 | 115 | } else { |
117 | 116 | val = 0; |
118 | 117 | } |
119 | 118 | } else { |
120 | 119 | val = (MHB2501[code*8 + j] >> (5-b)) & 1; |
121 | 120 | if (attr==1) { |
122 | val = ( | |
121 | val = ( | |
123 | 122 | } |
124 | 123 | } |
125 | 124 | if(attr==3) { |
r17967 | r17968 | |
134 | 133 | if (xpos>=6*40) break; |
135 | 134 | } |
136 | 135 | } |
137 | | |
136 | | |
138 | 137 | return 0; |
139 | 138 | } |
140 | 139 | |
r17967 | r17968 | |
143 | 142 | { |
144 | 143 | } |
145 | 144 | |
146 | ||
145 | ||
147 | 146 | { |
148 | 147 | return 0; |
149 | 148 | } |
r17967 | r17968 | |
---|---|---|
17 | 17 | } |
18 | 18 | |
19 | 19 | |
20 | ||
20 | ||
21 | 21 | { |
22 | p2000t_state *state = screen.machine().driver_data<p2000t_state>(); | |
23 | UINT8 *videoram = state->m_videoram; | |
22 | UINT8 *videoram = m_videoram; | |
24 | 23 | int offs, sx, sy, code, loop; |
25 | 24 | |
26 | 25 | for (offs = 0; offs < 80 * 24; offs++) |
r17967 | r17968 | |
28 | 27 | sy = (offs / 80) * 20; |
29 | 28 | sx = (offs % 80) * 12; |
30 | 29 | |
31 | if (( | |
30 | if (( | |
32 | 31 | code = 32; |
33 | 32 | else |
34 | 33 | { |
r17967 | r17968 | |
---|---|---|
14 | 14 | { |
15 | 15 | } |
16 | 16 | |
17 | ||
17 | ||
18 | 18 | { |
19 | special_state *state = screen.machine().driver_data<special_state>(); | |
20 | 19 | UINT8 code; |
21 | 20 | int y, x, b; |
22 | 21 | |
r17967 | r17968 | |
24 | 23 | { |
25 | 24 | for (y = 0; y < 256; y++) |
26 | 25 | { |
27 | code = | |
26 | code = | |
28 | 27 | for (b = 7; b >= 0; b--) |
29 | 28 | bitmap.pix16(y, x*8+(7-b)) = (code >> b) & 0x01; |
30 | 29 | } |
r17967 | r17968 | |
35 | 34 | { |
36 | 35 | } |
37 | 36 | |
38 | ||
37 | ||
39 | 38 | { |
40 | special_state *state = screen.machine().driver_data<special_state>(); | |
41 | 39 | UINT8 code; |
42 | 40 | int y, x, b; |
43 | 41 | |
r17967 | r17968 | |
45 | 43 | { |
46 | 44 | for (y = 0; y < 256; y++) |
47 | 45 | { |
48 | code = | |
46 | code = | |
49 | 47 | for (b = 7; b >= 0; b--) |
50 | 48 | bitmap.pix16(y, x*8+(7-b)) = (code >> b) & 0x01; |
51 | 49 | } |
r17967 | r17968 | |
85 | 83 | memset(m_specimx_colorram,0x70,0x3000); |
86 | 84 | } |
87 | 85 | |
88 | ||
86 | ||
89 | 87 | { |
90 | special_state *state = screen.machine().driver_data<special_state>(); | |
91 | 88 | UINT8 code, color; |
92 | 89 | int y, x, b; |
93 | 90 | |
r17967 | r17968 | |
95 | 92 | { |
96 | 93 | for (y = 0; y < 256; y++) |
97 | 94 | { |
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]; | |
100 | 97 | for (b = 7; b >= 0; b--) |
101 | 98 | bitmap.pix16(y, x*8+(7-b)) = ((code >> b) & 0x01)==0 ? color & 0x0f : (color >> 4)& 0x0f ; |
102 | 99 | } |
r17967 | r17968 | |
125 | 122 | { |
126 | 123 | } |
127 | 124 | |
128 | ||
125 | ||
129 | 126 | { |
130 | special_state *state = screen.machine().driver_data<special_state>(); | |
131 | 127 | UINT8 code1, code2, color1, color2; |
132 | 128 | int y, x, b; |
133 | 129 | UINT8 *erik_video_ram_p1, *erik_video_ram_p2; |
134 | 130 | |
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; | |
137 | 133 | |
138 | 134 | for (x = 0; x < 48; x++) |
139 | 135 | { |
r17967 | r17968 | |
144 | 140 | |
145 | 141 | for (b = 7; b >= 0; b--) |
146 | 142 | { |
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; | |
149 | 145 | bitmap.pix16(y, x*8+(7-b)) = color1 | color2; |
150 | 146 | } |
151 | 147 | } |
r17967 | r17968 | |
---|---|---|
774 | 774 | } |
775 | 775 | } |
776 | 776 | |
777 | ||
777 | ||
778 | 778 | { |
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); | |
781 | 780 | return 0; |
782 | 781 | } |
783 | 782 | |
784 | ||
783 | ||
785 | 784 | { |
786 | intv_state *state = screen.machine().driver_data<intv_state>(); | |
787 | UINT8 *videoram = state->m_videoram; | |
785 | UINT8 *videoram = m_videoram; | |
788 | 786 | int x,y,offs; |
789 | 787 | int current_row; |
790 | 788 | // char c; |
791 | 789 | |
792 | 790 | /* Draw the underlying INTV screen first */ |
793 | copybitmap(bitmap, | |
791 | copybitmap(bitmap, | |
794 | 792 | |
795 | 793 | /* if the intvkbd text is not blanked, overlay it */ |
796 | if (! | |
794 | if (! | |
797 | 795 | { |
798 | current_row = ( | |
796 | current_row = ( | |
799 | 797 | for(y=0;y<24;y++) |
800 | 798 | { |
801 | 799 | for(x=0;x<40;x++) |
r17967 | r17968 | |
808 | 806 | 0,0, |
809 | 807 | x<<3,y<<3, 0); |
810 | 808 | } |
811 | if (current_row == | |
809 | if (current_row == | |
812 | 810 | { |
813 | 811 | /* draw the cursor as a solid white block */ |
814 | 812 | /* (should use a filled rect here!) */ |
r17967 | r17968 | |
817 | 815 | 191, /* a block */ |
818 | 816 | 7, /* white */ |
819 | 817 | 0,0, |
820 | ( | |
818 | ( | |
821 | 819 | } |
822 | current_row = (current_row + 1) % | |
820 | current_row = (current_row + 1) % | |
823 | 821 | } |
824 | 822 | } |
825 | 823 | |
826 | 824 | #if 0 |
827 | 825 | // 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], | |
830 | 828 | c, |
831 | 829 | 1, |
832 | 830 | 0,0, |
833 | 831 | 0*8,0*8, 0); |
834 | 832 | for(y=0;y<5;y++) |
835 | 833 | { |
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', | |
838 | 836 | 1, |
839 | 837 | 0,0, |
840 | 838 | 0*8,(y+2)*8, 0); |
841 | 839 | } |
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', | |
844 | 842 | 1, |
845 | 843 | 0,0, |
846 | 844 | 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', | |
849 | 847 | 1, |
850 | 848 | 0,0, |
851 | 849 | 0*8,10*8, 0); |
r17967 | r17968 | |
---|---|---|
15 | 15 | { |
16 | 16 | } |
17 | 17 | |
18 | ||
18 | ||
19 | 19 | { |
20 | mikro80_state *state = screen.machine().driver_data<mikro80_state>(); | |
21 | UINT8 *gfx = state->memregion("gfx1")->base(); | |
20 | UINT8 *gfx = memregion("gfx1")->base(); | |
22 | 21 | int x,y,b; |
23 | 22 | |
24 | 23 | for(y = 0; y < 32*8; y++ ) |
r17967 | r17968 | |
26 | 25 | for(x = 0; x < 64; x++ ) |
27 | 26 | { |
28 | 27 | 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; | |
31 | 30 | for (b = 7; b >= 0; b--) |
32 | 31 | { |
33 | 32 | UINT8 col = (code >> b) & 0x01; |
r17967 | r17968 | |
---|---|---|
183 | 183 | } |
184 | 184 | } |
185 | 185 | |
186 | ||
186 | ||
187 | 187 | { |
188 | ssystem3_state *state = screen.machine().driver_data<ssystem3_state>(); | |
189 | 188 | int i; |
190 | 189 | |
191 | 190 | for (i=0; i<4; i++) { |
192 | ssystem3_draw_7segment(bitmap, | |
191 | ssystem3_draw_7segment(bitmap, | |
193 | 192 | } |
194 | 193 | |
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'); | |
207 | 206 | |
208 | 207 | if (screen.machine().root_device().ioport("Configuration")->read()&1) { // playfield(optional device) |
209 | 208 | static const int lcd_signs_on[]={ |
r17967 | r17968 | |
---|---|---|
651 | 651 | logerror("Video reset\n"); |
652 | 652 | } |
653 | 653 | |
654 | ||
654 | void | |
655 | 655 | { |
656 | 656 | |
657 | 657 | // logerror("SCREEN_VBLANK( nimbus )\n"); |
658 | 658 | } |
659 | 659 | |
660 | ||
660 | ||
661 | 661 | { |
662 | rmnimbus_state *state = screen.machine().driver_data<rmnimbus_state>(); | |
663 | 662 | int XCoord; |
664 | 663 | int YCoord = screen.vpos(); |
665 | 664 | |
666 | 665 | for(XCoord=0;XCoord<SCREEN_WIDTH_PIXELS;XCoord++) |
667 | 666 | { |
668 | bitmap.pix16(YCoord, XCoord)= | |
667 | bitmap.pix16(YCoord, XCoord)= | |
669 | 668 | } |
670 | 669 | |
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; | |
674 | 673 | |
675 | 674 | return 0; |
676 | 675 | } |
r17967 | r17968 | |
---|---|---|
36 | 36 | m_p_chargen = memregion("chargen")->base(); |
37 | 37 | } |
38 | 38 | |
39 | ||
39 | ||
40 | 40 | { |
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++; | |
44 | 43 | UINT8 y,ra,chr,gfx; |
45 | 44 | UINT16 x,sy=0,ma=0; |
46 | 45 | |
r17967 | r17968 | |
52 | 51 | |
53 | 52 | for (x = ma; x < ma + 40; x++) |
54 | 53 | { |
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]; | |
57 | 56 | |
58 | 57 | /* Display a scanline of a character */ |
59 | 58 | *p++ = BIT(gfx, 7); |
r17967 | r17968 | |
72 | 71 | } |
73 | 72 | |
74 | 73 | // same as above except bits are in reverse order |
75 | ||
74 | ||
76 | 75 | { |
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++; | |
80 | 78 | UINT8 y,ra,chr,gfx; |
81 | 79 | UINT16 x,sy=0,ma=0; |
82 | 80 | |
r17967 | r17968 | |
88 | 86 | |
89 | 87 | for (x = ma; x < ma + 40; x++) |
90 | 88 | { |
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]; | |
93 | 91 | |
94 | 92 | /* Display a scanline of a character */ |
95 | 93 | *p++ = BIT(gfx, 0); |
r17967 | r17968 | |
108 | 106 | } |
109 | 107 | |
110 | 108 | // has twice as much video ram and uses a scroll register |
111 | ||
109 | ||
112 | 110 | { |
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++; | |
116 | 113 | UINT8 y,ra,chr,gfx; |
117 | UINT16 x,sy=0, ma= | |
114 | UINT16 x,sy=0, ma= | |
118 | 115 | |
119 | 116 | for(y = 0; y < 25; y++ ) |
120 | 117 | { |
r17967 | r17968 | |
124 | 121 | |
125 | 122 | for (x = ma; x < ma + 40; x++) |
126 | 123 | { |
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]; | |
129 | 126 | |
130 | 127 | /* Display a scanline of a character */ |
131 | 128 | *p++ = BIT(gfx, 7); |
r17967 | r17968 | |
---|---|---|
26 | 26 | m_FNT = memregion("chargen")->base(); |
27 | 27 | } |
28 | 28 | |
29 | ||
29 | ||
30 | 30 | { |
31 | poly88_state *state = screen.machine().driver_data<poly88_state>(); | |
32 | 31 | int x,y,j,b; |
33 | 32 | UINT16 addr; |
34 | 33 | int xpos; |
r17967 | r17968 | |
40 | 39 | xpos = 0; |
41 | 40 | for(x = 0; x < 64; x++ ) |
42 | 41 | { |
43 | UINT8 code = | |
42 | UINT8 code = | |
44 | 43 | if ((code & 0x80)==0) |
45 | 44 | { |
46 | 45 | for(j = 0; j < 15; j++ ) |
r17967 | r17968 | |
78 | 77 | if (mcm6571a_shift[code]==0) |
79 | 78 | { |
80 | 79 | if (j < 9) |
81 | l = | |
80 | l = | |
82 | 81 | } |
83 | 82 | else |
84 | 83 | { |
85 | 84 | if ((j > 2) && (j < 12)) |
86 | l = | |
85 | l = | |
87 | 86 | } |
88 | 87 | |
89 | 88 | for(b = 0; b < 7; b++ ) |
r17967 | r17968 | |
---|---|---|
25 | 25 | { |
26 | 26 | } |
27 | 27 | |
28 | ||
28 | ||
29 | 29 | { |
30 | ut88_state *state = screen.machine().driver_data<ut88_state>(); | |
31 | 30 | int x,y; |
32 | 31 | |
33 | 32 | for(y = 0; y < 28; y++ ) |
34 | 33 | { |
35 | 34 | for(x = 0; x < 64; x++ ) |
36 | 35 | { |
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; | |
39 | 38 | drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], code | attr, 0, 0,0, x*8,y*8); |
40 | 39 | } |
41 | 40 | } |
r17967 | r17968 | |
---|---|---|
15 | 15 | m_p_chargen = memregion("chargen")->base(); |
16 | 16 | } |
17 | 17 | |
18 | ||
18 | ||
19 | 19 | { |
20 | llc_state *state = screen.machine().driver_data<llc_state>(); | |
21 | 20 | UINT8 y,ra,chr,gfx,inv; |
22 | 21 | UINT16 sy=0,ma=0,x; |
23 | 22 | |
r17967 | r17968 | |
29 | 28 | |
30 | 29 | for (x = ma; x < ma + 64; x++) |
31 | 30 | { |
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; | |
34 | 33 | |
35 | 34 | /* get pattern of pixels for that character scanline */ |
36 | gfx = | |
35 | gfx = | |
37 | 36 | |
38 | 37 | /* Display a scanline of a character (8 pixels) */ |
39 | 38 | *p++ = BIT(gfx, 7); |
r17967 | r17968 | |
51 | 50 | return 0; |
52 | 51 | } |
53 | 52 | |
54 | ||
53 | ||
55 | 54 | { |
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; | |
58 | 56 | UINT16 sy=0,ma=0,x; |
59 | 57 | |
60 | 58 | for (y = 0; y < 32; y++) |
r17967 | r17968 | |
66 | 64 | |
67 | 65 | for (x = ma; x < ma + 64; x++) |
68 | 66 | { |
69 | chr = | |
67 | chr = | |
70 | 68 | if (chr==0x11) // inverse on |
71 | 69 | { |
72 | 70 | inv=0xff; |
r17967 | r17968 | |
77 | 75 | inv=0; |
78 | 76 | |
79 | 77 | /* get pattern of pixels for that character scanline */ |
80 | gfx = | |
78 | gfx = | |
81 | 79 | |
82 | 80 | /* Display a scanline of a character (8 pixels) */ |
83 | 81 | *p++ = BIT(gfx, 7); |
r17967 | r17968 | |
---|---|---|
15 | 15 | { |
16 | 16 | } |
17 | 17 | |
18 | ||
18 | ||
19 | 19 | { |
20 | pp01_state *state = screen.machine().driver_data<pp01_state>(); | |
21 | 20 | UINT8 code_r,code_g,code_b; |
22 | 21 | UINT8 col; |
23 | 22 | int y, x, b; |
r17967 | r17968 | |
27 | 26 | { |
28 | 27 | for (x = 0; x < 32; x++) |
29 | 28 | { |
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]; | |
33 | 32 | for (b = 0; b < 8; b++) |
34 | 33 | { |
35 | 34 | col = (((code_r >> b) & 0x01) ? 4 : 0) + (((code_g >> b) & 0x01) ? 2 : 0) + (((code_b >> b) & 0x01) ? 1 : 0); |
r17967 | r17968 | |
---|---|---|
51 | 51 | |
52 | 52 | |
53 | 53 | /* 7 or 8-bit video, 32/64 characters per line = trs80, trs80l2, sys80 */ |
54 | ||
54 | ||
55 | 55 | { |
56 | trs80_state *state = screen.machine().driver_data<trs80_state>(); | |
57 | 56 | UINT8 y,ra,chr,gfx,gfxbit; |
58 | 57 | 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; | |
61 | 60 | |
62 | if ( | |
61 | if ( | |
63 | 62 | { |
64 | | |
63 | | |
65 | 64 | screen.set_visible_area(0, cols*6-1, 0, 16*12-1); |
66 | 65 | } |
67 | 66 | |
r17967 | r17968 | |
73 | 72 | |
74 | 73 | for (x = ma; x < ma + 64; x+=skip) |
75 | 74 | { |
76 | chr = | |
75 | chr = | |
77 | 76 | |
78 | 77 | if (chr & 0x80) |
79 | 78 | { |
r17967 | r17968 | |
89 | 88 | } |
90 | 89 | else |
91 | 90 | { |
92 | if (BIT( | |
91 | if (BIT( | |
93 | 92 | |
94 | 93 | // if g,j,p,q,y; lower the descender |
95 | 94 | if ((chr==0x2c)||(chr==0x3b)||(chr==0x67)||(chr==0x6a)||(chr==0x70)||(chr==0x71)||(chr==0x79)) |
96 | 95 | { |
97 | 96 | if ((ra < 10) && (ra > 1)) |
98 | gfx = | |
97 | gfx = | |
99 | 98 | else |
100 | 99 | gfx = 0; |
101 | 100 | } |
102 | 101 | else |
103 | 102 | { |
104 | 103 | if (ra < 8) |
105 | gfx = | |
104 | gfx = | |
106 | 105 | else |
107 | 106 | gfx = 0; |
108 | 107 | } |
r17967 | r17968 | |
123 | 122 | } |
124 | 123 | |
125 | 124 | /* 8-bit video, 32/64/40/80 characters per line = trs80m3, trs80m4. */ |
126 | ||
125 | ||
127 | 126 | { |
128 | trs80_state *state = screen.machine().driver_data<trs80_state>(); | |
129 | 127 | UINT8 y,ra,chr,gfx,gfxbit; |
130 | 128 | UINT16 sy=0,ma=0,x; |
131 | 129 | 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; | |
135 | 133 | UINT8 s_cols = cols; |
136 | UINT8 mask = BIT( | |
134 | UINT8 mask = BIT( | |
137 | 135 | |
138 | if ( | |
136 | if ( | |
139 | 137 | { |
140 | 138 | s_cols >>= 1; |
141 | 139 | skip = 2; |
142 | 140 | } |
143 | 141 | |
144 | if (( | |
142 | if (( | |
145 | 143 | { |
146 | | |
144 | | |
147 | 145 | screen.set_visible_area(0, s_cols*8-1, 0, rows*lines-1); |
148 | 146 | } |
149 | 147 | |
r17967 | r17968 | |
155 | 153 | |
156 | 154 | for (x = ma; x < ma + cols; x+=skip) |
157 | 155 | { |
158 | chr = | |
156 | chr = | |
159 | 157 | |
160 | if (((chr & 0xc0) == 0xc0) && (~ | |
158 | if (((chr & 0xc0) == 0xc0) && (~ | |
161 | 159 | { |
162 | 160 | if (ra < 8) |
163 | gfx = | |
161 | gfx = | |
164 | 162 | else |
165 | 163 | gfx = 0; |
166 | 164 | |
r17967 | r17968 | |
174 | 172 | *p++ = BIT(gfx, 0); |
175 | 173 | } |
176 | 174 | else |
177 | if ((chr & 0x80) && (~ | |
175 | if ((chr & 0x80) && (~ | |
178 | 176 | { |
179 | 177 | gfxbit = (ra & 0x0c)>>1; |
180 | 178 | /* Display one line of a lores character */ |
r17967 | r17968 | |
192 | 190 | { |
193 | 191 | /* get pattern of pixels for that character scanline */ |
194 | 192 | if (ra < 8) |
195 | gfx = | |
193 | gfx = | |
196 | 194 | else |
197 | 195 | gfx = 0; |
198 | 196 | |
199 | 197 | /* if inverse mode, and bit 7 set, invert gfx */ |
200 | if (BIT( | |
198 | if (BIT( | |
201 | 199 | gfx ^= 0xff; |
202 | 200 | |
203 | 201 | /* Display a scanline of a character */ |
r17967 | r17968 | |
218 | 216 | } |
219 | 217 | |
220 | 218 | /* 7 or 8-bit video, 64/32 characters per line = ht1080z, ht1080z2, ht108064 */ |
221 | ||
219 | ||
222 | 220 | { |
223 | trs80_state *state = screen.machine().driver_data<trs80_state>(); | |
224 | 221 | UINT8 y,ra,chr,gfx,gfxbit; |
225 | 222 | 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; | |
228 | 225 | |
229 | if ( | |
226 | if ( | |
230 | 227 | { |
231 | | |
228 | | |
232 | 229 | screen.set_visible_area(0, cols*6-1, 0, 16*12-1); |
233 | 230 | } |
234 | 231 | |
r17967 | r17968 | |
240 | 237 | |
241 | 238 | for (x = ma; x < ma + 64; x+=skip) |
242 | 239 | { |
243 | chr = | |
240 | chr = | |
244 | 241 | |
245 | 242 | if (chr & 0x80) |
246 | 243 | { |
r17967 | r17968 | |
256 | 253 | } |
257 | 254 | else |
258 | 255 | { |
259 | if (( | |
256 | if (( | |
260 | 257 | |
261 | 258 | /* get pattern of pixels for that character scanline */ |
262 | gfx = | |
259 | gfx = | |
263 | 260 | |
264 | 261 | /* Display a scanline of a character (6 pixels) */ |
265 | 262 | *p++ = BIT(gfx, 7); |
r17967 | r17968 | |
277 | 274 | } |
278 | 275 | |
279 | 276 | /* 8-bit video, 64/80 characters per line = lnw80 */ |
280 | ||
277 | ||
281 | 278 | { |
282 | trs80_state *state = screen.machine().driver_data<trs80_state>(); | |
283 | 279 | static const UINT16 rows[] = { 0, 0x200, 0x100, 0x300, 1, 0x201, 0x101, 0x301 }; |
284 | 280 | UINT8 chr,gfx,gfxbit,bg=7,fg=0; |
285 | 281 | UINT16 sy=0,ma=0,x,y,ra; |
286 | UINT8 cols = BIT( | |
282 | UINT8 cols = BIT( | |
287 | 283 | |
288 | 284 | /* Although the OS can select 32-character mode, it is not supported by hardware */ |
289 | if ( | |
285 | if ( | |
290 | 286 | { |
291 | | |
287 | | |
292 | 288 | screen.set_visible_area(0, cols*6-1, 0, 16*12-1); |
293 | 289 | } |
294 | 290 | |
295 | if ( | |
291 | if ( | |
296 | 292 | { |
297 | 293 | bg = 0; |
298 | 294 | fg = 7; |
299 | 295 | } |
300 | 296 | |
301 | switch ( | |
297 | switch ( | |
302 | 298 | { |
303 | 299 | case 0: // MODE 0 |
304 | 300 | for (y = 0; y < 16; y++) |
r17967 | r17968 | |
309 | 305 | |
310 | 306 | for (x = ma; x < ma + 64; x++) |
311 | 307 | { |
312 | chr = | |
308 | chr = | |
313 | 309 | |
314 | 310 | if (chr & 0x80) |
315 | 311 | { |
r17967 | r17968 | |
327 | 323 | { |
328 | 324 | /* get pattern of pixels for that character scanline */ |
329 | 325 | if (ra < 8) |
330 | gfx = | |
326 | gfx = | |
331 | 327 | else |
332 | 328 | gfx = 0; |
333 | 329 | |
r17967 | r17968 | |
354 | 350 | |
355 | 351 | for (x = 0; x < 0x40; x++) |
356 | 352 | { |
357 | gfx = | |
353 | gfx = | |
358 | 354 | /* Display 6 pixels in normal region */ |
359 | 355 | *p++ = BIT(gfx, 0) ? fg : bg; |
360 | 356 | *p++ = BIT(gfx, 1) ? fg : bg; |
r17967 | r17968 | |
366 | 362 | |
367 | 363 | for (x = 0; x < 0x10; x++) |
368 | 364 | { |
369 | gfx = | |
365 | gfx = | |
370 | 366 | /* Display 6 pixels in extended region */ |
371 | 367 | *p++ = BIT(gfx, 0) ? fg : bg; |
372 | 368 | *p++ = BIT(gfx, 1) ? fg : bg; |
r17967 | r17968 | |
390 | 386 | |
391 | 387 | for (x = 0; x < 0x40; x++) |
392 | 388 | { |
393 | gfx = | |
389 | gfx = | |
394 | 390 | /* Display 6 pixels in normal region */ |
395 | 391 | fg = (gfx & 0x38) >> 3; |
396 | 392 | *p++ = fg; |
r17967 | r17968 | |
417 | 413 | |
418 | 414 | for (x = 0; x < 0x40; x++) |
419 | 415 | { |
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; | |
422 | 418 | /* Display 6 pixels in normal region */ |
423 | 419 | *p++ = BIT(gfx, 0) ? fg : bg; |
424 | 420 | *p++ = BIT(gfx, 1) ? fg : bg; |
425 | 421 | *p++ = BIT(gfx, 2) ? fg : bg; |
426 | fg = | |
422 | fg = | |
427 | 423 | *p++ = BIT(gfx, 3) ? fg : bg; |
428 | 424 | *p++ = BIT(gfx, 4) ? fg : bg; |
429 | 425 | *p++ = BIT(gfx, 5) ? fg : bg; |
r17967 | r17968 | |
431 | 427 | |
432 | 428 | for (x = 0; x < 0x10; x++) |
433 | 429 | { |
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; | |
436 | 432 | /* Display 6 pixels in extended region */ |
437 | 433 | *p++ = BIT(gfx, 0) ? fg : bg; |
438 | 434 | *p++ = BIT(gfx, 1) ? fg : bg; |
439 | 435 | *p++ = BIT(gfx, 2) ? fg : bg; |
440 | fg = | |
436 | fg = | |
441 | 437 | *p++ = BIT(gfx, 3) ? fg : bg; |
442 | 438 | *p++ = BIT(gfx, 4) ? fg : bg; |
443 | 439 | *p++ = BIT(gfx, 5) ? fg : bg; |
r17967 | r17968 | |
450 | 446 | } |
451 | 447 | |
452 | 448 | /* lores characters are in the character generator. Each character is 8x16. */ |
453 | ||
449 | ||
454 | 450 | { |
455 | trs80_state *state = screen.machine().driver_data<trs80_state>(); | |
456 | 451 | UINT8 y,ra,chr,gfx; |
457 | 452 | 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; | |
460 | 455 | |
461 | if ( | |
456 | if ( | |
462 | 457 | { |
463 | | |
458 | | |
464 | 459 | screen.set_visible_area(0, cols*8-1, 0, 16*16-1); |
465 | 460 | } |
466 | 461 | |
r17967 | r17968 | |
472 | 467 | |
473 | 468 | for (x = ma; x < ma + 64; x+=skip) |
474 | 469 | { |
475 | chr = | |
470 | chr = | |
476 | 471 | |
477 | 472 | /* get pattern of pixels for that character scanline */ |
478 | gfx = | |
473 | gfx = | |
479 | 474 | |
480 | 475 | /* Display a scanline of a character (8 pixels) */ |
481 | 476 | *p++ = BIT(gfx, 0); |
r17967 | r17968 | |
493 | 488 | return 0; |
494 | 489 | } |
495 | 490 | |
496 | ||
491 | ||
497 | 492 | /* lores characters are in the character generator. Each character is 6x11. */ |
498 | 493 | { |
499 | trs80_state *state = screen.machine().driver_data<trs80_state>(); | |
500 | 494 | UINT8 y,ra,chr,gfx; |
501 | 495 | 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; | |
504 | 498 | |
505 | if ( | |
499 | if ( | |
506 | 500 | { |
507 | | |
501 | | |
508 | 502 | screen.set_visible_area(0, cols*6-1, 0, 16*11-1); |
509 | 503 | } |
510 | 504 | |
r17967 | r17968 | |
516 | 510 | |
517 | 511 | for (x = ma; x < ma + 64; x+=skip) |
518 | 512 | { |
519 | chr = | |
513 | chr = | |
520 | 514 | |
521 | 515 | /* get pattern of pixels for that character scanline */ |
522 | gfx = | |
516 | gfx = | |
523 | 517 | |
524 | 518 | /* Display a scanline of a character (6 pixels) */ |
525 | 519 | *p++ = BIT(gfx, 5); |
r17967 | r17968 | |
---|---|---|
603 | 603 | |
604 | 604 | ***************************************************************************/ |
605 | 605 | |
606 | ||
606 | ||
607 | 607 | { |
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 ); | |
610 | 609 | |
611 | 610 | return 0; |
612 | 611 | } |
r17967 | r17968 | |
---|---|---|
472 | 472 | } |
473 | 473 | |
474 | 474 | |
475 | ||
475 | ||
476 | 476 | { |
477 | apple2_state *state = screen.machine().driver_data<apple2_state>(); | |
478 | 477 | int page; |
479 | 478 | UINT32 new_a2; |
480 | running_machine &machine = screen.machine(); | |
481 | 479 | |
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; | |
484 | 482 | |
485 | 483 | /* read out relevant softswitch variables; to see what has changed */ |
486 | new_a2 = effective_a2( | |
484 | new_a2 = effective_a2( | |
487 | 485 | if (new_a2 & VAR_80STORE) |
488 | 486 | new_a2 &= ~VAR_PAGE2; |
489 | 487 | new_a2 &= VAR_TEXT | VAR_MIXED | VAR_HIRES | VAR_DHIRES | VAR_80COL | VAR_PAGE2 | VAR_ALTCHARSET; |
490 | 488 | |
491 | if (ALWAYS_REFRESH || (new_a2 != | |
489 | if (ALWAYS_REFRESH || (new_a2 != | |
492 | 490 | { |
493 | | |
491 | | |
494 | 492 | } |
495 | 493 | |
496 | 494 | /* choose which page to use */ |
497 | 495 | page = (new_a2 & VAR_PAGE2) ? 1 : 0; |
498 | 496 | |
499 | 497 | /* choose the video mode to draw */ |
500 | if (effective_a2( | |
498 | if (effective_a2( | |
501 | 499 | { |
502 | 500 | /* text screen - TK2000 uses HGR for text */ |
503 | if ( | |
501 | if ( | |
504 | 502 | { |
505 | apple2_hires_draw(machine, bitmap, cliprect, page, 0, 191); | |
503 | apple2_hires_draw(machine(), bitmap, cliprect, page, 0, 191); | |
506 | 504 | } |
507 | 505 | else |
508 | 506 | { |
509 | apple2_text_draw(machine, bitmap, cliprect, page, 0, 191); | |
507 | apple2_text_draw(machine(), bitmap, cliprect, page, 0, 191); | |
510 | 508 | } |
511 | 509 | } |
512 | else if ((effective_a2( | |
510 | else if ((effective_a2( | |
513 | 511 | { |
514 | 512 | /* 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); | |
517 | 515 | } |
518 | else if (effective_a2( | |
516 | else if (effective_a2( | |
519 | 517 | { |
520 | 518 | /* hi-res screen */ |
521 | apple2_hires_draw(machine, bitmap, cliprect, page, 0, 191); | |
519 | apple2_hires_draw(machine(), bitmap, cliprect, page, 0, 191); | |
522 | 520 | } |
523 | else if (effective_a2( | |
521 | else if (effective_a2( | |
524 | 522 | { |
525 | 523 | /* 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); | |
528 | 526 | } |
529 | 527 | else |
530 | 528 | { |
531 | 529 | /* lo-res screen */ |
532 | apple2_lores_draw(machine, bitmap, cliprect, page, 0, 191); | |
530 | apple2_lores_draw(machine(), bitmap, cliprect, page, 0, 191); | |
533 | 531 | } |
534 | 532 | return 0; |
535 | 533 | } |
r17967 | r17968 | |
---|---|---|
36 | 36 | } |
37 | 37 | |
38 | 38 | |
39 | ||
39 | ||
40 | 40 | { |
41 | 41 | int primo_scanline; |
42 | 42 |
r17967 | r17968 | |
---|---|---|
147 | 147 | { |
148 | 148 | } |
149 | 149 | |
150 | ||
150 | ||
151 | 151 | { |
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); | |
154 | 153 | int x,y,b; |
155 | 154 | int brightnes; |
156 | 155 | int lcdmem; |
157 | 156 | |
158 | if (! | |
157 | if (! | |
159 | 158 | { |
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++) | |
162 | 161 | for (b=0; b<8; b++) |
163 | bitmap.pix16(y, x*8+b) = ti85_palette[ | |
162 | bitmap.pix16(y, x*8+b) = ti85_palette[ | |
164 | 163 | return 0; |
165 | 164 | } |
166 | 165 | |
167 | lcdmem = (( | |
166 | lcdmem = (( | |
168 | 167 | |
169 | memcpy ( | |
168 | memcpy ( | |
170 | 169 | |
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); | |
174 | 173 | |
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++) | |
177 | 176 | for (b=0; b<8; b++) |
178 | 177 | { |
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); | |
185 | 184 | |
186 | bitmap.pix16(y, x*8+b) = ti85_palette[ | |
185 | bitmap.pix16(y, x*8+b) = ti85_palette[ | |
187 | 186 | } |
188 | 187 | return 0; |
189 | 188 | } |
r17967 | r17968 | |
---|---|---|
1816 | 1816 | { |
1817 | 1817 | } |
1818 | 1818 | |
1819 | ||
1819 | ||
1820 | 1820 | { |
1821 | busicom_state *state = screen.machine().driver_data<busicom_state>(); | |
1822 | 1821 | int y, x, b, j; |
1823 | 1822 | //34x44 |
1824 | 1823 | for (y = 0; y < 11; y++) |
1825 | 1824 | { |
1826 | UINT8 col = 8 * | |
1825 | UINT8 col = 8 * | |
1827 | 1826 | for (x = 0; x < 17; x++) |
1828 | 1827 | { |
1829 | UINT8 chr = | |
1828 | UINT8 chr = | |
1830 | 1829 | for (j = 0; j < 44; j++) { |
1831 | 1830 | for (b = 0; b < 34; b++) |
1832 | 1831 | { |
r17967 | r17968 | |
---|---|---|
116 | 116 | Init_Hector_Palette(machine()); |
117 | 117 | } |
118 | 118 | |
119 | ||
119 | ||
120 | 120 | { |
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) | |
125 | 124 | { |
126 | if ( | |
125 | if ( | |
127 | 126 | { |
128 | 127 | screen.set_visible_area(0, 243, 0, 227); |
129 | 128 | hector_hr( screen.machine(), bitmap , &videoram_HR[0], 227, 64); |
r17967 | r17968 | |
---|---|---|
114 | 114 | #define DOWN 62 |
115 | 115 | #define RIGHT 68 |
116 | 116 | |
117 | ||
117 | ||
118 | 118 | { |
119 | pc1251_state *state = screen.machine().driver_data<pc1251_state>(); | |
120 | 119 | int x, y, i, j; |
121 | 120 | int color[2]; |
122 | 121 | running_machine &machine = screen.machine(); |
r17967 | r17968 | |
130 | 129 | for (x=RIGHT,y=DOWN, i=0; i<60; x+=3) |
131 | 130 | { |
132 | 131 | for (j=0; j<5; j++, i++, x+=3) |
133 | drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], | |
132 | drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], | |
134 | 133 | PC1251_CONTRAST,0,0, |
135 | 134 | x,y); |
136 | 135 | } |
137 | 136 | for (i=0x7b; i>=0x40; x+=3) |
138 | 137 | { |
139 | 138 | for (j=0; j<5; j++, i--, x+=3) |
140 | drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], | |
139 | drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], | |
141 | 140 | PC1251_CONTRAST,0,0, |
142 | 141 | x,y); |
143 | 142 | } |
144 | 143 | |
145 | 144 | pocketc_draw_special(bitmap, RIGHT+134, DOWN-10, de, |
146 | | |
145 | | |
147 | 146 | pocketc_draw_special(bitmap, RIGHT+142, DOWN-10, g, |
148 | | |
147 | | |
149 | 148 | pocketc_draw_special(bitmap, RIGHT+146, DOWN-10, rad, |
150 | | |
149 | | |
151 | 150 | pocketc_draw_special(bitmap, RIGHT+18, DOWN-10, def, |
152 | | |
151 | | |
153 | 152 | pocketc_draw_special(bitmap, RIGHT, DOWN-10, shift, |
154 | | |
153 | | |
155 | 154 | pocketc_draw_special(bitmap, RIGHT+38, DOWN-10, pro, |
156 | | |
155 | | |
157 | 156 | pocketc_draw_special(bitmap, RIGHT+53, DOWN-10, run, |
158 | | |
157 | | |
159 | 158 | pocketc_draw_special(bitmap, RIGHT+68, DOWN-10, rsv, |
160 | | |
159 | | |
161 | 160 | |
162 | 161 | /* 0x3c 1 def?, 4 g, 8 de |
163 | 162 | 0x3d 2 shift, 4 rad, 8 error |
r17967 | r17968 | |
---|---|---|
646 | 646 | } |
647 | 647 | } |
648 | 648 | |
649 | ||
649 | ||
650 | 650 | { |
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); | |
653 | 652 | return 0; |
654 | 653 | } |
r17967 | r17968 | |
---|---|---|
15 | 15 | { |
16 | 16 | } |
17 | 17 | |
18 | ||
18 | ||
19 | 19 | { |
20 | pk8020_state *state = screen.machine().driver_data<pk8020_state>(); | |
21 | 20 | int y, x, b, j; |
22 | UINT8 *gfx = | |
21 | UINT8 *gfx = | |
23 | 22 | UINT8 *ram = screen.machine().device<ram_device>(RAM_TAG)->pointer(); |
24 | 23 | |
25 | 24 | for (y = 0; y < 16; y++) |
r17967 | r17968 | |
29 | 28 | UINT8 chr = ram[x +(y*64) + 0x40000]; |
30 | 29 | UINT8 attr= ram[x +(y*64) + 0x40400]; |
31 | 30 | for (j = 0; j < 16; j++) { |
32 | UINT32 addr = 0x10000 + x + ((y*16+j)*64) + ( | |
31 | UINT32 addr = 0x10000 + x + ((y*16+j)*64) + ( | |
33 | 32 | UINT8 code1 = ram[addr]; |
34 | 33 | UINT8 code2 = ram[addr + 0x4000]; |
35 | 34 | UINT8 code3 = ram[addr + 0x8000]; |
36 | UINT8 code4 = gfx[((chr<<4) + j) + ( | |
35 | UINT8 code4 = gfx[((chr<<4) + j) + ( | |
37 | 36 | if (attr) code4 ^= 0xff; |
38 | 37 | for (b = 0; b < 8; b++) |
39 | 38 | { |
r17967 | r17968 | |
---|---|---|
120 | 120 | machine().primary_screen->register_screen_bitmap(m_bitmap); |
121 | 121 | } |
122 | 122 | |
123 | ||
123 | ||
124 | 124 | { |
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) | |
128 | 127 | { |
129 | 128 | const rectangle black_area(0, 384 - 1, 0, 208 - 1); |
130 | | |
129 | | |
131 | 130 | } |
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); | |
134 | 133 | return 0; |
135 | 134 | } |
136 | 135 |
r17967 | r17968 | |
---|---|---|
637 | 637 | |
638 | 638 | |
639 | 639 | |
640 | ||
640 | ||
641 | 641 | { |
642 | 642 | |
643 | 643 | mc6845_device *mc6845 = screen.machine().device<mc6845_device>("mc6845"); |
r17967 | r17968 | |
647 | 647 | |
648 | 648 | |
649 | 649 | |
650 | bbc_state *state = screen.machine().driver_data<bbc_state>(); | |
651 | 650 | long c; |
652 | 651 | |
653 | 652 | //logerror ("Box %d by %d \n",cliprect.min_y,cliprect.max_y); |
r17967 | r17968 | |
655 | 654 | c = 0; // this is used to time out the screen redraw, in the case that the 6845 is in some way out state. |
656 | 655 | |
657 | 656 | |
658 | | |
657 | | |
659 | 658 | |
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; | |
663 | 662 | |
664 | 663 | // loop until the end of the Vertical Sync pulse |
665 | 664 | // or until a timeout (this catches the 6845 with silly register values that would not give a VSYNC signal) |
666 | while(( | |
665 | while(( | |
667 | 666 | { |
668 | 667 | // Clock the 6845 |
669 | 668 | m6845_clock(screen.machine()); |
r17967 | r17968 | |
673 | 672 | |
674 | 673 | // loop until the Vertical Sync pulse goes high |
675 | 674 | // or until a timeout (this catches the 6845 with silly register values that would not give a VSYNC signal) |
676 | while((! | |
675 | while((! | |
677 | 676 | { |
678 | if (( | |
677 | if (( | |
679 | 678 | |
680 | 679 | // and check the cursor |
681 | if ( | |
680 | if ( | |
682 | 681 | |
683 | 682 | // Clock the 6845 |
684 | 683 | m6845_clock(screen.machine()); |
r17967 | r17968 | |
---|---|---|
1511 | 1511 | m_video.vsync_flag = 0; |
1512 | 1512 | } |
1513 | 1513 | |
1514 | ||
1514 | ||
1515 | 1515 | { |
1516 | fm7_state *state = screen.machine().driver_data<fm7_state>(); | |
1517 | 1516 | UINT8 code_r = 0,code_g = 0,code_b = 0; |
1518 | 1517 | UINT8 code_r2 = 0,code_g2 = 0,code_b2 = 0; |
1519 | 1518 | UINT8 code_r3 = 0,code_g3 = 0,code_b3 = 0; |
r17967 | r17968 | |
1522 | 1521 | int y, x, b; |
1523 | 1522 | UINT16 page = 0x0000; |
1524 | 1523 | |
1525 | if( | |
1524 | if( | |
1526 | 1525 | page = 0xc000; |
1527 | 1526 | |
1528 | if( | |
1527 | if( | |
1529 | 1528 | return 0; |
1530 | 1529 | |
1531 | if( | |
1530 | if( | |
1532 | 1531 | { |
1533 | 1532 | for (y = 0; y < 200; y++) |
1534 | 1533 | { |
1535 | 1534 | for (x = 0; x < 40; x++) |
1536 | 1535 | { |
1537 | if(!( | |
1536 | if(!( | |
1538 | 1537 | { |
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)]; | |
1543 | 1542 | } |
1544 | if(!( | |
1543 | if(!( | |
1545 | 1544 | { |
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)]; | |
1550 | 1549 | } |
1551 | if(!( | |
1550 | if(!( | |
1552 | 1551 | { |
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)]; | |
1557 | 1556 | } |
1558 | 1557 | for (b = 0; b < 8; b++) |
1559 | 1558 | { |
r17967 | r17968 | |
1572 | 1571 | { |
1573 | 1572 | for (x = 0; x < 80; x++) |
1574 | 1573 | { |
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)]; | |
1581 | 1580 | for (b = 0; b < 8; b++) |
1582 | 1581 | { |
1583 | 1582 | col = (((code_r >> b) & 0x01) ? 4 : 0) + (((code_g >> b) & 0x01) ? 2 : 0) + (((code_b >> b) & 0x01) ? 1 : 0); |
r17967 | r17968 | |
---|---|---|
113 | 113 | 0x26a0,0x2ea0,0x36a0,0x3ea0,0x27a0,0x2fa0,0x37a0,0x3fa0 |
114 | 114 | }; |
115 | 115 | |
116 | ||
116 | ||
117 | 117 | { |
118 | vtech2_state *state = screen.machine().driver_data<vtech2_state>(); | |
119 | UINT8 *videoram = state->m_videoram; | |
118 | UINT8 *videoram = m_videoram; | |
120 | 119 | int offs, x, y; |
121 | 120 | int full_refresh = 1; |
122 | 121 | |
123 | 122 | if( full_refresh ) |
124 | bitmap.fill((( | |
123 | bitmap.fill((( | |
125 | 124 | |
126 | if ( | |
125 | if ( | |
127 | 126 | { |
128 | 127 | /* graphics modes */ |
129 | switch ( | |
128 | switch ( | |
130 | 129 | { |
131 | 130 | case 0: |
132 | 131 | case 1: |
r17967 | r17968 | |
139 | 138 | offs = offs_2[y]; |
140 | 139 | for( x = 0; x < 80; x++, offs++ ) |
141 | 140 | { |
142 | int sx, sy, code, color = | |
141 | int sx, sy, code, color = | |
143 | 142 | sy = BORDER_V/2 + y; |
144 | 143 | sx = BORDER_H/2 + x * 8; |
145 | 144 | code = videoram[offs]; |
r17967 | r17968 | |
217 | 216 | offs = offs_1[y]; |
218 | 217 | for( x = 0; x < 40; x++, offs++ ) |
219 | 218 | { |
220 | int sx, sy, code, color = | |
219 | int sx, sy, code, color = | |
221 | 220 | sy = BORDER_V/2 + y; |
222 | 221 | sx = BORDER_H/2 + x * 16; |
223 | 222 | code = videoram[offs]; |
r17967 | r17968 | |
250 | 249 | else |
251 | 250 | { |
252 | 251 | /* text modes */ |
253 | if ( | |
252 | if ( | |
254 | 253 | { |
255 | 254 | /* 80 columns text mode */ |
256 | 255 | for( y = 0; y < 24; y++ ) |
r17967 | r17968 | |
258 | 257 | offs = ((y & 7) << 8) + ((y >> 3) * 80); |
259 | 258 | for( x = 0; x < 80; x++, offs++ ) |
260 | 259 | { |
261 | int sx, sy, code, color = | |
260 | int sx, sy, code, color = | |
262 | 261 | sy = BORDER_V/2 + y * 8; |
263 | 262 | sx = BORDER_H/2 + x * 8; |
264 | 263 | code = videoram[0x3800+offs]; |
r17967 | r17968 | |
285 | 284 | } |
286 | 285 | } |
287 | 286 | |
288 | if( | |
287 | if( | |
289 | 288 | { |
290 | popmessage("%s", | |
289 | popmessage("%s", | |
291 | 290 | } |
292 | 291 | return 0; |
293 | 292 | } |
r17967 | r17968 | |
---|---|---|
252 | 252 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
253 | 253 | MCFG_SCREEN_SIZE(64*4, 128) /* 160 x 102 */ |
254 | 254 | MCFG_SCREEN_VISIBLE_AREA(0, 64*4-1, 0, 128-1) |
255 | MCFG_SCREEN_UPDATE_ | |
255 | MCFG_SCREEN_UPDATE_DR | |
256 | 256 | |
257 | 257 | MCFG_GFXDECODE( comquest ) |
258 | 258 | MCFG_PALETTE_LENGTH(2) |
r17967 | r17968 | |
---|---|---|
130 | 130 | |
131 | 131 | void update_kbd_irq(); |
132 | 132 | virtual void machine_reset(); |
133 | public: | |
134 | UINT32 screen_update_rainbow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
133 | 135 | }; |
134 | 136 | |
135 | 137 | void rainbow_state::machine_start() |
r17967 | r17968 | |
203 | 205 | m_kbd8251->input_callback(SERIAL_STATE_CTS); // raise clear to send |
204 | 206 | } |
205 | 207 | |
206 | stat | |
208 | UINT32 rainbow_state::screen | |
207 | 209 | { |
208 | 210 | device_t *devconf = screen.machine().device("vt100_video"); |
209 | 211 | rainbow_video_update( devconf, bitmap, cliprect); |
r17967 | r17968 | |
474 | 476 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
475 | 477 | MCFG_SCREEN_SIZE(80*10, 25*10) |
476 | 478 | MCFG_SCREEN_VISIBLE_AREA(0, 80*10-1, 0, 25*10-1) |
477 | MCFG_SCREEN_UPDATE_ | |
479 | MCFG_SCREEN_UPDATE_DR | |
478 | 480 | MCFG_GFXDECODE(rainbow) |
479 | 481 | MCFG_PALETTE_LENGTH(2) |
480 | 482 | MCFG_PALETTE_INIT(monochrome_green) |
r17967 | r17968 | |
---|---|---|
1963 | 1963 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
1964 | 1964 | MCFG_SCREEN_SIZE(virtual_width, virtual_height) |
1965 | 1965 | 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) | |
1968 | 1968 | |
1969 | 1969 | MCFG_CRT_ADD( "crt", pdp1_crt_interface ) |
1970 | 1970 | MCFG_DEVICE_ADD("readt", PDP1_READTAPE, 0) |
r17967 | r17968 | |
---|---|---|
71 | 71 | DECLARE_VIDEO_START(homelab3); |
72 | 72 | DECLARE_MACHINE_RESET(brailab4); |
73 | 73 | 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); | |
74 | 76 | }; |
75 | 77 | |
76 | 78 | static INTERRUPT_GEN( homelab_frame ) |
r17967 | r17968 | |
558 | 560 | m_p_videoram = memregion("maincpu")->base()+0x17800; |
559 | 561 | } |
560 | 562 | |
561 | stat | |
563 | UINT32 homelab_state::screen | |
562 | 564 | { |
563 | homelab_state *state = screen.machine().driver_data<homelab_state>(); | |
564 | 565 | UINT8 y,ra,chr,gfx; |
565 | 566 | UINT16 sy=0,ma=0,x; |
566 | 567 | |
r17967 | r17968 | |
572 | 573 | |
573 | 574 | for (x = ma; x < ma + 40; x++) |
574 | 575 | { |
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 | |
577 | 578 | |
578 | 579 | /* Display a scanline of a character */ |
579 | 580 | *p++ = BIT(gfx, 7); |
r17967 | r17968 | |
591 | 592 | return 0; |
592 | 593 | } |
593 | 594 | |
594 | stat | |
595 | UINT32 homelab_state::screen | |
595 | 596 | { |
596 | homelab_state *state = screen.machine().driver_data<homelab_state>(); | |
597 | 597 | UINT8 y,ra,chr,gfx; |
598 | 598 | UINT16 sy=0,ma=0,x; |
599 | 599 | |
r17967 | r17968 | |
605 | 605 | |
606 | 606 | for (x = ma; x < ma + 64; x++) |
607 | 607 | { |
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 | |
610 | 610 | |
611 | 611 | /* Display a scanline of a character */ |
612 | 612 | *p++ = BIT(gfx, 7); |
r17967 | r17968 | |
750 | 750 | MCFG_SCREEN_SIZE(40*8, 25*8) |
751 | 751 | MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 0, 25*8-1) |
752 | 752 | MCFG_VIDEO_START_OVERRIDE(homelab_state,homelab2) |
753 | MCFG_SCREEN_UPDATE_ | |
753 | MCFG_SCREEN_UPDATE_DR | |
754 | 754 | MCFG_GFXDECODE(homelab) |
755 | 755 | MCFG_PALETTE_LENGTH(2) |
756 | 756 | MCFG_PALETTE_INIT(monochrome_green) |
r17967 | r17968 | |
780 | 780 | MCFG_SCREEN_SIZE(64*8, 32*8) |
781 | 781 | MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1) |
782 | 782 | MCFG_VIDEO_START_OVERRIDE(homelab_state,homelab3) |
783 | MCFG_SCREEN_UPDATE_ | |
783 | MCFG_SCREEN_UPDATE_DR | |
784 | 784 | MCFG_GFXDECODE(homelab) |
785 | 785 | MCFG_PALETTE_LENGTH(2) |
786 | 786 | MCFG_PALETTE_INIT(monochrome_green) |
r17967 | r17968 | |
810 | 810 | MCFG_SCREEN_SIZE(64*8, 32*8) |
811 | 811 | MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1) |
812 | 812 | MCFG_VIDEO_START_OVERRIDE(homelab_state,brailab4) |
813 | MCFG_SCREEN_UPDATE_ | |
813 | MCFG_SCREEN_UPDATE_DR | |
814 | 814 | MCFG_GFXDECODE(homelab) |
815 | 815 | MCFG_PALETTE_LENGTH(2) |
816 | 816 | MCFG_PALETTE_INIT(monochrome_green) |
r17967 | r17968 | |
---|---|---|
20 | 20 | DECLARE_READ8_MEMBER(vt520_some_r); |
21 | 21 | virtual void machine_reset(); |
22 | 22 | virtual void video_start(); |
23 | UINT32 screen_update_vt520(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
23 | 24 | }; |
24 | 25 | |
25 | 26 | |
r17967 | r17968 | |
62 | 63 | { |
63 | 64 | } |
64 | 65 | |
65 | stat | |
66 | UINT32 vt520_state::screen | |
66 | 67 | { |
67 | 68 | return 0; |
68 | 69 | } |
r17967 | r17968 | |
80 | 81 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
81 | 82 | MCFG_SCREEN_SIZE(802, 480) |
82 | 83 | MCFG_SCREEN_VISIBLE_AREA(0, 802-1, 0, 480-1) |
83 | MCFG_SCREEN_UPDATE_ | |
84 | MCFG_SCREEN_UPDATE_DR | |
84 | 85 | MCFG_PALETTE_LENGTH(2) |
85 | 86 | MCFG_PALETTE_INIT(black_and_white) |
86 | 87 |
r17967 | r17968 | |
---|---|---|
63 | 63 | virtual void machine_start(); |
64 | 64 | virtual void machine_reset(); |
65 | 65 | virtual void video_start(); |
66 | UINT32 screen_update_pc100(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
66 | 67 | }; |
67 | 68 | |
68 | 69 | void pc100_state::video_start() |
69 | 70 | { |
70 | 71 | } |
71 | 72 | |
72 | static | |
73 | UINT32 pc100_state::screen_update_pc100(screen_device &screen, bitmap_ind | |
73 | 74 | { |
74 | pc100_state *state = screen.machine().driver_data<pc100_state>(); | |
75 | 75 | int x,y; |
76 | 76 | int count; |
77 | 77 | int xi; |
78 | 78 | int dot; |
79 | 79 | int pen[4],pen_i; |
80 | 80 | |
81 | count = (( | |
81 | count = (( | |
82 | 82 | |
83 | 83 | for(y=0;y<512;y++) |
84 | 84 | { |
r17967 | r17968 | |
89 | 89 | for(xi=0;xi<16;xi++) |
90 | 90 | { |
91 | 91 | for(pen_i=0;pen_i<4;pen_i++) |
92 | pen[pen_i] = ( | |
92 | pen[pen_i] = ( | |
93 | 93 | |
94 | 94 | dot = 0; |
95 | 95 | for(pen_i=0;pen_i<4;pen_i++) |
r17967 | r17968 | |
395 | 395 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
396 | 396 | MCFG_SCREEN_SIZE(1024, 1024) |
397 | 397 | MCFG_SCREEN_VISIBLE_AREA(0, 768-1, 0, 512-1) |
398 | MCFG_SCREEN_UPDATE_ | |
398 | MCFG_SCREEN_UPDATE_DR | |
399 | 399 | MCFG_GFXDECODE(pc100) |
400 | 400 | MCFG_PALETTE_LENGTH(16) |
401 | 401 | // MCFG_PALETTE_INIT(black_and_white) |
r17967 | r17968 | |
---|---|---|
953 | 953 | MCFG_SCREEN_VBLANK_TIME(0) |
954 | 954 | MCFG_SCREEN_SIZE ( 131, 64 ) |
955 | 955 | MCFG_SCREEN_VISIBLE_AREA( 0, 130, 0, 63 ) |
956 | MCFG_SCREEN_UPDATE_ | |
956 | MCFG_SCREEN_UPDATE_DR | |
957 | 957 | |
958 | 958 | MCFG_PALETTE_LENGTH( 256 ) /* monochrome, but with varying contrast and grayscale */ |
959 | 959 |
r17967 | r17968 | |
---|---|---|
82 | 82 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
83 | 83 | MCFG_SCREEN_SIZE(280*2, 192) |
84 | 84 | MCFG_SCREEN_VISIBLE_AREA(0, (280*2)-1,0,192-1) |
85 | MCFG_SCREEN_UPDATE_ | |
85 | MCFG_SCREEN_UPDATE_DR | |
86 | 86 | |
87 | 87 | MCFG_PALETTE_LENGTH(16) |
88 | 88 | MCFG_PALETTE_INIT_OVERRIDE(apple3_state, apple2 ) |
r17967 | r17968 | |
---|---|---|
18 | 18 | |
19 | 19 | virtual void machine_reset(); |
20 | 20 | virtual void video_start(); |
21 | UINT32 screen_update_unistar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
21 | 22 | }; |
22 | 23 | |
23 | 24 | |
r17967 | r17968 | |
45 | 46 | { |
46 | 47 | } |
47 | 48 | |
48 | static | |
49 | UINT32 unistar_state::screen_update_unistar(screen_device &screen, bitmap_ind | |
49 | 50 | { |
50 | 51 | return 0; |
51 | 52 | } |
r17967 | r17968 | |
81 | 82 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
82 | 83 | MCFG_SCREEN_SIZE(640, 480) |
83 | 84 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
84 | MCFG_SCREEN_UPDATE_ | |
85 | MCFG_SCREEN_UPDATE_DR | |
85 | 86 | MCFG_GFXDECODE(unistar) |
86 | 87 | MCFG_PALETTE_LENGTH(2) |
87 | 88 | MCFG_PALETTE_INIT(black_and_white) |
r17967 | r17968 | |
---|---|---|
78 | 78 | DECLARE_WRITE8_MEMBER(mz2000_gvram_mask_w); |
79 | 79 | virtual void machine_reset(); |
80 | 80 | virtual void video_start(); |
81 | UINT32 screen_update_mz2000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
81 | 82 | }; |
82 | 83 | |
83 | 84 | void mz2000_state::video_start() |
84 | 85 | { |
85 | 86 | } |
86 | 87 | |
87 | stat | |
88 | UINT32 mz2000_state::screen | |
88 | 89 | { |
89 | mz2000_state *state = screen.machine().driver_data<mz2000_state>(); | |
90 | 90 | UINT8 *tvram = screen.machine().root_device().memregion("tvram")->base(); |
91 | 91 | UINT8 *gvram = screen.machine().root_device().memregion("gvram")->base(); |
92 | UINT8 *gfx_data = | |
92 | UINT8 *gfx_data = | |
93 | 93 | int x,y,xi,yi; |
94 | 94 | UINT8 x_size; |
95 | 95 | UINT32 count; |
r17967 | r17968 | |
106 | 106 | pen = ((gvram[count+0x4000] >> (xi)) & 1) ? 1 : 0; //B |
107 | 107 | pen |= ((gvram[count+0x8000] >> (xi)) & 1) ? 2 : 0; //R |
108 | 108 | pen |= ((gvram[count+0xc000] >> (xi)) & 1) ? 4 : 0; //G |
109 | pen &= | |
109 | pen &= | |
110 | 110 | |
111 | 111 | bitmap.pix16(y*2+0, x+xi) = screen.machine().pens[pen]; |
112 | 112 | bitmap.pix16(y*2+1, x+xi) = screen.machine().pens[pen]; |
r17967 | r17968 | |
115 | 115 | } |
116 | 116 | } |
117 | 117 | |
118 | x_size = ( | |
118 | x_size = ( | |
119 | 119 | |
120 | 120 | for(y=0;y<25;y++) |
121 | 121 | { |
122 | 122 | for(x=0;x<x_size;x++) |
123 | 123 | { |
124 | 124 | UINT8 tile = tvram[y*x_size+x]; |
125 | UINT8 color = | |
125 | UINT8 color = | |
126 | 126 | |
127 | for(yi=0;yi<8*( | |
127 | for(yi=0;yi<8*( | |
128 | 128 | { |
129 | 129 | for(xi=0;xi<8;xi++) |
130 | 130 | { |
r17967 | r17968 | |
133 | 133 | UINT16 tile_offset; |
134 | 134 | |
135 | 135 | res_x = x * 8 + xi; |
136 | res_y = y * (8 *( | |
136 | res_y = y * (8 *( | |
137 | 137 | |
138 | if(res_x > 640-1 || res_y > (200*( | |
138 | if(res_x > 640-1 || res_y > (200*( | |
139 | 139 | continue; |
140 | 140 | |
141 | tile_offset = tile*(8*( | |
141 | tile_offset = tile*(8*( | |
142 | 142 | |
143 | 143 | pen = ((gfx_data[tile_offset] >> (7-xi)) & 1) ? color : -1; |
144 | 144 | |
145 | 145 | /* TODO: clean this up */ |
146 | 146 | if(pen != -1) |
147 | 147 | { |
148 | if( | |
148 | if( | |
149 | 149 | { |
150 | if( | |
150 | if( | |
151 | 151 | { |
152 | 152 | bitmap.pix16(res_y, res_x*2+0) = screen.machine().pens[pen]; |
153 | 153 | bitmap.pix16(res_y, res_x*2+1) = screen.machine().pens[pen]; |
r17967 | r17968 | |
159 | 159 | } |
160 | 160 | else |
161 | 161 | { |
162 | if( | |
162 | if( | |
163 | 163 | { |
164 | 164 | bitmap.pix16(res_y*2+0, res_x*2+0) = screen.machine().pens[pen]; |
165 | 165 | bitmap.pix16(res_y*2+0, res_x*2+1) = screen.machine().pens[pen]; |
r17967 | r17968 | |
853 | 853 | MCFG_GFXDECODE(mz2000) |
854 | 854 | MCFG_PALETTE_LENGTH(8) |
855 | 855 | |
856 | MCFG_SCREEN_UPDATE_ | |
856 | MCFG_SCREEN_UPDATE_DR | |
857 | 857 | |
858 | 858 | MCFG_SPEAKER_STANDARD_MONO("mono") |
859 | 859 |
r17967 | r17968 | |
---|---|---|
204 | 204 | virtual void machine_reset(); |
205 | 205 | virtual void video_start(); |
206 | 206 | virtual void palette_init(); |
207 | UINT32 screen_update_z100(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
207 | 208 | }; |
208 | 209 | |
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)) | |
225 | 226 | |
226 | 227 | |
227 | 228 | void z100_state::video_start() |
r17967 | r17968 | |
230 | 231 | m_gvram = auto_alloc_array_clear(machine(), UINT8, 0x30000); |
231 | 232 | } |
232 | 233 | |
233 | stat | |
234 | UINT32 z100_state::screen | |
234 | 235 | { |
235 | z100_state *state = screen.machine().driver_data<z100_state>(); | |
236 | 236 | int x,y,xi,yi; |
237 | 237 | int dot; |
238 | 238 | int i; |
r17967 | r17968 | |
253 | 253 | { |
254 | 254 | dot = 0; |
255 | 255 | for(i=0;i<3;i++) |
256 | dot |= (( | |
256 | dot |= (( | |
257 | 257 | |
258 | dot &= | |
258 | dot &= | |
259 | 259 | |
260 | 260 | /* overwrite */ |
261 | if(state->m_flash) | |
262 | dot = state->m_display_mask; | |
261 | if(m_flash) | |
262 | dot = m_display_mask; | |
263 | 263 | |
264 | 264 | if(y*mc6845_tile_height+yi < 216 && x*8+xi < 640) /* TODO: safety check */ |
265 | 265 | bitmap.pix16(y*mc6845_tile_height+yi, x*8+xi) = screen.machine().pens[dot]; |
r17967 | r17968 | |
785 | 785 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
786 | 786 | MCFG_SCREEN_SIZE(640, 480) |
787 | 787 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
788 | MCFG_SCREEN_UPDATE_ | |
788 | MCFG_SCREEN_UPDATE_DR | |
789 | 789 | MCFG_PALETTE_LENGTH(8) |
790 | 790 | |
791 | 791 | /* Devices */ |
r17967 | r17968 | |
---|---|---|
87 | 87 | { |
88 | 88 | } |
89 | 89 | |
90 | static | |
90 | UINT32 macpci_state::screen_update_pippin(screen_device &screen, bitmap_ind | |
91 | 91 | { |
92 | 92 | return 0; |
93 | 93 | } |
r17967 | r17968 | |
116 | 116 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
117 | 117 | MCFG_SCREEN_SIZE(640, 480) |
118 | 118 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
119 | MCFG_SCREEN_UPDATE_ | |
119 | MCFG_SCREEN_UPDATE_DR | |
120 | 120 | |
121 | 121 | MCFG_PALETTE_LENGTH(2) |
122 | 122 | MCFG_PALETTE_INIT(black_and_white) |
r17967 | r17968 | |
---|---|---|
232 | 232 | * |
233 | 233 | *************************************/ |
234 | 234 | |
235 | stat | |
235 | UINT32 c65_state::screen | |
236 | 236 | { |
237 | 237 | device_t *vic3 = screen.machine().device("vic3"); |
238 | 238 | |
r17967 | r17968 | |
317 | 317 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
318 | 318 | MCFG_SCREEN_SIZE(525 * 2, 520 * 2) |
319 | 319 | MCFG_SCREEN_VISIBLE_AREA(VIC6567_STARTVISIBLECOLUMNS ,(VIC6567_STARTVISIBLECOLUMNS + VIC6567_VISIBLECOLUMNS - 1) * 2, VIC6567_STARTVISIBLELINES, VIC6567_STARTVISIBLELINES + VIC6567_VISIBLELINES - 1) |
320 | MCFG_SCREEN_UPDATE_ | |
320 | MCFG_SCREEN_UPDATE_DR | |
321 | 321 | |
322 | 322 | MCFG_PALETTE_LENGTH(0x100) |
323 | 323 | MCFG_PALETTE_INIT_OVERRIDE(c65_state, c65 ) |
r17967 | r17968 | |
---|---|---|
213 | 213 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
214 | 214 | MCFG_SCREEN_SIZE(1056, 542) |
215 | 215 | MCFG_SCREEN_VISIBLE_AREA(0, 1056-1, 0, 302-1) |
216 | MCFG_SCREEN_UPDATE_ | |
216 | MCFG_SCREEN_UPDATE_DR | |
217 | 217 | |
218 | 218 | MCFG_GFXDECODE(dai) |
219 | 219 | MCFG_PALETTE_LENGTH(sizeof (dai_palette) / 3) |
r17967 | r17968 | |
---|---|---|
24 | 24 | required_shared_ptr<UINT16> m_p_ram; |
25 | 25 | virtual void machine_reset(); |
26 | 26 | virtual void video_start(); |
27 | UINT32 screen_update_pt68k4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
27 | 28 | }; |
28 | 29 | |
29 | 30 | static ADDRESS_MAP_START(pt68k4_mem, AS_PROGRAM, 16, pt68k4_state) |
r17967 | r17968 | |
51 | 52 | { |
52 | 53 | } |
53 | 54 | |
54 | stat | |
55 | UINT32 pt68k4_state::screen | |
55 | 56 | { |
56 | 57 | return 0; |
57 | 58 | } |
r17967 | r17968 | |
68 | 69 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
69 | 70 | MCFG_SCREEN_SIZE(640, 480) |
70 | 71 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
71 | MCFG_SCREEN_UPDATE_ | |
72 | MCFG_SCREEN_UPDATE_DR | |
72 | 73 | MCFG_PALETTE_LENGTH(2) |
73 | 74 | MCFG_PALETTE_INIT(black_and_white) |
74 | 75 | MACHINE_CONFIG_END |
r17967 | r17968 | |
---|---|---|
32 | 32 | virtual void machine_start(); |
33 | 33 | virtual void machine_reset(); |
34 | 34 | virtual void video_start(); |
35 | UINT32 screen_update_multi16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
35 | 36 | }; |
36 | 37 | |
37 | 38 | |
r17967 | r17968 | |
39 | 40 | { |
40 | 41 | } |
41 | 42 | |
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)) | |
58 | 59 | |
59 | 60 | |
60 | stat | |
61 | UINT32 multi16_state::screen | |
61 | 62 | { |
62 | multi16_state *state = screen.machine().driver_data<multi16_state>(); | |
63 | 63 | int x,y; |
64 | 64 | int count; |
65 | 65 | int xi; |
r17967 | r17968 | |
72 | 72 | { |
73 | 73 | for(xi=0;xi<16;xi++) |
74 | 74 | { |
75 | int dot = (BITSWAP16( | |
75 | int dot = (BITSWAP16( | |
76 | 76 | |
77 | 77 | if(screen.visible_area().contains(x*16+xi, y)) |
78 | 78 | bitmap.pix16(y, x*16+xi) = screen.machine().pens[dot]; |
r17967 | r17968 | |
171 | 171 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
172 | 172 | MCFG_SCREEN_SIZE(640, 200) |
173 | 173 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1) |
174 | MCFG_SCREEN_UPDATE_ | |
174 | MCFG_SCREEN_UPDATE_DR | |
175 | 175 | MCFG_PALETTE_LENGTH(8) |
176 | 176 | |
177 | 177 | /* Devices */ |
r17967 | r17968 | |
---|---|---|
135 | 135 | NULL |
136 | 136 | }; |
137 | 137 | |
138 | stat | |
138 | UINT32 rm380z_state::screen | |
139 | 139 | { |
140 | rm380z_state *state = screen.machine().driver_data<rm380z_state>(); | |
141 | state->update_screen(bitmap); | |
140 | update_screen(bitmap); | |
142 | 141 | return 0; |
143 | 142 | } |
144 | 143 | |
r17967 | r17968 | |
157 | 156 | MCFG_SCREEN_SIZE((RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1)), (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1))) |
158 | 157 | MCFG_SCREEN_VISIBLE_AREA(0, (RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1))-1, 0, (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1))-1) |
159 | 158 | |
160 | MCFG_SCREEN_UPDATE_ | |
159 | MCFG_SCREEN_UPDATE_DR | |
161 | 160 | MCFG_PALETTE_LENGTH(2) |
162 | 161 | MCFG_PALETTE_INIT(black_and_white) |
163 | 162 |
r17967 | r17968 | |
---|---|---|
37 | 37 | required_shared_ptr<UINT8> m_display_ram; |
38 | 38 | UINT16 m_ko; /* KO lines KO1 - KO14 */ |
39 | 39 | virtual void palette_init(); |
40 | UINT32 screen_update_cfx9850(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
40 | 41 | }; |
41 | 42 | |
42 | 43 | |
r17967 | r17968 | |
195 | 196 | } |
196 | 197 | |
197 | 198 | |
198 | stat | |
199 | UINT32 cfx9850_state::screen | |
199 | 200 | { |
200 | cfx9850_state *state = screen.machine().driver_data<cfx9850_state>(); | |
201 | 201 | UINT16 offset = 0; |
202 | 202 | |
203 | 203 | for ( int i = 0; i < 16; i++ ) |
r17967 | r17968 | |
206 | 206 | |
207 | 207 | for ( int j = 0; j < 64; j++ ) |
208 | 208 | { |
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 ]; | |
211 | 211 | |
212 | 212 | for ( int b = 0; b < 8; b++ ) |
213 | 213 | { |
r17967 | r17968 | |
233 | 233 | MCFG_SCREEN_REFRESH_RATE( 60 ) |
234 | 234 | MCFG_SCREEN_SIZE( 128, 64 ) |
235 | 235 | MCFG_SCREEN_VISIBLE_AREA( 0, 127, 0, 63 ) |
236 | MCFG_SCREEN_UPDATE_ | |
236 | MCFG_SCREEN_UPDATE_DR | |
237 | 237 | |
238 | 238 | MCFG_DEFAULT_LAYOUT(layout_lcd) |
239 | 239 |
r17967 | r17968 | |
---|---|---|
173 | 173 | MCFG_SCREEN_SIZE(32*6, 16*8) |
174 | 174 | MCFG_SCREEN_VISIBLE_AREA(0, 32*6-1, 0, 16*8-1) |
175 | 175 | MCFG_VIDEO_START_OVERRIDE(mc80_state,mc8020) |
176 | MCFG_SCREEN_UPDATE_ | |
176 | MCFG_SCREEN_UPDATE_DR | |
177 | 177 | MCFG_PALETTE_LENGTH(2) |
178 | 178 | MCFG_PALETTE_INIT(black_and_white) |
179 | 179 | |
r17967 | r17968 | |
199 | 199 | MCFG_SCREEN_SIZE(512, 256) |
200 | 200 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) |
201 | 201 | MCFG_VIDEO_START_OVERRIDE(mc80_state,mc8030) |
202 | MCFG_SCREEN_UPDATE_ | |
202 | MCFG_SCREEN_UPDATE_DR | |
203 | 203 | MCFG_PALETTE_LENGTH(2) |
204 | 204 | MCFG_PALETTE_INIT(black_and_white) |
205 | 205 |
r17967 | r17968 | |
---|---|---|
682 | 682 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(250)) /* not accurate */ |
683 | 683 | MCFG_SCREEN_SIZE(64*8, 19*16) /* need at least 17 lines for NET */ |
684 | 684 | MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0, 19*16-1) |
685 | MCFG_SCREEN_UPDATE_ | |
685 | MCFG_SCREEN_UPDATE_DR | |
686 | 686 | |
687 | 687 | MCFG_GFXDECODE(mbee) |
688 | 688 | MCFG_PALETTE_LENGTH(2) |
r17967 | r17968 | |
723 | 723 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(250)) /* not accurate */ |
724 | 724 | MCFG_SCREEN_SIZE(80*8, 310) |
725 | 725 | MCFG_SCREEN_VISIBLE_AREA(0, 80*8-1, 0, 19*16-1) |
726 | MCFG_SCREEN_UPDATE_ | |
726 | MCFG_SCREEN_UPDATE_DR | |
727 | 727 | |
728 | 728 | MCFG_GFXDECODE(mbeeic) |
729 | 729 | MCFG_PALETTE_LENGTH(96) |
r17967 | r17968 | |
---|---|---|
230 | 230 | DECLARE_MACHINE_RESET(pc6001m2); |
231 | 231 | DECLARE_PALETTE_INIT(pc6001m2); |
232 | 232 | 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); | |
233 | 236 | }; |
234 | 237 | |
235 | 238 | |
r17967 | r17968 | |
503 | 506 | } |
504 | 507 | } |
505 | 508 | |
506 | stat | |
509 | UINT32 pc6001_state::screen | |
507 | 510 | { |
508 | 511 | pc6001_screen_draw(screen.machine(),bitmap,cliprect,1); |
509 | 512 | |
510 | 513 | return 0; |
511 | 514 | } |
512 | 515 | |
513 | stat | |
516 | UINT32 pc6001_state::screen | |
514 | 517 | { |
515 | pc6001_state *state = screen.machine().driver_data<pc6001_state>(); | |
516 | 518 | int x,y,tile,attr; |
517 | 519 | |
518 | 520 | /* note: bitmap mode have priority over everything else, check American Truck */ |
519 | if( | |
521 | if( | |
520 | 522 | { |
521 | 523 | int count,color,i; |
522 | 524 | |
r17967 | r17968 | |
539 | 541 | color |= pal_num[(pen[0] & 3) | ((pen[1] & 3) << 2)]; |
540 | 542 | #endif |
541 | 543 | |
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; | |
544 | 546 | |
545 | 547 | color = 0x10; |
546 | 548 | color |= ((pen[0] & 1) << 2); |
r17967 | r17968 | |
558 | 560 | } |
559 | 561 | } |
560 | 562 | } |
561 | else if( | |
563 | else if( | |
562 | 564 | { |
563 | 565 | int count,color,i; |
564 | 566 | |
r17967 | r17968 | |
578 | 580 | color |= pal_num[(pen[0] & 1) | ((pen[1] & 1) << 1)]; |
579 | 581 | #endif |
580 | 582 | |
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; | |
583 | 585 | |
584 | if( | |
586 | if( | |
585 | 587 | { |
586 | 588 | color = 0x08; |
587 | 589 | color |= (pen[0]) | (pen[1]<<1); |
588 | color |= ( | |
590 | color |= ( | |
589 | 591 | } |
590 | 592 | else //Mk-2 mode |
591 | 593 | { |
592 | 594 | color = 0x10; |
593 | 595 | color |= ((pen[0] & 1) << 2); |
594 | 596 | 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); | |
597 | 599 | } |
598 | 600 | |
599 | 601 | if (cliprect.contains(x+i, y)) |
r17967 | r17968 | |
605 | 607 | } |
606 | 608 | |
607 | 609 | } |
608 | else if( | |
610 | else if( | |
609 | 611 | { |
610 | 612 | int xi,yi,pen,fgcol,bgcol,color; |
611 | 613 | UINT8 *gfx_data = screen.machine().root_device().memregion("gfx1")->base(); |
r17967 | r17968 | |
621 | 623 | ---- xxxx fg color |
622 | 624 | Note that the exgfx banks a different gfx ROM |
623 | 625 | */ |
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]; | |
626 | 628 | tile+= ((attr & 0x80) << 1); |
627 | 629 | |
628 | 630 | for(yi=0;yi<12;yi++) |
r17967 | r17968 | |
632 | 634 | pen = gfx_data[(tile*0x10)+yi]>>(7-xi) & 1; |
633 | 635 | |
634 | 636 | fgcol = (attr & 0x0f) + 0x10; |
635 | bgcol = ((attr & 0x70) >> 4) + 0x10 + (( | |
637 | bgcol = ((attr & 0x70) >> 4) + 0x10 + (( | |
636 | 638 | |
637 | 639 | color = pen ? fgcol : bgcol; |
638 | 640 | |
r17967 | r17968 | |
645 | 647 | } |
646 | 648 | else |
647 | 649 | { |
648 | attr = | |
650 | attr = | |
649 | 651 | pc6001_screen_draw(screen.machine(),bitmap,cliprect,0); |
650 | 652 | } |
651 | 653 | |
652 | 654 | return 0; |
653 | 655 | } |
654 | 656 | |
655 | stat | |
657 | UINT32 pc6001_state::screen | |
656 | 658 | { |
657 | pc6001_state *state = screen.machine().driver_data<pc6001_state>(); | |
658 | 659 | int x,y,tile,attr; |
659 | 660 | int xi,yi,pen,fgcol,bgcol,color; |
660 | UINT8 *gfx_data = | |
661 | UINT8 *gfx_data = | |
661 | 662 | |
662 | 663 | |
663 | if( | |
664 | if( | |
664 | 665 | { |
665 | 666 | for(y=0;y<20;y++) |
666 | 667 | { |
667 | 668 | for(x=0;x<40;x++) |
668 | 669 | { |
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]; | |
671 | 672 | tile+= ((attr & 0x80) << 1); |
672 | 673 | |
673 | 674 | for(yi=0;yi<12;yi++) |
r17967 | r17968 | |
677 | 678 | pen = gfx_data[(tile*0x10)+yi]>>(7-xi) & 1; |
678 | 679 | |
679 | 680 | fgcol = (attr & 0x0f) + 0x10; |
680 | bgcol = ((attr & 0x70) >> 4) + 0x10 + (( | |
681 | bgcol = ((attr & 0x70) >> 4) + 0x10 + (( | |
681 | 682 | |
682 | 683 | color = pen ? fgcol : bgcol; |
683 | 684 | |
r17967 | r17968 | |
698 | 699 | { |
699 | 700 | for(x=0;x<320;x+=4) |
700 | 701 | { |
701 | color = | |
702 | color = | |
702 | 703 | |
703 | 704 | if (cliprect.contains(x+0, y+0)) |
704 | 705 | bitmap.pix16((y+0), (x+0)) = screen.machine().pens[color+0x10]; |
705 | 706 | |
706 | color = ( | |
707 | color = ( | |
707 | 708 | |
708 | 709 | if (cliprect.contains(x+1, y+0)) |
709 | 710 | bitmap.pix16((y+0), (x+1)) = screen.machine().pens[color+0x10]; |
710 | 711 | |
711 | color = | |
712 | color = | |
712 | 713 | |
713 | 714 | if (cliprect.contains(x+2, y+0)) |
714 | 715 | bitmap.pix16((y+0), (x+2)) = screen.machine().pens[color+0x10]; |
715 | 716 | |
716 | color = ( | |
717 | color = ( | |
717 | 718 | |
718 | 719 | if (cliprect.contains(x+3, y+0)) |
719 | 720 | bitmap.pix16((y+0), (x+3)) = screen.machine().pens[color+0x10]; |
720 | 721 | |
721 | color = | |
722 | color = | |
722 | 723 | |
723 | 724 | if (cliprect.contains(x+0, y+1)) |
724 | 725 | bitmap.pix16((y+1), (x+0)) = screen.machine().pens[color+0x10]; |
725 | 726 | |
726 | color = ( | |
727 | color = ( | |
727 | 728 | |
728 | 729 | if (cliprect.contains(x+1, y+1)) |
729 | 730 | bitmap.pix16((y+1), (x+1)) = screen.machine().pens[color+0x10]; |
730 | 731 | |
731 | color = | |
732 | color = | |
732 | 733 | |
733 | 734 | if (cliprect.contains(x+2, y+1)) |
734 | 735 | bitmap.pix16((y+1), (x+2)) = screen.machine().pens[color+0x10]; |
735 | 736 | |
736 | color = ( | |
737 | color = ( | |
737 | 738 | |
738 | 739 | if (cliprect.contains(x+3, y+1)) |
739 | 740 | bitmap.pix16((y+1), (x+3)) = screen.machine().pens[color+0x10]; |
r17967 | r17968 | |
2335 | 2336 | /* video hardware */ |
2336 | 2337 | MCFG_SCREEN_ADD("screen", RASTER) |
2337 | 2338 | MCFG_SCREEN_REFRESH_RATE(60) |
2338 | MCFG_SCREEN_UPDATE_ | |
2339 | MCFG_SCREEN_UPDATE_DR | |
2339 | 2340 | // MCFG_SCREEN_REFRESH_RATE(M6847_NTSC_FRAMES_PER_SECOND) |
2340 | 2341 | // MCFG_SCREEN_UPDATE_STATIC(m6847) |
2341 | 2342 | MCFG_SCREEN_SIZE(320, 25+192+26) |
r17967 | r17968 | |
2378 | 2379 | MCFG_MACHINE_RESET_OVERRIDE(pc6001_state,pc6001m2) |
2379 | 2380 | |
2380 | 2381 | MCFG_SCREEN_MODIFY("screen") |
2381 | MCFG_SCREEN_UPDATE_ | |
2382 | MCFG_SCREEN_UPDATE_DR | |
2382 | 2383 | MCFG_PALETTE_LENGTH(16+16) |
2383 | 2384 | MCFG_PALETTE_INIT_OVERRIDE(pc6001_state,pc6001m2) |
2384 | 2385 | |
r17967 | r17968 | |
2405 | 2406 | MCFG_MACHINE_RESET_OVERRIDE(pc6001_state,pc6001sr) |
2406 | 2407 | |
2407 | 2408 | MCFG_SCREEN_MODIFY("screen") |
2408 | MCFG_SCREEN_UPDATE_ | |
2409 | MCFG_SCREEN_UPDATE_DR | |
2409 | 2410 | |
2410 | 2411 | /* basic machine hardware */ |
2411 | 2412 | MCFG_CPU_REPLACE("maincpu", Z80, XTAL_3_579545MHz) //*Yes*, PC-6001 SR Z80 CPU is actually slower than older models |
r17967 | r17968 | |
---|---|---|
101 | 101 | virtual void machine_start(); |
102 | 102 | virtual void machine_reset(); |
103 | 103 | virtual void video_start(); |
104 | UINT32 screen_update_pc88va(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
104 | 105 | }; |
105 | 106 | |
106 | 107 | |
r17967 | r17968 | |
402 | 403 | } |
403 | 404 | } |
404 | 405 | |
405 | static | |
406 | UINT32 pc88va_state::screen_update_pc88va(screen_device &screen, bitmap_rgb | |
406 | 407 | { |
407 | pc88va_state *state = screen.machine().driver_data<pc88va_state>(); | |
408 | 408 | UINT8 pri,cur_pri_lv; |
409 | 409 | UINT32 screen_pri; |
410 | 410 | bitmap.fill(0, cliprect); |
411 | 411 | |
412 | if( | |
412 | if( | |
413 | 413 | return 0; |
414 | 414 | |
415 | 415 | /* |
416 | | |
416 | | |
417 | 417 | xxxx ---- ---- ---- priority 3 |
418 | 418 | ---- xxxx ---- ---- priority 2 |
419 | 419 | ---- ---- xxxx ---- priority 1 |
420 | 420 | ---- ---- ---- xxxx priority 0 |
421 | | |
421 | | |
422 | 422 | ---- ---- xxxx ---- priority 5 |
423 | 423 | ---- ---- ---- xxxx priority 4 |
424 | 424 | |
425 | 425 | 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 ... |
426 | 426 | */ |
427 | 427 | |
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 | |
434 | 434 | |
435 | 435 | for(pri=0;pri<6;pri++) |
436 | 436 | { |
r17967 | r17968 | |
448 | 448 | switch(cur_pri_lv & 3) // (palette color mode) |
449 | 449 | { |
450 | 450 | case 0: draw_text(screen.machine(),bitmap,cliprect); break; |
451 | case 1: if( | |
451 | case 1: if( | |
452 | 452 | case 2: /* A = graphic 0 */ break; |
453 | 453 | case 3: /* B = graphic 1 */ break; |
454 | 454 | } |
r17967 | r17968 | |
1669 | 1669 | MCFG_SCREEN_REFRESH_RATE(60) |
1670 | 1670 | MCFG_SCREEN_SIZE(640, 480) |
1671 | 1671 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1) |
1672 | MCFG_SCREEN_UPDATE_ | |
1672 | MCFG_SCREEN_UPDATE_DR | |
1673 | 1673 | |
1674 | 1674 | MCFG_PALETTE_LENGTH(32) |
1675 | 1675 | // MCFG_PALETTE_INIT_OVERRIDE(pc88va_state, pc8801 ) |
r17967 | r17968 | |
---|---|---|
139 | 139 | virtual void machine_start(); |
140 | 140 | virtual void machine_reset(); |
141 | 141 | virtual void video_start(); |
142 | UINT32 screen_update_vii(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
142 | 143 | }; |
143 | 144 | |
144 | 145 | enum |
r17967 | r17968 | |
411 | 412 | } |
412 | 413 | } |
413 | 414 | |
414 | static | |
415 | UINT32 vii_state::screen_update_vii(screen_device &screen, bitmap_rgb | |
415 | 416 | { |
416 | vii_state *state = screen.machine().driver_data<vii_state>(); | |
417 | 417 | int i, x, y; |
418 | 418 | |
419 | 419 | bitmap.fill(0, cliprect); |
420 | 420 | |
421 | memset( | |
421 | memset( | |
422 | 422 | |
423 | 423 | for(i = 0; i < 4; i++) |
424 | 424 | { |
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); | |
427 | 427 | vii_blit_sprites(screen.machine(), bitmap, cliprect, i); |
428 | 428 | } |
429 | 429 | |
r17967 | r17968 | |
431 | 431 | { |
432 | 432 | for(x = 0; x < 320; x++) |
433 | 433 | { |
434 | bitmap.pix32(y, x) = ( | |
434 | bitmap.pix32(y, x) = ( | |
435 | 435 | } |
436 | 436 | } |
437 | 437 | |
r17967 | r17968 | |
1101 | 1101 | MCFG_SCREEN_REFRESH_RATE(60) |
1102 | 1102 | MCFG_SCREEN_SIZE(320, 240) |
1103 | 1103 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) |
1104 | MCFG_SCREEN_UPDATE_ | |
1104 | MCFG_SCREEN_UPDATE_DR | |
1105 | 1105 | MCFG_PALETTE_LENGTH(32768) |
1106 | 1106 | |
1107 | 1107 | MCFG_CARTSLOT_ADD( "cart" ) |
r17967 | r17968 | |
1123 | 1123 | MCFG_SCREEN_REFRESH_RATE(60) |
1124 | 1124 | MCFG_SCREEN_SIZE(320, 240) |
1125 | 1125 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) |
1126 | MCFG_SCREEN_UPDATE_ | |
1126 | MCFG_SCREEN_UPDATE_DR | |
1127 | 1127 | MCFG_PALETTE_LENGTH(32768) |
1128 | 1128 | |
1129 | 1129 | MCFG_CARTSLOT_ADD( "cart" ) |
r17967 | r17968 | |
1150 | 1150 | MCFG_SCREEN_REFRESH_RATE(60) |
1151 | 1151 | MCFG_SCREEN_SIZE(320, 240) |
1152 | 1152 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1) |
1153 | MCFG_SCREEN_UPDATE_ | |
1153 | MCFG_SCREEN_UPDATE_DR | |
1154 | 1154 | MCFG_PALETTE_LENGTH(32768) |
1155 | 1155 | MACHINE_CONFIG_END |
1156 | 1156 |
r17967 | r17968 | |
---|---|---|
542 | 542 | } |
543 | 543 | } |
544 | 544 | |
545 | ||
545 | ||
546 | 546 | { |
547 | x1_state *state = screen.machine().driver_data<x1_state>(); | |
548 | 547 | |
549 | 548 | bitmap.fill(MAKE_ARGB(0xff,0x00,0x00,0x00), cliprect); |
550 | 549 | |
551 | draw_gfxbitmap(screen.machine(),bitmap,cliprect, | |
550 | draw_gfxbitmap(screen.machine(),bitmap,cliprect, | |
552 | 551 | draw_fgtilemap(screen.machine(),bitmap,cliprect); |
553 | draw_gfxbitmap(screen.machine(),bitmap,cliprect, | |
552 | draw_gfxbitmap(screen.machine(),bitmap,cliprect, | |
554 | 553 | |
555 | 554 | return 0; |
556 | 555 | } |
r17967 | r17968 | |
2589 | 2588 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
2590 | 2589 | MCFG_SCREEN_SIZE(640, 480) |
2591 | 2590 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
2592 | MCFG_SCREEN_UPDATE_ | |
2591 | MCFG_SCREEN_UPDATE_DR | |
2593 | 2592 | |
2594 | 2593 | MCFG_MC6845_ADD("crtc", H46505, (VDP_CLOCK/48), mc6845_intf) //unknown divider |
2595 | 2594 | MCFG_PALETTE_LENGTH(0x10+0x1000) |
r17967 | r17968 | |
---|---|---|
752 | 752 | MCFG_FRAGMENT_ADD(pocketc) |
753 | 753 | |
754 | 754 | MCFG_SCREEN_MODIFY("screen") |
755 | MCFG_SCREEN_UPDATE_ | |
755 | MCFG_SCREEN_UPDATE_DR | |
756 | 756 | MACHINE_CONFIG_END |
757 | 757 | |
758 | 758 | static MACHINE_CONFIG_DERIVED( pc1402, pc1401 ) |
r17967 | r17968 | |
781 | 781 | MCFG_SCREEN_MODIFY("screen") |
782 | 782 | MCFG_SCREEN_SIZE(608, 300) |
783 | 783 | MCFG_SCREEN_VISIBLE_AREA(0, 608-1, 0, 300-1) |
784 | MCFG_SCREEN_UPDATE_ | |
784 | MCFG_SCREEN_UPDATE_DR | |
785 | 785 | MCFG_GFXDECODE( pc1251 ) |
786 | 786 | MACHINE_CONFIG_END |
787 | 787 | |
r17967 | r17968 | |
842 | 842 | MCFG_SCREEN_MODIFY("screen") |
843 | 843 | MCFG_SCREEN_SIZE(640, 252) |
844 | 844 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 252-1) |
845 | MCFG_SCREEN_UPDATE_ | |
845 | MCFG_SCREEN_UPDATE_DR | |
846 | 846 | |
847 | 847 | /* internal ram */ |
848 | 848 | MCFG_RAM_ADD(RAM_TAG) |
r17967 | r17968 | |
881 | 881 | MCFG_SCREEN_VISIBLE_AREA(0, 848-1, 0, 320-1) |
882 | 882 | // MCFG_SCREEN_SIZE(848, 361) |
883 | 883 | // MCFG_SCREEN_VISIBLE_AREA(0, 848-1, 0, 361-1) |
884 | MCFG_SCREEN_UPDATE_ | |
884 | MCFG_SCREEN_UPDATE_DR | |
885 | 885 | |
886 | 886 | MCFG_VIDEO_START( pc1403 ) |
887 | 887 | MACHINE_CONFIG_END |
r17967 | r17968 | |
---|---|---|
41 | 41 | virtual void machine_start(); |
42 | 42 | virtual void machine_reset(); |
43 | 43 | virtual void video_start(); |
44 | UINT32 screen_update_sgi_ip6(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
44 | 45 | }; |
45 | 46 | |
46 | 47 | |
r17967 | r17968 | |
73 | 74 | { |
74 | 75 | } |
75 | 76 | |
76 | stat | |
77 | UINT32 sgi_ip6_state::screen | |
77 | 78 | { |
78 | 79 | return 0; |
79 | 80 | } |
r17967 | r17968 | |
241 | 242 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
242 | 243 | MCFG_SCREEN_SIZE(640, 480) |
243 | 244 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
244 | MCFG_SCREEN_UPDATE_ | |
245 | MCFG_SCREEN_UPDATE_DR | |
245 | 246 | |
246 | 247 | |
247 | 248 | MACHINE_CONFIG_END |
r17967 | r17968 | |
---|---|---|
78 | 78 | UINT8 m_portb; |
79 | 79 | virtual void machine_start(); |
80 | 80 | virtual void machine_reset(); |
81 | public: | |
82 | UINT32 screen_update_d6800(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
81 | 83 | }; |
82 | 84 | |
83 | 85 | |
r17967 | r17968 | |
152 | 154 | |
153 | 155 | /* Video */ |
154 | 156 | |
155 | stat | |
157 | UINT32 d6800_state::screen | |
156 | 158 | { |
157 | d6800_state *state = screen.machine().driver_data<d6800_state>(); | |
158 | 159 | UINT8 x,y,gfx=0; |
159 | 160 | |
160 | 161 | for (y = 0; y < 32; y++) |
r17967 | r17968 | |
163 | 164 | |
164 | 165 | for (x = 0; x < 8; x++) |
165 | 166 | { |
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)]; | |
168 | 169 | |
169 | 170 | *p++ = BIT(gfx, 7); |
170 | 171 | *p++ = BIT(gfx, 6); |
r17967 | r17968 | |
367 | 368 | MCFG_SCREEN_REFRESH_RATE(50) |
368 | 369 | MCFG_SCREEN_SIZE(64, 32) |
369 | 370 | MCFG_SCREEN_VISIBLE_AREA(0, 63, 0, 31) |
370 | MCFG_SCREEN_UPDATE_ | |
371 | MCFG_SCREEN_UPDATE_DR | |
371 | 372 | |
372 | 373 | MCFG_PALETTE_LENGTH(2) |
373 | 374 | MCFG_PALETTE_INIT(black_and_white) |
r17967 | r17968 | |
---|---|---|
363 | 363 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
364 | 364 | MCFG_SCREEN_SIZE(78*6, 30*10) |
365 | 365 | MCFG_SCREEN_VISIBLE_AREA(0, 78*6-1, 0, 30*10-1) |
366 | MCFG_SCREEN_UPDATE_ | |
366 | MCFG_SCREEN_UPDATE_DR | |
367 | 367 | MCFG_GFXDECODE(radio86) |
368 | 368 | MCFG_PALETTE_LENGTH(3) |
369 | 369 | MCFG_PALETTE_INIT_OVERRIDE(radio86_state,radio86) |
r17967 | r17968 | |
---|---|---|
213 | 213 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
214 | 214 | MCFG_SCREEN_SIZE(384, 256) |
215 | 215 | MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 256-1) |
216 | ||
216 | | |
217 | 217 | |
218 | 218 | MCFG_PALETTE_LENGTH(4) |
219 | 219 |
r17967 | r17968 | |
---|---|---|
539 | 539 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
540 | 540 | MCFG_SCREEN_SIZE(128+2*XPOS, 262) |
541 | 541 | MCFG_SCREEN_VISIBLE_AREA(0, 2*XPOS+128-1, 0, 262-1) |
542 | MCFG_SCREEN_UPDATE_ | |
542 | MCFG_SCREEN_UPDATE_DR | |
543 | 543 | |
544 | 544 | MCFG_GFXDECODE( arcadia ) |
545 | 545 | MCFG_PALETTE_LENGTH(ARRAY_LENGTH(arcadia_palette)) |
r17967 | r17968 | |
---|---|---|
86 | 86 | virtual void machine_reset(); |
87 | 87 | virtual void video_start(); |
88 | 88 | virtual void palette_init(); |
89 | UINT32 screen_update_smc777(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
89 | 90 | }; |
90 | 91 | |
91 | 92 | |
r17967 | r17968 | |
97 | 98 | { |
98 | 99 | } |
99 | 100 | |
100 | stat | |
101 | UINT32 smc777_state::screen | |
101 | 102 | { |
102 | smc777_state *state = screen.machine().driver_data<smc777_state>(); | |
103 | 103 | int x,y,yi; |
104 | 104 | UINT16 count; |
105 | 105 | UINT8 *vram = screen.machine().root_device().memregion("vram")->base(); |
106 | 106 | UINT8 *attr = screen.machine().root_device().memregion("attr")->base(); |
107 | UINT8 *gram = | |
107 | UINT8 *gram = | |
108 | 108 | int x_width; |
109 | 109 | |
110 | bitmap.fill(screen.machine().pens[ | |
110 | bitmap.fill(screen.machine().pens[ | |
111 | 111 | |
112 | x_width = ( | |
112 | x_width = ( | |
113 | 113 | |
114 | 114 | count = 0x0000; |
115 | 115 | |
r17967 | r17968 | |
153 | 153 | |
154 | 154 | count = 0x0000; |
155 | 155 | |
156 | x_width = ( | |
156 | x_width = ( | |
157 | 157 | |
158 | 158 | for(y=0;y<25;y++) |
159 | 159 | { |
r17967 | r17968 | |
191 | 191 | UINT8 *gfx_data = screen.machine().root_device().memregion("pcg")->base(); |
192 | 192 | int pen; |
193 | 193 | |
194 | pen = ((gfx_data[tile*8+yi]>>(7-xi)) & 1) ? (color+ | |
194 | pen = ((gfx_data[tile*8+yi]>>(7-xi)) & 1) ? (color+ | |
195 | 195 | |
196 | 196 | if(pen != -1) |
197 | 197 | bitmap.pix16(y*8+CRTC_MIN_Y+yi, x*8+CRTC_MIN_X+xi) = screen.machine().pens[pen]; |
r17967 | r17968 | |
199 | 199 | } |
200 | 200 | |
201 | 201 | // draw cursor |
202 | if( | |
202 | if( | |
203 | 203 | { |
204 | 204 | int xc,yc,cursor_on; |
205 | 205 | |
206 | 206 | cursor_on = 0; |
207 | switch( | |
207 | switch( | |
208 | 208 | { |
209 | 209 | case 0x00: cursor_on = 1; break; //always on |
210 | 210 | case 0x20: cursor_on = 0; break; //always off |
r17967 | r17968 | |
214 | 214 | |
215 | 215 | if(cursor_on) |
216 | 216 | { |
217 | for(yc=0;yc<(8-( | |
217 | for(yc=0;yc<(8-( | |
218 | 218 | { |
219 | 219 | for(xc=0;xc<8;xc++) |
220 | 220 | { |
r17967 | r17968 | |
224 | 224 | } |
225 | 225 | } |
226 | 226 | |
227 | ( | |
227 | ( | |
228 | 228 | } |
229 | 229 | } |
230 | 230 | |
r17967 | r17968 | |
1088 | 1088 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
1089 | 1089 | MCFG_SCREEN_SIZE(0x400, 400) |
1090 | 1090 | MCFG_SCREEN_VISIBLE_AREA(0, 660-1, 0, 220-1) //normal 640 x 200 + 20 pixels for border color |
1091 | ||
1091 | | |
1092 | 1092 | |
1093 | 1093 | MCFG_PALETTE_LENGTH(0x10+8) //16 palette entries + 8 special colors |
1094 | 1094 | MCFG_GFXDECODE(smc777) |
r17967 | r17968 | |
---|---|---|
31 | 31 | DECLARE_READ8_MEMBER(bcs3_keyboard_r); |
32 | 32 | virtual void machine_reset(); |
33 | 33 | 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); | |
34 | 38 | }; |
35 | 39 | |
36 | 40 | READ8_MEMBER( bcs3_state::bcs3_keyboard_r ) |
r17967 | r17968 | |
216 | 220 | m_p_chargen = memregion("chargen")->base(); |
217 | 221 | } |
218 | 222 | |
219 | static | |
223 | UINT32 bcs3_state::screen_update_bcs3(screen_device &screen, bitmap_ind | |
220 | 224 | { |
221 | bcs3_state *state = screen.machine().driver_data<bcs3_state>(); | |
222 | 225 | UINT8 y,ra,chr,gfx,rat; |
223 | 226 | UINT16 sy=0,ma=0,x; |
224 | 227 | |
r17967 | r17968 | |
233 | 236 | { |
234 | 237 | if (ra < 8) |
235 | 238 | { |
236 | chr = | |
239 | chr = | |
237 | 240 | |
238 | 241 | /* get pattern of pixels for that character scanline */ |
239 | gfx = | |
242 | gfx = | |
240 | 243 | } |
241 | 244 | else |
242 | 245 | gfx = 0xff; |
r17967 | r17968 | |
259 | 262 | |
260 | 263 | /* This has 100 lines of screen data. I'm assuming that it only shows a portion of this, |
261 | 264 | with the cursor always in sight. */ |
262 | static | |
265 | UINT32 bcs3_state::screen_update_bcs3a(screen_device &screen, bitmap_ind | |
263 | 266 | { |
264 | bcs3_state *state = screen.machine().driver_data<bcs3_state>(); | |
265 | 267 | UINT8 y,ra,chr,gfx,rat; |
266 | 268 | UINT16 sy=0,ma=128,x; |
267 | UINT16 cursor = ( | |
269 | UINT16 cursor = ( | |
268 | 270 | rat = cursor / 30; |
269 | 271 | if (rat > 11) ma = (rat-11) * 30 + 128; |
270 | 272 | |
r17967 | r17968 | |
279 | 281 | { |
280 | 282 | if (ra < 8) |
281 | 283 | { |
282 | chr = | |
284 | chr = | |
283 | 285 | |
284 | 286 | /* get pattern of pixels for that character scanline */ |
285 | gfx = | |
287 | gfx = | |
286 | 288 | } |
287 | 289 | else |
288 | 290 | gfx = 0xff; |
r17967 | r17968 | |
303 | 305 | return 0; |
304 | 306 | } |
305 | 307 | |
306 | static | |
308 | UINT32 bcs3_state::screen_update_bcs3b(screen_device &screen, bitmap_ind | |
307 | 309 | { |
308 | bcs3_state *state = screen.machine().driver_data<bcs3_state>(); | |
309 | 310 | UINT8 y,ra,chr,gfx,rat; |
310 | 311 | UINT16 sy=0,ma=128,x; |
311 | UINT16 cursor = ( | |
312 | UINT16 cursor = ( | |
312 | 313 | rat = cursor / 41; |
313 | 314 | if (rat > 23) ma = (rat-23) * 41 + 128; |
314 | 315 | |
r17967 | r17968 | |
323 | 324 | { |
324 | 325 | if (ra < 8) |
325 | 326 | { |
326 | chr = | |
327 | chr = | |
327 | 328 | |
328 | 329 | /* get pattern of pixels for that character scanline */ |
329 | gfx = | |
330 | gfx = | |
330 | 331 | } |
331 | 332 | else |
332 | 333 | gfx = 0xff; |
r17967 | r17968 | |
347 | 348 | return 0; |
348 | 349 | } |
349 | 350 | |
350 | static | |
351 | UINT32 bcs3_state::screen_update_bcs3c(screen_device &screen, bitmap_ind | |
351 | 352 | { |
352 | bcs3_state *state = screen.machine().driver_data<bcs3_state>(); | |
353 | 353 | UINT8 y,ra,chr,gfx,rat; |
354 | 354 | UINT16 sy=0,ma=0xb4,x; |
355 | UINT16 cursor = ( | |
355 | UINT16 cursor = ( | |
356 | 356 | rat = cursor / 30; |
357 | 357 | if (rat > 11) ma = (rat-11) * 30 + 0xb4; |
358 | 358 | |
r17967 | r17968 | |
367 | 367 | { |
368 | 368 | if (ra < 8) |
369 | 369 | { |
370 | chr = | |
370 | chr = | |
371 | 371 | |
372 | 372 | /* get pattern of pixels for that character scanline */ |
373 | gfx = | |
373 | gfx = | |
374 | 374 | } |
375 | 375 | else |
376 | 376 | gfx = 0xff; |
r17967 | r17968 | |
423 | 423 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
424 | 424 | MCFG_SCREEN_SIZE(28*8, 12*10) |
425 | 425 | MCFG_SCREEN_VISIBLE_AREA(0,28*8-1,0,12*10-1) |
426 | MCFG_SCREEN_UPDATE_ | |
426 | MCFG_SCREEN_UPDATE_DR | |
427 | 427 | MCFG_GFXDECODE(bcs3) |
428 | 428 | MCFG_PALETTE_LENGTH(2) |
429 | 429 | MCFG_PALETTE_INIT(black_and_white) |
r17967 | r17968 | |
437 | 437 | MCFG_SCREEN_MODIFY("screen") |
438 | 438 | MCFG_SCREEN_SIZE(29*8, 12*10) |
439 | 439 | MCFG_SCREEN_VISIBLE_AREA(0,29*8-1,0,12*10-1) |
440 | MCFG_SCREEN_UPDATE_ | |
440 | MCFG_SCREEN_UPDATE_DR | |
441 | 441 | MACHINE_CONFIG_END |
442 | 442 | |
443 | 443 | static MACHINE_CONFIG_DERIVED( bcs3b, bcs3 ) |
r17967 | r17968 | |
448 | 448 | MCFG_SCREEN_MODIFY("screen") |
449 | 449 | MCFG_SCREEN_SIZE(40*8, 24*10) |
450 | 450 | MCFG_SCREEN_VISIBLE_AREA(0,40*8-1,0,24*10-1) |
451 | MCFG_SCREEN_UPDATE_ | |
451 | MCFG_SCREEN_UPDATE_DR | |
452 | 452 | MACHINE_CONFIG_END |
453 | 453 | |
454 | 454 | static MACHINE_CONFIG_DERIVED( bcs3c, bcs3 ) |
r17967 | r17968 | |
459 | 459 | MCFG_SCREEN_MODIFY("screen") |
460 | 460 | MCFG_SCREEN_SIZE(29*8, 12*10) |
461 | 461 | MCFG_SCREEN_VISIBLE_AREA(0,29*8-1,0,12*10-1) |
462 | MCFG_SCREEN_UPDATE_ | |
462 | MCFG_SCREEN_UPDATE_DR | |
463 | 463 | MACHINE_CONFIG_END |
464 | 464 | |
465 | 465 | /* ROM definition */ |
r17967 | r17968 | |
---|---|---|
94 | 94 | public: |
95 | 95 | DECLARE_DRIVER_INIT(m20); |
96 | 96 | virtual void video_start(); |
97 | UINT32 screen_update_m20(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
97 | 98 | }; |
98 | 99 | |
99 | 100 | |
r17967 | r17968 | |
105 | 106 | { |
106 | 107 | } |
107 | 108 | |
108 | stat | |
109 | UINT32 m20_state::screen | |
109 | 110 | { |
110 | m20_state *state = screen.machine().driver_data<m20_state>(); | |
111 | 111 | int x,y,i; |
112 | 112 | UINT8 pen; |
113 | 113 | UINT32 count; |
r17967 | r17968 | |
122 | 122 | { |
123 | 123 | for (i = 0; i < 16; i++) |
124 | 124 | { |
125 | pen = ( | |
125 | pen = ( | |
126 | 126 | |
127 | 127 | if (screen.visible_area().contains(x + i, y)) |
128 | 128 | bitmap.pix32(y, x + i) = screen.machine().pens[pen]; |
r17967 | r17968 | |
546 | 546 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
547 | 547 | MCFG_SCREEN_SIZE(512, 256) |
548 | 548 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) |
549 | MCFG_SCREEN_UPDATE_ | |
549 | MCFG_SCREEN_UPDATE_DR | |
550 | 550 | MCFG_PALETTE_LENGTH(4) |
551 | 551 | |
552 | 552 | /* Devices */ |
r17967 | r17968 | |
---|---|---|
118 | 118 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
119 | 119 | MCFG_SCREEN_SIZE(64*8, 16*8) |
120 | 120 | MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 16*8-1) |
121 | MCFG_SCREEN_UPDATE_ | |
121 | MCFG_SCREEN_UPDATE_DR | |
122 | 122 | |
123 | 123 | MCFG_GFXDECODE( kramermc ) |
124 | 124 |
r17967 | r17968 | |
---|---|---|
719 | 719 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
720 | 720 | MCFG_SCREEN_SIZE(SPEC_SCREEN_WIDTH, SPEC_SCREEN_HEIGHT) |
721 | 721 | 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) | |
724 | 724 | |
725 | 725 | MCFG_PALETTE_LENGTH(16) |
726 | 726 | MCFG_PALETTE_INIT_OVERRIDE(spectrum_state, spectrum ) |
r17967 | r17968 | |
---|---|---|
248 | 248 | /* video hardware */ |
249 | 249 | MCFG_SCREEN_ADD("screen", RASTER) |
250 | 250 | MCFG_SCREEN_RAW_PARAMS(ASTROCADE_CLOCK, 455, 0, 352, 262, 0, 240) |
251 | MCFG_SCREEN_UPDATE_ | |
251 | MCFG_SCREEN_UPDATE_DR | |
252 | 252 | |
253 | 253 | MCFG_PALETTE_LENGTH(512) |
254 | 254 |
r17967 | r17968 | |
---|---|---|
69 | 69 | DECLARE_MACHINE_START(swyft); |
70 | 70 | DECLARE_MACHINE_RESET(swyft); |
71 | 71 | 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); | |
72 | 74 | }; |
73 | 75 | |
74 | 76 | WRITE16_MEMBER( cat_state::cat_video_status_w ) |
r17967 | r17968 | |
324 | 326 | { |
325 | 327 | } |
326 | 328 | |
327 | static | |
329 | UINT32 cat_state::screen_update_cat(screen_device &screen, bitmap_ind | |
328 | 330 | { |
329 | cat_state *state = screen.machine().driver_data<cat_state>(); | |
330 | 331 | UINT16 code; |
331 | 332 | int y, x, b; |
332 | 333 | |
333 | 334 | int addr = 0; |
334 | if ( | |
335 | if ( | |
335 | 336 | { |
336 | 337 | for (y = 0; y < 344; y++) |
337 | 338 | { |
338 | 339 | int horpos = 0; |
339 | 340 | for (x = 0; x < 42; x++) |
340 | 341 | { |
341 | code = | |
342 | code = | |
342 | 343 | for (b = 15; b >= 0; b--) |
343 | 344 | { |
344 | 345 | bitmap.pix16(y, horpos++) = (code >> b) & 0x01; |
r17967 | r17968 | |
370 | 371 | { |
371 | 372 | } |
372 | 373 | |
373 | static | |
374 | UINT32 cat_state::screen_update_swyft(screen_device &screen, bitmap_ind | |
374 | 375 | { |
375 | cat_state *state = screen.machine().driver_data<cat_state>(); | |
376 | 376 | UINT16 code; |
377 | 377 | int y, x, b; |
378 | 378 | |
r17967 | r17968 | |
382 | 382 | int horpos = 0; |
383 | 383 | for (x = 0; x < 20; x++) |
384 | 384 | { |
385 | code = | |
385 | code = | |
386 | 386 | for (b = 15; b >= 0; b--) |
387 | 387 | { |
388 | 388 | bitmap.pix16(y, horpos++) = (code >> b) & 0x01; |
r17967 | r17968 | |
440 | 440 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
441 | 441 | MCFG_SCREEN_SIZE(672, 344) |
442 | 442 | MCFG_SCREEN_VISIBLE_AREA(0, 672-1, 0, 344-1) |
443 | MCFG_SCREEN_UPDATE_ | |
443 | MCFG_SCREEN_UPDATE_DR | |
444 | 444 | |
445 | 445 | MCFG_PALETTE_LENGTH(2) |
446 | 446 | MCFG_PALETTE_INIT(black_and_white) |
r17967 | r17968 | |
467 | 467 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
468 | 468 | MCFG_SCREEN_SIZE(320, 242) |
469 | 469 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 242-1) |
470 | MCFG_SCREEN_UPDATE_ | |
470 | MCFG_SCREEN_UPDATE_DR | |
471 | 471 | |
472 | 472 | MCFG_PALETTE_LENGTH(2) |
473 | 473 | MCFG_PALETTE_INIT(black_and_white) |
r17967 | r17968 | |
---|---|---|
1615 | 1615 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
1616 | 1616 | MCFG_SCREEN_SIZE(virtual_width, virtual_height) |
1617 | 1617 | 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) | |
1620 | 1620 | |
1621 | 1621 | MCFG_CRT_ADD( "crt", tx0_crt_interface ) |
1622 | 1622 | MCFG_DEVICE_ADD("readt", TX0_READTAPE, 0) |
r17967 | r17968 | |
---|---|---|
41 | 41 | virtual void machine_start(); |
42 | 42 | virtual void machine_reset(); |
43 | 43 | virtual void video_start(); |
44 | UINT32 screen_update_myb3k(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
44 | 45 | }; |
45 | 46 | |
46 | 47 | void myb3k_state::video_start() |
47 | 48 | { |
48 | 49 | } |
49 | 50 | |
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)) | |
66 | 67 | |
67 | 68 | |
68 | stat | |
69 | UINT32 myb3k_state::screen | |
69 | 70 | { |
70 | myb3k_state *state = screen.machine().driver_data<myb3k_state>(); | |
71 | 71 | int x,y; |
72 | 72 | int xi,yi; |
73 | 73 | int dot; |
74 | 74 | int h_step; |
75 | 75 | |
76 | h_step = 64 >> ( | |
76 | h_step = 64 >> ( | |
77 | 77 | |
78 | //popmessage("%02x %d", | |
78 | //popmessage("%02x %d", | |
79 | 79 | |
80 | 80 | for(y=0;y<mc6845_v_display;y++) |
81 | 81 | { |
r17967 | r17968 | |
86 | 86 | { |
87 | 87 | for(xi=0;xi<8;xi++) |
88 | 88 | { |
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))) | |
91 | 91 | dot = 0; |
92 | 92 | |
93 | 93 | if(y*mc6845_tile_height+yi < 200 && x*8+xi < 320) /* TODO: safety check */ |
r17967 | r17968 | |
280 | 280 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
281 | 281 | MCFG_SCREEN_SIZE(320, 200) |
282 | 282 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1) |
283 | MCFG_SCREEN_UPDATE_ | |
283 | MCFG_SCREEN_UPDATE_DR | |
284 | 284 | MCFG_GFXDECODE(myb3k) |
285 | 285 | MCFG_PALETTE_LENGTH(2) |
286 | 286 | MCFG_PALETTE_INIT(black_and_white) |
r17967 | r17968 | |
---|---|---|
259 | 259 | MCFG_SCREEN_SIZE(80 * 12, 24 * 20) |
260 | 260 | MCFG_SCREEN_VISIBLE_AREA(0, 80 * 12 - 1, 0, 24 * 20 - 1) |
261 | 261 | MCFG_VIDEO_START_OVERRIDE(p2000t_state,p2000m) |
262 | MCFG_SCREEN_UPDATE_ | |
262 | MCFG_SCREEN_UPDATE_DR | |
263 | 263 | MCFG_GFXDECODE( p2000m ) |
264 | 264 | MCFG_PALETTE_LENGTH(4) |
265 | 265 | MCFG_PALETTE_INIT_OVERRIDE(p2000t_state,p2000m) |
r17967 | r17968 | |
---|---|---|
668 | 668 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
669 | 669 | MCFG_SCREEN_SIZE(320, 200) |
670 | 670 | MCFG_SCREEN_VISIBLE_AREA(0, 320 - 1, 0, 200 - 1) |
671 | MCFG_SCREEN_UPDATE_ | |
671 | MCFG_SCREEN_UPDATE_DR | |
672 | 672 | |
673 | 673 | MCFG_GFXDECODE( pet ) |
674 | 674 | MCFG_PALETTE_LENGTH(ARRAY_LENGTH(pet_palette) / 3) |
r17967 | r17968 | |
---|---|---|
1331 | 1331 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
1332 | 1332 | MCFG_SCREEN_SIZE(PCW_SCREEN_WIDTH, PCW_SCREEN_HEIGHT) |
1333 | 1333 | MCFG_SCREEN_VISIBLE_AREA(0, PCW_SCREEN_WIDTH-1, 0, PCW_SCREEN_HEIGHT-1) |
1334 | MCFG_SCREEN_UPDATE_ | |
1334 | MCFG_SCREEN_UPDATE_DR | |
1335 | 1335 | |
1336 | 1336 | MCFG_PALETTE_LENGTH(PCW_NUM_COLOURS) |
1337 | 1337 | |
r17967 | r17968 | |
1358 | 1358 | MCFG_SCREEN_REFRESH_RATE(50) |
1359 | 1359 | MCFG_SCREEN_SIZE( PCW_PRINTER_WIDTH, PCW_PRINTER_HEIGHT ) |
1360 | 1360 | MCFG_SCREEN_VISIBLE_AREA(0, PCW_PRINTER_WIDTH-1, 0, PCW_PRINTER_HEIGHT-1) |
1361 | MCFG_SCREEN_UPDATE_ | |
1361 | MCFG_SCREEN_UPDATE_DR | |
1362 | 1362 | |
1363 | 1363 | MCFG_DEFAULT_LAYOUT( layout_pcw ) |
1364 | 1364 | |
r17967 | r17968 | |
1369 | 1369 | MCFG_SCREEN_REFRESH_RATE(50) |
1370 | 1370 | MCFG_SCREEN_SIZE( PCW_PRINTER_WIDTH, PCW_PRINTER_HEIGHT ) |
1371 | 1371 | MCFG_SCREEN_VISIBLE_AREA(0, PCW_PRINTER_WIDTH-1, 0, PCW_PRINTER_HEIGHT-1) |
1372 | MCFG_SCREEN_UPDATE_ | |
1372 | MCFG_SCREEN_UPDATE_DR | |
1373 | 1373 | |
1374 | 1374 | MCFG_DEFAULT_LAYOUT( layout_pcw ) |
1375 | 1375 |
r17967 | r17968 | |
---|---|---|
386 | 386 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
387 | 387 | MCFG_SCREEN_SIZE(40*6, 28*8) |
388 | 388 | MCFG_SCREEN_VISIBLE_AREA(0, 40*6-1, 0, 28*8-1) |
389 | MCFG_SCREEN_UPDATE_ | |
389 | MCFG_SCREEN_UPDATE_DR | |
390 | 390 | |
391 | 391 | MCFG_PALETTE_LENGTH(8) |
392 | 392 |
r17967 | r17968 | |
---|---|---|
183 | 183 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
184 | 184 | MCFG_SCREEN_SIZE(256, 256) |
185 | 185 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1) |
186 | ||
186 | | |
187 | 187 | |
188 | 188 | MCFG_PALETTE_LENGTH(2) |
189 | 189 | MCFG_PALETTE_INIT(black_and_white) |
r17967 | r17968 | |
---|---|---|
95 | 95 | void fdc_intrq_w(bool state); |
96 | 96 | DECLARE_DRIVER_INIT(mirage); |
97 | 97 | virtual void video_start(); |
98 | UINT32 screen_update_mirage(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
98 | 99 | }; |
99 | 100 | |
100 | 101 | const floppy_format_type mirage_state::floppy_formats[] = { |
r17967 | r17968 | |
124 | 125 | { |
125 | 126 | } |
126 | 127 | |
127 | static | |
128 | UINT32 mirage_state::screen_update_mirage(screen_device &screen, bitmap_rgb | |
128 | 129 | { |
129 | 130 | return 0; |
130 | 131 | } |
r17967 | r17968 | |
250 | 251 | |
251 | 252 | MCFG_SCREEN_ADD("screen", RASTER) |
252 | 253 | MCFG_SCREEN_REFRESH_RATE(60) |
253 | MCFG_SCREEN_UPDATE_ | |
254 | MCFG_SCREEN_UPDATE_DR | |
254 | 255 | MCFG_SCREEN_SIZE(320, 240) |
255 | 256 | MCFG_SCREEN_VISIBLE_AREA(0, 319, 1, 239) |
256 | 257 |
r17967 | r17968 | |
---|---|---|
21 | 21 | required_shared_ptr<UINT8> m_store; |
22 | 22 | UINT8 m_store_line; |
23 | 23 | virtual void machine_reset(); |
24 | UINT32 screen_update_ssem(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
24 | 25 | }; |
25 | 26 | |
26 | 27 | |
r17967 | r17968 | |
442 | 443 | } |
443 | 444 | } |
444 | 445 | |
445 | static | |
446 | UINT32 ssem_state::screen_update_ssem(screen_device &screen, bitmap_rgb | |
446 | 447 | { |
447 | ssem_state *state = screen.machine().driver_data<ssem_state>(); | |
448 | 448 | UINT32 line = 0; |
449 | 449 | device_t *ssem_cpu = screen.machine().device("maincpu"); |
450 | 450 | UINT32 accum = ssem_cpu->state().state_int(SSEM_A); |
r17967 | r17968 | |
453 | 453 | |
454 | 454 | for(line = 0; line < 32; line++) |
455 | 455 | { |
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); | |
460 | 460 | for(bit = 0; bit < 32; bit++) |
461 | 461 | { |
462 | 462 | if(word & (1 << (31 - bit))) |
463 | 463 | { |
464 | glyph_print(screen.machine(), bitmap, bit << 3, line << 3, "%c", line == | |
464 | glyph_print(screen.machine(), bitmap, bit << 3, line << 3, "%c", line == | |
465 | 465 | } |
466 | 466 | else |
467 | 467 | { |
468 | glyph_print(screen.machine(), bitmap, bit << 3, line << 3, "%c", line == | |
468 | glyph_print(screen.machine(), bitmap, bit << 3, line << 3, "%c", line == | |
469 | 469 | } |
470 | 470 | } |
471 | 471 | } |
r17967 | r17968 | |
482 | 482 | } |
483 | 483 | } |
484 | 484 | |
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)); | |
490 | 490 | return 0; |
491 | 491 | } |
492 | 492 | |
r17967 | r17968 | |
642 | 642 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
643 | 643 | MCFG_SCREEN_SIZE(256, 280) |
644 | 644 | MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 279) |
645 | MCFG_SCREEN_UPDATE_ | |
645 | MCFG_SCREEN_UPDATE_DR | |
646 | 646 | MCFG_PALETTE_LENGTH(2) |
647 | 647 | MCFG_PALETTE_INIT(black_and_white) |
648 | 648 |
r17967 | r17968 | |
---|---|---|
172 | 172 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
173 | 173 | MCFG_SCREEN_SIZE(256+64, 256+64) |
174 | 174 | MCFG_SCREEN_VISIBLE_AREA(0, 256+64-1, 0, 256+64-1) |
175 | MCFG_SCREEN_UPDATE_ | |
175 | MCFG_SCREEN_UPDATE_DR | |
176 | 176 | MCFG_PALETTE_LENGTH(16) |
177 | 177 | |
178 | 178 | MCFG_SPEAKER_STANDARD_MONO("mono") |
r17967 | r17968 | |
---|---|---|
136 | 136 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
137 | 137 | MCFG_SCREEN_SIZE(48*8, 16*8) |
138 | 138 | MCFG_SCREEN_VISIBLE_AREA(0, 48*8-1, 0, 16*8-1) |
139 | ||
139 | | |
140 | 140 | |
141 | 141 | MCFG_GFXDECODE( galeb ) |
142 | 142 |
r17967 | r17968 | |
---|---|---|
185 | 185 | MCFG_SCREEN_REFRESH_RATE( 50.08 ) |
186 | 186 | MCFG_SCREEN_SIZE( 640, 312 ) |
187 | 187 | MCFG_SCREEN_VISIBLE_AREA( 0, 640-1, 0, 256-1 ) |
188 | MCFG_SCREEN_UPDATE_ | |
188 | MCFG_SCREEN_UPDATE_DR | |
189 | 189 | |
190 | 190 | MCFG_PALETTE_LENGTH( 16 ) |
191 | 191 |
r17967 | r17968 | |
---|---|---|
18 | 18 | } |
19 | 19 | DECLARE_DRIVER_INIT(uzebox); |
20 | 20 | virtual void machine_reset(); |
21 | UINT32 screen_update_uzebox(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
21 | 22 | }; |
22 | 23 | /****************************************************\ |
23 | 24 | * Address maps * |
r17967 | r17968 | |
43 | 44 | * Video hardware * |
44 | 45 | \****************************************************/ |
45 | 46 | |
46 | stat | |
47 | UINT32 uzebox_state::screen | |
47 | 48 | { |
48 | 49 | return 0; |
49 | 50 | } |
r17967 | r17968 | |
74 | 75 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1395)) |
75 | 76 | MCFG_SCREEN_SIZE(634, 480) |
76 | 77 | MCFG_SCREEN_VISIBLE_AREA(0, 633, 0, 479) |
77 | MCFG_SCREEN_UPDATE_ | |
78 | MCFG_SCREEN_UPDATE_DR | |
78 | 79 | |
79 | 80 | MCFG_PALETTE_LENGTH(0x1000) |
80 | 81 |
r17967 | r17968 | |
---|---|---|
19 | 19 | |
20 | 20 | virtual void machine_reset(); |
21 | 21 | virtual void video_start(); |
22 | UINT32 screen_update_vt220(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
22 | 23 | }; |
23 | 24 | |
24 | 25 | |
r17967 | r17968 | |
42 | 43 | { |
43 | 44 | } |
44 | 45 | |
45 | stat | |
46 | UINT32 vt220_state::screen | |
46 | 47 | { |
47 | 48 | return 0; |
48 | 49 | } |
r17967 | r17968 | |
61 | 62 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
62 | 63 | MCFG_SCREEN_SIZE(640, 480) |
63 | 64 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
64 | MCFG_SCREEN_UPDATE_ | |
65 | MCFG_SCREEN_UPDATE_DR | |
65 | 66 | MCFG_PALETTE_LENGTH(2) |
66 | 67 | MCFG_PALETTE_INIT(black_and_white) |
67 | 68 |
r17967 | r17968 | |
---|---|---|
216 | 216 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
217 | 217 | MCFG_SCREEN_SIZE(78*6, 30*10) |
218 | 218 | MCFG_SCREEN_VISIBLE_AREA(0, 78*6-1, 0, 30*10-1) |
219 | MCFG_SCREEN_UPDATE_ | |
219 | MCFG_SCREEN_UPDATE_DR | |
220 | 220 | |
221 | 221 | MCFG_GFXDECODE(mikrosha) |
222 | 222 | MCFG_PALETTE_LENGTH(3) |
r17967 | r17968 | |
---|---|---|
88 | 88 | virtual void machine_start(); |
89 | 89 | virtual void machine_reset(); |
90 | 90 | virtual void video_start(); |
91 | UINT32 screen_update_ti990_10(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
91 | 92 | }; |
92 | 93 | |
93 | 94 | |
r17967 | r17968 | |
153 | 154 | m_terminal = machine().device("vdt911"); |
154 | 155 | } |
155 | 156 | |
156 | stat | |
157 | UINT32 ti990_10_state::screen | |
157 | 158 | { |
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); | |
160 | 160 | return 0; |
161 | 161 | } |
162 | 162 | |
r17967 | r17968 | |
224 | 224 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
225 | 225 | MCFG_SCREEN_SIZE(560, 280) |
226 | 226 | MCFG_SCREEN_VISIBLE_AREA(0, 560-1, 0, /*250*/280-1) |
227 | MCFG_SCREEN_UPDATE_ | |
227 | MCFG_SCREEN_UPDATE_DR | |
228 | 228 | /*MCFG_SCREEN_VBLANK_STATIC(name)*/ |
229 | 229 | |
230 | 230 | MCFG_GFXDECODE(vdt911) |
r17967 | r17968 | |
---|---|---|
397 | 397 | MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) |
398 | 398 | MCFG_SCREEN_SIZE(228*4, 262) |
399 | 399 | MCFG_SCREEN_VISIBLE_AREA(214, (228*4)-1, 34, 262-1) |
400 | MCFG_SCREEN_UPDATE_ | |
400 | MCFG_SCREEN_UPDATE_DR | |
401 | 401 | |
402 | 402 | MCFG_PALETTE_LENGTH(4096) |
403 | 403 | MCFG_PALETTE_INIT_OVERRIDE(amiga_state, amiga ) |
r17967 | r17968 | |
---|---|---|
26 | 26 | |
27 | 27 | virtual void machine_reset(); |
28 | 28 | virtual void video_start(); |
29 | UINT32 screen_update_mk90(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
29 | 30 | }; |
30 | 31 | |
31 | 32 | |
r17967 | r17968 | |
56 | 57 | { |
57 | 58 | } |
58 | 59 | |
59 | static | |
60 | UINT32 mk90_state::screen_update_mk90(screen_device &screen, bitmap_ind | |
60 | 61 | { |
61 | 62 | return 0; |
62 | 63 | } |
r17967 | r17968 | |
79 | 80 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
80 | 81 | MCFG_SCREEN_SIZE(640, 480) |
81 | 82 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
82 | MCFG_SCREEN_UPDATE_ | |
83 | MCFG_SCREEN_UPDATE_DR | |
83 | 84 | MCFG_PALETTE_LENGTH(2) |
84 | 85 | MCFG_PALETTE_INIT(black_and_white) |
85 | 86 | MACHINE_CONFIG_END |
r17967 | r17968 | |
---|---|---|
142 | 142 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
143 | 143 | MCFG_SCREEN_SIZE(384, 256) |
144 | 144 | MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 256-1) |
145 | ||
145 | | |
146 | 146 | |
147 | 147 | MCFG_PALETTE_LENGTH(18) |
148 | 148 | MCFG_PALETTE_INIT_OVERRIDE(orion_state, orion128 ) |
r17967 | r17968 | |
198 | 198 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
199 | 199 | MCFG_SCREEN_SIZE(384, 256) |
200 | 200 | MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 256-1) |
201 | MCFG_SCREEN_UPDATE_ | |
201 | MCFG_SCREEN_UPDATE_DR | |
202 | 202 | |
203 | 203 | MCFG_PALETTE_LENGTH(18) |
204 | 204 | MCFG_PALETTE_INIT_OVERRIDE(orion_state, orion128 ) |
r17967 | r17968 | |
253 | 253 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
254 | 254 | MCFG_SCREEN_SIZE(384, 256) |
255 | 255 | MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 256-1) |
256 | ||
256 | | |
257 | 257 | |
258 | 258 | MCFG_PALETTE_LENGTH(18) |
259 | 259 | MCFG_PALETTE_INIT_OVERRIDE(orion_state, orion128 ) |
r17967 | r17968 | |
---|---|---|
183 | 183 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
184 | 184 | MCFG_SCREEN_SIZE(512, 256) |
185 | 185 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) |
186 | ||
186 | | |
187 | 187 | |
188 | 188 | MCFG_PALETTE_LENGTH(2) |
189 | 189 | MCFG_PALETTE_INIT(black_and_white) |
r17967 | r17968 | |
---|---|---|
163 | 163 | virtual void machine_reset(); |
164 | 164 | virtual void video_start(); |
165 | 165 | virtual void palette_init(); |
166 | UINT32 screen_update_mz2500(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
166 | 167 | }; |
167 | 168 | |
168 | 169 | |
r17967 | r17968 | |
631 | 632 | } |
632 | 633 | } |
633 | 634 | |
634 | stat | |
635 | UINT32 mz2500_state::screen | |
635 | 636 | { |
636 | //mz2500_state *state = screen.machine().driver_data<mz2500_state>(); | |
637 | 637 | bitmap.fill(screen.machine().pens[0], cliprect); //TODO: correct? |
638 | 638 | |
639 | 639 | draw_cg_screen(screen.machine(),bitmap,cliprect,0); |
640 | 640 | draw_tv_screen(screen.machine(),bitmap,cliprect); |
641 | 641 | 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]); | |
644 | 644 | |
645 | 645 | |
646 | 646 | return 0; |
r17967 | r17968 | |
2113 | 2113 | /* video hardware */ |
2114 | 2114 | MCFG_SCREEN_ADD("screen", RASTER) |
2115 | 2115 | MCFG_SCREEN_RAW_PARAMS(XTAL_21_4772MHz, 640+108, 0, 640, 480, 0, 200) //unknown clock / divider |
2116 | ||
2116 | | |
2117 | 2117 | |
2118 | 2118 | MCFG_PALETTE_LENGTH(0x200) |
2119 | 2119 |
r17967 | r17968 | |
---|---|---|
16 | 16 | : driver_device(mconfig, type, tag) { } |
17 | 17 | virtual void machine_reset(); |
18 | 18 | virtual void video_start(); |
19 | UINT32 screen_update_dct11em(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
19 | 20 | }; |
20 | 21 | |
21 | 22 | static ADDRESS_MAP_START( dct11em_mem, AS_PROGRAM, 16, dct11em_state ) |
r17967 | r17968 | |
38 | 39 | { |
39 | 40 | } |
40 | 41 | |
41 | stat | |
42 | UINT32 dct11em_state::screen | |
42 | 43 | { |
43 | 44 | return 0; |
44 | 45 | } |
r17967 | r17968 | |
61 | 62 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
62 | 63 | MCFG_SCREEN_SIZE(640, 480) |
63 | 64 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
64 | MCFG_SCREEN_UPDATE_ | |
65 | MCFG_SCREEN_UPDATE_DR | |
65 | 66 | MCFG_PALETTE_LENGTH(2) |
66 | 67 | MCFG_PALETTE_INIT(black_and_white) |
67 | 68 | MACHINE_CONFIG_END |
r17967 | r17968 | |
---|---|---|
262 | 262 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
263 | 263 | MCFG_SCREEN_SIZE(640,262) |
264 | 264 | MCFG_SCREEN_VISIBLE_AREA(0,319,25,45+204) |
265 | MCFG_SCREEN_UPDATE_ | |
265 | MCFG_SCREEN_UPDATE_DR | |
266 | 266 | |
267 | 267 | MCFG_PALETTE_LENGTH(ARRAY_LENGTH(a7800_palette)) |
268 | 268 |
r17967 | r17968 | |
---|---|---|
18 | 18 | |
19 | 19 | virtual void machine_reset(); |
20 | 20 | virtual void video_start(); |
21 | UINT32 screen_update_uknc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
21 | 22 | }; |
22 | 23 | |
23 | 24 | |
r17967 | r17968 | |
46 | 47 | { |
47 | 48 | } |
48 | 49 | |
49 | static | |
50 | UINT32 uknc_state::screen_update_uknc(screen_device &screen, bitmap_ind | |
50 | 51 | { |
51 | 52 | return 0; |
52 | 53 | } |
r17967 | r17968 | |
74 | 75 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
75 | 76 | MCFG_SCREEN_SIZE(640, 480) |
76 | 77 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
77 | MCFG_SCREEN_UPDATE_ | |
78 | MCFG_SCREEN_UPDATE_DR | |
78 | 79 | MCFG_PALETTE_LENGTH(2) |
79 | 80 | MCFG_PALETTE_INIT(black_and_white) |
80 | 81 | MACHINE_CONFIG_END |
r17967 | r17968 | |
---|---|---|
288 | 288 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
289 | 289 | MCFG_SCREEN_SIZE(48 * 8, 16 * 16) |
290 | 290 | MCFG_SCREEN_VISIBLE_AREA(0, 48 * 8 - 1, 0, 16 * 16 - 1) |
291 | MCFG_SCREEN_UPDATE_ | |
291 | MCFG_SCREEN_UPDATE_DR | |
292 | 292 | |
293 | 293 | MCFG_GFXDECODE(nascom1) |
294 | 294 | MCFG_PALETTE_LENGTH(2) |
r17967 | r17968 | |
345 | 345 | MCFG_SCREEN_MODIFY("screen") |
346 | 346 | MCFG_SCREEN_SIZE(48 * 8, 16 * 14) |
347 | 347 | MCFG_SCREEN_VISIBLE_AREA(0, 48 * 8 - 1, 0, 16 * 14 - 1) |
348 | MCFG_SCREEN_UPDATE_ | |
348 | MCFG_SCREEN_UPDATE_DR | |
349 | 349 | |
350 | 350 | MCFG_GFXDECODE(nascom2) |
351 | 351 |
r17967 | r17968 | |
---|---|---|
172 | 172 | } |
173 | 173 | } |
174 | 174 | |
175 | static | |
175 | UINT32 gmaster_state::screen_update_gmaster(screen_device &screen, bitmap_ind | |
176 | 176 | { |
177 | gmaster_state *state = screen.machine().driver_data<gmaster_state>(); | |
178 | 177 | int x,y; |
179 | 178 | // plot_box(bitmap, 0, 0, 64/*bitmap.width*/, bitmap.height, 0); //xmess rounds up to 64 pixel |
180 | for (y = 0; y < ARRAY_LENGTH( | |
179 | for (y = 0; y < ARRAY_LENGTH( | |
181 | 180 | { |
182 | for (x = 0; x < ARRAY_LENGTH( | |
181 | for (x = 0; x < ARRAY_LENGTH( | |
183 | 182 | { |
184 | UINT8 d = | |
183 | UINT8 d = | |
185 | 184 | UINT16 *line; |
186 | 185 | |
187 | 186 | line = &bitmap.pix16((y * 8), x); |
r17967 | r17968 | |
228 | 227 | MCFG_SCREEN_REFRESH_RATE(60) |
229 | 228 | MCFG_SCREEN_SIZE(64, 64) |
230 | 229 | MCFG_SCREEN_VISIBLE_AREA(0, 64-1-3, 0, 64-1) |
231 | MCFG_SCREEN_UPDATE_ | |
230 | MCFG_SCREEN_UPDATE_DR | |
232 | 231 | |
233 | 232 | MCFG_PALETTE_LENGTH(sizeof(gmaster_palette)/sizeof(gmaster_palette[0])) |
234 | 233 | MCFG_DEFAULT_LAYOUT(layout_lcd) |
r17967 | r17968 | |
---|---|---|
24 | 24 | UINT16 m_data; |
25 | 25 | virtual void machine_reset(); |
26 | 26 | virtual void video_start(); |
27 | UINT32 screen_update_terak(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
27 | 28 | }; |
28 | 29 | |
29 | 30 | READ16_MEMBER( terak_state::terak_fdc_status_r ) |
r17967 | r17968 | |
77 | 78 | { |
78 | 79 | } |
79 | 80 | |
80 | static | |
81 | UINT32 terak_state::screen_update_terak(screen_device &screen, bitmap_ind | |
81 | 82 | { |
82 | 83 | return 0; |
83 | 84 | } |
r17967 | r17968 | |
100 | 101 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
101 | 102 | MCFG_SCREEN_SIZE(640, 480) |
102 | 103 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
103 | MCFG_SCREEN_UPDATE_ | |
104 | MCFG_SCREEN_UPDATE_DR | |
104 | 105 | |
105 | 106 | MCFG_PALETTE_LENGTH(2) |
106 | 107 | MCFG_PALETTE_INIT(black_and_white) |
r17967 | r17968 | |
---|---|---|
85 | 85 | DECLARE_MACHINE_START(tk80bs); |
86 | 86 | DECLARE_MACHINE_RESET(tk80bs); |
87 | 87 | DECLARE_VIDEO_START(tk80bs); |
88 | UINT32 screen_update_tk80bs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
88 | 89 | }; |
89 | 90 | |
90 | 91 | /************************************************* TK80 ******************************************/ |
r17967 | r17968 | |
259 | 260 | { |
260 | 261 | } |
261 | 262 | |
262 | stat | |
263 | UINT32 tk80bs_state::screen | |
263 | 264 | { |
264 | tk80bs_state *state = screen.machine().driver_data<tk80bs_state>(); | |
265 | 265 | int x,y; |
266 | 266 | int count; |
267 | 267 | |
r17967 | r17968 | |
271 | 271 | { |
272 | 272 | for(x=0;x<32;x++) |
273 | 273 | { |
274 | int tile = | |
274 | int tile = | |
275 | 275 | |
276 | 276 | drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], tile, 0, 0, 0, x*8, y*8); |
277 | 277 | } |
r17967 | r17968 | |
408 | 408 | MCFG_SCREEN_SIZE(256, 128) |
409 | 409 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 128-1) |
410 | 410 | MCFG_VIDEO_START_OVERRIDE(tk80bs_state,tk80bs) |
411 | MCFG_SCREEN_UPDATE_ | |
411 | MCFG_SCREEN_UPDATE_DR | |
412 | 412 | MCFG_PALETTE_LENGTH(2) |
413 | 413 | MCFG_PALETTE_INIT(black_and_white) |
414 | 414 | MCFG_GFXDECODE(tk80bs) |
r17967 | r17968 | |
---|---|---|
228 | 228 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
229 | 229 | MCFG_SCREEN_SIZE(32*8, 16*16) |
230 | 230 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*16, 16*16-1) |
231 | MCFG_SCREEN_UPDATE_ | |
231 | MCFG_SCREEN_UPDATE_DR | |
232 | 232 | |
233 | 233 | MCFG_GFXDECODE(microtan) |
234 | 234 | MCFG_PALETTE_LENGTH(2) |
r17967 | r17968 | |
---|---|---|
183 | 183 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
184 | 184 | MCFG_SCREEN_SIZE(40*6, 24*9) |
185 | 185 | MCFG_SCREEN_VISIBLE_AREA(0, 40*6-1, 0, 24*9-1) |
186 | MCFG_SCREEN_UPDATE_ | |
186 | MCFG_SCREEN_UPDATE_DR | |
187 | 187 | |
188 | 188 | MCFG_PALETTE_LENGTH(2) |
189 | 189 | MCFG_PALETTE_INIT(black_and_white) |
r17967 | r17968 | |
218 | 218 | //MCFG_SCREEN_SIZE(80*6, 24*9) |
219 | 219 | //MCFG_SCREEN_VISIBLE_AREA(0, 80*6-1, 0, 24*9-1) |
220 | 220 | //MCFG_VIDEO_START_OVERRIDE(sapi1_state,sapizps3) |
221 | | |
221 | | |
222 | 222 | //MCFG_PALETTE_LENGTH(2) |
223 | 223 | //MCFG_PALETTE_INIT(black_and_white) |
224 | 224 |
r17967 | r17968 | |
---|---|---|
480 | 480 | VIDEO EMULATION |
481 | 481 | ***************************************************************************/ |
482 | 482 | |
483 | stat | |
483 | UINT32 einstein_state::screen | |
484 | 484 | { |
485 | einstein_state *einstein = screen.machine().driver_data<einstein_state>(); | |
486 | 485 | |
487 | if (&screen == | |
486 | if (&screen == | |
488 | 487 | { |
489 | 488 | tms9929a_device *tms9929a = screen.machine().device<tms9929a_device>( "tms9929a" ); |
490 | 489 | const rgb_t *palette = palette_entry_list_raw(bitmap.palette()); |
r17967 | r17968 | |
493 | 492 | for (int x = cliprect.min_x; x <= cliprect.max_x; x++) |
494 | 493 | bitmap.pix32(y, x) = palette[src.pix16(y, x)]; |
495 | 494 | } |
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); | |
498 | 497 | else |
499 | 498 | fatalerror("Unknown screen '%s'\n", screen.tag()); |
500 | 499 | |
r17967 | r17968 | |
842 | 841 | MCFG_SCREEN_SIZE(640, 400) |
843 | 842 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 400-1) |
844 | 843 | MCFG_SCREEN_REFRESH_RATE(50) |
845 | MCFG_SCREEN_UPDATE_ | |
844 | MCFG_SCREEN_UPDATE_DR | |
846 | 845 | MCFG_GFXDECODE(einstei2) |
847 | 846 | |
848 | 847 | /* 2 additional colors for the 80 column screen */ |
r17967 | r17968 | |
---|---|---|
101 | 101 | DECLARE_DRIVER_INIT(ti99_2_32); |
102 | 102 | virtual void machine_reset(); |
103 | 103 | virtual void palette_init(); |
104 | UINT32 screen_update_ti99_2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
104 | 105 | }; |
105 | 106 | |
106 | 107 | |
r17967 | r17968 | |
157 | 158 | } |
158 | 159 | |
159 | 160 | |
160 | stat | |
161 | UINT32 ti99_2_state::screen | |
161 | 162 | { |
162 | ti99_2_state *state = screen.machine().driver_data<ti99_2_state>(); | |
163 | UINT8 *videoram = state->m_videoram; | |
163 | UINT8 *videoram = m_videoram; | |
164 | 164 | int i, sx, sy; |
165 | 165 | |
166 | 166 | |
r17967 | r17968 | |
390 | 390 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
391 | 391 | MCFG_SCREEN_SIZE(256, 192) |
392 | 392 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 192-1) |
393 | MCFG_SCREEN_UPDATE_ | |
393 | MCFG_SCREEN_UPDATE_DR | |
394 | 394 | |
395 | 395 | MCFG_GFXDECODE(ti99_2) |
396 | 396 | MCFG_PALETTE_LENGTH(2) |
r17967 | r17968 | |
---|---|---|
148 | 148 | virtual void machine_reset(); |
149 | 149 | virtual void video_start(); |
150 | 150 | 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); | |
151 | 153 | }; |
152 | 154 | |
153 | 155 | |
r17967 | r17968 | |
484 | 486 | return 0; |
485 | 487 | } |
486 | 488 | |
487 | stat | |
489 | UINT32 vboy_state::screen | |
488 | 490 | { |
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); | |
491 | 492 | int cur_spt; |
492 | 493 | |
493 | if(!( | |
494 | if(!( | |
494 | 495 | return 0; |
495 | 496 | |
496 | 497 | cur_spt = 3; |
497 | 498 | for(int i=31; i>=0; i--) |
498 | if ( | |
499 | if ( | |
499 | 500 | |
500 | 501 | if(0) |
501 | 502 | { |
r17967 | r17968 | |
509 | 510 | UINT8 pix; |
510 | 511 | int yi; |
511 | 512 | |
512 | pen = | |
513 | pen = | |
513 | 514 | yi = ((y & 0x3)*2); |
514 | 515 | pix = (pen >> yi) & 3; |
515 | 516 | |
r17967 | r17968 | |
521 | 522 | return 0; |
522 | 523 | } |
523 | 524 | |
524 | stat | |
525 | UINT32 vboy_state::screen | |
525 | 526 | { |
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); | |
528 | 528 | int cur_spt; |
529 | 529 | |
530 | if(!( | |
530 | if(!( | |
531 | 531 | return 0; |
532 | 532 | |
533 | 533 | cur_spt = 3; |
534 | 534 | for(int i=31; i>=0; i--) |
535 | if ( | |
535 | if ( | |
536 | 536 | |
537 | 537 | return 0; |
538 | 538 | } |
r17967 | r17968 | |
1442 | 1442 | /* Left screen */ |
1443 | 1443 | MCFG_SCREEN_ADD("3dleft", RASTER) |
1444 | 1444 | MCFG_SCREEN_RAW_PARAMS(XTAL_20MHz/2,757,0,384,264,0,224) |
1445 | MCFG_SCREEN_UPDATE_ | |
1445 | MCFG_SCREEN_UPDATE_DR | |
1446 | 1446 | |
1447 | 1447 | /* Right screen */ |
1448 | 1448 | MCFG_SCREEN_ADD("3dright", RASTER) |
1449 | 1449 | MCFG_SCREEN_RAW_PARAMS(XTAL_20MHz/2,757,0,384,264,0,224) |
1450 | MCFG_SCREEN_UPDATE_ | |
1450 | MCFG_SCREEN_UPDATE_DR | |
1451 | 1451 | |
1452 | 1452 | /* cartridge */ |
1453 | 1453 | MCFG_CARTSLOT_ADD("cart") |
r17967 | r17968 | |
---|---|---|
68 | 68 | virtual void machine_reset(); |
69 | 69 | virtual void video_start(); |
70 | 70 | virtual void palette_init(); |
71 | UINT32 screen_update_multi8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
71 | 72 | }; |
72 | 73 | |
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)) | |
89 | 90 | |
90 | 91 | void multi8_state::video_start() |
91 | 92 | { |
r17967 | r17968 | |
114 | 115 | bitmap.pix16(y, x) = pen; |
115 | 116 | } |
116 | 117 | |
117 | stat | |
118 | UINT32 multi8_state::screen | |
118 | 119 | { |
119 | multi8_state *state = screen.machine().driver_data<multi8_state>(); | |
120 | 120 | int x,y,count; |
121 | 121 | UINT8 x_width; |
122 | 122 | UINT8 xi,yi; |
123 | 123 | |
124 | 124 | count = 0x0000; |
125 | 125 | |
126 | x_width = ( | |
126 | x_width = ( | |
127 | 127 | |
128 | 128 | for(y=0; y<200; y++) |
129 | 129 | { |
r17967 | r17968 | |
133 | 133 | { |
134 | 134 | int pen_r,pen_g,pen_b,color; |
135 | 135 | |
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; | |
139 | 139 | |
140 | if ( | |
140 | if ( | |
141 | 141 | { |
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; | |
145 | 145 | |
146 | 146 | color = ((pen_b) | (pen_r) | (pen_g)) ? 7 : 0; |
147 | 147 | } |
148 | 148 | else |
149 | 149 | color = (pen_b) | (pen_r << 1) | (pen_g << 2); |
150 | 150 | |
151 | multi8_draw_pixel(screen.machine(),bitmap, y, x*8+xi, | |
151 | multi8_draw_pixel(screen.machine(),bitmap, y, x*8+xi, | |
152 | 152 | } |
153 | 153 | count++; |
154 | 154 | } |
r17967 | r17968 | |
160 | 160 | { |
161 | 161 | for(x=0; x<x_width; x++) |
162 | 162 | { |
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); | |
166 | 166 | |
167 | 167 | for (yi=0; yi<8; yi++) |
168 | 168 | { |
r17967 | r17968 | |
171 | 171 | int pen; |
172 | 172 | |
173 | 173 | if(attr & 0x20) |
174 | pen = ( | |
174 | pen = ( | |
175 | 175 | else |
176 | pen = ( | |
176 | pen = ( | |
177 | 177 | |
178 | 178 | if(pen) |
179 | multi8_draw_pixel(screen.machine(),bitmap, y*mc6845_tile_height+yi, x*8+xi, pen, ( | |
179 | multi8_draw_pixel(screen.machine(),bitmap, y*mc6845_tile_height+yi, x*8+xi, pen, ( | |
180 | 180 | } |
181 | 181 | } |
182 | 182 | |
r17967 | r17968 | |
201 | 201 | for (yc=0; yc<(mc6845_tile_height-(mc6845_cursor_y_start & 7)); yc++) |
202 | 202 | { |
203 | 203 | for (xc=0; xc<8; xc++) |
204 | multi8_draw_pixel(screen.machine(),bitmap, y*mc6845_tile_height+yc, x*8+xc,0x07,( | |
204 | multi8_draw_pixel(screen.machine(),bitmap, y*mc6845_tile_height+yc, x*8+xc,0x07,( | |
205 | 205 | |
206 | 206 | } |
207 | 207 | } |
208 | 208 | } |
209 | 209 | |
210 | ( | |
210 | ( | |
211 | 211 | } |
212 | 212 | } |
213 | 213 | return 0; |
r17967 | r17968 | |
671 | 671 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
672 | 672 | MCFG_SCREEN_SIZE(640, 200) |
673 | 673 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1) |
674 | MCFG_SCREEN_UPDATE_ | |
674 | MCFG_SCREEN_UPDATE_DR | |
675 | 675 | MCFG_PALETTE_LENGTH(8) |
676 | 676 | MCFG_GFXDECODE(multi8) |
677 | 677 |
r17967 | r17968 | |
---|---|---|
43 | 43 | |
44 | 44 | virtual void machine_reset(); |
45 | 45 | virtual void video_start(); |
46 | UINT32 screen_update_p112(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
46 | 47 | }; |
47 | 48 | |
48 | 49 | |
r17967 | r17968 | |
70 | 71 | { |
71 | 72 | } |
72 | 73 | |
73 | stat | |
74 | UINT32 p112_state::screen | |
74 | 75 | { |
75 | 76 | return 0; |
76 | 77 | } |
r17967 | r17968 | |
88 | 89 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
89 | 90 | MCFG_SCREEN_SIZE(240, 320) |
90 | 91 | MCFG_SCREEN_VISIBLE_AREA(0, 240-1, 0, 320-1) |
91 | MCFG_SCREEN_UPDATE_ | |
92 | MCFG_SCREEN_UPDATE_DR | |
92 | 93 | |
93 | 94 | MCFG_PALETTE_LENGTH(2) |
94 | 95 | MCFG_PALETTE_INIT(black_and_white) |
r17967 | r17968 | |
---|---|---|
313 | 313 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
314 | 314 | MCFG_SCREEN_SIZE(728, 437) |
315 | 315 | MCFG_SCREEN_VISIBLE_AREA(0, 728-1, 0, 437-1) |
316 | MCFG_SCREEN_UPDATE_ | |
316 | MCFG_SCREEN_UPDATE_DR | |
317 | 317 | |
318 | 318 | MCFG_PALETTE_LENGTH(242 + 32768) |
319 | 319 |
r17967 | r17968 | |
---|---|---|
891 | 891 | /* video hardware */ |
892 | 892 | MCFG_SCREEN_ADD("screen", RASTER) |
893 | 893 | 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) | |
896 | 896 | |
897 | 897 | MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) |
898 | 898 | |
r17967 | r17968 | |
957 | 957 | /* video hardware */ |
958 | 958 | MCFG_SCREEN_ADD("screen", RASTER) |
959 | 959 | 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) | |
962 | 962 | |
963 | 963 | MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) |
964 | 964 | |
r17967 | r17968 | |
1015 | 1015 | /* video hardware */ |
1016 | 1016 | MCFG_SCREEN_ADD("screen", RASTER) |
1017 | 1017 | 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) | |
1020 | 1020 | |
1021 | 1021 | MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE) |
1022 | 1022 |
r17967 | r17968 | |
---|---|---|
1648 | 1648 | |
1649 | 1649 | MCFG_SCREEN_ADD("screen", RASTER) |
1650 | 1650 | MCFG_SCREEN_RAW_PARAMS(NEOGEO_PIXEL_CLOCK, NEOGEO_HTOTAL, NEOGEO_HBEND, NEOGEO_HBSTART, NEOGEO_VTOTAL, NEOGEO_VBEND, NEOGEO_VBSTART) |
1651 | MCFG_SCREEN_UPDATE_ | |
1651 | MCFG_SCREEN_UPDATE_DR | |
1652 | 1652 | |
1653 | 1653 | /* audio hardware */ |
1654 | 1654 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
r17967 | r17968 | |
---|---|---|
111 | 111 | virtual void machine_start(); |
112 | 112 | virtual void video_start(); |
113 | 113 | virtual void palette_init(); |
114 | public: | |
115 | UINT32 screen_update_bml3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
114 | 116 | }; |
115 | 117 | |
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)) | |
132 | 134 | |
133 | 135 | |
134 | 136 | void bml3_state::video_start() |
r17967 | r17968 | |
136 | 138 | m_p_chargen = memregion("chargen")->base(); |
137 | 139 | } |
138 | 140 | |
139 | static | |
141 | UINT32 bml3_state::screen_update_bml3(screen_device &screen, bitmap_ind | |
140 | 142 | { |
141 | bml3_state *state = screen.machine().driver_data<bml3_state>(); | |
142 | 143 | int x,y,count; |
143 | 144 | int xi,yi; |
144 | 145 | int width; //,height; |
145 | UINT8 *vram = | |
146 | UINT8 *vram = | |
146 | 147 | |
147 | 148 | count = 0x0000; |
148 | 149 | |
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; | |
151 | 152 | |
152 | // popmessage("%02x %02x", | |
153 | // popmessage("%02x %02x", | |
153 | 154 | |
154 | 155 | for(y=0;y<25;y++) |
155 | 156 | { |
r17967 | r17968 | |
168 | 169 | int pen; |
169 | 170 | |
170 | 171 | if(reverse) |
171 | pen = ( | |
172 | pen = ( | |
172 | 173 | else |
173 | pen = ( | |
174 | pen = ( | |
174 | 175 | |
175 | 176 | bitmap.pix16(y*mc6845_tile_height+yi, x*8+xi) = pen; |
176 | 177 | } |
r17967 | r17968 | |
899 | 900 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
900 | 901 | MCFG_SCREEN_SIZE(640, 480) |
901 | 902 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1) |
902 | MCFG_SCREEN_UPDATE_ | |
903 | MCFG_SCREEN_UPDATE_DR | |
903 | 904 | MCFG_PALETTE_LENGTH(8) |
904 | 905 | MCFG_GFXDECODE(bml3) |
905 | 906 |
r17967 | r17968 | |
---|---|---|
394 | 394 | MCFG_SCREEN_RAW_PARAMS(XTAL_53_693175MHz/10, \ |
395 | 395 | SEGA315_5124_WIDTH , SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH - 2, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256 + 10, \ |
396 | 396 | 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_ | |
397 | MCFG_SCREEN_UPDATE_DR | |
398 | 398 | |
399 | 399 | MCFG_PALETTE_LENGTH(SEGA315_5124_PALETTE_SIZE) |
400 | 400 | MCFG_PALETTE_INIT(sega315_5124) |
r17967 | r17968 | |
413 | 413 | MCFG_SCREEN_RAW_PARAMS(XTAL_53_693175MHz/10, \ |
414 | 414 | SEGA315_5124_WIDTH, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH - 2, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256 + 10, \ |
415 | 415 | 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_ | |
416 | MCFG_SCREEN_UPDATE_DR | |
417 | 417 | |
418 | 418 | MCFG_SCREEN_ADD("left_lcd", LCD) // This is needed for SegaScope Left LCD |
419 | 419 | MCFG_SCREEN_RAW_PARAMS(XTAL_53_693175MHz/10, \ |
420 | 420 | SEGA315_5124_WIDTH, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH - 2, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256 + 10, \ |
421 | 421 | 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_ | |
422 | MCFG_SCREEN_UPDATE_DR | |
423 | 423 | |
424 | 424 | MCFG_SCREEN_ADD("right_lcd", LCD) // This is needed for SegaScope Right LCD |
425 | 425 | MCFG_SCREEN_RAW_PARAMS(XTAL_53_693175MHz/10, \ |
426 | 426 | SEGA315_5124_WIDTH, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH - 2, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256 + 10, \ |
427 | 427 | 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_ | |
428 | MCFG_SCREEN_UPDATE_DR | |
429 | 429 | |
430 | 430 | MCFG_DEFAULT_LAYOUT(layout_sms1) |
431 | 431 | |
r17967 | r17968 | |
506 | 506 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK_PAL/10, \ |
507 | 507 | SEGA315_5124_WIDTH, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH - 2, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256 + 10, \ |
508 | 508 | 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_ | |
509 | MCFG_SCREEN_UPDATE_DR | |
510 | 510 | |
511 | 511 | MCFG_PALETTE_LENGTH(SEGA315_5124_PALETTE_SIZE) |
512 | 512 | MCFG_PALETTE_INIT(sega315_5124) |
r17967 | r17968 | |
525 | 525 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK_PAL/10, \ |
526 | 526 | SEGA315_5124_WIDTH, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH - 2, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256 + 10, \ |
527 | 527 | 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_ | |
528 | MCFG_SCREEN_UPDATE_DR | |
529 | 529 | |
530 | 530 | MCFG_SCREEN_ADD("left_lcd", LCD) // This is needed for SegaScope Left LCD |
531 | 531 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK_PAL/10, \ |
532 | 532 | SEGA315_5124_WIDTH, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH - 2, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256 + 10, \ |
533 | 533 | 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_ | |
534 | MCFG_SCREEN_UPDATE_DR | |
535 | 535 | |
536 | 536 | MCFG_SCREEN_ADD("right_lcd", LCD) // This is needed for SegaScope Right LCD |
537 | 537 | MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK_PAL/10, \ |
538 | 538 | SEGA315_5124_WIDTH, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH - 2, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256 + 10, \ |
539 | 539 | 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_ | |
540 | MCFG_SCREEN_UPDATE_DR | |
541 | 541 | |
542 | 542 | MCFG_PALETTE_LENGTH(SEGA315_5124_PALETTE_SIZE) |
543 | 543 | MCFG_PALETTE_INIT(sega315_5124) |
r17967 | r17968 | |
586 | 586 | MCFG_SCREEN_RAW_PARAMS(XTAL_53_693175MHz/10, \ |
587 | 587 | SEGA315_5124_WIDTH, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 6*8, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 26*8, \ |
588 | 588 | 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_ | |
589 | MCFG_SCREEN_UPDATE_DR | |
590 | 590 | |
591 | 591 | MCFG_PALETTE_LENGTH(SEGA315_5378_PALETTE_SIZE) |
592 | 592 | MCFG_PALETTE_INIT(sega315_5378) |
r17967 | r17968 | |
---|---|---|
178 | 178 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
179 | 179 | MCFG_SCREEN_SIZE(64*10, 16*15) |
180 | 180 | MCFG_SCREEN_VISIBLE_AREA(0, 64*10-1, 0, 16*15-1) |
181 | MCFG_SCREEN_UPDATE_ | |
181 | MCFG_SCREEN_UPDATE_DR | |
182 | 182 | |
183 | 183 | MCFG_GFXDECODE(poly88) |
184 | 184 | MCFG_PALETTE_LENGTH(2) |
r17967 | r17968 | |
---|---|---|
211 | 211 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
212 | 212 | MCFG_SCREEN_SIZE(64*8, 16*8) |
213 | 213 | MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 16*8-1) |
214 | MCFG_SCREEN_UPDATE_ | |
214 | MCFG_SCREEN_UPDATE_DR | |
215 | 215 | MCFG_GFXDECODE(llc1) |
216 | 216 | MCFG_PALETTE_LENGTH(2) |
217 | 217 | MCFG_PALETTE_INIT(black_and_white) |
r17967 | r17968 | |
238 | 238 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
239 | 239 | MCFG_SCREEN_SIZE(64*8, 32*8) |
240 | 240 | MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1) |
241 | MCFG_SCREEN_UPDATE_ | |
241 | MCFG_SCREEN_UPDATE_DR | |
242 | 242 | MCFG_GFXDECODE(llc2) |
243 | 243 | MCFG_PALETTE_LENGTH(2) |
244 | 244 | MCFG_PALETTE_INIT(black_and_white) |
r17967 | r17968 | |
---|---|---|
76 | 76 | bool m_keyboard_part; |
77 | 77 | virtual void machine_reset(); |
78 | 78 | virtual void video_start(); |
79 | UINT32 screen_update_z1013(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
79 | 80 | }; |
80 | 81 | |
81 | 82 | |
r17967 | r17968 | |
220 | 221 | m_p_chargen = memregion("chargen")->base(); |
221 | 222 | } |
222 | 223 | |
223 | ||
224 | ||
224 | 225 | { |
225 | z1013_state *state = screen.machine().driver_data<z1013_state>(); | |
226 | 226 | UINT8 y,ra,chr,gfx; |
227 | 227 | UINT16 sy=0,ma=0,x; |
228 | 228 | |
r17967 | r17968 | |
234 | 234 | |
235 | 235 | for (x = ma; x < ma+32; x++) |
236 | 236 | { |
237 | chr = | |
237 | chr = | |
238 | 238 | |
239 | 239 | /* get pattern of pixels for that character scanline */ |
240 | gfx = | |
240 | gfx = | |
241 | 241 | |
242 | 242 | /* Display a scanline of a character */ |
243 | 243 | *p++ = BIT(gfx, 7); |
r17967 | r17968 | |
404 | 404 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
405 | 405 | MCFG_SCREEN_SIZE(32*8, 32*8) |
406 | 406 | MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 0, 32*8-1) |
407 | MCFG_SCREEN_UPDATE_ | |
407 | MCFG_SCREEN_UPDATE_DR | |
408 | 408 | MCFG_GFXDECODE(z1013) |
409 | 409 | MCFG_PALETTE_LENGTH(2) |
410 | 410 | MCFG_PALETTE_INIT(black_and_white) |
r17967 | r17968 | |
---|---|---|
588 | 588 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
589 | 589 | MCFG_SCREEN_SIZE(64*6, 16*12) |
590 | 590 | MCFG_SCREEN_VISIBLE_AREA(0,64*6-1,0,16*12-1) |
591 | MCFG_SCREEN_UPDATE_ | |
591 | MCFG_SCREEN_UPDATE_DR | |
592 | 592 | |
593 | 593 | MCFG_GFXDECODE(trs80) |
594 | 594 | MCFG_PALETTE_LENGTH(2) |
r17967 | r17968 | |
631 | 631 | |
632 | 632 | MCFG_GFXDECODE(trs80m4) |
633 | 633 | MCFG_SCREEN_MODIFY("screen") |
634 | MCFG_SCREEN_UPDATE_ | |
634 | MCFG_SCREEN_UPDATE_DR | |
635 | 635 | MCFG_SCREEN_SIZE(80*8, 240) |
636 | 636 | MCFG_SCREEN_VISIBLE_AREA(0,80*8-1,0,239) |
637 | 637 | MACHINE_CONFIG_END |
r17967 | r17968 | |
653 | 653 | |
654 | 654 | static MACHINE_CONFIG_DERIVED( ht1080z, sys80 ) |
655 | 655 | MCFG_SCREEN_MODIFY("screen") |
656 | MCFG_SCREEN_UPDATE_ | |
656 | MCFG_SCREEN_UPDATE_DR | |
657 | 657 | MCFG_GFXDECODE(ht1080z) |
658 | 658 | MACHINE_CONFIG_END |
659 | 659 | |
r17967 | r17968 | |
669 | 669 | MCFG_SCREEN_MODIFY("screen") |
670 | 670 | MCFG_SCREEN_SIZE(80*6, 16*12) |
671 | 671 | MCFG_SCREEN_VISIBLE_AREA(0,80*6-1,0,16*12-1) |
672 | MCFG_SCREEN_UPDATE_ | |
672 | MCFG_SCREEN_UPDATE_DR | |
673 | 673 | MACHINE_CONFIG_END |
674 | 674 | |
675 | 675 | static MACHINE_CONFIG_DERIVED( radionic, model1 ) |
676 | 676 | MCFG_SCREEN_MODIFY("screen") |
677 | 677 | MCFG_SCREEN_SIZE(64*8, 16*16) |
678 | 678 | MCFG_SCREEN_VISIBLE_AREA(0,64*8-1,0,16*16-1) |
679 | MCFG_SCREEN_UPDATE_ | |
679 | MCFG_SCREEN_UPDATE_DR | |
680 | 680 | MCFG_GFXDECODE(radionic) |
681 | 681 | MACHINE_CONFIG_END |
682 | 682 | |
r17967 | r17968 | |
685 | 685 | MCFG_CPU_PROGRAM_MAP( meritum_map) |
686 | 686 | MCFG_CPU_IO_MAP( meritum_io) |
687 | 687 | MCFG_SCREEN_MODIFY("screen") |
688 | MCFG_SCREEN_UPDATE_ | |
688 | MCFG_SCREEN_UPDATE_DR | |
689 | 689 | MCFG_GFXDECODE(meritum) |
690 | 690 | MACHINE_CONFIG_END |
691 | 691 |
r17967 | r17968 | |
---|---|---|
183 | 183 | /* video hardware */ |
184 | 184 | MCFG_SCREEN_ADD("screen", RASTER) |
185 | 185 | 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_ | |
186 | MCFG_SCREEN_UPDATE_DR | |
187 | 187 | |
188 | 188 | MCFG_GFXDECODE( odyssey2 ) |
189 | 189 | MCFG_PALETTE_LENGTH(24) |
r17967 | r17968 | |
213 | 213 | /* video hardware */ |
214 | 214 | MCFG_SCREEN_ADD("screen", RASTER) |
215 | 215 | 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_ | |
216 | MCFG_SCREEN_UPDATE_DR | |
217 | 217 | |
218 | 218 | MCFG_GFXDECODE( odyssey2 ) |
219 | 219 | MCFG_PALETTE_LENGTH(24) |
r17967 | r17968 | |
242 | 242 | /* video hardware */ |
243 | 243 | MCFG_SCREEN_ADD("screen", RASTER) |
244 | 244 | MCFG_SCREEN_RAW_PARAMS( 3547000*2, 448, 96, 416, 312, 39, 289 ) /* EF9340 doubles the input clock into dot clocks internally */ |
245 | ||
245 | | |
246 | 246 | |
247 | 247 | MCFG_GFXDECODE( odyssey2 ) |
248 | 248 | MCFG_PALETTE_LENGTH(24) |
r17967 | r17968 | |
---|---|---|
271 | 271 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
272 | 272 | MCFG_SCREEN_SIZE( 256, 192 ) |
273 | 273 | MCFG_SCREEN_VISIBLE_AREA( 0, 256-1, 0, 192-1 ) |
274 | MCFG_SCREEN_UPDATE_ | |
274 | MCFG_SCREEN_UPDATE_DR | |
275 | 275 | |
276 | 276 | MCFG_PALETTE_LENGTH(2) |
277 | 277 | MCFG_PALETTE_INIT(black_and_white) |
r17967 | r17968 | |
---|---|---|
122 | 122 | DECLARE_WRITE32_MEMBER(ps_dac_w); |
123 | 123 | virtual void machine_start(); |
124 | 124 | virtual void machine_reset(); |
125 | UINT32 screen_update_pockstat(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
125 | 126 | }; |
126 | 127 | |
127 | 128 | |
r17967 | r17968 | |
925 | 926 | m_ps_flash_write_count = 0; |
926 | 927 | } |
927 | 928 | |
928 | static | |
929 | UINT32 pockstat_state::screen_update_pockstat(screen_device &screen, bitmap_rgb | |
929 | 930 | { |
930 | pockstat_state *state = screen.machine().driver_data<pockstat_state>(); | |
931 | 931 | int x = 0; |
932 | 932 | int y = 0; |
933 | 933 | for(y = 0; y < 32; y++) |
r17967 | r17968 | |
935 | 935 | UINT32 *scanline = &bitmap.pix32(y); |
936 | 936 | for(x = 0; x < 32; x++) |
937 | 937 | { |
938 | if( | |
938 | if( | |
939 | 939 | { |
940 | if( | |
940 | if( | |
941 | 941 | { |
942 | 942 | scanline[x] = 0x00000000; |
943 | 943 | } |
r17967 | r17968 | |
993 | 993 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
994 | 994 | MCFG_SCREEN_SIZE(32, 32) |
995 | 995 | MCFG_SCREEN_VISIBLE_AREA(0, 32-1, 0, 32-1) |
996 | MCFG_SCREEN_UPDATE_ | |
996 | MCFG_SCREEN_UPDATE_DR | |
997 | 997 | |
998 | 998 | MCFG_PALETTE_LENGTH(2) |
999 | 999 | MCFG_PALETTE_INIT(black_and_white) |
r17967 | r17968 | |
---|---|---|
501 | 501 | MCFG_SCREEN_VBLANK_TIME(0) |
502 | 502 | MCFG_SCREEN_SIZE(96, 64) |
503 | 503 | MCFG_SCREEN_VISIBLE_AREA(0, 96-1, 0, 64-1) |
504 | MCFG_SCREEN_UPDATE_ | |
504 | MCFG_SCREEN_UPDATE_DR | |
505 | 505 | |
506 | 506 | MCFG_PALETTE_LENGTH(224) |
507 | 507 |
r17967 | r17968 | |
---|---|---|
155 | 155 | DECLARE_DRIVER_INIT(casloopy); |
156 | 156 | virtual void machine_reset(); |
157 | 157 | virtual void video_start(); |
158 | UINT32 screen_update_casloopy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
158 | 159 | }; |
159 | 160 | |
160 | 161 | |
r17967 | r17968 | |
164 | 165 | |
165 | 166 | } |
166 | 167 | |
167 | stat | |
168 | UINT32 casloopy_state::screen | |
168 | 169 | { |
169 | 170 | return 0; |
170 | 171 | } |
r17967 | r17968 | |
207 | 208 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
208 | 209 | MCFG_SCREEN_SIZE(32*8, 32*8) |
209 | 210 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) |
210 | MCFG_SCREEN_UPDATE_ | |
211 | MCFG_SCREEN_UPDATE_DR | |
211 | 212 | |
212 | 213 | MCFG_PALETTE_LENGTH(512) |
213 | 214 |
r17967 | r17968 | |
---|---|---|
72 | 72 | required_shared_ptr<UINT8> m_videoram; |
73 | 73 | DECLARE_MACHINE_START(interact); |
74 | 74 | DECLARE_MACHINE_RESET(interact); |
75 | UINT32 screen_update_interact(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
75 | 76 | }; |
76 | 77 | |
77 | 78 | |
r17967 | r17968 | |
129 | 130 | hector_init(machine()); |
130 | 131 | } |
131 | 132 | |
132 | static | |
133 | UINT32 interact_state::screen_update_interact(screen_device &screen, bitmap_ind | |
133 | 134 | { |
134 | interact_state *state = screen.machine().driver_data<interact_state>(); | |
135 | UINT8 *videoram = state->m_videoram; | |
135 | UINT8 *videoram = m_videoram; | |
136 | 136 | screen.set_visible_area(0, 113, 0, 75); |
137 | 137 | hector_hr( screen.machine(), bitmap, videoram, 77, 32); |
138 | 138 | return 0; |
r17967 | r17968 | |
154 | 154 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
155 | 155 | MCFG_SCREEN_SIZE(256, 79) |
156 | 156 | MCFG_SCREEN_VISIBLE_AREA(0, 112, 0, 77) |
157 | MCFG_SCREEN_UPDATE_ | |
157 | MCFG_SCREEN_UPDATE_DR | |
158 | 158 | |
159 | 159 | MCFG_PALETTE_LENGTH(16) /* 8 colours, but only 4 at a time*/ |
160 | 160 | |
r17967 | r17968 | |
195 | 195 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
196 | 196 | MCFG_SCREEN_SIZE(256, 79) |
197 | 197 | MCFG_SCREEN_VISIBLE_AREA(0, 112, 0, 77) |
198 | MCFG_SCREEN_UPDATE_ | |
198 | MCFG_SCREEN_UPDATE_DR | |
199 | 199 | |
200 | 200 | MCFG_PALETTE_LENGTH(16) /* 8 colours, but only 4 at a time*/ |
201 | 201 |
r17967 | r17968 | |
---|---|---|
51 | 51 | virtual void machine_start(); |
52 | 52 | virtual void machine_reset(); |
53 | 53 | virtual void video_start(); |
54 | UINT32 screen_update_fp6000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
54 | 55 | }; |
55 | 56 | |
56 | 57 | void fp6000_state::video_start() |
57 | 58 | { |
58 | 59 | } |
59 | 60 | |
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)) | |
76 | 77 | |
77 | 78 | |
78 | stat | |
79 | UINT32 fp6000_state::screen | |
79 | 80 | { |
80 | fp6000_state *state = screen.machine().driver_data<fp6000_state>(); | |
81 | 81 | int x,y; |
82 | 82 | int xi,yi; |
83 | UINT8 *gfx_rom = | |
83 | UINT8 *gfx_rom = | |
84 | 84 | UINT32 count; |
85 | 85 | |
86 | 86 | count = 0; |
r17967 | r17968 | |
91 | 91 | { |
92 | 92 | for(xi=0;xi<4;xi++) |
93 | 93 | { |
94 | int dot = ( | |
94 | int dot = ( | |
95 | 95 | |
96 | 96 | if(y < 400 && x*4+xi < 640) /* TODO: safety check */ |
97 | 97 | bitmap.pix16(y, x*4+xi) = screen.machine().pens[dot]; |
r17967 | r17968 | |
105 | 105 | { |
106 | 106 | for(x=0;x<mc6845_h_display;x++) |
107 | 107 | { |
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; | |
110 | 110 | int pen; |
111 | 111 | |
112 | 112 | for(yi=0;yi<mc6845_tile_height;yi++) |
r17967 | r17968 | |
314 | 314 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
315 | 315 | MCFG_SCREEN_SIZE(640, 480) |
316 | 316 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
317 | MCFG_SCREEN_UPDATE_ | |
317 | MCFG_SCREEN_UPDATE_DR | |
318 | 318 | |
319 | 319 | MCFG_MC6845_ADD("crtc", H46505, 16000000/5, mc6845_intf) /* unknown clock, hand tuned to get ~60 fps */ |
320 | 320 |
r17967 | r17968 | |
---|---|---|
27 | 27 | required_shared_ptr<UINT16> m_p_videoram; |
28 | 28 | virtual void machine_reset(); |
29 | 29 | virtual void video_start(); |
30 | UINT32 screen_update_hp9k(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
30 | 31 | }; |
31 | 32 | |
32 | 33 | |
r17967 | r17968 | |
71 | 72 | { |
72 | 73 | } |
73 | 74 | |
74 | static | |
75 | UINT32 hp9k_state::screen_update_hp9k(screen_device &screen, bitmap_ind | |
75 | 76 | { |
76 | 77 | return 0; |
77 | 78 | } |
r17967 | r17968 | |
88 | 89 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
89 | 90 | MCFG_SCREEN_SIZE(640, 480) |
90 | 91 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
91 | MCFG_SCREEN_UPDATE_ | |
92 | MCFG_SCREEN_UPDATE_DR | |
92 | 93 | MCFG_GFXDECODE(hp9k) |
93 | 94 | MCFG_PALETTE_LENGTH(2) |
94 | 95 | MCFG_PALETTE_INIT(black_and_white) |
r17967 | r17968 | |
---|---|---|
49 | 49 | UINT32 m_nand_stage; |
50 | 50 | UINT32 m_nand_ptr_temp; |
51 | 51 | UINT32 m_timer; |
52 | UINT32 screen_update_gp2x(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
52 | 53 | }; |
53 | 54 | |
54 | 55 | |
r17967 | r17968 | |
140 | 141 | "YUV Source region A H", |
141 | 142 | }; |
142 | 143 | #endif |
143 | stat | |
144 | UINT32 gp2x_state::screen | |
144 | 145 | { |
145 | gp2x_state *state = screen.machine().driver_data<gp2x_state>(); | |
146 | 146 | // display enabled? |
147 | if ( | |
147 | if ( | |
148 | 148 | { |
149 | 149 | // only support RGB still image layer for now |
150 | if ( | |
150 | if ( | |
151 | 151 | { |
152 | 152 | int x, y; |
153 | UINT16 *vram = (UINT16 *)& | |
153 | UINT16 *vram = (UINT16 *)& | |
154 | 154 | |
155 | 155 | /* 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)]);*/ | |
161 | 161 | |
162 | 162 | |
163 | 163 | for (y = 0; y < 240; y++) |
r17967 | r17968 | |
362 | 362 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
363 | 363 | MCFG_SCREEN_SIZE(320, 240) |
364 | 364 | MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239) |
365 | MCFG_SCREEN_UPDATE_ | |
365 | MCFG_SCREEN_UPDATE_DR | |
366 | 366 | |
367 | 367 | MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker") |
368 | 368 | MACHINE_CONFIG_END |
r17967 | r17968 | |
---|---|---|
64 | 64 | virtual void machine_reset(); |
65 | 65 | //virtual void machine_start(); |
66 | 66 | virtual void video_start(); |
67 | UINT32 screen_update_z9001(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
67 | 68 | }; |
68 | 69 | |
69 | 70 | static ADDRESS_MAP_START(z9001_mem, AS_PROGRAM, 8, z9001_state) |
r17967 | r17968 | |
158 | 159 | m_p_chargen = memregion("chargen")->base(); |
159 | 160 | } |
160 | 161 | |
161 | stat | |
162 | UINT32 z9001_state::screen | |
162 | 163 | { |
163 | z9001_state *state = screen.machine().driver_data<z9001_state>(); | |
164 | 164 | UINT8 y,ra,chr,gfx,col,fg,bg; |
165 | 165 | UINT16 sy=0,ma=0,x; |
166 | | |
166 | | |
167 | 167 | |
168 | 168 | for(y = 0; y < 24; y++ ) |
169 | 169 | { |
r17967 | r17968 | |
173 | 173 | |
174 | 174 | for (x = ma; x < ma + 40; x++) |
175 | 175 | { |
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]; | |
179 | 179 | fg = col>>4; |
180 | 180 | bg = col&15; |
181 | 181 | |
182 | 182 | /* Check for flashing - swap bg & fg */ |
183 | if ((BIT(col, 7)) && ( | |
183 | if ((BIT(col, 7)) && ( | |
184 | 184 | { |
185 | 185 | bg = fg; |
186 | 186 | fg = col&15; |
r17967 | r17968 | |
244 | 244 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
245 | 245 | MCFG_SCREEN_SIZE(40*8, 24*8) |
246 | 246 | MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 0, 24*8-1) |
247 | MCFG_SCREEN_UPDATE_ | |
247 | MCFG_SCREEN_UPDATE_DR | |
248 | 248 | MCFG_GFXDECODE(z9001) |
249 | 249 | MCFG_PALETTE_LENGTH(16) |
250 | 250 |
r17967 | r17968 | |
---|---|---|
109 | 109 | DECLARE_VIDEO_START(pasopia7); |
110 | 110 | DECLARE_PALETTE_INIT(p7_raster); |
111 | 111 | DECLARE_PALETTE_INIT(p7_lcd); |
112 | UINT32 screen_update_pasopia7(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
112 | 113 | }; |
113 | 114 | |
114 | 115 | #define VDP_CLOCK XTAL_3_579545MHz/4 |
r17967 | r17968 | |
304 | 305 | } |
305 | 306 | } |
306 | 307 | |
307 | stat | |
308 | UINT32 pasopia7_state::screen | |
308 | 309 | { |
309 | pasopia7_state *state = screen.machine().driver_data<pasopia7_state>(); | |
310 | 310 | int width; |
311 | 311 | |
312 | 312 | bitmap.fill(screen.machine().pens[0], cliprect); |
313 | 313 | |
314 | width = | |
314 | width = | |
315 | 315 | |
316 | if( | |
316 | if( | |
317 | 317 | draw_mixed_screen(screen.machine(),bitmap,cliprect,width); |
318 | 318 | else |
319 | 319 | { |
r17967 | r17968 | |
1042 | 1042 | MCFG_SCREEN_SIZE(640, 480) |
1043 | 1043 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 32-1) |
1044 | 1044 | MCFG_VIDEO_START_OVERRIDE(pasopia7_state,pasopia7) |
1045 | MCFG_SCREEN_UPDATE_ | |
1045 | MCFG_SCREEN_UPDATE_DR | |
1046 | 1046 | MCFG_PALETTE_LENGTH(8) |
1047 | 1047 | MCFG_PALETTE_INIT_OVERRIDE(pasopia7_state,p7_raster) |
1048 | 1048 | MCFG_GFXDECODE( pasopia7 ) |
r17967 | r17968 | |
1058 | 1058 | MCFG_SCREEN_SIZE(640, 480) |
1059 | 1059 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1) |
1060 | 1060 | MCFG_VIDEO_START_OVERRIDE(pasopia7_state,pasopia7) |
1061 | MCFG_SCREEN_UPDATE_ | |
1061 | MCFG_SCREEN_UPDATE_DR | |
1062 | 1062 | MCFG_PALETTE_LENGTH(8) |
1063 | 1063 | MCFG_PALETTE_INIT_OVERRIDE(pasopia7_state,p7_lcd) |
1064 | 1064 | MCFG_GFXDECODE( pasopia7 ) |
r17967 | r17968 | |
---|---|---|
196 | 196 | /* video hardware */ |
197 | 197 | MCFG_SCREEN_SIZE(384, 212) |
198 | 198 | MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 208-1) |
199 | MCFG_SCREEN_UPDATE_ | |
199 | MCFG_SCREEN_UPDATE_DR | |
200 | 200 | |
201 | 201 | MCFG_GFXDECODE(galaxy) |
202 | 202 | MCFG_PALETTE_LENGTH(2) |
r17967 | r17968 | |
232 | 232 | /* video hardware */ |
233 | 233 | MCFG_SCREEN_SIZE(384, 208) |
234 | 234 | MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 208-1) |
235 | MCFG_SCREEN_UPDATE_ | |
235 | MCFG_SCREEN_UPDATE_DR | |
236 | 236 | |
237 | 237 | MCFG_PALETTE_LENGTH(2) |
238 | 238 | MCFG_PALETTE_INIT( black_and_white ) |
r17967 | r17968 | |
---|---|---|
85 | 85 | MCFG_SCREEN_REFRESH_RATE( 60 ) |
86 | 86 | MCFG_SCREEN_SIZE( 75, 64 ) |
87 | 87 | MCFG_SCREEN_VISIBLE_AREA( 0, 74, 0, 63 ) |
88 | MCFG_SCREEN_UPDATE_ | |
88 | MCFG_SCREEN_UPDATE_DR | |
89 | 89 | |
90 | 90 | MCFG_DEFAULT_LAYOUT(layout_lcd) |
91 | 91 |
r17967 | r17968 | |
---|---|---|
44 | 44 | virtual void machine_reset(); |
45 | 45 | virtual void video_start(); |
46 | 46 | virtual void palette_init(); |
47 | UINT32 screen_update_sm1800(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
47 | 48 | }; |
48 | 49 | |
49 | 50 | static ADDRESS_MAP_START(sm1800_mem, AS_PROGRAM, 8, sm1800_state) |
r17967 | r17968 | |
83 | 84 | |
84 | 85 | } |
85 | 86 | |
86 | stat | |
87 | UINT32 sm1800_state::screen | |
87 | 88 | { |
88 | 89 | device_t *devconf = screen.machine().device("i8275"); |
89 | sm1800_state *state = screen.machine().driver_data<sm1800_state>(); | |
90 | 90 | i8275_update( devconf, bitmap, cliprect); |
91 | copybitmap(bitmap, | |
91 | copybitmap(bitmap, | |
92 | 92 | return 0; |
93 | 93 | } |
94 | 94 | |
r17967 | r17968 | |
198 | 198 | MCFG_SCREEN_SIZE(640, 480) |
199 | 199 | MCFG_GFXDECODE(sm1800) |
200 | 200 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
201 | MCFG_SCREEN_UPDATE_ | |
201 | MCFG_SCREEN_UPDATE_DR | |
202 | 202 | MCFG_PALETTE_LENGTH(3) |
203 | 203 | |
204 | 204 | /* Devices */ |
r17967 | r17968 | |
---|---|---|
2053 | 2053 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
2054 | 2054 | MCFG_SCREEN_SIZE(640, 200) |
2055 | 2055 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1) |
2056 | MCFG_SCREEN_UPDATE_ | |
2056 | MCFG_SCREEN_UPDATE_DR | |
2057 | 2057 | |
2058 | 2058 | MCFG_PALETTE_LENGTH(8) |
2059 | 2059 | |
r17967 | r17968 | |
2095 | 2095 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
2096 | 2096 | MCFG_SCREEN_SIZE(640, 200) |
2097 | 2097 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1) |
2098 | MCFG_SCREEN_UPDATE_ | |
2098 | MCFG_SCREEN_UPDATE_DR | |
2099 | 2099 | |
2100 | 2100 | MCFG_PALETTE_LENGTH(8) |
2101 | 2101 | |
r17967 | r17968 | |
2137 | 2137 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
2138 | 2138 | MCFG_SCREEN_SIZE(640, 200) |
2139 | 2139 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1) |
2140 | MCFG_SCREEN_UPDATE_ | |
2140 | MCFG_SCREEN_UPDATE_DR | |
2141 | 2141 | |
2142 | 2142 | MCFG_PALETTE_LENGTH(8 + 4096) |
2143 | 2143 | |
r17967 | r17968 | |
2184 | 2184 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
2185 | 2185 | MCFG_SCREEN_SIZE(640, 200) |
2186 | 2186 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1) |
2187 | MCFG_SCREEN_UPDATE_ | |
2187 | MCFG_SCREEN_UPDATE_DR | |
2188 | 2188 | |
2189 | 2189 | MCFG_PALETTE_LENGTH(8) |
2190 | 2190 | |
r17967 | r17968 | |
2225 | 2225 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
2226 | 2226 | MCFG_SCREEN_SIZE(640, 200) |
2227 | 2227 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1) |
2228 | MCFG_SCREEN_UPDATE_ | |
2228 | MCFG_SCREEN_UPDATE_DR | |
2229 | 2229 | |
2230 | 2230 | MCFG_PALETTE_LENGTH(8) |
2231 | 2231 |
r17967 | r17968 | |
---|---|---|
82 | 82 | palette_set_color(machine(), 2, MAKE_RGB(0x00, 0xff, 0x00)); // highlight |
83 | 83 | } |
84 | 84 | |
85 | stat | |
85 | UINT32 compis_state::screen | |
86 | 86 | { |
87 | compis_state *state = screen.machine().driver_data<compis_state>(); | |
88 | 87 | UINT8 *m_p_chargen; |
89 | m_p_chargen = | |
88 | m_p_chargen = | |
90 | 89 | if (m_p_chargen[0x214] != 0x08) m_p_chargen+= 0x10; //bios1 |
91 | 90 | UINT8 y,ra,chr,gfx; |
92 | 91 | UINT16 sy=0,ma=0,x; |
r17967 | r17968 | |
99 | 98 | |
100 | 99 | for (x = ma; x < ma + 240; x+=3) |
101 | 100 | { |
102 | chr = | |
101 | chr = | |
103 | 102 | |
104 | 103 | if (chr < 0x20) |
105 | 104 | gfx = 0; |
r17967 | r17968 | |
414 | 413 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
415 | 414 | MCFG_SCREEN_SIZE(640, 400) |
416 | 415 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 400-1) |
417 | MCFG_SCREEN_UPDATE_ | |
416 | MCFG_SCREEN_UPDATE_DR | |
418 | 417 | MCFG_PALETTE_LENGTH(3) |
419 | 418 | |
420 | 419 | /* Devices */ |
r17967 | r17968 | |
---|---|---|
440 | 440 | MCFG_SCREEN_VBLANK_TIME(0) |
441 | 441 | MCFG_SCREEN_SIZE(88*8, 24*8+32) |
442 | 442 | MCFG_SCREEN_VISIBLE_AREA(0*8, 88*8-1, 0*8, 24*8+32-1) |
443 | MCFG_SCREEN_UPDATE_ | |
443 | MCFG_SCREEN_UPDATE_DR | |
444 | 444 | |
445 | 445 | MCFG_GFXDECODE( vtech2 ) |
446 | 446 | MCFG_PALETTE_LENGTH(528) |
r17967 | r17968 | |
---|---|---|
42 | 42 | virtual void machine_start(); |
43 | 43 | virtual void machine_reset(); |
44 | 44 | virtual void video_start(); |
45 | UINT32 screen_update_jr100(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
45 | 46 | }; |
46 | 47 | |
47 | 48 | |
r17967 | r17968 | |
173 | 174 | { |
174 | 175 | } |
175 | 176 | |
176 | stat | |
177 | UINT32 jr100_state::screen | |
177 | 178 | { |
178 | jr100_state *state = screen.machine().driver_data<jr100_state>(); | |
179 | 179 | int x,y,xi,yi; |
180 | 180 | |
181 | UINT8 *rom_pcg = | |
181 | UINT8 *rom_pcg = | |
182 | 182 | for (y = 0; y < 24; y++) |
183 | 183 | { |
184 | 184 | for (x = 0; x < 32; x++) |
185 | 185 | { |
186 | UINT8 tile = | |
186 | UINT8 tile = | |
187 | 187 | UINT8 attr = tile >> 7; |
188 | 188 | // ATTR is inverted for normal char or use PCG in case of CMODE1 |
189 | 189 | 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; | |
192 | 192 | attr = 0; // clear attr so bellow code stay same |
193 | 193 | } |
194 | 194 | tile &= 0x7f; |
r17967 | r17968 | |
365 | 365 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
366 | 366 | MCFG_SCREEN_SIZE(256, 192) /* border size not accurate */ |
367 | 367 | MCFG_SCREEN_VISIBLE_AREA(0, 256 - 1, 0, 192 - 1) |
368 | ||
368 | | |
369 | 369 | |
370 | 370 | MCFG_GFXDECODE(jr100) |
371 | 371 | MCFG_PALETTE_LENGTH(2) |
r17967 | r17968 | |
---|---|---|
20 | 20 | |
21 | 21 | virtual void machine_reset(); |
22 | 22 | virtual void video_start(); |
23 | UINT32 screen_update_a7150(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
23 | 24 | }; |
24 | 25 | |
25 | 26 | |
r17967 | r17968 | |
42 | 43 | { |
43 | 44 | } |
44 | 45 | |
45 | stat | |
46 | UINT32 a7150_state::screen | |
46 | 47 | { |
47 | 48 | return 0; |
48 | 49 | } |
r17967 | r17968 | |
59 | 60 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
60 | 61 | MCFG_SCREEN_SIZE(640, 480) |
61 | 62 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
62 | MCFG_SCREEN_UPDATE_ | |
63 | MCFG_SCREEN_UPDATE_DR | |
63 | 64 | |
64 | 65 | MCFG_PALETTE_LENGTH(2) |
65 | 66 | MCFG_PALETTE_INIT(black_and_white) |
r17967 | r17968 | |
---|---|---|
393 | 393 | MCFG_SCREEN_UPDATE_DRIVER(zx_state, screen_update) |
394 | 394 | MCFG_SCREEN_SIZE(ZX81_PIXELS_PER_SCANLINE, ZX81_PAL_SCANLINES) |
395 | 395 | MCFG_SCREEN_VISIBLE_AREA(0, ZX81_PIXELS_PER_SCANLINE-1, 0, ZX81_PAL_SCANLINES-1) |
396 | MCFG_SCREEN_VBLANK_ | |
396 | MCFG_SCREEN_VBLANK_DR | |
397 | 397 | |
398 | 398 | MCFG_GFXDECODE(zx80) |
399 | 399 | MCFG_PALETTE_LENGTH(4) |
r17967 | r17968 | |
---|---|---|
301 | 301 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
302 | 302 | MCFG_SCREEN_SIZE(512*2, 312) |
303 | 303 | MCFG_SCREEN_VISIBLE_AREA((129-8-8)*2, (449+8-1+8)*2, 44-8, 300+8-1) |
304 | MCFG_SCREEN_UPDATE_ | |
304 | MCFG_SCREEN_UPDATE_DR | |
305 | 305 | |
306 | 306 | MCFG_VIDEO_START_OVERRIDE(ami1200_state,amiga_aga) |
307 | 307 |
r17967 | r17968 | |
---|---|---|
243 | 243 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
244 | 244 | MCFG_SCREEN_SIZE(704, 262) // 640+32+32 for the borders |
245 | 245 | MCFG_SCREEN_VISIBLE_AREA(0,703,0,230) |
246 | MCFG_SCREEN_UPDATE_ | |
246 | MCFG_SCREEN_UPDATE_DR | |
247 | 247 | |
248 | 248 | MCFG_PALETTE_LENGTH( 16+256 ) |
249 | 249 | MCFG_GFXDECODE( apple2gs ) |
r17967 | r17968 | |
---|---|---|
19 | 19 | |
20 | 20 | virtual void machine_reset(); |
21 | 21 | virtual void video_start(); |
22 | UINT32 screen_update_vt320(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
22 | 23 | }; |
23 | 24 | |
24 | 25 | /* |
r17967 | r17968 | |
68 | 69 | { |
69 | 70 | } |
70 | 71 | |
71 | stat | |
72 | UINT32 vt320_state::screen | |
72 | 73 | { |
73 | 74 | return 0; |
74 | 75 | } |
r17967 | r17968 | |
87 | 88 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
88 | 89 | MCFG_SCREEN_SIZE(640, 480) |
89 | 90 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
90 | MCFG_SCREEN_UPDATE_ | |
91 | MCFG_SCREEN_UPDATE_DR | |
91 | 92 | MCFG_PALETTE_LENGTH(2) |
92 | 93 | MCFG_PALETTE_INIT(black_and_white) |
93 | 94 |
r17967 | r17968 | |
---|---|---|
99 | 99 | virtual void machine_start(); |
100 | 100 | virtual void machine_reset(); |
101 | 101 | virtual void palette_init(); |
102 | UINT32 screen_update_pv1000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
102 | 103 | }; |
103 | 104 | |
104 | 105 | |
r17967 | r17968 | |
265 | 266 | } |
266 | 267 | |
267 | 268 | |
268 | stat | |
269 | UINT32 pv1000_state::screen | |
269 | 270 | { |
270 | pv1000_state *state = screen.machine().driver_data<pv1000_state>(); | |
271 | 271 | int x, y; |
272 | 272 | |
273 | 273 | for ( y = 0; y < 24; y++ ) |
274 | 274 | { |
275 | 275 | for ( x = 0; x < 32; x++ ) |
276 | 276 | { |
277 | UINT16 tile = | |
277 | UINT16 tile = | |
278 | 278 | |
279 | 279 | if ( tile < 0xe0 ) |
280 | 280 | { |
281 | tile += ( | |
281 | tile += ( | |
282 | 282 | drawgfx_opaque( bitmap, cliprect, screen.machine().gfx[0], tile, 0, 0, 0, x*8, y*8 ); |
283 | 283 | } |
284 | 284 | else |
r17967 | r17968 | |
418 | 418 | /* D65010G031 - Video & sound chip */ |
419 | 419 | MCFG_SCREEN_ADD( "screen", RASTER ) |
420 | 420 | MCFG_SCREEN_RAW_PARAMS( 17897725/3, 380, 0, 256, 262, 0, 192 ) |
421 | MCFG_SCREEN_UPDATE_ | |
421 | MCFG_SCREEN_UPDATE_DR | |
422 | 422 | |
423 | 423 | MCFG_PALETTE_LENGTH( 8 ) |
424 | 424 | MCFG_GFXDECODE( pv1000 ) |
r17967 | r17968 | |
---|---|---|
18 | 18 | |
19 | 19 | virtual void machine_reset(); |
20 | 20 | virtual void video_start(); |
21 | UINT32 screen_update_dms5000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
21 | 22 | }; |
22 | 23 | |
23 | 24 | |
r17967 | r17968 | |
44 | 45 | { |
45 | 46 | } |
46 | 47 | |
47 | stat | |
48 | UINT32 dms5000_state::screen | |
48 | 49 | { |
49 | 50 | return 0; |
50 | 51 | } |
r17967 | r17968 | |
62 | 63 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
63 | 64 | MCFG_SCREEN_SIZE(640, 480) |
64 | 65 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
65 | MCFG_SCREEN_UPDATE_ | |
66 | MCFG_SCREEN_UPDATE_DR | |
66 | 67 | MCFG_PALETTE_LENGTH(2) |
67 | 68 | MCFG_PALETTE_INIT(black_and_white) |
68 | 69 | MACHINE_CONFIG_END |
r17967 | r17968 | |
---|---|---|
1606 | 1606 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
1607 | 1607 | MCFG_SCREEN_SIZE(480, 64) |
1608 | 1608 | MCFG_SCREEN_VISIBLE_AREA(0, 480-1, 0, 64-1) |
1609 | MCFG_SCREEN_UPDATE_ | |
1609 | MCFG_SCREEN_UPDATE_DR | |
1610 | 1610 | |
1611 | 1611 | MCFG_PALETTE_LENGTH(NC_NUM_COLOURS) |
1612 | 1612 | MCFG_DEFAULT_LAYOUT(layout_lcd) |
r17967 | r17968 | |
---|---|---|
886 | 886 | MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) |
887 | 887 | MCFG_SCREEN_SIZE(MAC_H_TOTAL, MAC_V_TOTAL) |
888 | 888 | MCFG_SCREEN_VISIBLE_AREA(0, MAC_H_VIS-1, 0, MAC_V_VIS-1) |
889 | MCFG_SCREEN_UPDATE_ | |
889 | MCFG_SCREEN_UPDATE_DR | |
890 | 890 | |
891 | 891 | MCFG_PALETTE_LENGTH(2) |
892 | 892 | MCFG_PALETTE_INIT_OVERRIDE(mac_state,mac) |
r17967 | r17968 | |
969 | 969 | MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) |
970 | 970 | MCFG_SCREEN_SIZE(700, 480) |
971 | 971 | MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 399) |
972 | MCFG_SCREEN_UPDATE_ | |
972 | MCFG_SCREEN_UPDATE_DR | |
973 | 973 | |
974 | 974 | MCFG_PALETTE_LENGTH(2) |
975 | 975 | MCFG_PALETTE_INIT_OVERRIDE(mac_state,mac) |
r17967 | r17968 | |
1121 | 1121 | MCFG_SCREEN_RAW_PARAMS(25175000, 800, 0, 640, 525, 0, 480) |
1122 | 1122 | MCFG_SCREEN_SIZE(1024,768) |
1123 | 1123 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
1124 | MCFG_SCREEN_UPDATE_ | |
1124 | MCFG_SCREEN_UPDATE_DR | |
1125 | 1125 | |
1126 | 1126 | MCFG_RAM_MODIFY(RAM_TAG) |
1127 | 1127 | MCFG_RAM_DEFAULT_SIZE("2M") |
r17967 | r17968 | |
1170 | 1170 | MCFG_VIDEO_RESET_OVERRIDE(mac_state,macsonora) |
1171 | 1171 | |
1172 | 1172 | MCFG_SCREEN_MODIFY(MAC_SCREEN_NAME) |
1173 | MCFG_SCREEN_UPDATE_ | |
1173 | MCFG_SCREEN_UPDATE_DR | |
1174 | 1174 | |
1175 | 1175 | MCFG_RAM_MODIFY(RAM_TAG) |
1176 | 1176 | MCFG_RAM_DEFAULT_SIZE("4M") |
r17967 | r17968 | |
1199 | 1199 | MCFG_VIDEO_RESET_OVERRIDE(mac_state,macrbv) |
1200 | 1200 | |
1201 | 1201 | MCFG_SCREEN_MODIFY(MAC_SCREEN_NAME) |
1202 | MCFG_SCREEN_UPDATE_ | |
1202 | MCFG_SCREEN_UPDATE_DR | |
1203 | 1203 | |
1204 | 1204 | MCFG_NUBUS_BUS_ADD("nubus", "maincpu", nubus_intf) |
1205 | 1205 | MCFG_NUBUS_SLOT_ADD("nubus","nbc", mac_nubus_cards, NULL, NULL) |
r17967 | r17968 | |
1223 | 1223 | MCFG_VIDEO_RESET_OVERRIDE(mac_state,macrbv) |
1224 | 1224 | |
1225 | 1225 | MCFG_SCREEN_MODIFY(MAC_SCREEN_NAME) |
1226 | MCFG_SCREEN_UPDATE_ | |
1226 | MCFG_SCREEN_UPDATE_DR | |
1227 | 1227 | |
1228 | 1228 | MCFG_NUBUS_BUS_ADD("nubus", "maincpu", nubus_intf) |
1229 | 1229 | MCFG_NUBUS_SLOT_ADD("nubus","nbc", mac_nubus_cards, NULL, NULL) |
r17967 | r17968 | |
1265 | 1265 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1260)) |
1266 | 1266 | MCFG_SCREEN_SIZE(MAC_H_TOTAL, MAC_V_TOTAL) |
1267 | 1267 | MCFG_SCREEN_VISIBLE_AREA(0, MAC_H_VIS-1, 0, MAC_V_VIS-1) |
1268 | MCFG_SCREEN_UPDATE_ | |
1268 | MCFG_SCREEN_UPDATE_DR | |
1269 | 1269 | |
1270 | 1270 | MCFG_PALETTE_LENGTH(2) |
1271 | 1271 | MCFG_PALETTE_INIT_OVERRIDE(mac_state,mac) |
r17967 | r17968 | |
1316 | 1316 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1260)) |
1317 | 1317 | MCFG_SCREEN_SIZE(700, 480) |
1318 | 1318 | MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 399) |
1319 | MCFG_SCREEN_UPDATE_ | |
1319 | MCFG_SCREEN_UPDATE_DR | |
1320 | 1320 | |
1321 | 1321 | MCFG_PALETTE_LENGTH(2) |
1322 | 1322 | MCFG_PALETTE_INIT_OVERRIDE(mac_state,mac) |
r17967 | r17968 | |
1387 | 1387 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1260)) |
1388 | 1388 | MCFG_SCREEN_SIZE(700, 480) |
1389 | 1389 | MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 399) |
1390 | MCFG_SCREEN_UPDATE_ | |
1390 | MCFG_SCREEN_UPDATE_DR | |
1391 | 1391 | |
1392 | 1392 | MCFG_PALETTE_LENGTH(16) |
1393 | 1393 | MCFG_PALETTE_INIT_OVERRIDE(mac_state,macgsc) |
r17967 | r17968 | |
1442 | 1442 | MCFG_SCREEN_MODIFY(MAC_SCREEN_NAME) |
1443 | 1443 | MCFG_SCREEN_SIZE(800, 525) |
1444 | 1444 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
1445 | MCFG_SCREEN_UPDATE_ | |
1445 | MCFG_SCREEN_UPDATE_DR | |
1446 | 1446 | |
1447 | 1447 | MCFG_RAM_MODIFY(RAM_TAG) |
1448 | 1448 | MCFG_RAM_DEFAULT_SIZE("4M") |
r17967 | r17968 | |
1469 | 1469 | MCFG_SCREEN_MODIFY(MAC_SCREEN_NAME) |
1470 | 1470 | MCFG_SCREEN_SIZE(MAC_H_TOTAL, MAC_V_TOTAL) |
1471 | 1471 | MCFG_SCREEN_VISIBLE_AREA(0, MAC_H_VIS-1, 0, MAC_V_VIS-1) |
1472 | MCFG_SCREEN_UPDATE_ | |
1472 | MCFG_SCREEN_UPDATE_DR | |
1473 | 1473 | |
1474 | 1474 | MCFG_ASC_REPLACE("asc", C15M, ASC_TYPE_EAGLE, mac_asc_irq) |
1475 | 1475 | MCFG_SOUND_ROUTE(0, "lspeaker", 1.0) |
r17967 | r17968 | |
1502 | 1502 | MCFG_SCREEN_RAW_PARAMS(25175000, 800, 0, 640, 525, 0, 480) |
1503 | 1503 | MCFG_SCREEN_SIZE(640, 870) |
1504 | 1504 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
1505 | MCFG_SCREEN_UPDATE_ | |
1505 | MCFG_SCREEN_UPDATE_DR | |
1506 | 1506 | MCFG_DEFAULT_LAYOUT(layout_mac) |
1507 | 1507 | |
1508 | 1508 | /* internal ram */ |
r17967 | r17968 | |
1534 | 1534 | MCFG_SCREEN_RAW_PARAMS(25175000, 800, 0, 640, 525, 0, 480) |
1535 | 1535 | MCFG_SCREEN_SIZE(640, 870) |
1536 | 1536 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
1537 | MCFG_SCREEN_UPDATE_ | |
1537 | MCFG_SCREEN_UPDATE_DR | |
1538 | 1538 | |
1539 | 1539 | /* internal ram */ |
1540 | 1540 | MCFG_RAM_MODIFY(RAM_TAG) |
r17967 | r17968 | |
1558 | 1558 | MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) |
1559 | 1559 | MCFG_SCREEN_SIZE(1024, 768) |
1560 | 1560 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
1561 | MCFG_SCREEN_UPDATE_ | |
1561 | MCFG_SCREEN_UPDATE_DR | |
1562 | 1562 | |
1563 | 1563 | MCFG_PALETTE_LENGTH(256) |
1564 | 1564 | |
r17967 | r17968 | |
1606 | 1606 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1260)) |
1607 | 1607 | MCFG_SCREEN_SIZE(1152, 870) |
1608 | 1608 | MCFG_SCREEN_VISIBLE_AREA(0, 1152-1, 0, 870-1) |
1609 | MCFG_SCREEN_UPDATE_ | |
1609 | MCFG_SCREEN_UPDATE_DR | |
1610 | 1610 | |
1611 | 1611 | MCFG_VIDEO_START_OVERRIDE(mac_state,macdafb) |
1612 | 1612 | MCFG_VIDEO_RESET_OVERRIDE(mac_state,macdafb) |
r17967 | r17968 | |
---|---|---|
29 | 29 | : driver_device(mconfig, type, tag) { } |
30 | 30 | |
31 | 31 | virtual void video_start(); |
32 | UINT32 screen_update_hp16500(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
32 | 33 | }; |
33 | 34 | |
34 | 35 | |
r17967 | r17968 | |
42 | 43 | { |
43 | 44 | } |
44 | 45 | |
45 | stat | |
46 | UINT32 hp16500_state::screen | |
46 | 47 | { |
47 | 48 | return 0; |
48 | 49 | } |
r17967 | r17968 | |
58 | 59 | MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK) |
59 | 60 | MCFG_SCREEN_SIZE(1024, 768) |
60 | 61 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
61 | MCFG_SCREEN_UPDATE_ | |
62 | MCFG_SCREEN_UPDATE_DR | |
62 | 63 | |
63 | 64 | MCFG_PALETTE_LENGTH(256) |
64 | 65 |
r17967 | r17968 | |
---|---|---|
134 | 134 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
135 | 135 | MCFG_SCREEN_SIZE(64*6, 16*8) |
136 | 136 | MCFG_SCREEN_VISIBLE_AREA(0, 64*6-1, 0, 16*8-1) |
137 | MCFG_SCREEN_UPDATE_ | |
137 | MCFG_SCREEN_UPDATE_DR | |
138 | 138 | |
139 | 139 | MCFG_GFXDECODE( ac1 ) |
140 | 140 | |
r17967 | r17968 | |
157 | 157 | MCFG_SCREEN_MODIFY("screen") |
158 | 158 | MCFG_SCREEN_SIZE(64*6, 32*8) |
159 | 159 | MCFG_SCREEN_VISIBLE_AREA(0, 64*6-1, 0, 32*8-1) |
160 | MCFG_SCREEN_UPDATE_ | |
160 | MCFG_SCREEN_UPDATE_DR | |
161 | 161 | MACHINE_CONFIG_END |
162 | 162 | |
163 | 163 | /* ROM definition */ |
r17967 | r17968 | |
---|---|---|
17 | 17 | : driver_device(mconfig, type, tag) { } |
18 | 18 | virtual void machine_reset(); |
19 | 19 | virtual void video_start(); |
20 | UINT32 screen_update_tim011(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
20 | 21 | }; |
21 | 22 | |
22 | 23 | |
r17967 | r17968 | |
45 | 46 | { |
46 | 47 | } |
47 | 48 | |
48 | stat | |
49 | UINT32 tim011_state::screen | |
49 | 50 | { |
50 | 51 | return 0; |
51 | 52 | } |
r17967 | r17968 | |
64 | 65 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
65 | 66 | MCFG_SCREEN_SIZE(512, 256) |
66 | 67 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) |
67 | MCFG_SCREEN_UPDATE_ | |
68 | MCFG_SCREEN_UPDATE_DR | |
68 | 69 | MCFG_PALETTE_LENGTH(4) |
69 | 70 | MCFG_PALETTE_INIT(black_and_white) |
70 | 71 | MACHINE_CONFIG_END |
r17967 | r17968 | |
---|---|---|
29 | 29 | DECLARE_READ8_MEMBER(pk8000_joy_2_r); |
30 | 30 | virtual void machine_reset(); |
31 | 31 | virtual void video_start(); |
32 | UINT32 screen_update_pk8000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
32 | 33 | }; |
33 | 34 | |
34 | 35 | |
r17967 | r17968 | |
328 | 329 | { |
329 | 330 | } |
330 | 331 | |
331 | stat | |
332 | UINT32 pk8000_state::screen | |
332 | 333 | { |
333 | 334 | return pk8000_video_update(screen, bitmap, cliprect, screen.machine().device<ram_device>(RAM_TAG)->pointer()); |
334 | 335 | } |
r17967 | r17968 | |
357 | 358 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
358 | 359 | MCFG_SCREEN_SIZE(256+32, 192+32) |
359 | 360 | MCFG_SCREEN_VISIBLE_AREA(0, 256+32-1, 0, 192+32-1) |
360 | MCFG_SCREEN_UPDATE_ | |
361 | MCFG_SCREEN_UPDATE_DR | |
361 | 362 | |
362 | 363 | MCFG_PALETTE_LENGTH(16) |
363 | 364 | MCFG_PALETTE_INIT(pk8000) |
r17967 | r17968 | |
---|---|---|
79 | 79 | virtual void machine_reset(); |
80 | 80 | virtual void video_start(); |
81 | 81 | DECLARE_DRIVER_INIT(okean240); |
82 | UINT32 screen_update_okean240(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
82 | 83 | }; |
83 | 84 | |
84 | 85 | // okean240 requires bit 4 to change |
r17967 | r17968 | |
390 | 391 | { |
391 | 392 | } |
392 | 393 | |
393 | stat | |
394 | UINT32 okean240_state::screen | |
394 | 395 | { |
395 | okean240_state *state = screen.machine().driver_data<okean240_state>(); | |
396 | 396 | UINT8 gfx,ma; // ma must be 8bit |
397 | 397 | UINT16 x,y; |
398 | 398 | |
399 | 399 | for (y = 0; y < 256; y++) |
400 | 400 | { |
401 | ma = y + | |
401 | ma = y + | |
402 | 402 | UINT16 *p = &bitmap.pix16(y); |
403 | 403 | |
404 | 404 | for (x = 0; x < 0x4000; x+=0x200) |
405 | 405 | { |
406 | gfx = | |
406 | gfx = | |
407 | 407 | |
408 | 408 | /* Display a scanline of a character */ |
409 | 409 | *p++ = BIT(gfx, 0); |
r17967 | r17968 | |
457 | 457 | MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 255) |
458 | 458 | MCFG_PALETTE_LENGTH(2) |
459 | 459 | MCFG_PALETTE_INIT(black_and_white) |
460 | MCFG_SCREEN_UPDATE_ | |
460 | MCFG_SCREEN_UPDATE_DR | |
461 | 461 | |
462 | 462 | MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf) |
463 | 463 | MACHINE_CONFIG_END |
r17967 | r17968 | |
---|---|---|
164 | 164 | DECLARE_WRITE8_MEMBER( ngp_vblank_pin_w ); |
165 | 165 | DECLARE_WRITE8_MEMBER( ngp_hblank_pin_w ); |
166 | 166 | DECLARE_WRITE8_MEMBER( ngp_tlcs900_to3 ); |
167 | UINT32 screen_update_ngp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
167 | 168 | }; |
168 | 169 | |
169 | 170 | |
r17967 | r17968 | |
622 | 623 | } |
623 | 624 | |
624 | 625 | |
625 | static | |
626 | UINT32 ngp_state::screen_update_ngp(screen_device &screen, bitmap_ind | |
626 | 627 | { |
627 | ngp_state *state = screen.machine().driver_data<ngp_state>(); | |
628 | 628 | |
629 | k1ge_update( | |
629 | k1ge_update( | |
630 | 630 | return 0; |
631 | 631 | } |
632 | 632 | |
r17967 | r17968 | |
777 | 777 | |
778 | 778 | MCFG_SCREEN_ADD( "screen", LCD ) |
779 | 779 | MCFG_SCREEN_RAW_PARAMS( XTAL_6_144MHz, 515, 0, 160 /*480*/, 199, 0, 152 ) |
780 | MCFG_SCREEN_UPDATE_ | |
780 | MCFG_SCREEN_UPDATE_DR | |
781 | 781 | |
782 | 782 | MCFG_DEFAULT_LAYOUT(layout_lcd) |
783 | 783 |
r17967 | r17968 | |
---|---|---|
468 | 468 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC((113.66/(NTSC_CLOCK/1000000)) * (PPU_VBLANK_LAST_SCANLINE_NTSC-PPU_VBLANK_FIRST_SCANLINE+1+2))) |
469 | 469 | MCFG_SCREEN_SIZE(32*8, 262) |
470 | 470 | MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1) |
471 | MCFG_SCREEN_UPDATE_ | |
471 | MCFG_SCREEN_UPDATE_DR | |
472 | 472 | |
473 | 473 | |
474 | 474 | MCFG_PALETTE_LENGTH(4*16*8) |
r17967 | r17968 | |
---|---|---|
130 | 130 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
131 | 131 | MCFG_SCREEN_SIZE(720, 560) |
132 | 132 | MCFG_SCREEN_VISIBLE_AREA(0, 720-1, 0, 560-1) |
133 | MCFG_SCREEN_UPDATE_ | |
133 | MCFG_SCREEN_UPDATE_DR | |
134 | 134 | |
135 | 135 | MCFG_PALETTE_LENGTH(2) |
136 | 136 | MCFG_PALETTE_INIT(black_and_white) |
r17967 | r17968 | |
---|---|---|
1490 | 1490 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
1491 | 1491 | MCFG_SCREEN_SIZE(PCW16_SCREEN_WIDTH, PCW16_SCREEN_HEIGHT) |
1492 | 1492 | MCFG_SCREEN_VISIBLE_AREA(0, PCW16_SCREEN_WIDTH-1, 0, PCW16_SCREEN_HEIGHT-1) |
1493 | MCFG_SCREEN_UPDATE_ | |
1493 | MCFG_SCREEN_UPDATE_DR | |
1494 | 1494 | |
1495 | 1495 | MCFG_PALETTE_LENGTH(PCW16_NUM_COLOURS) |
1496 | 1496 |
r17967 | r17968 | |
---|---|---|
61 | 61 | DECLARE_DRIVER_INIT(ti990_4); |
62 | 62 | virtual void machine_reset(); |
63 | 63 | virtual void video_start(); |
64 | UINT32 screen_update_ti990_4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
64 | 65 | }; |
65 | 66 | |
66 | 67 | |
r17967 | r17968 | |
135 | 136 | m_terminal = machine().device("vdt911"); |
136 | 137 | } |
137 | 138 | |
138 | stat | |
139 | UINT32 ti990_4_state::screen | |
139 | 140 | { |
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); | |
142 | 142 | return 0; |
143 | 143 | } |
144 | 144 | |
r17967 | r17968 | |
155 | 155 | m_terminal = machine().device("asr733"); |
156 | 156 | } |
157 | 157 | |
158 | stat | |
158 | UINT32 ti990_4_state::screen | |
159 | 159 | { |
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); | |
162 | 161 | return 0; |
163 | 162 | } |
164 | 163 | |
r17967 | r17968 | |
253 | 252 | MCFG_SCREEN_ADD("screen", RASTER) |
254 | 253 | MCFG_SCREEN_REFRESH_RATE(60) |
255 | 254 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
256 | MCFG_SCREEN_UPDATE_ | |
255 | MCFG_SCREEN_UPDATE_DR | |
257 | 256 | #if VIDEO_911 |
258 | 257 | MCFG_SCREEN_SIZE(560, 280) |
259 | 258 | MCFG_SCREEN_VISIBLE_AREA(0, 560-1, 0, /*250*/280-1) |
r17967 | r17968 | |
---|---|---|
35 | 35 | required_shared_ptr<UINT32> m_p_ram; |
36 | 36 | virtual void machine_reset(); |
37 | 37 | virtual void video_start(); |
38 | UINT32 screen_update_pv9234(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
38 | 39 | }; |
39 | 40 | |
40 | 41 | |
r17967 | r17968 | |
126 | 127 | { |
127 | 128 | } |
128 | 129 | |
129 | stat | |
130 | UINT32 pv9234_state::screen | |
130 | 131 | { |
131 | 132 | return 0; |
132 | 133 | } |
r17967 | r17968 | |
143 | 144 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
144 | 145 | MCFG_SCREEN_SIZE(640, 480) |
145 | 146 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
146 | MCFG_SCREEN_UPDATE_ | |
147 | MCFG_SCREEN_UPDATE_DR | |
147 | 148 | |
148 | 149 | MCFG_PALETTE_LENGTH(2) |
149 | 150 | MCFG_PALETTE_INIT(black_and_white) |
r17967 | r17968 | |
---|---|---|
55 | 55 | virtual void machine_start(); |
56 | 56 | virtual void machine_reset(); |
57 | 57 | virtual void video_start(); |
58 | UINT32 screen_update_paso1600(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
58 | 59 | }; |
59 | 60 | |
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)) | |
76 | 77 | |
77 | 78 | |
78 | 79 | void paso1600_state::video_start() |
r17967 | r17968 | |
81 | 82 | m_p_pcg = memregion("pcg")->base(); |
82 | 83 | } |
83 | 84 | |
84 | stat | |
85 | UINT32 paso1600_state::screen | |
85 | 86 | { |
86 | paso1600_state *state = screen.machine().driver_data<paso1600_state>(); | |
87 | 87 | int x,y; |
88 | 88 | int xi,yi; |
89 | 89 | #if 0 |
r17967 | r17968 | |
108 | 108 | { |
109 | 109 | for(xi=0;xi<16;xi++) |
110 | 110 | { |
111 | int pen = ( | |
111 | int pen = ( | |
112 | 112 | |
113 | 113 | if(y < 475 && x*16+xi < 640) /* TODO: safety check */ |
114 | 114 | bitmap.pix16(y, x*16+xi) = screen.machine().pens[pen]; |
r17967 | r17968 | |
125 | 125 | { |
126 | 126 | for(x=0;x<mc6845_h_display;x++) |
127 | 127 | { |
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; | |
130 | 130 | int pen; |
131 | 131 | |
132 | 132 | for(yi=0;yi<19;yi++) |
133 | 133 | { |
134 | 134 | for(xi=0;xi<8;xi++) |
135 | 135 | { |
136 | pen = ( | |
136 | pen = ( | |
137 | 137 | |
138 | 138 | if(yi & 0x10) |
139 | 139 | pen = -1; |
r17967 | r17968 | |
343 | 343 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
344 | 344 | MCFG_SCREEN_SIZE(640, 480) |
345 | 345 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
346 | MCFG_SCREEN_UPDATE_ | |
346 | MCFG_SCREEN_UPDATE_DR | |
347 | 347 | MCFG_GFXDECODE(paso1600) |
348 | 348 | MCFG_PALETTE_LENGTH(8) |
349 | 349 | // MCFG_PALETTE_INIT(black_and_white) |
r17967 | r17968 | |
---|---|---|
56 | 56 | double m_recv_baud_rate; |
57 | 57 | virtual void machine_start(); |
58 | 58 | virtual void machine_reset(); |
59 | UINT32 screen_update_vt100(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
59 | 60 | }; |
60 | 61 | |
61 | 62 | |
r17967 | r17968 | |
316 | 317 | PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_UNUSED) // Always return 0x7f on last scan line |
317 | 318 | INPUT_PORTS_END |
318 | 319 | |
319 | stat | |
320 | UINT32 vt100_state::screen | |
320 | 321 | { |
321 | 322 | device_t *devconf = screen.machine().device("vt100_video"); |
322 | 323 | vt_video_update( devconf, bitmap, cliprect); |
r17967 | r17968 | |
420 | 421 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
421 | 422 | MCFG_SCREEN_SIZE(80*10, 25*10) |
422 | 423 | MCFG_SCREEN_VISIBLE_AREA(0, 80*10-1, 0, 25*10-1) |
423 | MCFG_SCREEN_UPDATE_ | |
424 | MCFG_SCREEN_UPDATE_DR | |
424 | 425 | |
425 | 426 | MCFG_GFXDECODE(vt100) |
426 | 427 | MCFG_PALETTE_LENGTH(2) |
r17967 | r17968 | |
---|---|---|
890 | 890 | return MAKE_RGB(clamp16_shift8(r), clamp16_shift8(g), clamp16_shift8(b)); |
891 | 891 | } |
892 | 892 | |
893 | stat | |
893 | UINT32 cxhumax_state::screen | |
894 | 894 | { |
895 | 895 | int i, j; |
896 | 896 | |
897 | cxhumax_state *state = screen.machine().driver_data<cxhumax_state>(); | |
898 | 897 | |
899 | UINT32 osd_pointer = | |
898 | UINT32 osd_pointer = | |
900 | 899 | |
901 | 900 | if(osd_pointer) |
902 | 901 | { |
903 | UINT32 *ram = | |
902 | UINT32 *ram = | |
904 | 903 | UINT32 *osd_header = &ram[osd_pointer/4]; |
905 | 904 | UINT8 *vbuf = (UINT8*)(&ram[osd_header[3]/4]); |
906 | 905 | UINT32 *palette = &ram[osd_header[7]/4]; |
r17967 | r17968 | |
917 | 916 | UINT32 ydisp_last = (y_position_and_region_alpha >> 12) & 0x7ff; |
918 | 917 | UINT32 ydisp_start = y_position_and_region_alpha & 0x7ff; |
919 | 918 | |
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; | |
922 | 921 | |
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;*/ | |
925 | 924 | |
926 | 925 | for (j=ydisp_start; j <= ydisp_last; j++) |
927 | 926 | { |
r17967 | r17968 | |
932 | 931 | if ((i <= (xdisp_start + ximg_width)) && (j <= (ydisp_start + yimg_height))) { |
933 | 932 | bmp[i] = palette[vbuf[i+((j-ydisp_start)*ximg_width)]]; |
934 | 933 | } else { |
935 | bmp[i] = ycc_to_rgb( | |
934 | bmp[i] = ycc_to_rgb( | |
936 | 935 | } |
937 | 936 | } |
938 | 937 | } |
r17967 | r17968 | |
1076 | 1075 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
1077 | 1076 | MCFG_SCREEN_SIZE(1920, 1080) |
1078 | 1077 | MCFG_SCREEN_VISIBLE_AREA(0, 1920-1, 0, 1080-1) |
1079 | ||
1078 | | |
1080 | 1079 | |
1081 | 1080 | MCFG_PALETTE_LENGTH(2) |
1082 | 1081 | MCFG_PALETTE_INIT(black_and_white) |
r17967 | r17968 | |
---|---|---|
357 | 357 | /* video hardware */ |
358 | 358 | MCFG_SCREEN_ADD("screen", RASTER) |
359 | 359 | MCFG_SCREEN_RAW_PARAMS(XTAL_17_73447MHz/2, 568, 0, 40*8, 312, 0, 25*8) |
360 | MCFG_SCREEN_UPDATE_ | |
360 | MCFG_SCREEN_UPDATE_DR | |
361 | 361 | |
362 | 362 | MCFG_GFXDECODE(mz700) |
363 | 363 | MCFG_PALETTE_LENGTH(256*2) |
r17967 | r17968 | |
398 | 398 | MCFG_VIDEO_START_OVERRIDE(mz_state,mz800) |
399 | 399 | |
400 | 400 | MCFG_SCREEN_MODIFY("screen") |
401 | MCFG_SCREEN_UPDATE_ | |
401 | MCFG_SCREEN_UPDATE_DR | |
402 | 402 | |
403 | 403 | MCFG_SOUND_ADD("sn76489n", SN76489_NEW, XTAL_17_73447MHz/5) |
404 | 404 | MCFG_SOUND_CONFIG(psg_intf) |
r17967 | r17968 | |
---|---|---|
18 | 18 | |
19 | 19 | virtual void machine_reset(); |
20 | 20 | virtual void video_start(); |
21 | UINT32 screen_update_ehx20(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
21 | 22 | }; |
22 | 23 | |
23 | 24 | |
r17967 | r17968 | |
39 | 40 | { |
40 | 41 | } |
41 | 42 | |
42 | stat | |
43 | UINT32 hx20_state::screen | |
43 | 44 | { |
44 | 45 | return 0; |
45 | 46 | } |
r17967 | r17968 | |
102 | 103 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
103 | 104 | MCFG_SCREEN_SIZE(640, 480) |
104 | 105 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
105 | MCFG_SCREEN_UPDATE_ | |
106 | MCFG_SCREEN_UPDATE_DR | |
106 | 107 | |
107 | 108 | MCFG_GFXDECODE(hx20) |
108 | 109 | MCFG_PALETTE_LENGTH(2) |
r17967 | r17968 | |
---|---|---|
253 | 253 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) |
254 | 254 | MCFG_SCREEN_SIZE(640, 480) |
255 | 255 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
256 | MCFG_SCREEN_UPDATE_ | |
256 | MCFG_SCREEN_UPDATE_DR | |
257 | 257 | |
258 | 258 | MCFG_PALETTE_LENGTH(0x1000) |
259 | 259 |
r17967 | r17968 | |
---|---|---|
69 | 69 | DECLARE_DRIVER_INIT(pasogo); |
70 | 70 | virtual void machine_reset(); |
71 | 71 | virtual void palette_init(); |
72 | UINT32 screen_update_pasogo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
72 | 73 | }; |
73 | 74 | |
74 | 75 | |
r17967 | r17968 | |
390 | 391 | } |
391 | 392 | } |
392 | 393 | |
393 | static | |
394 | UINT32 pasogo_state::screen_update_pasogo(screen_device &screen, bitmap_ind | |
394 | 395 | { |
395 | 396 | //static int width=-1,height=-1; |
396 | 397 | UINT8 *rom = screen.machine().root_device().memregion("maincpu")->base()+0xb8000; |
r17967 | r17968 | |
441 | 442 | if (w!=width || h!=height) |
442 | 443 | { |
443 | 444 | 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); | |
445 | 446 | screen.set_visible_area(0, width-1, 0, height-1); |
446 | 447 | } |
447 | 448 | #endif |
r17967 | r17968 | |
514 | 515 | MCFG_SCREEN_REFRESH_RATE(60) |
515 | 516 | MCFG_SCREEN_SIZE(640, 400) |
516 | 517 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 400-1) |
517 | MCFG_SCREEN_UPDATE_ | |
518 | MCFG_SCREEN_UPDATE_DR | |
518 | 519 | |
519 | 520 | MCFG_PALETTE_LENGTH(ARRAY_LENGTH(pasogo_palette)) |
520 | 521 | #if 0 |
r17967 | r17968 | |
---|---|---|
156 | 156 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
157 | 157 | MCFG_SCREEN_SIZE(880, 380) |
158 | 158 | MCFG_SCREEN_VISIBLE_AREA(0, 720-1, 0, 364-1) |
159 | MCFG_SCREEN_UPDATE_ | |
159 | MCFG_SCREEN_UPDATE_DR | |
160 | 160 | |
161 | 161 | MCFG_PALETTE_LENGTH(2) |
162 | 162 | MCFG_PALETTE_INIT(black_and_white) |
r17967 | r17968 | |
---|---|---|
46 | 46 | DECLARE_DRIVER_INIT(sys2900); |
47 | 47 | virtual void machine_reset(); |
48 | 48 | virtual void video_start(); |
49 | UINT32 screen_update_sys2900(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
49 | 50 | }; |
50 | 51 | |
51 | 52 | |
r17967 | r17968 | |
90 | 91 | { |
91 | 92 | } |
92 | 93 | |
93 | stat | |
94 | UINT32 sys2900_state::screen | |
94 | 95 | { |
95 | 96 | return 0; |
96 | 97 | } |
r17967 | r17968 | |
108 | 109 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
109 | 110 | MCFG_SCREEN_SIZE(640, 480) |
110 | 111 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
111 | MCFG_SCREEN_UPDATE_ | |
112 | MCFG_SCREEN_UPDATE_DR | |
112 | 113 | |
113 | 114 | MCFG_PALETTE_LENGTH(2) |
114 | 115 | MCFG_PALETTE_INIT(black_and_white) |
r17967 | r17968 | |
---|---|---|
405 | 405 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2800)) |
406 | 406 | MCFG_SCREEN_SIZE(40 * 8, 25 * 8) |
407 | 407 | MCFG_SCREEN_VISIBLE_AREA(0, 40 * 8 - 1, 0 * 8, 25 * 8 - 1) |
408 | MCFG_SCREEN_UPDATE_ | |
408 | MCFG_SCREEN_UPDATE_DR | |
409 | 409 | |
410 | 410 | MCFG_GFXDECODE( aquarius ) |
411 | 411 | MCFG_PALETTE_LENGTH(512) |
r17967 | r17968 | |
---|---|---|
534 | 534 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
535 | 535 | MCFG_SCREEN_SIZE(48*8, 32*8) |
536 | 536 | MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1,0*8,32*8-1) |
537 | MCFG_SCREEN_UPDATE_ | |
537 | MCFG_SCREEN_UPDATE_DR | |
538 | 538 | |
539 | 539 | MCFG_GFXDECODE( cgenie ) |
540 | 540 | MCFG_PALETTE_LENGTH(108) |
r17967 | r17968 | |
---|---|---|
28 | 28 | x1twin_state(const machine_config &mconfig, device_type type, const char *tag) |
29 | 29 | : x1_state(mconfig, type, tag) |
30 | 30 | { } |
31 | UINT32 screen_update_x1pce(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
31 | 32 | }; |
32 | 33 | |
33 | 34 | |
r17967 | r17968 | |
35 | 36 | #define VDP_CLOCK XTAL_42_9545MHz |
36 | 37 | #define MCU_CLOCK XTAL_6MHz |
37 | 38 | |
38 | static | |
39 | UINT32 x1twin_state::screen_update_x1pce(screen_device &screen, bitmap_rgb | |
39 | 40 | { |
40 | 41 | return 0; |
41 | 42 | } |
r17967 | r17968 | |
547 | 548 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
548 | 549 | MCFG_SCREEN_SIZE(640, 480) |
549 | 550 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
550 | MCFG_SCREEN_UPDATE_ | |
551 | MCFG_SCREEN_UPDATE_DR | |
551 | 552 | |
552 | 553 | MCFG_SCREEN_ADD("pce_screen", RASTER) |
553 | 554 | MCFG_SCREEN_REFRESH_RATE(60) |
554 | 555 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
555 | 556 | MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK/2, VDC_WPF, 70, 70 + 512 + 32, VDC_LPF, 14, 14+242) |
556 | MCFG_SCREEN_UPDATE_ | |
557 | MCFG_SCREEN_UPDATE_DR | |
557 | 558 | |
558 | 559 | MCFG_MC6845_ADD("crtc", H46505, (VDP_CLOCK/48), mc6845_intf) //unknown divider |
559 | 560 | MCFG_PALETTE_LENGTH(0x10+0x1000) |
r17967 | r17968 | |
---|---|---|
20 | 20 | required_shared_ptr<UINT16> m_p_base; |
21 | 21 | virtual void machine_reset(); |
22 | 22 | virtual void video_start(); |
23 | UINT32 screen_update_codata(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
23 | 24 | }; |
24 | 25 | |
25 | 26 | |
r17967 | r17968 | |
49 | 50 | { |
50 | 51 | } |
51 | 52 | |
52 | static | |
53 | UINT32 codata_state::screen_update_codata(screen_device &screen, bitmap_ind | |
53 | 54 | { |
54 | 55 | return 0; |
55 | 56 | } |
r17967 | r17968 | |
66 | 67 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
67 | 68 | MCFG_SCREEN_SIZE(640, 480) |
68 | 69 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
69 | MCFG_SCREEN_UPDATE_ | |
70 | MCFG_SCREEN_UPDATE_DR | |
70 | 71 | |
71 | 72 | MCFG_PALETTE_LENGTH(2) |
72 | 73 | MCFG_PALETTE_INIT(black_and_white) |
r17967 | r17968 | |
---|---|---|
31 | 31 | virtual void machine_start(); |
32 | 32 | virtual void video_start(); |
33 | 33 | virtual void palette_init(); |
34 | UINT32 screen_update_apexc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
34 | 35 | }; |
35 | 36 | |
36 | 37 | |
r17967 | r17968 | |
591 | 592 | } |
592 | 593 | |
593 | 594 | |
594 | static | |
595 | UINT32 apexc_state::screen_update_apexc(screen_device &screen, bitmap_ind | |
595 | 596 | { |
596 | apexc_state *state = screen.machine().driver_data<apexc_state>(); | |
597 | 597 | int i; |
598 | 598 | char the_char; |
599 | 599 | |
600 | bitmap.fill(0, /*machine.visible_area*/panel_window); | |
600 | bitmap.fill(0, /*machine().visible_area*/panel_window); | |
601 | 601 | apexc_draw_string(screen.machine(), bitmap, "power", 8, 0, 0); |
602 | 602 | apexc_draw_string(screen.machine(), bitmap, "running", 8, 8, 0); |
603 | 603 | apexc_draw_string(screen.machine(), bitmap, "data :", 0, 24, 0); |
604 | 604 | |
605 | copybitmap(bitmap, * | |
605 | copybitmap(bitmap, * | |
606 | 606 | |
607 | 607 | |
608 | 608 | apexc_draw_led(bitmap, 0, 0, 1); |
r17967 | r17968 | |
611 | 611 | |
612 | 612 | for (i=0; i<32; i++) |
613 | 613 | { |
614 | apexc_draw_led(bitmap, i*8, 32, ( | |
614 | apexc_draw_led(bitmap, i*8, 32, ( | |
615 | 615 | the_char = '0' + ((i + 1) % 10); |
616 | 616 | apexc_draw_char(screen.machine(), bitmap, the_char, i*8, 40, 0); |
617 | 617 | if (((i + 1) % 10) == 0) |
r17967 | r17968 | |
879 | 879 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
880 | 880 | MCFG_SCREEN_SIZE(256, 192) |
881 | 881 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 192-1) |
882 | MCFG_SCREEN_UPDATE_ | |
882 | MCFG_SCREEN_UPDATE_DR | |
883 | 883 | |
884 | 884 | MCFG_GFXDECODE(apexc) |
885 | 885 | MCFG_PALETTE_LENGTH(APEXC_PALETTE_SIZE) |
r17967 | r17968 | |
---|---|---|
2765 | 2765 | // MCFG_GFXDECODE(x68k) |
2766 | 2766 | MCFG_SCREEN_SIZE(1096, 568) // inital setting |
2767 | 2767 | MCFG_SCREEN_VISIBLE_AREA(0, 767, 0, 511) |
2768 | MCFG_SCREEN_UPDATE_ | |
2768 | MCFG_SCREEN_UPDATE_DR | |
2769 | 2769 | |
2770 | 2770 | MCFG_PALETTE_LENGTH(65536) |
2771 | 2771 | MCFG_PALETTE_INIT_OVERRIDE(x68k_state, x68000 ) |
r17967 | r17968 | |
---|---|---|
134 | 134 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
135 | 135 | MCFG_SCREEN_SIZE(320, 256) |
136 | 136 | MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-1) |
137 | ||
137 | | |
138 | 138 | |
139 | 139 | MCFG_PALETTE_LENGTH(2) |
140 | 140 | MCFG_PALETTE_INIT(black_and_white) |
r17967 | r17968 | |
---|---|---|
252 | 252 | MCFG_SCREEN_SIZE(80*7, 24*10) |
253 | 253 | MCFG_SCREEN_VISIBLE_AREA(0,80*7-1,0,24*10-1) |
254 | 254 | MCFG_VIDEO_START_OVERRIDE(kaypro_state, kaypro ) |
255 | MCFG_SCREEN_UPDATE_ | |
255 | MCFG_SCREEN_UPDATE_DR | |
256 | 256 | MCFG_GFXDECODE(kayproii) |
257 | 257 | MCFG_PALETTE_LENGTH(2) |
258 | 258 | MCFG_PALETTE_INIT(monochrome_green) |
r17967 | r17968 | |
296 | 296 | MCFG_SCREEN_SIZE(80*8, 25*16) |
297 | 297 | MCFG_SCREEN_VISIBLE_AREA(0,80*8-1,0,25*16-1) |
298 | 298 | MCFG_VIDEO_START_OVERRIDE(kaypro_state, kaypro ) |
299 | MCFG_SCREEN_UPDATE_ | |
299 | MCFG_SCREEN_UPDATE_DR | |
300 | 300 | MCFG_GFXDECODE(kaypro2x) |
301 | 301 | MCFG_PALETTE_LENGTH(3) |
302 | 302 | MCFG_PALETTE_INIT_OVERRIDE(kaypro_state,kaypro) |
r17967 | r17968 | |
320 | 320 | |
321 | 321 | static MACHINE_CONFIG_DERIVED( omni2, kaypro4 ) |
322 | 322 | MCFG_SCREEN_MODIFY("screen") |
323 | MCFG_SCREEN_UPDATE_ | |
323 | MCFG_SCREEN_UPDATE_DR | |
324 | 324 | MACHINE_CONFIG_END |
325 | 325 | |
326 | 326 | /*********************************************************** |
r17967 | r17968 | |
---|---|---|
23 | 23 | virtual void video_start(); |
24 | 24 | DECLARE_MACHINE_RESET(a5130); |
25 | 25 | 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); | |
26 | 28 | }; |
27 | 29 | |
28 | 30 | |
r17967 | r17968 | |
62 | 64 | { |
63 | 65 | } |
64 | 66 | |
65 | stat | |
67 | UINT32 a51xx_state::screen | |
66 | 68 | { |
67 | 69 | return 0; |
68 | 70 | } |
r17967 | r17968 | |
81 | 83 | { |
82 | 84 | } |
83 | 85 | |
84 | stat | |
86 | UINT32 a51xx_state::screen | |
85 | 87 | { |
86 | 88 | return 0; |
87 | 89 | } |
r17967 | r17968 | |
117 | 119 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
118 | 120 | MCFG_SCREEN_SIZE(640, 480) |
119 | 121 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
120 | MCFG_SCREEN_UPDATE_ | |
122 | MCFG_SCREEN_UPDATE_DR | |
121 | 123 | |
122 | 124 | MCFG_GFXDECODE(a51xx) |
123 | 125 | MCFG_PALETTE_LENGTH(2) |
r17967 | r17968 | |
135 | 137 | |
136 | 138 | /* video hardware */ |
137 | 139 | MCFG_SCREEN_MODIFY("screen") |
138 | MCFG_SCREEN_UPDATE_ | |
140 | MCFG_SCREEN_UPDATE_DR | |
139 | 141 | |
140 | 142 | MCFG_VIDEO_START_OVERRIDE(a51xx_state,a5130) |
141 | 143 | MACHINE_CONFIG_END |
r17967 | r17968 | |
---|---|---|
642 | 642 | MCFG_SCREEN_ADD("screen", RASTER) |
643 | 643 | MCFG_SCREEN_REFRESH_RATE(48.8) |
644 | 644 | MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART) |
645 | MCFG_SCREEN_UPDATE_ | |
645 | MCFG_SCREEN_UPDATE_DR | |
646 | 646 | |
647 | 647 | MCFG_PALETTE_LENGTH(2) |
648 | 648 | MCFG_PALETTE_INIT(monochrome_green) |
r17967 | r17968 | |
671 | 671 | static MACHINE_CONFIG_DERIVED( super80d, super80 ) |
672 | 672 | MCFG_GFXDECODE(super80d) |
673 | 673 | MCFG_SCREEN_MODIFY("screen") |
674 | MCFG_SCREEN_UPDATE_ | |
674 | MCFG_SCREEN_UPDATE_DR | |
675 | 675 | MACHINE_CONFIG_END |
676 | 676 | |
677 | 677 | static MACHINE_CONFIG_DERIVED( super80e, super80 ) |
r17967 | r17968 | |
679 | 679 | MCFG_CPU_IO_MAP(super80e_io) |
680 | 680 | MCFG_GFXDECODE(super80e) |
681 | 681 | MCFG_SCREEN_MODIFY("screen") |
682 | MCFG_SCREEN_UPDATE_ | |
682 | MCFG_SCREEN_UPDATE_DR | |
683 | 683 | MACHINE_CONFIG_END |
684 | 684 | |
685 | 685 | static MACHINE_CONFIG_DERIVED( super80m, super80 ) |
r17967 | r17968 | |
691 | 691 | MCFG_PALETTE_INIT_OVERRIDE(super80_state,super80m) |
692 | 692 | |
693 | 693 | 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) | |
696 | 696 | MACHINE_CONFIG_END |
697 | 697 | |
698 | 698 | static MACHINE_CONFIG_START( super80v, super80_state ) |
r17967 | r17968 | |
708 | 708 | MCFG_SCREEN_REFRESH_RATE(50) |
709 | 709 | MCFG_SCREEN_SIZE(SUPER80V_SCREEN_WIDTH, SUPER80V_SCREEN_HEIGHT) |
710 | 710 | 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) | |
713 | 713 | |
714 | 714 | MCFG_PALETTE_LENGTH(16) |
715 | 715 | MCFG_PALETTE_INIT_OVERRIDE(super80_state,super80m) |
r17967 | r17968 | |
---|---|---|
279 | 279 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) |
280 | 280 | MCFG_SCREEN_SIZE(640, 525) |
281 | 281 | MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 239) |
282 | MCFG_SCREEN_UPDATE_ | |
282 | MCFG_SCREEN_UPDATE_DR | |
283 | 283 | |
284 | 284 | MCFG_PALETTE_LENGTH(0x1000) |
285 | 285 |
r17967 | r17968 | |
---|---|---|
165 | 165 | virtual void palette_init(); |
166 | 166 | DECLARE_MACHINE_START(px4_ramdisk); |
167 | 167 | DECLARE_PALETTE_INIT(px4p); |
168 | UINT32 screen_update_px4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
168 | 169 | }; |
169 | 170 | |
170 | 171 | |
r17967 | r17968 | |
1026 | 1027 | VIDEO EMULATION |
1027 | 1028 | ***************************************************************************/ |
1028 | 1029 | |
1029 | static | |
1030 | UINT32 px4_state::screen_update_px4(screen_device &screen, bitmap_ind | |
1030 | 1031 | { |
1031 | px4_state *px4 = screen.machine().driver_data<px4_state>(); | |
1032 | 1032 | |
1033 | 1033 | /* display enabled? */ |
1034 | if (BIT( | |
1034 | if (BIT( | |
1035 | 1035 | { |
1036 | 1036 | int y, x; |
1037 | 1037 | |
1038 | 1038 | /* get vram start address */ |
1039 | UINT8 *vram = & | |
1039 | UINT8 *vram = & | |
1040 | 1040 | |
1041 | 1041 | for (y = 0; y < 64; y++) |
1042 | 1042 | { |
1043 | 1043 | /* adjust against y-offset */ |
1044 | UINT8 row = (y - ( | |
1044 | UINT8 row = (y - ( | |
1045 | 1045 | |
1046 | 1046 | for (x = 0; x < 240/8; x++) |
1047 | 1047 | { |
r17967 | r17968 | |
1369 | 1369 | MCFG_SCREEN_REFRESH_RATE(72) |
1370 | 1370 | MCFG_SCREEN_SIZE(240, 64) |
1371 | 1371 | MCFG_SCREEN_VISIBLE_AREA(0, 239, 0, 63) |
1372 | MCFG_SCREEN_UPDATE_ | |
1372 | MCFG_SCREEN_UPDATE_DR | |
1373 | 1373 | |
1374 | 1374 | MCFG_DEFAULT_LAYOUT(layout_px4) |
1375 | 1375 |
r17967 | r17968 | |
---|---|---|
445 | 445 | /* video hardware */ |
446 | 446 | MCFG_SCREEN_SIZE(256, 256) |
447 | 447 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1) |
448 | MCFG_SCREEN_UPDATE_ | |
448 | MCFG_SCREEN_UPDATE_DR | |
449 | 449 | |
450 | 450 | MCFG_PALETTE_LENGTH(sizeof (lviv_palette) / 3) |
451 | 451 |
r17967 | r17968 | |
---|---|---|
127 | 127 | virtual void machine_reset(); |
128 | 128 | virtual void video_start(); |
129 | 129 | virtual void palette_init(); |
130 | UINT32 screen_update_socrates(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
130 | 131 | }; |
131 | 132 | |
132 | 133 | |
r17967 | r17968 | |
608 | 609 | m_scroll_offset = 0; |
609 | 610 | } |
610 | 611 | |
611 | stat | |
612 | UINT32 socrates_state::screen | |
612 | 613 | { |
613 | socrates_state *state = screen.machine().driver_data<socrates_state>(); | |
614 | 614 | static const UINT8 fixedcolors[8] = |
615 | 615 | { |
616 | 616 | 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0xF7 |
r17967 | r17968 | |
619 | 619 | int lineoffset = 0; // if display ever tries to display data at 0xfxxx, offset line displayed by 0x1000 |
620 | 620 | for (y = 0; y < 228; y++) |
621 | 621 | { |
622 | if ((((y+ | |
622 | if ((((y+ | |
623 | 623 | for (x = 0; x < 264; x++) |
624 | 624 | { |
625 | 625 | if (x < 256) |
626 | 626 | { |
627 | colidx = | |
627 | colidx = | |
628 | 628 | if (x&1) colidx >>=4; |
629 | 629 | colidx &= 0xF; |
630 | if (colidx > 7) color= | |
630 | if (colidx > 7) color= | |
631 | 631 | else color=fixedcolors[colidx]; |
632 | 632 | bitmap.pix16(y, x) = color; |
633 | 633 | } |
634 | 634 | else |
635 | 635 | { |
636 | colidx = | |
636 | colidx = | |
637 | 637 | colidx >>=4; |
638 | 638 | colidx &= 0xF; |
639 | if (colidx > 7) color= | |
639 | if (colidx > 7) color= | |
640 | 640 | else color=fixedcolors[colidx]; |
641 | 641 | bitmap.pix16(y, x) = color; |
642 | 642 | } |
r17967 | r17968 | |
934 | 934 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
935 | 935 | 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 |
936 | 936 | 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_ | |
937 | MCFG_SCREEN_UPDATE_DR | |
938 | 938 | |
939 | 939 | MCFG_PALETTE_LENGTH(256) |
940 | 940 |
r17967 | r17968 | |
---|---|---|
29 | 29 | |
30 | 30 | virtual void machine_reset(); |
31 | 31 | virtual void video_start(); |
32 | UINT32 screen_update_mk85(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
32 | 33 | }; |
33 | 34 | |
34 | 35 | |
r17967 | r17968 | |
51 | 52 | { |
52 | 53 | } |
53 | 54 | |
54 | static | |
55 | UINT32 mk85_state::screen_update_mk85(screen_device &screen, bitmap_ind | |
55 | 56 | { |
56 | 57 | return 0; |
57 | 58 | } |
r17967 | r17968 | |
74 | 75 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
75 | 76 | MCFG_SCREEN_SIZE(640, 480) |
76 | 77 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
77 | MCFG_SCREEN_UPDATE_ | |
78 | MCFG_SCREEN_UPDATE_DR | |
78 | 79 | MCFG_PALETTE_LENGTH(2) |
79 | 80 | MCFG_PALETTE_INIT(black_and_white) |
80 | 81 | MACHINE_CONFIG_END |
r17967 | r17968 | |
---|---|---|
639 | 639 | MCFG_SCREEN_REFRESH_RATE(60) |
640 | 640 | MCFG_SCREEN_SIZE(TS2068_SCREEN_WIDTH, TS2068_SCREEN_HEIGHT) |
641 | 641 | MCFG_SCREEN_VISIBLE_AREA(0, TS2068_SCREEN_WIDTH-1, 0, TS2068_SCREEN_HEIGHT-1) |
642 | MCFG_SCREEN_UPDATE_ | |
642 | MCFG_SCREEN_UPDATE_DR | |
643 | 643 | |
644 | 644 | MCFG_GFXDECODE(ts2068) |
645 | 645 | |
r17967 | r17968 | |
681 | 681 | MCFG_SCREEN_REFRESH_RATE(50) |
682 | 682 | MCFG_SCREEN_SIZE(TS2068_SCREEN_WIDTH, SPEC_SCREEN_HEIGHT) |
683 | 683 | MCFG_SCREEN_VISIBLE_AREA(0, TS2068_SCREEN_WIDTH-1, 0, SPEC_SCREEN_HEIGHT-1) |
684 | MCFG_SCREEN_UPDATE_ | |
684 | MCFG_SCREEN_UPDATE_DR | |
685 | 685 | |
686 | 686 | MCFG_VIDEO_START_OVERRIDE(spectrum_state, spectrum_128 ) |
687 | 687 |
r17967 | r17968 | |
---|---|---|
52 | 52 | virtual void machine_reset(); |
53 | 53 | virtual void video_start(); |
54 | 54 | virtual void palette_init(); |
55 | UINT32 screen_update_jr200(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
55 | 56 | }; |
56 | 57 | |
57 | 58 | |
r17967 | r17968 | |
117 | 118 | { |
118 | 119 | } |
119 | 120 | |
120 | stat | |
121 | UINT32 jr200_state::screen | |
121 | 122 | { |
122 | jr200_state *state = screen.machine().driver_data<jr200_state>(); | |
123 | 123 | int x,y,xi,yi,pen; |
124 | 124 | |
125 | bitmap.fill( | |
125 | bitmap.fill( | |
126 | 126 | |
127 | 127 | for (y = 0; y < 24; y++) |
128 | 128 | { |
129 | 129 | for (x = 0; x < 32; x++) |
130 | 130 | { |
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]; | |
133 | 133 | |
134 | 134 | for(yi=0;yi<8;yi++) |
135 | 135 | { |
r17967 | r17968 | |
516 | 516 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
517 | 517 | MCFG_SCREEN_SIZE(16 + 256 + 16, 16 + 192 + 16) /* border size not accurate */ |
518 | 518 | MCFG_SCREEN_VISIBLE_AREA(0, 16 + 256 + 16 - 1, 0, 16 + 192 + 16 - 1) |
519 | MCFG_SCREEN_UPDATE_ | |
519 | MCFG_SCREEN_UPDATE_DR | |
520 | 520 | |
521 | 521 | MCFG_GFXDECODE(jr200) |
522 | 522 | MCFG_PALETTE_LENGTH(8) |
r17967 | r17968 | |
---|---|---|
457 | 457 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
458 | 458 | MCFG_SCREEN_SIZE(ENTERPRISE_SCREEN_WIDTH, ENTERPRISE_SCREEN_HEIGHT) |
459 | 459 | MCFG_SCREEN_VISIBLE_AREA(0, ENTERPRISE_SCREEN_WIDTH-1, 0, ENTERPRISE_SCREEN_HEIGHT-1) |
460 | MCFG_SCREEN_UPDATE_ | |
460 | MCFG_SCREEN_UPDATE_DR | |
461 | 461 | |
462 | 462 | MCFG_PALETTE_LENGTH(NICK_PALETTE_SIZE) |
463 | 463 |
r17967 | r17968 | |
---|---|---|
64 | 64 | required_shared_ptr<UINT16> m_screen_buffer; |
65 | 65 | DECLARE_DRIVER_INIT(apricot); |
66 | 66 | virtual void palette_init(); |
67 | UINT32 screen_update_apricot(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
67 | 68 | }; |
68 | 69 | |
69 | 70 | |
r17967 | r17968 | |
183 | 184 | VIDEO EMULATION |
184 | 185 | ***************************************************************************/ |
185 | 186 | |
186 | stat | |
187 | UINT32 apricot_state::screen | |
187 | 188 | { |
188 | apricot_state *state = screen.machine().driver_data<apricot_state>(); | |
189 | 189 | |
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); | |
192 | 192 | else |
193 | 193 | bitmap.fill(0, cliprect); |
194 | 194 | |
r17967 | r17968 | |
376 | 376 | MCFG_SCREEN_SIZE(800, 400) |
377 | 377 | MCFG_SCREEN_VISIBLE_AREA(0, 800-1, 0, 400-1) |
378 | 378 | MCFG_SCREEN_REFRESH_RATE(72) |
379 | MCFG_SCREEN_UPDATE_ | |
379 | MCFG_SCREEN_UPDATE_DR | |
380 | 380 | MCFG_PALETTE_LENGTH(3) |
381 | 381 | |
382 | 382 | /* sound hardware */ |
r17967 | r17968 | |
---|---|---|
239 | 239 | MCFG_SCREEN_ADD(SCREEN_TAG, RASTER) |
240 | 240 | MCFG_SCREEN_RAW_PARAMS(XTAL_14_31818MHz,896,0,300,262,0,200) |
241 | 241 | MCFG_SCREEN_UPDATE_DEVICE(VID_MC6845_NAME, mc6845_device, screen_update) |
242 | MCFG_SCREEN_VBLANK_ | |
242 | MCFG_SCREEN_VBLANK_DR | |
243 | 243 | |
244 | 244 | MCFG_PALETTE_LENGTH(SCREEN_NO_COLOURS * 3) |
245 | 245 |
r17967 | r17968 | |
---|---|---|
263 | 263 | { |
264 | 264 | } |
265 | 265 | |
266 | stat | |
266 | UINT32 dm7000_state::screen | |
267 | 267 | { |
268 | 268 | return 0; |
269 | 269 | } |
r17967 | r17968 | |
323 | 323 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
324 | 324 | MCFG_SCREEN_SIZE(640, 480) |
325 | 325 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
326 | MCFG_SCREEN_UPDATE_ | |
326 | MCFG_SCREEN_UPDATE_DR | |
327 | 327 | |
328 | 328 | MCFG_PALETTE_LENGTH(2) |
329 | 329 | MCFG_PALETTE_INIT(black_and_white) |
r17967 | r17968 | |
---|---|---|
205 | 205 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
206 | 206 | MCFG_SCREEN_SIZE(78*6, 30*10) |
207 | 207 | MCFG_SCREEN_VISIBLE_AREA(0, 78*6-1, 0, 30*10-1) |
208 | MCFG_SCREEN_UPDATE_ | |
208 | MCFG_SCREEN_UPDATE_DR | |
209 | 209 | |
210 | 210 | MCFG_GFXDECODE(partner) |
211 | 211 | MCFG_PALETTE_LENGTH(3) |
r17967 | r17968 | |
---|---|---|
291 | 291 | machine().primary_screen->register_screen_bitmap(m_bitmap); |
292 | 292 | } |
293 | 293 | |
294 | stat | |
294 | UINT32 gp32_state::screen | |
295 | 295 | { |
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()); | |
300 | 298 | return 0; |
301 | 299 | } |
302 | 300 | |
r17967 | r17968 | |
1746 | 1744 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
1747 | 1745 | MCFG_SCREEN_SIZE(240, 320) |
1748 | 1746 | MCFG_SCREEN_VISIBLE_AREA(0, 239, 0, 319) |
1749 | MCFG_SCREEN_UPDATE_ | |
1747 | MCFG_SCREEN_UPDATE_DR | |
1750 | 1748 | |
1751 | 1749 | /* 320x240 is 4:3 but ROT270 causes an aspect ratio of 3:4 by default */ |
1752 | 1750 | MCFG_DEFAULT_LAYOUT(layout_lcd_rot) |
r17967 | r17968 | |
---|---|---|
200 | 200 | virtual void machine_reset(); |
201 | 201 | virtual void video_start(); |
202 | 202 | virtual void palette_init(); |
203 | UINT32 screen_update_supracan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
203 | 204 | }; |
204 | 205 | |
205 | 206 | |
r17967 | r17968 | |
763 | 764 | // Sango Fighter Intro: 03c8: 0000 0011 1100 1000 ----: ---- ---- ---- ---- 6c20 4620 ---- 0x01 |
764 | 765 | // Sango Fighter Game: 03ce: 0000 0011 1100 1110 0622: 0000 0110 0010 0010 2620 4620 ---- 0x01 |
765 | 766 | |
766 | static | |
767 | UINT32 supracan_state::screen_update_supracan(screen_device &screen, bitmap_ind | |
767 | 768 | { |
768 | supracan_state *state = (supracan_state *)screen.machine().driver_data<supracan_state>(); | |
769 | 769 | |
770 | 770 | |
771 | 771 | |
r17967 | r17968 | |
777 | 777 | { |
778 | 778 | const rectangle &visarea = screen.visible_area(); |
779 | 779 | |
780 | | |
780 | | |
781 | 781 | bitmap.fill(0x80, visarea); |
782 | 782 | |
783 | draw_sprites(screen.machine(), | |
783 | draw_sprites(screen.machine(), | |
784 | 784 | } |
785 | 785 | } |
786 | 786 | else |
787 | 787 | { |
788 | 788 | |
789 | | |
789 | | |
790 | 790 | bitmap.fill(0x80, cliprect); |
791 | 791 | |
792 | draw_sprites(screen.machine(), | |
792 | draw_sprites(screen.machine(), | |
793 | 793 | } |
794 | 794 | |
795 | 795 | |
r17967 | r17968 | |
806 | 806 | |
807 | 807 | for (int layer = 3; layer >=0; layer--) |
808 | 808 | { |
809 | // popmessage("%04x\n", | |
809 | // popmessage("%04x\n", | |
810 | 810 | int enabled = 0; |
811 | 811 | |
812 | if( | |
812 | if( | |
813 | 813 | if (layer==3) enabled = 1; |
814 | 814 | |
815 | if( | |
815 | if( | |
816 | 816 | if (layer==0) enabled = 1; |
817 | 817 | |
818 | if( | |
818 | if( | |
819 | 819 | if (layer==1) enabled = 1; |
820 | 820 | |
821 | if( | |
821 | if( | |
822 | 822 | if (layer==2) enabled = 1; |
823 | 823 | |
824 | 824 | |
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 | |
827 | 827 | |
828 | 828 | |
829 | 829 | if (priority==pri) |
830 | 830 | { |
831 | 831 | // tilemap_num = layer; |
832 | 832 | which_tilemap_size = get_tilemap_dimensions(screen.machine(), xsize, ysize, layer); |
833 | bitmap_ind16 &src_bitmap = | |
833 | bitmap_ind16 &src_bitmap = | |
834 | 834 | int gfx_region = supracan_tilemap_get_region(screen.machine(), layer); |
835 | 835 | int transmask = 0xff; |
836 | 836 | |
r17967 | r17968 | |
848 | 848 | if (layer != 3) // standard layers, NOT roz |
849 | 849 | { |
850 | 850 | |
851 | int wrap = ( | |
851 | int wrap = ( | |
852 | 852 | |
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]; | |
855 | 855 | |
856 | 856 | if (scrollx&0x8000) scrollx-= 0x10000; |
857 | 857 | if (scrolly&0x8000) scrolly-= 0x10000; |
858 | 858 | |
859 | int mosaic_count = ( | |
859 | int mosaic_count = ( | |
860 | 860 | int mosaic_mask = 0xffffffff << mosaic_count; |
861 | 861 | |
862 | 862 | int y,x; |
r17967 | r17968 | |
896 | 896 | } |
897 | 897 | else |
898 | 898 | { |
899 | int wrap = | |
899 | int wrap = | |
900 | 900 | |
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); | |
903 | 903 | |
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); | |
906 | 906 | |
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); | |
909 | 909 | |
910 | 910 | |
911 | 911 | |
r17967 | r17968 | |
918 | 918 | if (incyy & 0x8000) incyy -= 0x10000; |
919 | 919 | if (incxx & 0x8000) incxx -= 0x10000; |
920 | 920 | |
921 | //popmessage("%04x %04x\n", | |
921 | //popmessage("%04x %04x\n", | |
922 | 922 | |
923 | 923 | // roz mode.. |
924 | 924 | //4020 = enabled speedyd |
r17967 | r17968 | |
930 | 930 | // or is it always enabled, and only corrupt because we don't clear ram properly? |
931 | 931 | // (probably not this register?) |
932 | 932 | |
933 | if (!( | |
933 | if (!( | |
934 | 934 | { |
935 | 935 | // NOT accurate, causes issues when the attract mode loops and the logo is shown the 2nd time in some games - investigate |
936 | 936 | for (int y=cliprect.min_y;y<=cliprect.max_y;y++) |
937 | 937 | { |
938 | 938 | rectangle clip(cliprect.min_x, cliprect.max_x, y, y); |
939 | 939 | |
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); | |
943 | 943 | |
944 | incxx += | |
944 | incxx += | |
945 | 945 | |
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]; | |
948 | 948 | |
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]; | |
951 | 951 | |
952 | 952 | if (incxx & 0x8000) incxx -= 0x10000; |
953 | 953 | |
954 | 954 | |
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); | |
957 | 957 | } |
958 | 958 | } |
959 | 959 | else |
960 | 960 | { |
961 | supracan_suprnova_draw_roz(screen.machine(), bitmap, cliprect, | |
961 | supracan_suprnova_draw_roz(screen.machine(), bitmap, cliprect, | |
962 | 962 | } |
963 | 963 | } |
964 | 964 | } |
r17967 | r17968 | |
968 | 968 | |
969 | 969 | |
970 | 970 | // just draw the sprites on top for now |
971 | if( | |
971 | if( | |
972 | 972 | { |
973 | 973 | for (int y=cliprect.min_y;y<=cliprect.max_y;y++) |
974 | 974 | { |
975 | UINT16* src = & | |
975 | UINT16* src = & | |
976 | 976 | UINT16* dst = &bitmap.pix16(y); |
977 | 977 | |
978 | 978 | for (int x=cliprect.min_x;x<=cliprect.max_x;x++) |
r17967 | r17968 | |
1916 | 1916 | |
1917 | 1917 | MCFG_SCREEN_ADD( "screen", RASTER ) |
1918 | 1918 | MCFG_SCREEN_RAW_PARAMS(XTAL_10_738635MHz/2, 348, 0, 256, 256, 0, 240 ) /* No idea if this is correct */ |
1919 | MCFG_SCREEN_UPDATE_ | |
1919 | MCFG_SCREEN_UPDATE_DR | |
1920 | 1920 | MCFG_PALETTE_LENGTH( 32768 ) |
1921 | 1921 | MCFG_GFXDECODE(supracan) |
1922 | 1922 |
r17967 | r17968 | |
---|---|---|
270 | 270 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
271 | 271 | MCFG_SCREEN_SIZE(128, 64) |
272 | 272 | MCFG_SCREEN_VISIBLE_AREA(4, 112 - 7, 4, 64 - 3) |
273 | MCFG_SCREEN_UPDATE_ | |
273 | MCFG_SCREEN_UPDATE_DR | |
274 | 274 | |
275 | 275 | MCFG_PALETTE_LENGTH(8) |
276 | 276 | |
r17967 | r17968 | |
296 | 296 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(PAL_VBLANK_TIME)) /* approximate */ |
297 | 297 | MCFG_SCREEN_SIZE(128, 64) |
298 | 298 | MCFG_SCREEN_VISIBLE_AREA(4, 112 - 7, 4, 64 - 3) |
299 | MCFG_SCREEN_UPDATE_ | |
299 | MCFG_SCREEN_UPDATE_DR | |
300 | 300 | |
301 | 301 | MCFG_PALETTE_LENGTH(8) |
302 | 302 | |
r17967 | r17968 | |
323 | 323 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
324 | 324 | MCFG_SCREEN_SIZE(128, 64) |
325 | 325 | MCFG_SCREEN_VISIBLE_AREA(4, 112 - 7, 4, 64 - 3) |
326 | MCFG_SCREEN_UPDATE_ | |
326 | MCFG_SCREEN_UPDATE_DR | |
327 | 327 | |
328 | 328 | MCFG_PALETTE_LENGTH(8) |
329 | 329 | |
r17967 | r17968 | |
350 | 350 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(PAL_VBLANK_TIME)) /* not accurate */ |
351 | 351 | MCFG_SCREEN_SIZE(128, 64) |
352 | 352 | MCFG_SCREEN_VISIBLE_AREA(4, 112 - 7, 4, 64 - 3) |
353 | MCFG_SCREEN_UPDATE_ | |
353 | MCFG_SCREEN_UPDATE_DR | |
354 | 354 | |
355 | 355 | MCFG_PALETTE_LENGTH(8) |
356 | 356 |
r17967 | r17968 | |
---|---|---|
297 | 297 | overscan here. */ |
298 | 298 | MCFG_SCREEN_SIZE(40 * 7, 24 * 8) |
299 | 299 | MCFG_SCREEN_VISIBLE_AREA(0, 40 * 7 - 1, 0, 24 * 8 - 1) |
300 | MCFG_SCREEN_UPDATE_ | |
300 | MCFG_SCREEN_UPDATE_DR | |
301 | 301 | |
302 | 302 | |
303 | 303 | MCFG_GFXDECODE(apple1) |
r17967 | r17968 | |
---|---|---|
450 | 450 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(400)) /* 2500 not accurate */ |
451 | 451 | MCFG_SCREEN_SIZE(512, 230) |
452 | 452 | MCFG_SCREEN_VISIBLE_AREA(0, 243, 0, 227) |
453 | MCFG_SCREEN_UPDATE_ | |
453 | MCFG_SCREEN_UPDATE_DR | |
454 | 454 | |
455 | 455 | MCFG_PALETTE_LENGTH(16) |
456 | 456 | MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp) |
r17967 | r17968 | |
493 | 493 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(400)) /* 2500 not accurate */ |
494 | 494 | MCFG_SCREEN_SIZE(512, 230) |
495 | 495 | MCFG_SCREEN_VISIBLE_AREA(0, 243, 0, 227) |
496 | MCFG_SCREEN_UPDATE_ | |
496 | MCFG_SCREEN_UPDATE_DR | |
497 | 497 | |
498 | 498 | MCFG_PALETTE_LENGTH(16) |
499 | 499 | MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp) |
r17967 | r17968 | |
543 | 543 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(400)) /* 2500 not accurate */ |
544 | 544 | MCFG_SCREEN_SIZE(512, 230) |
545 | 545 | MCFG_SCREEN_VISIBLE_AREA(0, 243, 0, 227) |
546 | MCFG_SCREEN_UPDATE_ | |
546 | MCFG_SCREEN_UPDATE_DR | |
547 | 547 | |
548 | 548 | MCFG_PALETTE_LENGTH(16) |
549 | 549 | MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp) |
r17967 | r17968 | |
592 | 592 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(400)) /* 2500 not accurate */ |
593 | 593 | MCFG_SCREEN_SIZE(512, 230) |
594 | 594 | MCFG_SCREEN_VISIBLE_AREA(0, 243, 0, 227) |
595 | MCFG_SCREEN_UPDATE_ | |
595 | MCFG_SCREEN_UPDATE_DR | |
596 | 596 | |
597 | 597 | MCFG_PALETTE_LENGTH(16) |
598 | 598 | MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp) |
r17967 | r17968 | |
639 | 639 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(400)) /* 2500 not accurate */ |
640 | 640 | MCFG_SCREEN_SIZE(512, 230) |
641 | 641 | MCFG_SCREEN_VISIBLE_AREA(0, 243, 0, 227) |
642 | MCFG_SCREEN_UPDATE_ | |
642 | MCFG_SCREEN_UPDATE_DR | |
643 | 643 | |
644 | 644 | MCFG_PALETTE_LENGTH(16) |
645 | 645 | MCFG_PALETTE_INIT(black_and_white) |
r17967 | r17968 | |
690 | 690 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(400)) /* 2500 not accurate */ |
691 | 691 | MCFG_SCREEN_SIZE(512, 230) |
692 | 692 | MCFG_SCREEN_VISIBLE_AREA(0, 243, 0, 227) |
693 | MCFG_SCREEN_UPDATE_ | |
693 | MCFG_SCREEN_UPDATE_DR | |
694 | 694 | |
695 | 695 | MCFG_PALETTE_LENGTH(16) |
696 | 696 | MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp) |
r17967 | r17968 | |
---|---|---|
58 | 58 | UINT8 m_cursor_row; |
59 | 59 | virtual void machine_reset(); |
60 | 60 | virtual void video_start(); |
61 | UINT32 screen_update_unior(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
61 | 62 | }; |
62 | 63 | |
63 | 64 | READ8_MEMBER( unior_state::unior_4c_r ) |
r17967 | r17968 | |
249 | 250 | m_p_vram = memregion("vram")->base(); |
250 | 251 | } |
251 | 252 | |
252 | static | |
253 | UINT32 unior_state::screen_update_unior(screen_device &screen, bitmap_ind | |
253 | 254 | { |
254 | unior_state *state = screen.machine().driver_data<unior_state>(); | |
255 | 255 | UINT8 y,ra,gfx; |
256 | 256 | UINT16 sy=0,ma=0,x,chr; |
257 | 257 | UINT8 *videoram; |
258 | videoram = | |
258 | videoram = | |
259 | 259 | static UINT8 framecnt=0; |
260 | 260 | |
261 | 261 | framecnt++; |
r17967 | r17968 | |
270 | 270 | { |
271 | 271 | chr = videoram[x+ma]; |
272 | 272 | |
273 | gfx = | |
273 | gfx = | |
274 | 274 | |
275 | 275 | /* cursor */ |
276 | if ((y == | |
276 | if ((y == | |
277 | 277 | gfx ^= 0xff; |
278 | 278 | |
279 | 279 | /* Display a scanline of a character */ |
r17967 | r17968 | |
290 | 290 | if (y) |
291 | 291 | ma+=80; |
292 | 292 | else |
293 | videoram = | |
293 | videoram = | |
294 | 294 | } |
295 | 295 | return 0; |
296 | 296 | } |
r17967 | r17968 | |
326 | 326 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
327 | 327 | MCFG_SCREEN_SIZE(640, 200) |
328 | 328 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1) |
329 | MCFG_SCREEN_UPDATE_ | |
329 | MCFG_SCREEN_UPDATE_DR | |
330 | 330 | MCFG_GFXDECODE(unior) |
331 | 331 | MCFG_PALETTE_LENGTH(2) |
332 | 332 | MCFG_PALETTE_INIT(black_and_white) |
r17967 | r17968 | |
---|---|---|
73 | 73 | DECLARE_WRITE8_MEMBER(avr8_write); |
74 | 74 | DECLARE_DRIVER_INIT(craft); |
75 | 75 | virtual void machine_reset(); |
76 | UINT32 screen_update_craft(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); | |
76 | 77 | }; |
77 | 78 | |
78 | 79 | void craft_state::machine_start() |
r17967 | r17968 | |
951 | 952 | * Video hardware * |
952 | 953 | \****************************************************/ |
953 | 954 | |
954 | static | |
955 | UINT32 craft_state::screen_update_craft(screen_device &screen, bitmap_rgb | |
955 | 956 | { |
956 | 957 | return 0; |
957 | 958 | } |
r17967 | r17968 | |
996 | 997 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1395)) /* accurate */ |
997 | 998 | MCFG_SCREEN_SIZE(634, 480) |
998 | 999 | MCFG_SCREEN_VISIBLE_AREA(0, 633, 0, 479) |
999 | ||
1000 | | |
1000 | 1001 | |
1001 | 1002 | MCFG_PALETTE_LENGTH(0x1000) |
1002 | 1003 |
r17967 | r17968 | |
---|---|---|
178 | 178 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
179 | 179 | MCFG_SCREEN_SIZE(78*6, 30*10) |
180 | 180 | MCFG_SCREEN_VISIBLE_AREA(0, 78*6-1, 0, 30*10-1) |
181 | MCFG_SCREEN_UPDATE_ | |
181 | MCFG_SCREEN_UPDATE_DR | |
182 | 182 | |
183 | 183 | MCFG_GFXDECODE(apogee) |
184 | 184 | MCFG_PALETTE_LENGTH(3) |
r17967 | r17968 | |
---|---|---|
49 | 49 | DECLARE_WRITE8_MEMBER(elwro800jr_fdc_control_w); |
50 | 50 | DECLARE_READ8_MEMBER(elwro800jr_io_r); |
51 | 51 | DECLARE_WRITE8_MEMBER(elwro800jr_io_w); |
52 | DECLARE_MACHINE_RESET(elwro800); | |
52 | DECLARE_MACHINE_RESET(elwro800); | |
53 | 53 | }; |
54 | 54 | |
55 | 55 | |
r17967 | r17968 | |
588 | 588 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
589 | 589 | MCFG_SCREEN_SIZE(SPEC_SCREEN_WIDTH, SPEC_SCREEN_HEIGHT) |
590 | 590 | 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) | |
593 | 593 | |
594 | 594 | MCFG_PALETTE_LENGTH(16) |
595 | 595 | MCFG_PALETTE_INIT_OVERRIDE(elwro800_state, spectrum ) |
r17967 | r17968 | |
---|---|---|
412 | 412 | MCFG_SCREEN_SIZE(384, 256) |
413 | 413 | MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 256-1) |
414 | 414 | MCFG_VIDEO_START_OVERRIDE(special_state,special) |
415 | MCFG_SCREEN_UPDATE_ | |
415 | MCFG_SCREEN_UPDATE_DR | |
416 | 416 | MCFG_PALETTE_LENGTH(2) |
417 | 417 | MCFG_PALETTE_INIT(black_and_white) |
418 | 418 | |
r17967 | r17968 | |
435 | 435 | MCFG_CPU_PROGRAM_MAP(specialp_mem) |
436 | 436 | |
437 | 437 | MCFG_SCREEN_MODIFY("screen") |
438 | MCFG_SCREEN_UPDATE_ | |
438 | MCFG_SCREEN_UPDATE_DR | |
439 | 439 | MCFG_SCREEN_SIZE(512, 256) |
440 | 440 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) |
441 | 441 | MCFG_VIDEO_START_OVERRIDE(special_state,specialp) |
r17967 | r17968 | |
450 | 450 | |
451 | 451 | /* video hardware */ |
452 | 452 | MCFG_SCREEN_MODIFY("screen") |
453 | MCFG_SCREEN_UPDATE_ | |
453 | MCFG_SCREEN_UPDATE_DR | |
454 | 454 | MCFG_VIDEO_START_OVERRIDE(special_state,specimx) |
455 | 455 | MCFG_PALETTE_LENGTH(16) |
456 | 456 | MCFG_PALETTE_INIT_OVERRIDE(special_state, specimx ) |
r17967 | r17968 | |
483 | 483 | MCFG_SCREEN_SIZE(384, 256) |
484 | 484 | MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 256-1) |
485 | 485 | MCFG_VIDEO_START_OVERRIDE(special_state,erik) |
486 | MCFG_SCREEN_UPDATE_ | |
486 | MCFG_SCREEN_UPDATE_DR | |
487 | 487 | MCFG_PALETTE_LENGTH(8) |
488 | 488 | MCFG_PALETTE_INIT_OVERRIDE(special_state,erik) |
489 | 489 |
r17967 | r17968 | |
---|---|---|
819 | 819 | MCFG_SCREEN_ADD("screen", RASTER) |
820 | 820 | MCFG_SCREEN_REFRESH_RATE(59.92) |
821 | 821 | //MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2400)) /* not accurate */ |
822 | MCFG_SCREEN_UPDATE_ | |
822 | MCFG_SCREEN_UPDATE_DR | |
823 | 823 | 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) |
824 | 824 | 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) |
825 | 825 | |
r17967 | r17968 | |
883 | 883 | MCFG_SCREEN_MODIFY("screen") |
884 | 884 | 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) |
885 | 885 | 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_ | |
886 | MCFG_SCREEN_UPDATE_DR | |
887 | 887 | |
888 | 888 | /* cartridge */ |
889 | 889 | MCFG_DEVICE_REMOVE("cart") |
r17967 | r17968 | |
---|---|---|
24 | 24 | required_shared_ptr<UINT8> m_p_attributes; |
25 | 25 | virtual void machine_reset(); |
26 | 26 | virtual void video_start(); |
27 | UINT32 screen_update_m79152pc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
27 | 28 | }; |
28 | 29 | |
29 | 30 | static ADDRESS_MAP_START(m79152pc_mem, AS_PROGRAM, 8, m79152pc_state) |
r17967 | r17968 | |
53 | 54 | m_p_chargen = memregion("chargen")->base()+4; |
54 | 55 | } |
55 | 56 | |
56 | stat | |
57 | UINT32 m79152pc_state::screen | |
57 | 58 | { |
58 | 59 | // Attributes are unknown so are not implemented |
59 | m79152pc_state *state = screen.machine().driver_data<m79152pc_state>(); | |
60 | 60 | UINT8 y,ra,chr,gfx; //,attr; |
61 | 61 | UINT16 sy=0,ma=0,x; |
62 | 62 | |
r17967 | r17968 | |
68 | 68 | |
69 | 69 | for (x = ma; x < ma + 80; x++) |
70 | 70 | { |
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 ]; | |
74 | 74 | |
75 | 75 | /* Display a scanline of a character */ |
76 | 76 | *p++ = BIT(gfx, 7); |
r17967 | r17968 | |
119 | 119 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
120 | 120 | MCFG_SCREEN_SIZE(640, 300) |
121 | 121 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 300-1) |
122 | MCFG_SCREEN_UPDATE_ | |
122 | MCFG_SCREEN_UPDATE_DR | |
123 | 123 | MCFG_GFXDECODE(m79152pc) |
124 | 124 | MCFG_PALETTE_LENGTH(2) |
125 | 125 | MCFG_PALETTE_INIT(black_and_white) |
r17967 | r17968 | |
---|---|---|
183 | 183 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
184 | 184 | MCFG_SCREEN_SIZE(64*8, 32*8) |
185 | 185 | MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1) |
186 | MCFG_SCREEN_UPDATE_ | |
186 | MCFG_SCREEN_UPDATE_DR | |
187 | 187 | |
188 | 188 | MCFG_GFXDECODE(mikro80) |
189 | 189 | MCFG_PALETTE_LENGTH(2) |
r17967 | r17968 | |
---|---|---|
33 | 33 | UINT8 m_sysreg; |
34 | 34 | int m_blink; |
35 | 35 | virtual void palette_init(); |
36 | UINT32 screen_update_ms0515(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
36 | 37 | }; |
37 | 38 | |
38 | 39 | static ADDRESS_MAP_START(ms0515_mem, AS_PROGRAM, 16, ms0515_state) |
r17967 | r17968 | |
165 | 166 | NULL |
166 | 167 | }; |
167 | 168 | |
168 | stat | |
169 | UINT32 ms0515_state::screen | |
169 | 170 | { |
170 | ms0515_state *state = screen.machine().driver_data<ms0515_state>(); | |
171 | 171 | int y, x, b; |
172 | 172 | int addr = 0; |
173 | if (BIT( | |
173 | if (BIT( | |
174 | 174 | for (y = 0; y < 200; y++) |
175 | 175 | { |
176 | 176 | int horpos = 0; |
177 | 177 | for (x = 0; x < 40; x++) |
178 | 178 | { |
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++]; | |
181 | 181 | for (b = 0; b < 16; b++) |
182 | 182 | { |
183 | 183 | // In lower res mode we will just double pixels |
r17967 | r17968 | |
191 | 191 | int horpos = 0; |
192 | 192 | for (x = 0; x < 40; x++) |
193 | 193 | { |
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++]; | |
196 | 196 | UINT8 fg = (attr & 7) + BIT(attr,6)*8; |
197 | 197 | UINT8 bg = ((attr >> 3) & 7) + BIT(attr,6)*8; |
198 | if (BIT(attr,7) && ( | |
198 | if (BIT(attr,7) && ( | |
199 | 199 | UINT8 tmp = fg; |
200 | 200 | fg = bg; bg = tmp; |
201 | | |
201 | | |
202 | 202 | } |
203 | 203 | for (b = 0; b < 8; b++) |
204 | 204 | { |
r17967 | r17968 | |
209 | 209 | } |
210 | 210 | } |
211 | 211 | } |
212 | | |
212 | | |
213 | 213 | return 0; |
214 | 214 | } |
215 | 215 | |
r17967 | r17968 | |
265 | 265 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
266 | 266 | MCFG_SCREEN_SIZE(640, 200) |
267 | 267 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1) |
268 | ||
268 | | |
269 | 269 | |
270 | 270 | MCFG_PALETTE_LENGTH(16) |
271 | 271 |
r17967 | r17968 | |
---|---|---|
37 | 37 | virtual void machine_start(); |
38 | 38 | virtual void machine_reset(); |
39 | 39 | virtual void palette_init(); |
40 | UINT32 screen_update_scv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
40 | 41 | }; |
41 | 42 | |
42 | 43 | |
r17967 | r17968 | |
566 | 567 | } |
567 | 568 | |
568 | 569 | |
569 | static | |
570 | UINT32 scv_state::screen_update_scv(screen_device &screen, bitmap_ind | |
570 | 571 | { |
571 | scv_state *state = screen.machine().driver_data<scv_state>(); | |
572 | 572 | 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; | |
579 | 579 | |
580 | 580 | /* Clear the screen */ |
581 | 581 | bitmap.fill(gr_bg , cliprect); |
r17967 | r17968 | |
587 | 587 | |
588 | 588 | if ( y < clip_y ) |
589 | 589 | { |
590 | text_y = ( | |
590 | text_y = ( | |
591 | 591 | } |
592 | 592 | else |
593 | 593 | { |
594 | text_y = ( | |
594 | text_y = ( | |
595 | 595 | } |
596 | 596 | |
597 | 597 | for ( x = 0; x < 32; x++ ) |
598 | 598 | { |
599 | 599 | int text_x = 0; |
600 | UINT8 d = | |
600 | UINT8 d = | |
601 | 601 | |
602 | 602 | if ( x < clip_x ) |
603 | 603 | { |
604 | text_x = ( | |
604 | text_x = ( | |
605 | 605 | } |
606 | 606 | else |
607 | 607 | { |
608 | text_x = ( | |
608 | text_x = ( | |
609 | 609 | } |
610 | 610 | |
611 | 611 | if ( text_x && text_y ) |
612 | 612 | { |
613 | 613 | /* Text mode */ |
614 | UINT8 *char_data = | |
614 | UINT8 *char_data = | |
615 | 615 | draw_text( bitmap, x * 8, y * 16, char_data, fg, bg ); |
616 | 616 | } |
617 | 617 | else |
618 | 618 | { |
619 | switch ( | |
619 | switch ( | |
620 | 620 | { |
621 | 621 | case 0x01: /* Semi graphics mode */ |
622 | 622 | draw_semi_graph( bitmap, x * 8 , y * 16 , d & 0x80, gr_fg ); |
r17967 | r17968 | |
642 | 642 | } |
643 | 643 | |
644 | 644 | /* Draw sprites if enabled */ |
645 | if ( | |
645 | if ( | |
646 | 646 | { |
647 | UINT8 screen_start_sprite_line = ( ( ( | |
647 | UINT8 screen_start_sprite_line = ( ( ( | |
648 | 648 | int i; |
649 | 649 | |
650 | 650 | for ( i = 0; i < 128; i++ ) |
651 | 651 | { |
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; | |
660 | 660 | UINT8 left = 1; |
661 | 661 | UINT8 right = 1; |
662 | 662 | UINT8 top = 1; |
r17967 | r17968 | |
704 | 704 | } |
705 | 705 | |
706 | 706 | /* Check if 2 color sprites are enabled */ |
707 | if ( ( | |
707 | if ( ( | |
708 | 708 | { |
709 | 709 | /* 2 color sprite handling */ |
710 | draw_sprite( | |
710 | draw_sprite( | |
711 | 711 | if ( x_32 || y_32 ) |
712 | 712 | { |
713 | 713 | static const UINT8 spr_2col_lut0[16] = { 0, 15, 12, 13, 10, 11, 8, 9, 6, 7, 4, 5, 2, 3, 1, 1 }; |
714 | 714 | static const UINT8 spr_2col_lut1[16] = { 0, 1, 8, 11, 2, 3, 10, 9, 4, 5, 12, 13, 6, 7, 14, 15 }; |
715 | 715 | |
716 | draw_sprite( | |
716 | draw_sprite( | |
717 | 717 | } |
718 | 718 | } |
719 | 719 | else |
720 | 720 | { |
721 | 721 | /* regular sprite handling */ |
722 | draw_sprite( | |
722 | draw_sprite( | |
723 | 723 | if ( x_32 ) |
724 | 724 | { |
725 | draw_sprite( | |
725 | draw_sprite( | |
726 | 726 | } |
727 | 727 | |
728 | 728 | if ( y_32 ) |
729 | 729 | { |
730 | 730 | clip = ( clip & 0x08 ) ? ( clip & 0x07 ) : 0; |
731 | draw_sprite( | |
731 | draw_sprite( | |
732 | 732 | if ( x_32 ) |
733 | 733 | { |
734 | draw_sprite( | |
734 | draw_sprite( | |
735 | 735 | } |
736 | 736 | } |
737 | 737 | } |
r17967 | r17968 | |
796 | 796 | /* Video chip is EPOCH TV-1 */ |
797 | 797 | MCFG_SCREEN_ADD( "screen", RASTER ) |
798 | 798 | MCFG_SCREEN_RAW_PARAMS( XTAL_14_31818MHz/2, 456, 24, 24+192, 262, 23, 23+222 ) /* TODO: Verify */ |
799 | MCFG_SCREEN_UPDATE_ | |
799 | MCFG_SCREEN_UPDATE_DR | |
800 | 800 | |
801 | 801 | MCFG_GFXDECODE(scv) |
802 | 802 | MCFG_PALETTE_LENGTH( 16 ) |
r17967 | r17968 | |
---|---|---|
305 | 305 | MCFG_SCREEN_ADD("screen", RASTER) |
306 | 306 | MCFG_SCREEN_REFRESH_RATE(50) |
307 | 307 | 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) | |
310 | 310 | |
311 | 311 | MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_SCANLINE) |
312 | 312 |
r17967 | r17968 | |
---|---|---|
289 | 289 | MCFG_SCREEN_REFRESH_RATE(60) |
290 | 290 | MCFG_SCREEN_SIZE(320, 200) |
291 | 291 | MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 199) |
292 | MCFG_SCREEN_UPDATE_ | |
292 | MCFG_SCREEN_UPDATE_DR | |
293 | 293 | MCFG_GFXDECODE(mz80k) |
294 | 294 | MCFG_PALETTE_LENGTH(2) |
295 | 295 | MCFG_PALETTE_INIT(black_and_white) |
r17967 | r17968 | |
310 | 310 | |
311 | 311 | static MACHINE_CONFIG_DERIVED( mz80kj, mz80k ) |
312 | 312 | MCFG_SCREEN_MODIFY("screen") |
313 | MCFG_SCREEN_UPDATE_ | |
313 | MCFG_SCREEN_UPDATE_DR | |
314 | 314 | MCFG_GFXDECODE(mz80kj) |
315 | 315 | MACHINE_CONFIG_END |
316 | 316 | |
317 | 317 | static MACHINE_CONFIG_DERIVED( mz80a, mz80k ) |
318 | 318 | MCFG_SCREEN_MODIFY("screen") |
319 | MCFG_SCREEN_UPDATE_ | |
319 | MCFG_SCREEN_UPDATE_DR | |
320 | 320 | MACHINE_CONFIG_END |
321 | 321 | |
322 | 322 |
r17967 | r17968 | |
---|---|---|
197 | 197 | MCFG_SCREEN_SIZE(64*8, 28*8) |
198 | 198 | MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 28*8-1) |
199 | 199 | MCFG_VIDEO_START_OVERRIDE(ut88_state,ut88) |
200 | MCFG_SCREEN_UPDATE_ | |
200 | MCFG_SCREEN_UPDATE_DR | |
201 | 201 | MCFG_PALETTE_LENGTH(2) |
202 | 202 | MCFG_PALETTE_INIT(black_and_white) |
203 | 203 | MCFG_GFXDECODE( ut88 ) |
r17967 | r17968 | |
---|---|---|
208 | 208 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
209 | 209 | MCFG_SCREEN_SIZE(256, 256) |
210 | 210 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1) |
211 | MCFG_SCREEN_UPDATE_ | |
211 | MCFG_SCREEN_UPDATE_DR | |
212 | 212 | |
213 | 213 | MCFG_PALETTE_LENGTH(8) |
214 | 214 |
r17967 | r17968 | |
---|---|---|
299 | 299 | // SCREEN UPDATE // |
300 | 300 | //////////////////// |
301 | 301 | |
302 | static | |
302 | UINT32 cybiko_state::screen_update_cybiko(screen_device &screen, bitmap_ind | |
303 | 303 | { |
304 | 304 | hd66421_device *hd66421 = screen.machine().device<hd66421_device>( "hd66421" ); |
305 | 305 | hd66421->update_screen(bitmap, cliprect); |
r17967 | r17968 | |
321 | 321 | MCFG_SCREEN_REFRESH_RATE( 60 ) |
322 | 322 | MCFG_SCREEN_SIZE( HD66421_WIDTH, HD66421_HEIGHT ) |
323 | 323 | MCFG_SCREEN_VISIBLE_AREA( 0, HD66421_WIDTH - 1, 0, HD66421_HEIGHT - 1 ) |
324 | MCFG_SCREEN_UPDATE_ | |
324 | MCFG_SCREEN_UPDATE_DR | |
325 | 325 | |
326 | 326 | // video |
327 | 327 | MCFG_HD66421_ADD("hd66421") |
r17967 | r17968 | |
---|---|---|
62 | 62 | required_shared_ptr<UINT8> m_vram; |
63 | 63 | |
64 | 64 | virtual void video_start(); |
65 | UINT32 screen_update_mbc200(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
65 | 66 | }; |
66 | 67 | |
67 | 68 | |
r17967 | r17968 | |
150 | 151 | { |
151 | 152 | } |
152 | 153 | |
153 | stat | |
154 | UINT32 mbc200_state::screen | |
154 | 155 | { |
155 | mbc200_state *state = screen.machine().driver_data<mbc200_state>(); | |
156 | 156 | int x,y,xi,yi; |
157 | 157 | int count; |
158 | 158 | |
r17967 | r17968 | |
167 | 167 | for(xi=0;xi<8;xi++) |
168 | 168 | { |
169 | 169 | UINT8 dot; |
170 | dot = ( | |
170 | dot = ( | |
171 | 171 | |
172 | 172 | if(y*4+yi < 400 && x*8+xi < 640) /* TODO: safety check */ |
173 | 173 | bitmap.pix16(y*4+yi, x*8+xi) = screen.machine().pens[dot]; |
r17967 | r17968 | |
263 | 263 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
264 | 264 | MCFG_SCREEN_SIZE(640, 400) |
265 | 265 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 400-1) |
266 | ||
266 | | |
267 | 267 | MCFG_GFXDECODE(mbc200) |
268 | 268 | MCFG_PALETTE_LENGTH(2) |
269 | 269 | MCFG_PALETTE_INIT(black_and_white) |
r17967 | r17968 | |
---|---|---|
652 | 652 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
653 | 653 | MCFG_SCREEN_SIZE(280*2, 192) |
654 | 654 | MCFG_SCREEN_VISIBLE_AREA(0, (280*2)-1,0,192-1) |
655 | MCFG_SCREEN_UPDATE_ | |
655 | MCFG_SCREEN_UPDATE_DR | |
656 | 656 | |
657 | 657 | MCFG_PALETTE_LENGTH(ARRAY_LENGTH(apple2_palette)) |
658 | 658 | MCFG_PALETTE_INIT_OVERRIDE(apple2_state,apple2) |
r17967 | r17968 | |
---|---|---|
350 | 350 | } |
351 | 351 | } |
352 | 352 | |
353 | stat | |
353 | UINT32 svision_state::screen | |
354 | 354 | { |
355 | 355 | svision_state *state = screen.machine().driver_data<svision_state>(); |
356 | 356 | int x, y, i, j=XPOS/4+YPOS*0x30; |
357 | UINT8 *videoram = | |
357 | UINT8 *videoram = | |
358 | 358 | |
359 | if ( | |
359 | if ( | |
360 | 360 | { |
361 | 361 | for (y=0; y<160; y++) |
362 | 362 | { |
r17967 | r17968 | |
382 | 382 | return 0; |
383 | 383 | } |
384 | 384 | |
385 | stat | |
385 | UINT32 svision_state::screen | |
386 | 386 | { |
387 | 387 | svision_state *state = screen.machine().driver_data<svision_state>(); |
388 | 388 | int x, y, i, j = XPOS/4+YPOS*0x30; |
389 | UINT8 *videoram = | |
389 | UINT8 *videoram = | |
390 | 390 | |
391 | if ( | |
391 | if ( | |
392 | 392 | { |
393 | 393 | for (y = 0; y < 160; y++) |
394 | 394 | { |
r17967 | r17968 | |
396 | 396 | for (x = 3 - (XPOS & 3), i = 0; x < 160 + 3 && x < XSIZE + 3; x += 4, i++) |
397 | 397 | { |
398 | 398 | 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]; | |
403 | 403 | line+=4; |
404 | 404 | } |
405 | 405 | j += 0x30; |
r17967 | r17968 | |
522 | 522 | MCFG_SCREEN_REFRESH_RATE(61) |
523 | 523 | MCFG_SCREEN_SIZE(3+160+3, 160) |
524 | 524 | MCFG_SCREEN_VISIBLE_AREA(3+0, 3+160-1, 0, 160-1) |
525 | MCFG_SCREEN_UPDATE_ | |
525 | MCFG_SCREEN_UPDATE_DR | |
526 | 526 | |
527 | 527 | MCFG_PALETTE_LENGTH(ARRAY_LENGTH(svision_palette) * 3) |
528 | 528 | |
r17967 | r17968 | |
572 | 572 | MCFG_MACHINE_RESET_OVERRIDE(svision_state, tvlink ) |
573 | 573 | |
574 | 574 | MCFG_SCREEN_MODIFY("screen") |
575 | MCFG_SCREEN_UPDATE_ | |
575 | MCFG_SCREEN_UPDATE_DR | |
576 | 576 | |
577 | 577 | MACHINE_CONFIG_END |
578 | 578 |
r17967 | r17968 | |
---|---|---|
31 | 31 | virtual void machine_reset(); |
32 | 32 | virtual void video_start(); |
33 | 33 | virtual void palette_init(); |
34 | UINT32 screen_update_vta2000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
34 | 35 | }; |
35 | 36 | |
36 | 37 | static ADDRESS_MAP_START(vta2000_mem, AS_PROGRAM, 8, vta2000_state) |
r17967 | r17968 | |
59 | 60 | m_p_videoram = memregion("maincpu")->base()+0x8000; |
60 | 61 | } |
61 | 62 | |
62 | stat | |
63 | UINT32 vta2000_state::screen | |
63 | 64 | /* Cursor is missing. */ |
64 | 65 | { |
65 | vta2000_state *state = screen.machine().driver_data<vta2000_state>(); | |
66 | 66 | static UINT8 framecnt=0; |
67 | 67 | UINT8 y,ra,gfx,attr,fg,bg; |
68 | 68 | UINT16 sy=0,ma=0,x,xx=0,chr; |
r17967 | r17968 | |
78 | 78 | xx = ma << 1; |
79 | 79 | for (x = ma; x < ma + 80; x++) |
80 | 80 | { |
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++]; | |
83 | 83 | |
84 | 84 | if ((chr & 0x60)==0x60) |
85 | 85 | chr+=256; |
86 | 86 | |
87 | gfx = | |
87 | gfx = | |
88 | 88 | bg = 0; |
89 | 89 | |
90 | 90 | /* Process attributes */ |
r17967 | r17968 | |
163 | 163 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
164 | 164 | MCFG_SCREEN_SIZE(80*8, 25*12) |
165 | 165 | MCFG_SCREEN_VISIBLE_AREA(0, 80*8-1, 0, 25*12-1) |
166 | MCFG_SCREEN_UPDATE_ | |
166 | MCFG_SCREEN_UPDATE_DR | |
167 | 167 | MCFG_PALETTE_LENGTH(3) |
168 | 168 | MCFG_GFXDECODE(vta2000) |
169 | 169 | MACHINE_CONFIG_END |
r17967 | r17968 | |
---|---|---|
32 | 32 | bitmap_ind16 m_bitmap; |
33 | 33 | virtual void video_start(); |
34 | 34 | virtual void machine_reset(); |
35 | UINT32 screen_update_ipds(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
35 | 36 | }; |
36 | 37 | |
37 | 38 | READ8_MEMBER( ipds_state::ipds_b0_r ) |
r17967 | r17968 | |
114 | 115 | ipds_display_pixels |
115 | 116 | }; |
116 | 117 | |
117 | static | |
118 | UINT32 ipds_state::screen_update_ipds(screen_device &screen, bitmap_ind | |
118 | 119 | { |
119 | ipds_state *state = screen.machine().driver_data<ipds_state>(); | |
120 | 120 | device_t *devconf = screen.machine().device("i8275"); |
121 | 121 | i8275_update( devconf, bitmap, cliprect); |
122 | copybitmap(bitmap, | |
122 | copybitmap(bitmap, | |
123 | 123 | return 0; |
124 | 124 | } |
125 | 125 | |
r17967 | r17968 | |
165 | 165 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
166 | 166 | MCFG_SCREEN_SIZE(640, 480) |
167 | 167 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
168 | MCFG_SCREEN_UPDATE_ | |
168 | MCFG_SCREEN_UPDATE_DR | |
169 | 169 | MCFG_GFXDECODE(ipds) |
170 | 170 | MCFG_PALETTE_LENGTH(2) |
171 | 171 | MCFG_PALETTE_INIT(monochrome_green) |
r17967 | r17968 | |
---|---|---|
224 | 224 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
225 | 225 | MCFG_SCREEN_SIZE(40*17, 44*11) |
226 | 226 | MCFG_SCREEN_VISIBLE_AREA(0, 40*17-1, 0, 44*11-1) |
227 | MCFG_SCREEN_UPDATE_ | |
227 | MCFG_SCREEN_UPDATE_DR | |
228 | 228 | |
229 | 229 | MCFG_PALETTE_LENGTH(16) |
230 | 230 |
r17967 | r17968 | |
---|---|---|
29 | 29 | |
30 | 30 | virtual void machine_reset(); |
31 | 31 | virtual void video_start(); |
32 | UINT32 screen_update_cortex(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
32 | 33 | }; |
33 | 34 | |
34 | 35 | static ADDRESS_MAP_START( cortex_mem, AS_PROGRAM, 8, cortex_state ) |
r17967 | r17968 | |
54 | 55 | { |
55 | 56 | } |
56 | 57 | |
57 | static | |
58 | UINT32 cortex_state::screen_update_cortex(screen_device &screen, bitmap_ind | |
58 | 59 | { |
59 | 60 | return 0; |
60 | 61 | } |
r17967 | r17968 | |
82 | 83 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
83 | 84 | MCFG_SCREEN_SIZE(640, 480) |
84 | 85 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
85 | MCFG_SCREEN_UPDATE_ | |
86 | MCFG_SCREEN_UPDATE_DR | |
86 | 87 | MCFG_PALETTE_LENGTH(2) |
87 | 88 | MCFG_PALETTE_INIT(black_and_white) |
88 | 89 | MACHINE_CONFIG_END |
r17967 | r17968 | |
---|---|---|
62 | 62 | DECLARE_DRIVER_INIT(ip204415); |
63 | 63 | virtual void machine_start(); |
64 | 64 | virtual void video_start(); |
65 | UINT32 screen_update_ip204415(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
65 | 66 | }; |
66 | 67 | |
67 | 68 | |
r17967 | r17968 | |
84 | 85 | { |
85 | 86 | } |
86 | 87 | |
87 | stat | |
88 | UINT32 ip20_state::screen | |
88 | 89 | { |
89 | 90 | return 0; |
90 | 91 | } |
r17967 | r17968 | |
593 | 594 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
594 | 595 | MCFG_SCREEN_SIZE(800, 600) |
595 | 596 | MCFG_SCREEN_VISIBLE_AREA(0, 799, 0, 599) |
596 | MCFG_SCREEN_UPDATE_ | |
597 | MCFG_SCREEN_UPDATE_DR | |
597 | 598 | |
598 | 599 | MCFG_PALETTE_LENGTH(65536) |
599 | 600 |
r17967 | r17968 | |
---|---|---|
399 | 399 | MCFG_SCREEN_REFRESH_RATE(50) |
400 | 400 | MCFG_SCREEN_SIZE(226, 312) |
401 | 401 | MCFG_SCREEN_VISIBLE_AREA(8, 184, 0, 269) |
402 | MCFG_SCREEN_UPDATE_ | |
402 | MCFG_SCREEN_UPDATE_DR | |
403 | 403 | |
404 | 404 | MCFG_PALETTE_LENGTH(8) |
405 | 405 |
r17967 | r17968 | |
---|---|---|
39 | 39 | |
40 | 40 | virtual void machine_reset(); |
41 | 41 | virtual void video_start(); |
42 | UINT32 screen_update_konin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
42 | 43 | }; |
43 | 44 | |
44 | 45 | static ADDRESS_MAP_START( konin_mem, AS_PROGRAM, 8, konin_state ) |
r17967 | r17968 | |
65 | 66 | { |
66 | 67 | } |
67 | 68 | |
68 | static | |
69 | UINT32 konin_state::screen_update_konin(screen_device &screen, bitmap_ind | |
69 | 70 | { |
70 | 71 | return 0; |
71 | 72 | } |
r17967 | r17968 | |
83 | 84 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
84 | 85 | MCFG_SCREEN_SIZE(640, 480) |
85 | 86 | MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) |
86 | MCFG_SCREEN_UPDATE_ | |
87 | MCFG_SCREEN_UPDATE_DR | |
87 | 88 | MCFG_PALETTE_LENGTH(2) |
88 | 89 | MCFG_PALETTE_INIT(black_and_white) |
89 | 90 | MACHINE_CONFIG_END |
r17967 | r17968 | |
---|---|---|
214 | 214 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
215 | 215 | MCFG_SCREEN_SIZE(512, 256) |
216 | 216 | MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1) |
217 | MCFG_SCREEN_UPDATE_ | |
217 | MCFG_SCREEN_UPDATE_DR | |
218 | 218 | |
219 | 219 | MCFG_GFXDECODE(pk8020) |
220 | 220 | MCFG_PALETTE_LENGTH(16) |
r17967 | r17968 | |
---|---|---|
52 | 52 | virtual void machine_reset(); |
53 | 53 | virtual void video_start(); |
54 | 54 | virtual void palette_init(); |
55 | UINT32 screen_update_bmjr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); | |
55 | 56 | }; |
56 | 57 | |
57 | 58 | |
r17967 | r17968 | |
61 | 62 | m_p_chargen = memregion("chargen")->base(); |
62 | 63 | } |
63 | 64 | |
64 | static | |
65 | UINT32 bmjr_state::screen_update_bmjr(screen_device &screen, bitmap_ind | |
65 | 66 | { |
66 | bmjr_state *state = screen.machine().driver_data<bmjr_state>(); | |
67 | 67 | UINT8 y,ra,chr,gfx,fg=4; |
68 | 68 | UINT16 sy=0,ma=0x100,x; |
69 | UINT8 inv = ( | |
69 | UINT8 inv = ( | |
70 | 70 | |
71 | 71 | for(y = 0; y < 24; y++ ) |
72 | 72 | { |
r17967 | r17968 | |
76 | 76 | |
77 | 77 | for (x = ma; x < ma + 32; x++) |
78 | 78 | { |
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; | |
81 | 81 | |
82 | 82 | /* Display a scanline of a character */ |
83 | 83 | *p++ = BIT(gfx, 7) ? fg : 0; |
r17967 | r17968 | |
356 | 356 | MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ |
357 | 357 | MCFG_SCREEN_SIZE(256, 192) |
358 | 358 | MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 192-1) |
359 | MCFG_SCREEN_UPDATE_ | |
359 | MCFG_SCREEN_UPDATE_DR | |
360 | 360 | MCFG_PALETTE_LENGTH(8) |
361 | 361 | MCFG_GFXDECODE(bmjr) |
362 | 362 |
Previous | 199869 Revisions | Next |