| 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 |