| Previous | 199869 Revisions | Next |
| r17674 Thursday 6th September, 2012 at 12:17:17 UTC by Miodrag Milanović |
|---|
| TILE/TILEMAP modernization part 2 (no whatsnew) |
| [src/mame/drivers] | hitme.c laserbat.c raiden2.c |
| [src/mame/includes] | 1942.h 1943.h 40love.h 4enraya.h aeroboto.h aerofgt.h airbustr.h alpha68k.h ampoker2.h amspdwy.h angelkds.h appoooh.h aquarium.h argus.h arkanoid.h armedf.h ashnojoe.h atarifb.h atarig1.h atarig42.h atarigt.h atarigx2.h atarisy1.h atarisy2.h atetris.h badlands.h bagman.h bankp.h baraduke.h batman.h battlane.h battlex.h bbusters.h bigstrkb.h bionicc.h bking.h blktiger.h blmbycar.h blockade.h bloodbro.h blstroid.h blueprnt.h bogeyman.h bombjack.h brkthru.h bsktball.h bwing.h cabal.h calomega.h canyon.h carjmbre.h cave.h cbasebal.h cclimber.h centiped.h chaknpop.h champbas.h cheekyms.h circus.h circusc.h cischeat.h citycon.h cloak.h clshroad.h combatsc.h commando.h compgolf.h contra.h cop01.h cps1.h crbaloon.h crospang.h crshrace.h cyberbal.h darius.h darkmist.h dbz.h dcon.h dday.h ddragon.h ddragon3.h ddribble.h deadang.h dec8.h deniam.h djboy.h dkong.h docastle.h dogfgt.h dooyong.h dragrace.h drgnmst.h drmicro.h dynduke.h eprom.h equites.h esd16.h espial.h exedexes.h exprraid.h f1gp.h fastfred.h fastlane.h fcombat.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 funworld.h fuukifg2.h fuukifg3.h gaelco.h gaelco2.h gaiden.h galaga.h galaxia.h galaxian.h galaxold.h galivan.h gaplus.h gatron.h gauntlet.h gberet.h gcpinbal.h ginganin.h gladiatr.h glass.h gng.h goal92.h goindol.h goldstar.h gomoku.h gotcha.h gottlieb.h gotya.h grchamp.h gstriker.h gsword.h gumbo.h gundealr.h gunsmoke.h gyruss.h hanaawas.h hcastle.h hexion.h higemaru.h himesiki.h hitme.h hng64.h holeland.h homedata.h homerun.h hyperspt.h hyprduel.h inufuku.h iqblock.h ironhors.h jack.h jackal.h jailbrek.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 legionna.h lemmings.h liberate.h lkage.h lockon.h lordgun.h lucky74.h lvcards.h lwings.h m107.h m52.h m57.h m58.h m62.h m72.h m90.h m92.h macrossp.h madalien.h mainsnk.h mappy.h marineb.h mario.h markham.h mcatadv.h mcr.h mcr3.h mcr68.h meadows.h megasys1.h mermaid.h metlclsh.h metro.h mikie.h mitchell.h mjkjidai.h mosaic.h mrdo.h mrjong.h ms32.h msisaac.h mugsmash.h mustache.h mystston.h mystwarr.h namcona1.h namcos1.h namcos22.h namcos86.h nemesis.h news.h ninjakd2.h nitedrvr.h nmk16.h nova2001.h nycaptor.h offtwall.h ohmygod.h ojankohs.h oneshot.h orbit.h othldrby.h pacland.h pacman.h pandoras.h paradise.h pass.h pbaction.h pgm.h phoenix.h pingpong.h pirates.h pitnrun.h playch10.h playmark.h plygonet.h pokechmp.h polepos.h poolshrk.h pooyan.h popeye.h popper.h portrait.h powerins.h prehisle.h psikyo.h psychic5.h punchout.h pushman.h quizdna.h quizpani.h raiden.h raiden2.h rallyx.h realbrk.h relief.h renegade.h retofinv.h rocnrope.h rpunch.h runaway.h rungun.h sauro.h sbasketb.h sbugger.h scotrsht.h sderby.h segag80r.h segas32.h seibuspi.h seicross.h senjyo.h seta.h sf.h shadfrce.h shangkid.h shaolins.h shisen.h shootout.h shuuz.h sidearms.h sidepckt.h silkroad.h skullxbo.h skydiver.h skykid.h slapfght.h snk.h snk6502.h snk68.h snookr10.h solomon.h sonson.h spdodgeb.h speedbal.h speedspn.h splash.h sprcros2.h sprint2.h sprint4.h sprint8.h srumbler.h sslam.h ssozumo.h ssrj.h ssv.h stadhero.h starshp1.h stfight.h stlforce.h strnskil.h suna8.h superqix.h suprloco.h suprnova.h suprridr.h suprslam.h system1.h system16.h tagteam.h tail2nos.h taito_f3.h taito_l.h taitojc.h tank8.h tankbatt.h tankbust.h taotaido.h targeth.h tatsumi.h tbowl.h tceptor.h tecmo.h tecmo16.h tecmosys.h tehkanwc.h terracre.h tetrisp2.h thedeep.h thepit.h thoop2.h thunderj.h tiamc1.h tigeroad.h timelimt.h timeplt.h tmnt.h toaplan1.h toaplan2.h toki.h toobin.h toypop.h tp84.h trackfld.h travrusa.h triplhnt.h trucocl.h tryout.h tsamurai.h tumbleb.h tunhunt.h turbo.h twin16.h twincobr.h ultratnk.h unico.h usgames.h vastar.h vball.h videopin.h vindictr.h vulgus.h warpwarp.h wc90.h wc90b.h wecleman.h welltris.h wgp.h williams.h wrally.h wwfsstar.h wwfwfest.h xain.h xorworld.h xxmissio.h xybots.h xyonix.h yiear.h yunsun16.h yunsung8.h zac2650.h zaccaria.h zaxxon.h zerozone.h zodiack.h |
| [src/mame/video] | 1942.c 1943.c 40love.c 4enraya.c aeroboto.c aerofgt.c airbustr.c alpha68k.c ampoker2.c amspdwy.c angelkds.c appoooh.c aquarium.c argus.c arkanoid.c armedf.c ashnojoe.c atarifb.c atarig1.c atarig42.c atarigt.c atarigx2.c atarisy1.c atarisy2.c atetris.c badlands.c bagman.c bankp.c baraduke.c batman.c battlane.c battlex.c bbusters.c bigstrkb.c bionicc.c bking.c blktiger.c blmbycar.c blockade.c bloodbro.c blstroid.c blueprnt.c bogeyman.c bombjack.c brkthru.c bsktball.c bwing.c cabal.c calomega.c canyon.c carjmbre.c cave.c cbasebal.c cclimber.c centiped.c chaknpop.c champbas.c cheekyms.c circus.c circusc.c cischeat.c citycon.c cloak.c clshroad.c combatsc.c commando.c compgolf.c contra.c cop01.c cps1.c crbaloon.c crospang.c crshrace.c cyberbal.c darius.c darkmist.c dbz.c dcon.c dday.c ddragon.c ddragon3.c ddribble.c deadang.c dec8.c deniam.c djboy.c dkong.c docastle.c dogfgt.c dooyong.c dragrace.c drgnmst.c drmicro.c dynduke.c eprom.c equites.c esd16.c espial.c exedexes.c exprraid.c f1gp.c fastfred.c fastlane.c fcombat.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 funworld.c fuukifg2.c fuukifg3.c gaelco.c gaelco2.c gaiden.c galaga.c galaxia.c galaxian.c galaxold.c galivan.c gaplus.c gatron.c gauntlet.c gberet.c gcpinbal.c ginganin.c gladiatr.c glass.c gng.c goal92.c goindol.c goldstar.c gomoku.c gotcha.c gottlieb.c gotya.c grchamp.c gstriker.c gsword.c gumbo.c gundealr.c gunsmoke.c gyruss.c hanaawas.c hcastle.c hexion.c higemaru.c himesiki.c hng64.c holeland.c homedata.c homerun.c hyperspt.c hyprduel.c inufuku.c iqblock.c ironhors.c jack.c jackal.c jailbrek.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 legionna.c lemmings.c liberate.c lkage.c lockon.c lordgun.c lucky74.c lvcards.c lwings.c m107.c m52.c m57.c m58.c m62.c m72.c m90.c m92.c macrossp.c madalien.c mainsnk.c mappy.c marineb.c mario.c markham.c mcatadv.c mcr.c mcr3.c mcr68.c meadows.c megasys1.c mermaid.c metlclsh.c metro.c mikie.c mitchell.c mjkjidai.c mosaic.c mrdo.c mrjong.c ms32.c msisaac.c mugsmash.c mustache.c mystston.c mystwarr.c namcona1.c namcos1.c namcos22.c namcos86.c nemesis.c news.c ninjakd2.c nitedrvr.c nmk16.c nova2001.c nycaptor.c offtwall.c ohmygod.c ojankohs.c oneshot.c orbit.c othldrby.c pacland.c pacman.c pandoras.c paradise.c pass.c pbaction.c pgm.c phoenix.c pingpong.c pirates.c pitnrun.c playch10.c playmark.c plygonet.c pokechmp.c polepos.c poolshrk.c pooyan.c popeye.c popper.c portrait.c powerins.c prehisle.c psikyo.c psychic5.c punchout.c pushman.c quizdna.c quizpani.c raiden.c rallyx.c realbrk.c relief.c renegade.c retofinv.c rocnrope.c rpunch.c runaway.c rungun.c sauro.c sbasketb.c sbugger.c scotrsht.c sderby.c segag80r.c segas32.c seibuspi.c seicross.c senjyo.c seta.c sf.c shadfrce.c shangkid.c shaolins.c shisen.c shootout.c shuuz.c sidearms.c sidepckt.c silkroad.c skullxbo.c skydiver.c skykid.c slapfght.c snk.c snk6502.c snk68.c snookr10.c solomon.c sonson.c spdodgeb.c speedbal.c speedspn.c splash.c sprcros2.c sprint2.c sprint4.c sprint8.c srumbler.c sslam.c ssozumo.c ssrj.c ssv.c stadhero.c starshp1.c stfight.c stlforce.c strnskil.c suna8.c superqix.c suprloco.c suprnova.c suprridr.c suprslam.c system1.c system16.c tagteam.c tail2nos.c taito_f3.c taito_l.c taitojc.c tank8.c tankbatt.c tankbust.c taotaido.c targeth.c tatsumi.c tbowl.c tceptor.c tecmo.c tecmo16.c tecmosys.c tehkanwc.c terracre.c tetrisp2.c thedeep.c thepit.c thoop2.c thunderj.c tiamc1.c tigeroad.c timelimt.c timeplt.c tmnt.c toaplan1.c toaplan2.c toki.c toobin.c toypop.c tp84.c trackfld.c travrusa.c triplhnt.c trucocl.c tryout.c tsamurai.c tumbleb.c tunhunt.c turbo.c twin16.c twincobr.c ultratnk.c unico.c usgames.c vastar.c vball.c videopin.c vindictr.c vulgus.c warpwarp.c wc90.c wc90b.c wecleman.c welltris.c wgp.c williams.c wrally.c wwfsstar.c wwfwfest.c xain.c xorworld.c xxmissio.c xybots.c xyonix.c yiear.c yunsun16.c yunsung8.c zac2650.c zaccaria.c zaxxon.c zerozone.c zodiack.c |
| r17673 | r17674 | |
|---|---|---|
| 15 | 15 | DECLARE_WRITE8_MEMBER(sichuan2_videoram_w); |
| 16 | 16 | DECLARE_WRITE8_MEMBER(sichuan2_bankswitch_w); |
| 17 | 17 | DECLARE_WRITE8_MEMBER(sichuan2_paletteram_w); |
| 18 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 18 | 19 | }; |
| 19 | 20 | |
| 20 | 21 |
| r17673 | r17674 | |
|---|---|---|
| 106 | 106 | DECLARE_DRIVER_INIT(grdnstrm); |
| 107 | 107 | DECLARE_DRIVER_INIT(spec2k); |
| 108 | 108 | DECLARE_DRIVER_INIT(bjtwin); |
| 109 | TILEMAP_MAPPER_MEMBER(afega_tilemap_scan_pages); | |
| 110 | TILE_GET_INFO_MEMBER(macross_get_bg0_tile_info); | |
| 111 | TILE_GET_INFO_MEMBER(macross_get_bg1_tile_info); | |
| 112 | TILE_GET_INFO_MEMBER(macross_get_bg2_tile_info); | |
| 113 | TILE_GET_INFO_MEMBER(macross_get_bg3_tile_info); | |
| 114 | TILE_GET_INFO_MEMBER(strahl_get_fg_tile_info); | |
| 115 | TILE_GET_INFO_MEMBER(macross_get_tx_tile_info); | |
| 116 | TILE_GET_INFO_MEMBER(bjtwin_get_bg_tile_info); | |
| 117 | TILE_GET_INFO_MEMBER(get_tile_info_0_8bit); | |
| 109 | 118 | }; |
| 110 | 119 | |
| 111 | 120 |
| r17673 | r17674 | |
|---|---|---|
| 52 | 52 | DECLARE_WRITE8_MEMBER(nitedrvr_out1_w); |
| 53 | 53 | DECLARE_WRITE8_MEMBER(nitedrvr_videoram_w); |
| 54 | 54 | DECLARE_WRITE8_MEMBER(nitedrvr_hvc_w); |
| 55 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 55 | 56 | }; |
| 56 | 57 | |
| 57 | 58 |
| r17673 | r17674 | |
|---|---|---|
| 17 | 17 | DECLARE_WRITE16_MEMBER(OKIM6295_bankswitch_w); |
| 18 | 18 | DECLARE_WRITE16_MEMBER(targeth_coin_counter_w); |
| 19 | 19 | DECLARE_WRITE16_MEMBER(targeth_vram_w); |
| 20 | TILE_GET_INFO_MEMBER(get_tile_info_targeth_screen0); | |
| 21 | TILE_GET_INFO_MEMBER(get_tile_info_targeth_screen1); | |
| 20 | 22 | }; |
| 21 | 23 | |
| 22 | 24 |
| r17673 | r17674 | |
|---|---|---|
| 13 | 13 | DECLARE_WRITE8_MEMBER(sbugger_videoram_w); |
| 14 | 14 | DECLARE_WRITE8_MEMBER(sbugger_videoram_attr_w); |
| 15 | 15 | DECLARE_WRITE_LINE_MEMBER(sbugger_interrupt); |
| 16 | TILE_GET_INFO_MEMBER(get_sbugger_tile_info); | |
| 16 | 17 | }; |
| 17 | 18 | |
| 18 | 19 |
| r17673 | r17674 | |
|---|---|---|
| 98 | 98 | DECLARE_DRIVER_INIT(colt); |
| 99 | 99 | DECLARE_DRIVER_INIT(bronx); |
| 100 | 100 | DECLARE_DRIVER_INIT(nycaptor); |
| 101 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 101 | 102 | }; |
| 102 | 103 | |
| 103 | 104 |
| r17673 | r17674 | |
|---|---|---|
| 96 | 96 | DECLARE_DRIVER_INIT(pkladies); |
| 97 | 97 | DECLARE_DRIVER_INIT(blockbl); |
| 98 | 98 | DECLARE_DRIVER_INIT(dokaben); |
| 99 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 99 | 100 | }; |
| 100 | 101 | |
| 101 | 102 |
| r17673 | r17674 | |
|---|---|---|
| 55 | 55 | DECLARE_WRITE8_MEMBER(blktiger_video_control_w); |
| 56 | 56 | DECLARE_WRITE8_MEMBER(blktiger_video_enable_w); |
| 57 | 57 | DECLARE_WRITE8_MEMBER(blktiger_screen_layout_w); |
| 58 | TILEMAP_MAPPER_MEMBER(bg8x4_scan); | |
| 59 | TILEMAP_MAPPER_MEMBER(bg4x8_scan); | |
| 60 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 61 | TILE_GET_INFO_MEMBER(get_tx_tile_info); | |
| 58 | 62 | }; |
| 59 | 63 | |
| 60 | 64 |
| r17673 | r17674 | |
|---|---|---|
| 36 | 36 | DECLARE_WRITE16_MEMBER(dynduke_gfxbank_w); |
| 37 | 37 | DECLARE_WRITE16_MEMBER(dynduke_control_w); |
| 38 | 38 | DECLARE_DRIVER_INIT(dynduke); |
| 39 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 40 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 41 | TILE_GET_INFO_MEMBER(get_tx_tile_info); | |
| 39 | 42 | }; |
| 40 | 43 | |
| 41 | 44 |
| r17673 | r17674 | |
|---|---|---|
| 21 | 21 | DECLARE_READ8_MEMBER(dsw2_2r); |
| 22 | 22 | DECLARE_READ8_MEMBER(dsw2_3r); |
| 23 | 23 | DECLARE_READ8_MEMBER(dsw2_4r); |
| 24 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 24 | 25 | }; |
| 25 | 26 | |
| 26 | 27 |
| r17673 | r17674 | |
|---|---|---|
| 28 | 28 | DECLARE_WRITE8_MEMBER(tryout_vram_bankswitch_w); |
| 29 | 29 | DECLARE_WRITE8_MEMBER(tryout_flipscreen_w); |
| 30 | 30 | DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); |
| 31 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 32 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 33 | TILEMAP_MAPPER_MEMBER(get_fg_memory_offset); | |
| 34 | TILEMAP_MAPPER_MEMBER(get_bg_memory_offset); | |
| 31 | 35 | }; |
| 32 | 36 | |
| 33 | 37 |
| r17673 | r17674 | |
|---|---|---|
| 47 | 47 | DECLARE_READ16_MEMBER(rng_ttl_ram_r); |
| 48 | 48 | DECLARE_WRITE16_MEMBER(rng_ttl_ram_w); |
| 49 | 49 | DECLARE_WRITE16_MEMBER(rng_936_videoram_w); |
| 50 | TILE_GET_INFO_MEMBER(ttl_get_tile_info); | |
| 51 | TILE_GET_INFO_MEMBER(get_rng_936_tile_info); | |
| 50 | 52 | }; |
| 51 | 53 | |
| 52 | 54 |
| r17673 | r17674 | |
|---|---|---|
| 24 | 24 | DECLARE_DRIVER_INIT(klaxp); |
| 25 | 25 | DECLARE_DRIVER_INIT(guts); |
| 26 | 26 | DECLARE_DRIVER_INIT(eprom); |
| 27 | TILE_GET_INFO_MEMBER(get_alpha_tile_info); | |
| 28 | TILE_GET_INFO_MEMBER(get_playfield_tile_info); | |
| 29 | TILE_GET_INFO_MEMBER(guts_get_playfield_tile_info); | |
| 27 | 30 | }; |
| 28 | 31 | |
| 29 | 32 |
| r17673 | r17674 | |
|---|---|---|
| 25 | 25 | DECLARE_WRITE8_MEMBER(rocnrope_flipscreen_w); |
| 26 | 26 | DECLARE_DRIVER_INIT(rocnrope); |
| 27 | 27 | DECLARE_DRIVER_INIT(rocnropk); |
| 28 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 28 | 29 | }; |
| 29 | 30 | |
| 30 | 31 | /*----------- defined in video/rocnrope.c -----------*/ |
| r17673 | r17674 | |
|---|---|---|
| 68 | 68 | DECLARE_WRITE16_MEMBER(wbbc97_bitmap_enable_w); |
| 69 | 69 | DECLARE_WRITE16_MEMBER(pspikesb_oki_banking_w); |
| 70 | 70 | DECLARE_WRITE16_MEMBER(aerfboo2_okim6295_banking_w); |
| 71 | TILE_GET_INFO_MEMBER(get_pspikes_tile_info); | |
| 72 | TILE_GET_INFO_MEMBER(karatblz_bg1_tile_info); | |
| 73 | TILE_GET_INFO_MEMBER(karatblz_bg2_tile_info); | |
| 74 | TILE_GET_INFO_MEMBER(spinlbrk_bg1_tile_info); | |
| 75 | TILE_GET_INFO_MEMBER(get_bg1_tile_info); | |
| 76 | TILE_GET_INFO_MEMBER(get_bg2_tile_info); | |
| 71 | 77 | }; |
| 72 | 78 | |
| 73 | 79 |
| r17673 | r17674 | |
|---|---|---|
| 41 | 41 | DECLARE_WRITE8_MEMBER(docastle_flipscreen_on_w); |
| 42 | 42 | DECLARE_READ8_MEMBER(idsoccer_adpcm_status_r); |
| 43 | 43 | DECLARE_WRITE8_MEMBER(idsoccer_adpcm_w); |
| 44 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 44 | 45 | }; |
| 45 | 46 | |
| 46 | 47 |
| r17673 | r17674 | |
|---|---|---|
| 22 | 22 | DECLARE_WRITE8_MEMBER(mainsnk_fgram_w); |
| 23 | 23 | DECLARE_WRITE8_MEMBER(mainsnk_bgram_w); |
| 24 | 24 | DECLARE_CUSTOM_INPUT_MEMBER(mainsnk_sound_r); |
| 25 | TILEMAP_MAPPER_MEMBER(marvins_tx_scan_cols); | |
| 26 | TILE_GET_INFO_MEMBER(get_tx_tile_info); | |
| 27 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 25 | 28 | }; |
| 26 | 29 | |
| 27 | 30 |
| r17673 | r17674 | |
|---|---|---|
| 42 | 42 | DECLARE_WRITE8_MEMBER(mystston_ay8910_select_w); |
| 43 | 43 | DECLARE_WRITE8_MEMBER(mystston_video_control_w); |
| 44 | 44 | DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); |
| 45 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 46 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 45 | 47 | }; |
| 46 | 48 | |
| 47 | 49 |
| r17673 | r17674 | |
|---|---|---|
| 34 | 34 | DECLARE_READ8_MEMBER(hitme_port_3_r); |
| 35 | 35 | DECLARE_WRITE8_MEMBER(output_port_0_w); |
| 36 | 36 | DECLARE_WRITE8_MEMBER(output_port_1_w); |
| 37 | TILE_GET_INFO_MEMBER(get_hitme_tile_info); | |
| 37 | 38 | }; |
| 38 | 39 | |
| 39 | 40 |
| r17673 | r17674 | |
|---|---|---|
| 74 | 74 | DECLARE_DRIVER_INIT(senjyo); |
| 75 | 75 | DECLARE_DRIVER_INIT(starfore); |
| 76 | 76 | DECLARE_DRIVER_INIT(starforc); |
| 77 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 78 | TILE_GET_INFO_MEMBER(senjyo_bg1_tile_info); | |
| 79 | TILE_GET_INFO_MEMBER(starforc_bg1_tile_info); | |
| 80 | TILE_GET_INFO_MEMBER(get_bg2_tile_info); | |
| 81 | TILE_GET_INFO_MEMBER(get_bg3_tile_info); | |
| 77 | 82 | }; |
| 78 | 83 | |
| 79 | 84 |
| r17673 | r17674 | |
|---|---|---|
| 30 | 30 | UINT8 m_SN76496_latch; |
| 31 | 31 | DECLARE_WRITE8_MEMBER( konami_SN76496_latch_w ) { m_SN76496_latch = data; }; |
| 32 | 32 | DECLARE_WRITE8_MEMBER( konami_SN76496_w ) { m_sn->write(space, offset, m_SN76496_latch); }; |
| 33 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 33 | 34 | }; |
| 34 | 35 | |
| 35 | 36 |
| r17673 | r17674 | |
|---|---|---|
| 33 | 33 | DECLARE_WRITE8_MEMBER(sonson_colorram_w); |
| 34 | 34 | DECLARE_WRITE8_MEMBER(sonson_scrollx_w); |
| 35 | 35 | DECLARE_WRITE8_MEMBER(sonson_flipscreen_w); |
| 36 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 36 | 37 | }; |
| 37 | 38 | |
| 38 | 39 |
| r17673 | r17674 | |
|---|---|---|
| 44 | 44 | DECLARE_WRITE16_MEMBER(sslam_snd_w); |
| 45 | 45 | DECLARE_DRIVER_INIT(sslam); |
| 46 | 46 | DECLARE_DRIVER_INIT(powerbls); |
| 47 | TILE_GET_INFO_MEMBER(get_sslam_tx_tile_info); | |
| 48 | TILE_GET_INFO_MEMBER(get_sslam_md_tile_info); | |
| 49 | TILE_GET_INFO_MEMBER(get_sslam_bg_tile_info); | |
| 50 | TILE_GET_INFO_MEMBER(get_powerbls_bg_tile_info); | |
| 47 | 51 | }; |
| 48 | 52 | |
| 49 | 53 |
| r17673 | r17674 | |
|---|---|---|
| 26 | 26 | DECLARE_WRITE16_MEMBER(deadang_bank_w); |
| 27 | 27 | DECLARE_DRIVER_INIT(deadang); |
| 28 | 28 | DECLARE_DRIVER_INIT(ghunter); |
| 29 | TILEMAP_MAPPER_MEMBER(bg_scan); | |
| 30 | TILE_GET_INFO_MEMBER(get_pf3_tile_info); | |
| 31 | TILE_GET_INFO_MEMBER(get_pf2_tile_info); | |
| 32 | TILE_GET_INFO_MEMBER(get_pf1_tile_info); | |
| 33 | TILE_GET_INFO_MEMBER(get_text_tile_info); | |
| 29 | 34 | }; |
| 30 | 35 | |
| 31 | 36 |
| r17673 | r17674 | |
|---|---|---|
| 48 | 48 | DECLARE_WRITE8_MEMBER(hcastle_pf1_control_w); |
| 49 | 49 | DECLARE_WRITE8_MEMBER(hcastle_pf2_control_w); |
| 50 | 50 | DECLARE_WRITE8_MEMBER(sound_bank_w); |
| 51 | TILEMAP_MAPPER_MEMBER(tilemap_scan); | |
| 52 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 53 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 51 | 54 | }; |
| 52 | 55 | |
| 53 | 56 |
| r17673 | r17674 | |
|---|---|---|
| 98 | 98 | DECLARE_READ8_MEMBER(wardner_sprite_r); |
| 99 | 99 | DECLARE_WRITE8_MEMBER(wardner_sprite_w); |
| 100 | 100 | DECLARE_DRIVER_INIT(twincobr); |
| 101 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 102 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 103 | TILE_GET_INFO_MEMBER(get_tx_tile_info); | |
| 101 | 104 | }; |
| 102 | 105 | |
| 103 | 106 |
| r17673 | r17674 | |
|---|---|---|
| 79 | 79 | DECLARE_READ8_MEMBER(bking_pos_r); |
| 80 | 80 | DECLARE_WRITE8_MEMBER(unk_w); |
| 81 | 81 | DECLARE_WRITE8_MEMBER(port_b_w); |
| 82 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 82 | 83 | }; |
| 83 | 84 | |
| 84 | 85 |
| r17673 | r17674 | |
|---|---|---|
| 19 | 19 | DECLARE_WRITE8_MEMBER(hexion_gfxrom_select_w); |
| 20 | 20 | DECLARE_WRITE_LINE_MEMBER(hexion_irq_ack_w); |
| 21 | 21 | DECLARE_WRITE_LINE_MEMBER(hexion_nmi_ack_w); |
| 22 | TILE_GET_INFO_MEMBER(get_tile_info0); | |
| 23 | TILE_GET_INFO_MEMBER(get_tile_info1); | |
| 22 | 24 | }; |
| 23 | 25 | |
| 24 | 26 |
| r17673 | r17674 | |
|---|---|---|
| 36 | 36 | DECLARE_WRITE8_MEMBER(labyrunr_bankswitch_w); |
| 37 | 37 | DECLARE_WRITE8_MEMBER(labyrunr_vram1_w); |
| 38 | 38 | DECLARE_WRITE8_MEMBER(labyrunr_vram2_w); |
| 39 | TILE_GET_INFO_MEMBER(get_tile_info0); | |
| 40 | TILE_GET_INFO_MEMBER(get_tile_info1); | |
| 39 | 41 | }; |
| 40 | 42 | |
| 41 | 43 |
| r17673 | r17674 | |
|---|---|---|
| 61 | 61 | DECLARE_DRIVER_INIT(sprint1); |
| 62 | 62 | DECLARE_DRIVER_INIT(sprint2); |
| 63 | 63 | DECLARE_DRIVER_INIT(dominos); |
| 64 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 64 | 65 | }; |
| 65 | 66 | |
| 66 | 67 |
| r17673 | r17674 | |
|---|---|---|
| 42 | 42 | DECLARE_WRITE16_MEMBER(ddragon3_bg_videoram_w); |
| 43 | 43 | DECLARE_WRITE16_MEMBER(ddragon3_fg_videoram_w); |
| 44 | 44 | DECLARE_WRITE8_MEMBER(oki_bankswitch_w); |
| 45 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 46 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 45 | 47 | }; |
| 46 | 48 | |
| 47 | 49 |
| r17673 | r17674 | |
|---|---|---|
| 48 | 48 | DECLARE_READ8_MEMBER(dragrace_input_r); |
| 49 | 49 | DECLARE_READ8_MEMBER(dragrace_steering_r); |
| 50 | 50 | DECLARE_READ8_MEMBER(dragrace_scanline_r); |
| 51 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 51 | 52 | }; |
| 52 | 53 | |
| 53 | 54 |
| r17673 | r17674 | |
|---|---|---|
| 39 | 39 | device_t *m_discrete; |
| 40 | 40 | DECLARE_WRITE8_MEMBER(orbit_misc_w); |
| 41 | 41 | DECLARE_WRITE8_MEMBER(orbit_playfield_w); |
| 42 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 42 | 43 | }; |
| 43 | 44 | |
| 44 | 45 |
| r17673 | r17674 | |
|---|---|---|
| 102 | 102 | DECLARE_DRIVER_INIT(ejanhs); |
| 103 | 103 | DECLARE_DRIVER_INIT(sys386f2); |
| 104 | 104 | DECLARE_DRIVER_INIT(rdft2us); |
| 105 | TILE_GET_INFO_MEMBER(get_text_tile_info); | |
| 106 | TILE_GET_INFO_MEMBER(get_back_tile_info); | |
| 107 | TILE_GET_INFO_MEMBER(get_mid_tile_info); | |
| 108 | TILE_GET_INFO_MEMBER(get_fore_tile_info); | |
| 105 | 109 | }; |
| 106 | 110 | |
| 107 | 111 |
| r17673 | r17674 | |
|---|---|---|
| 32 | 32 | DECLARE_WRITE8_MEMBER(sauro_scroll_fg_w); |
| 33 | 33 | DECLARE_WRITE8_MEMBER(adpcm_w); |
| 34 | 34 | DECLARE_DRIVER_INIT(tecfri); |
| 35 | TILE_GET_INFO_MEMBER(get_tile_info_bg); | |
| 36 | TILE_GET_INFO_MEMBER(get_tile_info_fg); | |
| 35 | 37 | }; |
| 36 | 38 | |
| 37 | 39 |
| r17673 | r17674 | |
|---|---|---|
| 40 | 40 | DECLARE_WRITE8_MEMBER(out_lamps0); |
| 41 | 41 | DECLARE_WRITE8_MEMBER(out_lamps1); |
| 42 | 42 | DECLARE_DRIVER_INIT(gaplus); |
| 43 | TILEMAP_MAPPER_MEMBER(tilemap_scan); | |
| 44 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 43 | 45 | }; |
| 44 | 46 | |
| 45 | 47 |
| r17673 | r17674 | |
|---|---|---|
| 28 | 28 | DECLARE_WRITE8_MEMBER(nmi_enable_w); |
| 29 | 29 | DECLARE_WRITE8_MEMBER(pcm_set_w); |
| 30 | 30 | DECLARE_WRITE8_MEMBER(drmicro_videoram_w); |
| 31 | TILE_GET_INFO_MEMBER(get_bg1_tile_info); | |
| 32 | TILE_GET_INFO_MEMBER(get_bg2_tile_info); | |
| 31 | 33 | }; |
| 32 | 34 | |
| 33 | 35 |
| r17673 | r17674 | |
|---|---|---|
| 98 | 98 | DECLARE_DRIVER_INIT(seganinj); |
| 99 | 99 | DECLARE_DRIVER_INIT(gardia); |
| 100 | 100 | DECLARE_DRIVER_INIT(spatter); |
| 101 | TILE_GET_INFO_MEMBER(tile_get_info); | |
| 101 | 102 | }; |
| 102 | 103 | |
| 103 | 104 |
| r17673 | r17674 | |
|---|---|---|
| 25 | 25 | DECLARE_WRITE16_MEMBER(powerins_paletteram16_w); |
| 26 | 26 | DECLARE_WRITE16_MEMBER(powerins_vram_0_w); |
| 27 | 27 | DECLARE_WRITE16_MEMBER(powerins_vram_1_w); |
| 28 | TILE_GET_INFO_MEMBER(get_tile_info_0); | |
| 29 | TILEMAP_MAPPER_MEMBER(powerins_get_memory_offset_0); | |
| 30 | TILE_GET_INFO_MEMBER(get_tile_info_1); | |
| 28 | 31 | }; |
| 29 | 32 | |
| 30 | 33 |
| r17673 | r17674 | |
|---|---|---|
| 39 | 39 | DECLARE_WRITE8_MEMBER(exedexes_colorram_w); |
| 40 | 40 | DECLARE_WRITE8_MEMBER(exedexes_c804_w); |
| 41 | 41 | DECLARE_WRITE8_MEMBER(exedexes_gfxctrl_w); |
| 42 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 43 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 44 | TILE_GET_INFO_MEMBER(get_tx_tile_info); | |
| 45 | TILEMAP_MAPPER_MEMBER(exedexes_bg_tilemap_scan); | |
| 46 | TILEMAP_MAPPER_MEMBER(exedexes_fg_tilemap_scan); | |
| 42 | 47 | }; |
| 43 | 48 | |
| 44 | 49 |
| r17673 | r17674 | |
|---|---|---|
| 124 | 124 | DECLARE_DRIVER_INIT(senknow); |
| 125 | 125 | DECLARE_DRIVER_INIT(galpani4); |
| 126 | 126 | DECLARE_DRIVER_INIT(ryouran); |
| 127 | TILE_GET_INFO_MEMBER(get_tilemap_A_tile_info); | |
| 128 | TILE_GET_INFO_MEMBER(get_tilemap_B_tile_info); | |
| 127 | 129 | }; |
| 128 | 130 | |
| 129 | 131 |
| r17673 | r17674 | |
|---|---|---|
| 33 | 33 | DECLARE_WRITE8_MEMBER(multiply_w); |
| 34 | 34 | DECLARE_WRITE8_MEMBER(flkatck_k007121_w); |
| 35 | 35 | DECLARE_WRITE8_MEMBER(flkatck_k007121_regs_w); |
| 36 | TILE_GET_INFO_MEMBER(get_tile_info_A); | |
| 37 | TILE_GET_INFO_MEMBER(get_tile_info_B); | |
| 36 | 38 | }; |
| 37 | 39 | |
| 38 | 40 |
| r17673 | r17674 | |
|---|---|---|
| 22 | 22 | DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); |
| 23 | 23 | DECLARE_DRIVER_INIT(shootouj); |
| 24 | 24 | DECLARE_DRIVER_INIT(shootout); |
| 25 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 26 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 25 | 27 | }; |
| 26 | 28 | |
| 27 | 29 |
| r17673 | r17674 | |
|---|---|---|
| 54 | 54 | DECLARE_WRITE8_MEMBER(contra_text_cram_w); |
| 55 | 55 | DECLARE_WRITE8_MEMBER(contra_K007121_ctrl_0_w); |
| 56 | 56 | DECLARE_WRITE8_MEMBER(contra_K007121_ctrl_1_w); |
| 57 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 58 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 59 | TILE_GET_INFO_MEMBER(get_tx_tile_info); | |
| 57 | 60 | }; |
| 58 | 61 | |
| 59 | 62 |
| r17673 | r17674 | |
|---|---|---|
| 45 | 45 | DECLARE_DRIVER_INIT(torus); |
| 46 | 46 | DECLARE_DRIVER_INIT(paradise); |
| 47 | 47 | DECLARE_DRIVER_INIT(tgtball); |
| 48 | TILE_GET_INFO_MEMBER(get_tile_info_0); | |
| 49 | TILE_GET_INFO_MEMBER(get_tile_info_1); | |
| 50 | TILE_GET_INFO_MEMBER(get_tile_info_2); | |
| 48 | 51 | }; |
| 49 | 52 | |
| 50 | 53 | /*----------- defined in video/paradise.c -----------*/ |
| r17673 | r17674 | |
|---|---|---|
| 47 | 47 | DECLARE_WRITE8_MEMBER(chaknpop_attrram_w); |
| 48 | 48 | DECLARE_WRITE8_MEMBER(unknown_port_1_w); |
| 49 | 49 | DECLARE_WRITE8_MEMBER(unknown_port_2_w); |
| 50 | TILE_GET_INFO_MEMBER(chaknpop_get_tx_tile_info); | |
| 50 | 51 | }; |
| 51 | 52 | |
| 52 | 53 |
| r17673 | r17674 | |
|---|---|---|
| 55 | 55 | DECLARE_DRIVER_INIT(fitfight); |
| 56 | 56 | DECLARE_DRIVER_INIT(histryma); |
| 57 | 57 | DECLARE_DRIVER_INIT(bbprot); |
| 58 | TILE_GET_INFO_MEMBER(get_fof_bak_tile_info); | |
| 59 | TILE_GET_INFO_MEMBER(get_fof_mid_tile_info); | |
| 60 | TILE_GET_INFO_MEMBER(get_fof_txt_tile_info); | |
| 58 | 61 | }; |
| 59 | 62 | |
| 60 | 63 |
| r17673 | r17674 | |
|---|---|---|
| 63 | 63 | DECLARE_WRITE8_MEMBER(ym2203_write_a); |
| 64 | 64 | DECLARE_WRITE8_MEMBER(ym2203_write_b); |
| 65 | 65 | DECLARE_DRIVER_INIT(ashnojoe); |
| 66 | TILE_GET_INFO_MEMBER(get_joe_tile_info); | |
| 67 | TILE_GET_INFO_MEMBER(get_joe_tile_info_2); | |
| 68 | TILE_GET_INFO_MEMBER(get_joe_tile_info_3); | |
| 69 | TILE_GET_INFO_MEMBER(get_joe_tile_info_4); | |
| 70 | TILE_GET_INFO_MEMBER(get_joe_tile_info_5); | |
| 71 | TILE_GET_INFO_MEMBER(get_joe_tile_info_6); | |
| 72 | TILE_GET_INFO_MEMBER(get_joe_tile_info_7); | |
| 66 | 73 | }; |
| 67 | 74 | |
| 68 | 75 |
| r17673 | r17674 | |
|---|---|---|
| 52 | 52 | DECLARE_WRITE8_MEMBER(ddribble_bg_videoram_w); |
| 53 | 53 | DECLARE_READ8_MEMBER(ddribble_vlm5030_busy_r); |
| 54 | 54 | DECLARE_WRITE8_MEMBER(ddribble_vlm5030_ctrl_w); |
| 55 | TILEMAP_MAPPER_MEMBER(tilemap_scan); | |
| 56 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 57 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 55 | 58 | }; |
| 56 | 59 | |
| 57 | 60 | /*----------- defined in video/ddribble.c -----------*/ |
| r17673 | r17674 | |
|---|---|---|
| 31 | 31 | DECLARE_DRIVER_INIT(amazon); |
| 32 | 32 | DECLARE_DRIVER_INIT(amatelas); |
| 33 | 33 | DECLARE_DRIVER_INIT(horekid); |
| 34 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 35 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 34 | 36 | }; |
| 35 | 37 | |
| 36 | 38 |
| r17673 | r17674 | |
|---|---|---|
| 66 | 66 | DECLARE_WRITE8_MEMBER(butasan_pagedram_w); |
| 67 | 67 | DECLARE_WRITE8_MEMBER(valtric_unknown_w); |
| 68 | 68 | DECLARE_WRITE8_MEMBER(butasan_unknown_w); |
| 69 | TILE_GET_INFO_MEMBER(argus_get_tx_tile_info); | |
| 70 | TILE_GET_INFO_MEMBER(argus_get_bg0_tile_info); | |
| 71 | TILE_GET_INFO_MEMBER(argus_get_bg1_tile_info); | |
| 72 | TILE_GET_INFO_MEMBER(valtric_get_tx_tile_info); | |
| 73 | TILE_GET_INFO_MEMBER(valtric_get_bg_tile_info); | |
| 74 | TILE_GET_INFO_MEMBER(butasan_get_tx_tile_info); | |
| 75 | TILE_GET_INFO_MEMBER(butasan_get_bg0_tile_info); | |
| 76 | TILE_GET_INFO_MEMBER(butasan_get_bg1_tile_info); | |
| 69 | 77 | }; |
| 70 | 78 | |
| 71 | 79 |
| r17673 | r17674 | |
|---|---|---|
| 63 | 63 | DECLARE_WRITE8_MEMBER(grchamp_portB_0_w); |
| 64 | 64 | DECLARE_WRITE8_MEMBER(grchamp_portA_2_w); |
| 65 | 65 | DECLARE_WRITE8_MEMBER(grchamp_portB_2_w); |
| 66 | TILE_GET_INFO_MEMBER(get_text_tile_info); | |
| 67 | TILE_GET_INFO_MEMBER(get_left_tile_info); | |
| 68 | TILE_GET_INFO_MEMBER(get_right_tile_info); | |
| 69 | TILE_GET_INFO_MEMBER(get_center_tile_info); | |
| 70 | TILEMAP_MAPPER_MEMBER(get_memory_offset); | |
| 66 | 71 | }; |
| 67 | 72 | |
| 68 | 73 | /* Discrete Sound Input Nodes */ |
| r17673 | r17674 | |
|---|---|---|
| 76 | 76 | DECLARE_DRIVER_INIT(bygone); |
| 77 | 77 | DECLARE_DRIVER_INIT(lkage); |
| 78 | 78 | DECLARE_DRIVER_INIT(lkageb); |
| 79 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 80 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 81 | TILE_GET_INFO_MEMBER(get_tx_tile_info); | |
| 79 | 82 | }; |
| 80 | 83 | |
| 81 | 84 | /*----------- defined in machine/lkage.c -----------*/ |
| r17673 | r17674 | |
|---|---|---|
| 73 | 73 | DECLARE_DRIVER_INIT(mastninj); |
| 74 | 74 | DECLARE_DRIVER_INIT(shadoww); |
| 75 | 75 | DECLARE_DRIVER_INIT(wildfang); |
| 76 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 77 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 78 | TILE_GET_INFO_MEMBER(get_fg_tile_info_raiga); | |
| 79 | TILE_GET_INFO_MEMBER(get_tx_tile_info); | |
| 76 | 80 | }; |
| 77 | 81 | |
| 78 | 82 |
| r17673 | r17674 | |
|---|---|---|
| 59 | 59 | DECLARE_DRIVER_INIT(futspy); |
| 60 | 60 | DECLARE_DRIVER_INIT(zaxxonj); |
| 61 | 61 | DECLARE_DRIVER_INIT(szaxxon); |
| 62 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 63 | TILE_GET_INFO_MEMBER(zaxxon_get_fg_tile_info); | |
| 64 | TILE_GET_INFO_MEMBER(razmataz_get_fg_tile_info); | |
| 65 | TILE_GET_INFO_MEMBER(congo_get_fg_tile_info); | |
| 62 | 66 | }; |
| 63 | 67 | |
| 64 | 68 |
| r17673 | r17674 | |
|---|---|---|
| 25 | 25 | DECLARE_WRITE8_MEMBER(ay8910_portb_w); |
| 26 | 26 | DECLARE_DRIVER_INIT(shangkid); |
| 27 | 27 | DECLARE_DRIVER_INIT(chinhero); |
| 28 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 28 | 29 | }; |
| 29 | 30 | |
| 30 | 31 |
| r17673 | r17674 | |
|---|---|---|
| 59 | 59 | UINT8 m_SN76496_latch; |
| 60 | 60 | DECLARE_WRITE8_MEMBER( konami_SN76496_latch_w ) { m_SN76496_latch = data; }; |
| 61 | 61 | DECLARE_WRITE8_MEMBER( konami_SN76496_w ) { m_sn->write(space, offset, m_SN76496_latch); }; |
| 62 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 62 | 63 | }; |
| 63 | 64 | |
| 64 | 65 |
| r17673 | r17674 | |
|---|---|---|
| 53 | 53 | DECLARE_DRIVER_INIT(boggy84); |
| 54 | 54 | DECLARE_DRIVER_INIT(jumpcoas); |
| 55 | 55 | DECLARE_DRIVER_INIT(boggy84b); |
| 56 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 57 | TILE_GET_INFO_MEMBER(imago_get_tile_info_bg); | |
| 58 | TILE_GET_INFO_MEMBER(imago_get_tile_info_fg); | |
| 59 | TILE_GET_INFO_MEMBER(imago_get_tile_info_web); | |
| 56 | 60 | }; |
| 57 | 61 | |
| 58 | 62 |
| r17673 | r17674 | |
|---|---|---|
| 51 | 51 | DECLARE_DRIVER_INIT(chelnovu); |
| 52 | 52 | DECLARE_DRIVER_INIT(chelnovj); |
| 53 | 53 | DECLARE_DRIVER_INIT(chelnov); |
| 54 | TILE_GET_INFO_MEMBER(get_fix_tile_info); | |
| 54 | 55 | }; |
| 55 | 56 | |
| 56 | 57 | enum { |
| r17673 | r17674 | |
|---|---|---|
| 48 | 48 | DECLARE_WRITE8_MEMBER(trojan_bg2_scrollx_w); |
| 49 | 49 | DECLARE_WRITE8_MEMBER(trojan_bg2_image_w); |
| 50 | 50 | DECLARE_WRITE8_MEMBER(msm5205_w); |
| 51 | TILEMAP_MAPPER_MEMBER(get_bg2_memory_offset); | |
| 52 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 53 | TILE_GET_INFO_MEMBER(lwings_get_bg1_tile_info); | |
| 54 | TILE_GET_INFO_MEMBER(trojan_get_bg1_tile_info); | |
| 55 | TILE_GET_INFO_MEMBER(get_bg2_tile_info); | |
| 51 | 56 | }; |
| 52 | 57 | |
| 53 | 58 |
| r17673 | r17674 | |
|---|---|---|
| 51 | 51 | DECLARE_DRIVER_INIT(spnchotj); |
| 52 | 52 | DECLARE_DRIVER_INIT(punchout); |
| 53 | 53 | DECLARE_DRIVER_INIT(spnchout); |
| 54 | TILE_GET_INFO_MEMBER(top_get_info); | |
| 55 | TILE_GET_INFO_MEMBER(armwrest_top_get_info); | |
| 56 | TILE_GET_INFO_MEMBER(bot_get_info); | |
| 57 | TILE_GET_INFO_MEMBER(armwrest_bot_get_info); | |
| 58 | TILE_GET_INFO_MEMBER(bs1_get_info); | |
| 59 | TILE_GET_INFO_MEMBER(bs2_get_info); | |
| 60 | TILE_GET_INFO_MEMBER(armwrest_fg_get_info); | |
| 61 | TILEMAP_MAPPER_MEMBER(armwrest_bs1_scan); | |
| 62 | TILEMAP_MAPPER_MEMBER(armwrest_bs1_scan_flipx); | |
| 54 | 63 | }; |
| 55 | 64 | |
| 56 | 65 |
| r17673 | r17674 | |
|---|---|---|
| 41 | 41 | DECLARE_DRIVER_INIT(rygar); |
| 42 | 42 | DECLARE_DRIVER_INIT(backfirt); |
| 43 | 43 | DECLARE_DRIVER_INIT(gemini); |
| 44 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 45 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 46 | TILE_GET_INFO_MEMBER(gemini_get_bg_tile_info); | |
| 47 | TILE_GET_INFO_MEMBER(gemini_get_fg_tile_info); | |
| 48 | TILE_GET_INFO_MEMBER(get_tx_tile_info); | |
| 44 | 49 | }; |
| 45 | 50 | |
| 46 | 51 |
| r17673 | r17674 | |
|---|---|---|
| 36 | 36 | DECLARE_WRITE8_MEMBER(kopunch_gfxbank_w); |
| 37 | 37 | DECLARE_INPUT_CHANGED_MEMBER(left_coin_inserted); |
| 38 | 38 | DECLARE_INPUT_CHANGED_MEMBER(right_coin_inserted); |
| 39 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 40 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 39 | 41 | }; |
| 40 | 42 | |
| 41 | 43 | /*----------- defined in video/kopunch.c -----------*/ |
| r17673 | r17674 | |
|---|---|---|
| 19 | 19 | DECLARE_WRITE8_MEMBER(news_fgram_w); |
| 20 | 20 | DECLARE_WRITE8_MEMBER(news_bgram_w); |
| 21 | 21 | DECLARE_WRITE8_MEMBER(news_bgpic_w); |
| 22 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 23 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 22 | 24 | }; |
| 23 | 25 | |
| 24 | 26 |
| r17673 | r17674 | |
|---|---|---|
| 18 | 18 | DECLARE_WRITE16_MEMBER(latch_w); |
| 19 | 19 | DECLARE_READ16_MEMBER(leta_r); |
| 20 | 20 | DECLARE_READ16_MEMBER(special_port0_r); |
| 21 | TILE_GET_INFO_MEMBER(get_playfield_tile_info); | |
| 21 | 22 | }; |
| 22 | 23 | |
| 23 | 24 |
| r17673 | r17674 | |
|---|---|---|
| 47 | 47 | DECLARE_WRITE8_MEMBER(i8039_T0_w); |
| 48 | 48 | DECLARE_WRITE8_MEMBER(finalizr_videoctrl_w); |
| 49 | 49 | DECLARE_DRIVER_INIT(finalizr); |
| 50 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 51 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 50 | 52 | }; |
| 51 | 53 | |
| 52 | 54 |
| r17673 | r17674 | |
|---|---|---|
| 16 | 16 | DECLARE_WRITE16_MEMBER(eeprom_serial_clock_w); |
| 17 | 17 | DECLARE_WRITE16_MEMBER(eeprom_data_w); |
| 18 | 18 | DECLARE_DRIVER_INIT(xorworld); |
| 19 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 19 | 20 | }; |
| 20 | 21 | |
| 21 | 22 |
| r17673 | r17674 | |
|---|---|---|
| 52 | 52 | DECLARE_DRIVER_INIT(cclimberj); |
| 53 | 53 | DECLARE_DRIVER_INIT(cannonb2); |
| 54 | 54 | DECLARE_DRIVER_INIT(cannonb); |
| 55 | TILE_GET_INFO_MEMBER(cclimber_get_pf_tile_info); | |
| 56 | TILE_GET_INFO_MEMBER(swimmer_get_pf_tile_info); | |
| 57 | TILE_GET_INFO_MEMBER(toprollr_get_pf_tile_info); | |
| 58 | TILE_GET_INFO_MEMBER(cclimber_get_bs_tile_info); | |
| 59 | TILE_GET_INFO_MEMBER(toprollr_get_bs_tile_info); | |
| 60 | TILE_GET_INFO_MEMBER(toproller_get_bg_tile_info); | |
| 55 | 61 | }; |
| 56 | 62 | |
| 57 | 63 |
| r17673 | r17674 | |
|---|---|---|
| 19 | 19 | DECLARE_WRITE8_MEMBER(speedspn_banked_vidram_change); |
| 20 | 20 | DECLARE_WRITE8_MEMBER(speedspn_global_display_w); |
| 21 | 21 | DECLARE_WRITE8_MEMBER(oki_banking_w); |
| 22 | TILE_GET_INFO_MEMBER(get_speedspn_tile_info); | |
| 22 | 23 | }; |
| 23 | 24 | |
| 24 | 25 |
| r17673 | r17674 | |
|---|---|---|
| 38 | 38 | DECLARE_WRITE8_MEMBER(cloak_flipscreen_w); |
| 39 | 39 | void set_current_bitmap_videoram_pointer(); |
| 40 | 40 | void adjust_xy(int offset); |
| 41 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 41 | 42 | }; |
| 42 | 43 | |
| 43 | 44 |
| r17673 | r17674 | |
|---|---|---|
| 31 | 31 | DECLARE_WRITE16_MEMBER(foodf_paletteram_w); |
| 32 | 32 | void foodf_set_flip(int flip); |
| 33 | 33 | DECLARE_READ8_MEMBER(pot_r); |
| 34 | TILE_GET_INFO_MEMBER(get_playfield_tile_info); | |
| 34 | 35 | }; |
| 35 | 36 | |
| 36 | 37 |
| r17673 | r17674 | |
|---|---|---|
| 102 | 102 | DECLARE_DRIVER_INIT(xday2); |
| 103 | 103 | DECLARE_DRIVER_INIT(exbania); |
| 104 | 104 | DECLARE_DRIVER_INIT(emeraldj); |
| 105 | TILE_GET_INFO_MEMBER(tilemap_get_info0); | |
| 106 | TILE_GET_INFO_MEMBER(tilemap_get_info1); | |
| 107 | TILE_GET_INFO_MEMBER(tilemap_get_info2); | |
| 108 | TILE_GET_INFO_MEMBER(tilemap_get_info3); | |
| 109 | TILE_GET_INFO_MEMBER(roz_get_info); | |
| 105 | 110 | }; |
| 106 | 111 | |
| 107 | 112 |
| r17673 | r17674 | |
|---|---|---|
| 68 | 68 | DECLARE_DRIVER_INIT(kozure); |
| 69 | 69 | DECLARE_DRIVER_INIT(terraf); |
| 70 | 70 | DECLARE_DRIVER_INIT(terrafb); |
| 71 | TILEMAP_MAPPER_MEMBER(armedf_scan_type1); | |
| 72 | TILEMAP_MAPPER_MEMBER(armedf_scan_type2); | |
| 73 | TILEMAP_MAPPER_MEMBER(armedf_scan_type3); | |
| 74 | TILE_GET_INFO_MEMBER(get_nb1414m4_tx_tile_info); | |
| 75 | TILE_GET_INFO_MEMBER(get_armedf_tx_tile_info); | |
| 76 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 77 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 71 | 78 | }; |
| 72 | 79 | |
| 73 | 80 | class bigfghtr_state : public armedf_state |
| r17673 | r17674 | |
|---|---|---|
| 50 | 50 | DECLARE_WRITE8_MEMBER(bsktball_led1_w); |
| 51 | 51 | DECLARE_WRITE8_MEMBER(bsktball_led2_w); |
| 52 | 52 | DECLARE_WRITE8_MEMBER(bsktball_videoram_w); |
| 53 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 53 | 54 | }; |
| 54 | 55 | |
| 55 | 56 |
| r17673 | r17674 | |
|---|---|---|
| 237 | 237 | DECLARE_DRIVER_INIT(dkingjr); |
| 238 | 238 | DECLARE_DRIVER_INIT(drakton); |
| 239 | 239 | DECLARE_DRIVER_INIT(dkongx); |
| 240 | TILE_GET_INFO_MEMBER(dkong_bg_tile_info); | |
| 241 | TILE_GET_INFO_MEMBER(radarscp1_bg_tile_info); | |
| 240 | 242 | }; |
| 241 | 243 | |
| 242 | 244 | /*----------- defined in video/dkong.c -----------*/ |
| r17673 | r17674 | |
|---|---|---|
| 34 | 34 | DECLARE_WRITE8_MEMBER(sprint4_screech_4_w); |
| 35 | 35 | DECLARE_WRITE8_MEMBER(sprint4_bang_w); |
| 36 | 36 | DECLARE_WRITE8_MEMBER(sprint4_attract_w); |
| 37 | TILE_GET_INFO_MEMBER(sprint4_tile_info); | |
| 37 | 38 | }; |
| 38 | 39 | |
| 39 | 40 |
| r17673 | r17674 | |
|---|---|---|
| 43 | 43 | DECLARE_WRITE8_MEMBER(appoooh_out_w); |
| 44 | 44 | DECLARE_DRIVER_INIT(robowres); |
| 45 | 45 | DECLARE_DRIVER_INIT(robowresb); |
| 46 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 47 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 46 | 48 | }; |
| 47 | 49 | |
| 48 | 50 | #define CHR1_OFST 0x00 /* palette page of char set #1 */ |
| r17673 | r17674 | |
|---|---|---|
| 19 | 19 | DECLARE_WRITE8_MEMBER(travrusa_flipscreen_w); |
| 20 | 20 | DECLARE_DRIVER_INIT(shtridra); |
| 21 | 21 | DECLARE_DRIVER_INIT(motorace); |
| 22 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 22 | 23 | }; |
| 23 | 24 | |
| 24 | 25 | /*----------- defined in video/travrusa.c -----------*/ |
| r17673 | r17674 | |
|---|---|---|
| 43 | 43 | DECLARE_WRITE8_MEMBER(metlclsh_bgram_w); |
| 44 | 44 | DECLARE_WRITE8_MEMBER(metlclsh_fgram_w); |
| 45 | 45 | DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); |
| 46 | TILEMAP_MAPPER_MEMBER(metlclsh_bgtilemap_scan); | |
| 47 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 48 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 46 | 49 | }; |
| 47 | 50 | |
| 48 | 51 |
| r17673 | r17674 | |
|---|---|---|
| 45 | 45 | DECLARE_DRIVER_INIT(dbza); |
| 46 | 46 | DECLARE_DRIVER_INIT(dbz); |
| 47 | 47 | DECLARE_DRIVER_INIT(dbz2); |
| 48 | TILE_GET_INFO_MEMBER(get_dbz_bg2_tile_info); | |
| 49 | TILE_GET_INFO_MEMBER(get_dbz_bg1_tile_info); | |
| 48 | 50 | }; |
| 49 | 51 | |
| 50 | 52 |
| r17673 | r17674 | |
|---|---|---|
| 123 | 123 | DECLARE_DRIVER_INIT(rp36c3); |
| 124 | 124 | DECLARE_DRIVER_INIT(magoddsc); |
| 125 | 125 | DECLARE_DRIVER_INIT(nfb96_c1); |
| 126 | TILE_GET_INFO_MEMBER(get_goldstar_fg_tile_info); | |
| 127 | TILE_GET_INFO_MEMBER(get_magical_fg_tile_info); | |
| 128 | TILE_GET_INFO_MEMBER(get_cherrym_fg_tile_info); | |
| 129 | TILE_GET_INFO_MEMBER(get_goldstar_reel1_tile_info); | |
| 130 | TILE_GET_INFO_MEMBER(get_goldstar_reel2_tile_info); | |
| 131 | TILE_GET_INFO_MEMBER(get_goldstar_reel3_tile_info); | |
| 132 | TILE_GET_INFO_MEMBER(get_unkch_reel1_tile_info); | |
| 133 | TILE_GET_INFO_MEMBER(get_unkch_reel2_tile_info); | |
| 134 | TILE_GET_INFO_MEMBER(get_unkch_reel3_tile_info); | |
| 126 | 135 | }; |
| 127 | 136 | |
| 128 | 137 |
| r17673 | r17674 | |
|---|---|---|
| 45 | 45 | DECLARE_WRITE8_MEMBER(wc90_bgvideoram_w); |
| 46 | 46 | DECLARE_WRITE8_MEMBER(wc90_fgvideoram_w); |
| 47 | 47 | DECLARE_WRITE8_MEMBER(wc90_txvideoram_w); |
| 48 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 49 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 50 | TILE_GET_INFO_MEMBER(get_tx_tile_info); | |
| 51 | TILE_GET_INFO_MEMBER(track_get_bg_tile_info); | |
| 52 | TILE_GET_INFO_MEMBER(track_get_fg_tile_info); | |
| 48 | 53 | }; |
| 49 | 54 | |
| 50 | 55 |
| r17673 | r17674 | |
|---|---|---|
| 25 | 25 | DECLARE_DRIVER_INIT(gaunt2p); |
| 26 | 26 | DECLARE_DRIVER_INIT(gauntlet); |
| 27 | 27 | DECLARE_DRIVER_INIT(vindctr2); |
| 28 | TILE_GET_INFO_MEMBER(get_alpha_tile_info); | |
| 29 | TILE_GET_INFO_MEMBER(get_playfield_tile_info); | |
| 28 | 30 | }; |
| 29 | 31 | |
| 30 | 32 |
| r17673 | r17674 | |
|---|---|---|
| 80 | 80 | DECLARE_DRIVER_INIT(bnstars); |
| 81 | 81 | DECLARE_DRIVER_INIT(f1superb); |
| 82 | 82 | DECLARE_DRIVER_INIT(ss92046_01); |
| 83 | TILE_GET_INFO_MEMBER(get_ms32_tx_tile_info); | |
| 84 | TILE_GET_INFO_MEMBER(get_ms32_roz_tile_info); | |
| 85 | TILE_GET_INFO_MEMBER(get_ms32_bg_tile_info); | |
| 86 | TILE_GET_INFO_MEMBER(get_ms32_extra_tile_info); | |
| 83 | 87 | }; |
| 84 | 88 | |
| 85 | 89 |
| r17673 | r17674 | |
|---|---|---|
| 25 | 25 | DECLARE_WRITE8_MEMBER(seicross_colorram_w); |
| 26 | 26 | DECLARE_READ8_MEMBER(friskyt_portB_r); |
| 27 | 27 | DECLARE_WRITE8_MEMBER(friskyt_portB_w); |
| 28 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 28 | 29 | }; |
| 29 | 30 | |
| 30 | 31 |
| r17673 | r17674 | |
|---|---|---|
| 173 | 173 | DECLARE_DRIVER_INIT(tturfbl); |
| 174 | 174 | DECLARE_DRIVER_INIT(goldnaxeb1); |
| 175 | 175 | DECLARE_DRIVER_INIT(common); |
| 176 | TILEMAP_MAPPER_MEMBER(sys16_bg_map); | |
| 177 | TILEMAP_MAPPER_MEMBER(sys16_text_map); | |
| 178 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 179 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 180 | TILE_GET_INFO_MEMBER(get_bg2_tile_info); | |
| 181 | TILE_GET_INFO_MEMBER(get_fg2_tile_info); | |
| 182 | TILE_GET_INFO_MEMBER(get_text_tile_info); | |
| 183 | TILE_GET_INFO_MEMBER(get_s16a_bootleg_tile_infotxt); | |
| 184 | TILE_GET_INFO_MEMBER(get_s16a_bootleg_tile_info0); | |
| 185 | TILE_GET_INFO_MEMBER(get_s16a_bootleg_tile_info1); | |
| 176 | 186 | }; |
| 177 | 187 | |
| 178 | 188 | /*----------- defined in video/system16.c -----------*/ |
| r17673 | r17674 | |
|---|---|---|
| 53 | 53 | DECLARE_WRITE16_MEMBER(deniam16c_oki_rom_bank_w); |
| 54 | 54 | DECLARE_DRIVER_INIT(karianx); |
| 55 | 55 | DECLARE_DRIVER_INIT(logicpro); |
| 56 | TILEMAP_MAPPER_MEMBER(scan_pages); | |
| 57 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 58 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 59 | TILE_GET_INFO_MEMBER(get_tx_tile_info); | |
| 56 | 60 | }; |
| 57 | 61 | |
| 58 | 62 |
| r17673 | r17674 | |
|---|---|---|
| 55 | 55 | DECLARE_DRIVER_INIT(rampage); |
| 56 | 56 | DECLARE_DRIVER_INIT(spyhunt); |
| 57 | 57 | DECLARE_DRIVER_INIT(sarge); |
| 58 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 59 | TILE_GET_INFO_MEMBER(mcrmono_get_bg_tile_info); | |
| 60 | TILEMAP_MAPPER_MEMBER(spyhunt_bg_scan); | |
| 61 | TILE_GET_INFO_MEMBER(spyhunt_get_bg_tile_info); | |
| 62 | TILE_GET_INFO_MEMBER(spyhunt_get_alpha_tile_info); | |
| 58 | 63 | }; |
| 59 | 64 | |
| 60 | 65 |
| r17673 | r17674 | |
|---|---|---|
| 13 | 13 | DECLARE_READ16_MEMBER(stadhero_control_r); |
| 14 | 14 | DECLARE_WRITE16_MEMBER(stadhero_control_w); |
| 15 | 15 | DECLARE_WRITE16_MEMBER(stadhero_pf1_data_w); |
| 16 | TILE_GET_INFO_MEMBER(get_pf1_tile_info); | |
| 16 | 17 | }; |
| 17 | 18 | |
| 18 | 19 |
| r17673 | r17674 | |
|---|---|---|
| 23 | 23 | DECLARE_WRITE16_MEMBER(prehisle_control16_w); |
| 24 | 24 | DECLARE_WRITE8_MEMBER(D7759_write_port_0_w); |
| 25 | 25 | DECLARE_WRITE8_MEMBER(D7759_upd_reset_w); |
| 26 | TILE_GET_INFO_MEMBER(get_bg2_tile_info); | |
| 27 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 28 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 26 | 29 | }; |
| 27 | 30 | |
| 28 | 31 |
| r17673 | r17674 | |
|---|---|---|
| 22 | 22 | DECLARE_WRITE16_MEMBER(wwfsstar_fg0_videoram_w); |
| 23 | 23 | DECLARE_WRITE16_MEMBER(wwfsstar_bg0_videoram_w); |
| 24 | 24 | DECLARE_CUSTOM_INPUT_MEMBER(wwfsstar_vblank_r); |
| 25 | TILE_GET_INFO_MEMBER(get_fg0_tile_info); | |
| 26 | TILEMAP_MAPPER_MEMBER(bg0_scan); | |
| 27 | TILE_GET_INFO_MEMBER(get_bg0_tile_info); | |
| 25 | 28 | }; |
| 26 | 29 | |
| 27 | 30 |
| r17673 | r17674 | |
|---|---|---|
| 74 | 74 | DECLARE_READ8_MEMBER(steering_delta_r); |
| 75 | 75 | DECLARE_DRIVER_INIT(topracern); |
| 76 | 76 | DECLARE_DRIVER_INIT(polepos2); |
| 77 | TILE_GET_INFO_MEMBER(bg_get_tile_info); | |
| 78 | TILE_GET_INFO_MEMBER(tx_get_tile_info); | |
| 77 | 79 | }; |
| 78 | 80 | |
| 79 | 81 |
| r17673 | r17674 | |
|---|---|---|
| 55 | 55 | DECLARE_WRITE8_MEMBER(tank8_attract_w); |
| 56 | 56 | DECLARE_WRITE8_MEMBER(tank8_motor_w); |
| 57 | 57 | DECLARE_DRIVER_INIT(decode); |
| 58 | TILE_GET_INFO_MEMBER(tank8_get_tile_info); | |
| 58 | 59 | }; |
| 59 | 60 | |
| 60 | 61 |
| r17673 | r17674 | |
|---|---|---|
| 37 | 37 | DECLARE_WRITE8_MEMBER(jackal_zram_w); |
| 38 | 38 | DECLARE_WRITE8_MEMBER(jackal_voram_w); |
| 39 | 39 | DECLARE_WRITE8_MEMBER(jackal_spriteram_w); |
| 40 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 40 | 41 | }; |
| 41 | 42 | |
| 42 | 43 |
| r17673 | r17674 | |
|---|---|---|
| 88 | 88 | DECLARE_DRIVER_INIT(brickzn); |
| 89 | 89 | DECLARE_DRIVER_INIT(hardhead); |
| 90 | 90 | DECLARE_DRIVER_INIT(suna8); |
| 91 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 91 | 92 | }; |
| 92 | 93 | |
| 93 | 94 |
| r17673 | r17674 | |
|---|---|---|
| 45 | 45 | DECLARE_READ8_MEMBER(rthunder_spriteram_r); |
| 46 | 46 | DECLARE_WRITE8_MEMBER(rthunder_spriteram_w); |
| 47 | 47 | DECLARE_DRIVER_INIT(namco86); |
| 48 | TILE_GET_INFO_MEMBER(get_tile_info0); | |
| 49 | TILE_GET_INFO_MEMBER(get_tile_info1); | |
| 50 | TILE_GET_INFO_MEMBER(get_tile_info2); | |
| 51 | TILE_GET_INFO_MEMBER(get_tile_info3); | |
| 48 | 52 | }; |
| 49 | 53 | |
| 50 | 54 |
| r17673 | r17674 | |
|---|---|---|
| 27 | 27 | DECLARE_CUSTOM_INPUT_MEMBER(ninjakun_io_A002_ctrl_r); |
| 28 | 28 | DECLARE_DRIVER_INIT(raiders5); |
| 29 | 29 | DECLARE_DRIVER_INIT(pkunwar); |
| 30 | TILE_GET_INFO_MEMBER(nova2001_get_bg_tile_info); | |
| 31 | TILE_GET_INFO_MEMBER(nova2001_get_fg_tile_info); | |
| 32 | TILE_GET_INFO_MEMBER(ninjakun_get_bg_tile_info); | |
| 33 | TILE_GET_INFO_MEMBER(ninjakun_get_fg_tile_info); | |
| 34 | TILE_GET_INFO_MEMBER(pkunwar_get_bg_tile_info); | |
| 35 | TILE_GET_INFO_MEMBER(raiders5_get_bg_tile_info); | |
| 36 | TILE_GET_INFO_MEMBER(raiders5_get_fg_tile_info); | |
| 30 | 37 | }; |
| 31 | 38 | |
| 32 | 39 |
| r17673 | r17674 | |
|---|---|---|
| 192 | 192 | DECLARE_DRIVER_INIT(ssf2tb); |
| 193 | 193 | DECLARE_DRIVER_INIT(pzloop2); |
| 194 | 194 | DECLARE_DRIVER_INIT(gigaman2); |
| 195 | TILEMAP_MAPPER_MEMBER(tilemap0_scan); | |
| 196 | TILEMAP_MAPPER_MEMBER(tilemap1_scan); | |
| 197 | TILEMAP_MAPPER_MEMBER(tilemap2_scan); | |
| 198 | TILE_GET_INFO_MEMBER(get_tile0_info); | |
| 199 | TILE_GET_INFO_MEMBER(get_tile1_info); | |
| 200 | TILE_GET_INFO_MEMBER(get_tile2_info); | |
| 195 | 201 | }; |
| 196 | 202 | |
| 197 | 203 | /*----------- defined in drivers/cps1.c -----------*/ |
| r17673 | r17674 | |
|---|---|---|
| 38 | 38 | DECLARE_WRITE16_MEMBER(yunsun16_vram_0_w); |
| 39 | 39 | DECLARE_WRITE16_MEMBER(yunsun16_vram_1_w); |
| 40 | 40 | DECLARE_DRIVER_INIT(magicbub); |
| 41 | TILEMAP_MAPPER_MEMBER(yunsun16_tilemap_scan_pages); | |
| 42 | TILE_GET_INFO_MEMBER(get_tile_info_0); | |
| 43 | TILE_GET_INFO_MEMBER(get_tile_info_1); | |
| 41 | 44 | }; |
| 42 | 45 | |
| 43 | 46 |
| r17673 | r17674 | |
|---|---|---|
| 70 | 70 | DECLARE_WRITE8_MEMBER(rougien_gfxbankswitch1_w); |
| 71 | 71 | DECLARE_WRITE8_MEMBER(rougien_gfxbankswitch2_w); |
| 72 | 72 | DECLARE_READ8_MEMBER(mermaid_collision_r); |
| 73 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 74 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 73 | 75 | }; |
| 74 | 76 | |
| 75 | 77 |
| r17673 | r17674 | |
|---|---|---|
| 32 | 32 | DECLARE_WRITE16_MEMBER(dcon_midground_w); |
| 33 | 33 | DECLARE_WRITE16_MEMBER(dcon_text_w); |
| 34 | 34 | DECLARE_DRIVER_INIT(sdgndmps); |
| 35 | TILE_GET_INFO_MEMBER(get_back_tile_info); | |
| 36 | TILE_GET_INFO_MEMBER(get_fore_tile_info); | |
| 37 | TILE_GET_INFO_MEMBER(get_mid_tile_info); | |
| 38 | TILE_GET_INFO_MEMBER(get_text_tile_info); | |
| 35 | 39 | }; |
| 36 | 40 | |
| 37 | 41 |
| r17673 | r17674 | |
|---|---|---|
| 218 | 218 | DECLARE_DRIVER_INIT(superbon); |
| 219 | 219 | DECLARE_DRIVER_INIT(calipso); |
| 220 | 220 | DECLARE_DRIVER_INIT(moonwar); |
| 221 | TILE_GET_INFO_MEMBER(bg_get_tile_info); | |
| 221 | 222 | }; |
| 222 | 223 | |
| 223 | 224 |
| r17673 | r17674 | |
|---|---|---|
| 63 | 63 | DECLARE_WRITE16_MEMBER(kickgoal_snd_w); |
| 64 | 64 | DECLARE_WRITE16_MEMBER(actionhw_snd_w); |
| 65 | 65 | DECLARE_DRIVER_INIT(kickgoal); |
| 66 | TILE_GET_INFO_MEMBER(get_kickgoal_fg_tile_info); | |
| 67 | TILE_GET_INFO_MEMBER(get_kickgoal_bg_tile_info); | |
| 68 | TILE_GET_INFO_MEMBER(get_kickgoal_bg2_tile_info); | |
| 69 | TILEMAP_MAPPER_MEMBER(tilemap_scan_kicksfg); | |
| 70 | TILEMAP_MAPPER_MEMBER(tilemap_scan_kicksbg); | |
| 71 | TILEMAP_MAPPER_MEMBER(tilemap_scan_kicksbg2); | |
| 72 | TILEMAP_MAPPER_MEMBER(tilemap_scan_actionhwbg2); | |
| 66 | 73 | }; |
| 67 | 74 | |
| 68 | 75 |
| r17673 | r17674 | |
|---|---|---|
| 35 | 35 | DECLARE_WRITE16_MEMBER(othldrby_vreg_addr_w); |
| 36 | 36 | DECLARE_WRITE16_MEMBER(othldrby_vreg_w); |
| 37 | 37 | DECLARE_WRITE16_MEMBER(oki_bankswitch_w); |
| 38 | TILE_GET_INFO_MEMBER(get_tile_info0); | |
| 39 | TILE_GET_INFO_MEMBER(get_tile_info1); | |
| 40 | TILE_GET_INFO_MEMBER(get_tile_info2); | |
| 38 | 41 | }; |
| 39 | 42 | |
| 40 | 43 |
| r17673 | r17674 | |
|---|---|---|
| 49 | 49 | DECLARE_WRITE16_MEMBER(bbusters_video_w); |
| 50 | 50 | DECLARE_WRITE16_MEMBER(bbusters_pf1_w); |
| 51 | 51 | DECLARE_WRITE16_MEMBER(bbusters_pf2_w); |
| 52 | TILE_GET_INFO_MEMBER(get_bbusters_tile_info); | |
| 53 | TILE_GET_INFO_MEMBER(get_pf1_tile_info); | |
| 54 | TILE_GET_INFO_MEMBER(get_pf2_tile_info); | |
| 52 | 55 | }; |
| 53 | 56 | |
| 54 | 57 |
| r17673 | r17674 | |
|---|---|---|
| 98 | 98 | DECLARE_DRIVER_INIT(twrldc94a); |
| 99 | 99 | DECLARE_DRIVER_INIT(vgoalsoc); |
| 100 | 100 | DECLARE_DRIVER_INIT(twrldc94); |
| 101 | TILE_GET_INFO_MEMBER(VS920A_get_tile_info); | |
| 102 | TILE_GET_INFO_MEMBER(MB60553_get_tile_info); | |
| 103 | TILEMAP_MAPPER_MEMBER(twc94_scan); | |
| 101 | 104 | }; |
| 102 | 105 | |
| 103 | 106 |
| r17673 | r17674 | |
|---|---|---|
| 141 | 141 | DECLARE_CUSTOM_INPUT_MEMBER(countryc_trackball_y); |
| 142 | 142 | DECLARE_CUSTOM_INPUT_MEMBER(snk_bonus_r); |
| 143 | 143 | DECLARE_DRIVER_INIT(countryc); |
| 144 | TILEMAP_MAPPER_MEMBER(marvins_tx_scan_cols); | |
| 145 | TILE_GET_INFO_MEMBER(marvins_get_tx_tile_info); | |
| 146 | TILE_GET_INFO_MEMBER(ikari_get_tx_tile_info); | |
| 147 | TILE_GET_INFO_MEMBER(gwar_get_tx_tile_info); | |
| 148 | TILE_GET_INFO_MEMBER(marvins_get_fg_tile_info); | |
| 149 | TILE_GET_INFO_MEMBER(marvins_get_bg_tile_info); | |
| 150 | TILE_GET_INFO_MEMBER(aso_get_bg_tile_info); | |
| 151 | TILE_GET_INFO_MEMBER(tnk3_get_bg_tile_info); | |
| 152 | TILE_GET_INFO_MEMBER(ikari_get_bg_tile_info); | |
| 153 | TILE_GET_INFO_MEMBER(gwar_get_bg_tile_info); | |
| 144 | 154 | }; |
| 145 | 155 | |
| 146 | 156 |
| r17673 | r17674 | |
|---|---|---|
| 80 | 80 | void blt_write( address_space *space, const int tmap, const offs_t offs, const UINT16 data, const UINT16 mask ); |
| 81 | 81 | DECLARE_DRIVER_INIT(magerror); |
| 82 | 82 | DECLARE_DRIVER_INIT(hyprduel); |
| 83 | TILE_GET_INFO_MEMBER(get_tile_info_0_8bit); | |
| 84 | TILE_GET_INFO_MEMBER(get_tile_info_1_8bit); | |
| 85 | TILE_GET_INFO_MEMBER(get_tile_info_2_8bit); | |
| 83 | 86 | }; |
| 84 | 87 | |
| 85 | 88 |
| r17673 | r17674 | |
|---|---|---|
| 104 | 104 | DECLARE_WRITE8_MEMBER(sound_control_1_w); |
| 105 | 105 | DECLARE_WRITE8_MEMBER(sound_control_2_w); |
| 106 | 106 | DECLARE_WRITE8_MEMBER(sound_control_3_w); |
| 107 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 108 | TILE_GET_INFO_MEMBER(victnine_get_tile_info); | |
| 109 | TILE_GET_INFO_MEMBER(get_rumba_tile_info); | |
| 107 | 110 | }; |
| 108 | 111 | |
| 109 | 112 |
| r17673 | r17674 | |
|---|---|---|
| 44 | 44 | DECLARE_WRITE16_MEMBER(suprslam_screen_videoram_w); |
| 45 | 45 | DECLARE_WRITE16_MEMBER(suprslam_bg_videoram_w); |
| 46 | 46 | DECLARE_WRITE16_MEMBER(suprslam_bank_w); |
| 47 | TILE_GET_INFO_MEMBER(get_suprslam_tile_info); | |
| 48 | TILE_GET_INFO_MEMBER(get_suprslam_bg_tile_info); | |
| 47 | 49 | }; |
| 48 | 50 | |
| 49 | 51 |
| r17673 | r17674 | |
|---|---|---|
| 40 | 40 | DECLARE_DRIVER_INIT(standard); |
| 41 | 41 | DECLARE_DRIVER_INIT(comg080); |
| 42 | 42 | DECLARE_DRIVER_INIT(jjpoker); |
| 43 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 43 | 44 | }; |
| 44 | 45 | |
| 45 | 46 |
| r17673 | r17674 | |
|---|---|---|
| 27 | 27 | DECLARE_WRITE8_MEMBER(strnskil_scrl_ctrl_w); |
| 28 | 28 | DECLARE_DRIVER_INIT(banbam); |
| 29 | 29 | DECLARE_DRIVER_INIT(pettanp); |
| 30 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 30 | 31 | }; |
| 31 | 32 | |
| 32 | 33 |
| r17673 | r17674 | |
|---|---|---|
| 27 | 27 | DECLARE_WRITE8_MEMBER(nvram_enable_w); |
| 28 | 28 | DECLARE_WRITE8_MEMBER(atetris_videoram_w); |
| 29 | 29 | DECLARE_DRIVER_INIT(atetris); |
| 30 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 30 | 31 | }; |
| 31 | 32 | |
| 32 | 33 | /*----------- defined in video/atetris.c -----------*/ |
| r17673 | r17674 | |
|---|---|---|
| 22 | 22 | DECLARE_WRITE8_MEMBER(shaolins_palettebank_w); |
| 23 | 23 | DECLARE_WRITE8_MEMBER(shaolins_scroll_w); |
| 24 | 24 | DECLARE_WRITE8_MEMBER(shaolins_nmi_w); |
| 25 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 25 | 26 | }; |
| 26 | 27 | |
| 27 | 28 |
| r17673 | r17674 | |
|---|---|---|
| 53 | 53 | DECLARE_WRITE8_MEMBER(kyugo_flipscreen_w); |
| 54 | 54 | DECLARE_DRIVER_INIT(srdmissn); |
| 55 | 55 | DECLARE_DRIVER_INIT(gyrodine); |
| 56 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 57 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 56 | 58 | }; |
| 57 | 59 | |
| 58 | 60 |
| r17673 | r17674 | |
|---|---|---|
| 35 | 35 | DECLARE_READ8_MEMBER(popeye_portA_r); |
| 36 | 36 | DECLARE_DRIVER_INIT(skyskipr); |
| 37 | 37 | DECLARE_DRIVER_INIT(popeye); |
| 38 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 38 | 39 | }; |
| 39 | 40 | |
| 40 | 41 |
| r17673 | r17674 | |
|---|---|---|
| 28 | 28 | DECLARE_WRITE8_MEMBER(fenraya_videoram_w); |
| 29 | 29 | DECLARE_WRITE8_MEMBER(sound_control_w); |
| 30 | 30 | DECLARE_DRIVER_INIT(unkpacg); |
| 31 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 31 | 32 | }; |
| 32 | 33 | |
| 33 | 34 |
| r17673 | r17674 | |
|---|---|---|
| 21 | 21 | DECLARE_WRITE8_MEMBER(blockade_videoram_w); |
| 22 | 22 | DECLARE_WRITE8_MEMBER(blockade_env_on_w); |
| 23 | 23 | DECLARE_WRITE8_MEMBER(blockade_env_off_w); |
| 24 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 24 | 25 | }; |
| 25 | 26 | |
| 26 | 27 |
| r17673 | r17674 | |
|---|---|---|
| 34 | 34 | DECLARE_WRITE8_MEMBER(compgolf_scrollx_lo_w); |
| 35 | 35 | DECLARE_WRITE8_MEMBER(compgolf_scrolly_lo_w); |
| 36 | 36 | DECLARE_DRIVER_INIT(compgolf); |
| 37 | TILE_GET_INFO_MEMBER(get_text_info); | |
| 38 | TILEMAP_MAPPER_MEMBER(back_scan); | |
| 39 | TILE_GET_INFO_MEMBER(get_back_info); | |
| 37 | 40 | }; |
| 38 | 41 | |
| 39 | 42 |
| r17673 | r17674 | |
|---|---|---|
| 59 | 59 | DECLARE_DRIVER_INIT(lordgun); |
| 60 | 60 | DECLARE_DRIVER_INIT(aliencha); |
| 61 | 61 | DECLARE_DRIVER_INIT(alienchac); |
| 62 | TILE_GET_INFO_MEMBER(get_tile_info_0); | |
| 63 | TILE_GET_INFO_MEMBER(get_tile_info_1); | |
| 64 | TILE_GET_INFO_MEMBER(get_tile_info_2); | |
| 65 | TILE_GET_INFO_MEMBER(get_tile_info_3); | |
| 62 | 66 | }; |
| 63 | 67 | |
| 64 | 68 |
| r17673 | r17674 | |
|---|---|---|
| 46 | 46 | virtual void machine_reset(); |
| 47 | 47 | |
| 48 | 48 | virtual void video_start(); |
| 49 | TILE_GET_INFO_MEMBER(get_zerozone_tile_info); | |
| 49 | 50 | }; |
| r17673 | r17674 | |
|---|---|---|
| 40 | 40 | DECLARE_WRITE16_MEMBER(lemmings_pixel_0_w); |
| 41 | 41 | DECLARE_WRITE16_MEMBER(lemmings_pixel_1_w); |
| 42 | 42 | DECLARE_WRITE16_MEMBER(lemmings_vram_w); |
| 43 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 43 | 44 | }; |
| 44 | 45 | |
| 45 | 46 |
| r17673 | r17674 | |
|---|---|---|
| 41 | 41 | DECLARE_WRITE8_MEMBER(pushman_68000_w); |
| 42 | 42 | DECLARE_WRITE16_MEMBER(pushman_scroll_w); |
| 43 | 43 | DECLARE_WRITE16_MEMBER(pushman_videoram_w); |
| 44 | TILEMAP_MAPPER_MEMBER(background_scan_rows); | |
| 45 | TILE_GET_INFO_MEMBER(get_back_tile_info); | |
| 46 | TILE_GET_INFO_MEMBER(get_text_tile_info); | |
| 44 | 47 | }; |
| 45 | 48 | |
| 46 | 49 |
| r17673 | r17674 | |
|---|---|---|
| 45 | 45 | DECLARE_WRITE8_MEMBER(espial_attributeram_w); |
| 46 | 46 | DECLARE_WRITE8_MEMBER(espial_scrollram_w); |
| 47 | 47 | DECLARE_WRITE8_MEMBER(espial_flipscreen_w); |
| 48 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 48 | 49 | }; |
| 49 | 50 | |
| 50 | 51 | /*----------- defined in video/espial.c -----------*/ |
| r17673 | r17674 | |
|---|---|---|
| 28 | 28 | DECLARE_WRITE8_MEMBER(tiamc1_bg_vshift_w); |
| 29 | 29 | DECLARE_WRITE8_MEMBER(tiamc1_bg_hshift_w); |
| 30 | 30 | DECLARE_WRITE8_MEMBER(tiamc1_palette_w); |
| 31 | TILE_GET_INFO_MEMBER(get_bg1_tile_info); | |
| 32 | TILE_GET_INFO_MEMBER(get_bg2_tile_info); | |
| 31 | 33 | }; |
| 32 | 34 | |
| 33 | 35 |
| r17673 | r17674 | |
|---|---|---|
| 37 | 37 | UINT8 m_SN76496_latch; |
| 38 | 38 | DECLARE_WRITE8_MEMBER( konami_SN76496_latch_w ) { m_SN76496_latch = data; }; |
| 39 | 39 | DECLARE_WRITE8_MEMBER( konami_SN76496_w ) { m_sn->write(space, offset, m_SN76496_latch); }; |
| 40 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 41 | TILE_GET_INFO_MEMBER(roadf_get_bg_tile_info); | |
| 40 | 42 | }; |
| 41 | 43 | |
| 42 | 44 | /*----------- defined in video/hyperspt.c -----------*/ |
| r17673 | r17674 | |
|---|---|---|
| 128 | 128 | DECLARE_DRIVER_INIT(toaplan1); |
| 129 | 129 | DECLARE_DRIVER_INIT(demonwld); |
| 130 | 130 | DECLARE_DRIVER_INIT(vimana); |
| 131 | TILE_GET_INFO_MEMBER(get_pf1_tile_info); | |
| 132 | TILE_GET_INFO_MEMBER(get_pf2_tile_info); | |
| 133 | TILE_GET_INFO_MEMBER(get_pf3_tile_info); | |
| 134 | TILE_GET_INFO_MEMBER(get_pf4_tile_info); | |
| 131 | 135 | }; |
| 132 | 136 | |
| 133 | 137 |
| r17673 | r17674 | |
|---|---|---|
| 93 | 93 | DECLARE_DRIVER_INIT(005); |
| 94 | 94 | DECLARE_DRIVER_INIT(monster2); |
| 95 | 95 | DECLARE_DRIVER_INIT(astrob); |
| 96 | TILE_GET_INFO_MEMBER(spaceod_get_tile_info); | |
| 97 | TILEMAP_MAPPER_MEMBER(spaceod_scan_rows); | |
| 98 | TILE_GET_INFO_MEMBER(bg_get_tile_info); | |
| 96 | 99 | }; |
| 97 | 100 | |
| 98 | 101 |
| r17673 | r17674 | |
|---|---|---|
| 119 | 119 | DECLARE_DRIVER_INIT(mia); |
| 120 | 120 | DECLARE_DRIVER_INIT(tmnt); |
| 121 | 121 | DECLARE_DRIVER_INIT(cuebrick); |
| 122 | TILE_GET_INFO_MEMBER(glfgreat_get_roz_tile_info); | |
| 123 | TILE_GET_INFO_MEMBER(prmrsocr_get_roz_tile_info); | |
| 122 | 124 | }; |
| 123 | 125 | |
| 124 | 126 |
| r17673 | r17674 | |
|---|---|---|
| 121 | 121 | DECLARE_DRIVER_INIT(xsedae); |
| 122 | 122 | DECLARE_DRIVER_INIT(zeroteam); |
| 123 | 123 | DECLARE_DRIVER_INIT(raiden2); |
| 124 | TILE_GET_INFO_MEMBER(get_back_tile_info); | |
| 125 | TILE_GET_INFO_MEMBER(get_mid_tile_info); | |
| 126 | TILE_GET_INFO_MEMBER(get_fore_tile_info); | |
| 127 | TILE_GET_INFO_MEMBER(get_text_tile_info); | |
| 124 | 128 | }; |
| 125 | 129 | |
| 126 | 130 |
| r17673 | r17674 | |
|---|---|---|
| 64 | 64 | virtual void machine_reset(); |
| 65 | 65 | |
| 66 | 66 | virtual void video_start(); |
| 67 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 68 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 67 | 69 | }; |
| 68 | 70 | |
| 69 | 71 | class percuss_state : public zodiack_state |
| r17673 | r17674 | |
|---|---|---|
| 156 | 156 | DECLARE_DRIVER_INIT(dendego2); |
| 157 | 157 | DECLARE_DRIVER_INIT(dangcurv); |
| 158 | 158 | DECLARE_DRIVER_INIT(taitojc); |
| 159 | TILE_GET_INFO_MEMBER(taitojc_tile_info); | |
| 159 | 160 | }; |
| 160 | 161 | |
| 161 | 162 |
| r17673 | r17674 | |
|---|---|---|
| 46 | 46 | DECLARE_WRITE8_MEMBER(pitnrun_h_heed_w); |
| 47 | 47 | DECLARE_WRITE8_MEMBER(pitnrun_v_heed_w); |
| 48 | 48 | DECLARE_WRITE8_MEMBER(pitnrun_color_select_w); |
| 49 | TILE_GET_INFO_MEMBER(get_tile_info1); | |
| 50 | TILE_GET_INFO_MEMBER(get_tile_info2); | |
| 49 | 51 | }; |
| 50 | 52 | |
| 51 | 53 |
| r17673 | r17674 | |
|---|---|---|
| 43 | 43 | DECLARE_WRITE8_MEMBER(tehkanwc_portB_w); |
| 44 | 44 | DECLARE_WRITE8_MEMBER(msm_reset_w); |
| 45 | 45 | DECLARE_DRIVER_INIT(teedoff); |
| 46 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 47 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 46 | 48 | }; |
| 47 | 49 | |
| 48 | 50 |
| r17673 | r17674 | |
|---|---|---|
| 44 | 44 | DECLARE_WRITE16_MEMBER(bionicc_paletteram_w); |
| 45 | 45 | DECLARE_WRITE16_MEMBER(bionicc_scroll_w); |
| 46 | 46 | DECLARE_WRITE16_MEMBER(bionicc_gfxctrl_w); |
| 47 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 48 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 49 | TILE_GET_INFO_MEMBER(get_tx_tile_info); | |
| 47 | 50 | }; |
| 48 | 51 | |
| 49 | 52 |
| r17673 | r17674 | |
|---|---|---|
| 34 | 34 | DECLARE_WRITE8_MEMBER(citycon_linecolor_w); |
| 35 | 35 | DECLARE_WRITE8_MEMBER(citycon_background_w); |
| 36 | 36 | DECLARE_DRIVER_INIT(citycon); |
| 37 | TILEMAP_MAPPER_MEMBER(citycon_scan); | |
| 38 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 39 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 37 | 40 | }; |
| 38 | 41 | |
| 39 | 42 |
| r17673 | r17674 | |
|---|---|---|
| 36 | 36 | DECLARE_WRITE8_MEMBER(suprridr_fgram_w); |
| 37 | 37 | DECLARE_CUSTOM_INPUT_MEMBER(suprridr_control_r); |
| 38 | 38 | DECLARE_READ8_MEMBER(sound_data_r); |
| 39 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 40 | TILE_GET_INFO_MEMBER(get_tile_info2); | |
| 39 | 41 | }; |
| 40 | 42 | |
| 41 | 43 |
| r17673 | r17674 | |
|---|---|---|
| 83 | 83 | DECLARE_DRIVER_INIT(tengai); |
| 84 | 84 | DECLARE_DRIVER_INIT(s1945jn); |
| 85 | 85 | DECLARE_DRIVER_INIT(gunbird); |
| 86 | TILE_GET_INFO_MEMBER(get_tile_info_0); | |
| 87 | TILE_GET_INFO_MEMBER(get_tile_info_1); | |
| 86 | 88 | }; |
| 87 | 89 | |
| 88 | 90 |
| r17673 | r17674 | |
|---|---|---|
| 78 | 78 | DECLARE_DRIVER_INIT(bigtwin); |
| 79 | 79 | DECLARE_DRIVER_INIT(powerbal); |
| 80 | 80 | DECLARE_DRIVER_INIT(magicstk); |
| 81 | TILE_GET_INFO_MEMBER(bigtwin_get_tx_tile_info); | |
| 82 | TILE_GET_INFO_MEMBER(bigtwin_get_fg_tile_info); | |
| 83 | TILE_GET_INFO_MEMBER(wbeachvl_get_tx_tile_info); | |
| 84 | TILE_GET_INFO_MEMBER(wbeachvl_get_fg_tile_info); | |
| 85 | TILE_GET_INFO_MEMBER(wbeachvl_get_bg_tile_info); | |
| 86 | TILE_GET_INFO_MEMBER(hrdtimes_get_tx_tile_info); | |
| 87 | TILE_GET_INFO_MEMBER(bigtwinb_get_tx_tile_info); | |
| 88 | TILE_GET_INFO_MEMBER(hrdtimes_get_fg_tile_info); | |
| 89 | TILE_GET_INFO_MEMBER(hrdtimes_get_bg_tile_info); | |
| 81 | 90 | }; |
| 82 | 91 | |
| 83 | 92 | /*----------- defined in video/playmark.c -----------*/ |
| r17673 | r17674 | |
|---|---|---|
| 18 | 18 | DECLARE_WRITE8_MEMBER(ampoker2_videoram_w); |
| 19 | 19 | DECLARE_DRIVER_INIT(rabbitpk); |
| 20 | 20 | DECLARE_DRIVER_INIT(piccolop); |
| 21 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 22 | TILE_GET_INFO_MEMBER(s2k_get_bg_tile_info); | |
| 21 | 23 | }; |
| 22 | 24 | |
| 23 | 25 |
| r17673 | r17674 | |
|---|---|---|
| 56 | 56 | DECLARE_WRITE16_MEMBER(esd16_vram_1_w); |
| 57 | 57 | DECLARE_WRITE16_MEMBER(esd16_tilemap0_color_w); |
| 58 | 58 | DECLARE_WRITE16_MEMBER(esd16_tilemap0_color_jumppop_w); |
| 59 | TILE_GET_INFO_MEMBER(get_tile_info_0); | |
| 60 | TILE_GET_INFO_MEMBER(get_tile_info_0_16x16); | |
| 61 | TILE_GET_INFO_MEMBER(get_tile_info_1); | |
| 62 | TILE_GET_INFO_MEMBER(get_tile_info_1_16x16); | |
| 59 | 63 | }; |
| 60 | 64 | |
| 61 | 65 |
| r17673 | r17674 | |
|---|---|---|
| 108 | 108 | DECLARE_DRIVER_INIT(drgw3); |
| 109 | 109 | DECLARE_DRIVER_INIT(orlegend); |
| 110 | 110 | DECLARE_DRIVER_INIT(pstar); |
| 111 | TILE_GET_INFO_MEMBER(get_pgm_tx_tilemap_tile_info); | |
| 112 | TILE_GET_INFO_MEMBER(get_pgm_bg_tilemap_tile_info); | |
| 111 | 113 | }; |
| 112 | 114 | |
| 113 | 115 |
| r17673 | r17674 | |
|---|---|---|
| 26 | 26 | DECLARE_WRITE8_MEMBER(port_C_w); |
| 27 | 27 | DECLARE_DRIVER_INIT(grndtour); |
| 28 | 28 | DECLARE_DRIVER_INIT(iqblock); |
| 29 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 30 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 29 | 31 | }; |
| 30 | 32 | |
| 31 | 33 |
| r17673 | r17674 | |
|---|---|---|
| 86 | 86 | DECLARE_WRITE8_MEMBER(darius_write_portB1); |
| 87 | 87 | DECLARE_WRITE8_MEMBER(adpcm_data_w); |
| 88 | 88 | DECLARE_DRIVER_INIT(darius); |
| 89 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 89 | 90 | }; |
| 90 | 91 | |
| 91 | 92 |
| r17673 | r17674 | |
|---|---|---|
| 43 | 43 | DECLARE_WRITE8_MEMBER(cbasebal_scrollx_w); |
| 44 | 44 | DECLARE_WRITE8_MEMBER(cbasebal_scrolly_w); |
| 45 | 45 | DECLARE_DRIVER_INIT(cbasebal); |
| 46 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 47 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 46 | 48 | }; |
| 47 | 49 | |
| 48 | 50 | /*----------- defined in video/cbasebal.c -----------*/ |
| r17673 | r17674 | |
|---|---|---|
| 39 | 39 | UINT8 m_SN76496_latch; |
| 40 | 40 | DECLARE_WRITE8_MEMBER( konami_SN76496_latch_w ) { m_SN76496_latch = data; }; |
| 41 | 41 | DECLARE_WRITE8_MEMBER( konami_SN76496_w ) { m_sn->write(space, offset, m_SN76496_latch); }; |
| 42 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 42 | 43 | }; |
| 43 | 44 | |
| 44 | 45 | /*----------- defined in video/sbasketb.c -----------*/ |
| r17673 | r17674 | |
|---|---|---|
| 33 | 33 | DECLARE_WRITE8_MEMBER(dummy1_w); |
| 34 | 34 | DECLARE_WRITE8_MEMBER(dummy2_w); |
| 35 | 35 | DECLARE_WRITE8_MEMBER(dummy3_w); |
| 36 | TILE_GET_INFO_MEMBER(get_ksayakyu_tile_info); | |
| 37 | TILE_GET_INFO_MEMBER(get_text_tile_info); | |
| 36 | 38 | }; |
| 37 | 39 | |
| 38 | 40 |
| r17673 | r17674 | |
|---|---|---|
| 29 | 29 | DECLARE_WRITE8_MEMBER(himesiki_bg_ram_w); |
| 30 | 30 | DECLARE_WRITE8_MEMBER(himesiki_scrollx_w); |
| 31 | 31 | DECLARE_WRITE8_MEMBER(himesiki_flip_w); |
| 32 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 32 | 33 | }; |
| 33 | 34 | |
| 34 | 35 |
| r17673 | r17674 | |
|---|---|---|
| 31 | 31 | DECLARE_WRITE8_MEMBER(battlex_flipscreen_w); |
| 32 | 32 | DECLARE_CUSTOM_INPUT_MEMBER(battlex_in0_b4_r); |
| 33 | 33 | DECLARE_DRIVER_INIT(battlex); |
| 34 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 34 | 35 | }; |
| 35 | 36 | |
| 36 | 37 |
| r17673 | r17674 | |
|---|---|---|
| 15 | 15 | DECLARE_READ16_MEMBER(special_port1_r); |
| 16 | 16 | DECLARE_WRITE16_MEMBER(skullxbo_mobwr_w); |
| 17 | 17 | DECLARE_DRIVER_INIT(skullxbo); |
| 18 | TILE_GET_INFO_MEMBER(get_alpha_tile_info); | |
| 19 | TILE_GET_INFO_MEMBER(get_playfield_tile_info); | |
| 18 | 20 | }; |
| 19 | 21 | |
| 20 | 22 |
| r17673 | r17674 | |
|---|---|---|
| 41 | 41 | DECLARE_WRITE8_MEMBER(ironhors_flipscreen_w); |
| 42 | 42 | DECLARE_WRITE8_MEMBER(ironhors_filter_w); |
| 43 | 43 | DECLARE_READ8_MEMBER(farwest_soundlatch_r); |
| 44 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 45 | TILE_GET_INFO_MEMBER(farwest_get_bg_tile_info); | |
| 44 | 46 | }; |
| 45 | 47 | |
| 46 | 48 |
| r17673 | r17674 | |
|---|---|---|
| 41 | 41 | DECLARE_WRITE16_MEMBER( glass_mainram_w ); |
| 42 | 42 | |
| 43 | 43 | DECLARE_DRIVER_INIT(glass); |
| 44 | TILE_GET_INFO_MEMBER(get_tile_info_glass_screen0); | |
| 45 | TILE_GET_INFO_MEMBER(get_tile_info_glass_screen1); | |
| 44 | 46 | }; |
| 45 | 47 | |
| 46 | 48 |
| r17673 | r17674 | |
|---|---|---|
| 37 | 37 | DECLARE_WRITE8_MEMBER(mcatadv_sound_bw_w); |
| 38 | 38 | DECLARE_WRITE16_MEMBER(mcatadv_videoram1_w); |
| 39 | 39 | DECLARE_WRITE16_MEMBER(mcatadv_videoram2_w); |
| 40 | TILE_GET_INFO_MEMBER(get_mcatadv_tile_info1); | |
| 41 | TILE_GET_INFO_MEMBER(get_mcatadv_tile_info2); | |
| 40 | 42 | }; |
| 41 | 43 | |
| 42 | 44 | /*----------- defined in video/mcatadv.c -----------*/ |
| r17673 | r17674 | |
|---|---|---|
| 109 | 109 | DECLARE_DRIVER_INIT(fixeightbl); |
| 110 | 110 | DECLARE_DRIVER_INIT(vfive); |
| 111 | 111 | DECLARE_DRIVER_INIT(batrider); |
| 112 | TILE_GET_INFO_MEMBER(get_text_tile_info); | |
| 112 | 113 | }; |
| 113 | 114 | |
| 114 | 115 | /*----------- defined in video/toaplan2.c -----------*/ |
| r17673 | r17674 | |
|---|---|---|
| 26 | 26 | DECLARE_WRITE8_MEMBER(mjkjidai_videoram_w); |
| 27 | 27 | DECLARE_WRITE8_MEMBER(mjkjidai_ctrl_w); |
| 28 | 28 | DECLARE_WRITE8_MEMBER(adpcm_w); |
| 29 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 29 | 30 | }; |
| 30 | 31 | |
| 31 | 32 |
| r17673 | r17674 | |
|---|---|---|
| 37 | 37 | DECLARE_READ8_MEMBER(jailbrek_speech_r); |
| 38 | 38 | DECLARE_WRITE8_MEMBER(jailbrek_speech_w); |
| 39 | 39 | DECLARE_DRIVER_INIT(jailbrek); |
| 40 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 40 | 41 | }; |
| 41 | 42 | |
| 42 | 43 |
| r17673 | r17674 | |
|---|---|---|
| 34 | 34 | DECLARE_WRITE16_MEMBER(thoop_vram_encrypted_w); |
| 35 | 35 | DECLARE_WRITE16_MEMBER(thoop_encrypted_w); |
| 36 | 36 | DECLARE_WRITE16_MEMBER(gaelco_vram_w); |
| 37 | TILE_GET_INFO_MEMBER(get_tile_info_gaelco_screen0); | |
| 38 | TILE_GET_INFO_MEMBER(get_tile_info_gaelco_screen1); | |
| 37 | 39 | }; |
| 38 | 40 | |
| 39 | 41 |
| r17673 | r17674 | |
|---|---|---|
| 69 | 69 | DECLARE_WRITE8_MEMBER(hotchase_3_k007232_w); |
| 70 | 70 | DECLARE_DRIVER_INIT(wecleman); |
| 71 | 71 | DECLARE_DRIVER_INIT(hotchase); |
| 72 | TILE_GET_INFO_MEMBER(wecleman_get_txt_tile_info); | |
| 73 | TILE_GET_INFO_MEMBER(wecleman_get_bg_tile_info); | |
| 74 | TILE_GET_INFO_MEMBER(wecleman_get_fg_tile_info); | |
| 72 | 75 | }; |
| 73 | 76 | |
| 74 | 77 |
| r17673 | r17674 | |
|---|---|---|
| 37 | 37 | DECLARE_WRITE8_MEMBER(tankbust_yscroll_w); |
| 38 | 38 | DECLARE_READ8_MEMBER(tankbust_soundlatch_r); |
| 39 | 39 | DECLARE_READ8_MEMBER(tankbust_soundtimer_r); |
| 40 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 41 | TILE_GET_INFO_MEMBER(get_txt_tile_info); | |
| 40 | 42 | }; |
| 41 | 43 | |
| 42 | 44 |
| r17673 | r17674 | |
|---|---|---|
| 33 | 33 | DECLARE_WRITE8_MEMBER(bankp_videoram2_w); |
| 34 | 34 | DECLARE_WRITE8_MEMBER(bankp_colorram2_w); |
| 35 | 35 | DECLARE_WRITE8_MEMBER(bankp_out_w); |
| 36 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 37 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 36 | 38 | }; |
| 37 | 39 | |
| 38 | 40 |
| r17673 | r17674 | |
|---|---|---|
| 32 | 32 | DECLARE_WRITE8_MEMBER(crbaloon_videoram_w); |
| 33 | 33 | DECLARE_WRITE8_MEMBER(crbaloon_colorram_w); |
| 34 | 34 | DECLARE_CUSTOM_INPUT_MEMBER(pc3092_r); |
| 35 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 35 | 36 | }; |
| 36 | 37 | |
| 37 | 38 |
| r17673 | r17674 | |
|---|---|---|
| 18 | 18 | DECLARE_WRITE8_MEMBER(portrait_negative_scroll_w); |
| 19 | 19 | DECLARE_WRITE8_MEMBER(portrait_bgvideo_write); |
| 20 | 20 | DECLARE_WRITE8_MEMBER(portrait_fgvideo_write); |
| 21 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 22 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 21 | 23 | }; |
| 22 | 24 | |
| 23 | 25 |
| r17673 | r17674 | |
|---|---|---|
| 22 | 22 | DECLARE_WRITE8_MEMBER(funkybee_gfx_bank_w); |
| 23 | 23 | DECLARE_WRITE8_MEMBER(funkybee_scroll_w); |
| 24 | 24 | DECLARE_WRITE8_MEMBER(funkybee_flipscreen_w); |
| 25 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 26 | TILEMAP_MAPPER_MEMBER(funkybee_tilemap_scan); | |
| 25 | 27 | }; |
| 26 | 28 | |
| 27 | 29 |
| r17673 | r17674 | |
|---|---|---|
| 95 | 95 | DECLARE_DRIVER_INIT(rockn); |
| 96 | 96 | DECLARE_DRIVER_INIT(rockn3); |
| 97 | 97 | DECLARE_DRIVER_INIT(rocknms); |
| 98 | TILE_GET_INFO_MEMBER(get_tile_info_bg); | |
| 99 | TILE_GET_INFO_MEMBER(get_tile_info_fg); | |
| 100 | TILE_GET_INFO_MEMBER(get_tile_info_rot); | |
| 101 | TILE_GET_INFO_MEMBER(get_tile_info_rocknms_sub_bg); | |
| 102 | TILE_GET_INFO_MEMBER(get_tile_info_rocknms_sub_fg); | |
| 103 | TILE_GET_INFO_MEMBER(get_tile_info_rocknms_sub_rot); | |
| 104 | TILE_GET_INFO_MEMBER(stepstag_get_tile_info_fg); | |
| 98 | 105 | }; |
| 99 | 106 | |
| 100 | 107 | class stepstag_state : public tetrisp2_state |
| r17673 | r17674 | |
|---|---|---|
| 48 | 48 | DECLARE_WRITE16_MEMBER(madgear_scroll1_w); |
| 49 | 49 | DECLARE_WRITE16_MEMBER(madgear_scroll2_w); |
| 50 | 50 | DECLARE_WRITE16_MEMBER(lastduel_palette_word_w); |
| 51 | TILE_GET_INFO_MEMBER(ld_get_bg_tile_info); | |
| 52 | TILE_GET_INFO_MEMBER(ld_get_fg_tile_info); | |
| 53 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 54 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 55 | TILE_GET_INFO_MEMBER(get_fix_info); | |
| 51 | 56 | }; |
| 52 | 57 | |
| 53 | 58 | /*----------- defined in video/lastduel.c -----------*/ |
| r17673 | r17674 | |
|---|---|---|
| 88 | 88 | DECLARE_DRIVER_INIT(timesold); |
| 89 | 89 | DECLARE_DRIVER_INIT(kyros); |
| 90 | 90 | DECLARE_DRIVER_INIT(sstingry); |
| 91 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 91 | 92 | }; |
| 92 | 93 | |
| 93 | 94 | /* game_id - used to deal with a few game specific situations */ |
| r17673 | r17674 | |
|---|---|---|
| 57 | 57 | DECLARE_WRITE16_MEMBER(drgnmst_bg_videoram_w); |
| 58 | 58 | DECLARE_WRITE16_MEMBER(drgnmst_md_videoram_w); |
| 59 | 59 | DECLARE_DRIVER_INIT(drgnmst); |
| 60 | TILE_GET_INFO_MEMBER(get_drgnmst_fg_tile_info); | |
| 61 | TILE_GET_INFO_MEMBER(get_drgnmst_bg_tile_info); | |
| 62 | TILE_GET_INFO_MEMBER(get_drgnmst_md_tile_info); | |
| 63 | TILEMAP_MAPPER_MEMBER(drgnmst_fg_tilemap_scan_cols); | |
| 64 | TILEMAP_MAPPER_MEMBER(drgnmst_md_tilemap_scan_cols); | |
| 65 | TILEMAP_MAPPER_MEMBER(drgnmst_bg_tilemap_scan_cols); | |
| 60 | 66 | }; |
| 61 | 67 | |
| 62 | 68 |
| r17673 | r17674 | |
|---|---|---|
| 41 | 41 | DECLARE_DRIVER_INIT(gigas); |
| 42 | 42 | DECLARE_DRIVER_INIT(gigasb); |
| 43 | 43 | DECLARE_DRIVER_INIT(pbillrds); |
| 44 | TILE_GET_INFO_MEMBER(get_freek_tile_info); | |
| 44 | 45 | }; |
| 45 | 46 | |
| 46 | 47 |
| r17673 | r17674 | |
|---|---|---|
| 73 | 73 | DECLARE_DRIVER_INIT(cischeat); |
| 74 | 74 | DECLARE_DRIVER_INIT(bigrun); |
| 75 | 75 | DECLARE_DRIVER_INIT(f1gpstar); |
| 76 | TILEMAP_MAPPER_MEMBER(cischeat_scan_8x8); | |
| 77 | TILEMAP_MAPPER_MEMBER(cischeat_scan_16x16); | |
| 78 | TILE_GET_INFO_MEMBER(cischeat_get_scroll_tile_info_8x8); | |
| 79 | TILE_GET_INFO_MEMBER(cischeat_get_scroll_tile_info_16x16); | |
| 76 | 80 | }; |
| 77 | 81 | |
| 78 | 82 |
| r17673 | r17674 | |
|---|---|---|
| 249 | 249 | DECLARE_DRIVER_INIT(alpiner); |
| 250 | 250 | DECLARE_DRIVER_INIT(ridgeraj); |
| 251 | 251 | DECLARE_DRIVER_INIT(alpinesa); |
| 252 | TILE_GET_INFO_MEMBER(TextTilemapGetInfo); | |
| 252 | 253 | }; |
| 253 | 254 | |
| 254 | 255 |
| r17673 | r17674 | |
|---|---|---|
| 15 | 15 | UINT16 m_h256; |
| 16 | 16 | DECLARE_READ16_MEMBER(special_port1_r); |
| 17 | 17 | DECLARE_DRIVER_INIT(xybots); |
| 18 | TILE_GET_INFO_MEMBER(get_alpha_tile_info); | |
| 19 | TILE_GET_INFO_MEMBER(get_playfield_tile_info); | |
| 18 | 20 | }; |
| 19 | 21 | |
| 20 | 22 |
| r17673 | r17674 | |
|---|---|---|
| 137 | 137 | DECLARE_DRIVER_INIT(bullsdrtg); |
| 138 | 138 | DECLARE_DRIVER_INIT(ladybugg); |
| 139 | 139 | DECLARE_DRIVER_INIT(4in1); |
| 140 | TILE_GET_INFO_MEMBER(drivfrcg_get_tile_info); | |
| 141 | TILE_GET_INFO_MEMBER(racknrol_get_tile_info); | |
| 142 | TILE_GET_INFO_MEMBER(dambustr_get_tile_info2); | |
| 143 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 144 | TILE_GET_INFO_MEMBER(rockclim_get_tile_info); | |
| 140 | 145 | }; |
| 141 | 146 | |
| 142 | 147 |
| r17673 | r17674 | |
|---|---|---|
| 63 | 63 | DECLARE_WRITE8_MEMBER(mazeinv_paletteram_w); |
| 64 | 64 | DECLARE_DRIVER_INIT(multiped); |
| 65 | 65 | DECLARE_DRIVER_INIT(bullsdrt); |
| 66 | TILE_GET_INFO_MEMBER(centiped_get_tile_info); | |
| 67 | TILE_GET_INFO_MEMBER(warlords_get_tile_info); | |
| 68 | TILE_GET_INFO_MEMBER(milliped_get_tile_info); | |
| 69 | TILE_GET_INFO_MEMBER(bullsdrt_get_tile_info); | |
| 66 | 70 | }; |
| 67 | 71 | |
| 68 | 72 |
| r17673 | r17674 | |
|---|---|---|
| 59 | 59 | DECLARE_DRIVER_INIT(marble); |
| 60 | 60 | DECLARE_DRIVER_INIT(roadrunn); |
| 61 | 61 | DECLARE_DRIVER_INIT(indytemp); |
| 62 | TILE_GET_INFO_MEMBER(get_alpha_tile_info); | |
| 63 | TILE_GET_INFO_MEMBER(get_playfield_tile_info); | |
| 62 | 64 | }; |
| 63 | 65 | |
| 64 | 66 |
| r17673 | r17674 | |
|---|---|---|
| 61 | 61 | DECLARE_WRITE16_MEMBER(wgp_piv_ctrl_word_w); |
| 62 | 62 | DECLARE_DRIVER_INIT(wgp); |
| 63 | 63 | DECLARE_DRIVER_INIT(wgp2); |
| 64 | TILE_GET_INFO_MEMBER(get_piv0_tile_info); | |
| 65 | TILE_GET_INFO_MEMBER(get_piv1_tile_info); | |
| 66 | TILE_GET_INFO_MEMBER(get_piv2_tile_info); | |
| 64 | 67 | }; |
| 65 | 68 | |
| 66 | 69 |
| r17673 | r17674 | |
|---|---|---|
| 33 | 33 | DECLARE_CUSTOM_INPUT_MEMBER(pending_sound_r); |
| 34 | 34 | DECLARE_DRIVER_INIT(quiz18k); |
| 35 | 35 | DECLARE_DRIVER_INIT(welltris); |
| 36 | TILE_GET_INFO_MEMBER(get_welltris_tile_info); | |
| 36 | 37 | }; |
| 37 | 38 | |
| 38 | 39 |
| r17673 | r17674 | |
|---|---|---|
| 30 | 30 | DECLARE_WRITE8_MEMBER(sprint8_lockout_w); |
| 31 | 31 | DECLARE_WRITE8_MEMBER(sprint8_int_reset_w); |
| 32 | 32 | DECLARE_WRITE8_MEMBER(sprint8_video_ram_w); |
| 33 | TILE_GET_INFO_MEMBER(get_tile_info1); | |
| 34 | TILE_GET_INFO_MEMBER(get_tile_info2); | |
| 33 | 35 | }; |
| 34 | 36 | |
| 35 | 37 |
| r17673 | r17674 | |
|---|---|---|
| 22 | 22 | tilemap_t *m_fg_tilemap; |
| 23 | 23 | DECLARE_WRITE16_MEMBER(gumbo_bg_videoram_w); |
| 24 | 24 | DECLARE_WRITE16_MEMBER(gumbo_fg_videoram_w); |
| 25 | TILE_GET_INFO_MEMBER(get_gumbo_bg_tile_info); | |
| 26 | TILE_GET_INFO_MEMBER(get_gumbo_fg_tile_info); | |
| 25 | 27 | }; |
| 26 | 28 | |
| 27 | 29 |
| r17673 | r17674 | |
|---|---|---|
| 120 | 120 | DECLARE_DRIVER_INIT(jsk); |
| 121 | 121 | DECLARE_DRIVER_INIT(twineag2); |
| 122 | 122 | DECLARE_DRIVER_INIT(mslider); |
| 123 | TILE_GET_INFO_MEMBER(get_tile_info_0); | |
| 123 | 124 | }; |
| 124 | 125 | |
| 125 | 126 | /*----------- defined in video/ssv.c -----------*/ |
| r17673 | r17674 | |
|---|---|---|
| 46 | 46 | DECLARE_DIRECT_UPDATE_MEMBER(atarig42_sloop_direct_handler); |
| 47 | 47 | DECLARE_DRIVER_INIT(roadriot); |
| 48 | 48 | DECLARE_DRIVER_INIT(guardian); |
| 49 | TILE_GET_INFO_MEMBER(get_alpha_tile_info); | |
| 50 | TILE_GET_INFO_MEMBER(get_playfield_tile_info); | |
| 51 | TILEMAP_MAPPER_MEMBER(atarig42_playfield_scan); | |
| 49 | 52 | }; |
| 50 | 53 | |
| 51 | 54 |
| r17673 | r17674 | |
|---|---|---|
| 53 | 53 | DECLARE_WRITE8_MEMBER(voice_w); |
| 54 | 54 | |
| 55 | 55 | optional_device<namco_c45_road_device> m_c45_road; |
| 56 | TILE_GET_INFO_MEMBER(get_tx_tile_info); | |
| 57 | TILE_GET_INFO_MEMBER(get_bg1_tile_info); | |
| 58 | TILE_GET_INFO_MEMBER(get_bg2_tile_info); | |
| 56 | 59 | }; |
| 57 | 60 | |
| 58 | 61 |
| r17673 | r17674 | |
|---|---|---|
| 40 | 40 | DECLARE_WRITE8_MEMBER(cop01_vreg_w); |
| 41 | 41 | DECLARE_CUSTOM_INPUT_MEMBER(mightguy_area_r); |
| 42 | 42 | DECLARE_DRIVER_INIT(mightguy); |
| 43 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 44 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 43 | 45 | }; |
| 44 | 46 | |
| 45 | 47 |
| r17673 | r17674 | |
|---|---|---|
| 17 | 17 | UINT16 m_playfield_yscroll; |
| 18 | 18 | DECLARE_READ16_MEMBER(port1_r); |
| 19 | 19 | DECLARE_DRIVER_INIT(vindictr); |
| 20 | TILE_GET_INFO_MEMBER(get_alpha_tile_info); | |
| 21 | TILE_GET_INFO_MEMBER(get_playfield_tile_info); | |
| 20 | 22 | }; |
| 21 | 23 | |
| 22 | 24 |
| r17673 | r17674 | |
|---|---|---|
| 25 | 25 | DECLARE_WRITE8_MEMBER(hanaawas_inputs_mux_w); |
| 26 | 26 | DECLARE_WRITE8_MEMBER(hanaawas_videoram_w); |
| 27 | 27 | DECLARE_WRITE8_MEMBER(hanaawas_colorram_w); |
| 28 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 28 | 29 | }; |
| 29 | 30 | |
| 30 | 31 |
| r17673 | r17674 | |
|---|---|---|
| 40 | 40 | DECLARE_WRITE16_MEMBER(aquarium_mid_videoram_w); |
| 41 | 41 | DECLARE_WRITE16_MEMBER(aquarium_bak_videoram_w); |
| 42 | 42 | DECLARE_DRIVER_INIT(aquarium); |
| 43 | TILE_GET_INFO_MEMBER(get_aquarium_txt_tile_info); | |
| 44 | TILE_GET_INFO_MEMBER(get_aquarium_mid_tile_info); | |
| 45 | TILE_GET_INFO_MEMBER(get_aquarium_bak_tile_info); | |
| 43 | 46 | }; |
| 44 | 47 | |
| 45 | 48 |
| r17673 | r17674 | |
|---|---|---|
| 151 | 151 | DECLARE_DRIVER_INIT(dharmak); |
| 152 | 152 | DECLARE_DRIVER_INIT(puzzlet); |
| 153 | 153 | DECLARE_DRIVER_INIT(metro); |
| 154 | TILE_GET_INFO_MEMBER(metro_k053936_get_tile_info); | |
| 155 | TILE_GET_INFO_MEMBER(metro_k053936_gstrik2_get_tile_info); | |
| 156 | TILEMAP_MAPPER_MEMBER(tilemap_scan_gstrik2); | |
| 154 | 157 | }; |
| 155 | 158 | |
| 156 | 159 |
| r17673 | r17674 | |
|---|---|---|
| 53 | 53 | DECLARE_WRITE8_MEMBER(angelkds_paletteram_w); |
| 54 | 54 | DECLARE_DRIVER_INIT(angelkds); |
| 55 | 55 | DECLARE_DRIVER_INIT(spcpostn); |
| 56 | TILE_GET_INFO_MEMBER(get_tx_tile_info); | |
| 57 | TILE_GET_INFO_MEMBER(get_bgtop_tile_info); | |
| 58 | TILE_GET_INFO_MEMBER(get_bgbot_tile_info); | |
| 56 | 59 | }; |
| 57 | 60 | |
| 58 | 61 |
| r17673 | r17674 | |
|---|---|---|
| 52 | 52 | DECLARE_WRITE8_MEMBER(circusc_colorram_w); |
| 53 | 53 | DECLARE_WRITE8_MEMBER(circusc_flipscreen_w); |
| 54 | 54 | DECLARE_DRIVER_INIT(circusc); |
| 55 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 55 | 56 | }; |
| 56 | 57 | |
| 57 | 58 |
| r17673 | r17674 | |
|---|---|---|
| 38 | 38 | DECLARE_WRITE8_MEMBER(mikie_colorram_w); |
| 39 | 39 | DECLARE_WRITE8_MEMBER(mikie_palettebank_w); |
| 40 | 40 | DECLARE_WRITE8_MEMBER(mikie_flipscreen_w); |
| 41 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 41 | 42 | }; |
| 42 | 43 | |
| 43 | 44 |
| r17673 | r17674 | |
|---|---|---|
| 14 | 14 | DECLARE_WRITE8_MEMBER(lamps2_w); |
| 15 | 15 | DECLARE_WRITE8_MEMBER(usgames_videoram_w); |
| 16 | 16 | DECLARE_WRITE8_MEMBER(usgames_charram_w); |
| 17 | TILE_GET_INFO_MEMBER(get_usgames_tile_info); | |
| 17 | 18 | }; |
| 18 | 19 | |
| 19 | 20 |
| r17673 | r17674 | |
|---|---|---|
| 41 | 41 | DECLARE_WRITE8_MEMBER(zaccaria_port0b_w); |
| 42 | 42 | DECLARE_WRITE8_MEMBER(zaccaria_port1b_w); |
| 43 | 43 | DECLARE_WRITE8_MEMBER(mc1408_data_w); |
| 44 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 44 | 45 | }; |
| 45 | 46 | |
| 46 | 47 |
| r17673 | r17674 | |
|---|---|---|
| 15 | 15 | DECLARE_WRITE8_MEMBER(speedbal_coincounter_w); |
| 16 | 16 | DECLARE_WRITE8_MEMBER(speedbal_foreground_videoram_w); |
| 17 | 17 | DECLARE_WRITE8_MEMBER(speedbal_background_videoram_w); |
| 18 | TILE_GET_INFO_MEMBER(get_tile_info_bg); | |
| 19 | TILE_GET_INFO_MEMBER(get_tile_info_fg); | |
| 18 | 20 | }; |
| 19 | 21 | |
| 20 | 22 |
| r17673 | r17674 | |
|---|---|---|
| 38 | 38 | DECLARE_WRITE16_MEMBER(shadfrce_bg1scrollx_w); |
| 39 | 39 | DECLARE_WRITE16_MEMBER(shadfrce_bg1scrolly_w); |
| 40 | 40 | DECLARE_WRITE8_MEMBER(oki_bankswitch_w); |
| 41 | TILE_GET_INFO_MEMBER(get_shadfrce_fgtile_info); | |
| 42 | TILE_GET_INFO_MEMBER(get_shadfrce_bg0tile_info); | |
| 43 | TILE_GET_INFO_MEMBER(get_shadfrce_bg1tile_info); | |
| 41 | 44 | }; |
| 42 | 45 | |
| 43 | 46 |
| r17673 | r17674 | |
|---|---|---|
| 24 | 24 | DECLARE_WRITE8_MEMBER(tagteam_control_w); |
| 25 | 25 | DECLARE_WRITE8_MEMBER(tagteam_flipscreen_w); |
| 26 | 26 | DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); |
| 27 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 27 | 28 | }; |
| 28 | 29 | |
| 29 | 30 |
| r17673 | r17674 | |
|---|---|---|
| 43 | 43 | DECLARE_READ8_MEMBER(dial_input_p1_r); |
| 44 | 44 | DECLARE_READ8_MEMBER(dial_input_p2_r); |
| 45 | 45 | DECLARE_DRIVER_INIT(bagman); |
| 46 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 46 | 47 | }; |
| 47 | 48 | |
| 48 | 49 |
| r17673 | r17674 | |
|---|---|---|
| 44 | 44 | DECLARE_READ16_MEMBER(inufuku_tx_videoram_r); |
| 45 | 45 | DECLARE_WRITE16_MEMBER(inufuku_tx_videoram_w); |
| 46 | 46 | DECLARE_CUSTOM_INPUT_MEMBER(soundflag_r); |
| 47 | TILE_GET_INFO_MEMBER(get_inufuku_bg_tile_info); | |
| 48 | TILE_GET_INFO_MEMBER(get_inufuku_tx_tile_info); | |
| 47 | 49 | }; |
| 48 | 50 | |
| 49 | 51 |
| r17673 | r17674 | |
|---|---|---|
| 41 | 41 | DECLARE_WRITE8_MEMBER(commando_c804_w); |
| 42 | 42 | DECLARE_DRIVER_INIT(spaceinv); |
| 43 | 43 | DECLARE_DRIVER_INIT(commando); |
| 44 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 45 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 44 | 46 | }; |
| 45 | 47 | |
| 46 | 48 |
| r17673 | r17674 | |
|---|---|---|
| 73 | 73 | DECLARE_DRIVER_INIT(csprint); |
| 74 | 74 | DECLARE_DRIVER_INIT(paperboy); |
| 75 | 75 | DECLARE_DRIVER_INIT(720); |
| 76 | TILE_GET_INFO_MEMBER(get_alpha_tile_info); | |
| 77 | TILE_GET_INFO_MEMBER(get_playfield_tile_info); | |
| 76 | 78 | }; |
| 77 | 79 | |
| 78 | 80 |
| r17673 | r17674 | |
|---|---|---|
| 56 | 56 | DECLARE_DRIVER_INIT(mnight); |
| 57 | 57 | DECLARE_DRIVER_INIT(ninjakd2); |
| 58 | 58 | DECLARE_DRIVER_INIT(bootleg); |
| 59 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 60 | TILE_GET_INFO_MEMBER(ninjakd2_get_bg_tile_info); | |
| 61 | TILE_GET_INFO_MEMBER(mnight_get_bg_tile_info); | |
| 62 | TILEMAP_MAPPER_MEMBER(robokid_bg_scan); | |
| 63 | TILEMAP_MAPPER_MEMBER(omegaf_bg_scan); | |
| 64 | TILE_GET_INFO_MEMBER(robokid_get_bg0_tile_info); | |
| 65 | TILE_GET_INFO_MEMBER(robokid_get_bg1_tile_info); | |
| 66 | TILE_GET_INFO_MEMBER(robokid_get_bg2_tile_info); | |
| 59 | 67 | }; |
| 60 | 68 | |
| 61 | 69 |
| r17673 | r17674 | |
|---|---|---|
| 34 | 34 | DECLARE_WRITE8_MEMBER(yunsung8_videoram_w); |
| 35 | 35 | DECLARE_WRITE8_MEMBER(yunsung8_flipscreen_w); |
| 36 | 36 | DECLARE_WRITE8_MEMBER(yunsung8_sound_bankswitch_w); |
| 37 | TILE_GET_INFO_MEMBER(get_tile_info_0); | |
| 38 | TILE_GET_INFO_MEMBER(get_tile_info_1); | |
| 37 | 39 | }; |
| 38 | 40 | |
| 39 | 41 |
| r17673 | r17674 | |
|---|---|---|
| 46 | 46 | DECLARE_WRITE8_MEMBER(skydiver_2000_201F_w); |
| 47 | 47 | DECLARE_WRITE8_MEMBER(skydiver_sound_enable_w); |
| 48 | 48 | DECLARE_WRITE8_MEMBER(skydiver_whistle_w); |
| 49 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 49 | 50 | }; |
| 50 | 51 | |
| 51 | 52 |
| r17673 | r17674 | |
|---|---|---|
| 30 | 30 | DECLARE_WRITE8_MEMBER(m52_bgcontrol_w); |
| 31 | 31 | DECLARE_WRITE8_MEMBER(m52_flipscreen_w); |
| 32 | 32 | DECLARE_WRITE8_MEMBER(alpha1v_flipscreen_w); |
| 33 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 33 | 34 | }; |
| 34 | 35 | |
| 35 | 36 | /*----------- defined in video/m52.c -----------*/ |
| r17673 | r17674 | |
|---|---|---|
| 36 | 36 | DECLARE_DRIVER_INIT(sos); |
| 37 | 37 | DECLARE_DRIVER_INIT(kaitei); |
| 38 | 38 | DECLARE_DRIVER_INIT(bombbee); |
| 39 | TILEMAP_MAPPER_MEMBER(tilemap_scan); | |
| 40 | TILE_GET_INFO_MEMBER(geebee_get_tile_info); | |
| 41 | TILE_GET_INFO_MEMBER(navarone_get_tile_info); | |
| 42 | TILE_GET_INFO_MEMBER(warpwarp_get_tile_info); | |
| 39 | 43 | }; |
| 40 | 44 | |
| 41 | 45 |
| r17673 | r17674 | |
|---|---|---|
| 37 | 37 | DECLARE_WRITE8_MEMBER(gng_bgscrolly_w); |
| 38 | 38 | DECLARE_WRITE8_MEMBER(gng_flipscreen_w); |
| 39 | 39 | DECLARE_DRIVER_INIT(diamond); |
| 40 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 41 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 40 | 42 | }; |
| 41 | 43 | |
| 42 | 44 |
| r17673 | r17674 | |
|---|---|---|
| 59 | 59 | DECLARE_WRITE8_MEMBER(ojankohs_adpcm_reset_w); |
| 60 | 60 | DECLARE_READ8_MEMBER(ojankohs_ay8910_0_r); |
| 61 | 61 | DECLARE_READ8_MEMBER(ojankohs_ay8910_1_r); |
| 62 | TILE_GET_INFO_MEMBER(ojankohs_get_tile_info); | |
| 63 | TILE_GET_INFO_MEMBER(ojankoy_get_tile_info); | |
| 62 | 64 | }; |
| 63 | 65 | |
| 64 | 66 |
| r17673 | r17674 | |
|---|---|---|
| 35 | 35 | DECLARE_WRITE8_MEMBER(wc90b_fgvideoram_w); |
| 36 | 36 | DECLARE_WRITE8_MEMBER(wc90b_txvideoram_w); |
| 37 | 37 | DECLARE_WRITE8_MEMBER(adpcm_control_w); |
| 38 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 39 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 40 | TILE_GET_INFO_MEMBER(get_tx_tile_info); | |
| 38 | 41 | }; |
| 39 | 42 | |
| 40 | 43 |
| r17673 | r17674 | |
|---|---|---|
| 40 | 40 | DECLARE_READ8_MEMBER(m6803_port1_r); |
| 41 | 41 | DECLARE_READ8_MEMBER(m6803_port2_r); |
| 42 | 42 | DECLARE_WRITE8_MEMBER(unused_w); |
| 43 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 43 | 44 | }; |
| 44 | 45 | |
| 45 | 46 |
| r17673 | r17674 | |
|---|---|---|
| 27 | 27 | DECLARE_WRITE8_MEMBER(holeland_pal_offs_w); |
| 28 | 28 | DECLARE_WRITE8_MEMBER(holeland_scroll_w); |
| 29 | 29 | DECLARE_WRITE8_MEMBER(holeland_flipscreen_w); |
| 30 | TILE_GET_INFO_MEMBER(holeland_get_tile_info); | |
| 31 | TILE_GET_INFO_MEMBER(crzrally_get_tile_info); | |
| 30 | 32 | }; |
| 31 | 33 | |
| 32 | 34 |
| r17673 | r17674 | |
|---|---|---|
| 41 | 41 | DECLARE_WRITE8_MEMBER(spdodgeb_scrollx_lo_w); |
| 42 | 42 | DECLARE_WRITE8_MEMBER(spdodgeb_ctrl_w); |
| 43 | 43 | DECLARE_WRITE8_MEMBER(spdodgeb_videoram_w); |
| 44 | TILEMAP_MAPPER_MEMBER(background_scan); | |
| 45 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 44 | 46 | }; |
| 45 | 47 | |
| 46 | 48 |
| r17673 | r17674 | |
|---|---|---|
| 51 | 51 | DECLARE_DRIVER_INIT(yellowcb); |
| 52 | 52 | DECLARE_DRIVER_INIT(liberate); |
| 53 | 53 | DECLARE_DRIVER_INIT(prosport); |
| 54 | TILEMAP_MAPPER_MEMBER(back_scan); | |
| 55 | TILEMAP_MAPPER_MEMBER(fix_scan); | |
| 56 | TILE_GET_INFO_MEMBER(get_back_tile_info); | |
| 57 | TILE_GET_INFO_MEMBER(get_fix_tile_info); | |
| 58 | TILE_GET_INFO_MEMBER(prosport_get_back_tile_info); | |
| 54 | 59 | }; |
| 55 | 60 | |
| 56 | 61 |
| r17673 | r17674 | |
|---|---|---|
| 34 | 34 | DECLARE_WRITE8_MEMBER(gunsmoke_colorram_w); |
| 35 | 35 | DECLARE_WRITE8_MEMBER(gunsmoke_c804_w); |
| 36 | 36 | DECLARE_WRITE8_MEMBER(gunsmoke_d806_w); |
| 37 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 38 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 37 | 39 | }; |
| 38 | 40 | |
| 39 | 41 |
| r17673 | r17674 | |
|---|---|---|
| 121 | 121 | DECLARE_WRITE8_MEMBER(buckrog_i8255_0_w); |
| 122 | 122 | DECLARE_DRIVER_INIT(buckrog_enc); |
| 123 | 123 | DECLARE_DRIVER_INIT(turbo_enc); |
| 124 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 124 | 125 | }; |
| 125 | 126 | |
| 126 | 127 |
| r17673 | r17674 | |
|---|---|---|
| 171 | 171 | DECLARE_DRIVER_INIT(blandia); |
| 172 | 172 | DECLARE_DRIVER_INIT(kiwame); |
| 173 | 173 | DECLARE_DRIVER_INIT(eightfrc); |
| 174 | TILE_GET_INFO_MEMBER(twineagl_get_tile_info_0); | |
| 175 | TILE_GET_INFO_MEMBER(twineagl_get_tile_info_1); | |
| 176 | TILE_GET_INFO_MEMBER(get_tile_info_0); | |
| 177 | TILE_GET_INFO_MEMBER(get_tile_info_1); | |
| 178 | TILE_GET_INFO_MEMBER(get_tile_info_2); | |
| 179 | TILE_GET_INFO_MEMBER(get_tile_info_3); | |
| 174 | 180 | }; |
| 175 | 181 | |
| 176 | 182 | /*----------- defined in video/seta.c -----------*/ |
| r17673 | r17674 | |
|---|---|---|
| 77 | 77 | DECLARE_READ8_MEMBER(zaccaria_port0a_r); |
| 78 | 78 | DECLARE_WRITE8_MEMBER(zaccaria_port0a_w); |
| 79 | 79 | DECLARE_WRITE8_MEMBER(zaccaria_port0b_w); |
| 80 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 80 | 81 | }; |
| 81 | 82 | |
| 82 | 83 |
| r17673 | r17674 | |
|---|---|---|
| 35 | 35 | DECLARE_WRITE8_MEMBER(sub_irq_mask_w); |
| 36 | 36 | DECLARE_WRITE8_MEMBER(tp84_spriteram_w); |
| 37 | 37 | DECLARE_READ8_MEMBER(tp84_scanline_r); |
| 38 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 39 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 38 | 40 | }; |
| 39 | 41 | |
| 40 | 42 |
| r17673 | r17674 | |
|---|---|---|
| 28 | 28 | DECLARE_WRITE8_MEMBER(vb_videoram_w); |
| 29 | 29 | DECLARE_READ8_MEMBER(vb_attrib_r); |
| 30 | 30 | DECLARE_WRITE8_MEMBER(vb_attrib_w); |
| 31 | TILEMAP_MAPPER_MEMBER(background_scan); | |
| 32 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 31 | 33 | }; |
| 32 | 34 | |
| 33 | 35 |
| r17673 | r17674 | |
|---|---|---|
| 66 | 66 | DIRECT_UPDATE_MEMBER(plygonet_dsp56k_direct_handler); |
| 67 | 67 | DECLARE_READ32_MEMBER(polygonet_eeprom_r); |
| 68 | 68 | DECLARE_DRIVER_INIT(polygonet); |
| 69 | TILE_GET_INFO_MEMBER(ttl_get_tile_info); | |
| 70 | TILE_GET_INFO_MEMBER(roz_get_tile_info); | |
| 71 | TILEMAP_MAPPER_MEMBER(plygonet_scan); | |
| 72 | TILEMAP_MAPPER_MEMBER(plygonet_scan_cols); | |
| 69 | 73 | }; |
| 70 | 74 | |
| 71 | 75 | /*----------- defined in video/plygonet.c -----------*/ |
| r17673 | r17674 | |
|---|---|---|
| 23 | 23 | DECLARE_WRITE8_MEMBER(higemaru_videoram_w); |
| 24 | 24 | DECLARE_WRITE8_MEMBER(higemaru_colorram_w); |
| 25 | 25 | DECLARE_WRITE8_MEMBER(higemaru_c800_w); |
| 26 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 26 | 27 | }; |
| 27 | 28 | |
| 28 | 29 |
| r17673 | r17674 | |
|---|---|---|
| 20 | 20 | DECLARE_READ16_MEMBER(special_port2_r); |
| 21 | 21 | DECLARE_WRITE16_MEMBER(latch_w); |
| 22 | 22 | DECLARE_DRIVER_INIT(batman); |
| 23 | TILE_GET_INFO_MEMBER(get_alpha_tile_info); | |
| 24 | TILE_GET_INFO_MEMBER(get_playfield_tile_info); | |
| 25 | TILE_GET_INFO_MEMBER(get_playfield2_tile_info); | |
| 23 | 26 | }; |
| 24 | 27 | |
| 25 | 28 |
| r17673 | r17674 | |
|---|---|---|
| 79 | 79 | DECLARE_WRITE8_MEMBER(salamand_speech_start_w); |
| 80 | 80 | DECLARE_READ8_MEMBER(nemesis_portA_r); |
| 81 | 81 | DECLARE_WRITE8_MEMBER(city_sound_bank_w); |
| 82 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 83 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 82 | 84 | }; |
| 83 | 85 | |
| 84 | 86 |
| r17673 | r17674 | |
|---|---|---|
| 31 | 31 | DECLARE_WRITE8_MEMBER(cheekyms_port_40_w); |
| 32 | 32 | DECLARE_WRITE8_MEMBER(cheekyms_port_80_w); |
| 33 | 33 | DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); |
| 34 | TILE_GET_INFO_MEMBER(cheekyms_get_tile_info); | |
| 34 | 35 | }; |
| 35 | 36 | |
| 36 | 37 |
| r17673 | r17674 | |
|---|---|---|
| 22 | 22 | DECLARE_WRITE8_MEMBER(timelimt_scroll_x_lsb_w); |
| 23 | 23 | DECLARE_WRITE8_MEMBER(timelimt_scroll_x_msb_w); |
| 24 | 24 | DECLARE_WRITE8_MEMBER(timelimt_scroll_y_w); |
| 25 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 26 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 25 | 27 | }; |
| 26 | 28 | |
| 27 | 29 |
| r17673 | r17674 | |
|---|---|---|
| 45 | 45 | DECLARE_WRITE16_MEMBER(goal92_background_w); |
| 46 | 46 | DECLARE_WRITE16_MEMBER(goal92_foreground_w); |
| 47 | 47 | DECLARE_WRITE8_MEMBER(adpcm_control_w); |
| 48 | TILE_GET_INFO_MEMBER(get_text_tile_info); | |
| 49 | TILE_GET_INFO_MEMBER(get_back_tile_info); | |
| 50 | TILE_GET_INFO_MEMBER(get_fore_tile_info); | |
| 48 | 51 | }; |
| 49 | 52 | |
| 50 | 53 |
| r17673 | r17674 | |
|---|---|---|
| 33 | 33 | DECLARE_WRITE8_MEMBER(c1942_scroll_w); |
| 34 | 34 | DECLARE_WRITE8_MEMBER(c1942_c804_w); |
| 35 | 35 | DECLARE_DRIVER_INIT(1942); |
| 36 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 37 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 36 | 38 | }; |
| 37 | 39 | |
| 38 | 40 |
| r17673 | r17674 | |
|---|---|---|
| 28 | 28 | DECLARE_READ8_MEMBER(poolshrk_input_r); |
| 29 | 29 | DECLARE_READ8_MEMBER(poolshrk_irq_reset_r); |
| 30 | 30 | DECLARE_DRIVER_INIT(poolshrk); |
| 31 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 31 | 32 | }; |
| 32 | 33 | |
| 33 | 34 |
| r17673 | r17674 | |
|---|---|---|
| 34 | 34 | DECLARE_DRIVER_INIT(raidenk); |
| 35 | 35 | DECLARE_DRIVER_INIT(raiden); |
| 36 | 36 | DECLARE_DRIVER_INIT(raidena); |
| 37 | TILE_GET_INFO_MEMBER(get_back_tile_info); | |
| 38 | TILE_GET_INFO_MEMBER(get_fore_tile_info); | |
| 39 | TILE_GET_INFO_MEMBER(get_text_tile_info); | |
| 37 | 40 | }; |
| 38 | 41 | |
| 39 | 42 |
| r17673 | r17674 | |
|---|---|---|
| 22 | 22 | DECLARE_WRITE16_MEMBER(bloodbro_bgvideoram_w); |
| 23 | 23 | DECLARE_WRITE16_MEMBER(bloodbro_fgvideoram_w); |
| 24 | 24 | DECLARE_WRITE16_MEMBER(bloodbro_txvideoram_w); |
| 25 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 26 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 27 | TILE_GET_INFO_MEMBER(get_tx_tile_info); | |
| 25 | 28 | }; |
| 26 | 29 | |
| 27 | 30 |
| r17673 | r17674 | |
|---|---|---|
| 20 | 20 | DECLARE_WRITE8_MEMBER(galaxia_dataport_w); |
| 21 | 21 | DECLARE_READ8_MEMBER(galaxia_collision_r); |
| 22 | 22 | DECLARE_READ8_MEMBER(galaxia_collision_clear); |
| 23 | TILE_GET_INFO_MEMBER(get_galaxia_bg_tile_info); | |
| 24 | TILE_GET_INFO_MEMBER(get_astrowar_bg_tile_info); | |
| 23 | 25 | }; |
| 24 | 26 | |
| 25 | 27 |
| r17673 | r17674 | |
|---|---|---|
| 83 | 83 | DECLARE_CUSTOM_INPUT_MEMBER(subcpu_nmi_r); |
| 84 | 84 | DECLARE_DRIVER_INIT(fromanc4); |
| 85 | 85 | DECLARE_DRIVER_INIT(fromanc2); |
| 86 | TILE_GET_INFO_MEMBER(fromanc2_get_v0_l0_tile_info); | |
| 87 | TILE_GET_INFO_MEMBER(fromanc2_get_v0_l1_tile_info); | |
| 88 | TILE_GET_INFO_MEMBER(fromanc2_get_v0_l2_tile_info); | |
| 89 | TILE_GET_INFO_MEMBER(fromanc2_get_v0_l3_tile_info); | |
| 90 | TILE_GET_INFO_MEMBER(fromanc2_get_v1_l0_tile_info); | |
| 91 | TILE_GET_INFO_MEMBER(fromanc2_get_v1_l1_tile_info); | |
| 92 | TILE_GET_INFO_MEMBER(fromanc2_get_v1_l2_tile_info); | |
| 93 | TILE_GET_INFO_MEMBER(fromanc2_get_v1_l3_tile_info); | |
| 94 | TILE_GET_INFO_MEMBER(fromancr_get_v0_l0_tile_info); | |
| 95 | TILE_GET_INFO_MEMBER(fromancr_get_v0_l1_tile_info); | |
| 96 | TILE_GET_INFO_MEMBER(fromancr_get_v0_l2_tile_info); | |
| 97 | TILE_GET_INFO_MEMBER(fromancr_get_v1_l0_tile_info); | |
| 98 | TILE_GET_INFO_MEMBER(fromancr_get_v1_l1_tile_info); | |
| 99 | TILE_GET_INFO_MEMBER(fromancr_get_v1_l2_tile_info); | |
| 86 | 100 | }; |
| 87 | 101 | |
| 88 | 102 |
| r17673 | r17674 | |
|---|---|---|
| 34 | 34 | DECLARE_WRITE8_MEMBER(bombjack_colorram_w); |
| 35 | 35 | DECLARE_WRITE8_MEMBER(bombjack_background_w); |
| 36 | 36 | DECLARE_WRITE8_MEMBER(bombjack_flipscreen_w); |
| 37 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 38 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 37 | 39 | }; |
| 38 | 40 | |
| 39 | 41 |
| r17673 | r17674 | |
|---|---|---|
| 48 | 48 | DECLARE_WRITE8_MEMBER(rallyx_scrollx_w); |
| 49 | 49 | DECLARE_WRITE8_MEMBER(rallyx_scrolly_w); |
| 50 | 50 | DECLARE_WRITE8_MEMBER(tactcian_starson_w); |
| 51 | TILEMAP_MAPPER_MEMBER(fg_tilemap_scan); | |
| 52 | TILE_GET_INFO_MEMBER(rallyx_bg_get_tile_info); | |
| 53 | TILE_GET_INFO_MEMBER(rallyx_fg_get_tile_info); | |
| 54 | TILE_GET_INFO_MEMBER(locomotn_bg_get_tile_info); | |
| 55 | TILE_GET_INFO_MEMBER(locomotn_fg_get_tile_info); | |
| 51 | 56 | }; |
| 52 | 57 | |
| 53 | 58 |
| r17673 | r17674 | |
|---|---|---|
| 18 | 18 | DECLARE_WRITE8_MEMBER(trucocl_colorram_w); |
| 19 | 19 | DECLARE_WRITE8_MEMBER(audio_dac_w); |
| 20 | 20 | DECLARE_DRIVER_INIT(trucocl); |
| 21 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 21 | 22 | }; |
| 22 | 23 | |
| 23 | 24 |
| r17673 | r17674 | |
|---|---|---|
| 34 | 34 | DECLARE_WRITE32_MEMBER(unico_vram32_w); |
| 35 | 35 | DECLARE_WRITE16_MEMBER(burglarx_sound_bank_w); |
| 36 | 36 | DECLARE_WRITE32_MEMBER(zeropnt2_eeprom_w); |
| 37 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 38 | TILE_GET_INFO_MEMBER(get_tile_info32); | |
| 37 | 39 | }; |
| 38 | 40 | |
| 39 | 41 |
| r17673 | r17674 | |
|---|---|---|
| 52 | 52 | DECLARE_WRITE16_MEMBER(gcpinbal_tilemaps_word_w); |
| 53 | 53 | DECLARE_READ16_MEMBER(gcpinbal_ctrl_word_r); |
| 54 | 54 | DECLARE_WRITE16_MEMBER(gcpinbal_ctrl_word_w); |
| 55 | TILE_GET_INFO_MEMBER(get_bg0_tile_info); | |
| 56 | TILE_GET_INFO_MEMBER(get_bg1_tile_info); | |
| 57 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 55 | 58 | }; |
| 56 | 59 | |
| 57 | 60 |
| r17673 | r17674 | |
|---|---|---|
| 40 | 40 | DECLARE_WRITE16_MEMBER(realbrk_vram_1_w); |
| 41 | 41 | DECLARE_WRITE16_MEMBER(realbrk_vram_2_w); |
| 42 | 42 | DECLARE_WRITE16_MEMBER(realbrk_vregs_w); |
| 43 | TILE_GET_INFO_MEMBER(get_tile_info_0); | |
| 44 | TILE_GET_INFO_MEMBER(get_tile_info_1); | |
| 45 | TILE_GET_INFO_MEMBER(get_tile_info_2); | |
| 43 | 46 | }; |
| 44 | 47 | |
| 45 | 48 |
| r17673 | r17674 | |
|---|---|---|
| 27 | 27 | DECLARE_WRITE8_MEMBER(carjmbre_bgcolor_w); |
| 28 | 28 | DECLARE_WRITE8_MEMBER(carjmbre_8806_w); |
| 29 | 29 | DECLARE_WRITE8_MEMBER(carjmbre_videoram_w); |
| 30 | TILE_GET_INFO_MEMBER(get_carjmbre_tile_info); | |
| 30 | 31 | }; |
| 31 | 32 | |
| 32 | 33 |
| r17673 | r17674 | |
|---|---|---|
| 10 | 10 | DECLARE_WRITE8_MEMBER(output_port_0_w); |
| 11 | 11 | DECLARE_WRITE8_MEMBER(gat_videoram_w); |
| 12 | 12 | DECLARE_WRITE8_MEMBER(output_port_1_w); |
| 13 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 13 | 14 | }; |
| 14 | 15 | |
| 15 | 16 |
| r17673 | r17674 | |
|---|---|---|
| 35 | 35 | DECLARE_WRITE8_MEMBER(flower_bg1ram_w); |
| 36 | 36 | DECLARE_WRITE8_MEMBER(flower_flipscreen_w); |
| 37 | 37 | DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); |
| 38 | TILE_GET_INFO_MEMBER(get_bg0_tile_info); | |
| 39 | TILE_GET_INFO_MEMBER(get_bg1_tile_info); | |
| 40 | TILE_GET_INFO_MEMBER(get_text_tile_info); | |
| 38 | 41 | }; |
| 39 | 42 | |
| 40 | 43 |
| r17673 | r17674 | |
|---|---|---|
| 62 | 62 | DECLARE_WRITE8_MEMBER(xain_flipscreen_w); |
| 63 | 63 | DECLARE_CUSTOM_INPUT_MEMBER(xain_vblank_r); |
| 64 | 64 | DECLARE_CUSTOM_INPUT_MEMBER(mcu_status_r); |
| 65 | TILEMAP_MAPPER_MEMBER(back_scan); | |
| 66 | TILE_GET_INFO_MEMBER(get_bgram0_tile_info); | |
| 67 | TILE_GET_INFO_MEMBER(get_bgram1_tile_info); | |
| 68 | TILE_GET_INFO_MEMBER(get_char_tile_info); | |
| 65 | 69 | }; |
| 66 | 70 | |
| 67 | 71 |
| r17673 | r17674 | |
|---|---|---|
| 85 | 85 | DECLARE_DRIVER_INIT(ws89); |
| 86 | 86 | DECLARE_DRIVER_INIT(dspirit); |
| 87 | 87 | DECLARE_DRIVER_INIT(pistoldm); |
| 88 | TILE_GET_INFO_MEMBER(bg_get_info0); | |
| 89 | TILE_GET_INFO_MEMBER(bg_get_info1); | |
| 90 | TILE_GET_INFO_MEMBER(bg_get_info2); | |
| 91 | TILE_GET_INFO_MEMBER(bg_get_info3); | |
| 92 | TILE_GET_INFO_MEMBER(fg_get_info4); | |
| 93 | TILE_GET_INFO_MEMBER(fg_get_info5); | |
| 88 | 94 | }; |
| 89 | 95 | |
| 90 | 96 |
| r17673 | r17674 | |
|---|---|---|
| 28 | 28 | DECLARE_WRITE8_MEMBER(mrdo_scrollx_w); |
| 29 | 29 | DECLARE_WRITE8_MEMBER(mrdo_scrolly_w); |
| 30 | 30 | DECLARE_WRITE8_MEMBER(mrdo_flipscreen_w); |
| 31 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 32 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 31 | 33 | }; |
| 32 | 34 | |
| 33 | 35 |
| r17673 | r17674 | |
|---|---|---|
| 35 | 35 | DECLARE_WRITE8_MEMBER(gundealr_fg_scroll_w); |
| 36 | 36 | DECLARE_WRITE8_MEMBER(yamyam_fg_scroll_w); |
| 37 | 37 | DECLARE_WRITE8_MEMBER(gundealr_flipscreen_w); |
| 38 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 39 | TILEMAP_MAPPER_MEMBER(gundealr_scan); | |
| 40 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 38 | 41 | }; |
| 39 | 42 | |
| 40 | 43 |
| r17673 | r17674 | |
|---|---|---|
| 62 | 62 | DECLARE_DRIVER_INIT(spelunk2); |
| 63 | 63 | DECLARE_DRIVER_INIT(kidniki); |
| 64 | 64 | DECLARE_DRIVER_INIT(battroad); |
| 65 | TILE_GET_INFO_MEMBER(get_kungfum_bg_tile_info); | |
| 66 | TILE_GET_INFO_MEMBER(get_ldrun_bg_tile_info); | |
| 67 | TILE_GET_INFO_MEMBER(get_ldrun2_bg_tile_info); | |
| 68 | TILE_GET_INFO_MEMBER(get_battroad_bg_tile_info); | |
| 69 | TILE_GET_INFO_MEMBER(get_battroad_fg_tile_info); | |
| 70 | TILE_GET_INFO_MEMBER(get_ldrun4_bg_tile_info); | |
| 71 | TILE_GET_INFO_MEMBER(get_lotlot_bg_tile_info); | |
| 72 | TILE_GET_INFO_MEMBER(get_lotlot_fg_tile_info); | |
| 73 | TILE_GET_INFO_MEMBER(get_kidniki_bg_tile_info); | |
| 74 | TILE_GET_INFO_MEMBER(get_kidniki_fg_tile_info); | |
| 75 | TILE_GET_INFO_MEMBER(get_spelunkr_bg_tile_info); | |
| 76 | TILE_GET_INFO_MEMBER(get_spelunkr_fg_tile_info); | |
| 77 | TILE_GET_INFO_MEMBER(get_spelunk2_bg_tile_info); | |
| 78 | TILE_GET_INFO_MEMBER(get_youjyudn_bg_tile_info); | |
| 79 | TILE_GET_INFO_MEMBER(get_youjyudn_fg_tile_info); | |
| 80 | TILE_GET_INFO_MEMBER(get_horizon_bg_tile_info); | |
| 65 | 81 | }; |
| 66 | 82 | |
| 67 | 83 |
| r17673 | r17674 | |
|---|---|---|
| 34 | 34 | DECLARE_DRIVER_INIT(tokib); |
| 35 | 35 | DECLARE_DRIVER_INIT(jujuba); |
| 36 | 36 | DECLARE_DRIVER_INIT(toki); |
| 37 | TILE_GET_INFO_MEMBER(get_text_tile_info); | |
| 38 | TILE_GET_INFO_MEMBER(get_back_tile_info); | |
| 39 | TILE_GET_INFO_MEMBER(get_fore_tile_info); | |
| 37 | 40 | }; |
| 38 | 41 | |
| 39 | 42 |
| r17673 | r17674 | |
|---|---|---|
| 13 | 13 | required_shared_ptr<UINT16> m_fg_videoram; |
| 14 | 14 | DECLARE_WRITE16_MEMBER(pass_bg_videoram_w); |
| 15 | 15 | DECLARE_WRITE16_MEMBER(pass_fg_videoram_w); |
| 16 | TILE_GET_INFO_MEMBER(get_pass_bg_tile_info); | |
| 17 | TILE_GET_INFO_MEMBER(get_pass_fg_tile_info); | |
| 16 | 18 | }; |
| 17 | 19 | |
| 18 | 20 |
| r17673 | r17674 | |
|---|---|---|
| 86 | 86 | DECLARE_WRITE8_MEMBER(sound_control_3_w); |
| 87 | 87 | DECLARE_DRIVER_INIT(undoukai); |
| 88 | 88 | DECLARE_DRIVER_INIT(40love); |
| 89 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 89 | 90 | }; |
| 90 | 91 | |
| 91 | 92 |
| r17673 | r17674 | |
|---|---|---|
| 67 | 67 | DECLARE_DRIVER_INIT(kuniokun); |
| 68 | 68 | DECLARE_DRIVER_INIT(kuniokunb); |
| 69 | 69 | DECLARE_DRIVER_INIT(renegade); |
| 70 | TILE_GET_INFO_MEMBER(get_bg_tilemap_info); | |
| 71 | TILE_GET_INFO_MEMBER(get_fg_tilemap_info); | |
| 70 | 72 | }; |
| 71 | 73 | |
| 72 | 74 |
| r17673 | r17674 | |
|---|---|---|
| 50 | 50 | DECLARE_READ8_MEMBER(custom_mod_r); |
| 51 | 51 | DECLARE_DRIVER_INIT(galaga); |
| 52 | 52 | DECLARE_DRIVER_INIT(gatsbee); |
| 53 | TILEMAP_MAPPER_MEMBER(tilemap_scan); | |
| 54 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 53 | 55 | }; |
| 54 | 56 | |
| 55 | 57 | class xevious_state : public galaga_state |
| r17673 | r17674 | |
|---|---|---|
| 54 | 54 | DECLARE_WRITE8_MEMBER(wwjgtin_video_control_w); |
| 55 | 55 | DECLARE_WRITE8_MEMBER(pinbo_video_control_w); |
| 56 | 56 | DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); |
| 57 | TILE_GET_INFO_MEMBER(lasso_get_bg_tile_info); | |
| 58 | TILE_GET_INFO_MEMBER(wwjgtin_get_track_tile_info); | |
| 59 | TILE_GET_INFO_MEMBER(pinbo_get_bg_tile_info); | |
| 57 | 60 | }; |
| 58 | 61 | |
| 59 | 62 |
| r17673 | r17674 | |
|---|---|---|
| 38 | 38 | DECLARE_WRITE8_MEMBER(psychic5_paged_ram_w); |
| 39 | 39 | DECLARE_WRITE8_MEMBER(bombsa_paged_ram_w); |
| 40 | 40 | DECLARE_WRITE8_MEMBER(bombsa_unknown_w); |
| 41 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 42 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 41 | 43 | }; |
| 42 | 44 | |
| 43 | 45 |
| r17673 | r17674 | |
|---|---|---|
| 39 | 39 | DECLARE_WRITE16_MEMBER(ginganin_vregs16_w); |
| 40 | 40 | DECLARE_WRITE8_MEMBER(ptm_irq); |
| 41 | 41 | DECLARE_DRIVER_INIT(ginganin); |
| 42 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 43 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 44 | TILE_GET_INFO_MEMBER(get_txt_tile_info); | |
| 42 | 45 | }; |
| 43 | 46 | |
| 44 | 47 |
| r17673 | r17674 | |
|---|---|---|
| 34 | 34 | DECLARE_WRITE16_MEMBER(tail2nos_zoomdata_w); |
| 35 | 35 | DECLARE_WRITE16_MEMBER(tail2nos_gfxbank_w); |
| 36 | 36 | DECLARE_WRITE8_MEMBER(sound_bankswitch_w); |
| 37 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 37 | 38 | }; |
| 38 | 39 | |
| 39 | 40 |
| r17673 | r17674 | |
|---|---|---|
| 22 | 22 | DECLARE_WRITE8_MEMBER(mrjong_videoram_w); |
| 23 | 23 | DECLARE_WRITE8_MEMBER(mrjong_colorram_w); |
| 24 | 24 | DECLARE_WRITE8_MEMBER(mrjong_flipscreen_w); |
| 25 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 25 | 26 | }; |
| 26 | 27 | |
| 27 | 28 |
| r17673 | r17674 | |
|---|---|---|
| 16 | 16 | DECLARE_READ8_MEMBER(xyonix_io_r); |
| 17 | 17 | DECLARE_WRITE8_MEMBER(xyonix_io_w); |
| 18 | 18 | DECLARE_WRITE8_MEMBER(xyonix_vidram_w); |
| 19 | TILE_GET_INFO_MEMBER(get_xyonix_tile_info); | |
| 19 | 20 | }; |
| 20 | 21 | |
| 21 | 22 |
| r17673 | r17674 | |
|---|---|---|
| 40 | 40 | DECLARE_WRITE8_MEMBER(c1943_d806_w); |
| 41 | 41 | DECLARE_DRIVER_INIT(1943b); |
| 42 | 42 | DECLARE_DRIVER_INIT(1943); |
| 43 | TILE_GET_INFO_MEMBER(c1943_get_bg2_tile_info); | |
| 44 | TILE_GET_INFO_MEMBER(c1943_get_bg_tile_info); | |
| 45 | TILE_GET_INFO_MEMBER(c1943_get_fg_tile_info); | |
| 43 | 46 | }; |
| 44 | 47 | |
| 45 | 48 |
| r17673 | r17674 | |
|---|---|---|
| 35 | 35 | DECLARE_WRITE8_MEMBER(ym2149_portb_w); |
| 36 | 36 | DECLARE_WRITE8_MEMBER(lamps_a_w); |
| 37 | 37 | DECLARE_WRITE8_MEMBER(lamps_b_w); |
| 38 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 39 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 38 | 40 | }; |
| 39 | 41 | |
| 40 | 42 |
| r17673 | r17674 | |
|---|---|---|
| 33 | 33 | DECLARE_WRITE8_MEMBER(pacland_scroll0_w); |
| 34 | 34 | DECLARE_WRITE8_MEMBER(pacland_scroll1_w); |
| 35 | 35 | DECLARE_WRITE8_MEMBER(pacland_bankswitch_w); |
| 36 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 37 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 36 | 38 | }; |
| 37 | 39 | |
| 38 | 40 |
| r17673 | r17674 | |
|---|---|---|
| 46 | 46 | DECLARE_WRITE8_MEMBER(popper_flipscreen_w); |
| 47 | 47 | DECLARE_WRITE8_MEMBER(popper_e002_w); |
| 48 | 48 | DECLARE_WRITE8_MEMBER(popper_gfx_bank_w); |
| 49 | TILE_GET_INFO_MEMBER(get_popper_p123_tile_info); | |
| 50 | TILE_GET_INFO_MEMBER(get_popper_p0_tile_info); | |
| 51 | TILE_GET_INFO_MEMBER(get_popper_ol_p123_tile_info); | |
| 52 | TILE_GET_INFO_MEMBER(get_popper_ol_p0_tile_info); | |
| 49 | 53 | }; |
| 50 | 54 | |
| 51 | 55 |
| r17673 | r17674 | |
|---|---|---|
| 52 | 52 | DECLARE_READ8_MEMBER(ladyfrog_scrlram_r); |
| 53 | 53 | DECLARE_WRITE8_MEMBER(ladyfrog_scrlram_w); |
| 54 | 54 | DECLARE_WRITE8_MEMBER(unk_w); |
| 55 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 55 | 56 | }; |
| 56 | 57 | |
| 57 | 58 |
| r17673 | r17674 | |
|---|---|---|
| 67 | 67 | DECLARE_WRITE8_MEMBER(djboy_paletteram_w); |
| 68 | 68 | DECLARE_DRIVER_INIT(djboy); |
| 69 | 69 | DECLARE_DRIVER_INIT(djboyj); |
| 70 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 70 | 71 | }; |
| 71 | 72 | |
| 72 | 73 |
| r17673 | r17674 | |
|---|---|---|
| 46 | 46 | DECLARE_DRIVER_INIT(sidearms); |
| 47 | 47 | DECLARE_DRIVER_INIT(whizz); |
| 48 | 48 | DECLARE_DRIVER_INIT(turtship); |
| 49 | TILE_GET_INFO_MEMBER(get_sidearms_bg_tile_info); | |
| 50 | TILE_GET_INFO_MEMBER(get_philko_bg_tile_info); | |
| 51 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 52 | TILEMAP_MAPPER_MEMBER(sidearms_tilemap_scan); | |
| 49 | 53 | }; |
| 50 | 54 | |
| 51 | 55 | /*----------- defined in video/sidearms.c -----------*/ |
| r17673 | r17674 | |
|---|---|---|
| 47 | 47 | DECLARE_DRIVER_INIT(treahunt); |
| 48 | 48 | DECLARE_DRIVER_INIT(loverboy); |
| 49 | 49 | DECLARE_DRIVER_INIT(jack); |
| 50 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 51 | TILEMAP_MAPPER_MEMBER(tilemap_scan_cols_flipy); | |
| 52 | TILE_GET_INFO_MEMBER(joinem_get_bg_tile_info); | |
| 50 | 53 | }; |
| 51 | 54 | |
| 52 | 55 |
| r17673 | r17674 | |
|---|---|---|
| 47 | 47 | DECLARE_WRITE8_MEMBER(dogfgt_bgvideoram_w); |
| 48 | 48 | DECLARE_WRITE8_MEMBER(dogfgt_scroll_w); |
| 49 | 49 | DECLARE_WRITE8_MEMBER(dogfgt_1800_w); |
| 50 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 50 | 51 | }; |
| 51 | 52 | |
| 52 | 53 |
| r17673 | r17674 | |
|---|---|---|
| 47 | 47 | DECLARE_WRITE8_MEMBER(kingofb_f800_w); |
| 48 | 48 | DECLARE_DRIVER_INIT(ringkingw); |
| 49 | 49 | DECLARE_DRIVER_INIT(ringking3); |
| 50 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 51 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 52 | TILE_GET_INFO_MEMBER(ringking_get_bg_tile_info); | |
| 50 | 53 | }; |
| 51 | 54 | |
| 52 | 55 |
| r17673 | r17674 | |
|---|---|---|
| 45 | 45 | DECLARE_WRITE8_MEMBER(galivan_scrollx_w); |
| 46 | 46 | DECLARE_WRITE8_MEMBER(galivan_scrolly_w); |
| 47 | 47 | DECLARE_DRIVER_INIT(youmab); |
| 48 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 49 | TILE_GET_INFO_MEMBER(get_tx_tile_info); | |
| 50 | TILE_GET_INFO_MEMBER(ninjemak_get_bg_tile_info); | |
| 51 | TILE_GET_INFO_MEMBER(ninjemak_get_tx_tile_info); | |
| 48 | 52 | }; |
| 49 | 53 | |
| 50 | 54 |
| r17673 | r17674 | |
|---|---|---|
| 52 | 52 | DECLARE_WRITE8_MEMBER(tsamurai_fg_videoram_w); |
| 53 | 53 | DECLARE_WRITE8_MEMBER(tsamurai_fg_colorram_w); |
| 54 | 54 | DECLARE_WRITE8_MEMBER(vsgongf_color_w); |
| 55 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 56 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 57 | TILE_GET_INFO_MEMBER(get_vsgongf_tile_info); | |
| 55 | 58 | }; |
| 56 | 59 | |
| 57 | 60 |
| r17673 | r17674 | |
|---|---|---|
| 33 | 33 | DECLARE_READ8_MEMBER(canyon_options_r); |
| 34 | 34 | DECLARE_WRITE8_MEMBER(canyon_led_w); |
| 35 | 35 | DECLARE_WRITE8_MEMBER(canyon_videoram_w); |
| 36 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 36 | 37 | }; |
| 37 | 38 | |
| 38 | 39 |
| r17673 | r17674 | |
|---|---|---|
| 57 | 57 | DECLARE_DRIVER_INIT(funystrp); |
| 58 | 58 | DECLARE_DRIVER_INIT(splash); |
| 59 | 59 | DECLARE_DRIVER_INIT(rebus); |
| 60 | TILE_GET_INFO_MEMBER(get_tile_info_splash_tilemap0); | |
| 61 | TILE_GET_INFO_MEMBER(get_tile_info_splash_tilemap1); | |
| 60 | 62 | }; |
| 61 | 63 | |
| 62 | 64 |
| r17673 | r17674 | |
|---|---|---|
| 64 | 64 | DECLARE_WRITE16_MEMBER(f1gp_fgscroll_w); |
| 65 | 65 | DECLARE_WRITE16_MEMBER(f1gp_gfxctrl_w); |
| 66 | 66 | DECLARE_WRITE16_MEMBER(f1gp2_gfxctrl_w); |
| 67 | TILE_GET_INFO_MEMBER(f1gp_get_roz_tile_info); | |
| 68 | TILE_GET_INFO_MEMBER(f1gp2_get_roz_tile_info); | |
| 69 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 67 | 70 | }; |
| 68 | 71 | |
| 69 | 72 | /*----------- defined in video/f1gp.c -----------*/ |
| r17673 | r17674 | |
|---|---|---|
| 17 | 17 | DECLARE_READ8_MEMBER(payout_r); |
| 18 | 18 | DECLARE_WRITE8_MEMBER(lvcards_videoram_w); |
| 19 | 19 | DECLARE_WRITE8_MEMBER(lvcards_colorram_w); |
| 20 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 20 | 21 | }; |
| 21 | 22 | |
| 22 | 23 |
| r17673 | r17674 | |
|---|---|---|
| 73 | 73 | DECLARE_DRIVER_INIT(tkdensha); |
| 74 | 74 | DECLARE_DRIVER_INIT(deroon); |
| 75 | 75 | DECLARE_DRIVER_INIT(tkdensho); |
| 76 | TILE_GET_INFO_MEMBER(get_bg0tile_info); | |
| 77 | TILE_GET_INFO_MEMBER(get_bg1tile_info); | |
| 78 | TILE_GET_INFO_MEMBER(get_bg2tile_info); | |
| 79 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 76 | 80 | }; |
| 77 | 81 | |
| 78 | 82 |
| r17673 | r17674 | |
|---|---|---|
| 47 | 47 | DECLARE_CUSTOM_INPUT_MEMBER(snk6502_music0_r); |
| 48 | 48 | DECLARE_CUSTOM_INPUT_MEMBER(sasuke_count_r); |
| 49 | 49 | DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); |
| 50 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 51 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 52 | TILE_GET_INFO_MEMBER(satansat_get_bg_tile_info); | |
| 53 | TILE_GET_INFO_MEMBER(satansat_get_fg_tile_info); | |
| 50 | 54 | }; |
| 51 | 55 | |
| 52 | 56 |
| r17673 | r17674 | |
|---|---|---|
| 23 | 23 | DECLARE_WRITE8_MEMBER(ssrj_vram1_w); |
| 24 | 24 | DECLARE_WRITE8_MEMBER(ssrj_vram2_w); |
| 25 | 25 | DECLARE_WRITE8_MEMBER(ssrj_vram4_w); |
| 26 | TILE_GET_INFO_MEMBER(get_tile_info1); | |
| 27 | TILE_GET_INFO_MEMBER(get_tile_info2); | |
| 28 | TILE_GET_INFO_MEMBER(get_tile_info4); | |
| 26 | 29 | }; |
| 27 | 30 | |
| 28 | 31 |
| r17673 | r17674 | |
|---|---|---|
| 23 | 23 | DECLARE_WRITE8_MEMBER(pingpong_colorram_w); |
| 24 | 24 | DECLARE_DRIVER_INIT(cashquiz); |
| 25 | 25 | DECLARE_DRIVER_INIT(merlinmm); |
| 26 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 26 | 27 | }; |
| 27 | 28 | |
| 28 | 29 |
| r17673 | r17674 | |
|---|---|---|
| 17 | 17 | DECLARE_WRITE16_MEMBER(blstroid_halt_until_hblank_0_w); |
| 18 | 18 | DECLARE_READ16_MEMBER(inputs_r); |
| 19 | 19 | DECLARE_DRIVER_INIT(blstroid); |
| 20 | TILE_GET_INFO_MEMBER(get_playfield_tile_info); | |
| 20 | 21 | }; |
| 21 | 22 | |
| 22 | 23 |
| r17673 | r17674 | |
|---|---|---|
| 31 | 31 | DECLARE_WRITE8_MEMBER(gotya_colorram_w); |
| 32 | 32 | DECLARE_WRITE8_MEMBER(gotya_video_control_w); |
| 33 | 33 | DECLARE_WRITE8_MEMBER(gotya_soundlatch_w); |
| 34 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 35 | TILEMAP_MAPPER_MEMBER(tilemap_scan_rows_thehand); | |
| 34 | 36 | }; |
| 35 | 37 | |
| 36 | 38 |
| r17673 | r17674 | |
|---|---|---|
| 112 | 112 | DECLARE_DRIVER_INIT(roundup5); |
| 113 | 113 | DECLARE_DRIVER_INIT(apache3); |
| 114 | 114 | DECLARE_DRIVER_INIT(cyclwarr); |
| 115 | TILE_GET_INFO_MEMBER(get_text_tile_info); | |
| 116 | TILE_GET_INFO_MEMBER(get_tile_info_bigfight_0); | |
| 117 | TILE_GET_INFO_MEMBER(get_tile_info_bigfight_1); | |
| 115 | 118 | }; |
| 116 | 119 | |
| 117 | 120 |
| r17673 | r17674 | |
|---|---|---|
| 42 | 42 | DECLARE_WRITE16_MEMBER(blmbycar_vram_0_w); |
| 43 | 43 | DECLARE_WRITE16_MEMBER(blmbycar_vram_1_w); |
| 44 | 44 | DECLARE_DRIVER_INIT(blmbycar); |
| 45 | TILE_GET_INFO_MEMBER(get_tile_info_0); | |
| 46 | TILE_GET_INFO_MEMBER(get_tile_info_1); | |
| 45 | 47 | }; |
| 46 | 48 | |
| 47 | 49 |
| r17673 | r17674 | |
|---|---|---|
| 56 | 56 | DECLARE_WRITE8_MEMBER(retofinv_bg_videoram_w); |
| 57 | 57 | DECLARE_WRITE8_MEMBER(retofinv_fg_videoram_w); |
| 58 | 58 | DECLARE_WRITE8_MEMBER(retofinv_gfx_ctrl_w); |
| 59 | TILEMAP_MAPPER_MEMBER(tilemap_scan); | |
| 60 | TILE_GET_INFO_MEMBER(bg_get_tile_info); | |
| 61 | TILE_GET_INFO_MEMBER(fg_get_tile_info); | |
| 59 | 62 | }; |
| 60 | 63 | |
| 61 | 64 |
| r17673 | r17674 | |
|---|---|---|
| 42 | 42 | DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); |
| 43 | 43 | DECLARE_DRIVER_INIT(minferno); |
| 44 | 44 | DECLARE_DRIVER_INIT(gypsyjug); |
| 45 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 45 | 46 | }; |
| 46 | 47 | |
| 47 | 48 |
| r17673 | r17674 | |
|---|---|---|
| 39 | 39 | DECLARE_WRITE8_MEMBER(bogeyman_colorram2_w); |
| 40 | 40 | DECLARE_WRITE8_MEMBER(bogeyman_paletteram_w); |
| 41 | 41 | DECLARE_WRITE8_MEMBER(bogeyman_colbank_w); |
| 42 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 43 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 42 | 44 | }; |
| 43 | 45 | |
| 44 | 46 |
| r17673 | r17674 | |
|---|---|---|
| 97 | 97 | DECLARE_DRIVER_INIT(nspirit); |
| 98 | 98 | DECLARE_DRIVER_INIT(loht); |
| 99 | 99 | DECLARE_DRIVER_INIT(imgfight); |
| 100 | TILE_GET_INFO_MEMBER(m72_get_bg_tile_info); | |
| 101 | TILE_GET_INFO_MEMBER(m72_get_fg_tile_info); | |
| 102 | TILE_GET_INFO_MEMBER(hharry_get_bg_tile_info); | |
| 103 | TILE_GET_INFO_MEMBER(rtype2_get_bg_tile_info); | |
| 104 | TILE_GET_INFO_MEMBER(rtype2_get_fg_tile_info); | |
| 105 | TILEMAP_MAPPER_MEMBER(majtitle_scan_rows); | |
| 100 | 106 | }; |
| 101 | 107 | |
| 102 | 108 |
| r17673 | r17674 | |
|---|---|---|
| 33 | 33 | DECLARE_WRITE16_MEMBER(ohmygod_scrolly_w); |
| 34 | 34 | DECLARE_DRIVER_INIT(ohmygod); |
| 35 | 35 | DECLARE_DRIVER_INIT(naname); |
| 36 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 36 | 37 | }; |
| 37 | 38 | |
| 38 | 39 |
| r17673 | r17674 | |
|---|---|---|
| 15 | 15 | DECLARE_WRITE8_MEMBER(pokechmp_videoram_w); |
| 16 | 16 | DECLARE_WRITE8_MEMBER(pokechmp_flipscreen_w); |
| 17 | 17 | DECLARE_DRIVER_INIT(pokechmp); |
| 18 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 18 | 19 | }; |
| 19 | 20 | |
| 20 | 21 |
| r17673 | r17674 | |
|---|---|---|
| 39 | 39 | DECLARE_WRITE8_MEMBER(D7759_write_port_0_w); |
| 40 | 40 | DECLARE_WRITE8_MEMBER(D7759_upd_reset_w); |
| 41 | 41 | DECLARE_DRIVER_INIT(searchar); |
| 42 | TILE_GET_INFO_MEMBER(get_pow_tile_info); | |
| 43 | TILE_GET_INFO_MEMBER(get_searchar_tile_info); | |
| 42 | 44 | }; |
| 43 | 45 | |
| 44 | 46 |
| r17673 | r17674 | |
|---|---|---|
| 54 | 54 | DECLARE_WRITE8_MEMBER(aeroboto_3000_w); |
| 55 | 55 | DECLARE_WRITE8_MEMBER(aeroboto_videoram_w); |
| 56 | 56 | DECLARE_WRITE8_MEMBER(aeroboto_tilecolor_w); |
| 57 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 57 | 58 | }; |
| 58 | 59 | |
| 59 | 60 |
| r17673 | r17674 | |
|---|---|---|
| 53 | 53 | DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); |
| 54 | 54 | DECLARE_WRITE8_MEMBER(madalien_portA_w); |
| 55 | 55 | DECLARE_WRITE8_MEMBER(madalien_portB_w); |
| 56 | TILEMAP_MAPPER_MEMBER(scan_mode0); | |
| 57 | TILEMAP_MAPPER_MEMBER(scan_mode1); | |
| 58 | TILEMAP_MAPPER_MEMBER(scan_mode2); | |
| 59 | TILEMAP_MAPPER_MEMBER(scan_mode3); | |
| 60 | TILE_GET_INFO_MEMBER(get_tile_info_BG_1); | |
| 61 | TILE_GET_INFO_MEMBER(get_tile_info_BG_2); | |
| 62 | TILE_GET_INFO_MEMBER(get_tile_info_FG); | |
| 56 | 63 | }; |
| 57 | 64 | |
| 58 | 65 |
| r17673 | r17674 | |
|---|---|---|
| 61 | 61 | DECLARE_WRITE8_MEMBER(firetrap_bg2_scrollx_w); |
| 62 | 62 | DECLARE_WRITE8_MEMBER(firetrap_bg2_scrolly_w); |
| 63 | 63 | DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); |
| 64 | TILEMAP_MAPPER_MEMBER(get_fg_memory_offset); | |
| 65 | TILEMAP_MAPPER_MEMBER(get_bg_memory_offset); | |
| 66 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 67 | TILE_GET_INFO_MEMBER(get_bg1_tile_info); | |
| 68 | TILE_GET_INFO_MEMBER(get_bg2_tile_info); | |
| 64 | 69 | }; |
| 65 | 70 | |
| 66 | 71 |
| r17673 | r17674 | |
|---|---|---|
| 43 | 43 | DECLARE_READ8_MEMBER(thedeep_p0_r); |
| 44 | 44 | DECLARE_WRITE8_MEMBER(thedeep_vram_0_w); |
| 45 | 45 | DECLARE_WRITE8_MEMBER(thedeep_vram_1_w); |
| 46 | TILEMAP_MAPPER_MEMBER(tilemap_scan_rows_back); | |
| 47 | TILE_GET_INFO_MEMBER(get_tile_info_0); | |
| 48 | TILE_GET_INFO_MEMBER(get_tile_info_1); | |
| 46 | 49 | }; |
| 47 | 50 | |
| 48 | 51 |
| r17673 | r17674 | |
|---|---|---|
| 43 | 43 | DECLARE_WRITE16_MEMBER(oneshot_mid_videoram_w); |
| 44 | 44 | DECLARE_WRITE16_MEMBER(oneshot_fg_videoram_w); |
| 45 | 45 | DECLARE_WRITE16_MEMBER(soundbank_w); |
| 46 | TILE_GET_INFO_MEMBER(get_oneshot_bg_tile_info); | |
| 47 | TILE_GET_INFO_MEMBER(get_oneshot_mid_tile_info); | |
| 48 | TILE_GET_INFO_MEMBER(get_oneshot_fg_tile_info); | |
| 46 | 49 | }; |
| 47 | 50 | |
| 48 | 51 | /*----------- defined in video/oneshot.c -----------*/ |
| r17673 | r17674 | |
|---|---|---|
| 38 | 38 | DECLARE_WRITE16_MEMBER(oki_bank_w); |
| 39 | 39 | DECLARE_DRIVER_INIT(twinbrat); |
| 40 | 40 | DECLARE_DRIVER_INIT(stlforce); |
| 41 | TILE_GET_INFO_MEMBER(get_stlforce_bg_tile_info); | |
| 42 | TILE_GET_INFO_MEMBER(get_stlforce_mlow_tile_info); | |
| 43 | TILE_GET_INFO_MEMBER(get_stlforce_mhigh_tile_info); | |
| 44 | TILE_GET_INFO_MEMBER(get_stlforce_tx_tile_info); | |
| 41 | 45 | }; |
| 42 | 46 | |
| 43 | 47 |
| r17673 | r17674 | |
|---|---|---|
| 38 | 38 | DECLARE_WRITE8_MEMBER(amspdwy_videoram_w); |
| 39 | 39 | DECLARE_WRITE8_MEMBER(amspdwy_colorram_w); |
| 40 | 40 | DECLARE_READ8_MEMBER(amspdwy_sound_r); |
| 41 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 42 | TILEMAP_MAPPER_MEMBER(tilemap_scan_cols_back); | |
| 41 | 43 | }; |
| 42 | 44 | |
| 43 | 45 |
| r17673 | r17674 | |
|---|---|---|
| 44 | 44 | DECLARE_DRIVER_INIT(pitfightj); |
| 45 | 45 | DECLARE_DRIVER_INIT(pitfight); |
| 46 | 46 | DECLARE_DRIVER_INIT(pitfightb); |
| 47 | TILE_GET_INFO_MEMBER(get_alpha_tile_info); | |
| 48 | TILE_GET_INFO_MEMBER(get_playfield_tile_info); | |
| 47 | 49 | }; |
| 48 | 50 | |
| 49 | 51 |
| r17673 | r17674 | |
|---|---|---|
| 20 | 20 | DECLARE_WRITE16_MEMBER(interrupt_scan_w); |
| 21 | 21 | DECLARE_READ16_MEMBER(special_port1_r); |
| 22 | 22 | DECLARE_DRIVER_INIT(toobin); |
| 23 | TILE_GET_INFO_MEMBER(get_alpha_tile_info); | |
| 24 | TILE_GET_INFO_MEMBER(get_playfield_tile_info); | |
| 23 | 25 | }; |
| 24 | 26 | |
| 25 | 27 |
| r17673 | r17674 | |
|---|---|---|
| 23 | 23 | DECLARE_WRITE8_MEMBER(srumbler_background_w); |
| 24 | 24 | DECLARE_WRITE8_MEMBER(srumbler_4009_w); |
| 25 | 25 | DECLARE_WRITE8_MEMBER(srumbler_scroll_w); |
| 26 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 27 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 26 | 28 | }; |
| 27 | 29 | |
| 28 | 30 |
| r17673 | r17674 | |
|---|---|---|
| 37 | 37 | DECLARE_DRIVER_INIT(legiongfx); |
| 38 | 38 | DECLARE_DRIVER_INIT(cupsoc); |
| 39 | 39 | DECLARE_DRIVER_INIT(denjinmk); |
| 40 | TILE_GET_INFO_MEMBER(get_back_tile_info); | |
| 41 | TILE_GET_INFO_MEMBER(get_mid_tile_info); | |
| 42 | TILE_GET_INFO_MEMBER(get_mid_tile_info_denji); | |
| 43 | TILE_GET_INFO_MEMBER(get_mid_tile_info_cupsoc); | |
| 44 | TILE_GET_INFO_MEMBER(get_fore_tile_info); | |
| 45 | TILE_GET_INFO_MEMBER(get_fore_tile_info_denji); | |
| 46 | TILE_GET_INFO_MEMBER(get_text_tile_info); | |
| 40 | 47 | }; |
| 41 | 48 | |
| 42 | 49 |
| r17673 | r17674 | |
|---|---|---|
| 87 | 87 | DECLARE_DRIVER_INIT(xenophob); |
| 88 | 88 | DECLARE_DRIVER_INIT(archrivl); |
| 89 | 89 | DECLARE_DRIVER_INIT(spyhunt2); |
| 90 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 91 | TILE_GET_INFO_MEMBER(zwackery_get_bg_tile_info); | |
| 92 | TILE_GET_INFO_MEMBER(zwackery_get_fg_tile_info); | |
| 90 | 93 | }; |
| 91 | 94 | |
| 92 | 95 | /*----------- defined in machine/mcr68.c -----------*/ |
| r17673 | r17674 | |
|---|---|---|
| 46 | 46 | DECLARE_WRITE8_MEMBER(pbaction_flipscreen_w); |
| 47 | 47 | DECLARE_DRIVER_INIT(pbactio3); |
| 48 | 48 | DECLARE_DRIVER_INIT(pbactio4); |
| 49 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 50 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 49 | 51 | }; |
| 50 | 52 | |
| 51 | 53 |
| r17673 | r17674 | |
|---|---|---|
| 25 | 25 | DECLARE_DRIVER_INIT(soccernw); |
| 26 | 26 | DECLARE_DRIVER_INIT(tabblue); |
| 27 | 27 | DECLARE_DRIVER_INIT(magicd2a); |
| 28 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 28 | 29 | }; |
| 29 | 30 | |
| 30 | 31 |
| r17673 | r17674 | |
|---|---|---|
| 39 | 39 | DECLARE_WRITE8_MEMBER(gsword_adpcm_data_w); |
| 40 | 40 | DECLARE_DRIVER_INIT(gsword); |
| 41 | 41 | DECLARE_DRIVER_INIT(gsword2); |
| 42 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 42 | 43 | }; |
| 43 | 44 | |
| 44 | 45 |
| r17673 | r17674 | |
|---|---|---|
| 78 | 78 | DECLARE_WRITE8_MEMBER(mario_sh_tuneselect_w); |
| 79 | 79 | DECLARE_WRITE8_MEMBER(mario_sh3_w); |
| 80 | 80 | DECLARE_WRITE8_MEMBER(mario_z80dma_rdy_w); |
| 81 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 81 | 82 | }; |
| 82 | 83 | |
| 83 | 84 | /*----------- defined in video/mario.c -----------*/ |
| r17673 | r17674 | |
|---|---|---|
| 72 | 72 | DECLARE_WRITE8_MEMBER(atarifb_alpha1_videoram_w); |
| 73 | 73 | DECLARE_WRITE8_MEMBER(atarifb_alpha2_videoram_w); |
| 74 | 74 | DECLARE_WRITE8_MEMBER(atarifb_field_videoram_w); |
| 75 | TILE_GET_INFO_MEMBER(alpha1_get_tile_info); | |
| 76 | TILE_GET_INFO_MEMBER(alpha2_get_tile_info); | |
| 77 | TILE_GET_INFO_MEMBER(field_get_tile_info); | |
| 75 | 78 | }; |
| 76 | 79 | |
| 77 | 80 |
| r17673 | r17674 | |
|---|---|---|
| 24 | 24 | DECLARE_WRITE32_MEMBER(silkroad_fgram3_w); |
| 25 | 25 | DECLARE_WRITE32_MEMBER(silk_6295_bank_w); |
| 26 | 26 | DECLARE_DRIVER_INIT(silkroad); |
| 27 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 28 | TILE_GET_INFO_MEMBER(get_fg2_tile_info); | |
| 29 | TILE_GET_INFO_MEMBER(get_fg3_tile_info); | |
| 27 | 30 | }; |
| 28 | 31 | |
| 29 | 32 |
| r17673 | r17674 | |
|---|---|---|
| 37 | 37 | DECLARE_WRITE8_MEMBER(videopin_out1_w); |
| 38 | 38 | DECLARE_WRITE8_MEMBER(videopin_out2_w); |
| 39 | 39 | DECLARE_WRITE8_MEMBER(videopin_note_dvsr_w); |
| 40 | TILEMAP_MAPPER_MEMBER(get_memory_offset); | |
| 41 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 40 | 42 | }; |
| 41 | 43 | |
| 42 | 44 |
| r17673 | r17674 | |
|---|---|---|
| 43 | 43 | DECLARE_WRITE16_MEMBER(tecmo16_scroll2_y_w); |
| 44 | 44 | DECLARE_WRITE16_MEMBER(tecmo16_scroll_char_x_w); |
| 45 | 45 | DECLARE_WRITE16_MEMBER(tecmo16_scroll_char_y_w); |
| 46 | TILE_GET_INFO_MEMBER(fg_get_tile_info); | |
| 47 | TILE_GET_INFO_MEMBER(bg_get_tile_info); | |
| 48 | TILE_GET_INFO_MEMBER(tx_get_tile_info); | |
| 46 | 49 | }; |
| 47 | 50 | |
| 48 | 51 |
| r17673 | r17674 | |
|---|---|---|
| 48 | 48 | DECLARE_DRIVER_INIT(wexpressb); |
| 49 | 49 | DECLARE_DRIVER_INIT(wexpressb2); |
| 50 | 50 | DECLARE_DRIVER_INIT(wexpressb3); |
| 51 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 52 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 51 | 53 | }; |
| 52 | 54 | |
| 53 | 55 |
| r17673 | r17674 | |
|---|---|---|
| 18 | 18 | DECLARE_WRITE8_MEMBER(runaway_video_ram_w); |
| 19 | 19 | DECLARE_WRITE8_MEMBER(runaway_tile_bank_w); |
| 20 | 20 | DECLARE_READ8_MEMBER(runaway_pot_r); |
| 21 | TILE_GET_INFO_MEMBER(runaway_get_tile_info); | |
| 22 | TILE_GET_INFO_MEMBER(qwak_get_tile_info); | |
| 21 | 23 | }; |
| 22 | 24 | |
| 23 | 25 |
| r17673 | r17674 | |
|---|---|---|
| 44 | 44 | DECLARE_WRITE8_MEMBER(out_coin0); |
| 45 | 45 | DECLARE_WRITE8_MEMBER(out_coin1); |
| 46 | 46 | DECLARE_WRITE8_MEMBER(flip); |
| 47 | TILEMAP_MAPPER_MEMBER(tilemap_scan); | |
| 48 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 47 | 49 | }; |
| 48 | 50 | |
| 49 | 51 |
| r17673 | r17674 | |
|---|---|---|
| 72 | 72 | DECLARE_DRIVER_INIT(tumbleb2); |
| 73 | 73 | DECLARE_DRIVER_INIT(chokchok); |
| 74 | 74 | DECLARE_DRIVER_INIT(fncywld); |
| 75 | TILEMAP_MAPPER_MEMBER(tumblep_scan); | |
| 76 | TILE_GET_INFO_MEMBER(get_bg1_tile_info); | |
| 77 | TILE_GET_INFO_MEMBER(get_bg2_tile_info); | |
| 78 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 79 | TILE_GET_INFO_MEMBER(get_fncywld_bg1_tile_info); | |
| 80 | TILE_GET_INFO_MEMBER(get_fncywld_bg2_tile_info); | |
| 81 | TILE_GET_INFO_MEMBER(get_fncywld_fg_tile_info); | |
| 82 | TILE_GET_INFO_MEMBER(pangpang_get_bg1_tile_info); | |
| 83 | TILE_GET_INFO_MEMBER(pangpang_get_bg2_tile_info); | |
| 84 | TILE_GET_INFO_MEMBER(pangpang_get_fg_tile_info); | |
| 75 | 85 | }; |
| 76 | 86 | |
| 77 | 87 | /*----------- defined in video/tumbleb.c -----------*/ |
| r17673 | r17674 | |
|---|---|---|
| 42 | 42 | DECLARE_WRITE8_MEMBER(sound_control_w); |
| 43 | 43 | DECLARE_DRIVER_INIT(kchampvs); |
| 44 | 44 | DECLARE_DRIVER_INIT(kchampvs2); |
| 45 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 45 | 46 | }; |
| 46 | 47 | |
| 47 | 48 |
| r17673 | r17674 | |
|---|---|---|
| 35 | 35 | DECLARE_WRITE8_MEMBER(ultratnk_fire_2_w); |
| 36 | 36 | DECLARE_WRITE8_MEMBER(ultratnk_attract_w); |
| 37 | 37 | DECLARE_WRITE8_MEMBER(ultratnk_explosion_w); |
| 38 | TILE_GET_INFO_MEMBER(ultratnk_tile_info); | |
| 38 | 39 | }; |
| 39 | 40 | |
| 40 | 41 |
| r17673 | r17674 | |
|---|---|---|
| 24 | 24 | DECLARE_WRITE16_MEMBER(m90_video_w); |
| 25 | 25 | DECLARE_DRIVER_INIT(bomblord); |
| 26 | 26 | DECLARE_DRIVER_INIT(quizf1); |
| 27 | TILE_GET_INFO_MEMBER(get_pf1_tile_info); | |
| 28 | TILE_GET_INFO_MEMBER(get_pf1w_tile_info); | |
| 29 | TILE_GET_INFO_MEMBER(get_pf2_tile_info); | |
| 30 | TILE_GET_INFO_MEMBER(get_pf2w_tile_info); | |
| 31 | TILE_GET_INFO_MEMBER(bomblord_get_pf1_tile_info); | |
| 32 | TILE_GET_INFO_MEMBER(bomblord_get_pf1w_tile_info); | |
| 33 | TILE_GET_INFO_MEMBER(bomblord_get_pf2_tile_info); | |
| 34 | TILE_GET_INFO_MEMBER(bomblord_get_pf2w_tile_info); | |
| 35 | TILE_GET_INFO_MEMBER(dynablsb_get_pf1_tile_info); | |
| 36 | TILE_GET_INFO_MEMBER(dynablsb_get_pf1w_tile_info); | |
| 37 | TILE_GET_INFO_MEMBER(dynablsb_get_pf2_tile_info); | |
| 38 | TILE_GET_INFO_MEMBER(dynablsb_get_pf2w_tile_info); | |
| 27 | 39 | }; |
| 28 | 40 | |
| 29 | 41 |
| r17673 | r17674 | |
|---|---|---|
| 22 | 22 | DECLARE_WRITE8_MEMBER(scotrsht_colorram_w); |
| 23 | 23 | DECLARE_WRITE8_MEMBER(scotrsht_charbank_w); |
| 24 | 24 | DECLARE_WRITE8_MEMBER(scotrsht_palettebank_w); |
| 25 | TILE_GET_INFO_MEMBER(scotrsht_get_bg_tile_info); | |
| 25 | 26 | }; |
| 26 | 27 | |
| 27 | 28 |
| r17673 | r17674 | |
|---|---|---|
| 28 | 28 | DECLARE_CUSTOM_INPUT_MEMBER(player_input_r); |
| 29 | 29 | DECLARE_CUSTOM_INPUT_MEMBER(pleiads_protection_r); |
| 30 | 30 | DECLARE_DRIVER_INIT(condor); |
| 31 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 32 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 31 | 33 | }; |
| 32 | 34 | |
| 33 | 35 |
| r17673 | r17674 | |
|---|---|---|
| 65 | 65 | DECLARE_WRITE8_MEMBER(msisaac_bg2_videoram_w); |
| 66 | 66 | DECLARE_WRITE8_MEMBER(msisaac_fg_videoram_w); |
| 67 | 67 | DECLARE_WRITE8_MEMBER(sound_control_0_w); |
| 68 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 69 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 70 | TILE_GET_INFO_MEMBER(get_bg2_tile_info); | |
| 68 | 71 | }; |
| 69 | 72 | |
| 70 | 73 |
| r17673 | r17674 | |
|---|---|---|
| 23 | 23 | DECLARE_READ8_MEMBER(markham_e004_r); |
| 24 | 24 | DECLARE_WRITE8_MEMBER(markham_videoram_w); |
| 25 | 25 | DECLARE_WRITE8_MEMBER(markham_flipscreen_w); |
| 26 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 26 | 27 | }; |
| 27 | 28 | |
| 28 | 29 |
| r17673 | r17674 | |
|---|---|---|
| 70 | 70 | DECLARE_DRIVER_INIT(sqix); |
| 71 | 71 | DECLARE_DRIVER_INIT(perestro); |
| 72 | 72 | DECLARE_DRIVER_INIT(sqixa); |
| 73 | TILE_GET_INFO_MEMBER(pb_get_bg_tile_info); | |
| 74 | TILE_GET_INFO_MEMBER(sqix_get_bg_tile_info); | |
| 73 | 75 | }; |
| 74 | 76 | |
| 75 | 77 |
| r17673 | r17674 | |
|---|---|---|
| 42 | 42 | DECLARE_READ8_MEMBER(dday_colorram_r); |
| 43 | 43 | DECLARE_WRITE8_MEMBER(dday_sl_control_w); |
| 44 | 44 | DECLARE_WRITE8_MEMBER(dday_control_w); |
| 45 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 46 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 47 | TILE_GET_INFO_MEMBER(get_text_tile_info); | |
| 48 | TILE_GET_INFO_MEMBER(get_sl_tile_info); | |
| 45 | 49 | }; |
| 46 | 50 | |
| 47 | 51 |
| r17673 | r17674 | |
|---|---|---|
| 107 | 107 | DECLARE_DRIVER_INIT(pceboard); |
| 108 | 108 | DECLARE_DRIVER_INIT(pciboard); |
| 109 | 109 | DECLARE_DRIVER_INIT(pcaboard); |
| 110 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 110 | 111 | }; |
| 111 | 112 | |
| 112 | 113 |
| r17673 | r17674 | |
|---|---|---|
| 44 | 44 | DECLARE_DRIVER_INIT(cyberbalt); |
| 45 | 45 | DECLARE_DRIVER_INIT(cyberbal2p); |
| 46 | 46 | DECLARE_DRIVER_INIT(cyberbal); |
| 47 | TILE_GET_INFO_MEMBER(get_alpha_tile_info); | |
| 48 | TILE_GET_INFO_MEMBER(get_alpha2_tile_info); | |
| 49 | TILE_GET_INFO_MEMBER(get_playfield_tile_info); | |
| 50 | TILE_GET_INFO_MEMBER(get_playfield2_tile_info); | |
| 47 | 51 | }; |
| 48 | 52 | |
| 49 | 53 |
| r17673 | r17674 | |
|---|---|---|
| 98 | 98 | DECLARE_READ8_MEMBER(adc_r); |
| 99 | 99 | DECLARE_WRITE8_MEMBER(sound_vol); |
| 100 | 100 | DECLARE_WRITE8_MEMBER(ym2203_out_b); |
| 101 | TILE_GET_INFO_MEMBER(get_lockon_tile_info); | |
| 101 | 102 | }; |
| 102 | 103 | |
| 103 | 104 |
| r17673 | r17674 | |
|---|---|---|
| 34 | 34 | DECLARE_WRITE8_MEMBER(grobda_DAC_w); |
| 35 | 35 | DECLARE_DRIVER_INIT(digdug2); |
| 36 | 36 | DECLARE_DRIVER_INIT(grobda); |
| 37 | TILEMAP_MAPPER_MEMBER(superpac_tilemap_scan); | |
| 38 | TILEMAP_MAPPER_MEMBER(mappy_tilemap_scan); | |
| 39 | TILE_GET_INFO_MEMBER(superpac_get_tile_info); | |
| 40 | TILE_GET_INFO_MEMBER(phozon_get_tile_info); | |
| 41 | TILE_GET_INFO_MEMBER(mappy_get_tile_info); | |
| 37 | 42 | }; |
| 38 | 43 | |
| 39 | 44 |
| r17673 | r17674 | |
|---|---|---|
| 23 | 23 | DECLARE_WRITE8_MEMBER(msm5205_w); |
| 24 | 24 | DECLARE_DRIVER_INIT(f1dream); |
| 25 | 25 | DECLARE_DRIVER_INIT(tigeroad); |
| 26 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 27 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 28 | TILEMAP_MAPPER_MEMBER(tigeroad_tilemap_scan); | |
| 26 | 29 | }; |
| 27 | 30 | |
| 28 | 31 |
| r17673 | r17674 | |
|---|---|---|
| 170 | 170 | DECLARE_DRIVER_INIT(radr); |
| 171 | 171 | DECLARE_DRIVER_INIT(f1lap); |
| 172 | 172 | DECLARE_DRIVER_INIT(orunners); |
| 173 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 173 | 174 | }; |
| 174 | 175 | |
| 175 | 176 |
| r17673 | r17674 | |
|---|---|---|
| 117 | 117 | DECLARE_DRIVER_INIT(perfrman); |
| 118 | 118 | DECLARE_DRIVER_INIT(gtstarb2); |
| 119 | 119 | DECLARE_DRIVER_INIT(tigerh); |
| 120 | TILE_GET_INFO_MEMBER(get_pf_tile_info); | |
| 121 | TILE_GET_INFO_MEMBER(get_pf1_tile_info); | |
| 122 | TILE_GET_INFO_MEMBER(get_fix_tile_info); | |
| 120 | 123 | }; |
| 121 | 124 | |
| 122 | 125 |
| r17673 | r17674 | |
|---|---|---|
| 25 | 25 | DECLARE_WRITE8_MEMBER(audio_io_w); |
| 26 | 26 | DECLARE_READ16_MEMBER(badlandsb_unk_r); |
| 27 | 27 | DECLARE_DRIVER_INIT(badlands); |
| 28 | TILE_GET_INFO_MEMBER(get_playfield_tile_info); | |
| 28 | 29 | }; |
| 29 | 30 | |
| 30 | 31 |
| r17673 | r17674 | |
|---|---|---|
| 21 | 21 | DECLARE_WRITE8_MEMBER(quizdna_bg_xscroll_w); |
| 22 | 22 | DECLARE_WRITE8_MEMBER(quizdna_screen_ctrl_w); |
| 23 | 23 | DECLARE_WRITE8_MEMBER(paletteram_xBGR_RRRR_GGGG_BBBB_w); |
| 24 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 25 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 24 | 26 | }; |
| 25 | 27 | |
| 26 | 28 |
| r17673 | r17674 | |
|---|---|---|
| 29 | 29 | DECLARE_READ16_MEMBER(unknown_verify_r); |
| 30 | 30 | DECLARE_DRIVER_INIT(offtwall); |
| 31 | 31 | DECLARE_DRIVER_INIT(offtwalc); |
| 32 | TILE_GET_INFO_MEMBER(get_playfield_tile_info); | |
| 32 | 33 | }; |
| 33 | 34 | |
| 34 | 35 |
| r17673 | r17674 | |
|---|---|---|
| 94 | 94 | DECLARE_DRIVER_INIT(gekisou); |
| 95 | 95 | DECLARE_DRIVER_INIT(splndrbt); |
| 96 | 96 | DECLARE_DRIVER_INIT(equites); |
| 97 | TILE_GET_INFO_MEMBER(equites_fg_info); | |
| 98 | TILE_GET_INFO_MEMBER(splndrbt_fg_info); | |
| 99 | TILE_GET_INFO_MEMBER(equites_bg_info); | |
| 100 | TILE_GET_INFO_MEMBER(splndrbt_bg_info); | |
| 97 | 101 | }; |
| 98 | 102 | |
| 99 | 103 |
| r17673 | r17674 | |
|---|---|---|
| 52 | 52 | DECLARE_READ16_MEMBER(ddd_053936_tilerom_1_r); |
| 53 | 53 | DECLARE_READ16_MEMBER(gai_053936_tilerom_2_r); |
| 54 | 54 | DECLARE_READ16_MEMBER(ddd_053936_tilerom_2_r); |
| 55 | TILE_GET_INFO_MEMBER(get_gai_936_tile_info); | |
| 56 | TILE_GET_INFO_MEMBER(get_ult_936_tile_info); | |
| 55 | 57 | }; |
| 56 | 58 | |
| 57 | 59 |
| r17673 | r17674 | |
|---|---|---|
| 72 | 72 | DECLARE_WRITE8_MEMBER(fromance_adpcm_reset_w); |
| 73 | 73 | DECLARE_DRIVER_INIT(pipedrm); |
| 74 | 74 | DECLARE_DRIVER_INIT(hatris); |
| 75 | TILE_GET_INFO_MEMBER(get_fromance_bg_tile_info); | |
| 76 | TILE_GET_INFO_MEMBER(get_fromance_fg_tile_info); | |
| 77 | TILE_GET_INFO_MEMBER(get_nekkyoku_bg_tile_info); | |
| 78 | TILE_GET_INFO_MEMBER(get_nekkyoku_fg_tile_info); | |
| 75 | 79 | }; |
| 76 | 80 | |
| 77 | 81 |
| r17673 | r17674 | |
|---|---|---|
| 34 | 34 | DECLARE_WRITE8_MEMBER(skykid_scroll_y_w); |
| 35 | 35 | DECLARE_WRITE8_MEMBER(skykid_flipscreen_priority_w); |
| 36 | 36 | DECLARE_DRIVER_INIT(skykid); |
| 37 | TILEMAP_MAPPER_MEMBER(tx_tilemap_scan); | |
| 38 | TILE_GET_INFO_MEMBER(tx_get_tile_info); | |
| 39 | TILE_GET_INFO_MEMBER(bg_get_tile_info); | |
| 37 | 40 | }; |
| 38 | 41 | |
| 39 | 42 |
| r17673 | r17674 | |
|---|---|---|
| 12 | 12 | klax_state(const machine_config &mconfig, device_type type, const char *tag) |
| 13 | 13 | : atarigen_state(mconfig, type, tag) { } |
| 14 | 14 | DECLARE_WRITE16_MEMBER(interrupt_ack_w); |
| 15 | TILE_GET_INFO_MEMBER(get_playfield_tile_info); | |
| 15 | 16 | }; |
| 16 | 17 | |
| 17 | 18 |
| r17673 | r17674 | |
|---|---|---|
| 17 | 17 | DECLARE_WRITE16_MEMBER(quizpani_bg_videoram_w); |
| 18 | 18 | DECLARE_WRITE16_MEMBER(quizpani_txt_videoram_w); |
| 19 | 19 | DECLARE_WRITE16_MEMBER(quizpani_tilesbank_w); |
| 20 | TILEMAP_MAPPER_MEMBER(bg_scan); | |
| 21 | TILE_GET_INFO_MEMBER(bg_tile_info); | |
| 22 | TILE_GET_INFO_MEMBER(txt_tile_info); | |
| 20 | 23 | }; |
| 21 | 24 | |
| 22 | 25 |
| r17673 | r17674 | |
|---|---|---|
| 22 | 22 | DECLARE_WRITE8_MEMBER(gomoku_bgram_w); |
| 23 | 23 | DECLARE_WRITE8_MEMBER(gomoku_flipscreen_w); |
| 24 | 24 | DECLARE_WRITE8_MEMBER(gomoku_bg_dispsw_w); |
| 25 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 25 | 26 | }; |
| 26 | 27 | |
| 27 | 28 |
| r17673 | r17674 | |
|---|---|---|
| 89 | 89 | DECLARE_INPUT_CHANGED_MEMBER(service_mode_switch_changed); |
| 90 | 90 | DECLARE_INPUT_CHANGED_MEMBER(firetrk_horn_changed); |
| 91 | 91 | DECLARE_INPUT_CHANGED_MEMBER(gear_changed); |
| 92 | TILE_GET_INFO_MEMBER(firetrk_get_tile_info1); | |
| 93 | TILE_GET_INFO_MEMBER(superbug_get_tile_info1); | |
| 94 | TILE_GET_INFO_MEMBER(montecar_get_tile_info1); | |
| 95 | TILE_GET_INFO_MEMBER(firetrk_get_tile_info2); | |
| 96 | TILE_GET_INFO_MEMBER(superbug_get_tile_info2); | |
| 97 | TILE_GET_INFO_MEMBER(montecar_get_tile_info2); | |
| 92 | 98 | }; |
| 93 | 99 | |
| 94 | 100 |
| r17673 | r17674 | |
|---|---|---|
| 17 | 17 | int m_flipscreen; |
| 18 | 18 | DECLARE_WRITE8_MEMBER(m57_videoram_w); |
| 19 | 19 | DECLARE_WRITE8_MEMBER(m57_flipscreen_w); |
| 20 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 20 | 21 | }; |
| 21 | 22 | |
| 22 | 23 | /*----------- defined in video/m57.c -----------*/ |
| r17673 | r17674 | |
|---|---|---|
| 15 | 15 | DECLARE_WRITE8_MEMBER(mustache_video_control_w); |
| 16 | 16 | DECLARE_WRITE8_MEMBER(mustache_scroll_w); |
| 17 | 17 | DECLARE_DRIVER_INIT(mustache); |
| 18 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 18 | 19 | }; |
| 19 | 20 | |
| 20 | 21 |
| r17673 | r17674 | |
|---|---|---|
| 22 | 22 | DECLARE_WRITE8_MEMBER(output_port_1_w); |
| 23 | 23 | DECLARE_WRITE8_MEMBER(snookr10_videoram_w); |
| 24 | 24 | DECLARE_WRITE8_MEMBER(snookr10_colorram_w); |
| 25 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 26 | TILE_GET_INFO_MEMBER(apple10_get_bg_tile_info); | |
| 25 | 27 | }; |
| 26 | 28 | |
| 27 | 29 |
| r17673 | r17674 | |
|---|---|---|
| 44 | 44 | DECLARE_WRITE32_MEMBER(konamigx_t4_psacmap_w); |
| 45 | 45 | DECLARE_CUSTOM_INPUT_MEMBER(gx_rdport1_3_r); |
| 46 | 46 | DECLARE_DRIVER_INIT(konamigx); |
| 47 | TILE_GET_INFO_MEMBER(get_gx_psac_tile_info); | |
| 48 | TILE_GET_INFO_MEMBER(get_gx_psac3_tile_info); | |
| 49 | TILE_GET_INFO_MEMBER(get_gx_psac3_alt_tile_info); | |
| 50 | TILE_GET_INFO_MEMBER(get_gx_psac1a_tile_info); | |
| 51 | TILE_GET_INFO_MEMBER(get_gx_psac1b_tile_info); | |
| 47 | 52 | }; |
| 48 | 53 | |
| 49 | 54 |
| r17673 | r17674 | |
|---|---|---|
| 25 | 25 | DECLARE_WRITE8_MEMBER(sprcros2_bgvideoram_w); |
| 26 | 26 | DECLARE_WRITE8_MEMBER(sprcros2_bgscrollx_w); |
| 27 | 27 | DECLARE_WRITE8_MEMBER(sprcros2_bgscrolly_w); |
| 28 | TILE_GET_INFO_MEMBER(get_sprcros2_bgtile_info); | |
| 29 | TILE_GET_INFO_MEMBER(get_sprcros2_fgtile_info); | |
| 28 | 30 | }; |
| 29 | 31 | |
| 30 | 32 |
| r17673 | r17674 | |
|---|---|---|
| 18 | 18 | DECLARE_READ16_MEMBER(thunderj_atarivc_r); |
| 19 | 19 | DECLARE_WRITE16_MEMBER(thunderj_atarivc_w); |
| 20 | 20 | DECLARE_DRIVER_INIT(thunderj); |
| 21 | TILE_GET_INFO_MEMBER(get_alpha_tile_info); | |
| 22 | TILE_GET_INFO_MEMBER(get_playfield_tile_info); | |
| 23 | TILE_GET_INFO_MEMBER(get_playfield2_tile_info); | |
| 21 | 24 | }; |
| 22 | 25 | |
| 23 | 26 |
| r17673 | r17674 | |
|---|---|---|
| 62 | 62 | DECLARE_INPUT_CHANGED_MEMBER(right_coin_inserted); |
| 63 | 63 | DECLARE_DRIVER_INIT(dorodon); |
| 64 | 64 | DECLARE_DRIVER_INIT(redclash); |
| 65 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 66 | TILE_GET_INFO_MEMBER(get_grid_tile_info); | |
| 65 | 67 | }; |
| 66 | 68 | |
| 67 | 69 |
| r17673 | r17674 | |
|---|---|---|
| 66 | 66 | DECLARE_WRITE8_MEMBER(combatsc_portA_w); |
| 67 | 67 | DECLARE_WRITE8_MEMBER(combatscb_dac_w); |
| 68 | 68 | DECLARE_DRIVER_INIT(combatsc); |
| 69 | TILE_GET_INFO_MEMBER(get_tile_info0); | |
| 70 | TILE_GET_INFO_MEMBER(get_tile_info1); | |
| 71 | TILE_GET_INFO_MEMBER(get_text_info); | |
| 72 | TILE_GET_INFO_MEMBER(get_tile_info0_bootleg); | |
| 73 | TILE_GET_INFO_MEMBER(get_tile_info1_bootleg); | |
| 74 | TILE_GET_INFO_MEMBER(get_text_info_bootleg); | |
| 69 | 75 | }; |
| 70 | 76 | |
| 71 | 77 |
| r17673 | r17674 | |
|---|---|---|
| 36 | 36 | DECLARE_WRITE8_MEMBER(blueprnt_colorram_w); |
| 37 | 37 | DECLARE_WRITE8_MEMBER(blueprnt_flipscreen_w); |
| 38 | 38 | DECLARE_WRITE8_MEMBER(dipsw_w); |
| 39 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 39 | 40 | }; |
| 40 | 41 | |
| 41 | 42 |
| r17673 | r17674 | |
|---|---|---|
| 35 | 35 | DECLARE_WRITE16_MEMBER(gotcha_gfxbank_w); |
| 36 | 36 | DECLARE_WRITE16_MEMBER(gotcha_scroll_w); |
| 37 | 37 | DECLARE_WRITE16_MEMBER(gotcha_oki_bank_w); |
| 38 | TILEMAP_MAPPER_MEMBER(gotcha_tilemap_scan); | |
| 39 | TILE_GET_INFO_MEMBER(fg_get_tile_info); | |
| 40 | TILE_GET_INFO_MEMBER(bg_get_tile_info); | |
| 38 | 41 | }; |
| 39 | 42 | |
| 40 | 43 |
| r17673 | r17674 | |
|---|---|---|
| 75 | 75 | DECLARE_CUSTOM_INPUT_MEMBER(collision_latch_r); |
| 76 | 76 | DECLARE_WRITE8_MEMBER(starshp1_audio_w); |
| 77 | 77 | DECLARE_WRITE8_MEMBER(starshp1_analog_out_w); |
| 78 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 78 | 79 | }; |
| 79 | 80 | |
| 80 | 81 |
| r17673 | r17674 | |
|---|---|---|
| 25 | 25 | DECLARE_WRITE16_MEMBER(bsb_videoram_w); |
| 26 | 26 | DECLARE_WRITE16_MEMBER(bsb_videoram2_w); |
| 27 | 27 | DECLARE_WRITE16_MEMBER(bsb_videoram3_w); |
| 28 | TILEMAP_MAPPER_MEMBER(bsb_bg_scan); | |
| 29 | TILE_GET_INFO_MEMBER(get_bsb_tile_info); | |
| 30 | TILE_GET_INFO_MEMBER(get_bsb_tile2_info); | |
| 31 | TILE_GET_INFO_MEMBER(get_bsb_tile3_info); | |
| 28 | 32 | }; |
| 29 | 33 | |
| 30 | 34 |
| r17673 | r17674 | |
|---|---|---|
| 45 | 45 | DECLARE_WRITE8_MEMBER(pandoras_flipscreen_w); |
| 46 | 46 | DECLARE_READ8_MEMBER(pandoras_portA_r); |
| 47 | 47 | DECLARE_READ8_MEMBER(pandoras_portB_r); |
| 48 | TILE_GET_INFO_MEMBER(get_tile_info0); | |
| 48 | 49 | }; |
| 49 | 50 | |
| 50 | 51 |
| r17673 | r17674 | |
|---|---|---|
| 50 | 50 | DECLARE_WRITE8_MEMBER(gberet_sprite_bank_w); |
| 51 | 51 | DECLARE_WRITE8_MEMBER(gberetb_scroll_w); |
| 52 | 52 | DECLARE_DRIVER_INIT(mrgoemon); |
| 53 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 53 | 54 | }; |
| 54 | 55 | |
| 55 | 56 |
| r17673 | r17674 | |
|---|---|---|
| 37 | 37 | DECLARE_WRITE8_MEMBER(stfight_vh_latch_w); |
| 38 | 38 | DECLARE_DRIVER_INIT(stfight); |
| 39 | 39 | DECLARE_DRIVER_INIT(empcity); |
| 40 | TILEMAP_MAPPER_MEMBER(fg_scan); | |
| 41 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 42 | TILEMAP_MAPPER_MEMBER(bg_scan); | |
| 43 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 44 | TILE_GET_INFO_MEMBER(get_tx_tile_info); | |
| 40 | 45 | }; |
| 41 | 46 | |
| 42 | 47 |
| r17673 | r17674 | |
|---|---|---|
| 295 | 295 | DECLARE_DRIVER_INIT(vidvince); |
| 296 | 296 | DECLARE_DRIVER_INIT(ramtiles); |
| 297 | 297 | DECLARE_DRIVER_INIT(stooges); |
| 298 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 299 | TILE_GET_INFO_MEMBER(get_screwloo_bg_tile_info); | |
| 298 | 300 | }; |
| 299 | 301 | |
| 300 | 302 |
| r17673 | r17674 | |
|---|---|---|
| 89 | 89 | DECLARE_DRIVER_INIT(ddragon); |
| 90 | 90 | DECLARE_DRIVER_INIT(ddragon6809); |
| 91 | 91 | DECLARE_DRIVER_INIT(chinagat); |
| 92 | TILEMAP_MAPPER_MEMBER(background_scan); | |
| 93 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 94 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 95 | TILE_GET_INFO_MEMBER(get_fg_16color_tile_info); | |
| 92 | 96 | }; |
| 93 | 97 | |
| 94 | 98 |
| r17673 | r17674 | |
|---|---|---|
| 81 | 81 | DECLARE_DRIVER_INIT(jogakuen); |
| 82 | 82 | DECLARE_DRIVER_INIT(battlcry); |
| 83 | 83 | DECLARE_DRIVER_INIT(mirderby); |
| 84 | TILE_GET_INFO_MEMBER(mrokumei_get_info0_0); | |
| 85 | TILE_GET_INFO_MEMBER(mrokumei_get_info1_0); | |
| 86 | TILE_GET_INFO_MEMBER(mrokumei_get_info0_1); | |
| 87 | TILE_GET_INFO_MEMBER(mrokumei_get_info1_1); | |
| 88 | TILE_GET_INFO_MEMBER(reikaids_get_info0_0); | |
| 89 | TILE_GET_INFO_MEMBER(reikaids_get_info1_0); | |
| 90 | TILE_GET_INFO_MEMBER(reikaids_get_info0_1); | |
| 91 | TILE_GET_INFO_MEMBER(reikaids_get_info1_1); | |
| 92 | TILE_GET_INFO_MEMBER(reikaids_get_info0_2); | |
| 93 | TILE_GET_INFO_MEMBER(reikaids_get_info1_2); | |
| 94 | TILE_GET_INFO_MEMBER(reikaids_get_info0_3); | |
| 95 | TILE_GET_INFO_MEMBER(reikaids_get_info1_3); | |
| 96 | TILE_GET_INFO_MEMBER(pteacher_get_info0_0); | |
| 97 | TILE_GET_INFO_MEMBER(pteacher_get_info1_0); | |
| 98 | TILE_GET_INFO_MEMBER(pteacher_get_info0_1); | |
| 99 | TILE_GET_INFO_MEMBER(pteacher_get_info1_1); | |
| 100 | TILE_GET_INFO_MEMBER(lemnangl_get_info0_0); | |
| 101 | TILE_GET_INFO_MEMBER(lemnangl_get_info1_0); | |
| 102 | TILE_GET_INFO_MEMBER(lemnangl_get_info0_1); | |
| 103 | TILE_GET_INFO_MEMBER(lemnangl_get_info1_1); | |
| 104 | TILE_GET_INFO_MEMBER(mirderby_get_info0_0); | |
| 105 | TILE_GET_INFO_MEMBER(mirderby_get_info1_0); | |
| 106 | TILE_GET_INFO_MEMBER(mirderby_get_info0_1); | |
| 107 | TILE_GET_INFO_MEMBER(mirderby_get_info1_1); | |
| 84 | 108 | }; |
| 85 | 109 | |
| 86 | 110 |
| r17673 | r17674 | |
|---|---|---|
| 24 | 24 | DECLARE_READ8_MEMBER(xxmissio_bgram_r); |
| 25 | 25 | DECLARE_WRITE8_MEMBER(xxmissio_paletteram_w); |
| 26 | 26 | DECLARE_CUSTOM_INPUT_MEMBER(xxmissio_status_r); |
| 27 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 28 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 27 | 29 | }; |
| 28 | 30 | |
| 29 | 31 |
| r17673 | r17674 | |
|---|---|---|
| 26 | 26 | DECLARE_WRITE16_MEMBER(mugsmash_videoram1_w); |
| 27 | 27 | DECLARE_WRITE16_MEMBER(mugsmash_videoram2_w); |
| 28 | 28 | DECLARE_WRITE16_MEMBER(mugsmash_reg_w); |
| 29 | TILE_GET_INFO_MEMBER(get_mugsmash_tile_info1); | |
| 30 | TILE_GET_INFO_MEMBER(get_mugsmash_tile_info2); | |
| 29 | 31 | }; |
| 30 | 32 | |
| 31 | 33 |
| r17673 | r17674 | |
|---|---|---|
| 175 | 175 | void m_set_irq(UINT32 irq_vector); |
| 176 | 176 | UINT32 m_irq_pending; |
| 177 | 177 | int m_irq_level; |
| 178 | TILE_GET_INFO_MEMBER(get_hng64_tile0_8x8_info); | |
| 179 | TILE_GET_INFO_MEMBER(get_hng64_tile0_16x16_info); | |
| 180 | TILE_GET_INFO_MEMBER(get_hng64_tile1_8x8_info); | |
| 181 | TILE_GET_INFO_MEMBER(get_hng64_tile1_16x16_info); | |
| 182 | TILE_GET_INFO_MEMBER(get_hng64_tile2_8x8_info); | |
| 183 | TILE_GET_INFO_MEMBER(get_hng64_tile2_16x16_info); | |
| 184 | TILE_GET_INFO_MEMBER(get_hng64_tile3_8x8_info); | |
| 185 | TILE_GET_INFO_MEMBER(get_hng64_tile3_16x16_info); | |
| 178 | 186 | }; |
| 179 | 187 | |
| 180 | 188 |
| r17673 | r17674 | |
|---|---|---|
| 27 | 27 | DECLARE_WRITE8_MEMBER(solomon_videoram2_w); |
| 28 | 28 | DECLARE_WRITE8_MEMBER(solomon_colorram2_w); |
| 29 | 29 | DECLARE_WRITE8_MEMBER(solomon_flipscreen_w); |
| 30 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 31 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 30 | 32 | }; |
| 31 | 33 | |
| 32 | 34 |
| r17673 | r17674 | |
|---|---|---|
| 64 | 64 | DECLARE_WRITE32_MEMBER(macrossp_text_videoram_w); |
| 65 | 65 | DECLARE_DRIVER_INIT(quizmoon); |
| 66 | 66 | DECLARE_DRIVER_INIT(macrossp); |
| 67 | TILE_GET_INFO_MEMBER(get_macrossp_scra_tile_info); | |
| 68 | TILE_GET_INFO_MEMBER(get_macrossp_scrb_tile_info); | |
| 69 | TILE_GET_INFO_MEMBER(get_macrossp_scrc_tile_info); | |
| 70 | TILE_GET_INFO_MEMBER(get_macrossp_text_tile_info); | |
| 67 | 71 | }; |
| 68 | 72 | |
| 69 | 73 | /*----------- defined in video/macrossp.c -----------*/ |
| r17673 | r17674 | |
|---|---|---|
| 58 | 58 | DECLARE_READ8_MEMBER(f1_r); |
| 59 | 59 | DECLARE_DRIVER_INIT(gladiatr); |
| 60 | 60 | DECLARE_DRIVER_INIT(ppking); |
| 61 | TILE_GET_INFO_MEMBER(bg_get_tile_info); | |
| 62 | TILE_GET_INFO_MEMBER(fg_get_tile_info); | |
| 61 | 63 | }; |
| 62 | 64 | |
| 63 | 65 | /*----------- defined in video/gladiatr.c -----------*/ |
| r17673 | r17674 | |
|---|---|---|
| 104 | 104 | DECLARE_WRITE8_MEMBER(champwr_msm5205_volume_w); |
| 105 | 105 | DECLARE_WRITE8_MEMBER(portA_w); |
| 106 | 106 | DECLARE_DRIVER_INIT(plottinga); |
| 107 | TILE_GET_INFO_MEMBER(get_bg18_tile_info); | |
| 108 | TILE_GET_INFO_MEMBER(get_bg19_tile_info); | |
| 109 | TILE_GET_INFO_MEMBER(get_ch1a_tile_info); | |
| 107 | 110 | }; |
| 108 | 111 | |
| 109 | 112 | /*----------- defined in video/taito_l.c -----------*/ |
| r17673 | r17674 | |
|---|---|---|
| 42 | 42 | DECLARE_WRITE8_MEMBER(goindol_fg_videoram_w); |
| 43 | 43 | DECLARE_WRITE8_MEMBER(goindol_bg_videoram_w); |
| 44 | 44 | DECLARE_DRIVER_INIT(goindol); |
| 45 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 46 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 45 | 47 | }; |
| 46 | 48 | |
| 47 | 49 |
| r17673 | r17674 | |
|---|---|---|
| 49 | 49 | DECLARE_WRITE8_MEMBER(gyruss_filter0_w); |
| 50 | 50 | DECLARE_WRITE8_MEMBER(gyruss_filter1_w); |
| 51 | 51 | DECLARE_DRIVER_INIT(gyruss); |
| 52 | TILE_GET_INFO_MEMBER(gyruss_get_tile_info); | |
| 52 | 53 | }; |
| 53 | 54 | |
| 54 | 55 |
| r17673 | r17674 | |
|---|---|---|
| 43 | 43 | DECLARE_WRITE8_MEMBER(fastlane_k1_k007232_w); |
| 44 | 44 | DECLARE_READ8_MEMBER(fastlane_k2_k007232_r); |
| 45 | 45 | DECLARE_WRITE8_MEMBER(fastlane_k2_k007232_w); |
| 46 | TILE_GET_INFO_MEMBER(get_tile_info0); | |
| 47 | TILE_GET_INFO_MEMBER(get_tile_info1); | |
| 46 | 48 | }; |
| 47 | 49 | |
| 48 | 50 |
| r17673 | r17674 | |
|---|---|---|
| 30 | 30 | DECLARE_WRITE8_MEMBER(cabalbl_2_adpcm_w); |
| 31 | 31 | DECLARE_DRIVER_INIT(cabal); |
| 32 | 32 | DECLARE_DRIVER_INIT(cabalbl2); |
| 33 | TILE_GET_INFO_MEMBER(get_back_tile_info); | |
| 34 | TILE_GET_INFO_MEMBER(get_text_tile_info); | |
| 33 | 35 | }; |
| 34 | 36 | |
| 35 | 37 |
| r17673 | r17674 | |
|---|---|---|
| 19 | 19 | DECLARE_WRITE8_MEMBER(suprloco_control_w); |
| 20 | 20 | DECLARE_READ8_MEMBER(suprloco_control_r); |
| 21 | 21 | DECLARE_DRIVER_INIT(suprloco); |
| 22 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 22 | 23 | }; |
| 23 | 24 | |
| 24 | 25 |
| r17673 | r17674 | |
|---|---|---|
| 70 | 70 | DECLARE_DRIVER_INIT(lethalth); |
| 71 | 71 | DECLARE_DRIVER_INIT(m92); |
| 72 | 72 | DECLARE_DRIVER_INIT(m92_bank); |
| 73 | TILE_GET_INFO_MEMBER(get_pf_tile_info); | |
| 73 | 74 | }; |
| 74 | 75 | |
| 75 | 76 |
| r17673 | r17674 | |
|---|---|---|
| 26 | 26 | DECLARE_WRITE8_MEMBER(yard_scroll_panel_w); |
| 27 | 27 | DECLARE_WRITE8_MEMBER(yard_flipscreen_w); |
| 28 | 28 | DECLARE_DRIVER_INIT(yard85); |
| 29 | TILE_GET_INFO_MEMBER(yard_get_bg_tile_info); | |
| 30 | TILEMAP_MAPPER_MEMBER(yard_tilemap_scan_rows); | |
| 29 | 31 | }; |
| 30 | 32 | |
| 31 | 33 | /*----------- defined in video/m58.c -----------*/ |
| r17673 | r17674 | |
|---|---|---|
| 61 | 61 | DECLARE_WRITE8_MEMBER(fcombat_videoreg_w); |
| 62 | 62 | DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); |
| 63 | 63 | DECLARE_DRIVER_INIT(fcombat); |
| 64 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 64 | 65 | }; |
| 65 | 66 | |
| 66 | 67 |
| r17673 | r17674 | |
|---|---|---|
| 17 | 17 | DECLARE_WRITE16_MEMBER(thoop2_coin_w); |
| 18 | 18 | DECLARE_READ16_MEMBER(DS5002FP_R); |
| 19 | 19 | DECLARE_WRITE16_MEMBER(thoop2_vram_w); |
| 20 | TILE_GET_INFO_MEMBER(get_tile_info_thoop2_screen0); | |
| 21 | TILE_GET_INFO_MEMBER(get_tile_info_thoop2_screen1); | |
| 20 | 22 | }; |
| 21 | 23 | |
| 22 | 24 |
| r17673 | r17674 | |
|---|---|---|
| 38 | 38 | DECLARE_CUSTOM_INPUT_MEMBER(dsw_3f_r); |
| 39 | 39 | DECLARE_CUSTOM_INPUT_MEMBER(dsw_c0_r); |
| 40 | 40 | DECLARE_WRITE8_MEMBER(oki_bankswitch_w); |
| 41 | TILE_GET_INFO_MEMBER(get_fg0_tile_info); | |
| 42 | TILE_GET_INFO_MEMBER(get_bg0_tile_info); | |
| 43 | TILE_GET_INFO_MEMBER(get_bg1_tile_info); | |
| 41 | 44 | }; |
| 42 | 45 | |
| 43 | 46 |
| r17673 | r17674 | |
|---|---|---|
| 33 | 33 | DECLARE_WRITE8_MEMBER(marineb_palette_bank_1_w); |
| 34 | 34 | DECLARE_WRITE8_MEMBER(marineb_flipscreen_x_w); |
| 35 | 35 | DECLARE_WRITE8_MEMBER(marineb_flipscreen_y_w); |
| 36 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 36 | 37 | }; |
| 37 | 38 | |
| 38 | 39 |
| r17673 | r17674 | |
|---|---|---|
| 43 | 43 | DECLARE_READ8_MEMBER(timeplt_scanline_r); |
| 44 | 44 | DECLARE_CUSTOM_INPUT_MEMBER(chkun_hopper_status_r); |
| 45 | 45 | DECLARE_WRITE8_MEMBER(chkun_sound_w); |
| 46 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 47 | TILE_GET_INFO_MEMBER(get_chkun_tile_info); | |
| 46 | 48 | }; |
| 47 | 49 | |
| 48 | 50 |
| r17673 | r17674 | |
|---|---|---|
| 40 | 40 | DECLARE_DRIVER_INIT(spclords); |
| 41 | 41 | DECLARE_DRIVER_INIT(rrreveng); |
| 42 | 42 | DECLARE_DRIVER_INIT(motofren); |
| 43 | TILE_GET_INFO_MEMBER(get_alpha_tile_info); | |
| 44 | TILE_GET_INFO_MEMBER(get_playfield_tile_info); | |
| 45 | TILEMAP_MAPPER_MEMBER(atarigx2_playfield_scan); | |
| 43 | 46 | }; |
| 44 | 47 | |
| 45 | 48 |
| r17673 | r17674 | |
|---|---|---|
| 36 | 36 | DECLARE_WRITE16_MEMBER(fuuki16_vram_2_w); |
| 37 | 37 | DECLARE_WRITE16_MEMBER(fuuki16_vram_3_w); |
| 38 | 38 | DECLARE_WRITE8_MEMBER(fuuki16_oki_banking_w); |
| 39 | TILE_GET_INFO_MEMBER(get_tile_info_0); | |
| 40 | TILE_GET_INFO_MEMBER(get_tile_info_1); | |
| 41 | TILE_GET_INFO_MEMBER(get_tile_info_2); | |
| 42 | TILE_GET_INFO_MEMBER(get_tile_info_3); | |
| 39 | 43 | }; |
| 40 | 44 | |
| 41 | 45 |
| r17673 | r17674 | |
|---|---|---|
| 21 | 21 | DECLARE_WRITE8_MEMBER(vulgus_bgvideoram_w); |
| 22 | 22 | DECLARE_WRITE8_MEMBER(vulgus_c804_w); |
| 23 | 23 | DECLARE_WRITE8_MEMBER(vulgus_palette_bank_w); |
| 24 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 25 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 24 | 26 | }; |
| 25 | 27 | |
| 26 | 28 |
| r17673 | r17674 | |
|---|---|---|
| 29 | 29 | DECLARE_WRITE16_MEMBER(sderby_md_videoram_w); |
| 30 | 30 | DECLARE_WRITE16_MEMBER(sderby_fg_videoram_w); |
| 31 | 31 | DECLARE_WRITE16_MEMBER(sderby_scroll_w); |
| 32 | TILE_GET_INFO_MEMBER(get_sderby_tile_info); | |
| 33 | TILE_GET_INFO_MEMBER(get_sderby_md_tile_info); | |
| 34 | TILE_GET_INFO_MEMBER(get_sderby_fg_tile_info); | |
| 32 | 35 | }; |
| 33 | 36 | |
| 34 | 37 |
| r17673 | r17674 | |
|---|---|---|
| 32 | 32 | DECLARE_DRIVER_INIT(circus); |
| 33 | 33 | DECLARE_DRIVER_INIT(robotbwl); |
| 34 | 34 | DECLARE_DRIVER_INIT(crash); |
| 35 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 35 | 36 | }; |
| 36 | 37 | |
| 37 | 38 |
| r17673 | r17674 | |
|---|---|---|
| 18 | 18 | DECLARE_READ8_MEMBER(zac_s2636_r); |
| 19 | 19 | DECLARE_WRITE8_MEMBER(zac_s2636_w); |
| 20 | 20 | DECLARE_READ8_MEMBER(tinvader_port_0_r); |
| 21 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 21 | 22 | }; |
| 22 | 23 | |
| 23 | 24 |
| r17673 | r17674 | |
|---|---|---|
| 41 | 41 | DECLARE_WRITE8_MEMBER(vastar_bg2videoram_w); |
| 42 | 42 | DECLARE_READ8_MEMBER(vastar_bg1videoram_r); |
| 43 | 43 | DECLARE_READ8_MEMBER(vastar_bg2videoram_r); |
| 44 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 45 | TILE_GET_INFO_MEMBER(get_bg1_tile_info); | |
| 46 | TILE_GET_INFO_MEMBER(get_bg2_tile_info); | |
| 44 | 47 | }; |
| 45 | 48 | |
| 46 | 49 |
| r17673 | r17674 | |
|---|---|---|
| 27 | 27 | DECLARE_WRITE16_MEMBER(taotaido_sprite_character_bank_select_w); |
| 28 | 28 | DECLARE_WRITE16_MEMBER(taotaido_tileregs_w); |
| 29 | 29 | DECLARE_WRITE16_MEMBER(taotaido_bgvideoram_w); |
| 30 | TILE_GET_INFO_MEMBER(taotaido_bg_tile_info); | |
| 31 | TILEMAP_MAPPER_MEMBER(taotaido_tilemap_scan_rows); | |
| 30 | 32 | }; |
| 31 | 33 | |
| 32 | 34 |
| r17673 | r17674 | |
|---|---|---|
| 21 | 21 | DECLARE_WRITE16_MEMBER(audio_control_w); |
| 22 | 22 | DECLARE_WRITE16_MEMBER(audio_volume_w); |
| 23 | 23 | DECLARE_DRIVER_INIT(relief); |
| 24 | TILE_GET_INFO_MEMBER(get_playfield_tile_info); | |
| 25 | TILE_GET_INFO_MEMBER(get_playfield2_tile_info); | |
| 24 | 26 | }; |
| 25 | 27 | |
| 26 | 28 |
| r17673 | r17674 | |
|---|---|---|
| 258 | 258 | DECLARE_DRIVER_INIT(cleopatr); |
| 259 | 259 | DECLARE_DRIVER_INIT(scfinals); |
| 260 | 260 | DECLARE_DRIVER_INIT(pbobbl2x); |
| 261 | TILE_GET_INFO_MEMBER(get_tile_info1); | |
| 262 | TILE_GET_INFO_MEMBER(get_tile_info2); | |
| 263 | TILE_GET_INFO_MEMBER(get_tile_info3); | |
| 264 | TILE_GET_INFO_MEMBER(get_tile_info4); | |
| 265 | TILE_GET_INFO_MEMBER(get_tile_info5); | |
| 266 | TILE_GET_INFO_MEMBER(get_tile_info6); | |
| 267 | TILE_GET_INFO_MEMBER(get_tile_info7); | |
| 268 | TILE_GET_INFO_MEMBER(get_tile_info8); | |
| 269 | TILE_GET_INFO_MEMBER(get_tile_info_vram); | |
| 270 | TILE_GET_INFO_MEMBER(get_tile_info_pixel); | |
| 261 | 271 | }; |
| 262 | 272 | |
| 263 | 273 |
| r17673 | r17674 | |
|---|---|---|
| 43 | 43 | DECLARE_DRIVER_INIT(snowboar); |
| 44 | 44 | DECLARE_DRIVER_INIT(alighunt); |
| 45 | 45 | DECLARE_DRIVER_INIT(bang); |
| 46 | TILE_GET_INFO_MEMBER(get_tile_info_gaelco2_screen0); | |
| 47 | TILE_GET_INFO_MEMBER(get_tile_info_gaelco2_screen1); | |
| 48 | TILE_GET_INFO_MEMBER(get_tile_info_gaelco2_screen0_dual); | |
| 49 | TILE_GET_INFO_MEMBER(get_tile_info_gaelco2_screen1_dual); | |
| 46 | 50 | }; |
| 47 | 51 | |
| 48 | 52 |
| r17673 | r17674 | |
|---|---|---|
| 32 | 32 | DECLARE_WRITE8_MEMBER(pa_w); |
| 33 | 33 | DECLARE_WRITE8_MEMBER(pb_w); |
| 34 | 34 | DECLARE_WRITE8_MEMBER(pc_w); |
| 35 | TILE_GET_INFO_MEMBER(get_homerun_tile_info); | |
| 35 | 36 | }; |
| 36 | 37 | |
| 37 | 38 |
| r17673 | r17674 | |
|---|---|---|
| 32 | 32 | DECLARE_READ8_MEMBER(baraduke_spriteram_r); |
| 33 | 33 | DECLARE_WRITE8_MEMBER(baraduke_spriteram_w); |
| 34 | 34 | DECLARE_DRIVER_INIT(baraduke); |
| 35 | TILEMAP_MAPPER_MEMBER(tx_tilemap_scan); | |
| 36 | TILE_GET_INFO_MEMBER(tx_get_tile_info); | |
| 37 | TILE_GET_INFO_MEMBER(get_tile_info0); | |
| 38 | TILE_GET_INFO_MEMBER(get_tile_info1); | |
| 35 | 39 | }; |
| 36 | 40 | |
| 37 | 41 |
| r17673 | r17674 | |
|---|---|---|
| 51 | 51 | DECLARE_WRITE8_MEMBER(champbas_dac2_w); |
| 52 | 52 | DECLARE_DRIVER_INIT(exctsccr); |
| 53 | 53 | DECLARE_DRIVER_INIT(champbas); |
| 54 | TILE_GET_INFO_MEMBER(champbas_get_bg_tile_info); | |
| 55 | TILE_GET_INFO_MEMBER(exctsccr_get_bg_tile_info); | |
| 54 | 56 | }; |
| 55 | 57 | |
| 56 | 58 |
| r17673 | r17674 | |
|---|---|---|
| 31 | 31 | DECLARE_WRITE8_MEMBER(ssozumo_scroll_w); |
| 32 | 32 | DECLARE_WRITE8_MEMBER(ssozumo_flipscreen_w); |
| 33 | 33 | DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); |
| 34 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 35 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 34 | 36 | }; |
| 35 | 37 | |
| 36 | 38 |
| r17673 | r17674 | |
|---|---|---|
| 78 | 78 | DECLARE_DRIVER_INIT(nflfoot); |
| 79 | 79 | DECLARE_DRIVER_INIT(journey); |
| 80 | 80 | DECLARE_DRIVER_INIT(solarfox); |
| 81 | TILE_GET_INFO_MEMBER(mcr_90009_get_tile_info); | |
| 82 | TILE_GET_INFO_MEMBER(mcr_90010_get_tile_info); | |
| 83 | TILE_GET_INFO_MEMBER(mcr_91490_get_tile_info); | |
| 81 | 84 | }; |
| 82 | 85 | |
| 83 | 86 |
| r17673 | r17674 | |
|---|---|---|
| 47 | 47 | DECLARE_DRIVER_INIT(firebarr); |
| 48 | 48 | DECLARE_DRIVER_INIT(dsoccr94); |
| 49 | 49 | DECLARE_DRIVER_INIT(wpksoc); |
| 50 | TILE_GET_INFO_MEMBER(get_pf_tile_info); | |
| 50 | 51 | }; |
| 51 | 52 | |
| 52 | 53 |
| r17673 | r17674 | |
|---|---|---|
| 57 | 57 | DECLARE_DRIVER_INIT(fround); |
| 58 | 58 | DECLARE_DRIVER_INIT(twin16); |
| 59 | 59 | DECLARE_DRIVER_INIT(cuebrickj); |
| 60 | TILE_GET_INFO_MEMBER(get_text_tile_info); | |
| 60 | 61 | }; |
| 61 | 62 | |
| 62 | 63 |
| r17673 | r17674 | |
|---|---|---|
| 73 | 73 | DECLARE_DRIVER_INIT(arkangc2); |
| 74 | 74 | DECLARE_DRIVER_INIT(arkbloc2); |
| 75 | 75 | DECLARE_DRIVER_INIT(arkangc); |
| 76 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 76 | 77 | }; |
| 77 | 78 | |
| 78 | 79 |
| r17673 | r17674 | |
|---|---|---|
| 102 | 102 | DECLARE_DRIVER_INIT(rodland); |
| 103 | 103 | DECLARE_DRIVER_INIT(edfbl); |
| 104 | 104 | DECLARE_DRIVER_INIT(stdragona); |
| 105 | TILEMAP_MAPPER_MEMBER(megasys1_scan_8x8); | |
| 106 | TILEMAP_MAPPER_MEMBER(megasys1_scan_16x16); | |
| 107 | TILE_GET_INFO_MEMBER(megasys1_get_scroll_tile_info_8x8); | |
| 108 | TILE_GET_INFO_MEMBER(megasys1_get_scroll_tile_info_16x16); | |
| 105 | 109 | }; |
| 106 | 110 | |
| 107 | 111 |
| r17673 | r17674 | |
|---|---|---|
| 45 | 45 | DECLARE_CUSTOM_INPUT_MEMBER(country_sndpending_r); |
| 46 | 46 | DECLARE_DRIVER_INIT(crshrace2); |
| 47 | 47 | DECLARE_DRIVER_INIT(crshrace); |
| 48 | TILE_GET_INFO_MEMBER(get_tile_info1); | |
| 49 | TILE_GET_INFO_MEMBER(get_tile_info2); | |
| 48 | 50 | }; |
| 49 | 51 | |
| 50 | 52 | /*----------- defined in video/crshrace.c -----------*/ |
| r17673 | r17674 | |
|---|---|---|
| 61 | 61 | DECLARE_WRITE8_MEMBER(airbustr_colorram2_w); |
| 62 | 62 | DECLARE_WRITE8_MEMBER(airbustr_scrollregs_w); |
| 63 | 63 | DECLARE_DRIVER_INIT(airbustr); |
| 64 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 65 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 64 | 66 | }; |
| 65 | 67 | |
| 66 | 68 |
| r17673 | r17674 | |
|---|---|---|
| 117 | 117 | DECLARE_DRIVER_INIT(8bpm); |
| 118 | 118 | DECLARE_DRIVER_INIT(porky); |
| 119 | 119 | DECLARE_DRIVER_INIT(mspacman); |
| 120 | TILEMAP_MAPPER_MEMBER(pacman_scan_rows); | |
| 121 | TILE_GET_INFO_MEMBER(pacman_get_tile_info); | |
| 122 | TILE_GET_INFO_MEMBER(s2650_get_tile_info); | |
| 123 | TILEMAP_MAPPER_MEMBER(jrpacman_scan_rows); | |
| 124 | TILE_GET_INFO_MEMBER(jrpacman_get_tile_info); | |
| 120 | 125 | }; |
| 121 | 126 | |
| 122 | 127 |
| r17673 | r17674 | |
|---|---|---|
| 20 | 20 | DECLARE_WRITE8_MEMBER(clshroad_vram_0_w); |
| 21 | 21 | DECLARE_WRITE8_MEMBER(clshroad_vram_1_w); |
| 22 | 22 | DECLARE_DRIVER_INIT(firebatl); |
| 23 | TILE_GET_INFO_MEMBER(get_tile_info_0a); | |
| 24 | TILE_GET_INFO_MEMBER(get_tile_info_0b); | |
| 25 | TILEMAP_MAPPER_MEMBER(tilemap_scan_rows_extra); | |
| 26 | TILE_GET_INFO_MEMBER(get_tile_info_fb1); | |
| 27 | TILE_GET_INFO_MEMBER(get_tile_info_1); | |
| 23 | 28 | }; |
| 24 | 29 | |
| 25 | 30 |
| r17673 | r17674 | |
|---|---|---|
| 67 | 67 | DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); |
| 68 | 68 | DECLARE_INPUT_CHANGED_MEMBER(tilt_pressed); |
| 69 | 69 | DECLARE_DRIVER_INIT(bwing); |
| 70 | TILE_GET_INFO_MEMBER(get_fgtileinfo); | |
| 71 | TILE_GET_INFO_MEMBER(get_bgtileinfo); | |
| 72 | TILE_GET_INFO_MEMBER(get_charinfo); | |
| 73 | TILEMAP_MAPPER_MEMBER(bwing_scan_cols); | |
| 70 | 74 | }; |
| 71 | 75 | |
| 72 | 76 |
| r17673 | r17674 | |
|---|---|---|
| 41 | 41 | DECLARE_WRITE16_MEMBER(sf_gfxctrl_w); |
| 42 | 42 | DECLARE_WRITE8_MEMBER(msm1_5205_w); |
| 43 | 43 | DECLARE_WRITE8_MEMBER(msm2_5205_w); |
| 44 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 45 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 46 | TILE_GET_INFO_MEMBER(get_tx_tile_info); | |
| 44 | 47 | }; |
| 45 | 48 | |
| 46 | 49 |
| r17673 | r17674 | |
|---|---|---|
| 181 | 181 | DECLARE_DRIVER_INIT(sailormn); |
| 182 | 182 | DECLARE_DRIVER_INIT(dfeveron); |
| 183 | 183 | DECLARE_DRIVER_INIT(metmqstr); |
| 184 | TILE_GET_INFO_MEMBER(sailormn_get_tile_info_2); | |
| 185 | TILE_GET_INFO_MEMBER(get_tile_info_0); | |
| 186 | TILE_GET_INFO_MEMBER(get_tile_info_1); | |
| 187 | TILE_GET_INFO_MEMBER(get_tile_info_2); | |
| 188 | TILE_GET_INFO_MEMBER(get_tile_info_3); | |
| 184 | 189 | }; |
| 185 | 190 | |
| 186 | 191 | /*----------- defined in video/cave.c -----------*/ |
| r17673 | r17674 | |
|---|---|---|
| 63 | 63 | DECLARE_WRITE8_MEMBER(flytiger_ctrl_w); |
| 64 | 64 | DECLARE_WRITE16_MEMBER(rshark_ctrl_w); |
| 65 | 65 | DECLARE_READ8_MEMBER(unk_r); |
| 66 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 67 | TILE_GET_INFO_MEMBER(get_bg2_tile_info); | |
| 68 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 69 | TILE_GET_INFO_MEMBER(get_fg2_tile_info); | |
| 70 | TILE_GET_INFO_MEMBER(flytiger_get_fg_tile_info); | |
| 71 | TILE_GET_INFO_MEMBER(get_tx_tile_info); | |
| 66 | 72 | }; |
| 67 | 73 | |
| 68 | 74 |
| r17673 | r17674 | |
|---|---|---|
| 90 | 90 | DECLARE_DRIVER_INIT(tshoot); |
| 91 | 91 | DECLARE_DRIVER_INIT(robotron); |
| 92 | 92 | DECLARE_DRIVER_INIT(bubbles); |
| 93 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 93 | 94 | }; |
| 94 | 95 | |
| 95 | 96 |
| r17673 | r17674 | |
|---|---|---|
| 39 | 39 | DECLARE_WRITE8_MEMBER(brkthru_1800_w); |
| 40 | 40 | DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); |
| 41 | 41 | DECLARE_DRIVER_INIT(brkthru); |
| 42 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 43 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 42 | 44 | }; |
| 43 | 45 | |
| 44 | 46 |
| r17673 | r17674 | |
|---|---|---|
| 54 | 54 | DECLARE_WRITE32_MEMBER(fuuki32_vram_1_w); |
| 55 | 55 | DECLARE_WRITE32_MEMBER(fuuki32_vram_2_w); |
| 56 | 56 | DECLARE_WRITE32_MEMBER(fuuki32_vram_3_w); |
| 57 | TILE_GET_INFO_MEMBER(get_tile_info_0); | |
| 58 | TILE_GET_INFO_MEMBER(get_tile_info_1); | |
| 59 | TILE_GET_INFO_MEMBER(get_tile_info_2); | |
| 60 | TILE_GET_INFO_MEMBER(get_tile_info_3); | |
| 57 | 61 | }; |
| 58 | 62 | |
| 59 | 63 |
| r17673 | r17674 | |
|---|---|---|
| 100 | 100 | DECLARE_DRIVER_INIT(lastmisn); |
| 101 | 101 | DECLARE_DRIVER_INIT(gondo); |
| 102 | 102 | DECLARE_DRIVER_INIT(oscar); |
| 103 | TILE_GET_INFO_MEMBER(get_cobracom_fix_tile_info); | |
| 104 | TILE_GET_INFO_MEMBER(get_ghostb_fix_tile_info); | |
| 105 | TILE_GET_INFO_MEMBER(get_oscar_fix_tile_info); | |
| 106 | TILEMAP_MAPPER_MEMBER(lastmisn_scan_rows); | |
| 107 | TILE_GET_INFO_MEMBER(get_lastmisn_tile_info); | |
| 108 | TILE_GET_INFO_MEMBER(get_lastmisn_fix_tile_info); | |
| 109 | TILE_GET_INFO_MEMBER(get_srdarwin_fix_tile_info); | |
| 110 | TILE_GET_INFO_MEMBER(get_srdarwin_tile_info); | |
| 111 | TILE_GET_INFO_MEMBER(get_gondo_fix_tile_info); | |
| 112 | TILE_GET_INFO_MEMBER(get_gondo_tile_info); | |
| 103 | 113 | }; |
| 104 | 114 | |
| 105 | 115 | /*----------- defined in video/dec8.c -----------*/ |
| r17673 | r17674 | |
|---|---|---|
| 45 | 45 | DECLARE_WRITE8_MEMBER(tbowl_bg2xscroll_hi); |
| 46 | 46 | DECLARE_WRITE8_MEMBER(tbowl_bg2yscroll_lo); |
| 47 | 47 | DECLARE_WRITE8_MEMBER(tbowl_bg2yscroll_hi); |
| 48 | TILE_GET_INFO_MEMBER(get_tx_tile_info); | |
| 49 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 50 | TILE_GET_INFO_MEMBER(get_bg2_tile_info); | |
| 48 | 51 | }; |
| 49 | 52 | |
| 50 | 53 |
| r17673 | r17674 | |
|---|---|---|
| 33 | 33 | DECLARE_WRITE8_MEMBER(battlane_spriteram_w); |
| 34 | 34 | DECLARE_WRITE8_MEMBER(battlane_bitmap_w); |
| 35 | 35 | DECLARE_WRITE8_MEMBER(battlane_video_ctrl_w); |
| 36 | TILE_GET_INFO_MEMBER(get_tile_info_bg); | |
| 37 | TILEMAP_MAPPER_MEMBER(battlane_tilemap_scan_rows_2x2); | |
| 36 | 38 | }; |
| 37 | 39 | |
| 38 | 40 |
| r17673 | r17674 | |
|---|---|---|
| 65 | 65 | DECLARE_DRIVER_INIT(primrage20); |
| 66 | 66 | DECLARE_DRIVER_INIT(primrage); |
| 67 | 67 | DECLARE_DRIVER_INIT(tmek); |
| 68 | TILE_GET_INFO_MEMBER(get_alpha_tile_info); | |
| 69 | TILE_GET_INFO_MEMBER(get_playfield_tile_info); | |
| 70 | TILEMAP_MAPPER_MEMBER(atarigt_playfield_scan); | |
| 68 | 71 | }; |
| 69 | 72 | |
| 70 | 73 |
| r17673 | r17674 | |
|---|---|---|
| 33 | 33 | DECLARE_WRITE8_MEMBER(intrepid_graphics_bank_w); |
| 34 | 34 | DECLARE_READ8_MEMBER(thepit_input_port_0_r); |
| 35 | 35 | DECLARE_DRIVER_INIT(rtriv); |
| 36 | TILE_GET_INFO_MEMBER(solid_get_tile_info); | |
| 37 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 36 | 38 | }; |
| 37 | 39 | |
| 38 | 40 |
| r17673 | r17674 | |
|---|---|---|
| 35 | 35 | DECLARE_WRITE8_MEMBER(upd_data_w); |
| 36 | 36 | DECLARE_DRIVER_INIT(rabiolep); |
| 37 | 37 | DECLARE_DRIVER_INIT(svolley); |
| 38 | TILE_GET_INFO_MEMBER(get_bg0_tile_info); | |
| 39 | TILE_GET_INFO_MEMBER(get_bg1_tile_info); | |
| 38 | 40 | }; |
| 39 | 41 | |
| 40 | 42 |
| r17673 | r17674 | |
|---|---|---|
| 47 | 47 | DECLARE_READ8_MEMBER(triplhnt_misc_r); |
| 48 | 48 | DECLARE_READ8_MEMBER(triplhnt_da_latch_r); |
| 49 | 49 | DECLARE_DRIVER_INIT(triplhnt); |
| 50 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 50 | 51 | }; |
| 51 | 52 | |
| 52 | 53 |
| r17673 | r17674 | |
|---|---|---|
| 27 | 27 | DECLARE_WRITE8_MEMBER(pooyan_videoram_w); |
| 28 | 28 | DECLARE_WRITE8_MEMBER(pooyan_colorram_w); |
| 29 | 29 | DECLARE_WRITE8_MEMBER(pooyan_flipscreen_w); |
| 30 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 30 | 31 | }; |
| 31 | 32 | |
| 32 | 33 |
| r17673 | r17674 | |
|---|---|---|
| 25 | 25 | DECLARE_WRITE8_MEMBER(sidepckt_flipscreen_w); |
| 26 | 26 | DECLARE_DRIVER_INIT(sidepckt); |
| 27 | 27 | DECLARE_DRIVER_INIT(sidepctj); |
| 28 | TILE_GET_INFO_MEMBER(get_tile_info); | |
| 28 | 29 | }; |
| 29 | 30 | |
| 30 | 31 |
| r17673 | r17674 | |
|---|---|---|
| 25 | 25 | DECLARE_CUSTOM_INPUT_MEMBER(prot_r); |
| 26 | 26 | DECLARE_DRIVER_INIT(pirates); |
| 27 | 27 | DECLARE_DRIVER_INIT(genix); |
| 28 | TILE_GET_INFO_MEMBER(get_tx_tile_info); | |
| 29 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 30 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 28 | 31 | }; |
| 29 | 32 | |
| 30 | 33 |
| r17673 | r17674 | |
|---|---|---|
| 26 | 26 | DECLARE_WRITE8_MEMBER(tankbatt_coin_lockout_w); |
| 27 | 27 | DECLARE_WRITE8_MEMBER(tankbatt_videoram_w); |
| 28 | 28 | DECLARE_INPUT_CHANGED_MEMBER(coin_inserted); |
| 29 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 29 | 30 | }; |
| 30 | 31 | |
| 31 | 32 |
| r17673 | r17674 | |
|---|---|---|
| 21 | 21 | DECLARE_WRITE16_MEMBER(OKIM6295_bankswitch_w); |
| 22 | 22 | DECLARE_WRITE16_MEMBER(wrally_coin_counter_w); |
| 23 | 23 | DECLARE_WRITE16_MEMBER(wrally_coin_lockout_w); |
| 24 | TILE_GET_INFO_MEMBER(get_tile_info_wrally_screen0); | |
| 25 | TILE_GET_INFO_MEMBER(get_tile_info_wrally_screen1); | |
| 24 | 26 | }; |
| 25 | 27 | |
| 26 | 28 |
| r17673 | r17674 | |
|---|---|---|
| 29 | 29 | DECLARE_READ8_MEMBER(gfire2_protection_r); |
| 30 | 30 | DECLARE_WRITE8_MEMBER(mosaic_fgvideoram_w); |
| 31 | 31 | DECLARE_WRITE8_MEMBER(mosaic_bgvideoram_w); |
| 32 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 33 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 32 | 34 | }; |
| 33 | 35 | |
| 34 | 36 |
| r17673 | r17674 | |
|---|---|---|
| 39 | 39 | DECLARE_WRITE16_MEMBER(crospang_fg_videoram_w); |
| 40 | 40 | DECLARE_WRITE16_MEMBER(crospang_bg_videoram_w); |
| 41 | 41 | DECLARE_DRIVER_INIT(crospang); |
| 42 | TILE_GET_INFO_MEMBER(get_bg_tile_info); | |
| 43 | TILE_GET_INFO_MEMBER(get_fg_tile_info); | |
| 42 | 44 | }; |
| 43 | 45 | |
| 44 | 46 |
| r17673 | r17674 | |
|---|---|---|
| 22 | 22 | |
| 23 | 23 | DECLARE_WRITE8_MEMBER(darkmist_hw_w); |
| 24 | 24 | DECLARE_DRIVER_INIT(darkmist); |
| 25 | TILE_GET_INFO_MEMBER(get_bgtile_info); | |
| 26 | TILE_GET_INFO_MEMBER(get_fgtile_info); | |
| 27 | TILE_GET_INFO_MEMBER(get_txttile_info); | |
| 25 | 28 | }; |
| 26 | 29 | |
| 27 | 30 |
| r17673 | r17674 | |
|---|---|---|
| 32 | 32 | 1 | xxxxxxxx x------- | not used? |
| 33 | 33 | */ |
| 34 | 34 | |
| 35 | ||
| 35 | ||
| 36 | 36 | { |
| 37 | targeth_state *state = machine.driver_data<targeth_state>(); | |
| 38 | int data = state->m_videoram[tile_index << 1]; | |
| 39 | int data2 = state->m_videoram[(tile_index << 1) + 1]; | |
| 37 | int data = m_videoram[tile_index << 1]; | |
| 38 | int data2 = m_videoram[(tile_index << 1) + 1]; | |
| 40 | 39 | int code = data & 0x3fff; |
| 41 | 40 | |
| 42 | SET_TILE_INFO(0, code, data2 & 0x1f, TILE_FLIPXY((data2 >> 5) & 0x03)); | |
| 41 | SET_TILE_INFO_MEMBER(0, code, data2 & 0x1f, TILE_FLIPXY((data2 >> 5) & 0x03)); | |
| 43 | 42 | } |
| 44 | 43 | |
| 45 | ||
| 44 | ||
| 46 | 45 | { |
| 47 | targeth_state *state = machine.driver_data<targeth_state>(); | |
| 48 | int data = state->m_videoram[(0x2000/2) + (tile_index << 1)]; | |
| 49 | int data2 = state->m_videoram[(0x2000/2) + (tile_index << 1) + 1]; | |
| 46 | int data = m_videoram[(0x2000/2) + (tile_index << 1)]; | |
| 47 | int data2 = m_videoram[(0x2000/2) + (tile_index << 1) + 1]; | |
| 50 | 48 | int code = data & 0x3fff; |
| 51 | 49 | |
| 52 | SET_TILE_INFO(0, code, data2 & 0x1f, TILE_FLIPXY((data2 >> 5) & 0x03)); | |
| 50 | SET_TILE_INFO_MEMBER(0, code, data2 & 0x1f, TILE_FLIPXY((data2 >> 5) & 0x03)); | |
| 53 | 51 | } |
| 54 | 52 | |
| 55 | 53 | /*************************************************************************** |
| r17673 | r17674 | |
| 74 | 72 | VIDEO_START( targeth ) |
| 75 | 73 | { |
| 76 | 74 | targeth_state *state = machine.driver_data<targeth_state>(); |
| 77 | state->m_pant[0] = tilemap_create(machine, get_tile_info_targeth_screen0,TILEMAP_SCAN_ROWS,16,16,64,32); | |
| 78 | state->m_pant[1] = tilemap_create(machine, get_tile_info_targeth_screen1,TILEMAP_SCAN_ROWS,16,16,64,32); | |
| 75 | state->m_pant[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(targeth_state::get_tile_info_targeth_screen0),state),TILEMAP_SCAN_ROWS,16,16,64,32); | |
| 76 | state->m_pant[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(targeth_state::get_tile_info_targeth_screen1),state),TILEMAP_SCAN_ROWS,16,16,64,32); | |
| 79 | 77 | |
| 80 | 78 | state->m_pant[0]->set_transparent_pen(0); |
| 81 | 79 | } |
| r17673 | r17674 | |
|---|---|---|
| 3 | 3 | #include "emu.h" |
| 4 | 4 | #include "includes/sbugger.h" |
| 5 | 5 | |
| 6 | ||
| 6 | ||
| 7 | 7 | { |
| 8 | sbugger_state *state = machine.driver_data<sbugger_state>(); | |
| 9 | 8 | int tileno, color; |
| 10 | 9 | |
| 11 | tileno = state->m_videoram[tile_index]; | |
| 12 | color = state->m_videoram_attr[tile_index]; | |
| 10 | tileno = m_videoram[tile_index]; | |
| 11 | color = m_videoram_attr[tile_index]; | |
| 13 | 12 | |
| 14 | SET_TILE_INFO(0,tileno,color,0); | |
| 13 | SET_TILE_INFO_MEMBER(0,tileno,color,0); | |
| 15 | 14 | } |
| 16 | 15 | |
| 17 | 16 | WRITE8_MEMBER(sbugger_state::sbugger_videoram_w) |
| r17673 | r17674 | |
| 31 | 30 | VIDEO_START(sbugger) |
| 32 | 31 | { |
| 33 | 32 | sbugger_state *state = machine.driver_data<sbugger_state>(); |
| 34 | state->m_tilemap = tilemap | |
| 33 | state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sbugger_state::get_sbugger_tile_info),state), TILEMAP_SCAN_ROWS, 8, 16, 64, 16); | |
| 35 | 34 | } |
| 36 | 35 | |
| 37 | 36 | SCREEN_UPDATE_IND16(sbugger) |
| r17673 | r17674 | |
|---|---|---|
| 37 | 37 | return m_spriteram[offset]; |
| 38 | 38 | } |
| 39 | 39 | |
| 40 | ||
| 40 | ||
| 41 | 41 | { |
| 42 | nycaptor_state *state = machine.driver_data<nycaptor_state>(); | |
| 43 | int pal = state->m_videoram[tile_index * 2 + 1] & 0x0f; | |
| 44 | tileinfo.category = (state->m_videoram[tile_index * 2 + 1] & 0x30) >> 4; | |
| 42 | int pal = m_videoram[tile_index * 2 + 1] & 0x0f; | |
| 43 | tileinfo.category = (m_videoram[tile_index * 2 + 1] & 0x30) >> 4; | |
| 45 | 44 | |
| 46 | 45 | tileinfo.group = 0; |
| 47 | 46 | |
| 48 | if ((!nycaptor_spot(machine)) && (pal == 6)) | |
| 47 | if ((!nycaptor_spot(machine())) && (pal == 6)) | |
| 49 | 48 | tileinfo.group = 1; |
| 50 | 49 | |
| 51 | if (((nycaptor_spot(machine) == 3) && (pal == 8)) || ((nycaptor_spot(machine) == 1) && (pal == 0xc))) | |
| 50 | if (((nycaptor_spot(machine()) == 3) && (pal == 8)) || ((nycaptor_spot(machine()) == 1) && (pal == 0xc))) | |
| 52 | 51 | tileinfo.group = 2; |
| 53 | 52 | |
| 54 | if ((nycaptor_spot(machine) == 1) && (tileinfo.category == 2)) | |
| 53 | if ((nycaptor_spot(machine()) == 1) && (tileinfo.category == 2)) | |
| 55 | 54 | tileinfo.group = 3; |
| 56 | 55 | |
| 57 | 56 | #if NYCAPTOR_DEBUG |
| 58 | if ( | |
| 57 | if ( | |
| 59 | 58 | { |
| 60 | if (nycaptor_spot(machine)) | |
| 59 | if (nycaptor_spot(machine())) | |
| 61 | 60 | pal = 0xe; |
| 62 | 61 | else |
| 63 | 62 | pal = 4; |
| 64 | 63 | } |
| 65 | 64 | #endif |
| 66 | 65 | |
| 67 | SET_TILE_INFO( | |
| 66 | SET_TILE_INFO_MEMBER( | |
| 68 | 67 | 0, |
| 69 | | |
| 68 | | |
| 70 | 69 | pal, 0 |
| 71 | 70 | ); |
| 72 | 71 | } |
| r17673 | r17674 | |
| 77 | 76 | nycaptor_state *state = machine.driver_data<nycaptor_state>(); |
| 78 | 77 | |
| 79 | 78 | state->m_spriteram = auto_alloc_array(machine, UINT8, 160); |
| 80 | state->m_bg_tilemap = tilemap | |
| 79 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nycaptor_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32 ); | |
| 81 | 80 | |
| 82 | 81 | state->m_bg_tilemap->set_transmask(0, 0xf800, 0x7ff); //split 0 |
| 83 | 82 | state->m_bg_tilemap->set_transmask(1, 0xfe00, 0x01ff);//split 1 |
| r17673 | r17674 | |
|---|---|---|
| 14 | 14 | |
| 15 | 15 | ***************************************************************************/ |
| 16 | 16 | |
| 17 | ||
| 17 | ||
| 18 | 18 | { |
| 19 | mitchell_state *state = machine.driver_data<mitchell_state>(); | |
| 20 | UINT8 attr = state->m_colorram[tile_index]; | |
| 21 | int code = state->m_videoram[2 * tile_index] + (state->m_videoram[2 * tile_index + 1] << 8); | |
| 22 | SET_TILE_INFO( | |
| 19 | UINT8 attr = m_colorram[tile_index]; | |
| 20 | int code = m_videoram[2 * tile_index] + (m_videoram[2 * tile_index + 1] << 8); | |
| 21 | SET_TILE_INFO_MEMBER( | |
| 23 | 22 | 0, |
| 24 | 23 | code, |
| 25 | 24 | attr & 0x7f, |
| r17673 | r17674 | |
| 38 | 37 | { |
| 39 | 38 | mitchell_state *state = machine.driver_data<mitchell_state>(); |
| 40 | 39 | |
| 41 | state->m_bg_tilemap = tilemap | |
| 40 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mitchell_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 42 | 41 | state->m_bg_tilemap->set_transparent_pen(15); |
| 43 | 42 | |
| 44 | 43 | /* OBJ RAM */ |
| r17673 | r17674 | |
|---|---|---|
| 12 | 12 | |
| 13 | 13 | ***************************************************************************/ |
| 14 | 14 | |
| 15 | ||
| 15 | ||
| 16 | 16 | { |
| 17 | 17 | /* logical (col,row) -> memory offset */ |
| 18 | 18 | return (col & 0x0f) + ((row & 0x0f) << 4) + ((col & 0x70) << 4) + ((row & 0x30) << 7); |
| 19 | 19 | } |
| 20 | 20 | |
| 21 | ||
| 21 | ||
| 22 | 22 | { |
| 23 | 23 | /* logical (col,row) -> memory offset */ |
| 24 | 24 | return (col & 0x0f) + ((row & 0x0f) << 4) + ((col & 0x30) << 4) + ((row & 0x70) << 6); |
| 25 | 25 | } |
| 26 | 26 | |
| 27 | ||
| 27 | ||
| 28 | 28 | { |
| 29 | blktiger_state *state = machine.driver_data<blktiger_state>(); | |
| 30 | 29 | /* the tile priority table is a guess compiled by looking at the game. It |
| 31 | 30 | was not derived from a PROM so it could be wrong. */ |
| 32 | 31 | static const UINT8 split_table[16] = |
| r17673 | r17674 | |
| 36 | 35 | 0,0,0,0, |
| 37 | 36 | 0,0,0,0 |
| 38 | 37 | }; |
| 39 | UINT8 attr = | |
| 38 | UINT8 attr = | |
| 40 | 39 | int color = (attr & 0x78) >> 3; |
| 41 | SET_TILE_INFO( | |
| 40 | SET_TILE_INFO_MEMBER( | |
| 42 | 41 | 1, |
| 43 | | |
| 42 | | |
| 44 | 43 | color, |
| 45 | 44 | (attr & 0x80) ? TILE_FLIPX : 0); |
| 46 | 45 | tileinfo.group = split_table[color]; |
| 47 | 46 | } |
| 48 | 47 | |
| 49 | ||
| 48 | ||
| 50 | 49 | { |
| 51 | blktiger_state *state = machine.driver_data<blktiger_state>(); | |
| 52 | UINT8 attr = state->m_txvideoram[tile_index + 0x400]; | |
| 53 | SET_TILE_INFO( | |
| 50 | UINT8 attr = m_txvideoram[tile_index + 0x400]; | |
| 51 | SET_TILE_INFO_MEMBER( | |
| 54 | 52 | 0, |
| 55 | | |
| 53 | | |
| 56 | 54 | attr & 0x1f, |
| 57 | 55 | 0); |
| 58 | 56 | } |
| r17673 | r17674 | |
| 75 | 73 | |
| 76 | 74 | state->m_scroll_ram = auto_alloc_array(machine, UINT8, BGRAM_BANK_SIZE * BGRAM_BANKS); |
| 77 | 75 | |
| 78 | state->m_tx_tilemap = tilemap_create(machine, get_tx_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 79 | state->m_bg_tilemap8x4 = tilemap_create(machine, get_bg_tile_info, bg8x4_scan, 16, 16, 128, 64); | |
| 80 | state->m_bg_tilemap4x8 = tilemap_create(machine, get_bg_tile_info, bg4x8_scan, 16, 16, 64, 128); | |
| 76 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blktiger_state::get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 77 | state->m_bg_tilemap8x4 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blktiger_state::get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(blktiger_state::bg8x4_scan),state), 16, 16, 128, 64); | |
| 78 | state->m_bg_tilemap4x8 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blktiger_state::get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(blktiger_state::bg4x8_scan),state), 16, 16, 64, 128); | |
| 81 | 79 | |
| 82 | 80 | state->m_tx_tilemap->set_transparent_pen(3); |
| 83 | 81 |
| r17673 | r17674 | |
|---|---|---|
| 33 | 33 | m_tx_layer->mark_tile_dirty(offset); |
| 34 | 34 | } |
| 35 | 35 | |
| 36 | ||
| 36 | ||
| 37 | 37 | { |
| 38 | dynduke_state *state = machine.driver_data<dynduke_state>(); | |
| 39 | int tile=state->m_back_data[tile_index]; | |
| 38 | int tile=m_back_data[tile_index]; | |
| 40 | 39 | int color=tile >> 12; |
| 41 | 40 | |
| 42 | 41 | tile=tile&0xfff; |
| 43 | 42 | |
| 44 | SET_TILE_INFO( | |
| 43 | SET_TILE_INFO_MEMBER( | |
| 45 | 44 | 1, |
| 46 | tile+ | |
| 45 | tile+ | |
| 47 | 46 | color, |
| 48 | 47 | 0); |
| 49 | 48 | } |
| 50 | 49 | |
| 51 | ||
| 50 | ||
| 52 | 51 | { |
| 53 | dynduke_state *state = machine.driver_data<dynduke_state>(); | |
| 54 | int tile=state->m_fore_data[tile_index]; | |
| 52 | int tile=m_fore_data[tile_index]; | |
| 55 | 53 | int color=tile >> 12; |
| 56 | 54 | |
| 57 | 55 | tile=tile&0xfff; |
| 58 | 56 | |
| 59 | SET_TILE_INFO( | |
| 57 | SET_TILE_INFO_MEMBER( | |
| 60 | 58 | 2, |
| 61 | tile+ | |
| 59 | tile+ | |
| 62 | 60 | color, |
| 63 | 61 | 0); |
| 64 | 62 | } |
| 65 | 63 | |
| 66 | ||
| 64 | ||
| 67 | 65 | { |
| 68 | dynduke_state *state = machine.driver_data<dynduke_state>(); | |
| 69 | UINT16 *videoram = state->m_videoram; | |
| 66 | UINT16 *videoram = m_videoram; | |
| 70 | 67 | int tile=videoram[tile_index]; |
| 71 | 68 | int color=(tile >> 8) & 0x0f; |
| 72 | 69 | |
| 73 | 70 | tile = (tile & 0xff) | ((tile & 0xc000) >> 6); |
| 74 | 71 | |
| 75 | SET_TILE_INFO( | |
| 72 | SET_TILE_INFO_MEMBER( | |
| 76 | 73 | 0, |
| 77 | 74 | tile, |
| 78 | 75 | color, |
| r17673 | r17674 | |
| 82 | 79 | VIDEO_START( dynduke ) |
| 83 | 80 | { |
| 84 | 81 | dynduke_state *state = machine.driver_data<dynduke_state>(); |
| 85 | state->m_bg_layer = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_COLS, 16,16,32,32); | |
| 86 | state->m_fg_layer = tilemap_create(machine, get_fg_tile_info,TILEMAP_SCAN_COLS,16,16,32,32); | |
| 87 | state->m_tx_layer = tilemap_create(machine, get_tx_tile_info,TILEMAP_SCAN_ROWS, 8, 8,32,32); | |
| 82 | state->m_bg_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dynduke_state::get_bg_tile_info),state),TILEMAP_SCAN_COLS, 16,16,32,32); | |
| 83 | state->m_fg_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dynduke_state::get_fg_tile_info),state),TILEMAP_SCAN_COLS,16,16,32,32); | |
| 84 | state->m_tx_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dynduke_state::get_tx_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,32,32); | |
| 88 | 85 | |
| 89 | 86 | state->m_fg_layer->set_transparent_pen(15); |
| 90 | 87 | state->m_tx_layer->set_transparent_pen(15); |
| r17673 | r17674 | |
|---|---|---|
| 55 | 55 | m_fg_tilemap->mark_tile_dirty(offset); |
| 56 | 56 | } |
| 57 | 57 | |
| 58 | ||
| 58 | ||
| 59 | 59 | { |
| 60 | tunhunt_state *state = machine.driver_data<tunhunt_state>(); | |
| 61 | int attr = state->m_videoram[tile_index]; | |
| 60 | int attr = m_videoram[tile_index]; | |
| 62 | 61 | int code = attr & 0x3f; |
| 63 | 62 | int color = attr >> 6; |
| 64 | 63 | int flags = color ? TILE_FORCE_LAYER0 : 0; |
| 65 | 64 | |
| 66 | SET_TILE_INFO(0, code, color, flags); | |
| 65 | SET_TILE_INFO_MEMBER(0, code, color, flags); | |
| 67 | 66 | } |
| 68 | 67 | |
| 69 | 68 | VIDEO_START( tunhunt ) |
| r17673 | r17674 | |
| 77 | 76 | |
| 78 | 77 | state->m_tmpbitmap.allocate(256, 64, machine.primary_screen->format()); |
| 79 | 78 | |
| 80 | state->m_fg_tilemap = tilemap | |
| 79 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tunhunt_state::get_fg_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); | |
| 81 | 80 | |
| 82 | 81 | state->m_fg_tilemap->set_transparent_pen(0); |
| 83 | 82 | state->m_fg_tilemap->set_scrollx(0, 64); |
| r17673 | r17674 | |
|---|---|---|
| 38 | 38 | } |
| 39 | 39 | } |
| 40 | 40 | |
| 41 | ||
| 41 | ||
| 42 | 42 | { |
| 43 | tryout_state *state = machine.driver_data<tryout_state>(); | |
| 44 | UINT8 *videoram = state->m_videoram; | |
| 43 | UINT8 *videoram = m_videoram; | |
| 45 | 44 | int code, attr, color; |
| 46 | 45 | |
| 47 | 46 | code = videoram[tile_index]; |
| r17673 | r17674 | |
| 49 | 48 | code |= ((attr & 0x03) << 8); |
| 50 | 49 | color = ((attr & 0x4)>>2)+6; |
| 51 | 50 | |
| 52 | SET_TILE_INFO(0, code, color, 0); | |
| 51 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 53 | 52 | } |
| 54 | 53 | |
| 55 | ||
| 54 | ||
| 56 | 55 | { |
| 57 | tryout_state *state = machine.driver_data<tryout_state>(); | |
| 58 | SET_TILE_INFO(2, state->m_vram[tile_index] & 0x7f, 2, 0); | |
| 56 | SET_TILE_INFO_MEMBER(2, m_vram[tile_index] & 0x7f, 2, 0); | |
| 59 | 57 | } |
| 60 | 58 | |
| 61 | 59 | READ8_MEMBER(tryout_state::tryout_vram_r) |
| r17673 | r17674 | |
| 148 | 146 | flip_screen_set(data & 1); |
| 149 | 147 | } |
| 150 | 148 | |
| 151 | ||
| 149 | ||
| 152 | 150 | { |
| 153 | 151 | return (row ^ 0x1f) + (col << 5); |
| 154 | 152 | } |
| 155 | 153 | |
| 156 | ||
| 154 | ||
| 157 | 155 | { |
| 158 | 156 | int a; |
| 159 | 157 | // if (col&0x20) |
| r17673 | r17674 | |
| 168 | 166 | VIDEO_START( tryout ) |
| 169 | 167 | { |
| 170 | 168 | tryout_state *state = machine.driver_data<tryout_state>(); |
| 171 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info,get_fg_memory_offset,8,8,32,32); | |
| 172 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,get_bg_memory_offset,16,16,64,16); | |
| 169 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tryout_state::get_fg_tile_info),state),tilemap_mapper_delegate(FUNC(tryout_state::get_fg_memory_offset),state),8,8,32,32); | |
| 170 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tryout_state::get_bg_tile_info),state),tilemap_mapper_delegate(FUNC(tryout_state::get_bg_memory_offset),state),16,16,64,16); | |
| 173 | 171 | |
| 174 | 172 | state->m_vram=auto_alloc_array(machine, UINT8, 8 * 0x800); |
| 175 | 173 | state->m_vram_gfx=auto_alloc_array(machine, UINT8, 0x6000); |
| r17673 | r17674 | |
|---|---|---|
| 14 | 14 | #include "includes/rungun.h" |
| 15 | 15 | |
| 16 | 16 | /* TTL text plane stuff */ |
| 17 | ||
| 17 | ||
| 18 | 18 | { |
| 19 | rungun_state *state = machine.driver_data<rungun_state>(); | |
| 20 | UINT8 *lvram = (UINT8 *)state->m_ttl_vram; | |
| 19 | UINT8 *lvram = (UINT8 *)m_ttl_vram; | |
| 21 | 20 | int attr, code; |
| 22 | 21 | |
| 23 | 22 | attr = (lvram[BYTE_XOR_LE(tile_index<<2)] & 0xf0) >> 4; |
| 24 | 23 | code = ((lvram[BYTE_XOR_LE(tile_index<<2)] & 0x0f) << 8) | (lvram[BYTE_XOR_LE((tile_index<<2)+2)]); |
| 25 | 24 | |
| 26 | SET_TILE_INFO( | |
| 25 | SET_TILE_INFO_MEMBER( | |
| 27 | 26 | } |
| 28 | 27 | |
| 29 | 28 | void rng_sprite_callback( running_machine &machine, int *code, int *color, int *priority_mask ) |
| r17673 | r17674 | |
| 49 | 48 | m_936_tilemap->mark_tile_dirty(offset / 2); |
| 50 | 49 | } |
| 51 | 50 | |
| 52 | ||
| 51 | ||
| 53 | 52 | { |
| 54 | rungun_state *state = machine.driver_data<rungun_state>(); | |
| 55 | 53 | int tileno, colour, flipx; |
| 56 | 54 | |
| 57 | tileno = state->m_936_videoram[tile_index * 2 + 1] & 0x3fff; | |
| 58 | flipx = (state->m_936_videoram[tile_index * 2 + 1] & 0xc000) >> 14; | |
| 59 | colour = 0x10 + (state->m_936_videoram[tile_index * 2] & 0x000f); | |
| 55 | tileno = m_936_videoram[tile_index * 2 + 1] & 0x3fff; | |
| 56 | flipx = (m_936_videoram[tile_index * 2 + 1] & 0xc000) >> 14; | |
| 57 | colour = 0x10 + (m_936_videoram[tile_index * 2] & 0x000f); | |
| 60 | 58 | |
| 61 | SET_TILE_INFO(0, tileno, colour, TILE_FLIPYX(flipx)); | |
| 59 | SET_TILE_INFO_MEMBER(0, tileno, colour, TILE_FLIPYX(flipx)); | |
| 62 | 60 | } |
| 63 | 61 | |
| 64 | 62 | |
| r17673 | r17674 | |
| 78 | 76 | rungun_state *state = machine.driver_data<rungun_state>(); |
| 79 | 77 | int gfx_index; |
| 80 | 78 | |
| 81 | state->m_936_tilemap = tilemap | |
| 79 | state->m_936_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rungun_state::get_rng_936_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 128, 128); | |
| 82 | 80 | state->m_936_tilemap->set_transparent_pen(0); |
| 83 | 81 | |
| 84 | 82 | /* find first empty slot to decode gfx */ |
| r17673 | r17674 | |
| 93 | 91 | state->m_ttl_gfx_index = gfx_index; |
| 94 | 92 | |
| 95 | 93 | // create the tilemap |
| 96 | state->m_ttl_tilemap = tilemap | |
| 94 | state->m_ttl_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rungun_state::ttl_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 97 | 95 | |
| 98 | 96 | state->m_ttl_tilemap->set_transparent_pen(0); |
| 99 | 97 |
| r17673 | r17674 | |
|---|---|---|
| 51 | 51 | * |
| 52 | 52 | *************************************/ |
| 53 | 53 | |
| 54 | ||
| 54 | ||
| 55 | 55 | { |
| 56 | eprom_state *state = machine.driver_data<eprom_state>(); | |
| 57 | UINT16 data = state->m_alpha[tile_index]; | |
| 56 | UINT16 data = m_alpha[tile_index]; | |
| 58 | 57 | int code = data & 0x3ff; |
| 59 | 58 | int color = ((data >> 10) & 0x0f) | ((data >> 9) & 0x20); |
| 60 | 59 | int opaque = data & 0x8000; |
| 61 | SET_TILE_INFO(1, code, color, opaque ? TILE_FORCE_LAYER0 : 0); | |
| 60 | SET_TILE_INFO_MEMBER(1, code, color, opaque ? TILE_FORCE_LAYER0 : 0); | |
| 62 | 61 | } |
| 63 | 62 | |
| 64 | 63 | |
| 65 | ||
| 64 | ||
| 66 | 65 | { |
| 67 | eprom_state *state = machine.driver_data<eprom_state>(); | |
| 68 | UINT16 data1 = state->m_playfield[tile_index]; | |
| 69 | UINT16 data2 = state->m_playfield_upper[tile_index] >> 8; | |
| 66 | UINT16 data1 = m_playfield[tile_index]; | |
| 67 | UINT16 data2 = m_playfield_upper[tile_index] >> 8; | |
| 70 | 68 | int code = data1 & 0x7fff; |
| 71 | 69 | int color = 0x10 + (data2 & 0x0f); |
| 72 | SET_TILE_INFO(0, code, color, (data1 >> 15) & 1); | |
| 70 | SET_TILE_INFO_MEMBER(0, code, color, (data1 >> 15) & 1); | |
| 73 | 71 | } |
| 74 | 72 | |
| 75 | 73 | |
| 76 | ||
| 74 | ||
| 77 | 75 | { |
| 78 | eprom_state *state = machine.driver_data<eprom_state>(); | |
| 79 | UINT16 data1 = state->m_playfield[tile_index]; | |
| 80 | UINT16 data2 = state->m_playfield_upper[tile_index] >> 8; | |
| 76 | UINT16 data1 = m_playfield[tile_index]; | |
| 77 | UINT16 data2 = m_playfield_upper[tile_index] >> 8; | |
| 81 | 78 | int code = data1 & 0x7fff; |
| 82 | 79 | int color = 0x10 + (data2 & 0x0f); |
| 83 | SET_TILE_INFO(2, code, color, (data1 >> 15) & 1); | |
| 80 | SET_TILE_INFO_MEMBER(2, code, color, (data1 >> 15) & 1); | |
| 84 | 81 | } |
| 85 | 82 | |
| 86 | 83 | |
| r17673 | r17674 | |
| 132 | 129 | eprom_state *state = machine.driver_data<eprom_state>(); |
| 133 | 130 | |
| 134 | 131 | /* initialize the playfield */ |
| 135 | state->m_playfield_tilemap = tilemap | |
| 132 | state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(eprom_state::get_playfield_tile_info),state), TILEMAP_SCAN_COLS, 8,8, 64,64); | |
| 136 | 133 | |
| 137 | 134 | /* initialize the motion objects */ |
| 138 | 135 | atarimo_init(machine, 0, &modesc); |
| 139 | 136 | |
| 140 | 137 | /* initialize the alphanumerics */ |
| 141 | state->m_alpha_tilemap = tilemap | |
| 138 | state->m_alpha_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(eprom_state::get_alpha_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,32); | |
| 142 | 139 | state->m_alpha_tilemap->set_transparent_pen(0); |
| 143 | 140 | |
| 144 | 141 | /* save states */ |
| r17673 | r17674 | |
| 188 | 185 | eprom_state *state = machine.driver_data<eprom_state>(); |
| 189 | 186 | |
| 190 | 187 | /* initialize the playfield */ |
| 191 | state->m_playfield_tilemap = tilemap | |
| 188 | state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(eprom_state::guts_get_playfield_tile_info),state), TILEMAP_SCAN_COLS, 8,8, 64,64); | |
| 192 | 189 | |
| 193 | 190 | /* initialize the motion objects */ |
| 194 | 191 | atarimo_init(machine, 0, &modesc); |
| 195 | 192 | |
| 196 | 193 | /* initialize the alphanumerics */ |
| 197 | state->m_alpha_tilemap = tilemap | |
| 194 | state->m_alpha_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(eprom_state::get_alpha_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,32); | |
| 198 | 195 | state->m_alpha_tilemap->set_transparent_pen(0); |
| 199 | 196 | |
| 200 | 197 | /* save states */ |
| r17673 | r17674 | |
|---|---|---|
| 7 | 7 | |
| 8 | 8 | ***************************************************************************/ |
| 9 | 9 | |
| 10 | ||
| 10 | ||
| 11 | 11 | { |
| 12 | aerofgt_state *state = machine.driver_data<aerofgt_state>(); | |
| 13 | UINT16 code = state->m_bg1videoram[tile_index]; | |
| 12 | UINT16 code = m_bg1videoram[tile_index]; | |
| 14 | 13 | int bank = (code & 0x1000) >> 12; |
| 15 | SET_TILE_INFO( | |
| 14 | SET_TILE_INFO_MEMBER( | |
| 16 | 15 | 0, |
| 17 | (code & 0x0fff) + (state->m_gfxbank[bank] << 12), | |
| 18 | ((code & 0xe000) >> 13) + 8 * state->m_charpalettebank, | |
| 16 | (code & 0x0fff) + (m_gfxbank[bank] << 12), | |
| 17 | ((code & 0xe000) >> 13) + 8 * m_charpalettebank, | |
| 19 | 18 | 0); |
| 20 | 19 | } |
| 21 | 20 | |
| 22 | ||
| 21 | ||
| 23 | 22 | { |
| 24 | aerofgt_state *state = machine.driver_data<aerofgt_state>(); | |
| 25 | UINT16 code = state->m_bg1videoram[tile_index]; | |
| 26 | SET_TILE_INFO( | |
| 23 | UINT16 code = m_bg1videoram[tile_index]; | |
| 24 | SET_TILE_INFO_MEMBER( | |
| 27 | 25 | 0, |
| 28 | (code & 0x1fff) + ( | |
| 26 | (code & 0x1fff) + ( | |
| 29 | 27 | (code & 0xe000) >> 13, |
| 30 | 28 | 0); |
| 31 | 29 | } |
| 32 | 30 | |
| 33 | 31 | /* also spinlbrk */ |
| 34 | ||
| 32 | ||
| 35 | 33 | { |
| 36 | aerofgt_state *state = machine.driver_data<aerofgt_state>(); | |
| 37 | UINT16 code = state->m_bg2videoram[tile_index]; | |
| 38 | SET_TILE_INFO( | |
| 34 | UINT16 code = m_bg2videoram[tile_index]; | |
| 35 | SET_TILE_INFO_MEMBER( | |
| 39 | 36 | 1, |
| 40 | (code & 0x1fff) + ( | |
| 37 | (code & 0x1fff) + ( | |
| 41 | 38 | (code & 0xe000) >> 13, |
| 42 | 39 | 0); |
| 43 | 40 | } |
| 44 | 41 | |
| 45 | ||
| 42 | ||
| 46 | 43 | { |
| 47 | aerofgt_state *state = machine.driver_data<aerofgt_state>(); | |
| 48 | UINT16 code = state->m_bg1videoram[tile_index]; | |
| 49 | SET_TILE_INFO( | |
| 44 | UINT16 code = m_bg1videoram[tile_index]; | |
| 45 | SET_TILE_INFO_MEMBER( | |
| 50 | 46 | 0, |
| 51 | (code & 0x0fff) + ( | |
| 47 | (code & 0x0fff) + ( | |
| 52 | 48 | (code & 0xf000) >> 12, |
| 53 | 49 | 0); |
| 54 | 50 | } |
| 55 | 51 | |
| 56 | ||
| 52 | ||
| 57 | 53 | { |
| 58 | aerofgt_state *state = machine.driver_data<aerofgt_state>(); | |
| 59 | UINT16 code = state->m_bg1videoram[tile_index]; | |
| 54 | UINT16 code = m_bg1videoram[tile_index]; | |
| 60 | 55 | int bank = (code & 0x1800) >> 11; |
| 61 | SET_TILE_INFO( | |
| 56 | SET_TILE_INFO_MEMBER( | |
| 62 | 57 | 0, |
| 63 | (code & 0x07ff) + ( | |
| 58 | (code & 0x07ff) + ( | |
| 64 | 59 | (code & 0xe000) >> 13, |
| 65 | 60 | 0); |
| 66 | 61 | } |
| 67 | 62 | |
| 68 | ||
| 63 | ||
| 69 | 64 | { |
| 70 | aerofgt_state *state = machine.driver_data<aerofgt_state>(); | |
| 71 | UINT16 code = state->m_bg2videoram[tile_index]; | |
| 65 | UINT16 code = m_bg2videoram[tile_index]; | |
| 72 | 66 | int bank = 4 + ((code & 0x1800) >> 11); |
| 73 | SET_TILE_INFO( | |
| 67 | SET_TILE_INFO_MEMBER( | |
| 74 | 68 | 1, |
| 75 | (code & 0x07ff) + ( | |
| 69 | (code & 0x07ff) + ( | |
| 76 | 70 | (code & 0xe000) >> 13, |
| 77 | 71 | 0); |
| 78 | 72 | } |
| r17673 | r17674 | |
| 100 | 94 | VIDEO_START( pspikes ) |
| 101 | 95 | { |
| 102 | 96 | aerofgt_state *state = machine.driver_data<aerofgt_state>(); |
| 103 | state->m_bg1_tilemap = tilemap | |
| 97 | state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(aerofgt_state::get_pspikes_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32); | |
| 104 | 98 | /* no bg2 in this game */ |
| 105 | 99 | |
| 106 | 100 | state->m_sprite_gfx = 1; |
| r17673 | r17674 | |
| 113 | 107 | VIDEO_START( karatblz ) |
| 114 | 108 | { |
| 115 | 109 | aerofgt_state *state = machine.driver_data<aerofgt_state>(); |
| 116 | state->m_bg1_tilemap = tilemap_create(machine, karatblz_bg1_tile_info,TILEMAP_SCAN_ROWS, 8,8,64,64); | |
| 117 | state->m_bg2_tilemap = tilemap_create(machine, karatblz_bg2_tile_info,TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 110 | state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(aerofgt_state::karatblz_bg1_tile_info),state),TILEMAP_SCAN_ROWS, 8,8,64,64); | |
| 111 | state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(aerofgt_state::karatblz_bg2_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 118 | 112 | |
| 119 | 113 | state->m_bg2_tilemap->set_transparent_pen(15); |
| 120 | 114 | state->m_spritepalettebank = 0; |
| r17673 | r17674 | |
| 128 | 122 | aerofgt_state *state = machine.driver_data<aerofgt_state>(); |
| 129 | 123 | int i; |
| 130 | 124 | |
| 131 | state->m_bg1_tilemap = tilemap_create(machine, spinlbrk_bg1_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 132 | state->m_bg2_tilemap = tilemap_create(machine, karatblz_bg2_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 125 | state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(aerofgt_state::spinlbrk_bg1_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 126 | state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(aerofgt_state::karatblz_bg2_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 133 | 127 | |
| 134 | 128 | state->m_bg2_tilemap->set_transparent_pen(15); |
| 135 | 129 | |
| r17673 | r17674 | |
| 155 | 149 | VIDEO_START( turbofrc ) |
| 156 | 150 | { |
| 157 | 151 | aerofgt_state *state = machine.driver_data<aerofgt_state>(); |
| 158 | state->m_bg1_tilemap = tilemap_create(machine, get_bg1_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 159 | state->m_bg2_tilemap = tilemap_create(machine, get_bg2_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 152 | state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(aerofgt_state::get_bg1_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 153 | state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(aerofgt_state::get_bg2_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 160 | 154 | |
| 161 | 155 | state->m_bg2_tilemap->set_transparent_pen(15); |
| 162 | 156 | |
| r17673 | r17674 | |
| 169 | 163 | VIDEO_START( wbbc97 ) |
| 170 | 164 | { |
| 171 | 165 | aerofgt_state *state = machine.driver_data<aerofgt_state>(); |
| 172 | state->m_bg1_tilemap = tilemap | |
| 166 | state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(aerofgt_state::get_pspikes_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 173 | 167 | /* no bg2 in this game */ |
| 174 | 168 | |
| 175 | 169 | state->m_bg1_tilemap->set_transparent_pen(15); |
| r17673 | r17674 | |
|---|---|---|
| 104 | 104 | } |
| 105 | 105 | } |
| 106 | 106 | |
| 107 | ||
| 107 | ||
| 108 | 108 | { |
| 109 | rocnrope_state *state = machine.driver_data<rocnrope_state>(); | |
| 110 | int attr = state->m_colorram[tile_index]; | |
| 111 | int code = state->m_videoram[tile_index] + 2 * (attr & 0x80); | |
| 109 | int attr = m_colorram[tile_index]; | |
| 110 | int code = m_videoram[tile_index] + 2 * (attr & 0x80); | |
| 112 | 111 | int color = attr & 0x0f; |
| 113 | 112 | int flags = ((attr & 0x40) ? TILE_FLIPX : 0) | ((attr & 0x20) ? TILE_FLIPY : 0); |
| 114 | 113 | |
| 115 | SET_TILE_INFO(1, code, color, flags); | |
| 114 | SET_TILE_INFO_MEMBER(1, code, color, flags); | |
| 116 | 115 | } |
| 117 | 116 | |
| 118 | 117 | VIDEO_START( rocnrope ) |
| 119 | 118 | { |
| 120 | 119 | rocnrope_state *state = machine.driver_data<rocnrope_state>(); |
| 121 | state->m_bg_tilemap = tilemap | |
| 120 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rocnrope_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 122 | 121 | } |
| 123 | 122 | |
| 124 | 123 | static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ) |
| r17673 | r17674 | |
|---|---|---|
| 101 | 101 | m_do_tilemap->mark_all_dirty(); |
| 102 | 102 | } |
| 103 | 103 | |
| 104 | ||
| 104 | ||
| 105 | 105 | { |
| 106 | docastle_state *state = machine.driver_data<docastle_state>(); | |
| 107 | int code = state->m_videoram[tile_index] + 8 * (state->m_colorram[tile_index] & 0x20); | |
| 108 | int color = state->m_colorram[tile_index] & 0x1f; | |
| 106 | int code = m_videoram[tile_index] + 8 * (m_colorram[tile_index] & 0x20); | |
| 107 | int color = m_colorram[tile_index] & 0x1f; | |
| 109 | 108 | |
| 110 | SET_TILE_INFO(0, code, color, 0); | |
| 109 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 111 | 110 | } |
| 112 | 111 | |
| 113 | 112 | static void video_start_common( running_machine &machine, UINT32 tile_transmask ) |
| 114 | 113 | { |
| 115 | 114 | docastle_state *state = machine.driver_data<docastle_state>(); |
| 116 | state->m_do_tilemap = tilemap | |
| 115 | state->m_do_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(docastle_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 117 | 116 | state->m_do_tilemap->set_transmask(0, tile_transmask, 0x0000); |
| 118 | 117 | } |
| 119 | 118 |
| r17673 | r17674 | |
|---|---|---|
| 34 | 34 | } |
| 35 | 35 | } |
| 36 | 36 | |
| 37 | ||
| 37 | ||
| 38 | 38 | { |
| 39 | 39 | // tilemap is 36x28, the central part is from the first RAM page and the |
| 40 | 40 | // extra 4 columns are from the second page |
| r17673 | r17674 | |
| 45 | 45 | return row + (col << 5); |
| 46 | 46 | } |
| 47 | 47 | |
| 48 | ||
| 48 | ||
| 49 | 49 | { |
| 50 | mainsnk_state *state = machine.driver_data<mainsnk_state>(); | |
| 51 | int code = state->m_fgram[tile_index]; | |
| 50 | int code = m_fgram[tile_index]; | |
| 52 | 51 | |
| 53 | SET_TILE_INFO(0, | |
| 52 | SET_TILE_INFO_MEMBER(0, | |
| 54 | 53 | code, |
| 55 | 54 | 0, |
| 56 | 55 | tile_index & 0x400 ? TILE_FORCE_LAYER0 : 0); |
| 57 | 56 | } |
| 58 | 57 | |
| 59 | ||
| 58 | ||
| 60 | 59 | { |
| 61 | mainsnk_state *state = machine.driver_data<mainsnk_state>(); | |
| 62 | int code = (state->m_bgram[tile_index]); | |
| 60 | int code = (m_bgram[tile_index]); | |
| 63 | 61 | |
| 64 | SET_TILE_INFO( | |
| 62 | SET_TILE_INFO_MEMBER( | |
| 65 | 63 | 0, |
| 66 | | |
| 64 | | |
| 67 | 65 | 0, |
| 68 | 66 | 0); |
| 69 | 67 | } |
| r17673 | r17674 | |
| 73 | 71 | { |
| 74 | 72 | mainsnk_state *state = machine.driver_data<mainsnk_state>(); |
| 75 | 73 | |
| 76 | state->m_tx_tilemap = tilemap_create(machine, get_tx_tile_info, marvins_tx_scan_cols, 8, 8, 36, 28); | |
| 77 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, 8, 8, 32, 32); | |
| 74 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mainsnk_state::get_tx_tile_info),state), tilemap_mapper_delegate(FUNC(mainsnk_state::marvins_tx_scan_cols),state), 8, 8, 36, 28); | |
| 75 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mainsnk_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); | |
| 78 | 76 | |
| 79 | 77 | state->m_tx_tilemap->set_transparent_pen(15); |
| 80 | 78 | state->m_tx_tilemap->set_scrolldy(8, 8); |
| r17673 | r17674 | |
|---|---|---|
| 148 | 148 | * |
| 149 | 149 | *************************************/ |
| 150 | 150 | |
| 151 | ||
| 151 | ||
| 152 | 152 | { |
| 153 | mystston_state *state = machine.driver_data<mystston_state>(); | |
| 154 | 153 | |
| 155 | int page = (*state->m_video_control & 0x04) << 8; | |
| 156 | int code = ((state->m_bg_videoram[page | 0x200 | tile_index] & 0x01) << 8) | state->m_bg_videoram[page | tile_index]; | |
| 154 | int page = (*m_video_control & 0x04) << 8; | |
| 155 | int code = ((m_bg_videoram[page | 0x200 | tile_index] & 0x01) << 8) | m_bg_videoram[page | tile_index]; | |
| 157 | 156 | int flags = (tile_index & 0x10) ? TILE_FLIPY : 0; |
| 158 | 157 | |
| 159 | SET_TILE_INFO(1, code, 0, flags); | |
| 158 | SET_TILE_INFO_MEMBER(1, code, 0, flags); | |
| 160 | 159 | } |
| 161 | 160 | |
| 162 | 161 | |
| 163 | ||
| 162 | ||
| 164 | 163 | { |
| 165 | mystston_state *state = machine.driver_data<mystston_state>(); | |
| 166 | 164 | |
| 167 | int code = ((state->m_fg_videoram[0x400 | tile_index] & 0x07) << 8) | state->m_fg_videoram[tile_index]; | |
| 168 | int color = ((*state->m_video_control & 0x01) << 1) | ((*state->m_video_control & 0x02) >> 1); | |
| 165 | int code = ((m_fg_videoram[0x400 | tile_index] & 0x07) << 8) | m_fg_videoram[tile_index]; | |
| 166 | int color = ((*m_video_control & 0x01) << 1) | ((*m_video_control & 0x02) >> 1); | |
| 169 | 167 | |
| 170 | SET_TILE_INFO(0, code, color, 0); | |
| 168 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 171 | 169 | } |
| 172 | 170 | |
| 173 | 171 | |
| r17673 | r17674 | |
| 221 | 219 | { |
| 222 | 220 | mystston_state *state = machine.driver_data<mystston_state>(); |
| 223 | 221 | |
| 224 | state->m_bg_tilemap = tilemap | |
| 222 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mystston_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS_FLIP_X, 16, 16, 16, 32); | |
| 225 | 223 | |
| 226 | state->m_fg_tilemap = tilemap | |
| 224 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mystston_state::get_fg_tile_info),state), TILEMAP_SCAN_COLS_FLIP_X, 8, 8, 32, 32); | |
| 227 | 225 | state->m_fg_tilemap->set_transparent_pen(0); |
| 228 | 226 | |
| 229 | 227 | /* create the interrupt timer */ |
| r17673 | r17674 | |
|---|---|---|
| 17 | 17 | |
| 18 | 18 | ***************************************************************************/ |
| 19 | 19 | |
| 20 | ||
| 20 | ||
| 21 | 21 | { |
| 22 | senjyo_state *state = machine.driver_data<senjyo_state>(); | |
| 23 | UINT8 attr = state->m_fgcolorram[tile_index]; | |
| 22 | UINT8 attr = m_fgcolorram[tile_index]; | |
| 24 | 23 | int flags = (attr & 0x80) ? TILE_FLIPY : 0; |
| 25 | 24 | |
| 26 | if ( | |
| 25 | if ( | |
| 27 | 26 | flags |= TILE_FORCE_LAYER0; |
| 28 | 27 | |
| 29 | SET_TILE_INFO( | |
| 28 | SET_TILE_INFO_MEMBER( | |
| 30 | 29 | 0, |
| 31 | | |
| 30 | | |
| 32 | 31 | attr & 0x07, |
| 33 | 32 | flags); |
| 34 | 33 | } |
| 35 | 34 | |
| 36 | ||
| 35 | ||
| 37 | 36 | { |
| 38 | senjyo_state *state = machine.driver_data<senjyo_state>(); | |
| 39 | UINT8 code = state->m_bg1videoram[tile_index]; | |
| 37 | UINT8 code = m_bg1videoram[tile_index]; | |
| 40 | 38 | |
| 41 | SET_TILE_INFO( | |
| 39 | SET_TILE_INFO_MEMBER( | |
| 42 | 40 | 1, |
| 43 | 41 | code, |
| 44 | 42 | (code & 0x70) >> 4, |
| 45 | 43 | 0); |
| 46 | 44 | } |
| 47 | 45 | |
| 48 | ||
| 46 | ||
| 49 | 47 | { |
| 50 | 48 | /* Star Force has more tiles in bg1, so to get a uniform color code spread */ |
| 51 | 49 | /* they wired bit 7 of the tile code in place of bit 4 to get the color code */ |
| 52 | 50 | static const UINT8 colormap[8] = { 0, 2, 4, 6, 1, 3, 5, 7 }; |
| 53 | senjyo_state *state = machine.driver_data<senjyo_state>(); | |
| 54 | UINT8 code = state->m_bg1videoram[tile_index]; | |
| 51 | UINT8 code = m_bg1videoram[tile_index]; | |
| 55 | 52 | |
| 56 | SET_TILE_INFO( | |
| 53 | SET_TILE_INFO_MEMBER( | |
| 57 | 54 | 1, |
| 58 | 55 | code, |
| 59 | 56 | colormap[(code & 0xe0) >> 5], |
| 60 | 57 | 0); |
| 61 | 58 | } |
| 62 | 59 | |
| 63 | ||
| 60 | ||
| 64 | 61 | { |
| 65 | senjyo_state *state = machine.driver_data<senjyo_state>(); | |
| 66 | UINT8 code = state->m_bg2videoram[tile_index]; | |
| 62 | UINT8 code = m_bg2videoram[tile_index]; | |
| 67 | 63 | |
| 68 | SET_TILE_INFO( | |
| 64 | SET_TILE_INFO_MEMBER( | |
| 69 | 65 | 2, |
| 70 | 66 | code, |
| 71 | 67 | (code & 0xe0) >> 5, |
| 72 | 68 | 0); |
| 73 | 69 | } |
| 74 | 70 | |
| 75 | ||
| 71 | ||
| 76 | 72 | { |
| 77 | senjyo_state *state = machine.driver_data<senjyo_state>(); | |
| 78 | UINT8 code = state->m_bg3videoram[tile_index]; | |
| 73 | UINT8 code = m_bg3videoram[tile_index]; | |
| 79 | 74 | |
| 80 | SET_TILE_INFO( | |
| 75 | SET_TILE_INFO_MEMBER( | |
| 81 | 76 | 3, |
| 82 | 77 | code, |
| 83 | 78 | (code & 0xe0) >> 5, |
| r17673 | r17674 | |
| 96 | 91 | { |
| 97 | 92 | senjyo_state *state = machine.driver_data<senjyo_state>(); |
| 98 | 93 | |
| 99 | state->m_fg_tilemap = tilemap | |
| 94 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(senjyo_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 100 | 95 | |
| 101 | 96 | if (state->m_is_senjyo) |
| 102 | 97 | { |
| 103 | state->m_bg1_tilemap = tilemap_create(machine, senjyo_bg1_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 16, 32); | |
| 104 | state->m_bg2_tilemap = tilemap_create(machine, get_bg2_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 16, 48); /* only 16x32 used by Star Force */ | |
| 105 | state->m_bg3_tilemap = tilemap_create(machine, get_bg3_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 16, 56); /* only 16x32 used by Star Force */ | |
| 98 | state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(senjyo_state::senjyo_bg1_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 16, 32); | |
| 99 | state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(senjyo_state::get_bg2_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 16, 48); /* only 16x32 used by Star Force */ | |
| 100 | state->m_bg3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(senjyo_state::get_bg3_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 16, 56); /* only 16x32 used by Star Force */ | |
| 106 | 101 | } |
| 107 | 102 | else |
| 108 | 103 | { |
| 109 | state->m_bg1_tilemap = tilemap_create(machine, starforc_bg1_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 16, 32); | |
| 110 | state->m_bg2_tilemap = tilemap_create(machine, get_bg2_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 16, 32); /* only 16x32 used by Star Force */ | |
| 111 | state->m_bg3_tilemap = tilemap_create(machine, get_bg3_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 16, 32); /* only 16x32 used by Star Force */ | |
| 104 | state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(senjyo_state::starforc_bg1_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 16, 32); | |
| 105 | state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(senjyo_state::get_bg2_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 16, 32); /* only 16x32 used by Star Force */ | |
| 106 | state->m_bg3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(senjyo_state::get_bg3_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 16, 32); /* only 16x32 used by Star Force */ | |
| 112 | 107 | } |
| 113 | 108 | |
| 114 | 109 | state->m_fg_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 86 | 86 | coin_counter_w(machine(), 1, data & 0x10); |
| 87 | 87 | } |
| 88 | 88 | |
| 89 | ||
| 89 | ||
| 90 | 90 | { |
| 91 | yiear_state *state = machine.driver_data<yiear_state>(); | |
| 92 | 91 | int offs = tile_index * 2; |
| 93 | int attr = state->m_videoram[offs]; | |
| 94 | int code = state->m_videoram[offs + 1] | ((attr & 0x10) << 4); | |
| 92 | int attr = m_videoram[offs]; | |
| 93 | int code = m_videoram[offs + 1] | ((attr & 0x10) << 4); | |
| 95 | 94 | // int color = (attr & 0xf0) >> 4; |
| 96 | 95 | int flags = ((attr & 0x80) ? TILE_FLIPX : 0) | ((attr & 0x40) ? TILE_FLIPY : 0); |
| 97 | 96 | |
| 98 | SET_TILE_INFO(0, code, 0, flags); | |
| 97 | SET_TILE_INFO_MEMBER(0, code, 0, flags); | |
| 99 | 98 | } |
| 100 | 99 | |
| 101 | 100 | VIDEO_START( yiear ) |
| 102 | 101 | { |
| 103 | 102 | yiear_state *state = machine.driver_data<yiear_state>(); |
| 104 | state->m_bg_tilemap = tilemap | |
| 103 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(yiear_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 105 | 104 | } |
| 106 | 105 | |
| 107 | 106 | static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ) |
| r17673 | r17674 | |
|---|---|---|
| 120 | 120 | flip_screen_set(~data & 0x01); |
| 121 | 121 | } |
| 122 | 122 | |
| 123 | ||
| 123 | ||
| 124 | 124 | { |
| 125 | sonson_state *state = machine.driver_data<sonson_state>(); | |
| 126 | int attr = state->m_colorram[tile_index]; | |
| 127 | int code = state->m_videoram[tile_index] + 256 * (attr & 0x03); | |
| 125 | int attr = m_colorram[tile_index]; | |
| 126 | int code = m_videoram[tile_index] + 256 * (attr & 0x03); | |
| 128 | 127 | int color = attr >> 2; |
| 129 | 128 | |
| 130 | SET_TILE_INFO(0, code, color, 0); | |
| 129 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 131 | 130 | } |
| 132 | 131 | |
| 133 | 132 | VIDEO_START( sonson ) |
| 134 | 133 | { |
| 135 | 134 | sonson_state *state = machine.driver_data<sonson_state>(); |
| 136 | 135 | |
| 137 | state->m_bg_tilemap = tilemap | |
| 136 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sonson_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 138 | 137 | state->m_bg_tilemap->set_scroll_rows(32); |
| 139 | 138 | } |
| 140 | 139 |
| r17673 | r17674 | |
|---|---|---|
| 91 | 91 | |
| 92 | 92 | /* Text Layer */ |
| 93 | 93 | |
| 94 | ||
| 94 | ||
| 95 | 95 | { |
| 96 | sslam_state *state = machine.driver_data<sslam_state>(); | |
| 97 | int code = state->m_tx_tileram[tile_index] & 0x0fff; | |
| 98 | int colr = state->m_tx_tileram[tile_index] & 0xf000; | |
| 96 | int code = m_tx_tileram[tile_index] & 0x0fff; | |
| 97 | int colr = m_tx_tileram[tile_index] & 0xf000; | |
| 99 | 98 | |
| 100 | SET_TILE_INFO(3,code+0xc000 ,colr >> 12,0); | |
| 99 | SET_TILE_INFO_MEMBER(3,code+0xc000 ,colr >> 12,0); | |
| 101 | 100 | } |
| 102 | 101 | |
| 103 | 102 | WRITE16_MEMBER(sslam_state::sslam_tx_tileram_w) |
| r17673 | r17674 | |
| 109 | 108 | |
| 110 | 109 | /* Middle Layer */ |
| 111 | 110 | |
| 112 | ||
| 111 | ||
| 113 | 112 | { |
| 114 | sslam_state *state = machine.driver_data<sslam_state>(); | |
| 115 | int code = state->m_md_tileram[tile_index] & 0x0fff; | |
| 116 | int colr = state->m_md_tileram[tile_index] & 0xf000; | |
| 113 | int code = m_md_tileram[tile_index] & 0x0fff; | |
| 114 | int colr = m_md_tileram[tile_index] & 0xf000; | |
| 117 | 115 | |
| 118 | SET_TILE_INFO(2,code+0x2000 ,colr >> 12,0); | |
| 116 | SET_TILE_INFO_MEMBER(2,code+0x2000 ,colr >> 12,0); | |
| 119 | 117 | } |
| 120 | 118 | |
| 121 | 119 | WRITE16_MEMBER(sslam_state::sslam_md_tileram_w) |
| r17673 | r17674 | |
| 127 | 125 | |
| 128 | 126 | /* Background Layer */ |
| 129 | 127 | |
| 130 | ||
| 128 | ||
| 131 | 129 | { |
| 132 | sslam_state *state = machine.driver_data<sslam_state>(); | |
| 133 | int code = state->m_bg_tileram[tile_index] & 0x1fff; | |
| 134 | int colr = state->m_bg_tileram[tile_index] & 0xe000; | |
| 130 | int code = m_bg_tileram[tile_index] & 0x1fff; | |
| 131 | int colr = m_bg_tileram[tile_index] & 0xe000; | |
| 135 | 132 | |
| 136 | SET_TILE_INFO(1,code ,colr >> 13,0); | |
| 133 | SET_TILE_INFO_MEMBER(1,code ,colr >> 13,0); | |
| 137 | 134 | } |
| 138 | 135 | |
| 139 | 136 | WRITE16_MEMBER(sslam_state::sslam_bg_tileram_w) |
| r17673 | r17674 | |
| 143 | 140 | m_bg_tilemap->mark_tile_dirty(offset); |
| 144 | 141 | } |
| 145 | 142 | |
| 146 | ||
| 143 | ||
| 147 | 144 | { |
| 148 | sslam_state *state = machine.driver_data<sslam_state>(); | |
| 149 | int code = state->m_bg_tileram[tile_index*2+1] & 0x0fff; | |
| 150 | int colr = (state->m_bg_tileram[tile_index*2+1] & 0xf000) >> 12; | |
| 151 | code |= (state->m_bg_tileram[tile_index*2] & 0x0f00) << 4; | |
| 145 | int code = m_bg_tileram[tile_index*2+1] & 0x0fff; | |
| 146 | int colr = (m_bg_tileram[tile_index*2+1] & 0xf000) >> 12; | |
| 147 | code |= (m_bg_tileram[tile_index*2] & 0x0f00) << 4; | |
| 152 | 148 | |
| 153 | //( | |
| 149 | //( | |
| 154 | 150 | |
| 155 | SET_TILE_INFO(1,code,colr,0); | |
| 151 | SET_TILE_INFO_MEMBER(1,code,colr,0); | |
| 156 | 152 | } |
| 157 | 153 | |
| 158 | 154 | WRITE16_MEMBER(sslam_state::powerbls_bg_tileram_w) |
| r17673 | r17674 | |
| 166 | 162 | { |
| 167 | 163 | sslam_state *state = machine.driver_data<sslam_state>(); |
| 168 | 164 | |
| 169 | state->m_bg_tilemap = tilemap_create(machine, get_sslam_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 170 | state->m_md_tilemap = tilemap_create(machine, get_sslam_md_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 171 | state->m_tx_tilemap = tilemap_create(machine, get_sslam_tx_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 165 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sslam_state::get_sslam_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 166 | state->m_md_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sslam_state::get_sslam_md_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 167 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sslam_state::get_sslam_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 172 | 168 | |
| 173 | 169 | state->m_md_tilemap->set_transparent_pen(0); |
| 174 | 170 | state->m_tx_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
| 181 | 177 | { |
| 182 | 178 | sslam_state *state = machine.driver_data<sslam_state>(); |
| 183 | 179 | |
| 184 | state->m_bg_tilemap = tilemap | |
| 180 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sslam_state::get_powerbls_bg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 185 | 181 | |
| 186 | 182 | state->m_sprites_x_offset = -21; |
| 187 | 183 | state->save_item(NAME(state->m_sprites_x_offset)); |
| r17673 | r17674 | |
|---|---|---|
| 32 | 32 | |
| 33 | 33 | /******************************************************************************/ |
| 34 | 34 | |
| 35 | ||
| 35 | ||
| 36 | 36 | { |
| 37 | 37 | return (col&0xf) | ((row&0xf)<<4) | ((col&0x70)<<4) | ((row&0xf0)<<7); |
| 38 | 38 | } |
| 39 | 39 | |
| 40 | ||
| 40 | ||
| 41 | 41 | { |
| 42 | const UINT16 *bgMap = (const UINT16 *)machine.root_device().memregion("gfx6")->base(); | |
| 42 | const UINT16 *bgMap = (const UINT16 *)machine().root_device().memregion("gfx6")->base(); | |
| 43 | 43 | int code= bgMap[tile_index]; |
| 44 | SET_TILE_INFO(4,code&0x7ff,code>>12,0); | |
| 44 | SET_TILE_INFO_MEMBER(4,code&0x7ff,code>>12,0); | |
| 45 | 45 | } |
| 46 | 46 | |
| 47 | ||
| 47 | ||
| 48 | 48 | { |
| 49 | const UINT16 *bgMap = (const UINT16 *)machine.root_device().memregion("gfx7")->base(); | |
| 49 | const UINT16 *bgMap = (const UINT16 *)machine().root_device().memregion("gfx7")->base(); | |
| 50 | 50 | int code= bgMap[tile_index]; |
| 51 | SET_TILE_INFO(3,code&0x7ff,code>>12,0); | |
| 51 | SET_TILE_INFO_MEMBER(3,code&0x7ff,code>>12,0); | |
| 52 | 52 | } |
| 53 | 53 | |
| 54 | ||
| 54 | ||
| 55 | 55 | { |
| 56 | deadang_state *state = machine.driver_data<deadang_state>(); | |
| 57 | int tile=state->m_video_data[tile_index]; | |
| 56 | int tile=m_video_data[tile_index]; | |
| 58 | 57 | int color=tile >> 12; |
| 59 | 58 | tile=tile&0xfff; |
| 60 | 59 | |
| 61 | SET_TILE_INFO(2,tile+ | |
| 60 | SET_TILE_INFO_MEMBER(2,tile+ | |
| 62 | 61 | } |
| 63 | 62 | |
| 64 | ||
| 63 | ||
| 65 | 64 | { |
| 66 | deadang_state *state = machine.driver_data<deadang_state>(); | |
| 67 | UINT16 *videoram = state->m_videoram; | |
| 65 | UINT16 *videoram = m_videoram; | |
| 68 | 66 | int tile=(videoram[tile_index] & 0xff) | ((videoram[tile_index] >> 6) & 0x300); |
| 69 | 67 | int color=(videoram[tile_index] >> 8)&0xf; |
| 70 | 68 | |
| 71 | SET_TILE_INFO(0,tile,color,0); | |
| 69 | SET_TILE_INFO_MEMBER(0,tile,color,0); | |
| 72 | 70 | } |
| 73 | 71 | |
| 74 | 72 | VIDEO_START( deadang ) |
| 75 | 73 | { |
| 76 | 74 | deadang_state *state = machine.driver_data<deadang_state>(); |
| 77 | state->m_pf3_layer = tilemap_create(machine, get_pf3_tile_info,bg_scan, 16,16,128,256); | |
| 78 | state->m_pf2_layer = tilemap_create(machine, get_pf2_tile_info,bg_scan, 16,16,128,256); | |
| 79 | state->m_pf1_layer = tilemap_create(machine, get_pf1_tile_info,TILEMAP_SCAN_COLS,16,16, 32, 32); | |
| 80 | state->m_text_layer = tilemap_create(machine, get_text_tile_info,TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 75 | state->m_pf3_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(deadang_state::get_pf3_tile_info),state),tilemap_mapper_delegate(FUNC(deadang_state::bg_scan),state),16,16,128,256); | |
| 76 | state->m_pf2_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(deadang_state::get_pf2_tile_info),state),tilemap_mapper_delegate(FUNC(deadang_state::bg_scan),state),16,16,128,256); | |
| 77 | state->m_pf1_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(deadang_state::get_pf1_tile_info),state),TILEMAP_SCAN_COLS,16,16, 32, 32); | |
| 78 | state->m_text_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(deadang_state::get_text_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 81 | 79 | |
| 82 | 80 | state->m_pf2_layer->set_transparent_pen(15); |
| 83 | 81 | state->m_pf1_layer->set_transparent_pen(15); |
| r17673 | r17674 | |
|---|---|---|
| 65 | 65 | |
| 66 | 66 | ***************************************************************************/ |
| 67 | 67 | |
| 68 | ||
| 68 | ||
| 69 | 69 | { |
| 70 | 70 | /* logical (col,row) -> memory offset */ |
| 71 | 71 | return (col & 0x1f) + ((row & 0x1f) << 5) + ((col & 0x20) << 6); /* skip 0x400 */ |
| 72 | 72 | } |
| 73 | 73 | |
| 74 | ||
| 74 | ||
| 75 | 75 | { |
| 76 | hcastle_state *state = machine.driver_data<hcastle_state>(); | |
| 77 | UINT8 ctrl_5 = k007121_ctrlram_r(state->m_k007121_1, 5); | |
| 78 | UINT8 ctrl_6 = k007121_ctrlram_r(state->m_k007121_1, 6); | |
| 76 | UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121_1, 5); | |
| 77 | UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_1, 6); | |
| 79 | 78 | int bit0 = (ctrl_5 >> 0) & 0x03; |
| 80 | 79 | int bit1 = (ctrl_5 >> 2) & 0x03; |
| 81 | 80 | int bit2 = (ctrl_5 >> 4) & 0x03; |
| 82 | 81 | int bit3 = (ctrl_5 >> 6) & 0x03; |
| 83 | int attr = state->m_pf1_videoram[tile_index]; | |
| 84 | int tile = state->m_pf1_videoram[tile_index + 0x400]; | |
| 82 | int attr = m_pf1_videoram[tile_index]; | |
| 83 | int tile = m_pf1_videoram[tile_index + 0x400]; | |
| 85 | 84 | int color = attr & 0x7; |
| 86 | 85 | int bank = ((attr & 0x80) >> 7) | |
| 87 | 86 | ((attr >> (bit0 + 2)) & 0x02) | |
| r17673 | r17674 | |
| 89 | 88 | ((attr >> (bit2 )) & 0x08) | |
| 90 | 89 | ((attr >> (bit3 - 1)) & 0x10); |
| 91 | 90 | |
| 92 | SET_TILE_INFO( | |
| 91 | SET_TILE_INFO_MEMBER( | |
| 93 | 92 | 0, |
| 94 | tile + bank * 0x100 + | |
| 93 | tile + bank * 0x100 + | |
| 95 | 94 | ((ctrl_6 & 0x30) * 2 + 16) + color, |
| 96 | 95 | 0); |
| 97 | 96 | } |
| 98 | 97 | |
| 99 | ||
| 98 | ||
| 100 | 99 | { |
| 101 | hcastle_state *state = machine.driver_data<hcastle_state>(); | |
| 102 | UINT8 ctrl_5 = k007121_ctrlram_r(state->m_k007121_2, 5); | |
| 103 | UINT8 ctrl_6 = k007121_ctrlram_r(state->m_k007121_2, 6); | |
| 100 | UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121_2, 5); | |
| 101 | UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_2, 6); | |
| 104 | 102 | int bit0 = (ctrl_5 >> 0) & 0x03; |
| 105 | 103 | int bit1 = (ctrl_5 >> 2) & 0x03; |
| 106 | 104 | int bit2 = (ctrl_5 >> 4) & 0x03; |
| 107 | 105 | int bit3 = (ctrl_5 >> 6) & 0x03; |
| 108 | int attr = state->m_pf2_videoram[tile_index]; | |
| 109 | int tile = state->m_pf2_videoram[tile_index + 0x400]; | |
| 106 | int attr = m_pf2_videoram[tile_index]; | |
| 107 | int tile = m_pf2_videoram[tile_index + 0x400]; | |
| 110 | 108 | int color = attr & 0x7; |
| 111 | 109 | int bank = ((attr & 0x80) >> 7) | |
| 112 | 110 | ((attr >> (bit0 + 2)) & 0x02) | |
| r17673 | r17674 | |
| 114 | 112 | ((attr >> (bit2 )) & 0x08) | |
| 115 | 113 | ((attr >> (bit3 - 1)) & 0x10); |
| 116 | 114 | |
| 117 | SET_TILE_INFO( | |
| 115 | SET_TILE_INFO_MEMBER( | |
| 118 | 116 | 1, |
| 119 | tile + bank * 0x100 + | |
| 117 | tile + bank * 0x100 + | |
| 120 | 118 | ((ctrl_6 & 0x30) * 2 + 16) + color, |
| 121 | 119 | 0); |
| 122 | 120 | } |
| r17673 | r17674 | |
| 133 | 131 | { |
| 134 | 132 | hcastle_state *state = machine.driver_data<hcastle_state>(); |
| 135 | 133 | |
| 136 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, tilemap_scan, 8, 8, 64, 32); | |
| 137 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, tilemap_scan, 8, 8, 64, 32); | |
| 134 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hcastle_state::get_fg_tile_info),state), tilemap_mapper_delegate(FUNC(hcastle_state::tilemap_scan),state), 8, 8, 64, 32); | |
| 135 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hcastle_state::get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(hcastle_state::tilemap_scan),state), 8, 8, 64, 32); | |
| 138 | 136 | |
| 139 | 137 | state->m_fg_tilemap->set_transparent_pen(0); |
| 140 | 138 | } |
| r17673 | r17674 | |
|---|---|---|
| 40 | 40 | Callbacks for the TileMap code |
| 41 | 41 | ***************************************************************************/ |
| 42 | 42 | |
| 43 | ||
| 43 | ||
| 44 | 44 | { |
| 45 | twincobr_state *state = machine.driver_data<twincobr_state>(); | |
| 46 | 45 | int code, tile_number, color; |
| 47 | 46 | |
| 48 | code = | |
| 47 | code = | |
| 49 | 48 | tile_number = code & 0x0fff; |
| 50 | 49 | color = (code & 0xf000) >> 12; |
| 51 | SET_TILE_INFO( | |
| 50 | SET_TILE_INFO_MEMBER( | |
| 52 | 51 | 2, |
| 53 | 52 | tile_number, |
| 54 | 53 | color, |
| 55 | 54 | 0); |
| 56 | 55 | } |
| 57 | 56 | |
| 58 | ||
| 57 | ||
| 59 | 58 | { |
| 60 | twincobr_state *state = machine.driver_data<twincobr_state>(); | |
| 61 | 59 | int code, tile_number, color; |
| 62 | 60 | |
| 63 | code = state->m_fgvideoram16[tile_index]; | |
| 64 | tile_number = (code & 0x0fff) | state->m_fg_rom_bank; | |
| 61 | code = m_fgvideoram16[tile_index]; | |
| 62 | tile_number = (code & 0x0fff) | m_fg_rom_bank; | |
| 65 | 63 | color = (code & 0xf000) >> 12; |
| 66 | SET_TILE_INFO( | |
| 64 | SET_TILE_INFO_MEMBER( | |
| 67 | 65 | 1, |
| 68 | 66 | tile_number, |
| 69 | 67 | color, |
| 70 | 68 | 0); |
| 71 | 69 | } |
| 72 | 70 | |
| 73 | ||
| 71 | ||
| 74 | 72 | { |
| 75 | twincobr_state *state = machine.driver_data<twincobr_state>(); | |
| 76 | 73 | int code, tile_number, color; |
| 77 | 74 | |
| 78 | code = | |
| 75 | code = | |
| 79 | 76 | tile_number = code & 0x07ff; |
| 80 | 77 | color = (code & 0xf800) >> 11; |
| 81 | SET_TILE_INFO( | |
| 78 | SET_TILE_INFO_MEMBER( | |
| 82 | 79 | 0, |
| 83 | 80 | tile_number, |
| 84 | 81 | color, |
| r17673 | r17674 | |
| 93 | 90 | { |
| 94 | 91 | twincobr_state *state = machine.driver_data<twincobr_state>(); |
| 95 | 92 | |
| 96 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 97 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info,TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 98 | state->m_tx_tilemap = tilemap_create(machine, get_tx_tile_info,TILEMAP_SCAN_ROWS,8,8,64,32); | |
| 93 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(twincobr_state::get_bg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 94 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(twincobr_state::get_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 95 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(twincobr_state::get_tx_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32); | |
| 99 | 96 | |
| 100 | 97 | state->m_fg_tilemap->set_transparent_pen(0); |
| 101 | 98 | state->m_tx_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 20 | 20 | 0); |
| 21 | 21 | } |
| 22 | 22 | |
| 23 | ||
| 23 | ||
| 24 | 24 | { |
| 25 | hexion_state *state = machine.driver_data<hexion_state>(); | |
| 26 | get_tile_info(machine,tileinfo,tile_index,state->m_vram[0]); | |
| 25 | get_tile_info(machine(),tileinfo,tile_index,m_vram[0]); | |
| 27 | 26 | } |
| 28 | 27 | |
| 29 | ||
| 28 | ||
| 30 | 29 | { |
| 31 | hexion_state *state = machine.driver_data<hexion_state>(); | |
| 32 | get_tile_info(machine,tileinfo,tile_index,state->m_vram[1]); | |
| 30 | get_tile_info(machine(),tileinfo,tile_index,m_vram[1]); | |
| 33 | 31 | } |
| 34 | 32 | |
| 35 | 33 | |
| r17673 | r17674 | |
| 43 | 41 | VIDEO_START( hexion ) |
| 44 | 42 | { |
| 45 | 43 | hexion_state *state = machine.driver_data<hexion_state>(); |
| 46 | state->m_bg_tilemap[0] = tilemap_create(machine, get_tile_info0,TILEMAP_SCAN_ROWS,8,8,64,32); | |
| 47 | state->m_bg_tilemap[1] = tilemap_create(machine, get_tile_info1,TILEMAP_SCAN_ROWS, 8,8,64,32); | |
| 44 | state->m_bg_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hexion_state::get_tile_info0),state),TILEMAP_SCAN_ROWS,8,8,64,32); | |
| 45 | state->m_bg_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hexion_state::get_tile_info1),state),TILEMAP_SCAN_ROWS, 8,8,64,32); | |
| 48 | 46 | |
| 49 | 47 | state->m_bg_tilemap[0]->set_transparent_pen(0); |
| 50 | 48 | state->m_bg_tilemap[1]->set_scrollx(0,-4); |
| r17673 | r17674 | |
|---|---|---|
| 208 | 208 | } |
| 209 | 209 | |
| 210 | 210 | |
| 211 | ||
| 211 | ||
| 212 | 212 | { |
| 213 | bking_state *state = machine.driver_data<bking_state>(); | |
| 214 | UINT8 code0 = state->m_playfield_ram[2 * tile_index + 0]; | |
| 215 | UINT8 code1 = state->m_playfield_ram[2 * tile_index + 1]; | |
| 213 | UINT8 code0 = m_playfield_ram[2 * tile_index + 0]; | |
| 214 | UINT8 code1 = m_playfield_ram[2 * tile_index + 1]; | |
| 216 | 215 | |
| 217 | 216 | int flags = 0; |
| 218 | 217 | |
| 219 | 218 | if (code1 & 4) flags |= TILE_FLIPX; |
| 220 | 219 | if (code1 & 8) flags |= TILE_FLIPY; |
| 221 | 220 | |
| 222 | SET_TILE_INFO(0, code0 + 256 * code1, | |
| 221 | SET_TILE_INFO_MEMBER(0, code0 + 256 * code1, | |
| 223 | 222 | } |
| 224 | 223 | |
| 225 | 224 | |
| 226 | 225 | VIDEO_START( bking ) |
| 227 | 226 | { |
| 228 | 227 | bking_state *state = machine.driver_data<bking_state>(); |
| 229 | state->m_bg_tilemap = tilemap | |
| 228 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bking_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 230 | 229 | machine.primary_screen->register_screen_bitmap(state->m_tmp_bitmap1); |
| 231 | 230 | machine.primary_screen->register_screen_bitmap(state->m_tmp_bitmap2); |
| 232 | 231 |
| r17673 | r17674 | |
|---|---|---|
| 64 | 64 | |
| 65 | 65 | ***************************************************************************/ |
| 66 | 66 | |
| 67 | ||
| 67 | ||
| 68 | 68 | { |
| 69 | labyrunr_state *state = machine.driver_data<labyrunr_state>(); | |
| 70 | UINT8 ctrl_3 = k007121_ctrlram_r(state->m_k007121, 3); | |
| 71 | UINT8 ctrl_4 = k007121_ctrlram_r(state->m_k007121, 4); | |
| 72 | UINT8 ctrl_5 = k007121_ctrlram_r(state->m_k007121, 5); | |
| 73 | UINT8 ctrl_6 = k007121_ctrlram_r(state->m_k007121, 6); | |
| 74 | int attr = state->m_videoram1[tile_index]; | |
| 75 | int code = state->m_videoram1[tile_index + 0x400]; | |
| 69 | UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121, 3); | |
| 70 | UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121, 4); | |
| 71 | UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121, 5); | |
| 72 | UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121, 6); | |
| 73 | int attr = m_videoram1[tile_index]; | |
| 74 | int code = m_videoram1[tile_index + 0x400]; | |
| 76 | 75 | int bit0 = (ctrl_5 >> 0) & 0x03; |
| 77 | 76 | int bit1 = (ctrl_5 >> 2) & 0x03; |
| 78 | 77 | int bit2 = (ctrl_5 >> 4) & 0x03; |
| r17673 | r17674 | |
| 87 | 86 | |
| 88 | 87 | bank = (bank & ~(mask << 1)) | ((ctrl_4 & mask) << 1); |
| 89 | 88 | |
| 90 | SET_TILE_INFO( | |
| 89 | SET_TILE_INFO_MEMBER( | |
| 91 | 90 | 0, |
| 92 | 91 | code + bank * 256, |
| 93 | 92 | ((ctrl_6 & 0x30) * 2 + 16)+(attr & 7), |
| 94 | 93 | 0); |
| 95 | 94 | } |
| 96 | 95 | |
| 97 | ||
| 96 | ||
| 98 | 97 | { |
| 99 | labyrunr_state *state = machine.driver_data<labyrunr_state>(); | |
| 100 | UINT8 ctrl_3 = k007121_ctrlram_r(state->m_k007121, 3); | |
| 101 | UINT8 ctrl_4 = k007121_ctrlram_r(state->m_k007121, 4); | |
| 102 | UINT8 ctrl_5 = k007121_ctrlram_r(state->m_k007121, 5); | |
| 103 | UINT8 ctrl_6 = k007121_ctrlram_r(state->m_k007121, 6); | |
| 104 | int attr = state->m_videoram2[tile_index]; | |
| 105 | int code = state->m_videoram2[tile_index + 0x400]; | |
| 98 | UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121, 3); | |
| 99 | UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121, 4); | |
| 100 | UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121, 5); | |
| 101 | UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121, 6); | |
| 102 | int attr = m_videoram2[tile_index]; | |
| 103 | int code = m_videoram2[tile_index + 0x400]; | |
| 106 | 104 | int bit0 = (ctrl_5 >> 0) & 0x03; |
| 107 | 105 | int bit1 = (ctrl_5 >> 2) & 0x03; |
| 108 | 106 | int bit2 = (ctrl_5 >> 4) & 0x03; |
| r17673 | r17674 | |
| 117 | 115 | |
| 118 | 116 | bank = (bank & ~(mask << 1)) | ((ctrl_4 & mask) << 1); |
| 119 | 117 | |
| 120 | SET_TILE_INFO( | |
| 118 | SET_TILE_INFO_MEMBER( | |
| 121 | 119 | 0, |
| 122 | 120 | code+bank*256, |
| 123 | 121 | ((ctrl_6 & 0x30) * 2 + 16) + (attr & 7), |
| r17673 | r17674 | |
| 135 | 133 | { |
| 136 | 134 | labyrunr_state *state = machine.driver_data<labyrunr_state>(); |
| 137 | 135 | |
| 138 | state->m_layer0 = tilemap_create(machine, get_tile_info0, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 139 | state->m_layer1 = tilemap_create(machine, get_tile_info1, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 136 | state->m_layer0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(labyrunr_state::get_tile_info0),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 137 | state->m_layer1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(labyrunr_state::get_tile_info1),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 140 | 138 | |
| 141 | 139 | state->m_layer0->set_transparent_pen(0); |
| 142 | 140 | state->m_layer1->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 34 | 34 | } |
| 35 | 35 | |
| 36 | 36 | |
| 37 | ||
| 37 | ||
| 38 | 38 | { |
| 39 | sprint2_state *state = machine.driver_data<sprint2_state>(); | |
| 40 | UINT8 code = state->m_video_ram[tile_index]; | |
| 39 | UINT8 code = m_video_ram[tile_index]; | |
| 41 | 40 | |
| 42 | SET_TILE_INFO(0, code & 0x3f, code >> 7, 0); | |
| 41 | SET_TILE_INFO_MEMBER(0, code & 0x3f, code >> 7, 0); | |
| 43 | 42 | } |
| 44 | 43 | |
| 45 | 44 | |
| r17673 | r17674 | |
| 48 | 47 | sprint2_state *state = machine.driver_data<sprint2_state>(); |
| 49 | 48 | machine.primary_screen->register_screen_bitmap(state->m_helper); |
| 50 | 49 | |
| 51 | state->m_bg_tilemap = tilemap | |
| 50 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sprint2_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 16, 8, 32, 32); | |
| 52 | 51 | } |
| 53 | 52 | |
| 54 | 53 |
| r17673 | r17674 | |
|---|---|---|
| 54 | 54 | m_fg_tilemap->mark_tile_dirty(offset / 2); |
| 55 | 55 | } |
| 56 | 56 | |
| 57 | ||
| 57 | ||
| 58 | 58 | { |
| 59 | ddragon3_state *state = machine.driver_data<ddragon3_state>(); | |
| 60 | UINT16 attr = state->m_bg_videoram[tile_index]; | |
| 61 | int code = (attr & 0x0fff) | ((state->m_bg_tilebase & 0x01) << 12); | |
| 59 | UINT16 attr = m_bg_videoram[tile_index]; | |
| 60 | int code = (attr & 0x0fff) | ((m_bg_tilebase & 0x01) << 12); | |
| 62 | 61 | int color = ((attr & 0xf000) >> 12) + 16; |
| 63 | 62 | |
| 64 | SET_TILE_INFO(0, code, color, 0); | |
| 63 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 65 | 64 | } |
| 66 | 65 | |
| 67 | ||
| 66 | ||
| 68 | 67 | { |
| 69 | ddragon3_state *state = machine.driver_data<ddragon3_state>(); | |
| 70 | 68 | int offs = tile_index * 2; |
| 71 | UINT16 attr = state->m_fg_videoram[offs]; | |
| 72 | int code = state->m_fg_videoram[offs + 1] & 0x1fff; | |
| 69 | UINT16 attr = m_fg_videoram[offs]; | |
| 70 | int code = m_fg_videoram[offs + 1] & 0x1fff; | |
| 73 | 71 | int color = attr & 0xf; |
| 74 | 72 | int flags = (attr & 0x40) ? TILE_FLIPX : 0; |
| 75 | 73 | |
| 76 | SET_TILE_INFO(0, code, color, flags); | |
| 74 | SET_TILE_INFO_MEMBER(0, code, color, flags); | |
| 77 | 75 | } |
| 78 | 76 | |
| 79 | 77 | VIDEO_START( ddragon3 ) |
| 80 | 78 | { |
| 81 | 79 | ddragon3_state *state = machine.driver_data<ddragon3_state>(); |
| 82 | 80 | |
| 83 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 84 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 81 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ddragon3_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 82 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ddragon3_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 85 | 83 | |
| 86 | 84 | state->m_bg_tilemap->set_transparent_pen(0); |
| 87 | 85 | state->m_fg_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 8 | 8 | #include "includes/dragrace.h" |
| 9 | 9 | |
| 10 | 10 | |
| 11 | ||
| 11 | ||
| 12 | 12 | { |
| 13 | dragrace_state *state = machine.driver_data<dragrace_state>(); | |
| 14 | UINT8 code = state->m_playfield_ram[tile_index]; | |
| 13 | UINT8 code = m_playfield_ram[tile_index]; | |
| 15 | 14 | int num = 0; |
| 16 | 15 | int col = 0; |
| 17 | 16 | |
| r17673 | r17674 | |
| 36 | 35 | break; |
| 37 | 36 | } |
| 38 | 37 | |
| 39 | SET_TILE_INFO(((code & 0xA0) == 0x80) ? 1 : 0, num, col, 0); | |
| 38 | SET_TILE_INFO_MEMBER(((code & 0xA0) == 0x80) ? 1 : 0, num, col, 0); | |
| 40 | 39 | } |
| 41 | 40 | |
| 42 | 41 | |
| 43 | 42 | VIDEO_START( dragrace ) |
| 44 | 43 | { |
| 45 | 44 | dragrace_state *state = machine.driver_data<dragrace_state>(); |
| 46 | state->m_bg_tilemap = tilemap | |
| 45 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dragrace_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 16, 16); | |
| 47 | 46 | } |
| 48 | 47 | |
| 49 | 48 |
| r17673 | r17674 | |
|---|---|---|
| 14 | 14 | } |
| 15 | 15 | |
| 16 | 16 | |
| 17 | ||
| 17 | ||
| 18 | 18 | { |
| 19 | orbit_state *state = machine.driver_data<orbit_state>(); | |
| 20 | UINT8 code = state->m_playfield_ram[tile_index]; | |
| 19 | UINT8 code = m_playfield_ram[tile_index]; | |
| 21 | 20 | int flags = 0; |
| 22 | 21 | |
| 23 | 22 | if (BIT(code, 6)) |
| 24 | 23 | flags |= TILE_FLIPX; |
| 25 | if ( | |
| 24 | if ( | |
| 26 | 25 | flags |= TILE_FLIPY; |
| 27 | 26 | |
| 28 | SET_TILE_INFO(3, code & 0x3f, 0, flags); | |
| 27 | SET_TILE_INFO_MEMBER(3, code & 0x3f, 0, flags); | |
| 29 | 28 | } |
| 30 | 29 | |
| 31 | 30 | |
| 32 | 31 | VIDEO_START( orbit ) |
| 33 | 32 | { |
| 34 | 33 | orbit_state *state = machine.driver_data<orbit_state>(); |
| 35 | state->m_bg_tilemap = tilemap | |
| 34 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(orbit_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 30); | |
| 36 | 35 | } |
| 37 | 36 | |
| 38 | 37 |
| r17673 | r17674 | |
|---|---|---|
| 400 | 400 | } |
| 401 | 401 | } |
| 402 | 402 | |
| 403 | ||
| 403 | ||
| 404 | 404 | { |
| 405 | seibuspi_state *state = machine.driver_data<seibuspi_state>(); | |
| 406 | 405 | int offs = tile_index / 2; |
| 407 | int tile = ( | |
| 406 | int tile = ( | |
| 408 | 407 | int color = (tile >> 12) & 0xf; |
| 409 | 408 | |
| 410 | 409 | tile &= 0xfff; |
| 411 | 410 | |
| 412 | SET_TILE_INFO(0, tile, color, 0); | |
| 411 | SET_TILE_INFO_MEMBER(0, tile, color, 0); | |
| 413 | 412 | } |
| 414 | 413 | |
| 415 | ||
| 414 | ||
| 416 | 415 | { |
| 417 | seibuspi_state *state = machine.driver_data<seibuspi_state>(); | |
| 418 | 416 | int offs = tile_index / 2; |
| 419 | int tile = ( | |
| 417 | int tile = ( | |
| 420 | 418 | int color = (tile >> 13) & 0x7; |
| 421 | 419 | |
| 422 | 420 | tile &= 0x1fff; |
| 423 | 421 | |
| 424 | if( | |
| 422 | if( | |
| 425 | 423 | tile |= 0x4000; |
| 426 | 424 | |
| 427 | SET_TILE_INFO(1, tile, color, 0); | |
| 425 | SET_TILE_INFO_MEMBER(1, tile, color, 0); | |
| 428 | 426 | } |
| 429 | 427 | |
| 430 | ||
| 428 | ||
| 431 | 429 | { |
| 432 | seibuspi_state *state = machine.driver_data<seibuspi_state>(); | |
| 433 | 430 | int offs = tile_index / 2; |
| 434 | int tile = ( | |
| 431 | int tile = ( | |
| 435 | 432 | int color = (tile >> 13) & 0x7; |
| 436 | 433 | |
| 437 | 434 | tile &= 0x1fff; |
| 438 | 435 | tile |= 0x2000; |
| 439 | 436 | |
| 440 | if( | |
| 437 | if( | |
| 441 | 438 | tile |= 0x4000; |
| 442 | 439 | |
| 443 | SET_TILE_INFO(1, tile, color + 16, 0); | |
| 440 | SET_TILE_INFO_MEMBER(1, tile, color + 16, 0); | |
| 444 | 441 | } |
| 445 | 442 | |
| 446 | ||
| 443 | ||
| 447 | 444 | { |
| 448 | seibuspi_state *state = machine.driver_data<seibuspi_state>(); | |
| 449 | 445 | int offs = tile_index / 2; |
| 450 | int tile = ( | |
| 446 | int tile = ( | |
| 451 | 447 | int color = (tile >> 13) & 0x7; |
| 452 | 448 | |
| 453 | 449 | tile &= 0x1fff; |
| 454 | tile |= | |
| 450 | tile |= | |
| 455 | 451 | |
| 456 | if( | |
| 452 | if( | |
| 457 | 453 | tile |= 0x4000; |
| 458 | 454 | |
| 459 | tile |= (( | |
| 455 | tile |= (( | |
| 460 | 456 | |
| 461 | SET_TILE_INFO(1, tile, color + 8, 0); | |
| 457 | SET_TILE_INFO_MEMBER(1, tile, color + 8, 0); | |
| 462 | 458 | } |
| 463 | 459 | |
| 464 | 460 | VIDEO_START( spi ) |
| r17673 | r17674 | |
| 467 | 463 | int i; |
| 468 | 464 | int region_length; |
| 469 | 465 | |
| 470 | state->m_text_layer = tilemap_create( machine, get_text_tile_info, TILEMAP_SCAN_ROWS, 8,8,64,32 ); | |
| 471 | state->m_back_layer = tilemap_create( machine, get_back_tile_info, TILEMAP_SCAN_COLS, 16,16,32,32 ); | |
| 472 | state->m_mid_layer = tilemap_create( machine, get_mid_tile_info, TILEMAP_SCAN_COLS, 16,16,32,32 ); | |
| 473 | state->m_fore_layer = tilemap_create( machine, get_fore_tile_info, TILEMAP_SCAN_COLS, 16,16,32,32 ); | |
| 466 | state->m_text_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(seibuspi_state::get_text_tile_info),state), TILEMAP_SCAN_ROWS, 8,8,64,32 ); | |
| 467 | state->m_back_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(seibuspi_state::get_back_tile_info),state), TILEMAP_SCAN_COLS, 16,16,32,32 ); | |
| 468 | state->m_mid_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(seibuspi_state::get_mid_tile_info),state), TILEMAP_SCAN_COLS, 16,16,32,32 ); | |
| 469 | state->m_fore_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(seibuspi_state::get_fore_tile_info),state), TILEMAP_SCAN_COLS, 16,16,32,32 ); | |
| 474 | 470 | |
| 475 | 471 | state->m_text_layer->set_transparent_pen(31); |
| 476 | 472 | state->m_mid_layer->set_transparent_pen(63); |
| r17673 | r17674 | |
|---|---|---|
| 45 | 45 | m_bg_tilemap->set_scrollx(0, data); |
| 46 | 46 | } |
| 47 | 47 | |
| 48 | ||
| 48 | ||
| 49 | 49 | { |
| 50 | sauro_state *state = machine.driver_data<sauro_state>(); | |
| 51 | int code = state->m_videoram[tile_index] + ((state->m_colorram[tile_index] & 0x07) << 8); | |
| 52 | int color = ((state->m_colorram[tile_index] >> 4) & 0x0f) | state->m_palette_bank; | |
| 53 | int flags = state->m_colorram[tile_index] & 0x08 ? TILE_FLIPX : 0; | |
| 50 | int code = m_videoram[tile_index] + ((m_colorram[tile_index] & 0x07) << 8); | |
| 51 | int color = ((m_colorram[tile_index] >> 4) & 0x0f) | m_palette_bank; | |
| 52 | int flags = m_colorram[tile_index] & 0x08 ? TILE_FLIPX : 0; | |
| 54 | 53 | |
| 55 | SET_TILE_INFO(0, code, color, flags); | |
| 54 | SET_TILE_INFO_MEMBER(0, code, color, flags); | |
| 56 | 55 | } |
| 57 | 56 | |
| 58 | ||
| 57 | ||
| 59 | 58 | { |
| 60 | sauro_state *state = machine.driver_data<sauro_state>(); | |
| 61 | int code = state->m_videoram2[tile_index] + ((state->m_colorram2[tile_index] & 0x07) << 8); | |
| 62 | int color = ((state->m_colorram2[tile_index] >> 4) & 0x0f) | state->m_palette_bank; | |
| 63 | int flags = state->m_colorram2[tile_index] & 0x08 ? TILE_FLIPX : 0; | |
| 59 | int code = m_videoram2[tile_index] + ((m_colorram2[tile_index] & 0x07) << 8); | |
| 60 | int color = ((m_colorram2[tile_index] >> 4) & 0x0f) | m_palette_bank; | |
| 61 | int flags = m_colorram2[tile_index] & 0x08 ? TILE_FLIPX : 0; | |
| 64 | 62 | |
| 65 | SET_TILE_INFO(1, code, color, flags); | |
| 63 | SET_TILE_INFO_MEMBER(1, code, color, flags); | |
| 66 | 64 | } |
| 67 | 65 | |
| 68 | 66 | /* Sauro */ |
| r17673 | r17674 | |
| 89 | 87 | { |
| 90 | 88 | sauro_state *state = machine.driver_data<sauro_state>(); |
| 91 | 89 | |
| 92 | state->m_bg_tilemap = tilemap | |
| 90 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sauro_state::get_tile_info_bg),state), TILEMAP_SCAN_COLS, | |
| 93 | 91 | 8, 8, 32, 32); |
| 94 | 92 | |
| 95 | state->m_fg_tilemap = tilemap | |
| 93 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sauro_state::get_tile_info_fg),state), TILEMAP_SCAN_COLS, | |
| 96 | 94 | 8, 8, 32, 32); |
| 97 | 95 | |
| 98 | 96 | state->m_fg_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
| 163 | 161 | { |
| 164 | 162 | sauro_state *state = machine.driver_data<sauro_state>(); |
| 165 | 163 | |
| 166 | state->m_bg_tilemap = tilemap | |
| 164 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sauro_state::get_tile_info_bg),state), TILEMAP_SCAN_COLS, | |
| 167 | 165 | 8, 8, 32, 32); |
| 168 | 166 | } |
| 169 | 167 |
| r17673 | r17674 | |
|---|---|---|
| 81 | 81 | ***************************************************************************/ |
| 82 | 82 | |
| 83 | 83 | /* convert from 32x32 to 36x28 */ |
| 84 | ||
| 84 | ||
| 85 | 85 | { |
| 86 | 86 | int offs; |
| 87 | 87 | |
| r17673 | r17674 | |
| 95 | 95 | return offs; |
| 96 | 96 | } |
| 97 | 97 | |
| 98 | ||
| 98 | ||
| 99 | 99 | { |
| 100 | gaplus_state *state = machine.driver_data<gaplus_state>(); | |
| 101 | UINT8 attr = state->m_videoram[tile_index + 0x400]; | |
| 100 | UINT8 attr = m_videoram[tile_index + 0x400]; | |
| 102 | 101 | tileinfo.category = (attr & 0x40) >> 6; |
| 103 | 102 | tileinfo.group = attr & 0x3f; |
| 104 | SET_TILE_INFO( | |
| 103 | SET_TILE_INFO_MEMBER( | |
| 105 | 104 | 0, |
| 106 | | |
| 105 | | |
| 107 | 106 | attr & 0x3f, |
| 108 | 107 | 0); |
| 109 | 108 | } |
| r17673 | r17674 | |
| 183 | 182 | VIDEO_START( gaplus ) |
| 184 | 183 | { |
| 185 | 184 | gaplus_state *state = machine.driver_data<gaplus_state>(); |
| 186 | state->m_bg_tilemap = tilemap | |
| 185 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaplus_state::get_tile_info),state),tilemap_mapper_delegate(FUNC(gaplus_state::tilemap_scan),state),8,8,36,28); | |
| 187 | 186 | |
| 188 | 187 | colortable_configure_tilemap_groups(machine.colortable, state->m_bg_tilemap, machine.gfx[0], 0xff); |
| 189 | 188 |
| r17673 | r17674 | |
|---|---|---|
| 26 | 26 | |
| 27 | 27 | /****************************************************************************/ |
| 28 | 28 | |
| 29 | ||
| 29 | ||
| 30 | 30 | { |
| 31 | drmicro_state *state = machine.driver_data<drmicro_state>(); | |
| 32 | 31 | int code, col, flags; |
| 33 | 32 | |
| 34 | code = state->m_videoram[tile_index + 0x0800]; | |
| 35 | col = state->m_videoram[tile_index + 0x0c00]; | |
| 33 | code = m_videoram[tile_index + 0x0800]; | |
| 34 | col = m_videoram[tile_index + 0x0c00]; | |
| 36 | 35 | |
| 37 | 36 | code += (col & 0xc0) << 2; |
| 38 | 37 | flags = ((col & 0x20) ? TILEMAP_FLIPY : 0) | ((col & 0x10) ? TILEMAP_FLIPX : 0); |
| 39 | 38 | col &= 0x0f; |
| 40 | 39 | |
| 41 | SET_TILE_INFO( 0, code, col, flags); | |
| 40 | SET_TILE_INFO_MEMBER( 0, code, col, flags); | |
| 42 | 41 | } |
| 43 | 42 | |
| 44 | ||
| 43 | ||
| 45 | 44 | { |
| 46 | drmicro_state *state = machine.driver_data<drmicro_state>(); | |
| 47 | 45 | int code, col, flags; |
| 48 | 46 | |
| 49 | code = state->m_videoram[tile_index + 0x0000]; | |
| 50 | col = state->m_videoram[tile_index + 0x0400]; | |
| 47 | code = m_videoram[tile_index + 0x0000]; | |
| 48 | col = m_videoram[tile_index + 0x0400]; | |
| 51 | 49 | |
| 52 | 50 | code += (col & 0xc0) << 2; |
| 53 | 51 | flags = ((col & 0x20) ? TILEMAP_FLIPY : 0) | ((col & 0x10) ? TILEMAP_FLIPX : 0); |
| 54 | 52 | col &= 0x0f; |
| 55 | 53 | |
| 56 | SET_TILE_INFO( 1, code, col, flags); | |
| 54 | SET_TILE_INFO_MEMBER( 1, code, col, flags); | |
| 57 | 55 | } |
| 58 | 56 | |
| 59 | 57 | /****************************************************************************/ |
| r17673 | r17674 | |
| 110 | 108 | state->m_videoram = auto_alloc_array(machine, UINT8, 0x1000); |
| 111 | 109 | state->save_pointer(NAME(state->m_videoram), 0x1000); |
| 112 | 110 | |
| 113 | state->m_bg1 = tilemap_create(machine, get_bg1_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 114 | state->m_bg2 = tilemap_create(machine, get_bg2_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 111 | state->m_bg1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(drmicro_state::get_bg1_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 112 | state->m_bg2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(drmicro_state::get_bg2_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 115 | 113 | |
| 116 | 114 | state->m_bg2->set_transparent_pen(0); |
| 117 | 115 | } |
| r17673 | r17674 | |
|---|---|---|
| 96 | 96 | * |
| 97 | 97 | *************************************/ |
| 98 | 98 | |
| 99 | ||
| 99 | ||
| 100 | 100 | { |
| 101 | 101 | const UINT8 *rambase = (const UINT8 *)param; |
| 102 | 102 | UINT32 tiledata = rambase[tile_index*2+0] | (rambase[tile_index*2+1] << 8); |
| 103 | 103 | UINT32 code = ((tiledata >> 4) & 0x800) | (tiledata & 0x7ff); |
| 104 | 104 | UINT32 color = (tiledata >> 5) & 0xff; |
| 105 | 105 | |
| 106 | SET_TILE_INFO(0, code, color, 0); | |
| 106 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 107 | 107 | } |
| 108 | 108 | |
| 109 | 109 | |
| r17673 | r17674 | |
| 130 | 130 | /* create the tilemap pages */ |
| 131 | 131 | for (pagenum = 0; pagenum < pagecount; pagenum++) |
| 132 | 132 | { |
| 133 | state->m_tilemap_page[pagenum] = tilemap | |
| 133 | state->m_tilemap_page[pagenum] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(system1_state::tile_get_info),state), TILEMAP_SCAN_ROWS, 8,8, 32,32); | |
| 134 | 134 | state->m_tilemap_page[pagenum]->set_transparent_pen(0); |
| 135 | 135 | state->m_tilemap_page[pagenum]->set_user_data(state->m_videoram + 0x800 * pagenum); |
| 136 | 136 | } |
| r17673 | r17674 | |
|---|---|---|
| 118 | 118 | #define DIM_NY_0 (0x20) |
| 119 | 119 | |
| 120 | 120 | |
| 121 | ||
| 121 | ||
| 122 | 122 | { |
| 123 | powerins_state *state = machine.driver_data<powerins_state>(); | |
| 124 | UINT16 code = state->m_vram_0[tile_index]; | |
| 125 | SET_TILE_INFO( | |
| 123 | UINT16 code = m_vram_0[tile_index]; | |
| 124 | SET_TILE_INFO_MEMBER( | |
| 126 | 125 | 0, |
| 127 | (code & 0x07ff) + ( | |
| 126 | (code & 0x07ff) + ( | |
| 128 | 127 | ((code & 0xf000) >> (16-4)) + ((code & 0x0800) >> (11-4)), |
| 129 | 128 | 0); |
| 130 | 129 | } |
| r17673 | r17674 | |
| 135 | 134 | m_tilemap_0->mark_tile_dirty(offset); |
| 136 | 135 | } |
| 137 | 136 | |
| 138 | ||
| 137 | ||
| 139 | 138 | { |
| 140 | 139 | return (col * TILES_PER_PAGE_Y) + |
| 141 | 140 | |
| r17673 | r17674 | |
| 159 | 158 | #define DIM_NX_1 (0x40) |
| 160 | 159 | #define DIM_NY_1 (0x20) |
| 161 | 160 | |
| 162 | ||
| 161 | ||
| 163 | 162 | { |
| 164 | powerins_state *state = machine.driver_data<powerins_state>(); | |
| 165 | UINT16 code = state->m_vram_1[tile_index]; | |
| 166 | SET_TILE_INFO( | |
| 163 | UINT16 code = m_vram_1[tile_index]; | |
| 164 | SET_TILE_INFO_MEMBER( | |
| 167 | 165 | 1, |
| 168 | 166 | code & 0x0fff, |
| 169 | 167 | (code & 0xf000) >> (16-4), |
| r17673 | r17674 | |
| 191 | 189 | VIDEO_START( powerins ) |
| 192 | 190 | { |
| 193 | 191 | powerins_state *state = machine.driver_data<powerins_state>(); |
| 194 | state->m_tilemap_0 = tilemap_create( machine, get_tile_info_0, | |
| 195 | powerins_get_memory_offset_0, | |
| 192 | state->m_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(powerins_state::get_tile_info_0),state),tilemap_mapper_delegate(FUNC(powerins_state::powerins_get_memory_offset_0),state),16,16,DIM_NX_0, DIM_NY_0 ); | |
| 193 | state->m_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(powerins_state::get_tile_info_1),state),TILEMAP_SCAN_COLS,8,8,DIM_NX_1, DIM_NY_1 ); | |
| 196 | 194 | |
| 197 | 16,16, | |
| 198 | DIM_NX_0, DIM_NY_0 ); | |
| 195 | state->m_tilemap_0->set_scroll_rows(1); | |
| 196 | state->m_tilemap_0->set_scroll_cols(1); | |
| 199 | 197 | |
| 200 | state->m_tilemap_1 = tilemap_create( machine, get_tile_info_1, | |
| 201 | TILEMAP_SCAN_COLS, | |
| 202 | ||
| 203 | 8,8, | |
| 204 | DIM_NX_1, DIM_NY_1 ); | |
| 205 | ||
| 206 | state->m_tilemap_0->set_scroll_rows(1); | |
| 207 | state->m_tilemap_0->set_scroll_cols(1); | |
| 208 | ||
| 209 | state->m_tilemap_1->set_scroll_rows(1); | |
| 210 | state->m_tilemap_1->set_scroll_cols(1); | |
| 211 | state->m_tilemap_1->set_transparent_pen(15); | |
| 198 | state->m_tilemap_1->set_scroll_rows(1); | |
| 199 | state->m_tilemap_1->set_scroll_cols(1); | |
| 200 | state->m_tilemap_1->set_transparent_pen(15); | |
| 212 | 201 | } |
| 213 | 202 | |
| 214 | 203 |
| r17673 | r17674 | |
|---|---|---|
| 127 | 127 | } |
| 128 | 128 | |
| 129 | 129 | |
| 130 | ||
| 130 | ||
| 131 | 131 | { |
| 132 | UINT8 *tilerom = machine.root_device().memregion("gfx5")->base(); | |
| 132 | UINT8 *tilerom = machine().root_device().memregion("gfx5")->base(); | |
| 133 | 133 | |
| 134 | 134 | int attr = tilerom[tile_index]; |
| 135 | 135 | int code = attr & 0x3f; |
| 136 | 136 | int color = tilerom[tile_index + (8 * 8)]; |
| 137 | 137 | int flags = ((attr & 0x40) ? TILE_FLIPX : 0) | ((attr & 0x80) ? TILE_FLIPY : 0); |
| 138 | 138 | |
| 139 | SET_TILE_INFO(1, code, color, flags); | |
| 139 | SET_TILE_INFO_MEMBER(1, code, color, flags); | |
| 140 | 140 | } |
| 141 | 141 | |
| 142 | ||
| 142 | ||
| 143 | 143 | { |
| 144 | int code = machine.root_device().memregion("gfx5")->base()[tile_index]; | |
| 144 | int code = machine().root_device().memregion("gfx5")->base()[tile_index]; | |
| 145 | 145 | |
| 146 | SET_TILE_INFO(2, code, 0, 0); | |
| 146 | SET_TILE_INFO_MEMBER(2, code, 0, 0); | |
| 147 | 147 | } |
| 148 | 148 | |
| 149 | ||
| 149 | ||
| 150 | 150 | { |
| 151 | exedexes_state *state = machine.driver_data<exedexes_state>(); | |
| 152 | int code = state->m_videoram[tile_index] + 2 * (state->m_colorram[tile_index] & 0x80); | |
| 153 | int color = state->m_colorram[tile_index] & 0x3f; | |
| 151 | int code = m_videoram[tile_index] + 2 * (m_colorram[tile_index] & 0x80); | |
| 152 | int color = m_colorram[tile_index] & 0x3f; | |
| 154 | 153 | |
| 155 | 154 | tileinfo.group = color; |
| 156 | 155 | |
| 157 | SET_TILE_INFO(0, code, color, 0); | |
| 156 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 158 | 157 | } |
| 159 | 158 | |
| 160 | ||
| 159 | ||
| 161 | 160 | { |
| 162 | 161 | /* logical (col,row) -> memory offset */ |
| 163 | 162 | return ((col * 32 & 0xe0) >> 5) + ((row * 32 & 0xe0) >> 2) + ((col * 32 & 0x3f00) >> 1) + 0x4000; |
| 164 | 163 | } |
| 165 | 164 | |
| 166 | ||
| 165 | ||
| 167 | 166 | { |
| 168 | 167 | /* logical (col,row) -> memory offset */ |
| 169 | 168 | return ((col * 16 & 0xf0) >> 4) + (row * 16 & 0xf0) + (col * 16 & 0x700) + ((row * 16 & 0x700) << 3); |
| r17673 | r17674 | |
| 173 | 172 | { |
| 174 | 173 | exedexes_state *state = machine.driver_data<exedexes_state>(); |
| 175 | 174 | |
| 176 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, exedexes_bg_tilemap_scan, 32, 32, 64, 64); | |
| 177 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, exedexes_fg_tilemap_scan, 16, 16, 128, 128); | |
| 178 | state->m_tx_tilemap = tilemap_create(machine, get_tx_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 175 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(exedexes_state::get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(exedexes_state::exedexes_bg_tilemap_scan),state), 32, 32, 64, 64); | |
| 176 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(exedexes_state::get_fg_tile_info),state), tilemap_mapper_delegate(FUNC(exedexes_state::exedexes_fg_tilemap_scan),state), 16, 16, 128, 128); | |
| 177 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(exedexes_state::get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 179 | 178 | |
| 180 | 179 | state->m_fg_tilemap->set_transparent_pen(0); |
| 181 | 180 | colortable_configure_tilemap_groups(machine.colortable, state->m_tx_tilemap, machine.gfx[0], 0xcf); |
| r17673 | r17674 | |
|---|---|---|
| 272 | 272 | |
| 273 | 273 | |
| 274 | 274 | |
| 275 | ||
| 275 | ||
| 276 | 276 | { |
| 277 | skns_state *state = machine.driver_data<skns_state>(); | |
| 278 | int code = ((state->m_tilemapA_ram[tile_index] & 0x001fffff) >> 0 ); | |
| 279 | int colr = ((state->m_tilemapA_ram[tile_index] & 0x3f000000) >> 24 ); | |
| 280 | int pri = ((state->m_tilemapA_ram[tile_index] & 0x00e00000) >> 21 ); | |
| 281 | int depth = (state->m_v3_regs[0x0c/4] & 0x0001) << 1; | |
| 277 | int code = ((m_tilemapA_ram[tile_index] & 0x001fffff) >> 0 ); | |
| 278 | int colr = ((m_tilemapA_ram[tile_index] & 0x3f000000) >> 24 ); | |
| 279 | int pri = ((m_tilemapA_ram[tile_index] & 0x00e00000) >> 21 ); | |
| 280 | int depth = (m_v3_regs[0x0c/4] & 0x0001) << 1; | |
| 282 | 281 | int flags = 0; |
| 283 | 282 | |
| 284 | if(state->m_tilemapA_ram[tile_index] & 0x80000000) flags |= TILE_FLIPX; | |
| 285 | if(state->m_tilemapA_ram[tile_index] & 0x40000000) flags |= TILE_FLIPY; | |
| 283 | if(m_tilemapA_ram[tile_index] & 0x80000000) flags |= TILE_FLIPX; | |
| 284 | if(m_tilemapA_ram[tile_index] & 0x40000000) flags |= TILE_FLIPY; | |
| 286 | 285 | |
| 287 | SET_TILE_INFO( | |
| 286 | SET_TILE_INFO_MEMBER( | |
| 288 | 287 | 0+depth, |
| 289 | 288 | code, |
| 290 | 289 | 0x40+colr, |
| r17673 | r17674 | |
| 300 | 299 | m_tilemap_A->mark_tile_dirty(offset); |
| 301 | 300 | } |
| 302 | 301 | |
| 303 | ||
| 302 | ||
| 304 | 303 | { |
| 305 | skns_state *state = machine.driver_data<skns_state>(); | |
| 306 | int code = ((state->m_tilemapB_ram[tile_index] & 0x001fffff) >> 0 ); | |
| 307 | int colr = ((state->m_tilemapB_ram[tile_index] & 0x3f000000) >> 24 ); | |
| 308 | int pri = ((state->m_tilemapB_ram[tile_index] & 0x00e00000) >> 21 ); | |
| 309 | int depth = (state->m_v3_regs[0x0c/4] & 0x0100) >> 7; | |
| 304 | int code = ((m_tilemapB_ram[tile_index] & 0x001fffff) >> 0 ); | |
| 305 | int colr = ((m_tilemapB_ram[tile_index] & 0x3f000000) >> 24 ); | |
| 306 | int pri = ((m_tilemapB_ram[tile_index] & 0x00e00000) >> 21 ); | |
| 307 | int depth = (m_v3_regs[0x0c/4] & 0x0100) >> 7; | |
| 310 | 308 | int flags = 0; |
| 311 | 309 | |
| 312 | if(state->m_tilemapB_ram[tile_index] & 0x80000000) flags |= TILE_FLIPX; | |
| 313 | if(state->m_tilemapB_ram[tile_index] & 0x40000000) flags |= TILE_FLIPY; | |
| 310 | if(m_tilemapB_ram[tile_index] & 0x80000000) flags |= TILE_FLIPX; | |
| 311 | if(m_tilemapB_ram[tile_index] & 0x40000000) flags |= TILE_FLIPY; | |
| 314 | 312 | |
| 315 | SET_TILE_INFO( | |
| 313 | SET_TILE_INFO_MEMBER( | |
| 316 | 314 | 1+depth, |
| 317 | 315 | code, |
| 318 | 316 | 0x40+colr, |
| r17673 | r17674 | |
| 354 | 352 | |
| 355 | 353 | state->m_spritegen = machine.device<sknsspr_device>("spritegen"); |
| 356 | 354 | |
| 357 | state->m_tilemap_A = tilemap | |
| 355 | state->m_tilemap_A = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(skns_state::get_tilemap_A_tile_info),state),TILEMAP_SCAN_ROWS,16,16,64, 64); | |
| 358 | 356 | state->m_tilemap_A->set_transparent_pen(0); |
| 359 | 357 | |
| 360 | state->m_tilemap_B = tilemap | |
| 358 | state->m_tilemap_B = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(skns_state::get_tilemap_B_tile_info),state),TILEMAP_SCAN_ROWS,16,16,64, 64); | |
| 361 | 359 | state->m_tilemap_B->set_transparent_pen(0); |
| 362 | 360 | |
| 363 | 361 | state->m_sprite_bitmap.allocate(1024,1024); |
| r17673 | r17674 | |
|---|---|---|
| 14 | 14 | |
| 15 | 15 | ***************************************************************************/ |
| 16 | 16 | |
| 17 | ||
| 17 | ||
| 18 | 18 | { |
| 19 | flkatck_state *state = machine.driver_data<flkatck_state>(); | |
| 20 | UINT8 ctrl_0 = k007121_ctrlram_r(state->m_k007121, 0); | |
| 21 | UINT8 ctrl_2 = k007121_ctrlram_r(state->m_k007121, 2); | |
| 22 | UINT8 ctrl_3 = k007121_ctrlram_r(state->m_k007121, 3); | |
| 23 | UINT8 ctrl_4 = k007121_ctrlram_r(state->m_k007121, 4); | |
| 24 | UINT8 ctrl_5 = k007121_ctrlram_r(state->m_k007121, 5); | |
| 25 | int attr = state->m_k007121_ram[tile_index]; | |
| 26 | int code = state->m_k007121_ram[tile_index + 0x400]; | |
| 19 | UINT8 ctrl_0 = k007121_ctrlram_r(m_k007121, 0); | |
| 20 | UINT8 ctrl_2 = k007121_ctrlram_r(m_k007121, 2); | |
| 21 | UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121, 3); | |
| 22 | UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121, 4); | |
| 23 | UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121, 5); | |
| 24 | int attr = m_k007121_ram[tile_index]; | |
| 25 | int code = m_k007121_ram[tile_index + 0x400]; | |
| 27 | 26 | int bit0 = (ctrl_5 >> 0) & 0x03; |
| 28 | 27 | int bit1 = (ctrl_5 >> 2) & 0x03; |
| 29 | 28 | int bit2 = (ctrl_5 >> 4) & 0x03; |
| r17673 | r17674 | |
| 42 | 41 | bank = 0; /* this allows the game to print text |
| 43 | 42 | in all banks selected by the k007121 */ |
| 44 | 43 | |
| 45 | SET_TILE_INFO( | |
| 44 | SET_TILE_INFO_MEMBER( | |
| 46 | 45 | 0, |
| 47 | 46 | code + 256*bank, |
| 48 | 47 | (attr & 0x0f) + 16, |
| 49 | 48 | (attr & 0x20) ? TILE_FLIPY : 0); |
| 50 | 49 | } |
| 51 | 50 | |
| 52 | ||
| 51 | ||
| 53 | 52 | { |
| 54 | flkatck_state *state = machine.driver_data<flkatck_state>(); | |
| 55 | int attr = state->m_k007121_ram[tile_index + 0x800]; | |
| 56 | int code = state->m_k007121_ram[tile_index + 0xc00]; | |
| 53 | int attr = m_k007121_ram[tile_index + 0x800]; | |
| 54 | int code = m_k007121_ram[tile_index + 0xc00]; | |
| 57 | 55 | |
| 58 | SET_TILE_INFO( | |
| 56 | SET_TILE_INFO_MEMBER( | |
| 59 | 57 | 0, |
| 60 | 58 | code, |
| 61 | 59 | (attr & 0x0f) + 16, |
| r17673 | r17674 | |
| 72 | 70 | VIDEO_START( flkatck ) |
| 73 | 71 | { |
| 74 | 72 | flkatck_state *state = machine.driver_data<flkatck_state>(); |
| 75 | state->m_k007121_tilemap[0] = tilemap_create(machine, get_tile_info_A, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 76 | state->m_k007121_tilemap[1] = tilemap_create(machine, get_tile_info_B, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 73 | state->m_k007121_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(flkatck_state::get_tile_info_A),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 74 | state->m_k007121_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(flkatck_state::get_tile_info_B),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 77 | 75 | } |
| 78 | 76 | |
| 79 | 77 |
| r17673 | r17674 | |
|---|---|---|
| 39 | 39 | |
| 40 | 40 | |
| 41 | 41 | |
| 42 | ||
| 42 | ||
| 43 | 43 | { |
| 44 | shootout_state *state = machine.driver_data<shootout_state>(); | |
| 45 | int attributes = state->m_videoram[tile_index+0x400]; /* CCCC -TTT */ | |
| 46 | int tile_number = state->m_videoram[tile_index] + 256*(attributes&7); | |
| 44 | int attributes = m_videoram[tile_index+0x400]; /* CCCC -TTT */ | |
| 45 | int tile_number = m_videoram[tile_index] + 256*(attributes&7); | |
| 47 | 46 | int color = attributes>>4; |
| 48 | 47 | |
| 49 | SET_TILE_INFO( | |
| 48 | SET_TILE_INFO_MEMBER( | |
| 50 | 49 | 2, |
| 51 | 50 | tile_number, |
| 52 | 51 | color, |
| 53 | 52 | 0); |
| 54 | 53 | } |
| 55 | 54 | |
| 56 | ||
| 55 | ||
| 57 | 56 | { |
| 58 | shootout_state *state = machine.driver_data<shootout_state>(); | |
| 59 | int attributes = state->m_textram[tile_index+0x400]; /* CCCC --TT */ | |
| 60 | int tile_number = state->m_textram[tile_index] + 256*(attributes&0x3); | |
| 57 | int attributes = m_textram[tile_index+0x400]; /* CCCC --TT */ | |
| 58 | int tile_number = m_textram[tile_index] + 256*(attributes&0x3); | |
| 61 | 59 | int color = attributes>>4; |
| 62 | 60 | |
| 63 | SET_TILE_INFO( | |
| 61 | SET_TILE_INFO_MEMBER( | |
| 64 | 62 | 0, |
| 65 | 63 | tile_number, |
| 66 | 64 | color, |
| r17673 | r17674 | |
| 85 | 83 | { |
| 86 | 84 | shootout_state *state = machine.driver_data<shootout_state>(); |
| 87 | 85 | |
| 88 | state->m_background = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 89 | state->m_foreground = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 86 | state->m_background = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(shootout_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 87 | state->m_foreground = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(shootout_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 90 | 88 | state->m_foreground->set_transparent_pen(0 ); |
| 91 | 89 | } |
| 92 | 90 |
| r17673 | r17674 | |
|---|---|---|
| 76 | 76 | |
| 77 | 77 | ***************************************************************************/ |
| 78 | 78 | |
| 79 | ||
| 79 | ||
| 80 | 80 | { |
| 81 | contra_state *state = machine.driver_data<contra_state>(); | |
| 82 | UINT8 ctrl_3 = k007121_ctrlram_r(state->m_k007121_1, 3); | |
| 83 | UINT8 ctrl_4 = k007121_ctrlram_r(state->m_k007121_1, 4); | |
| 84 | UINT8 ctrl_5 = k007121_ctrlram_r(state->m_k007121_1, 5); | |
| 85 | UINT8 ctrl_6 = k007121_ctrlram_r(state->m_k007121_1, 6); | |
| 86 | int attr = state->m_fg_cram[tile_index]; | |
| 81 | UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121_1, 3); | |
| 82 | UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121_1, 4); | |
| 83 | UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121_1, 5); | |
| 84 | UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_1, 6); | |
| 85 | int attr = m_fg_cram[tile_index]; | |
| 87 | 86 | int bit0 = (ctrl_5 >> 0) & 0x03; |
| 88 | 87 | int bit1 = (ctrl_5 >> 2) & 0x03; |
| 89 | 88 | int bit2 = (ctrl_5 >> 4) & 0x03; |
| r17673 | r17674 | |
| 98 | 97 | |
| 99 | 98 | bank = (bank & ~(mask << 1)) | ((ctrl_4 & mask) << 1); |
| 100 | 99 | |
| 101 | SET_TILE_INFO( | |
| 100 | SET_TILE_INFO_MEMBER( | |
| 102 | 101 | 0, |
| 103 | | |
| 102 | | |
| 104 | 103 | ((ctrl_6 & 0x30) * 2 + 16) + (attr & 7), |
| 105 | 104 | 0); |
| 106 | 105 | } |
| 107 | 106 | |
| 108 | ||
| 107 | ||
| 109 | 108 | { |
| 110 | contra_state *state = machine.driver_data<contra_state>(); | |
| 111 | UINT8 ctrl_3 = k007121_ctrlram_r(state->m_k007121_2, 3); | |
| 112 | UINT8 ctrl_4 = k007121_ctrlram_r(state->m_k007121_2, 4); | |
| 113 | UINT8 ctrl_5 = k007121_ctrlram_r(state->m_k007121_2, 5); | |
| 114 | UINT8 ctrl_6 = k007121_ctrlram_r(state->m_k007121_2, 6); | |
| 115 | int attr = state->m_bg_cram[tile_index]; | |
| 109 | UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121_2, 3); | |
| 110 | UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121_2, 4); | |
| 111 | UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121_2, 5); | |
| 112 | UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_2, 6); | |
| 113 | int attr = m_bg_cram[tile_index]; | |
| 116 | 114 | int bit0 = (ctrl_5 >> 0) & 0x03; |
| 117 | 115 | int bit1 = (ctrl_5 >> 2) & 0x03; |
| 118 | 116 | int bit2 = (ctrl_5 >> 4) & 0x03; |
| r17673 | r17674 | |
| 128 | 126 | // 2009-12 FP: TO BE VERIFIED - old code used ctrl4 from chip 0?!? |
| 129 | 127 | bank = (bank & ~(mask << 1)) | ((ctrl_4 & mask) << 1); |
| 130 | 128 | |
| 131 | SET_TILE_INFO( | |
| 129 | SET_TILE_INFO_MEMBER( | |
| 132 | 130 | 1, |
| 133 | | |
| 131 | | |
| 134 | 132 | ((ctrl_6 & 0x30) * 2 + 16) + (attr & 7), |
| 135 | 133 | 0); |
| 136 | 134 | } |
| 137 | 135 | |
| 138 | ||
| 136 | ||
| 139 | 137 | { |
| 140 | contra_state *state = machine.driver_data<contra_state>(); | |
| 141 | UINT8 ctrl_5 = k007121_ctrlram_r(state->m_k007121_1, 5); | |
| 142 | UINT8 ctrl_6 = k007121_ctrlram_r(state->m_k007121_1, 6); | |
| 143 | int attr = state->m_tx_cram[tile_index]; | |
| 138 | UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121_1, 5); | |
| 139 | UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_1, 6); | |
| 140 | int attr = m_tx_cram[tile_index]; | |
| 144 | 141 | int bit0 = (ctrl_5 >> 0) & 0x03; |
| 145 | 142 | int bit1 = (ctrl_5 >> 2) & 0x03; |
| 146 | 143 | int bit2 = (ctrl_5 >> 4) & 0x03; |
| r17673 | r17674 | |
| 151 | 148 | ((attr >> (bit2 )) & 0x08) | |
| 152 | 149 | ((attr >> (bit3 - 1)) & 0x10); |
| 153 | 150 | |
| 154 | SET_TILE_INFO( | |
| 151 | SET_TILE_INFO_MEMBER( | |
| 155 | 152 | 0, |
| 156 | | |
| 153 | | |
| 157 | 154 | ((ctrl_6 & 0x30) * 2 + 16) + (attr & 7), |
| 158 | 155 | 0); |
| 159 | 156 | } |
| r17673 | r17674 | |
| 169 | 166 | { |
| 170 | 167 | contra_state *state = machine.driver_data<contra_state>(); |
| 171 | 168 | |
| 172 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 173 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 174 | state->m_tx_tilemap = tilemap_create(machine, get_tx_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 169 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(contra_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 170 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(contra_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 171 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(contra_state::get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 175 | 172 | |
| 176 | 173 | state->m_buffered_spriteram = auto_alloc_array(machine, UINT8, 0x800); |
| 177 | 174 | state->m_buffered_spriteram_2 = auto_alloc_array(machine, UINT8, 0x800); |
| r17673 | r17674 | |
|---|---|---|
| 95 | 95 | } |
| 96 | 96 | } |
| 97 | 97 | |
| 98 | ||
| 98 | ||
| 99 | 99 | { |
| 100 | paradise_state *state = machine.driver_data<paradise_state>(); | |
| 101 | int code = state->m_vram_0[tile_index] + (state->m_vram_0[tile_index + 0x400] << 8); | |
| 102 | SET_TILE_INFO(1, code, state->m_palbank, 0); | |
| 100 | int code = m_vram_0[tile_index] + (m_vram_0[tile_index + 0x400] << 8); | |
| 101 | SET_TILE_INFO_MEMBER(1, code, m_palbank, 0); | |
| 103 | 102 | } |
| 104 | 103 | |
| 105 | 104 | |
| r17673 | r17674 | |
| 110 | 109 | m_tilemap_1->mark_tile_dirty(offset % 0x400); |
| 111 | 110 | } |
| 112 | 111 | |
| 113 | ||
| 112 | ||
| 114 | 113 | { |
| 115 | paradise_state *state = machine.driver_data<paradise_state>(); | |
| 116 | int code = state->m_vram_1[tile_index] + (state->m_vram_1[tile_index + 0x400] << 8); | |
| 117 | SET_TILE_INFO(2, code, 0, 0); | |
| 114 | int code = m_vram_1[tile_index] + (m_vram_1[tile_index + 0x400] << 8); | |
| 115 | SET_TILE_INFO_MEMBER(2, code, 0, 0); | |
| 118 | 116 | } |
| 119 | 117 | |
| 120 | 118 | |
| r17673 | r17674 | |
| 125 | 123 | m_tilemap_2->mark_tile_dirty(offset % 0x400); |
| 126 | 124 | } |
| 127 | 125 | |
| 128 | ||
| 126 | ||
| 129 | 127 | { |
| 130 | paradise_state *state = machine.driver_data<paradise_state>(); | |
| 131 | int code = state->m_vram_2[tile_index] + (state->m_vram_2[tile_index + 0x400] << 8); | |
| 132 | SET_TILE_INFO(3, code, 0, 0); | |
| 128 | int code = m_vram_2[tile_index] + (m_vram_2[tile_index + 0x400] << 8); | |
| 129 | SET_TILE_INFO_MEMBER(3, code, 0, 0); | |
| 133 | 130 | } |
| 134 | 131 | |
| 135 | 132 | /* 256 x 256 bitmap. 4 bits per pixel so every byte encodes 2 pixels */ |
| r17673 | r17674 | |
| 158 | 155 | { |
| 159 | 156 | paradise_state *state = machine.driver_data<paradise_state>(); |
| 160 | 157 | |
| 161 | state->m_tilemap_0 = tilemap_create(machine, get_tile_info_0, TILEMAP_SCAN_ROWS, 8, 8, 0x20, 0x20); | |
| 162 | state->m_tilemap_1 = tilemap_create(machine, get_tile_info_1, TILEMAP_SCAN_ROWS, 8, 8, 0x20, 0x20); | |
| 163 | state->m_tilemap_2 = tilemap_create(machine, get_tile_info_2, TILEMAP_SCAN_ROWS, 8, 8, 0x20, 0x20); | |
| 158 | state->m_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(paradise_state::get_tile_info_0),state), TILEMAP_SCAN_ROWS, 8, 8, 0x20, 0x20); | |
| 159 | state->m_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(paradise_state::get_tile_info_1),state), TILEMAP_SCAN_ROWS, 8, 8, 0x20, 0x20); | |
| 160 | state->m_tilemap_2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(paradise_state::get_tile_info_2),state), TILEMAP_SCAN_ROWS, 8, 8, 0x20, 0x20); | |
| 164 | 161 | |
| 165 | 162 | /* pixmap */ |
| 166 | 163 | machine.primary_screen->register_screen_bitmap(state->m_tmpbitmap); |
| r17673 | r17674 | |
|---|---|---|
| 128 | 128 | * I'm not sure how to handle attributes about color |
| 129 | 129 | */ |
| 130 | 130 | |
| 131 | ||
| 131 | ||
| 132 | 132 | { |
| 133 | chaknpop_state *state = machine.driver_data<chaknpop_state>(); | |
| 134 | int tile = state->m_tx_ram[tile_index]; | |
| 135 | int tile_h_bank = (state->m_gfxmode & GFX_TX_BANK2) << 2; /* 0x00-0xff -> 0x200-0x2ff */ | |
| 136 | int color = state->m_attr_ram[TX_COLOR2]; | |
| 133 | int tile = m_tx_ram[tile_index]; | |
| 134 | int tile_h_bank = (m_gfxmode & GFX_TX_BANK2) << 2; /* 0x00-0xff -> 0x200-0x2ff */ | |
| 135 | int color = m_attr_ram[TX_COLOR2]; | |
| 137 | 136 | |
| 138 | 137 | if (tile == 0x74) |
| 139 | color = | |
| 138 | color = | |
| 140 | 139 | |
| 141 | if ( | |
| 140 | if ( | |
| 142 | 141 | tile += 0xc0; /* 0xc0-0xff -> 0x180-0x1bf */ |
| 143 | 142 | |
| 144 | 143 | tile |= tile_h_bank; |
| 145 | 144 | |
| 146 | SET_TILE_INFO(1, tile, color, 0); | |
| 145 | SET_TILE_INFO_MEMBER(1, tile, color, 0); | |
| 147 | 146 | } |
| 148 | 147 | |
| 149 | 148 | |
| r17673 | r17674 | |
| 157 | 156 | UINT8 *RAM = state->memregion("maincpu")->base(); |
| 158 | 157 | |
| 159 | 158 | /* info offset type w h col row */ |
| 160 | state->m_tx_tilemap = tilemap | |
| 159 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(chaknpop_state::chaknpop_get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 161 | 160 | |
| 162 | 161 | state->m_vram1 = &RAM[0x10000]; |
| 163 | 162 | state->m_vram2 = &RAM[0x12000]; |
| r17673 | r17674 | |
|---|---|---|
| 41 | 41 | } |
| 42 | 42 | } |
| 43 | 43 | |
| 44 | ||
| 44 | ||
| 45 | 45 | { |
| 46 | fitfight_state *state = machine.driver_data<fitfight_state>(); | |
| 47 | int code = state->m_fof_bak_tileram[tile_index * 2 + 1]; | |
| 48 | int colr = state->m_fof_bak_tileram[tile_index * 2] & 0x1f; | |
| 49 | int xflip = (state->m_fof_bak_tileram[tile_index * 2] & 0x0020) >> 5; | |
| 46 | int code = m_fof_bak_tileram[tile_index * 2 + 1]; | |
| 47 | int colr = m_fof_bak_tileram[tile_index * 2] & 0x1f; | |
| 48 | int xflip = (m_fof_bak_tileram[tile_index * 2] & 0x0020) >> 5; | |
| 50 | 49 | xflip ^= 1; |
| 51 | 50 | |
| 52 | SET_TILE_INFO(2, code, colr, TILE_FLIPYX(xflip)); | |
| 51 | SET_TILE_INFO_MEMBER(2, code, colr, TILE_FLIPYX(xflip)); | |
| 53 | 52 | } |
| 54 | 53 | |
| 55 | 54 | WRITE16_MEMBER(fitfight_state::fof_bak_tileram_w) |
| r17673 | r17674 | |
| 60 | 59 | } |
| 61 | 60 | |
| 62 | 61 | |
| 63 | ||
| 62 | ||
| 64 | 63 | { |
| 65 | fitfight_state *state = machine.driver_data<fitfight_state>(); | |
| 66 | int code = state->m_fof_mid_tileram[tile_index * 2 + 1]; | |
| 67 | int colr = state->m_fof_mid_tileram[tile_index * 2] & 0x1f; | |
| 68 | int xflip = (state->m_fof_mid_tileram[tile_index * 2] & 0x0020) >> 5; | |
| 64 | int code = m_fof_mid_tileram[tile_index * 2 + 1]; | |
| 65 | int colr = m_fof_mid_tileram[tile_index * 2] & 0x1f; | |
| 66 | int xflip = (m_fof_mid_tileram[tile_index * 2] & 0x0020) >> 5; | |
| 69 | 67 | xflip ^= 1; |
| 70 | 68 | |
| 71 | SET_TILE_INFO(1, code, colr, TILE_FLIPYX(xflip)); | |
| 69 | SET_TILE_INFO_MEMBER(1, code, colr, TILE_FLIPYX(xflip)); | |
| 72 | 70 | } |
| 73 | 71 | |
| 74 | 72 | WRITE16_MEMBER(fitfight_state::fof_mid_tileram_w) |
| r17673 | r17674 | |
| 78 | 76 | m_fof_mid_tilemap->mark_tile_dirty(offset / 2); |
| 79 | 77 | } |
| 80 | 78 | |
| 81 | ||
| 79 | ||
| 82 | 80 | { |
| 83 | fitfight_state *state = machine.driver_data<fitfight_state>(); | |
| 84 | int code = state->m_fof_txt_tileram[tile_index * 2 + 1]; | |
| 85 | int colr = state->m_fof_txt_tileram[tile_index * 2] & 0x1f; | |
| 86 | int xflip = (state->m_fof_txt_tileram[tile_index * 2] & 0x0020) >> 5; | |
| 81 | int code = m_fof_txt_tileram[tile_index * 2 + 1]; | |
| 82 | int colr = m_fof_txt_tileram[tile_index * 2] & 0x1f; | |
| 83 | int xflip = (m_fof_txt_tileram[tile_index * 2] & 0x0020) >> 5; | |
| 87 | 84 | xflip ^= 1; |
| 88 | 85 | |
| 89 | SET_TILE_INFO(0, code, colr, TILE_FLIPYX(xflip)); | |
| 86 | SET_TILE_INFO_MEMBER(0, code, colr, TILE_FLIPYX(xflip)); | |
| 90 | 87 | } |
| 91 | 88 | |
| 92 | 89 | WRITE16_MEMBER(fitfight_state::fof_txt_tileram_w) |
| r17673 | r17674 | |
| 101 | 98 | VIDEO_START(fitfight) |
| 102 | 99 | { |
| 103 | 100 | fitfight_state *state = machine.driver_data<fitfight_state>(); |
| 104 | state->m_fof_bak_tilemap = tilemap | |
| 101 | state->m_fof_bak_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fitfight_state::get_fof_bak_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 128, 32); | |
| 105 | 102 | /* opaque */ |
| 106 | 103 | |
| 107 | state->m_fof_mid_tilemap = tilemap | |
| 104 | state->m_fof_mid_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fitfight_state::get_fof_mid_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 128, 32); | |
| 108 | 105 | state->m_fof_mid_tilemap->set_transparent_pen(0); |
| 109 | 106 | |
| 110 | state->m_fof_txt_tilemap = tilemap | |
| 107 | state->m_fof_txt_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fitfight_state::get_fof_txt_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 128, 32); | |
| 111 | 108 | state->m_fof_txt_tilemap->set_transparent_pen(0); |
| 112 | 109 | } |
| 113 | 110 |
| r17673 | r17674 | |
|---|---|---|
| 9 | 9 | #include "includes/ashnojoe.h" |
| 10 | 10 | |
| 11 | 11 | |
| 12 | ||
| 12 | ||
| 13 | 13 | { |
| 14 | ashnojoe_state *state = machine.driver_data<ashnojoe_state>(); | |
| 15 | int code = state->m_tileram[tile_index]; | |
| 14 | int code = m_tileram[tile_index]; | |
| 16 | 15 | |
| 17 | SET_TILE_INFO( | |
| 16 | SET_TILE_INFO_MEMBER( | |
| 18 | 17 | 2, |
| 19 | 18 | code & 0xfff, |
| 20 | 19 | ((code >> 12) & 0x0f), |
| 21 | 20 | 0); |
| 22 | 21 | } |
| 23 | 22 | |
| 24 | ||
| 23 | ||
| 25 | 24 | { |
| 26 | ashnojoe_state *state = machine.driver_data<ashnojoe_state>(); | |
| 27 | int code = state->m_tileram_2[tile_index * 2]; | |
| 28 | int attr = state->m_tileram_2[tile_index * 2 + 1]; | |
| 25 | int code = m_tileram_2[tile_index * 2]; | |
| 26 | int attr = m_tileram_2[tile_index * 2 + 1]; | |
| 29 | 27 | |
| 30 | SET_TILE_INFO( | |
| 28 | SET_TILE_INFO_MEMBER( | |
| 31 | 29 | 4, |
| 32 | 30 | (code & 0x7fff), |
| 33 | 31 | ((attr >> 8) & 0x1f) + 0x40, |
| 34 | 32 | 0); |
| 35 | 33 | } |
| 36 | 34 | |
| 37 | ||
| 35 | ||
| 38 | 36 | { |
| 39 | ashnojoe_state *state = machine.driver_data<ashnojoe_state>(); | |
| 40 | int code = state->m_tileram_3[tile_index]; | |
| 37 | int code = m_tileram_3[tile_index]; | |
| 41 | 38 | |
| 42 | SET_TILE_INFO( | |
| 39 | SET_TILE_INFO_MEMBER( | |
| 43 | 40 | 0, |
| 44 | 41 | code & 0xfff, |
| 45 | 42 | ((code >> 12) & 0x0f) + 0x10, |
| 46 | 43 | 0); |
| 47 | 44 | } |
| 48 | 45 | |
| 49 | ||
| 46 | ||
| 50 | 47 | { |
| 51 | ashnojoe_state *state = machine.driver_data<ashnojoe_state>(); | |
| 52 | int code = state->m_tileram_4[tile_index]; | |
| 48 | int code = m_tileram_4[tile_index]; | |
| 53 | 49 | |
| 54 | SET_TILE_INFO( | |
| 50 | SET_TILE_INFO_MEMBER( | |
| 55 | 51 | 1, |
| 56 | 52 | code & 0xfff, |
| 57 | 53 | ((code >> 12) & 0x0f) + 0x60, |
| 58 | 54 | 0); |
| 59 | 55 | } |
| 60 | 56 | |
| 61 | ||
| 57 | ||
| 62 | 58 | { |
| 63 | ashnojoe_state *state = machine.driver_data<ashnojoe_state>(); | |
| 64 | int code = state->m_tileram_5[tile_index * 2]; | |
| 65 | int attr = state->m_tileram_5[tile_index * 2 + 1]; | |
| 59 | int code = m_tileram_5[tile_index * 2]; | |
| 60 | int attr = m_tileram_5[tile_index * 2 + 1]; | |
| 66 | 61 | |
| 67 | SET_TILE_INFO( | |
| 62 | SET_TILE_INFO_MEMBER( | |
| 68 | 63 | 4, |
| 69 | 64 | (code & 0x7fff), |
| 70 | 65 | ((attr >> 8) & 0x1f) + 0x20, |
| 71 | 66 | 0); |
| 72 | 67 | } |
| 73 | 68 | |
| 74 | ||
| 69 | ||
| 75 | 70 | { |
| 76 | ashnojoe_state *state = machine.driver_data<ashnojoe_state>(); | |
| 77 | int code = state->m_tileram_6[tile_index * 2]; | |
| 78 | int attr = state->m_tileram_6[tile_index * 2 + 1]; | |
| 71 | int code = m_tileram_6[tile_index * 2]; | |
| 72 | int attr = m_tileram_6[tile_index * 2 + 1]; | |
| 79 | 73 | |
| 80 | SET_TILE_INFO( | |
| 74 | SET_TILE_INFO_MEMBER( | |
| 81 | 75 | 3, |
| 82 | 76 | (code & 0x1fff), |
| 83 | 77 | ((attr >> 8) & 0x1f) + 0x70, |
| r17673 | r17674 | |
| 85 | 79 | } |
| 86 | 80 | |
| 87 | 81 | |
| 88 | ||
| 82 | ||
| 89 | 83 | { |
| 90 | ashnojoe_state *state = machine.driver_data<ashnojoe_state>(); | |
| 91 | int code = state->m_tileram_7[tile_index * 2]; | |
| 92 | int attr = state->m_tileram_7[tile_index * 2 + 1]; | |
| 84 | int code = m_tileram_7[tile_index * 2]; | |
| 85 | int attr = m_tileram_7[tile_index * 2 + 1]; | |
| 93 | 86 | |
| 94 | SET_TILE_INFO( | |
| 87 | SET_TILE_INFO_MEMBER( | |
| 95 | 88 | 3, |
| 96 | 89 | (code & 0x1fff), |
| 97 | 90 | ((attr >> 8) & 0x1f) + 0x70, |
| r17673 | r17674 | |
| 200 | 193 | { |
| 201 | 194 | ashnojoe_state *state = machine.driver_data<ashnojoe_state>(); |
| 202 | 195 | |
| 203 | state->m_joetilemap = tilemap_create(machine, get_joe_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 204 | state->m_joetilemap2 = tilemap_create(machine, get_joe_tile_info_2, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 205 | state->m_joetilemap3 = tilemap_create(machine, get_joe_tile_info_3, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 206 | state->m_joetilemap4 = tilemap_create(machine, get_joe_tile_info_4, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 207 | state->m_joetilemap5 = tilemap_create(machine, get_joe_tile_info_5, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 208 | state->m_joetilemap6 = tilemap_create(machine, get_joe_tile_info_6, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 209 | state->m_joetilemap7 = tilemap_create(machine, get_joe_tile_info_7, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 196 | state->m_joetilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ashnojoe_state::get_joe_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 197 | state->m_joetilemap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ashnojoe_state::get_joe_tile_info_2),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 198 | state->m_joetilemap3 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ashnojoe_state::get_joe_tile_info_3),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 199 | state->m_joetilemap4 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ashnojoe_state::get_joe_tile_info_4),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 200 | state->m_joetilemap5 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ashnojoe_state::get_joe_tile_info_5),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 201 | state->m_joetilemap6 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ashnojoe_state::get_joe_tile_info_6),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 202 | state->m_joetilemap7 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ashnojoe_state::get_joe_tile_info_7),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 210 | 203 | |
| 211 | 204 | state->m_joetilemap->set_transparent_pen(15); |
| 212 | 205 | state->m_joetilemap2->set_transparent_pen(15); |
| r17673 | r17674 | |
|---|---|---|
| 87 | 87 | |
| 88 | 88 | ***************************************************************************/ |
| 89 | 89 | |
| 90 | ||
| 90 | ||
| 91 | 91 | { |
| 92 | 92 | /* logical (col,row) -> memory offset */ |
| 93 | 93 | return (col & 0x1f) + ((row & 0x1f) << 5) + ((col & 0x20) << 6); /* skip 0x400 */ |
| 94 | 94 | } |
| 95 | 95 | |
| 96 | ||
| 96 | ||
| 97 | 97 | { |
| 98 | ddribble_state *state = machine.driver_data<ddribble_state>(); | |
| 99 | UINT8 attr = state->m_fg_videoram[tile_index]; | |
| 100 | int num = state->m_fg_videoram[tile_index + 0x400] + ((attr & 0xc0) << 2) + ((attr & 0x20) << 5) + ((state->m_charbank[0] & 2) << 10); | |
| 101 | SET_TILE_INFO( | |
| 98 | UINT8 attr = m_fg_videoram[tile_index]; | |
| 99 | int num = m_fg_videoram[tile_index + 0x400] + ((attr & 0xc0) << 2) + ((attr & 0x20) << 5) + ((m_charbank[0] & 2) << 10); | |
| 100 | SET_TILE_INFO_MEMBER( | |
| 102 | 101 | 0, |
| 103 | 102 | num, |
| 104 | 103 | 0, |
| 105 | 104 | TILE_FLIPYX((attr & 0x30) >> 4)); |
| 106 | 105 | } |
| 107 | 106 | |
| 108 | ||
| 107 | ||
| 109 | 108 | { |
| 110 | ddribble_state *state = machine.driver_data<ddribble_state>(); | |
| 111 | UINT8 attr = state->m_bg_videoram[tile_index]; | |
| 112 | int num = state->m_bg_videoram[tile_index + 0x400] + ((attr & 0xc0) << 2) + ((attr & 0x20) << 5) + (state->m_charbank[1] << 11); | |
| 113 | SET_TILE_INFO( | |
| 109 | UINT8 attr = m_bg_videoram[tile_index]; | |
| 110 | int num = m_bg_videoram[tile_index + 0x400] + ((attr & 0xc0) << 2) + ((attr & 0x20) << 5) + (m_charbank[1] << 11); | |
| 111 | SET_TILE_INFO_MEMBER( | |
| 114 | 112 | 1, |
| 115 | 113 | num, |
| 116 | 114 | 0, |
| r17673 | r17674 | |
| 127 | 125 | { |
| 128 | 126 | ddribble_state *state = machine.driver_data<ddribble_state>(); |
| 129 | 127 | |
| 130 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, tilemap_scan, 8, 8, 64, 32); | |
| 131 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, tilemap_scan, 8, 8, 64, 32); | |
| 128 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ddribble_state::get_fg_tile_info),state), tilemap_mapper_delegate(FUNC(ddribble_state::tilemap_scan),state), 8, 8, 64, 32); | |
| 129 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ddribble_state::get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(ddribble_state::tilemap_scan),state), 8, 8, 64, 32); | |
| 132 | 130 | |
| 133 | 131 | state->m_fg_tilemap->set_transparent_pen(0); |
| 134 | 132 | } |
| r17673 | r17674 | |
|---|---|---|
| 10 | 10 | #include "includes/terracre.h" |
| 11 | 11 | |
| 12 | 12 | |
| 13 | static | |
| 14 | TILE_GET_INFO( get_bg_tile_info ) | |
| 13 | TILE_GET_INFO_MEMBER(terracre_state::get_bg_tile_info) | |
| 15 | 14 | { |
| 16 | terracre_state *state = machine.driver_data<terracre_state>(); | |
| 17 | 15 | /* xxxx.----.----.---- |
| 18 | 16 | * ----.xx--.----.---- |
| 19 | 17 | * ----.--xx.xxxx.xxxx */ |
| 20 | unsigned data = | |
| 18 | unsigned data = | |
| 21 | 19 | unsigned color = data>>11; |
| 22 | SET_TILE_INFO( 1,data&0x3ff,color,0 ); | |
| 20 | SET_TILE_INFO_MEMBER( 1,data&0x3ff,color,0 ); | |
| 23 | 21 | } |
| 24 | 22 | |
| 25 | static | |
| 26 | TILE_GET_INFO( get_fg_tile_info ) | |
| 23 | TILE_GET_INFO_MEMBER(terracre_state::get_fg_tile_info) | |
| 27 | 24 | { |
| 28 | terracre_state *state = machine.driver_data<terracre_state>(); | |
| 29 | UINT16 *videoram = state->m_videoram; | |
| 25 | UINT16 *videoram = m_videoram; | |
| 30 | 26 | int data = videoram[tile_index]; |
| 31 | SET_TILE_INFO( 0,data&0xff,0,0 ); | |
| 27 | SET_TILE_INFO_MEMBER( 0,data&0xff,0,0 ); | |
| 32 | 28 | } |
| 33 | 29 | |
| 34 | 30 | static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ) |
| r17673 | r17674 | |
| 190 | 186 | VIDEO_START( amazon ) |
| 191 | 187 | { |
| 192 | 188 | terracre_state *state = machine.driver_data<terracre_state>(); |
| 193 | state->m_background = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_COLS,16,16,64,32); | |
| 194 | state->m_foreground = tilemap_create(machine, get_fg_tile_info,TILEMAP_SCAN_COLS,8,8,64,32); | |
| 189 | state->m_background = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(terracre_state::get_bg_tile_info),state),TILEMAP_SCAN_COLS,16,16,64,32); | |
| 190 | state->m_foreground = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(terracre_state::get_fg_tile_info),state),TILEMAP_SCAN_COLS,8,8,64,32); | |
| 195 | 191 | state->m_foreground->set_transparent_pen(0xf); |
| 196 | 192 | |
| 197 | 193 | /* register for saving */ |
| r17673 | r17674 | |
|---|---|---|
| 71 | 71 | m_right_tilemap->mark_tile_dirty(offset); |
| 72 | 72 | } |
| 73 | 73 | |
| 74 | ||
| 74 | ||
| 75 | 75 | { |
| 76 | grchamp_state *state = machine.driver_data<grchamp_state>(); | |
| 77 | SET_TILE_INFO(0, state->m_videoram[tile_index], 0, 0); | |
| 76 | SET_TILE_INFO_MEMBER(0, m_videoram[tile_index], 0, 0); | |
| 78 | 77 | } |
| 79 | 78 | |
| 80 | ||
| 79 | ||
| 81 | 80 | { |
| 82 | grchamp_state *state = machine.driver_data<grchamp_state>(); | |
| 83 | SET_TILE_INFO(1, state->m_leftram[tile_index], 0, 0); | |
| 81 | SET_TILE_INFO_MEMBER(1, m_leftram[tile_index], 0, 0); | |
| 84 | 82 | } |
| 85 | 83 | |
| 86 | ||
| 84 | ||
| 87 | 85 | { |
| 88 | grchamp_state *state = machine.driver_data<grchamp_state>(); | |
| 89 | SET_TILE_INFO(2, state->m_rightram[tile_index], 0, 0); | |
| 86 | SET_TILE_INFO_MEMBER(2, m_rightram[tile_index], 0, 0); | |
| 90 | 87 | } |
| 91 | 88 | |
| 92 | ||
| 89 | ||
| 93 | 90 | { |
| 94 | grchamp_state *state = machine.driver_data<grchamp_state>(); | |
| 95 | SET_TILE_INFO(3, state->m_centerram[tile_index], 0, 0); | |
| 91 | SET_TILE_INFO_MEMBER(3, m_centerram[tile_index], 0, 0); | |
| 96 | 92 | } |
| 97 | 93 | |
| 98 | ||
| 94 | ||
| 99 | 95 | { |
| 100 | 96 | return (col % 32) + row * 32 + (col / 32) * 32*32; |
| 101 | 97 | } |
| r17673 | r17674 | |
| 108 | 104 | state->m_work_bitmap.allocate(32,32); |
| 109 | 105 | |
| 110 | 106 | /* allocate tilemaps for each of the three sections */ |
| 111 | state->m_text_tilemap = tilemap_create(machine, get_text_tile_info, TILEMAP_SCAN_ROWS, 8,8, 32,32); | |
| 112 | state->m_left_tilemap = tilemap_create(machine, get_left_tile_info, get_memory_offset, 8,8, 64,32); | |
| 113 | state->m_right_tilemap = tilemap_create(machine, get_right_tile_info, get_memory_offset, 8,8, 64,32); | |
| 114 | state->m_center_tilemap = tilemap_create(machine, get_center_tile_info, get_memory_offset, 8,8, 64,32); | |
| 107 | state->m_text_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(grchamp_state::get_text_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 32,32); | |
| 108 | state->m_left_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(grchamp_state::get_left_tile_info),state), tilemap_mapper_delegate(FUNC(grchamp_state::get_memory_offset),state), 8,8, 64,32); | |
| 109 | state->m_right_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(grchamp_state::get_right_tile_info),state), tilemap_mapper_delegate(FUNC(grchamp_state::get_memory_offset),state), 8,8, 64,32); | |
| 110 | state->m_center_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(grchamp_state::get_center_tile_info),state), tilemap_mapper_delegate(FUNC(grchamp_state::get_memory_offset),state), 8,8, 64,32); | |
| 115 | 111 | } |
| 116 | 112 | |
| 117 | 113 | #if 0 |
| r17673 | r17674 | |
|---|---|---|
| 122 | 122 | Callbacks for the tilemap code |
| 123 | 123 | ***************************************************************************/ |
| 124 | 124 | |
| 125 | ||
| 125 | ||
| 126 | 126 | { |
| 127 | argus_state *state = machine.driver_data<argus_state>(); | |
| 128 | 127 | UINT8 hi, lo; |
| 129 | 128 | |
| 130 | 129 | tile_index <<= 1; |
| 131 | 130 | |
| 132 | lo = state->m_txram[tile_index]; | |
| 133 | hi = state->m_txram[tile_index + 1]; | |
| 131 | lo = m_txram[tile_index]; | |
| 132 | hi = m_txram[tile_index + 1]; | |
| 134 | 133 | |
| 135 | SET_TILE_INFO( | |
| 134 | SET_TILE_INFO_MEMBER( | |
| 136 | 135 | 3, |
| 137 | 136 | ((hi & 0xc0) << 2) | lo, |
| 138 | 137 | hi & 0x0f, |
| 139 | 138 | TILE_FLIPYX((hi & 0x30) >> 4)); |
| 140 | 139 | } |
| 141 | 140 | |
| 142 | ||
| 141 | ||
| 143 | 142 | { |
| 144 | argus_state *state = machine.driver_data<argus_state>(); | |
| 145 | 143 | UINT8 hi, lo; |
| 146 | 144 | |
| 147 | 145 | tile_index <<= 1; |
| 148 | 146 | |
| 149 | lo = state->m_dummy_bg0ram[tile_index]; | |
| 150 | hi = state->m_dummy_bg0ram[tile_index + 1]; | |
| 147 | lo = m_dummy_bg0ram[tile_index]; | |
| 148 | hi = m_dummy_bg0ram[tile_index + 1]; | |
| 151 | 149 | |
| 152 | SET_TILE_INFO( | |
| 150 | SET_TILE_INFO_MEMBER( | |
| 153 | 151 | 1, |
| 154 | 152 | ((hi & 0xc0) << 2) | lo, |
| 155 | 153 | hi & 0x0f, |
| 156 | 154 | TILE_FLIPYX((hi & 0x30) >> 4)); |
| 157 | 155 | } |
| 158 | 156 | |
| 159 | ||
| 157 | ||
| 160 | 158 | { |
| 161 | argus_state *state = machine.driver_data<argus_state>(); | |
| 162 | 159 | UINT8 hi, lo; |
| 163 | 160 | |
| 164 | 161 | tile_index <<= 1; |
| 165 | 162 | |
| 166 | lo = state->m_bg1ram[tile_index]; | |
| 167 | hi = state->m_bg1ram[tile_index + 1]; | |
| 163 | lo = m_bg1ram[tile_index]; | |
| 164 | hi = m_bg1ram[tile_index + 1]; | |
| 168 | 165 | |
| 169 | SET_TILE_INFO( | |
| 166 | SET_TILE_INFO_MEMBER( | |
| 170 | 167 | 2, |
| 171 | 168 | lo, |
| 172 | 169 | hi & 0x0f, |
| 173 | 170 | TILE_FLIPYX((hi & 0x30) >> 4)); |
| 174 | 171 | } |
| 175 | 172 | |
| 176 | ||
| 173 | ||
| 177 | 174 | { |
| 178 | argus_state *state = machine.driver_data<argus_state>(); | |
| 179 | 175 | UINT8 hi, lo; |
| 180 | 176 | |
| 181 | 177 | tile_index <<= 1; |
| 182 | 178 | |
| 183 | lo = state->m_txram[tile_index]; | |
| 184 | hi = state->m_txram[tile_index + 1]; | |
| 179 | lo = m_txram[tile_index]; | |
| 180 | hi = m_txram[tile_index + 1]; | |
| 185 | 181 | |
| 186 | SET_TILE_INFO( | |
| 182 | SET_TILE_INFO_MEMBER( | |
| 187 | 183 | 2, |
| 188 | 184 | ((hi & 0xc0) << 2) | lo, |
| 189 | 185 | hi & 0x0f, |
| 190 | 186 | TILE_FLIPYX((hi & 0x30) >> 4)); |
| 191 | 187 | } |
| 192 | 188 | |
| 193 | ||
| 189 | ||
| 194 | 190 | { |
| 195 | argus_state *state = machine.driver_data<argus_state>(); | |
| 196 | 191 | UINT8 hi, lo; |
| 197 | 192 | |
| 198 | 193 | tile_index <<= 1; |
| 199 | 194 | |
| 200 | lo = state->m_bg1ram[tile_index]; | |
| 201 | hi = state->m_bg1ram[tile_index + 1]; | |
| 195 | lo = m_bg1ram[tile_index]; | |
| 196 | hi = m_bg1ram[tile_index + 1]; | |
| 202 | 197 | |
| 203 | SET_TILE_INFO( | |
| 198 | SET_TILE_INFO_MEMBER( | |
| 204 | 199 | 1, |
| 205 | 200 | ((hi & 0xc0) << 2) | ((hi & 0x20) << 5) | lo, |
| 206 | 201 | hi & 0x0f, |
| 207 | 202 | 0); |
| 208 | 203 | } |
| 209 | 204 | |
| 210 | ||
| 205 | ||
| 211 | 206 | { |
| 212 | argus_state *state = machine.driver_data<argus_state>(); | |
| 213 | 207 | UINT8 hi, lo; |
| 214 | 208 | |
| 215 | 209 | tile_index ^= 0x3e0; |
| 216 | 210 | tile_index <<= 1; |
| 217 | 211 | |
| 218 | lo = state->m_butasan_txram[tile_index]; | |
| 219 | hi = state->m_butasan_txram[tile_index + 1]; | |
| 212 | lo = m_butasan_txram[tile_index]; | |
| 213 | hi = m_butasan_txram[tile_index + 1]; | |
| 220 | 214 | |
| 221 | SET_TILE_INFO( | |
| 215 | SET_TILE_INFO_MEMBER( | |
| 222 | 216 | 3, |
| 223 | 217 | ((hi & 0xc0) << 2) | lo, |
| 224 | 218 | hi & 0x0f, |
| 225 | 219 | TILE_FLIPYX((hi & 0x30) >> 4)); |
| 226 | 220 | } |
| 227 | 221 | |
| 228 | ||
| 222 | ||
| 229 | 223 | { |
| 230 | argus_state *state = machine.driver_data<argus_state>(); | |
| 231 | 224 | UINT8 hi, lo; |
| 232 | 225 | int attrib; |
| 233 | 226 | |
| r17673 | r17674 | |
| 235 | 228 | attrib ^= 0x0f0; |
| 236 | 229 | attrib <<= 1; |
| 237 | 230 | |
| 238 | lo = state->m_butasan_bg0ram[attrib]; | |
| 239 | hi = state->m_butasan_bg0ram[attrib + 1]; | |
| 231 | lo = m_butasan_bg0ram[attrib]; | |
| 232 | hi = m_butasan_bg0ram[attrib + 1]; | |
| 240 | 233 | |
| 241 | SET_TILE_INFO( | |
| 234 | SET_TILE_INFO_MEMBER( | |
| 242 | 235 | 1, |
| 243 | 236 | ((hi & 0xc0) << 2) | lo, |
| 244 | 237 | hi & 0x0f, |
| 245 | 238 | TILE_FLIPYX((hi & 0x30) >> 4)); |
| 246 | 239 | } |
| 247 | 240 | |
| 248 | ||
| 241 | ||
| 249 | 242 | { |
| 250 | argus_state *state = machine.driver_data<argus_state>(); | |
| 251 | 243 | int attrib, tile; |
| 252 | 244 | |
| 253 | 245 | attrib = (tile_index & 0x00f) | ((tile_index & 0x3e0) >> 1) | ((tile_index & 0x010) << 5); |
| 254 | 246 | attrib ^= 0x0f0; |
| 255 | 247 | |
| 256 | tile = | |
| 248 | tile = | |
| 257 | 249 | |
| 258 | SET_TILE_INFO( | |
| 250 | SET_TILE_INFO_MEMBER( | |
| 259 | 251 | 2, |
| 260 | 252 | tile, |
| 261 | 253 | (tile & 0x80) >> 7, |
| r17673 | r17674 | |
| 279 | 271 | { |
| 280 | 272 | argus_state *state = machine.driver_data<argus_state>(); |
| 281 | 273 | /* info offset w h col row */ |
| 282 | state->m_bg0_tilemap = tilemap_create(machine, argus_get_bg0_tile_info, TILEMAP_SCAN_COLS, 16, 16, 32, 32); | |
| 283 | state->m_bg1_tilemap = tilemap_create(machine, argus_get_bg1_tile_info, TILEMAP_SCAN_COLS, 16, 16, 32, 32); | |
| 284 | state->m_tx_tilemap = tilemap_create(machine, argus_get_tx_tile_info, TILEMAP_SCAN_COLS, 8, 8, 32, 32); | |
| 274 | state->m_bg0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(argus_state::argus_get_bg0_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32); | |
| 275 | state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(argus_state::argus_get_bg1_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32); | |
| 276 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(argus_state::argus_get_tx_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); | |
| 285 | 277 | |
| 286 | 278 | state->m_bg1_tilemap->set_transparent_pen(15); |
| 287 | 279 | state->m_tx_tilemap->set_transparent_pen(15); |
| r17673 | r17674 | |
| 307 | 299 | { |
| 308 | 300 | argus_state *state = machine.driver_data<argus_state>(); |
| 309 | 301 | /* info offset w h col row */ |
| 310 | state->m_bg1_tilemap = tilemap_create(machine, valtric_get_bg_tile_info, TILEMAP_SCAN_COLS, 16, 16, 32, 32); | |
| 311 | state->m_tx_tilemap = tilemap_create(machine, valtric_get_tx_tile_info, TILEMAP_SCAN_COLS, 8, 8, 32, 32); | |
| 302 | state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(argus_state::valtric_get_bg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32); | |
| 303 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(argus_state::valtric_get_tx_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); | |
| 312 | 304 | |
| 313 | 305 | state->m_tx_tilemap->set_transparent_pen(15); |
| 314 | 306 | |
| r17673 | r17674 | |
| 328 | 320 | { |
| 329 | 321 | argus_state *state = machine.driver_data<argus_state>(); |
| 330 | 322 | /* info offset w h col row */ |
| 331 | state->m_bg0_tilemap = tilemap_create(machine, butasan_get_bg0_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 332 | state->m_bg1_tilemap = tilemap_create(machine, butasan_get_bg1_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 333 | state->m_tx_tilemap = tilemap_create(machine, butasan_get_tx_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 323 | state->m_bg0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(argus_state::butasan_get_bg0_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 324 | state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(argus_state::butasan_get_bg1_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 325 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(argus_state::butasan_get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 334 | 326 | |
| 335 | 327 | state->m_bg1_tilemap->set_transparent_pen(15); |
| 336 | 328 | state->m_tx_tilemap->set_transparent_pen(15); |
| r17673 | r17674 | |
|---|---|---|
| 65 | 65 | } |
| 66 | 66 | } |
| 67 | 67 | |
| 68 | ||
| 68 | ||
| 69 | 69 | { |
| 70 | lkage_state *state = machine.driver_data<lkage_state>(); | |
| 71 | int code = state->m_videoram[tile_index + 0x800] + 256 * (state->m_bg_tile_bank ? 5 : 1); | |
| 72 | SET_TILE_INFO( 0/*gfx*/, code, 0/*color*/, 0/*flags*/ ); | |
| 70 | int code = m_videoram[tile_index + 0x800] + 256 * (m_bg_tile_bank ? 5 : 1); | |
| 71 | SET_TILE_INFO_MEMBER( 0/*gfx*/, code, 0/*color*/, 0/*flags*/ ); | |
| 73 | 72 | } |
| 74 | 73 | |
| 75 | ||
| 74 | ||
| 76 | 75 | { |
| 77 | lkage_state *state = machine.driver_data<lkage_state>(); | |
| 78 | int code = state->m_videoram[tile_index + 0x400] + 256 * (state->m_fg_tile_bank ? 1 : 0); | |
| 79 | SET_TILE_INFO( 0/*gfx*/, code, 0/*color*/, 0/*flags*/); | |
| 76 | int code = m_videoram[tile_index + 0x400] + 256 * (m_fg_tile_bank ? 1 : 0); | |
| 77 | SET_TILE_INFO_MEMBER( 0/*gfx*/, code, 0/*color*/, 0/*flags*/); | |
| 80 | 78 | } |
| 81 | 79 | |
| 82 | ||
| 80 | ||
| 83 | 81 | { |
| 84 | lkage_state *state = machine.driver_data<lkage_state>(); | |
| 85 | int code = state->m_videoram[tile_index] + 256 * (state->m_tx_tile_bank ? 4 : 0); | |
| 86 | SET_TILE_INFO( 0/*gfx*/, code, 0/*color*/, 0/*flags*/); | |
| 82 | int code = m_videoram[tile_index] + 256 * (m_tx_tile_bank ? 4 : 0); | |
| 83 | SET_TILE_INFO_MEMBER( 0/*gfx*/, code, 0/*color*/, 0/*flags*/); | |
| 87 | 84 | } |
| 88 | 85 | |
| 89 | 86 | VIDEO_START( lkage ) |
| 90 | 87 | { |
| 91 | 88 | lkage_state *state = machine.driver_data<lkage_state>(); |
| 92 | 89 | |
| 93 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 94 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 95 | state->m_tx_tilemap = tilemap_create(machine, get_tx_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 90 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lkage_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 91 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lkage_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 92 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lkage_state::get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 96 | 93 | |
| 97 | 94 | state->m_fg_tilemap->set_transparent_pen(0); |
| 98 | 95 | state->m_tx_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 67 | 67 | * |
| 68 | 68 | *************************************/ |
| 69 | 69 | |
| 70 | ||
| 70 | ||
| 71 | 71 | { |
| 72 | const UINT8 *source = machine.root_device().memregion("tilemap_dat")->base(); | |
| 73 | int size = machine.root_device().memregion("tilemap_dat")->bytes() / 2; | |
| 72 | const UINT8 *source = machine().root_device().memregion("tilemap_dat")->base(); | |
| 73 | int size = machine().root_device().memregion("tilemap_dat")->bytes() / 2; | |
| 74 | 74 | int eff_index = tile_index & (size - 1); |
| 75 | 75 | int code = source[eff_index] + 256 * (source[eff_index + size] & 3); |
| 76 | 76 | int color = source[eff_index + size] >> 4; |
| 77 | 77 | |
| 78 | SET_TILE_INFO(1, code, color, 0); | |
| 78 | SET_TILE_INFO_MEMBER(1, code, color, 0); | |
| 79 | 79 | } |
| 80 | 80 | |
| 81 | 81 | |
| 82 | ||
| 82 | ||
| 83 | 83 | { |
| 84 | zaxxon_state *state = machine.driver_data<zaxxon_state>(); | |
| 85 | 84 | int sx = tile_index % 32; |
| 86 | 85 | int sy = tile_index / 32; |
| 87 | int code = state->m_videoram[tile_index]; | |
| 88 | int color = state->m_color_codes[sx + 32 * (sy / 4)] & 0x0f; | |
| 86 | int code = m_videoram[tile_index]; | |
| 87 | int color = m_color_codes[sx + 32 * (sy / 4)] & 0x0f; | |
| 89 | 88 | |
| 90 | SET_TILE_INFO(0, code, color * 2, 0); | |
| 89 | SET_TILE_INFO_MEMBER(0, code, color * 2, 0); | |
| 91 | 90 | } |
| 92 | 91 | |
| 93 | 92 | |
| 94 | ||
| 93 | ||
| 95 | 94 | { |
| 96 | zaxxon_state *state = machine.driver_data<zaxxon_state>(); | |
| 97 | int code = state->m_videoram[tile_index]; | |
| 98 | int color = state->m_color_codes[code] & 0x0f; | |
| 95 | int code = m_videoram[tile_index]; | |
| 96 | int color = m_color_codes[code] & 0x0f; | |
| 99 | 97 | |
| 100 | SET_TILE_INFO(0, code, color * 2, 0); | |
| 98 | SET_TILE_INFO_MEMBER(0, code, color * 2, 0); | |
| 101 | 99 | } |
| 102 | 100 | |
| 103 | 101 | |
| 104 | ||
| 102 | ||
| 105 | 103 | { |
| 106 | zaxxon_state *state = machine.driver_data<zaxxon_state>(); | |
| 107 | int code = state->m_videoram[tile_index] + (state->m_congo_fg_bank << 8); | |
| 108 | int color = state->m_colorram[tile_index] & 0x1f; | |
| 104 | int code = m_videoram[tile_index] + (m_congo_fg_bank << 8); | |
| 105 | int color = m_colorram[tile_index] & 0x1f; | |
| 109 | 106 | |
| 110 | SET_TILE_INFO(0, code, color * 2, 0); | |
| 107 | SET_TILE_INFO_MEMBER(0, code, color * 2, 0); | |
| 111 | 108 | } |
| 112 | 109 | |
| 113 | 110 | |
| r17673 | r17674 | |
| 118 | 115 | * |
| 119 | 116 | *************************************/ |
| 120 | 117 | |
| 121 | static void video_start_common(running_machine &machine, tile_get_info_ | |
| 118 | static void video_start_common(running_machine &machine, tilemap_get_info_delegate fg_tile_info) | |
| 122 | 119 | { |
| 123 | 120 | zaxxon_state *state = machine.driver_data<zaxxon_state>(); |
| 124 | 121 | |
| r17673 | r17674 | |
| 132 | 129 | memset(state->m_congo_custom, 0, sizeof(state->m_congo_custom)); |
| 133 | 130 | |
| 134 | 131 | /* create a background and foreground tilemap */ |
| 135 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8,8, 32,512); | |
| 136 | state->m_fg_tilemap = tilemap_create(machine, fg_tile_info, TILEMAP_SCAN_ROWS, 8,8, 32,32); | |
| 132 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(zaxxon_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 32,512); | |
| 133 | state->m_fg_tilemap = &machine.tilemap().create(fg_tile_info, TILEMAP_SCAN_ROWS, 8,8, 32,32); | |
| 137 | 134 | |
| 138 | 135 | /* configure the foreground tilemap */ |
| 139 | 136 | state->m_fg_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
| 150 | 147 | |
| 151 | 148 | VIDEO_START( zaxxon ) |
| 152 | 149 | { |
| 153 | video_start_common(machine, zaxxon_get_fg_tile_info); | |
| 150 | zaxxon_state *state = machine.driver_data<zaxxon_state>(); | |
| 151 | video_start_common(machine, tilemap_get_info_delegate(FUNC(zaxxon_state::zaxxon_get_fg_tile_info),state)); | |
| 154 | 152 | } |
| 155 | 153 | |
| 156 | 154 | |
| 157 | 155 | VIDEO_START( razmataz ) |
| 158 | 156 | { |
| 159 | video_start_common(machine, razmataz_get_fg_tile_info); | |
| 157 | zaxxon_state *state = machine.driver_data<zaxxon_state>(); | |
| 158 | video_start_common(machine, tilemap_get_info_delegate(FUNC(zaxxon_state::razmataz_get_fg_tile_info),state)); | |
| 160 | 159 | } |
| 161 | 160 | |
| 162 | 161 | |
| r17673 | r17674 | |
| 172 | 171 | state->save_item(NAME(state->m_congo_color_bank)); |
| 173 | 172 | state->save_item(NAME(state->m_congo_custom)); |
| 174 | 173 | |
| 175 | video_start_common(machine, congo_get_fg_tile_info); | |
| 174 | video_start_common(machine, tilemap_get_info_delegate(FUNC(zaxxon_state::congo_get_fg_tile_info),state)); | |
| 176 | 175 | } |
| 177 | 176 | |
| 178 | 177 |
| r17673 | r17674 | |
|---|---|---|
| 13 | 13 | |
| 14 | 14 | ***************************************************************************/ |
| 15 | 15 | |
| 16 | ||
| 16 | ||
| 17 | 17 | { |
| 18 | gaiden_state *state = machine.driver_data<gaiden_state>(); | |
| 19 | UINT16 *videoram1 = &state->m_videoram3[0x0800]; | |
| 20 | UINT16 *videoram2 = state->m_videoram3; | |
| 21 | SET_TILE_INFO( | |
| 18 | UINT16 *videoram1 = &m_videoram3[0x0800]; | |
| 19 | UINT16 *videoram2 = m_videoram3; | |
| 20 | SET_TILE_INFO_MEMBER( | |
| 22 | 21 | 1, |
| 23 | 22 | videoram1[tile_index] & 0x0fff, |
| 24 | 23 | (videoram2[tile_index] & 0xf0) >> 4, |
| 25 | 24 | 0); |
| 26 | 25 | } |
| 27 | 26 | |
| 28 | ||
| 27 | ||
| 29 | 28 | { |
| 30 | gaiden_state *state = machine.driver_data<gaiden_state>(); | |
| 31 | UINT16 *videoram1 = &state->m_videoram2[0x0800]; | |
| 32 | UINT16 *videoram2 = state->m_videoram2; | |
| 33 | SET_TILE_INFO( | |
| 29 | UINT16 *videoram1 = &m_videoram2[0x0800]; | |
| 30 | UINT16 *videoram2 = m_videoram2; | |
| 31 | SET_TILE_INFO_MEMBER( | |
| 34 | 32 | 2, |
| 35 | 33 | videoram1[tile_index] & 0x0fff, |
| 36 | 34 | (videoram2[tile_index] & 0xf0) >> 4, |
| 37 | 35 | 0); |
| 38 | 36 | } |
| 39 | 37 | |
| 40 | ||
| 38 | ||
| 41 | 39 | { |
| 42 | gaiden_state *state = machine.driver_data<gaiden_state>(); | |
| 43 | UINT16 *videoram1 = &state->m_videoram2[0x0800]; | |
| 44 | UINT16 *videoram2 = state->m_videoram2; | |
| 40 | UINT16 *videoram1 = &m_videoram2[0x0800]; | |
| 41 | UINT16 *videoram2 = m_videoram2; | |
| 45 | 42 | |
| 46 | 43 | /* bit 3 controls blending */ |
| 47 | 44 | tileinfo.category = (videoram2[tile_index] & 0x08) >> 3; |
| 48 | 45 | |
| 49 | SET_TILE_INFO( | |
| 46 | SET_TILE_INFO_MEMBER( | |
| 50 | 47 | 2, |
| 51 | 48 | videoram1[tile_index] & 0x0fff, |
| 52 | 49 | ((videoram2[tile_index] & 0xf0) >> 4) | (tileinfo.category ? 0x80 : 0x00), |
| 53 | 50 | 0); |
| 54 | 51 | } |
| 55 | 52 | |
| 56 | ||
| 53 | ||
| 57 | 54 | { |
| 58 | gaiden_state *state = machine.driver_data<gaiden_state>(); | |
| 59 | UINT16 *videoram1 = &state->m_videoram[0x0400]; | |
| 60 | UINT16 *videoram2 = state->m_videoram; | |
| 61 | SET_TILE_INFO( | |
| 55 | UINT16 *videoram1 = &m_videoram[0x0400]; | |
| 56 | UINT16 *videoram2 = m_videoram; | |
| 57 | SET_TILE_INFO_MEMBER( | |
| 62 | 58 | 0, |
| 63 | 59 | videoram1[tile_index] & 0x07ff, |
| 64 | 60 | (videoram2[tile_index] & 0xf0) >> 4, |
| r17673 | r17674 | |
| 80 | 76 | machine.primary_screen->register_screen_bitmap(state->m_tile_bitmap_bg); |
| 81 | 77 | machine.primary_screen->register_screen_bitmap(state->m_tile_bitmap_fg); |
| 82 | 78 | |
| 83 | state->m_background = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 32); | |
| 84 | state->m_foreground = tilemap_create(machine, get_fg_tile_info_raiga, TILEMAP_SCAN_ROWS, 16, 16, 64, 32); | |
| 85 | state->m_text_layer = tilemap_create(machine, get_tx_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 79 | state->m_background = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaiden_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); | |
| 80 | state->m_foreground = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaiden_state::get_fg_tile_info_raiga),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); | |
| 81 | state->m_text_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaiden_state::get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 86 | 82 | |
| 87 | 83 | state->m_background->set_transparent_pen(0); |
| 88 | 84 | state->m_foreground->set_transparent_pen(0); |
| r17673 | r17674 | |
| 109 | 105 | machine.primary_screen->register_screen_bitmap(state->m_tile_bitmap_bg); |
| 110 | 106 | machine.primary_screen->register_screen_bitmap(state->m_tile_bitmap_fg); |
| 111 | 107 | |
| 112 | state->m_background = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 32); | |
| 113 | state->m_foreground = tilemap_create(machine, get_fg_tile_info_raiga, TILEMAP_SCAN_ROWS, 16, 16, 64, 32); | |
| 114 | state->m_text_layer = tilemap_create(machine, get_tx_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 108 | state->m_background = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaiden_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); | |
| 109 | state->m_foreground = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaiden_state::get_fg_tile_info_raiga),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); | |
| 110 | state->m_text_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaiden_state::get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 115 | 111 | |
| 116 | 112 | // state->m_background->set_transparent_pen(15); |
| 117 | 113 | state->m_foreground->set_transparent_pen(15); |
| r17673 | r17674 | |
| 132 | 128 | machine.primary_screen->register_screen_bitmap(state->m_tile_bitmap_bg); |
| 133 | 129 | machine.primary_screen->register_screen_bitmap(state->m_tile_bitmap_fg); |
| 134 | 130 | |
| 135 | state->m_background = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 32); | |
| 136 | state->m_foreground = tilemap_create(machine, get_fg_tile_info_raiga, TILEMAP_SCAN_ROWS, 16, 16, 64, 32); | |
| 137 | state->m_text_layer = tilemap_create(machine, get_tx_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 131 | state->m_background = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaiden_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); | |
| 132 | state->m_foreground = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaiden_state::get_fg_tile_info_raiga),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); | |
| 133 | state->m_text_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaiden_state::get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 138 | 134 | |
| 139 | 135 | state->m_background->set_transparent_pen(0); |
| 140 | 136 | state->m_foreground->set_transparent_pen(0); |
| r17673 | r17674 | |
| 148 | 144 | { |
| 149 | 145 | gaiden_state *state = machine.driver_data<gaiden_state>(); |
| 150 | 146 | /* set up tile layers */ |
| 151 | state->m_background = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 32); | |
| 152 | state->m_foreground = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 32); | |
| 153 | state->m_text_layer = tilemap_create(machine, get_tx_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 147 | state->m_background = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaiden_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); | |
| 148 | state->m_foreground = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaiden_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); | |
| 149 | state->m_text_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaiden_state::get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 154 | 150 | |
| 155 | 151 | state->m_foreground->set_transparent_pen(15); |
| 156 | 152 | state->m_text_layer->set_transparent_pen(15); |
| r17673 | r17674 | |
|---|---|---|
| 5 | 5 | #include "includes/shangkid.h" |
| 6 | 6 | |
| 7 | 7 | |
| 8 | static TILE_GET_INFO( get_bg_tile_info ){ | |
| 9 | shangkid_state *state = machine.driver_data<shangkid_state>(); | |
| 10 | UINT8 *videoram = state->m_videoram; | |
| 8 | TILE_GET_INFO_MEMBER(shangkid_state::get_bg_tile_info){ | |
| 9 | UINT8 *videoram = m_videoram; | |
| 11 | 10 | int attributes = videoram[tile_index+0x800]; |
| 12 | 11 | int tile_number = videoram[tile_index]+0x100*(attributes&0x3); |
| 13 | 12 | int color; |
| 14 | 13 | |
| 15 | if( | |
| 14 | if( | |
| 16 | 15 | { |
| 17 | 16 | /* Shanghai Kid: |
| 18 | 17 | ------xx bank |
| r17673 | r17674 | |
| 21 | 20 | */ |
| 22 | 21 | color = attributes>>3; |
| 23 | 22 | color = (color&0x03)|((color&0x1c)<<1); |
| 24 | SET_TILE_INFO( | |
| 23 | SET_TILE_INFO_MEMBER( | |
| 25 | 24 | 0, |
| 26 | 25 | tile_number, |
| 27 | 26 | color, |
| r17673 | r17674 | |
| 35 | 34 | x------- flipx? |
| 36 | 35 | */ |
| 37 | 36 | color = (attributes>>2)&0x1f; |
| 38 | SET_TILE_INFO( | |
| 37 | SET_TILE_INFO_MEMBER( | |
| 39 | 38 | 0, |
| 40 | 39 | tile_number, |
| 41 | 40 | color, |
| r17673 | r17674 | |
| 43 | 42 | } |
| 44 | 43 | |
| 45 | 44 | tileinfo.category = |
| 46 | (machine.root_device().memregion( "proms" )->base()[0x800+color*4]==2)?1:0; | |
| 45 | (machine().root_device().memregion( "proms" )->base()[0x800+color*4]==2)?1:0; | |
| 47 | 46 | } |
| 48 | 47 | |
| 49 | 48 | VIDEO_START( shangkid ) |
| 50 | 49 | { |
| 51 | 50 | shangkid_state *state = machine.driver_data<shangkid_state>(); |
| 52 | state->m_background = tilemap | |
| 51 | state->m_background = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(shangkid_state::get_bg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32); | |
| 53 | 52 | } |
| 54 | 53 | |
| 55 | 54 | WRITE8_MEMBER(shangkid_state::shangkid_videoram_w) |
| r17673 | r17674 | |
|---|---|---|
| 158 | 158 | } |
| 159 | 159 | } |
| 160 | 160 | |
| 161 | ||
| 161 | ||
| 162 | 162 | { |
| 163 | trackfld_state *state = machine.driver_data<trackfld_state>(); | |
| 164 | int attr = state->m_colorram[tile_index]; | |
| 165 | int code = state->m_videoram[tile_index] + 4 * (attr & 0xc0); | |
| 163 | int attr = m_colorram[tile_index]; | |
| 164 | int code = m_videoram[tile_index] + 4 * (attr & 0xc0); | |
| 166 | 165 | int color = attr & 0x0f; |
| 167 | 166 | int flags = ((attr & 0x10) ? TILE_FLIPX : 0) | ((attr & 0x20) ? TILE_FLIPY : 0); |
| 168 | 167 | |
| 169 | if ( | |
| 168 | if ( | |
| 170 | 169 | code |= 0x400; |
| 171 | 170 | |
| 172 | SET_TILE_INFO(1, code, color, flags); | |
| 171 | SET_TILE_INFO_MEMBER(1, code, color, flags); | |
| 173 | 172 | } |
| 174 | 173 | |
| 175 | 174 | VIDEO_START( trackfld ) |
| 176 | 175 | { |
| 177 | 176 | trackfld_state *state = machine.driver_data<trackfld_state>(); |
| 178 | state->m_bg_tilemap = tilemap | |
| 177 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(trackfld_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 179 | 178 | state->m_bg_tilemap->set_scroll_rows(32); |
| 180 | 179 | state->m_sprites_gfx_banked = 0; |
| 181 | 180 | } |
| r17673 | r17674 | |
|---|---|---|
| 80 | 80 | |
| 81 | 81 | ***************************************************************************/ |
| 82 | 82 | |
| 83 | ||
| 83 | ||
| 84 | 84 | { |
| 85 | fastfred_state *state = machine.driver_data<fastfred_state>(); | |
| 86 | 85 | UINT8 x = tile_index & 0x1f; |
| 87 | 86 | |
| 88 | UINT16 code = state->m_charbank | state->m_videoram[tile_index]; | |
| 89 | UINT8 color = state->m_colorbank | (state->m_attributesram[2 * x + 1] & 0x07); | |
| 87 | UINT16 code = m_charbank | m_videoram[tile_index]; | |
| 88 | UINT8 color = m_colorbank | (m_attributesram[2 * x + 1] & 0x07); | |
| 90 | 89 | |
| 91 | SET_TILE_INFO(0, code, color, 0); | |
| 90 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 92 | 91 | } |
| 93 | 92 | |
| 94 | 93 | |
| r17673 | r17674 | |
| 102 | 101 | VIDEO_START( fastfred ) |
| 103 | 102 | { |
| 104 | 103 | fastfred_state *state = machine.driver_data<fastfred_state>(); |
| 105 | state->m_bg_tilemap = tilemap | |
| 104 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fastfred_state::get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 106 | 105 | |
| 107 | 106 | state->m_bg_tilemap->set_transparent_pen(0); |
| 108 | 107 | state->m_bg_tilemap->set_scroll_cols(32); |
| r17673 | r17674 | |
| 308 | 307 | } |
| 309 | 308 | |
| 310 | 309 | |
| 311 | ||
| 310 | ||
| 312 | 311 | { |
| 313 | fastfred_state *state = machine.driver_data<fastfred_state>(); | |
| 314 | 312 | UINT8 x = tile_index & 0x1f; |
| 315 | 313 | |
| 316 | UINT16 code = state->m_charbank * 0x100 + state->m_videoram[tile_index]; | |
| 317 | UINT8 color = state->m_colorbank | (state->m_attributesram[2 * x + 1] & 0x07); | |
| 314 | UINT16 code = m_charbank * 0x100 + m_videoram[tile_index]; | |
| 315 | UINT8 color = m_colorbank | (m_attributesram[2 * x + 1] & 0x07); | |
| 318 | 316 | |
| 319 | SET_TILE_INFO(0, code, color, 0); | |
| 317 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 320 | 318 | } |
| 321 | 319 | |
| 322 | ||
| 320 | ||
| 323 | 321 | { |
| 324 | fastfred_state *state = machine.driver_data<fastfred_state>(); | |
| 325 | int code = state->m_imago_fg_videoram[tile_index]; | |
| 326 | SET_TILE_INFO(2, code, 2, 0); | |
| 322 | int code = m_imago_fg_videoram[tile_index]; | |
| 323 | SET_TILE_INFO_MEMBER(2, code, 2, 0); | |
| 327 | 324 | } |
| 328 | 325 | |
| 329 | ||
| 326 | ||
| 330 | 327 | { |
| 331 | SET_TILE_INFO(3, tile_index & 0x1ff, 0, 0); | |
| 328 | SET_TILE_INFO_MEMBER(3, tile_index & 0x1ff, 0, 0); | |
| 332 | 329 | } |
| 333 | 330 | |
| 334 | 331 | WRITE8_HANDLER( imago_fg_videoram_w ) |
| r17673 | r17674 | |
| 351 | 348 | VIDEO_START( imago ) |
| 352 | 349 | { |
| 353 | 350 | fastfred_state *state = machine.driver_data<fastfred_state>(); |
| 354 | state->m_web_tilemap = tilemap_create(machine, imago_get_tile_info_web,TILEMAP_SCAN_ROWS, 8,8,32,32); | |
| 355 | state->m_bg_tilemap = tilemap_create(machine, imago_get_tile_info_bg, TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 356 | state->m_fg_tilemap = tilemap_create(machine, imago_get_tile_info_fg, TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 351 | state->m_web_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fastfred_state::imago_get_tile_info_web),state),TILEMAP_SCAN_ROWS, 8,8,32,32); | |
| 352 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fastfred_state::imago_get_tile_info_bg),state), TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 353 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fastfred_state::imago_get_tile_info_fg),state), TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 357 | 354 | |
| 358 | 355 | state->m_bg_tilemap->set_transparent_pen(0); |
| 359 | 356 | state->m_fg_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 135 | 135 | |
| 136 | 136 | /******************************************************************************/ |
| 137 | 137 | |
| 138 | ||
| 138 | ||
| 139 | 139 | { |
| 140 | karnov_state *state = machine.driver_data<karnov_state>(); | |
| 141 | int tile = state->m_videoram[tile_index]; | |
| 142 | SET_TILE_INFO( | |
| 140 | int tile = m_videoram[tile_index]; | |
| 141 | SET_TILE_INFO_MEMBER( | |
| 143 | 142 | 0, |
| 144 | 143 | tile&0xfff, |
| 145 | 144 | tile>>14, |
| r17673 | r17674 | |
| 166 | 165 | |
| 167 | 166 | /* Allocate bitmap & tilemap */ |
| 168 | 167 | state->m_bitmap_f = auto_bitmap_ind16_alloc(machine, 512, 512); |
| 169 | state->m_fix_tilemap = tilemap | |
| 168 | state->m_fix_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(karnov_state::get_fix_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 170 | 169 | |
| 171 | 170 | state->save_item(NAME(*state->m_bitmap_f)); |
| 172 | 171 | |
| r17673 | r17674 | |
| 179 | 178 | |
| 180 | 179 | /* Allocate bitmap & tilemap */ |
| 181 | 180 | state->m_bitmap_f = auto_bitmap_ind16_alloc(machine, 512, 512); |
| 182 | state->m_fix_tilemap = tilemap | |
| 181 | state->m_fix_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(karnov_state::get_fix_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); | |
| 183 | 182 | |
| 184 | 183 | state->save_item(NAME(*state->m_bitmap_f)); |
| 185 | 184 |
| r17673 | r17674 | |
|---|---|---|
| 15 | 15 | |
| 16 | 16 | ***************************************************************************/ |
| 17 | 17 | |
| 18 | ||
| 18 | ||
| 19 | 19 | { |
| 20 | 20 | return (row * 0x800) | (col * 2); |
| 21 | 21 | } |
| 22 | 22 | |
| 23 | ||
| 23 | ||
| 24 | 24 | { |
| 25 | lwings_state *state = machine.driver_data<lwings_state>(); | |
| 26 | int code = state->m_fgvideoram[tile_index]; | |
| 27 | int color = state->m_fgvideoram[tile_index + 0x400]; | |
| 28 | SET_TILE_INFO( | |
| 25 | int code = m_fgvideoram[tile_index]; | |
| 26 | int color = m_fgvideoram[tile_index + 0x400]; | |
| 27 | SET_TILE_INFO_MEMBER( | |
| 29 | 28 | 0, |
| 30 | 29 | code + ((color & 0xc0) << 2), |
| 31 | 30 | color & 0x0f, |
| 32 | 31 | TILE_FLIPYX((color & 0x30) >> 4)); |
| 33 | 32 | } |
| 34 | 33 | |
| 35 | ||
| 34 | ||
| 36 | 35 | { |
| 37 | lwings_state *state = machine.driver_data<lwings_state>(); | |
| 38 | int code = state->m_bg1videoram[tile_index]; | |
| 39 | int color = state->m_bg1videoram[tile_index + 0x400]; | |
| 40 | SET_TILE_INFO( | |
| 36 | int code = m_bg1videoram[tile_index]; | |
| 37 | int color = m_bg1videoram[tile_index + 0x400]; | |
| 38 | SET_TILE_INFO_MEMBER( | |
| 41 | 39 | 1, |
| 42 | 40 | code + ((color & 0xe0) << 3), |
| 43 | 41 | color & 0x07, |
| 44 | 42 | TILE_FLIPYX((color & 0x18) >> 3)); |
| 45 | 43 | } |
| 46 | 44 | |
| 47 | ||
| 45 | ||
| 48 | 46 | { |
| 49 | lwings_state *state = machine.driver_data<lwings_state>(); | |
| 50 | int code = state->m_bg1videoram[tile_index]; | |
| 51 | int color = state->m_bg1videoram[tile_index + 0x400]; | |
| 47 | int code = m_bg1videoram[tile_index]; | |
| 48 | int color = m_bg1videoram[tile_index + 0x400]; | |
| 52 | 49 | code += (color & 0xe0)<<3; |
| 53 | SET_TILE_INFO( | |
| 50 | SET_TILE_INFO_MEMBER( | |
| 54 | 51 | 1, |
| 55 | 52 | code, |
| 56 | | |
| 53 | | |
| 57 | 54 | ((color & 0x10) ? TILE_FLIPX : 0)); |
| 58 | 55 | |
| 59 | 56 | tileinfo.group = (color & 0x08) >> 3; |
| 60 | 57 | } |
| 61 | 58 | |
| 62 | ||
| 59 | ||
| 63 | 60 | { |
| 64 | lwings_state *state = machine.driver_data<lwings_state>(); | |
| 65 | 61 | int code, color; |
| 66 | UINT8 *rom = state->memregion("gfx5")->base(); | |
| 67 | int mask = state->memregion("gfx5")->bytes() - 1; | |
| 62 | UINT8 *rom = memregion("gfx5")->base(); | |
| 63 | int mask = memregion("gfx5")->bytes() - 1; | |
| 68 | 64 | |
| 69 | tile_index = (tile_index + | |
| 65 | tile_index = (tile_index + | |
| 70 | 66 | code = rom[tile_index]; |
| 71 | 67 | color = rom[tile_index + 1]; |
| 72 | SET_TILE_INFO( | |
| 68 | SET_TILE_INFO_MEMBER( | |
| 73 | 69 | 3, |
| 74 | 70 | code + ((color & 0x80) << 1), |
| 75 | 71 | color & 0x07, |
| r17673 | r17674 | |
| 86 | 82 | { |
| 87 | 83 | lwings_state *state = machine.driver_data<lwings_state>(); |
| 88 | 84 | |
| 89 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 90 | state->m_bg1_tilemap = tilemap_create(machine, lwings_get_bg1_tile_info, TILEMAP_SCAN_COLS, 16, 16, 32, 32); | |
| 85 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lwings_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 86 | state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lwings_state::lwings_get_bg1_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32); | |
| 91 | 87 | |
| 92 | 88 | state->m_fg_tilemap->set_transparent_pen(3); |
| 93 | 89 | } |
| r17673 | r17674 | |
| 96 | 92 | { |
| 97 | 93 | lwings_state *state = machine.driver_data<lwings_state>(); |
| 98 | 94 | |
| 99 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 100 | state->m_bg1_tilemap = tilemap_create(machine, trojan_get_bg1_tile_info,TILEMAP_SCAN_COLS, 16, 16, 32, 32); | |
| 101 | state->m_bg2_tilemap = tilemap_create(machine, get_bg2_tile_info, get_bg2_memory_offset, 16, 16, 32, 16); | |
| 95 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lwings_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 96 | state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lwings_state::trojan_get_bg1_tile_info),state),TILEMAP_SCAN_COLS, 16, 16, 32, 32); | |
| 97 | state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lwings_state::get_bg2_tile_info),state), tilemap_mapper_delegate(FUNC(lwings_state::get_bg2_memory_offset),state), 16, 16, 32, 16); | |
| 102 | 98 | |
| 103 | 99 | state->m_fg_tilemap->set_transparent_pen(3); |
| 104 | 100 | state->m_bg1_tilemap->set_transmask(0, 0xffff, 0x0001); /* split type 0 is totally transparent in front half */ |
| r17673 | r17674 | |
|---|---|---|
| 43 | 43 | |
| 44 | 44 | ***************************************************************************/ |
| 45 | 45 | |
| 46 | ||
| 46 | ||
| 47 | 47 | { |
| 48 | punchout_state *state = machine.driver_data<punchout_state>(); | |
| 49 | int attr = state->m_bg_top_videoram[tile_index*2 + 1]; | |
| 50 | int code = state->m_bg_top_videoram[tile_index*2] + ((attr & 0x03) << 8); | |
| 48 | int attr = m_bg_top_videoram[tile_index*2 + 1]; | |
| 49 | int code = m_bg_top_videoram[tile_index*2] + ((attr & 0x03) << 8); | |
| 51 | 50 | int color = ((attr & 0x7c) >> 2); |
| 52 | 51 | int flipx = attr & 0x80; |
| 53 | SET_TILE_INFO(0, code, color, flipx ? TILE_FLIPX : 0); | |
| 52 | SET_TILE_INFO_MEMBER(0, code, color, flipx ? TILE_FLIPX : 0); | |
| 54 | 53 | } |
| 55 | 54 | |
| 56 | ||
| 55 | ||
| 57 | 56 | { |
| 58 | punchout_state *state = machine.driver_data<punchout_state>(); | |
| 59 | int attr = state->m_bg_top_videoram[tile_index*2 + 1]; | |
| 60 | int code = state->m_bg_top_videoram[tile_index*2] + ((attr & 0x03) << 8) + ((attr & 0x80) << 3); | |
| 57 | int attr = m_bg_top_videoram[tile_index*2 + 1]; | |
| 58 | int code = m_bg_top_videoram[tile_index*2] + ((attr & 0x03) << 8) + ((attr & 0x80) << 3); | |
| 61 | 59 | int color = ((attr & 0x7c) >> 2); |
| 62 | SET_TILE_INFO(0, code, color, 0); | |
| 60 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 63 | 61 | } |
| 64 | 62 | |
| 65 | ||
| 63 | ||
| 66 | 64 | { |
| 67 | punchout_state *state = machine.driver_data<punchout_state>(); | |
| 68 | int attr = state->m_bg_bot_videoram[tile_index*2 + 1]; | |
| 69 | int code = state->m_bg_bot_videoram[tile_index*2] + ((attr & 0x03) << 8); | |
| 65 | int attr = m_bg_bot_videoram[tile_index*2 + 1]; | |
| 66 | int code = m_bg_bot_videoram[tile_index*2] + ((attr & 0x03) << 8); | |
| 70 | 67 | int color = ((attr & 0x7c) >> 2); |
| 71 | 68 | int flipx = attr & 0x80; |
| 72 | SET_TILE_INFO(1, code, color, flipx ? TILE_FLIPX : 0); | |
| 69 | SET_TILE_INFO_MEMBER(1, code, color, flipx ? TILE_FLIPX : 0); | |
| 73 | 70 | } |
| 74 | 71 | |
| 75 | ||
| 72 | ||
| 76 | 73 | { |
| 77 | punchout_state *state = machine.driver_data<punchout_state>(); | |
| 78 | int attr = state->m_bg_bot_videoram[tile_index*2 + 1]; | |
| 79 | int code = state->m_bg_bot_videoram[tile_index*2] + ((attr & 0x03) << 8); | |
| 74 | int attr = m_bg_bot_videoram[tile_index*2 + 1]; | |
| 75 | int code = m_bg_bot_videoram[tile_index*2] + ((attr & 0x03) << 8); | |
| 80 | 76 | int color = ((attr & 0x7c) >> 2) + 0x40; |
| 81 | 77 | int flipx = attr & 0x80; |
| 82 | SET_TILE_INFO(0, code, color, flipx ? TILE_FLIPX : 0); | |
| 78 | SET_TILE_INFO_MEMBER(0, code, color, flipx ? TILE_FLIPX : 0); | |
| 83 | 79 | } |
| 84 | 80 | |
| 85 | ||
| 81 | ||
| 86 | 82 | { |
| 87 | punchout_state *state = machine.driver_data<punchout_state>(); | |
| 88 | int attr = state->m_spr1_videoram[tile_index*4 + 3]; | |
| 89 | int code = state->m_spr1_videoram[tile_index*4] + ((state->m_spr1_videoram[tile_index*4 + 1] & 0x1f) << 8); | |
| 83 | int attr = m_spr1_videoram[tile_index*4 + 3]; | |
| 84 | int code = m_spr1_videoram[tile_index*4] + ((m_spr1_videoram[tile_index*4 + 1] & 0x1f) << 8); | |
| 90 | 85 | int color = attr & 0x1f; |
| 91 | 86 | int flipx = attr & 0x80; |
| 92 | SET_TILE_INFO(2, code, color, flipx ? TILE_FLIPX : 0); | |
| 87 | SET_TILE_INFO_MEMBER(2, code, color, flipx ? TILE_FLIPX : 0); | |
| 93 | 88 | } |
| 94 | 89 | |
| 95 | ||
| 90 | ||
| 96 | 91 | { |
| 97 | punchout_state *state = machine.driver_data<punchout_state>(); | |
| 98 | int attr = state->m_spr2_videoram[tile_index*4 + 3]; | |
| 99 | int code = state->m_spr2_videoram[tile_index*4] + ((state->m_spr2_videoram[tile_index*4 + 1] & 0x0f) << 8); | |
| 92 | int attr = m_spr2_videoram[tile_index*4 + 3]; | |
| 93 | int code = m_spr2_videoram[tile_index*4] + ((m_spr2_videoram[tile_index*4 + 1] & 0x0f) << 8); | |
| 100 | 94 | int color = attr & 0x3f; |
| 101 | 95 | int flipx = attr & 0x80; |
| 102 | SET_TILE_INFO(3, code, color, flipx ? TILE_FLIPX : 0); | |
| 96 | SET_TILE_INFO_MEMBER(3, code, color, flipx ? TILE_FLIPX : 0); | |
| 103 | 97 | } |
| 104 | 98 | |
| 105 | ||
| 99 | ||
| 106 | 100 | { |
| 107 | punchout_state *state = machine.driver_data<punchout_state>(); | |
| 108 | int attr = state->m_armwrest_fg_videoram[tile_index*2 + 1]; | |
| 109 | int code = state->m_armwrest_fg_videoram[tile_index*2] + 256 * (attr & 0x07); | |
| 101 | int attr = m_armwrest_fg_videoram[tile_index*2 + 1]; | |
| 102 | int code = m_armwrest_fg_videoram[tile_index*2] + 256 * (attr & 0x07); | |
| 110 | 103 | int color = ((attr & 0xf8) >> 3); |
| 111 | 104 | int flipx = attr & 0x80; |
| 112 | SET_TILE_INFO(1, code, color, flipx ? TILE_FLIPX : 0); | |
| 105 | SET_TILE_INFO_MEMBER(1, code, color, flipx ? TILE_FLIPX : 0); | |
| 113 | 106 | } |
| 114 | 107 | |
| 115 | ||
| 108 | ||
| 116 | 109 | { |
| 117 | 110 | int halfcols = num_cols/2; |
| 118 | 111 | return (col/halfcols)*(halfcols*num_rows) + row*halfcols + col%halfcols; |
| 119 | 112 | } |
| 120 | 113 | |
| 121 | ||
| 114 | ||
| 122 | 115 | { |
| 123 | 116 | int halfcols = num_cols/2; |
| 124 | 117 | col ^=0x10; |
| r17673 | r17674 | |
| 129 | 122 | VIDEO_START( punchout ) |
| 130 | 123 | { |
| 131 | 124 | punchout_state *state = machine.driver_data<punchout_state>(); |
| 132 | state->m_bg_top_tilemap = tilemap_create(machine, top_get_info, TILEMAP_SCAN_ROWS, 8,8, 32,32); | |
| 133 | state->m_bg_bot_tilemap = tilemap_create(machine, bot_get_info, TILEMAP_SCAN_ROWS, 8,8, 64,32); | |
| 125 | state->m_bg_top_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(punchout_state::top_get_info),state), TILEMAP_SCAN_ROWS, 8,8, 32,32); | |
| 126 | state->m_bg_bot_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(punchout_state::bot_get_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,32); | |
| 134 | 127 | state->m_bg_bot_tilemap->set_scroll_rows(32); |
| 135 | 128 | |
| 136 | state->m_spr1_tilemap = tilemap_create(machine, bs1_get_info, TILEMAP_SCAN_ROWS, 8,8, 16,32); | |
| 137 | state->m_spr2_tilemap = tilemap_create(machine, bs2_get_info, TILEMAP_SCAN_ROWS, 8,8, 16,32); | |
| 129 | state->m_spr1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(punchout_state::bs1_get_info),state), TILEMAP_SCAN_ROWS, 8,8, 16,32); | |
| 130 | state->m_spr2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(punchout_state::bs2_get_info),state), TILEMAP_SCAN_ROWS, 8,8, 16,32); | |
| 138 | 131 | |
| 139 | 132 | state->m_fg_tilemap = NULL; |
| 140 | 133 | |
| r17673 | r17674 | |
| 146 | 139 | VIDEO_START( armwrest ) |
| 147 | 140 | { |
| 148 | 141 | punchout_state *state = machine.driver_data<punchout_state>(); |
| 149 | state->m_bg_top_tilemap = tilemap_create(machine, armwrest_top_get_info, TILEMAP_SCAN_ROWS, 8,8, 32,32); | |
| 150 | state->m_bg_bot_tilemap = tilemap_create(machine, armwrest_bot_get_info, TILEMAP_SCAN_ROWS, 8,8, 32,32); | |
| 142 | state->m_bg_top_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(punchout_state::armwrest_top_get_info),state), TILEMAP_SCAN_ROWS, 8,8, 32,32); | |
| 143 | state->m_bg_bot_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(punchout_state::armwrest_bot_get_info),state), TILEMAP_SCAN_ROWS, 8,8, 32,32); | |
| 151 | 144 | |
| 152 | state->m_spr1_tilemap = tilemap_create(machine, bs1_get_info, armwrest_bs1_scan, 8,8, 32,16); | |
| 153 | state->m_spr1_tilemap_flipx = tilemap_create(machine, bs1_get_info, armwrest_bs1_scan_flipx, 8,8, 32,16); | |
| 154 | state->m_spr2_tilemap = tilemap_create(machine, bs2_get_info, TILEMAP_SCAN_ROWS, 8,8, 16,32); | |
| 155 | state->m_fg_tilemap = tilemap_create(machine, armwrest_fg_get_info, TILEMAP_SCAN_ROWS, 8,8, 32,32); | |
| 145 | state->m_spr1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(punchout_state::bs1_get_info),state), tilemap_mapper_delegate(FUNC(punchout_state::armwrest_bs1_scan),state), 8,8, 32,16); | |
| 146 | state->m_spr1_tilemap_flipx = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(punchout_state::bs1_get_info),state), tilemap_mapper_delegate(FUNC(punchout_state::armwrest_bs1_scan_flipx),state), 8,8, 32,16); | |
| 147 | state->m_spr2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(punchout_state::bs2_get_info),state), TILEMAP_SCAN_ROWS, 8,8, 16,32); | |
| 148 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(punchout_state::armwrest_fg_get_info),state), TILEMAP_SCAN_ROWS, 8,8, 32,32); | |
| 156 | 149 | |
| 157 | 150 | state->m_spr1_tilemap->set_transparent_pen(0x07); |
| 158 | 151 | state->m_spr1_tilemap_flipx->set_transparent_pen(0x07); |
| r17673 | r17674 | |
|---|---|---|
| 21 | 21 | |
| 22 | 22 | ***************************************************************************/ |
| 23 | 23 | |
| 24 | ||
| 24 | ||
| 25 | 25 | { |
| 26 | tecmo_state *state = machine.driver_data<tecmo_state>(); | |
| 27 | UINT8 attr = state->m_bgvideoram[tile_index+0x200]; | |
| 28 | SET_TILE_INFO( | |
| 26 | UINT8 attr = m_bgvideoram[tile_index+0x200]; | |
| 27 | SET_TILE_INFO_MEMBER( | |
| 29 | 28 | 3, |
| 30 | | |
| 29 | | |
| 31 | 30 | attr >> 4, |
| 32 | 31 | 0); |
| 33 | 32 | } |
| 34 | 33 | |
| 35 | ||
| 34 | ||
| 36 | 35 | { |
| 37 | tecmo_state *state = machine.driver_data<tecmo_state>(); | |
| 38 | UINT8 attr = state->m_fgvideoram[tile_index+0x200]; | |
| 39 | SET_TILE_INFO( | |
| 36 | UINT8 attr = m_fgvideoram[tile_index+0x200]; | |
| 37 | SET_TILE_INFO_MEMBER( | |
| 40 | 38 | 2, |
| 41 | | |
| 39 | | |
| 42 | 40 | attr >> 4, |
| 43 | 41 | 0); |
| 44 | 42 | } |
| 45 | 43 | |
| 46 | ||
| 44 | ||
| 47 | 45 | { |
| 48 | tecmo_state *state = machine.driver_data<tecmo_state>(); | |
| 49 | UINT8 attr = state->m_bgvideoram[tile_index+0x200]; | |
| 50 | SET_TILE_INFO( | |
| 46 | UINT8 attr = m_bgvideoram[tile_index+0x200]; | |
| 47 | SET_TILE_INFO_MEMBER( | |
| 51 | 48 | 3, |
| 52 | | |
| 49 | | |
| 53 | 50 | attr & 0x0f, |
| 54 | 51 | 0); |
| 55 | 52 | } |
| 56 | 53 | |
| 57 | ||
| 54 | ||
| 58 | 55 | { |
| 59 | tecmo_state *state = machine.driver_data<tecmo_state>(); | |
| 60 | UINT8 attr = state->m_fgvideoram[tile_index+0x200]; | |
| 61 | SET_TILE_INFO( | |
| 56 | UINT8 attr = m_fgvideoram[tile_index+0x200]; | |
| 57 | SET_TILE_INFO_MEMBER( | |
| 62 | 58 | 2, |
| 63 | | |
| 59 | | |
| 64 | 60 | attr & 0x0f, |
| 65 | 61 | 0); |
| 66 | 62 | } |
| 67 | 63 | |
| 68 | ||
| 64 | ||
| 69 | 65 | { |
| 70 | tecmo_state *state = machine.driver_data<tecmo_state>(); | |
| 71 | UINT8 attr = state->m_txvideoram[tile_index+0x400]; | |
| 72 | SET_TILE_INFO( | |
| 66 | UINT8 attr = m_txvideoram[tile_index+0x400]; | |
| 67 | SET_TILE_INFO_MEMBER( | |
| 73 | 68 | 0, |
| 74 | | |
| 69 | | |
| 75 | 70 | attr >> 4, |
| 76 | 71 | 0); |
| 77 | 72 | } |
| r17673 | r17674 | |
| 89 | 84 | tecmo_state *state = machine.driver_data<tecmo_state>(); |
| 90 | 85 | if (state->m_video_type == 2) /* gemini */ |
| 91 | 86 | { |
| 92 | state->m_bg_tilemap = tilemap_create(machine, gemini_get_bg_tile_info,TILEMAP_SCAN_ROWS,16,16,32,16); | |
| 93 | state->m_fg_tilemap = tilemap_create(machine, gemini_get_fg_tile_info,TILEMAP_SCAN_ROWS,16,16,32,16); | |
| 87 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tecmo_state::gemini_get_bg_tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,16); | |
| 88 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tecmo_state::gemini_get_fg_tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,16); | |
| 94 | 89 | } |
| 95 | 90 | else /* rygar, silkworm */ |
| 96 | 91 | { |
| 97 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_ROWS,16,16,32,16); | |
| 98 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info,TILEMAP_SCAN_ROWS,16,16,32,16); | |
| 92 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tecmo_state::get_bg_tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,16); | |
| 93 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tecmo_state::get_fg_tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,16); | |
| 99 | 94 | } |
| 100 | state->m_tx_tilemap = tilemap | |
| 95 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tecmo_state::get_tx_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,32,32); | |
| 101 | 96 | |
| 102 | 97 | state->m_bg_tilemap->set_transparent_pen(0); |
| 103 | 98 | state->m_fg_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 66 | 66 | m_bg_tilemap->set_flip((data & 0x08) ? TILEMAP_FLIPY : 0); |
| 67 | 67 | } |
| 68 | 68 | |
| 69 | ||
| 69 | ||
| 70 | 70 | { |
| 71 | kopunch_state *state = machine.driver_data<kopunch_state>(); | |
| 72 | int code = state->m_videoram[tile_index]; | |
| 71 | int code = m_videoram[tile_index]; | |
| 73 | 72 | |
| 74 | SET_TILE_INFO(0, code, 0, 0); | |
| 73 | SET_TILE_INFO_MEMBER(0, code, 0, 0); | |
| 75 | 74 | } |
| 76 | 75 | |
| 77 | ||
| 76 | ||
| 78 | 77 | { |
| 79 | kopunch_state *state = machine.driver_data<kopunch_state>(); | |
| 80 | int code = (state->m_videoram2[tile_index] & 0x7f) + 128 * state->m_gfxbank; | |
| 78 | int code = (m_videoram2[tile_index] & 0x7f) + 128 * m_gfxbank; | |
| 81 | 79 | |
| 82 | SET_TILE_INFO(1, code, 0, 0); | |
| 80 | SET_TILE_INFO_MEMBER(1, code, 0, 0); | |
| 83 | 81 | } |
| 84 | 82 | |
| 85 | 83 | VIDEO_START( kopunch ) |
| 86 | 84 | { |
| 87 | 85 | kopunch_state *state = machine.driver_data<kopunch_state>(); |
| 88 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 89 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 16, 16); | |
| 86 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(kopunch_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 87 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(kopunch_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 16, 16); | |
| 90 | 88 | |
| 91 | 89 | state->m_fg_tilemap->set_transparent_pen(0); |
| 92 | 90 |
| r17673 | r17674 | |
|---|---|---|
| 8 | 8 | |
| 9 | 9 | ***************************************************************************/ |
| 10 | 10 | |
| 11 | ||
| 11 | ||
| 12 | 12 | { |
| 13 | news_state *state = machine.driver_data<news_state>(); | |
| 14 | int code = (state->m_fgram[tile_index * 2] << 8) | state->m_fgram[tile_index * 2 + 1]; | |
| 15 | SET_TILE_INFO( | |
| 13 | int code = (m_fgram[tile_index * 2] << 8) | m_fgram[tile_index * 2 + 1]; | |
| 14 | SET_TILE_INFO_MEMBER( | |
| 16 | 15 | 0, |
| 17 | 16 | code & 0x0fff, |
| 18 | 17 | (code & 0xf000) >> 12, |
| 19 | 18 | 0); |
| 20 | 19 | } |
| 21 | 20 | |
| 22 | ||
| 21 | ||
| 23 | 22 | { |
| 24 | news_state *state = machine.driver_data<news_state>(); | |
| 25 | int code = (state->m_bgram[tile_index * 2] << 8) | state->m_bgram[tile_index * 2 + 1]; | |
| 23 | int code = (m_bgram[tile_index * 2] << 8) | m_bgram[tile_index * 2 + 1]; | |
| 26 | 24 | int color = (code & 0xf000) >> 12; |
| 27 | 25 | |
| 28 | 26 | code &= 0x0fff; |
| 29 | 27 | if ((code & 0x0e00) == 0x0e00) |
| 30 | code = (code & 0x1ff) | ( | |
| 28 | code = (code & 0x1ff) | ( | |
| 31 | 29 | |
| 32 | SET_TILE_INFO( | |
| 30 | SET_TILE_INFO_MEMBER( | |
| 33 | 31 | 0, |
| 34 | 32 | code, |
| 35 | 33 | color, |
| r17673 | r17674 | |
| 48 | 46 | { |
| 49 | 47 | news_state *state = machine.driver_data<news_state>(); |
| 50 | 48 | |
| 51 | state->m_fg_tilemap = tilemap | |
| 49 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(news_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 52 | 50 | state->m_fg_tilemap->set_transparent_pen(0); |
| 53 | 51 | |
| 54 | state->m_bg_tilemap = tilemap | |
| 52 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(news_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 55 | 53 | } |
| 56 | 54 | |
| 57 | 55 |
| r17673 | r17674 | |
|---|---|---|
| 16 | 16 | * |
| 17 | 17 | *************************************/ |
| 18 | 18 | |
| 19 | ||
| 19 | ||
| 20 | 20 | { |
| 21 | shuuz_state *state = machine.driver_data<shuuz_state>(); | |
| 22 | UINT16 data1 = state->m_playfield[tile_index]; | |
| 23 | UINT16 data2 = state->m_playfield_upper[tile_index] >> 8; | |
| 21 | UINT16 data1 = m_playfield[tile_index]; | |
| 22 | UINT16 data2 = m_playfield_upper[tile_index] >> 8; | |
| 24 | 23 | int code = data1 & 0x3fff; |
| 25 | 24 | int color = data2 & 0x0f; |
| 26 | SET_TILE_INFO(0, code, color, (data1 >> 15) & 1); | |
| 25 | SET_TILE_INFO_MEMBER(0, code, color, (data1 >> 15) & 1); | |
| 27 | 26 | } |
| 28 | 27 | |
| 29 | 28 | |
| r17673 | r17674 | |
| 75 | 74 | shuuz_state *state = machine.driver_data<shuuz_state>(); |
| 76 | 75 | |
| 77 | 76 | /* initialize the playfield */ |
| 78 | state->m_playfield_tilemap = tilemap | |
| 77 | state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(shuuz_state::get_playfield_tile_info),state), TILEMAP_SCAN_COLS, 8,8, 64,64); | |
| 79 | 78 | |
| 80 | 79 | /* initialize the motion objects */ |
| 81 | 80 | atarimo_init(machine, 0, &modesc); |
| r17673 | r17674 | |
|---|---|---|
| 44 | 44 | } |
| 45 | 45 | } |
| 46 | 46 | |
| 47 | ||
| 47 | ||
| 48 | 48 | { |
| 49 | finalizr_state *state = machine.driver_data<finalizr_state>(); | |
| 50 | int attr = state->m_colorram[tile_index]; | |
| 51 | int code = state->m_videoram[tile_index] + ((attr & 0xc0) << 2) + (state->m_charbank << 10); | |
| 49 | int attr = m_colorram[tile_index]; | |
| 50 | int code = m_videoram[tile_index] + ((attr & 0xc0) << 2) + (m_charbank << 10); | |
| 52 | 51 | int color = attr & 0x0f; |
| 53 | 52 | int flags = TILE_FLIPYX((attr & 0x30) >> 4); |
| 54 | 53 | |
| 55 | SET_TILE_INFO(0, code, color, flags); | |
| 54 | SET_TILE_INFO_MEMBER(0, code, color, flags); | |
| 56 | 55 | } |
| 57 | 56 | |
| 58 | ||
| 57 | ||
| 59 | 58 | { |
| 60 | finalizr_state *state = machine.driver_data<finalizr_state>(); | |
| 61 | int attr = state->m_colorram2[tile_index]; | |
| 62 | int code = state->m_videoram2[tile_index] + ((attr & 0xc0) << 2); | |
| 59 | int attr = m_colorram2[tile_index]; | |
| 60 | int code = m_videoram2[tile_index] + ((attr & 0xc0) << 2); | |
| 63 | 61 | int color = attr & 0x0f; |
| 64 | 62 | int flags = TILE_FLIPYX((attr & 0x30) >> 4); |
| 65 | 63 | |
| 66 | SET_TILE_INFO(0, code, color, flags); | |
| 64 | SET_TILE_INFO_MEMBER(0, code, color, flags); | |
| 67 | 65 | } |
| 68 | 66 | |
| 69 | 67 | VIDEO_START( finalizr ) |
| 70 | 68 | { |
| 71 | 69 | finalizr_state *state = machine.driver_data<finalizr_state>(); |
| 72 | 70 | |
| 73 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 74 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 71 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(finalizr_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 72 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(finalizr_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 75 | 73 | } |
| 76 | 74 | |
| 77 | 75 |
| r17673 | r17674 | |
|---|---|---|
| 344 | 344 | } |
| 345 | 345 | |
| 346 | 346 | |
| 347 | ||
| 347 | ||
| 348 | 348 | { |
| 349 | cclimber_state *state = machine.driver_data<cclimber_state>(); | |
| 350 | 349 | int code, color; |
| 351 | 350 | |
| 352 | int flags = TILE_FLIPYX( | |
| 351 | int flags = TILE_FLIPYX( | |
| 353 | 352 | |
| 354 | 353 | /* vertical flipping flips two adjacent characters */ |
| 355 | 354 | if (flags & 0x02) |
| 356 | 355 | tile_index = tile_index ^ 0x20; |
| 357 | 356 | |
| 358 | code = ((state->m_colorram[tile_index] & 0x10) << 5) | | |
| 359 | ((state->m_colorram[tile_index] & 0x20) << 3) | | |
| 360 | state->m_videoram[tile_index]; | |
| 357 | code = ((m_colorram[tile_index] & 0x10) << 5) | | |
| 358 | ((m_colorram[tile_index] & 0x20) << 3) | | |
| 359 | m_videoram[tile_index]; | |
| 361 | 360 | |
| 362 | color = | |
| 361 | color = | |
| 363 | 362 | |
| 364 | SET_TILE_INFO(0, code, color, flags); | |
| 363 | SET_TILE_INFO_MEMBER(0, code, color, flags); | |
| 365 | 364 | } |
| 366 | 365 | |
| 367 | 366 | |
| 368 | ||
| 367 | ||
| 369 | 368 | { |
| 370 | cclimber_state *state = machine.driver_data<cclimber_state>(); | |
| 371 | 369 | int code, color; |
| 372 | 370 | |
| 373 | int flags = TILE_FLIPYX( | |
| 371 | int flags = TILE_FLIPYX( | |
| 374 | 372 | |
| 375 | 373 | /* vertical flipping flips two adjacent characters */ |
| 376 | 374 | if (flags & 0x02) |
| 377 | 375 | tile_index = tile_index ^ 0x20; |
| 378 | 376 | |
| 379 | code = ((state->m_colorram[tile_index] & 0x10) << 4) | state->m_videoram[tile_index]; | |
| 380 | color = ((*state->m_swimmer_palettebank & 0x01) << 4) | (state->m_colorram[tile_index] & 0x0f); | |
| 377 | code = ((m_colorram[tile_index] & 0x10) << 4) | m_videoram[tile_index]; | |
| 378 | color = ((*m_swimmer_palettebank & 0x01) << 4) | (m_colorram[tile_index] & 0x0f); | |
| 381 | 379 | |
| 382 | SET_TILE_INFO(0, code, color, flags); | |
| 380 | SET_TILE_INFO_MEMBER(0, code, color, flags); | |
| 383 | 381 | } |
| 384 | 382 | |
| 385 | 383 | |
| 386 | ||
| 384 | ||
| 387 | 385 | { |
| 388 | cclimber_state *state = machine.driver_data<cclimber_state>(); | |
| 389 | 386 | int code, attr, color; |
| 390 | 387 | |
| 391 | attr = tile_index & 0x10 ? state->m_colorram[tile_index & ~0x20] : state->m_colorram[tile_index]; | |
| 392 | code = ((attr & 0x30) << 4) | state->m_videoram[tile_index]; | |
| 388 | attr = tile_index & 0x10 ? m_colorram[tile_index & ~0x20] : m_colorram[tile_index]; | |
| 389 | code = ((attr & 0x30) << 4) | m_videoram[tile_index]; | |
| 393 | 390 | color = attr & 0x0f; |
| 394 | 391 | |
| 395 | SET_TILE_INFO(0, code, color, 0); | |
| 392 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 396 | 393 | } |
| 397 | 394 | |
| 398 | 395 | |
| 399 | ||
| 396 | ||
| 400 | 397 | { |
| 401 | cclimber_state *state = machine.driver_data<cclimber_state>(); | |
| 402 | 398 | int code, color; |
| 403 | 399 | |
| 404 | 400 | /* only the lower right is visible */ |
| r17673 | r17674 | |
| 407 | 403 | /* the address doesn't use A4 of the coordinates, giving a 16x16 map */ |
| 408 | 404 | tile_index = ((tile_index & 0x1e0) >> 1) | (tile_index & 0x0f); |
| 409 | 405 | |
| 410 | code = ((state->m_bigsprite_control[1] & 0x08) << 5) | state->m_bigsprite_videoram[tile_index]; | |
| 411 | color = state->m_bigsprite_control[1] & 0x07; | |
| 406 | code = ((m_bigsprite_control[1] & 0x08) << 5) | m_bigsprite_videoram[tile_index]; | |
| 407 | color = m_bigsprite_control[1] & 0x07; | |
| 412 | 408 | |
| 413 | SET_TILE_INFO(2, code, color, 0); | |
| 409 | SET_TILE_INFO_MEMBER(2, code, color, 0); | |
| 414 | 410 | } |
| 415 | 411 | |
| 416 | 412 | |
| 417 | ||
| 413 | ||
| 418 | 414 | { |
| 419 | cclimber_state *state = machine.driver_data<cclimber_state>(); | |
| 420 | 415 | int code, color; |
| 421 | 416 | |
| 422 | 417 | /* only the lower right is visible */ |
| r17673 | r17674 | |
| 425 | 420 | /* the address doesn't use A4 of the coordinates, giving a 16x16 map */ |
| 426 | 421 | tile_index = ((tile_index & 0x1e0) >> 1) | (tile_index & 0x0f); |
| 427 | 422 | |
| 428 | code = ((state->m_bigsprite_control[1] & 0x18) << 5) | state->m_bigsprite_videoram[tile_index]; | |
| 429 | color = state->m_bigsprite_control[1] & 0x07; | |
| 423 | code = ((m_bigsprite_control[1] & 0x18) << 5) | m_bigsprite_videoram[tile_index]; | |
| 424 | color = m_bigsprite_control[1] & 0x07; | |
| 430 | 425 | |
| 431 | SET_TILE_INFO(2, code, color, 0); | |
| 426 | SET_TILE_INFO_MEMBER(2, code, color, 0); | |
| 432 | 427 | } |
| 433 | 428 | |
| 434 | 429 | |
| 435 | ||
| 430 | ||
| 436 | 431 | { |
| 437 | cclimber_state *state = machine.driver_data<cclimber_state>(); | |
| 438 | int code = ((state->m_toprollr_bg_coloram[tile_index] & 0x40) << 2) | state->m_toprollr_bg_videoram[tile_index]; | |
| 439 | int color = state->m_toprollr_bg_coloram[tile_index] & 0x0f; | |
| 432 | int code = ((m_toprollr_bg_coloram[tile_index] & 0x40) << 2) | m_toprollr_bg_videoram[tile_index]; | |
| 433 | int color = m_toprollr_bg_coloram[tile_index] & 0x0f; | |
| 440 | 434 | |
| 441 | SET_TILE_INFO(3, code, color, TILE_FLIPX); | |
| 435 | SET_TILE_INFO_MEMBER(3, code, color, TILE_FLIPX); | |
| 442 | 436 | } |
| 443 | 437 | |
| 444 | 438 | |
| 445 | 439 | VIDEO_START( cclimber ) |
| 446 | 440 | { |
| 447 | 441 | cclimber_state *state = machine.driver_data<cclimber_state>(); |
| 448 | state->m_pf_tilemap = tilemap | |
| 442 | state->m_pf_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cclimber_state::cclimber_get_pf_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 449 | 443 | state->m_pf_tilemap->set_transparent_pen(0); |
| 450 | 444 | state->m_pf_tilemap->set_scroll_cols(32); |
| 451 | 445 | |
| 452 | state->m_bs_tilemap = tilemap | |
| 446 | state->m_bs_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cclimber_state::cclimber_get_bs_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 453 | 447 | state->m_bs_tilemap->set_scroll_cols(1); |
| 454 | 448 | state->m_bs_tilemap->set_scroll_rows(1); |
| 455 | 449 | state->m_bs_tilemap->set_transmask(0, 0x01, 0); /* pen 0 is transaprent */ |
| r17673 | r17674 | |
| 460 | 454 | VIDEO_START( swimmer ) |
| 461 | 455 | { |
| 462 | 456 | cclimber_state *state = machine.driver_data<cclimber_state>(); |
| 463 | state->m_pf_tilemap = tilemap | |
| 457 | state->m_pf_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cclimber_state::swimmer_get_pf_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 464 | 458 | state->m_pf_tilemap->set_transparent_pen(0); |
| 465 | 459 | state->m_pf_tilemap->set_scroll_cols(32); |
| 466 | 460 | |
| 467 | state->m_bs_tilemap = tilemap | |
| 461 | state->m_bs_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cclimber_state::cclimber_get_bs_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 468 | 462 | state->m_bs_tilemap->set_scroll_cols(1); |
| 469 | 463 | state->m_bs_tilemap->set_scroll_rows(1); |
| 470 | 464 | state->m_bs_tilemap->set_transmask(0, 0x01, 0); /* pen 0 is transaprent */ |
| r17673 | r17674 | |
| 475 | 469 | VIDEO_START( toprollr ) |
| 476 | 470 | { |
| 477 | 471 | cclimber_state *state = machine.driver_data<cclimber_state>(); |
| 478 | state->m_pf_tilemap = tilemap | |
| 472 | state->m_pf_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cclimber_state::toprollr_get_pf_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 479 | 473 | state->m_pf_tilemap->set_transparent_pen(0); |
| 480 | 474 | |
| 481 | state->m_toproller_bg_tilemap = tilemap | |
| 475 | state->m_toproller_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cclimber_state::toproller_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 482 | 476 | state->m_toproller_bg_tilemap->set_scroll_rows(1); |
| 483 | 477 | |
| 484 | state->m_bs_tilemap = tilemap | |
| 478 | state->m_bs_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cclimber_state::toprollr_get_bs_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 485 | 479 | state->m_bs_tilemap->set_scroll_cols(1); |
| 486 | 480 | state->m_bs_tilemap->set_scroll_rows(1); |
| 487 | 481 | state->m_bs_tilemap->set_transmask(0, 0x01, 0); /* pen 0 is transaprent */ |
| r17673 | r17674 | |
|---|---|---|
| 66 | 66 | 0 | xxxx---- -------- | color |
| 67 | 67 | */ |
| 68 | 68 | |
| 69 | ||
| 69 | ||
| 70 | 70 | { |
| 71 | xorworld_state *state = machine.driver_data<xorworld_state>(); | |
| 72 | UINT16 *videoram = state->m_videoram; | |
| 71 | UINT16 *videoram = m_videoram; | |
| 73 | 72 | int data = videoram[tile_index]; |
| 74 | 73 | int code = data & 0x0fff; |
| 75 | 74 | |
| 76 | SET_TILE_INFO(0, code, data >> 12, 0); | |
| 75 | SET_TILE_INFO_MEMBER(0, code, data >> 12, 0); | |
| 77 | 76 | } |
| 78 | 77 | |
| 79 | 78 | VIDEO_START( xorworld ) |
| 80 | 79 | { |
| 81 | 80 | xorworld_state *state = machine.driver_data<xorworld_state>(); |
| 82 | state->m_bg_tilemap = tilemap | |
| 81 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(xorworld_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, | |
| 83 | 82 | 8, 8, 32, 32); |
| 84 | 83 | } |
| 85 | 84 |
| r17673 | r17674 | |
|---|---|---|
| 4 | 4 | #include "includes/speedspn.h" |
| 5 | 5 | |
| 6 | 6 | |
| 7 | ||
| 7 | ||
| 8 | 8 | { |
| 9 | speedspn_state *state = machine.driver_data<speedspn_state>(); | |
| 10 | int code = state->m_vidram[tile_index*2+1] | (state->m_vidram[tile_index*2] << 8); | |
| 11 | int attr = state->m_attram[tile_index^0x400]; | |
| 9 | int code = m_vidram[tile_index*2+1] | (m_vidram[tile_index*2] << 8); | |
| 10 | int attr = m_attram[tile_index^0x400]; | |
| 12 | 11 | |
| 13 | SET_TILE_INFO(0,code,attr & 0x3f,(attr & 0x80) ? TILE_FLIPX : 0); | |
| 12 | SET_TILE_INFO_MEMBER(0,code,attr & 0x3f,(attr & 0x80) ? TILE_FLIPX : 0); | |
| 14 | 13 | } |
| 15 | 14 | |
| 16 | 15 | VIDEO_START(speedspn) |
| 17 | 16 | { |
| 18 | 17 | speedspn_state *state = machine.driver_data<speedspn_state>(); |
| 19 | 18 | state->m_vidram = auto_alloc_array(machine, UINT8, 0x1000 * 2); |
| 20 | state->m_tilemap = tilemap | |
| 19 | state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(speedspn_state::get_speedspn_tile_info),state),TILEMAP_SCAN_COLS, 8, 8,64,32); | |
| 21 | 20 | } |
| 22 | 21 | |
| 23 | 22 | WRITE8_MEMBER(speedspn_state::speedspn_vidram_w) |
| r17673 | r17674 | |
|---|---|---|
| 153 | 153 | flip_screen_set(data & 0x80); |
| 154 | 154 | } |
| 155 | 155 | |
| 156 | ||
| 156 | ||
| 157 | 157 | { |
| 158 | cloak_state *state = machine.driver_data<cloak_state>(); | |
| 159 | UINT8 *videoram = state->m_videoram; | |
| 158 | UINT8 *videoram = m_videoram; | |
| 160 | 159 | int code = videoram[tile_index]; |
| 161 | 160 | |
| 162 | SET_TILE_INFO(0, code, 0, 0); | |
| 161 | SET_TILE_INFO_MEMBER(0, code, 0, 0); | |
| 163 | 162 | } |
| 164 | 163 | |
| 165 | 164 | VIDEO_START( cloak ) |
| 166 | 165 | { |
| 167 | 166 | cloak_state *state = machine.driver_data<cloak_state>(); |
| 168 | 167 | |
| 169 | state->m_bg_tilemap = tilemap | |
| 168 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cloak_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 170 | 169 | |
| 171 | 170 | state->m_bitmap_videoram1 = auto_alloc_array(machine, UINT8, 256*256); |
| 172 | 171 | state->m_bitmap_videoram2 = auto_alloc_array(machine, UINT8, 256*256); |
| r17673 | r17674 | |
|---|---|---|
| 62 | 62 | } |
| 63 | 63 | } /* tilemap_get_info */ |
| 64 | 64 | |
| 65 | ||
| 65 | ||
| 66 | 66 | { |
| 67 | namcona1_state *state = machine.driver_data<namcona1_state>(); | |
| 68 | UINT16 *videoram = state->m_videoram; | |
| 69 | tilemap_get_info(machine,tileinfo,tile_index,0*0x1000+videoram,state->m_tilemap_palette_bank[0],state->m_vreg[0xbc/2]&1); | |
| 67 | UINT16 *videoram = m_videoram; | |
| 68 | tilemap_get_info(machine(),tileinfo,tile_index,0*0x1000+videoram,m_tilemap_palette_bank[0],m_vreg[0xbc/2]&1); | |
| 70 | 69 | } |
| 71 | 70 | |
| 72 | ||
| 71 | ||
| 73 | 72 | { |
| 74 | namcona1_state *state = machine.driver_data<namcona1_state>(); | |
| 75 | UINT16 *videoram = state->m_videoram; | |
| 76 | tilemap_get_info(machine,tileinfo,tile_index,1*0x1000+videoram,state->m_tilemap_palette_bank[1],state->m_vreg[0xbc/2]&2); | |
| 73 | UINT16 *videoram = m_videoram; | |
| 74 | tilemap_get_info(machine(),tileinfo,tile_index,1*0x1000+videoram,m_tilemap_palette_bank[1],m_vreg[0xbc/2]&2); | |
| 77 | 75 | } |
| 78 | 76 | |
| 79 | ||
| 77 | ||
| 80 | 78 | { |
| 81 | namcona1_state *state = machine.driver_data<namcona1_state>(); | |
| 82 | UINT16 *videoram = state->m_videoram; | |
| 83 | tilemap_get_info(machine,tileinfo,tile_index,2*0x1000+videoram,state->m_tilemap_palette_bank[2],state->m_vreg[0xbc/2]&4); | |
| 79 | UINT16 *videoram = m_videoram; | |
| 80 | tilemap_get_info(machine(),tileinfo,tile_index,2*0x1000+videoram,m_tilemap_palette_bank[2],m_vreg[0xbc/2]&4); | |
| 84 | 81 | } |
| 85 | 82 | |
| 86 | ||
| 83 | ||
| 87 | 84 | { |
| 88 | namcona1_state *state = machine.driver_data<namcona1_state>(); | |
| 89 | UINT16 *videoram = state->m_videoram; | |
| 90 | tilemap_get_info(machine,tileinfo,tile_index,3*0x1000+videoram,state->m_tilemap_palette_bank[3],state->m_vreg[0xbc/2]&8); | |
| 85 | UINT16 *videoram = m_videoram; | |
| 86 | tilemap_get_info(machine(),tileinfo,tile_index,3*0x1000+videoram,m_tilemap_palette_bank[3],m_vreg[0xbc/2]&8); | |
| 91 | 87 | } |
| 92 | 88 | |
| 93 | ||
| 89 | ||
| 94 | 90 | { |
| 95 | namcona1_state *state = machine.driver_data<namcona1_state>(); | |
| 96 | UINT16 *videoram = state->m_videoram; | |
| 91 | UINT16 *videoram = m_videoram; | |
| 97 | 92 | /* each logical tile is constructed from 4*4 normal tiles */ |
| 98 | int tilemap_color = state->m_roz_palette; | |
| 99 | int use_4bpp_gfx = state->m_vreg[0xbc/2]&16; /* ? */ | |
| 93 | int tilemap_color = m_roz_palette; | |
| 94 | int use_4bpp_gfx = m_vreg[0xbc/2]&16; /* ? */ | |
| 100 | 95 | int c = tile_index%0x40; |
| 101 | 96 | int r = tile_index/0x40; |
| 102 | 97 | int data = videoram[0x8000/2+(r/4)*0x40+c/4]&0xfbf; /* mask out bit 0x40 - patch for Emeraldia Japan */ |
| r17673 | r17674 | |
| 109 | 104 | } |
| 110 | 105 | if( data & 0x8000 ) |
| 111 | 106 | { |
| 112 | SET_TILE_INFO( gfx,tile,tilemap_color,TILE_FORCE_LAYER0 ); | |
| 107 | SET_TILE_INFO_MEMBER( gfx,tile,tilemap_color,TILE_FORCE_LAYER0 ); | |
| 113 | 108 | } |
| 114 | 109 | else |
| 115 | 110 | { |
| 116 | UINT8 *mask_data = (UINT8 *)( | |
| 111 | UINT8 *mask_data = (UINT8 *)( | |
| 117 | 112 | |
| 118 | 113 | if (ENDIANNESS_NATIVE == ENDIANNESS_LITTLE) |
| 119 | 114 | { |
| 120 | 115 | UINT16 *source = (UINT16 *)mask_data; |
| 121 | UINT8 *conv_data = | |
| 116 | UINT8 *conv_data = | |
| 122 | 117 | conv_data[0] = source[0]>>8; |
| 123 | 118 | conv_data[1] = source[0]&0xff; |
| 124 | 119 | conv_data[2] = source[1]>>8; |
| r17673 | r17674 | |
| 129 | 124 | conv_data[7] = source[3]&0xff; |
| 130 | 125 | mask_data = conv_data; |
| 131 | 126 | } |
| 132 | SET_TILE_INFO( gfx,tile,tilemap_color,0 ); | |
| 127 | SET_TILE_INFO_MEMBER( gfx,tile,tilemap_color,0 ); | |
| 133 | 128 | tileinfo.mask_data = mask_data; |
| 134 | 129 | } |
| 135 | 130 | } /* roz_get_info */ |
| r17673 | r17674 | |
| 283 | 278 | VIDEO_START( namcona1 ) |
| 284 | 279 | { |
| 285 | 280 | namcona1_state *state = machine.driver_data<namcona1_state>(); |
| 286 | static const tile_get_info_func get_info[4] = { tilemap_get_info0, tilemap_get_info1, tilemap_get_info2, tilemap_get_info3 }; | |
| 281 | static const tilemap_get_info_delegate get_info[4] = { | |
| 282 | tilemap_get_info_delegate(FUNC(namcona1_state::tilemap_get_info0),state), | |
| 283 | tilemap_get_info_delegate(FUNC(namcona1_state::tilemap_get_info1),state), | |
| 284 | tilemap_get_info_delegate(FUNC(namcona1_state::tilemap_get_info2),state), | |
| 285 | tilemap_get_info_delegate(FUNC(namcona1_state::tilemap_get_info3),state) | |
| 286 | }; | |
| 287 | 287 | int i; |
| 288 | 288 | |
| 289 | state->m_roz_tilemap = tilemap | |
| 289 | state->m_roz_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(namcona1_state::roz_get_info),state), TILEMAP_SCAN_ROWS, 8,8,64,64 ); | |
| 290 | 290 | state->m_roz_palette = -1; |
| 291 | 291 | |
| 292 | 292 | for( i=0; i<NAMCONA1_NUM_TILEMAPS; i++ ) |
| 293 | 293 | { |
| 294 | state->m_bg_tilemap[i] = tilemap | |
| 294 | state->m_bg_tilemap[i] = &machine.tilemap().create( | |
| 295 | 295 | state->m_tilemap_palette_bank[i] = -1; |
| 296 | 296 | } |
| 297 | 297 |
| r17673 | r17674 | |
|---|---|---|
| 15 | 15 | * |
| 16 | 16 | *************************************/ |
| 17 | 17 | |
| 18 | ||
| 18 | ||
| 19 | 19 | { |
| 20 | foodf_state *state = machine.driver_data<foodf_state>(); | |
| 21 | UINT16 data = state->m_playfield[tile_index]; | |
| 20 | UINT16 data = m_playfield[tile_index]; | |
| 22 | 21 | int code = (data & 0xff) | ((data >> 7) & 0x100); |
| 23 | 22 | int color = (data >> 8) & 0x3f; |
| 24 | SET_TILE_INFO(0, code, color, | |
| 23 | SET_TILE_INFO_MEMBER(0, code, color, | |
| 25 | 24 | } |
| 26 | 25 | |
| 27 | 26 | |
| r17673 | r17674 | |
| 38 | 37 | foodf_state *state = machine.driver_data<foodf_state>(); |
| 39 | 38 | |
| 40 | 39 | /* initialize the playfield */ |
| 41 | state->m_playfield_tilemap = tilemap | |
| 40 | state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(foodf_state::get_playfield_tile_info),state), TILEMAP_SCAN_COLS, 8,8, 32,32); | |
| 42 | 41 | state->m_playfield_tilemap->set_transparent_pen(0); |
| 43 | 42 | |
| 44 | 43 | /* adjust the playfield for the 8 pixel offset */ |
| r17673 | r17674 | |
|---|---|---|
| 15 | 15 | m_bg_tilemap->mark_tile_dirty(offset); |
| 16 | 16 | } |
| 17 | 17 | |
| 18 | ||
| 18 | ||
| 19 | 19 | { |
| 20 | bsktball_state *state = machine.driver_data<bsktball_state>(); | |
| 21 | int attr = state->m_videoram[tile_index]; | |
| 20 | int attr = m_videoram[tile_index]; | |
| 22 | 21 | int code = ((attr & 0x0f) << 2) | ((attr & 0x30) >> 4); |
| 23 | 22 | int color = (attr & 0x40) >> 6; |
| 24 | 23 | int flags = (attr & 0x80) ? TILE_FLIPX : 0; |
| 25 | 24 | |
| 26 | SET_TILE_INFO(0, code, color, flags); | |
| 25 | SET_TILE_INFO_MEMBER(0, code, color, flags); | |
| 27 | 26 | } |
| 28 | 27 | |
| 29 | 28 | VIDEO_START( bsktball ) |
| 30 | 29 | { |
| 31 | 30 | bsktball_state *state = machine.driver_data<bsktball_state>(); |
| 32 | state->m_bg_tilemap = tilemap | |
| 31 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bsktball_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 33 | 32 | } |
| 34 | 33 | |
| 35 | 34 | static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ) |
| r17673 | r17674 | |
|---|---|---|
| 14 | 14 | |
| 15 | 15 | ***************************************************************************/ |
| 16 | 16 | |
| 17 | ||
| 17 | ||
| 18 | 18 | { /* col: 0..63; row: 0..31 */ |
| 19 | 19 | /* armed formation */ |
| 20 | 20 | return col * 32 + row; |
| 21 | 21 | } |
| 22 | 22 | |
| 23 | ||
| 23 | ||
| 24 | 24 | { /* col: 0..63; row: 0..31 */ |
| 25 | 25 | return 32 * (31 - row) + (col & 0x1f) + 0x800 * (col / 32); |
| 26 | 26 | } |
| 27 | 27 | |
| 28 | ||
| 28 | ||
| 29 | 29 | { /* col: 0..63; row: 0..31 */ |
| 30 | 30 | /* legion & legiono */ |
| 31 | 31 | return (col & 0x1f) * 32 + row + 0x800 * (col / 32); |
| 32 | 32 | } |
| 33 | 33 | |
| 34 | ||
| 34 | ||
| 35 | 35 | { |
| 36 | armedf_state *state = machine.driver_data<armedf_state>(); | |
| 37 | int tile_number = state->m_text_videoram[tile_index] & 0xff; | |
| 36 | int tile_number = m_text_videoram[tile_index] & 0xff; | |
| 38 | 37 | int attributes; |
| 39 | 38 | |
| 40 | 39 | /* TODO: Armed F doesn't seem to use the NB1414M4! */ |
| 41 | //if (state->m_scroll_type == 1) | |
| 42 | // attributes = state->m_text_videoram[tile_index + 0x800] & 0xff; | |
| 40 | //if (m_scroll_type == 1) | |
| 41 | // attributes = m_text_videoram[tile_index + 0x800] & 0xff; | |
| 43 | 42 | //else |
| 44 | 43 | { |
| 45 | attributes = | |
| 44 | attributes = | |
| 46 | 45 | |
| 47 | 46 | if(tile_index < 0x12) /* don't draw the NB1414M4 params! TODO: could be a better fix */ |
| 48 | 47 | tile_number = attributes = 0x00; |
| r17673 | r17674 | |
| 51 | 50 | /* bit 3 controls priority, (0) nb1414m4 has priority over all the other video layers */ |
| 52 | 51 | tileinfo.category = (attributes & 0x8) >> 3; |
| 53 | 52 | |
| 54 | SET_TILE_INFO( | |
| 53 | SET_TILE_INFO_MEMBER( | |
| 55 | 54 | 0, |
| 56 | 55 | tile_number + 256 * (attributes & 0x3), |
| 57 | 56 | attributes >> 4, |
| 58 | 57 | 0); |
| 59 | 58 | } |
| 60 | 59 | |
| 61 | ||
| 60 | ||
| 62 | 61 | { |
| 63 | armedf_state *state = machine.driver_data<armedf_state>(); | |
| 64 | int tile_number = state->m_text_videoram[tile_index] & 0xff; | |
| 62 | int tile_number = m_text_videoram[tile_index] & 0xff; | |
| 65 | 63 | int attributes; |
| 66 | 64 | |
| 67 | 65 | /* TODO: Armed F doesn't seem to use the NB1414M4! */ |
| 68 | //if (state->m_scroll_type == 1) | |
| 69 | attributes = state->m_text_videoram[tile_index + 0x800] & 0xff; | |
| 66 | //if (m_scroll_type == 1) | |
| 67 | attributes = m_text_videoram[tile_index + 0x800] & 0xff; | |
| 70 | 68 | //else |
| 71 | 69 | //{ |
| 72 | // attributes = | |
| 70 | // attributes = | |
| 73 | 71 | // |
| 74 | 72 | // if(tile_index < 0x12) /* don't draw the NB1414M4 params! TODO: could be a better fix */ |
| 75 | 73 | // tile_number = attributes = 0x00; |
| r17673 | r17674 | |
| 78 | 76 | /* bit 3 controls priority, (0) nb1414m4 has priority over all the other video layers */ |
| 79 | 77 | tileinfo.category = (attributes & 0x8) >> 3; |
| 80 | 78 | |
| 81 | SET_TILE_INFO( | |
| 79 | SET_TILE_INFO_MEMBER( | |
| 82 | 80 | 0, |
| 83 | 81 | tile_number + 256 * (attributes & 0x3), |
| 84 | 82 | attributes >> 4, |
| r17673 | r17674 | |
| 86 | 84 | } |
| 87 | 85 | |
| 88 | 86 | |
| 89 | ||
| 87 | ||
| 90 | 88 | { |
| 91 | armedf_state *state = machine.driver_data<armedf_state>(); | |
| 92 | int data = state->m_fg_videoram[tile_index]; | |
| 93 | SET_TILE_INFO( | |
| 89 | int data = m_fg_videoram[tile_index]; | |
| 90 | SET_TILE_INFO_MEMBER( | |
| 94 | 91 | 1, |
| 95 | 92 | data&0x7ff, |
| 96 | 93 | data>>11, |
| r17673 | r17674 | |
| 98 | 95 | } |
| 99 | 96 | |
| 100 | 97 | |
| 101 | ||
| 98 | ||
| 102 | 99 | { |
| 103 | armedf_state *state = machine.driver_data<armedf_state>(); | |
| 104 | int data = state->m_bg_videoram[tile_index]; | |
| 105 | SET_TILE_INFO( | |
| 100 | int data = m_bg_videoram[tile_index]; | |
| 101 | SET_TILE_INFO_MEMBER( | |
| 106 | 102 | 2, |
| 107 | 103 | data & 0x3ff, |
| 108 | 104 | data >> 11, |
| r17673 | r17674 | |
| 123 | 119 | |
| 124 | 120 | state->m_sprite_offy = (state->m_scroll_type & 2 ) ? 0 : 128; /* legion, legiono, crazy climber 2 */ |
| 125 | 121 | |
| 126 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, 16, 16, 64, 32); | |
| 127 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_COLS, 16, 16, 64, 32); | |
| 122 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(armedf_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 64, 32); | |
| 123 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(armedf_state::get_fg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 64, 32); | |
| 128 | 124 | |
| 129 | state->m_tx_tilemap = tilemap_create(machine, get_nb1414m4_tx_tile_info, (state->m_scroll_type == 2) ? armedf_scan_type3 : armedf_scan_type2, 8, 8, 64, 32); | |
| 125 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(armedf_state::get_nb1414m4_tx_tile_info),state), | |
| 126 | (state->m_scroll_type == 2) ? tilemap_mapper_delegate(FUNC(armedf_state::armedf_scan_type3),state) : tilemap_mapper_delegate(FUNC(armedf_state::armedf_scan_type2),state), 8, 8, 64, 32); | |
| 130 | 127 | |
| 131 | 128 | state->m_bg_tilemap->set_transparent_pen(0xf); |
| 132 | 129 | state->m_fg_tilemap->set_transparent_pen(0xf); |
| r17673 | r17674 | |
| 145 | 142 | |
| 146 | 143 | state->m_sprite_offy = (state->m_scroll_type & 2 ) ? 0 : 128; /* legion, legiono, crazy climber 2 */ |
| 147 | 144 | |
| 148 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, 16, 16, 64, 32); | |
| 149 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_COLS, 16, 16, 64, 32); | |
| 145 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(armedf_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 64, 32); | |
| 146 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(armedf_state::get_fg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 64, 32); | |
| 150 | 147 | |
| 151 | state->m_tx_tilemap = tilemap | |
| 148 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(armedf_state::get_armedf_tx_tile_info),state), tilemap_mapper_delegate(FUNC(armedf_state::armedf_scan_type1),state), 8, 8, 64, 32); | |
| 152 | 149 | |
| 153 | 150 | state->m_bg_tilemap->set_transparent_pen(0xf); |
| 154 | 151 | state->m_fg_tilemap->set_transparent_pen(0xf); |
| r17673 | r17674 | |
|---|---|---|
| 452 | 452 | state->m_color_codes = color_prom; /* we'll need it later */ |
| 453 | 453 | } |
| 454 | 454 | |
| 455 | ||
| 455 | ||
| 456 | 456 | { |
| 457 | dkong_state *state = machine.driver_data<dkong_state>(); | |
| 458 | int code = state->m_video_ram[tile_index] + 256 * state->m_gfx_bank; | |
| 459 | int color = (state->m_color_codes[tile_index % 32 + 32 * (tile_index / 32 / 4)] & 0x0f) + 0x10 * state->m_palette_bank; | |
| 457 | int code = m_video_ram[tile_index] + 256 * m_gfx_bank; | |
| 458 | int color = (m_color_codes[tile_index % 32 + 32 * (tile_index / 32 / 4)] & 0x0f) + 0x10 * m_palette_bank; | |
| 460 | 459 | |
| 461 | SET_TILE_INFO(0, code, color, 0); | |
| 460 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 462 | 461 | } |
| 463 | 462 | |
| 464 | ||
| 463 | ||
| 465 | 464 | { |
| 466 | dkong_state *state = machine.driver_data<dkong_state>(); | |
| 467 | int code = state->m_video_ram[tile_index] + 256 * state->m_gfx_bank; | |
| 468 | int color = (state->m_color_codes[tile_index % 32] & 0x0f); | |
| 469 | color = color | (state->m_palette_bank<<4); | |
| 465 | int code = m_video_ram[tile_index] + 256 * m_gfx_bank; | |
| 466 | int color = (m_color_codes[tile_index % 32] & 0x0f); | |
| 467 | color = color | (m_palette_bank<<4); | |
| 470 | 468 | |
| 471 | SET_TILE_INFO(0, code, color, 0); | |
| 469 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 472 | 470 | } |
| 473 | 471 | |
| 474 | 472 | /*************************************************************************** |
| r17673 | r17674 | |
| 942 | 940 | /* fall through */ |
| 943 | 941 | case HARDWARE_TKG04: |
| 944 | 942 | case HARDWARE_TKG02: |
| 945 | state->m_bg_tilemap = tilemap | |
| 943 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dkong_state::dkong_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 946 | 944 | state->m_bg_tilemap->set_scrolldx(0, 128); |
| 947 | 945 | break; |
| 948 | 946 | case HARDWARE_TRS01: |
| 949 | state->m_bg_tilemap = tilemap | |
| 947 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dkong_state::radarscp1_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 950 | 948 | state->m_bg_tilemap->set_scrolldx(0, 128); |
| 951 | 949 | |
| 952 | 950 | machine.primary_screen->register_screen_bitmap(state->m_bg_bits); |
| r17673 | r17674 | |
|---|---|---|
| 35 | 35 | } |
| 36 | 36 | |
| 37 | 37 | |
| 38 | ||
| 38 | ||
| 39 | 39 | { |
| 40 | sprint4_state *state = machine.driver_data<sprint4_state>(); | |
| 41 | UINT8 *videoram = state->m_videoram; | |
| 40 | UINT8 *videoram = m_videoram; | |
| 42 | 41 | UINT8 code = videoram[tile_index]; |
| 43 | 42 | |
| 44 | 43 | if ((code & 0x30) == 0x30) |
| 45 | SET_TILE_INFO(0, code & ~0x40, (code >> 6) ^ 3, 0); | |
| 44 | SET_TILE_INFO_MEMBER(0, code & ~0x40, (code >> 6) ^ 3, 0); | |
| 46 | 45 | else |
| 47 | SET_TILE_INFO(0, code, 4, 0); | |
| 46 | SET_TILE_INFO_MEMBER(0, code, 4, 0); | |
| 48 | 47 | } |
| 49 | 48 | |
| 50 | 49 | |
| r17673 | r17674 | |
| 53 | 52 | sprint4_state *state = machine.driver_data<sprint4_state>(); |
| 54 | 53 | machine.primary_screen->register_screen_bitmap(state->m_helper); |
| 55 | 54 | |
| 56 | state->m_playfield = tilemap | |
| 55 | state->m_playfield = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sprint4_state::sprint4_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 57 | 56 | } |
| 58 | 57 | |
| 59 | 58 |
| r17673 | r17674 | |
|---|---|---|
| 100 | 100 | |
| 101 | 101 | ***************************************************************************/ |
| 102 | 102 | |
| 103 | ||
| 103 | ||
| 104 | 104 | { |
| 105 | appoooh_state *state = machine.driver_data<appoooh_state>(); | |
| 106 | int code = state->m_fg_videoram[tile_index] + 256 * ((state->m_fg_colorram[tile_index] >> 5) & 7); | |
| 105 | int code = m_fg_videoram[tile_index] + 256 * ((m_fg_colorram[tile_index] >> 5) & 7); | |
| 107 | 106 | |
| 108 | SET_TILE_INFO( | |
| 107 | SET_TILE_INFO_MEMBER( | |
| 109 | 108 | 0, |
| 110 | 109 | code, |
| 111 | state->m_fg_colorram[tile_index] & 0x0f, | |
| 112 | (state->m_fg_colorram[tile_index] & 0x10 ) ? TILEMAP_FLIPX : 0 | |
| 110 | m_fg_colorram[tile_index] & 0x0f, | |
| 111 | (m_fg_colorram[tile_index] & 0x10 ) ? TILEMAP_FLIPX : 0 | |
| 113 | 112 | ); |
| 114 | 113 | } |
| 115 | 114 | |
| 116 | ||
| 115 | ||
| 117 | 116 | { |
| 118 | appoooh_state *state = machine.driver_data<appoooh_state>(); | |
| 119 | int code = state->m_bg_videoram[tile_index] + 256 * ((state->m_bg_colorram[tile_index] >> 5) & 7); | |
| 117 | int code = m_bg_videoram[tile_index] + 256 * ((m_bg_colorram[tile_index] >> 5) & 7); | |
| 120 | 118 | |
| 121 | SET_TILE_INFO( | |
| 119 | SET_TILE_INFO_MEMBER( | |
| 122 | 120 | 1, |
| 123 | 121 | code, |
| 124 | state->m_bg_colorram[tile_index] & 0x0f, | |
| 125 | (state->m_bg_colorram[tile_index] & 0x10 ) ? TILEMAP_FLIPX : 0 | |
| 122 | m_bg_colorram[tile_index] & 0x0f, | |
| 123 | (m_bg_colorram[tile_index] & 0x10 ) ? TILEMAP_FLIPX : 0 | |
| 126 | 124 | ); |
| 127 | 125 | } |
| 128 | 126 | |
| r17673 | r17674 | |
| 136 | 134 | { |
| 137 | 135 | appoooh_state *state = machine.driver_data<appoooh_state>(); |
| 138 | 136 | |
| 139 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 140 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 137 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(appoooh_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 138 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(appoooh_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 141 | 139 | |
| 142 | 140 | state->m_fg_tilemap->set_transparent_pen(0); |
| 143 | 141 | state->m_fg_tilemap->set_scrolldy(8, 8); |
| r17673 | r17674 | |
|---|---|---|
| 197 | 197 | |
| 198 | 198 | ***************************************************************************/ |
| 199 | 199 | |
| 200 | ||
| 200 | ||
| 201 | 201 | { |
| 202 | travrusa_state *state = machine.driver_data<travrusa_state>(); | |
| 203 | UINT8 attr = state->m_videoram[2 * tile_index + 1]; | |
| 202 | UINT8 attr = m_videoram[2 * tile_index + 1]; | |
| 204 | 203 | int flags = TILE_FLIPXY((attr & 0x30) >> 4); |
| 205 | 204 | |
| 206 | 205 | tileinfo.group = ((attr & 0x0f) == 0x0f) ? 1 : 0; /* tunnels */ |
| 207 | 206 | |
| 208 | SET_TILE_INFO( | |
| 207 | SET_TILE_INFO_MEMBER( | |
| 209 | 208 | 0, |
| 210 | | |
| 209 | | |
| 211 | 210 | attr & 0x0f, |
| 212 | 211 | flags); |
| 213 | 212 | } |
| r17673 | r17674 | |
| 226 | 225 | |
| 227 | 226 | state->save_item(NAME(state->m_scrollx)); |
| 228 | 227 | |
| 229 | state->m_bg_tilemap = tilemap | |
| 228 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(travrusa_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 230 | 229 | |
| 231 | 230 | state->m_bg_tilemap->set_transmask(0, 0xff, 0x00); /* split type 0 is totally transparent in front half */ |
| 232 | 231 | state->m_bg_tilemap->set_transmask(1, 0x3f, 0xc0); /* split type 1 has pens 6 and 7 opaque - tunnels */ |
| r17673 | r17674 | |
|---|---|---|
| 64 | 64 | |
| 65 | 65 | ***************************************************************************/ |
| 66 | 66 | |
| 67 | ||
| 67 | ||
| 68 | 68 | { |
| 69 | 69 | return (row & 7) + ((row & ~7) << 4) + ((col & 0xf) << 3) + ((col & ~0xf) << 4); |
| 70 | 70 | } |
| 71 | 71 | |
| 72 | ||
| 72 | ||
| 73 | 73 | { |
| 74 | metlclsh_state *state = machine.driver_data<metlclsh_state>(); | |
| 75 | SET_TILE_INFO(1, state->m_bgram[tile_index] + (state->m_gfxbank << 7), 0, 0); | |
| 74 | SET_TILE_INFO_MEMBER(1, m_bgram[tile_index] + (m_gfxbank << 7), 0, 0); | |
| 76 | 75 | } |
| 77 | 76 | |
| 78 | 77 | WRITE8_MEMBER(metlclsh_state::metlclsh_bgram_w) |
| r17673 | r17674 | |
| 112 | 111 | |
| 113 | 112 | ***************************************************************************/ |
| 114 | 113 | |
| 115 | ||
| 114 | ||
| 116 | 115 | { |
| 117 | metlclsh_state *state = machine.driver_data<metlclsh_state>(); | |
| 118 | UINT8 code = state->m_fgram[tile_index + 0x000]; | |
| 119 | UINT8 attr = state->m_fgram[tile_index + 0x400]; | |
| 120 | SET_TILE_INFO(2, code + ((attr & 0x03) << 8), (attr >> 5) & 3, 0); | |
| 116 | UINT8 code = m_fgram[tile_index + 0x000]; | |
| 117 | UINT8 attr = m_fgram[tile_index + 0x400]; | |
| 118 | SET_TILE_INFO_MEMBER(2, code + ((attr & 0x03) << 8), (attr >> 5) & 3, 0); | |
| 121 | 119 | tileinfo.category = ((attr & 0x80) ? 1 : 2); |
| 122 | 120 | } |
| 123 | 121 | |
| r17673 | r17674 | |
| 140 | 138 | |
| 141 | 139 | state->m_otherram = auto_alloc_array(machine, UINT8, 0x800); // banked ram |
| 142 | 140 | |
| 143 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, metlclsh_bgtilemap_scan, 16, 16, 32, 16); | |
| 144 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 141 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(metlclsh_state::get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(metlclsh_state::metlclsh_bgtilemap_scan),state), 16, 16, 32, 16); | |
| 142 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(metlclsh_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 145 | 143 | |
| 146 | 144 | state->m_bg_tilemap->set_transparent_pen(0); |
| 147 | 145 | state->m_fg_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 44 | 44 | m_bg2_tilemap->mark_tile_dirty(offset / 2); |
| 45 | 45 | } |
| 46 | 46 | |
| 47 | ||
| 47 | ||
| 48 | 48 | { |
| 49 | dbz_state *state = machine.driver_data<dbz_state>(); | |
| 50 | 49 | int tileno, colour, flag; |
| 51 | 50 | |
| 52 | tileno = state->m_bg2_videoram[tile_index * 2 + 1] & 0x7fff; | |
| 53 | colour = (state->m_bg2_videoram[tile_index * 2] & 0x000f); | |
| 54 | flag = (state->m_bg2_videoram[tile_index * 2] & 0x0080) ? TILE_FLIPX : 0; | |
| 51 | tileno = m_bg2_videoram[tile_index * 2 + 1] & 0x7fff; | |
| 52 | colour = (m_bg2_videoram[tile_index * 2] & 0x000f); | |
| 53 | flag = (m_bg2_videoram[tile_index * 2] & 0x0080) ? TILE_FLIPX : 0; | |
| 55 | 54 | |
| 56 | SET_TILE_INFO(0, tileno, colour + ( | |
| 55 | SET_TILE_INFO_MEMBER(0, tileno, colour + ( | |
| 57 | 56 | } |
| 58 | 57 | |
| 59 | 58 | WRITE16_MEMBER(dbz_state::dbz_bg1_videoram_w) |
| r17673 | r17674 | |
| 62 | 61 | m_bg1_tilemap->mark_tile_dirty(offset / 2); |
| 63 | 62 | } |
| 64 | 63 | |
| 65 | ||
| 64 | ||
| 66 | 65 | { |
| 67 | dbz_state *state = machine.driver_data<dbz_state>(); | |
| 68 | 66 | int tileno, colour, flag; |
| 69 | 67 | |
| 70 | tileno = state->m_bg1_videoram[tile_index * 2 + 1] & 0x7fff; | |
| 71 | colour = (state->m_bg1_videoram[tile_index * 2] & 0x000f); | |
| 72 | flag = (state->m_bg1_videoram[tile_index * 2] & 0x0080) ? TILE_FLIPX : 0; | |
| 68 | tileno = m_bg1_videoram[tile_index * 2 + 1] & 0x7fff; | |
| 69 | colour = (m_bg1_videoram[tile_index * 2] & 0x000f); | |
| 70 | flag = (m_bg1_videoram[tile_index * 2] & 0x0080) ? TILE_FLIPX : 0; | |
| 73 | 71 | |
| 74 | SET_TILE_INFO(1, tileno, colour + ( | |
| 72 | SET_TILE_INFO_MEMBER(1, tileno, colour + ( | |
| 75 | 73 | } |
| 76 | 74 | |
| 77 | 75 | VIDEO_START( dbz ) |
| 78 | 76 | { |
| 79 | 77 | dbz_state *state = machine.driver_data<dbz_state>(); |
| 80 | 78 | |
| 81 | state->m_bg1_tilemap = tilemap_create(machine, get_dbz_bg1_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 32); | |
| 82 | state->m_bg2_tilemap = tilemap_create(machine, get_dbz_bg2_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 32); | |
| 79 | state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dbz_state::get_dbz_bg1_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); | |
| 80 | state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dbz_state::get_dbz_bg2_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); | |
| 83 | 81 | |
| 84 | 82 | state->m_bg1_tilemap->set_transparent_pen(0); |
| 85 | 83 | state->m_bg2_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 62 | 62 | m_fg_tilemap->mark_tile_dirty(offset); |
| 63 | 63 | } |
| 64 | 64 | |
| 65 | ||
| 65 | ||
| 66 | 66 | { |
| 67 | goldstar_state *state = machine.driver_data<goldstar_state>(); | |
| 68 | int code = state->m_fg_vidram[tile_index]; | |
| 69 | int attr = state->m_fg_atrram[tile_index]; | |
| 67 | int code = m_fg_vidram[tile_index]; | |
| 68 | int attr = m_fg_atrram[tile_index]; | |
| 70 | 69 | |
| 71 | SET_TILE_INFO( | |
| 70 | SET_TILE_INFO_MEMBER( | |
| 72 | 71 | 0, |
| 73 | 72 | code | (attr & 0xf0)<<4, |
| 74 | 73 | attr&0x0f, |
| 75 | 74 | 0); |
| 76 | 75 | } |
| 77 | 76 | |
| 78 | ||
| 77 | ||
| 79 | 78 | { |
| 80 | goldstar_state *state = machine.driver_data<goldstar_state>(); | |
| 81 | int code = state->m_fg_vidram[tile_index]; | |
| 82 | int attr = state->m_fg_atrram[tile_index]; | |
| 79 | int code = m_fg_vidram[tile_index]; | |
| 80 | int attr = m_fg_atrram[tile_index]; | |
| 83 | 81 | |
| 84 | SET_TILE_INFO( | |
| 82 | SET_TILE_INFO_MEMBER( | |
| 85 | 83 | 0, |
| 86 | (code | (attr & 0xf0)<<4)+ | |
| 84 | (code | (attr & 0xf0)<<4)+ | |
| 87 | 85 | attr&0x0f, |
| 88 | 86 | 0); |
| 89 | 87 | } |
| 90 | 88 | |
| 91 | 89 | |
| 92 | 90 | // colour / high tile bits are swapped around |
| 93 | ||
| 91 | ||
| 94 | 92 | { |
| 95 | goldstar_state *state = machine.driver_data<goldstar_state>(); | |
| 96 | int code = state->m_fg_vidram[tile_index]; | |
| 97 | int attr = state->m_fg_atrram[tile_index]; | |
| 93 | int code = m_fg_vidram[tile_index]; | |
| 94 | int attr = m_fg_atrram[tile_index]; | |
| 98 | 95 | |
| 99 | SET_TILE_INFO( | |
| 96 | SET_TILE_INFO_MEMBER( | |
| 100 | 97 | 0, |
| 101 | 98 | code | (attr & 0x0f)<<8, |
| 102 | 99 | (attr&0xf0)>>4, |
| r17673 | r17674 | |
| 112 | 109 | m_reel1_tilemap->mark_tile_dirty(offset); |
| 113 | 110 | } |
| 114 | 111 | |
| 115 | ||
| 112 | ||
| 116 | 113 | { |
| 117 | goldstar_state *state = machine.driver_data<goldstar_state>(); | |
| 118 | int code = state->m_reel1_ram[tile_index]; | |
| 114 | int code = m_reel1_ram[tile_index]; | |
| 119 | 115 | |
| 120 | SET_TILE_INFO( | |
| 116 | SET_TILE_INFO_MEMBER( | |
| 121 | 117 | 1, |
| 122 | 118 | code, |
| 123 | | |
| 119 | | |
| 124 | 120 | 0); |
| 125 | 121 | } |
| 126 | 122 | |
| r17673 | r17674 | |
| 131 | 127 | m_reel2_tilemap->mark_tile_dirty(offset); |
| 132 | 128 | } |
| 133 | 129 | |
| 134 | ||
| 130 | ||
| 135 | 131 | { |
| 136 | goldstar_state *state = machine.driver_data<goldstar_state>(); | |
| 137 | int code = state->m_reel2_ram[tile_index]; | |
| 132 | int code = m_reel2_ram[tile_index]; | |
| 138 | 133 | |
| 139 | SET_TILE_INFO( | |
| 134 | SET_TILE_INFO_MEMBER( | |
| 140 | 135 | 1, |
| 141 | 136 | code, |
| 142 | | |
| 137 | | |
| 143 | 138 | 0); |
| 144 | 139 | } |
| 145 | 140 | |
| r17673 | r17674 | |
| 150 | 145 | m_reel3_tilemap->mark_tile_dirty(offset); |
| 151 | 146 | } |
| 152 | 147 | |
| 153 | ||
| 148 | ||
| 154 | 149 | { |
| 155 | goldstar_state *state = machine.driver_data<goldstar_state>(); | |
| 156 | int code = state->m_reel3_ram[tile_index]; | |
| 150 | int code = m_reel3_ram[tile_index]; | |
| 157 | 151 | |
| 158 | SET_TILE_INFO( | |
| 152 | SET_TILE_INFO_MEMBER( | |
| 159 | 153 | 1, |
| 160 | 154 | code, |
| 161 | | |
| 155 | | |
| 162 | 156 | 0); |
| 163 | 157 | } |
| 164 | 158 | |
| r17673 | r17674 | |
| 185 | 179 | } |
| 186 | 180 | |
| 187 | 181 | |
| 188 | ||
| 182 | ||
| 189 | 183 | { |
| 190 | goldstar_state *state = machine.driver_data<goldstar_state>(); | |
| 191 | int code = state->m_reel1_ram[tile_index]; | |
| 192 | int attr = state->m_reel1_attrram[tile_index]; | |
| 184 | int code = m_reel1_ram[tile_index]; | |
| 185 | int attr = m_reel1_attrram[tile_index]; | |
| 193 | 186 | |
| 194 | SET_TILE_INFO( | |
| 187 | SET_TILE_INFO_MEMBER( | |
| 195 | 188 | 1, |
| 196 | 189 | code | (attr & 0x0f)<<8, |
| 197 | 190 | (attr&0xf0)>>4, |
| 198 | 191 | 0); |
| 199 | 192 | } |
| 200 | 193 | |
| 201 | ||
| 194 | ||
| 202 | 195 | { |
| 203 | goldstar_state *state = machine.driver_data<goldstar_state>(); | |
| 204 | int code = state->m_reel2_ram[tile_index]; | |
| 205 | int attr = state->m_reel2_attrram[tile_index]; | |
| 196 | int code = m_reel2_ram[tile_index]; | |
| 197 | int attr = m_reel2_attrram[tile_index]; | |
| 206 | 198 | |
| 207 | SET_TILE_INFO( | |
| 199 | SET_TILE_INFO_MEMBER( | |
| 208 | 200 | 1, |
| 209 | 201 | code | (attr & 0x0f)<<8, |
| 210 | 202 | (attr&0xf0)>>4, |
| 211 | 203 | 0); |
| 212 | 204 | } |
| 213 | 205 | |
| 214 | ||
| 206 | ||
| 215 | 207 | { |
| 216 | goldstar_state *state = machine.driver_data<goldstar_state>(); | |
| 217 | int code = state->m_reel3_ram[tile_index]; | |
| 218 | int attr = state->m_reel3_attrram[tile_index]; | |
| 208 | int code = m_reel3_ram[tile_index]; | |
| 209 | int attr = m_reel3_attrram[tile_index]; | |
| 219 | 210 | |
| 220 | SET_TILE_INFO( | |
| 211 | SET_TILE_INFO_MEMBER( | |
| 221 | 212 | 1, |
| 222 | 213 | code | (attr & 0x0f)<<8, |
| 223 | 214 | (attr&0xf0)>>4, |
| r17673 | r17674 | |
| 231 | 222 | { |
| 232 | 223 | goldstar_state *state = machine.driver_data<goldstar_state>(); |
| 233 | 224 | |
| 234 | state->m_reel1_tilemap = tilemap_create(machine,get_goldstar_reel1_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 8); | |
| 235 | state->m_reel2_tilemap = tilemap_create(machine,get_goldstar_reel2_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 8); | |
| 236 | state->m_reel3_tilemap = tilemap_create(machine,get_goldstar_reel3_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 8); | |
| 225 | state->m_reel1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel1_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 8); | |
| 226 | state->m_reel2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel2_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 8); | |
| 227 | state->m_reel3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel3_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 8); | |
| 237 | 228 | |
| 238 | 229 | state->m_reel1_tilemap->set_scroll_cols(64); |
| 239 | 230 | state->m_reel2_tilemap->set_scroll_cols(64); |
| 240 | 231 | state->m_reel3_tilemap->set_scroll_cols(64); |
| 241 | 232 | |
| 242 | state->m_fg_tilemap = tilemap | |
| 233 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8, 64, 32); | |
| 243 | 234 | state->m_fg_tilemap->set_transparent_pen(0); |
| 244 | 235 | |
| 245 | 236 | // is there an enable reg for this game? |
| r17673 | r17674 | |
| 250 | 241 | { |
| 251 | 242 | goldstar_state *state = machine.driver_data<goldstar_state>(); |
| 252 | 243 | |
| 253 | state->m_reel1_tilemap = tilemap | |
| 244 | state->m_reel1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel1_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 8); | |
| 254 | 245 | |
| 255 | 246 | state->m_reel1_tilemap->set_scroll_cols(64); |
| 256 | 247 | |
| 257 | state->m_fg_tilemap = tilemap | |
| 248 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8, 64, 32); | |
| 258 | 249 | state->m_fg_tilemap->set_transparent_pen(0); |
| 259 | 250 | |
| 260 | 251 | // is there an enable reg for this game? |
| r17673 | r17674 | |
| 265 | 256 | { |
| 266 | 257 | goldstar_state *state = machine.driver_data<goldstar_state>(); |
| 267 | 258 | |
| 268 | state->m_reel1_tilemap = tilemap_create(machine,get_goldstar_reel1_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 8); | |
| 269 | state->m_reel2_tilemap = tilemap_create(machine,get_goldstar_reel2_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 8); | |
| 270 | state->m_reel3_tilemap = tilemap_create(machine,get_goldstar_reel3_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 8); | |
| 259 | state->m_reel1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel1_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 8); | |
| 260 | state->m_reel2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel2_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 8); | |
| 261 | state->m_reel3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel3_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 8); | |
| 271 | 262 | |
| 272 | 263 | state->m_reel1_tilemap->set_scroll_cols(32); |
| 273 | 264 | state->m_reel2_tilemap->set_scroll_cols(32); |
| 274 | 265 | state->m_reel3_tilemap->set_scroll_cols(32); |
| 275 | 266 | |
| 276 | state->m_fg_tilemap = tilemap | |
| 267 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldstar_state::get_magical_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8, 64, 32); | |
| 277 | 268 | state->m_fg_tilemap->set_transparent_pen(0); |
| 278 | 269 | |
| 279 | 270 | // is there an enable reg for this game? |
| r17673 | r17674 | |
| 284 | 275 | { |
| 285 | 276 | goldstar_state *state = machine.driver_data<goldstar_state>(); |
| 286 | 277 | |
| 287 | state->m_reel1_tilemap = tilemap_create(machine,get_unkch_reel1_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 8); | |
| 288 | state->m_reel2_tilemap = tilemap_create(machine,get_unkch_reel2_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 8); | |
| 289 | state->m_reel3_tilemap = tilemap_create(machine,get_unkch_reel3_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 8); | |
| 278 | state->m_reel1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldstar_state::get_unkch_reel1_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 8); | |
| 279 | state->m_reel2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldstar_state::get_unkch_reel2_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 8); | |
| 280 | state->m_reel3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldstar_state::get_unkch_reel3_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 8); | |
| 290 | 281 | |
| 291 | 282 | state->m_reel1_tilemap->set_scroll_cols(32); |
| 292 | 283 | state->m_reel2_tilemap->set_scroll_cols(32); |
| r17673 | r17674 | |
| 296 | 287 | state->m_cmaster_girl_pal = 0; |
| 297 | 288 | state->m_unkch_vidreg = 0x00; |
| 298 | 289 | |
| 299 | state->m_fg_tilemap = tilemap | |
| 290 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldstar_state::get_cherrym_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8, 64, 32); | |
| 300 | 291 | state->m_fg_tilemap->set_transparent_pen(0); |
| 301 | 292 | |
| 302 | 293 | state->m_cm_enable_reg = 0x0b; |
| r17673 | r17674 | |
| 306 | 297 | { |
| 307 | 298 | goldstar_state *state = machine.driver_data<goldstar_state>(); |
| 308 | 299 | |
| 309 | state->m_reel1_tilemap = tilemap_create(machine,get_goldstar_reel1_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 8); | |
| 310 | state->m_reel2_tilemap = tilemap_create(machine,get_goldstar_reel2_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 8); | |
| 311 | state->m_reel3_tilemap = tilemap_create(machine,get_goldstar_reel3_tile_info,TILEMAP_SCAN_ROWS,8,32, 64, 8); | |
| 300 | state->m_reel1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel1_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 8); | |
| 301 | state->m_reel2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel2_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 8); | |
| 302 | state->m_reel3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldstar_state::get_goldstar_reel3_tile_info),state),TILEMAP_SCAN_ROWS,8,32, 64, 8); | |
| 312 | 303 | |
| 313 | 304 | state->m_reel1_tilemap->set_scroll_cols(64); |
| 314 | 305 | state->m_reel2_tilemap->set_scroll_cols(64); |
| r17673 | r17674 | |
| 317 | 308 | state->m_cmaster_girl_num = 0; |
| 318 | 309 | state->m_cmaster_girl_pal = 0; |
| 319 | 310 | |
| 320 | state->m_fg_tilemap = tilemap | |
| 311 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goldstar_state::get_cherrym_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8, 64, 32); | |
| 321 | 312 | state->m_fg_tilemap->set_transparent_pen(0); |
| 322 | 313 | |
| 323 | 314 | state->m_cm_enable_reg = 0x0b; |
| r17673 | r17674 | |
|---|---|---|
| 8 | 8 | |
| 9 | 9 | ***************************************************************************/ |
| 10 | 10 | |
| 11 | ||
| 11 | ||
| 12 | 12 | { |
| 13 | wc90_state *state = machine.driver_data<wc90_state>(); | |
| 14 | int attr = state->m_bgvideoram[tile_index]; | |
| 15 | int tile = state->m_bgvideoram[tile_index + 0x800] + | |
| 13 | int attr = m_bgvideoram[tile_index]; | |
| 14 | int tile = m_bgvideoram[tile_index + 0x800] + | |
| 16 | 15 | 256 * ((attr & 3) + ((attr >> 1) & 4)); |
| 17 | SET_TILE_INFO( | |
| 16 | SET_TILE_INFO_MEMBER( | |
| 18 | 17 | 2, |
| 19 | 18 | tile, |
| 20 | 19 | attr >> 4, |
| 21 | 20 | 0); |
| 22 | 21 | } |
| 23 | 22 | |
| 24 | ||
| 23 | ||
| 25 | 24 | { |
| 26 | wc90_state *state = machine.driver_data<wc90_state>(); | |
| 27 | int attr = state->m_fgvideoram[tile_index]; | |
| 28 | int tile = state->m_fgvideoram[tile_index + 0x800] + | |
| 25 | int attr = m_fgvideoram[tile_index]; | |
| 26 | int tile = m_fgvideoram[tile_index + 0x800] + | |
| 29 | 27 | 256 * ((attr & 3) + ((attr >> 1) & 4)); |
| 30 | SET_TILE_INFO( | |
| 28 | SET_TILE_INFO_MEMBER( | |
| 31 | 29 | 1, |
| 32 | 30 | tile, |
| 33 | 31 | attr >> 4, |
| 34 | 32 | 0); |
| 35 | 33 | } |
| 36 | 34 | |
| 37 | ||
| 35 | ||
| 38 | 36 | { |
| 39 | wc90_state *state = machine.driver_data<wc90_state>(); | |
| 40 | SET_TILE_INFO( | |
| 37 | SET_TILE_INFO_MEMBER( | |
| 41 | 38 | 0, |
| 42 | state->m_txvideoram[tile_index + 0x800] + ((state->m_txvideoram[tile_index] & 0x07) << 8), | |
| 43 | state->m_txvideoram[tile_index] >> 4, | |
| 39 | m_txvideoram[tile_index + 0x800] + ((m_txvideoram[tile_index] & 0x07) << 8), | |
| 40 | m_txvideoram[tile_index] >> 4, | |
| 44 | 41 | 0); |
| 45 | 42 | } |
| 46 | 43 | |
| 47 | ||
| 44 | ||
| 48 | 45 | { |
| 49 | wc90_state *state = machine.driver_data<wc90_state>(); | |
| 50 | int attr = state->m_bgvideoram[tile_index]; | |
| 51 | int tile = state->m_bgvideoram[tile_index + 0x800] + | |
| 46 | int attr = m_bgvideoram[tile_index]; | |
| 47 | int tile = m_bgvideoram[tile_index + 0x800] + | |
| 52 | 48 | 256 * (attr & 7); |
| 53 | SET_TILE_INFO( | |
| 49 | SET_TILE_INFO_MEMBER( | |
| 54 | 50 | 2, |
| 55 | 51 | tile, |
| 56 | 52 | attr >> 4, |
| 57 | 53 | 0); |
| 58 | 54 | } |
| 59 | 55 | |
| 60 | ||
| 56 | ||
| 61 | 57 | { |
| 62 | wc90_state *state = machine.driver_data<wc90_state>(); | |
| 63 | int attr = state->m_fgvideoram[tile_index]; | |
| 64 | int tile = state->m_fgvideoram[tile_index + 0x800] + | |
| 58 | int attr = m_fgvideoram[tile_index]; | |
| 59 | int tile = m_fgvideoram[tile_index + 0x800] + | |
| 65 | 60 | 256 * (attr & 7); |
| 66 | SET_TILE_INFO( | |
| 61 | SET_TILE_INFO_MEMBER( | |
| 67 | 62 | 1, |
| 68 | 63 | tile, |
| 69 | 64 | attr >> 4, |
| r17673 | r17674 | |
| 80 | 75 | VIDEO_START( wc90 ) |
| 81 | 76 | { |
| 82 | 77 | wc90_state *state = machine.driver_data<wc90_state>(); |
| 83 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_ROWS, 16,16,64,32); | |
| 84 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info,TILEMAP_SCAN_ROWS,16,16,64,32); | |
| 85 | state->m_tx_tilemap = tilemap_create(machine, get_tx_tile_info,TILEMAP_SCAN_ROWS, 8, 8,64,32); | |
| 78 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wc90_state::get_bg_tile_info),state),TILEMAP_SCAN_ROWS, 16,16,64,32); | |
| 79 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wc90_state::get_fg_tile_info),state),TILEMAP_SCAN_ROWS,16,16,64,32); | |
| 80 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wc90_state::get_tx_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,32); | |
| 86 | 81 | |
| 87 | 82 | state->m_fg_tilemap->set_transparent_pen(0); |
| 88 | 83 | state->m_tx_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
| 91 | 86 | VIDEO_START( wc90t ) |
| 92 | 87 | { |
| 93 | 88 | wc90_state *state = machine.driver_data<wc90_state>(); |
| 94 | state->m_bg_tilemap = tilemap_create(machine, track_get_bg_tile_info,TILEMAP_SCAN_ROWS, 16,16,64,32); | |
| 95 | state->m_fg_tilemap = tilemap_create(machine, track_get_fg_tile_info,TILEMAP_SCAN_ROWS,16,16,64,32); | |
| 96 | state->m_tx_tilemap = tilemap_create(machine, get_tx_tile_info,TILEMAP_SCAN_ROWS, 8, 8,64,32); | |
| 89 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wc90_state::track_get_bg_tile_info),state),TILEMAP_SCAN_ROWS, 16,16,64,32); | |
| 90 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wc90_state::track_get_fg_tile_info),state),TILEMAP_SCAN_ROWS,16,16,64,32); | |
| 91 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wc90_state::get_tx_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,32); | |
| 97 | 92 | |
| 98 | 93 | state->m_fg_tilemap->set_transparent_pen(0); |
| 99 | 94 | state->m_tx_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 17 | 17 | * |
| 18 | 18 | *************************************/ |
| 19 | 19 | |
| 20 | ||
| 20 | ||
| 21 | 21 | { |
| 22 | gauntlet_state *state = machine.driver_data<gauntlet_state>(); | |
| 23 | UINT16 data = state->m_alpha[tile_index]; | |
| 22 | UINT16 data = m_alpha[tile_index]; | |
| 24 | 23 | int code = data & 0x3ff; |
| 25 | 24 | int color = ((data >> 10) & 0x0f) | ((data >> 9) & 0x20); |
| 26 | 25 | int opaque = data & 0x8000; |
| 27 | SET_TILE_INFO(1, code, color, opaque ? TILE_FORCE_LAYER0 : 0); | |
| 26 | SET_TILE_INFO_MEMBER(1, code, color, opaque ? TILE_FORCE_LAYER0 : 0); | |
| 28 | 27 | } |
| 29 | 28 | |
| 30 | 29 | |
| 31 | ||
| 30 | ||
| 32 | 31 | { |
| 33 | gauntlet_state *state = machine.driver_data<gauntlet_state>(); | |
| 34 | UINT16 data = state->m_playfield[tile_index]; | |
| 35 | int code = ((state->m_playfield_tile_bank * 0x1000) + (data & 0xfff)) ^ 0x800; | |
| 36 | int color = 0x10 + (state->m_playfield_color_bank * 8) + ((data >> 12) & 7); | |
| 37 | SET_TILE_INFO(0, code, color, (data >> 15) & 1); | |
| 32 | UINT16 data = m_playfield[tile_index]; | |
| 33 | int code = ((m_playfield_tile_bank * 0x1000) + (data & 0xfff)) ^ 0x800; | |
| 34 | int color = 0x10 + (m_playfield_color_bank * 8) + ((data >> 12) & 7); | |
| 35 | SET_TILE_INFO_MEMBER(0, code, color, (data >> 15) & 1); | |
| 38 | 36 | } |
| 39 | 37 | |
| 40 | 38 | |
| r17673 | r17674 | |
| 89 | 87 | int i, size; |
| 90 | 88 | |
| 91 | 89 | /* initialize the playfield */ |
| 92 | state->m_playfield_tilemap = tilemap | |
| 90 | state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gauntlet_state::get_playfield_tile_info),state), TILEMAP_SCAN_COLS, 8,8, 64,64); | |
| 93 | 91 | |
| 94 | 92 | /* initialize the motion objects */ |
| 95 | 93 | atarimo_init(machine, 0, &modesc); |
| 96 | 94 | |
| 97 | 95 | /* initialize the alphanumerics */ |
| 98 | state->m_alpha_tilemap = tilemap | |
| 96 | state->m_alpha_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gauntlet_state::get_alpha_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,32); | |
| 99 | 97 | state->m_alpha_tilemap->set_transparent_pen(0); |
| 100 | 98 | |
| 101 | 99 | /* modify the motion object code lookup table to account for the code XOR */ |
| r17673 | r17674 | |
|---|---|---|
| 20 | 20 | |
| 21 | 21 | /********** Tilemaps **********/ |
| 22 | 22 | |
| 23 | ||
| 23 | ||
| 24 | 24 | { |
| 25 | ms32_state *state = machine.driver_data<ms32_state>(); | |
| 26 | 25 | int tileno, colour; |
| 27 | 26 | |
| 28 | tileno = state->m_txram_16[tile_index *2] & 0xffff; | |
| 29 | colour = state->m_txram_16[tile_index *2+1] & 0x000f; | |
| 27 | tileno = m_txram_16[tile_index *2] & 0xffff; | |
| 28 | colour = m_txram_16[tile_index *2+1] & 0x000f; | |
| 30 | 29 | |
| 31 | SET_TILE_INFO(3,tileno,colour,0); | |
| 30 | SET_TILE_INFO_MEMBER(3,tileno,colour,0); | |
| 32 | 31 | } |
| 33 | 32 | |
| 34 | ||
| 33 | ||
| 35 | 34 | { |
| 36 | ms32_state *state = machine.driver_data<ms32_state>(); | |
| 37 | 35 | int tileno,colour; |
| 38 | 36 | |
| 39 | tileno = state->m_rozram_16[tile_index *2] & 0xffff; | |
| 40 | colour = state->m_rozram_16[tile_index *2+1] & 0x000f; | |
| 37 | tileno = m_rozram_16[tile_index *2] & 0xffff; | |
| 38 | colour = m_rozram_16[tile_index *2+1] & 0x000f; | |
| 41 | 39 | |
| 42 | SET_TILE_INFO(1,tileno,colour,0); | |
| 40 | SET_TILE_INFO_MEMBER(1,tileno,colour,0); | |
| 43 | 41 | } |
| 44 | 42 | |
| 45 | ||
| 43 | ||
| 46 | 44 | { |
| 47 | ms32_state *state = machine.driver_data<ms32_state>(); | |
| 48 | 45 | int tileno,colour; |
| 49 | 46 | |
| 50 | tileno = state->m_bgram_16[tile_index *2] & 0xffff; | |
| 51 | colour = state->m_bgram_16[tile_index *2+1] & 0x000f; | |
| 47 | tileno = m_bgram_16[tile_index *2] & 0xffff; | |
| 48 | colour = m_bgram_16[tile_index *2+1] & 0x000f; | |
| 52 | 49 | |
| 53 | SET_TILE_INFO(2,tileno,colour,0); | |
| 50 | SET_TILE_INFO_MEMBER(2,tileno,colour,0); | |
| 54 | 51 | } |
| 55 | 52 | |
| 56 | ||
| 53 | ||
| 57 | 54 | { |
| 58 | ms32_state *state = machine.driver_data<ms32_state>(); | |
| 59 | 55 | int tileno,colour; |
| 60 | 56 | |
| 61 | tileno = state->m_f1superb_extraram_16[tile_index *2] & 0xffff; | |
| 62 | colour = state->m_f1superb_extraram_16[tile_index *2+1] & 0x000f; | |
| 57 | tileno = m_f1superb_extraram_16[tile_index *2] & 0xffff; | |
| 58 | colour = m_f1superb_extraram_16[tile_index *2+1] & 0x000f; | |
| 63 | 59 | |
| 64 | SET_TILE_INFO(4,tileno,colour+0x50,0); | |
| 60 | SET_TILE_INFO_MEMBER(4,tileno,colour+0x50,0); | |
| 65 | 61 | } |
| 66 | 62 | |
| 67 | 63 | |
| r17673 | r17674 | |
| 78 | 74 | state->m_bgram_16 = auto_alloc_array_clear(machine, UINT16, 0x4000); |
| 79 | 75 | state->m_txram_16 = auto_alloc_array_clear(machine, UINT16, 0x4000); |
| 80 | 76 | |
| 81 | state->m_tx_tilemap = tilemap_create(machine, get_ms32_tx_tile_info,TILEMAP_SCAN_ROWS,8, 8,64,64); | |
| 82 | state->m_bg_tilemap = tilemap_create(machine, get_ms32_bg_tile_info,TILEMAP_SCAN_ROWS,16,16,64,64); | |
| 83 | state->m_bg_tilemap_alt = tilemap_create(machine, get_ms32_bg_tile_info,TILEMAP_SCAN_ROWS,16,16,256,16); // alt layout, controller by register? | |
| 84 | state->m_roz_tilemap = tilemap_create(machine, get_ms32_roz_tile_info,TILEMAP_SCAN_ROWS,16,16,128,128); | |
| 77 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ms32_state::get_ms32_tx_tile_info),state),TILEMAP_SCAN_ROWS,8, 8,64,64); | |
| 78 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ms32_state::get_ms32_bg_tile_info),state),TILEMAP_SCAN_ROWS,16,16,64,64); | |
| 79 | state->m_bg_tilemap_alt = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ms32_state::get_ms32_bg_tile_info),state),TILEMAP_SCAN_ROWS,16,16,256,16); // alt layout, controller by register? | |
| 80 | state->m_roz_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ms32_state::get_ms32_roz_tile_info),state),TILEMAP_SCAN_ROWS,16,16,128,128); | |
| 85 | 81 | |
| 86 | 82 | |
| 87 | 83 | /* set up tile layers */ |
| r17673 | r17674 | |
| 119 | 115 | VIDEO_START_CALL( ms32 ); |
| 120 | 116 | |
| 121 | 117 | state->m_f1superb_extraram_16 = auto_alloc_array_clear(machine, UINT16, 0x10000); |
| 122 | state->m_extra_tilemap = tilemap | |
| 118 | state->m_extra_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ms32_state::get_ms32_extra_tile_info),state),TILEMAP_SCAN_ROWS,2048,1,1,0x400); | |
| 123 | 119 | |
| 124 | 120 | } |
| 125 | 121 |
| r17673 | r17674 | |
|---|---|---|
| 76 | 76 | m_bg_tilemap->mark_tile_dirty(offset + 0x20); |
| 77 | 77 | } |
| 78 | 78 | |
| 79 | ||
| 79 | ||
| 80 | 80 | { |
| 81 | seicross_state *state = machine.driver_data<seicross_state>(); | |
| 82 | int code = state->m_videoram[tile_index] + ((state->m_colorram[tile_index] & 0x10) << 4); | |
| 83 | int color = state->m_colorram[tile_index] & 0x0f; | |
| 84 | int flags = ((state->m_colorram[tile_index] & 0x40) ? TILE_FLIPX : 0) | ((state->m_colorram[tile_index] & 0x80) ? TILE_FLIPY : 0); | |
| 81 | int code = m_videoram[tile_index] + ((m_colorram[tile_index] & 0x10) << 4); | |
| 82 | int color = m_colorram[tile_index] & 0x0f; | |
| 83 | int flags = ((m_colorram[tile_index] & 0x40) ? TILE_FLIPX : 0) | ((m_colorram[tile_index] & 0x80) ? TILE_FLIPY : 0); | |
| 85 | 84 | |
| 86 | SET_TILE_INFO(0, code, color, flags); | |
| 85 | SET_TILE_INFO_MEMBER(0, code, color, flags); | |
| 87 | 86 | } |
| 88 | 87 | |
| 89 | 88 | VIDEO_START( seicross ) |
| 90 | 89 | { |
| 91 | 90 | seicross_state *state = machine.driver_data<seicross_state>(); |
| 92 | 91 | |
| 93 | state->m_bg_tilemap = tilemap | |
| 92 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(seicross_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, | |
| 94 | 93 | 8, 8, 32, 32); |
| 95 | 94 | |
| 96 | 95 | state->m_bg_tilemap->set_scroll_cols(32); |
| r17673 | r17674 | |
|---|---|---|
| 58 | 58 | |
| 59 | 59 | /***************************************************************************/ |
| 60 | 60 | |
| 61 | ||
| 61 | ||
| 62 | 62 | { |
| 63 | 63 | int page = 0; |
| 64 | 64 | if (row < 32) |
| r17673 | r17674 | |
| 83 | 83 | return page * 64 * 32 + row * 64 + col; |
| 84 | 84 | } |
| 85 | 85 | |
| 86 | ||
| 86 | ||
| 87 | 87 | { |
| 88 | 88 | return row * 64 + col + (64 - 40); |
| 89 | 89 | } |
| r17673 | r17674 | |
| 235 | 235 | } |
| 236 | 236 | } |
| 237 | 237 | |
| 238 | ||
| 238 | ||
| 239 | 239 | { |
| 240 | segas1x_bootleg_state *state = machine.driver_data<segas1x_bootleg_state>(); | |
| 241 | const UINT16 *source = 64 * 32 * state->m_bg_page[tile_index / (64 * 32)] + state->m_tileram; | |
| 240 | const UINT16 *source = 64 * 32 * m_bg_page[tile_index / (64 * 32)] + m_tileram; | |
| 242 | 241 | int data = source[tile_index%(64*32)]; |
| 243 | int tile_number = (data & 0xfff) + 0x1000 * ((data & | |
| 242 | int tile_number = (data & 0xfff) + 0x1000 * ((data & | |
| 244 | 243 | |
| 245 | SET_TILE_INFO( | |
| 244 | SET_TILE_INFO_MEMBER( | |
| 246 | 245 | 0, |
| 247 | 246 | tile_number, |
| 248 | 247 | (data >> 6) & 0x7f, |
| 249 | 248 | 0); |
| 250 | 249 | } |
| 251 | 250 | |
| 252 | ||
| 251 | ||
| 253 | 252 | { |
| 254 | segas1x_bootleg_state *state = machine.driver_data<segas1x_bootleg_state>(); | |
| 255 | const UINT16 *source = 64 * 32 * state->m_fg_page[tile_index / (64 * 32)] + state->m_tileram; | |
| 253 | const UINT16 *source = 64 * 32 * m_fg_page[tile_index / (64 * 32)] + m_tileram; | |
| 256 | 254 | int data = source[tile_index % (64 * 32)]; |
| 257 | int tile_number = (data & 0xfff) + 0x1000 * ((data & | |
| 255 | int tile_number = (data & 0xfff) + 0x1000 * ((data & | |
| 258 | 256 | |
| 259 | SET_TILE_INFO( | |
| 257 | SET_TILE_INFO_MEMBER( | |
| 260 | 258 | 0, |
| 261 | 259 | tile_number, |
| 262 | 260 | (data >> 6) & 0x7f, |
| 263 | 261 | 0); |
| 264 | 262 | } |
| 265 | 263 | |
| 266 | ||
| 264 | ||
| 267 | 265 | { |
| 268 | segas1x_bootleg_state *state = machine.driver_data<segas1x_bootleg_state>(); | |
| 269 | const UINT16 *source = 64 * 32 * state->m_bg2_page[tile_index / (64 * 32)] + state->m_tileram; | |
| 266 | const UINT16 *source = 64 * 32 * m_bg2_page[tile_index / (64 * 32)] + m_tileram; | |
| 270 | 267 | int data = source[tile_index % (64 * 32)]; |
| 271 | int tile_number = (data & 0xfff) + 0x1000 * ((data & 0x1000) ? | |
| 268 | int tile_number = (data & 0xfff) + 0x1000 * ((data & 0x1000) ? | |
| 272 | 269 | |
| 273 | SET_TILE_INFO( | |
| 270 | SET_TILE_INFO_MEMBER( | |
| 274 | 271 | 0, |
| 275 | 272 | tile_number, |
| 276 | 273 | (data >> 6) & 0x7f, |
| 277 | 274 | 0); |
| 278 | 275 | } |
| 279 | 276 | |
| 280 | ||
| 277 | ||
| 281 | 278 | { |
| 282 | segas1x_bootleg_state *state = machine.driver_data<segas1x_bootleg_state>(); | |
| 283 | const UINT16 *source = 64 * 32 * state->m_fg2_page[tile_index / (64 * 32)] + state->m_tileram; | |
| 279 | const UINT16 *source = 64 * 32 * m_fg2_page[tile_index / (64 * 32)] + m_tileram; | |
| 284 | 280 | int data = source[tile_index % (64 * 32)]; |
| 285 | int tile_number = (data & 0xfff) + 0x1000 * ((data & 0x1000) ? | |
| 281 | int tile_number = (data & 0xfff) + 0x1000 * ((data & 0x1000) ? | |
| 286 | 282 | |
| 287 | SET_TILE_INFO( | |
| 283 | SET_TILE_INFO_MEMBER( | |
| 288 | 284 | 0, |
| 289 | 285 | tile_number, |
| 290 | 286 | (data >> 6) & 0x7f, |
| r17673 | r17674 | |
| 329 | 325 | |
| 330 | 326 | /***************************************************************************/ |
| 331 | 327 | |
| 332 | ||
| 328 | ||
| 333 | 329 | { |
| 334 | segas1x_bootleg_state *state = machine.driver_data<segas1x_bootleg_state>(); | |
| 335 | const UINT16 *source = state->m_textram; | |
| 330 | const UINT16 *source = m_textram; | |
| 336 | 331 | int tile_number = source[tile_index]; |
| 337 | 332 | int pri = tile_number >> 8; |
| 338 | 333 | |
| 339 | if (! | |
| 334 | if (! | |
| 340 | 335 | { |
| 341 | SET_TILE_INFO( | |
| 336 | SET_TILE_INFO_MEMBER( | |
| 342 | 337 | 0, |
| 343 | (tile_number & 0x1ff) + | |
| 338 | (tile_number & 0x1ff) + | |
| 344 | 339 | (tile_number >> 9) % 8, |
| 345 | 340 | 0); |
| 346 | 341 | } |
| 347 | 342 | else |
| 348 | 343 | { |
| 349 | SET_TILE_INFO( | |
| 344 | SET_TILE_INFO_MEMBER( | |
| 350 | 345 | 0, |
| 351 | (tile_number & 0xff) + | |
| 346 | (tile_number & 0xff) + | |
| 352 | 347 | (tile_number >> 8) % 8, |
| 353 | 348 | 0); |
| 354 | 349 | } |
| 355 | 350 | |
| 356 | if (pri >= | |
| 351 | if (pri >= | |
| 357 | 352 | tileinfo.category = 1; |
| 358 | if (pri >= | |
| 353 | if (pri >= | |
| 359 | 354 | tileinfo.category = 0; |
| 360 | 355 | } |
| 361 | 356 | |
| r17673 | r17674 | |
| 387 | 382 | ); |
| 388 | 383 | |
| 389 | 384 | if (!state->m_bg1_trans) |
| 390 | state->m_background = tilemap | |
| 385 | state->m_background = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(segas1x_bootleg_state::get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(segas1x_bootleg_state::sys16_bg_map),state), | |
| 391 | 386 | 8,8, |
| 392 | 387 | 64*2,32*2 ); |
| 393 | 388 | else |
| 394 | state->m_background = tilemap | |
| 389 | state->m_background = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(segas1x_bootleg_state::get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(segas1x_bootleg_state::sys16_bg_map),state), | |
| 395 | 390 | 8,8, |
| 396 | 391 | 64*2,32*2 ); |
| 397 | 392 | |
| 398 | state->m_foreground = tilemap | |
| 393 | state->m_foreground = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(segas1x_bootleg_state::get_fg_tile_info),state), tilemap_mapper_delegate(FUNC(segas1x_bootleg_state::sys16_bg_map),state), | |
| 399 | 394 | 8,8, |
| 400 | 395 | 64*2,32*2 ); |
| 401 | 396 | |
| 402 | state->m_text_layer = tilemap | |
| 397 | state->m_text_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(segas1x_bootleg_state::get_text_tile_info),state), tilemap_mapper_delegate(FUNC(segas1x_bootleg_state::sys16_text_map),state), | |
| 403 | 398 | 8,8, |
| 404 | 399 | 40,28 ); |
| 405 | 400 | |
| r17673 | r17674 | |
| 442 | 437 | |
| 443 | 438 | state->m_bg1_trans = 1; |
| 444 | 439 | |
| 445 | state->m_background2 = tilemap | |
| 440 | state->m_background2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(segas1x_bootleg_state::get_bg2_tile_info),state), tilemap_mapper_delegate(FUNC(segas1x_bootleg_state::sys16_bg_map),state), | |
| 446 | 441 | 8,8, |
| 447 | 442 | 64*2,32*2 ); |
| 448 | 443 | |
| 449 | state->m_foreground2 = tilemap | |
| 444 | state->m_foreground2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(segas1x_bootleg_state::get_fg2_tile_info),state), tilemap_mapper_delegate(FUNC(segas1x_bootleg_state::sys16_bg_map),state), | |
| 450 | 445 | 8,8, |
| 451 | 446 | 64*2,32*2 ); |
| 452 | 447 | |
| r17673 | r17674 | |
| 491 | 486 | *****************************************************************************************/ |
| 492 | 487 | |
| 493 | 488 | |
| 494 | ||
| 489 | ||
| 495 | 490 | { |
| 496 | segas1x_bootleg_state *state = machine.driver_data<segas1x_bootleg_state>(); | |
| 497 | 491 | int data, tile_number; |
| 498 | 492 | |
| 499 | data = | |
| 493 | data = | |
| 500 | 494 | tile_number = data & 0x1ff; |
| 501 | 495 | |
| 502 | SET_TILE_INFO( | |
| 496 | SET_TILE_INFO_MEMBER( | |
| 503 | 497 | 0, |
| 504 | 498 | tile_number, |
| 505 | 499 | ((data >> 9) & 0x7), |
| 506 | 500 | 0); |
| 507 | 501 | } |
| 508 | 502 | |
| 509 | ||
| 503 | ||
| 510 | 504 | { |
| 511 | segas1x_bootleg_state *state = machine.driver_data<segas1x_bootleg_state>(); | |
| 512 | 505 | int data, tile_number; |
| 513 | 506 | |
| 514 | data = | |
| 507 | data = | |
| 515 | 508 | tile_number = data & 0x1fff; |
| 516 | 509 | |
| 517 | 510 | |
| 518 | SET_TILE_INFO( | |
| 511 | SET_TILE_INFO_MEMBER( | |
| 519 | 512 | 0, |
| 520 | 513 | tile_number, |
| 521 | 514 | (data >> 6) & 0x7f, |
| 522 | 515 | 0); |
| 523 | 516 | } |
| 524 | 517 | |
| 525 | ||
| 518 | ||
| 526 | 519 | { |
| 527 | segas1x_bootleg_state *state = machine.driver_data<segas1x_bootleg_state>(); | |
| 528 | 520 | int data, tile_number; |
| 529 | 521 | |
| 530 | data = | |
| 522 | data = | |
| 531 | 523 | tile_number = data & 0x1fff; |
| 532 | 524 | |
| 533 | SET_TILE_INFO( | |
| 525 | SET_TILE_INFO_MEMBER( | |
| 534 | 526 | 0, |
| 535 | 527 | tile_number, |
| 536 | 528 | (data >> 6) & 0x7f, |
| r17673 | r17674 | |
| 585 | 577 | |
| 586 | 578 | |
| 587 | 579 | |
| 588 | state->m_text_tilemap = tilemap | |
| 580 | state->m_text_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(segas1x_bootleg_state::get_s16a_bootleg_tile_infotxt),state), TILEMAP_SCAN_ROWS, 8,8, 64,32 ); | |
| 589 | 581 | |
| 590 | 582 | // the system16a bootlegs have simple tilemaps instead of the paged system |
| 591 | state->m_bg_tilemaps[0] = tilemap_create(machine, get_s16a_bootleg_tile_info0, TILEMAP_SCAN_ROWS, 8,8, 64,32 ); | |
| 592 | state->m_bg_tilemaps[1] = tilemap_create(machine, get_s16a_bootleg_tile_info1, TILEMAP_SCAN_ROWS, 8,8, 64,32 ); | |
| 583 | state->m_bg_tilemaps[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(segas1x_bootleg_state::get_s16a_bootleg_tile_info0),state), TILEMAP_SCAN_ROWS, 8,8, 64,32 ); | |
| 584 | state->m_bg_tilemaps[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(segas1x_bootleg_state::get_s16a_bootleg_tile_info1),state), TILEMAP_SCAN_ROWS, 8,8, 64,32 ); | |
| 593 | 585 | |
| 594 | 586 | state->m_text_tilemap->set_transparent_pen(0); |
| 595 | 587 | state->m_bg_tilemaps[0]->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 54 | 54 | |
| 55 | 55 | ***************************************************************************/ |
| 56 | 56 | |
| 57 | ||
| 57 | ||
| 58 | 58 | { |
| 59 | 59 | /* logical (col,row) -> memory offset */ |
| 60 | 60 | return (col & 0x3f) + ((row & 0x1f) << 6) + ((col & 0x40) << 5) + ((row & 0x20) << 7); |
| 61 | 61 | } |
| 62 | 62 | |
| 63 | ||
| 63 | ||
| 64 | 64 | { |
| 65 | deniam_state *state = machine.driver_data<deniam_state>(); | |
| 66 | 65 | int page = tile_index >> 11; |
| 67 | UINT16 attr = state->m_videoram[state->m_bg_page[page] * 0x0800 + (tile_index & 0x7ff)]; | |
| 68 | SET_TILE_INFO( | |
| 66 | UINT16 attr = m_videoram[m_bg_page[page] * 0x0800 + (tile_index & 0x7ff)]; | |
| 67 | SET_TILE_INFO_MEMBER( | |
| 69 | 68 | 0, |
| 70 | 69 | attr, |
| 71 | 70 | (attr & 0x1fc0) >> 6, |
| 72 | 71 | 0); |
| 73 | 72 | } |
| 74 | 73 | |
| 75 | ||
| 74 | ||
| 76 | 75 | { |
| 77 | deniam_state *state = machine.driver_data<deniam_state>(); | |
| 78 | 76 | int page = tile_index >> 11; |
| 79 | UINT16 attr = state->m_videoram[state->m_fg_page[page] * 0x0800 + (tile_index & 0x7ff)]; | |
| 80 | SET_TILE_INFO( | |
| 77 | UINT16 attr = m_videoram[m_fg_page[page] * 0x0800 + (tile_index & 0x7ff)]; | |
| 78 | SET_TILE_INFO_MEMBER( | |
| 81 | 79 | 0, |
| 82 | 80 | attr, |
| 83 | 81 | (attr & 0x1fc0) >> 6, |
| 84 | 82 | 0); |
| 85 | 83 | } |
| 86 | 84 | |
| 87 | ||
| 85 | ||
| 88 | 86 | { |
| 89 | deniam_state *state = machine.driver_data<deniam_state>(); | |
| 90 | UINT16 attr = state->m_textram[tile_index]; | |
| 91 | SET_TILE_INFO( | |
| 87 | UINT16 attr = m_textram[tile_index]; | |
| 88 | SET_TILE_INFO_MEMBER( | |
| 92 | 89 | 0, |
| 93 | 90 | attr & 0xf1ff, |
| 94 | 91 | (attr & 0x0e00) >> 9, |
| r17673 | r17674 | |
| 106 | 103 | VIDEO_START( deniam ) |
| 107 | 104 | { |
| 108 | 105 | deniam_state *state = machine.driver_data<deniam_state>(); |
| 109 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, scan_pages, 8, 8, 128, 64); | |
| 110 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, scan_pages, 8, 8, 128, 64); | |
| 111 | state->m_tx_tilemap = tilemap_create(machine, get_tx_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 106 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(deniam_state::get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(deniam_state::scan_pages),state), 8, 8, 128, 64); | |
| 107 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(deniam_state::get_fg_tile_info),state), tilemap_mapper_delegate(FUNC(deniam_state::scan_pages),state), 8, 8, 128, 64); | |
| 108 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(deniam_state::get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 112 | 109 | |
| 113 | 110 | state->m_fg_tilemap->set_transparent_pen(0); |
| 114 | 111 | state->m_tx_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 17 | 17 | *************************************/ |
| 18 | 18 | |
| 19 | 19 | #ifdef UNUSED_FUNCTION |
| 20 | ||
| 20 | ||
| 21 | 21 | { |
| 22 | mcr3_state *state = machine.driver_data<mcr3_state>(); | |
| 23 | UINT8 *videoram = state->m_videoram; | |
| 22 | UINT8 *videoram = m_videoram; | |
| 24 | 23 | int data = videoram[tile_index * 2] | (videoram[tile_index * 2 + 1] << 8); |
| 25 | 24 | int code = (data & 0x3ff) | ((data >> 4) & 0x400); |
| 26 | 25 | int color = (data >> 12) & 3; |
| 27 | SET_TILE_INFO(0, code, color, TILE_FLIPYX((data >> 10) & 3)); | |
| 26 | SET_TILE_INFO_MEMBER(0, code, color, TILE_FLIPYX((data >> 10) & 3)); | |
| 28 | 27 | } |
| 29 | 28 | #endif |
| 30 | 29 | |
| 31 | 30 | |
| 32 | ||
| 31 | ||
| 33 | 32 | { |
| 34 | mcr3_state *state = machine.driver_data<mcr3_state>(); | |
| 35 | UINT8 *videoram = state->m_videoram; | |
| 33 | UINT8 *videoram = m_videoram; | |
| 36 | 34 | int data = videoram[tile_index * 2] | (videoram[tile_index * 2 + 1] << 8); |
| 37 | 35 | int code = (data & 0x3ff) | ((data >> 4) & 0x400); |
| 38 | 36 | int color = ((data >> 12) & 3) ^ 3; |
| 39 | SET_TILE_INFO(0, code, color, TILE_FLIPYX((data >> 10) & 3)); | |
| 37 | SET_TILE_INFO_MEMBER(0, code, color, TILE_FLIPYX((data >> 10) & 3)); | |
| 40 | 38 | } |
| 41 | 39 | |
| 42 | 40 | |
| 43 | ||
| 41 | ||
| 44 | 42 | { |
| 45 | 43 | /* logical (col,row) -> memory offset */ |
| 46 | 44 | return (row & 0x0f) | ((col & 0x3f) << 4) | ((row & 0x10) << 6); |
| 47 | 45 | } |
| 48 | 46 | |
| 49 | 47 | |
| 50 | ||
| 48 | ||
| 51 | 49 | { |
| 52 | mcr3_state *state = machine.driver_data<mcr3_state>(); | |
| 53 | UINT8 *videoram = state->m_videoram; | |
| 50 | UINT8 *videoram = m_videoram; | |
| 54 | 51 | int data = videoram[tile_index]; |
| 55 | 52 | int code = (data & 0x3f) | ((data >> 1) & 0x40); |
| 56 | SET_TILE_INFO(0, code, 0, (data & 0x40) ? TILE_FLIPY : 0); | |
| 53 | SET_TILE_INFO_MEMBER(0, code, 0, (data & 0x40) ? TILE_FLIPY : 0); | |
| 57 | 54 | } |
| 58 | 55 | |
| 59 | 56 | |
| 60 | ||
| 57 | ||
| 61 | 58 | { |
| 62 | mcr3_state *state = machine.driver_data<mcr3_state>(); | |
| 63 | SET_TILE_INFO(2, state->m_spyhunt_alpharam[tile_index], 0, 0); | |
| 59 | SET_TILE_INFO_MEMBER(2, m_spyhunt_alpharam[tile_index], 0, 0); | |
| 64 | 60 | } |
| 65 | 61 | |
| 66 | 62 | |
| r17673 | r17674 | |
| 93 | 89 | { |
| 94 | 90 | mcr3_state *state = machine.driver_data<mcr3_state>(); |
| 95 | 91 | /* initialize the background tilemap */ |
| 96 | state->m_bg_tilemap = tilemap | |
| 92 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mcr3_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16,16, 32,30); | |
| 97 | 93 | } |
| 98 | 94 | #endif |
| 99 | 95 | |
| r17673 | r17674 | |
| 102 | 98 | { |
| 103 | 99 | mcr3_state *state = machine.driver_data<mcr3_state>(); |
| 104 | 100 | /* initialize the background tilemap */ |
| 105 | state->m_bg_tilemap = tilemap | |
| 101 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mcr3_state::mcrmono_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16,16, 32,30); | |
| 106 | 102 | } |
| 107 | 103 | |
| 108 | 104 | |
| r17673 | r17674 | |
| 110 | 106 | { |
| 111 | 107 | mcr3_state *state = machine.driver_data<mcr3_state>(); |
| 112 | 108 | /* initialize the background tilemap */ |
| 113 | state->m_bg_tilemap = tilemap | |
| 109 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mcr3_state::spyhunt_get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(mcr3_state::spyhunt_bg_scan),state), 64,32, 64,32); | |
| 114 | 110 | |
| 115 | 111 | /* initialize the text tilemap */ |
| 116 | state->m_alpha_tilemap = tilemap | |
| 112 | state->m_alpha_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mcr3_state::spyhunt_get_alpha_tile_info),state), TILEMAP_SCAN_COLS, 16,16, 32,32); | |
| 117 | 113 | state->m_alpha_tilemap->set_transparent_pen(0); |
| 118 | 114 | state->m_alpha_tilemap->set_scrollx(0, 16); |
| 119 | 115 |
| r17673 | r17674 | |
|---|---|---|
| 42 | 42 | |
| 43 | 43 | /******************************************************************************/ |
| 44 | 44 | |
| 45 | ||
| 45 | ||
| 46 | 46 | { |
| 47 | stadhero_state *state = machine.driver_data<stadhero_state>(); | |
| 48 | int tile=state->m_pf1_data[tile_index]; | |
| 47 | int tile=m_pf1_data[tile_index]; | |
| 49 | 48 | int color=tile >> 12; |
| 50 | 49 | |
| 51 | 50 | tile=tile&0xfff; |
| 52 | SET_TILE_INFO( | |
| 51 | SET_TILE_INFO_MEMBER( | |
| 53 | 52 | 0, |
| 54 | 53 | tile, |
| 55 | 54 | color, |
| r17673 | r17674 | |
| 59 | 58 | VIDEO_START( stadhero ) |
| 60 | 59 | { |
| 61 | 60 | stadhero_state *state = machine.driver_data<stadhero_state>(); |
| 62 | state->m_pf1_tilemap = tilemap | |
| 61 | state->m_pf1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(stadhero_state::get_pf1_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,32,32); | |
| 63 | 62 | state->m_pf1_tilemap->set_transparent_pen(0); |
| 64 | 63 | } |
| 65 | 64 |
| r17673 | r17674 | |
|---|---|---|
| 57 | 57 | } |
| 58 | 58 | } |
| 59 | 59 | |
| 60 | ||
| 60 | ||
| 61 | 61 | { |
| 62 | UINT8 *tilerom = machine.root_device().memregion("gfx5")->base(); | |
| 62 | UINT8 *tilerom = machine().root_device().memregion("gfx5")->base(); | |
| 63 | 63 | |
| 64 | 64 | int offs = tile_index * 2; |
| 65 | 65 | int attr = tilerom[offs + 1] + (tilerom[offs] << 8); |
| r17673 | r17674 | |
| 67 | 67 | int color = attr >> 12; |
| 68 | 68 | int flags = (attr & 0x800) ? TILE_FLIPX : 0; |
| 69 | 69 | |
| 70 | SET_TILE_INFO(1, code, color, flags); | |
| 70 | SET_TILE_INFO_MEMBER(1, code, color, flags); | |
| 71 | 71 | } |
| 72 | 72 | |
| 73 | ||
| 73 | ||
| 74 | 74 | { |
| 75 | prehisle_state *state = machine.driver_data<prehisle_state>(); | |
| 76 | int attr = state->m_bg_videoram16[tile_index]; | |
| 75 | int attr = m_bg_videoram16[tile_index]; | |
| 77 | 76 | int code = attr & 0x7ff; |
| 78 | 77 | int color = attr >> 12; |
| 79 | 78 | int flags = (attr & 0x800) ? TILE_FLIPY : 0; |
| 80 | 79 | |
| 81 | SET_TILE_INFO(2, code, color, flags); | |
| 80 | SET_TILE_INFO_MEMBER(2, code, color, flags); | |
| 82 | 81 | } |
| 83 | 82 | |
| 84 | ||
| 83 | ||
| 85 | 84 | { |
| 86 | prehisle_state *state = machine.driver_data<prehisle_state>(); | |
| 87 | int attr = state->m_videoram[tile_index]; | |
| 85 | int attr = m_videoram[tile_index]; | |
| 88 | 86 | int code = attr & 0xfff; |
| 89 | 87 | int color = attr >> 12; |
| 90 | 88 | |
| 91 | SET_TILE_INFO(0, code, color, 0); | |
| 89 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 92 | 90 | } |
| 93 | 91 | |
| 94 | 92 | VIDEO_START( prehisle ) |
| 95 | 93 | { |
| 96 | 94 | prehisle_state *state = machine.driver_data<prehisle_state>(); |
| 97 | 95 | |
| 98 | state->m_bg2_tilemap = tilemap | |
| 96 | state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(prehisle_state::get_bg2_tile_info),state), TILEMAP_SCAN_COLS, | |
| 99 | 97 | 16, 16, 1024, 32); |
| 100 | 98 | |
| 101 | state->m_bg_tilemap = tilemap | |
| 99 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(prehisle_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, | |
| 102 | 100 | 16, 16, 256, 32); |
| 103 | 101 | |
| 104 | state->m_fg_tilemap = tilemap | |
| 102 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(prehisle_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, | |
| 105 | 103 | 8, 8, 32, 32); |
| 106 | 104 | |
| 107 | 105 | state->m_bg_tilemap->set_transparent_pen(15); |
| r17673 | r17674 | |
|---|---|---|
| 33 | 33 | Tilemap Related Functions |
| 34 | 34 | *******************************************************************************/ |
| 35 | 35 | |
| 36 | ||
| 36 | ||
| 37 | 37 | { |
| 38 | 38 | /*- FG0 RAM Format -** |
| 39 | 39 | |
| r17673 | r17674 | |
| 50 | 50 | |
| 51 | 51 | **- End of Comments -*/ |
| 52 | 52 | |
| 53 | wwfsstar_state *state = machine.driver_data<wwfsstar_state>(); | |
| 54 | 53 | UINT16 *tilebase; |
| 55 | 54 | int tileno; |
| 56 | 55 | int colbank; |
| 57 | 56 | |
| 58 | tilebase = & | |
| 57 | tilebase = & | |
| 59 | 58 | tileno = (tilebase[1] & 0x00ff) | ((tilebase[0] & 0x000f) << 8); |
| 60 | 59 | colbank = (tilebase[0] & 0x00f0) >> 4; |
| 61 | SET_TILE_INFO( | |
| 60 | SET_TILE_INFO_MEMBER( | |
| 62 | 61 | 0, |
| 63 | 62 | tileno, |
| 64 | 63 | colbank, |
| 65 | 64 | 0); |
| 66 | 65 | } |
| 67 | 66 | |
| 68 | ||
| 67 | ||
| 69 | 68 | { |
| 70 | 69 | return (col & 0x0f) + ((row & 0x0f) << 4) + ((col & 0x10) << 4) + ((row & 0x10) << 5); |
| 71 | 70 | } |
| 72 | 71 | |
| 73 | ||
| 72 | ||
| 74 | 73 | { |
| 75 | 74 | /*- BG0 RAM Format -** |
| 76 | 75 | |
| r17673 | r17674 | |
| 88 | 87 | |
| 89 | 88 | **- End of Comments -*/ |
| 90 | 89 | |
| 91 | wwfsstar_state *state = machine.driver_data<wwfsstar_state>(); | |
| 92 | 90 | UINT16 *tilebase; |
| 93 | 91 | int tileno, colbank, flipx; |
| 94 | 92 | |
| 95 | tilebase = & | |
| 93 | tilebase = & | |
| 96 | 94 | tileno = (tilebase[1] & 0x00ff) | ((tilebase[0] & 0x000f) << 8); |
| 97 | 95 | colbank = (tilebase[0] & 0x0070) >> 4; |
| 98 | 96 | flipx = (tilebase[0] & 0x0080) >> 7; |
| 99 | SET_TILE_INFO( | |
| 97 | SET_TILE_INFO_MEMBER( | |
| 100 | 98 | 2, |
| 101 | 99 | tileno, |
| 102 | 100 | colbank, |
| r17673 | r17674 | |
| 211 | 209 | { |
| 212 | 210 | wwfsstar_state *state = machine.driver_data<wwfsstar_state>(); |
| 213 | 211 | |
| 214 | state->m_fg0_tilemap = tilemap | |
| 212 | state->m_fg0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wwfsstar_state::get_fg0_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,32,32); | |
| 215 | 213 | state->m_fg0_tilemap->set_transparent_pen(0); |
| 216 | 214 | |
| 217 | state->m_bg0_tilemap = tilemap | |
| 215 | state->m_bg0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wwfsstar_state::get_bg0_tile_info),state),tilemap_mapper_delegate(FUNC(wwfsstar_state::bg0_scan),state), 16, 16,32,32); | |
| 218 | 216 | state->m_fg0_tilemap->set_transparent_pen(0); |
| 219 | 217 | } |
| 220 | 218 |
| r17673 | r17674 | |
|---|---|---|
| 145 | 145 | |
| 146 | 146 | ***************************************************************************/ |
| 147 | 147 | |
| 148 | ||
| 148 | ||
| 149 | 149 | { |
| 150 | polepos_state *state = machine.driver_data<polepos_state>(); | |
| 151 | UINT16 word = state->m_view16_memory[tile_index]; | |
| 150 | UINT16 word = m_view16_memory[tile_index]; | |
| 152 | 151 | int code = (word & 0xff) | ((word & 0x4000) >> 6); |
| 153 | 152 | int color = (word & 0x3f00) >> 8; |
| 154 | SET_TILE_INFO( | |
| 153 | SET_TILE_INFO_MEMBER( | |
| 155 | 154 | 1, |
| 156 | 155 | code, |
| 157 | 156 | color, |
| 158 | 157 | 0); |
| 159 | 158 | } |
| 160 | 159 | |
| 161 | ||
| 160 | ||
| 162 | 161 | { |
| 163 | polepos_state *state = machine.driver_data<polepos_state>(); | |
| 164 | UINT16 word = state->m_alpha16_memory[tile_index]; | |
| 162 | UINT16 word = m_alpha16_memory[tile_index]; | |
| 165 | 163 | int code = (word & 0xff) | ((word & 0x4000) >> 6); |
| 166 | 164 | int color = (word & 0x3f00) >> 8; |
| 167 | 165 | |
| 168 | 166 | /* I assume the purpose of CHACL is to allow the Z80 to control |
| 169 | 167 | the display (therefore using only the bottom 8 bits of tilemap RAM) |
| 170 | 168 | in case the Z8002 is not working. */ |
| 171 | if ( | |
| 169 | if ( | |
| 172 | 170 | { |
| 173 | 171 | code &= 0xff; |
| 174 | 172 | color = 0; |
| r17673 | r17674 | |
| 177 | 175 | /* 128V input to the palette PROM */ |
| 178 | 176 | if (tile_index >= 32*16) color |= 0x40; |
| 179 | 177 | |
| 180 | SET_TILE_INFO( | |
| 178 | SET_TILE_INFO_MEMBER( | |
| 181 | 179 | 0, |
| 182 | 180 | code, |
| 183 | 181 | color, |
| r17673 | r17674 | |
| 196 | 194 | VIDEO_START( polepos ) |
| 197 | 195 | { |
| 198 | 196 | polepos_state *state = machine.driver_data<polepos_state>(); |
| 199 | state->m_bg_tilemap = tilemap_create(machine, bg_get_tile_info,TILEMAP_SCAN_COLS,8,8,64,16); | |
| 200 | state->m_tx_tilemap = tilemap_create(machine, tx_get_tile_info,TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 197 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(polepos_state::bg_get_tile_info),state),TILEMAP_SCAN_COLS,8,8,64,16); | |
| 198 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(polepos_state::tx_get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 201 | 199 | |
| 202 | 200 | colortable_configure_tilemap_groups(machine.colortable, state->m_tx_tilemap, machine.gfx[0], 0x2f); |
| 203 | 201 | } |
| r17673 | r17674 | |
|---|---|---|
| 69 | 69 | |
| 70 | 70 | |
| 71 | 71 | |
| 72 | ||
| 72 | ||
| 73 | 73 | { |
| 74 | tank8_state *state = machine.driver_data<tank8_state>(); | |
| 75 | UINT8 code = state->m_video_ram[tile_index]; | |
| 74 | UINT8 code = m_video_ram[tile_index]; | |
| 76 | 75 | |
| 77 | 76 | int color = 0; |
| 78 | 77 | |
| r17673 | r17674 | |
| 95 | 94 | color |= 4; |
| 96 | 95 | } |
| 97 | 96 | |
| 98 | SET_TILE_INFO(code >> 7, code, color, (code & 0x40) ? (TILE_FLIPX | TILE_FLIPY) : 0); | |
| 97 | SET_TILE_INFO_MEMBER(code >> 7, code, color, (code & 0x40) ? (TILE_FLIPX | TILE_FLIPY) : 0); | |
| 99 | 98 | } |
| 100 | 99 | |
| 101 | 100 | |
| r17673 | r17674 | |
| 107 | 106 | machine.primary_screen->register_screen_bitmap(state->m_helper2); |
| 108 | 107 | machine.primary_screen->register_screen_bitmap(state->m_helper3); |
| 109 | 108 | |
| 110 | state->m_tilemap = tilemap | |
| 109 | state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tank8_state::tank8_get_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 111 | 110 | |
| 112 | 111 | /* VBLANK starts on scanline #256 and ends on scanline #24 */ |
| 113 | 112 |
| r17673 | r17674 | |
|---|---|---|
| 62 | 62 | state->m_bg_tilemap->mark_tile_dirty(offset); |
| 63 | 63 | } |
| 64 | 64 | |
| 65 | ||
| 65 | ||
| 66 | 66 | { |
| 67 | UINT8 *RAM = machine.root_device().memregion("master")->base(); | |
| 67 | UINT8 *RAM = machine().root_device().memregion("master")->base(); | |
| 68 | 68 | |
| 69 | 69 | int attr = RAM[0x2000 + tile_index]; |
| 70 | 70 | int code = RAM[0x2400 + tile_index] + ((attr & 0xc0) << 2) + ((attr & 0x30) << 6); |
| 71 | 71 | int color = 0;//attr & 0x0f; |
| 72 | 72 | int flags = ((attr & 0x10) ? TILE_FLIPX : 0) | ((attr & 0x20) ? TILE_FLIPY : 0); |
| 73 | 73 | |
| 74 | SET_TILE_INFO(0, code, color, flags); | |
| 74 | SET_TILE_INFO_MEMBER(0, code, color, flags); | |
| 75 | 75 | } |
| 76 | 76 | |
| 77 | 77 | VIDEO_START( jackal ) |
| 78 | 78 | { |
| 79 | 79 | jackal_state *state = machine.driver_data<jackal_state>(); |
| 80 | state->m_bg_tilemap = tilemap | |
| 80 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jackal_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 81 | 81 | } |
| 82 | 82 | |
| 83 | 83 | static void draw_background( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ) |
| r17673 | r17674 | |
|---|---|---|
| 76 | 76 | For Debug: there's no tilemap, just sprites. |
| 77 | 77 | ***************************************************************************/ |
| 78 | 78 | #if TILEMAPS |
| 79 | ||
| 79 | ||
| 80 | 80 | { |
| 81 | suna8_state *state = machine.driver_data<suna8_state>(); | |
| 82 | 81 | UINT8 code, attr; |
| 83 | 82 | |
| 84 | if (machine.input().code_pressed(KEYCODE_X)) | |
| 83 | if (machine().input().code_pressed(KEYCODE_X)) | |
| 85 | 84 | { |
| 86 | UINT8 *rom = | |
| 85 | UINT8 *rom = | |
| 87 | 86 | code = rom[ 2 * tile_index + 0 ]; |
| 88 | 87 | attr = rom[ 2 * tile_index + 1 ]; |
| 89 | 88 | } |
| 90 | 89 | else |
| 91 | 90 | { |
| 92 | code = state->m_spriteram[ 2 * tile_index + 0 ]; | |
| 93 | attr = state->m_spriteram[ 2 * tile_index + 1 ]; | |
| 91 | code = m_spriteram[ 2 * tile_index + 0 ]; | |
| 92 | attr = m_spriteram[ 2 * tile_index + 1 ]; | |
| 94 | 93 | } |
| 95 | SET_TILE_INFO( | |
| 94 | SET_TILE_INFO_MEMBER( | |
| 96 | 95 | 0, |
| 97 | ( (attr & 0x03) << 8 ) + code + | |
| 96 | ( (attr & 0x03) << 8 ) + code + | |
| 98 | 97 | (attr >> 2) & 0xf, |
| 99 | 98 | TILE_FLIPYX( (attr >> 6) & 3 )); |
| 100 | 99 | } |
| r17673 | r17674 | |
|---|---|---|
| 105 | 105 | 0); |
| 106 | 106 | } |
| 107 | 107 | |
| 108 | ||
| 108 | ||
| 109 | 109 | { |
| 110 | namcos86_state *state = machine.driver_data<namcos86_state>(); | |
| 111 | get_tile_info(machine,tileinfo,tile_index,0,&state->m_rthunder_videoram1[0x0000]); | |
| 110 | get_tile_info(machine(),tileinfo,tile_index,0,&m_rthunder_videoram1[0x0000]); | |
| 112 | 111 | } |
| 113 | 112 | |
| 114 | ||
| 113 | ||
| 115 | 114 | { |
| 116 | namcos86_state *state = machine.driver_data<namcos86_state>(); | |
| 117 | get_tile_info(machine,tileinfo,tile_index,1,&state->m_rthunder_videoram1[0x1000]); | |
| 115 | get_tile_info(machine(),tileinfo,tile_index,1,&m_rthunder_videoram1[0x1000]); | |
| 118 | 116 | } |
| 119 | 117 | |
| 120 | ||
| 118 | ||
| 121 | 119 | { |
| 122 | namcos86_state *state = machine.driver_data<namcos86_state>(); | |
| 123 | get_tile_info(machine,tileinfo,tile_index,2,&state->m_rthunder_videoram2[0x0000]); | |
| 120 | get_tile_info(machine(),tileinfo,tile_index,2,&m_rthunder_videoram2[0x0000]); | |
| 124 | 121 | } |
| 125 | 122 | |
| 126 | ||
| 123 | ||
| 127 | 124 | { |
| 128 | namcos86_state *state = machine.driver_data<namcos86_state>(); | |
| 129 | get_tile_info(machine,tileinfo,tile_index,3,&state->m_rthunder_videoram2[0x1000]); | |
| 125 | get_tile_info(machine(),tileinfo,tile_index,3,&m_rthunder_videoram2[0x1000]); | |
| 130 | 126 | } |
| 131 | 127 | |
| 132 | 128 | |
| r17673 | r17674 | |
| 139 | 135 | VIDEO_START( namcos86 ) |
| 140 | 136 | { |
| 141 | 137 | namcos86_state *state = machine.driver_data<namcos86_state>(); |
| 142 | state->m_bg_tilemap[0] = tilemap_create(machine, get_tile_info0,TILEMAP_SCAN_ROWS,8,8,64,32); | |
| 143 | state->m_bg_tilemap[1] = tilemap_create(machine, get_tile_info1,TILEMAP_SCAN_ROWS,8,8,64,32); | |
| 144 | state->m_bg_tilemap[2] = tilemap_create(machine, get_tile_info2,TILEMAP_SCAN_ROWS,8,8,64,32); | |
| 145 | state->m_bg_tilemap[3] = tilemap_create(machine, get_tile_info3,TILEMAP_SCAN_ROWS,8,8,64,32); | |
| 138 | state->m_bg_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(namcos86_state::get_tile_info0),state),TILEMAP_SCAN_ROWS,8,8,64,32); | |
| 139 | state->m_bg_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(namcos86_state::get_tile_info1),state),TILEMAP_SCAN_ROWS,8,8,64,32); | |
| 140 | state->m_bg_tilemap[2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(namcos86_state::get_tile_info2),state),TILEMAP_SCAN_ROWS,8,8,64,32); | |
| 141 | state->m_bg_tilemap[3] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(namcos86_state::get_tile_info3),state),TILEMAP_SCAN_ROWS,8,8,64,32); | |
| 146 | 142 | |
| 147 | 143 | state->m_bg_tilemap[0]->set_transparent_pen(7); |
| 148 | 144 | state->m_bg_tilemap[1]->set_transparent_pen(7); |
| r17673 | r17674 | |
|---|---|---|
| 77 | 77 | * |
| 78 | 78 | *************************************/ |
| 79 | 79 | |
| 80 | ||
| 80 | ||
| 81 | 81 | { |
| 82 | nova2001_state *state = machine.driver_data<nova2001_state>(); | |
| 83 | int code = state->m_bg_videoram[tile_index]; | |
| 84 | int color = state->m_bg_videoram[tile_index + 0x400] & 0x0f; | |
| 82 | int code = m_bg_videoram[tile_index]; | |
| 83 | int color = m_bg_videoram[tile_index + 0x400] & 0x0f; | |
| 85 | 84 | |
| 86 | SET_TILE_INFO(2, code, color, 0); | |
| 85 | SET_TILE_INFO_MEMBER(2, code, color, 0); | |
| 87 | 86 | } |
| 88 | 87 | |
| 89 | ||
| 88 | ||
| 90 | 89 | { |
| 91 | nova2001_state *state = machine.driver_data<nova2001_state>(); | |
| 92 | int attr = state->m_fg_videoram[tile_index + 0x400]; | |
| 93 | int code = state->m_fg_videoram[tile_index]; | |
| 90 | int attr = m_fg_videoram[tile_index + 0x400]; | |
| 91 | int code = m_fg_videoram[tile_index]; | |
| 94 | 92 | int color = attr & 0x0f; |
| 95 | 93 | |
| 96 | SET_TILE_INFO(1, code, color, 0); | |
| 94 | SET_TILE_INFO_MEMBER(1, code, color, 0); | |
| 97 | 95 | |
| 98 | 96 | tileinfo.category = (attr & 0x10) >> 4; |
| 99 | 97 | } |
| 100 | 98 | |
| 101 | ||
| 99 | ||
| 102 | 100 | { |
| 103 | nova2001_state *state = machine.driver_data<nova2001_state>(); | |
| 104 | int attr = state->m_bg_videoram[tile_index+0x400]; | |
| 105 | int code = state->m_bg_videoram[tile_index] + ((attr & 0xc0) << 2); | |
| 101 | int attr = m_bg_videoram[tile_index+0x400]; | |
| 102 | int code = m_bg_videoram[tile_index] + ((attr & 0xc0) << 2); | |
| 106 | 103 | int color = attr & 0x0f; |
| 107 | 104 | |
| 108 | SET_TILE_INFO(2, code, color, 0); | |
| 105 | SET_TILE_INFO_MEMBER(2, code, color, 0); | |
| 109 | 106 | } |
| 110 | 107 | |
| 111 | ||
| 108 | ||
| 112 | 109 | { |
| 113 | nova2001_state *state = machine.driver_data<nova2001_state>(); | |
| 114 | int attr = state->m_fg_videoram[tile_index+0x400]; | |
| 115 | int code = state->m_fg_videoram[tile_index] + ((attr & 0x20) << 3); | |
| 110 | int attr = m_fg_videoram[tile_index+0x400]; | |
| 111 | int code = m_fg_videoram[tile_index] + ((attr & 0x20) << 3); | |
| 116 | 112 | int color = attr & 0x0f; |
| 117 | 113 | |
| 118 | SET_TILE_INFO(1, code, color, 0); | |
| 114 | SET_TILE_INFO_MEMBER(1, code, color, 0); | |
| 119 | 115 | |
| 120 | 116 | tileinfo.category = (attr & 0x10) >> 4; |
| 121 | 117 | } |
| 122 | 118 | |
| 123 | ||
| 119 | ||
| 124 | 120 | { |
| 125 | nova2001_state *state = machine.driver_data<nova2001_state>(); | |
| 126 | int attr = state->m_bg_videoram[tile_index + 0x400]; | |
| 127 | int code = state->m_bg_videoram[tile_index] + ((attr & 0x07) << 8); | |
| 121 | int attr = m_bg_videoram[tile_index + 0x400]; | |
| 122 | int code = m_bg_videoram[tile_index] + ((attr & 0x07) << 8); | |
| 128 | 123 | int color = (attr & 0xf0) >> 4; |
| 129 | 124 | |
| 130 | SET_TILE_INFO(1, code, color, 0); | |
| 125 | SET_TILE_INFO_MEMBER(1, code, color, 0); | |
| 131 | 126 | |
| 132 | 127 | tileinfo.category = (attr & 0x08) >> 3; |
| 133 | 128 | } |
| 134 | 129 | |
| 135 | ||
| 130 | ||
| 136 | 131 | { |
| 137 | nova2001_state *state = machine.driver_data<nova2001_state>(); | |
| 138 | int attr = state->m_bg_videoram[tile_index+0x400]; | |
| 139 | int code = state->m_bg_videoram[tile_index] + ((attr & 0x01) << 8); | |
| 132 | int attr = m_bg_videoram[tile_index+0x400]; | |
| 133 | int code = m_bg_videoram[tile_index] + ((attr & 0x01) << 8); | |
| 140 | 134 | int color = (attr & 0xf0) >> 4; |
| 141 | 135 | |
| 142 | SET_TILE_INFO(2, code, color, 0); | |
| 136 | SET_TILE_INFO_MEMBER(2, code, color, 0); | |
| 143 | 137 | } |
| 144 | 138 | |
| 145 | ||
| 139 | ||
| 146 | 140 | { |
| 147 | nova2001_state *state = machine.driver_data<nova2001_state>(); | |
| 148 | int code = state->m_fg_videoram[tile_index]; | |
| 149 | int color = (state->m_fg_videoram[tile_index + 0x400] & 0xf0) >> 4; | |
| 141 | int code = m_fg_videoram[tile_index]; | |
| 142 | int color = (m_fg_videoram[tile_index + 0x400] & 0xf0) >> 4; | |
| 150 | 143 | |
| 151 | SET_TILE_INFO(1, code, color, 0); | |
| 144 | SET_TILE_INFO_MEMBER(1, code, color, 0); | |
| 152 | 145 | } |
| 153 | 146 | |
| 154 | 147 | |
| r17673 | r17674 | |
| 162 | 155 | VIDEO_START( nova2001 ) |
| 163 | 156 | { |
| 164 | 157 | nova2001_state *state = machine.driver_data<nova2001_state>(); |
| 165 | state->m_bg_tilemap = tilemap_create(machine, nova2001_get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 166 | state->m_fg_tilemap = tilemap_create(machine, nova2001_get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 158 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nova2001_state::nova2001_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 159 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nova2001_state::nova2001_get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 167 | 160 | state->m_fg_tilemap->set_transparent_pen(0); |
| 168 | 161 | state->m_bg_tilemap->set_scrolldx(0, -7); |
| 169 | 162 | } |
| r17673 | r17674 | |
| 171 | 164 | VIDEO_START( pkunwar ) |
| 172 | 165 | { |
| 173 | 166 | nova2001_state *state = machine.driver_data<nova2001_state>(); |
| 174 | state->m_bg_tilemap = tilemap | |
| 167 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nova2001_state::pkunwar_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 175 | 168 | state->m_bg_tilemap->set_transparent_pen(0); |
| 176 | 169 | } |
| 177 | 170 | |
| 178 | 171 | VIDEO_START( ninjakun ) |
| 179 | 172 | { |
| 180 | 173 | nova2001_state *state = machine.driver_data<nova2001_state>(); |
| 181 | state->m_bg_tilemap = tilemap_create(machine, ninjakun_get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 182 | state->m_fg_tilemap = tilemap_create(machine, ninjakun_get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 174 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nova2001_state::ninjakun_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 175 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nova2001_state::ninjakun_get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 183 | 176 | state->m_fg_tilemap->set_transparent_pen(0); |
| 184 | 177 | state->m_bg_tilemap->set_scrolldx(7, 0); |
| 185 | 178 | } |
| r17673 | r17674 | |
| 187 | 180 | VIDEO_START( raiders5 ) |
| 188 | 181 | { |
| 189 | 182 | nova2001_state *state = machine.driver_data<nova2001_state>(); |
| 190 | state->m_bg_tilemap = tilemap_create(machine, raiders5_get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 191 | state->m_fg_tilemap = tilemap_create(machine, raiders5_get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 183 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nova2001_state::raiders5_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 184 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nova2001_state::raiders5_get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 192 | 185 | state->m_fg_tilemap->set_transparent_pen(0); |
| 193 | 186 | state->m_bg_tilemap->set_scrolldx(7, 0); |
| 194 | 187 | } |
| r17673 | r17674 | |
|---|---|---|
| 1973 | 1973 | |
| 1974 | 1974 | ***************************************************************************/ |
| 1975 | 1975 | |
| 1976 | ||
| 1976 | ||
| 1977 | 1977 | { |
| 1978 | 1978 | /* logical (col,row) -> memory offset */ |
| 1979 | 1979 | return (row & 0x1f) + ((col & 0x3f) << 5) + ((row & 0x20) << 6); |
| 1980 | 1980 | } |
| 1981 | 1981 | |
| 1982 | ||
| 1982 | ||
| 1983 | 1983 | { |
| 1984 | 1984 | /* logical (col,row) -> memory offset */ |
| 1985 | 1985 | return (row & 0x0f) + ((col & 0x3f) << 4) + ((row & 0x30) << 6); |
| 1986 | 1986 | } |
| 1987 | 1987 | |
| 1988 | ||
| 1988 | ||
| 1989 | 1989 | { |
| 1990 | 1990 | /* logical (col,row) -> memory offset */ |
| 1991 | 1991 | return (row & 0x07) + ((col & 0x3f) << 3) + ((row & 0x38) << 6); |
| 1992 | 1992 | } |
| 1993 | 1993 | |
| 1994 | ||
| 1994 | ||
| 1995 | 1995 | { |
| 1996 | cps_state *state = machine.driver_data<cps_state>(); | |
| 1997 | int code = state->m_scroll1[2 * tile_index]; | |
| 1998 | int attr = state->m_scroll1[2 * tile_index + 1]; | |
| 1996 | int code = m_scroll1[2 * tile_index]; | |
| 1997 | int attr = m_scroll1[2 * tile_index + 1]; | |
| 1999 | 1998 | int gfxset; |
| 2000 | 1999 | |
| 2001 | code = gfxrom_bank_mapper(machine, GFXTYPE_SCROLL1, code); | |
| 2000 | code = gfxrom_bank_mapper(machine(), GFXTYPE_SCROLL1, code); | |
| 2002 | 2001 | |
| 2003 | 2002 | /* allows us to reproduce a problem seen with a ffight board where USA and Japanese |
| 2004 | 2003 | roms have been mixed to be reproduced (ffightub) -- it looks like each column |
| 2005 | 2004 | should alternate between the left and right side of the 16x16 tiles */ |
| 2006 | 2005 | gfxset = (tile_index & 0x20) >> 5; |
| 2007 | 2006 | |
| 2008 | SET_TILE_INFO( | |
| 2007 | SET_TILE_INFO_MEMBER( | |
| 2009 | 2008 | gfxset, |
| 2010 | 2009 | code, |
| 2011 | 2010 | (attr & 0x1f) + 0x20, |
| r17673 | r17674 | |
| 2013 | 2012 | tileinfo.group = (attr & 0x0180) >> 7; |
| 2014 | 2013 | |
| 2015 | 2014 | // for out of range tiles, switch to fully transparent data |
| 2016 | // (but still call SET_TILE_INFO, otherwise problems might occur on boot e.g. unsquad) | |
| 2015 | // (but still call SET_TILE_INFO_MEMBER, otherwise problems might occur on boot e.g. unsquad) | |
| 2017 | 2016 | if (code == -1) |
| 2018 | tileinfo.pen_data = | |
| 2017 | tileinfo.pen_data = | |
| 2019 | 2018 | } |
| 2020 | 2019 | |
| 2021 | ||
| 2020 | ||
| 2022 | 2021 | { |
| 2023 | cps_state *state = machine.driver_data<cps_state>(); | |
| 2024 | int code = state->m_scroll2[2 * tile_index]; | |
| 2025 | int attr = state->m_scroll2[2 * tile_index + 1]; | |
| 2022 | int code = m_scroll2[2 * tile_index]; | |
| 2023 | int attr = m_scroll2[2 * tile_index + 1]; | |
| 2026 | 2024 | |
| 2027 | code = gfxrom_bank_mapper(machine, GFXTYPE_SCROLL2, code); | |
| 2025 | code = gfxrom_bank_mapper(machine(), GFXTYPE_SCROLL2, code); | |
| 2028 | 2026 | |
| 2029 | SET_TILE_INFO( | |
| 2027 | SET_TILE_INFO_MEMBER( | |
| 2030 | 2028 | 2, |
| 2031 | 2029 | code, |
| 2032 | 2030 | (attr & 0x1f) + 0x40, |
| r17673 | r17674 | |
| 2035 | 2033 | |
| 2036 | 2034 | // for out of range tiles, switch to fully transparent data |
| 2037 | 2035 | if (code == -1) |
| 2038 | tileinfo.pen_data = | |
| 2036 | tileinfo.pen_data = | |
| 2039 | 2037 | } |
| 2040 | 2038 | |
| 2041 | ||
| 2039 | ||
| 2042 | 2040 | { |
| 2043 | cps_state *state = machine.driver_data<cps_state>(); | |
| 2044 | int code = state->m_scroll3[2 * tile_index] & 0x3fff; | |
| 2045 | int attr = state->m_scroll3[2 * tile_index + 1]; | |
| 2041 | int code = m_scroll3[2 * tile_index] & 0x3fff; | |
| 2042 | int attr = m_scroll3[2 * tile_index + 1]; | |
| 2046 | 2043 | |
| 2047 | code = gfxrom_bank_mapper(machine, GFXTYPE_SCROLL3, code); | |
| 2044 | code = gfxrom_bank_mapper(machine(), GFXTYPE_SCROLL3, code); | |
| 2048 | 2045 | |
| 2049 | SET_TILE_INFO( | |
| 2046 | SET_TILE_INFO_MEMBER( | |
| 2050 | 2047 | 3, |
| 2051 | 2048 | code, |
| 2052 | 2049 | (attr & 0x1f) + 0x60, |
| r17673 | r17674 | |
| 2054 | 2051 | tileinfo.group = (attr & 0x0180) >> 7; |
| 2055 | 2052 | |
| 2056 | 2053 | // for out of range tiles, switch to fully transparent data |
| 2057 | // (but still call SET_TILE_INFO, otherwise problems might occur on boot e.g. unsquad) | |
| 2054 | // (but still call SET_TILE_INFO_MEMBER, otherwise problems might occur on boot e.g. unsquad) | |
| 2058 | 2055 | if (code == -1) |
| 2059 | tileinfo.pen_data = | |
| 2056 | tileinfo.pen_data = | |
| 2060 | 2057 | } |
| 2061 | 2058 | |
| 2062 | 2059 | |
| r17673 | r17674 | |
| 2099 | 2096 | state->m_stars_rom_size = 0x2000; /* first 0x4000 of gfx ROM are used, but 0x0000-0x1fff is == 0x2000-0x3fff */ |
| 2100 | 2097 | |
| 2101 | 2098 | /* create tilemaps */ |
| 2102 | state->m_bg_tilemap[0] = tilemap_create(machine, get_tile0_info, tilemap0_scan, 8, 8, 64, 64); | |
| 2103 | state->m_bg_tilemap[1] = tilemap_create(machine, get_tile1_info, tilemap1_scan, 16, 16, 64, 64); | |
| 2104 | state->m_bg_tilemap[2] = tilemap_create(machine, get_tile2_info, tilemap2_scan, 32, 32, 64, 64); | |
| 2099 | state->m_bg_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cps_state::get_tile0_info),state), tilemap_mapper_delegate(FUNC(cps_state::tilemap0_scan),state), 8, 8, 64, 64); | |
| 2100 | state->m_bg_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cps_state::get_tile1_info),state), tilemap_mapper_delegate(FUNC(cps_state::tilemap1_scan),state), 16, 16, 64, 64); | |
| 2101 | state->m_bg_tilemap[2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cps_state::get_tile2_info),state), tilemap_mapper_delegate(FUNC(cps_state::tilemap2_scan),state), 32, 32, 64, 64); | |
| 2105 | 2102 | |
| 2106 | 2103 | /* create empty tiles */ |
| 2107 | 2104 | memset(state->m_empty_tile, 0x0f, sizeof(state->m_empty_tile)); |
| r17673 | r17674 | |
|---|---|---|
| 38 | 38 | #define PAGES_PER_TMAP_X (0x4) |
| 39 | 39 | #define PAGES_PER_TMAP_Y (0x4) |
| 40 | 40 | |
| 41 | ||
| 41 | ||
| 42 | 42 | { |
| 43 | 43 | return (row / TILES_PER_PAGE_Y) * TILES_PER_PAGE_X * TILES_PER_PAGE_Y * PAGES_PER_TMAP_X + |
| 44 | 44 | (row % TILES_PER_PAGE_Y) + |
| r17673 | r17674 | |
| 47 | 47 | (col % TILES_PER_PAGE_X) * TILES_PER_PAGE_Y; |
| 48 | 48 | } |
| 49 | 49 | |
| 50 | ||
| 50 | ||
| 51 | 51 | { |
| 52 | yunsun16_state *state = machine.driver_data<yunsun16_state>(); | |
| 53 | UINT16 code = state->m_vram_0[2 * tile_index + 0]; | |
| 54 | UINT16 attr = state->m_vram_0[2 * tile_index + 1]; | |
| 55 | SET_TILE_INFO( | |
| 52 | UINT16 code = m_vram_0[2 * tile_index + 0]; | |
| 53 | UINT16 attr = m_vram_0[2 * tile_index + 1]; | |
| 54 | SET_TILE_INFO_MEMBER( | |
| 56 | 55 | TMAP_GFX, |
| 57 | 56 | code, |
| 58 | 57 | attr & 0xf, |
| 59 | 58 | (attr & 0x20) ? TILE_FLIPX : 0); |
| 60 | 59 | } |
| 61 | 60 | |
| 62 | ||
| 61 | ||
| 63 | 62 | { |
| 64 | yunsun16_state *state = machine.driver_data<yunsun16_state>(); | |
| 65 | UINT16 code = state->m_vram_1[2 * tile_index + 0]; | |
| 66 | UINT16 attr = state->m_vram_1[2 * tile_index + 1]; | |
| 67 | SET_TILE_INFO( | |
| 63 | UINT16 code = m_vram_1[2 * tile_index + 0]; | |
| 64 | UINT16 attr = m_vram_1[2 * tile_index + 1]; | |
| 65 | SET_TILE_INFO_MEMBER( | |
| 68 | 66 | TMAP_GFX, |
| 69 | 67 | code, |
| 70 | 68 | attr & 0xf, |
| r17673 | r17674 | |
| 98 | 96 | { |
| 99 | 97 | yunsun16_state *state = machine.driver_data<yunsun16_state>(); |
| 100 | 98 | |
| 101 | state->m_tilemap_0 = tilemap | |
| 99 | state->m_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(yunsun16_state::get_tile_info_0),state),tilemap_mapper_delegate(FUNC(yunsun16_state::yunsun16_tilemap_scan_pages),state), | |
| 102 | 100 | 16,16, TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); |
| 103 | state->m_tilemap_1 = tilemap | |
| 101 | state->m_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(yunsun16_state::get_tile_info_1),state),tilemap_mapper_delegate(FUNC(yunsun16_state::yunsun16_tilemap_scan_pages),state), | |
| 104 | 102 | 16,16, TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); |
| 105 | 103 | |
| 106 | 104 | state->m_tilemap_0->set_scrolldx(-0x34, 0); |
| r17673 | r17674 | |
|---|---|---|
| 143 | 143 | return collision; |
| 144 | 144 | } |
| 145 | 145 | |
| 146 | ||
| 146 | ||
| 147 | 147 | { |
| 148 | mermaid_state *state = machine.driver_data<mermaid_state>(); | |
| 149 | int code = state->m_videoram2[tile_index]; | |
| 148 | int code = m_videoram2[tile_index]; | |
| 150 | 149 | int sx = tile_index % 32; |
| 151 | 150 | int color = (sx >= 26) ? 0 : 1; |
| 152 | 151 | |
| 153 | SET_TILE_INFO(2, code, color, 0); | |
| 152 | SET_TILE_INFO_MEMBER(2, code, color, 0); | |
| 154 | 153 | } |
| 155 | 154 | |
| 156 | ||
| 155 | ||
| 157 | 156 | { |
| 158 | mermaid_state *state = machine.driver_data<mermaid_state>(); | |
| 159 | int attr = state->m_colorram[tile_index]; | |
| 160 | int code = state->m_videoram[tile_index] + ((attr & 0x30) << 4); | |
| 157 | int attr = m_colorram[tile_index]; | |
| 158 | int code = m_videoram[tile_index] + ((attr & 0x30) << 4); | |
| 161 | 159 | int color = attr & 0x0f; |
| 162 | 160 | int flags = TILE_FLIPYX((attr & 0xc0) >> 6); |
| 163 | 161 | |
| 164 | code |= state->m_rougien_gfxbank1 * 0x2800; | |
| 165 | code |= state->m_rougien_gfxbank2 * 0x2400; | |
| 162 | code |= m_rougien_gfxbank1 * 0x2800; | |
| 163 | code |= m_rougien_gfxbank2 * 0x2400; | |
| 166 | 164 | |
| 167 | SET_TILE_INFO(0, code, color, flags); | |
| 165 | SET_TILE_INFO_MEMBER(0, code, color, flags); | |
| 168 | 166 | } |
| 169 | 167 | |
| 170 | 168 | VIDEO_START( mermaid ) |
| 171 | 169 | { |
| 172 | 170 | mermaid_state *state = machine.driver_data<mermaid_state>(); |
| 173 | 171 | |
| 174 | state->m_bg_tilemap = tilemap | |
| 172 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mermaid_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 175 | 173 | state->m_bg_tilemap->set_scroll_cols(32); |
| 176 | 174 | |
| 177 | state->m_fg_tilemap = tilemap | |
| 175 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mermaid_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 178 | 176 | state->m_fg_tilemap->set_scroll_cols(32); |
| 179 | 177 | state->m_fg_tilemap->set_transparent_pen(0); |
| 180 | 178 |
| r17673 | r17674 | |
|---|---|---|
| 69 | 69 | m_text_layer->mark_tile_dirty(offset); |
| 70 | 70 | } |
| 71 | 71 | |
| 72 | ||
| 72 | ||
| 73 | 73 | { |
| 74 | dcon_state *state = machine.driver_data<dcon_state>(); | |
| 75 | int tile=state->m_back_data[tile_index]; | |
| 74 | int tile=m_back_data[tile_index]; | |
| 76 | 75 | int color=(tile>>12)&0xf; |
| 77 | 76 | |
| 78 | 77 | tile&=0xfff; |
| 79 | 78 | |
| 80 | SET_TILE_INFO( | |
| 79 | SET_TILE_INFO_MEMBER( | |
| 81 | 80 | 1, |
| 82 | 81 | tile, |
| 83 | 82 | color, |
| 84 | 83 | 0); |
| 85 | 84 | } |
| 86 | 85 | |
| 87 | ||
| 86 | ||
| 88 | 87 | { |
| 89 | dcon_state *state = machine.driver_data<dcon_state>(); | |
| 90 | int tile=state->m_fore_data[tile_index]; | |
| 88 | int tile=m_fore_data[tile_index]; | |
| 91 | 89 | int color=(tile>>12)&0xf; |
| 92 | 90 | |
| 93 | 91 | tile&=0xfff; |
| 94 | 92 | |
| 95 | SET_TILE_INFO( | |
| 93 | SET_TILE_INFO_MEMBER( | |
| 96 | 94 | 2, |
| 97 | 95 | tile, |
| 98 | 96 | color, |
| 99 | 97 | 0); |
| 100 | 98 | } |
| 101 | 99 | |
| 102 | ||
| 100 | ||
| 103 | 101 | { |
| 104 | dcon_state *state = machine.driver_data<dcon_state>(); | |
| 105 | int tile=state->m_mid_data[tile_index]; | |
| 102 | int tile=m_mid_data[tile_index]; | |
| 106 | 103 | int color=(tile>>12)&0xf; |
| 107 | 104 | |
| 108 | 105 | tile&=0xfff; |
| 109 | 106 | |
| 110 | SET_TILE_INFO( | |
| 107 | SET_TILE_INFO_MEMBER( | |
| 111 | 108 | 3, |
| 112 | tile| | |
| 109 | tile| | |
| 113 | 110 | color, |
| 114 | 111 | 0); |
| 115 | 112 | } |
| 116 | 113 | |
| 117 | ||
| 114 | ||
| 118 | 115 | { |
| 119 | dcon_state *state = machine.driver_data<dcon_state>(); | |
| 120 | int tile = state->m_textram[tile_index]; | |
| 116 | int tile = m_textram[tile_index]; | |
| 121 | 117 | int color=(tile>>12)&0xf; |
| 122 | 118 | |
| 123 | 119 | tile&=0xfff; |
| 124 | 120 | |
| 125 | SET_TILE_INFO( | |
| 121 | SET_TILE_INFO_MEMBER( | |
| 126 | 122 | 0, |
| 127 | 123 | tile, |
| 128 | 124 | color, |
| r17673 | r17674 | |
| 132 | 128 | VIDEO_START( dcon ) |
| 133 | 129 | { |
| 134 | 130 | dcon_state *state = machine.driver_data<dcon_state>(); |
| 135 | state->m_background_layer = tilemap_create(machine, get_back_tile_info,TILEMAP_SCAN_ROWS, 16,16,32,32); | |
| 136 | state->m_foreground_layer = tilemap_create(machine, get_fore_tile_info,TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 137 | state->m_midground_layer = tilemap_create(machine, get_mid_tile_info, TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 138 | state->m_text_layer = tilemap_create(machine, get_text_tile_info,TILEMAP_SCAN_ROWS, 8,8,64,32); | |
| 131 | state->m_background_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dcon_state::get_back_tile_info),state),TILEMAP_SCAN_ROWS, 16,16,32,32); | |
| 132 | state->m_foreground_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dcon_state::get_fore_tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 133 | state->m_midground_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dcon_state::get_mid_tile_info),state), TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 134 | state->m_text_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dcon_state::get_text_tile_info),state),TILEMAP_SCAN_ROWS, 8,8,64,32); | |
| 139 | 135 | |
| 140 | 136 | state->m_midground_layer->set_transparent_pen(15); |
| 141 | 137 | state->m_foreground_layer->set_transparent_pen(15); |
| r17673 | r17674 | |
|---|---|---|
| 23 | 23 | } |
| 24 | 24 | |
| 25 | 25 | /* FG */ |
| 26 | ||
| 26 | ||
| 27 | 27 | { |
| 28 | kickgoal_state *state = machine.driver_data<kickgoal_state>(); | |
| 29 | int tileno = state->m_fgram[tile_index * 2] & 0x0fff; | |
| 30 | int color = state->m_fgram[tile_index * 2 + 1] & 0x000f; | |
| 28 | int tileno = m_fgram[tile_index * 2] & 0x0fff; | |
| 29 | int color = m_fgram[tile_index * 2 + 1] & 0x000f; | |
| 31 | 30 | |
| 32 | SET_TILE_INFO(0, tileno + | |
| 31 | SET_TILE_INFO_MEMBER(0, tileno + | |
| 33 | 32 | } |
| 34 | 33 | |
| 35 | 34 | /* BG */ |
| 36 | ||
| 35 | ||
| 37 | 36 | { |
| 38 | kickgoal_state *state = machine.driver_data<kickgoal_state>(); | |
| 39 | int tileno = state->m_bgram[tile_index * 2] & state->m_bg_mask; | |
| 40 | int color = state->m_bgram[tile_index * 2 + 1] & 0x000f; | |
| 41 | int flipx = state->m_bgram[tile_index * 2 + 1] & 0x0020; | |
| 42 | int flipy = state->m_bgram[tile_index * 2 + 1] & 0x0040; | |
| 37 | int tileno = m_bgram[tile_index * 2] & m_bg_mask; | |
| 38 | int color = m_bgram[tile_index * 2 + 1] & 0x000f; | |
| 39 | int flipx = m_bgram[tile_index * 2 + 1] & 0x0020; | |
| 40 | int flipy = m_bgram[tile_index * 2 + 1] & 0x0040; | |
| 43 | 41 | |
| 44 | SET_TILE_INFO(1, tileno + | |
| 42 | SET_TILE_INFO_MEMBER(1, tileno + | |
| 45 | 43 | } |
| 46 | 44 | |
| 47 | 45 | /* BG 2 */ |
| 48 | ||
| 46 | ||
| 49 | 47 | { |
| 50 | kickgoal_state *state = machine.driver_data<kickgoal_state>(); | |
| 51 | int tileno = state->m_bg2ram[tile_index * 2] & state->m_bg2_mask; | |
| 52 | int color = state->m_bg2ram[tile_index * 2 + 1] & 0x000f; | |
| 53 | int flipx = state->m_bg2ram[tile_index * 2 + 1] & 0x0020; | |
| 54 | int flipy = state->m_bg2ram[tile_index * 2 + 1] & 0x0040; | |
| 48 | int tileno = m_bg2ram[tile_index * 2] & m_bg2_mask; | |
| 49 | int color = m_bg2ram[tile_index * 2 + 1] & 0x000f; | |
| 50 | int flipx = m_bg2ram[tile_index * 2 + 1] & 0x0020; | |
| 51 | int flipy = m_bg2ram[tile_index * 2 + 1] & 0x0040; | |
| 55 | 52 | |
| 56 | SET_TILE_INFO( | |
| 53 | SET_TILE_INFO_MEMBER( | |
| 57 | 54 | } |
| 58 | 55 | |
| 59 | 56 | |
| 60 | ||
| 57 | ||
| 61 | 58 | { |
| 62 | 59 | /* logical (col,row) -> memory offset */ |
| 63 | 60 | return col * 32 + (row & 0x1f) + ((row & 0x20) >> 5) * 0x800; |
| 64 | 61 | } |
| 65 | 62 | |
| 66 | ||
| 63 | ||
| 67 | 64 | { |
| 68 | 65 | /* logical (col,row) -> memory offset */ |
| 69 | 66 | return col * 16 + (row & 0xf) + ((row & 0x70) >> 4) * 0x400; |
| 70 | 67 | } |
| 71 | 68 | |
| 72 | 69 | |
| 73 | ||
| 70 | ||
| 74 | 71 | { |
| 75 | 72 | /* logical (col,row) -> memory offset */ |
| 76 | 73 | return col * 8 + (row & 0x7) + ((row & 0x3c) >> 3) * 0x200; |
| 77 | 74 | } |
| 78 | 75 | |
| 79 | 76 | |
| 80 | ||
| 77 | ||
| 81 | 78 | { |
| 82 | 79 | /* logical (col,row) -> memory offset */ |
| 83 | 80 | return col * 16 + (row & 0xf) + ((row & 0x70) >> 4) * 0x400; |
| r17673 | r17674 | |
| 133 | 130 | state->m_bg2_base = 0x2000 / 4; |
| 134 | 131 | state->m_bg2_mask = (0x2000/4) - 1; |
| 135 | 132 | |
| 136 | state->m_fgtm = tilemap_create(machine, get_kickgoal_fg_tile_info, tilemap_scan_kicksfg, 8, 8, 64, 64); | |
| 137 | state->m_bgtm = tilemap_create(machine, get_kickgoal_bg_tile_info, tilemap_scan_kicksbg, 16, 16, 64, 64); | |
| 138 | state->m_bg2tm = tilemap_create(machine, get_kickgoal_bg2_tile_info, tilemap_scan_kicksbg2, 32, 32, 64, 64); | |
| 133 | state->m_fgtm = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(kickgoal_state::get_kickgoal_fg_tile_info),state), tilemap_mapper_delegate(FUNC(kickgoal_state::tilemap_scan_kicksfg),state), 8, 8, 64, 64); | |
| 134 | state->m_bgtm = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(kickgoal_state::get_kickgoal_bg_tile_info),state), tilemap_mapper_delegate(FUNC(kickgoal_state::tilemap_scan_kicksbg),state), 16, 16, 64, 64); | |
| 135 | state->m_bg2tm = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(kickgoal_state::get_kickgoal_bg2_tile_info),state), tilemap_mapper_delegate(FUNC(kickgoal_state::tilemap_scan_kicksbg2),state), 32, 32, 64, 64); | |
| 139 | 136 | |
| 140 | 137 | state->m_fgtm->set_transparent_pen(15); |
| 141 | 138 | state->m_bgtm->set_transparent_pen(15); |
| r17673 | r17674 | |
| 155 | 152 | state->m_bg2_base = 0x2000; |
| 156 | 153 | state->m_bg2_mask = 0x2000 - 1; |
| 157 | 154 | |
| 158 | state->m_fgtm = tilemap_create(machine, get_kickgoal_fg_tile_info, tilemap_scan_kicksfg, 8, 8, 64, 64); | |
| 159 | state->m_bgtm = tilemap_create(machine, get_kickgoal_bg_tile_info, tilemap_scan_kicksbg, 16, 16, 64, 64); | |
| 160 | state->m_bg2tm = tilemap_create(machine, get_kickgoal_bg2_tile_info, tilemap_scan_actionhwbg2, 16, 16, 64, 64); | |
| 155 | state->m_fgtm = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(kickgoal_state::get_kickgoal_fg_tile_info),state), tilemap_mapper_delegate(FUNC(kickgoal_state::tilemap_scan_kicksfg),state), 8, 8, 64, 64); | |
| 156 | state->m_bgtm = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(kickgoal_state::get_kickgoal_bg_tile_info),state), tilemap_mapper_delegate(FUNC(kickgoal_state::tilemap_scan_kicksbg),state), 16, 16, 64, 64); | |
| 157 | state->m_bg2tm = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(kickgoal_state::get_kickgoal_bg2_tile_info),state), tilemap_mapper_delegate(FUNC(kickgoal_state::tilemap_scan_actionhwbg2),state), 16, 16, 64, 64); | |
| 161 | 158 | |
| 162 | 159 | state->m_fgtm->set_transparent_pen(15); |
| 163 | 160 | state->m_bgtm->set_transparent_pen(15); |
| r17673 | r17674 | |
|---|---|---|
| 235 | 235 | *************************************/ |
| 236 | 236 | |
| 237 | 237 | static void state_save_register(running_machine &machine); |
| 238 | static TILE_GET_INFO( bg_get_tile_info ); | |
| 239 | 238 | |
| 239 | ||
| 240 | 240 | static void sprites_draw(running_machine &machine, bitmap_rgb32 &bitmap, const rectangle &cliprect, const UINT8 *spritebase); |
| 241 | 241 | |
| 242 | 242 | static void stars_init(running_machine &machine); |
| r17673 | r17674 | |
| 396 | 396 | if (!state->m_sfx_tilemap) |
| 397 | 397 | { |
| 398 | 398 | /* normal galaxian hardware is row-based and individually scrolling columns */ |
| 399 | state->m_bg_tilemap = tilemap | |
| 399 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galaxian_state::bg_get_tile_info),state), TILEMAP_SCAN_ROWS, GALAXIAN_XSCALE*8,8, 32,32); | |
| 400 | 400 | state->m_bg_tilemap->set_scroll_cols(32); |
| 401 | 401 | state->m_bg_tilemap->set_scrolldx(0, -GALAXIAN_XSCALE * 128); |
| 402 | 402 | state->m_bg_tilemap->set_scrolldy(0, 8); |
| r17673 | r17674 | |
| 404 | 404 | else |
| 405 | 405 | { |
| 406 | 406 | /* sfx hardware is column-based and individually scrolling rows */ |
| 407 | state->m_bg_tilemap = tilemap | |
| 407 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galaxian_state::bg_get_tile_info),state), TILEMAP_SCAN_COLS, GALAXIAN_XSCALE*8,8, 32,32); | |
| 408 | 408 | state->m_bg_tilemap->set_scroll_rows(32); |
| 409 | 409 | state->m_bg_tilemap->set_scrolldx(0, -GALAXIAN_XSCALE * 128); |
| 410 | 410 | state->m_bg_tilemap->set_scrolldy(0, 8); |
| r17673 | r17674 | |
| 481 | 481 | * |
| 482 | 482 | *************************************/ |
| 483 | 483 | |
| 484 | ||
| 484 | ||
| 485 | 485 | { |
| 486 | galaxian_state *state = machine.driver_data<galaxian_state>(); | |
| 487 | UINT8 *videoram = state->m_videoram; | |
| 486 | UINT8 *videoram = m_videoram; | |
| 488 | 487 | UINT8 x = tile_index & 0x1f; |
| 489 | 488 | |
| 490 | 489 | UINT16 code = videoram[tile_index]; |
| 491 | UINT8 attrib = | |
| 490 | UINT8 attrib = | |
| 492 | 491 | UINT8 color = attrib & 7; |
| 493 | 492 | |
| 494 | if (state->m_extend_tile_info_ptr != NULL) | |
| 495 | (*state->m_extend_tile_info_ptr)(machine, &code, &color, attrib, x); | |
| 493 | if (m_extend_tile_info_ptr != NULL) | |
| 494 | (*m_extend_tile_info_ptr)(machine(), &code, &color, attrib, x); | |
| 496 | 495 | |
| 497 | SET_TILE_INFO(0, code, color, 0); | |
| 496 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 498 | 497 | } |
| 499 | 498 | |
| 500 | 499 |
| r17673 | r17674 | |
|---|---|---|
| 28 | 28 | tileinfo.category = (attr & 0x0600) >> 9; |
| 29 | 29 | } |
| 30 | 30 | |
| 31 | ||
| 31 | ||
| 32 | 32 | { |
| 33 | get_tile_info(machine, tileinfo, tile_index, 0); | |
| 33 | get_tile_info(machine(), tileinfo, tile_index, 0); | |
| 34 | 34 | } |
| 35 | 35 | |
| 36 | ||
| 36 | ||
| 37 | 37 | { |
| 38 | get_tile_info(machine, tileinfo, tile_index, 1); | |
| 38 | get_tile_info(machine(), tileinfo, tile_index, 1); | |
| 39 | 39 | } |
| 40 | 40 | |
| 41 | ||
| 41 | ||
| 42 | 42 | { |
| 43 | get_tile_info(machine, tileinfo, tile_index, 2); | |
| 43 | get_tile_info(machine(), tileinfo, tile_index, 2); | |
| 44 | 44 | } |
| 45 | 45 | |
| 46 | 46 | |
| r17673 | r17674 | |
| 55 | 55 | { |
| 56 | 56 | othldrby_state *state = machine.driver_data<othldrby_state>(); |
| 57 | 57 | |
| 58 | state->m_bg_tilemap[0] = tilemap_create(machine, get_tile_info0, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 59 | state->m_bg_tilemap[1] = tilemap_create(machine, get_tile_info1, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 60 | state->m_bg_tilemap[2] = tilemap_create(machine, get_tile_info2, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 58 | state->m_bg_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(othldrby_state::get_tile_info0),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 59 | state->m_bg_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(othldrby_state::get_tile_info1),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 60 | state->m_bg_tilemap[2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(othldrby_state::get_tile_info2),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 61 | 61 | |
| 62 | 62 | state->m_vram = auto_alloc_array(machine, UINT16, VIDEORAM_SIZE); |
| 63 | 63 | state->m_buf_spriteram = auto_alloc_array(machine, UINT16, 2 * SPRITERAM_SIZE); |
| r17673 | r17674 | |
|---|---|---|
| 27 | 27 | |
| 28 | 28 | /******************************************************************************/ |
| 29 | 29 | |
| 30 | ||
| 30 | ||
| 31 | 31 | { |
| 32 | bbusters_state *state = machine.driver_data<bbusters_state>(); | |
| 33 | UINT16 tile = state->m_videoram[tile_index]; | |
| 32 | UINT16 tile = m_videoram[tile_index]; | |
| 34 | 33 | |
| 35 | SET_TILE_INFO(0,tile&0xfff,tile>>12,0); | |
| 34 | SET_TILE_INFO_MEMBER(0,tile&0xfff,tile>>12,0); | |
| 36 | 35 | } |
| 37 | 36 | |
| 38 | ||
| 37 | ||
| 39 | 38 | { |
| 40 | bbusters_state *state = machine.driver_data<bbusters_state>(); | |
| 41 | UINT16 tile = state->m_pf1_data[tile_index]; | |
| 39 | UINT16 tile = m_pf1_data[tile_index]; | |
| 42 | 40 | |
| 43 | SET_TILE_INFO(3,tile&0xfff,tile>>12,0); | |
| 41 | SET_TILE_INFO_MEMBER(3,tile&0xfff,tile>>12,0); | |
| 44 | 42 | } |
| 45 | 43 | |
| 46 | ||
| 44 | ||
| 47 | 45 | { |
| 48 | bbusters_state *state = machine.driver_data<bbusters_state>(); | |
| 49 | UINT16 tile = state->m_pf2_data[tile_index]; | |
| 46 | UINT16 tile = m_pf2_data[tile_index]; | |
| 50 | 47 | |
| 51 | SET_TILE_INFO(4,tile&0xfff,tile>>12,0); | |
| 48 | SET_TILE_INFO_MEMBER(4,tile&0xfff,tile>>12,0); | |
| 52 | 49 | } |
| 53 | 50 | |
| 54 | 51 | WRITE16_MEMBER(bbusters_state::bbusters_video_w) |
| r17673 | r17674 | |
| 78 | 75 | { |
| 79 | 76 | bbusters_state *state = machine.driver_data<bbusters_state>(); |
| 80 | 77 | |
| 81 | state->m_fix_tilemap = tilemap_create(machine, get_bbusters_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 82 | state->m_pf1_tilemap = tilemap_create(machine, get_pf1_tile_info, TILEMAP_SCAN_COLS, 16, 16, 128, 32); | |
| 83 | state->m_pf2_tilemap = tilemap_create(machine, get_pf2_tile_info, TILEMAP_SCAN_COLS, 16, 16, 128, 32); | |
| 78 | state->m_fix_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bbusters_state::get_bbusters_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 79 | state->m_pf1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bbusters_state::get_pf1_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 128, 32); | |
| 80 | state->m_pf2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bbusters_state::get_pf2_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 128, 32); | |
| 84 | 81 | |
| 85 | 82 | state->m_pf1_tilemap->set_transparent_pen(15); |
| 86 | 83 | state->m_fix_tilemap->set_transparent_pen(15); |
| r17673 | r17674 | |
| 90 | 87 | { |
| 91 | 88 | bbusters_state *state = machine.driver_data<bbusters_state>(); |
| 92 | 89 | |
| 93 | state->m_fix_tilemap = tilemap_create(machine, get_bbusters_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 94 | state->m_pf1_tilemap = tilemap_create(machine, get_pf1_tile_info, TILEMAP_SCAN_COLS, 16, 16, 256, 32); | |
| 95 | state->m_pf2_tilemap = tilemap_create(machine, get_pf2_tile_info, TILEMAP_SCAN_COLS, 16, 16, 256, 32); | |
| 90 | state->m_fix_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bbusters_state::get_bbusters_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 91 | state->m_pf1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bbusters_state::get_pf1_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 256, 32); | |
| 92 | state->m_pf2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bbusters_state::get_pf2_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 256, 32); | |
| 96 | 93 | |
| 97 | 94 | state->m_pf1_tilemap->set_transparent_pen(15); |
| 98 | 95 | state->m_fix_tilemap->set_transparent_pen(15); |
| r17673 | r17674 | |
|---|---|---|
| 25 | 25 | */ |
| 26 | 26 | |
| 27 | 27 | |
| 28 | ||
| 28 | ||
| 29 | 29 | { |
| 30 | gstriker_state *state = machine.driver_data<gstriker_state>(); | |
| 31 | 30 | int data; |
| 32 | 31 | int tileno, pal; |
| 33 | 32 | |
| 34 | data = | |
| 33 | data = | |
| 35 | 34 | |
| 36 | 35 | tileno = data & 0xFFF; |
| 37 | 36 | pal = (data >> 12) & 0xF; |
| 38 | 37 | |
| 39 | SET_TILE_INFO( | |
| 38 | SET_TILE_INFO_MEMBER( | |
| 40 | 39 | } |
| 41 | 40 | |
| 42 | 41 | WRITE16_MEMBER(gstriker_state::VS920A_0_vram_w) |
| r17673 | r17674 | |
| 61 | 60 | |
| 62 | 61 | for (i=0;i<numchips;i++) |
| 63 | 62 | { |
| 64 | state->m_VS920A[i].tmap = tilemap | |
| 63 | state->m_VS920A[i].tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gstriker_state::VS920A_get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32); | |
| 65 | 64 | |
| 66 | 65 | state->m_VS920A[i].tmap->set_transparent_pen(0); |
| 67 | 66 | } |
| r17673 | r17674 | |
| 139 | 138 | |
| 140 | 139 | |
| 141 | 140 | |
| 142 | ||
| 141 | ||
| 143 | 142 | { |
| 144 | gstriker_state *state = machine.driver_data<gstriker_state>(); | |
| 145 | 143 | int data, bankno; |
| 146 | 144 | int tileno, pal; |
| 147 | 145 | |
| 148 | data = | |
| 146 | data = | |
| 149 | 147 | |
| 150 | 148 | tileno = data & 0x1FF; |
| 151 | 149 | pal = (data >> 12) & 0xF; |
| 152 | 150 | bankno = (data >> 9) & 0x7; |
| 153 | 151 | |
| 154 | SET_TILE_INFO( | |
| 152 | SET_TILE_INFO_MEMBER( | |
| 155 | 153 | } |
| 156 | 154 | |
| 157 | 155 | void gstriker_state::MB60553_reg_written(int numchip, int num_reg) |
| r17673 | r17674 | |
| 203 | 201 | } |
| 204 | 202 | |
| 205 | 203 | /* twc94 has the tilemap made of 2 pages .. it needs this */ |
| 206 | ||
| 204 | ||
| 207 | 205 | { |
| 208 | 206 | /* logical (col,row) -> memory offset */ |
| 209 | 207 | return (row*64) + (col&63) + ((col&64)<<6); |
| r17673 | r17674 | |
| 219 | 217 | |
| 220 | 218 | for (i=0;i<numchips;i++) |
| 221 | 219 | { |
| 222 | state->m_MB60553[i].tmap = tilemap | |
| 220 | state->m_MB60553[i].tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gstriker_state::MB60553_get_tile_info),state),tilemap_mapper_delegate(FUNC(gstriker_state::twc94_scan),state), 16,16,128,64); | |
| 223 | 221 | |
| 224 | 222 | state->m_MB60553[i].tmap->set_transparent_pen(0); |
| 225 | 223 | } |
| r17673 | r17674 | |
|---|---|---|
| 59 | 59 | |
| 60 | 60 | /**************************************************************************************/ |
| 61 | 61 | |
| 62 | ||
| 62 | ||
| 63 | 63 | { |
| 64 | 64 | // tilemap is 36x28, the central part is from the first RAM page and the |
| 65 | 65 | // extra 4 columns are from the second page |
| r17673 | r17674 | |
| 70 | 70 | return row + (col << 5); |
| 71 | 71 | } |
| 72 | 72 | |
| 73 | ||
| 73 | ||
| 74 | 74 | { |
| 75 | snk_state *state = machine.driver_data<snk_state>(); | |
| 76 | int code = state->m_tx_videoram[tile_index]; | |
| 75 | int code = m_tx_videoram[tile_index]; | |
| 77 | 76 | int color = code >> 5; |
| 78 | 77 | |
| 79 | SET_TILE_INFO(0, | |
| 80 | state->m_tx_tile_offset + code, | |
| 78 | SET_TILE_INFO_MEMBER(0, | |
| 79 | m_tx_tile_offset + code, | |
| 81 | 80 | color, |
| 82 | 81 | tile_index & 0x400 ? TILE_FORCE_LAYER0 : 0); |
| 83 | 82 | } |
| 84 | 83 | |
| 85 | ||
| 84 | ||
| 86 | 85 | { |
| 87 | snk_state *state = machine.driver_data<snk_state>(); | |
| 88 | int code = state->m_tx_videoram[tile_index]; | |
| 86 | int code = m_tx_videoram[tile_index]; | |
| 89 | 87 | |
| 90 | SET_TILE_INFO(0, | |
| 91 | state->m_tx_tile_offset + code, | |
| 88 | SET_TILE_INFO_MEMBER(0, | |
| 89 | m_tx_tile_offset + code, | |
| 92 | 90 | 0, |
| 93 | 91 | tile_index & 0x400 ? TILE_FORCE_LAYER0 : 0); |
| 94 | 92 | } |
| 95 | 93 | |
| 96 | ||
| 94 | ||
| 97 | 95 | { |
| 98 | snk_state *state = machine.driver_data<snk_state>(); | |
| 99 | int code = state->m_tx_videoram[tile_index]; | |
| 96 | int code = m_tx_videoram[tile_index]; | |
| 100 | 97 | |
| 101 | SET_TILE_INFO(0, | |
| 102 | state->m_tx_tile_offset + code, | |
| 98 | SET_TILE_INFO_MEMBER(0, | |
| 99 | m_tx_tile_offset + code, | |
| 103 | 100 | 0, |
| 104 | 101 | 0); |
| 105 | 102 | } |
| 106 | 103 | |
| 107 | 104 | |
| 108 | ||
| 105 | ||
| 109 | 106 | { |
| 110 | snk_state *state = machine.driver_data<snk_state>(); | |
| 111 | int code = state->m_fg_videoram[tile_index]; | |
| 107 | int code = m_fg_videoram[tile_index]; | |
| 112 | 108 | |
| 113 | SET_TILE_INFO(1, | |
| 109 | SET_TILE_INFO_MEMBER(1, | |
| 114 | 110 | code, |
| 115 | 111 | 0, |
| 116 | 112 | 0); |
| 117 | 113 | } |
| 118 | 114 | |
| 119 | ||
| 115 | ||
| 120 | 116 | { |
| 121 | snk_state *state = machine.driver_data<snk_state>(); | |
| 122 | int code = state->m_bg_videoram[tile_index]; | |
| 117 | int code = m_bg_videoram[tile_index]; | |
| 123 | 118 | |
| 124 | SET_TILE_INFO(2, | |
| 119 | SET_TILE_INFO_MEMBER(2, | |
| 125 | 120 | code, |
| 126 | 121 | 0, |
| 127 | 122 | 0); |
| 128 | 123 | } |
| 129 | 124 | |
| 130 | 125 | |
| 131 | ||
| 126 | ||
| 132 | 127 | { |
| 133 | snk_state *state = machine.driver_data<snk_state>(); | |
| 134 | int code = state->m_bg_videoram[tile_index]; | |
| 128 | int code = m_bg_videoram[tile_index]; | |
| 135 | 129 | |
| 136 | SET_TILE_INFO(1, | |
| 137 | state->m_bg_tile_offset + code, | |
| 130 | SET_TILE_INFO_MEMBER(1, | |
| 131 | m_bg_tile_offset + code, | |
| 138 | 132 | 0, |
| 139 | 133 | 0); |
| 140 | 134 | } |
| 141 | 135 | |
| 142 | ||
| 136 | ||
| 143 | 137 | { |
| 144 | snk_state *state = machine.driver_data<snk_state>(); | |
| 145 | int attr = state->m_bg_videoram[2*tile_index+1]; | |
| 146 | int code = state->m_bg_videoram[2*tile_index] | ((attr & 0x30) << 4); | |
| 138 | int attr = m_bg_videoram[2*tile_index+1]; | |
| 139 | int code = m_bg_videoram[2*tile_index] | ((attr & 0x30) << 4); | |
| 147 | 140 | int color = (attr & 0xf) ^ 8; |
| 148 | 141 | |
| 149 | SET_TILE_INFO(1, | |
| 142 | SET_TILE_INFO_MEMBER(1, | |
| 150 | 143 | code, |
| 151 | 144 | color, |
| 152 | 145 | 0); |
| 153 | 146 | } |
| 154 | 147 | |
| 155 | ||
| 148 | ||
| 156 | 149 | { |
| 157 | snk_state *state = machine.driver_data<snk_state>(); | |
| 158 | int attr = state->m_bg_videoram[2*tile_index+1]; | |
| 159 | int code = state->m_bg_videoram[2*tile_index] | ((attr & 0x03) << 8); | |
| 150 | int attr = m_bg_videoram[2*tile_index+1]; | |
| 151 | int code = m_bg_videoram[2*tile_index] | ((attr & 0x03) << 8); | |
| 160 | 152 | int color = (attr & 0x70) >> 4; |
| 161 | 153 | |
| 162 | SET_TILE_INFO(1, | |
| 154 | SET_TILE_INFO_MEMBER(1, | |
| 163 | 155 | code, |
| 164 | 156 | color, |
| 165 | 157 | 0); |
| 166 | 158 | } |
| 167 | 159 | |
| 168 | ||
| 160 | ||
| 169 | 161 | { |
| 170 | snk_state *state = machine.driver_data<snk_state>(); | |
| 171 | int attr = state->m_bg_videoram[2*tile_index+1]; | |
| 172 | int code = state->m_bg_videoram[2*tile_index] | ((attr & 0x0f) << 8); | |
| 162 | int attr = m_bg_videoram[2*tile_index+1]; | |
| 163 | int code = m_bg_videoram[2*tile_index] | ((attr & 0x0f) << 8); | |
| 173 | 164 | int color = (attr & 0xf0) >> 4; |
| 174 | 165 | |
| 175 | if ( | |
| 166 | if ( | |
| 176 | 167 | color &= 7; |
| 177 | 168 | |
| 178 | SET_TILE_INFO(1, | |
| 169 | SET_TILE_INFO_MEMBER(1, | |
| 179 | 170 | code, |
| 180 | 171 | color, |
| 181 | 172 | 0); |
| 182 | 173 | |
| 183 | 174 | // bermudat, tdfever use FFFF to blank the background. |
| 184 | // (still call SET_TILE_INFO, otherwise problems might occur on boot when | |
| 175 | // (still call SET_TILE_INFO_MEMBER, otherwise problems might occur on boot when | |
| 185 | 176 | // the tile data hasn't been initialised) |
| 186 | if (code >= machine.gfx[1]->elements()) | |
| 187 | tileinfo.pen_data = state->m_empty_tile; | |
| 177 | if (code >= machine().gfx[1]->elements()) | |
| 178 | tileinfo.pen_data = m_empty_tile; | |
| 188 | 179 | } |
| 189 | 180 | |
| 190 | 181 | |
| r17673 | r17674 | |
| 235 | 226 | |
| 236 | 227 | VIDEO_START_CALL(snk_3bpp_shadow); |
| 237 | 228 | |
| 238 | state->m_tx_tilemap = tilemap_create(machine, marvins_get_tx_tile_info, marvins_tx_scan_cols, 8, 8, 36, 28); | |
| 239 | state->m_fg_tilemap = tilemap_create(machine, marvins_get_fg_tile_info, TILEMAP_SCAN_COLS, 8, 8, 64, 32); | |
| 240 | state->m_bg_tilemap = tilemap_create(machine, marvins_get_bg_tile_info, TILEMAP_SCAN_COLS, 8, 8, 64, 32); | |
| 229 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snk_state::marvins_get_tx_tile_info),state), tilemap_mapper_delegate(FUNC(snk_state::marvins_tx_scan_cols),state), 8, 8, 36, 28); | |
| 230 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snk_state::marvins_get_fg_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 64, 32); | |
| 231 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snk_state::marvins_get_bg_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 64, 32); | |
| 241 | 232 | |
| 242 | 233 | state->m_tx_tilemap->set_transparent_pen(15); |
| 243 | 234 | state->m_tx_tilemap->set_scrolldy(8, 8); |
| r17673 | r17674 | |
| 258 | 249 | |
| 259 | 250 | VIDEO_START_CALL(snk_3bpp_shadow); |
| 260 | 251 | |
| 261 | state->m_tx_tilemap = tilemap_create(machine, marvins_get_tx_tile_info, marvins_tx_scan_cols, 8, 8, 36, 28); | |
| 262 | state->m_bg_tilemap = tilemap_create(machine, aso_get_bg_tile_info, TILEMAP_SCAN_COLS, 8, 8, 64, 64); | |
| 252 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snk_state::marvins_get_tx_tile_info),state), tilemap_mapper_delegate(FUNC(snk_state::marvins_tx_scan_cols),state), 8, 8, 36, 28); | |
| 253 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snk_state::aso_get_bg_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 64, 64); | |
| 263 | 254 | |
| 264 | 255 | state->m_tx_tilemap->set_transparent_pen(15); |
| 265 | 256 | state->m_tx_tilemap->set_scrolldy(8, 8); |
| r17673 | r17674 | |
| 279 | 270 | |
| 280 | 271 | VIDEO_START_CALL(snk_3bpp_shadow); |
| 281 | 272 | |
| 282 | state->m_tx_tilemap = tilemap_create(machine, marvins_get_tx_tile_info, marvins_tx_scan_cols, 8, 8, 36, 28); | |
| 283 | state->m_bg_tilemap = tilemap_create(machine, aso_get_bg_tile_info, TILEMAP_SCAN_COLS, 8, 8, 64, 32); | |
| 273 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snk_state::marvins_get_tx_tile_info),state), tilemap_mapper_delegate(FUNC(snk_state::marvins_tx_scan_cols),state), 8, 8, 36, 28); | |
| 274 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snk_state::aso_get_bg_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 64, 32); | |
| 284 | 275 | |
| 285 | 276 | state->m_tx_tilemap->set_transparent_pen(15); |
| 286 | 277 | state->m_tx_tilemap->set_scrolldy(8, 8); |
| r17673 | r17674 | |
| 325 | 316 | |
| 326 | 317 | VIDEO_START_CALL(snk_3bpp_shadow); |
| 327 | 318 | |
| 328 | state->m_tx_tilemap = tilemap_create(machine, marvins_get_tx_tile_info, marvins_tx_scan_cols, 8, 8, 36, 28); | |
| 329 | state->m_bg_tilemap = tilemap_create(machine, tnk3_get_bg_tile_info, TILEMAP_SCAN_COLS, 8, 8, 64, 64); | |
| 319 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snk_state::marvins_get_tx_tile_info),state), tilemap_mapper_delegate(FUNC(snk_state::marvins_tx_scan_cols),state), 8, 8, 36, 28); | |
| 320 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snk_state::tnk3_get_bg_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 64, 64); | |
| 330 | 321 | |
| 331 | 322 | state->m_tx_tilemap->set_transparent_pen(15); |
| 332 | 323 | state->m_tx_tilemap->set_scrolldy(8, 8); |
| r17673 | r17674 | |
| 345 | 336 | |
| 346 | 337 | VIDEO_START_CALL(snk_3bpp_shadow); |
| 347 | 338 | |
| 348 | state->m_tx_tilemap = tilemap_create(machine, ikari_get_tx_tile_info, marvins_tx_scan_cols, 8, 8, 36, 28); | |
| 349 | state->m_bg_tilemap = tilemap_create(machine, ikari_get_bg_tile_info, TILEMAP_SCAN_COLS, 16, 16, 32, 32); | |
| 339 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snk_state::ikari_get_tx_tile_info),state), tilemap_mapper_delegate(FUNC(snk_state::marvins_tx_scan_cols),state), 8, 8, 36, 28); | |
| 340 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snk_state::ikari_get_bg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32); | |
| 350 | 341 | |
| 351 | 342 | state->m_tx_tilemap->set_transparent_pen(15); |
| 352 | 343 | state->m_tx_tilemap->set_scrolldy(8, 8); |
| r17673 | r17674 | |
| 368 | 359 | |
| 369 | 360 | memset(state->m_empty_tile, 0xf, sizeof(state->m_empty_tile)); |
| 370 | 361 | |
| 371 | state->m_tx_tilemap = tilemap_create(machine, gwar_get_tx_tile_info, TILEMAP_SCAN_COLS, 8, 8, 50, 32); | |
| 372 | state->m_bg_tilemap = tilemap_create(machine, gwar_get_bg_tile_info, TILEMAP_SCAN_COLS, 16, 16, 32, 32); | |
| 362 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snk_state::gwar_get_tx_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 50, 32); | |
| 363 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snk_state::gwar_get_bg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32); | |
| 373 | 364 | |
| 374 | 365 | state->m_tx_tilemap->set_transparent_pen(15); |
| 375 | 366 |
| r17673 | r17674 | |
|---|---|---|
| 256 | 256 | |
| 257 | 257 | |
| 258 | 258 | |
| 259 | ||
| 259 | ||
| 260 | 260 | { |
| 261 | hyprduel_state *state = machine.driver_data<hyprduel_state>(); | |
| 262 | get_tile_info_8bit(machine, tileinfo, tile_index, 0, state->m_vram_0); | |
| 261 | get_tile_info_8bit(machine(), tileinfo, tile_index, 0, m_vram_0); | |
| 263 | 262 | } |
| 264 | 263 | |
| 265 | ||
| 264 | ||
| 266 | 265 | { |
| 267 | hyprduel_state *state = machine.driver_data<hyprduel_state>(); | |
| 268 | get_tile_info_8bit(machine, tileinfo, tile_index, 1, state->m_vram_1); | |
| 266 | get_tile_info_8bit(machine(), tileinfo, tile_index, 1, m_vram_1); | |
| 269 | 267 | } |
| 270 | 268 | |
| 271 | ||
| 269 | ||
| 272 | 270 | { |
| 273 | hyprduel_state *state = machine.driver_data<hyprduel_state>(); | |
| 274 | get_tile_info_8bit(machine, tileinfo, tile_index, 2, state->m_vram_2); | |
| 271 | get_tile_info_8bit(machine(), tileinfo, tile_index, 2, m_vram_2); | |
| 275 | 272 | } |
| 276 | 273 | |
| 277 | 274 | WRITE16_MEMBER(hyprduel_state::hyprduel_vram_0_w) |
| r17673 | r17674 | |
| 370 | 367 | state->save_pointer(NAME(state->m_tiletable_old), state->m_tiletable.bytes() / 2); |
| 371 | 368 | state->save_pointer(NAME(state->m_dirtyindex), state->m_tiletable.bytes() / 4); |
| 372 | 369 | |
| 373 | state->m_bg_tilemap[0] = tilemap_create(machine, get_tile_info_0_8bit, TILEMAP_SCAN_ROWS, 8, 8, WIN_NX, WIN_NY); | |
| 374 | state->m_bg_tilemap[1] = tilemap_create(machine, get_tile_info_1_8bit, TILEMAP_SCAN_ROWS, 8, 8, WIN_NX, WIN_NY); | |
| 375 | state->m_bg_tilemap[2] = tilemap_create(machine, get_tile_info_2_8bit, TILEMAP_SCAN_ROWS, 8, 8, WIN_NX, WIN_NY); | |
| 370 | state->m_bg_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hyprduel_state::get_tile_info_0_8bit),state), TILEMAP_SCAN_ROWS, 8, 8, WIN_NX, WIN_NY); | |
| 371 | state->m_bg_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hyprduel_state::get_tile_info_1_8bit),state), TILEMAP_SCAN_ROWS, 8, 8, WIN_NX, WIN_NY); | |
| 372 | state->m_bg_tilemap[2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hyprduel_state::get_tile_info_2_8bit),state), TILEMAP_SCAN_ROWS, 8, 8, WIN_NX, WIN_NY); | |
| 376 | 373 | |
| 377 | 374 | state->m_bg_tilemap[0]->map_pen_to_layer(0, 15, TILEMAP_PIXEL_TRANSPARENT); |
| 378 | 375 | state->m_bg_tilemap[0]->map_pen_to_layer(1, 255, TILEMAP_PIXEL_TRANSPARENT); |
| r17673 | r17674 | |
|---|---|---|
| 9 | 9 | #include "emu.h" |
| 10 | 10 | #include "includes/flstory.h" |
| 11 | 11 | |
| 12 | ||
| 12 | ||
| 13 | 13 | { |
| 14 | flstory_state *state = machine.driver_data<flstory_state>(); | |
| 15 | int code = state->m_videoram[tile_index * 2]; | |
| 16 | int attr = state->m_videoram[tile_index * 2 + 1]; | |
| 17 | int tile_number = code + ((attr & 0xc0) << 2) + 0x400 + 0x800 * state->m_char_bank; | |
| 14 | int code = m_videoram[tile_index * 2]; | |
| 15 | int attr = m_videoram[tile_index * 2 + 1]; | |
| 16 | int tile_number = code + ((attr & 0xc0) << 2) + 0x400 + 0x800 * m_char_bank; | |
| 18 | 17 | int flags = TILE_FLIPYX((attr & 0x18) >> 3); |
| 19 | 18 | tileinfo.category = (attr & 0x20) >> 5; |
| 20 | 19 | tileinfo.group = (attr & 0x20) >> 5; |
| 21 | SET_TILE_INFO( | |
| 20 | SET_TILE_INFO_MEMBER( | |
| 22 | 21 | 0, |
| 23 | 22 | tile_number, |
| 24 | 23 | attr & 0x0f, |
| 25 | 24 | flags); |
| 26 | 25 | } |
| 27 | 26 | |
| 28 | ||
| 27 | ||
| 29 | 28 | { |
| 30 | flstory_state *state = machine.driver_data<flstory_state>(); | |
| 31 | int code = state->m_videoram[tile_index * 2]; | |
| 32 | int attr = state->m_videoram[tile_index * 2 + 1]; | |
| 29 | int code = m_videoram[tile_index * 2]; | |
| 30 | int attr = m_videoram[tile_index * 2 + 1]; | |
| 33 | 31 | int tile_number = ((attr & 0x38) << 5) + code; |
| 34 | 32 | int flags = ((attr & 0x40) ? TILE_FLIPX : 0) | ((attr & 0x80) ? TILE_FLIPY : 0); |
| 35 | 33 | |
| 36 | SET_TILE_INFO( | |
| 34 | SET_TILE_INFO_MEMBER( | |
| 37 | 35 | 0, |
| 38 | 36 | tile_number, |
| 39 | 37 | attr & 0x07, |
| 40 | 38 | flags); |
| 41 | 39 | } |
| 42 | 40 | |
| 43 | ||
| 41 | ||
| 44 | 42 | { |
| 45 | flstory_state *state = machine.driver_data<flstory_state>(); | |
| 46 | int code = state->m_videoram[tile_index * 2]; | |
| 47 | int attr = state->m_videoram[tile_index * 2 + 1]; | |
| 48 | int tile_number = code + ((attr & 0xc0) << 2) + 0x400 + 0x800 * state->m_char_bank; | |
| 43 | int code = m_videoram[tile_index * 2]; | |
| 44 | int attr = m_videoram[tile_index * 2 + 1]; | |
| 45 | int tile_number = code + ((attr & 0xc0) << 2) + 0x400 + 0x800 * m_char_bank; | |
| 49 | 46 | int col = (attr & 0x0f); |
| 50 | 47 | |
| 51 | 48 | tileinfo.category = (attr & 0x20) >> 5; |
| 52 | 49 | tileinfo.group = (attr & 0x20) >> 5; |
| 53 | SET_TILE_INFO( | |
| 50 | SET_TILE_INFO_MEMBER( | |
| 54 | 51 | 0, |
| 55 | 52 | tile_number, |
| 56 | 53 | col, |
| r17673 | r17674 | |
| 60 | 57 | VIDEO_START( flstory ) |
| 61 | 58 | { |
| 62 | 59 | flstory_state *state = machine.driver_data<flstory_state>(); |
| 63 | state->m_bg_tilemap = tilemap | |
| 60 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(flstory_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 64 | 61 | // state->m_bg_tilemap->set_transparent_pen(15); |
| 65 | 62 | state->m_bg_tilemap->set_transmask(0, 0x3fff, 0xc000); /* split type 0 has pens 0-13 transparent in front half */ |
| 66 | 63 | state->m_bg_tilemap->set_transmask(1, 0x8000, 0x7fff); /* split type 1 has pen 15 transparent in front half */ |
| r17673 | r17674 | |
| 73 | 70 | VIDEO_START( rumba ) |
| 74 | 71 | { |
| 75 | 72 | flstory_state *state = machine.driver_data<flstory_state>(); |
| 76 | state->m_bg_tilemap = tilemap | |
| 73 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(flstory_state::get_rumba_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 77 | 74 | // state->m_bg_tilemap->set_transparent_pen(15); |
| 78 | 75 | state->m_bg_tilemap->set_transmask(0, 0x3fff, 0xc000); /* split type 0 has pens 0-13 transparent in front half */ |
| 79 | 76 | state->m_bg_tilemap->set_transmask(1, 0x8000, 0x7fff); /* split type 1 has pen 15 transparent in front half */ |
| r17673 | r17674 | |
| 86 | 83 | VIDEO_START( victnine ) |
| 87 | 84 | { |
| 88 | 85 | flstory_state *state = machine.driver_data<flstory_state>(); |
| 89 | state->m_bg_tilemap = tilemap | |
| 86 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(flstory_state::victnine_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 90 | 87 | state->m_bg_tilemap->set_scroll_cols(32); |
| 91 | 88 | |
| 92 | 89 | state->m_generic_paletteram_8.allocate(0x200); |
| r17673 | r17674 | |
|---|---|---|
| 105 | 105 | } |
| 106 | 106 | |
| 107 | 107 | |
| 108 | ||
| 108 | ||
| 109 | 109 | { |
| 110 | suprslam_state *state = machine.driver_data<suprslam_state>(); | |
| 111 | int tileno = state->m_screen_videoram[tile_index] & 0x0fff; | |
| 112 | int colour = state->m_screen_videoram[tile_index] & 0xf000; | |
| 110 | int tileno = m_screen_videoram[tile_index] & 0x0fff; | |
| 111 | int colour = m_screen_videoram[tile_index] & 0xf000; | |
| 113 | 112 | |
| 114 | tileno += | |
| 113 | tileno += | |
| 115 | 114 | colour = colour >> 12; |
| 116 | 115 | |
| 117 | SET_TILE_INFO(0, tileno, colour, 0); | |
| 116 | SET_TILE_INFO_MEMBER(0, tileno, colour, 0); | |
| 118 | 117 | } |
| 119 | 118 | |
| 120 | 119 | |
| r17673 | r17674 | |
| 127 | 126 | } |
| 128 | 127 | |
| 129 | 128 | |
| 130 | ||
| 129 | ||
| 131 | 130 | { |
| 132 | suprslam_state *state = machine.driver_data<suprslam_state>(); | |
| 133 | int tileno = state->m_bg_videoram[tile_index] & 0x0fff; | |
| 134 | int colour = state->m_bg_videoram[tile_index] & 0xf000; | |
| 131 | int tileno = m_bg_videoram[tile_index] & 0x0fff; | |
| 132 | int colour = m_bg_videoram[tile_index] & 0xf000; | |
| 135 | 133 | |
| 136 | tileno += | |
| 134 | tileno += | |
| 137 | 135 | colour = colour >> 12; |
| 138 | 136 | |
| 139 | SET_TILE_INFO(2, tileno, colour, 0); | |
| 137 | SET_TILE_INFO_MEMBER(2, tileno, colour, 0); | |
| 140 | 138 | } |
| 141 | 139 | |
| 142 | 140 | |
| r17673 | r17674 | |
| 144 | 142 | { |
| 145 | 143 | suprslam_state *state = machine.driver_data<suprslam_state>(); |
| 146 | 144 | |
| 147 | state->m_bg_tilemap = tilemap_create(machine, get_suprslam_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); | |
| 148 | state->m_screen_tilemap = tilemap_create(machine, get_suprslam_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 145 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(suprslam_state::get_suprslam_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); | |
| 146 | state->m_screen_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(suprslam_state::get_suprslam_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 149 | 147 | |
| 150 | 148 | state->m_screen_tilemap->set_transparent_pen(15); |
| 151 | 149 | } |
| r17673 | r17674 | |
|---|---|---|
| 29 | 29 | m_bg_tilemap->mark_tile_dirty(offset); |
| 30 | 30 | } |
| 31 | 31 | |
| 32 | ||
| 32 | ||
| 33 | 33 | { |
| 34 | calomega_state *state = machine.driver_data<calomega_state>(); | |
| 35 | 34 | /* - bits - |
| 36 | 35 | 7654 3210 |
| 37 | 36 | --xx xx-- tiles color. |
| 38 | 37 | ---- --x- tiles bank. |
| 39 | 38 | xx-- ---x seems unused. */ |
| 40 | 39 | |
| 41 | int attr = state->m_colorram[tile_index]; | |
| 42 | int code = state->m_videoram[tile_index]; | |
| 40 | int attr = m_colorram[tile_index]; | |
| 41 | int code = m_videoram[tile_index]; | |
| 43 | 42 | int bank = (attr & 0x02) >> 1; /* bit 1 switch the gfx banks */ |
| 44 | 43 | int color = (attr & 0x3c); /* bits 2-3-4-5 for color */ |
| 45 | 44 | |
| r17673 | r17674 | |
| 52 | 51 | if (attr == 0x32) /* Is the palette wrong? */ |
| 53 | 52 | color = 0x39; /* 0x39 is the best match */ |
| 54 | 53 | |
| 55 | SET_TILE_INFO(bank, code, color, 0); | |
| 54 | SET_TILE_INFO_MEMBER(bank, code, color, 0); | |
| 56 | 55 | } |
| 57 | 56 | |
| 58 | 57 | VIDEO_START( calomega ) |
| 59 | 58 | { |
| 60 | 59 | calomega_state *state = machine.driver_data<calomega_state>(); |
| 61 | state->m_bg_tilemap = tilemap | |
| 60 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(calomega_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 31); | |
| 62 | 61 | } |
| 63 | 62 | |
| 64 | 63 | SCREEN_UPDATE_IND16( calomega ) |
| r17673 | r17674 | |
|---|---|---|
| 60 | 60 | } |
| 61 | 61 | } |
| 62 | 62 | |
| 63 | ||
| 63 | ||
| 64 | 64 | { |
| 65 | strnskil_state *state = machine.driver_data<strnskil_state>(); | |
| 66 | UINT8 *videoram = state->m_videoram; | |
| 65 | UINT8 *videoram = m_videoram; | |
| 67 | 66 | int attr = videoram[tile_index * 2]; |
| 68 | 67 | int code = videoram[(tile_index * 2) + 1] + ((attr & 0x60) << 3); |
| 69 | 68 | int color = (attr & 0x1f) | ((attr & 0x80) >> 2); |
| 70 | 69 | |
| 71 | SET_TILE_INFO(0, code, color, 0); | |
| 70 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 72 | 71 | } |
| 73 | 72 | |
| 74 | 73 | VIDEO_START( strnskil ) |
| 75 | 74 | { |
| 76 | 75 | strnskil_state *state = machine.driver_data<strnskil_state>(); |
| 77 | state->m_bg_tilemap = tilemap | |
| 76 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(strnskil_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, | |
| 78 | 77 | 8, 8, 32, 32); |
| 79 | 78 | |
| 80 | 79 | state->m_bg_tilemap->set_scroll_rows(32); |
| r17673 | r17674 | |
|---|---|---|
| 14 | 14 | * |
| 15 | 15 | *************************************/ |
| 16 | 16 | |
| 17 | ||
| 17 | ||
| 18 | 18 | { |
| 19 | atetris_state *state = machine.driver_data<atetris_state>(); | |
| 20 | UINT8 *videoram = state->m_videoram; | |
| 19 | UINT8 *videoram = m_videoram; | |
| 21 | 20 | int code = videoram[tile_index * 2] | ((videoram[tile_index * 2 + 1] & 7) << 8); |
| 22 | 21 | int color = (videoram[tile_index * 2 + 1] & 0xf0) >> 4; |
| 23 | 22 | |
| 24 | SET_TILE_INFO(0, code, color, 0); | |
| 23 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 25 | 24 | } |
| 26 | 25 | |
| 27 | 26 | |
| r17673 | r17674 | |
| 52 | 51 | { |
| 53 | 52 | atetris_state *state = machine.driver_data<atetris_state>(); |
| 54 | 53 | |
| 55 | state->m_bg_tilemap = tilemap | |
| 54 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(atetris_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,32); | |
| 56 | 55 | } |
| 57 | 56 | |
| 58 | 57 |
| r17673 | r17674 | |
|---|---|---|
| 133 | 133 | } |
| 134 | 134 | } |
| 135 | 135 | |
| 136 | ||
| 136 | ||
| 137 | 137 | { |
| 138 | shaolins_state *state = machine.driver_data<shaolins_state>(); | |
| 139 | int attr = state->m_colorram[tile_index]; | |
| 140 | int code = state->m_videoram[tile_index] + ((attr & 0x40) << 2); | |
| 141 | int color = (attr & 0x0f) + 16 * state->m_palettebank; | |
| 138 | int attr = m_colorram[tile_index]; | |
| 139 | int code = m_videoram[tile_index] + ((attr & 0x40) << 2); | |
| 140 | int color = (attr & 0x0f) + 16 * m_palettebank; | |
| 142 | 141 | int flags = (attr & 0x20) ? TILE_FLIPY : 0; |
| 143 | 142 | |
| 144 | SET_TILE_INFO(0, code, color, flags); | |
| 143 | SET_TILE_INFO_MEMBER(0, code, color, flags); | |
| 145 | 144 | } |
| 146 | 145 | |
| 147 | 146 | VIDEO_START( shaolins ) |
| 148 | 147 | { |
| 149 | 148 | shaolins_state *state = machine.driver_data<shaolins_state>(); |
| 150 | 149 | |
| 151 | state->m_bg_tilemap = tilemap | |
| 150 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(shaolins_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, | |
| 152 | 151 | 8, 8, 32, 32); |
| 153 | 152 | |
| 154 | 153 | state->m_bg_tilemap->set_scroll_cols(32); |
| r17673 | r17674 | |
|---|---|---|
| 14 | 14 | |
| 15 | 15 | ***************************************************************************/ |
| 16 | 16 | |
| 17 | ||
| 17 | ||
| 18 | 18 | { |
| 19 | kyugo_state *state = machine.driver_data<kyugo_state>(); | |
| 20 | int code = state->m_fgvideoram[tile_index]; | |
| 21 | SET_TILE_INFO(0, | |
| 19 | int code = m_fgvideoram[tile_index]; | |
| 20 | SET_TILE_INFO_MEMBER(0, | |
| 22 | 21 | code, |
| 23 | 2 * | |
| 22 | 2 * | |
| 24 | 23 | 0); |
| 25 | 24 | } |
| 26 | 25 | |
| 27 | 26 | |
| 28 | ||
| 27 | ||
| 29 | 28 | { |
| 30 | kyugo_state *state = machine.driver_data<kyugo_state>(); | |
| 31 | int code = state->m_bgvideoram[tile_index]; | |
| 32 | int attr = state->m_bgattribram[tile_index]; | |
| 33 | SET_TILE_INFO(1, | |
| 29 | int code = m_bgvideoram[tile_index]; | |
| 30 | int attr = m_bgattribram[tile_index]; | |
| 31 | SET_TILE_INFO_MEMBER(1, | |
| 34 | 32 | code | ((attr & 0x03) << 8), |
| 35 | (attr >> 4) | ( | |
| 33 | (attr >> 4) | ( | |
| 36 | 34 | TILE_FLIPYX((attr & 0x0c) >> 2)); |
| 37 | 35 | } |
| 38 | 36 | |
| r17673 | r17674 | |
| 49 | 47 | |
| 50 | 48 | state->m_color_codes = state->memregion("proms")->base() + 0x300; |
| 51 | 49 | |
| 52 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 53 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 50 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(kyugo_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 51 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(kyugo_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 54 | 52 | |
| 55 | 53 | state->m_fg_tilemap->set_transparent_pen(0); |
| 56 | 54 |
| r17673 | r17674 | |
|---|---|---|
| 233 | 233 | popeye_bitmap_w(space,offset,data); |
| 234 | 234 | } |
| 235 | 235 | |
| 236 | ||
| 236 | ||
| 237 | 237 | { |
| 238 | popeye_state *state = machine.driver_data<popeye_state>(); | |
| 239 | int code = state->m_videoram[tile_index]; | |
| 240 | int color = state->m_colorram[tile_index] & 0x0f; | |
| 238 | int code = m_videoram[tile_index]; | |
| 239 | int color = m_colorram[tile_index] & 0x0f; | |
| 241 | 240 | |
| 242 | SET_TILE_INFO(0, code, color, 0); | |
| 241 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 243 | 242 | } |
| 244 | 243 | |
| 245 | 244 | VIDEO_START( skyskipr ) |
| r17673 | r17674 | |
| 250 | 249 | |
| 251 | 250 | state->m_bitmap_type = TYPE_SKYSKIPR; |
| 252 | 251 | |
| 253 | state->m_fg_tilemap = tilemap | |
| 252 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(popeye_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 254 | 253 | state->m_fg_tilemap->set_transparent_pen(0); |
| 255 | 254 | |
| 256 | 255 | state->m_lastflip = 0; |
| r17673 | r17674 | |
| 268 | 267 | |
| 269 | 268 | state->m_bitmap_type = TYPE_POPEYE; |
| 270 | 269 | |
| 271 | state->m_fg_tilemap = tilemap | |
| 270 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(popeye_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 272 | 271 | state->m_fg_tilemap->set_transparent_pen(0); |
| 273 | 272 | |
| 274 | 273 | state->m_lastflip = 0; |
| r17673 | r17674 | |
|---|---|---|
| 17 | 17 | m_bg_tilemap->mark_tile_dirty(offset & 0x3ff); |
| 18 | 18 | } |
| 19 | 19 | |
| 20 | ||
| 20 | ||
| 21 | 21 | { |
| 22 | _4enraya_state *state = machine.driver_data<_4enraya_state>(); | |
| 23 | 22 | |
| 24 | int code = state->m_videoram[tile_index * 2] + (state->m_videoram[tile_index * 2 + 1] << 8); | |
| 25 | SET_TILE_INFO( | |
| 23 | int code = m_videoram[tile_index * 2] + (m_videoram[tile_index * 2 + 1] << 8); | |
| 24 | SET_TILE_INFO_MEMBER( | |
| 26 | 25 | 0, |
| 27 | 26 | code, |
| 28 | 27 | 0, |
| r17673 | r17674 | |
| 33 | 32 | { |
| 34 | 33 | _4enraya_state *state = machine.driver_data<_4enraya_state>(); |
| 35 | 34 | |
| 36 | state->m_bg_tilemap = tilemap | |
| 35 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(_4enraya_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 37 | 36 | } |
| 38 | 37 | |
| 39 | 38 | SCREEN_UPDATE_IND16( 4enraya ) |
| r17673 | r17674 | |
|---|---|---|
| 13 | 13 | } |
| 14 | 14 | } |
| 15 | 15 | |
| 16 | ||
| 16 | ||
| 17 | 17 | { |
| 18 | blockade_state *state = machine.driver_data<blockade_state>(); | |
| 19 | int code = state->m_videoram[tile_index]; | |
| 18 | int code = m_videoram[tile_index]; | |
| 20 | 19 | |
| 21 | SET_TILE_INFO(0, code, 0, 0); | |
| 20 | SET_TILE_INFO_MEMBER(0, code, 0, 0); | |
| 22 | 21 | } |
| 23 | 22 | |
| 24 | 23 | VIDEO_START( blockade ) |
| 25 | 24 | { |
| 26 | 25 | blockade_state *state = machine.driver_data<blockade_state>(); |
| 27 | state->m_bg_tilemap = tilemap | |
| 26 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blockade_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 28 | 27 | } |
| 29 | 28 | |
| 30 | 29 | SCREEN_UPDATE_IND16( blockade ) |
| r17673 | r17674 | |
|---|---|---|
| 46 | 46 | m_bg_tilemap->mark_tile_dirty(offset / 2); |
| 47 | 47 | } |
| 48 | 48 | |
| 49 | ||
| 49 | ||
| 50 | 50 | { |
| 51 | compgolf_state *state = machine.driver_data<compgolf_state>(); | |
| 52 | 51 | tile_index <<= 1; |
| 53 | SET_TILE_INFO(2, | |
| 52 | SET_TILE_INFO_MEMBER(2, | |
| 54 | 53 | } |
| 55 | 54 | |
| 56 | ||
| 55 | ||
| 57 | 56 | { |
| 58 | 57 | /* logical (col,row) -> memory offset */ |
| 59 | 58 | return (col & 0x0f) + ((row & 0x0f) << 4) + ((col & 0x10) << 4) + ((row & 0x10) << 5); |
| 60 | 59 | } |
| 61 | 60 | |
| 62 | ||
| 61 | ||
| 63 | 62 | { |
| 64 | compgolf_state *state = machine.driver_data<compgolf_state>(); | |
| 65 | int attr = state->m_bg_ram[tile_index * 2]; | |
| 66 | int code = state->m_bg_ram[tile_index * 2 + 1] + ((attr & 1) << 8); | |
| 63 | int attr = m_bg_ram[tile_index * 2]; | |
| 64 | int code = m_bg_ram[tile_index * 2 + 1] + ((attr & 1) << 8); | |
| 67 | 65 | int color = (attr & 0x3e) >> 1; |
| 68 | 66 | |
| 69 | SET_TILE_INFO(1, code, color, 0); | |
| 67 | SET_TILE_INFO_MEMBER(1, code, color, 0); | |
| 70 | 68 | } |
| 71 | 69 | |
| 72 | 70 | VIDEO_START( compgolf ) |
| 73 | 71 | { |
| 74 | 72 | compgolf_state *state = machine.driver_data<compgolf_state>(); |
| 75 | state->m_bg_tilemap = tilemap_create(machine, get_back_info, back_scan, 16, 16, 32, 32); | |
| 76 | state->m_text_tilemap = tilemap_create(machine, get_text_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 73 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(compgolf_state::get_back_info),state), tilemap_mapper_delegate(FUNC(compgolf_state::back_scan),state), 16, 16, 32, 32); | |
| 74 | state->m_text_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(compgolf_state::get_text_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 77 | 75 | |
| 78 | 76 | state->m_text_tilemap->set_transparent_pen(0); |
| 79 | 77 | } |
| r17673 | r17674 | |
|---|---|---|
| 70 | 70 | SET_TILE_INFO( _N_, code, ((attr & 0x0030) >> 4) + 0x10 + 0x4 * ((_N_ + 1) & 3) + pri*0x800/0x40, TILE_FLIPXY(attr >> 14)); |
| 71 | 71 | } |
| 72 | 72 | |
| 73 | static TILE_GET_INFO( get_tile_info_0 ) { get_tile_info(machine, tileinfo, tile_index, 0); } | |
| 74 | static TILE_GET_INFO( get_tile_info_1 ) { get_tile_info(machine, tileinfo, tile_index, 1); } | |
| 75 | static TILE_GET_INFO( get_tile_info_2 ) { get_tile_info(machine, tileinfo, tile_index, 2); } | |
| 76 | static TILE_GET_INFO( get_tile_info_3 ) { get_tile_info(machine, tileinfo, tile_index, 3); } | |
| 73 | TILE_GET_INFO_MEMBER(lordgun_state::get_tile_info_0){ get_tile_info(machine(), tileinfo, tile_index, 0); } | |
| 74 | TILE_GET_INFO_MEMBER(lordgun_state::get_tile_info_1){ get_tile_info(machine(), tileinfo, tile_index, 1); } | |
| 75 | TILE_GET_INFO_MEMBER(lordgun_state::get_tile_info_2){ get_tile_info(machine(), tileinfo, tile_index, 2); } | |
| 76 | TILE_GET_INFO_MEMBER(lordgun_state::get_tile_info_3){ get_tile_info(machine(), tileinfo, tile_index, 3); } | |
| 77 | 77 | |
| 78 | 78 | INLINE void lordgun_vram_w(address_space *space, offs_t offset, UINT16 data, UINT16 mem_mask, int _N_) |
| 79 | 79 | { |
| r17673 | r17674 | |
| 102 | 102 | int h = machine.primary_screen->height(); |
| 103 | 103 | |
| 104 | 104 | // 0x800 x 200 |
| 105 | state->m_tilemap[0] = tilemap_create( machine, get_tile_info_0, TILEMAP_SCAN_ROWS, | |
| 106 | 8,8, 0x100, 0x40 ); | |
| 105 | state->m_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lordgun_state::get_tile_info_0),state), TILEMAP_SCAN_ROWS,8,8, 0x100, 0x40 ); | |
| 107 | 106 | |
| 108 | 107 | // 0x800 x 200 |
| 109 | state->m_tilemap[1] = tilemap_create( machine, get_tile_info_1, TILEMAP_SCAN_ROWS, | |
| 110 | 16,16, 0x80,0x20 ); | |
| 108 | state->m_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lordgun_state::get_tile_info_1),state), TILEMAP_SCAN_ROWS,16,16, 0x80,0x20 ); | |
| 111 | 109 | |
| 112 | 110 | // 0x800 x 200 |
| 113 | state->m_tilemap[2] = tilemap_create( machine, get_tile_info_2, TILEMAP_SCAN_ROWS, | |
| 114 | 32,32, 0x40,0x10 ); | |
| 111 | state->m_tilemap[2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lordgun_state::get_tile_info_2),state), TILEMAP_SCAN_ROWS,32,32, 0x40,0x10 ); | |
| 115 | 112 | |
| 116 | 113 | // 0x200 x 100 |
| 117 | state->m_tilemap[3] = tilemap_create( machine, get_tile_info_3, TILEMAP_SCAN_ROWS, | |
| 118 | 8,8, 0x40,0x20 ); | |
| 114 | state->m_tilemap[3] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lordgun_state::get_tile_info_3),state), TILEMAP_SCAN_ROWS,8,8, 0x40,0x20 ); | |
| 119 | 115 | |
| 120 | 116 | state->m_tilemap[0]->set_scroll_rows(1); |
| 121 | 117 | state->m_tilemap[0]->set_scroll_cols(1); |
| r17673 | r17674 | |
|---|---|---|
| 21 | 21 | m_zz_tilemap->mark_all_dirty(); |
| 22 | 22 | } |
| 23 | 23 | |
| 24 | ||
| 24 | ||
| 25 | 25 | { |
| 26 | zerozone_state *state = machine.driver_data<zerozone_state>(); | |
| 27 | int tileno = state->m_vram[tile_index] & 0x07ff; | |
| 28 | int colour = state->m_vram[tile_index] & 0xf000; | |
| 26 | int tileno = m_vram[tile_index] & 0x07ff; | |
| 27 | int colour = m_vram[tile_index] & 0xf000; | |
| 29 | 28 | |
| 30 | if (state->m_vram[tile_index] & 0x0800) | |
| 31 | tileno += state->m_tilebank * 0x800; | |
| 29 | if (m_vram[tile_index] & 0x0800) | |
| 30 | tileno += m_tilebank * 0x800; | |
| 32 | 31 | |
| 33 | SET_TILE_INFO(0, tileno, colour >> 12, 0); | |
| 32 | SET_TILE_INFO_MEMBER(0, tileno, colour >> 12, 0); | |
| 34 | 33 | } |
| 35 | 34 | |
| 36 | 35 | void zerozone_state::video_start() |
| 37 | 36 | { |
| 38 | 37 | // i'm not 100% sure it should be opaque, pink title screen looks strange in las vegas girls |
| 39 | 38 | // but if its transparent other things look incorrect |
| 40 | m_zz_tilemap = tilemap | |
| 39 | m_zz_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(zerozone_state::get_zerozone_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 64, 32); | |
| 41 | 40 | } |
| 42 | 41 | |
| 43 | 42 | UINT32 zerozone_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| r17673 | r17674 | |
|---|---|---|
| 18 | 18 | |
| 19 | 19 | /******************************************************************************/ |
| 20 | 20 | |
| 21 | ||
| 21 | ||
| 22 | 22 | { |
| 23 | lemmings_state *state = machine.driver_data<lemmings_state>(); | |
| 24 | UINT16 tile = state->m_vram_data[tile_index]; | |
| 23 | UINT16 tile = m_vram_data[tile_index]; | |
| 25 | 24 | |
| 26 | SET_TILE_INFO( | |
| 25 | SET_TILE_INFO_MEMBER( | |
| 27 | 26 | 2, |
| 28 | 27 | tile&0x7ff, |
| 29 | 28 | (tile>>12)&0xf, |
| r17673 | r17674 | |
| 33 | 32 | VIDEO_START( lemmings ) |
| 34 | 33 | { |
| 35 | 34 | lemmings_state *state = machine.driver_data<lemmings_state>(); |
| 36 | state->m_vram_tilemap = tilemap | |
| 35 | state->m_vram_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lemmings_state::get_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 64, 32); | |
| 37 | 36 | |
| 38 | 37 | state->m_vram_tilemap->set_transparent_pen(0); |
| 39 | 38 | state->m_bitmap0.fill(0x100); |
| r17673 | r17674 | |
|---|---|---|
| 7 | 7 | |
| 8 | 8 | ***************************************************************************/ |
| 9 | 9 | |
| 10 | ||
| 10 | ||
| 11 | 11 | { |
| 12 | 12 | /* logical (col,row) -> memory offset */ |
| 13 | 13 | return ((col & 0x7)) + ((7 - (row & 0x7)) << 3) + ((col & 0x78) << 3) + ((0x38 - (row & 0x38)) << 7); |
| 14 | 14 | } |
| 15 | 15 | |
| 16 | ||
| 16 | ||
| 17 | 17 | { |
| 18 | UINT8 *bg_map = machine.root_device().memregion("gfx4")->base(); | |
| 18 | UINT8 *bg_map = machine().root_device().memregion("gfx4")->base(); | |
| 19 | 19 | int tile; |
| 20 | 20 | |
| 21 | 21 | tile = bg_map[tile_index << 1] + (bg_map[(tile_index << 1) + 1] << 8); |
| 22 | SET_TILE_INFO( | |
| 22 | SET_TILE_INFO_MEMBER( | |
| 23 | 23 | 2, |
| 24 | 24 | (tile & 0xff) | ((tile & 0x4000) >> 6), |
| 25 | 25 | (tile >> 8) & 0xf, |
| 26 | 26 | (tile & 0x2000) ? TILE_FLIPX : 0); |
| 27 | 27 | } |
| 28 | 28 | |
| 29 | ||
| 29 | ||
| 30 | 30 | { |
| 31 | pushman_state *state = machine.driver_data<pushman_state>(); | |
| 32 | 31 | |
| 33 | int tile = state->m_videoram[tile_index]; | |
| 34 | SET_TILE_INFO( | |
| 32 | int tile = m_videoram[tile_index]; | |
| 33 | SET_TILE_INFO_MEMBER( | |
| 35 | 34 | 0, |
| 36 | 35 | (tile & 0xff) | ((tile & 0xc000) >> 6) | ((tile & 0x2000) >> 3), |
| 37 | 36 | (tile >> 8) & 0xf, |
| r17673 | r17674 | |
| 50 | 49 | { |
| 51 | 50 | pushman_state *state = machine.driver_data<pushman_state>(); |
| 52 | 51 | |
| 53 | state->m_bg_tilemap = tilemap_create(machine, get_back_tile_info, background_scan_rows, 32, 32, 128, 64); | |
| 54 | state->m_tx_tilemap = tilemap_create(machine, get_text_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 52 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pushman_state::get_back_tile_info),state), tilemap_mapper_delegate(FUNC(pushman_state::background_scan_rows),state), 32, 32, 128, 64); | |
| 53 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pushman_state::get_text_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 55 | 54 | |
| 56 | 55 | state->m_tx_tilemap->set_transparent_pen(3); |
| 57 | 56 | } |
| r17673 | r17674 | |
|---|---|---|
| 66 | 66 | |
| 67 | 67 | ***************************************************************************/ |
| 68 | 68 | |
| 69 | ||
| 69 | ||
| 70 | 70 | { |
| 71 | espial_state *state = machine.driver_data<espial_state>(); | |
| 72 | UINT8 code = state->m_videoram[tile_index]; | |
| 73 | UINT8 col = state->m_colorram[tile_index]; | |
| 74 | UINT8 attr = state->m_attributeram[tile_index]; | |
| 75 | SET_TILE_INFO(0, | |
| 71 | UINT8 code = m_videoram[tile_index]; | |
| 72 | UINT8 col = m_colorram[tile_index]; | |
| 73 | UINT8 attr = m_attributeram[tile_index]; | |
| 74 | SET_TILE_INFO_MEMBER(0, | |
| 76 | 75 | code | ((attr & 0x03) << 8), |
| 77 | 76 | col & 0x3f, |
| 78 | 77 | TILE_FLIPYX(attr >> 2)); |
| r17673 | r17674 | |
| 90 | 89 | { |
| 91 | 90 | espial_state *state = machine.driver_data<espial_state>(); |
| 92 | 91 | |
| 93 | state->m_bg_tilemap = tilemap | |
| 92 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(espial_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 94 | 93 | state->m_bg_tilemap->set_scroll_cols(32); |
| 95 | 94 | |
| 96 | 95 | state->save_item(NAME(state->m_flipscreen)); |
| r17673 | r17674 | |
| 101 | 100 | espial_state *state = machine.driver_data<espial_state>(); |
| 102 | 101 | |
| 103 | 102 | /* Net Wars has a tile map that's twice as big as Espial's */ |
| 104 | state->m_bg_tilemap = tilemap | |
| 103 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(espial_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 64); | |
| 105 | 104 | |
| 106 | 105 | state->m_bg_tilemap->set_scroll_cols(32); |
| 107 | 106 | state->m_bg_tilemap->set_scrolldy(0, 0x100); |
| r17673 | r17674 | |
|---|---|---|
| 111 | 111 | } |
| 112 | 112 | } |
| 113 | 113 | |
| 114 | ||
| 114 | ||
| 115 | 115 | { |
| 116 | hyperspt_state *state = machine.driver_data<hyperspt_state>(); | |
| 117 | int code = state->m_videoram[tile_index] + ((state->m_colorram[tile_index] & 0x80) << 1) + ((state->m_colorram[tile_index] & 0x40) << 3); | |
| 118 | int color = state->m_colorram[tile_index] & 0x0f; | |
| 119 | int flags = ((state->m_colorram[tile_index] & 0x10) ? TILE_FLIPX : 0) | ((state->m_colorram[tile_index] & 0x20) ? TILE_FLIPY : 0); | |
| 116 | int code = m_videoram[tile_index] + ((m_colorram[tile_index] & 0x80) << 1) + ((m_colorram[tile_index] & 0x40) << 3); | |
| 117 | int color = m_colorram[tile_index] & 0x0f; | |
| 118 | int flags = ((m_colorram[tile_index] & 0x10) ? TILE_FLIPX : 0) | ((m_colorram[tile_index] & 0x20) ? TILE_FLIPY : 0); | |
| 120 | 119 | |
| 121 | SET_TILE_INFO(1, code, color, flags); | |
| 120 | SET_TILE_INFO_MEMBER(1, code, color, flags); | |
| 122 | 121 | } |
| 123 | 122 | |
| 124 | 123 | VIDEO_START( hyperspt ) |
| 125 | 124 | { |
| 126 | 125 | hyperspt_state *state = machine.driver_data<hyperspt_state>(); |
| 127 | 126 | |
| 128 | state->m_bg_tilemap = tilemap | |
| 127 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hyperspt_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 129 | 128 | state->m_bg_tilemap->set_scroll_rows(32); |
| 130 | 129 | } |
| 131 | 130 | |
| r17673 | r17674 | |
| 191 | 190 | } |
| 192 | 191 | |
| 193 | 192 | /* Road Fighter */ |
| 194 | ||
| 193 | ||
| 195 | 194 | { |
| 196 | hyperspt_state *state = machine.driver_data<hyperspt_state>(); | |
| 197 | int code = state->m_videoram[tile_index] + ((state->m_colorram[tile_index] & 0x80) << 1) + ((state->m_colorram[tile_index] & 0x60) << 4); | |
| 198 | int color = state->m_colorram[tile_index] & 0x0f; | |
| 199 | int flags = (state->m_colorram[tile_index] & 0x10) ? TILE_FLIPX : 0; | |
| 195 | int code = m_videoram[tile_index] + ((m_colorram[tile_index] & 0x80) << 1) + ((m_colorram[tile_index] & 0x60) << 4); | |
| 196 | int color = m_colorram[tile_index] & 0x0f; | |
| 197 | int flags = (m_colorram[tile_index] & 0x10) ? TILE_FLIPX : 0; | |
| 200 | 198 | |
| 201 | SET_TILE_INFO(1, code, color, flags); | |
| 199 | SET_TILE_INFO_MEMBER(1, code, color, flags); | |
| 202 | 200 | } |
| 203 | 201 | |
| 204 | 202 | VIDEO_START( roadf ) |
| 205 | 203 | { |
| 206 | 204 | hyperspt_state *state = machine.driver_data<hyperspt_state>(); |
| 207 | 205 | |
| 208 | state->m_bg_tilemap = tilemap | |
| 206 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hyperspt_state::roadf_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 209 | 207 | state->m_bg_tilemap->set_scroll_rows(32); |
| 210 | 208 | } |
| r17673 | r17674 | |
|---|---|---|
| 111 | 111 | } |
| 112 | 112 | } |
| 113 | 113 | |
| 114 | ||
| 114 | ||
| 115 | 115 | { |
| 116 | tiamc1_state *state = machine.driver_data<tiamc1_state>(); | |
| 117 | SET_TILE_INFO(0, state->m_tileram[tile_index], 0, 0); | |
| 116 | SET_TILE_INFO_MEMBER(0, m_tileram[tile_index], 0, 0); | |
| 118 | 117 | } |
| 119 | 118 | |
| 120 | ||
| 119 | ||
| 121 | 120 | { |
| 122 | tiamc1_state *state = machine.driver_data<tiamc1_state>(); | |
| 123 | SET_TILE_INFO(0, state->m_tileram[tile_index + 1024], 0, 0); | |
| 121 | SET_TILE_INFO_MEMBER(0, m_tileram[tile_index + 1024], 0, 0); | |
| 124 | 122 | } |
| 125 | 123 | |
| 126 | 124 | VIDEO_START( tiamc1 ) |
| r17673 | r17674 | |
| 140 | 138 | |
| 141 | 139 | state_save_register_global_pointer(machine, video_ram, 0x3040); |
| 142 | 140 | |
| 143 | state->m_bg_tilemap1 = tilemap | |
| 141 | state->m_bg_tilemap1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tiamc1_state::get_bg1_tile_info),state), TILEMAP_SCAN_ROWS, | |
| 144 | 142 | 8, 8, 32, 32); |
| 145 | 143 | |
| 146 | state->m_bg_tilemap2 = tilemap | |
| 144 | state->m_bg_tilemap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tiamc1_state::get_bg2_tile_info),state), TILEMAP_SCAN_ROWS, | |
| 147 | 145 | 8, 8, 32, 32); |
| 148 | 146 | |
| 149 | 147 | state->m_bg_vshift = 0; |
| r17673 | r17674 | |
|---|---|---|
| 136 | 136 | |
| 137 | 137 | ***************************************************************************/ |
| 138 | 138 | |
| 139 | ||
| 139 | ||
| 140 | 140 | { |
| 141 | toaplan1_state *state = machine.driver_data<toaplan1_state>(); | |
| 142 | 141 | int color, tile_number, attrib; |
| 143 | 142 | |
| 144 | tile_number = state->m_pf1_tilevram16[2*tile_index+1] & 0x7fff; | |
| 145 | attrib = state->m_pf1_tilevram16[2*tile_index]; | |
| 143 | tile_number = m_pf1_tilevram16[2*tile_index+1] & 0x7fff; | |
| 144 | attrib = m_pf1_tilevram16[2*tile_index]; | |
| 146 | 145 | color = attrib & 0x3f; |
| 147 | SET_TILE_INFO( | |
| 146 | SET_TILE_INFO_MEMBER( | |
| 148 | 147 | 0, |
| 149 | 148 | tile_number, |
| 150 | 149 | color, |
| 151 | 150 | 0); |
| 152 | if ( | |
| 151 | if ( | |
| 153 | 152 | tileinfo.category = (attrib & 0xf000) >> 12; |
| 154 | 153 | } |
| 155 | 154 | |
| 156 | ||
| 155 | ||
| 157 | 156 | { |
| 158 | toaplan1_state *state = machine.driver_data<toaplan1_state>(); | |
| 159 | 157 | int color, tile_number, attrib; |
| 160 | 158 | |
| 161 | tile_number = state->m_pf2_tilevram16[2*tile_index+1] & 0x7fff; | |
| 162 | attrib = state->m_pf2_tilevram16[2*tile_index]; | |
| 159 | tile_number = m_pf2_tilevram16[2*tile_index+1] & 0x7fff; | |
| 160 | attrib = m_pf2_tilevram16[2*tile_index]; | |
| 163 | 161 | color = attrib & 0x3f; |
| 164 | SET_TILE_INFO( | |
| 162 | SET_TILE_INFO_MEMBER( | |
| 165 | 163 | 0, |
| 166 | 164 | tile_number, |
| 167 | 165 | color, |
| 168 | 166 | 0); |
| 169 | if ( | |
| 167 | if ( | |
| 170 | 168 | tileinfo.category = (attrib & 0xf000) >> 12; |
| 171 | 169 | } |
| 172 | 170 | |
| 173 | ||
| 171 | ||
| 174 | 172 | { |
| 175 | toaplan1_state *state = machine.driver_data<toaplan1_state>(); | |
| 176 | 173 | int color, tile_number, attrib; |
| 177 | 174 | |
| 178 | tile_number = state->m_pf3_tilevram16[2*tile_index+1] & 0x7fff; | |
| 179 | attrib = state->m_pf3_tilevram16[2*tile_index]; | |
| 175 | tile_number = m_pf3_tilevram16[2*tile_index+1] & 0x7fff; | |
| 176 | attrib = m_pf3_tilevram16[2*tile_index]; | |
| 180 | 177 | color = attrib & 0x3f; |
| 181 | SET_TILE_INFO( | |
| 178 | SET_TILE_INFO_MEMBER( | |
| 182 | 179 | 0, |
| 183 | 180 | tile_number, |
| 184 | 181 | color, |
| 185 | 182 | 0); |
| 186 | if ( | |
| 183 | if ( | |
| 187 | 184 | tileinfo.category = (attrib & 0xf000) >> 12; |
| 188 | 185 | } |
| 189 | 186 | |
| 190 | ||
| 187 | ||
| 191 | 188 | { |
| 192 | toaplan1_state *state = machine.driver_data<toaplan1_state>(); | |
| 193 | 189 | int color, tile_number, attrib; |
| 194 | 190 | |
| 195 | tile_number = state->m_pf4_tilevram16[2*tile_index+1] & 0x7fff; | |
| 196 | attrib = state->m_pf4_tilevram16[2*tile_index]; | |
| 191 | tile_number = m_pf4_tilevram16[2*tile_index+1] & 0x7fff; | |
| 192 | attrib = m_pf4_tilevram16[2*tile_index]; | |
| 197 | 193 | color = attrib & 0x3f; |
| 198 | SET_TILE_INFO( | |
| 194 | SET_TILE_INFO_MEMBER( | |
| 199 | 195 | 0, |
| 200 | 196 | tile_number, |
| 201 | 197 | color, |
| 202 | 198 | 0); |
| 203 | if ( | |
| 199 | if ( | |
| 204 | 200 | tileinfo.category = (attrib & 0xf000) >> 12; |
| 205 | 201 | } |
| 206 | 202 | |
| r17673 | r17674 | |
| 214 | 210 | { |
| 215 | 211 | toaplan1_state *state = machine.driver_data<toaplan1_state>(); |
| 216 | 212 | |
| 217 | state->m_pf1_tilemap = tilemap_create(machine, get_pf1_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 218 | state->m_pf2_tilemap = tilemap_create(machine, get_pf2_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 219 | state->m_pf3_tilemap = tilemap_create(machine, get_pf3_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 220 | state->m_pf4_tilemap = tilemap_create(machine, get_pf4_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 213 | state->m_pf1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(toaplan1_state::get_pf1_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 214 | state->m_pf2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(toaplan1_state::get_pf2_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 215 | state->m_pf3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(toaplan1_state::get_pf3_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 216 | state->m_pf4_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(toaplan1_state::get_pf4_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 221 | 217 | |
| 222 | 218 | state->m_pf1_tilemap->set_transparent_pen(0); |
| 223 | 219 | state->m_pf2_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 150 | 150 | * |
| 151 | 151 | *************************************/ |
| 152 | 152 | |
| 153 | ||
| 153 | ||
| 154 | 154 | { |
| 155 | segag80r_state *state = machine.driver_data<segag80r_state>(); | |
| 156 | int code = state->memregion("gfx2")->base()[tile_index + 0x1000 * (state->m_spaceod_bg_control >> 6)]; | |
| 157 | SET_TILE_INFO(1, code + 0x100 * ((state->m_spaceod_bg_control >> 2) & 1), 0, 0); | |
| 155 | int code = memregion("gfx2")->base()[tile_index + 0x1000 * (m_spaceod_bg_control >> 6)]; | |
| 156 | SET_TILE_INFO_MEMBER(1, code + 0x100 * ((m_spaceod_bg_control >> 2) & 1), 0, 0); | |
| 158 | 157 | } |
| 159 | 158 | |
| 160 | 159 | |
| 161 | ||
| 160 | ||
| 162 | 161 | { |
| 163 | 162 | /* this works for both horizontal and vertical tilemaps */ |
| 164 | 163 | /* which are 4 32x32 sections */ |
| r17673 | r17674 | |
| 166 | 165 | } |
| 167 | 166 | |
| 168 | 167 | |
| 169 | ||
| 168 | ||
| 170 | 169 | { |
| 171 | segag80r_state *state = machine.driver_data<segag80r_state>(); | |
| 172 | int code = state->memregion("gfx2")->base()[tile_index]; | |
| 173 | SET_TILE_INFO(1, code + 0x100 * state->m_bg_char_bank, code >> 4, 0); | |
| 170 | int code = memregion("gfx2")->base()[tile_index]; | |
| 171 | SET_TILE_INFO_MEMBER(1, code + 0x100 * m_bg_char_bank, code >> 4, 0); | |
| 174 | 172 | } |
| 175 | 173 | |
| 176 | 174 | |
| r17673 | r17674 | |
| 210 | 208 | /* and one vertically scrolling */ |
| 211 | 209 | case G80_BACKGROUND_SPACEOD: |
| 212 | 210 | spaceod_bg_init_palette(machine); |
| 213 | state->m_spaceod_bg_htilemap = tilemap_create(machine, spaceod_get_tile_info, spaceod_scan_rows, 8,8, 128,32); | |
| 214 | state->m_spaceod_bg_vtilemap = tilemap_create(machine, spaceod_get_tile_info, spaceod_scan_rows, 8,8, 32,128); | |
| 211 | state->m_spaceod_bg_htilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(segag80r_state::spaceod_get_tile_info),state), tilemap_mapper_delegate(FUNC(segag80r_state::spaceod_scan_rows),state), 8,8, 128,32); | |
| 212 | state->m_spaceod_bg_vtilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(segag80r_state::spaceod_get_tile_info),state), tilemap_mapper_delegate(FUNC(segag80r_state::spaceod_scan_rows),state), 8,8, 32,128); | |
| 215 | 213 | break; |
| 216 | 214 | |
| 217 | 215 | /* background tilemap is effectively 1 screen x n screens */ |
| 218 | 216 | case G80_BACKGROUND_MONSTERB: |
| 219 | state->m_bg_tilemap = tilemap | |
| 217 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(segag80r_state::bg_get_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 32,machine.root_device().memregion("gfx2")->bytes() / 32); | |
| 220 | 218 | break; |
| 221 | 219 | |
| 222 | 220 | /* background tilemap is effectively 4 screens x n screens */ |
| 223 | 221 | case G80_BACKGROUND_PIGNEWT: |
| 224 | 222 | case G80_BACKGROUND_SINDBADM: |
| 225 | state->m_bg_tilemap = tilemap | |
| 223 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(segag80r_state::bg_get_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 128,machine.root_device().memregion("gfx2")->bytes() / 128); | |
| 226 | 224 | break; |
| 227 | 225 | } |
| 228 | 226 |
| r17673 | r17674 | |
|---|---|---|
| 2 | 2 | #include "video/konicdev.h" |
| 3 | 3 | #include "includes/tmnt.h" |
| 4 | 4 | |
| 5 | ||
| 5 | ||
| 6 | 6 | { |
| 7 | tmnt_state *state = machine.driver_data<tmnt_state>(); | |
| 8 | UINT8 *rom = state->memregion("user1")->base(); | |
| 7 | UINT8 *rom = memregion("user1")->base(); | |
| 9 | 8 | int code; |
| 10 | 9 | |
| 11 | tile_index += 0x40000 * | |
| 10 | tile_index += 0x40000 * | |
| 12 | 11 | |
| 13 | 12 | code = rom[tile_index + 0x80000] + 256 * rom[tile_index] + 256 * 256 * ((rom[tile_index / 4 + 0x100000] >> (2 * (tile_index & 3))) & 3); |
| 14 | 13 | |
| 15 | SET_TILE_INFO(0, code & 0x3fff, code >> 14, 0); | |
| 14 | SET_TILE_INFO_MEMBER(0, code & 0x3fff, code >> 14, 0); | |
| 16 | 15 | } |
| 17 | 16 | |
| 18 | ||
| 17 | ||
| 19 | 18 | { |
| 20 | UINT8 *rom = machine.root_device().memregion("user1")->base(); | |
| 19 | UINT8 *rom = machine().root_device().memregion("user1")->base(); | |
| 21 | 20 | int code = rom[tile_index + 0x20000] + 256 * rom[tile_index]; |
| 22 | 21 | |
| 23 | SET_TILE_INFO(0, code & 0x1fff, code >> 13, 0); | |
| 22 | SET_TILE_INFO_MEMBER(0, code & 0x1fff, code >> 13, 0); | |
| 24 | 23 | } |
| 25 | 24 | |
| 26 | 25 | |
| r17673 | r17674 | |
| 274 | 273 | { |
| 275 | 274 | tmnt_state *state = machine.driver_data<tmnt_state>(); |
| 276 | 275 | |
| 277 | state->m_roz_tilemap = tilemap | |
| 276 | state->m_roz_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tmnt_state::glfgreat_get_roz_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 512, 512); | |
| 278 | 277 | state->m_roz_tilemap->set_transparent_pen(0); |
| 279 | 278 | |
| 280 | 279 | state->m_glfgreat_roz_rom_bank = 0; |
| r17673 | r17674 | |
| 289 | 288 | { |
| 290 | 289 | tmnt_state *state = machine.driver_data<tmnt_state>(); |
| 291 | 290 | |
| 292 | state->m_roz_tilemap = tilemap | |
| 291 | state->m_roz_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tmnt_state::prmrsocr_get_roz_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 512, 256); | |
| 293 | 292 | state->m_roz_tilemap->set_transparent_pen(0); |
| 294 | 293 | |
| 295 | 294 | state->m_prmrsocr_sprite_bank = 0; |
| r17673 | r17674 | |
|---|---|---|
| 99 | 99 | colortable_entry_set_value(machine.colortable, 0x31, 0x30); |
| 100 | 100 | } |
| 101 | 101 | |
| 102 | ||
| 102 | ||
| 103 | 103 | { |
| 104 | zodiack_state *state = machine.driver_data<zodiack_state>(); | |
| 105 | 104 | |
| 106 | int code = state->m_videoram_2[tile_index]; | |
| 107 | int color = (state->m_attributeram[2 * (tile_index % 32) + 1] >> 4) & 0x07; | |
| 105 | int code = m_videoram_2[tile_index]; | |
| 106 | int color = (m_attributeram[2 * (tile_index % 32) + 1] >> 4) & 0x07; | |
| 108 | 107 | |
| 109 | SET_TILE_INFO(0, code, color, 0); | |
| 108 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 110 | 109 | } |
| 111 | 110 | |
| 112 | ||
| 111 | ||
| 113 | 112 | { |
| 114 | zodiack_state *state = machine.driver_data<zodiack_state>(); | |
| 115 | 113 | |
| 116 | int code = state->m_videoram[tile_index]; | |
| 117 | int color = state->m_attributeram[2 * (tile_index % 32) + 1] & 0x07; | |
| 114 | int code = m_videoram[tile_index]; | |
| 115 | int color = m_attributeram[2 * (tile_index % 32) + 1] & 0x07; | |
| 118 | 116 | |
| 119 | SET_TILE_INFO(3, code, color, 0); | |
| 117 | SET_TILE_INFO_MEMBER(3, code, color, 0); | |
| 120 | 118 | } |
| 121 | 119 | |
| 122 | 120 | void zodiack_state::video_start() |
| 123 | 121 | { |
| 124 | m_bg_tilemap = tilemap_create(machine(), get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 125 | m_fg_tilemap = tilemap_create(machine(), get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 122 | m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(zodiack_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 123 | m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(zodiack_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 126 | 124 | |
| 127 | 125 | m_fg_tilemap->set_transparent_pen(0); |
| 128 | 126 | m_fg_tilemap->set_scroll_cols(32); |
| r17673 | r17674 | |
|---|---|---|
| 13 | 13 | 16*64 |
| 14 | 14 | }; |
| 15 | 15 | |
| 16 | ||
| 16 | ||
| 17 | 17 | { |
| 18 | taitojc_state *state = machine.driver_data<taitojc_state>(); | |
| 19 | 18 | |
| 20 | UINT32 val = | |
| 19 | UINT32 val = | |
| 21 | 20 | int color = (val >> 22) & 0xff; |
| 22 | 21 | int tile = (val >> 2) & 0x7f; |
| 23 | SET_TILE_INFO( | |
| 22 | SET_TILE_INFO_MEMBER( | |
| 24 | 23 | } |
| 25 | 24 | |
| 26 | 25 | READ32_MEMBER(taitojc_state::taitojc_palette_r) |
| r17673 | r17674 | |
| 312 | 311 | |
| 313 | 312 | assert(state->m_gfx_index != MAX_GFX_ELEMENTS); |
| 314 | 313 | |
| 315 | state->m_tilemap = tilemap | |
| 314 | state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(taitojc_state::taitojc_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); | |
| 316 | 315 | |
| 317 | 316 | state->m_tilemap->set_transparent_pen(0); |
| 318 | 317 |
| r17673 | r17674 | |
|---|---|---|
| 21 | 21 | |
| 22 | 22 | |
| 23 | 23 | |
| 24 | ||
| 24 | ||
| 25 | 25 | { |
| 26 | pitnrun_state *state = machine.driver_data<pitnrun_state>(); | |
| 27 | UINT8 *videoram = state->m_videoram; | |
| 26 | UINT8 *videoram = m_videoram; | |
| 28 | 27 | int code; |
| 29 | 28 | code = videoram[tile_index]; |
| 30 | SET_TILE_INFO( | |
| 29 | SET_TILE_INFO_MEMBER( | |
| 31 | 30 | 0, |
| 32 | 31 | code, |
| 33 | 32 | 0, |
| 34 | 33 | 0); |
| 35 | 34 | } |
| 36 | 35 | |
| 37 | ||
| 36 | ||
| 38 | 37 | { |
| 39 | pitnrun_state *state = machine.driver_data<pitnrun_state>(); | |
| 40 | 38 | int code; |
| 41 | code = state->m_videoram2[tile_index]; | |
| 42 | SET_TILE_INFO( | |
| 39 | code = m_videoram2[tile_index]; | |
| 40 | SET_TILE_INFO_MEMBER( | |
| 43 | 41 | 1, |
| 44 | code + (state->m_char_bank<<8), | |
| 45 | state->m_color_select&1, | |
| 42 | code + (m_char_bank<<8), | |
| 43 | m_color_select&1, | |
| 46 | 44 | 0); |
| 47 | 45 | } |
| 48 | 46 | |
| r17673 | r17674 | |
| 165 | 163 | VIDEO_START(pitnrun) |
| 166 | 164 | { |
| 167 | 165 | pitnrun_state *state = machine.driver_data<pitnrun_state>(); |
| 168 | state->m_fg = tilemap_create( machine, get_tile_info1,TILEMAP_SCAN_ROWS,8,8,32,32 ); | |
| 169 | state->m_bg = tilemap_create( machine, get_tile_info2,TILEMAP_SCAN_ROWS,8,8,32*4,32 ); | |
| 166 | state->m_fg = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pitnrun_state::get_tile_info1),state),TILEMAP_SCAN_ROWS,8,8,32,32 ); | |
| 167 | state->m_bg = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pitnrun_state::get_tile_info2),state),TILEMAP_SCAN_ROWS,8,8,32*4,32 ); | |
| 170 | 168 | state->m_fg->set_transparent_pen(0 ); |
| 171 | 169 | state->m_tmp_bitmap[0] = auto_bitmap_ind16_alloc(machine,128,128); |
| 172 | 170 | state->m_tmp_bitmap[1] = auto_bitmap_ind16_alloc(machine,128,128); |
| r17673 | r17674 | |
|---|---|---|
| 62 | 62 | m_led1 = data; |
| 63 | 63 | } |
| 64 | 64 | |
| 65 | ||
| 65 | ||
| 66 | 66 | { |
| 67 | tehkanwc_state *state = machine.driver_data<tehkanwc_state>(); | |
| 68 | 67 | int offs = tile_index * 2; |
| 69 | int attr = state->m_videoram2[offs + 1]; | |
| 70 | int code = state->m_videoram2[offs] + ((attr & 0x30) << 4); | |
| 68 | int attr = m_videoram2[offs + 1]; | |
| 69 | int code = m_videoram2[offs] + ((attr & 0x30) << 4); | |
| 71 | 70 | int color = attr & 0x0f; |
| 72 | 71 | int flags = ((attr & 0x40) ? TILE_FLIPX : 0) | ((attr & 0x80) ? TILE_FLIPY : 0); |
| 73 | 72 | |
| 74 | SET_TILE_INFO(2, code, color, flags); | |
| 73 | SET_TILE_INFO_MEMBER(2, code, color, flags); | |
| 75 | 74 | } |
| 76 | 75 | |
| 77 | ||
| 76 | ||
| 78 | 77 | { |
| 79 | tehkanwc_state *state = machine.driver_data<tehkanwc_state>(); | |
| 80 | int attr = state->m_colorram[tile_index]; | |
| 81 | int code = state->m_videoram[tile_index] + ((attr & 0x10) << 4); | |
| 78 | int attr = m_colorram[tile_index]; | |
| 79 | int code = m_videoram[tile_index] + ((attr & 0x10) << 4); | |
| 82 | 80 | int color = attr & 0x0f; |
| 83 | 81 | int flags = ((attr & 0x40) ? TILE_FLIPX : 0) | ((attr & 0x80) ? TILE_FLIPY : 0); |
| 84 | 82 | |
| 85 | 83 | tileinfo.category = (attr & 0x20) ? 0 : 1; |
| 86 | 84 | |
| 87 | SET_TILE_INFO(0, code, color, flags); | |
| 85 | SET_TILE_INFO_MEMBER(0, code, color, flags); | |
| 88 | 86 | } |
| 89 | 87 | |
| 90 | 88 | VIDEO_START( tehkanwc ) |
| 91 | 89 | { |
| 92 | 90 | tehkanwc_state *state = machine.driver_data<tehkanwc_state>(); |
| 93 | state->m_bg_tilemap = tilemap | |
| 91 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tehkanwc_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, | |
| 94 | 92 | 16, 8, 32, 32); |
| 95 | 93 | |
| 96 | state->m_fg_tilemap = tilemap | |
| 94 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tehkanwc_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, | |
| 97 | 95 | 8, 8, 32, 32); |
| 98 | 96 | |
| 99 | 97 | state->m_fg_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 33 | 33 | |
| 34 | 34 | ***************************************************************************/ |
| 35 | 35 | |
| 36 | ||
| 36 | ||
| 37 | 37 | { |
| 38 | bionicc_state *state = machine.driver_data<bionicc_state>(); | |
| 39 | 38 | |
| 40 | int attr = state->m_bgvideoram[2 * tile_index + 1]; | |
| 41 | SET_TILE_INFO( | |
| 39 | int attr = m_bgvideoram[2 * tile_index + 1]; | |
| 40 | SET_TILE_INFO_MEMBER( | |
| 42 | 41 | 1, |
| 43 | ( | |
| 42 | ( | |
| 44 | 43 | (attr & 0x18) >> 3, |
| 45 | 44 | TILE_FLIPXY((attr & 0xc0) >> 6)); |
| 46 | 45 | } |
| 47 | 46 | |
| 48 | ||
| 47 | ||
| 49 | 48 | { |
| 50 | bionicc_state *state = machine.driver_data<bionicc_state>(); | |
| 51 | 49 | |
| 52 | int attr = | |
| 50 | int attr = | |
| 53 | 51 | int flags; |
| 54 | 52 | |
| 55 | 53 | if ((attr & 0xc0) == 0xc0) |
| r17673 | r17674 | |
| 65 | 63 | flags = TILE_FLIPXY((attr & 0xc0) >> 6); |
| 66 | 64 | } |
| 67 | 65 | |
| 68 | SET_TILE_INFO( | |
| 66 | SET_TILE_INFO_MEMBER( | |
| 69 | 67 | 2, |
| 70 | ( | |
| 68 | ( | |
| 71 | 69 | (attr & 0x18) >> 3, |
| 72 | 70 | flags); |
| 73 | 71 | } |
| 74 | 72 | |
| 75 | ||
| 73 | ||
| 76 | 74 | { |
| 77 | bionicc_state *state = machine.driver_data<bionicc_state>(); | |
| 78 | 75 | |
| 79 | int attr = state->m_txvideoram[tile_index + 0x400]; | |
| 80 | SET_TILE_INFO( | |
| 76 | int attr = m_txvideoram[tile_index + 0x400]; | |
| 77 | SET_TILE_INFO_MEMBER( | |
| 81 | 78 | 0, |
| 82 | ( | |
| 79 | ( | |
| 83 | 80 | attr & 0x3f, |
| 84 | 81 | 0); |
| 85 | 82 | } |
| r17673 | r17674 | |
| 96 | 93 | { |
| 97 | 94 | bionicc_state *state = machine.driver_data<bionicc_state>(); |
| 98 | 95 | |
| 99 | state->m_tx_tilemap = tilemap_create(machine, get_tx_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 100 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); | |
| 101 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 96 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bionicc_state::get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 97 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bionicc_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); | |
| 98 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bionicc_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 102 | 99 | |
| 103 | 100 | state->m_tx_tilemap->set_transparent_pen(3); |
| 104 | 101 | state->m_fg_tilemap->set_transmask(0, 0xffff, 0x8000); /* split type 0 is completely transparent in front half */ |
| r17673 | r17674 | |
|---|---|---|
| 16 | 16 | |
| 17 | 17 | ***************************************************************************/ |
| 18 | 18 | |
| 19 | ||
| 19 | ||
| 20 | 20 | { |
| 21 | 21 | /* logical (col,row) -> memory offset */ |
| 22 | 22 | return (col & 0x1f) + ((row & 0x1f) << 5) + ((col & 0x60) << 5); |
| 23 | 23 | } |
| 24 | 24 | |
| 25 | ||
| 25 | ||
| 26 | 26 | { |
| 27 | citycon_state *state = machine.driver_data<citycon_state>(); | |
| 28 | SET_TILE_INFO( | |
| 27 | SET_TILE_INFO_MEMBER( | |
| 29 | 28 | 0, |
| 30 | | |
| 29 | | |
| 31 | 30 | (tile_index & 0x03e0) >> 5, /* color depends on scanline only */ |
| 32 | 31 | 0); |
| 33 | 32 | } |
| 34 | 33 | |
| 35 | ||
| 34 | ||
| 36 | 35 | { |
| 37 | citycon_state *state = machine.driver_data<citycon_state>(); | |
| 38 | UINT8 *rom = state->memregion("gfx4")->base(); | |
| 39 | int code = rom[0x1000 * state->m_bg_image + tile_index]; | |
| 40 | SET_TILE_INFO( | |
| 41 | 3 + state->m_bg_image, | |
| 36 | UINT8 *rom = memregion("gfx4")->base(); | |
| 37 | int code = rom[0x1000 * m_bg_image + tile_index]; | |
| 38 | SET_TILE_INFO_MEMBER( | |
| 39 | 3 + m_bg_image, | |
| 42 | 40 | code, |
| 43 | rom[0xc000 + 0x100 * | |
| 41 | rom[0xc000 + 0x100 * | |
| 44 | 42 | 0); |
| 45 | 43 | } |
| 46 | 44 | |
| r17673 | r17674 | |
| 55 | 53 | VIDEO_START( citycon ) |
| 56 | 54 | { |
| 57 | 55 | citycon_state *state = machine.driver_data<citycon_state>(); |
| 58 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, citycon_scan, 8, 8, 128, 32); | |
| 59 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, citycon_scan, 8, 8, 128, 32); | |
| 56 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(citycon_state::get_fg_tile_info),state), tilemap_mapper_delegate(FUNC(citycon_state::citycon_scan),state), 8, 8, 128, 32); | |
| 57 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(citycon_state::get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(citycon_state::citycon_scan),state), 8, 8, 128, 32); | |
| 60 | 58 | |
| 61 | 59 | state->m_fg_tilemap->set_transparent_pen(0); |
| 62 | 60 | state->m_fg_tilemap->set_scroll_rows(32); |
| r17673 | r17674 | |
|---|---|---|
| 14 | 14 | * |
| 15 | 15 | *************************************/ |
| 16 | 16 | |
| 17 | ||
| 17 | ||
| 18 | 18 | { |
| 19 | suprridr_state *state = machine.driver_data<suprridr_state>(); | |
| 20 | UINT8 code = state->m_bgram[tile_index]; | |
| 21 | SET_TILE_INFO(0, code, 0, 0); | |
| 19 | UINT8 code = m_bgram[tile_index]; | |
| 20 | SET_TILE_INFO_MEMBER(0, code, 0, 0); | |
| 22 | 21 | } |
| 23 | 22 | |
| 24 | 23 | |
| 25 | ||
| 24 | ||
| 26 | 25 | { |
| 27 | suprridr_state *state = machine.driver_data<suprridr_state>(); | |
| 28 | UINT8 code = state->m_fgram[tile_index]; | |
| 29 | SET_TILE_INFO(1, code, 0, 0); | |
| 26 | UINT8 code = m_fgram[tile_index]; | |
| 27 | SET_TILE_INFO_MEMBER(1, code, 0, 0); | |
| 30 | 28 | } |
| 31 | 29 | |
| 32 | 30 | |
| r17673 | r17674 | |
| 40 | 38 | VIDEO_START( suprridr ) |
| 41 | 39 | { |
| 42 | 40 | suprridr_state *state = machine.driver_data<suprridr_state>(); |
| 43 | state->m_fg_tilemap = tilemap_create(machine, get_tile_info2, TILEMAP_SCAN_ROWS, 8,8, 32,32); | |
| 44 | state->m_bg_tilemap = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_ROWS, 8,8, 32,32); | |
| 45 | state->m_bg_tilemap_noscroll = tilemap_create(machine, get_tile_info, TILEMAP_SCAN_ROWS, 8,8, 32,32); | |
| 41 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(suprridr_state::get_tile_info2),state), TILEMAP_SCAN_ROWS, 8,8, 32,32); | |
| 42 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(suprridr_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 32,32); | |
| 43 | state->m_bg_tilemap_noscroll = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(suprridr_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 32,32); | |
| 46 | 44 | |
| 47 | 45 | state->m_fg_tilemap->set_transparent_pen(0); |
| 48 | 46 | } |
| r17673 | r17674 | |
|---|---|---|
| 71 | 71 | |
| 72 | 72 | ***************************************************************************/ |
| 73 | 73 | |
| 74 | ||
| 74 | ||
| 75 | 75 | { |
| 76 | psikyo_state *state = machine.driver_data<psikyo_state>(); | |
| 77 | UINT16 code = ((UINT16 *)state->m_vram_0.target())[BYTE_XOR_BE(tile_index)]; | |
| 78 | SET_TILE_INFO( | |
| 76 | UINT16 code = ((UINT16 *)m_vram_0.target())[BYTE_XOR_BE(tile_index)]; | |
| 77 | SET_TILE_INFO_MEMBER( | |
| 79 | 78 | 1, |
| 80 | (code & 0x1fff) + 0x2000 * | |
| 79 | (code & 0x1fff) + 0x2000 * | |
| 81 | 80 | (code >> 13) & 7, |
| 82 | 81 | 0); |
| 83 | 82 | } |
| 84 | 83 | |
| 85 | ||
| 84 | ||
| 86 | 85 | { |
| 87 | psikyo_state *state = machine.driver_data<psikyo_state>(); | |
| 88 | UINT16 code = ((UINT16 *)state->m_vram_1.target())[BYTE_XOR_BE(tile_index)]; | |
| 89 | SET_TILE_INFO( | |
| 86 | UINT16 code = ((UINT16 *)m_vram_1.target())[BYTE_XOR_BE(tile_index)]; | |
| 87 | SET_TILE_INFO_MEMBER( | |
| 90 | 88 | 1, |
| 91 | (code & 0x1fff) + 0x2000 * | |
| 89 | (code & 0x1fff) + 0x2000 * | |
| 92 | 90 | ((code >> 13) & 7) + 0x40, // So we only have to decode the gfx once. |
| 93 | 91 | 0); |
| 94 | 92 | } |
| r17673 | r17674 | |
| 166 | 164 | /* The Hardware is Capable of Changing the Dimensions of the Tilemaps, its safer to create |
| 167 | 165 | the various sized tilemaps now as opposed to later */ |
| 168 | 166 | |
| 169 | state->m_tilemap_0_size0 = tilemap_create(machine, get_tile_info_0, TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x80); | |
| 170 | state->m_tilemap_0_size1 = tilemap_create(machine, get_tile_info_0, TILEMAP_SCAN_ROWS, 16, 16, 0x40, 0x40); | |
| 171 | state->m_tilemap_0_size2 = tilemap_create(machine, get_tile_info_0, TILEMAP_SCAN_ROWS, 16, 16, 0x80, 0x20); | |
| 172 | state->m_tilemap_0_size3 = tilemap_create(machine, get_tile_info_0, TILEMAP_SCAN_ROWS, 16, 16, 0x100, 0x10); | |
| 167 | state->m_tilemap_0_size0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(psikyo_state::get_tile_info_0),state), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x80); | |
| 168 | state->m_tilemap_0_size1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(psikyo_state::get_tile_info_0),state), TILEMAP_SCAN_ROWS, 16, 16, 0x40, 0x40); | |
| 169 | state->m_tilemap_0_size2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(psikyo_state::get_tile_info_0),state), TILEMAP_SCAN_ROWS, 16, 16, 0x80, 0x20); | |
| 170 | state->m_tilemap_0_size3 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(psikyo_state::get_tile_info_0),state), TILEMAP_SCAN_ROWS, 16, 16, 0x100, 0x10); | |
| 173 | 171 | |
| 174 | state->m_tilemap_1_size0 = tilemap_create(machine, get_tile_info_1, TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x80); | |
| 175 | state->m_tilemap_1_size1 = tilemap_create(machine, get_tile_info_1, TILEMAP_SCAN_ROWS, 16, 16, 0x40, 0x40); | |
| 176 | state->m_tilemap_1_size2 = tilemap_create(machine, get_tile_info_1, TILEMAP_SCAN_ROWS, 16, 16, 0x80, 0x20); | |
| 177 | state->m_tilemap_1_size3 = tilemap_create(machine, get_tile_info_1, TILEMAP_SCAN_ROWS, 16, 16, 0x100, 0x10); | |
| 172 | state->m_tilemap_1_size0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(psikyo_state::get_tile_info_1),state), TILEMAP_SCAN_ROWS, 16, 16, 0x20, 0x80); | |
| 173 | state->m_tilemap_1_size1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(psikyo_state::get_tile_info_1),state), TILEMAP_SCAN_ROWS, 16, 16, 0x40, 0x40); | |
| 174 | state->m_tilemap_1_size2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(psikyo_state::get_tile_info_1),state), TILEMAP_SCAN_ROWS, 16, 16, 0x80, 0x20); | |
| 175 | state->m_tilemap_1_size3 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(psikyo_state::get_tile_info_1),state), TILEMAP_SCAN_ROWS, 16, 16, 0x100, 0x10); | |
| 178 | 176 | |
| 179 | 177 | state->m_spritebuf1 = auto_alloc_array(machine, UINT32, 0x2000 / 4); |
| 180 | 178 | state->m_spritebuf2 = auto_alloc_array(machine, UINT32, 0x2000 / 4); |
| r17673 | r17674 | |
|---|---|---|
| 119 | 119 | m_bg_tilemap->mark_tile_dirty(offset / 2); |
| 120 | 120 | } |
| 121 | 121 | |
| 122 | ||
| 122 | ||
| 123 | 123 | { |
| 124 | ampoker2_state *state = machine.driver_data<ampoker2_state>(); | |
| 125 | UINT8 *videoram = state->m_videoram; | |
| 124 | UINT8 *videoram = m_videoram; | |
| 126 | 125 | int offs = tile_index * 2; |
| 127 | 126 | int attr = videoram[offs + 1]; |
| 128 | 127 | int code = videoram[offs]; |
| r17673 | r17674 | |
| 130 | 129 | code = code + (256 * (color & 0x03)); /* code = color.bit1 + color.bit0 + code */ |
| 131 | 130 | color = color >> 1; /* color = color - bit0 (bit1..bit7) */ |
| 132 | 131 | |
| 133 | SET_TILE_INFO(0, code, color, 0); | |
| 132 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 134 | 133 | } |
| 135 | 134 | |
| 136 | ||
| 135 | ||
| 137 | 136 | { |
| 138 | ampoker2_state *state = machine.driver_data<ampoker2_state>(); | |
| 139 | UINT8 *videoram = state->m_videoram; | |
| 137 | UINT8 *videoram = m_videoram; | |
| 140 | 138 | int offs = tile_index * 2; |
| 141 | 139 | int attr = videoram[offs + 1]; |
| 142 | 140 | int code = videoram[offs]; |
| r17673 | r17674 | |
| 144 | 142 | code = code + (256 * (color & 0x0f)); /* the game uses 2 extra bits */ |
| 145 | 143 | color = color >> 1; |
| 146 | 144 | |
| 147 | SET_TILE_INFO(0, code, color, 0); | |
| 145 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 148 | 146 | } |
| 149 | 147 | |
| 150 | 148 | VIDEO_START(ampoker2) |
| 151 | 149 | { |
| 152 | 150 | ampoker2_state *state = machine.driver_data<ampoker2_state>(); |
| 153 | state->m_bg_tilemap = tilemap | |
| 151 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ampoker2_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, | |
| 154 | 152 | 8, 8, 64, 32); |
| 155 | 153 | } |
| 156 | 154 | |
| 157 | 155 | VIDEO_START(sigma2k) |
| 158 | 156 | { |
| 159 | 157 | ampoker2_state *state = machine.driver_data<ampoker2_state>(); |
| 160 | state->m_bg_tilemap = tilemap | |
| 158 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ampoker2_state::s2k_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, | |
| 161 | 159 | 8, 8, 64, 32); |
| 162 | 160 | } |
| 163 | 161 |
| r17673 | r17674 | |
|---|---|---|
| 8 | 8 | |
| 9 | 9 | ***************************************************************************/ |
| 10 | 10 | |
| 11 | ||
| 11 | ||
| 12 | 12 | { |
| 13 | playmark_state *state = machine.driver_data<playmark_state>(); | |
| 14 | UINT16 code = state->m_videoram1[2 * tile_index]; | |
| 15 | UINT16 color = state->m_videoram1[2 * tile_index + 1]; | |
| 16 | SET_TILE_INFO( | |
| 13 | UINT16 code = m_videoram1[2 * tile_index]; | |
| 14 | UINT16 color = m_videoram1[2 * tile_index + 1]; | |
| 15 | SET_TILE_INFO_MEMBER( | |
| 17 | 16 | 2, |
| 18 | 17 | code, |
| 19 | 18 | color, |
| 20 | 19 | 0); |
| 21 | 20 | } |
| 22 | 21 | |
| 23 | ||
| 22 | ||
| 24 | 23 | { |
| 25 | playmark_state *state = machine.driver_data<playmark_state>(); | |
| 26 | UINT16 code = state->m_videoram2[2 * tile_index]; | |
| 27 | UINT16 color = state->m_videoram2[2 * tile_index + 1]; | |
| 28 | SET_TILE_INFO( | |
| 24 | UINT16 code = m_videoram2[2 * tile_index]; | |
| 25 | UINT16 color = m_videoram2[2 * tile_index + 1]; | |
| 26 | SET_TILE_INFO_MEMBER( | |
| 29 | 27 | 1, |
| 30 | 28 | code, |
| 31 | 29 | color, |
| 32 | 30 | 0); |
| 33 | 31 | } |
| 34 | 32 | |
| 35 | ||
| 33 | ||
| 36 | 34 | { |
| 37 | playmark_state *state = machine.driver_data<playmark_state>(); | |
| 38 | UINT16 code = state->m_videoram1[2 * tile_index]; | |
| 39 | UINT16 color = state->m_videoram1[2 * tile_index + 1]; | |
| 35 | UINT16 code = m_videoram1[2 * tile_index]; | |
| 36 | UINT16 color = m_videoram1[2 * tile_index + 1]; | |
| 40 | 37 | |
| 41 | SET_TILE_INFO( | |
| 38 | SET_TILE_INFO_MEMBER( | |
| 42 | 39 | 2, |
| 43 | 40 | code, |
| 44 | 41 | color / 4, |
| 45 | 42 | 0); |
| 46 | 43 | } |
| 47 | 44 | |
| 48 | ||
| 45 | ||
| 49 | 46 | { |
| 50 | playmark_state *state = machine.driver_data<playmark_state>(); | |
| 51 | UINT16 code = state->m_videoram2[2 * tile_index]; | |
| 52 | UINT16 color = state->m_videoram2[2 * tile_index + 1]; | |
| 47 | UINT16 code = m_videoram2[2 * tile_index]; | |
| 48 | UINT16 color = m_videoram2[2 * tile_index + 1]; | |
| 53 | 49 | |
| 54 | SET_TILE_INFO( | |
| 50 | SET_TILE_INFO_MEMBER( | |
| 55 | 51 | 1, |
| 56 | 52 | code & 0x7fff, |
| 57 | 53 | color / 4 + 8, |
| 58 | 54 | (code & 0x8000) ? TILE_FLIPX : 0); |
| 59 | 55 | } |
| 60 | 56 | |
| 61 | ||
| 57 | ||
| 62 | 58 | { |
| 63 | playmark_state *state = machine.driver_data<playmark_state>(); | |
| 64 | UINT16 code = state->m_videoram3[2 * tile_index]; | |
| 65 | UINT16 color = state->m_videoram3[2 * tile_index + 1]; | |
| 59 | UINT16 code = m_videoram3[2 * tile_index]; | |
| 60 | UINT16 color = m_videoram3[2 * tile_index + 1]; | |
| 66 | 61 | |
| 67 | SET_TILE_INFO( | |
| 62 | SET_TILE_INFO_MEMBER( | |
| 68 | 63 | 1, |
| 69 | 64 | code & 0x7fff, |
| 70 | 65 | color / 4, |
| 71 | 66 | (code & 0x8000) ? TILE_FLIPX : 0); |
| 72 | 67 | } |
| 73 | 68 | |
| 74 | ||
| 69 | ||
| 75 | 70 | { |
| 76 | playmark_state *state = machine.driver_data<playmark_state>(); | |
| 77 | int code = state->m_videoram1[tile_index] & 0x03ff; | |
| 78 | int colr = state->m_videoram1[tile_index] & 0xe000; | |
| 71 | int code = m_videoram1[tile_index] & 0x03ff; | |
| 72 | int colr = m_videoram1[tile_index] & 0xe000; | |
| 79 | 73 | |
| 80 | SET_TILE_INFO(2,code + | |
| 74 | SET_TILE_INFO_MEMBER(2,code + | |
| 81 | 75 | } |
| 82 | 76 | |
| 83 | ||
| 77 | ||
| 84 | 78 | { |
| 85 | playmark_state *state = machine.driver_data<playmark_state>(); | |
| 86 | int code = state->m_videoram1[tile_index] & 0x0fff; | |
| 87 | int colr = state->m_videoram1[tile_index] & 0xf000; | |
| 79 | int code = m_videoram1[tile_index] & 0x0fff; | |
| 80 | int colr = m_videoram1[tile_index] & 0xf000; | |
| 88 | 81 | |
| 89 | SET_TILE_INFO(2,code + | |
| 82 | SET_TILE_INFO_MEMBER(2,code + | |
| 90 | 83 | } |
| 91 | 84 | |
| 92 | ||
| 85 | ||
| 93 | 86 | { |
| 94 | playmark_state *state = machine.driver_data<playmark_state>(); | |
| 95 | int code = state->m_videoram2[tile_index] & 0x1fff; | |
| 96 | int colr = state->m_videoram2[tile_index] & 0xe000; | |
| 87 | int code = m_videoram2[tile_index] & 0x1fff; | |
| 88 | int colr = m_videoram2[tile_index] & 0xe000; | |
| 97 | 89 | |
| 98 | SET_TILE_INFO(1,code + 0x2000,(colr >> 13) + 8,0); | |
| 90 | SET_TILE_INFO_MEMBER(1,code + 0x2000,(colr >> 13) + 8,0); | |
| 99 | 91 | } |
| 100 | 92 | |
| 101 | ||
| 93 | ||
| 102 | 94 | { |
| 103 | playmark_state *state = machine.driver_data<playmark_state>(); | |
| 104 | int code = state->m_videoram3[tile_index] & 0x1fff; | |
| 105 | int colr = state->m_videoram3[tile_index] & 0xe000; | |
| 95 | int code = m_videoram3[tile_index] & 0x1fff; | |
| 96 | int colr = m_videoram3[tile_index] & 0xe000; | |
| 106 | 97 | |
| 107 | SET_TILE_INFO(1, code, colr >> 13, 0); | |
| 98 | SET_TILE_INFO_MEMBER(1, code, colr >> 13, 0); | |
| 108 | 99 | } |
| 109 | 100 | |
| 110 | 101 | /*************************************************************************** |
| r17673 | r17674 | |
| 117 | 108 | { |
| 118 | 109 | playmark_state *state = machine.driver_data<playmark_state>(); |
| 119 | 110 | |
| 120 | state->m_tx_tilemap = tilemap_create(machine, bigtwin_get_tx_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 121 | state->m_fg_tilemap = tilemap_create(machine, bigtwin_get_fg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 111 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(playmark_state::bigtwin_get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 112 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(playmark_state::bigtwin_get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 122 | 113 | |
| 123 | 114 | state->m_tx_tilemap->set_transparent_pen(0); |
| 124 | 115 | |
| r17673 | r17674 | |
| 136 | 127 | { |
| 137 | 128 | playmark_state *state = machine.driver_data<playmark_state>(); |
| 138 | 129 | |
| 139 | state->m_tx_tilemap = tilemap_create(machine, bigtwinb_get_tx_tile_info,TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 140 | state->m_fg_tilemap = tilemap_create(machine, hrdtimes_get_fg_tile_info,TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 141 | state->m_bg_tilemap = tilemap_create(machine, hrdtimes_get_bg_tile_info,TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 130 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(playmark_state::bigtwinb_get_tx_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 131 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(playmark_state::hrdtimes_get_fg_tile_info),state),TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 132 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(playmark_state::hrdtimes_get_bg_tile_info),state),TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 142 | 133 | |
| 143 | 134 | state->m_tx_tilemap->set_transparent_pen(0); |
| 144 | 135 | state->m_fg_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
| 159 | 150 | { |
| 160 | 151 | playmark_state *state = machine.driver_data<playmark_state>(); |
| 161 | 152 | |
| 162 | state->m_tx_tilemap = tilemap_create(machine, wbeachvl_get_tx_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 163 | state->m_fg_tilemap = tilemap_create(machine, wbeachvl_get_fg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 32); | |
| 164 | state->m_bg_tilemap = tilemap_create(machine, wbeachvl_get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 32); | |
| 153 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(playmark_state::wbeachvl_get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 154 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(playmark_state::wbeachvl_get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); | |
| 155 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(playmark_state::wbeachvl_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); | |
| 165 | 156 | |
| 166 | 157 | state->m_tx_tilemap->set_transparent_pen(0); |
| 167 | 158 | state->m_fg_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
| 179 | 170 | { |
| 180 | 171 | playmark_state *state = machine.driver_data<playmark_state>(); |
| 181 | 172 | |
| 182 | state->m_tx_tilemap = tilemap_create(machine, bigtwin_get_tx_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 183 | state->m_fg_tilemap = tilemap_create(machine, bigtwin_get_fg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 173 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(playmark_state::bigtwin_get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 174 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(playmark_state::bigtwin_get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 184 | 175 | |
| 185 | 176 | state->m_tx_tilemap->set_transparent_pen(0); |
| 186 | 177 | |
| r17673 | r17674 | |
| 197 | 188 | { |
| 198 | 189 | playmark_state *state = machine.driver_data<playmark_state>(); |
| 199 | 190 | |
| 200 | state->m_tx_tilemap = tilemap_create(machine, hrdtimes_get_tx_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 201 | state->m_fg_tilemap = tilemap_create(machine, hrdtimes_get_fg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 202 | state->m_bg_tilemap = tilemap_create(machine, hrdtimes_get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 191 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(playmark_state::hrdtimes_get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 192 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(playmark_state::hrdtimes_get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 193 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(playmark_state::hrdtimes_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 203 | 194 | |
| 204 | 195 | state->m_tx_tilemap->set_transparent_pen(0); |
| 205 | 196 | state->m_fg_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
| 221 | 212 | { |
| 222 | 213 | playmark_state *state = machine.driver_data<playmark_state>(); |
| 223 | 214 | |
| 224 | state->m_tx_tilemap = tilemap_create(machine, hrdtimes_get_tx_tile_info,TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 225 | state->m_fg_tilemap = tilemap_create(machine, hrdtimes_get_fg_tile_info,TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 226 | state->m_bg_tilemap = tilemap_create(machine, hrdtimes_get_bg_tile_info,TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 215 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(playmark_state::hrdtimes_get_tx_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 216 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(playmark_state::hrdtimes_get_fg_tile_info),state),TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 217 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(playmark_state::hrdtimes_get_bg_tile_info),state),TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 227 | 218 | |
| 228 | 219 | state->m_tx_tilemap->set_transparent_pen(0); |
| 229 | 220 | state->m_fg_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 50 | 50 | |
| 51 | 51 | ***************************************************************************/ |
| 52 | 52 | |
| 53 | ||
| 53 | ||
| 54 | 54 | { |
| 55 | esd16_state *state = machine.driver_data<esd16_state>(); | |
| 56 | UINT16 code = state->m_vram_0[tile_index]; | |
| 57 | SET_TILE_INFO( | |
| 55 | UINT16 code = m_vram_0[tile_index]; | |
| 56 | SET_TILE_INFO_MEMBER( | |
| 58 | 57 | 1, |
| 59 | 58 | code, |
| 60 | | |
| 59 | | |
| 61 | 60 | 0); |
| 62 | 61 | } |
| 63 | 62 | |
| 64 | ||
| 63 | ||
| 65 | 64 | { |
| 66 | esd16_state *state = machine.driver_data<esd16_state>(); | |
| 67 | UINT16 code = state->m_vram_0[tile_index]; | |
| 68 | SET_TILE_INFO( | |
| 65 | UINT16 code = m_vram_0[tile_index]; | |
| 66 | SET_TILE_INFO_MEMBER( | |
| 69 | 67 | 2, |
| 70 | 68 | code, |
| 71 | | |
| 69 | | |
| 72 | 70 | 0); |
| 73 | 71 | } |
| 74 | 72 | |
| 75 | 73 | |
| 76 | ||
| 74 | ||
| 77 | 75 | { |
| 78 | esd16_state *state = machine.driver_data<esd16_state>(); | |
| 79 | UINT16 code = state->m_vram_1[tile_index]; | |
| 80 | SET_TILE_INFO( | |
| 76 | UINT16 code = m_vram_1[tile_index]; | |
| 77 | SET_TILE_INFO_MEMBER( | |
| 81 | 78 | 1, |
| 82 | 79 | code, |
| 83 | | |
| 80 | | |
| 84 | 81 | 0); |
| 85 | 82 | } |
| 86 | 83 | |
| 87 | ||
| 84 | ||
| 88 | 85 | { |
| 89 | esd16_state *state = machine.driver_data<esd16_state>(); | |
| 90 | UINT16 code = state->m_vram_1[tile_index]; | |
| 91 | SET_TILE_INFO( | |
| 86 | UINT16 code = m_vram_1[tile_index]; | |
| 87 | SET_TILE_INFO_MEMBER( | |
| 92 | 88 | 2, |
| 93 | 89 | code, |
| 94 | | |
| 90 | | |
| 95 | 91 | 0); |
| 96 | 92 | } |
| 97 | 93 | |
| r17673 | r17674 | |
| 141 | 137 | { |
| 142 | 138 | esd16_state *state = machine.driver_data<esd16_state>(); |
| 143 | 139 | |
| 144 | state->m_tilemap_0 = tilemap_create( machine, get_tile_info_0, TILEMAP_SCAN_ROWS, 8, 8, 0x80, 0x40); | |
| 145 | state->m_tilemap_1 = tilemap_create( machine, get_tile_info_1, TILEMAP_SCAN_ROWS, 8, 8, 0x80, 0x40); | |
| 140 | state->m_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(esd16_state::get_tile_info_0),state), TILEMAP_SCAN_ROWS, 8, 8, 0x80, 0x40); | |
| 141 | state->m_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(esd16_state::get_tile_info_1),state), TILEMAP_SCAN_ROWS, 8, 8, 0x80, 0x40); | |
| 146 | 142 | |
| 147 | 143 | /* swatpolc changes tilemap 0 to 16x16 at various times */ |
| 148 | state->m_tilemap_0_16x16 = tilemap | |
| 144 | state->m_tilemap_0_16x16 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(esd16_state::get_tile_info_0_16x16),state), TILEMAP_SCAN_ROWS, 16,16, 0x40, 0x40); | |
| 149 | 145 | |
| 150 | 146 | /* hedpanic changes tilemap 1 to 16x16 at various times */ |
| 151 | state->m_tilemap_1_16x16 = tilemap | |
| 147 | state->m_tilemap_1_16x16 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(esd16_state::get_tile_info_1_16x16),state), TILEMAP_SCAN_ROWS, 16,16, 0x40, 0x40); | |
| 152 | 148 | |
| 153 | 149 | state->m_tilemap_0->set_scrolldx(-0x60 + 2, -0x60); |
| 154 | 150 | state->m_tilemap_1->set_scrolldx(-0x60, -0x60 + 2); |
| r17673 | r17674 | |
|---|---|---|
| 561 | 561 | m_tx_tilemap->mark_tile_dirty(offset / 2); |
| 562 | 562 | } |
| 563 | 563 | |
| 564 | ||
| 564 | ||
| 565 | 565 | { |
| 566 | 566 | |
| 567 | 567 | /* 0x904000 - 0x90ffff is the Text Overlay Ram (pgm_tx_videoram) |
| r17673 | r17674 | |
| 578 | 578 | p = palette |
| 579 | 579 | f = flip |
| 580 | 580 | */ |
| 581 | pgm_state *state = machine.driver_data<pgm_state>(); | |
| 582 | 581 | int tileno, colour, flipyx; //,game; |
| 583 | 582 | |
| 584 | tileno = state->m_tx_videoram[tile_index * 2] & 0xffff; | |
| 585 | colour = (state->m_tx_videoram[tile_index * 2 + 1] & 0x3e) >> 1; | |
| 586 | flipyx = (state->m_tx_videoram[tile_index * 2 + 1] & 0xc0) >> 6; | |
| 583 | tileno = m_tx_videoram[tile_index * 2] & 0xffff; | |
| 584 | colour = (m_tx_videoram[tile_index * 2 + 1] & 0x3e) >> 1; | |
| 585 | flipyx = (m_tx_videoram[tile_index * 2 + 1] & 0xc0) >> 6; | |
| 587 | 586 | |
| 588 | SET_TILE_INFO(0,tileno,colour,TILE_FLIPYX(flipyx)); | |
| 587 | SET_TILE_INFO_MEMBER(0,tileno,colour,TILE_FLIPYX(flipyx)); | |
| 589 | 588 | } |
| 590 | 589 | |
| 591 | 590 | /* BG Layer */ |
| r17673 | r17674 | |
| 596 | 595 | m_bg_tilemap->mark_tile_dirty(offset / 2); |
| 597 | 596 | } |
| 598 | 597 | |
| 599 | ||
| 598 | ||
| 600 | 599 | { |
| 601 | 600 | /* pretty much the same as tx layer */ |
| 602 | 601 | |
| 603 | pgm_state *state = machine.driver_data<pgm_state>(); | |
| 604 | 602 | int tileno, colour, flipyx; |
| 605 | 603 | |
| 606 | tileno = | |
| 604 | tileno = | |
| 607 | 605 | |
| 608 | colour = (state->m_bg_videoram[tile_index * 2 + 1] & 0x3e) >> 1; | |
| 609 | flipyx = (state->m_bg_videoram[tile_index * 2 + 1] & 0xc0) >> 6; | |
| 606 | colour = (m_bg_videoram[tile_index * 2 + 1] & 0x3e) >> 1; | |
| 607 | flipyx = (m_bg_videoram[tile_index * 2 + 1] & 0xc0) >> 6; | |
| 610 | 608 | |
| 611 | SET_TILE_INFO(1,tileno,colour,TILE_FLIPYX(flipyx)); | |
| 609 | SET_TILE_INFO_MEMBER(1,tileno,colour,TILE_FLIPYX(flipyx)); | |
| 612 | 610 | } |
| 613 | 611 | |
| 614 | 612 | |
| r17673 | r17674 | |
| 625 | 623 | state->m_aoffset = 0; |
| 626 | 624 | state->m_boffset = 0; |
| 627 | 625 | |
| 628 | state->m_tx_tilemap = tilemap | |
| 626 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pgm_state::get_pgm_tx_tilemap_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 629 | 627 | state->m_tx_tilemap->set_transparent_pen(15); |
| 630 | 628 | |
| 631 | state->m_bg_tilemap = tilemap | |
| 629 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pgm_state::get_pgm_bg_tilemap_tile_info),state), TILEMAP_SCAN_ROWS, 32, 32, 64, 16); | |
| 632 | 630 | state->m_bg_tilemap->set_transparent_pen(31); |
| 633 | 631 | state->m_bg_tilemap->set_scroll_rows(16 * 32); |
| 634 | 632 |
| r17673 | r17674 | |
|---|---|---|
| 8 | 8 | |
| 9 | 9 | ***************************************************************************/ |
| 10 | 10 | |
| 11 | ||
| 11 | ||
| 12 | 12 | { |
| 13 | iqblock_state *state = machine.driver_data<iqblock_state>(); | |
| 14 | int code = state->m_bgvideoram[tile_index] + (state->m_bgvideoram[tile_index + 0x800] << 8); | |
| 15 | SET_TILE_INFO( | |
| 13 | int code = m_bgvideoram[tile_index] + (m_bgvideoram[tile_index + 0x800] << 8); | |
| 14 | SET_TILE_INFO_MEMBER( | |
| 16 | 15 | 0, |
| 17 | code &(state->m_video_type ? 0x1fff : 0x3fff), | |
| 18 | state->m_video_type? (2*(code >> 13)+1) : (4*(code >> 14)+3), | |
| 16 | code &(m_video_type ? 0x1fff : 0x3fff), | |
| 17 | m_video_type? (2*(code >> 13)+1) : (4*(code >> 14)+3), | |
| 19 | 18 | 0); |
| 20 | 19 | } |
| 21 | 20 | |
| 22 | ||
| 21 | ||
| 23 | 22 | { |
| 24 | iqblock_state *state = machine.driver_data<iqblock_state>(); | |
| 25 | int code = state->m_fgvideoram[tile_index]; | |
| 26 | SET_TILE_INFO( | |
| 23 | int code = m_fgvideoram[tile_index]; | |
| 24 | SET_TILE_INFO_MEMBER( | |
| 27 | 25 | 1, |
| 28 | 26 | code & 0x7f, |
| 29 | 27 | (code & 0x80) ? 3 : 0, |
| r17673 | r17674 | |
| 41 | 39 | VIDEO_START( iqblock ) |
| 42 | 40 | { |
| 43 | 41 | iqblock_state *state = machine.driver_data<iqblock_state>(); |
| 44 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_ROWS, 8, 8,64,32); | |
| 45 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info,TILEMAP_SCAN_ROWS,8,32,64, 8); | |
| 42 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(iqblock_state::get_bg_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,32); | |
| 43 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(iqblock_state::get_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,32,64, 8); | |
| 46 | 44 | |
| 47 | 45 | state->m_bg_tilemap->set_transparent_pen(0); |
| 48 | 46 | state->m_fg_tilemap->set_scroll_cols(64); |
| r17673 | r17674 | |
|---|---|---|
| 16 | 16 | TILE_FLIPYX((attr & 0xc000) >> 14)); |
| 17 | 17 | } |
| 18 | 18 | |
| 19 | ||
| 19 | ||
| 20 | 20 | { |
| 21 | darius_state *state = machine.driver_data<darius_state>(); | |
| 22 | actual_get_fg_tile_info(machine, tileinfo, tile_index, state->m_fg_ram, 2); | |
| 21 | actual_get_fg_tile_info(machine(), tileinfo, tile_index, m_fg_ram, 2); | |
| 23 | 22 | } |
| 24 | 23 | |
| 25 | 24 | /***************************************************************************/ |
| r17673 | r17674 | |
| 28 | 27 | { |
| 29 | 28 | darius_state *state = machine.driver_data<darius_state>(); |
| 30 | 29 | |
| 31 | state->m_fg_tilemap = tilemap | |
| 30 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(darius_state::get_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,128,64); | |
| 32 | 31 | |
| 33 | 32 | state->m_fg_tilemap->set_transparent_pen(0); |
| 34 | 33 | } |
| r17673 | r17674 | |
|---|---|---|
| 8 | 8 | |
| 9 | 9 | ***************************************************************************/ |
| 10 | 10 | |
| 11 | ||
| 11 | ||
| 12 | 12 | { |
| 13 | cbasebal_state *state = machine.driver_data<cbasebal_state>(); | |
| 14 | UINT8 attr = state->m_scrollram[2 * tile_index + 1]; | |
| 15 | SET_TILE_INFO( | |
| 13 | UINT8 attr = m_scrollram[2 * tile_index + 1]; | |
| 14 | SET_TILE_INFO_MEMBER( | |
| 16 | 15 | 1, |
| 17 | | |
| 16 | | |
| 18 | 17 | (attr & 0xf0) >> 4, |
| 19 | 18 | (attr & 0x08) ? TILE_FLIPX : 0); |
| 20 | 19 | } |
| 21 | 20 | |
| 22 | ||
| 21 | ||
| 23 | 22 | { |
| 24 | cbasebal_state *state = machine.driver_data<cbasebal_state>(); | |
| 25 | UINT8 attr = state->m_textram[tile_index + 0x800]; | |
| 26 | SET_TILE_INFO( | |
| 23 | UINT8 attr = m_textram[tile_index + 0x800]; | |
| 24 | SET_TILE_INFO_MEMBER( | |
| 27 | 25 | 0, |
| 28 | | |
| 26 | | |
| 29 | 27 | attr & 0x07, |
| 30 | 28 | (attr & 0x08) ? TILE_FLIPX : 0); |
| 31 | 29 | } |
| r17673 | r17674 | |
| 45 | 43 | state->m_textram = auto_alloc_array(machine, UINT8, 0x1000); |
| 46 | 44 | state->m_scrollram = auto_alloc_array(machine, UINT8, 0x1000); |
| 47 | 45 | |
| 48 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 32); | |
| 49 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 46 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cbasebal_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); | |
| 47 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cbasebal_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 50 | 48 | |
| 51 | 49 | state->m_fg_tilemap->set_transparent_pen(3); |
| 52 | 50 |
| r17673 | r17674 | |
|---|---|---|
| 116 | 116 | } |
| 117 | 117 | } |
| 118 | 118 | |
| 119 | ||
| 119 | ||
| 120 | 120 | { |
| 121 | sbasketb_state *state = machine.driver_data<sbasketb_state>(); | |
| 122 | int code = state->m_videoram[tile_index] + ((state->m_colorram[tile_index] & 0x20) << 3); | |
| 123 | int color = state->m_colorram[tile_index] & 0x0f; | |
| 124 | int flags = ((state->m_colorram[tile_index] & 0x40) ? TILE_FLIPX : 0) | ((state->m_colorram[tile_index] & 0x80) ? TILE_FLIPY : 0); | |
| 121 | int code = m_videoram[tile_index] + ((m_colorram[tile_index] & 0x20) << 3); | |
| 122 | int color = m_colorram[tile_index] & 0x0f; | |
| 123 | int flags = ((m_colorram[tile_index] & 0x40) ? TILE_FLIPX : 0) | ((m_colorram[tile_index] & 0x80) ? TILE_FLIPY : 0); | |
| 125 | 124 | |
| 126 | SET_TILE_INFO(0, code, color, flags); | |
| 125 | SET_TILE_INFO_MEMBER(0, code, color, flags); | |
| 127 | 126 | } |
| 128 | 127 | |
| 129 | 128 | VIDEO_START( sbasketb ) |
| 130 | 129 | { |
| 131 | 130 | sbasketb_state *state = machine.driver_data<sbasketb_state>(); |
| 132 | 131 | |
| 133 | state->m_bg_tilemap = tilemap | |
| 132 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sbasketb_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 134 | 133 | state->m_bg_tilemap->set_scroll_cols(32); |
| 135 | 134 | } |
| 136 | 135 |
| r17673 | r17674 | |
|---|---|---|
| 45 | 45 | } |
| 46 | 46 | } |
| 47 | 47 | |
| 48 | ||
| 48 | ||
| 49 | 49 | { |
| 50 | int code = machine.root_device().memregion("user1")->base()[tile_index]; | |
| 51 | int attr = machine.root_device().memregion("user1")->base()[tile_index + 0x2000]; | |
| 50 | int code = machine().root_device().memregion("user1")->base()[tile_index]; | |
| 51 | int attr = machine().root_device().memregion("user1")->base()[tile_index + 0x2000]; | |
| 52 | 52 | code += (attr & 3) << 8; |
| 53 | SET_TILE_INFO(1, code, ((attr >> 2) & 0x0f) * 2, (attr & 0x80) ? TILE_FLIPX : 0); | |
| 53 | SET_TILE_INFO_MEMBER(1, code, ((attr >> 2) & 0x0f) * 2, (attr & 0x80) ? TILE_FLIPX : 0); | |
| 54 | 54 | } |
| 55 | 55 | |
| 56 | 56 | /* |
| r17673 | r17674 | |
| 58 | 58 | --cc cc-- color |
| 59 | 59 | ---- --bb bank select |
| 60 | 60 | */ |
| 61 | ||
| 61 | ||
| 62 | 62 | { |
| 63 | ksayakyu_state *state = machine.driver_data<ksayakyu_state>(); | |
| 64 | int code = state->m_videoram[tile_index * 2 + 1]; | |
| 65 | int attr = state->m_videoram[tile_index * 2]; | |
| 63 | int code = m_videoram[tile_index * 2 + 1]; | |
| 64 | int attr = m_videoram[tile_index * 2]; | |
| 66 | 65 | int flags = ((attr & 0x80) ? TILE_FLIPX : 0) | ((attr & 0x40) ? TILE_FLIPY : 0); |
| 67 | 66 | int color = (attr & 0x3c) >> 2; |
| 68 | 67 | |
| 69 | 68 | code |= (attr & 3) << 8; |
| 70 | 69 | |
| 71 | SET_TILE_INFO(0, code, color, flags); | |
| 70 | SET_TILE_INFO_MEMBER(0, code, color, flags); | |
| 72 | 71 | } |
| 73 | 72 | |
| 74 | 73 | /* |
| r17673 | r17674 | |
| 117 | 116 | VIDEO_START(ksayakyu) |
| 118 | 117 | { |
| 119 | 118 | ksayakyu_state *state = machine.driver_data<ksayakyu_state>(); |
| 120 | state->m_tilemap = tilemap_create(machine, get_ksayakyu_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32 * 8); | |
| 121 | state->m_textmap = tilemap_create(machine, get_text_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 119 | state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ksayakyu_state::get_ksayakyu_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32 * 8); | |
| 120 | state->m_textmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ksayakyu_state::get_text_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 122 | 121 | state->m_textmap->set_transparent_pen(0); |
| 123 | 122 | } |
| 124 | 123 |
| r17673 | r17674 | |
|---|---|---|
| 10 | 10 | #include "emu.h" |
| 11 | 11 | #include "includes/himesiki.h" |
| 12 | 12 | |
| 13 | ||
| 13 | ||
| 14 | 14 | { |
| 15 | himesiki_state *state = machine.driver_data<himesiki_state>(); | |
| 16 | int code = state->m_bg_ram[tile_index * 2] + state->m_bg_ram[tile_index * 2 + 1] * 0x100 ; | |
| 15 | int code = m_bg_ram[tile_index * 2] + m_bg_ram[tile_index * 2 + 1] * 0x100 ; | |
| 17 | 16 | int col = code >> 12; |
| 18 | 17 | |
| 19 | 18 | code &= 0xfff; |
| 20 | 19 | |
| 21 | SET_TILE_INFO(0, code, col, 0); | |
| 20 | SET_TILE_INFO_MEMBER(0, code, col, 0); | |
| 22 | 21 | } |
| 23 | 22 | |
| 24 | 23 | VIDEO_START( himesiki ) |
| 25 | 24 | { |
| 26 | 25 | himesiki_state *state = machine.driver_data<himesiki_state>(); |
| 27 | state->m_bg_tilemap = tilemap | |
| 26 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(himesiki_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 28 | 27 | } |
| 29 | 28 | |
| 30 | 29 | WRITE8_MEMBER(himesiki_state::himesiki_bg_ram_w) |
| r17673 | r17674 | |
|---|---|---|
| 16 | 16 | * |
| 17 | 17 | *************************************/ |
| 18 | 18 | |
| 19 | ||
| 19 | ||
| 20 | 20 | { |
| 21 | skullxbo_state *state = machine.driver_data<skullxbo_state>(); | |
| 22 | UINT16 data = state->m_alpha[tile_index]; | |
| 21 | UINT16 data = m_alpha[tile_index]; | |
| 23 | 22 | int code = (data ^ 0x400) & 0x7ff; |
| 24 | 23 | int color = (data >> 11) & 0x0f; |
| 25 | 24 | int opaque = data & 0x8000; |
| 26 | SET_TILE_INFO(2, code, color, opaque ? TILE_FORCE_LAYER0 : 0); | |
| 25 | SET_TILE_INFO_MEMBER(2, code, color, opaque ? TILE_FORCE_LAYER0 : 0); | |
| 27 | 26 | } |
| 28 | 27 | |
| 29 | 28 | |
| 30 | ||
| 29 | ||
| 31 | 30 | { |
| 32 | skullxbo_state *state = machine.driver_data<skullxbo_state>(); | |
| 33 | UINT16 data1 = state->m_playfield[tile_index]; | |
| 34 | UINT16 data2 = state->m_playfield_upper[tile_index] & 0xff; | |
| 31 | UINT16 data1 = m_playfield[tile_index]; | |
| 32 | UINT16 data2 = m_playfield_upper[tile_index] & 0xff; | |
| 35 | 33 | int code = data1 & 0x7fff; |
| 36 | 34 | int color = data2 & 0x0f; |
| 37 | SET_TILE_INFO(1, code, color, (data1 >> 15) & 1); | |
| 35 | SET_TILE_INFO_MEMBER(1, code, color, (data1 >> 15) & 1); | |
| 38 | 36 | } |
| 39 | 37 | |
| 40 | 38 | |
| r17673 | r17674 | |
| 86 | 84 | skullxbo_state *state = machine.driver_data<skullxbo_state>(); |
| 87 | 85 | |
| 88 | 86 | /* initialize the playfield */ |
| 89 | state->m_playfield_tilemap = tilemap | |
| 87 | state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(skullxbo_state::get_playfield_tile_info),state), TILEMAP_SCAN_COLS, 16,8, 64,64); | |
| 90 | 88 | |
| 91 | 89 | /* initialize the motion objects */ |
| 92 | 90 | atarimo_init(machine, 0, &modesc); |
| 93 | 91 | |
| 94 | 92 | /* initialize the alphanumerics */ |
| 95 | state->m_alpha_tilemap = tilemap | |
| 93 | state->m_alpha_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(skullxbo_state::get_alpha_tile_info),state), TILEMAP_SCAN_ROWS, 16,8, 64,32); | |
| 96 | 94 | state->m_alpha_tilemap->set_transparent_pen(0); |
| 97 | 95 | } |
| 98 | 96 |
| r17673 | r17674 | |
|---|---|---|
| 45 | 45 | } |
| 46 | 46 | |
| 47 | 47 | |
| 48 | ||
| 48 | ||
| 49 | 49 | { |
| 50 | battlex_state *state = machine.driver_data<battlex_state>(); | |
| 51 | int tile = state->m_videoram[tile_index * 2] | (((state->m_videoram[tile_index * 2 + 1] & 0x01)) << 8); | |
| 52 | int color = (state->m_videoram[tile_index * 2 + 1] & 0x0e) >> 1; // high bits unused | |
| 50 | int tile = m_videoram[tile_index * 2] | (((m_videoram[tile_index * 2 + 1] & 0x01)) << 8); | |
| 51 | int color = (m_videoram[tile_index * 2 + 1] & 0x0e) >> 1; // high bits unused | |
| 53 | 52 | |
| 54 | SET_TILE_INFO(0, tile, color, 0); | |
| 53 | SET_TILE_INFO_MEMBER(0, tile, color, 0); | |
| 55 | 54 | } |
| 56 | 55 | |
| 57 | 56 | VIDEO_START( battlex ) |
| 58 | 57 | { |
| 59 | 58 | battlex_state *state = machine.driver_data<battlex_state>(); |
| 60 | state->m_bg_tilemap = tilemap | |
| 59 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(battlex_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 61 | 60 | } |
| 62 | 61 | |
| 63 | 62 | static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ) |
| r17673 | r17674 | |
|---|---|---|
| 132 | 132 | /* other bits are used too, but unknown */ |
| 133 | 133 | } |
| 134 | 134 | |
| 135 | ||
| 135 | ||
| 136 | 136 | { |
| 137 | ironhors_state *state = machine.driver_data<ironhors_state>(); | |
| 138 | int code = state->m_videoram[tile_index] + ((state->m_colorram[tile_index] & 0x40) << 2) + | |
| 139 | ((state->m_colorram[tile_index] & 0x20) << 4) + (state->m_charbank << 10); | |
| 140 | int color = (state->m_colorram[tile_index] & 0x0f) + 16 * state->m_palettebank; | |
| 141 | int flags = ((state->m_colorram[tile_index] & 0x10) ? TILE_FLIPX : 0) | | |
| 142 | ((state->m_colorram[tile_index] & 0x20) ? TILE_FLIPY : 0); | |
| 137 | int code = m_videoram[tile_index] + ((m_colorram[tile_index] & 0x40) << 2) + | |
| 138 | ((m_colorram[tile_index] & 0x20) << 4) + (m_charbank << 10); | |
| 139 | int color = (m_colorram[tile_index] & 0x0f) + 16 * m_palettebank; | |
| 140 | int flags = ((m_colorram[tile_index] & 0x10) ? TILE_FLIPX : 0) | | |
| 141 | ((m_colorram[tile_index] & 0x20) ? TILE_FLIPY : 0); | |
| 143 | 142 | |
| 144 | SET_TILE_INFO(0, code, color, flags); | |
| 143 | SET_TILE_INFO_MEMBER(0, code, color, flags); | |
| 145 | 144 | } |
| 146 | 145 | |
| 147 | 146 | VIDEO_START( ironhors ) |
| 148 | 147 | { |
| 149 | 148 | ironhors_state *state = machine.driver_data<ironhors_state>(); |
| 150 | state->m_bg_tilemap = tilemap | |
| 149 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ironhors_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 151 | 150 | |
| 152 | 151 | state->m_bg_tilemap->set_scroll_rows(32); |
| 153 | 152 | } |
| r17673 | r17674 | |
| 249 | 248 | return 0; |
| 250 | 249 | } |
| 251 | 250 | |
| 252 | ||
| 251 | ||
| 253 | 252 | { |
| 254 | ironhors_state *state = machine.driver_data<ironhors_state>(); | |
| 255 | int code = state->m_videoram[tile_index] + ((state->m_colorram[tile_index] & 0x40) << 2) + | |
| 256 | ((state->m_colorram[tile_index] & 0x20) << 4) + (state->m_charbank << 10); | |
| 257 | int color = (state->m_colorram[tile_index] & 0x0f) + 16 * state->m_palettebank; | |
| 258 | int flags = 0;//((state->m_colorram[tile_index] & 0x10) ? TILE_FLIPX : 0) | ((state->m_colorram[tile_index] & 0x20) ? TILE_FLIPY : 0); | |
| 253 | int code = m_videoram[tile_index] + ((m_colorram[tile_index] & 0x40) << 2) + | |
| 254 | ((m_colorram[tile_index] & 0x20) << 4) + (m_charbank << 10); | |
| 255 | int color = (m_colorram[tile_index] & 0x0f) + 16 * m_palettebank; | |
| 256 | int flags = 0;//((m_colorram[tile_index] & 0x10) ? TILE_FLIPX : 0) | ((m_colorram[tile_index] & 0x20) ? TILE_FLIPY : 0); | |
| 259 | 257 | |
| 260 | SET_TILE_INFO(0, code, color, flags); | |
| 258 | SET_TILE_INFO_MEMBER(0, code, color, flags); | |
| 261 | 259 | } |
| 262 | 260 | |
| 263 | 261 | VIDEO_START( farwest ) |
| 264 | 262 | { |
| 265 | 263 | ironhors_state *state = machine.driver_data<ironhors_state>(); |
| 266 | state->m_bg_tilemap = tilemap | |
| 264 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ironhors_state::farwest_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 267 | 265 | |
| 268 | 266 | state->m_bg_tilemap->set_scroll_rows(32); |
| 269 | 267 | } |
| r17673 | r17674 | |
|---|---|---|
| 31 | 31 | 1 | xxxxxxxx -------- | not used |
| 32 | 32 | */ |
| 33 | 33 | |
| 34 | ||
| 34 | ||
| 35 | 35 | { |
| 36 | glass_state *state = machine.driver_data<glass_state>(); | |
| 37 | int data = state->m_videoram[tile_index << 1]; | |
| 38 | int data2 = state->m_videoram[(tile_index << 1) + 1]; | |
| 36 | int data = m_videoram[tile_index << 1]; | |
| 37 | int data2 = m_videoram[(tile_index << 1) + 1]; | |
| 39 | 38 | int code = ((data & 0x03) << 14) | ((data & 0x0fffc) >> 2); |
| 40 | 39 | |
| 41 | SET_TILE_INFO(0, code, 0x20 + (data2 & 0x1f), TILE_FLIPYX((data2 & 0xc0) >> 6)); | |
| 40 | SET_TILE_INFO_MEMBER(0, code, 0x20 + (data2 & 0x1f), TILE_FLIPYX((data2 & 0xc0) >> 6)); | |
| 42 | 41 | } |
| 43 | 42 | |
| 44 | 43 | |
| 45 | ||
| 44 | ||
| 46 | 45 | { |
| 47 | glass_state *state = machine.driver_data<glass_state>(); | |
| 48 | int data = state->m_videoram[(0x1000 / 2) + (tile_index << 1)]; | |
| 49 | int data2 = state->m_videoram[(0x1000 / 2) + (tile_index << 1) + 1]; | |
| 46 | int data = m_videoram[(0x1000 / 2) + (tile_index << 1)]; | |
| 47 | int data2 = m_videoram[(0x1000 / 2) + (tile_index << 1) + 1]; | |
| 50 | 48 | int code = ((data & 0x03) << 14) | ((data & 0x0fffc) >> 2); |
| 51 | 49 | |
| 52 | SET_TILE_INFO(0, code, 0x20 + (data2 & 0x1f), TILE_FLIPYX((data2 & 0xc0) >> 6)); | |
| 50 | SET_TILE_INFO_MEMBER(0, code, 0x20 + (data2 & 0x1f), TILE_FLIPYX((data2 & 0xc0) >> 6)); | |
| 53 | 51 | } |
| 54 | 52 | |
| 55 | 53 | /*************************************************************************** |
| r17673 | r17674 | |
| 128 | 126 | VIDEO_START( glass ) |
| 129 | 127 | { |
| 130 | 128 | glass_state *state = machine.driver_data<glass_state>(); |
| 131 | state->m_pant[0] = tilemap_create(machine, get_tile_info_glass_screen0, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 132 | state->m_pant[1] = tilemap_create(machine, get_tile_info_glass_screen1, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 129 | state->m_pant[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(glass_state::get_tile_info_glass_screen0),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 130 | state->m_pant[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(glass_state::get_tile_info_glass_screen1),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 133 | 131 | state->m_screen_bitmap = auto_bitmap_ind16_alloc (machine, 320, 200); |
| 134 | 132 | |
| 135 | 133 | state->save_item(NAME(*state->m_screen_bitmap)); |
| r17673 | r17674 | |
|---|---|---|
| 13 | 13 | #include "emu.h" |
| 14 | 14 | #include "includes/mcatadv.h" |
| 15 | 15 | |
| 16 | ||
| 16 | ||
| 17 | 17 | { |
| 18 | mcatadv_state *state = machine.driver_data<mcatadv_state>(); | |
| 19 | int tileno = state->m_videoram1[tile_index * 2 + 1]; | |
| 20 | int colour = (state->m_videoram1[tile_index * 2] & 0x3f00) >> 8; | |
| 21 | int pri = (state->m_videoram1[tile_index * 2] & 0xc000) >> 14; | |
| 18 | int tileno = m_videoram1[tile_index * 2 + 1]; | |
| 19 | int colour = (m_videoram1[tile_index * 2] & 0x3f00) >> 8; | |
| 20 | int pri = (m_videoram1[tile_index * 2] & 0xc000) >> 14; | |
| 22 | 21 | |
| 23 | SET_TILE_INFO(0,tileno,colour + | |
| 22 | SET_TILE_INFO_MEMBER(0,tileno,colour + | |
| 24 | 23 | tileinfo.category = pri; |
| 25 | 24 | } |
| 26 | 25 | |
| r17673 | r17674 | |
| 31 | 30 | m_tilemap1->mark_tile_dirty(offset / 2); |
| 32 | 31 | } |
| 33 | 32 | |
| 34 | ||
| 33 | ||
| 35 | 34 | { |
| 36 | mcatadv_state *state = machine.driver_data<mcatadv_state>(); | |
| 37 | int tileno = state->m_videoram2[tile_index * 2 + 1]; | |
| 38 | int colour = (state->m_videoram2[tile_index * 2] & 0x3f00) >> 8; | |
| 39 | int pri = (state->m_videoram2[tile_index * 2] & 0xc000) >> 14; | |
| 35 | int tileno = m_videoram2[tile_index * 2 + 1]; | |
| 36 | int colour = (m_videoram2[tile_index * 2] & 0x3f00) >> 8; | |
| 37 | int pri = (m_videoram2[tile_index * 2] & 0xc000) >> 14; | |
| 40 | 38 | |
| 41 | SET_TILE_INFO(1, tileno, colour + | |
| 39 | SET_TILE_INFO_MEMBER(1, tileno, colour + | |
| 42 | 40 | tileinfo.category = pri; |
| 43 | 41 | } |
| 44 | 42 | |
| r17673 | r17674 | |
| 253 | 251 | VIDEO_START( mcatadv ) |
| 254 | 252 | { |
| 255 | 253 | mcatadv_state *state = machine.driver_data<mcatadv_state>(); |
| 256 | state->m_tilemap1 = tilemap | |
| 254 | state->m_tilemap1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mcatadv_state::get_mcatadv_tile_info1),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 257 | 255 | state->m_tilemap1->set_transparent_pen(0); |
| 258 | 256 | |
| 259 | state->m_tilemap2 = tilemap | |
| 257 | state->m_tilemap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mcatadv_state::get_mcatadv_tile_info2),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 260 | 258 | state->m_tilemap2->set_transparent_pen(0); |
| 261 | 259 | |
| 262 | 260 | state->m_spriteram_old = auto_alloc_array_clear(machine, UINT16, state->m_spriteram.bytes() / 2); |
| r17673 | r17674 | |
|---|---|---|
| 34 | 34 | |
| 35 | 35 | ***************************************************************************/ |
| 36 | 36 | |
| 37 | ||
| 37 | ||
| 38 | 38 | { |
| 39 | toaplan2_state *state = machine.driver_data<toaplan2_state>(); | |
| 40 | 39 | int color, tile_number, attrib; |
| 41 | 40 | |
| 42 | attrib = | |
| 41 | attrib = | |
| 43 | 42 | tile_number = attrib & 0x3ff; |
| 44 | 43 | color = ((attrib >> 10) | 0x40) & 0x7f; |
| 45 | SET_TILE_INFO( | |
| 44 | SET_TILE_INFO_MEMBER( | |
| 46 | 45 | 2, |
| 47 | 46 | tile_number, |
| 48 | 47 | color, |
| r17673 | r17674 | |
| 60 | 59 | { |
| 61 | 60 | toaplan2_state *state = machine.driver_data<toaplan2_state>(); |
| 62 | 61 | |
| 63 | state->m_tx_tilemap = tilemap | |
| 62 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(toaplan2_state::get_text_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 64 | 63 | state->m_tx_tilemap->set_scroll_rows(8*32); /* line scrolling */ |
| 65 | 64 | state->m_tx_tilemap->set_scroll_cols(1); |
| 66 | 65 | state->m_tx_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 8 | 8 | |
| 9 | 9 | ***************************************************************************/ |
| 10 | 10 | |
| 11 | ||
| 11 | ||
| 12 | 12 | { |
| 13 | mjkjidai_state *state = machine.driver_data<mjkjidai_state>(); | |
| 14 | 13 | |
| 15 | int attr = state->m_videoram[tile_index + 0x800]; | |
| 16 | int code = state->m_videoram[tile_index] + ((attr & 0x1f) << 8); | |
| 17 | int color = state->m_videoram[tile_index + 0x1000]; | |
| 18 | SET_TILE_INFO(0,code,color >> 3,0); | |
| 14 | int attr = m_videoram[tile_index + 0x800]; | |
| 15 | int code = m_videoram[tile_index] + ((attr & 0x1f) << 8); | |
| 16 | int color = m_videoram[tile_index + 0x1000]; | |
| 17 | SET_TILE_INFO_MEMBER(0,code,color >> 3,0); | |
| 19 | 18 | } |
| 20 | 19 | |
| 21 | 20 | |
| r17673 | r17674 | |
| 29 | 28 | VIDEO_START( mjkjidai ) |
| 30 | 29 | { |
| 31 | 30 | mjkjidai_state *state = machine.driver_data<mjkjidai_state>(); |
| 32 | state->m_bg_tilemap = tilemap | |
| 31 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mjkjidai_state::get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32); | |
| 33 | 32 | } |
| 34 | 33 | |
| 35 | 34 |
| r17673 | r17674 | |
|---|---|---|
| 47 | 47 | m_bg_tilemap->mark_tile_dirty(offset); |
| 48 | 48 | } |
| 49 | 49 | |
| 50 | ||
| 50 | ||
| 51 | 51 | { |
| 52 | jailbrek_state *state = machine.driver_data<jailbrek_state>(); | |
| 53 | int attr = state->m_colorram[tile_index]; | |
| 54 | int code = state->m_videoram[tile_index] + ((attr & 0xc0) << 2); | |
| 52 | int attr = m_colorram[tile_index]; | |
| 53 | int code = m_videoram[tile_index] + ((attr & 0xc0) << 2); | |
| 55 | 54 | int color = attr & 0x0f; |
| 56 | 55 | |
| 57 | SET_TILE_INFO(0, code, color, 0); | |
| 56 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 58 | 57 | } |
| 59 | 58 | |
| 60 | 59 | VIDEO_START( jailbrek ) |
| 61 | 60 | { |
| 62 | 61 | jailbrek_state *state = machine.driver_data<jailbrek_state>(); |
| 63 | state->m_bg_tilemap = tilemap | |
| 62 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jailbrek_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 64 | 63 | state->m_bg_tilemap->set_scrolldx(0, 396 - 256); |
| 65 | 64 | } |
| 66 | 65 |
| r17673 | r17674 | |
|---|---|---|
| 31 | 31 | 1 | xxxxxxxx -------- | not used |
| 32 | 32 | */ |
| 33 | 33 | |
| 34 | ||
| 34 | ||
| 35 | 35 | { |
| 36 | gaelco_state *state = machine.driver_data<gaelco_state>(); | |
| 37 | int data = state->m_videoram[tile_index << 1]; | |
| 38 | int data2 = state->m_videoram[(tile_index << 1) + 1]; | |
| 36 | int data = m_videoram[tile_index << 1]; | |
| 37 | int data2 = m_videoram[(tile_index << 1) + 1]; | |
| 39 | 38 | int code = ((data & 0xfffc) >> 2); |
| 40 | 39 | |
| 41 | 40 | tileinfo.category = (data2 >> 6) & 0x03; |
| 42 | 41 | |
| 43 | SET_TILE_INFO(1, 0x4000 + code, data2 & 0x3f, TILE_FLIPYX(data & 0x03)); | |
| 42 | SET_TILE_INFO_MEMBER(1, 0x4000 + code, data2 & 0x3f, TILE_FLIPYX(data & 0x03)); | |
| 44 | 43 | } |
| 45 | 44 | |
| 46 | 45 | |
| 47 | ||
| 46 | ||
| 48 | 47 | { |
| 49 | gaelco_state *state = machine.driver_data<gaelco_state>(); | |
| 50 | int data = state->m_videoram[(0x1000 / 2) + (tile_index << 1)]; | |
| 51 | int data2 = state->m_videoram[(0x1000 / 2) + (tile_index << 1) + 1]; | |
| 48 | int data = m_videoram[(0x1000 / 2) + (tile_index << 1)]; | |
| 49 | int data2 = m_videoram[(0x1000 / 2) + (tile_index << 1) + 1]; | |
| 52 | 50 | int code = ((data & 0xfffc) >> 2); |
| 53 | 51 | |
| 54 | 52 | tileinfo.category = (data2 >> 6) & 0x03; |
| 55 | 53 | |
| 56 | SET_TILE_INFO(1, 0x4000 + code, data2 & 0x3f, TILE_FLIPYX(data & 0x03)); | |
| 54 | SET_TILE_INFO_MEMBER(1, 0x4000 + code, data2 & 0x3f, TILE_FLIPYX(data & 0x03)); | |
| 57 | 55 | } |
| 58 | 56 | |
| 59 | 57 | /*************************************************************************** |
| r17673 | r17674 | |
| 77 | 75 | VIDEO_START( bigkarnk ) |
| 78 | 76 | { |
| 79 | 77 | gaelco_state *state = machine.driver_data<gaelco_state>(); |
| 80 | state->m_tilemap[0] = tilemap_create(machine, get_tile_info_gaelco_screen0, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 81 | state->m_tilemap[1] = tilemap_create(machine, get_tile_info_gaelco_screen1, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 78 | state->m_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaelco_state::get_tile_info_gaelco_screen0),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 79 | state->m_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaelco_state::get_tile_info_gaelco_screen1),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 82 | 80 | |
| 83 | 81 | state->m_tilemap[0]->set_transmask(0, 0xff01, 0x00ff); /* pens 1-7 opaque, pens 0, 8-15 transparent */ |
| 84 | 82 | state->m_tilemap[1]->set_transmask(0, 0xff01, 0x00ff); /* pens 1-7 opaque, pens 0, 8-15 transparent */ |
| r17673 | r17674 | |
| 87 | 85 | VIDEO_START( maniacsq ) |
| 88 | 86 | { |
| 89 | 87 | gaelco_state *state = machine.driver_data<gaelco_state>(); |
| 90 | state->m_tilemap[0] = tilemap_create(machine, get_tile_info_gaelco_screen0, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 91 | state->m_tilemap[1] = tilemap_create(machine, get_tile_info_gaelco_screen1, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 88 | state->m_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaelco_state::get_tile_info_gaelco_screen0),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 89 | state->m_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaelco_state::get_tile_info_gaelco_screen1),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 92 | 90 | |
| 93 | 91 | state->m_tilemap[0]->set_transparent_pen(0); |
| 94 | 92 | state->m_tilemap[1]->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 417 | 417 | [ Frontmost (text) layer + video registers ] |
| 418 | 418 | ------------------------------------------------------------------------*/ |
| 419 | 419 | |
| 420 | ||
| 420 | ||
| 421 | 421 | { |
| 422 | wecleman_state *state = machine.driver_data<wecleman_state>(); | |
| 423 | int code = state->m_txtram[tile_index]; | |
| 424 | SET_TILE_INFO(PAGE_GFX, code&0xfff, (code>>5&0x78)+(code>>12), 0); | |
| 422 | int code = m_txtram[tile_index]; | |
| 423 | SET_TILE_INFO_MEMBER(PAGE_GFX, code&0xfff, (code>>5&0x78)+(code>>12), 0); | |
| 425 | 424 | } |
| 426 | 425 | |
| 427 | 426 | WRITE16_MEMBER(wecleman_state::wecleman_txtram_w) |
| r17673 | r17674 | |
| 464 | 463 | [ Background ] |
| 465 | 464 | ------------------------------------------------------------------------*/ |
| 466 | 465 | |
| 467 | ||
| 466 | ||
| 468 | 467 | { |
| 469 | wecleman_state *state = machine.driver_data<wecleman_state>(); | |
| 470 | int page = state->m_bgpage[((tile_index&0x7f)>>6) + ((tile_index>>12)<<1)]; | |
| 471 | int code = state->m_pageram[(tile_index&0x3f) + ((tile_index>>7&0x1f)<<6) + (page<<11)]; | |
| 468 | int page = m_bgpage[((tile_index&0x7f)>>6) + ((tile_index>>12)<<1)]; | |
| 469 | int code = m_pageram[(tile_index&0x3f) + ((tile_index>>7&0x1f)<<6) + (page<<11)]; | |
| 472 | 470 | |
| 473 | SET_TILE_INFO(PAGE_GFX, code&0xfff, (code>>5&0x78)+(code>>12), 0); | |
| 471 | SET_TILE_INFO_MEMBER(PAGE_GFX, code&0xfff, (code>>5&0x78)+(code>>12), 0); | |
| 474 | 472 | } |
| 475 | 473 | |
| 476 | 474 | /*------------------------------------------------------------------------ |
| 477 | 475 | [ Foreground ] |
| 478 | 476 | ------------------------------------------------------------------------*/ |
| 479 | 477 | |
| 480 | ||
| 478 | ||
| 481 | 479 | { |
| 482 | wecleman_state *state = machine.driver_data<wecleman_state>(); | |
| 483 | int page = state->m_fgpage[((tile_index&0x7f)>>6) + ((tile_index>>12)<<1)]; | |
| 484 | int code = state->m_pageram[(tile_index&0x3f) + ((tile_index>>7&0x1f)<<6) + (page<<11)]; | |
| 480 | int page = m_fgpage[((tile_index&0x7f)>>6) + ((tile_index>>12)<<1)]; | |
| 481 | int code = m_pageram[(tile_index&0x3f) + ((tile_index>>7&0x1f)<<6) + (page<<11)]; | |
| 485 | 482 | |
| 486 | 483 | if (!code || code==0xffff) code = 0x20; |
| 487 | SET_TILE_INFO(PAGE_GFX, code&0xfff, (code>>5&0x78)+(code>>12), 0); | |
| 484 | SET_TILE_INFO_MEMBER(PAGE_GFX, code&0xfff, (code>>5&0x78)+(code>>12), 0); | |
| 488 | 485 | } |
| 489 | 486 | |
| 490 | 487 | /*------------------------------------------------------------------------ |
| r17673 | r17674 | |
| 933 | 930 | |
| 934 | 931 | state->m_sprite_list = auto_alloc_array_clear(machine, struct sprite, NUM_SPRITES); |
| 935 | 932 | |
| 936 | state->m_bg_tilemap = tilemap | |
| 933 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wecleman_state::wecleman_get_bg_tile_info),state), | |
| 937 | 934 | TILEMAP_SCAN_ROWS, |
| 938 | 935 | /* We draw part of the road below */ |
| 939 | 936 | 8,8, |
| 940 | 937 | PAGE_NX * 2, PAGE_NY * 2 ); |
| 941 | 938 | |
| 942 | state->m_fg_tilemap = tilemap | |
| 939 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wecleman_state::wecleman_get_fg_tile_info),state), | |
| 943 | 940 | TILEMAP_SCAN_ROWS, |
| 944 | 941 | |
| 945 | 942 | 8,8, |
| 946 | 943 | PAGE_NX * 2, PAGE_NY * 2); |
| 947 | 944 | |
| 948 | state->m_txt_tilemap = tilemap | |
| 945 | state->m_txt_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wecleman_state::wecleman_get_txt_tile_info),state), | |
| 949 | 946 | TILEMAP_SCAN_ROWS, |
| 950 | 947 | |
| 951 | 948 | 8,8, |
| r17673 | r17674 | |
|---|---|---|
| 26 | 26 | |
| 27 | 27 | */ |
| 28 | 28 | |
| 29 | ||
| 29 | ||
| 30 | 30 | { |
| 31 | tankbust_state *state = machine.driver_data<tankbust_state>(); | |
| 32 | int code = state->m_videoram[tile_index]; | |
| 33 | int attr = state->m_colorram[tile_index]; | |
| 31 | int code = m_videoram[tile_index]; | |
| 32 | int attr = m_colorram[tile_index]; | |
| 34 | 33 | |
| 35 | 34 | int color = ((attr>>4) & 0x07); |
| 36 | 35 | |
| r17673 | r17674 | |
| 51 | 50 | /* priority bg/sprites (1 = this bg tile on top of sprites) */ |
| 52 | 51 | tileinfo.category = (attr & 0x08) >> 3; |
| 53 | 52 | |
| 54 | SET_TILE_INFO( 1, | |
| 53 | SET_TILE_INFO_MEMBER( 1, | |
| 55 | 54 | code, |
| 56 | 55 | (color&4) | ((color&2)>>1) | ((color&1)<<1), |
| 57 | 56 | 0); |
| 58 | 57 | } |
| 59 | 58 | |
| 60 | ||
| 59 | ||
| 61 | 60 | { |
| 62 | tankbust_state *state = machine.driver_data<tankbust_state>(); | |
| 63 | int code = state->m_txtram[tile_index]; | |
| 61 | int code = m_txtram[tile_index]; | |
| 64 | 62 | int color = ((code>>6) & 0x03); |
| 65 | 63 | |
| 66 | SET_TILE_INFO( 2, | |
| 64 | SET_TILE_INFO_MEMBER( 2, | |
| 67 | 65 | code & 0x3f, |
| 68 | 66 | ((color&2)>>1) | ((color&1)<<1), |
| 69 | 67 | 0); |
| r17673 | r17674 | |
| 80 | 78 | { |
| 81 | 79 | tankbust_state *state = machine.driver_data<tankbust_state>(); |
| 82 | 80 | /* not scrollable */ |
| 83 | state->m_txt_tilemap = tilemap | |
| 81 | state->m_txt_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tankbust_state::get_txt_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 84 | 82 | |
| 85 | 83 | /* scrollable */ |
| 86 | state->m_bg_tilemap = tilemap | |
| 84 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tankbust_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 87 | 85 | |
| 88 | 86 | |
| 89 | 87 | state->m_txt_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 132 | 132 | /* bits 6-7 unknown */ |
| 133 | 133 | } |
| 134 | 134 | |
| 135 | ||
| 135 | ||
| 136 | 136 | { |
| 137 | bankp_state *state = machine.driver_data<bankp_state>(); | |
| 138 | int code = state->m_videoram2[tile_index] + 256 * (state->m_colorram2[tile_index] & 0x07); | |
| 139 | int color = state->m_colorram2[tile_index] >> 4; | |
| 140 | int flags = (state->m_colorram2[tile_index] & 0x08) ? TILE_FLIPX : 0; | |
| 137 | int code = m_videoram2[tile_index] + 256 * (m_colorram2[tile_index] & 0x07); | |
| 138 | int color = m_colorram2[tile_index] >> 4; | |
| 139 | int flags = (m_colorram2[tile_index] & 0x08) ? TILE_FLIPX : 0; | |
| 141 | 140 | |
| 142 | SET_TILE_INFO(1, code, color, flags); | |
| 141 | SET_TILE_INFO_MEMBER(1, code, color, flags); | |
| 143 | 142 | tileinfo.group = color; |
| 144 | 143 | } |
| 145 | 144 | |
| 146 | ||
| 145 | ||
| 147 | 146 | { |
| 148 | bankp_state *state = machine.driver_data<bankp_state>(); | |
| 149 | int code = state->m_videoram[tile_index] + 256 * ((state->m_colorram[tile_index] & 3) >> 0); | |
| 150 | int color = state->m_colorram[tile_index] >> 3; | |
| 151 | int flags = (state->m_colorram[tile_index] & 0x04) ? TILE_FLIPX : 0; | |
| 147 | int code = m_videoram[tile_index] + 256 * ((m_colorram[tile_index] & 3) >> 0); | |
| 148 | int color = m_colorram[tile_index] >> 3; | |
| 149 | int flags = (m_colorram[tile_index] & 0x04) ? TILE_FLIPX : 0; | |
| 152 | 150 | |
| 153 | SET_TILE_INFO(0, code, color, flags); | |
| 151 | SET_TILE_INFO_MEMBER(0, code, color, flags); | |
| 154 | 152 | tileinfo.group = color; |
| 155 | 153 | } |
| 156 | 154 | |
| r17673 | r17674 | |
| 158 | 156 | { |
| 159 | 157 | bankp_state *state = machine.driver_data<bankp_state>(); |
| 160 | 158 | |
| 161 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 162 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 159 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bankp_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 160 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bankp_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 163 | 161 | |
| 164 | 162 | colortable_configure_tilemap_groups(machine.colortable, state->m_bg_tilemap, machine.gfx[1], 0); |
| 165 | 163 | colortable_configure_tilemap_groups(machine.colortable, state->m_fg_tilemap, machine.gfx[0], 0); |
| r17673 | r17674 | |
|---|---|---|
| 59 | 59 | m_bg_tilemap->mark_tile_dirty(offset); |
| 60 | 60 | } |
| 61 | 61 | |
| 62 | ||
| 62 | ||
| 63 | 63 | { |
| 64 | crbaloon_state *state = machine.driver_data<crbaloon_state>(); | |
| 65 | int code = state->m_videoram[tile_index]; | |
| 66 | int color = state->m_colorram[tile_index] & 0x0f; | |
| 64 | int code = m_videoram[tile_index]; | |
| 65 | int color = m_colorram[tile_index] & 0x0f; | |
| 67 | 66 | |
| 68 | SET_TILE_INFO(0, code, color, 0); | |
| 67 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 69 | 68 | } |
| 70 | 69 | |
| 71 | 70 | VIDEO_START( crbaloon ) |
| 72 | 71 | { |
| 73 | 72 | crbaloon_state *state = machine.driver_data<crbaloon_state>(); |
| 74 | state->m_bg_tilemap = tilemap | |
| 73 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(crbaloon_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS_FLIP_XY, 8, 8, 32, 32); | |
| 75 | 74 | |
| 76 | 75 | state->save_item(NAME(state->m_collision_address)); |
| 77 | 76 | state->save_item(NAME(state->m_collision_address_clear)); |
| r17673 | r17674 | |
|---|---|---|
| 52 | 52 | SET_TILE_INFO( 0, tilenum, color, flags ); |
| 53 | 53 | } |
| 54 | 54 | |
| 55 | ||
| 55 | ||
| 56 | 56 | { |
| 57 | portrait_state *state = machine.driver_data<portrait_state>(); | |
| 58 | get_tile_info( machine, tileinfo, tile_index, state->m_bgvideoram ); | |
| 57 | get_tile_info( machine(), tileinfo, tile_index, m_bgvideoram ); | |
| 59 | 58 | } |
| 60 | 59 | |
| 61 | ||
| 60 | ||
| 62 | 61 | { |
| 63 | portrait_state *state = machine.driver_data<portrait_state>(); | |
| 64 | get_tile_info( machine, tileinfo, tile_index, state->m_fgvideoram ); | |
| 62 | get_tile_info( machine(), tileinfo, tile_index, m_fgvideoram ); | |
| 65 | 63 | } |
| 66 | 64 | |
| 67 | 65 | VIDEO_START( portrait ) |
| 68 | 66 | { |
| 69 | 67 | portrait_state *state = machine.driver_data<portrait_state>(); |
| 70 | state->m_background = tilemap_create( machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32 ); | |
| 71 | state->m_foreground = tilemap_create( machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32 ); | |
| 68 | state->m_background = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(portrait_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32 ); | |
| 69 | state->m_foreground = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(portrait_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32 ); | |
| 72 | 70 | |
| 73 | 71 | state->m_foreground->set_transparent_pen(7 ); |
| 74 | 72 | } |
| r17673 | r17674 | |
|---|---|---|
| 71 | 71 | flip_screen_set(data & 0x01); |
| 72 | 72 | } |
| 73 | 73 | |
| 74 | ||
| 74 | ||
| 75 | 75 | { |
| 76 | funkybee_state *state = machine.driver_data<funkybee_state>(); | |
| 77 | int code = state->m_videoram[tile_index] + ((state->m_colorram[tile_index] & 0x80) << 1); | |
| 78 | int color = state->m_colorram[tile_index] & 0x03; | |
| 76 | int code = m_videoram[tile_index] + ((m_colorram[tile_index] & 0x80) << 1); | |
| 77 | int color = m_colorram[tile_index] & 0x03; | |
| 79 | 78 | |
| 80 | SET_TILE_INFO( | |
| 79 | SET_TILE_INFO_MEMBER( | |
| 81 | 80 | } |
| 82 | 81 | |
| 83 | ||
| 82 | ||
| 84 | 83 | { |
| 85 | 84 | /* logical (col,row) -> memory offset */ |
| 86 | 85 | return 256 * row + col; |
| r17673 | r17674 | |
| 89 | 88 | VIDEO_START( funkybee ) |
| 90 | 89 | { |
| 91 | 90 | funkybee_state *state = machine.driver_data<funkybee_state>(); |
| 92 | state->m_bg_tilemap = tilemap | |
| 91 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(funkybee_state::get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(funkybee_state::funkybee_tilemap_scan),state), 8, 8, 32, 32); | |
| 93 | 92 | } |
| 94 | 93 | |
| 95 | 94 | static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ) |
| r17673 | r17674 | |
|---|---|---|
| 123 | 123 | #define NX_0 (0x40) |
| 124 | 124 | #define NY_0 (0x40) |
| 125 | 125 | |
| 126 | ||
| 126 | ||
| 127 | 127 | { |
| 128 | tetrisp2_state *state = machine.driver_data<tetrisp2_state>(); | |
| 129 | UINT16 code_hi = state->m_vram_bg[ 2 * tile_index + 0]; | |
| 130 | UINT16 code_lo = state->m_vram_bg[ 2 * tile_index + 1]; | |
| 131 | SET_TILE_INFO( | |
| 128 | UINT16 code_hi = m_vram_bg[ 2 * tile_index + 0]; | |
| 129 | UINT16 code_lo = m_vram_bg[ 2 * tile_index + 1]; | |
| 130 | SET_TILE_INFO_MEMBER( | |
| 132 | 131 | 1, |
| 133 | 132 | code_hi, |
| 134 | 133 | code_lo & 0xf, |
| r17673 | r17674 | |
| 145 | 144 | #define NX_1 (0x40) |
| 146 | 145 | #define NY_1 (0x40) |
| 147 | 146 | |
| 148 | ||
| 147 | ||
| 149 | 148 | { |
| 150 | tetrisp2_state *state = machine.driver_data<tetrisp2_state>(); | |
| 151 | UINT16 code_hi = state->m_vram_fg[ 2 * tile_index + 0]; | |
| 152 | UINT16 code_lo = state->m_vram_fg[ 2 * tile_index + 1]; | |
| 153 | SET_TILE_INFO( | |
| 149 | UINT16 code_hi = m_vram_fg[ 2 * tile_index + 0]; | |
| 150 | UINT16 code_lo = m_vram_fg[ 2 * tile_index + 1]; | |
| 151 | SET_TILE_INFO_MEMBER( | |
| 154 | 152 | 3, |
| 155 | 153 | code_hi, |
| 156 | 154 | code_lo & 0xf, |
| r17673 | r17674 | |
| 164 | 162 | } |
| 165 | 163 | |
| 166 | 164 | |
| 167 | ||
| 165 | ||
| 168 | 166 | { |
| 169 | tetrisp2_state *state = machine.driver_data<tetrisp2_state>(); | |
| 170 | UINT16 code_hi = state->m_vram_rot[ 2 * tile_index + 0]; | |
| 171 | UINT16 code_lo = state->m_vram_rot[ 2 * tile_index + 1]; | |
| 172 | SET_TILE_INFO( | |
| 167 | UINT16 code_hi = m_vram_rot[ 2 * tile_index + 0]; | |
| 168 | UINT16 code_lo = m_vram_rot[ 2 * tile_index + 1]; | |
| 169 | SET_TILE_INFO_MEMBER( | |
| 173 | 170 | 2, |
| 174 | 171 | code_hi, |
| 175 | 172 | code_lo & 0xf, |
| r17673 | r17674 | |
| 182 | 179 | m_tilemap_rot->mark_tile_dirty(offset/2); |
| 183 | 180 | } |
| 184 | 181 | |
| 185 | ||
| 182 | ||
| 186 | 183 | { |
| 187 | tetrisp2_state *state = machine.driver_data<tetrisp2_state>(); | |
| 188 | UINT16 code_hi = state->m_rocknms_sub_vram_bg[ 2 * tile_index + 0]; | |
| 189 | UINT16 code_lo = state->m_rocknms_sub_vram_bg[ 2 * tile_index + 1]; | |
| 190 | SET_TILE_INFO( | |
| 184 | UINT16 code_hi = m_rocknms_sub_vram_bg[ 2 * tile_index + 0]; | |
| 185 | UINT16 code_lo = m_rocknms_sub_vram_bg[ 2 * tile_index + 1]; | |
| 186 | SET_TILE_INFO_MEMBER( | |
| 191 | 187 | 5, |
| 192 | 188 | code_hi, |
| 193 | 189 | code_lo & 0xf, |
| r17673 | r17674 | |
| 201 | 197 | } |
| 202 | 198 | |
| 203 | 199 | |
| 204 | ||
| 200 | ||
| 205 | 201 | { |
| 206 | tetrisp2_state *state = machine.driver_data<tetrisp2_state>(); | |
| 207 | UINT16 code_hi = state->m_rocknms_sub_vram_fg[ 2 * tile_index + 0]; | |
| 208 | UINT16 code_lo = state->m_rocknms_sub_vram_fg[ 2 * tile_index + 1]; | |
| 209 | SET_TILE_INFO( | |
| 202 | UINT16 code_hi = m_rocknms_sub_vram_fg[ 2 * tile_index + 0]; | |
| 203 | UINT16 code_lo = m_rocknms_sub_vram_fg[ 2 * tile_index + 1]; | |
| 204 | SET_TILE_INFO_MEMBER( | |
| 210 | 205 | 7, |
| 211 | 206 | code_hi, |
| 212 | 207 | code_lo & 0xf, |
| r17673 | r17674 | |
| 220 | 215 | } |
| 221 | 216 | |
| 222 | 217 | |
| 223 | ||
| 218 | ||
| 224 | 219 | { |
| 225 | tetrisp2_state *state = machine.driver_data<tetrisp2_state>(); | |
| 226 | UINT16 code_hi = state->m_rocknms_sub_vram_rot[ 2 * tile_index + 0]; | |
| 227 | UINT16 code_lo = state->m_rocknms_sub_vram_rot[ 2 * tile_index + 1]; | |
| 228 | SET_TILE_INFO( | |
| 220 | UINT16 code_hi = m_rocknms_sub_vram_rot[ 2 * tile_index + 0]; | |
| 221 | UINT16 code_lo = m_rocknms_sub_vram_rot[ 2 * tile_index + 1]; | |
| 222 | SET_TILE_INFO_MEMBER( | |
| 229 | 223 | 6, |
| 230 | 224 | code_hi, |
| 231 | 225 | code_lo & 0xf, |
| r17673 | r17674 | |
| 245 | 239 | tetrisp2_state *state = machine.driver_data<tetrisp2_state>(); |
| 246 | 240 | state->m_flipscreen_old = -1; |
| 247 | 241 | |
| 248 | state->m_tilemap_bg = tilemap_create( machine, get_tile_info_bg,TILEMAP_SCAN_ROWS, | |
| 249 | ||
| 250 | 16,16,NX_0,NY_0); | |
| 251 | ||
| 252 | state->m_tilemap_fg = tilemap_create( machine, get_tile_info_fg,TILEMAP_SCAN_ROWS, | |
| 253 | ||
| 254 | 8,8,NX_1,NY_1); | |
| 255 | ||
| 256 | state->m_tilemap_rot = tilemap_create( machine, get_tile_info_rot,TILEMAP_SCAN_ROWS, | |
| 257 | ||
| 258 | 16,16,NX_0*2,NY_0*2); | |
| 259 | ||
| 242 | state->m_tilemap_bg = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_bg),state),TILEMAP_SCAN_ROWS,16,16,NX_0,NY_0); | |
| 243 | state->m_tilemap_fg = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_fg),state),TILEMAP_SCAN_ROWS,8,8,NX_1,NY_1); | |
| 244 | state->m_tilemap_rot = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_rot),state),TILEMAP_SCAN_ROWS,16,16,NX_0*2,NY_0*2); | |
| 260 | 245 | state->m_tilemap_bg->set_transparent_pen(0); |
| 261 | 246 | state->m_tilemap_fg->set_transparent_pen(0); |
| 262 | 247 | state->m_tilemap_rot->set_transparent_pen(0); |
| r17673 | r17674 | |
| 278 | 263 | tetrisp2_state *state = machine.driver_data<tetrisp2_state>(); |
| 279 | 264 | state->m_flipscreen_old = -1; |
| 280 | 265 | |
| 281 | state->m_tilemap_bg = tilemap_create( machine, get_tile_info_bg,TILEMAP_SCAN_ROWS, | |
| 266 | state->m_tilemap_bg = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_bg),state),TILEMAP_SCAN_ROWS,16, 16, 256, 16); // rockn ms(main),1,2,3,4 | |
| 267 | state->m_tilemap_fg = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_fg),state),TILEMAP_SCAN_ROWS,8, 8, 64, 64); | |
| 268 | state->m_tilemap_rot = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_rot),state),TILEMAP_SCAN_ROWS,16, 16, 128, 128); | |
| 282 | 269 | |
| 283 | 16, 16, 256, 16); // rockn ms(main),1,2,3,4 | |
| 284 | ||
| 285 | state->m_tilemap_fg = tilemap_create( machine, get_tile_info_fg,TILEMAP_SCAN_ROWS, | |
| 286 | ||
| 287 | 8, 8, 64, 64); | |
| 288 | ||
| 289 | state->m_tilemap_rot = tilemap_create( machine, get_tile_info_rot,TILEMAP_SCAN_ROWS, | |
| 290 | ||
| 291 | 16, 16, 128, 128); | |
| 292 | ||
| 293 | 270 | state->m_tilemap_bg->set_transparent_pen(0); |
| 294 | 271 | state->m_tilemap_fg->set_transparent_pen(0); |
| 295 | 272 | state->m_tilemap_rot->set_transparent_pen(0); |
| r17673 | r17674 | |
| 305 | 282 | tetrisp2_state *state = machine.driver_data<tetrisp2_state>(); |
| 306 | 283 | VIDEO_START_CALL( rockntread ); |
| 307 | 284 | |
| 308 | state->m_tilemap_sub_bg = tilemap_create(machine, get_tile_info_rocknms_sub_bg,TILEMAP_SCAN_ROWS, | |
| 285 | state->m_tilemap_sub_bg = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_rocknms_sub_bg),state),TILEMAP_SCAN_ROWS,16, 16, 32, 256); // rockn ms(sub) | |
| 286 | state->m_tilemap_sub_fg = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_rocknms_sub_fg),state),TILEMAP_SCAN_ROWS,8, 8, 64, 64); | |
| 287 | state->m_tilemap_sub_rot = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_rocknms_sub_rot),state),TILEMAP_SCAN_ROWS,16, 16, 128, 128); | |
| 309 | 288 | |
| 310 | 16, 16, 32, 256); // rockn ms(sub) | |
| 311 | ||
| 312 | state->m_tilemap_sub_fg = tilemap_create(machine, get_tile_info_rocknms_sub_fg,TILEMAP_SCAN_ROWS, | |
| 313 | ||
| 314 | 8, 8, 64, 64); | |
| 315 | ||
| 316 | state->m_tilemap_sub_rot = tilemap_create( machine, get_tile_info_rocknms_sub_rot,TILEMAP_SCAN_ROWS, | |
| 317 | ||
| 318 | 16, 16, 128, 128); | |
| 319 | ||
| 320 | 289 | state->m_tilemap_sub_bg->set_transparent_pen(0); |
| 321 | 290 | state->m_tilemap_sub_fg->set_transparent_pen(0); |
| 322 | 291 | state->m_tilemap_sub_rot->set_transparent_pen(0); |
| r17673 | r17674 | |
| 760 | 729 | |
| 761 | 730 | // Temporary hack for stpestag: unaltered ASCII bytes are written in the most significant byte |
| 762 | 731 | // of code_hi, one of the CPUs probably reads them and writes the actual tile codes somewhere. |
| 763 | ||
| 732 | ||
| 764 | 733 | { |
| 765 | stepstag_state *state = machine.driver_data<stepstag_state>(); | |
| 766 | UINT16 code_hi = state->m_vram_fg[ 2 * tile_index + 0]; | |
| 767 | UINT16 code_lo = state->m_vram_fg[ 2 * tile_index + 1]; | |
| 734 | UINT16 code_hi = m_vram_fg[ 2 * tile_index + 0]; | |
| 735 | UINT16 code_lo = m_vram_fg[ 2 * tile_index + 1]; | |
| 768 | 736 | |
| 769 | 737 | // ASCII -> tile codes |
| 770 | 738 | code_hi = (code_hi & 0xff00) >> 8; |
| 771 | 739 | code_hi = (code_hi & 0x0f) + (code_hi & 0xf0)*2; |
| 772 | 740 | code_hi += 0xbd6c; |
| 773 | 741 | |
| 774 | SET_TILE_INFO( | |
| 742 | SET_TILE_INFO_MEMBER( | |
| 775 | 743 | 2, |
| 776 | 744 | code_hi, |
| 777 | 745 | code_lo & 0xf, |
| r17673 | r17674 | |
| 783 | 751 | stepstag_state *state = machine.driver_data<stepstag_state>(); |
| 784 | 752 | state->m_flipscreen_old = -1; |
| 785 | 753 | |
| 786 | state->m_tilemap_bg = tilemap_create( machine, get_tile_info_bg,TILEMAP_SCAN_ROWS, | |
| 787 | 16,16,NX_0,NY_0); | |
| 788 | ||
| 754 | state->m_tilemap_bg = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_bg),state),TILEMAP_SCAN_ROWS,16,16,NX_0,NY_0); | |
| 789 | 755 | // Temporary hack |
| 790 | state->m_tilemap_fg = tilemap_create( machine, stepstag_get_tile_info_fg,TILEMAP_SCAN_ROWS, | |
| 791 | 8,8,NX_1,NY_1); | |
| 792 | ||
| 793 | state->m_tilemap_rot = tilemap_create( machine, get_tile_info_rot,TILEMAP_SCAN_ROWS, | |
| 794 | 16,16,NX_0*2,NY_0*2); | |
| 795 | ||
| 756 | state->m_tilemap_fg = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tetrisp2_state::stepstag_get_tile_info_fg),state),TILEMAP_SCAN_ROWS,8,8,NX_1,NY_1); | |
| 757 | state->m_tilemap_rot = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tetrisp2_state::get_tile_info_rot),state),TILEMAP_SCAN_ROWS,16,16,NX_0*2,NY_0*2); | |
| 796 | 758 | state->m_tilemap_bg->set_transparent_pen(0); |
| 797 | 759 | state->m_tilemap_fg->set_transparent_pen(0); |
| 798 | 760 | state->m_tilemap_rot->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 16 | 16 | |
| 17 | 17 | ***************************************************************************/ |
| 18 | 18 | |
| 19 | ||
| 19 | ||
| 20 | 20 | { |
| 21 | lastduel_state *state = machine.driver_data<lastduel_state>(); | |
| 22 | int tile = state->m_scroll2[2 * tile_index] & 0x1fff; | |
| 23 | int color = state->m_scroll2[2 * tile_index + 1]; | |
| 24 | SET_TILE_INFO( | |
| 21 | int tile = m_scroll2[2 * tile_index] & 0x1fff; | |
| 22 | int color = m_scroll2[2 * tile_index + 1]; | |
| 23 | SET_TILE_INFO_MEMBER( | |
| 25 | 24 | 2, |
| 26 | 25 | tile,color & 0xf, |
| 27 | 26 | TILE_FLIPYX((color & 0x60) >> 5)); |
| 28 | 27 | } |
| 29 | 28 | |
| 30 | ||
| 29 | ||
| 31 | 30 | { |
| 32 | lastduel_state *state = machine.driver_data<lastduel_state>(); | |
| 33 | int tile = state->m_scroll1[2 * tile_index] & 0x1fff; | |
| 34 | int color = state->m_scroll1[2 * tile_index + 1]; | |
| 35 | SET_TILE_INFO( | |
| 31 | int tile = m_scroll1[2 * tile_index] & 0x1fff; | |
| 32 | int color = m_scroll1[2 * tile_index + 1]; | |
| 33 | SET_TILE_INFO_MEMBER( | |
| 36 | 34 | 3, |
| 37 | 35 | tile, |
| 38 | 36 | color & 0xf, |
| r17673 | r17674 | |
| 40 | 38 | tileinfo.group = (color & 0x80) >> 7; |
| 41 | 39 | } |
| 42 | 40 | |
| 43 | ||
| 41 | ||
| 44 | 42 | { |
| 45 | lastduel_state *state = machine.driver_data<lastduel_state>(); | |
| 46 | int tile = state->m_scroll2[tile_index] & 0x1fff; | |
| 47 | int color = state->m_scroll2[tile_index + 0x0800]; | |
| 48 | SET_TILE_INFO( | |
| 43 | int tile = m_scroll2[tile_index] & 0x1fff; | |
| 44 | int color = m_scroll2[tile_index + 0x0800]; | |
| 45 | SET_TILE_INFO_MEMBER( | |
| 49 | 46 | 2, |
| 50 | 47 | tile, |
| 51 | 48 | color & 0xf, |
| 52 | 49 | TILE_FLIPYX((color & 0x60) >> 5)); |
| 53 | 50 | } |
| 54 | 51 | |
| 55 | ||
| 52 | ||
| 56 | 53 | { |
| 57 | lastduel_state *state = machine.driver_data<lastduel_state>(); | |
| 58 | int tile = state->m_scroll1[tile_index] & 0x1fff; | |
| 59 | int color = state->m_scroll1[tile_index + 0x0800]; | |
| 60 | SET_TILE_INFO( | |
| 54 | int tile = m_scroll1[tile_index] & 0x1fff; | |
| 55 | int color = m_scroll1[tile_index + 0x0800]; | |
| 56 | SET_TILE_INFO_MEMBER( | |
| 61 | 57 | 3, |
| 62 | 58 | tile, |
| 63 | 59 | color & 0xf, |
| r17673 | r17674 | |
| 65 | 61 | tileinfo.group = (color & 0x10) >> 4; |
| 66 | 62 | } |
| 67 | 63 | |
| 68 | ||
| 64 | ||
| 69 | 65 | { |
| 70 | lastduel_state *state = machine.driver_data<lastduel_state>(); | |
| 71 | int tile = state->m_vram[tile_index]; | |
| 72 | SET_TILE_INFO( | |
| 66 | int tile = m_vram[tile_index]; | |
| 67 | SET_TILE_INFO_MEMBER( | |
| 73 | 68 | 1, |
| 74 | 69 | tile & 0x7ff, |
| 75 | 70 | tile>>12, |
| r17673 | r17674 | |
| 87 | 82 | VIDEO_START( lastduel ) |
| 88 | 83 | { |
| 89 | 84 | lastduel_state *state = machine.driver_data<lastduel_state>(); |
| 90 | state->m_bg_tilemap = tilemap_create(machine, ld_get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); | |
| 91 | state->m_fg_tilemap = tilemap_create(machine, ld_get_fg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); | |
| 92 | state->m_tx_tilemap = tilemap_create(machine, get_fix_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 85 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lastduel_state::ld_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); | |
| 86 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lastduel_state::ld_get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); | |
| 87 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lastduel_state::get_fix_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 93 | 88 | |
| 94 | 89 | state->m_fg_tilemap->set_transmask(0, 0xffff, 0x0001); |
| 95 | 90 | state->m_fg_tilemap->set_transmask(1, 0xf07f, 0x0f81); |
| r17673 | r17674 | |
| 103 | 98 | VIDEO_START( madgear ) |
| 104 | 99 | { |
| 105 | 100 | lastduel_state *state = machine.driver_data<lastduel_state>(); |
| 106 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_COLS,16,16,64,32); | |
| 107 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info,TILEMAP_SCAN_COLS,16,16,64,32); | |
| 108 | state->m_tx_tilemap = tilemap_create(machine, get_fix_info,TILEMAP_SCAN_ROWS,8,8,64,32); | |
| 101 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lastduel_state::get_bg_tile_info),state),TILEMAP_SCAN_COLS,16,16,64,32); | |
| 102 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lastduel_state::get_fg_tile_info),state),TILEMAP_SCAN_COLS,16,16,64,32); | |
| 103 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lastduel_state::get_fix_info),state),TILEMAP_SCAN_ROWS,8,8,64,32); | |
| 109 | 104 | |
| 110 | 105 | state->m_fg_tilemap->set_transmask(0, 0xffff, 0x8000); |
| 111 | 106 | state->m_fg_tilemap->set_transmask(1, 0x80ff, 0xff00); |
| r17673 | r17674 | |
|---|---|---|
| 37 | 37 | |
| 38 | 38 | /******************************************************************************/ |
| 39 | 39 | |
| 40 | ||
| 40 | ||
| 41 | 41 | { |
| 42 | alpha68k_state *state = machine.driver_data<alpha68k_state>(); | |
| 43 | int tile = state->m_videoram[2 * tile_index] & 0xff; | |
| 44 | int color = state->m_videoram[2 * tile_index + 1] & 0x0f; | |
| 42 | int tile = m_videoram[2 * tile_index] & 0xff; | |
| 43 | int color = m_videoram[2 * tile_index + 1] & 0x0f; | |
| 45 | 44 | |
| 46 | tile = tile | ( | |
| 45 | tile = tile | ( | |
| 47 | 46 | |
| 48 | SET_TILE_INFO(0, tile, color, 0); | |
| 47 | SET_TILE_INFO_MEMBER(0, tile, color, 0); | |
| 49 | 48 | } |
| 50 | 49 | |
| 51 | 50 | WRITE16_MEMBER(alpha68k_state::alpha68k_videoram_w) |
| r17673 | r17674 | |
| 66 | 65 | { |
| 67 | 66 | alpha68k_state *state = machine.driver_data<alpha68k_state>(); |
| 68 | 67 | |
| 69 | state->m_fix_tilemap = tilemap | |
| 68 | state->m_fix_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(alpha68k_state::get_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); | |
| 70 | 69 | state->m_fix_tilemap->set_transparent_pen(0); |
| 71 | 70 | } |
| 72 | 71 |
| r17673 | r17674 | |
|---|---|---|
| 6 | 6 | #include "includes/drgnmst.h" |
| 7 | 7 | |
| 8 | 8 | |
| 9 | ||
| 9 | ||
| 10 | 10 | { |
| 11 | drgnmst_state *state = machine.driver_data<drgnmst_state>(); | |
| 12 | 11 | int tileno, colour, flipyx; |
| 13 | tileno = state->m_fg_videoram[tile_index * 2] & 0xfff; | |
| 14 | colour = state->m_fg_videoram[tile_index * 2 + 1] & 0x1f; | |
| 15 | flipyx = (state->m_fg_videoram[tile_index * 2 + 1] & 0x60)>>5; | |
| 12 | tileno = m_fg_videoram[tile_index * 2] & 0xfff; | |
| 13 | colour = m_fg_videoram[tile_index * 2 + 1] & 0x1f; | |
| 14 | flipyx = (m_fg_videoram[tile_index * 2 + 1] & 0x60)>>5; | |
| 16 | 15 | |
| 17 | SET_TILE_INFO(1, tileno, colour, TILE_FLIPYX(flipyx)); | |
| 16 | SET_TILE_INFO_MEMBER(1, tileno, colour, TILE_FLIPYX(flipyx)); | |
| 18 | 17 | } |
| 19 | 18 | |
| 20 | 19 | WRITE16_MEMBER(drgnmst_state::drgnmst_fg_videoram_w) |
| r17673 | r17674 | |
| 23 | 22 | m_fg_tilemap->mark_tile_dirty(offset / 2); |
| 24 | 23 | } |
| 25 | 24 | |
| 26 | ||
| 25 | ||
| 27 | 26 | { |
| 28 | drgnmst_state *state = machine.driver_data<drgnmst_state>(); | |
| 29 | 27 | int tileno, colour, flipyx; |
| 30 | tileno = (state->m_bg_videoram[tile_index * 2]& 0x1fff) + 0x800; | |
| 31 | colour = state->m_bg_videoram[tile_index * 2 + 1] & 0x1f; | |
| 32 | flipyx = (state->m_bg_videoram[tile_index * 2 + 1] & 0x60) >> 5; | |
| 28 | tileno = (m_bg_videoram[tile_index * 2]& 0x1fff) + 0x800; | |
| 29 | colour = m_bg_videoram[tile_index * 2 + 1] & 0x1f; | |
| 30 | flipyx = (m_bg_videoram[tile_index * 2 + 1] & 0x60) >> 5; | |
| 33 | 31 | |
| 34 | SET_TILE_INFO(3, tileno, colour, TILE_FLIPYX(flipyx)); | |
| 32 | SET_TILE_INFO_MEMBER(3, tileno, colour, TILE_FLIPYX(flipyx)); | |
| 35 | 33 | } |
| 36 | 34 | |
| 37 | 35 | WRITE16_MEMBER(drgnmst_state::drgnmst_bg_videoram_w) |
| r17673 | r17674 | |
| 40 | 38 | m_bg_tilemap->mark_tile_dirty(offset / 2); |
| 41 | 39 | } |
| 42 | 40 | |
| 43 | ||
| 41 | ||
| 44 | 42 | { |
| 45 | drgnmst_state *state = machine.driver_data<drgnmst_state>(); | |
| 46 | 43 | int tileno, colour, flipyx; |
| 47 | tileno = (state->m_md_videoram[tile_index * 2] & 0x7fff) - 0x2000; | |
| 48 | colour = state->m_md_videoram[tile_index * 2 + 1] & 0x1f; | |
| 49 | flipyx = (state->m_md_videoram[tile_index * 2 + 1] & 0x60) >> 5; | |
| 44 | tileno = (m_md_videoram[tile_index * 2] & 0x7fff) - 0x2000; | |
| 45 | colour = m_md_videoram[tile_index * 2 + 1] & 0x1f; | |
| 46 | flipyx = (m_md_videoram[tile_index * 2 + 1] & 0x60) >> 5; | |
| 50 | 47 | |
| 51 | SET_TILE_INFO(2, tileno, colour, TILE_FLIPYX(flipyx)); | |
| 48 | SET_TILE_INFO_MEMBER(2, tileno, colour, TILE_FLIPYX(flipyx)); | |
| 52 | 49 | } |
| 53 | 50 | |
| 54 | 51 | WRITE16_MEMBER(drgnmst_state::drgnmst_md_videoram_w) |
| r17673 | r17674 | |
| 105 | 102 | } |
| 106 | 103 | |
| 107 | 104 | |
| 108 | ||
| 105 | ||
| 109 | 106 | { |
| 110 | 107 | return (col * 32) + (row & 0x1f) + ((row & 0xe0) >> 5) * 2048; |
| 111 | 108 | } |
| 112 | 109 | |
| 113 | ||
| 110 | ||
| 114 | 111 | { |
| 115 | 112 | return (col * 16) + (row & 0x0f) + ((row & 0xf0) >> 4) * 1024; |
| 116 | 113 | } |
| 117 | 114 | |
| 118 | ||
| 115 | ||
| 119 | 116 | { |
| 120 | 117 | return (col * 8) + (row & 0x07) + ((row & 0xf8) >> 3) * 512; |
| 121 | 118 | } |
| r17673 | r17674 | |
| 123 | 120 | VIDEO_START(drgnmst) |
| 124 | 121 | { |
| 125 | 122 | drgnmst_state *state = machine.driver_data<drgnmst_state>(); |
| 126 | state->m_fg_tilemap = tilemap | |
| 123 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(drgnmst_state::get_drgnmst_fg_tile_info),state), tilemap_mapper_delegate(FUNC(drgnmst_state::drgnmst_fg_tilemap_scan_cols),state), 8, 8, 64,64); | |
| 127 | 124 | state->m_fg_tilemap->set_transparent_pen(15); |
| 128 | 125 | |
| 129 | state->m_md_tilemap = tilemap | |
| 126 | state->m_md_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(drgnmst_state::get_drgnmst_md_tile_info),state), tilemap_mapper_delegate(FUNC(drgnmst_state::drgnmst_md_tilemap_scan_cols),state), 16, 16, 64,64); | |
| 130 | 127 | state->m_md_tilemap->set_transparent_pen(15); |
| 131 | 128 | |
| 132 | state->m_bg_tilemap = tilemap | |
| 129 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(drgnmst_state::get_drgnmst_bg_tile_info),state), tilemap_mapper_delegate(FUNC(drgnmst_state::drgnmst_bg_tilemap_scan_cols),state), 32, 32, 64,64); | |
| 133 | 130 | state->m_bg_tilemap->set_transparent_pen(15); |
| 134 | 131 | |
| 135 | 132 | // do the other tilemaps have rowscroll too? probably not .. |
| r17673 | r17674 | |
|---|---|---|
| 153 | 153 | WRITE16_MEMBER(cischeat_state::cischeat_scrollram_1_w){ scrollram_w(&space, offset, data, mem_mask, 1); } |
| 154 | 154 | WRITE16_MEMBER(cischeat_state::cischeat_scrollram_2_w){ scrollram_w(&space, offset, data, mem_mask, 2); } |
| 155 | 155 | |
| 156 | ||
| 156 | ||
| 157 | 157 | { |
| 158 | 158 | return (col * TILES_PER_PAGE_Y) + |
| 159 | 159 | (row / TILES_PER_PAGE_Y) * TILES_PER_PAGE * (num_cols / TILES_PER_PAGE_X) + |
| 160 | 160 | (row % TILES_PER_PAGE_Y); |
| 161 | 161 | } |
| 162 | 162 | |
| 163 | ||
| 163 | ||
| 164 | 164 | { |
| 165 | 165 | return ( ((col / 2) * (TILES_PER_PAGE_Y / 2)) + |
| 166 | 166 | ((row / 2) / (TILES_PER_PAGE_Y / 2)) * (TILES_PER_PAGE / 4) * (num_cols / TILES_PER_PAGE_X) + |
| 167 | 167 | ((row / 2) % (TILES_PER_PAGE_Y / 2)) )*4 + (row&1) + (col&1)*2; |
| 168 | 168 | } |
| 169 | 169 | |
| 170 | ||
| 170 | ||
| 171 | 171 | { |
| 172 | cischeat_state *state = machine.driver_data<cischeat_state>(); | |
| 173 | 172 | int tmap = (FPTR)param; |
| 174 | UINT16 code = state->m_scrollram[tmap][tile_index]; | |
| 175 | SET_TILE_INFO(tmap, (code & 0xfff), code >> (16 - state->m_bits_per_color_code), 0); | |
| 173 | UINT16 code = m_scrollram[tmap][tile_index]; | |
| 174 | SET_TILE_INFO_MEMBER(tmap, (code & 0xfff), code >> (16 - m_bits_per_color_code), 0); | |
| 176 | 175 | } |
| 177 | 176 | |
| 178 | ||
| 177 | ||
| 179 | 178 | { |
| 180 | cischeat_state *state = machine.driver_data<cischeat_state>(); | |
| 181 | 179 | int tmap = (FPTR)param; |
| 182 | UINT16 code = state->m_scrollram[tmap][tile_index/4]; | |
| 183 | SET_TILE_INFO(tmap, (code & 0xfff) * 4 + (tile_index & 3), code >> (16 - state->m_bits_per_color_code), 0); | |
| 180 | UINT16 code = m_scrollram[tmap][tile_index/4]; | |
| 181 | SET_TILE_INFO_MEMBER(tmap, (code & 0xfff) * 4 + (tile_index & 3), code >> (16 - m_bits_per_color_code), 0); | |
| 184 | 182 | } |
| 185 | 183 | |
| 186 | 184 | static void create_tilemaps(running_machine &machine) |
| r17673 | r17674 | |
| 191 | 189 | for (layer = 0; layer < 3; layer++) |
| 192 | 190 | { |
| 193 | 191 | /* 16x16 tilemaps */ |
| 194 | state->m_tilemap[layer][0][0] = tilemap | |
| 192 | state->m_tilemap[layer][0][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cischeat_state::cischeat_get_scroll_tile_info_16x16),state), tilemap_mapper_delegate(FUNC(cischeat_state::cischeat_scan_16x16),state), | |
| 195 | 193 | 8,8, TILES_PER_PAGE_X * 16, TILES_PER_PAGE_Y * 2); |
| 196 | state->m_tilemap[layer][0][1] = tilemap | |
| 194 | state->m_tilemap[layer][0][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cischeat_state::cischeat_get_scroll_tile_info_16x16),state), tilemap_mapper_delegate(FUNC(cischeat_state::cischeat_scan_16x16),state), | |
| 197 | 195 | 8,8, TILES_PER_PAGE_X * 8, TILES_PER_PAGE_Y * 4); |
| 198 | state->m_tilemap[layer][0][2] = tilemap | |
| 196 | state->m_tilemap[layer][0][2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cischeat_state::cischeat_get_scroll_tile_info_16x16),state), tilemap_mapper_delegate(FUNC(cischeat_state::cischeat_scan_16x16),state), | |
| 199 | 197 | 8,8, TILES_PER_PAGE_X * 4, TILES_PER_PAGE_Y * 8); |
| 200 | state->m_tilemap[layer][0][3] = tilemap | |
| 198 | state->m_tilemap[layer][0][3] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cischeat_state::cischeat_get_scroll_tile_info_16x16),state), tilemap_mapper_delegate(FUNC(cischeat_state::cischeat_scan_16x16),state), | |
| 201 | 199 | 8,8, TILES_PER_PAGE_X * 2, TILES_PER_PAGE_Y * 16); |
| 202 | 200 | |
| 203 | 201 | /* 8x8 tilemaps */ |
| 204 | state->m_tilemap[layer][1][0] = tilemap | |
| 202 | state->m_tilemap[layer][1][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cischeat_state::cischeat_get_scroll_tile_info_8x8),state), tilemap_mapper_delegate(FUNC(cischeat_state::cischeat_scan_8x8),state), | |
| 205 | 203 | 8,8, TILES_PER_PAGE_X * 8, TILES_PER_PAGE_Y * 1); |
| 206 | state->m_tilemap[layer][1][1] = tilemap | |
| 204 | state->m_tilemap[layer][1][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cischeat_state::cischeat_get_scroll_tile_info_8x8),state), tilemap_mapper_delegate(FUNC(cischeat_state::cischeat_scan_8x8),state), | |
| 207 | 205 | 8,8, TILES_PER_PAGE_X * 4, TILES_PER_PAGE_Y * 2); |
| 208 | state->m_tilemap[layer][1][2] = tilemap | |
| 206 | state->m_tilemap[layer][1][2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cischeat_state::cischeat_get_scroll_tile_info_8x8),state), tilemap_mapper_delegate(FUNC(cischeat_state::cischeat_scan_8x8),state), | |
| 209 | 207 | 8,8, TILES_PER_PAGE_X * 4, TILES_PER_PAGE_Y * 2); |
| 210 | state->m_tilemap[layer][1][3] = tilemap | |
| 208 | state->m_tilemap[layer][1][3] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cischeat_state::cischeat_get_scroll_tile_info_8x8),state), tilemap_mapper_delegate(FUNC(cischeat_state::cischeat_scan_8x8),state), | |
| 211 | 209 | 8,8, TILES_PER_PAGE_X * 2, TILES_PER_PAGE_Y * 4); |
| 212 | 210 | |
| 213 | 211 | /* set user data and transparency */ |
| r17673 | r17674 | |
|---|---|---|
| 4 | 4 | #include "includes/freekick.h" |
| 5 | 5 | |
| 6 | 6 | |
| 7 | ||
| 7 | ||
| 8 | 8 | { |
| 9 | freekick_state *state = machine.driver_data<freekick_state>(); | |
| 10 | 9 | int tileno, palno; |
| 11 | 10 | |
| 12 | tileno = state->m_videoram[tile_index] + ((state->m_videoram[tile_index + 0x400] & 0xe0) << 3); | |
| 13 | palno = state->m_videoram[tile_index + 0x400] & 0x1f; | |
| 14 | SET_TILE_INFO(0, tileno, palno, 0); | |
| 11 | tileno = m_videoram[tile_index] + ((m_videoram[tile_index + 0x400] & 0xe0) << 3); | |
| 12 | palno = m_videoram[tile_index + 0x400] & 0x1f; | |
| 13 | SET_TILE_INFO_MEMBER(0, tileno, palno, 0); | |
| 15 | 14 | } |
| 16 | 15 | |
| 17 | 16 | |
| 18 | 17 | VIDEO_START( freekick ) |
| 19 | 18 | { |
| 20 | 19 | freekick_state *state = machine.driver_data<freekick_state>(); |
| 21 | state->m_freek_tilemap = tilemap | |
| 20 | state->m_freek_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(freekick_state::get_freek_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 22 | 21 | } |
| 23 | 22 | |
| 24 | 23 |
| r17673 | r17674 | |
|---|---|---|
| 1793 | 1793 | } /* UpdatePalette */ |
| 1794 | 1794 | |
| 1795 | 1795 | |
| 1796 | ||
| 1796 | ||
| 1797 | 1797 | { |
| 1798 | namcos22_state *state = machine.driver_data<namcos22_state>(); | |
| 1799 | UINT16 data = nthword( state->m_textram,tile_index ); | |
| 1798 | UINT16 data = nthword( m_textram,tile_index ); | |
| 1800 | 1799 | /** |
| 1801 | 1800 | * xxxx.----.----.---- palette select |
| 1802 | 1801 | * ----.xx--.----.---- flip |
| 1803 | 1802 | * ----.--xx.xxxx.xxxx code |
| 1804 | 1803 | */ |
| 1805 | SET_TILE_INFO( GFX_CHAR,data&0x03ff,data>>12,TILE_FLIPYX((data&0x0c00)>>10) ); | |
| 1804 | SET_TILE_INFO_MEMBER( GFX_CHAR,data&0x03ff,data>>12,TILE_FLIPYX((data&0x0c00)>>10) ); | |
| 1806 | 1805 | } |
| 1807 | 1806 | |
| 1808 | 1807 | READ32_MEMBER(namcos22_state::namcos22_textram_r) |
| r17673 | r17674 | |
| 2731 | 2730 | int code; |
| 2732 | 2731 | |
| 2733 | 2732 | state->m_mix_bitmap = auto_bitmap_ind16_alloc(machine,640,480); |
| 2734 | state->m_bgtilemap = tilemap | |
| 2733 | state->m_bgtilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(namcos22_state::TextTilemapGetInfo),state),TILEMAP_SCAN_ROWS,16,16,64,64 ); | |
| 2735 | 2734 | state->m_bgtilemap->set_transparent_pen(0xf); |
| 2736 | 2735 | |
| 2737 | 2736 | state->m_mbDSPisActive = 0; |
| r17673 | r17674 | |
|---|---|---|
| 17 | 17 | * |
| 18 | 18 | *************************************/ |
| 19 | 19 | |
| 20 | ||
| 20 | ||
| 21 | 21 | { |
| 22 | xybots_state *state = machine.driver_data<xybots_state>(); | |
| 23 | UINT16 data = state->m_alpha[tile_index]; | |
| 22 | UINT16 data = m_alpha[tile_index]; | |
| 24 | 23 | int code = data & 0x3ff; |
| 25 | 24 | int color = (data >> 12) & 7; |
| 26 | 25 | int opaque = data & 0x8000; |
| 27 | SET_TILE_INFO(2, code, color, opaque ? TILE_FORCE_LAYER0 : 0); | |
| 26 | SET_TILE_INFO_MEMBER(2, code, color, opaque ? TILE_FORCE_LAYER0 : 0); | |
| 28 | 27 | } |
| 29 | 28 | |
| 30 | 29 | |
| 31 | ||
| 30 | ||
| 32 | 31 | { |
| 33 | xybots_state *state = machine.driver_data<xybots_state>(); | |
| 34 | UINT16 data = state->m_playfield[tile_index]; | |
| 32 | UINT16 data = m_playfield[tile_index]; | |
| 35 | 33 | int code = data & 0x1fff; |
| 36 | 34 | int color = (data >> 11) & 0x0f; |
| 37 | SET_TILE_INFO(0, code, color, (data >> 15) & 1); | |
| 35 | SET_TILE_INFO_MEMBER(0, code, color, (data >> 15) & 1); | |
| 38 | 36 | } |
| 39 | 37 | |
| 40 | 38 | |
| r17673 | r17674 | |
| 86 | 84 | xybots_state *state = machine.driver_data<xybots_state>(); |
| 87 | 85 | |
| 88 | 86 | /* initialize the playfield */ |
| 89 | state->m_playfield_tilemap = tilemap | |
| 87 | state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(xybots_state::get_playfield_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,32); | |
| 90 | 88 | |
| 91 | 89 | /* initialize the motion objects */ |
| 92 | 90 | atarimo_init(machine, 0, &modesc); |
| 93 | 91 | |
| 94 | 92 | /* initialize the alphanumerics */ |
| 95 | state->m_alpha_tilemap = tilemap | |
| 93 | state->m_alpha_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(xybots_state::get_alpha_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,32); | |
| 96 | 94 | state->m_alpha_tilemap->set_transparent_pen(0); |
| 97 | 95 | } |
| 98 | 96 |
| r17673 | r17674 | |
|---|---|---|
| 12 | 12 | #define BACKGROUND_COLOR_BASE (BULLETS_COLOR_BASE + 2) |
| 13 | 13 | |
| 14 | 14 | |
| 15 | static TILE_GET_INFO( get_tile_info ); | |
| 16 | static TILE_GET_INFO( rockclim_get_tile_info ); | |
| 15 | ||
| 16 | ||
| 17 | 17 | static void mooncrst_modify_charcode(running_machine &machine, UINT16 *code, UINT8 x); |
| 18 | 18 | static void pisces_modify_charcode(running_machine &machine, UINT16 *code, UINT8 x); |
| 19 | 19 | static void mimonkey_modify_charcode(running_machine &machine, UINT16 *code, UINT8 x); |
| r17673 | r17674 | |
| 478 | 478 | { |
| 479 | 479 | galaxold_state *state = machine.driver_data<galaxold_state>(); |
| 480 | 480 | video_start_common(machine); |
| 481 | state->m_bg_tilemap = tilemap | |
| 481 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galaxold_state::get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 482 | 482 | state->m_bg_tilemap->set_transparent_pen(0); |
| 483 | 483 | |
| 484 | 484 | state->m_bg_tilemap->set_scroll_cols(32); |
| r17673 | r17674 | |
| 694 | 694 | { |
| 695 | 695 | galaxold_state *state = machine.driver_data<galaxold_state>(); |
| 696 | 696 | VIDEO_START_CALL(galaxold); |
| 697 | state->m_rockclim_tilemap = tilemap | |
| 697 | state->m_rockclim_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galaxold_state::rockclim_get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32); | |
| 698 | 698 | |
| 699 | 699 | state->m_draw_background = rockclim_draw_background; |
| 700 | 700 | state->m_modify_charcode = mooncrst_modify_charcode; |
| r17673 | r17674 | |
| 705 | 705 | state_save_register_global(machine, state->m_rockclim_h); |
| 706 | 706 | } |
| 707 | 707 | |
| 708 | ||
| 708 | ||
| 709 | 709 | { |
| 710 | galaxold_state *state = machine.driver_data<galaxold_state>(); | |
| 711 | int code = state->m_videoram[tile_index]; | |
| 710 | int code = m_videoram[tile_index]; | |
| 712 | 711 | UINT8 x = tile_index & 0x1f; |
| 713 | UINT8 color = state->m_attributesram[(x << 1) | 1] & 7; | |
| 714 | UINT8 bank = state->m_attributesram[(x << 1) | 1] & 0x30; | |
| 712 | UINT8 color = m_attributesram[(x << 1) | 1] & 7; | |
| 713 | UINT8 bank = m_attributesram[(x << 1) | 1] & 0x30; | |
| 715 | 714 | |
| 716 | 715 | code |= (bank << 4); |
| 717 | color |= (( | |
| 716 | color |= (( | |
| 718 | 717 | |
| 719 | SET_TILE_INFO(0, code, color, 0); | |
| 718 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 720 | 719 | } |
| 721 | 720 | |
| 722 | 721 | VIDEO_START( drivfrcg ) |
| 723 | 722 | { |
| 724 | 723 | galaxold_state *state = machine.driver_data<galaxold_state>(); |
| 725 | 724 | video_start_common(machine); |
| 726 | state->m_bg_tilemap = tilemap | |
| 725 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galaxold_state::drivfrcg_get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 727 | 726 | |
| 728 | 727 | state->m_bg_tilemap->set_transparent_pen(0); |
| 729 | 728 | state->m_bg_tilemap->set_scroll_cols(32); |
| r17673 | r17674 | |
| 738 | 737 | { |
| 739 | 738 | galaxold_state *state = machine.driver_data<galaxold_state>(); |
| 740 | 739 | video_start_common(machine); |
| 741 | state->m_bg_tilemap = tilemap | |
| 740 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galaxold_state::drivfrcg_get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 742 | 741 | |
| 743 | 742 | state->m_bg_tilemap->set_transparent_pen(0); |
| 744 | 743 | state->m_bg_tilemap->set_scroll_cols(32); |
| r17673 | r17674 | |
| 759 | 758 | m_bg_tilemap->mark_all_dirty(); |
| 760 | 759 | } |
| 761 | 760 | |
| 762 | ||
| 761 | ||
| 763 | 762 | { |
| 764 | galaxold_state *state = machine.driver_data<galaxold_state>(); | |
| 765 | int code = state->m_videoram[tile_index]; | |
| 763 | int code = m_videoram[tile_index]; | |
| 766 | 764 | UINT8 x = tile_index & 0x1f; |
| 767 | UINT8 color = state->m_attributesram[(x << 1) | 1] & 7; | |
| 768 | UINT8 bank = state->m_racknrol_tiles_bank[x] & 7; | |
| 765 | UINT8 color = m_attributesram[(x << 1) | 1] & 7; | |
| 766 | UINT8 bank = m_racknrol_tiles_bank[x] & 7; | |
| 769 | 767 | |
| 770 | 768 | code |= (bank << 8); |
| 771 | 769 | |
| 772 | SET_TILE_INFO(0, code, color, 0); | |
| 770 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 773 | 771 | } |
| 774 | 772 | |
| 775 | 773 | VIDEO_START( racknrol ) |
| 776 | 774 | { |
| 777 | 775 | galaxold_state *state = machine.driver_data<galaxold_state>(); |
| 778 | 776 | video_start_common(machine); |
| 779 | state->m_bg_tilemap = tilemap | |
| 777 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galaxold_state::racknrol_get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 780 | 778 | |
| 781 | 779 | state->m_bg_tilemap->set_transparent_pen(0); |
| 782 | 780 | state->m_bg_tilemap->set_scroll_cols(32); |
| r17673 | r17674 | |
| 792 | 790 | state->m_modify_spritecode = batman2_modify_spritecode; |
| 793 | 791 | } |
| 794 | 792 | |
| 795 | ||
| 793 | ||
| 796 | 794 | { |
| 797 | galaxold_state *state = machine.driver_data<galaxold_state>(); | |
| 798 | 795 | UINT8 x = tile_index & 0x1f; |
| 799 | 796 | |
| 800 | UINT16 code = state->m_dambustr_videoram2[tile_index]; | |
| 801 | UINT8 color = state->m_attributesram[(x << 1) | 1] & state->m_color_mask; | |
| 797 | UINT16 code = m_dambustr_videoram2[tile_index]; | |
| 798 | UINT8 color = m_attributesram[(x << 1) | 1] & m_color_mask; | |
| 802 | 799 | |
| 803 | if ( | |
| 800 | if ( | |
| 804 | 801 | { |
| 805 | (* | |
| 802 | (* | |
| 806 | 803 | } |
| 807 | 804 | |
| 808 | if ( | |
| 805 | if ( | |
| 809 | 806 | { |
| 810 | (* | |
| 807 | (* | |
| 811 | 808 | } |
| 812 | 809 | |
| 813 | SET_TILE_INFO(0, code, color, 0); | |
| 810 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 814 | 811 | } |
| 815 | 812 | |
| 816 | 813 | VIDEO_START( dambustr ) |
| r17673 | r17674 | |
| 836 | 833 | |
| 837 | 834 | /* make a copy of the tilemap to emulate background priority */ |
| 838 | 835 | state->m_dambustr_videoram2 = auto_alloc_array(machine, UINT8, 0x0400); |
| 839 | state->m_dambustr_tilemap2 = tilemap | |
| 836 | state->m_dambustr_tilemap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galaxold_state::dambustr_get_tile_info2),state),TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 840 | 837 | |
| 841 | 838 | state->m_dambustr_tilemap2->set_transparent_pen(0); |
| 842 | 839 | } |
| r17673 | r17674 | |
| 1660 | 1657 | |
| 1661 | 1658 | |
| 1662 | 1659 | |
| 1663 | ||
| 1660 | ||
| 1664 | 1661 | { |
| 1665 | galaxold_state *state = machine.driver_data<galaxold_state>(); | |
| 1666 | 1662 | UINT8 x = tile_index & 0x1f; |
| 1667 | 1663 | |
| 1668 | UINT16 code = state->m_videoram[tile_index]; | |
| 1669 | UINT8 color = state->m_attributesram[(x << 1) | 1] & state->m_color_mask; | |
| 1664 | UINT16 code = m_videoram[tile_index]; | |
| 1665 | UINT8 color = m_attributesram[(x << 1) | 1] & m_color_mask; | |
| 1670 | 1666 | |
| 1671 | if ( | |
| 1667 | if ( | |
| 1672 | 1668 | { |
| 1673 | (* | |
| 1669 | (* | |
| 1674 | 1670 | } |
| 1675 | 1671 | |
| 1676 | if ( | |
| 1672 | if ( | |
| 1677 | 1673 | { |
| 1678 | (* | |
| 1674 | (* | |
| 1679 | 1675 | } |
| 1680 | 1676 | |
| 1681 | SET_TILE_INFO(0, code, color, 0); | |
| 1677 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 1682 | 1678 | } |
| 1683 | 1679 | |
| 1684 | ||
| 1680 | ||
| 1685 | 1681 | { |
| 1686 | galaxold_state *state = machine.driver_data<galaxold_state>(); | |
| 1687 | UINT16 code = state->m_rockclim_videoram[tile_index]; | |
| 1688 | SET_TILE_INFO(2, code, 0, 0); | |
| 1682 | UINT16 code = m_rockclim_videoram[tile_index]; | |
| 1683 | SET_TILE_INFO_MEMBER(2, code, 0, 0); | |
| 1689 | 1684 | } |
| 1690 | 1685 | |
| 1691 | 1686 | static void draw_bullets_common(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| r17673 | r17674 | |
|---|---|---|
| 14 | 14 | * |
| 15 | 15 | *************************************/ |
| 16 | 16 | |
| 17 | ||
| 17 | ||
| 18 | 18 | { |
| 19 | centiped_state *state = machine.driver_data<centiped_state>(); | |
| 20 | UINT8 *videoram = state->m_videoram; | |
| 19 | UINT8 *videoram = m_videoram; | |
| 21 | 20 | |
| 22 | 21 | int data = videoram[tile_index]; |
| 23 | SET_TILE_INFO(0, (data & 0x3f) + 0x40, 0, TILE_FLIPYX(data >> 6)); | |
| 22 | SET_TILE_INFO_MEMBER(0, (data & 0x3f) + 0x40, 0, TILE_FLIPYX(data >> 6)); | |
| 24 | 23 | } |
| 25 | 24 | |
| 26 | 25 | |
| 27 | ||
| 26 | ||
| 28 | 27 | { |
| 29 | centiped_state *state = machine.driver_data<centiped_state>(); | |
| 30 | UINT8 *videoram = state->m_videoram; | |
| 28 | UINT8 *videoram = m_videoram; | |
| 31 | 29 | int data = videoram[tile_index]; |
| 32 | int color = ((tile_index & 0x10) >> 4) | ((tile_index & 0x200) >> 8) | ( | |
| 30 | int color = ((tile_index & 0x10) >> 4) | ((tile_index & 0x200) >> 8) | ( | |
| 33 | 31 | |
| 34 | SET_TILE_INFO(0, data & 0x3f, color, TILE_FLIPYX(data >> 6)); | |
| 32 | SET_TILE_INFO_MEMBER(0, data & 0x3f, color, TILE_FLIPYX(data >> 6)); | |
| 35 | 33 | } |
| 36 | 34 | |
| 37 | 35 | |
| 38 | ||
| 36 | ||
| 39 | 37 | { |
| 40 | centiped_state *state = machine.driver_data<centiped_state>(); | |
| 41 | UINT8 *videoram = state->m_videoram; | |
| 38 | UINT8 *videoram = m_videoram; | |
| 42 | 39 | int data = videoram[tile_index]; |
| 43 | int bank = ((data >> 6) & 1) | ( | |
| 40 | int bank = ((data >> 6) & 1) | ( | |
| 44 | 41 | int color = (data >> 6) & 3; |
| 45 | 42 | /* Flip both x and y if flipscreen is non-zero */ |
| 46 | int flip_tiles = ( | |
| 43 | int flip_tiles = ( | |
| 47 | 44 | |
| 48 | SET_TILE_INFO(0, (data & 0x3f) + 0x40 + (bank * 0x80), color, TILE_FLIPYX(flip_tiles)); | |
| 45 | SET_TILE_INFO_MEMBER(0, (data & 0x3f) + 0x40 + (bank * 0x80), color, TILE_FLIPYX(flip_tiles)); | |
| 49 | 46 | } |
| 50 | 47 | |
| 51 | 48 | |
| 52 | ||
| 49 | ||
| 53 | 50 | { |
| 54 | centiped_state *state = machine.driver_data<centiped_state>(); | |
| 55 | UINT8 *videoram = state->m_videoram; | |
| 51 | UINT8 *videoram = m_videoram; | |
| 56 | 52 | int data = videoram[tile_index]; |
| 57 | int bank = | |
| 53 | int bank = | |
| 58 | 54 | |
| 59 | SET_TILE_INFO(0, (data & 0x3f) + 0x40 * bank, 0, TILE_FLIPYX(data >> 6)); | |
| 55 | SET_TILE_INFO_MEMBER(0, (data & 0x3f) + 0x40 * bank, 0, TILE_FLIPYX(data >> 6)); | |
| 60 | 56 | } |
| 61 | 57 | |
| 62 | 58 | |
| r17673 | r17674 | |
| 103 | 99 | init_penmask(machine); |
| 104 | 100 | |
| 105 | 101 | centiped_state *state = machine.driver_data<centiped_state>(); |
| 106 | state->m_bg_tilemap = tilemap | |
| 102 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(centiped_state::centiped_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 107 | 103 | } |
| 108 | 104 | |
| 109 | 105 | |
| r17673 | r17674 | |
| 112 | 108 | init_common(machine); |
| 113 | 109 | |
| 114 | 110 | centiped_state *state = machine.driver_data<centiped_state>(); |
| 115 | state->m_bg_tilemap = tilemap | |
| 111 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(centiped_state::warlords_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 116 | 112 | } |
| 117 | 113 | |
| 118 | 114 | |
| r17673 | r17674 | |
| 122 | 118 | init_penmask(machine); |
| 123 | 119 | |
| 124 | 120 | centiped_state *state = machine.driver_data<centiped_state>(); |
| 125 | state->m_bg_tilemap = tilemap | |
| 121 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(centiped_state::milliped_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 126 | 122 | } |
| 127 | 123 | |
| 128 | 124 | |
| r17673 | r17674 | |
| 132 | 128 | init_penmask(machine); |
| 133 | 129 | |
| 134 | 130 | centiped_state *state = machine.driver_data<centiped_state>(); |
| 135 | state->m_bg_tilemap = tilemap | |
| 131 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(centiped_state::bullsdrt_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 136 | 132 | } |
| 137 | 133 | |
| 138 | 134 |
| r17673 | r17674 | |
|---|---|---|
| 18 | 18 | TILE_FLIPYX( (attr & 0xc0) >> 6)); |
| 19 | 19 | } |
| 20 | 20 | |
| 21 | ||
| 21 | ||
| 22 | 22 | { |
| 23 | common_get_piv_tile_info(machine, tileinfo, tile_index, 0); | |
| 23 | common_get_piv_tile_info(machine(), tileinfo, tile_index, 0); | |
| 24 | 24 | } |
| 25 | 25 | |
| 26 | ||
| 26 | ||
| 27 | 27 | { |
| 28 | common_get_piv_tile_info(machine, tileinfo, tile_index, 1); | |
| 28 | common_get_piv_tile_info(machine(), tileinfo, tile_index, 1); | |
| 29 | 29 | } |
| 30 | 30 | |
| 31 | ||
| 31 | ||
| 32 | 32 | { |
| 33 | common_get_piv_tile_info(machine, tileinfo, tile_index, 2); | |
| 33 | common_get_piv_tile_info(machine(), tileinfo, tile_index, 2); | |
| 34 | 34 | } |
| 35 | 35 | |
| 36 | 36 | |
| r17673 | r17674 | |
| 38 | 38 | { |
| 39 | 39 | wgp_state *state = machine.driver_data<wgp_state>(); |
| 40 | 40 | |
| 41 | state->m_piv_tilemap[0] = tilemap_create(machine, get_piv0_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); | |
| 42 | state->m_piv_tilemap[1] = tilemap_create(machine, get_piv1_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); | |
| 43 | state->m_piv_tilemap[2] = tilemap_create(machine, get_piv2_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); | |
| 41 | state->m_piv_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wgp_state::get_piv0_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); | |
| 42 | state->m_piv_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wgp_state::get_piv1_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); | |
| 43 | state->m_piv_tilemap[2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wgp_state::get_piv2_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); | |
| 44 | 44 | |
| 45 | 45 | state->m_piv_xoffs = piv_xoffs; |
| 46 | 46 | state->m_piv_yoffs = piv_yoffs; |
| r17673 | r17674 | |
|---|---|---|
| 92 | 92 | * |
| 93 | 93 | *************************************/ |
| 94 | 94 | |
| 95 | ||
| 95 | ||
| 96 | 96 | { |
| 97 | atarisy1_state *state = machine.driver_data<atarisy1_state>(); | |
| 98 | UINT16 data = state->m_alpha[tile_index]; | |
| 97 | UINT16 data = m_alpha[tile_index]; | |
| 99 | 98 | int code = data & 0x3ff; |
| 100 | 99 | int color = (data >> 10) & 0x07; |
| 101 | 100 | int opaque = data & 0x2000; |
| 102 | SET_TILE_INFO(0, code, color, opaque ? TILE_FORCE_LAYER0 : 0); | |
| 101 | SET_TILE_INFO_MEMBER(0, code, color, opaque ? TILE_FORCE_LAYER0 : 0); | |
| 103 | 102 | } |
| 104 | 103 | |
| 105 | 104 | |
| 106 | ||
| 105 | ||
| 107 | 106 | { |
| 108 | atarisy1_state *state = machine.driver_data<atarisy1_state>(); | |
| 109 | UINT16 data = state->m_playfield[tile_index]; | |
| 110 | UINT16 lookup = state->m_playfield_lookup[((data >> 8) & 0x7f) | (state->m_playfield_tile_bank << 7)]; | |
| 107 | UINT16 data = m_playfield[tile_index]; | |
| 108 | UINT16 lookup = m_playfield_lookup[((data >> 8) & 0x7f) | (m_playfield_tile_bank << 7)]; | |
| 111 | 109 | int gfxindex = (lookup >> 8) & 15; |
| 112 | 110 | int code = ((lookup & 0xff) << 8) | (data & 0xff); |
| 113 | int color = 0x20 + (((lookup >> 12) & 15) << state->m_bank_color_shift[gfxindex]); | |
| 114 | SET_TILE_INFO(gfxindex, code, color, (data >> 15) & 1); | |
| 111 | int color = 0x20 + (((lookup >> 12) & 15) << m_bank_color_shift[gfxindex]); | |
| 112 | SET_TILE_INFO_MEMBER(gfxindex, code, color, (data >> 15) & 1); | |
| 115 | 113 | } |
| 116 | 114 | |
| 117 | 115 | |
| r17673 | r17674 | |
| 171 | 169 | decode_gfx(machine, state->m_playfield_lookup, motable); |
| 172 | 170 | |
| 173 | 171 | /* initialize the playfield */ |
| 174 | state->m_playfield_tilemap = tilemap | |
| 172 | state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(atarisy1_state::get_playfield_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,64); | |
| 175 | 173 | |
| 176 | 174 | /* initialize the motion objects */ |
| 177 | 175 | atarimo_init(machine, 0, &modesc); |
| 178 | 176 | |
| 179 | 177 | /* initialize the alphanumerics */ |
| 180 | state->m_alpha_tilemap = tilemap | |
| 178 | state->m_alpha_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(atarisy1_state::get_alpha_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,32); | |
| 181 | 179 | state->m_alpha_tilemap->set_transparent_pen(0); |
| 182 | 180 | |
| 183 | 181 | /* modify the motion object code lookup */ |
| r17673 | r17674 | |
|---|---|---|
| 191 | 191 | } |
| 192 | 192 | } |
| 193 | 193 | |
| 194 | ||
| 194 | ||
| 195 | 195 | { |
| 196 | welltris_state *state = machine.driver_data<welltris_state>(); | |
| 197 | UINT16 code = state->m_charvideoram[tile_index]; | |
| 196 | UINT16 code = m_charvideoram[tile_index]; | |
| 198 | 197 | int bank = (code & 0x1000) >> 12; |
| 199 | 198 | |
| 200 | SET_TILE_INFO( | |
| 199 | SET_TILE_INFO_MEMBER( | |
| 201 | 200 | 0, |
| 202 | (code & 0x0fff) + (state->m_gfxbank[bank] << 12), | |
| 203 | ((code & 0xe000) >> 13) + (8 * state->m_charpalettebank), | |
| 201 | (code & 0x0fff) + (m_gfxbank[bank] << 12), | |
| 202 | ((code & 0xe000) >> 13) + (8 * m_charpalettebank), | |
| 204 | 203 | 0); |
| 205 | 204 | } |
| 206 | 205 | |
| r17673 | r17674 | |
| 214 | 213 | VIDEO_START( welltris ) |
| 215 | 214 | { |
| 216 | 215 | welltris_state *state = machine.driver_data<welltris_state>(); |
| 217 | state->m_char_tilemap = tilemap | |
| 216 | state->m_char_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(welltris_state::get_welltris_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 218 | 217 | |
| 219 | 218 | state->m_char_tilemap->set_transparent_pen(15); |
| 220 | 219 | } |
| r17673 | r17674 | |
|---|---|---|
| 63 | 63 | } |
| 64 | 64 | |
| 65 | 65 | |
| 66 | ||
| 66 | ||
| 67 | 67 | { |
| 68 | sprint8_state *state = machine.driver_data<sprint8_state>(); | |
| 69 | UINT8 code = state->m_video_ram[tile_index]; | |
| 68 | UINT8 code = m_video_ram[tile_index]; | |
| 70 | 69 | |
| 71 | 70 | int color = 0; |
| 72 | 71 | |
| r17673 | r17674 | |
| 85 | 84 | |
| 86 | 85 | } |
| 87 | 86 | |
| 88 | SET_TILE_INFO(code >> 7, code, color, (code & 0x40) ? (TILE_FLIPX | TILE_FLIPY) : 0); | |
| 87 | SET_TILE_INFO_MEMBER(code >> 7, code, color, (code & 0x40) ? (TILE_FLIPX | TILE_FLIPY) : 0); | |
| 89 | 88 | } |
| 90 | 89 | |
| 91 | 90 | |
| 92 | ||
| 91 | ||
| 93 | 92 | { |
| 94 | sprint8_state *state = machine.driver_data<sprint8_state>(); | |
| 95 | UINT8 code = state->m_video_ram[tile_index]; | |
| 93 | UINT8 code = m_video_ram[tile_index]; | |
| 96 | 94 | |
| 97 | 95 | int color = 0; |
| 98 | 96 | |
| r17673 | r17674 | |
| 101 | 99 | else |
| 102 | 100 | color = 17; |
| 103 | 101 | |
| 104 | SET_TILE_INFO(code >> 7, code, color, (code & 0x40) ? (TILE_FLIPX | TILE_FLIPY) : 0); | |
| 102 | SET_TILE_INFO_MEMBER(code >> 7, code, color, (code & 0x40) ? (TILE_FLIPX | TILE_FLIPY) : 0); | |
| 105 | 103 | } |
| 106 | 104 | |
| 107 | 105 | |
| r17673 | r17674 | |
| 119 | 117 | machine.primary_screen->register_screen_bitmap(state->m_helper1); |
| 120 | 118 | machine.primary_screen->register_screen_bitmap(state->m_helper2); |
| 121 | 119 | |
| 122 | state->m_tilemap1 = tilemap_create(machine, get_tile_info1, TILEMAP_SCAN_ROWS, 16, 8, 32, 32); | |
| 123 | state->m_tilemap2 = tilemap_create(machine, get_tile_info2, TILEMAP_SCAN_ROWS, 16, 8, 32, 32); | |
| 120 | state->m_tilemap1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sprint8_state::get_tile_info1),state), TILEMAP_SCAN_ROWS, 16, 8, 32, 32); | |
| 121 | state->m_tilemap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sprint8_state::get_tile_info2),state), TILEMAP_SCAN_ROWS, 16, 8, 32, 32); | |
| 124 | 122 | |
| 125 | 123 | state->m_tilemap1->set_scrolly(0, +24); |
| 126 | 124 | state->m_tilemap2->set_scrolly(0, +24); |
| r17673 | r17674 | |
|---|---|---|
| 10 | 10 | m_bg_tilemap->mark_tile_dirty(offset); |
| 11 | 11 | } |
| 12 | 12 | |
| 13 | ||
| 13 | ||
| 14 | 14 | { |
| 15 | gumbo_state *state = machine.driver_data<gumbo_state>(); | |
| 16 | int tileno = state->m_bg_videoram[tile_index]; | |
| 17 | SET_TILE_INFO(0, tileno, 0, 0); | |
| 15 | int tileno = m_bg_videoram[tile_index]; | |
| 16 | SET_TILE_INFO_MEMBER(0, tileno, 0, 0); | |
| 18 | 17 | } |
| 19 | 18 | |
| 20 | 19 | |
| r17673 | r17674 | |
| 24 | 23 | m_fg_tilemap->mark_tile_dirty(offset); |
| 25 | 24 | } |
| 26 | 25 | |
| 27 | ||
| 26 | ||
| 28 | 27 | { |
| 29 | gumbo_state *state = machine.driver_data<gumbo_state>(); | |
| 30 | int tileno = state->m_fg_videoram[tile_index]; | |
| 31 | SET_TILE_INFO(1, tileno, 1, 0); | |
| 28 | int tileno = m_fg_videoram[tile_index]; | |
| 29 | SET_TILE_INFO_MEMBER(1, tileno, 1, 0); | |
| 32 | 30 | } |
| 33 | 31 | |
| 34 | 32 | |
| 35 | 33 | VIDEO_START( gumbo ) |
| 36 | 34 | { |
| 37 | 35 | gumbo_state *state = machine.driver_data<gumbo_state>(); |
| 38 | state->m_bg_tilemap = tilemap_create(machine, get_gumbo_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 39 | state->m_fg_tilemap = tilemap_create(machine, get_gumbo_fg_tile_info, TILEMAP_SCAN_ROWS, 4, 4, 128, 64); | |
| 36 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gumbo_state::get_gumbo_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 37 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gumbo_state::get_gumbo_fg_tile_info),state), TILEMAP_SCAN_ROWS, 4, 4, 128, 64); | |
| 40 | 38 | state->m_fg_tilemap->set_transparent_pen(0xff); |
| 41 | 39 | } |
| 42 | 40 |
| r17673 | r17674 | |
|---|---|---|
| 208 | 208 | machine.gfx[1]->set_source((UINT8 *)state->m_eaglshot_gfxram); |
| 209 | 209 | } |
| 210 | 210 | |
| 211 | ||
| 211 | ||
| 212 | 212 | { |
| 213 | ssv_state *state = machine.driver_data<ssv_state>(); | |
| 214 | UINT16 tile = state->m_gdfs_tmapram[tile_index]; | |
| 213 | UINT16 tile = m_gdfs_tmapram[tile_index]; | |
| 215 | 214 | |
| 216 | SET_TILE_INFO(2, tile, 0, TILE_FLIPXY( tile >> 14 )); | |
| 215 | SET_TILE_INFO_MEMBER(2, tile, 0, TILE_FLIPXY( tile >> 14 )); | |
| 217 | 216 | } |
| 218 | 217 | |
| 219 | 218 | WRITE16_MEMBER(ssv_state::gdfs_tmapram_w) |
| r17673 | r17674 | |
| 230 | 229 | VIDEO_START_CALL(ssv); |
| 231 | 230 | |
| 232 | 231 | |
| 233 | state->m_gdfs_tmap = tilemap_create( machine, get_tile_info_0, TILEMAP_SCAN_ROWS, | |
| 234 | 16,16, 0x100,0x100 ); | |
| 232 | state->m_gdfs_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ssv_state::get_tile_info_0),state), TILEMAP_SCAN_ROWS, 16,16, 0x100,0x100); | |
| 235 | 233 | |
| 236 | 234 | state->m_gdfs_tmap->set_transparent_pen(0); |
| 237 | 235 | } |
| r17673 | r17674 | |
|---|---|---|
| 31 | 31 | * |
| 32 | 32 | *************************************/ |
| 33 | 33 | |
| 34 | ||
| 34 | ||
| 35 | 35 | { |
| 36 | atarig42_state *state = machine.driver_data<atarig42_state>(); | |
| 37 | UINT16 data = state->m_alpha[tile_index]; | |
| 36 | UINT16 data = m_alpha[tile_index]; | |
| 38 | 37 | int code = data & 0xfff; |
| 39 | 38 | int color = (data >> 12) & 0x0f; |
| 40 | 39 | int opaque = data & 0x8000; |
| 41 | SET_TILE_INFO(1, code, color, opaque ? TILE_FORCE_LAYER0 : 0); | |
| 40 | SET_TILE_INFO_MEMBER(1, code, color, opaque ? TILE_FORCE_LAYER0 : 0); | |
| 42 | 41 | } |
| 43 | 42 | |
| 44 | 43 | |
| 45 | ||
| 44 | ||
| 46 | 45 | { |
| 47 | atarig42_state *state = machine.driver_data<atarig42_state>(); | |
| 48 | UINT16 data = state->m_playfield[tile_index]; | |
| 49 | int code = (state->m_playfield_tile_bank << 12) | (data & 0xfff); | |
| 50 | int color = (state->m_playfield_base >> 5) + ((state->m_playfield_color_bank << 3) & 0x18) + ((data >> 12) & 7); | |
| 51 | SET_TILE_INFO(0, code, color, (data >> 15) & 1); | |
| 52 | tileinfo.category = (state->m_playfield_color_bank >> 2) & 7; | |
| 46 | UINT16 data = m_playfield[tile_index]; | |
| 47 | int code = (m_playfield_tile_bank << 12) | (data & 0xfff); | |
| 48 | int color = (m_playfield_base >> 5) + ((m_playfield_color_bank << 3) & 0x18) + ((data >> 12) & 7); | |
| 49 | SET_TILE_INFO_MEMBER(0, code, color, (data >> 15) & 1); | |
| 50 | tileinfo.category = (m_playfield_color_bank >> 2) & 7; | |
| 53 | 51 | } |
| 54 | 52 | |
| 55 | 53 | |
| 56 | ||
| 54 | ||
| 57 | 55 | { |
| 58 | 56 | int bank = 1 - (col / (num_cols / 2)); |
| 59 | 57 | return bank * (num_rows * num_cols / 2) + row * (num_cols / 2) + (col % (num_cols / 2)); |
| r17673 | r17674 | |
| 75 | 73 | atarigen_blend_gfx(machine, 0, 2, 0x0f, 0x30); |
| 76 | 74 | |
| 77 | 75 | /* initialize the playfield */ |
| 78 | state->m_playfield_tilemap = tilemap | |
| 76 | state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(atarig42_state::get_playfield_tile_info),state), tilemap_mapper_delegate(FUNC(atarig42_state::atarig42_playfield_scan),state), 8,8, 128,64); | |
| 79 | 77 | |
| 80 | 78 | /* initialize the motion objects */ |
| 81 | 79 | state->m_rle = machine.device("rle"); |
| 82 | 80 | |
| 83 | 81 | /* initialize the alphanumerics */ |
| 84 | state->m_alpha_tilemap = tilemap | |
| 82 | state->m_alpha_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(atarig42_state::get_alpha_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,32); | |
| 85 | 83 | state->m_alpha_tilemap->set_transparent_pen(0); |
| 86 | 84 | |
| 87 | 85 | /* save states */ |
| r17673 | r17674 | |
|---|---|---|
| 104 | 104 | return TX_TILE_OFFSET_CENTER + (x - 1) + y * 32; |
| 105 | 105 | } |
| 106 | 106 | |
| 107 | ||
| 107 | ||
| 108 | 108 | { |
| 109 | tceptor_state *state = machine.driver_data<tceptor_state>(); | |
| 110 | 109 | int offset = get_tile_addr(tile_index); |
| 111 | int code = state->m_tile_ram[offset]; | |
| 112 | int color = state->m_tile_attr[offset]; | |
| 110 | int code = m_tile_ram[offset]; | |
| 111 | int color = m_tile_attr[offset]; | |
| 113 | 112 | |
| 114 | 113 | tileinfo.group = color; |
| 115 | 114 | |
| 116 | SET_TILE_INFO(0, code, color, 0); | |
| 115 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 117 | 116 | } |
| 118 | 117 | |
| 119 | 118 | void tceptor_state::tile_mark_dirty(int offset) |
| r17673 | r17674 | |
| 164 | 163 | |
| 165 | 164 | /*******************************************************************/ |
| 166 | 165 | |
| 167 | ||
| 166 | ||
| 168 | 167 | { |
| 169 | tceptor_state *state = machine.driver_data<tceptor_state>(); | |
| 170 | UINT16 data = state->m_bg_ram[tile_index * 2] | (state->m_bg_ram[tile_index * 2 + 1] << 8); | |
| 168 | UINT16 data = m_bg_ram[tile_index * 2] | (m_bg_ram[tile_index * 2 + 1] << 8); | |
| 171 | 169 | int code = (data & 0x3ff) | 0x000; |
| 172 | 170 | int color = (data & 0xfc00) >> 10; |
| 173 | 171 | |
| 174 | SET_TILE_INFO( | |
| 172 | SET_TILE_INFO_MEMBER( | |
| 175 | 173 | } |
| 176 | 174 | |
| 177 | ||
| 175 | ||
| 178 | 176 | { |
| 179 | tceptor_state *state = machine.driver_data<tceptor_state>(); | |
| 180 | UINT16 data = state->m_bg_ram[tile_index * 2 + 0x1000] | (state->m_bg_ram[tile_index * 2 + 1 + 0x1000] << 8); | |
| 177 | UINT16 data = m_bg_ram[tile_index * 2 + 0x1000] | (m_bg_ram[tile_index * 2 + 1 + 0x1000] << 8); | |
| 181 | 178 | int code = (data & 0x3ff) | 0x400; |
| 182 | 179 | int color = (data & 0xfc00) >> 10; |
| 183 | 180 | |
| 184 | SET_TILE_INFO( | |
| 181 | SET_TILE_INFO_MEMBER( | |
| 185 | 182 | } |
| 186 | 183 | |
| 187 | 184 | WRITE8_MEMBER(tceptor_state::tceptor_bg_ram_w) |
| r17673 | r17674 | |
| 395 | 392 | |
| 396 | 393 | state->m_c45_road->set_transparent_color(colortable_entry_get_value(machine.colortable, 0xfff)); |
| 397 | 394 | |
| 398 | state->m_tx_tilemap = tilemap | |
| 395 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tceptor_state::get_tx_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 34, 28); | |
| 399 | 396 | |
| 400 | 397 | state->m_tx_tilemap->set_scrollx(0, -2*8); |
| 401 | 398 | state->m_tx_tilemap->set_scrolly(0, 0); |
| 402 | 399 | colortable_configure_tilemap_groups(machine.colortable, state->m_tx_tilemap, machine.gfx[0], 7); |
| 403 | 400 | |
| 404 | state->m_bg1_tilemap = tilemap_create(machine, get_bg1_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 405 | state->m_bg2_tilemap = tilemap_create(machine, get_bg2_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 401 | state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tceptor_state::get_bg1_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 402 | state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tceptor_state::get_bg2_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 406 | 403 | |
| 407 | 404 | state_save_register_global_pointer(machine, state->m_sprite_ram_buffered, 0x200 / 2); |
| 408 | 405 | state_save_register_global(machine, state->m_bg1_scroll_x); |
| r17673 | r17674 | |
|---|---|---|
| 16 | 16 | * |
| 17 | 17 | *************************************/ |
| 18 | 18 | |
| 19 | ||
| 19 | ||
| 20 | 20 | { |
| 21 | vindictr_state *state = machine.driver_data<vindictr_state>(); | |
| 22 | UINT16 data = state->m_alpha[tile_index]; | |
| 21 | UINT16 data = m_alpha[tile_index]; | |
| 23 | 22 | int code = data & 0x3ff; |
| 24 | 23 | int color = ((data >> 10) & 0x0f) | ((data >> 9) & 0x20); |
| 25 | 24 | int opaque = data & 0x8000; |
| 26 | SET_TILE_INFO(1, code, color, opaque ? TILE_FORCE_LAYER0 : 0); | |
| 25 | SET_TILE_INFO_MEMBER(1, code, color, opaque ? TILE_FORCE_LAYER0 : 0); | |
| 27 | 26 | } |
| 28 | 27 | |
| 29 | 28 | |
| 30 | ||
| 29 | ||
| 31 | 30 | { |
| 32 | vindictr_state *state = machine.driver_data<vindictr_state>(); | |
| 33 | UINT16 data = state->m_playfield[tile_index]; | |
| 34 | int code = (state->m_playfield_tile_bank * 0x1000) + (data & 0xfff); | |
| 31 | UINT16 data = m_playfield[tile_index]; | |
| 32 | int code = (m_playfield_tile_bank * 0x1000) + (data & 0xfff); | |
| 35 | 33 | int color = 0x10 + 2 * ((data >> 12) & 7); |
| 36 | SET_TILE_INFO(0, code, color, (data >> 15) & 1); | |
| 34 | SET_TILE_INFO_MEMBER(0, code, color, (data >> 15) & 1); | |
| 37 | 35 | } |
| 38 | 36 | |
| 39 | 37 | |
| r17673 | r17674 | |
| 85 | 83 | vindictr_state *state = machine.driver_data<vindictr_state>(); |
| 86 | 84 | |
| 87 | 85 | /* initialize the playfield */ |
| 88 | state->m_playfield_tilemap = tilemap | |
| 86 | state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(vindictr_state::get_playfield_tile_info),state), TILEMAP_SCAN_COLS, 8,8, 64,64); | |
| 89 | 87 | |
| 90 | 88 | /* initialize the motion objects */ |
| 91 | 89 | atarimo_init(machine, 0, &modesc); |
| 92 | 90 | |
| 93 | 91 | /* initialize the alphanumerics */ |
| 94 | state->m_alpha_tilemap = tilemap | |
| 92 | state->m_alpha_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(vindictr_state::get_alpha_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,32); | |
| 95 | 93 | state->m_alpha_tilemap->set_transparent_pen(0); |
| 96 | 94 | |
| 97 | 95 | /* save states */ |
| r17673 | r17674 | |
|---|---|---|
| 61 | 61 | |
| 62 | 62 | ***************************************************************************/ |
| 63 | 63 | |
| 64 | ||
| 64 | ||
| 65 | 65 | { |
| 66 | cop01_state *state = machine.driver_data<cop01_state>(); | |
| 67 | int tile = state->m_bgvideoram[tile_index]; | |
| 68 | int attr = state->m_bgvideoram[tile_index + 0x800]; | |
| 66 | int tile = m_bgvideoram[tile_index]; | |
| 67 | int attr = m_bgvideoram[tile_index + 0x800]; | |
| 69 | 68 | int pri = (attr & 0x80) >> 7; |
| 70 | 69 | |
| 71 | 70 | /* kludge: priority is not actually pen based, but color based. Since the |
| r17673 | r17674 | |
| 81 | 80 | if (attr & 0x10) |
| 82 | 81 | pri = 0; |
| 83 | 82 | |
| 84 | SET_TILE_INFO(1, tile + ((attr & 0x03) << 8), (attr & 0x1c) >> 2, 0); | |
| 83 | SET_TILE_INFO_MEMBER(1, tile + ((attr & 0x03) << 8), (attr & 0x1c) >> 2, 0); | |
| 85 | 84 | tileinfo.group = pri; |
| 86 | 85 | } |
| 87 | 86 | |
| 88 | ||
| 87 | ||
| 89 | 88 | { |
| 90 | cop01_state *state = machine.driver_data<cop01_state>(); | |
| 91 | int tile = state->m_fgvideoram[tile_index]; | |
| 92 | SET_TILE_INFO(0, tile, 0, 0); | |
| 89 | int tile = m_fgvideoram[tile_index]; | |
| 90 | SET_TILE_INFO_MEMBER(0, tile, 0, 0); | |
| 93 | 91 | } |
| 94 | 92 | |
| 95 | 93 | |
| r17673 | r17674 | |
| 103 | 101 | VIDEO_START( cop01 ) |
| 104 | 102 | { |
| 105 | 103 | cop01_state *state = machine.driver_data<cop01_state>(); |
| 106 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 107 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info,TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 104 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cop01_state::get_bg_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 105 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cop01_state::get_fg_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 108 | 106 | |
| 109 | 107 | state->m_fg_tilemap->set_transparent_pen(15); |
| 110 | 108 |
| r17673 | r17674 | |
|---|---|---|
| 89 | 89 | } |
| 90 | 90 | } |
| 91 | 91 | |
| 92 | ||
| 92 | ||
| 93 | 93 | { |
| 94 | hanaawas_state *state = machine.driver_data<hanaawas_state>(); | |
| 95 | 94 | /* the color is determined by the current color byte, but the bank is via the previous one!!! */ |
| 96 | int offset = (tile_index + (state->flip_screen() ? 1 : -1)) & 0x3ff; | |
| 97 | int attr = state->m_colorram[offset]; | |
| 95 | int offset = (tile_index + (flip_screen() ? 1 : -1)) & 0x3ff; | |
| 96 | int attr = m_colorram[offset]; | |
| 98 | 97 | int gfxbank = (attr & 0x40) >> 6; |
| 99 | int code = state->m_videoram[tile_index] + ((attr & 0x20) << 3); | |
| 100 | int color = state->m_colorram[tile_index] & 0x1f; | |
| 98 | int code = m_videoram[tile_index] + ((attr & 0x20) << 3); | |
| 99 | int color = m_colorram[tile_index] & 0x1f; | |
| 101 | 100 | |
| 102 | SET_TILE_INFO(gfxbank, code, color, 0); | |
| 101 | SET_TILE_INFO_MEMBER(gfxbank, code, color, 0); | |
| 103 | 102 | } |
| 104 | 103 | |
| 105 | 104 | VIDEO_START( hanaawas ) |
| 106 | 105 | { |
| 107 | 106 | hanaawas_state *state = machine.driver_data<hanaawas_state>(); |
| 108 | state->m_bg_tilemap = tilemap | |
| 107 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hanaawas_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 109 | 108 | } |
| 110 | 109 | |
| 111 | 110 | SCREEN_UPDATE_IND16( hanaawas ) |
| r17673 | r17674 | |
|---|---|---|
| 86 | 86 | } |
| 87 | 87 | |
| 88 | 88 | /* TXT Layer */ |
| 89 | ||
| 89 | ||
| 90 | 90 | { |
| 91 | aquarium_state *state = machine.driver_data<aquarium_state>(); | |
| 92 | 91 | int tileno, colour; |
| 93 | 92 | |
| 94 | tileno = (state->m_txt_videoram[tile_index] & 0x0fff); | |
| 95 | colour = (state->m_txt_videoram[tile_index] & 0xf000) >> 12; | |
| 96 | SET_TILE_INFO(2, tileno, colour, 0); | |
| 93 | tileno = (m_txt_videoram[tile_index] & 0x0fff); | |
| 94 | colour = (m_txt_videoram[tile_index] & 0xf000) >> 12; | |
| 95 | SET_TILE_INFO_MEMBER(2, tileno, colour, 0); | |
| 97 | 96 | } |
| 98 | 97 | |
| 99 | 98 | WRITE16_MEMBER(aquarium_state::aquarium_txt_videoram_w) |
| r17673 | r17674 | |
| 103 | 102 | } |
| 104 | 103 | |
| 105 | 104 | /* MID Layer */ |
| 106 | ||
| 105 | ||
| 107 | 106 | { |
| 108 | aquarium_state *state = machine.driver_data<aquarium_state>(); | |
| 109 | 107 | int tileno, colour, flag; |
| 110 | 108 | |
| 111 | tileno = (state->m_mid_videoram[tile_index * 2] & 0x0fff); | |
| 112 | colour = (state->m_mid_videoram[tile_index * 2 + 1] & 0x001f); | |
| 113 | flag = TILE_FLIPYX((state->m_mid_videoram[tile_index * 2 + 1] & 0x300) >> 8); | |
| 109 | tileno = (m_mid_videoram[tile_index * 2] & 0x0fff); | |
| 110 | colour = (m_mid_videoram[tile_index * 2 + 1] & 0x001f); | |
| 111 | flag = TILE_FLIPYX((m_mid_videoram[tile_index * 2 + 1] & 0x300) >> 8); | |
| 114 | 112 | |
| 115 | SET_TILE_INFO(1, tileno, colour, flag); | |
| 113 | SET_TILE_INFO_MEMBER(1, tileno, colour, flag); | |
| 116 | 114 | |
| 117 | tileinfo.category = ( | |
| 115 | tileinfo.category = ( | |
| 118 | 116 | } |
| 119 | 117 | |
| 120 | 118 | WRITE16_MEMBER(aquarium_state::aquarium_mid_videoram_w) |
| r17673 | r17674 | |
| 124 | 122 | } |
| 125 | 123 | |
| 126 | 124 | /* BAK Layer */ |
| 127 | ||
| 125 | ||
| 128 | 126 | { |
| 129 | aquarium_state *state = machine.driver_data<aquarium_state>(); | |
| 130 | 127 | int tileno, colour, flag; |
| 131 | 128 | |
| 132 | tileno = (state->m_bak_videoram[tile_index * 2] & 0x0fff); | |
| 133 | colour = (state->m_bak_videoram[tile_index * 2 + 1] & 0x001f); | |
| 134 | flag = TILE_FLIPYX((state->m_bak_videoram[tile_index * 2 + 1] & 0x300) >> 8); | |
| 129 | tileno = (m_bak_videoram[tile_index * 2] & 0x0fff); | |
| 130 | colour = (m_bak_videoram[tile_index * 2 + 1] & 0x001f); | |
| 131 | flag = TILE_FLIPYX((m_bak_videoram[tile_index * 2 + 1] & 0x300) >> 8); | |
| 135 | 132 | |
| 136 | SET_TILE_INFO(3, tileno, colour, flag); | |
| 133 | SET_TILE_INFO_MEMBER(3, tileno, colour, flag); | |
| 137 | 134 | |
| 138 | tileinfo.category = ( | |
| 135 | tileinfo.category = ( | |
| 139 | 136 | } |
| 140 | 137 | |
| 141 | 138 | WRITE16_MEMBER(aquarium_state::aquarium_bak_videoram_w) |
| r17673 | r17674 | |
| 147 | 144 | VIDEO_START(aquarium) |
| 148 | 145 | { |
| 149 | 146 | aquarium_state *state = machine.driver_data<aquarium_state>(); |
| 150 | state->m_txt_tilemap = tilemap_create(machine, get_aquarium_txt_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 151 | state->m_bak_tilemap = tilemap_create(machine, get_aquarium_bak_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 152 | state->m_mid_tilemap = tilemap_create(machine, get_aquarium_mid_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 147 | state->m_txt_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(aquarium_state::get_aquarium_txt_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 148 | state->m_bak_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(aquarium_state::get_aquarium_bak_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 149 | state->m_mid_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(aquarium_state::get_aquarium_mid_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 153 | 150 | |
| 154 | 151 | state->m_txt_tilemap->set_transparent_pen(0); |
| 155 | 152 | state->m_mid_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 55 | 55 | #include "includes/metro.h" |
| 56 | 56 | #include "video/konicdev.h" |
| 57 | 57 | |
| 58 | ||
| 58 | ||
| 59 | 59 | { |
| 60 | metro_state *state = machine.driver_data<metro_state>(); | |
| 61 | int code = state->m_k053936_ram[tile_index]; | |
| 60 | int code = m_k053936_ram[tile_index]; | |
| 62 | 61 | |
| 63 | SET_TILE_INFO( | |
| 62 | SET_TILE_INFO_MEMBER( | |
| 64 | 63 | 2, |
| 65 | 64 | code & 0x7fff, |
| 66 | 65 | 0x1e, |
| 67 | 66 | 0); |
| 68 | 67 | } |
| 69 | 68 | |
| 70 | ||
| 69 | ||
| 71 | 70 | { |
| 72 | metro_state *state = machine.driver_data<metro_state>(); | |
| 73 | int code = state->m_k053936_ram[tile_index]; | |
| 71 | int code = m_k053936_ram[tile_index]; | |
| 74 | 72 | |
| 75 | SET_TILE_INFO( | |
| 73 | SET_TILE_INFO_MEMBER( | |
| 76 | 74 | 2, |
| 77 | 75 | (code & 0x7fff)>>2, |
| 78 | 76 | 0x1e, |
| r17673 | r17674 | |
| 85 | 83 | m_k053936_tilemap->mark_tile_dirty(offset); |
| 86 | 84 | } |
| 87 | 85 | |
| 88 | ||
| 86 | ||
| 89 | 87 | { |
| 90 | 88 | /* logical (col,row) -> memory offset */ |
| 91 | 89 | int val; |
| r17673 | r17674 | |
| 358 | 356 | |
| 359 | 357 | state->m_has_zoom = 1; |
| 360 | 358 | |
| 361 | state->m_k053936_tilemap = tilemap | |
| 359 | state->m_k053936_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(metro_state::metro_k053936_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 256, 512); | |
| 362 | 360 | |
| 363 | 361 | state->m_bg_tilemap_scrolldx[0] = 8; |
| 364 | 362 | state->m_bg_tilemap_scrolldx[1] = 8; |
| r17673 | r17674 | |
| 373 | 371 | |
| 374 | 372 | state->m_has_zoom = 1; |
| 375 | 373 | |
| 376 | state->m_k053936_tilemap = tilemap | |
| 374 | state->m_k053936_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(metro_state::metro_k053936_gstrik2_get_tile_info),state), tilemap_mapper_delegate(FUNC(metro_state::tilemap_scan_gstrik2),state), 16, 16, 128, 256); | |
| 377 | 375 | |
| 378 | 376 | state->m_bg_tilemap_scrolldx[0] = 8; |
| 379 | 377 | state->m_bg_tilemap_scrolldx[1] = 0; |
| r17673 | r17674 | |
|---|---|---|
| 14 | 14 | |
| 15 | 15 | */ |
| 16 | 16 | |
| 17 | ||
| 17 | ||
| 18 | 18 | { |
| 19 | angelkds_state *state = machine.driver_data<angelkds_state>(); | |
| 20 | 19 | int tileno; |
| 21 | 20 | |
| 22 | tileno = state->m_txvideoram[tile_index] + (state->m_txbank * 0x100); | |
| 23 | SET_TILE_INFO(0, tileno, 0, 0); | |
| 21 | tileno = m_txvideoram[tile_index] + (m_txbank * 0x100); | |
| 22 | SET_TILE_INFO_MEMBER(0, tileno, 0, 0); | |
| 24 | 23 | } |
| 25 | 24 | |
| 26 | 25 | WRITE8_MEMBER(angelkds_state::angelkds_txvideoram_w) |
| r17673 | r17674 | |
| 44 | 43 | |
| 45 | 44 | */ |
| 46 | 45 | |
| 47 | ||
| 46 | ||
| 48 | 47 | { |
| 49 | angelkds_state *state = machine.driver_data<angelkds_state>(); | |
| 50 | 48 | int tileno; |
| 51 | 49 | |
| 52 | tileno = | |
| 50 | tileno = | |
| 53 | 51 | |
| 54 | tileno += state->m_bgtopbank * 0x100 ; | |
| 55 | SET_TILE_INFO(1, tileno, 0, 0); | |
| 52 | tileno += m_bgtopbank * 0x100 ; | |
| 53 | SET_TILE_INFO_MEMBER(1, tileno, 0, 0); | |
| 56 | 54 | } |
| 57 | 55 | |
| 58 | 56 | WRITE8_MEMBER(angelkds_state::angelkds_bgtopvideoram_w) |
| r17673 | r17674 | |
| 82 | 80 | |
| 83 | 81 | */ |
| 84 | 82 | |
| 85 | ||
| 83 | ||
| 86 | 84 | { |
| 87 | angelkds_state *state = machine.driver_data<angelkds_state>(); | |
| 88 | 85 | int tileno; |
| 89 | 86 | |
| 90 | tileno = | |
| 87 | tileno = | |
| 91 | 88 | |
| 92 | tileno += state->m_bgbotbank * 0x100 ; | |
| 93 | SET_TILE_INFO(2, tileno, 1, 0); | |
| 89 | tileno += m_bgbotbank * 0x100 ; | |
| 90 | SET_TILE_INFO_MEMBER(2, tileno, 1, 0); | |
| 94 | 91 | } |
| 95 | 92 | |
| 96 | 93 | WRITE8_MEMBER(angelkds_state::angelkds_bgbotvideoram_w) |
| r17673 | r17674 | |
| 250 | 247 | { |
| 251 | 248 | angelkds_state *state = machine.driver_data<angelkds_state>(); |
| 252 | 249 | |
| 253 | state->m_tx_tilemap = tilemap | |
| 250 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(angelkds_state::get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 254 | 251 | state->m_tx_tilemap->set_transparent_pen(0); |
| 255 | 252 | |
| 256 | state->m_bgbot_tilemap = tilemap | |
| 253 | state->m_bgbot_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(angelkds_state::get_bgbot_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 257 | 254 | state->m_bgbot_tilemap->set_transparent_pen(15); |
| 258 | 255 | |
| 259 | state->m_bgtop_tilemap = tilemap | |
| 256 | state->m_bgtop_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(angelkds_state::get_bgtop_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 260 | 257 | state->m_bgtop_tilemap->set_transparent_pen(15); |
| 261 | 258 | } |
| 262 | 259 |
| r17673 | r17674 | |
|---|---|---|
| 99 | 99 | |
| 100 | 100 | ***************************************************************************/ |
| 101 | 101 | |
| 102 | ||
| 102 | ||
| 103 | 103 | { |
| 104 | circusc_state *state = machine.driver_data<circusc_state>(); | |
| 105 | UINT8 attr = state->m_colorram[tile_index]; | |
| 104 | UINT8 attr = m_colorram[tile_index]; | |
| 106 | 105 | tileinfo.category = (attr & 0x10) >> 4; |
| 107 | 106 | |
| 108 | SET_TILE_INFO(0, | |
| 109 | state->m_videoram[tile_index] + ((attr & 0x20) << 3), | |
| 107 | SET_TILE_INFO_MEMBER(0, | |
| 108 | m_videoram[tile_index] + ((attr & 0x20) << 3), | |
| 110 | 109 | attr & 0x0f, |
| 111 | 110 | TILE_FLIPYX((attr & 0xc0) >> 6)); |
| 112 | 111 | } |
| r17673 | r17674 | |
| 122 | 121 | VIDEO_START( circusc ) |
| 123 | 122 | { |
| 124 | 123 | circusc_state *state = machine.driver_data<circusc_state>(); |
| 125 | state->m_bg_tilemap = tilemap | |
| 124 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(circusc_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 126 | 125 | |
| 127 | 126 | state->m_bg_tilemap->set_scroll_cols(32); |
| 128 | 127 | } |
| r17673 | r17674 | |
|---|---|---|
| 121 | 121 | } |
| 122 | 122 | } |
| 123 | 123 | |
| 124 | ||
| 124 | ||
| 125 | 125 | { |
| 126 | mikie_state *state = machine.driver_data<mikie_state>(); | |
| 127 | int code = state->m_videoram[tile_index] + ((state->m_colorram[tile_index] & 0x20) << 3); | |
| 128 | int color = (state->m_colorram[tile_index] & 0x0f) + 16 * state->m_palettebank; | |
| 129 | int flags = ((state->m_colorram[tile_index] & 0x40) ? TILE_FLIPX : 0) | ((state->m_colorram[tile_index] & 0x80) ? TILE_FLIPY : 0); | |
| 130 | if (state->m_colorram[tile_index] & 0x10) | |
| 126 | int code = m_videoram[tile_index] + ((m_colorram[tile_index] & 0x20) << 3); | |
| 127 | int color = (m_colorram[tile_index] & 0x0f) + 16 * m_palettebank; | |
| 128 | int flags = ((m_colorram[tile_index] & 0x40) ? TILE_FLIPX : 0) | ((m_colorram[tile_index] & 0x80) ? TILE_FLIPY : 0); | |
| 129 | if (m_colorram[tile_index] & 0x10) | |
| 131 | 130 | tileinfo.category = 1; |
| 132 | 131 | else |
| 133 | 132 | tileinfo.category = 0; |
| 134 | 133 | |
| 135 | SET_TILE_INFO(0, code, color, flags); | |
| 134 | SET_TILE_INFO_MEMBER(0, code, color, flags); | |
| 136 | 135 | |
| 137 | 136 | |
| 138 | 137 | } |
| r17673 | r17674 | |
| 140 | 139 | VIDEO_START( mikie ) |
| 141 | 140 | { |
| 142 | 141 | mikie_state *state = machine.driver_data<mikie_state>(); |
| 143 | state->m_bg_tilemap = tilemap | |
| 142 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mikie_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 144 | 143 | } |
| 145 | 144 | |
| 146 | 145 | static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| r17673 | r17674 | |
|---|---|---|
| 31 | 31 | |
| 32 | 32 | |
| 33 | 33 | |
| 34 | ||
| 34 | ||
| 35 | 35 | { |
| 36 | usgames_state *state = machine.driver_data<usgames_state>(); | |
| 37 | 36 | int tileno, colour; |
| 38 | 37 | |
| 39 | tileno = state->m_videoram[tile_index*2]; | |
| 40 | colour = state->m_videoram[tile_index*2+1]; | |
| 38 | tileno = m_videoram[tile_index*2]; | |
| 39 | colour = m_videoram[tile_index*2+1]; | |
| 41 | 40 | |
| 42 | SET_TILE_INFO(0,tileno,colour,0); | |
| 41 | SET_TILE_INFO_MEMBER(0,tileno,colour,0); | |
| 43 | 42 | } |
| 44 | 43 | |
| 45 | 44 | VIDEO_START(usgames) |
| 46 | 45 | { |
| 47 | 46 | usgames_state *state = machine.driver_data<usgames_state>(); |
| 48 | state->m_tilemap = tilemap | |
| 47 | state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(usgames_state::get_usgames_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,32); | |
| 49 | 48 | machine.gfx[0]->set_source(state->m_charram); |
| 50 | 49 | } |
| 51 | 50 |
| r17673 | r17674 | |
|---|---|---|
| 113 | 113 | |
| 114 | 114 | ***************************************************************************/ |
| 115 | 115 | |
| 116 | ||
| 116 | ||
| 117 | 117 | { |
| 118 | zaccaria_state *state = machine.driver_data<zaccaria_state>(); | |
| 119 | UINT8 attr = state->m_videoram[tile_index + 0x400]; | |
| 120 | SET_TILE_INFO( | |
| 118 | UINT8 attr = m_videoram[tile_index + 0x400]; | |
| 119 | SET_TILE_INFO_MEMBER( | |
| 121 | 120 | 0, |
| 122 | state->m_videoram[tile_index] + ((attr & 0x03) << 8), | |
| 123 | ((attr & 0x0c) >> 2) + ((state->m_attributesram[2 * (tile_index % 32) + 1] & 0x07) << 2), | |
| 121 | m_videoram[tile_index] + ((attr & 0x03) << 8), | |
| 122 | ((attr & 0x0c) >> 2) + ((m_attributesram[2 * (tile_index % 32) + 1] & 0x07) << 2), | |
| 124 | 123 | 0); |
| 125 | 124 | } |
| 126 | 125 | |
| r17673 | r17674 | |
| 135 | 134 | VIDEO_START( zaccaria ) |
| 136 | 135 | { |
| 137 | 136 | zaccaria_state *state = machine.driver_data<zaccaria_state>(); |
| 138 | state->m_bg_tilemap = tilemap | |
| 137 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(zaccaria_state::get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 139 | 138 | |
| 140 | 139 | state->m_bg_tilemap->set_scroll_cols(32); |
| 141 | 140 | } |
| r17673 | r17674 | |
|---|---|---|
| 10 | 10 | #include "includes/speedbal.h" |
| 11 | 11 | |
| 12 | 12 | |
| 13 | ||
| 13 | ||
| 14 | 14 | { |
| 15 | speedbal_state *state = machine.driver_data<speedbal_state>(); | |
| 16 | int code = state->m_background_videoram[tile_index*2] + ((state->m_background_videoram[tile_index*2+1] & 0x30) << 4); | |
| 17 | int color = state->m_background_videoram[tile_index*2+1] & 0x0f; | |
| 15 | int code = m_background_videoram[tile_index*2] + ((m_background_videoram[tile_index*2+1] & 0x30) << 4); | |
| 16 | int color = m_background_videoram[tile_index*2+1] & 0x0f; | |
| 18 | 17 | |
| 19 | SET_TILE_INFO(1, code, color, 0); | |
| 18 | SET_TILE_INFO_MEMBER(1, code, color, 0); | |
| 20 | 19 | tileinfo.group = (color == 8); |
| 21 | 20 | } |
| 22 | 21 | |
| 23 | ||
| 22 | ||
| 24 | 23 | { |
| 25 | speedbal_state *state = machine.driver_data<speedbal_state>(); | |
| 26 | int code = state->m_foreground_videoram[tile_index*2] + ((state->m_foreground_videoram[tile_index*2+1] & 0x30) << 4); | |
| 27 | int color = state->m_foreground_videoram[tile_index*2+1] & 0x0f; | |
| 24 | int code = m_foreground_videoram[tile_index*2] + ((m_foreground_videoram[tile_index*2+1] & 0x30) << 4); | |
| 25 | int color = m_foreground_videoram[tile_index*2+1] & 0x0f; | |
| 28 | 26 | |
| 29 | SET_TILE_INFO(0, code, color, 0); | |
| 27 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 30 | 28 | tileinfo.group = (color == 9); |
| 31 | 29 | } |
| 32 | 30 | |
| r17673 | r17674 | |
| 39 | 37 | VIDEO_START( speedbal ) |
| 40 | 38 | { |
| 41 | 39 | speedbal_state *state = machine.driver_data<speedbal_state>(); |
| 42 | state->m_bg_tilemap = tilemap_create(machine, get_tile_info_bg, TILEMAP_SCAN_COLS_FLIP_X, 16, 16, 16, 16); | |
| 43 | state->m_fg_tilemap = tilemap_create(machine, get_tile_info_fg, TILEMAP_SCAN_COLS_FLIP_X, 8, 8, 32, 32); | |
| 40 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(speedbal_state::get_tile_info_bg),state), TILEMAP_SCAN_COLS_FLIP_X, 16, 16, 16, 16); | |
| 41 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(speedbal_state::get_tile_info_fg),state), TILEMAP_SCAN_COLS_FLIP_X, 8, 8, 32, 32); | |
| 44 | 42 | |
| 45 | 43 | state->m_bg_tilemap->set_transmask(0,0xffff,0x0000); /* split type 0 is totally transparent in front half */ |
| 46 | 44 | state->m_bg_tilemap->set_transmask(1,0x00f7,0x0000); /* split type 1 has pen 0-2, 4-7 transparent in front half */ |
| r17673 | r17674 | |
|---|---|---|
| 1 | 1 | #include "emu.h" |
| 2 | 2 | #include "includes/shadfrce.h" |
| 3 | 3 | |
| 4 | ||
| 4 | ||
| 5 | 5 | { |
| 6 | 6 | |
| 7 | 7 | /* ---- ---- tttt tttt ---- ---- pppp TTTT */ |
| 8 | shadfrce_state *state = machine.driver_data<shadfrce_state>(); | |
| 9 | 8 | int tileno, colour; |
| 10 | 9 | |
| 11 | tileno = (state->m_fgvideoram[tile_index *2] & 0x00ff) | ((state->m_fgvideoram[tile_index *2+1] & 0x000f) << 8); | |
| 12 | colour = (state->m_fgvideoram[tile_index *2+1] & 0x00f0) >>4; | |
| 10 | tileno = (m_fgvideoram[tile_index *2] & 0x00ff) | ((m_fgvideoram[tile_index *2+1] & 0x000f) << 8); | |
| 11 | colour = (m_fgvideoram[tile_index *2+1] & 0x00f0) >>4; | |
| 13 | 12 | |
| 14 | SET_TILE_INFO(0,tileno,colour*4,0); | |
| 13 | SET_TILE_INFO_MEMBER(0,tileno,colour*4,0); | |
| 15 | 14 | } |
| 16 | 15 | |
| 17 | 16 | WRITE16_MEMBER(shadfrce_state::shadfrce_fgvideoram_w) |
| r17673 | r17674 | |
| 21 | 20 | m_fgtilemap->mark_tile_dirty(offset/2); |
| 22 | 21 | } |
| 23 | 22 | |
| 24 | ||
| 23 | ||
| 25 | 24 | { |
| 26 | 25 | |
| 27 | 26 | /* ---- ---- ---- cccc --TT TTTT TTTT TTTT */ |
| 28 | shadfrce_state *state = machine.driver_data<shadfrce_state>(); | |
| 29 | 27 | int tileno, colour,fyx; |
| 30 | 28 | |
| 31 | tileno = (state->m_bg0videoram[tile_index *2+1] & 0x3fff); | |
| 32 | colour = state->m_bg0videoram[tile_index *2] & 0x001f; | |
| 29 | tileno = (m_bg0videoram[tile_index *2+1] & 0x3fff); | |
| 30 | colour = m_bg0videoram[tile_index *2] & 0x001f; | |
| 33 | 31 | if (colour & 0x10) colour ^= 0x30; /* skip hole */ |
| 34 | fyx = ( | |
| 32 | fyx = ( | |
| 35 | 33 | |
| 36 | SET_TILE_INFO(2,tileno,colour,TILE_FLIPYX(fyx)); | |
| 34 | SET_TILE_INFO_MEMBER(2,tileno,colour,TILE_FLIPYX(fyx)); | |
| 37 | 35 | } |
| 38 | 36 | |
| 39 | 37 | WRITE16_MEMBER(shadfrce_state::shadfrce_bg0videoram_w) |
| r17673 | r17674 | |
| 43 | 41 | m_bg0tilemap->mark_tile_dirty(offset/2); |
| 44 | 42 | } |
| 45 | 43 | |
| 46 | ||
| 44 | ||
| 47 | 45 | { |
| 48 | shadfrce_state *state = machine.driver_data<shadfrce_state>(); | |
| 49 | 46 | int tileno, colour; |
| 50 | 47 | |
| 51 | tileno = (state->m_bg1videoram[tile_index] & 0x0fff); | |
| 52 | colour = (state->m_bg1videoram[tile_index] & 0xf000) >> 12; | |
| 48 | tileno = (m_bg1videoram[tile_index] & 0x0fff); | |
| 49 | colour = (m_bg1videoram[tile_index] & 0xf000) >> 12; | |
| 53 | 50 | |
| 54 | SET_TILE_INFO(2,tileno,colour+64,0); | |
| 51 | SET_TILE_INFO_MEMBER(2,tileno,colour+64,0); | |
| 55 | 52 | } |
| 56 | 53 | |
| 57 | 54 | WRITE16_MEMBER(shadfrce_state::shadfrce_bg1videoram_w) |
| r17673 | r17674 | |
| 68 | 65 | { |
| 69 | 66 | shadfrce_state *state = machine.driver_data<shadfrce_state>(); |
| 70 | 67 | |
| 71 | state->m_fgtilemap = tilemap | |
| 68 | state->m_fgtilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(shadfrce_state::get_shadfrce_fgtile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,32); | |
| 72 | 69 | state->m_fgtilemap->set_transparent_pen(0); |
| 73 | 70 | |
| 74 | state->m_bg0tilemap = tilemap | |
| 71 | state->m_bg0tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(shadfrce_state::get_shadfrce_bg0tile_info),state),TILEMAP_SCAN_ROWS, 16, 16,32,32); | |
| 75 | 72 | state->m_bg0tilemap->set_transparent_pen(0); |
| 76 | 73 | |
| 77 | state->m_bg1tilemap = tilemap | |
| 74 | state->m_bg1tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(shadfrce_state::get_shadfrce_bg1tile_info),state),TILEMAP_SCAN_ROWS, 16, 16,32,32); | |
| 78 | 75 | |
| 79 | 76 | state->m_spvideoram_old = auto_alloc_array(machine, UINT16, state->m_spvideoram.bytes()/2); |
| 80 | 77 | } |
| r17673 | r17674 | |
|---|---|---|
| 127 | 127 | coin_counter_w(machine(), 1, data & 0x40); |
| 128 | 128 | } |
| 129 | 129 | |
| 130 | ||
| 130 | ||
| 131 | 131 | { |
| 132 | tagteam_state *state = machine.driver_data<tagteam_state>(); | |
| 133 | int code = state->m_videoram[tile_index] + 256 * state->m_colorram[tile_index]; | |
| 134 | int color = state->m_palettebank << 1; | |
| 132 | int code = m_videoram[tile_index] + 256 * m_colorram[tile_index]; | |
| 133 | int color = m_palettebank << 1; | |
| 135 | 134 | |
| 136 | SET_TILE_INFO(0, code, color, 0); | |
| 135 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 137 | 136 | } |
| 138 | 137 | |
| 139 | 138 | VIDEO_START( tagteam ) |
| 140 | 139 | { |
| 141 | 140 | tagteam_state *state = machine.driver_data<tagteam_state>(); |
| 142 | state->m_bg_tilemap = tilemap | |
| 141 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tagteam_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS_FLIP_X, | |
| 143 | 142 | 8, 8, 32, 32); |
| 144 | 143 | } |
| 145 | 144 |
| r17673 | r17674 | |
|---|---|---|
| 89 | 89 | } |
| 90 | 90 | } |
| 91 | 91 | |
| 92 | ||
| 92 | ||
| 93 | 93 | { |
| 94 | bagman_state *state = machine.driver_data<bagman_state>(); | |
| 95 | int gfxbank = (machine.gfx[2] && (state->m_colorram[tile_index] & 0x10)) ? 2 : 0; | |
| 96 | int code = state->m_videoram[tile_index] + 8 * (state->m_colorram[tile_index] & 0x20); | |
| 97 | int color = state->m_colorram[tile_index] & 0x0f; | |
| 94 | int gfxbank = (machine().gfx[2] && (m_colorram[tile_index] & 0x10)) ? 2 : 0; | |
| 95 | int code = m_videoram[tile_index] + 8 * (m_colorram[tile_index] & 0x20); | |
| 96 | int color = m_colorram[tile_index] & 0x0f; | |
| 98 | 97 | |
| 99 | SET_TILE_INFO(gfxbank, code, color, 0); | |
| 98 | SET_TILE_INFO_MEMBER(gfxbank, code, color, 0); | |
| 100 | 99 | } |
| 101 | 100 | |
| 102 | 101 | VIDEO_START( bagman ) |
| 103 | 102 | { |
| 104 | 103 | bagman_state *state = machine.driver_data<bagman_state>(); |
| 105 | state->m_bg_tilemap = tilemap | |
| 104 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bagman_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, | |
| 106 | 105 | 8, 8, 32, 32); |
| 107 | 106 | |
| 108 | 107 | state->m_bg_tilemap->set_scrolldy(-1, -1); |
| r17673 | r17674 | |
|---|---|---|
| 161 | 161 | |
| 162 | 162 | ******************************************************************************/ |
| 163 | 163 | |
| 164 | ||
| 164 | ||
| 165 | 165 | { |
| 166 | inufuku_state *state = machine.driver_data<inufuku_state>(); | |
| 167 | SET_TILE_INFO( | |
| 166 | SET_TILE_INFO_MEMBER( | |
| 168 | 167 | 0, |
| 169 | state->m_bg_videoram[tile_index], | |
| 170 | state->m_bg_palettebank, | |
| 168 | m_bg_videoram[tile_index], | |
| 169 | m_bg_palettebank, | |
| 171 | 170 | 0); |
| 172 | 171 | } |
| 173 | 172 | |
| 174 | ||
| 173 | ||
| 175 | 174 | { |
| 176 | inufuku_state *state = machine.driver_data<inufuku_state>(); | |
| 177 | SET_TILE_INFO( | |
| 175 | SET_TILE_INFO_MEMBER( | |
| 178 | 176 | 1, |
| 179 | state->m_tx_videoram[tile_index], | |
| 180 | state->m_tx_palettebank, | |
| 177 | m_tx_videoram[tile_index], | |
| 178 | m_tx_palettebank, | |
| 181 | 179 | 0); |
| 182 | 180 | } |
| 183 | 181 | |
| r17673 | r17674 | |
| 214 | 212 | { |
| 215 | 213 | inufuku_state *state = machine.driver_data<inufuku_state>(); |
| 216 | 214 | |
| 217 | state->m_bg_tilemap = tilemap_create(machine, get_inufuku_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 218 | state->m_tx_tilemap = tilemap_create(machine, get_inufuku_tx_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 215 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(inufuku_state::get_inufuku_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 216 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(inufuku_state::get_inufuku_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 219 | 217 | |
| 220 | 218 | state->m_bg_tilemap->set_transparent_pen(255); |
| 221 | 219 | state->m_tx_tilemap->set_transparent_pen(255); |
| r17673 | r17674 | |
|---|---|---|
| 66 | 66 | flip_screen_set(data & 0x80); |
| 67 | 67 | } |
| 68 | 68 | |
| 69 | ||
| 69 | ||
| 70 | 70 | { |
| 71 | commando_state *state = machine.driver_data<commando_state>(); | |
| 72 | int attr = state->m_colorram[tile_index]; | |
| 73 | int code = state->m_videoram[tile_index] + ((attr & 0xc0) << 2); | |
| 71 | int attr = m_colorram[tile_index]; | |
| 72 | int code = m_videoram[tile_index] + ((attr & 0xc0) << 2); | |
| 74 | 73 | int color = attr & 0x0f; |
| 75 | 74 | int flags = TILE_FLIPYX((attr & 0x30) >> 4); |
| 76 | 75 | |
| 77 | SET_TILE_INFO(1, code, color, flags); | |
| 76 | SET_TILE_INFO_MEMBER(1, code, color, flags); | |
| 78 | 77 | } |
| 79 | 78 | |
| 80 | ||
| 79 | ||
| 81 | 80 | { |
| 82 | commando_state *state = machine.driver_data<commando_state>(); | |
| 83 | int attr = state->m_colorram2[tile_index]; | |
| 84 | int code = state->m_videoram2[tile_index] + ((attr & 0xc0) << 2); | |
| 81 | int attr = m_colorram2[tile_index]; | |
| 82 | int code = m_videoram2[tile_index] + ((attr & 0xc0) << 2); | |
| 85 | 83 | int color = attr & 0x0f; |
| 86 | 84 | int flags = TILE_FLIPYX((attr & 0x30) >> 4); |
| 87 | 85 | |
| 88 | SET_TILE_INFO(0, code, color, flags); | |
| 86 | SET_TILE_INFO_MEMBER(0, code, color, flags); | |
| 89 | 87 | } |
| 90 | 88 | |
| 91 | 89 | VIDEO_START( commando ) |
| 92 | 90 | { |
| 93 | 91 | commando_state *state = machine.driver_data<commando_state>(); |
| 94 | 92 | |
| 95 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, 16, 16, 32, 32); | |
| 96 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 93 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(commando_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32); | |
| 94 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(commando_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 97 | 95 | |
| 98 | 96 | state->m_fg_tilemap->set_transparent_pen(3); |
| 99 | 97 | } |
| r17673 | r17674 | |
|---|---|---|
| 27 | 27 | * |
| 28 | 28 | *************************************/ |
| 29 | 29 | |
| 30 | ||
| 30 | ||
| 31 | 31 | { |
| 32 | atarisy2_state *state = machine.driver_data<atarisy2_state>(); | |
| 33 | UINT16 data = state->m_alpha[tile_index]; | |
| 32 | UINT16 data = m_alpha[tile_index]; | |
| 34 | 33 | int code = data & 0x3ff; |
| 35 | 34 | int color = (data >> 13) & 0x07; |
| 36 | SET_TILE_INFO(2, code, color, 0); | |
| 35 | SET_TILE_INFO_MEMBER(2, code, color, 0); | |
| 37 | 36 | } |
| 38 | 37 | |
| 39 | 38 | |
| 40 | ||
| 39 | ||
| 41 | 40 | { |
| 42 | atarisy2_state *state = machine.driver_data<atarisy2_state>(); | |
| 43 | UINT16 data = state->m_playfield[tile_index]; | |
| 44 | int code = state->m_playfield_tile_bank[(data >> 10) & 1] + (data & 0x3ff); | |
| 41 | UINT16 data = m_playfield[tile_index]; | |
| 42 | int code = m_playfield_tile_bank[(data >> 10) & 1] + (data & 0x3ff); | |
| 45 | 43 | int color = (data >> 11) & 7; |
| 46 | SET_TILE_INFO(0, code, color, 0); | |
| 44 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 47 | 45 | tileinfo.category = (~data >> 14) & 3; |
| 48 | 46 | } |
| 49 | 47 | |
| r17673 | r17674 | |
| 100 | 98 | state->m_playfield.set_target(&state->m_vram[0x2000], 0x2000); |
| 101 | 99 | |
| 102 | 100 | /* initialize the playfield */ |
| 103 | state->m_playfield_tilemap = tilemap | |
| 101 | state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(atarisy2_state::get_playfield_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 128,64); | |
| 104 | 102 | |
| 105 | 103 | /* initialize the motion objects */ |
| 106 | 104 | atarimo_init(machine, 0, &modesc); |
| 107 | 105 | |
| 108 | 106 | /* initialize the alphanumerics */ |
| 109 | state->m_alpha_tilemap = tilemap | |
| 107 | state->m_alpha_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(atarisy2_state::get_alpha_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,48); | |
| 110 | 108 | state->m_alpha_tilemap->set_transparent_pen(0); |
| 111 | 109 | |
| 112 | 110 | /* reset the statics */ |
| r17673 | r17674 | |
|---|---|---|
| 131 | 131 | #define DIM_NX_0 (0x40) |
| 132 | 132 | #define DIM_NY_0 (0x20) |
| 133 | 133 | |
| 134 | ||
| 134 | ||
| 135 | 135 | { |
| 136 | yunsung8_state *state = machine.driver_data<yunsung8_state>(); | |
| 137 | int code = state->m_videoram_0[0x1000 + tile_index * 2 + 0] + state->m_videoram_0[0x1000 + tile_index * 2 + 1] * 256; | |
| 138 | int color = state->m_videoram_0[0x0800 + tile_index] & 0x07; | |
| 139 | SET_TILE_INFO( | |
| 136 | int code = m_videoram_0[0x1000 + tile_index * 2 + 0] + m_videoram_0[0x1000 + tile_index * 2 + 1] * 256; | |
| 137 | int color = m_videoram_0[0x0800 + tile_index] & 0x07; | |
| 138 | SET_TILE_INFO_MEMBER( | |
| 140 | 139 | 0, |
| 141 | 140 | code, |
| 142 | 141 | color, |
| r17673 | r17674 | |
| 148 | 147 | #define DIM_NX_1 (0x40) |
| 149 | 148 | #define DIM_NY_1 (0x20) |
| 150 | 149 | |
| 151 | ||
| 150 | ||
| 152 | 151 | { |
| 153 | yunsung8_state *state = machine.driver_data<yunsung8_state>(); | |
| 154 | int code = state->m_videoram_1[0x1000 + tile_index * 2 + 0] + state->m_videoram_1[0x1000 + tile_index * 2 + 1] * 256; | |
| 155 | int color = state->m_videoram_1[0x0800 + tile_index] & 0x3f; | |
| 156 | SET_TILE_INFO( | |
| 152 | int code = m_videoram_1[0x1000 + tile_index * 2 + 0] + m_videoram_1[0x1000 + tile_index * 2 + 1] * 256; | |
| 153 | int color = m_videoram_1[0x0800 + tile_index] & 0x3f; | |
| 154 | SET_TILE_INFO_MEMBER( | |
| 157 | 155 | 1, |
| 158 | 156 | code, |
| 159 | 157 | color, |
| r17673 | r17674 | |
| 175 | 173 | { |
| 176 | 174 | yunsung8_state *state = machine.driver_data<yunsung8_state>(); |
| 177 | 175 | |
| 178 | state->m_tilemap_0 = tilemap_create(machine, get_tile_info_0, TILEMAP_SCAN_ROWS, 8, 8, DIM_NX_0, DIM_NY_0 ); | |
| 179 | state->m_tilemap_1 = tilemap_create(machine, get_tile_info_1, TILEMAP_SCAN_ROWS, 8, 8, DIM_NX_1, DIM_NY_1 ); | |
| 176 | state->m_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(yunsung8_state::get_tile_info_0),state), TILEMAP_SCAN_ROWS, 8, 8, DIM_NX_0, DIM_NY_0 ); | |
| 177 | state->m_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(yunsung8_state::get_tile_info_1),state), TILEMAP_SCAN_ROWS, 8, 8, DIM_NX_1, DIM_NY_1 ); | |
| 180 | 178 | |
| 181 | 179 | state->m_tilemap_1->set_transparent_pen(0); |
| 182 | 180 | } |
| r17673 | r17674 | |
|---|---|---|
| 36 | 36 | |
| 37 | 37 | ***************************************************************************/ |
| 38 | 38 | |
| 39 | ||
| 39 | ||
| 40 | 40 | { |
| 41 | skydiver_state *state = machine.driver_data<skydiver_state>(); | |
| 42 | UINT8 code = state->m_videoram[tile_index]; | |
| 43 | SET_TILE_INFO(0, code & 0x3f, code >> 6, 0); | |
| 41 | UINT8 code = m_videoram[tile_index]; | |
| 42 | SET_TILE_INFO_MEMBER(0, code & 0x3f, code >> 6, 0); | |
| 44 | 43 | } |
| 45 | 44 | |
| 46 | 45 | |
| r17673 | r17674 | |
| 54 | 53 | VIDEO_START( skydiver ) |
| 55 | 54 | { |
| 56 | 55 | skydiver_state *state = machine.driver_data<skydiver_state>(); |
| 57 | state->m_bg_tilemap = tilemap | |
| 56 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(skydiver_state::get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 58 | 57 | } |
| 59 | 58 | |
| 60 | 59 |
| r17673 | r17674 | |
|---|---|---|
| 10 | 10 | * |
| 11 | 11 | *************************************/ |
| 12 | 12 | |
| 13 | ||
| 13 | ||
| 14 | 14 | { |
| 15 | ninjakd2_state *state = machine.driver_data<ninjakd2_state>(); | |
| 16 | int const lo = state->m_fg_videoram[(tile_index << 1)]; | |
| 17 | int const hi = state->m_fg_videoram[(tile_index << 1) | 1]; | |
| 15 | int const lo = m_fg_videoram[(tile_index << 1)]; | |
| 16 | int const hi = m_fg_videoram[(tile_index << 1) | 1]; | |
| 18 | 17 | int const tile = ((hi & 0xc0) << 2) | lo; |
| 19 | 18 | int const flipyx = (hi & 0x30) >> 4; |
| 20 | 19 | int const color = hi & 0x0f; |
| 21 | 20 | |
| 22 | SET_TILE_INFO( | |
| 21 | SET_TILE_INFO_MEMBER( | |
| 23 | 22 | 0, |
| 24 | 23 | tile, |
| 25 | 24 | color, |
| 26 | 25 | TILE_FLIPYX(flipyx)); |
| 27 | 26 | } |
| 28 | 27 | |
| 29 | ||
| 28 | ||
| 30 | 29 | { |
| 31 | ninjakd2_state *state = machine.driver_data<ninjakd2_state>(); | |
| 32 | int const lo = state->m_bg_videoram[(tile_index << 1)]; | |
| 33 | int const hi = state->m_bg_videoram[(tile_index << 1) | 1]; | |
| 30 | int const lo = m_bg_videoram[(tile_index << 1)]; | |
| 31 | int const hi = m_bg_videoram[(tile_index << 1) | 1]; | |
| 34 | 32 | int const tile = ((hi & 0xc0) << 2) | lo; |
| 35 | 33 | int const flipyx = (hi & 0x30) >> 4; |
| 36 | 34 | int const color = hi & 0x0f; |
| 37 | 35 | |
| 38 | SET_TILE_INFO( | |
| 36 | SET_TILE_INFO_MEMBER( | |
| 39 | 37 | 2, |
| 40 | 38 | tile, |
| 41 | 39 | color, |
| 42 | 40 | TILE_FLIPYX(flipyx)); |
| 43 | 41 | } |
| 44 | 42 | |
| 45 | ||
| 43 | ||
| 46 | 44 | { |
| 47 | ninjakd2_state *state = machine.driver_data<ninjakd2_state>(); | |
| 48 | int const lo = state->m_bg_videoram[(tile_index << 1)]; | |
| 49 | int const hi = state->m_bg_videoram[(tile_index << 1) | 1]; | |
| 45 | int const lo = m_bg_videoram[(tile_index << 1)]; | |
| 46 | int const hi = m_bg_videoram[(tile_index << 1) | 1]; | |
| 50 | 47 | int const tile = ((hi & 0x10) << 6) | ((hi & 0xc0) << 2) | lo; |
| 51 | 48 | int const flipy = (hi & 0x20) >> 5; |
| 52 | 49 | int const color = hi & 0x0f; |
| 53 | 50 | |
| 54 | SET_TILE_INFO( | |
| 51 | SET_TILE_INFO_MEMBER( | |
| 55 | 52 | 2, |
| 56 | 53 | tile, |
| 57 | 54 | color, |
| 58 | 55 | flipy ? TILE_FLIPY : 0); |
| 59 | 56 | } |
| 60 | 57 | |
| 61 | ||
| 58 | ||
| 62 | 59 | { |
| 63 | 60 | /* logical (col,row) -> memory offset */ |
| 64 | 61 | return (col & 0x0f) | ((row & 0x1f) << 4) | ((col & 0x10) << 5); |
| 65 | 62 | } |
| 66 | 63 | |
| 67 | ||
| 64 | ||
| 68 | 65 | { |
| 69 | 66 | /* logical (col,row) -> memory offset */ |
| 70 | 67 | return (col & 0x0f) | ((row & 0x1f) << 4) | ((col & 0x70) << 5); |
| r17673 | r17674 | |
| 84 | 81 | 0); |
| 85 | 82 | } |
| 86 | 83 | |
| 87 | ||
| 84 | ||
| 88 | 85 | { |
| 89 | ninjakd2_state *state = machine.driver_data<ninjakd2_state>(); | |
| 90 | robokid_get_bg_tile_info(machine, tileinfo, tile_index, 2, state->m_robokid_bg0_videoram); | |
| 86 | robokid_get_bg_tile_info(machine(), tileinfo, tile_index, 2, m_robokid_bg0_videoram); | |
| 91 | 87 | } |
| 92 | 88 | |
| 93 | ||
| 89 | ||
| 94 | 90 | { |
| 95 | ninjakd2_state *state = machine.driver_data<ninjakd2_state>(); | |
| 96 | robokid_get_bg_tile_info(machine, tileinfo, tile_index, 3, state->m_robokid_bg1_videoram); | |
| 91 | robokid_get_bg_tile_info(machine(), tileinfo, tile_index, 3, m_robokid_bg1_videoram); | |
| 97 | 92 | } |
| 98 | 93 | |
| 99 | ||
| 94 | ||
| 100 | 95 | { |
| 101 | ninjakd2_state *state = machine.driver_data<ninjakd2_state>(); | |
| 102 | robokid_get_bg_tile_info(machine, tileinfo, tile_index, 4, state->m_robokid_bg2_videoram); | |
| 96 | robokid_get_bg_tile_info(machine(), tileinfo, tile_index, 4, m_robokid_bg2_videoram); | |
| 103 | 97 | } |
| 104 | 98 | |
| 105 | 99 | |
| r17673 | r17674 | |
| 135 | 129 | ninjakd2_state *state = machine.driver_data<ninjakd2_state>(); |
| 136 | 130 | videoram_alloc(machine, 0); |
| 137 | 131 | |
| 138 | state->m_fg_tilemap = tilemap_create( machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 139 | state->m_bg_tilemap = tilemap_create(machine, ninjakd2_get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 132 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 133 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::ninjakd2_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 140 | 134 | |
| 141 | 135 | state->m_fg_tilemap->set_transparent_pen(TRANSPARENTCODE); |
| 142 | 136 | |
| r17673 | r17674 | |
| 149 | 143 | ninjakd2_state *state = machine.driver_data<ninjakd2_state>(); |
| 150 | 144 | videoram_alloc(machine, 0); |
| 151 | 145 | |
| 152 | state->m_fg_tilemap = tilemap_create( machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 153 | state->m_bg_tilemap = tilemap_create(machine, mnight_get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 146 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 147 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::mnight_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 154 | 148 | |
| 155 | 149 | state->m_fg_tilemap->set_transparent_pen(TRANSPARENTCODE); |
| 156 | 150 | |
| r17673 | r17674 | |
| 163 | 157 | ninjakd2_state *state = machine.driver_data<ninjakd2_state>(); |
| 164 | 158 | videoram_alloc(machine, 0); |
| 165 | 159 | |
| 166 | state->m_fg_tilemap = tilemap_create( machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 167 | state->m_bg_tilemap = tilemap_create(machine, mnight_get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 160 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 161 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::mnight_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 168 | 162 | |
| 169 | 163 | state->m_fg_tilemap->set_transparent_pen(TRANSPARENTCODE); |
| 170 | 164 | |
| r17673 | r17674 | |
| 179 | 173 | |
| 180 | 174 | videoram_alloc(machine, 0x0800); |
| 181 | 175 | |
| 182 | state->m_fg_tilemap = tilemap_create( machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 183 | state->m_bg0_tilemap = tilemap_create(machine, robokid_get_bg0_tile_info, robokid_bg_scan, 16, 16, 32, 32); | |
| 184 | state->m_bg1_tilemap = tilemap_create(machine, robokid_get_bg1_tile_info, robokid_bg_scan, 16, 16, 32, 32); | |
| 185 | state->m_bg2_tilemap = tilemap_create(machine, robokid_get_bg2_tile_info, robokid_bg_scan, 16, 16, 32, 32); | |
| 176 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 177 | state->m_bg0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::robokid_get_bg0_tile_info),state), tilemap_mapper_delegate(FUNC(ninjakd2_state::robokid_bg_scan),state), 16, 16, 32, 32); | |
| 178 | state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::robokid_get_bg1_tile_info),state), tilemap_mapper_delegate(FUNC(ninjakd2_state::robokid_bg_scan),state), 16, 16, 32, 32); | |
| 179 | state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::robokid_get_bg2_tile_info),state), tilemap_mapper_delegate(FUNC(ninjakd2_state::robokid_bg_scan),state), 16, 16, 32, 32); | |
| 186 | 180 | |
| 187 | 181 | state->m_fg_tilemap->set_transparent_pen(TRANSPARENTCODE); |
| 188 | 182 | state->m_bg1_tilemap->set_transparent_pen(TRANSPARENTCODE); |
| r17673 | r17674 | |
| 199 | 193 | |
| 200 | 194 | videoram_alloc(machine, 0x2000); |
| 201 | 195 | |
| 202 | state->m_fg_tilemap = tilemap_create( machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 203 | state->m_bg0_tilemap = tilemap_create(machine, robokid_get_bg0_tile_info, omegaf_bg_scan, 16, 16, 128, 32); | |
| 204 | state->m_bg1_tilemap = tilemap_create(machine, robokid_get_bg1_tile_info, omegaf_bg_scan, 16, 16, 128, 32); | |
| 205 | state->m_bg2_tilemap = tilemap_create(machine, robokid_get_bg2_tile_info, omegaf_bg_scan, 16, 16, 128, 32); | |
| 196 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 197 | state->m_bg0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::robokid_get_bg0_tile_info),state), tilemap_mapper_delegate(FUNC(ninjakd2_state::omegaf_bg_scan),state), 16, 16, 128, 32); | |
| 198 | state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::robokid_get_bg1_tile_info),state), tilemap_mapper_delegate(FUNC(ninjakd2_state::omegaf_bg_scan),state), 16, 16, 128, 32); | |
| 199 | state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::robokid_get_bg2_tile_info),state), tilemap_mapper_delegate(FUNC(ninjakd2_state::omegaf_bg_scan),state), 16, 16, 128, 32); | |
| 206 | 200 | |
| 207 | 201 | state->m_fg_tilemap->set_transparent_pen(TRANSPARENTCODE); |
| 208 | 202 | state->m_bg0_tilemap->set_transparent_pen(TRANSPARENTCODE); |
| r17673 | r17674 | |
|---|---|---|
| 115 | 115 | * |
| 116 | 116 | *************************************/ |
| 117 | 117 | |
| 118 | ||
| 118 | ||
| 119 | 119 | { |
| 120 | m52_state *state = machine.driver_data<m52_state>(); | |
| 121 | UINT8 video = state->m_videoram[tile_index]; | |
| 122 | UINT8 color = state->m_colorram[tile_index]; | |
| 120 | UINT8 video = m_videoram[tile_index]; | |
| 121 | UINT8 color = m_colorram[tile_index]; | |
| 123 | 122 | |
| 124 | 123 | int flag = 0; |
| 125 | 124 | int code = 0; |
| r17673 | r17674 | |
| 136 | 135 | flag |= TILE_FORCE_LAYER0; /* lines 0 to 6 are opaqe? */ |
| 137 | 136 | } |
| 138 | 137 | |
| 139 | SET_TILE_INFO(0, code, color & 0x3f, flag); | |
| 138 | SET_TILE_INFO_MEMBER(0, code, color & 0x3f, flag); | |
| 140 | 139 | } |
| 141 | 140 | |
| 142 | 141 | |
| r17673 | r17674 | |
| 151 | 150 | { |
| 152 | 151 | m52_state *state = machine.driver_data<m52_state>(); |
| 153 | 152 | |
| 154 | state->m_bg_tilemap = tilemap | |
| 153 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m52_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 155 | 154 | |
| 156 | 155 | state->m_bg_tilemap->set_transparent_pen(0); |
| 157 | 156 | state->m_bg_tilemap->set_scrolldx(128 - 1, -1); |
| r17673 | r17674 | |
|---|---|---|
| 111 | 111 | ***************************************************************************/ |
| 112 | 112 | |
| 113 | 113 | /* convert from 32x32 to 34x28 */ |
| 114 | ||
| 114 | ||
| 115 | 115 | { |
| 116 | 116 | int offs; |
| 117 | 117 | |
| r17673 | r17674 | |
| 125 | 125 | return offs; |
| 126 | 126 | } |
| 127 | 127 | |
| 128 | ||
| 128 | ||
| 129 | 129 | { |
| 130 | warpwarp_state *state = machine.driver_data<warpwarp_state>(); | |
| 131 | int code = state->m_geebee_videoram[tile_index]; | |
| 132 | int color = (state->m_geebee_bgw & 1) | ((code & 0x80) >> 6); | |
| 133 | SET_TILE_INFO( | |
| 130 | int code = m_geebee_videoram[tile_index]; | |
| 131 | int color = (m_geebee_bgw & 1) | ((code & 0x80) >> 6); | |
| 132 | SET_TILE_INFO_MEMBER( | |
| 134 | 133 | 0, |
| 135 | 134 | code, |
| 136 | 135 | color, |
| 137 | 136 | 0); |
| 138 | 137 | } |
| 139 | 138 | |
| 140 | ||
| 139 | ||
| 141 | 140 | { |
| 142 | warpwarp_state *state = machine.driver_data<warpwarp_state>(); | |
| 143 | int code = state->m_geebee_videoram[tile_index]; | |
| 144 | int color = state->m_geebee_bgw & 1; | |
| 145 | SET_TILE_INFO( | |
| 141 | int code = m_geebee_videoram[tile_index]; | |
| 142 | int color = m_geebee_bgw & 1; | |
| 143 | SET_TILE_INFO_MEMBER( | |
| 146 | 144 | 0, |
| 147 | 145 | code, |
| 148 | 146 | color, |
| 149 | 147 | 0); |
| 150 | 148 | } |
| 151 | 149 | |
| 152 | ||
| 150 | ||
| 153 | 151 | { |
| 154 | warpwarp_state *state = machine.driver_data<warpwarp_state>(); | |
| 155 | SET_TILE_INFO( | |
| 152 | SET_TILE_INFO_MEMBER( | |
| 156 | 153 | 0, |
| 157 | state->m_videoram[tile_index], | |
| 158 | state->m_videoram[tile_index + 0x400], | |
| 154 | m_videoram[tile_index], | |
| 155 | m_videoram[tile_index + 0x400], | |
| 159 | 156 | 0); |
| 160 | 157 | } |
| 161 | 158 | |
| r17673 | r17674 | |
| 170 | 167 | VIDEO_START( geebee ) |
| 171 | 168 | { |
| 172 | 169 | warpwarp_state *state = machine.driver_data<warpwarp_state>(); |
| 173 | state->m_bg_tilemap = tilemap | |
| 170 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(warpwarp_state::geebee_get_tile_info),state),tilemap_mapper_delegate(FUNC(warpwarp_state::tilemap_scan),state),8,8,34,28); | |
| 174 | 171 | } |
| 175 | 172 | |
| 176 | 173 | VIDEO_START( navarone ) |
| 177 | 174 | { |
| 178 | 175 | warpwarp_state *state = machine.driver_data<warpwarp_state>(); |
| 179 | state->m_bg_tilemap = tilemap | |
| 176 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(warpwarp_state::navarone_get_tile_info),state),tilemap_mapper_delegate(FUNC(warpwarp_state::tilemap_scan),state),8,8,34,28); | |
| 180 | 177 | } |
| 181 | 178 | |
| 182 | 179 | VIDEO_START( warpwarp ) |
| 183 | 180 | { |
| 184 | 181 | warpwarp_state *state = machine.driver_data<warpwarp_state>(); |
| 185 | state->m_bg_tilemap = tilemap | |
| 182 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(warpwarp_state::warpwarp_get_tile_info),state),tilemap_mapper_delegate(FUNC(warpwarp_state::tilemap_scan),state),8,8,34,28); | |
| 186 | 183 | } |
| 187 | 184 | |
| 188 | 185 |
| r17673 | r17674 | |
|---|---|---|
| 16 | 16 | |
| 17 | 17 | ***************************************************************************/ |
| 18 | 18 | |
| 19 | ||
| 19 | ||
| 20 | 20 | { |
| 21 | gng_state *state = machine.driver_data<gng_state>(); | |
| 22 | UINT8 attr = state->m_fgvideoram[tile_index + 0x400]; | |
| 23 | SET_TILE_INFO( | |
| 21 | UINT8 attr = m_fgvideoram[tile_index + 0x400]; | |
| 22 | SET_TILE_INFO_MEMBER( | |
| 24 | 23 | 0, |
| 25 | | |
| 24 | | |
| 26 | 25 | attr & 0x0f, |
| 27 | 26 | TILE_FLIPYX((attr & 0x30) >> 4)); |
| 28 | 27 | } |
| 29 | 28 | |
| 30 | ||
| 29 | ||
| 31 | 30 | { |
| 32 | gng_state *state = machine.driver_data<gng_state>(); | |
| 33 | UINT8 attr = state->m_bgvideoram[tile_index + 0x400]; | |
| 34 | SET_TILE_INFO( | |
| 31 | UINT8 attr = m_bgvideoram[tile_index + 0x400]; | |
| 32 | SET_TILE_INFO_MEMBER( | |
| 35 | 33 | 1, |
| 36 | | |
| 34 | | |
| 37 | 35 | attr & 0x07, |
| 38 | 36 | TILE_FLIPYX((attr & 0x30) >> 4)); |
| 39 | 37 | tileinfo.group = (attr & 0x08) >> 3; |
| r17673 | r17674 | |
| 50 | 48 | VIDEO_START( gng ) |
| 51 | 49 | { |
| 52 | 50 | gng_state *state = machine.driver_data<gng_state>(); |
| 53 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 54 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, 16, 16, 32, 32); | |
| 51 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gng_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 52 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gng_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 32); | |
| 55 | 53 | |
| 56 | 54 | state->m_fg_tilemap->set_transparent_pen(3); |
| 57 | 55 | state->m_bg_tilemap->set_transmask(0, 0xff, 0x00); /* split type 0 is totally transparent in front half */ |
| r17673 | r17674 | |
|---|---|---|
| 153 | 153 | } |
| 154 | 154 | } |
| 155 | 155 | |
| 156 | ||
| 156 | ||
| 157 | 157 | { |
| 158 | ojankohs_state *state = machine.driver_data<ojankohs_state>(); | |
| 159 | int tile = state->m_videoram[tile_index] | ((state->m_colorram[tile_index] & 0x0f) << 8); | |
| 160 | int color = (state->m_colorram[tile_index] & 0xe0) >> 5; | |
| 158 | int tile = m_videoram[tile_index] | ((m_colorram[tile_index] & 0x0f) << 8); | |
| 159 | int color = (m_colorram[tile_index] & 0xe0) >> 5; | |
| 161 | 160 | |
| 162 | if ( | |
| 161 | if ( | |
| 163 | 162 | { |
| 164 | tile |= (state->m_gfxreg & 0x07) << 12; | |
| 165 | color |= (state->m_gfxreg & 0xe0) >> 2; | |
| 163 | tile |= (m_gfxreg & 0x07) << 12; | |
| 164 | color |= (m_gfxreg & 0xe0) >> 2; | |
| 166 | 165 | } |
| 167 | 166 | |
| 168 | SET_TILE_INFO(0, tile, color, 0); | |
| 167 | SET_TILE_INFO_MEMBER(0, tile, color, 0); | |
| 169 | 168 | } |
| 170 | 169 | |
| 171 | ||
| 170 | ||
| 172 | 171 | { |
| 173 | ojankohs_state *state = machine.driver_data<ojankohs_state>(); | |
| 174 | int tile = state->m_videoram[tile_index] | (state->m_videoram[tile_index + 0x1000] << 8); | |
| 175 | int color = state->m_colorram[tile_index] & 0x3f; | |
| 176 | int flipx = ((state->m_colorram[tile_index] & 0x40) >> 6) ? TILEMAP_FLIPX : 0; | |
| 177 | int flipy = ((state->m_colorram[tile_index] & 0x80) >> 7) ? TILEMAP_FLIPY : 0; | |
| 172 | int tile = m_videoram[tile_index] | (m_videoram[tile_index + 0x1000] << 8); | |
| 173 | int color = m_colorram[tile_index] & 0x3f; | |
| 174 | int flipx = ((m_colorram[tile_index] & 0x40) >> 6) ? TILEMAP_FLIPX : 0; | |
| 175 | int flipy = ((m_colorram[tile_index] & 0x80) >> 7) ? TILEMAP_FLIPY : 0; | |
| 178 | 176 | |
| 179 | SET_TILE_INFO(0, tile, color, (flipx | flipy)); | |
| 177 | SET_TILE_INFO_MEMBER(0, tile, color, (flipx | flipy)); | |
| 180 | 178 | } |
| 181 | 179 | |
| 182 | 180 | |
| r17673 | r17674 | |
| 263 | 261 | { |
| 264 | 262 | ojankohs_state *state = machine.driver_data<ojankohs_state>(); |
| 265 | 263 | |
| 266 | state->m_tilemap = tilemap | |
| 264 | state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ojankohs_state::ojankohs_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 4, 64, 64); | |
| 267 | 265 | // state->m_videoram = auto_alloc_array(machine, UINT8, 0x1000); |
| 268 | 266 | // state->m_colorram = auto_alloc_array(machine, UINT8, 0x1000); |
| 269 | 267 | // state->m_paletteram = auto_alloc_array(machine, UINT8, 0x800); |
| r17673 | r17674 | |
| 273 | 271 | { |
| 274 | 272 | ojankohs_state *state = machine.driver_data<ojankohs_state>(); |
| 275 | 273 | |
| 276 | state->m_tilemap = tilemap | |
| 274 | state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ojankohs_state::ojankoy_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 4, 64, 64); | |
| 277 | 275 | // state->m_videoram = auto_alloc_array(machine, UINT8, 0x2000); |
| 278 | 276 | // state->m_colorram = auto_alloc_array(machine, UINT8, 0x1000); |
| 279 | 277 | } |
| r17673 | r17674 | |
|---|---|---|
| 8 | 8 | |
| 9 | 9 | ***************************************************************************/ |
| 10 | 10 | |
| 11 | ||
| 11 | ||
| 12 | 12 | { |
| 13 | wc90b_state *state = machine.driver_data<wc90b_state>(); | |
| 14 | int attr = state->m_bgvideoram[tile_index]; | |
| 15 | int tile = state->m_bgvideoram[tile_index + 0x800]; | |
| 16 | SET_TILE_INFO( | |
| 13 | int attr = m_bgvideoram[tile_index]; | |
| 14 | int tile = m_bgvideoram[tile_index + 0x800]; | |
| 15 | SET_TILE_INFO_MEMBER( | |
| 17 | 16 | 9 + ((attr & 3) + ((attr >> 1) & 4)), |
| 18 | 17 | tile, |
| 19 | 18 | attr >> 4, |
| 20 | 19 | 0); |
| 21 | 20 | } |
| 22 | 21 | |
| 23 | ||
| 22 | ||
| 24 | 23 | { |
| 25 | wc90b_state *state = machine.driver_data<wc90b_state>(); | |
| 26 | int attr = state->m_fgvideoram[tile_index]; | |
| 27 | int tile = state->m_fgvideoram[tile_index + 0x800]; | |
| 28 | SET_TILE_INFO( | |
| 24 | int attr = m_fgvideoram[tile_index]; | |
| 25 | int tile = m_fgvideoram[tile_index + 0x800]; | |
| 26 | SET_TILE_INFO_MEMBER( | |
| 29 | 27 | 1 + ((attr & 3) + ((attr >> 1) & 4)), |
| 30 | 28 | tile, |
| 31 | 29 | attr >> 4, |
| 32 | 30 | 0); |
| 33 | 31 | } |
| 34 | 32 | |
| 35 | ||
| 33 | ||
| 36 | 34 | { |
| 37 | wc90b_state *state = machine.driver_data<wc90b_state>(); | |
| 38 | SET_TILE_INFO( | |
| 35 | SET_TILE_INFO_MEMBER( | |
| 39 | 36 | 0, |
| 40 | state->m_txvideoram[tile_index + 0x800] + ((state->m_txvideoram[tile_index] & 0x07) << 8), | |
| 41 | state->m_txvideoram[tile_index] >> 4, | |
| 37 | m_txvideoram[tile_index + 0x800] + ((m_txvideoram[tile_index] & 0x07) << 8), | |
| 38 | m_txvideoram[tile_index] >> 4, | |
| 42 | 39 | 0); |
| 43 | 40 | } |
| 44 | 41 | |
| r17673 | r17674 | |
| 53 | 50 | VIDEO_START( wc90b ) |
| 54 | 51 | { |
| 55 | 52 | wc90b_state *state = machine.driver_data<wc90b_state>(); |
| 56 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_ROWS, 16,16,64,32); | |
| 57 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info,TILEMAP_SCAN_ROWS,16,16,64,32); | |
| 58 | state->m_tx_tilemap = tilemap_create(machine, get_tx_tile_info,TILEMAP_SCAN_ROWS, 8, 8,64,32); | |
| 53 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wc90b_state::get_bg_tile_info),state),TILEMAP_SCAN_ROWS, 16,16,64,32); | |
| 54 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wc90b_state::get_fg_tile_info),state),TILEMAP_SCAN_ROWS,16,16,64,32); | |
| 55 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wc90b_state::get_tx_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,32); | |
| 59 | 56 | |
| 60 | 57 | state->m_fg_tilemap->set_transparent_pen(15); |
| 61 | 58 | state->m_tx_tilemap->set_transparent_pen(15); |
| r17673 | r17674 | |
|---|---|---|
| 81 | 81 | |
| 82 | 82 | ***************************************************************************/ |
| 83 | 83 | |
| 84 | ||
| 84 | ||
| 85 | 85 | { |
| 86 | kncljoe_state *state = machine.driver_data<kncljoe_state>(); | |
| 87 | int attr = state->m_videoram[2 * tile_index + 1]; | |
| 88 | int code = state->m_videoram[2 * tile_index] + ((attr & 0xc0) << 2) + (state->m_tile_bank << 10); | |
| 86 | int attr = m_videoram[2 * tile_index + 1]; | |
| 87 | int code = m_videoram[2 * tile_index] + ((attr & 0xc0) << 2) + (m_tile_bank << 10); | |
| 89 | 88 | |
| 90 | SET_TILE_INFO( | |
| 89 | SET_TILE_INFO_MEMBER( | |
| 91 | 90 | 0, |
| 92 | 91 | code, |
| 93 | 92 | attr & 0xf, |
| r17673 | r17674 | |
| 105 | 104 | VIDEO_START( kncljoe ) |
| 106 | 105 | { |
| 107 | 106 | kncljoe_state *state = machine.driver_data<kncljoe_state>(); |
| 108 | state->m_bg_tilemap = tilemap | |
| 107 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(kncljoe_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 109 | 108 | |
| 110 | 109 | state->m_bg_tilemap->set_scroll_rows(4); |
| 111 | 110 | } |
| r17673 | r17674 | |
|---|---|---|
| 16 | 16 | |
| 17 | 17 | ***************************************************************************/ |
| 18 | 18 | |
| 19 | ||
| 19 | ||
| 20 | 20 | { |
| 21 | holeland_state *state = machine.driver_data<holeland_state>(); | |
| 22 | int attr = state->m_colorram[tile_index]; | |
| 23 | int tile_number = state->m_videoram[tile_index] | ((attr & 0x03) << 8); | |
| 21 | int attr = m_colorram[tile_index]; | |
| 22 | int tile_number = m_videoram[tile_index] | ((attr & 0x03) << 8); | |
| 24 | 23 | |
| 25 | /*if (machine.input().code_pressed(KEYCODE_Q) && (attr & 0x10)) tile_number = rand(); */ | |
| 26 | /*if (machine.input().code_pressed(KEYCODE_W) && (attr & 0x20)) tile_number = rand(); */ | |
| 27 | /*if (machine.input().code_pressed(KEYCODE_E) && (attr & 0x40)) tile_number = rand(); */ | |
| 28 | /*if (machine.input().code_pressed(KEYCODE_R) && (attr & 0x80)) tile_number = rand(); */ | |
| 29 | SET_TILE_INFO( | |
| 24 | /*if (machine().input().code_pressed(KEYCODE_Q) && (attr & 0x10)) tile_number = rand(); */ | |
| 25 | /*if (machine().input().code_pressed(KEYCODE_W) && (attr & 0x20)) tile_number = rand(); */ | |
| 26 | /*if (machine().input().code_pressed(KEYCODE_E) && (attr & 0x40)) tile_number = rand(); */ | |
| 27 | /*if (machine().input().code_pressed(KEYCODE_R) && (attr & 0x80)) tile_number = rand(); */ | |
| 28 | SET_TILE_INFO_MEMBER( | |
| 30 | 29 | 0, |
| 31 | 30 | tile_number, |
| 32 | | |
| 31 | | |
| 33 | 32 | TILE_FLIPYX((attr >> 2) & 0x03)); |
| 34 | 33 | tileinfo.group = (attr >> 4) & 1; |
| 35 | 34 | } |
| 36 | 35 | |
| 37 | ||
| 36 | ||
| 38 | 37 | { |
| 39 | holeland_state *state = machine.driver_data<holeland_state>(); | |
| 40 | int attr = state->m_colorram[tile_index]; | |
| 41 | int tile_number = state->m_videoram[tile_index] | ((attr & 0x03) << 8); | |
| 38 | int attr = m_colorram[tile_index]; | |
| 39 | int tile_number = m_videoram[tile_index] | ((attr & 0x03) << 8); | |
| 42 | 40 | |
| 43 | SET_TILE_INFO( | |
| 41 | SET_TILE_INFO_MEMBER( | |
| 44 | 42 | 0, |
| 45 | 43 | tile_number, |
| 46 | | |
| 44 | | |
| 47 | 45 | TILE_FLIPYX((attr >> 2) & 0x03)); |
| 48 | 46 | tileinfo.group = (attr >> 4) & 1; |
| 49 | 47 | } |
| r17673 | r17674 | |
| 57 | 55 | VIDEO_START( holeland ) |
| 58 | 56 | { |
| 59 | 57 | holeland_state *state = machine.driver_data<holeland_state>(); |
| 60 | state->m_bg_tilemap = tilemap | |
| 58 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(holeland_state::holeland_get_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 61 | 59 | |
| 62 | 60 | state->m_bg_tilemap->set_transmask(0, 0xff, 0x00); /* split type 0 is totally transparent in front half */ |
| 63 | 61 | state->m_bg_tilemap->set_transmask(1, 0x01, 0xfe); /* split type 1 has pen 0? transparent in front half */ |
| r17673 | r17674 | |
| 66 | 64 | VIDEO_START( crzrally ) |
| 67 | 65 | { |
| 68 | 66 | holeland_state *state = machine.driver_data<holeland_state>(); |
| 69 | state->m_bg_tilemap = tilemap | |
| 67 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(holeland_state::crzrally_get_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); | |
| 70 | 68 | } |
| 71 | 69 | |
| 72 | 70 | WRITE8_MEMBER(holeland_state::holeland_videoram_w) |
| r17673 | r17674 | |
|---|---|---|
| 45 | 45 | |
| 46 | 46 | ***************************************************************************/ |
| 47 | 47 | |
| 48 | ||
| 48 | ||
| 49 | 49 | { |
| 50 | 50 | /* logical (col,row) -> memory offset */ |
| 51 | 51 | return (col & 0x1f) + ((row & 0x1f) << 5) + ((col & 0x20) << 5); |
| 52 | 52 | } |
| 53 | 53 | |
| 54 | ||
| 54 | ||
| 55 | 55 | { |
| 56 | spdodgeb_state *state = machine.driver_data<spdodgeb_state>(); | |
| 57 | UINT8 code = state->m_videoram[tile_index]; | |
| 58 | UINT8 attr = state->m_videoram[tile_index + 0x800]; | |
| 59 | SET_TILE_INFO( | |
| 56 | UINT8 code = m_videoram[tile_index]; | |
| 57 | UINT8 attr = m_videoram[tile_index + 0x800]; | |
| 58 | SET_TILE_INFO_MEMBER( | |
| 60 | 59 | 0, |
| 61 | 60 | code + ((attr & 0x1f) << 8), |
| 62 | ((attr & 0xe0) >> 5) + 8 * | |
| 61 | ((attr & 0xe0) >> 5) + 8 * | |
| 63 | 62 | 0); |
| 64 | 63 | } |
| 65 | 64 | |
| r17673 | r17674 | |
| 73 | 72 | VIDEO_START( spdodgeb ) |
| 74 | 73 | { |
| 75 | 74 | spdodgeb_state *state = machine.driver_data<spdodgeb_state>(); |
| 76 | state->m_bg_tilemap = tilemap | |
| 75 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(spdodgeb_state::get_bg_tile_info),state),tilemap_mapper_delegate(FUNC(spdodgeb_state::background_scan),state),8,8,64,32); | |
| 77 | 76 | } |
| 78 | 77 | |
| 79 | 78 |
| r17673 | r17674 | |
|---|---|---|
| 25 | 25 | } |
| 26 | 26 | #endif |
| 27 | 27 | |
| 28 | ||
| 28 | ||
| 29 | 29 | { |
| 30 | 30 | /* logical (col,row) -> memory offset */ |
| 31 | 31 | return ((row & 0xf)) + ((15 - (col & 0xf)) << 4) + ((row & 0x10) << 5) + ((col & 0x10) << 4); |
| 32 | 32 | } |
| 33 | 33 | |
| 34 | ||
| 34 | ||
| 35 | 35 | { |
| 36 | 36 | /* logical (col,row) -> memory offset */ |
| 37 | 37 | return (row & 0x1f) + ((31 - (col & 0x1f)) << 5); |
| 38 | 38 | } |
| 39 | 39 | |
| 40 | ||
| 40 | ||
| 41 | 41 | { |
| 42 | liberate_state *state = machine.driver_data<liberate_state>(); | |
| 43 | const UINT8 *RAM = state->memregion("user1")->base(); | |
| 42 | const UINT8 *RAM = memregion("user1")->base(); | |
| 44 | 43 | int tile, bank; |
| 45 | 44 | |
| 46 | 45 | /* Convert tile index of 512x512 to paged format */ |
| 47 | 46 | if (tile_index & 0x100) |
| 48 | 47 | { |
| 49 | 48 | if (tile_index & 0x200) |
| 50 | tile_index = (tile_index & 0xff) + ( | |
| 49 | tile_index = (tile_index & 0xff) + ( | |
| 51 | 50 | else |
| 52 | tile_index = (tile_index & 0xff) + ( | |
| 51 | tile_index = (tile_index & 0xff) + ( | |
| 53 | 52 | } |
| 54 | 53 | else |
| 55 | 54 | { |
| 56 | 55 | if (tile_index & 0x200) |
| 57 | tile_index = (tile_index & 0xff) + ( | |
| 56 | tile_index = (tile_index & 0xff) + ( | |
| 58 | 57 | else |
| 59 | tile_index = (tile_index & 0xff) + ( | |
| 58 | tile_index = (tile_index & 0xff) + ( | |
| 60 | 59 | } |
| 61 | 60 | |
| 62 | 61 | tile = RAM[tile_index]; |
| r17673 | r17674 | |
| 64 | 63 | bank = 3; |
| 65 | 64 | else |
| 66 | 65 | bank = 2; |
| 67 | SET_TILE_INFO(bank, tile & 0x7f, | |
| 66 | SET_TILE_INFO_MEMBER(bank, tile & 0x7f, | |
| 68 | 67 | } |
| 69 | 68 | |
| 70 | ||
| 69 | ||
| 71 | 70 | { |
| 72 | liberate_state *state = machine.driver_data<liberate_state>(); | |
| 73 | UINT8 *videoram = state->m_videoram; | |
| 74 | UINT8 *colorram = state->m_colorram; | |
| 71 | UINT8 *videoram = m_videoram; | |
| 72 | UINT8 *colorram = m_colorram; | |
| 75 | 73 | int tile, color; |
| 76 | 74 | |
| 77 | 75 | tile = videoram[tile_index] + (colorram[tile_index] << 8); |
| 78 | 76 | color = (colorram[tile_index] & 0x70) >> 4; |
| 79 | 77 | |
| 80 | SET_TILE_INFO(0, tile, color, 0); | |
| 78 | SET_TILE_INFO_MEMBER(0, tile, color, 0); | |
| 81 | 79 | } |
| 82 | 80 | |
| 83 | ||
| 81 | ||
| 84 | 82 | { |
| 85 | liberate_state *state = machine.driver_data<liberate_state>(); | |
| 86 | 83 | int tile; |
| 87 | 84 | |
| 88 | 85 | /* |
| r17673 | r17674 | |
| 91 | 88 | - bits 0-3 are not used by gfx hardware; the value is the color of the pixel in the map (golf) |
| 92 | 89 | */ |
| 93 | 90 | |
| 94 | tile = ( | |
| 91 | tile = ( | |
| 95 | 92 | |
| 96 | 93 | if (tile_index & 0x8) tile += 0x10; |
| 97 | 94 | |
| 98 | tile += | |
| 95 | tile += | |
| 99 | 96 | |
| 100 | SET_TILE_INFO(8, tile, 0, 0); | |
| 97 | SET_TILE_INFO_MEMBER(8, tile, 0, 0); | |
| 101 | 98 | } |
| 102 | 99 | |
| 103 | 100 | /***************************************************************************/ |
| r17673 | r17674 | |
| 205 | 202 | VIDEO_START( prosoccr ) |
| 206 | 203 | { |
| 207 | 204 | liberate_state *state = machine.driver_data<liberate_state>(); |
| 208 | state->m_back_tilemap = tilemap_create(machine, get_back_tile_info, back_scan, 16, 16, 32, 32); | |
| 209 | state->m_fix_tilemap = tilemap_create(machine, get_fix_tile_info, fix_scan, 8, 8, 32, 32); | |
| 205 | state->m_back_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(liberate_state::get_back_tile_info),state), tilemap_mapper_delegate(FUNC(liberate_state::back_scan),state), 16, 16, 32, 32); | |
| 206 | state->m_fix_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(liberate_state::get_fix_tile_info),state), tilemap_mapper_delegate(FUNC(liberate_state::fix_scan),state), 8, 8, 32, 32); | |
| 210 | 207 | |
| 211 | 208 | state->m_fix_tilemap->set_transparent_pen(0); |
| 212 | 209 | |
| r17673 | r17674 | |
| 216 | 213 | VIDEO_START( boomrang ) |
| 217 | 214 | { |
| 218 | 215 | liberate_state *state = machine.driver_data<liberate_state>(); |
| 219 | state->m_back_tilemap = tilemap_create(machine, get_back_tile_info, back_scan, 16, 16, 32, 32); | |
| 220 | state->m_fix_tilemap = tilemap_create(machine, get_fix_tile_info, fix_scan, 8, 8, 32, 32); | |
| 216 | state->m_back_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(liberate_state::get_back_tile_info),state), tilemap_mapper_delegate(FUNC(liberate_state::back_scan),state), 16, 16, 32, 32); | |
| 217 | state->m_fix_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(liberate_state::get_fix_tile_info),state), tilemap_mapper_delegate(FUNC(liberate_state::fix_scan),state), 8, 8, 32, 32); | |
| 221 | 218 | |
| 222 | 219 | state->m_back_tilemap->set_transmask(0, 0x0001, 0x007e); /* Bottom 1 pen/Top 7 pens */ |
| 223 | 220 | state->m_fix_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
| 226 | 223 | VIDEO_START( liberate ) |
| 227 | 224 | { |
| 228 | 225 | liberate_state *state = machine.driver_data<liberate_state>(); |
| 229 | state->m_back_tilemap = tilemap_create(machine, get_back_tile_info, back_scan, 16, 16, 32, 32); | |
| 230 | state->m_fix_tilemap = tilemap_create(machine, get_fix_tile_info, fix_scan, 8, 8, 32, 32); | |
| 226 | state->m_back_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(liberate_state::get_back_tile_info),state), tilemap_mapper_delegate(FUNC(liberate_state::back_scan),state), 16, 16, 32, 32); | |
| 227 | state->m_fix_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(liberate_state::get_fix_tile_info),state), tilemap_mapper_delegate(FUNC(liberate_state::fix_scan),state), 8, 8, 32, 32); | |
| 231 | 228 | |
| 232 | 229 | state->m_fix_tilemap->set_transparent_pen(0); |
| 233 | 230 | } |
| r17673 | r17674 | |
| 235 | 232 | VIDEO_START( prosport ) |
| 236 | 233 | { |
| 237 | 234 | liberate_state *state = machine.driver_data<liberate_state>(); |
| 238 | state->m_back_tilemap = tilemap_create(machine, prosport_get_back_tile_info, back_scan, 16, 16, 32, 32); | |
| 239 | state->m_fix_tilemap = tilemap_create(machine, get_fix_tile_info, fix_scan, 8, 8, 32, 32); | |
| 235 | state->m_back_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(liberate_state::prosport_get_back_tile_info),state), tilemap_mapper_delegate(FUNC(liberate_state::back_scan),state), 16, 16, 32, 32); | |
| 236 | state->m_fix_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(liberate_state::get_fix_tile_info),state), tilemap_mapper_delegate(FUNC(liberate_state::fix_scan),state), 8, 8, 32, 32); | |
| 240 | 237 | |
| 241 | 238 | state->m_fix_tilemap->set_transparent_pen(0); |
| 242 | 239 | } |
| r17673 | r17674 | |
|---|---|---|
| 103 | 103 | m_objon = data & 0x20; |
| 104 | 104 | } |
| 105 | 105 | |
| 106 | ||
| 106 | ||
| 107 | 107 | { |
| 108 | UINT8 *tilerom = machine.root_device().memregion("gfx4")->base(); | |
| 108 | UINT8 *tilerom = machine().root_device().memregion("gfx4")->base(); | |
| 109 | 109 | |
| 110 | 110 | int offs = tile_index * 2; |
| 111 | 111 | int attr = tilerom[offs + 1]; |
| r17673 | r17674 | |
| 113 | 113 | int color = (attr & 0x3c) >> 2; |
| 114 | 114 | int flags = TILE_FLIPYX((attr & 0xc0) >> 6); |
| 115 | 115 | |
| 116 | SET_TILE_INFO(1, code, color, flags); | |
| 116 | SET_TILE_INFO_MEMBER(1, code, color, flags); | |
| 117 | 117 | } |
| 118 | 118 | |
| 119 | ||
| 119 | ||
| 120 | 120 | { |
| 121 | gunsmoke_state *state = machine.driver_data<gunsmoke_state>(); | |
| 122 | int attr = state->m_colorram[tile_index]; | |
| 123 | int code = state->m_videoram[tile_index] + ((attr & 0xe0) << 2); | |
| 121 | int attr = m_colorram[tile_index]; | |
| 122 | int code = m_videoram[tile_index] + ((attr & 0xe0) << 2); | |
| 124 | 123 | int color = attr & 0x1f; |
| 125 | 124 | |
| 126 | 125 | tileinfo.group = color; |
| 127 | 126 | |
| 128 | SET_TILE_INFO(0, code, color, 0); | |
| 127 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 129 | 128 | } |
| 130 | 129 | |
| 131 | 130 | VIDEO_START( gunsmoke ) |
| 132 | 131 | { |
| 133 | 132 | gunsmoke_state *state = machine.driver_data<gunsmoke_state>(); |
| 134 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, 32, 32, 2048, 8); | |
| 135 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 133 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gunsmoke_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 32, 32, 2048, 8); | |
| 134 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gunsmoke_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 136 | 135 | |
| 137 | 136 | colortable_configure_tilemap_groups(machine.colortable, state->m_fg_tilemap, machine.gfx[0], 0x4f); |
| 138 | 137 | } |
| r17673 | r17674 | |
|---|---|---|
| 165 | 165 | * |
| 166 | 166 | *************************************/ |
| 167 | 167 | |
| 168 | ||
| 168 | ||
| 169 | 169 | { |
| 170 | turbo_state *state = machine.driver_data<turbo_state>(); | |
| 171 | int code = state->m_videoram[tile_index]; | |
| 172 | SET_TILE_INFO(0, code, code >> 2, 0); | |
| 170 | int code = m_videoram[tile_index]; | |
| 171 | SET_TILE_INFO_MEMBER(0, code, code >> 2, 0); | |
| 173 | 172 | } |
| 174 | 173 | |
| 175 | 174 | |
| r17673 | r17674 | |
| 178 | 177 | turbo_state *state = machine.driver_data<turbo_state>(); |
| 179 | 178 | |
| 180 | 179 | /* initialize the foreground tilemap */ |
| 181 | state->m_fg_tilemap = tilemap | |
| 180 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(turbo_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 32,32); | |
| 182 | 181 | } |
| 183 | 182 | |
| 184 | 183 | |
| r17673 | r17674 | |
| 187 | 186 | turbo_state *state = machine.driver_data<turbo_state>(); |
| 188 | 187 | |
| 189 | 188 | /* initialize the foreground tilemap */ |
| 190 | state->m_fg_tilemap = tilemap | |
| 189 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(turbo_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 32,32); | |
| 191 | 190 | |
| 192 | 191 | /* allocate the bitmap RAM */ |
| 193 | 192 | state->m_buckrog_bitmap_ram = auto_alloc_array(machine, UINT8, 0xe000); |
| r17673 | r17674 | |
|---|---|---|
| 372 | 372 | SET_TILE_INFO( 1, (code & 0x3fff), attr & 0x1f, TILE_FLIPXY((code & 0xc000) >> 14) ); |
| 373 | 373 | } |
| 374 | 374 | |
| 375 | static TILE_GET_INFO( twineagl_get_tile_info_0 ) { twineagl_tile_info( machine, tileinfo, tile_index, 0x0000 ); } | |
| 376 | static TILE_GET_INFO( twineagl_get_tile_info_1 ) { twineagl_tile_info( machine, tileinfo, tile_index, 0x1000 ); } | |
| 375 | TILE_GET_INFO_MEMBER(seta_state::twineagl_get_tile_info_0){ twineagl_tile_info( machine(), tileinfo, tile_index, 0x0000 ); } | |
| 376 | TILE_GET_INFO_MEMBER(seta_state::twineagl_get_tile_info_1){ twineagl_tile_info( machine(), tileinfo, tile_index, 0x1000 ); } | |
| 377 | 377 | |
| 378 | 378 | |
| 379 | 379 | INLINE void get_tile_info( running_machine &machine, tile_data &tileinfo, int tile_index, int layer, int offset ) |
| r17673 | r17674 | |
| 397 | 397 | SET_TILE_INFO( gfx, state->m_tiles_offset + (code & 0x3fff), attr & 0x1f, TILE_FLIPXY((code & 0xc000) >> 14) ); |
| 398 | 398 | } |
| 399 | 399 | |
| 400 | static TILE_GET_INFO( get_tile_info_0 ) { get_tile_info( machine, tileinfo, tile_index, 0, 0x0000 ); } | |
| 401 | static TILE_GET_INFO( get_tile_info_1 ) { get_tile_info( machine, tileinfo, tile_index, 0, 0x1000 ); } | |
| 402 | static TILE_GET_INFO( get_tile_info_2 ) { get_tile_info( machine, tileinfo, tile_index, 1, 0x0000 ); } | |
| 403 | static TILE_GET_INFO( get_tile_info_3 ) { get_tile_info( machine, tileinfo, tile_index, 1, 0x1000 ); } | |
| 400 | TILE_GET_INFO_MEMBER(seta_state::get_tile_info_0){ get_tile_info( machine(), tileinfo, tile_index, 0, 0x0000 ); } | |
| 401 | TILE_GET_INFO_MEMBER(seta_state::get_tile_info_1){ get_tile_info( machine(), tileinfo, tile_index, 0, 0x1000 ); } | |
| 402 | TILE_GET_INFO_MEMBER(seta_state::get_tile_info_2){ get_tile_info( machine(), tileinfo, tile_index, 1, 0x0000 ); } | |
| 403 | TILE_GET_INFO_MEMBER(seta_state::get_tile_info_3){ get_tile_info( machine(), tileinfo, tile_index, 1, 0x1000 ); } | |
| 404 | 404 | |
| 405 | 405 | |
| 406 | 406 | WRITE16_MEMBER(seta_state::seta_vram_0_w) |
| r17673 | r17674 | |
| 449 | 449 | at any given time */ |
| 450 | 450 | |
| 451 | 451 | /* layer 0 */ |
| 452 | state->m_tilemap_0 = tilemap | |
| 452 | state->m_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(seta_state::get_tile_info_0),state), TILEMAP_SCAN_ROWS, | |
| 453 | 453 | 16,16, 64,32 ); |
| 454 | 454 | |
| 455 | state->m_tilemap_1 = tilemap | |
| 455 | state->m_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(seta_state::get_tile_info_1),state), TILEMAP_SCAN_ROWS, | |
| 456 | 456 | 16,16, 64,32 ); |
| 457 | 457 | |
| 458 | 458 | |
| 459 | 459 | /* layer 1 */ |
| 460 | state->m_tilemap_2 = tilemap | |
| 460 | state->m_tilemap_2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(seta_state::get_tile_info_2),state), TILEMAP_SCAN_ROWS, | |
| 461 | 461 | 16,16, 64,32 ); |
| 462 | 462 | |
| 463 | state->m_tilemap_3 = tilemap | |
| 463 | state->m_tilemap_3 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(seta_state::get_tile_info_3),state), TILEMAP_SCAN_ROWS, | |
| 464 | 464 | 16,16, 64,32 ); |
| 465 | 465 | |
| 466 | 466 | state->m_tilemaps_flip = 0; |
| r17673 | r17674 | |
| 484 | 484 | at any given time */ |
| 485 | 485 | |
| 486 | 486 | /* layer 0 */ |
| 487 | state->m_tilemap_0 = tilemap | |
| 487 | state->m_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(seta_state::get_tile_info_0),state), TILEMAP_SCAN_ROWS, | |
| 488 | 488 | 16,16, 64,32 ); |
| 489 | 489 | |
| 490 | state->m_tilemap_1 = tilemap | |
| 490 | state->m_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(seta_state::get_tile_info_1),state), TILEMAP_SCAN_ROWS, | |
| 491 | 491 | 16,16, 64,32 ); |
| 492 | 492 | |
| 493 | 493 | state->m_color_mode_shift = 4; |
| r17673 | r17674 | |
| 506 | 506 | at any given time */ |
| 507 | 507 | |
| 508 | 508 | /* layer 0 */ |
| 509 | state->m_tilemap_0 = tilemap | |
| 509 | state->m_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(seta_state::twineagl_get_tile_info_0),state), TILEMAP_SCAN_ROWS, | |
| 510 | 510 | 16,16, 64,32 ); |
| 511 | 511 | |
| 512 | state->m_tilemap_1 = tilemap | |
| 512 | state->m_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(seta_state::twineagl_get_tile_info_1),state), TILEMAP_SCAN_ROWS, | |
| 513 | 513 | 16,16, 64,32 ); |
| 514 | 514 | |
| 515 | 515 | state->m_tilemap_0->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 119 | 119 | } |
| 120 | 120 | |
| 121 | 121 | |
| 122 | ||
| 122 | ||
| 123 | 123 | { |
| 124 | tp84_state *state = machine.driver_data<tp84_state>(); | |
| 125 | int code = ((state->m_bg_colorram[tile_index] & 0x30) << 4) | state->m_bg_videoram[tile_index]; | |
| 126 | int color = ((*state->m_palette_bank & 0x07) << 6) | | |
| 127 | ((*state->m_palette_bank & 0x18) << 1) | | |
| 128 | (state->m_bg_colorram[tile_index] & 0x0f); | |
| 129 | int flags = TILE_FLIPYX(state->m_bg_colorram[tile_index] >> 6); | |
| 124 | int code = ((m_bg_colorram[tile_index] & 0x30) << 4) | m_bg_videoram[tile_index]; | |
| 125 | int color = ((*m_palette_bank & 0x07) << 6) | | |
| 126 | ((*m_palette_bank & 0x18) << 1) | | |
| 127 | (m_bg_colorram[tile_index] & 0x0f); | |
| 128 | int flags = TILE_FLIPYX(m_bg_colorram[tile_index] >> 6); | |
| 130 | 129 | |
| 131 | SET_TILE_INFO(0, code, color, flags); | |
| 130 | SET_TILE_INFO_MEMBER(0, code, color, flags); | |
| 132 | 131 | } |
| 133 | 132 | |
| 134 | ||
| 133 | ||
| 135 | 134 | { |
| 136 | tp84_state *state = machine.driver_data<tp84_state>(); | |
| 137 | int code = ((state->m_fg_colorram[tile_index] & 0x30) << 4) | state->m_fg_videoram[tile_index]; | |
| 138 | int color = ((*state->m_palette_bank & 0x07) << 6) | | |
| 139 | ((*state->m_palette_bank & 0x18) << 1) | | |
| 140 | (state->m_fg_colorram[tile_index] & 0x0f); | |
| 141 | int flags = TILE_FLIPYX(state->m_fg_colorram[tile_index] >> 6); | |
| 135 | int code = ((m_fg_colorram[tile_index] & 0x30) << 4) | m_fg_videoram[tile_index]; | |
| 136 | int color = ((*m_palette_bank & 0x07) << 6) | | |
| 137 | ((*m_palette_bank & 0x18) << 1) | | |
| 138 | (m_fg_colorram[tile_index] & 0x0f); | |
| 139 | int flags = TILE_FLIPYX(m_fg_colorram[tile_index] >> 6); | |
| 142 | 140 | |
| 143 | SET_TILE_INFO(0, code, color, flags); | |
| 141 | SET_TILE_INFO_MEMBER(0, code, color, flags); | |
| 144 | 142 | } |
| 145 | 143 | |
| 146 | 144 | |
| 147 | 145 | VIDEO_START( tp84 ) |
| 148 | 146 | { |
| 149 | 147 | tp84_state *state = machine.driver_data<tp84_state>(); |
| 150 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 151 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 148 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tp84_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 149 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tp84_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 152 | 150 | } |
| 153 | 151 | |
| 154 | 152 |
| r17673 | r17674 | |
|---|---|---|
| 19 | 19 | |
| 20 | 20 | ***************************************************************************/ |
| 21 | 21 | |
| 22 | ||
| 22 | ||
| 23 | 23 | { |
| 24 | 24 | /* logical (col,row) -> memory offset */ |
| 25 | 25 | return (col & 0x1f) + ((row & 0x1f) << 5) + ((col & 0x20) << 5) + ((row & 0x20) <<6); |
| 26 | 26 | } |
| 27 | 27 | |
| 28 | ||
| 28 | ||
| 29 | 29 | { |
| 30 | vball_state *state = machine.driver_data<vball_state>(); | |
| 31 | UINT8 code = state->m_vb_videoram[tile_index]; | |
| 32 | UINT8 attr = state->m_vb_attribram[tile_index]; | |
| 33 | SET_TILE_INFO( | |
| 30 | UINT8 code = m_vb_videoram[tile_index]; | |
| 31 | UINT8 attr = m_vb_attribram[tile_index]; | |
| 32 | SET_TILE_INFO_MEMBER( | |
| 34 | 33 | 0, |
| 35 | code + ((attr & 0x1f) << 8) + ( | |
| 34 | code + ((attr & 0x1f) << 8) + ( | |
| 36 | 35 | (attr >> 5) & 0x7, |
| 37 | 36 | 0); |
| 38 | 37 | } |
| r17673 | r17674 | |
| 41 | 40 | VIDEO_START( vb ) |
| 42 | 41 | { |
| 43 | 42 | vball_state *state = machine.driver_data<vball_state>(); |
| 44 | state->m_bg_tilemap = tilemap | |
| 43 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(vball_state::get_bg_tile_info),state),tilemap_mapper_delegate(FUNC(vball_state::background_scan),state), 8, 8,64,64); | |
| 45 | 44 | |
| 46 | 45 | state->m_bg_tilemap->set_scroll_rows(32); |
| 47 | 46 | state->m_gfxset=0; |
| r17673 | r17674 | |
|---|---|---|
| 13 | 13 | |
| 14 | 14 | /* TTL text plane */ |
| 15 | 15 | |
| 16 | ||
| 16 | ||
| 17 | 17 | { |
| 18 | polygonet_state *state = machine.driver_data<polygonet_state>(); | |
| 19 | 18 | int attr, code; |
| 20 | 19 | |
| 21 | code = | |
| 20 | code = | |
| 22 | 21 | |
| 23 | attr = | |
| 22 | attr = | |
| 24 | 23 | |
| 25 | SET_TILE_INFO( | |
| 24 | SET_TILE_INFO_MEMBER( | |
| 26 | 25 | } |
| 27 | 26 | |
| 28 | ||
| 27 | ||
| 29 | 28 | { |
| 30 | polygonet_state *state = machine.driver_data<polygonet_state>(); | |
| 31 | 29 | int attr, code; |
| 32 | 30 | |
| 33 | attr = (state->m_roz_vram[tile_index] >> 12) + 16; /* roz base palette is palette 16 */ | |
| 34 | code = state->m_roz_vram[tile_index] & 0x3ff; | |
| 31 | attr = (m_roz_vram[tile_index] >> 12) + 16; /* roz base palette is palette 16 */ | |
| 32 | code = m_roz_vram[tile_index] & 0x3ff; | |
| 35 | 33 | |
| 36 | SET_TILE_INFO(0, code, attr, 0); | |
| 34 | SET_TILE_INFO_MEMBER(0, code, attr, 0); | |
| 37 | 35 | } |
| 38 | 36 | |
| 39 | 37 | READ32_MEMBER(polygonet_state::polygonet_ttl_ram_r) |
| r17673 | r17674 | |
| 70 | 68 | m_roz_tilemap->mark_tile_dirty(offset*2+1); |
| 71 | 69 | } |
| 72 | 70 | |
| 73 | ||
| 71 | ||
| 74 | 72 | { |
| 75 | 73 | return row * num_cols + (col^1); |
| 76 | 74 | } |
| 77 | 75 | |
| 78 | ||
| 76 | ||
| 79 | 77 | { |
| 80 | 78 | return col * num_rows + (row^1); |
| 81 | 79 | } |
| r17673 | r17674 | |
| 105 | 103 | machine.gfx[state->m_ttl_gfx_index] = auto_alloc(machine, gfx_element(machine, charlayout, machine.root_device().memregion("gfx1")->base(), machine.total_colors() / 16, 0)); |
| 106 | 104 | |
| 107 | 105 | /* create the tilemap */ |
| 108 | state->m_ttl_tilemap = tilemap | |
| 106 | state->m_ttl_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(polygonet_state::ttl_get_tile_info),state), tilemap_mapper_delegate(FUNC(polygonet_state::plygonet_scan),state), 8, 8, 64, 32); | |
| 109 | 107 | |
| 110 | 108 | state->m_ttl_tilemap->set_transparent_pen(0); |
| 111 | 109 | |
| 112 | 110 | /* set up the roz t-map too */ |
| 113 | state->m_roz_tilemap = tilemap | |
| 111 | state->m_roz_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(polygonet_state::roz_get_tile_info),state), tilemap_mapper_delegate(FUNC(polygonet_state::plygonet_scan_cols),state), 16, 16, 32, 64); | |
| 114 | 112 | state->m_roz_tilemap->set_transparent_pen(0); |
| 115 | 113 | |
| 116 | 114 | /* save states */ |
| r17673 | r17674 | |
|---|---|---|
| 89 | 89 | } |
| 90 | 90 | } |
| 91 | 91 | |
| 92 | ||
| 92 | ||
| 93 | 93 | { |
| 94 | higemaru_state *state = machine.driver_data<higemaru_state>(); | |
| 95 | int code = state->m_videoram[tile_index] + ((state->m_colorram[tile_index] & 0x80) << 1); | |
| 96 | int color = state->m_colorram[tile_index] & 0x1f; | |
| 94 | int code = m_videoram[tile_index] + ((m_colorram[tile_index] & 0x80) << 1); | |
| 95 | int color = m_colorram[tile_index] & 0x1f; | |
| 97 | 96 | |
| 98 | SET_TILE_INFO(0, code, color, 0); | |
| 97 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 99 | 98 | } |
| 100 | 99 | |
| 101 | 100 | VIDEO_START( higemaru ) |
| 102 | 101 | { |
| 103 | 102 | higemaru_state *state = machine.driver_data<higemaru_state>(); |
| 104 | state->m_bg_tilemap = tilemap | |
| 103 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(higemaru_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 105 | 104 | } |
| 106 | 105 | |
| 107 | 106 | static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ) |
| r17673 | r17674 | |
|---|---|---|
| 16 | 16 | * |
| 17 | 17 | *************************************/ |
| 18 | 18 | |
| 19 | ||
| 19 | ||
| 20 | 20 | { |
| 21 | batman_state *state = machine.driver_data<batman_state>(); | |
| 22 | UINT16 data = state->m_alpha[tile_index]; | |
| 23 | int code = ((data & 0x400) ? (state->m_alpha_tile_bank * 0x400) : 0) + (data & 0x3ff); | |
| 21 | UINT16 data = m_alpha[tile_index]; | |
| 22 | int code = ((data & 0x400) ? (m_alpha_tile_bank * 0x400) : 0) + (data & 0x3ff); | |
| 24 | 23 | int color = (data >> 11) & 0x0f; |
| 25 | 24 | int opaque = data & 0x8000; |
| 26 | SET_TILE_INFO(2, code, color, opaque ? TILE_FORCE_LAYER0 : 0); | |
| 25 | SET_TILE_INFO_MEMBER(2, code, color, opaque ? TILE_FORCE_LAYER0 : 0); | |
| 27 | 26 | } |
| 28 | 27 | |
| 29 | 28 | |
| 30 | ||
| 29 | ||
| 31 | 30 | { |
| 32 | batman_state *state = machine.driver_data<batman_state>(); | |
| 33 | UINT16 data1 = state->m_playfield[tile_index]; | |
| 34 | UINT16 data2 = state->m_playfield_upper[tile_index] & 0xff; | |
| 31 | UINT16 data1 = m_playfield[tile_index]; | |
| 32 | UINT16 data2 = m_playfield_upper[tile_index] & 0xff; | |
| 35 | 33 | int code = data1 & 0x7fff; |
| 36 | 34 | int color = 0x10 + (data2 & 0x0f); |
| 37 | SET_TILE_INFO(0, code, color, (data1 >> 15) & 1); | |
| 35 | SET_TILE_INFO_MEMBER(0, code, color, (data1 >> 15) & 1); | |
| 38 | 36 | tileinfo.category = (data2 >> 4) & 3; |
| 39 | 37 | } |
| 40 | 38 | |
| 41 | 39 | |
| 42 | ||
| 40 | ||
| 43 | 41 | { |
| 44 | batman_state *state = machine.driver_data<batman_state>(); | |
| 45 | UINT16 data1 = state->m_playfield2[tile_index]; | |
| 46 | UINT16 data2 = state->m_playfield_upper[tile_index] >> 8; | |
| 42 | UINT16 data1 = m_playfield2[tile_index]; | |
| 43 | UINT16 data2 = m_playfield_upper[tile_index] >> 8; | |
| 47 | 44 | int code = data1 & 0x7fff; |
| 48 | 45 | int color = data2 & 0x0f; |
| 49 | SET_TILE_INFO(0, code, color, (data1 >> 15) & 1); | |
| 46 | SET_TILE_INFO_MEMBER(0, code, color, (data1 >> 15) & 1); | |
| 50 | 47 | tileinfo.category = (data2 >> 4) & 3; |
| 51 | 48 | } |
| 52 | 49 | |
| r17673 | r17674 | |
| 99 | 96 | batman_state *state = machine.driver_data<batman_state>(); |
| 100 | 97 | |
| 101 | 98 | /* initialize the playfield */ |
| 102 | state->m_playfield_tilemap = tilemap | |
| 99 | state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(batman_state::get_playfield_tile_info),state), TILEMAP_SCAN_COLS, 8,8, 64,64); | |
| 103 | 100 | |
| 104 | 101 | /* initialize the second playfield */ |
| 105 | state->m_playfield2_tilemap = tilemap | |
| 102 | state->m_playfield2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(batman_state::get_playfield2_tile_info),state), TILEMAP_SCAN_COLS, 8,8, 64,64); | |
| 106 | 103 | state->m_playfield2_tilemap->set_transparent_pen(0); |
| 107 | 104 | |
| 108 | 105 | /* initialize the motion objects */ |
| 109 | 106 | atarimo_init(machine, 0, &modesc); |
| 110 | 107 | |
| 111 | 108 | /* initialize the alphanumerics */ |
| 112 | state->m_alpha_tilemap = tilemap | |
| 109 | state->m_alpha_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(batman_state::get_alpha_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,32); | |
| 113 | 110 | state->m_alpha_tilemap->set_transparent_pen(0); |
| 114 | 111 | } |
| 115 | 112 |
| r17673 | r17674 | |
|---|---|---|
| 21 | 21 | }; |
| 22 | 22 | |
| 23 | 23 | |
| 24 | ||
| 24 | ||
| 25 | 25 | { |
| 26 | nemesis_state *state = machine.driver_data<nemesis_state>(); | |
| 27 | 26 | int code, color, flags, mask, layer; |
| 28 | 27 | |
| 29 | code = state->m_videoram2[tile_index]; | |
| 30 | color = state->m_colorram2[tile_index]; | |
| 28 | code = m_videoram2[tile_index]; | |
| 29 | color = m_colorram2[tile_index]; | |
| 31 | 30 | flags = 0; |
| 32 | 31 | |
| 33 | 32 | if (color & 0x80) |
| r17673 | r17674 | |
| 41 | 40 | |
| 42 | 41 | if (code & 0xf800) |
| 43 | 42 | { |
| 44 | SET_TILE_INFO( 0, code & 0x7ff, color & 0x7f, flags ); | |
| 43 | SET_TILE_INFO_MEMBER( 0, code & 0x7ff, color & 0x7f, flags ); | |
| 45 | 44 | } |
| 46 | 45 | else |
| 47 | 46 | { |
| 48 | SET_TILE_INFO( 0, 0, 0x00, 0 ); | |
| 49 | tileinfo.pen_data = state->m_blank_tile; | |
| 47 | SET_TILE_INFO_MEMBER( 0, 0, 0x00, 0 ); | |
| 48 | tileinfo.pen_data = m_blank_tile; | |
| 50 | 49 | } |
| 51 | 50 | |
| 52 | 51 | mask = (code & 0x1000) >> 12; |
| r17673 | r17674 | |
| 57 | 56 | tileinfo.category = mask | (layer << 1); |
| 58 | 57 | } |
| 59 | 58 | |
| 60 | ||
| 59 | ||
| 61 | 60 | { |
| 62 | nemesis_state *state = machine.driver_data<nemesis_state>(); | |
| 63 | 61 | int code, color, flags, mask, layer; |
| 64 | 62 | |
| 65 | code = state->m_videoram1[tile_index]; | |
| 66 | color = state->m_colorram1[tile_index]; | |
| 63 | code = m_videoram1[tile_index]; | |
| 64 | color = m_colorram1[tile_index]; | |
| 67 | 65 | flags = 0; |
| 68 | 66 | |
| 69 | 67 | if (color & 0x80) |
| r17673 | r17674 | |
| 77 | 75 | |
| 78 | 76 | if (code & 0xf800) |
| 79 | 77 | { |
| 80 | SET_TILE_INFO( 0, code & 0x7ff, color & 0x7f, flags ); | |
| 78 | SET_TILE_INFO_MEMBER( 0, code & 0x7ff, color & 0x7f, flags ); | |
| 81 | 79 | } |
| 82 | 80 | else |
| 83 | 81 | { |
| 84 | SET_TILE_INFO( 0, 0, 0x00, 0 ); | |
| 85 | tileinfo.pen_data = state->m_blank_tile; | |
| 82 | SET_TILE_INFO_MEMBER( 0, 0, 0x00, 0 ); | |
| 83 | tileinfo.pen_data = m_blank_tile; | |
| 86 | 84 | } |
| 87 | 85 | |
| 88 | 86 | mask = (code & 0x1000) >> 12; |
| r17673 | r17674 | |
| 299 | 297 | |
| 300 | 298 | state->m_spriteram_words = state->m_spriteram.bytes() / 2; |
| 301 | 299 | |
| 302 | state->m_background = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 303 | state->m_foreground = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 300 | state->m_background = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nemesis_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 301 | state->m_foreground = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nemesis_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 304 | 302 | |
| 305 | 303 | state->m_background->set_transparent_pen(0); |
| 306 | 304 | state->m_foreground->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 63 | 63 | |
| 64 | 64 | |
| 65 | 65 | |
| 66 | ||
| 66 | ||
| 67 | 67 | { |
| 68 | cheekyms_state *state = machine.driver_data<cheekyms_state>(); | |
| 69 | 68 | int color; |
| 70 | 69 | |
| 71 | 70 | int x = tile_index & 0x1f; |
| 72 | 71 | int y = tile_index >> 5; |
| 73 | int code = state->m_videoram[tile_index]; | |
| 74 | int palette = (*state->m_port_80 >> 2) & 0x10; | |
| 72 | int code = m_videoram[tile_index]; | |
| 73 | int palette = (*m_port_80 >> 2) & 0x10; | |
| 75 | 74 | |
| 76 | 75 | if (x >= 0x1e) |
| 77 | 76 | { |
| r17673 | r17674 | |
| 90 | 89 | color = palette | (x >> 1); |
| 91 | 90 | } |
| 92 | 91 | |
| 93 | SET_TILE_INFO(0, code, color, 0); | |
| 92 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 94 | 93 | } |
| 95 | 94 | |
| 96 | 95 | VIDEO_START( cheekyms ) |
| r17673 | r17674 | |
| 102 | 101 | height = machine.primary_screen->height(); |
| 103 | 102 | state->m_bitmap_buffer = auto_bitmap_ind16_alloc(machine, width, height); |
| 104 | 103 | |
| 105 | state->m_cm_tilemap = tilemap | |
| 104 | state->m_cm_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cheekyms_state::cheekyms_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 106 | 105 | state->m_cm_tilemap->set_transparent_pen(0); |
| 107 | 106 | } |
| 108 | 107 |
| r17673 | r17674 | |
|---|---|---|
| 54 | 54 | |
| 55 | 55 | ***************************************************************************/ |
| 56 | 56 | |
| 57 | ||
| 57 | ||
| 58 | 58 | { |
| 59 | timelimt_state *state = machine.driver_data<timelimt_state>(); | |
| 60 | SET_TILE_INFO(1, state->m_bg_videoram[tile_index], 0, 0); | |
| 59 | SET_TILE_INFO_MEMBER(1, m_bg_videoram[tile_index], 0, 0); | |
| 61 | 60 | } |
| 62 | 61 | |
| 63 | ||
| 62 | ||
| 64 | 63 | { |
| 65 | timelimt_state *state = machine.driver_data<timelimt_state>(); | |
| 66 | UINT8 *videoram = state->m_videoram; | |
| 67 | SET_TILE_INFO(0, videoram[tile_index], 0, 0); | |
| 64 | UINT8 *videoram = m_videoram; | |
| 65 | SET_TILE_INFO_MEMBER(0, videoram[tile_index], 0, 0); | |
| 68 | 66 | } |
| 69 | 67 | |
| 70 | 68 | VIDEO_START( timelimt ) |
| 71 | 69 | { |
| 72 | 70 | timelimt_state *state = machine.driver_data<timelimt_state>(); |
| 73 | state->m_bg_tilemap = tilemap | |
| 71 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(timelimt_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, | |
| 74 | 72 | 8, 8, 64, 32); |
| 75 | 73 | |
| 76 | state->m_fg_tilemap = tilemap | |
| 74 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(timelimt_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, | |
| 77 | 75 | 8, 8, 32, 32); |
| 78 | 76 | |
| 79 | 77 | state->m_fg_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 40 | 40 | m_fg_layer->mark_tile_dirty(offset); |
| 41 | 41 | } |
| 42 | 42 | |
| 43 | ||
| 43 | ||
| 44 | 44 | { |
| 45 | goal92_state *state = machine.driver_data<goal92_state>(); | |
| 46 | int tile = state->m_tx_data[tile_index]; | |
| 45 | int tile = m_tx_data[tile_index]; | |
| 47 | 46 | int color = (tile >> 12) & 0xf; |
| 48 | 47 | |
| 49 | 48 | tile &= 0xfff; |
| 50 | 49 | |
| 51 | 50 | tile |= 0xc000; |
| 52 | 51 | |
| 53 | SET_TILE_INFO(1, tile, color, 0); | |
| 52 | SET_TILE_INFO_MEMBER(1, tile, color, 0); | |
| 54 | 53 | } |
| 55 | 54 | |
| 56 | ||
| 55 | ||
| 57 | 56 | { |
| 58 | goal92_state *state = machine.driver_data<goal92_state>(); | |
| 59 | int tile = state->m_bg_data[tile_index]; | |
| 57 | int tile = m_bg_data[tile_index]; | |
| 60 | 58 | int color = (tile >> 12) & 0xf; |
| 61 | 59 | |
| 62 | 60 | tile &= 0xfff; |
| 63 | 61 | |
| 64 | SET_TILE_INFO(2, tile, color, 0); | |
| 62 | SET_TILE_INFO_MEMBER(2, tile, color, 0); | |
| 65 | 63 | } |
| 66 | 64 | |
| 67 | ||
| 65 | ||
| 68 | 66 | { |
| 69 | goal92_state *state = machine.driver_data<goal92_state>(); | |
| 70 | int tile = state->m_fg_data[tile_index]; | |
| 67 | int tile = m_fg_data[tile_index]; | |
| 71 | 68 | int color = (tile >> 12) & 0xf; |
| 72 | 69 | int region; |
| 73 | 70 | |
| 74 | 71 | tile &= 0xfff; |
| 75 | 72 | |
| 76 | if( | |
| 73 | if( | |
| 77 | 74 | { |
| 78 | 75 | region = 3; |
| 79 | 76 | tile |= 0x1000; |
| r17673 | r17674 | |
| 84 | 81 | tile |= 0x2000; |
| 85 | 82 | } |
| 86 | 83 | |
| 87 | SET_TILE_INFO(region, tile, color, 0); | |
| 84 | SET_TILE_INFO_MEMBER(region, tile, color, 0); | |
| 88 | 85 | } |
| 89 | 86 | |
| 90 | 87 | static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int pri ) |
| r17673 | r17674 | |
| 135 | 132 | VIDEO_START( goal92 ) |
| 136 | 133 | { |
| 137 | 134 | goal92_state *state = machine.driver_data<goal92_state>(); |
| 138 | state->m_bg_layer = tilemap_create(machine, get_back_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 139 | state->m_fg_layer = tilemap_create(machine, get_fore_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 140 | state->m_tx_layer = tilemap_create(machine, get_text_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 135 | state->m_bg_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goal92_state::get_back_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 136 | state->m_fg_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goal92_state::get_fore_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 137 | state->m_tx_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goal92_state::get_text_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 141 | 138 | |
| 142 | 139 | state->m_buffered_spriteram = auto_alloc_array(machine, UINT16, 0x400 * 2); |
| 143 | 140 | state_save_register_global_pointer(machine, state->m_buffered_spriteram, 0x400 * 2); |
| r17673 | r17674 | |
|---|---|---|
| 89 | 89 | |
| 90 | 90 | ***************************************************************************/ |
| 91 | 91 | |
| 92 | ||
| 92 | ||
| 93 | 93 | { |
| 94 | _1942_state *state = machine.driver_data<_1942_state>(); | |
| 95 | 94 | int code, color; |
| 96 | 95 | |
| 97 | code = state->m_fg_videoram[tile_index]; | |
| 98 | color = state->m_fg_videoram[tile_index + 0x400]; | |
| 99 | SET_TILE_INFO( | |
| 96 | code = m_fg_videoram[tile_index]; | |
| 97 | color = m_fg_videoram[tile_index + 0x400]; | |
| 98 | SET_TILE_INFO_MEMBER( | |
| 100 | 99 | 0, |
| 101 | 100 | code + ((color & 0x80) << 1), |
| 102 | 101 | color & 0x3f, |
| 103 | 102 | 0); |
| 104 | 103 | } |
| 105 | 104 | |
| 106 | ||
| 105 | ||
| 107 | 106 | { |
| 108 | _1942_state *state = machine.driver_data<_1942_state>(); | |
| 109 | 107 | int code, color; |
| 110 | 108 | |
| 111 | 109 | tile_index = (tile_index & 0x0f) | ((tile_index & 0x01f0) << 1); |
| 112 | 110 | |
| 113 | code = state->m_bg_videoram[tile_index]; | |
| 114 | color = state->m_bg_videoram[tile_index + 0x10]; | |
| 115 | SET_TILE_INFO( | |
| 111 | code = m_bg_videoram[tile_index]; | |
| 112 | color = m_bg_videoram[tile_index + 0x10]; | |
| 113 | SET_TILE_INFO_MEMBER( | |
| 116 | 114 | 1, |
| 117 | 115 | code + ((color & 0x80) << 1), |
| 118 | (color & 0x1f) + (0x20 * | |
| 116 | (color & 0x1f) + (0x20 * | |
| 119 | 117 | TILE_FLIPYX((color & 0x60) >> 5)); |
| 120 | 118 | } |
| 121 | 119 | |
| r17673 | r17674 | |
| 128 | 126 | VIDEO_START( 1942 ) |
| 129 | 127 | { |
| 130 | 128 | _1942_state *state = machine.driver_data<_1942_state>(); |
| 131 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 132 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, 16, 16, 32, 16); | |
| 129 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(_1942_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 130 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(_1942_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 16); | |
| 133 | 131 | |
| 134 | 132 | state->m_fg_tilemap->set_transparent_pen(0); |
| 135 | 133 | } |
| r17673 | r17674 | |
|---|---|---|
| 10 | 10 | |
| 11 | 11 | |
| 12 | 12 | |
| 13 | ||
| 13 | ||
| 14 | 14 | { |
| 15 | poolshrk_state *state = machine.driver_data<poolshrk_state>(); | |
| 16 | SET_TILE_INFO(1, state->m_playfield_ram[tile_index] & 0x3f, 0, 0); | |
| 15 | SET_TILE_INFO_MEMBER(1, m_playfield_ram[tile_index] & 0x3f, 0, 0); | |
| 17 | 16 | } |
| 18 | 17 | |
| 19 | 18 | |
| 20 | 19 | VIDEO_START( poolshrk ) |
| 21 | 20 | { |
| 22 | 21 | poolshrk_state *state = machine.driver_data<poolshrk_state>(); |
| 23 | state->m_bg_tilemap = tilemap | |
| 22 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(poolshrk_state::get_tile_info),state), TILEMAP_SCAN_ROWS, | |
| 24 | 23 | 8, 8, 32, 32); |
| 25 | 24 | |
| 26 | 25 | state->m_bg_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 23 | 23 | m_tx_layer->mark_tile_dirty(offset); |
| 24 | 24 | } |
| 25 | 25 | |
| 26 | ||
| 26 | ||
| 27 | 27 | { |
| 28 | raiden_state *state = machine.driver_data<raiden_state>(); | |
| 29 | int tile=state->m_back_data[tile_index]; | |
| 28 | int tile=m_back_data[tile_index]; | |
| 30 | 29 | int color=tile >> 12; |
| 31 | 30 | |
| 32 | 31 | tile=tile&0xfff; |
| 33 | 32 | |
| 34 | SET_TILE_INFO( | |
| 33 | SET_TILE_INFO_MEMBER( | |
| 35 | 34 | 1, |
| 36 | 35 | tile, |
| 37 | 36 | color, |
| 38 | 37 | 0); |
| 39 | 38 | } |
| 40 | 39 | |
| 41 | ||
| 40 | ||
| 42 | 41 | { |
| 43 | raiden_state *state = machine.driver_data<raiden_state>(); | |
| 44 | int tile=state->m_fore_data[tile_index]; | |
| 42 | int tile=m_fore_data[tile_index]; | |
| 45 | 43 | int color=tile >> 12; |
| 46 | 44 | |
| 47 | 45 | tile=tile&0xfff; |
| 48 | 46 | |
| 49 | SET_TILE_INFO( | |
| 47 | SET_TILE_INFO_MEMBER( | |
| 50 | 48 | 2, |
| 51 | 49 | tile, |
| 52 | 50 | color, |
| 53 | 51 | 0); |
| 54 | 52 | } |
| 55 | 53 | |
| 56 | ||
| 54 | ||
| 57 | 55 | { |
| 58 | raiden_state *state = machine.driver_data<raiden_state>(); | |
| 59 | UINT16 *videoram = state->m_videoram; | |
| 56 | UINT16 *videoram = m_videoram; | |
| 60 | 57 | int tiledata = videoram[tile_index]; |
| 61 | 58 | int tile = (tiledata & 0xff) | ((tiledata >> 6) & 0x300); |
| 62 | 59 | int color = (tiledata >> 8) & 0x0f; |
| 63 | 60 | |
| 64 | SET_TILE_INFO( | |
| 61 | SET_TILE_INFO_MEMBER( | |
| 65 | 62 | 0, |
| 66 | 63 | tile, |
| 67 | 64 | color, |
| r17673 | r17674 | |
| 71 | 68 | VIDEO_START( raiden ) |
| 72 | 69 | { |
| 73 | 70 | raiden_state *state = machine.driver_data<raiden_state>(); |
| 74 | state->m_bg_layer = tilemap_create(machine, get_back_tile_info,TILEMAP_SCAN_COLS, 16,16,32,32); | |
| 75 | state->m_fg_layer = tilemap_create(machine, get_fore_tile_info,TILEMAP_SCAN_COLS,16,16,32,32); | |
| 76 | state->m_tx_layer = tilemap_create(machine, get_text_tile_info,TILEMAP_SCAN_COLS,8,8,32,32); | |
| 71 | state->m_bg_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(raiden_state::get_back_tile_info),state),TILEMAP_SCAN_COLS, 16,16,32,32); | |
| 72 | state->m_fg_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(raiden_state::get_fore_tile_info),state),TILEMAP_SCAN_COLS,16,16,32,32); | |
| 73 | state->m_tx_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(raiden_state::get_text_tile_info),state),TILEMAP_SCAN_COLS,8,8,32,32); | |
| 77 | 74 | state->m_alternate=0; |
| 78 | 75 | |
| 79 | 76 | state->m_fg_layer->set_transparent_pen(15); |
| r17673 | r17674 | |
| 83 | 80 | VIDEO_START( raidena ) |
| 84 | 81 | { |
| 85 | 82 | raiden_state *state = machine.driver_data<raiden_state>(); |
| 86 | state->m_bg_layer = tilemap_create(machine, get_back_tile_info,TILEMAP_SCAN_COLS, 16,16,32,32); | |
| 87 | state->m_fg_layer = tilemap_create(machine, get_fore_tile_info,TILEMAP_SCAN_COLS,16,16,32,32); | |
| 88 | state->m_tx_layer = tilemap_create(machine, get_text_tile_info,TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 83 | state->m_bg_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(raiden_state::get_back_tile_info),state),TILEMAP_SCAN_COLS, 16,16,32,32); | |
| 84 | state->m_fg_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(raiden_state::get_fore_tile_info),state),TILEMAP_SCAN_COLS,16,16,32,32); | |
| 85 | state->m_tx_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(raiden_state::get_text_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 89 | 86 | state->m_alternate=1; |
| 90 | 87 | |
| 91 | 88 | state->m_fg_layer->set_transparent_pen(15); |
| r17673 | r17674 | |
|---|---|---|
| 14 | 14 | |
| 15 | 15 | ***************************************************************************/ |
| 16 | 16 | |
| 17 | ||
| 17 | ||
| 18 | 18 | { |
| 19 | bloodbro_state *state = machine.driver_data<bloodbro_state>(); | |
| 20 | int code = state->m_bgvideoram[tile_index]; | |
| 21 | SET_TILE_INFO( | |
| 19 | int code = m_bgvideoram[tile_index]; | |
| 20 | SET_TILE_INFO_MEMBER( | |
| 22 | 21 | 1, |
| 23 | 22 | code & 0xfff, |
| 24 | 23 | (code >> 12), |
| 25 | 24 | 0); |
| 26 | 25 | } |
| 27 | 26 | |
| 28 | ||
| 27 | ||
| 29 | 28 | { |
| 30 | bloodbro_state *state = machine.driver_data<bloodbro_state>(); | |
| 31 | int code = state->m_fgvideoram[tile_index]; | |
| 32 | SET_TILE_INFO( | |
| 29 | int code = m_fgvideoram[tile_index]; | |
| 30 | SET_TILE_INFO_MEMBER( | |
| 33 | 31 | 2, |
| 34 | 32 | (code & 0xfff)+0x1000, |
| 35 | 33 | (code >> 12), |
| 36 | 34 | 0); |
| 37 | 35 | } |
| 38 | 36 | |
| 39 | ||
| 37 | ||
| 40 | 38 | { |
| 41 | bloodbro_state *state = machine.driver_data<bloodbro_state>(); | |
| 42 | int code = state->m_txvideoram[tile_index]; | |
| 43 | SET_TILE_INFO( | |
| 39 | int code = m_txvideoram[tile_index]; | |
| 40 | SET_TILE_INFO_MEMBER( | |
| 44 | 41 | 0, |
| 45 | 42 | code & 0xfff, |
| 46 | 43 | code >> 12, |
| r17673 | r17674 | |
| 58 | 55 | VIDEO_START( bloodbro ) |
| 59 | 56 | { |
| 60 | 57 | bloodbro_state *state = machine.driver_data<bloodbro_state>(); |
| 61 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_ROWS, 16,16,32,16); | |
| 62 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info,TILEMAP_SCAN_ROWS,16,16,32,16); | |
| 63 | state->m_tx_tilemap = tilemap_create(machine, get_tx_tile_info,TILEMAP_SCAN_ROWS, 8, 8,32,32); | |
| 58 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bloodbro_state::get_bg_tile_info),state),TILEMAP_SCAN_ROWS, 16,16,32,16); | |
| 59 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bloodbro_state::get_fg_tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,16); | |
| 60 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bloodbro_state::get_tx_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,32,32); | |
| 64 | 61 | |
| 65 | 62 | state->m_fg_tilemap->set_transparent_pen(15); |
| 66 | 63 | state->m_tx_tilemap->set_transparent_pen(15); |
| r17673 | r17674 | |
|---|---|---|
| 60 | 60 | palette_set_color_rgb(machine, BULLET_PEN, pal1bit(1), pal1bit(1), pal1bit(0)); |
| 61 | 61 | } |
| 62 | 62 | |
| 63 | ||
| 63 | ||
| 64 | 64 | { |
| 65 | galaxia_state *state = machine.driver_data<galaxia_state>(); | |
| 66 | UINT8 code = state->m_video_ram[tile_index] & 0x7f; // d7 unused | |
| 67 | UINT8 color = state->m_color_ram[tile_index] & 3; // highest bits unused | |
| 65 | UINT8 code = m_video_ram[tile_index] & 0x7f; // d7 unused | |
| 66 | UINT8 color = m_color_ram[tile_index] & 3; // highest bits unused | |
| 68 | 67 | |
| 69 | SET_TILE_INFO(0, code, color, 0); | |
| 68 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 70 | 69 | } |
| 71 | 70 | |
| 72 | ||
| 71 | ||
| 73 | 72 | { |
| 74 | galaxia_state *state = machine.driver_data<galaxia_state>(); | |
| 75 | UINT8 code = state->m_video_ram[tile_index]; | |
| 76 | UINT8 color = state->m_color_ram[tile_index] & 7; // highest bits unused | |
| 73 | UINT8 code = m_video_ram[tile_index]; | |
| 74 | UINT8 color = m_color_ram[tile_index] & 7; // highest bits unused | |
| 77 | 75 | |
| 78 | SET_TILE_INFO(0, code, color, 0); | |
| 76 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 79 | 77 | } |
| 80 | 78 | |
| 81 | 79 | static void init_common( running_machine &machine ) |
| r17673 | r17674 | |
| 89 | 87 | galaxia_state *state = machine.driver_data<galaxia_state>(); |
| 90 | 88 | init_common(machine); |
| 91 | 89 | |
| 92 | state->m_bg_tilemap = tilemap | |
| 90 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galaxia_state::get_galaxia_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 93 | 91 | state->m_bg_tilemap->set_transparent_pen(0); |
| 94 | 92 | state->m_bg_tilemap->set_scroll_cols(8); |
| 95 | 93 | |
| r17673 | r17674 | |
| 100 | 98 | galaxia_state *state = machine.driver_data<galaxia_state>(); |
| 101 | 99 | init_common(machine); |
| 102 | 100 | |
| 103 | state->m_bg_tilemap = tilemap | |
| 101 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galaxia_state::get_astrowar_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 104 | 102 | state->m_bg_tilemap->set_transparent_pen(0); |
| 105 | 103 | state->m_bg_tilemap->set_scroll_cols(8); |
| 106 | 104 | state->m_bg_tilemap->set_scrolldx(8, 8); |
| r17673 | r17674 | |
|---|---|---|
| 26 | 26 | SET_TILE_INFO(layer, tile, color, 0); |
| 27 | 27 | } |
| 28 | 28 | |
| 29 | static TILE_GET_INFO( fromanc2_get_v0_l0_tile_info ) { fromanc2_get_tile_info(machine, tileinfo, tile_index, 0, 0); } | |
| 30 | static TILE_GET_INFO( fromanc2_get_v0_l1_tile_info ) { fromanc2_get_tile_info(machine, tileinfo, tile_index, 0, 1); } | |
| 31 | static TILE_GET_INFO( fromanc2_get_v0_l2_tile_info ) { fromanc2_get_tile_info(machine, tileinfo, tile_index, 0, 2); } | |
| 32 | static TILE_GET_INFO( fromanc2_get_v0_l3_tile_info ) { fromanc2_get_tile_info(machine, tileinfo, tile_index, 0, 3); } | |
| 33 | static TILE_GET_INFO( fromanc2_get_v1_l0_tile_info ) { fromanc2_get_tile_info(machine, tileinfo, tile_index, 1, 0); } | |
| 34 | static TILE_GET_INFO( fromanc2_get_v1_l1_tile_info ) { fromanc2_get_tile_info(machine, tileinfo, tile_index, 1, 1); } | |
| 35 | static TILE_GET_INFO( fromanc2_get_v1_l2_tile_info ) { fromanc2_get_tile_info(machine, tileinfo, tile_index, 1, 2); } | |
| 36 | static TILE_GET_INFO( fromanc2_get_v1_l3_tile_info ) { fromanc2_get_tile_info(machine, tileinfo, tile_index, 1, 3); } | |
| 29 | TILE_GET_INFO_MEMBER(fromanc2_state::fromanc2_get_v0_l0_tile_info){ fromanc2_get_tile_info(machine(), tileinfo, tile_index, 0, 0); } | |
| 30 | TILE_GET_INFO_MEMBER(fromanc2_state::fromanc2_get_v0_l1_tile_info){ fromanc2_get_tile_info(machine(), tileinfo, tile_index, 0, 1); } | |
| 31 | TILE_GET_INFO_MEMBER(fromanc2_state::fromanc2_get_v0_l2_tile_info){ fromanc2_get_tile_info(machine(), tileinfo, tile_index, 0, 2); } | |
| 32 | TILE_GET_INFO_MEMBER(fromanc2_state::fromanc2_get_v0_l3_tile_info){ fromanc2_get_tile_info(machine(), tileinfo, tile_index, 0, 3); } | |
| 33 | TILE_GET_INFO_MEMBER(fromanc2_state::fromanc2_get_v1_l0_tile_info){ fromanc2_get_tile_info(machine(), tileinfo, tile_index, 1, 0); } | |
| 34 | TILE_GET_INFO_MEMBER(fromanc2_state::fromanc2_get_v1_l1_tile_info){ fromanc2_get_tile_info(machine(), tileinfo, tile_index, 1, 1); } | |
| 35 | TILE_GET_INFO_MEMBER(fromanc2_state::fromanc2_get_v1_l2_tile_info){ fromanc2_get_tile_info(machine(), tileinfo, tile_index, 1, 2); } | |
| 36 | TILE_GET_INFO_MEMBER(fromanc2_state::fromanc2_get_v1_l3_tile_info){ fromanc2_get_tile_info(machine(), tileinfo, tile_index, 1, 3); } | |
| 37 | 37 | |
| 38 | 38 | |
| 39 | 39 | INLINE void fromancr_get_tile_info( running_machine &machine, tile_data &tileinfo, int tile_index, int vram, int layer ) |
| r17673 | r17674 | |
| 47 | 47 | SET_TILE_INFO(layer, tile, color, 0); |
| 48 | 48 | } |
| 49 | 49 | |
| 50 | static TILE_GET_INFO( fromancr_get_v0_l0_tile_info ) { fromancr_get_tile_info(machine, tileinfo, tile_index, 0, 0); } | |
| 51 | static TILE_GET_INFO( fromancr_get_v0_l1_tile_info ) { fromancr_get_tile_info(machine, tileinfo, tile_index, 0, 1); } | |
| 52 | static TILE_GET_INFO( fromancr_get_v0_l2_tile_info ) { fromancr_get_tile_info(machine, tileinfo, tile_index, 0, 2); } | |
| 53 | static TILE_GET_INFO( fromancr_get_v1_l0_tile_info ) { fromancr_get_tile_info(machine, tileinfo, tile_index, 1, 0); } | |
| 54 | static TILE_GET_INFO( fromancr_get_v1_l1_tile_info ) { fromancr_get_tile_info(machine, tileinfo, tile_index, 1, 1); } | |
| 55 | static TILE_GET_INFO( fromancr_get_v1_l2_tile_info ) { fromancr_get_tile_info(machine, tileinfo, tile_index, 1, 2); } | |
| 50 | TILE_GET_INFO_MEMBER(fromanc2_state::fromancr_get_v0_l0_tile_info){ fromancr_get_tile_info(machine(), tileinfo, tile_index, 0, 0); } | |
| 51 | TILE_GET_INFO_MEMBER(fromanc2_state::fromancr_get_v0_l1_tile_info){ fromancr_get_tile_info(machine(), tileinfo, tile_index, 0, 1); } | |
| 52 | TILE_GET_INFO_MEMBER(fromanc2_state::fromancr_get_v0_l2_tile_info){ fromancr_get_tile_info(machine(), tileinfo, tile_index, 0, 2); } | |
| 53 | TILE_GET_INFO_MEMBER(fromanc2_state::fromancr_get_v1_l0_tile_info){ fromancr_get_tile_info(machine(), tileinfo, tile_index, 1, 0); } | |
| 54 | TILE_GET_INFO_MEMBER(fromanc2_state::fromancr_get_v1_l1_tile_info){ fromancr_get_tile_info(machine(), tileinfo, tile_index, 1, 1); } | |
| 55 | TILE_GET_INFO_MEMBER(fromanc2_state::fromancr_get_v1_l2_tile_info){ fromancr_get_tile_info(machine(), tileinfo, tile_index, 1, 2); } | |
| 56 | 56 | |
| 57 | 57 | |
| 58 | 58 | /****************************************************************************** |
| r17673 | r17674 | |
| 383 | 383 | { |
| 384 | 384 | fromanc2_state *state = machine.driver_data<fromanc2_state>(); |
| 385 | 385 | |
| 386 | state->m_tilemap[0][0] = tilemap_create(machine, fromanc2_get_v0_l0_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 387 | state->m_tilemap[0][1] = tilemap_create(machine, fromanc2_get_v0_l1_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 388 | state->m_tilemap[0][2] = tilemap_create(machine, fromanc2_get_v0_l2_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 389 | state->m_tilemap[0][3] = tilemap_create(machine, fromanc2_get_v0_l3_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 390 | state->m_tilemap[1][0] = tilemap_create(machine, fromanc2_get_v1_l0_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 391 | state->m_tilemap[1][1] = tilemap_create(machine, fromanc2_get_v1_l1_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 392 | state->m_tilemap[1][2] = tilemap_create(machine, fromanc2_get_v1_l2_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 393 | state->m_tilemap[1][3] = tilemap_create(machine, fromanc2_get_v1_l3_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 386 | state->m_tilemap[0][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromanc2_get_v0_l0_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 387 | state->m_tilemap[0][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromanc2_get_v0_l1_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 388 | state->m_tilemap[0][2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromanc2_get_v0_l2_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 389 | state->m_tilemap[0][3] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromanc2_get_v0_l3_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 390 | state->m_tilemap[1][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromanc2_get_v1_l0_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 391 | state->m_tilemap[1][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromanc2_get_v1_l1_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 392 | state->m_tilemap[1][2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromanc2_get_v1_l2_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 393 | state->m_tilemap[1][3] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromanc2_get_v1_l3_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 394 | 394 | |
| 395 | 395 | state->m_tilemap[0][1]->set_transparent_pen(0x000); |
| 396 | 396 | state->m_tilemap[0][2]->set_transparent_pen(0x000); |
| r17673 | r17674 | |
| 433 | 433 | { |
| 434 | 434 | fromanc2_state *state = machine.driver_data<fromanc2_state>(); |
| 435 | 435 | |
| 436 | state->m_tilemap[0][0] = tilemap_create(machine, fromancr_get_v0_l0_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 437 | state->m_tilemap[0][1] = tilemap_create(machine, fromancr_get_v0_l1_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 438 | state->m_tilemap[0][2] = tilemap_create(machine, fromancr_get_v0_l2_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 436 | state->m_tilemap[0][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromancr_get_v0_l0_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 437 | state->m_tilemap[0][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromancr_get_v0_l1_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 438 | state->m_tilemap[0][2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromancr_get_v0_l2_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 439 | 439 | state->m_tilemap[0][3] = 0; |
| 440 | state->m_tilemap[1][0] = tilemap_create(machine, fromancr_get_v1_l0_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 441 | state->m_tilemap[1][1] = tilemap_create(machine, fromancr_get_v1_l1_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 442 | state->m_tilemap[1][2] = tilemap_create(machine, fromancr_get_v1_l2_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 440 | state->m_tilemap[1][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromancr_get_v1_l0_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 441 | state->m_tilemap[1][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromancr_get_v1_l1_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 442 | state->m_tilemap[1][2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromancr_get_v1_l2_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 443 | 443 | state->m_tilemap[1][3] = 0; |
| 444 | 444 | |
| 445 | 445 | state->m_tilemap[0][1]->set_transparent_pen(0x0ff); |
| r17673 | r17674 | |
| 478 | 478 | { |
| 479 | 479 | fromanc2_state *state = machine.driver_data<fromanc2_state>(); |
| 480 | 480 | |
| 481 | state->m_tilemap[0][0] = tilemap_create(machine, fromancr_get_v0_l0_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 256, 64); | |
| 482 | state->m_tilemap[0][1] = tilemap_create(machine, fromancr_get_v0_l1_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 256, 64); | |
| 483 | state->m_tilemap[0][2] = tilemap_create(machine, fromancr_get_v0_l2_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 256, 64); | |
| 481 | state->m_tilemap[0][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromancr_get_v0_l0_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 256, 64); | |
| 482 | state->m_tilemap[0][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromancr_get_v0_l1_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 256, 64); | |
| 483 | state->m_tilemap[0][2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromancr_get_v0_l2_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 256, 64); | |
| 484 | 484 | state->m_tilemap[0][3] = 0; |
| 485 | state->m_tilemap[1][0] = tilemap_create(machine, fromancr_get_v1_l0_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 256, 64); | |
| 486 | state->m_tilemap[1][1] = tilemap_create(machine, fromancr_get_v1_l1_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 256, 64); | |
| 487 | state->m_tilemap[1][2] = tilemap_create(machine, fromancr_get_v1_l2_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 256, 64); | |
| 485 | state->m_tilemap[1][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromancr_get_v1_l0_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 256, 64); | |
| 486 | state->m_tilemap[1][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromancr_get_v1_l1_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 256, 64); | |
| 487 | state->m_tilemap[1][2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromanc2_state::fromancr_get_v1_l2_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 256, 64); | |
| 488 | 488 | state->m_tilemap[1][3] = 0; |
| 489 | 489 | |
| 490 | 490 | state->m_tilemap[0][1]->set_transparent_pen(0x000); |
| r17673 | r17674 | |
|---|---|---|
| 40 | 40 | } |
| 41 | 41 | } |
| 42 | 42 | |
| 43 | ||
| 43 | ||
| 44 | 44 | { |
| 45 | bombjack_state *state = machine.driver_data<bombjack_state>(); | |
| 46 | UINT8 *tilerom = state->memregion("gfx4")->base(); | |
| 45 | UINT8 *tilerom = memregion("gfx4")->base(); | |
| 47 | 46 | |
| 48 | int offs = (state->m_background_image & 0x07) * 0x200 + tile_index; | |
| 49 | int code = (state->m_background_image & 0x10) ? tilerom[offs] : 0; | |
| 47 | int offs = (m_background_image & 0x07) * 0x200 + tile_index; | |
| 48 | int code = (m_background_image & 0x10) ? tilerom[offs] : 0; | |
| 50 | 49 | int attr = tilerom[offs + 0x100]; |
| 51 | 50 | int color = attr & 0x0f; |
| 52 | 51 | int flags = (attr & 0x80) ? TILE_FLIPY : 0; |
| 53 | 52 | |
| 54 | SET_TILE_INFO(1, code, color, flags); | |
| 53 | SET_TILE_INFO_MEMBER(1, code, color, flags); | |
| 55 | 54 | } |
| 56 | 55 | |
| 57 | ||
| 56 | ||
| 58 | 57 | { |
| 59 | bombjack_state *state = machine.driver_data<bombjack_state>(); | |
| 60 | int code = state->m_videoram[tile_index] + 16 * (state->m_colorram[tile_index] & 0x10); | |
| 61 | int color = state->m_colorram[tile_index] & 0x0f; | |
| 58 | int code = m_videoram[tile_index] + 16 * (m_colorram[tile_index] & 0x10); | |
| 59 | int color = m_colorram[tile_index] & 0x0f; | |
| 62 | 60 | |
| 63 | SET_TILE_INFO(0, code, color, 0); | |
| 61 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 64 | 62 | } |
| 65 | 63 | |
| 66 | 64 | VIDEO_START( bombjack ) |
| 67 | 65 | { |
| 68 | 66 | bombjack_state *state = machine.driver_data<bombjack_state>(); |
| 69 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 16, 16); | |
| 70 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 67 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bombjack_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 16, 16); | |
| 68 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bombjack_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 71 | 69 | |
| 72 | 70 | state->m_fg_tilemap->set_transparent_pen(0); |
| 73 | 71 | } |
| r17673 | r17674 | |
|---|---|---|
| 57 | 57 | m_bg_tilemap->mark_tile_dirty(offset); |
| 58 | 58 | } |
| 59 | 59 | |
| 60 | ||
| 60 | ||
| 61 | 61 | { |
| 62 | trucocl_state *state = machine.driver_data<trucocl_state>(); | |
| 63 | int gfxsel = state->m_colorram[tile_index] & 1; | |
| 64 | int bank = ( ( state->m_colorram[tile_index] >> 2 ) & 0x07 ); | |
| 65 | int code = state->m_videoram[tile_index]; | |
| 66 | int colour = (state->m_colorram[tile_index] & 2) >> 1; | |
| 62 | int gfxsel = m_colorram[tile_index] & 1; | |
| 63 | int bank = ( ( m_colorram[tile_index] >> 2 ) & 0x07 ); | |
| 64 | int code = m_videoram[tile_index]; | |
| 65 | int colour = (m_colorram[tile_index] & 2) >> 1; | |
| 67 | 66 | |
| 68 | 67 | code |= ( bank & 1 ) << 10; |
| 69 | 68 | code |= ( bank & 2 ) << 8; |
| 70 | 69 | code += ( bank & 4 ) << 6; |
| 71 | 70 | |
| 72 | SET_TILE_INFO(gfxsel,code,colour,0); | |
| 71 | SET_TILE_INFO_MEMBER(gfxsel,code,colour,0); | |
| 73 | 72 | } |
| 74 | 73 | |
| 75 | 74 | VIDEO_START( trucocl ) |
| 76 | 75 | { |
| 77 | 76 | trucocl_state *state = machine.driver_data<trucocl_state>(); |
| 78 | state->m_bg_tilemap = tilemap | |
| 77 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(trucocl_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32 ); | |
| 79 | 78 | } |
| 80 | 79 | |
| 81 | 80 | SCREEN_UPDATE_IND16( trucocl ) |
| r17673 | r17674 | |
|---|---|---|
| 216 | 216 | ***************************************************************************/ |
| 217 | 217 | |
| 218 | 218 | /* the video RAM has space for 32x32 tiles and is only partially used for the radar */ |
| 219 | ||
| 219 | ||
| 220 | 220 | { |
| 221 | 221 | return col + (row << 5); |
| 222 | 222 | } |
| r17673 | r17674 | |
| 234 | 234 | TILE_FLIPYX(attr >> 6) ^ TILE_FLIPX); |
| 235 | 235 | } |
| 236 | 236 | |
| 237 | ||
| 237 | ||
| 238 | 238 | { |
| 239 | rallyx_get_tile_info(machine, tileinfo, tile_index, 0x400); | |
| 239 | rallyx_get_tile_info(machine(), tileinfo, tile_index, 0x400); | |
| 240 | 240 | } |
| 241 | 241 | |
| 242 | ||
| 242 | ||
| 243 | 243 | { |
| 244 | rallyx_get_tile_info(machine, tileinfo, tile_index, 0x000); | |
| 244 | rallyx_get_tile_info(machine(), tileinfo, tile_index, 0x000); | |
| 245 | 245 | } |
| 246 | 246 | |
| 247 | 247 | |
| r17673 | r17674 | |
| 259 | 259 | (attr & 0x80) ? (TILE_FLIPX | TILE_FLIPY) : 0); |
| 260 | 260 | } |
| 261 | 261 | |
| 262 | ||
| 262 | ||
| 263 | 263 | { |
| 264 | locomotn_get_tile_info(machine, tileinfo, tile_index, 0x400); | |
| 264 | locomotn_get_tile_info(machine(), tileinfo, tile_index, 0x400); | |
| 265 | 265 | } |
| 266 | 266 | |
| 267 | ||
| 267 | ||
| 268 | 268 | { |
| 269 | locomotn_get_tile_info(machine, tileinfo, tile_index, 0x000); | |
| 269 | locomotn_get_tile_info(machine(), tileinfo, tile_index, 0x000); | |
| 270 | 270 | } |
| 271 | 271 | |
| 272 | 272 | |
| r17673 | r17674 | |
| 343 | 343 | { |
| 344 | 344 | rallyx_state *state = machine.driver_data<rallyx_state>(); |
| 345 | 345 | |
| 346 | state->m_bg_tilemap = tilemap_create(machine, rallyx_bg_get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 347 | state->m_fg_tilemap = tilemap_create(machine, rallyx_fg_get_tile_info, fg_tilemap_scan, 8, 8, 8, 32); | |
| 346 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rallyx_state::rallyx_bg_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 347 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rallyx_state::rallyx_fg_get_tile_info),state), tilemap_mapper_delegate(FUNC(rallyx_state::fg_tilemap_scan),state), 8, 8, 8, 32); | |
| 348 | 348 | |
| 349 | 349 | /* the scrolling tilemap is slightly misplaced in Rally X */ |
| 350 | 350 | state->m_bg_tilemap->set_scrolldx(3, 3); |
| r17673 | r17674 | |
| 359 | 359 | { |
| 360 | 360 | rallyx_state *state = machine.driver_data<rallyx_state>(); |
| 361 | 361 | |
| 362 | state->m_bg_tilemap = tilemap_create(machine, rallyx_bg_get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 363 | state->m_fg_tilemap = tilemap_create(machine, rallyx_fg_get_tile_info, fg_tilemap_scan, 8, 8, 8, 32); | |
| 362 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rallyx_state::rallyx_bg_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 363 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rallyx_state::rallyx_fg_get_tile_info),state), tilemap_mapper_delegate(FUNC(rallyx_state::fg_tilemap_scan),state), 8, 8, 8, 32); | |
| 364 | 364 | |
| 365 | 365 | state->m_spriteram_base = 0x14; |
| 366 | 366 | |
| r17673 | r17674 | |
| 373 | 373 | { |
| 374 | 374 | rallyx_state *state = machine.driver_data<rallyx_state>(); |
| 375 | 375 | |
| 376 | state->m_bg_tilemap = tilemap_create(machine, locomotn_bg_get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 377 | state->m_fg_tilemap = tilemap_create(machine, locomotn_fg_get_tile_info, fg_tilemap_scan, 8, 8, 8, 32); | |
| 376 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rallyx_state::locomotn_bg_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 377 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rallyx_state::locomotn_fg_get_tile_info),state), tilemap_mapper_delegate(FUNC(rallyx_state::fg_tilemap_scan),state), 8, 8, 8, 32); | |
| 378 | 378 | |
| 379 | 379 | /* handle reduced visible area in some games */ |
| 380 | 380 | if (machine.primary_screen->visible_area().max_x == 32 * 8 - 1) |
| r17673 | r17674 | |
| 394 | 394 | { |
| 395 | 395 | rallyx_state *state = machine.driver_data<rallyx_state>(); |
| 396 | 396 | |
| 397 | state->m_bg_tilemap = tilemap_create(machine, locomotn_bg_get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 398 | state->m_fg_tilemap = tilemap_create(machine, locomotn_fg_get_tile_info, fg_tilemap_scan, 8, 8, 8, 32); | |
| 397 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rallyx_state::locomotn_bg_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 398 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rallyx_state::locomotn_fg_get_tile_info),state), tilemap_mapper_delegate(FUNC(rallyx_state::fg_tilemap_scan),state), 8, 8, 8, 32); | |
| 399 | 399 | |
| 400 | 400 | /* handle reduced visible area in some games */ |
| 401 | 401 | if (machine.primary_screen->visible_area().max_x == 32 * 8 - 1) |
| r17673 | r17674 | |
|---|---|---|
| 88 | 88 | ***************************************************************************/ |
| 89 | 89 | |
| 90 | 90 | |
| 91 | ||
| 91 | ||
| 92 | 92 | { |
| 93 | 93 | UINT16 *vram = (UINT16 *)param; |
| 94 | 94 | UINT16 code = vram[2 * tile_index + 0 ]; |
| 95 | 95 | UINT16 attr = vram[2 * tile_index + 1 ]; |
| 96 | SET_TILE_INFO(1, code, attr & 0x1f, TILE_FLIPYX( attr >> 5 )); | |
| 96 | SET_TILE_INFO_MEMBER(1, code, attr & 0x1f, TILE_FLIPYX( attr >> 5 )); | |
| 97 | 97 | } |
| 98 | 98 | |
| 99 | ||
| 99 | ||
| 100 | 100 | { |
| 101 | 101 | UINT32 *vram = (UINT32 *)param; |
| 102 | 102 | UINT16 code = vram[tile_index] >> 16; |
| 103 | 103 | UINT16 attr = vram[tile_index] & 0xff; |
| 104 | SET_TILE_INFO(1, code, attr & 0x1f, TILE_FLIPYX( attr >> 5 )); | |
| 104 | SET_TILE_INFO_MEMBER(1, code, attr & 0x1f, TILE_FLIPYX( attr >> 5 )); | |
| 105 | 105 | } |
| 106 | 106 | |
| 107 | 107 | WRITE16_MEMBER(unico_state::unico_vram_w) |
| r17673 | r17674 | |
| 134 | 134 | VIDEO_START( unico ) |
| 135 | 135 | { |
| 136 | 136 | unico_state *state = machine.driver_data<unico_state>(); |
| 137 | state->m_tilemap[0] = tilemap | |
| 137 | state->m_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(unico_state::get_tile_info),state),TILEMAP_SCAN_ROWS, | |
| 138 | 138 | 16,16, 0x40, 0x40); |
| 139 | 139 | |
| 140 | state->m_tilemap[1] = tilemap | |
| 140 | state->m_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(unico_state::get_tile_info),state),TILEMAP_SCAN_ROWS, | |
| 141 | 141 | 16,16, 0x40, 0x40); |
| 142 | 142 | |
| 143 | state->m_tilemap[2] = tilemap | |
| 143 | state->m_tilemap[2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(unico_state::get_tile_info),state),TILEMAP_SCAN_ROWS, | |
| 144 | 144 | 16,16, 0x40, 0x40); |
| 145 | 145 | |
| 146 | 146 | state->m_tilemap[0]->set_user_data(&state->m_vram[0x8000/2]); |
| r17673 | r17674 | |
| 166 | 166 | VIDEO_START( zeropnt2 ) |
| 167 | 167 | { |
| 168 | 168 | unico_state *state = machine.driver_data<unico_state>(); |
| 169 | state->m_tilemap[0] = tilemap | |
| 169 | state->m_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(unico_state::get_tile_info32),state),TILEMAP_SCAN_ROWS, | |
| 170 | 170 | 16,16, 0x40, 0x40); |
| 171 | 171 | |
| 172 | state->m_tilemap[1] = tilemap | |
| 172 | state->m_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(unico_state::get_tile_info32),state),TILEMAP_SCAN_ROWS, | |
| 173 | 173 | 16,16, 0x40, 0x40); |
| 174 | 174 | |
| 175 | state->m_tilemap[2] = tilemap | |
| 175 | state->m_tilemap[2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(unico_state::get_tile_info32),state),TILEMAP_SCAN_ROWS, | |
| 176 | 176 | 16,16, 0x40, 0x40); |
| 177 | 177 | |
| 178 | 178 | state->m_tilemap[0]->set_user_data(&state->m_vram32[0x8000/4]); |
| r17673 | r17674 | |
|---|---|---|
| 5 | 5 | /*******************************************************************/ |
| 6 | 6 | |
| 7 | 7 | |
| 8 | ||
| 8 | ||
| 9 | 9 | { |
| 10 | gcpinbal_state *state = machine.driver_data<gcpinbal_state>(); | |
| 11 | UINT16 tilenum = state->m_tilemapram[0 + tile_index * 2]; | |
| 12 | UINT16 attr = state->m_tilemapram[1 + tile_index * 2]; | |
| 10 | UINT16 tilenum = m_tilemapram[0 + tile_index * 2]; | |
| 11 | UINT16 attr = m_tilemapram[1 + tile_index * 2]; | |
| 13 | 12 | |
| 14 | SET_TILE_INFO( | |
| 13 | SET_TILE_INFO_MEMBER( | |
| 15 | 14 | 1, |
| 16 | (tilenum & 0xfff) + | |
| 15 | (tilenum & 0xfff) + | |
| 17 | 16 | (attr & 0x1f), |
| 18 | 17 | TILE_FLIPYX( (attr & 0x300) >> 8)); |
| 19 | 18 | } |
| 20 | 19 | |
| 21 | ||
| 20 | ||
| 22 | 21 | { |
| 23 | gcpinbal_state *state = machine.driver_data<gcpinbal_state>(); | |
| 24 | UINT16 tilenum = state->m_tilemapram[0x800 + tile_index * 2]; | |
| 25 | UINT16 attr = state->m_tilemapram[0x801 + tile_index * 2]; | |
| 22 | UINT16 tilenum = m_tilemapram[0x800 + tile_index * 2]; | |
| 23 | UINT16 attr = m_tilemapram[0x801 + tile_index * 2]; | |
| 26 | 24 | |
| 27 | SET_TILE_INFO( | |
| 25 | SET_TILE_INFO_MEMBER( | |
| 28 | 26 | 1, |
| 29 | (tilenum & 0xfff) + 0x2000 + | |
| 27 | (tilenum & 0xfff) + 0x2000 + | |
| 30 | 28 | (attr & 0x1f) + 0x30, |
| 31 | 29 | TILE_FLIPYX( (attr & 0x300) >> 8)); |
| 32 | 30 | } |
| 33 | 31 | |
| 34 | ||
| 32 | ||
| 35 | 33 | { |
| 36 | gcpinbal_state *state = machine.driver_data<gcpinbal_state>(); | |
| 37 | UINT16 tilenum = state->m_tilemapram[0x1000 + tile_index]; | |
| 34 | UINT16 tilenum = m_tilemapram[0x1000 + tile_index]; | |
| 38 | 35 | |
| 39 | SET_TILE_INFO( | |
| 36 | SET_TILE_INFO_MEMBER( | |
| 40 | 37 | 2, |
| 41 | 38 | (tilenum & 0xfff), |
| 42 | 39 | (tilenum >> 12) | 0x70, |
| r17673 | r17674 | |
| 49 | 46 | int xoffs = 0; |
| 50 | 47 | int yoffs = 0; |
| 51 | 48 | |
| 52 | state->m_tilemap[0] = tilemap_create(machine, get_bg0_tile_info,TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 53 | state->m_tilemap[1] = tilemap_create(machine, get_bg1_tile_info,TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 54 | state->m_tilemap[2] = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 49 | state->m_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gcpinbal_state::get_bg0_tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 50 | state->m_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gcpinbal_state::get_bg1_tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 51 | state->m_tilemap[2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gcpinbal_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 55 | 52 | |
| 56 | 53 | state->m_tilemap[0]->set_transparent_pen(0); |
| 57 | 54 | state->m_tilemap[1]->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 68 | 68 | |
| 69 | 69 | ***************************************************************************/ |
| 70 | 70 | |
| 71 | ||
| 71 | ||
| 72 | 72 | { |
| 73 | realbrk_state *state = machine.driver_data<realbrk_state>(); | |
| 74 | UINT16 attr = state->m_vram_0[tile_index * 2 + 0]; | |
| 75 | UINT16 code = state->m_vram_0[tile_index * 2 + 1]; | |
| 76 | SET_TILE_INFO( | |
| 73 | UINT16 attr = m_vram_0[tile_index * 2 + 0]; | |
| 74 | UINT16 code = m_vram_0[tile_index * 2 + 1]; | |
| 75 | SET_TILE_INFO_MEMBER( | |
| 77 | 76 | 0, |
| 78 | 77 | code, |
| 79 | 78 | attr & 0x7f, |
| 80 | 79 | TILE_FLIPYX( attr >> 14 )); |
| 81 | 80 | } |
| 82 | 81 | |
| 83 | ||
| 82 | ||
| 84 | 83 | { |
| 85 | realbrk_state *state = machine.driver_data<realbrk_state>(); | |
| 86 | UINT16 attr = state->m_vram_1[tile_index * 2 + 0]; | |
| 87 | UINT16 code = state->m_vram_1[tile_index * 2 + 1]; | |
| 88 | SET_TILE_INFO( | |
| 84 | UINT16 attr = m_vram_1[tile_index * 2 + 0]; | |
| 85 | UINT16 code = m_vram_1[tile_index * 2 + 1]; | |
| 86 | SET_TILE_INFO_MEMBER( | |
| 89 | 87 | 0, |
| 90 | 88 | code, |
| 91 | 89 | attr & 0x7f, |
| r17673 | r17674 | |
| 118 | 116 | |
| 119 | 117 | ***************************************************************************/ |
| 120 | 118 | |
| 121 | ||
| 119 | ||
| 122 | 120 | { |
| 123 | realbrk_state *state = machine.driver_data<realbrk_state>(); | |
| 124 | UINT16 code = state->m_vram_2[tile_index]; | |
| 125 | SET_TILE_INFO( | |
| 121 | UINT16 code = m_vram_2[tile_index]; | |
| 122 | SET_TILE_INFO_MEMBER( | |
| 126 | 123 | 1, |
| 127 | 124 | code & 0x0fff, |
| 128 | ((code & 0xf000) >> 12) | (( | |
| 125 | ((code & 0xf000) >> 12) | (( | |
| 129 | 126 | 0); |
| 130 | 127 | } |
| 131 | 128 | |
| r17673 | r17674 | |
| 149 | 146 | { |
| 150 | 147 | realbrk_state *state = machine.driver_data<realbrk_state>(); |
| 151 | 148 | /* Backgrounds */ |
| 152 | state->m_tilemap_0 = tilemap_create(machine, get_tile_info_0, TILEMAP_SCAN_ROWS, 16, 16, 0x40, 0x20); | |
| 153 | state->m_tilemap_1 = tilemap_create(machine, get_tile_info_1, TILEMAP_SCAN_ROWS, 16, 16, 0x40, 0x20); | |
| 149 | state->m_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(realbrk_state::get_tile_info_0),state), TILEMAP_SCAN_ROWS, 16, 16, 0x40, 0x20); | |
| 150 | state->m_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(realbrk_state::get_tile_info_1),state), TILEMAP_SCAN_ROWS, 16, 16, 0x40, 0x20); | |
| 154 | 151 | |
| 155 | 152 | /* Text */ |
| 156 | state->m_tilemap_2 = tilemap | |
| 153 | state->m_tilemap_2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(realbrk_state::get_tile_info_2),state), TILEMAP_SCAN_ROWS, 8, 8, 0x40, 0x20); | |
| 157 | 154 | |
| 158 | 155 | state->m_tilemap_0->set_transparent_pen(0); |
| 159 | 156 | state->m_tilemap_1->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 83 | 83 | |
| 84 | 84 | |
| 85 | 85 | |
| 86 | ||
| 86 | ||
| 87 | 87 | { |
| 88 | carjmbre_state *state = machine.driver_data<carjmbre_state>(); | |
| 89 | UINT32 tile_number = state->m_videoram[tile_index] & 0xff; | |
| 90 | UINT8 attr = state->m_videoram[tile_index + 0x400]; | |
| 88 | UINT32 tile_number = m_videoram[tile_index] & 0xff; | |
| 89 | UINT8 attr = m_videoram[tile_index + 0x400]; | |
| 91 | 90 | tile_number += (attr & 0x80) << 1; /* bank */ |
| 92 | 91 | |
| 93 | SET_TILE_INFO( | |
| 92 | SET_TILE_INFO_MEMBER( | |
| 94 | 93 | 0, |
| 95 | 94 | tile_number, |
| 96 | 95 | attr & 0xf, |
| r17673 | r17674 | |
| 101 | 100 | { |
| 102 | 101 | carjmbre_state *state = machine.driver_data<carjmbre_state>(); |
| 103 | 102 | |
| 104 | state->m_cj_tilemap = tilemap | |
| 103 | state->m_cj_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(carjmbre_state::get_carjmbre_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 105 | 104 | state->save_item(NAME(state->m_flipscreen)); |
| 106 | 105 | state->save_item(NAME(state->m_bgcolor)); |
| 107 | 106 | } |
| r17673 | r17674 | |
|---|---|---|
| 28 | 28 | m_bg_tilemap->mark_tile_dirty(offset); |
| 29 | 29 | } |
| 30 | 30 | |
| 31 | ||
| 31 | ||
| 32 | 32 | { |
| 33 | gatron_state *state = machine.driver_data<gatron_state>(); | |
| 34 | UINT8 *videoram = state->m_videoram; | |
| 33 | UINT8 *videoram = m_videoram; | |
| 35 | 34 | /* - bits - |
| 36 | 35 | 7654 3210 |
| 37 | 36 | xxxx xxxx tiles code. |
| r17673 | r17674 | |
| 41 | 40 | |
| 42 | 41 | int code = videoram[tile_index]; |
| 43 | 42 | |
| 44 | SET_TILE_INFO(0, code, 0, 0); | |
| 43 | SET_TILE_INFO_MEMBER(0, code, 0, 0); | |
| 45 | 44 | } |
| 46 | 45 | |
| 47 | 46 | VIDEO_START( gat ) |
| 48 | 47 | { |
| 49 | 48 | gatron_state *state = machine.driver_data<gatron_state>(); |
| 50 | state->m_bg_tilemap = tilemap | |
| 49 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gatron_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 8, 16, 48, 16); | |
| 51 | 50 | } |
| 52 | 51 | |
| 53 | 52 | SCREEN_UPDATE_IND16( gat ) |
| r17673 | r17674 | |
|---|---|---|
| 118 | 118 | |
| 119 | 119 | } |
| 120 | 120 | |
| 121 | ||
| 121 | ||
| 122 | 122 | { |
| 123 | flower_state *state = machine.driver_data<flower_state>(); | |
| 124 | int code = state->m_bg0ram[tile_index]; | |
| 125 | int color = state->m_bg0ram[tile_index+0x100]; | |
| 123 | int code = m_bg0ram[tile_index]; | |
| 124 | int color = m_bg0ram[tile_index+0x100]; | |
| 126 | 125 | /* Todo - may be tile flip bits? */ |
| 127 | 126 | |
| 128 | SET_TILE_INFO(2, code, color>>4, 0); | |
| 127 | SET_TILE_INFO_MEMBER(2, code, color>>4, 0); | |
| 129 | 128 | } |
| 130 | 129 | |
| 131 | ||
| 130 | ||
| 132 | 131 | { |
| 133 | flower_state *state = machine.driver_data<flower_state>(); | |
| 134 | int code = state->m_bg1ram[tile_index]; | |
| 135 | int color = state->m_bg1ram[tile_index+0x100]; | |
| 132 | int code = m_bg1ram[tile_index]; | |
| 133 | int color = m_bg1ram[tile_index+0x100]; | |
| 136 | 134 | /* Todo - may be tile flip bits? */ |
| 137 | 135 | |
| 138 | SET_TILE_INFO(2, code, color>>4, 0); | |
| 136 | SET_TILE_INFO_MEMBER(2, code, color>>4, 0); | |
| 139 | 137 | } |
| 140 | 138 | |
| 141 | ||
| 139 | ||
| 142 | 140 | { |
| 143 | flower_state *state = machine.driver_data<flower_state>(); | |
| 144 | int code = state->m_textram[tile_index]; | |
| 145 | int color = state->m_textram[tile_index+0x400]; | |
| 141 | int code = m_textram[tile_index]; | |
| 142 | int color = m_textram[tile_index+0x400]; | |
| 146 | 143 | /* Todo - may be tile flip bits? */ |
| 147 | 144 | |
| 148 | SET_TILE_INFO(0, code, color>>2, 0); | |
| 145 | SET_TILE_INFO_MEMBER(0, code, color>>2, 0); | |
| 149 | 146 | } |
| 150 | 147 | |
| 151 | 148 | VIDEO_START(flower) |
| 152 | 149 | { |
| 153 | 150 | flower_state *state = machine.driver_data<flower_state>(); |
| 154 | state->m_bg0_tilemap = tilemap_create(machine, get_bg0_tile_info, TILEMAP_SCAN_ROWS,16,16,16,16); | |
| 155 | state->m_bg1_tilemap = tilemap_create(machine, get_bg1_tile_info, TILEMAP_SCAN_ROWS,16,16,16,16); | |
| 156 | state->m_text_tilemap = tilemap_create(machine, get_text_tile_info,TILEMAP_SCAN_ROWS, 8, 8,32,32); | |
| 157 | state->m_text_right_tilemap = tilemap_create(machine, get_text_tile_info,TILEMAP_SCAN_COLS, 8, 8, 2,32); | |
| 151 | state->m_bg0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(flower_state::get_bg0_tile_info),state), TILEMAP_SCAN_ROWS,16,16,16,16); | |
| 152 | state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(flower_state::get_bg1_tile_info),state), TILEMAP_SCAN_ROWS,16,16,16,16); | |
| 153 | state->m_text_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(flower_state::get_text_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,32,32); | |
| 154 | state->m_text_right_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(flower_state::get_text_tile_info),state),TILEMAP_SCAN_COLS, 8, 8, 2,32); | |
| 158 | 155 | |
| 159 | 156 | state->m_bg1_tilemap->set_transparent_pen(15); |
| 160 | 157 | state->m_text_tilemap->set_transparent_pen(3); |
| r17673 | r17674 | |
|---|---|---|
| 40 | 40 | |
| 41 | 41 | ***************************************************************************/ |
| 42 | 42 | |
| 43 | ||
| 43 | ||
| 44 | 44 | { |
| 45 | 45 | /* logical (col,row) -> memory offset */ |
| 46 | 46 | return (col & 0x0f) + ((row & 0x0f) << 4) + ((col & 0x10) << 4) + ((row & 0x10) << 5); |
| 47 | 47 | } |
| 48 | 48 | |
| 49 | ||
| 49 | ||
| 50 | 50 | { |
| 51 | xain_state *state = machine.driver_data<xain_state>(); | |
| 52 | int attr = state->m_bgram0[tile_index | 0x400]; | |
| 53 | SET_TILE_INFO( | |
| 51 | int attr = m_bgram0[tile_index | 0x400]; | |
| 52 | SET_TILE_INFO_MEMBER( | |
| 54 | 53 | 2, |
| 55 | | |
| 54 | | |
| 56 | 55 | (attr & 0x70) >> 4, |
| 57 | 56 | (attr & 0x80) ? TILE_FLIPX : 0); |
| 58 | 57 | } |
| 59 | 58 | |
| 60 | ||
| 59 | ||
| 61 | 60 | { |
| 62 | xain_state *state = machine.driver_data<xain_state>(); | |
| 63 | int attr = state->m_bgram1[tile_index | 0x400]; | |
| 64 | SET_TILE_INFO( | |
| 61 | int attr = m_bgram1[tile_index | 0x400]; | |
| 62 | SET_TILE_INFO_MEMBER( | |
| 65 | 63 | 1, |
| 66 | | |
| 64 | | |
| 67 | 65 | (attr & 0x70) >> 4, |
| 68 | 66 | (attr & 0x80) ? TILE_FLIPX : 0); |
| 69 | 67 | } |
| 70 | 68 | |
| 71 | ||
| 69 | ||
| 72 | 70 | { |
| 73 | xain_state *state = machine.driver_data<xain_state>(); | |
| 74 | int attr = state->m_charram[tile_index | 0x400]; | |
| 75 | SET_TILE_INFO( | |
| 71 | int attr = m_charram[tile_index | 0x400]; | |
| 72 | SET_TILE_INFO_MEMBER( | |
| 76 | 73 | 0, |
| 77 | | |
| 74 | | |
| 78 | 75 | (attr & 0xe0) >> 5, |
| 79 | 76 | 0); |
| 80 | 77 | } |
| r17673 | r17674 | |
| 89 | 86 | VIDEO_START( xain ) |
| 90 | 87 | { |
| 91 | 88 | xain_state *state = machine.driver_data<xain_state>(); |
| 92 | state->m_bgram0_tilemap = tilemap_create(machine, get_bgram0_tile_info,back_scan, 16,16,32,32); | |
| 93 | state->m_bgram1_tilemap = tilemap_create(machine, get_bgram1_tile_info,back_scan, 16,16,32,32); | |
| 94 | state->m_char_tilemap = tilemap_create(machine, get_char_tile_info,TILEMAP_SCAN_ROWS, 8, 8,32,32); | |
| 89 | state->m_bgram0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(xain_state::get_bgram0_tile_info),state),tilemap_mapper_delegate(FUNC(xain_state::back_scan),state),16,16,32,32); | |
| 90 | state->m_bgram1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(xain_state::get_bgram1_tile_info),state),tilemap_mapper_delegate(FUNC(xain_state::back_scan),state),16,16,32,32); | |
| 91 | state->m_char_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(xain_state::get_char_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,32,32); | |
| 95 | 92 | |
| 96 | 93 | state->m_bgram0_tilemap->set_transparent_pen(0); |
| 97 | 94 | state->m_bgram1_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 16 | 16 | |
| 17 | 17 | ***************************************************************************/ |
| 18 | 18 | |
| 19 | ||
| 19 | ||
| 20 | 20 | { |
| 21 | gundealr_state *state = machine.driver_data<gundealr_state>(); | |
| 22 | UINT8 attr = state->m_bg_videoram[2 * tile_index + 1]; | |
| 23 | SET_TILE_INFO( | |
| 21 | UINT8 attr = m_bg_videoram[2 * tile_index + 1]; | |
| 22 | SET_TILE_INFO_MEMBER( | |
| 24 | 23 | 0, |
| 25 | | |
| 24 | | |
| 26 | 25 | (attr & 0xf0) >> 4, |
| 27 | 26 | 0); |
| 28 | 27 | } |
| 29 | 28 | |
| 30 | ||
| 29 | ||
| 31 | 30 | { |
| 32 | 31 | /* logical (col,row) -> memory offset */ |
| 33 | 32 | return (row & 0x0f) + ((col & 0x3f) << 4) + ((row & 0x10) << 6); |
| 34 | 33 | } |
| 35 | 34 | |
| 36 | ||
| 35 | ||
| 37 | 36 | { |
| 38 | gundealr_state *state = machine.driver_data<gundealr_state>(); | |
| 39 | UINT8 attr = state->m_fg_videoram[2 * tile_index + 1]; | |
| 40 | SET_TILE_INFO( | |
| 37 | UINT8 attr = m_fg_videoram[2 * tile_index + 1]; | |
| 38 | SET_TILE_INFO_MEMBER( | |
| 41 | 39 | 1, |
| 42 | | |
| 40 | | |
| 43 | 41 | (attr & 0xf0) >> 4, |
| 44 | 42 | 0); |
| 45 | 43 | } |
| r17673 | r17674 | |
| 55 | 53 | VIDEO_START( gundealr ) |
| 56 | 54 | { |
| 57 | 55 | gundealr_state *state = machine.driver_data<gundealr_state>(); |
| 58 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, 8, 8, 32, 32); | |
| 59 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, gundealr_scan, 16, 16, 64, 32); | |
| 56 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gundealr_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); | |
| 57 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gundealr_state::get_fg_tile_info),state), tilemap_mapper_delegate(FUNC(gundealr_state::gundealr_scan),state), 16, 16, 64, 32); | |
| 60 | 58 | |
| 61 | 59 | state->m_fg_tilemap->set_transparent_pen(15); |
| 62 | 60 | } |
| r17673 | r17674 | |
|---|---|---|
| 134 | 134 | |
| 135 | 135 | ***************************************************************************/ |
| 136 | 136 | |
| 137 | ||
| 137 | ||
| 138 | 138 | { |
| 139 | mrdo_state *state = machine.driver_data<mrdo_state>(); | |
| 140 | UINT8 attr = state->m_bgvideoram[tile_index]; | |
| 141 | SET_TILE_INFO( | |
| 139 | UINT8 attr = m_bgvideoram[tile_index]; | |
| 140 | SET_TILE_INFO_MEMBER( | |
| 142 | 141 | 1, |
| 143 | | |
| 142 | | |
| 144 | 143 | attr & 0x3f, |
| 145 | 144 | (attr & 0x40) ? TILE_FORCE_LAYER0 : 0); |
| 146 | 145 | } |
| 147 | 146 | |
| 148 | ||
| 147 | ||
| 149 | 148 | { |
| 150 | mrdo_state *state = machine.driver_data<mrdo_state>(); | |
| 151 | UINT8 attr = state->m_fgvideoram[tile_index]; | |
| 152 | SET_TILE_INFO( | |
| 149 | UINT8 attr = m_fgvideoram[tile_index]; | |
| 150 | SET_TILE_INFO_MEMBER( | |
| 153 | 151 | 0, |
| 154 | | |
| 152 | | |
| 155 | 153 | attr & 0x3f, |
| 156 | 154 | (attr & 0x40) ? TILE_FORCE_LAYER0 : 0); |
| 157 | 155 | } |
| r17673 | r17674 | |
| 168 | 166 | { |
| 169 | 167 | mrdo_state *state = machine.driver_data<mrdo_state>(); |
| 170 | 168 | |
| 171 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 172 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info,TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 169 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mrdo_state::get_bg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 170 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mrdo_state::get_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 173 | 171 | |
| 174 | 172 | state->m_bg_tilemap->set_transparent_pen(0); |
| 175 | 173 | state->m_fg_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 72 | 72 | tileinfo.mask_data = &state->m_tilemap_maskdata[code << 3]; |
| 73 | 73 | } |
| 74 | 74 | |
| 75 | ||
| 75 | ||
| 76 | 76 | { |
| 77 | namcos1_state *state = machine.driver_data<namcos1_state>(); | |
| 78 | bg_get_info(machine,tileinfo,tile_index,&state->m_videoram[0x0000]); | |
| 77 | bg_get_info(machine(),tileinfo,tile_index,&m_videoram[0x0000]); | |
| 79 | 78 | } |
| 80 | 79 | |
| 81 | ||
| 80 | ||
| 82 | 81 | { |
| 83 | namcos1_state *state = machine.driver_data<namcos1_state>(); | |
| 84 | bg_get_info(machine,tileinfo,tile_index,&state->m_videoram[0x2000]); | |
| 82 | bg_get_info(machine(),tileinfo,tile_index,&m_videoram[0x2000]); | |
| 85 | 83 | } |
| 86 | 84 | |
| 87 | ||
| 85 | ||
| 88 | 86 | { |
| 89 | namcos1_state *state = machine.driver_data<namcos1_state>(); | |
| 90 | bg_get_info(machine,tileinfo,tile_index,&state->m_videoram[0x4000]); | |
| 87 | bg_get_info(machine(),tileinfo,tile_index,&m_videoram[0x4000]); | |
| 91 | 88 | } |
| 92 | 89 | |
| 93 | ||
| 90 | ||
| 94 | 91 | { |
| 95 | namcos1_state *state = machine.driver_data<namcos1_state>(); | |
| 96 | bg_get_info(machine,tileinfo,tile_index,&state->m_videoram[0x6000]); | |
| 92 | bg_get_info(machine(),tileinfo,tile_index,&m_videoram[0x6000]); | |
| 97 | 93 | } |
| 98 | 94 | |
| 99 | ||
| 95 | ||
| 100 | 96 | { |
| 101 | namcos1_state *state = machine.driver_data<namcos1_state>(); | |
| 102 | fg_get_info(machine,tileinfo,tile_index,&state->m_videoram[0x7010]); | |
| 97 | fg_get_info(machine(),tileinfo,tile_index,&m_videoram[0x7010]); | |
| 103 | 98 | } |
| 104 | 99 | |
| 105 | ||
| 100 | ||
| 106 | 101 | { |
| 107 | namcos1_state *state = machine.driver_data<namcos1_state>(); | |
| 108 | fg_get_info(machine,tileinfo,tile_index,&state->m_videoram[0x7810]); | |
| 102 | fg_get_info(machine(),tileinfo,tile_index,&m_videoram[0x7810]); | |
| 109 | 103 | } |
| 110 | 104 | |
| 111 | 105 | |
| r17673 | r17674 | |
| 128 | 122 | state->m_spriteram = auto_alloc_array(machine, UINT8, 0x1000); |
| 129 | 123 | |
| 130 | 124 | /* initialize playfields */ |
| 131 | state->m_bg_tilemap[0] = tilemap_create(machine, bg_get_info0,TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 132 | state->m_bg_tilemap[1] = tilemap_create(machine, bg_get_info1,TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 133 | state->m_bg_tilemap[2] = tilemap_create(machine, bg_get_info2,TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 134 | state->m_bg_tilemap[3] = tilemap_create(machine, bg_get_info3,TILEMAP_SCAN_ROWS,8,8,64,32); | |
| 135 | state->m_bg_tilemap[4] = tilemap_create(machine, fg_get_info4,TILEMAP_SCAN_ROWS,8,8,36,28); | |
| 136 | state->m_bg_tilemap[5] = tilemap_create(machine, fg_get_info5,TILEMAP_SCAN_ROWS,8,8,36,28); | |
| 125 | state->m_bg_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(namcos1_state::bg_get_info0),state),TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 126 | state->m_bg_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(namcos1_state::bg_get_info1),state),TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 127 | state->m_bg_tilemap[2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(namcos1_state::bg_get_info2),state),TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 128 | state->m_bg_tilemap[3] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(namcos1_state::bg_get_info3),state),TILEMAP_SCAN_ROWS,8,8,64,32); | |
| 129 | state->m_bg_tilemap[4] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(namcos1_state::fg_get_info4),state),TILEMAP_SCAN_ROWS,8,8,36,28); | |
| 130 | state->m_bg_tilemap[5] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(namcos1_state::fg_get_info5),state),TILEMAP_SCAN_ROWS,8,8,36,28); | |
| 137 | 131 | |
| 138 | 132 | state->m_bg_tilemap[4]->set_scrolldx(73,512-73); |
| 139 | 133 | state->m_bg_tilemap[5]->set_scrolldx(73,512-73); |
| r17673 | r17674 | |
|---|---|---|
| 409 | 409 | } |
| 410 | 410 | } |
| 411 | 411 | |
| 412 | static void m62_start( running_machine &machine, tile_get_info_ | |
| 412 | static void m62_start( running_machine &machine, tilemap_get_info_delegate tile_get_info, int rows, int cols, int x1, int y1, int x2, int y2 ) | |
| 413 | 413 | { |
| 414 | 414 | m62_state *state = machine.driver_data<m62_state>(); |
| 415 | state->m_bg_tilemap = tilemap | |
| 415 | state->m_bg_tilemap = &machine.tilemap().create( | |
| 416 | 416 | |
| 417 | 417 | register_savestate(machine); |
| 418 | 418 | |
| r17673 | r17674 | |
| 423 | 423 | state->m_bg_tilemap->set_scroll_cols(cols); |
| 424 | 424 | } |
| 425 | 425 | |
| 426 | static void m62_textlayer( running_machine &machine, tile_get_info_ | |
| 426 | static void m62_textlayer( running_machine &machine, tilemap_get_info_delegate tile_get_info, int rows, int cols, int x1, int y1, int x2, int y2 ) | |
| 427 | 427 | { |
| 428 | 428 | m62_state *state = machine.driver_data<m62_state>(); |
| 429 | state->m_fg_tilemap = tilemap | |
| 429 | state->m_fg_tilemap = &machine.tilemap().create( | |
| 430 | 430 | |
| 431 | 431 | if (rows != 0) |
| 432 | 432 | state->m_fg_tilemap->set_scroll_rows(rows); |
| r17673 | r17674 | |
| 441 | 441 | m_bg_tilemap->mark_tile_dirty(offset & 0x7ff); |
| 442 | 442 | } |
| 443 | 443 | |
| 444 | ||
| 444 | ||
| 445 | 445 | { |
| 446 | m62_state *state = machine.driver_data<m62_state>(); | |
| 447 | 446 | int code; |
| 448 | 447 | int color; |
| 449 | 448 | int flags; |
| 450 | code = state->m_m62_tileram[tile_index]; | |
| 451 | color = state->m_m62_tileram[tile_index + 0x800]; | |
| 449 | code = m_m62_tileram[tile_index]; | |
| 450 | color = m_m62_tileram[tile_index + 0x800]; | |
| 452 | 451 | flags = 0; |
| 453 | 452 | if ((color & 0x20)) |
| 454 | 453 | { |
| 455 | 454 | flags |= TILE_FLIPX; |
| 456 | 455 | } |
| 457 | SET_TILE_INFO(0, code | ((color & 0xc0)<< 2), color & 0x1f, flags); | |
| 456 | SET_TILE_INFO_MEMBER(0, code | ((color & 0xc0)<< 2), color & 0x1f, flags); | |
| 458 | 457 | |
| 459 | 458 | /* is the following right? */ |
| 460 | 459 | if ((tile_index / 64) < 6 || ((color & 0x1f) >> 1) > 0x0c) |
| r17673 | r17674 | |
| 465 | 464 | |
| 466 | 465 | VIDEO_START( kungfum ) |
| 467 | 466 | { |
| 468 | m62_start(machine, get_kungfum_bg_tile_info, 32, 0, 8, 8, 64, 32); | |
| 467 | m62_state *state = machine.driver_data<m62_state>(); | |
| 468 | m62_start(machine, tilemap_get_info_delegate(FUNC(m62_state::get_kungfum_bg_tile_info),state), 32, 0, 8, 8, 64, 32); | |
| 469 | 469 | } |
| 470 | 470 | |
| 471 | 471 | SCREEN_UPDATE_IND16( kungfum ) |
| r17673 | r17674 | |
| 487 | 487 | } |
| 488 | 488 | |
| 489 | 489 | |
| 490 | ||
| 490 | ||
| 491 | 491 | { |
| 492 | m62_state *state = machine.driver_data<m62_state>(); | |
| 493 | 492 | |
| 494 | 493 | int code; |
| 495 | 494 | int color; |
| 496 | 495 | int flags; |
| 497 | code = state->m_m62_tileram[tile_index << 1]; | |
| 498 | color = state->m_m62_tileram[(tile_index << 1) | 1]; | |
| 496 | code = m_m62_tileram[tile_index << 1]; | |
| 497 | color = m_m62_tileram[(tile_index << 1) | 1]; | |
| 499 | 498 | flags = 0; |
| 500 | 499 | if ((color & 0x20)) |
| 501 | 500 | { |
| 502 | 501 | flags |= TILE_FLIPX; |
| 503 | 502 | } |
| 504 | SET_TILE_INFO(0, code | ((color & 0xc0) << 2), color & 0x1f, flags); | |
| 503 | SET_TILE_INFO_MEMBER(0, code | ((color & 0xc0) << 2), color & 0x1f, flags); | |
| 505 | 504 | if (((color & 0x1f) >> 1) >= 0x0c) |
| 506 | 505 | tileinfo.group = 1; |
| 507 | 506 | else |
| r17673 | r17674 | |
| 512 | 511 | { |
| 513 | 512 | m62_state *state = machine.driver_data<m62_state>(); |
| 514 | 513 | |
| 515 | m62_start(machine, get_ldrun_bg_tile_info, 1, 1, 8, 8, 64, 32); | |
| 514 | m62_start(machine, tilemap_get_info_delegate(FUNC(m62_state::get_ldrun_bg_tile_info),state), 1, 1, 8, 8, 64, 32); | |
| 516 | 515 | state->m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); /* split type 0 is totally transparent in front half */ |
| 517 | 516 | state->m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); /* split type 1 has pen 0 transparent in front half */ |
| 518 | 517 | } |
| r17673 | r17674 | |
| 530 | 529 | return 0; |
| 531 | 530 | } |
| 532 | 531 | |
| 533 | ||
| 532 | ||
| 534 | 533 | { |
| 535 | m62_state *state = machine.driver_data<m62_state>(); | |
| 536 | 534 | int code; |
| 537 | 535 | int color; |
| 538 | 536 | int flags; |
| 539 | code = state->m_m62_tileram[tile_index << 1]; | |
| 540 | color = state->m_m62_tileram[(tile_index << 1) | 1]; | |
| 537 | code = m_m62_tileram[tile_index << 1]; | |
| 538 | color = m_m62_tileram[(tile_index << 1) | 1]; | |
| 541 | 539 | flags = 0; |
| 542 | 540 | if ((color & 0x20)) |
| 543 | 541 | { |
| 544 | 542 | flags |= TILE_FLIPX; |
| 545 | 543 | } |
| 546 | SET_TILE_INFO(0, code | ((color & 0xc0) << 2), color & 0x1f, flags); | |
| 544 | SET_TILE_INFO_MEMBER(0, code | ((color & 0xc0) << 2), color & 0x1f, flags); | |
| 547 | 545 | if (((color & 0x1f) >> 1) >= 0x04) |
| 548 | 546 | tileinfo.group = 1; |
| 549 | 547 | else |
| r17673 | r17674 | |
| 553 | 551 | VIDEO_START( ldrun2 ) |
| 554 | 552 | { |
| 555 | 553 | m62_state *state = machine.driver_data<m62_state>(); |
| 556 | m62_start(machine, get_ldrun2_bg_tile_info, 1, 1, 8, 8, 64, 32); | |
| 554 | m62_start(machine, tilemap_get_info_delegate(FUNC(m62_state::get_ldrun2_bg_tile_info),state), 1, 1, 8, 8, 64, 32); | |
| 557 | 555 | state->m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); /* split type 0 is totally transparent in front half */ |
| 558 | 556 | state->m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); /* split type 1 has pen 0 transparent in front half */ |
| 559 | 557 | } |
| r17673 | r17674 | |
| 586 | 584 | } |
| 587 | 585 | |
| 588 | 586 | |
| 589 | ||
| 587 | ||
| 590 | 588 | { |
| 591 | m62_state *state = machine.driver_data<m62_state>(); | |
| 592 | 589 | int code; |
| 593 | 590 | int color; |
| 594 | 591 | int flags; |
| 595 | code = state->m_m62_tileram[tile_index << 1]; | |
| 596 | color = state->m_m62_tileram[(tile_index << 1) | 1]; | |
| 592 | code = m_m62_tileram[tile_index << 1]; | |
| 593 | color = m_m62_tileram[(tile_index << 1) | 1]; | |
| 597 | 594 | flags = 0; |
| 598 | 595 | if ((color & 0x20)) |
| 599 | 596 | { |
| 600 | 597 | flags |= TILE_FLIPX; |
| 601 | 598 | } |
| 602 | SET_TILE_INFO(0, code | ((color & 0x40) << 3) | ((color & 0x10) << 4), color & 0x0f, flags); | |
| 599 | SET_TILE_INFO_MEMBER(0, code | ((color & 0x40) << 3) | ((color & 0x10) << 4), color & 0x0f, flags); | |
| 603 | 600 | if (((color & 0x1f) >> 1) >= 0x04) |
| 604 | 601 | tileinfo.group = 1; |
| 605 | 602 | else |
| 606 | 603 | tileinfo.group = 0; |
| 607 | 604 | } |
| 608 | 605 | |
| 609 | ||
| 606 | ||
| 610 | 607 | { |
| 611 | m62_state *state = machine.driver_data<m62_state>(); | |
| 612 | 608 | int code; |
| 613 | 609 | int color; |
| 614 | code = state->m_m62_textram[tile_index << 1]; | |
| 615 | color = state->m_m62_textram[(tile_index << 1) | 1]; | |
| 616 | SET_TILE_INFO(2, code | ((color & 0x40) << 3) | ((color & 0x10) << 4), color & 0x0f, 0); | |
| 610 | code = m_m62_textram[tile_index << 1]; | |
| 611 | color = m_m62_textram[(tile_index << 1) | 1]; | |
| 612 | SET_TILE_INFO_MEMBER(2, code | ((color & 0x40) << 3) | ((color & 0x10) << 4), color & 0x0f, 0); | |
| 617 | 613 | } |
| 618 | 614 | |
| 619 | 615 | VIDEO_START( battroad ) |
| 620 | 616 | { |
| 621 | 617 | m62_state *state = machine.driver_data<m62_state>(); |
| 622 | m62_start(machine, get_battroad_bg_tile_info, 1, 1, 8, 8, 64, 32); | |
| 623 | m62_textlayer(machine, get_battroad_fg_tile_info, 1, 1, 8, 8, 32, 32); | |
| 618 | m62_start(machine, tilemap_get_info_delegate(FUNC(m62_state::get_battroad_bg_tile_info),state), 1, 1, 8, 8, 64, 32); | |
| 619 | m62_textlayer(machine, tilemap_get_info_delegate(FUNC(m62_state::get_battroad_fg_tile_info),state), 1, 1, 8, 8, 32, 32); | |
| 624 | 620 | state->m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); /* split type 0 is totally transparent in front half */ |
| 625 | 621 | state->m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); /* split type 1 has pen 0 transparent in front half */ |
| 626 | 622 | } |
| r17673 | r17674 | |
| 645 | 641 | |
| 646 | 642 | /* almost identical but scrolling background, more characters, */ |
| 647 | 643 | /* no char x flip, and more sprites */ |
| 648 | ||
| 644 | ||
| 649 | 645 | { |
| 650 | m62_state *state = machine.driver_data<m62_state>(); | |
| 651 | 646 | int code; |
| 652 | 647 | int color; |
| 653 | code = state->m_m62_tileram[tile_index << 1]; | |
| 654 | color = state->m_m62_tileram[(tile_index << 1) | 1]; | |
| 655 | SET_TILE_INFO(0, code | ((color & 0xc0) << 2) | ((color & 0x20) << 5), color & 0x1f, 0); | |
| 648 | code = m_m62_tileram[tile_index << 1]; | |
| 649 | color = m_m62_tileram[(tile_index << 1) | 1]; | |
| 650 | SET_TILE_INFO_MEMBER(0, code | ((color & 0xc0) << 2) | ((color & 0x20) << 5), color & 0x1f, 0); | |
| 656 | 651 | } |
| 657 | 652 | |
| 658 | 653 | VIDEO_START( ldrun4 ) |
| 659 | 654 | { |
| 660 | m62_start(machine, get_ldrun4_bg_tile_info, 1, 0, 8, 8, 64, 32); | |
| 655 | m62_state *state = machine.driver_data<m62_state>(); | |
| 656 | m62_start(machine, tilemap_get_info_delegate(FUNC(m62_state::get_ldrun4_bg_tile_info),state), 1, 0, 8, 8, 64, 32); | |
| 661 | 657 | } |
| 662 | 658 | |
| 663 | 659 | SCREEN_UPDATE_IND16( ldrun4 ) |
| r17673 | r17674 | |
| 671 | 667 | } |
| 672 | 668 | |
| 673 | 669 | |
| 674 | ||
| 670 | ||
| 675 | 671 | { |
| 676 | m62_state *state = machine.driver_data<m62_state>(); | |
| 677 | 672 | int code; |
| 678 | 673 | int color; |
| 679 | 674 | int flags; |
| 680 | code = state->m_m62_tileram[tile_index << 1]; | |
| 681 | color = state->m_m62_tileram[(tile_index << 1) | 1]; | |
| 675 | code = m_m62_tileram[tile_index << 1]; | |
| 676 | color = m_m62_tileram[(tile_index << 1) | 1]; | |
| 682 | 677 | flags = 0; |
| 683 | 678 | if ((color & 0x20)) |
| 684 | 679 | { |
| 685 | 680 | flags |= TILE_FLIPX; |
| 686 | 681 | } |
| 687 | SET_TILE_INFO(0, code | ((color & 0xc0) << 2), color & 0x1f, flags); | |
| 682 | SET_TILE_INFO_MEMBER(0, code | ((color & 0xc0) << 2), color & 0x1f, flags); | |
| 688 | 683 | } |
| 689 | 684 | |
| 690 | ||
| 685 | ||
| 691 | 686 | { |
| 692 | m62_state *state = machine.driver_data<m62_state>(); | |
| 693 | 687 | int code; |
| 694 | 688 | int color; |
| 695 | code = state->m_m62_textram[tile_index << 1]; | |
| 696 | color = state->m_m62_textram[(tile_index << 1) | 1]; | |
| 697 | SET_TILE_INFO(2, code | ((color & 0xc0) << 2), color & 0x1f, 0); | |
| 689 | code = m_m62_textram[tile_index << 1]; | |
| 690 | color = m_m62_textram[(tile_index << 1) | 1]; | |
| 691 | SET_TILE_INFO_MEMBER(2, code | ((color & 0xc0) << 2), color & 0x1f, 0); | |
| 698 | 692 | } |
| 699 | 693 | |
| 700 | 694 | VIDEO_START( lotlot ) |
| 701 | 695 | { |
| 702 | m62_start(machine, get_lotlot_bg_tile_info, 1, 1, 12, 10, 32, 64); | |
| 703 | m62_textlayer(machine, get_lotlot_fg_tile_info, 1, 1, 12, 10, 32, 64); | |
| 696 | m62_state *state = machine.driver_data<m62_state>(); | |
| 697 | m62_start(machine, tilemap_get_info_delegate(FUNC(m62_state::get_lotlot_bg_tile_info),state), 1, 1, 12, 10, 32, 64); | |
| 698 | m62_textlayer(machine, tilemap_get_info_delegate(FUNC(m62_state::get_lotlot_fg_tile_info),state), 1, 1, 12, 10, 32, 64); | |
| 704 | 699 | } |
| 705 | 700 | |
| 706 | 701 | SCREEN_UPDATE_IND16( lotlot ) |
| r17673 | r17674 | |
| 738 | 733 | } |
| 739 | 734 | } |
| 740 | 735 | |
| 741 | ||
| 736 | ||
| 742 | 737 | { |
| 743 | m62_state *state = machine.driver_data<m62_state>(); | |
| 744 | 738 | int code; |
| 745 | 739 | int color; |
| 746 | code = state->m_m62_tileram[tile_index << 1]; | |
| 747 | color = state->m_m62_tileram[(tile_index << 1) | 1]; | |
| 748 | SET_TILE_INFO(0, code | ((color & 0xe0) << 3) | (state->m_kidniki_background_bank << 11), color & 0x1f, 0); | |
| 740 | code = m_m62_tileram[tile_index << 1]; | |
| 741 | color = m_m62_tileram[(tile_index << 1) | 1]; | |
| 742 | SET_TILE_INFO_MEMBER(0, code | ((color & 0xe0) << 3) | (m_kidniki_background_bank << 11), color & 0x1f, 0); | |
| 749 | 743 | tileinfo.group = ((color & 0xe0) == 0xe0) ? 1 : 0; |
| 750 | 744 | } |
| 751 | 745 | |
| 752 | ||
| 746 | ||
| 753 | 747 | { |
| 754 | m62_state *state = machine.driver_data<m62_state>(); | |
| 755 | 748 | int code; |
| 756 | 749 | int color; |
| 757 | code = state->m_m62_textram[tile_index << 1]; | |
| 758 | color = state->m_m62_textram[(tile_index << 1) | 1]; | |
| 759 | SET_TILE_INFO(2, code | ( ( color & 0xc0 ) << 2 ), color & 0x1f, 0); | |
| 750 | code = m_m62_textram[tile_index << 1]; | |
| 751 | color = m_m62_textram[(tile_index << 1) | 1]; | |
| 752 | SET_TILE_INFO_MEMBER(2, code | ( ( color & 0xc0 ) << 2 ), color & 0x1f, 0); | |
| 760 | 753 | } |
| 761 | 754 | |
| 762 | 755 | VIDEO_START( kidniki ) |
| 763 | 756 | { |
| 764 | 757 | m62_state *state = machine.driver_data<m62_state>(); |
| 765 | 758 | |
| 766 | state->m_bg_tilemap = tilemap | |
| 759 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m62_state::get_kidniki_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 767 | 760 | state->m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); /* split type 0 is totally transparent in front half */ |
| 768 | 761 | state->m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); /* split type 1 has pen 0 transparent in front half */ |
| 769 | 762 | |
| 770 | 763 | register_savestate(machine); |
| 771 | 764 | |
| 772 | m62_textlayer(machine, get_kidniki_fg_tile_info, 1, 1, 12, 8, 32, 64); | |
| 765 | m62_textlayer(machine, tilemap_get_info_delegate(FUNC(m62_state::get_kidniki_fg_tile_info),state), 1, 1, 12, 8, 32, 64); | |
| 773 | 766 | } |
| 774 | 767 | |
| 775 | 768 | SCREEN_UPDATE_IND16( kidniki ) |
| r17673 | r17674 | |
| 798 | 791 | } |
| 799 | 792 | } |
| 800 | 793 | |
| 801 | ||
| 794 | ||
| 802 | 795 | { |
| 803 | m62_state *state = machine.driver_data<m62_state>(); | |
| 804 | 796 | int code; |
| 805 | 797 | int color; |
| 806 | code = state->m_m62_tileram[tile_index << 1]; | |
| 807 | color = state->m_m62_tileram[(tile_index << 1) | 1]; | |
| 808 | SET_TILE_INFO(0, code | ((color & 0x10) << 4) | ((color & 0x20) << 6) | ((color & 0xc0) << 3), (color & 0x0f) | (state->m_spelunkr_palbank << 4), 0); | |
| 798 | code = m_m62_tileram[tile_index << 1]; | |
| 799 | color = m_m62_tileram[(tile_index << 1) | 1]; | |
| 800 | SET_TILE_INFO_MEMBER(0, code | ((color & 0x10) << 4) | ((color & 0x20) << 6) | ((color & 0xc0) << 3), (color & 0x0f) | (m_spelunkr_palbank << 4), 0); | |
| 809 | 801 | } |
| 810 | 802 | |
| 811 | ||
| 803 | ||
| 812 | 804 | { |
| 813 | m62_state *state = machine.driver_data<m62_state>(); | |
| 814 | 805 | int code; |
| 815 | 806 | int color; |
| 816 | code = state->m_m62_textram[tile_index << 1]; | |
| 817 | color = state->m_m62_textram[(tile_index << 1) | 1]; | |
| 807 | code = m_m62_textram[tile_index << 1]; | |
| 808 | color = m_m62_textram[(tile_index << 1) | 1]; | |
| 818 | 809 | if (color & 0xe0) popmessage("fg tilemap %x %x", tile_index, color & 0xe0); |
| 819 | SET_TILE_INFO(2, code | ((color & 0x10) << 4), (color & 0x0f) | ( | |
| 810 | SET_TILE_INFO_MEMBER(2, code | ((color & 0x10) << 4), (color & 0x0f) | ( | |
| 820 | 811 | } |
| 821 | 812 | |
| 822 | 813 | VIDEO_START( spelunkr ) |
| 823 | 814 | { |
| 824 | m62_start(machine, get_spelunkr_bg_tile_info, 1, 1, 8, 8, 64, 64); | |
| 825 | m62_textlayer(machine, get_spelunkr_fg_tile_info, 1, 1, 12, 8, 32, 32); | |
| 815 | m62_state *state = machine.driver_data<m62_state>(); | |
| 816 | m62_start(machine, tilemap_get_info_delegate(FUNC(m62_state::get_spelunkr_bg_tile_info),state), 1, 1, 8, 8, 64, 64); | |
| 817 | m62_textlayer(machine, tilemap_get_info_delegate(FUNC(m62_state::get_spelunkr_fg_tile_info),state), 1, 1, 12, 8, 32, 32); | |
| 826 | 818 | } |
| 827 | 819 | |
| 828 | 820 | SCREEN_UPDATE_IND16( spelunkr ) |
| r17673 | r17674 | |
| 853 | 845 | } |
| 854 | 846 | } |
| 855 | 847 | |
| 856 | ||
| 848 | ||
| 857 | 849 | { |
| 858 | m62_state *state = machine.driver_data<m62_state>(); | |
| 859 | 850 | int code; |
| 860 | 851 | int color; |
| 861 | code = state->m_m62_tileram[tile_index << 1]; | |
| 862 | color = state->m_m62_tileram[(tile_index << 1) | 1]; | |
| 863 | SET_TILE_INFO( 0, code | ((color & 0xf0) << 4), (color & 0x0f) | (state->m_spelunkr_palbank << 4), 0 ); | |
| 852 | code = m_m62_tileram[tile_index << 1]; | |
| 853 | color = m_m62_tileram[(tile_index << 1) | 1]; | |
| 854 | SET_TILE_INFO_MEMBER( 0, code | ((color & 0xf0) << 4), (color & 0x0f) | (m_spelunkr_palbank << 4), 0 ); | |
| 864 | 855 | } |
| 865 | 856 | |
| 866 | 857 | VIDEO_START( spelunk2 ) |
| 867 | 858 | { |
| 868 | m62_start(machine, get_spelunk2_bg_tile_info, 1, 1, 8, 8, 64, 64); | |
| 869 | m62_textlayer(machine, get_spelunkr_fg_tile_info, 1, 1, 12, 8, 32, 32); | |
| 859 | m62_state *state = machine.driver_data<m62_state>(); | |
| 860 | m62_start(machine, tilemap_get_info_delegate(FUNC(m62_state::get_spelunk2_bg_tile_info),state), 1, 1, 8, 8, 64, 64); | |
| 861 | m62_textlayer(machine, tilemap_get_info_delegate(FUNC(m62_state::get_spelunkr_fg_tile_info),state), 1, 1, 12, 8, 32, 32); | |
| 870 | 862 | } |
| 871 | 863 | |
| 872 | 864 | SCREEN_UPDATE_IND16( spelunk2 ) |
| r17673 | r17674 | |
| 885 | 877 | } |
| 886 | 878 | |
| 887 | 879 | |
| 888 | ||
| 880 | ||
| 889 | 881 | { |
| 890 | m62_state *state = machine.driver_data<m62_state>(); | |
| 891 | 882 | int code; |
| 892 | 883 | int color; |
| 893 | code = state->m_m62_tileram[tile_index << 1]; | |
| 894 | color = state->m_m62_tileram[(tile_index << 1) | 1]; | |
| 895 | SET_TILE_INFO( 0, code | ((color & 0x60) << 3), color & 0x1f, 0); | |
| 884 | code = m_m62_tileram[tile_index << 1]; | |
| 885 | color = m_m62_tileram[(tile_index << 1) | 1]; | |
| 886 | SET_TILE_INFO_MEMBER( 0, code | ((color & 0x60) << 3), color & 0x1f, 0); | |
| 896 | 887 | if (((color & 0x1f) >> 1) >= 0x08) |
| 897 | 888 | tileinfo.group = 1; |
| 898 | 889 | else |
| 899 | 890 | tileinfo.group = 0; |
| 900 | 891 | } |
| 901 | 892 | |
| 902 | ||
| 893 | ||
| 903 | 894 | { |
| 904 | m62_state *state = machine.driver_data<m62_state>(); | |
| 905 | 895 | int code; |
| 906 | 896 | int color; |
| 907 | code = state->m_m62_textram[tile_index << 1]; | |
| 908 | color = state->m_m62_textram[(tile_index << 1) | 1]; | |
| 909 | SET_TILE_INFO(2, code | ((color & 0xc0) << 2), (color & 0x0f), 0); | |
| 897 | code = m_m62_textram[tile_index << 1]; | |
| 898 | color = m_m62_textram[(tile_index << 1) | 1]; | |
| 899 | SET_TILE_INFO_MEMBER(2, code | ((color & 0xc0) << 2), (color & 0x0f), 0); | |
| 910 | 900 | } |
| 911 | 901 | |
| 912 | 902 | VIDEO_START( youjyudn ) |
| 913 | 903 | { |
| 914 | 904 | m62_state *state = machine.driver_data<m62_state>(); |
| 915 | m62_start(machine, get_youjyudn_bg_tile_info, 1, 0, 8, 16, 64, 16); | |
| 916 | m62_textlayer(machine, get_youjyudn_fg_tile_info, 1, 1, 12, 8, 32, 32); | |
| 905 | m62_start(machine, tilemap_get_info_delegate(FUNC(m62_state::get_youjyudn_bg_tile_info),state), 1, 0, 8, 16, 64, 16); | |
| 906 | m62_textlayer(machine, tilemap_get_info_delegate(FUNC(m62_state::get_youjyudn_fg_tile_info),state), 1, 1, 12, 8, 32, 32); | |
| 917 | 907 | state->m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); /* split type 0 is totally transparent in front half */ |
| 918 | 908 | state->m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); /* split type 1 has pen 0 transparent in front half */ |
| 919 | 909 | } |
| r17673 | r17674 | |
| 939 | 929 | m_scrollram[offset] = data; |
| 940 | 930 | } |
| 941 | 931 | |
| 942 | ||
| 932 | ||
| 943 | 933 | { |
| 944 | m62_state *state = machine.driver_data<m62_state>(); | |
| 945 | 934 | int code; |
| 946 | 935 | int color; |
| 947 | code = state->m_m62_tileram[tile_index << 1]; | |
| 948 | color = state->m_m62_tileram[(tile_index << 1) | 1]; | |
| 949 | SET_TILE_INFO(0, code | ((color & 0xc0) << 2) | ((color & 0x20) << 5), color & 0x1f, 0); | |
| 936 | code = m_m62_tileram[tile_index << 1]; | |
| 937 | color = m_m62_tileram[(tile_index << 1) | 1]; | |
| 938 | SET_TILE_INFO_MEMBER(0, code | ((color & 0xc0) << 2) | ((color & 0x20) << 5), color & 0x1f, 0); | |
| 950 | 939 | |
| 951 | 940 | if (((color & 0x1f) >> 1) >= 0x08) |
| 952 | 941 | tileinfo.group = 1; |
| r17673 | r17674 | |
| 957 | 946 | VIDEO_START( horizon ) |
| 958 | 947 | { |
| 959 | 948 | m62_state *state = machine.driver_data<m62_state>(); |
| 960 | m62_start(machine, get_horizon_bg_tile_info, 32, 0, 8, 8, 64, 32); | |
| 949 | m62_start(machine, tilemap_get_info_delegate(FUNC(m62_state::get_horizon_bg_tile_info),state), 32, 0, 8, 8, 64, 32); | |
| 961 | 950 | state->m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); /* split type 0 is totally transparent in front half */ |
| 962 | 951 | state->m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); /* split type 1 has pen 0 transparent in front half */ |
| 963 | 952 | } |
| r17673 | r17674 | |
|---|---|---|
| 32 | 32 | COMBINE_DATA(&m_scrollram16[offset]); |
| 33 | 33 | } |
| 34 | 34 | |
| 35 | ||
| 35 | ||
| 36 | 36 | { |
| 37 | toki_state *state = machine.driver_data<toki_state>(); | |
| 38 | UINT16 *videoram = state->m_videoram; | |
| 37 | UINT16 *videoram = m_videoram; | |
| 39 | 38 | int tile = videoram[tile_index]; |
| 40 | 39 | int color = (tile >> 12) & 0xf; |
| 41 | 40 | |
| 42 | 41 | tile &= 0xfff; |
| 43 | 42 | |
| 44 | SET_TILE_INFO( | |
| 43 | SET_TILE_INFO_MEMBER( | |
| 45 | 44 | 0, |
| 46 | 45 | tile, |
| 47 | 46 | color, |
| 48 | 47 | 0); |
| 49 | 48 | } |
| 50 | 49 | |
| 51 | ||
| 50 | ||
| 52 | 51 | { |
| 53 | toki_state *state = machine.driver_data<toki_state>(); | |
| 54 | int tile = state->m_background1_videoram16[tile_index]; | |
| 52 | int tile = m_background1_videoram16[tile_index]; | |
| 55 | 53 | int color = (tile >> 12) & 0xf; |
| 56 | 54 | |
| 57 | 55 | tile &= 0xfff; |
| 58 | 56 | |
| 59 | SET_TILE_INFO( | |
| 57 | SET_TILE_INFO_MEMBER( | |
| 60 | 58 | 2, |
| 61 | 59 | tile, |
| 62 | 60 | color, |
| 63 | 61 | 0); |
| 64 | 62 | } |
| 65 | 63 | |
| 66 | ||
| 64 | ||
| 67 | 65 | { |
| 68 | toki_state *state = machine.driver_data<toki_state>(); | |
| 69 | int tile = state->m_background2_videoram16[tile_index]; | |
| 66 | int tile = m_background2_videoram16[tile_index]; | |
| 70 | 67 | int color = (tile >> 12) & 0xf; |
| 71 | 68 | |
| 72 | 69 | tile &= 0xfff; |
| 73 | 70 | |
| 74 | SET_TILE_INFO( | |
| 71 | SET_TILE_INFO_MEMBER( | |
| 75 | 72 | 3, |
| 76 | 73 | tile, |
| 77 | 74 | color, |
| r17673 | r17674 | |
| 88 | 85 | VIDEO_START( toki ) |
| 89 | 86 | { |
| 90 | 87 | toki_state *state = machine.driver_data<toki_state>(); |
| 91 | state->m_text_layer = tilemap_create(machine, get_text_tile_info,TILEMAP_SCAN_ROWS, 8,8,32,32); | |
| 92 | state->m_background_layer = tilemap_create(machine, get_back_tile_info,TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 93 | state->m_foreground_layer = tilemap_create(machine, get_fore_tile_info,TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 88 | state->m_text_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(toki_state::get_text_tile_info),state),TILEMAP_SCAN_ROWS, 8,8,32,32); | |
| 89 | state->m_background_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(toki_state::get_back_tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 90 | state->m_foreground_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(toki_state::get_fore_tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 94 | 91 | |
| 95 | 92 | state->m_text_layer->set_transparent_pen(15); |
| 96 | 93 | state->m_background_layer->set_transparent_pen(15); |
| r17673 | r17674 | |
|---|---|---|
| 5 | 5 | |
| 6 | 6 | /* background tilemap stuff */ |
| 7 | 7 | |
| 8 | ||
| 8 | ||
| 9 | 9 | { |
| 10 | pass_state *state = machine.driver_data<pass_state>(); | |
| 11 | 10 | int tileno, fx; |
| 12 | 11 | |
| 13 | tileno = state->m_bg_videoram[tile_index] & 0x1fff; | |
| 14 | fx = (state->m_bg_videoram[tile_index] & 0xc000) >> 14; | |
| 15 | SET_TILE_INFO(1, tileno, 0, TILE_FLIPYX(fx)); | |
| 12 | tileno = m_bg_videoram[tile_index] & 0x1fff; | |
| 13 | fx = (m_bg_videoram[tile_index] & 0xc000) >> 14; | |
| 14 | SET_TILE_INFO_MEMBER(1, tileno, 0, TILE_FLIPYX(fx)); | |
| 16 | 15 | |
| 17 | 16 | } |
| 18 | 17 | |
| r17673 | r17674 | |
| 25 | 24 | |
| 26 | 25 | /* foreground 'sprites' tilemap stuff */ |
| 27 | 26 | |
| 28 | ||
| 27 | ||
| 29 | 28 | { |
| 30 | pass_state *state = machine.driver_data<pass_state>(); | |
| 31 | 29 | int tileno, flip; |
| 32 | 30 | |
| 33 | tileno = state->m_fg_videoram[tile_index] & 0x3fff; | |
| 34 | flip = (state->m_fg_videoram[tile_index] & 0xc000) >>14; | |
| 31 | tileno = m_fg_videoram[tile_index] & 0x3fff; | |
| 32 | flip = (m_fg_videoram[tile_index] & 0xc000) >>14; | |
| 35 | 33 | |
| 36 | SET_TILE_INFO(0, tileno, 0, TILE_FLIPYX(flip)); | |
| 34 | SET_TILE_INFO_MEMBER(0, tileno, 0, TILE_FLIPYX(flip)); | |
| 37 | 35 | |
| 38 | 36 | } |
| 39 | 37 | |
| r17673 | r17674 | |
| 49 | 47 | { |
| 50 | 48 | pass_state *state = machine.driver_data<pass_state>(); |
| 51 | 49 | |
| 52 | state->m_bg_tilemap = tilemap_create(machine, get_pass_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 53 | state->m_fg_tilemap = tilemap_create(machine, get_pass_fg_tile_info, TILEMAP_SCAN_ROWS, 4, 4, 128, 64); | |
| 50 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pass_state::get_pass_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 51 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pass_state::get_pass_fg_tile_info),state), TILEMAP_SCAN_ROWS, 4, 4, 128, 64); | |
| 54 | 52 | |
| 55 | 53 | state->m_fg_tilemap->set_transparent_pen(255); |
| 56 | 54 | } |
| r17673 | r17674 | |
|---|---|---|
| 62 | 62 | offset 1 xxxx xxxx x scroll (8 LSB bits) |
| 63 | 63 | */ |
| 64 | 64 | |
| 65 | ||
| 65 | ||
| 66 | 66 | { |
| 67 | fortyl_state *state = machine.driver_data<fortyl_state>(); | |
| 68 | int tile_number = state->m_videoram[tile_index]; | |
| 69 | int tile_attrib = state->m_colorram[(tile_index / 64) * 2]; | |
| 67 | int tile_number = m_videoram[tile_index]; | |
| 68 | int tile_attrib = m_colorram[(tile_index / 64) * 2]; | |
| 70 | 69 | int tile_h_bank = (tile_attrib & 0x40) << 3; /* 0x40->0x200 */ |
| 71 | 70 | int tile_l_bank = (tile_attrib & 0x18) << 3; /* 0x10->0x80, 0x08->0x40 */ |
| 72 | 71 | |
| r17673 | r17674 | |
| 75 | 74 | code = (code & 0x3f) | tile_l_bank | 0x100; |
| 76 | 75 | code |= tile_h_bank; |
| 77 | 76 | |
| 78 | SET_TILE_INFO( 0, | |
| 77 | SET_TILE_INFO_MEMBER( 0, | |
| 79 | 78 | code, |
| 80 | 79 | tile_attrib & 0x07, |
| 81 | 80 | 0); |
| r17673 | r17674 | |
| 110 | 109 | state->m_tmp_bitmap1 = auto_bitmap_ind16_alloc(machine, 256, 256); |
| 111 | 110 | state->m_tmp_bitmap2 = auto_bitmap_ind16_alloc(machine, 256, 256); |
| 112 | 111 | |
| 113 | state->m_bg_tilemap = tilemap | |
| 112 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fortyl_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 114 | 113 | |
| 115 | 114 | state->m_xoffset = 128; // this never changes |
| 116 | 115 |
| r17673 | r17674 | |
|---|---|---|
| 38 | 38 | m_scrollx = (m_scrollx & 0xff) | (data << 8); |
| 39 | 39 | } |
| 40 | 40 | |
| 41 | ||
| 41 | ||
| 42 | 42 | { |
| 43 | renegade_state *state = machine.driver_data<renegade_state>(); | |
| 44 | UINT8 *videoram = state->m_videoram; | |
| 43 | UINT8 *videoram = m_videoram; | |
| 45 | 44 | const UINT8 *source = &videoram[tile_index]; |
| 46 | 45 | UINT8 attributes = source[0x400]; /* CCC??BBB */ |
| 47 | SET_TILE_INFO( | |
| 46 | SET_TILE_INFO_MEMBER( | |
| 48 | 47 | 1 + (attributes & 0x7), |
| 49 | 48 | source[0], |
| 50 | 49 | attributes >> 5, |
| 51 | 50 | 0); |
| 52 | 51 | } |
| 53 | 52 | |
| 54 | ||
| 53 | ||
| 55 | 54 | { |
| 56 | renegade_state *state = machine.driver_data<renegade_state>(); | |
| 57 | const UINT8 *source = &state->m_videoram2[tile_index]; | |
| 55 | const UINT8 *source = &m_videoram2[tile_index]; | |
| 58 | 56 | UINT8 attributes = source[0x400]; |
| 59 | SET_TILE_INFO( | |
| 57 | SET_TILE_INFO_MEMBER( | |
| 60 | 58 | 0, |
| 61 | 59 | (attributes & 3) * 256 + source[0], |
| 62 | 60 | attributes >> 6, |
| r17673 | r17674 | |
| 66 | 64 | VIDEO_START( renegade ) |
| 67 | 65 | { |
| 68 | 66 | renegade_state *state = machine.driver_data<renegade_state>(); |
| 69 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tilemap_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 16); | |
| 70 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tilemap_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 67 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(renegade_state::get_bg_tilemap_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 16); | |
| 68 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(renegade_state::get_fg_tilemap_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 71 | 69 | |
| 72 | 70 | state->m_fg_tilemap->set_transparent_pen(0); |
| 73 | 71 | state->m_bg_tilemap->set_scrolldx(256, 0); |
| r17673 | r17674 | |
|---|---|---|
| 391 | 391 | ***************************************************************************/ |
| 392 | 392 | |
| 393 | 393 | /* convert from 32x32 to 36x28 */ |
| 394 | ||
| 394 | ||
| 395 | 395 | { |
| 396 | 396 | int offs; |
| 397 | 397 | |
| r17673 | r17674 | |
| 406 | 406 | } |
| 407 | 407 | |
| 408 | 408 | |
| 409 | ||
| 409 | ||
| 410 | 410 | { |
| 411 | 411 | /* the hardware has two character sets, one normal and one x-flipped. When |
| 412 | 412 | screen is flipped, character y flip is done by the hardware inverting the |
| 413 | 413 | timing signals, while x flip is done by selecting the 2nd character set. |
| 414 | 414 | We reproduce this here, but since the tilemap system automatically flips |
| 415 | 415 | characters when screen is flipped, we have to flip them back. */ |
| 416 | galaga_state *state = machine.driver_data<galaga_state>(); | |
| 417 | int color = state->m_videoram[tile_index + 0x400] & 0x3f; | |
| 418 | SET_TILE_INFO( | |
| 416 | int color = m_videoram[tile_index + 0x400] & 0x3f; | |
| 417 | SET_TILE_INFO_MEMBER( | |
| 419 | 418 | 0, |
| 420 | ( | |
| 419 | ( | |
| 421 | 420 | color, |
| 422 | | |
| 421 | | |
| 423 | 422 | tileinfo.group = color; |
| 424 | 423 | } |
| 425 | 424 | |
| r17673 | r17674 | |
| 434 | 433 | VIDEO_START( galaga ) |
| 435 | 434 | { |
| 436 | 435 | galaga_state *state = machine.driver_data<galaga_state>(); |
| 437 | state->m_fg_tilemap = tilemap | |
| 436 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galaga_state::get_tile_info),state),tilemap_mapper_delegate(FUNC(galaga_state::tilemap_scan),state),8,8,36,28); | |
| 438 | 437 | colortable_configure_tilemap_groups(machine.colortable, state->m_fg_tilemap, machine.gfx[0], 0x1f); |
| 439 | 438 | |
| 440 | 439 | state->m_galaga_gfxbank = 0; |
| r17673 | r17674 | |
|---|---|---|
| 122 | 122 | |
| 123 | 123 | ***************************************************************************/ |
| 124 | 124 | |
| 125 | ||
| 125 | ||
| 126 | 126 | { |
| 127 | lasso_state *state = machine.driver_data<lasso_state>(); | |
| 128 | int code = state->m_videoram[tile_index]; | |
| 129 | int color = state->m_colorram[tile_index]; | |
| 127 | int code = m_videoram[tile_index]; | |
| 128 | int color = m_colorram[tile_index]; | |
| 130 | 129 | |
| 131 | SET_TILE_INFO(0, | |
| 132 | code + ((UINT16)state->m_gfxbank << 8), | |
| 130 | SET_TILE_INFO_MEMBER(0, | |
| 131 | code + ((UINT16)m_gfxbank << 8), | |
| 133 | 132 | color & 0x0f, |
| 134 | 133 | 0); |
| 135 | 134 | } |
| 136 | 135 | |
| 137 | ||
| 136 | ||
| 138 | 137 | { |
| 139 | UINT8 *ROM = machine.root_device().memregion("user1")->base(); | |
| 138 | UINT8 *ROM = machine().root_device().memregion("user1")->base(); | |
| 140 | 139 | int code = ROM[tile_index]; |
| 141 | 140 | int color = ROM[tile_index + 0x2000]; |
| 142 | 141 | |
| 143 | SET_TILE_INFO(2, | |
| 142 | SET_TILE_INFO_MEMBER(2, | |
| 144 | 143 | code, |
| 145 | 144 | color & 0x0f, |
| 146 | 145 | 0); |
| 147 | 146 | } |
| 148 | 147 | |
| 149 | ||
| 148 | ||
| 150 | 149 | { |
| 151 | lasso_state *state = machine.driver_data<lasso_state>(); | |
| 152 | int code = state->m_videoram[tile_index]; | |
| 153 | int color = state->m_colorram[tile_index]; | |
| 150 | int code = m_videoram[tile_index]; | |
| 151 | int color = m_colorram[tile_index]; | |
| 154 | 152 | |
| 155 | SET_TILE_INFO(0, | |
| 153 | SET_TILE_INFO_MEMBER(0, | |
| 156 | 154 | code + ((color & 0x30) << 4), |
| 157 | 155 | color & 0x0f, |
| 158 | 156 | 0); |
| r17673 | r17674 | |
| 170 | 168 | lasso_state *state = machine.driver_data<lasso_state>(); |
| 171 | 169 | |
| 172 | 170 | /* create tilemap */ |
| 173 | state->m_bg_tilemap = tilemap | |
| 171 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_de | |
| 174 | 172 | |
| 175 | 173 | state->m_bg_tilemap->set_transparent_pen(0); |
| 176 | 174 | } |
| r17673 | r17674 | |
| 180 | 178 | lasso_state *state = machine.driver_data<lasso_state>(); |
| 181 | 179 | |
| 182 | 180 | /* create tilemaps */ |
| 183 | state->m_bg_tilemap = tilemap_create(machine, lasso_get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 184 | state->m_track_tilemap = tilemap_create(machine, wwjgtin_get_track_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 128, 64); | |
| 181 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lasso_state::lasso_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 182 | state->m_track_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lasso_state::wwjgtin_get_track_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 128, 64); | |
| 185 | 183 | |
| 186 | 184 | state->m_bg_tilemap->set_transparent_pen(0); |
| 187 | 185 | } |
| r17673 | r17674 | |
| 191 | 189 | lasso_state *state = machine.driver_data<lasso_state>(); |
| 192 | 190 | |
| 193 | 191 | /* create tilemap */ |
| 194 | state->m_bg_tilemap = tilemap | |
| 192 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lasso_state::pinbo_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 195 | 193 | |
| 196 | 194 | state->m_bg_tilemap->set_transparent_pen(0); |
| 197 | 195 | } |
| r17673 | r17674 | |
|---|---|---|
| 198 | 198 | Callbacks for the tilemap code |
| 199 | 199 | ***************************************************************************/ |
| 200 | 200 | |
| 201 | ||
| 201 | ||
| 202 | 202 | { |
| 203 | psychic5_state *state = machine.driver_data<psychic5_state>(); | |
| 204 | 203 | int offs = tile_index << 1; |
| 205 | int attr = state->m_bg_videoram[offs + 1]; | |
| 206 | int code = state->m_bg_videoram[offs] | ((attr & 0xc0) << 2); | |
| 204 | int attr = m_bg_videoram[offs + 1]; | |
| 205 | int code = m_bg_videoram[offs] | ((attr & 0xc0) << 2); | |
| 207 | 206 | int color = attr & 0x0f; |
| 208 | 207 | int flags = TILE_FLIPYX((attr & 0x30) >> 4); |
| 209 | 208 | |
| 210 | SET_TILE_INFO(1, code, color, flags); | |
| 209 | SET_TILE_INFO_MEMBER(1, code, color, flags); | |
| 211 | 210 | } |
| 212 | 211 | |
| 213 | ||
| 212 | ||
| 214 | 213 | { |
| 215 | psychic5_state *state = machine.driver_data<psychic5_state>(); | |
| 216 | 214 | int offs = tile_index << 1; |
| 217 | int attr = state->m_fg_videoram[offs + 1]; | |
| 218 | int code = state->m_fg_videoram[offs] | ((attr & 0xc0) << 2); | |
| 215 | int attr = m_fg_videoram[offs + 1]; | |
| 216 | int code = m_fg_videoram[offs] | ((attr & 0xc0) << 2); | |
| 219 | 217 | int color = attr & 0x0f; |
| 220 | 218 | int flags = TILE_FLIPYX((attr & 0x30) >> 4); |
| 221 | 219 | |
| 222 | SET_TILE_INFO(2, code, color, flags); | |
| 220 | SET_TILE_INFO_MEMBER(2, code, color, flags); | |
| 223 | 221 | } |
| 224 | 222 | |
| 225 | 223 | |
| r17673 | r17674 | |
| 231 | 229 | { |
| 232 | 230 | psychic5_state *state = machine.driver_data<psychic5_state>(); |
| 233 | 231 | /* info offset w h col row */ |
| 234 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, 16, 16, 64, 32); | |
| 235 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_COLS, 8, 8, 32, 32); | |
| 232 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(psychic5_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 64, 32); | |
| 233 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(psychic5_state::get_fg_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); | |
| 236 | 234 | |
| 237 | 235 | state->m_fg_tilemap->set_transparent_pen(15); |
| 238 | 236 | |
| r17673 | r17674 | |
| 255 | 253 | { |
| 256 | 254 | psychic5_state *state = machine.driver_data<psychic5_state>(); |
| 257 | 255 | /* info offset w h col row */ |
| 258 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, 16, 16, 128, 32); | |
| 259 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_COLS, 8, 8, 32, 32); | |
| 256 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(psychic5_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 128, 32); | |
| 257 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(psychic5_state::get_fg_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); | |
| 260 | 258 | |
| 261 | 259 | state->m_fg_tilemap->set_transparent_pen(15); |
| 262 | 260 |
| r17673 | r17674 | |
|---|---|---|
| 74 | 74 | #define BG_NX (16*32) |
| 75 | 75 | #define BG_NY (16*2) |
| 76 | 76 | |
| 77 | ||
| 77 | ||
| 78 | 78 | { |
| 79 | UINT8 *gfx = machine.root_device().memregion("gfx5")->base(); | |
| 79 | UINT8 *gfx = machine().root_device().memregion("gfx5")->base(); | |
| 80 | 80 | int code = gfx[2 * tile_index + 0] * 256 + gfx[2 * tile_index + 1]; |
| 81 | SET_TILE_INFO( | |
| 81 | SET_TILE_INFO_MEMBER( | |
| 82 | 82 | BG_GFX, |
| 83 | 83 | code, |
| 84 | 84 | code >> 12, |
| r17673 | r17674 | |
| 92 | 92 | #define FG_NX (16*16) |
| 93 | 93 | #define FG_NY (16*2) |
| 94 | 94 | |
| 95 | ||
| 95 | ||
| 96 | 96 | { |
| 97 | ginganin_state *state = machine.driver_data<ginganin_state>(); | |
| 98 | UINT16 code = state->m_fgram[tile_index]; | |
| 99 | SET_TILE_INFO( | |
| 97 | UINT16 code = m_fgram[tile_index]; | |
| 98 | SET_TILE_INFO_MEMBER( | |
| 100 | 99 | FG_GFX, |
| 101 | 100 | code, |
| 102 | 101 | code >> 12, |
| r17673 | r17674 | |
| 116 | 115 | #define TXT_NX (32) |
| 117 | 116 | #define TXT_NY (32) |
| 118 | 117 | |
| 119 | ||
| 118 | ||
| 120 | 119 | { |
| 121 | ginganin_state *state = machine.driver_data<ginganin_state>(); | |
| 122 | UINT16 code = state->m_txtram[tile_index]; | |
| 123 | SET_TILE_INFO( | |
| 120 | UINT16 code = m_txtram[tile_index]; | |
| 121 | SET_TILE_INFO_MEMBER( | |
| 124 | 122 | TXT_GFX, |
| 125 | 123 | code, |
| 126 | 124 | code >> 12, |
| r17673 | r17674 | |
| 137 | 135 | VIDEO_START( ginganin ) |
| 138 | 136 | { |
| 139 | 137 | ginganin_state *state = machine.driver_data<ginganin_state>(); |
| 140 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, 16, 16, BG_NX, BG_NY); | |
| 141 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_COLS, 16, 16, FG_NX, FG_NY); | |
| 142 | state->m_tx_tilemap = tilemap_create(machine, get_txt_tile_info, TILEMAP_SCAN_ROWS, 8, 8, TXT_NX, TXT_NY); | |
| 138 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ginganin_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, BG_NX, BG_NY); | |
| 139 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ginganin_state::get_fg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, FG_NX, FG_NY); | |
| 140 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ginganin_state::get_txt_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, TXT_NX, TXT_NY); | |
| 143 | 141 | |
| 144 | 142 | state->m_fg_tilemap->set_transparent_pen(15); |
| 145 | 143 | state->m_tx_tilemap->set_transparent_pen(15); |
| r17673 | r17674 | |
|---|---|---|
| 11 | 11 | |
| 12 | 12 | ***************************************************************************/ |
| 13 | 13 | |
| 14 | ||
| 14 | ||
| 15 | 15 | { |
| 16 | tail2nos_state *state = machine.driver_data<tail2nos_state>(); | |
| 17 | UINT16 code = state->m_bgvideoram[tile_index]; | |
| 18 | SET_TILE_INFO( | |
| 16 | UINT16 code = m_bgvideoram[tile_index]; | |
| 17 | SET_TILE_INFO_MEMBER( | |
| 19 | 18 | 0, |
| 20 | (code & 0x1fff) + (state->m_charbank << 13), | |
| 21 | ((code & 0xe000) >> 13) + state->m_charpalette * 16, | |
| 19 | (code & 0x1fff) + (m_charbank << 13), | |
| 20 | ((code & 0xe000) >> 13) + m_charpalette * 16, | |
| 22 | 21 | 0); |
| 23 | 22 | } |
| 24 | 23 | |
| r17673 | r17674 | |
| 58 | 57 | { |
| 59 | 58 | tail2nos_state *state = machine.driver_data<tail2nos_state>(); |
| 60 | 59 | |
| 61 | state->m_bg_tilemap = tilemap | |
| 60 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tail2nos_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 62 | 61 | |
| 63 | 62 | state->m_bg_tilemap->set_transparent_pen(15); |
| 64 | 63 |
| r17673 | r17674 | |
|---|---|---|
| 90 | 90 | } |
| 91 | 91 | } |
| 92 | 92 | |
| 93 | ||
| 93 | ||
| 94 | 94 | { |
| 95 | mrjong_state *state = machine.driver_data<mrjong_state>(); | |
| 96 | int code = state->m_videoram[tile_index] | ((state->m_colorram[tile_index] & 0x20) << 3); | |
| 97 | int color = state->m_colorram[tile_index] & 0x1f; | |
| 98 | int flags = ((state->m_colorram[tile_index] & 0x40) ? TILE_FLIPX : 0) | ((state->m_colorram[tile_index] & 0x80) ? TILE_FLIPY : 0); | |
| 95 | int code = m_videoram[tile_index] | ((m_colorram[tile_index] & 0x20) << 3); | |
| 96 | int color = m_colorram[tile_index] & 0x1f; | |
| 97 | int flags = ((m_colorram[tile_index] & 0x40) ? TILE_FLIPX : 0) | ((m_colorram[tile_index] & 0x80) ? TILE_FLIPY : 0); | |
| 99 | 98 | |
| 100 | SET_TILE_INFO(0, code, color, flags); | |
| 99 | SET_TILE_INFO_MEMBER(0, code, color, flags); | |
| 101 | 100 | } |
| 102 | 101 | |
| 103 | 102 | VIDEO_START( mrjong ) |
| 104 | 103 | { |
| 105 | 104 | mrjong_state *state = machine.driver_data<mrjong_state>(); |
| 106 | state->m_bg_tilemap = tilemap | |
| 105 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mrjong_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS_FLIP_XY, 8, 8, 32, 32); | |
| 107 | 106 | } |
| 108 | 107 | |
| 109 | 108 | /* |
| r17673 | r17674 | |
|---|---|---|
| 31 | 31 | } |
| 32 | 32 | |
| 33 | 33 | |
| 34 | ||
| 34 | ||
| 35 | 35 | { |
| 36 | xyonix_state *state = machine.driver_data<xyonix_state>(); | |
| 37 | 36 | int tileno; |
| 38 | int attr = | |
| 37 | int attr = | |
| 39 | 38 | |
| 40 | tileno = ( | |
| 39 | tileno = ( | |
| 41 | 40 | |
| 42 | SET_TILE_INFO(0,tileno,attr >> 4,0); | |
| 41 | SET_TILE_INFO_MEMBER(0,tileno,attr >> 4,0); | |
| 43 | 42 | } |
| 44 | 43 | |
| 45 | 44 | WRITE8_MEMBER(xyonix_state::xyonix_vidram_w) |
| r17673 | r17674 | |
| 53 | 52 | { |
| 54 | 53 | xyonix_state *state = machine.driver_data<xyonix_state>(); |
| 55 | 54 | |
| 56 | state->m_tilemap = tilemap | |
| 55 | state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(xyonix_state::get_xyonix_tile_info),state), TILEMAP_SCAN_ROWS, 4, 8, 80, 32); | |
| 57 | 56 | } |
| 58 | 57 | |
| 59 | 58 | SCREEN_UPDATE_IND16(xyonix) |
| r17673 | r17674 | |
|---|---|---|
| 165 | 165 | m_obj_on = data & 0x40; |
| 166 | 166 | } |
| 167 | 167 | |
| 168 | ||
| 168 | ||
| 169 | 169 | { |
| 170 | UINT8 *tilerom = machine.root_device().memregion("gfx5")->base() + 0x8000; | |
| 170 | UINT8 *tilerom = machine().root_device().memregion("gfx5")->base() + 0x8000; | |
| 171 | 171 | |
| 172 | 172 | int offs = tile_index * 2; |
| 173 | 173 | int attr = tilerom[offs + 1]; |
| r17673 | r17674 | |
| 175 | 175 | int color = (attr & 0x3c) >> 2; |
| 176 | 176 | int flags = TILE_FLIPYX((attr & 0xc0) >> 6); |
| 177 | 177 | |
| 178 | SET_TILE_INFO(2, code, color, flags); | |
| 178 | SET_TILE_INFO_MEMBER(2, code, color, flags); | |
| 179 | 179 | } |
| 180 | 180 | |
| 181 | ||
| 181 | ||
| 182 | 182 | { |
| 183 | UINT8 *tilerom = machine.root_device().memregion("gfx5")->base(); | |
| 183 | UINT8 *tilerom = machine().root_device().memregion("gfx5")->base(); | |
| 184 | 184 | |
| 185 | 185 | int offs = tile_index * 2; |
| 186 | 186 | int attr = tilerom[offs + 1]; |
| r17673 | r17674 | |
| 189 | 189 | int flags = TILE_FLIPYX((attr & 0xc0) >> 6); |
| 190 | 190 | |
| 191 | 191 | tileinfo.group = color; |
| 192 | SET_TILE_INFO(1, code, color, flags); | |
| 192 | SET_TILE_INFO_MEMBER(1, code, color, flags); | |
| 193 | 193 | } |
| 194 | 194 | |
| 195 | ||
| 195 | ||
| 196 | 196 | { |
| 197 | _1943_state *state = machine.driver_data<_1943_state>(); | |
| 198 | int attr = state->m_colorram[tile_index]; | |
| 199 | int code = state->m_videoram[tile_index] + ((attr & 0xe0) << 3); | |
| 197 | int attr = m_colorram[tile_index]; | |
| 198 | int code = m_videoram[tile_index] + ((attr & 0xe0) << 3); | |
| 200 | 199 | int color = attr & 0x1f; |
| 201 | 200 | |
| 202 | SET_TILE_INFO(0, code, color, 0); | |
| 201 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 203 | 202 | } |
| 204 | 203 | |
| 205 | 204 | VIDEO_START( 1943 ) |
| 206 | 205 | { |
| 207 | 206 | _1943_state *state = machine.driver_data<_1943_state>(); |
| 208 | state->m_bg2_tilemap = tilemap_create(machine, c1943_get_bg2_tile_info, TILEMAP_SCAN_COLS, 32, 32, 2048, 8); | |
| 209 | state->m_bg_tilemap = tilemap_create(machine, c1943_get_bg_tile_info, TILEMAP_SCAN_COLS, 32, 32, 2048, 8); | |
| 210 | state->m_fg_tilemap = tilemap_create(machine, c1943_get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 207 | state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(_1943_state::c1943_get_bg2_tile_info),state), TILEMAP_SCAN_COLS, 32, 32, 2048, 8); | |
| 208 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(_1943_state::c1943_get_bg_tile_info),state), TILEMAP_SCAN_COLS, 32, 32, 2048, 8); | |
| 209 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(_1943_state::c1943_get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 211 | 210 | |
| 212 | 211 | colortable_configure_tilemap_groups(machine.colortable, state->m_bg_tilemap, machine.gfx[1], 0x0f); |
| 213 | 212 | state->m_fg_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 196 | 196 | } |
| 197 | 197 | |
| 198 | 198 | |
| 199 | ||
| 199 | ||
| 200 | 200 | { |
| 201 | lucky74_state *state = machine.driver_data<lucky74_state>(); | |
| 202 | 201 | /* - bits - |
| 203 | 202 | 7654 3210 |
| 204 | 203 | ---- xxxx tiles color. |
| 205 | 204 | xxxx ---- tiles page offset. |
| 206 | 205 | */ |
| 207 | 206 | int bank = 0; |
| 208 | int attr = state->m_fg_colorram[tile_index]; | |
| 209 | int code = state->m_fg_videoram[tile_index] + ((attr & 0xf0) << 4); | |
| 207 | int attr = m_fg_colorram[tile_index]; | |
| 208 | int code = m_fg_videoram[tile_index] + ((attr & 0xf0) << 4); | |
| 210 | 209 | int color = (attr & 0x0f); |
| 211 | 210 | |
| 212 | SET_TILE_INFO(bank, code, color, 0); | |
| 211 | SET_TILE_INFO_MEMBER(bank, code, color, 0); | |
| 213 | 212 | } |
| 214 | 213 | |
| 215 | ||
| 214 | ||
| 216 | 215 | { |
| 217 | lucky74_state *state = machine.driver_data<lucky74_state>(); | |
| 218 | 216 | /* - bits - |
| 219 | 217 | 7654 3210 |
| 220 | 218 | ---- xxxx tiles color. |
| 221 | 219 | xxxx ---- tiles page offset. |
| 222 | 220 | */ |
| 223 | 221 | int bank = 1; |
| 224 | int attr = state->m_bg_colorram[tile_index]; | |
| 225 | int code = state->m_bg_videoram[tile_index] + ((attr & 0xf0) << 4); | |
| 222 | int attr = m_bg_colorram[tile_index]; | |
| 223 | int code = m_bg_videoram[tile_index] + ((attr & 0xf0) << 4); | |
| 226 | 224 | int color = (attr & 0x0f); |
| 227 | 225 | |
| 228 | SET_TILE_INFO(bank, code, color, 0); | |
| 226 | SET_TILE_INFO_MEMBER(bank, code, color, 0); | |
| 229 | 227 | } |
| 230 | 228 | |
| 231 | 229 | |
| 232 | 230 | VIDEO_START( lucky74 ) |
| 233 | 231 | { |
| 234 | 232 | lucky74_state *state = machine.driver_data<lucky74_state>(); |
| 235 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 236 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 233 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lucky74_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 234 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lucky74_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 237 | 235 | |
| 238 | 236 | state->m_fg_tilemap->set_transparent_pen(0); |
| 239 | 237 | } |
| r17673 | r17674 | |
|---|---|---|
| 157 | 157 | |
| 158 | 158 | ***************************************************************************/ |
| 159 | 159 | |
| 160 | ||
| 160 | ||
| 161 | 161 | { |
| 162 | pacland_state *state = machine.driver_data<pacland_state>(); | |
| 163 | 162 | int offs = tile_index * 2; |
| 164 | int attr = state->m_videoram2[offs + 1]; | |
| 165 | int code = state->m_videoram2[offs] + ((attr & 0x01) << 8); | |
| 163 | int attr = m_videoram2[offs + 1]; | |
| 164 | int code = m_videoram2[offs] + ((attr & 0x01) << 8); | |
| 166 | 165 | int color = ((attr & 0x3e) >> 1) + ((code & 0x1c0) >> 1); |
| 167 | 166 | int flags = TILE_FLIPYX(attr >> 6); |
| 168 | 167 | |
| 169 | SET_TILE_INFO(1, code, color, flags); | |
| 168 | SET_TILE_INFO_MEMBER(1, code, color, flags); | |
| 170 | 169 | } |
| 171 | 170 | |
| 172 | ||
| 171 | ||
| 173 | 172 | { |
| 174 | pacland_state *state = machine.driver_data<pacland_state>(); | |
| 175 | 173 | int offs = tile_index * 2; |
| 176 | int attr = state->m_videoram[offs + 1]; | |
| 177 | int code = state->m_videoram[offs] + ((attr & 0x01) << 8); | |
| 174 | int attr = m_videoram[offs + 1]; | |
| 175 | int code = m_videoram[offs] + ((attr & 0x01) << 8); | |
| 178 | 176 | int color = ((attr & 0x1e) >> 1) + ((code & 0x1e0) >> 1); |
| 179 | 177 | int flags = TILE_FLIPYX(attr >> 6); |
| 180 | 178 | |
| 181 | 179 | tileinfo.category = (attr & 0x20) ? 1 : 0; |
| 182 | 180 | tileinfo.group = color; |
| 183 | 181 | |
| 184 | SET_TILE_INFO(0, code, color, flags); | |
| 182 | SET_TILE_INFO_MEMBER(0, code, color, flags); | |
| 185 | 183 | } |
| 186 | 184 | |
| 187 | 185 | |
| r17673 | r17674 | |
| 200 | 198 | machine.primary_screen->register_screen_bitmap(state->m_fg_bitmap); |
| 201 | 199 | state->m_fg_bitmap.fill(0xffff); |
| 202 | 200 | |
| 203 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_ROWS,8,8,64,32); | |
| 204 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info,TILEMAP_SCAN_ROWS,8,8,64,32); | |
| 201 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pacland_state::get_bg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32); | |
| 202 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pacland_state::get_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32); | |
| 205 | 203 | |
| 206 | 204 | state->m_fg_tilemap->set_scroll_rows(32); |
| 207 | 205 |
| r17673 | r17674 | |
|---|---|---|
| 114 | 114 | } |
| 115 | 115 | } |
| 116 | 116 | |
| 117 | ||
| 117 | ||
| 118 | 118 | { |
| 119 | popper_state *state = machine.driver_data<popper_state>(); | |
| 120 | UINT32 tile_number = state->m_videoram[tile_index]; | |
| 121 | UINT8 attr = state->m_attribram[tile_index]; | |
| 122 | tile_number += state->m_gfx_bank << 8; | |
| 119 | UINT32 tile_number = m_videoram[tile_index]; | |
| 120 | UINT8 attr = m_attribram[tile_index]; | |
| 121 | tile_number += m_gfx_bank << 8; | |
| 123 | 122 | |
| 124 | SET_TILE_INFO( | |
| 123 | SET_TILE_INFO_MEMBER( | |
| 125 | 124 | 0, |
| 126 | 125 | tile_number, |
| 127 | 126 | (attr & 0xf), |
| r17673 | r17674 | |
| 129 | 128 | tileinfo.group = (attr & 0x80) >> 7; |
| 130 | 129 | } |
| 131 | 130 | |
| 132 | ||
| 131 | ||
| 133 | 132 | { |
| 134 | popper_state *state = machine.driver_data<popper_state>(); | |
| 135 | UINT32 tile_number = state->m_videoram[tile_index]; | |
| 136 | UINT8 attr = state->m_attribram[tile_index]; | |
| 137 | tile_number += state->m_gfx_bank << 8; | |
| 133 | UINT32 tile_number = m_videoram[tile_index]; | |
| 134 | UINT8 attr = m_attribram[tile_index]; | |
| 135 | tile_number += m_gfx_bank << 8; | |
| 138 | 136 | |
| 139 | 137 | //pen 0 only in front if colour set as well |
| 140 | 138 | tileinfo.group = (attr & 0x70) ? ((attr & 0x80) >> 7) : 0; |
| 141 | 139 | |
| 142 | SET_TILE_INFO( | |
| 140 | SET_TILE_INFO_MEMBER( | |
| 143 | 141 | 0, |
| 144 | 142 | tile_number, |
| 145 | 143 | ((attr & 0x70) >> 4) + 8, |
| 146 | 144 | 0); |
| 147 | 145 | } |
| 148 | 146 | |
| 149 | ||
| 147 | ||
| 150 | 148 | { |
| 151 | popper_state *state = machine.driver_data<popper_state>(); | |
| 152 | UINT32 tile_number = state->m_ol_videoram[tile_index]; | |
| 153 | UINT8 attr = state->m_ol_attribram[tile_index]; | |
| 154 | tile_number += state->m_gfx_bank << 8; | |
| 149 | UINT32 tile_number = m_ol_videoram[tile_index]; | |
| 150 | UINT8 attr = m_ol_attribram[tile_index]; | |
| 151 | tile_number += m_gfx_bank << 8; | |
| 155 | 152 | |
| 156 | SET_TILE_INFO( | |
| 153 | SET_TILE_INFO_MEMBER( | |
| 157 | 154 | 0, |
| 158 | 155 | tile_number, |
| 159 | 156 | (attr & 0xf), |
| r17673 | r17674 | |
| 161 | 158 | tileinfo.group = (attr & 0x80) >> 7; |
| 162 | 159 | } |
| 163 | 160 | |
| 164 | ||
| 161 | ||
| 165 | 162 | { |
| 166 | popper_state *state = machine.driver_data<popper_state>(); | |
| 167 | UINT32 tile_number = state->m_ol_videoram[tile_index]; | |
| 168 | UINT8 attr = state->m_ol_attribram[tile_index]; | |
| 169 | tile_number += state->m_gfx_bank << 8; | |
| 163 | UINT32 tile_number = m_ol_videoram[tile_index]; | |
| 164 | UINT8 attr = m_ol_attribram[tile_index]; | |
| 165 | tile_number += m_gfx_bank << 8; | |
| 170 | 166 | |
| 171 | 167 | //pen 0 only in front if colour set as well |
| 172 | 168 | tileinfo.group = (attr & 0x70) ? ((attr & 0x80) >> 7) : 0; |
| 173 | 169 | |
| 174 | SET_TILE_INFO( | |
| 170 | SET_TILE_INFO_MEMBER( | |
| 175 | 171 | 0, |
| 176 | 172 | tile_number, |
| 177 | 173 | ((attr & 0x70) >> 4) + 8, |
| r17673 | r17674 | |
| 181 | 177 | VIDEO_START( popper ) |
| 182 | 178 | { |
| 183 | 179 | popper_state *state = machine.driver_data<popper_state>(); |
| 184 | state->m_p123_tilemap = tilemap_create(machine, get_popper_p123_tile_info, TILEMAP_SCAN_COLS, 8, 8, 33, 32 ); | |
| 185 | state->m_p0_tilemap = tilemap_create(machine, get_popper_p0_tile_info, TILEMAP_SCAN_COLS, 8, 8, 33, 32); | |
| 186 | state->m_ol_p123_tilemap = tilemap_create(machine, get_popper_ol_p123_tile_info, TILEMAP_SCAN_COLS, 8, 8, 2, 32); | |
| 187 | state->m_ol_p0_tilemap = tilemap_create(machine, get_popper_ol_p0_tile_info, TILEMAP_SCAN_COLS, 8, 8, 2, 32); | |
| 180 | state->m_p123_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(popper_state::get_popper_p123_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 33, 32 ); | |
| 181 | state->m_p0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(popper_state::get_popper_p0_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 33, 32); | |
| 182 | state->m_ol_p123_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(popper_state::get_popper_ol_p123_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 2, 32); | |
| 183 | state->m_ol_p0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(popper_state::get_popper_ol_p0_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 2, 32); | |
| 188 | 184 | |
| 189 | 185 | state->m_p123_tilemap->set_transmask(0, 0x0f, 0x01); |
| 190 | 186 | state->m_p123_tilemap->set_transmask(1, 0x01, 0x0f); |
| r17673 | r17674 | |
|---|---|---|
| 19 | 19 | return m_spriteram[offset]; |
| 20 | 20 | } |
| 21 | 21 | |
| 22 | ||
| 22 | ||
| 23 | 23 | { |
| 24 | ladyfrog_state *state = machine.driver_data<ladyfrog_state>(); | |
| 25 | int pal = state->m_videoram[tile_index * 2 + 1] & 0x0f; | |
| 26 | int tile = state->m_videoram[tile_index * 2] + ((state->m_videoram[tile_index * 2 + 1] & 0xc0) << 2)+ ((state->m_videoram[tile_index * 2 + 1] & 0x30) << 6); | |
| 27 | SET_TILE_INFO( | |
| 24 | int pal = m_videoram[tile_index * 2 + 1] & 0x0f; | |
| 25 | int tile = m_videoram[tile_index * 2] + ((m_videoram[tile_index * 2 + 1] & 0xc0) << 2)+ ((m_videoram[tile_index * 2 + 1] & 0x30) << 6); | |
| 26 | SET_TILE_INFO_MEMBER( | |
| 28 | 27 | 0, |
| 29 | tile + 0x1000 * | |
| 28 | tile + 0x1000 * | |
| 30 | 29 | pal,TILE_FLIPY |
| 31 | 30 | ); |
| 32 | 31 | } |
| r17673 | r17674 | |
| 133 | 132 | ladyfrog_state *state = machine.driver_data<ladyfrog_state>(); |
| 134 | 133 | |
| 135 | 134 | state->m_spriteram = auto_alloc_array(machine, UINT8, 160); |
| 136 | state->m_bg_tilemap = tilemap | |
| 135 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ladyfrog_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 137 | 136 | |
| 138 | 137 | state->m_generic_paletteram_8.allocate(0x200); |
| 139 | 138 | state->m_generic_paletteram2_8.allocate(0x200); |
| r17673 | r17674 | |
|---|---|---|
| 93 | 93 | } |
| 94 | 94 | |
| 95 | 95 | |
| 96 | ||
| 96 | ||
| 97 | 97 | { |
| 98 | sidearms_state *state = machine.driver_data<sidearms_state>(); | |
| 99 | 98 | int code, attr, color, flags; |
| 100 | 99 | |
| 101 | code = state->m_tilerom[tile_index]; | |
| 102 | attr = state->m_tilerom[tile_index + 1]; | |
| 100 | code = m_tilerom[tile_index]; | |
| 101 | attr = m_tilerom[tile_index + 1]; | |
| 103 | 102 | code |= attr<<8 & 0x100; |
| 104 | 103 | color = attr>>3 & 0x1f; |
| 105 | 104 | flags = attr>>1 & 0x03; |
| 106 | 105 | |
| 107 | SET_TILE_INFO(1, code, color, flags); | |
| 106 | SET_TILE_INFO_MEMBER(1, code, color, flags); | |
| 108 | 107 | } |
| 109 | 108 | |
| 110 | ||
| 109 | ||
| 111 | 110 | { |
| 112 | sidearms_state *state = machine.driver_data<sidearms_state>(); | |
| 113 | 111 | int code, attr, color, flags; |
| 114 | 112 | |
| 115 | code = state->m_tilerom[tile_index]; | |
| 116 | attr = state->m_tilerom[tile_index + 1]; | |
| 113 | code = m_tilerom[tile_index]; | |
| 114 | attr = m_tilerom[tile_index + 1]; | |
| 117 | 115 | code |= (((attr>>6 & 0x02) | (attr & 0x01)) * 0x100); |
| 118 | 116 | color = attr>>3 & 0x0f; |
| 119 | 117 | flags = attr>>1 & 0x03; |
| 120 | 118 | |
| 121 | SET_TILE_INFO(1, code, color, flags); | |
| 119 | SET_TILE_INFO_MEMBER(1, code, color, flags); | |
| 122 | 120 | } |
| 123 | 121 | |
| 124 | ||
| 122 | ||
| 125 | 123 | { |
| 126 | sidearms_state *state = machine.driver_data<sidearms_state>(); | |
| 127 | int attr = state->m_colorram[tile_index]; | |
| 128 | int code = state->m_videoram[tile_index] + (attr<<2 & 0x300); | |
| 124 | int attr = m_colorram[tile_index]; | |
| 125 | int code = m_videoram[tile_index] + (attr<<2 & 0x300); | |
| 129 | 126 | int color = attr & 0x3f; |
| 130 | 127 | |
| 131 | SET_TILE_INFO(0, code, color, 0); | |
| 128 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 132 | 129 | } |
| 133 | 130 | |
| 134 | ||
| 131 | ||
| 135 | 132 | { |
| 136 | 133 | /* logical (col,row) -> memory offset */ |
| 137 | 134 | int offset = ((row << 7) + col) << 1; |
| r17673 | r17674 | |
| 147 | 144 | |
| 148 | 145 | if (!state->m_gameid) |
| 149 | 146 | { |
| 150 | state->m_bg_tilemap = tilemap | |
| 147 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sidearms_state::get_sidearms_bg_tile_info),state), tilemap_mapper_delegate(FUNC(sidearms_state::sidearms_tilemap_scan),state), | |
| 151 | 148 | 32, 32, 128, 128); |
| 152 | 149 | |
| 153 | 150 | state->m_bg_tilemap->set_transparent_pen(15); |
| 154 | 151 | } |
| 155 | 152 | else |
| 156 | 153 | { |
| 157 | state->m_bg_tilemap = tilemap | |
| 154 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sidearms_state::get_philko_bg_tile_info),state), tilemap_mapper_delegate(FUNC(sidearms_state::sidearms_tilemap_scan),state), 32, 32, 128, 128); | |
| 158 | 155 | } |
| 159 | 156 | |
| 160 | state->m_fg_tilemap = tilemap | |
| 157 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sidearms_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, | |
| 161 | 158 | 8, 8, 64, 64); |
| 162 | 159 | |
| 163 | 160 | state->m_fg_tilemap->set_transparent_pen(3); |
| r17673 | r17674 | |
|---|---|---|
| 17 | 17 | m_scrolly = data; |
| 18 | 18 | } |
| 19 | 19 | |
| 20 | ||
| 20 | ||
| 21 | 21 | { |
| 22 | djboy_state *state = machine.driver_data<djboy_state>(); | |
| 23 | UINT8 attr = state->m_videoram[tile_index + 0x800]; | |
| 24 | int code = state->m_videoram[tile_index] + (attr & 0xf) * 256; | |
| 22 | UINT8 attr = m_videoram[tile_index + 0x800]; | |
| 23 | int code = m_videoram[tile_index] + (attr & 0xf) * 256; | |
| 25 | 24 | int color = attr >> 4; |
| 26 | 25 | |
| 27 | 26 | if (color & 8) |
| 28 | 27 | code |= 0x1000; |
| 29 | 28 | |
| 30 | SET_TILE_INFO(1, code, color, 0); /* no flip */ | |
| 29 | SET_TILE_INFO_MEMBER(1, code, color, 0); /* no flip */ | |
| 31 | 30 | } |
| 32 | 31 | |
| 33 | 32 | WRITE8_MEMBER(djboy_state::djboy_videoram_w) |
| r17673 | r17674 | |
| 40 | 39 | VIDEO_START( djboy ) |
| 41 | 40 | { |
| 42 | 41 | djboy_state *state = machine.driver_data<djboy_state>(); |
| 43 | state->m_background = tilemap | |
| 42 | state->m_background = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(djboy_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); | |
| 44 | 43 | } |
| 45 | 44 | |
| 46 | 45 | WRITE8_MEMBER(djboy_state::djboy_paletteram_w) |
| r17673 | r17674 | |
|---|---|---|
| 39 | 39 | flip_screen_set(offset); |
| 40 | 40 | } |
| 41 | 41 | |
| 42 | ||
| 42 | ||
| 43 | 43 | { |
| 44 | jack_state *state = machine.driver_data<jack_state>(); | |
| 45 | int code = state->m_videoram[tile_index] + ((state->m_colorram[tile_index] & 0x18) << 5); | |
| 46 | int color = state->m_colorram[tile_index] & 0x07; | |
| 44 | int code = m_videoram[tile_index] + ((m_colorram[tile_index] & 0x18) << 5); | |
| 45 | int color = m_colorram[tile_index] & 0x07; | |
| 47 | 46 | |
| 48 | // striv: | |
| 47 | // striv: | |
| 49 | 48 | |
| 50 | SET_TILE_INFO(0, code, color, 0); | |
| 49 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 51 | 50 | } |
| 52 | 51 | |
| 53 | ||
| 52 | ||
| 54 | 53 | { |
| 55 | 54 | /* logical (col,row) -> memory offset */ |
| 56 | 55 | return (col * num_rows) + (num_rows - 1 - row); |
| r17673 | r17674 | |
| 59 | 58 | VIDEO_START( jack ) |
| 60 | 59 | { |
| 61 | 60 | jack_state *state = machine.driver_data<jack_state>(); |
| 62 | state->m_bg_tilemap = tilemap | |
| 61 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jack_state::get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(jack_state::tilemap_scan_cols_flipy),state), 8, 8, 32, 32); | |
| 63 | 62 | } |
| 64 | 63 | |
| 65 | 64 | static void jack_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ) |
| r17673 | r17674 | |
| 133 | 132 | } |
| 134 | 133 | } |
| 135 | 134 | |
| 136 | ||
| 135 | ||
| 137 | 136 | { |
| 138 | jack_state *state = machine.driver_data<jack_state>(); | |
| 139 | int code = state->m_videoram[tile_index] + ((state->m_colorram[tile_index] & 0x03) << 8); | |
| 140 | int color = (state->m_colorram[tile_index] & 0x38) >> 3; | |
| 137 | int code = m_videoram[tile_index] + ((m_colorram[tile_index] & 0x03) << 8); | |
| 138 | int color = (m_colorram[tile_index] & 0x38) >> 3; | |
| 141 | 139 | |
| 142 | SET_TILE_INFO(0, code, color, 0); | |
| 140 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 143 | 141 | } |
| 144 | 142 | |
| 145 | 143 | VIDEO_START( joinem ) |
| 146 | 144 | { |
| 147 | 145 | jack_state *state = machine.driver_data<jack_state>(); |
| 148 | state->m_bg_tilemap = tilemap | |
| 146 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(jack_state::joinem_get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(jack_state::tilemap_scan_cols_flipy),state), 8, 8, 32, 32); | |
| 149 | 147 | } |
| 150 | 148 | |
| 151 | 149 | static void joinem_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ) |
| r17673 | r17674 | |
|---|---|---|
| 49 | 49 | |
| 50 | 50 | ***************************************************************************/ |
| 51 | 51 | |
| 52 | ||
| 52 | ||
| 53 | 53 | { |
| 54 | dogfgt_state *state = machine.driver_data<dogfgt_state>(); | |
| 55 | SET_TILE_INFO( | |
| 54 | SET_TILE_INFO_MEMBER( | |
| 56 | 55 | 0, |
| 57 | state->m_bgvideoram[tile_index], | |
| 58 | state->m_bgvideoram[tile_index + 0x400] & 0x03, | |
| 56 | m_bgvideoram[tile_index], | |
| 57 | m_bgvideoram[tile_index + 0x400] & 0x03, | |
| 59 | 58 | 0); |
| 60 | 59 | } |
| 61 | 60 | |
| r17673 | r17674 | |
| 69 | 68 | VIDEO_START( dogfgt ) |
| 70 | 69 | { |
| 71 | 70 | dogfgt_state *state = machine.driver_data<dogfgt_state>(); |
| 72 | state->m_bg_tilemap = tilemap | |
| 71 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dogfgt_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 73 | 72 | |
| 74 | 73 | state->m_bitmapram = auto_alloc_array(machine, UINT8, BITMAPRAM_SIZE); |
| 75 | 74 | state->save_pointer(NAME(state->m_bitmapram), BITMAPRAM_SIZE); |
| r17673 | r17674 | |
|---|---|---|
| 174 | 174 | } |
| 175 | 175 | } |
| 176 | 176 | |
| 177 | ||
| 177 | ||
| 178 | 178 | { |
| 179 | kingofb_state *state = machine.driver_data<kingofb_state>(); | |
| 180 | int attr = state->m_colorram[tile_index]; | |
| 179 | int attr = m_colorram[tile_index]; | |
| 181 | 180 | int bank = ((attr & 0x04) >> 2) + 2; |
| 182 | int code = (tile_index / 16) ? state->m_videoram[tile_index] + ((attr & 0x03) << 8) : 0; | |
| 183 | int color = ((attr & 0x70) >> 4) + 8 * state->m_palette_bank; | |
| 181 | int code = (tile_index / 16) ? m_videoram[tile_index] + ((attr & 0x03) << 8) : 0; | |
| 182 | int color = ((attr & 0x70) >> 4) + 8 * m_palette_bank; | |
| 184 | 183 | |
| 185 | SET_TILE_INFO(bank, code, color, 0); | |
| 184 | SET_TILE_INFO_MEMBER(bank, code, color, 0); | |
| 186 | 185 | } |
| 187 | 186 | |
| 188 | ||
| 187 | ||
| 189 | 188 | { |
| 190 | kingofb_state *state = machine.driver_data<kingofb_state>(); | |
| 191 | int attr = state->m_colorram2[tile_index]; | |
| 189 | int attr = m_colorram2[tile_index]; | |
| 192 | 190 | int bank = (attr & 0x02) >> 1; |
| 193 | int code = | |
| 191 | int code = | |
| 194 | 192 | int color = (attr & 0x38) >> 3; |
| 195 | 193 | |
| 196 | SET_TILE_INFO(bank, code, color, 0); | |
| 194 | SET_TILE_INFO_MEMBER(bank, code, color, 0); | |
| 197 | 195 | } |
| 198 | 196 | |
| 199 | 197 | VIDEO_START( kingofb ) |
| 200 | 198 | { |
| 201 | 199 | kingofb_state *state = machine.driver_data<kingofb_state>(); |
| 202 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS_FLIP_Y, 16, 16, 16, 16); | |
| 203 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_COLS_FLIP_Y, 8, 8, 32, 32); | |
| 200 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(kingofb_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS_FLIP_Y, 16, 16, 16, 16); | |
| 201 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(kingofb_state::get_fg_tile_info),state), TILEMAP_SCAN_COLS_FLIP_Y, 8, 8, 32, 32); | |
| 204 | 202 | |
| 205 | 203 | state->m_fg_tilemap->set_transparent_pen(0); |
| 206 | 204 | } |
| r17673 | r17674 | |
| 256 | 254 | |
| 257 | 255 | /* Ring King */ |
| 258 | 256 | |
| 259 | ||
| 257 | ||
| 260 | 258 | { |
| 261 | kingofb_state *state = machine.driver_data<kingofb_state>(); | |
| 262 | int code = (tile_index / 16) ? state->m_videoram[tile_index] : 0; | |
| 263 | int color = ((state->m_colorram[tile_index] & 0x70) >> 4) + 8 * state->m_palette_bank; | |
| 259 | int code = (tile_index / 16) ? m_videoram[tile_index] : 0; | |
| 260 | int color = ((m_colorram[tile_index] & 0x70) >> 4) + 8 * m_palette_bank; | |
| 264 | 261 | |
| 265 | SET_TILE_INFO(4, code, color, 0); | |
| 262 | SET_TILE_INFO_MEMBER(4, code, color, 0); | |
| 266 | 263 | } |
| 267 | 264 | |
| 268 | 265 | VIDEO_START( ringking ) |
| 269 | 266 | { |
| 270 | 267 | kingofb_state *state = machine.driver_data<kingofb_state>(); |
| 271 | state->m_bg_tilemap = tilemap_create(machine, ringking_get_bg_tile_info, TILEMAP_SCAN_COLS_FLIP_Y, 16, 16, 16, 16); | |
| 272 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_COLS_FLIP_Y, 8, 8, 32, 32); | |
| 268 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(kingofb_state::ringking_get_bg_tile_info),state), TILEMAP_SCAN_COLS_FLIP_Y, 16, 16, 16, 16); | |
| 269 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(kingofb_state::get_fg_tile_info),state), TILEMAP_SCAN_COLS_FLIP_Y, 8, 8, 32, 32); | |
| 273 | 270 | |
| 274 | 271 | state->m_fg_tilemap->set_transparent_pen(0); |
| 275 | 272 | } |
| r17673 | r17674 | |
|---|---|---|
| 120 | 120 | |
| 121 | 121 | ***************************************************************************/ |
| 122 | 122 | |
| 123 | ||
| 123 | ||
| 124 | 124 | { |
| 125 | UINT8 *BGROM = machine.root_device().memregion("gfx4")->base(); | |
| 125 | UINT8 *BGROM = machine().root_device().memregion("gfx4")->base(); | |
| 126 | 126 | int attr = BGROM[tile_index + 0x4000]; |
| 127 | 127 | int code = BGROM[tile_index] | ((attr & 0x03) << 8); |
| 128 | SET_TILE_INFO( | |
| 128 | SET_TILE_INFO_MEMBER( | |
| 129 | 129 | 1, |
| 130 | 130 | code, |
| 131 | 131 | (attr & 0x78) >> 3, /* seems correct */ |
| 132 | 132 | 0); |
| 133 | 133 | } |
| 134 | 134 | |
| 135 | ||
| 135 | ||
| 136 | 136 | { |
| 137 | galivan_state *state = machine.driver_data<galivan_state>(); | |
| 138 | int attr = state->m_videoram[tile_index + 0x400]; | |
| 139 | int code = state->m_videoram[tile_index] | ((attr & 0x01) << 8); | |
| 140 | SET_TILE_INFO( | |
| 137 | int attr = m_videoram[tile_index + 0x400]; | |
| 138 | int code = m_videoram[tile_index] | ((attr & 0x01) << 8); | |
| 139 | SET_TILE_INFO_MEMBER( | |
| 141 | 140 | 0, |
| 142 | 141 | code, |
| 143 | 142 | (attr & 0xe0) >> 5, /* not sure */ |
| r17673 | r17674 | |
| 145 | 144 | tileinfo.category = attr & 8 ? 0 : 1; /* seems correct */ |
| 146 | 145 | } |
| 147 | 146 | |
| 148 | ||
| 147 | ||
| 149 | 148 | { |
| 150 | UINT8 *BGROM = machine.root_device().memregion("gfx4")->base(); | |
| 149 | UINT8 *BGROM = machine().root_device().memregion("gfx4")->base(); | |
| 151 | 150 | int attr = BGROM[tile_index + 0x4000]; |
| 152 | 151 | int code = BGROM[tile_index] | ((attr & 0x03) << 8); |
| 153 | SET_TILE_INFO( | |
| 152 | SET_TILE_INFO_MEMBER( | |
| 154 | 153 | 1, |
| 155 | 154 | code, |
| 156 | 155 | ((attr & 0x60) >> 3) | ((attr & 0x0c) >> 2), /* seems correct */ |
| 157 | 156 | 0); |
| 158 | 157 | } |
| 159 | 158 | |
| 160 | ||
| 159 | ||
| 161 | 160 | { |
| 162 | galivan_state *state = machine.driver_data<galivan_state>(); | |
| 163 | int attr = state->m_videoram[tile_index + 0x400]; | |
| 164 | int code = state->m_videoram[tile_index] | ((attr & 0x03) << 8); | |
| 161 | int attr = m_videoram[tile_index + 0x400]; | |
| 162 | int code = m_videoram[tile_index] | ((attr & 0x03) << 8); | |
| 165 | 163 | |
| 166 | 164 | if(tile_index < 0x12) /* don't draw the NB1414M4 params! TODO: could be a better fix */ |
| 167 | 165 | code = attr = 0x01; |
| 168 | 166 | |
| 169 | SET_TILE_INFO( | |
| 167 | SET_TILE_INFO_MEMBER( | |
| 170 | 168 | 0, |
| 171 | 169 | code, |
| 172 | 170 | (attr & 0x1c) >> 2, /* seems correct ? */ |
| r17673 | r17674 | |
| 185 | 183 | { |
| 186 | 184 | galivan_state *state = machine.driver_data<galivan_state>(); |
| 187 | 185 | |
| 188 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 128, 128); | |
| 189 | state->m_tx_tilemap = tilemap_create(machine, get_tx_tile_info, TILEMAP_SCAN_COLS, 8, 8, 32, 32); | |
| 186 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galivan_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 128, 128); | |
| 187 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galivan_state::get_tx_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); | |
| 190 | 188 | |
| 191 | 189 | state->m_tx_tilemap->set_transparent_pen(15); |
| 192 | 190 | } |
| r17673 | r17674 | |
| 195 | 193 | { |
| 196 | 194 | galivan_state *state = machine.driver_data<galivan_state>(); |
| 197 | 195 | |
| 198 | state->m_bg_tilemap = tilemap_create(machine, ninjemak_get_bg_tile_info, TILEMAP_SCAN_COLS, 16, 16, 512, 32); | |
| 199 | state->m_tx_tilemap = tilemap_create(machine, ninjemak_get_tx_tile_info, TILEMAP_SCAN_COLS, 8, 8, 32, 32); | |
| 196 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galivan_state::ninjemak_get_bg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 512, 32); | |
| 197 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(galivan_state::ninjemak_get_tx_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); | |
| 200 | 198 | |
| 201 | 199 | state->m_tx_tilemap->set_transparent_pen(15); |
| 202 | 200 | } |
| r17673 | r17674 | |
|---|---|---|
| 12 | 12 | |
| 13 | 13 | ***************************************************************************/ |
| 14 | 14 | |
| 15 | ||
| 15 | ||
| 16 | 16 | { |
| 17 | tsamurai_state *state = machine.driver_data<tsamurai_state>(); | |
| 18 | UINT8 attributes = state->m_bg_videoram[2*tile_index+1]; | |
| 19 | int tile_number = state->m_bg_videoram[2*tile_index]; | |
| 17 | UINT8 attributes = m_bg_videoram[2*tile_index+1]; | |
| 18 | int tile_number = m_bg_videoram[2*tile_index]; | |
| 20 | 19 | tile_number += (( attributes & 0xc0 ) >> 6 ) * 256; /* legacy */ |
| 21 | 20 | tile_number += (( attributes & 0x20 ) >> 5 ) * 1024; /* Mission 660 add-on*/ |
| 22 | SET_TILE_INFO( | |
| 21 | SET_TILE_INFO_MEMBER( | |
| 23 | 22 | 0, |
| 24 | 23 | tile_number, |
| 25 | 24 | attributes & 0x1f, |
| 26 | 25 | 0); |
| 27 | 26 | } |
| 28 | 27 | |
| 29 | ||
| 28 | ||
| 30 | 29 | { |
| 31 | tsamurai_state *state = machine.driver_data<tsamurai_state>(); | |
| 32 | int tile_number = state->m_videoram[tile_index]; | |
| 33 | if (state->m_textbank1 & 0x01) tile_number += 256; /* legacy */ | |
| 34 | if (state->m_textbank2 & 0x01) tile_number += 512; /* Mission 660 add-on */ | |
| 35 | SET_TILE_INFO( | |
| 30 | int tile_number = m_videoram[tile_index]; | |
| 31 | if (m_textbank1 & 0x01) tile_number += 256; /* legacy */ | |
| 32 | if (m_textbank2 & 0x01) tile_number += 512; /* Mission 660 add-on */ | |
| 33 | SET_TILE_INFO_MEMBER( | |
| 36 | 34 | 1, |
| 37 | 35 | tile_number, |
| 38 | | |
| 36 | | |
| 39 | 37 | 0); |
| 40 | 38 | } |
| 41 | 39 | |
| r17673 | r17674 | |
| 49 | 47 | VIDEO_START( tsamurai ) |
| 50 | 48 | { |
| 51 | 49 | tsamurai_state *state = machine.driver_data<tsamurai_state>(); |
| 52 | state->m_background = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 53 | state->m_foreground = tilemap_create(machine, get_fg_tile_info,TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 50 | state->m_background = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tsamurai_state::get_bg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 51 | state->m_foreground = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tsamurai_state::get_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 54 | 52 | |
| 55 | 53 | state->m_background->set_transparent_pen(0); |
| 56 | 54 | state->m_foreground->set_transparent_pen(0); |
| r17673 | r17674 | |
| 234 | 232 | } |
| 235 | 233 | |
| 236 | 234 | |
| 237 | ||
| 235 | ||
| 238 | 236 | { |
| 239 | tsamurai_state *state = machine.driver_data<tsamurai_state>(); | |
| 240 | int tile_number = state->m_videoram[tile_index]; | |
| 241 | int color = state->m_vsgongf_color&0x1f; | |
| 242 | if( state->m_textbank1 ) tile_number += 0x100; | |
| 243 | SET_TILE_INFO( | |
| 237 | int tile_number = m_videoram[tile_index]; | |
| 238 | int color = m_vsgongf_color&0x1f; | |
| 239 | if( m_textbank1 ) tile_number += 0x100; | |
| 240 | SET_TILE_INFO_MEMBER( | |
| 244 | 241 | 1, |
| 245 | 242 | tile_number, |
| 246 | 243 | color, |
| r17673 | r17674 | |
| 250 | 247 | VIDEO_START( vsgongf ) |
| 251 | 248 | { |
| 252 | 249 | tsamurai_state *state = machine.driver_data<tsamurai_state>(); |
| 253 | state->m_foreground = tilemap | |
| 250 | state->m_foreground = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tsamurai_state::get_vsgongf_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 254 | 251 | } |
| 255 | 252 | |
| 256 | 253 | SCREEN_UPDATE_IND16( vsgongf ) |
| r17673 | r17674 | |
|---|---|---|
| 15 | 15 | } |
| 16 | 16 | |
| 17 | 17 | |
| 18 | ||
| 18 | ||
| 19 | 19 | { |
| 20 | canyon_state *state = machine.driver_data<canyon_state>(); | |
| 21 | UINT8 code = state->m_videoram[tile_index]; | |
| 20 | UINT8 code = m_videoram[tile_index]; | |
| 22 | 21 | |
| 23 | SET_TILE_INFO(0, code & 0x3f, code >> 7, 0); | |
| 22 | SET_TILE_INFO_MEMBER(0, code & 0x3f, code >> 7, 0); | |
| 24 | 23 | } |
| 25 | 24 | |
| 26 | 25 | |
| r17673 | r17674 | |
| 28 | 27 | { |
| 29 | 28 | canyon_state *state = machine.driver_data<canyon_state>(); |
| 30 | 29 | |
| 31 | state->m_bg_tilemap = tilemap | |
| 30 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(canyon_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 32 | 31 | } |
| 33 | 32 | |
| 34 | 33 |
| r17673 | r17674 | |
|---|---|---|
| 38 | 38 | 0 | xxxx---- -------- | color |
| 39 | 39 | */ |
| 40 | 40 | |
| 41 | ||
| 41 | ||
| 42 | 42 | { |
| 43 | splash_state *state = machine.driver_data<splash_state>(); | |
| 44 | int data = state->m_videoram[tile_index]; | |
| 43 | int data = m_videoram[tile_index]; | |
| 45 | 44 | int attr = data >> 8; |
| 46 | 45 | int code = data & 0xff; |
| 47 | 46 | |
| 48 | SET_TILE_INFO( | |
| 47 | SET_TILE_INFO_MEMBER( | |
| 49 | 48 | 0, |
| 50 | 49 | code + ((0x20 + (attr & 0x0f)) << 8), |
| 51 | 50 | (attr & 0xf0) >> 4, |
| 52 | 51 | 0); |
| 53 | 52 | } |
| 54 | 53 | |
| 55 | ||
| 54 | ||
| 56 | 55 | { |
| 57 | splash_state *state = machine.driver_data<splash_state>(); | |
| 58 | int data = state->m_videoram[(0x1000/2) + tile_index]; | |
| 56 | int data = m_videoram[(0x1000/2) + tile_index]; | |
| 59 | 57 | int attr = data >> 8; |
| 60 | 58 | int code = data & 0xff; |
| 61 | 59 | |
| 62 | SET_TILE_INFO( | |
| 60 | SET_TILE_INFO_MEMBER( | |
| 63 | 61 | 1, |
| 64 | 62 | (code >> 2) + ((0x30 + (attr & 0x0f)) << 6), |
| 65 | 63 | (attr & 0xf0) >> 4, |
| r17673 | r17674 | |
| 171 | 169 | { |
| 172 | 170 | splash_state *state = machine.driver_data<splash_state>(); |
| 173 | 171 | |
| 174 | state->m_bg_tilemap[0] = tilemap_create(machine, get_tile_info_splash_tilemap0, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 175 | state->m_bg_tilemap[1] = tilemap_create(machine, get_tile_info_splash_tilemap1, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 172 | state->m_bg_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(splash_state::get_tile_info_splash_tilemap0),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 173 | state->m_bg_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(splash_state::get_tile_info_splash_tilemap1),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 176 | 174 | |
| 177 | 175 | state->m_bg_tilemap[0]->set_transparent_pen(0); |
| 178 | 176 | state->m_bg_tilemap[1]->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 12 | 12 | |
| 13 | 13 | ***************************************************************************/ |
| 14 | 14 | |
| 15 | ||
| 15 | ||
| 16 | 16 | { |
| 17 | f1gp_state *state = machine.driver_data<f1gp_state>(); | |
| 18 | int code = state->m_rozvideoram[tile_index]; | |
| 17 | int code = m_rozvideoram[tile_index]; | |
| 19 | 18 | |
| 20 | SET_TILE_INFO(3, code & 0x7ff, code >> 12, 0); | |
| 19 | SET_TILE_INFO_MEMBER(3, code & 0x7ff, code >> 12, 0); | |
| 21 | 20 | } |
| 22 | 21 | |
| 23 | ||
| 22 | ||
| 24 | 23 | { |
| 25 | f1gp_state *state = machine.driver_data<f1gp_state>(); | |
| 26 | int code = state->m_rozvideoram[tile_index]; | |
| 24 | int code = m_rozvideoram[tile_index]; | |
| 27 | 25 | |
| 28 | SET_TILE_INFO(2, (code & 0x7ff) + ( | |
| 26 | SET_TILE_INFO_MEMBER(2, (code & 0x7ff) + ( | |
| 29 | 27 | } |
| 30 | 28 | |
| 31 | ||
| 29 | ||
| 32 | 30 | { |
| 33 | f1gp_state *state = machine.driver_data<f1gp_state>(); | |
| 34 | int code = state->m_fgvideoram[tile_index]; | |
| 31 | int code = m_fgvideoram[tile_index]; | |
| 35 | 32 | |
| 36 | SET_TILE_INFO(0, code & 0x7fff, 0, (code & 0x8000) ? TILE_FLIPY : 0); | |
| 33 | SET_TILE_INFO_MEMBER(0, code & 0x7fff, 0, (code & 0x8000) ? TILE_FLIPY : 0); | |
| 37 | 34 | } |
| 38 | 35 | |
| 39 | 36 | |
| r17673 | r17674 | |
| 47 | 44 | { |
| 48 | 45 | f1gp_state *state = machine.driver_data<f1gp_state>(); |
| 49 | 46 | |
| 50 | state->m_roz_tilemap = tilemap_create(machine, f1gp_get_roz_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); | |
| 51 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 47 | state->m_roz_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(f1gp_state::f1gp_get_roz_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); | |
| 48 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(f1gp_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 52 | 49 | |
| 53 | 50 | state->m_fg_tilemap->set_transparent_pen(0xff); |
| 54 | 51 | |
| r17673 | r17674 | |
| 63 | 60 | { |
| 64 | 61 | f1gp_state *state = machine.driver_data<f1gp_state>(); |
| 65 | 62 | |
| 66 | state->m_roz_tilemap = tilemap_create(machine, f1gp_get_roz_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); | |
| 67 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 63 | state->m_roz_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(f1gp_state::f1gp_get_roz_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); | |
| 64 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(f1gp_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 68 | 65 | |
| 69 | 66 | state->m_fg_tilemap->set_transparent_pen(0xff); |
| 70 | 67 | |
| r17673 | r17674 | |
| 78 | 75 | { |
| 79 | 76 | f1gp_state *state = machine.driver_data<f1gp_state>(); |
| 80 | 77 | |
| 81 | state->m_roz_tilemap = tilemap_create(machine, f1gp2_get_roz_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); | |
| 82 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 78 | state->m_roz_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(f1gp_state::f1gp2_get_roz_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); | |
| 79 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(f1gp_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 83 | 80 | |
| 84 | 81 | state->m_fg_tilemap->set_transparent_pen(0xff); |
| 85 | 82 | state->m_roz_tilemap->set_transparent_pen(0x0f); |
| r17673 | r17674 | |
|---|---|---|
| 94 | 94 | m_bg_tilemap->mark_tile_dirty(offset); |
| 95 | 95 | } |
| 96 | 96 | |
| 97 | ||
| 97 | ||
| 98 | 98 | { |
| 99 | lvcards_state *state = machine.driver_data<lvcards_state>(); | |
| 100 | int attr = state->m_colorram[tile_index]; | |
| 101 | int code = state->m_videoram[tile_index] + ((attr & 0x30) << 4) + ((attr & 0x80) << 3); | |
| 99 | int attr = m_colorram[tile_index]; | |
| 100 | int code = m_videoram[tile_index] + ((attr & 0x30) << 4) + ((attr & 0x80) << 3); | |
| 102 | 101 | int color = attr & 0x0f; |
| 103 | 102 | int flags = (attr & 0x40) ? TILE_FLIPX : 0; |
| 104 | 103 | |
| 105 | SET_TILE_INFO(0, code, color, flags); | |
| 104 | SET_TILE_INFO_MEMBER(0, code, color, flags); | |
| 106 | 105 | } |
| 107 | 106 | |
| 108 | 107 | VIDEO_START( lvcards ) |
| 109 | 108 | { |
| 110 | 109 | lvcards_state *state = machine.driver_data<lvcards_state>(); |
| 111 | state->m_bg_tilemap = tilemap | |
| 110 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lvcards_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, | |
| 112 | 111 | 8, 8, 32, 32); |
| 113 | 112 | } |
| 114 | 113 |
| r17673 | r17674 | |
|---|---|---|
| 8 | 8 | #include "includes/tecmosys.h" |
| 9 | 9 | |
| 10 | 10 | |
| 11 | ||
| 11 | ||
| 12 | 12 | { |
| 13 | tecmosys_state *state = machine.driver_data<tecmosys_state>(); | |
| 14 | 13 | |
| 15 | SET_TILE_INFO( | |
| 14 | SET_TILE_INFO_MEMBER( | |
| 16 | 15 | 1, |
| 17 | state->m_bg0tilemap_ram[2*tile_index+1], | |
| 18 | (state->m_bg0tilemap_ram[2*tile_index]&0x3f), | |
| 19 | TILE_FLIPYX((state->m_bg0tilemap_ram[2*tile_index]&0xc0)>>6)); | |
| 16 | m_bg0tilemap_ram[2*tile_index+1], | |
| 17 | (m_bg0tilemap_ram[2*tile_index]&0x3f), | |
| 18 | TILE_FLIPYX((m_bg0tilemap_ram[2*tile_index]&0xc0)>>6)); | |
| 20 | 19 | } |
| 21 | 20 | |
| 22 | ||
| 21 | ||
| 23 | 22 | { |
| 24 | tecmosys_state *state = machine.driver_data<tecmosys_state>(); | |
| 25 | 23 | |
| 26 | SET_TILE_INFO( | |
| 24 | SET_TILE_INFO_MEMBER( | |
| 27 | 25 | 2, |
| 28 | state->m_bg1tilemap_ram[2*tile_index+1], | |
| 29 | (state->m_bg1tilemap_ram[2*tile_index]&0x3f), | |
| 30 | TILE_FLIPYX((state->m_bg1tilemap_ram[2*tile_index]&0xc0)>>6)); | |
| 26 | m_bg1tilemap_ram[2*tile_index+1], | |
| 27 | (m_bg1tilemap_ram[2*tile_index]&0x3f), | |
| 28 | TILE_FLIPYX((m_bg1tilemap_ram[2*tile_index]&0xc0)>>6)); | |
| 31 | 29 | } |
| 32 | 30 | |
| 33 | ||
| 31 | ||
| 34 | 32 | { |
| 35 | tecmosys_state *state = machine.driver_data<tecmosys_state>(); | |
| 36 | 33 | |
| 37 | SET_TILE_INFO( | |
| 34 | SET_TILE_INFO_MEMBER( | |
| 38 | 35 | 3, |
| 39 | state->m_bg2tilemap_ram[2*tile_index+1], | |
| 40 | (state->m_bg2tilemap_ram[2*tile_index]&0x3f), | |
| 41 | TILE_FLIPYX((state->m_bg2tilemap_ram[2*tile_index]&0xc0)>>6)); | |
| 36 | m_bg2tilemap_ram[2*tile_index+1], | |
| 37 | (m_bg2tilemap_ram[2*tile_index]&0x3f), | |
| 38 | TILE_FLIPYX((m_bg2tilemap_ram[2*tile_index]&0xc0)>>6)); | |
| 42 | 39 | } |
| 43 | 40 | |
| 44 | ||
| 41 | ||
| 45 | 42 | { |
| 46 | tecmosys_state *state = machine.driver_data<tecmosys_state>(); | |
| 47 | 43 | |
| 48 | SET_TILE_INFO( | |
| 44 | SET_TILE_INFO_MEMBER( | |
| 49 | 45 | 0, |
| 50 | state->m_fgtilemap_ram[2*tile_index+1], | |
| 51 | (state->m_fgtilemap_ram[2*tile_index]&0x3f), | |
| 52 | TILE_FLIPYX((state->m_fgtilemap_ram[2*tile_index]&0xc0)>>6)); | |
| 46 | m_fgtilemap_ram[2*tile_index+1], | |
| 47 | (m_fgtilemap_ram[2*tile_index]&0x3f), | |
| 48 | TILE_FLIPYX((m_fgtilemap_ram[2*tile_index]&0xc0)>>6)); | |
| 53 | 49 | } |
| 54 | 50 | |
| 55 | 51 | |
| r17673 | r17674 | |
| 345 | 341 | state->m_tmp_tilemap_renderbitmap.fill(0x0000); |
| 346 | 342 | |
| 347 | 343 | |
| 348 | state->m_txt_tilemap = tilemap | |
| 344 | state->m_txt_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tecmosys_state::get_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32*2,32*2); | |
| 349 | 345 | state->m_txt_tilemap->set_transparent_pen(0); |
| 350 | 346 | |
| 351 | state->m_bg0tilemap = tilemap | |
| 347 | state->m_bg0tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tecmosys_state::get_bg0tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 352 | 348 | state->m_bg0tilemap->set_transparent_pen(0); |
| 353 | 349 | |
| 354 | state->m_bg1tilemap = tilemap | |
| 350 | state->m_bg1tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tecmosys_state::get_bg1tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 355 | 351 | state->m_bg1tilemap->set_transparent_pen(0); |
| 356 | 352 | |
| 357 | state->m_bg2tilemap = tilemap | |
| 353 | state->m_bg2tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tecmosys_state::get_bg2tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 358 | 354 | state->m_bg2tilemap->set_transparent_pen(0); |
| 359 | 355 | } |
| r17673 | r17674 | |
|---|---|---|
| 156 | 156 | } |
| 157 | 157 | |
| 158 | 158 | |
| 159 | ||
| 159 | ||
| 160 | 160 | { |
| 161 | snk6502_state *state = machine.driver_data<snk6502_state>(); | |
| 162 | int code = state->m_videoram[tile_index] + 256 * state->m_charbank; | |
| 163 | int color = (state->m_colorram[tile_index] & 0x38) >> 3; | |
| 161 | int code = m_videoram[tile_index] + 256 * m_charbank; | |
| 162 | int color = (m_colorram[tile_index] & 0x38) >> 3; | |
| 164 | 163 | |
| 165 | SET_TILE_INFO(1, code, color, 0); | |
| 164 | SET_TILE_INFO_MEMBER(1, code, color, 0); | |
| 166 | 165 | } |
| 167 | 166 | |
| 168 | ||
| 167 | ||
| 169 | 168 | { |
| 170 | snk6502_state *state = machine.driver_data<snk6502_state>(); | |
| 171 | int code = state->m_videoram2[tile_index]; | |
| 172 | int color = state->m_colorram[tile_index] & 0x07; | |
| 169 | int code = m_videoram2[tile_index]; | |
| 170 | int color = m_colorram[tile_index] & 0x07; | |
| 173 | 171 | |
| 174 | SET_TILE_INFO(0, code, color, 0); | |
| 172 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 175 | 173 | } |
| 176 | 174 | |
| 177 | 175 | VIDEO_START( snk6502 ) |
| 178 | 176 | { |
| 179 | 177 | snk6502_state *state = machine.driver_data<snk6502_state>(); |
| 180 | 178 | |
| 181 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 182 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 179 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snk6502_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 180 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snk6502_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 183 | 181 | |
| 184 | 182 | state->m_fg_tilemap->set_transparent_pen(0); |
| 185 | 183 | |
| r17673 | r17674 | |
| 293 | 291 | } |
| 294 | 292 | } |
| 295 | 293 | |
| 296 | ||
| 294 | ||
| 297 | 295 | { |
| 298 | snk6502_state *state = machine.driver_data<snk6502_state>(); | |
| 299 | int code = state->m_videoram[tile_index]; | |
| 300 | int color = (state->m_colorram[tile_index] & 0x0c) >> 2; | |
| 296 | int code = m_videoram[tile_index]; | |
| 297 | int color = (m_colorram[tile_index] & 0x0c) >> 2; | |
| 301 | 298 | |
| 302 | SET_TILE_INFO(1, code, color, 0); | |
| 299 | SET_TILE_INFO_MEMBER(1, code, color, 0); | |
| 303 | 300 | } |
| 304 | 301 | |
| 305 | ||
| 302 | ||
| 306 | 303 | { |
| 307 | snk6502_state *state = machine.driver_data<snk6502_state>(); | |
| 308 | int code = state->m_videoram2[tile_index]; | |
| 309 | int color = state->m_colorram[tile_index] & 0x03; | |
| 304 | int code = m_videoram2[tile_index]; | |
| 305 | int color = m_colorram[tile_index] & 0x03; | |
| 310 | 306 | |
| 311 | SET_TILE_INFO(0, code, color, 0); | |
| 307 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 312 | 308 | } |
| 313 | 309 | |
| 314 | 310 | VIDEO_START( satansat ) |
| 315 | 311 | { |
| 316 | 312 | snk6502_state *state = machine.driver_data<snk6502_state>(); |
| 317 | 313 | |
| 318 | state->m_bg_tilemap = tilemap_create(machine, satansat_get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 319 | state->m_fg_tilemap = tilemap_create(machine, satansat_get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 314 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snk6502_state::satansat_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 315 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snk6502_state::satansat_get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 320 | 316 | |
| 321 | 317 | state->m_fg_tilemap->set_transparent_pen(0); |
| 322 | 318 |
| r17673 | r17674 | |
|---|---|---|
| 95 | 95 | m_bg_tilemap->mark_tile_dirty(offset); |
| 96 | 96 | } |
| 97 | 97 | |
| 98 | ||
| 98 | ||
| 99 | 99 | { |
| 100 | pingpong_state *state = machine.driver_data<pingpong_state>(); | |
| 101 | int attr = state->m_colorram[tile_index]; | |
| 102 | int code = state->m_videoram[tile_index] + ((attr & 0x20) << 3); | |
| 100 | int attr = m_colorram[tile_index]; | |
| 101 | int code = m_videoram[tile_index] + ((attr & 0x20) << 3); | |
| 103 | 102 | int color = attr & 0x1f; |
| 104 | 103 | int flags = ((attr & 0x40) ? TILE_FLIPX : 0) | ((attr & 0x80) ? TILE_FLIPY : 0); |
| 105 | 104 | |
| 106 | SET_TILE_INFO(0, code, color, flags); | |
| 105 | SET_TILE_INFO_MEMBER(0, code, color, flags); | |
| 107 | 106 | } |
| 108 | 107 | |
| 109 | 108 | VIDEO_START( pingpong ) |
| 110 | 109 | { |
| 111 | 110 | pingpong_state *state = machine.driver_data<pingpong_state>(); |
| 112 | state->m_bg_tilemap = tilemap | |
| 111 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pingpong_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 113 | 112 | } |
| 114 | 113 | |
| 115 | 114 | static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ) |
| r17673 | r17674 | |
|---|---|---|
| 10 | 10 | m_tilemap1->mark_tile_dirty(offset>>1); |
| 11 | 11 | } |
| 12 | 12 | |
| 13 | ||
| 13 | ||
| 14 | 14 | { |
| 15 | ssrj_state *state = machine.driver_data<ssrj_state>(); | |
| 16 | 15 | int code; |
| 17 | code = state->m_vram1[tile_index<<1] + (state->m_vram1[(tile_index<<1)+1]<<8); | |
| 18 | SET_TILE_INFO( | |
| 16 | code = m_vram1[tile_index<<1] + (m_vram1[(tile_index<<1)+1]<<8); | |
| 17 | SET_TILE_INFO_MEMBER( | |
| 19 | 18 | 0, |
| 20 | 19 | code&0x3ff, |
| 21 | 20 | (code>>12)&0x3, |
| r17673 | r17674 | |
| 31 | 30 | m_tilemap2->mark_tile_dirty(offset>>1); |
| 32 | 31 | } |
| 33 | 32 | |
| 34 | ||
| 33 | ||
| 35 | 34 | { |
| 36 | ssrj_state *state = machine.driver_data<ssrj_state>(); | |
| 37 | 35 | int code; |
| 38 | code = state->m_vram2[tile_index<<1] + (state->m_vram2[(tile_index<<1)+1]<<8); | |
| 39 | SET_TILE_INFO( | |
| 36 | code = m_vram2[tile_index<<1] + (m_vram2[(tile_index<<1)+1]<<8); | |
| 37 | SET_TILE_INFO_MEMBER( | |
| 40 | 38 | 0, |
| 41 | 39 | code&0x3ff, |
| 42 | 40 | ((code>>12)&0x3)+4, |
| r17673 | r17674 | |
| 52 | 50 | m_tilemap4->mark_tile_dirty(offset>>1); |
| 53 | 51 | } |
| 54 | 52 | |
| 55 | ||
| 53 | ||
| 56 | 54 | { |
| 57 | ssrj_state *state = machine.driver_data<ssrj_state>(); | |
| 58 | 55 | int code; |
| 59 | code = state->m_vram4[tile_index<<1] + (state->m_vram4[(tile_index<<1)+1]<<8); | |
| 60 | SET_TILE_INFO( | |
| 56 | code = m_vram4[tile_index<<1] + (m_vram4[(tile_index<<1)+1]<<8); | |
| 57 | SET_TILE_INFO_MEMBER( | |
| 61 | 58 | 0, |
| 62 | 59 | code&0x3ff, |
| 63 | 60 | ((code>>12)&0x3)+12, |
| r17673 | r17674 | |
| 223 | 220 | { |
| 224 | 221 | ssrj_state *state = machine.driver_data<ssrj_state>(); |
| 225 | 222 | |
| 226 | state->m_tilemap1 = tilemap_create(machine, get_tile_info1, TILEMAP_SCAN_COLS, 8, 8, 32, 32); | |
| 227 | state->m_tilemap2 = tilemap_create(machine, get_tile_info2, TILEMAP_SCAN_COLS, 8, 8, 32, 32); | |
| 228 | state->m_tilemap4 = tilemap_create(machine, get_tile_info4, TILEMAP_SCAN_COLS, 8, 8, 32, 32); | |
| 223 | state->m_tilemap1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ssrj_state::get_tile_info1),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); | |
| 224 | state->m_tilemap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ssrj_state::get_tile_info2),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); | |
| 225 | state->m_tilemap4 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ssrj_state::get_tile_info4),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); | |
| 229 | 226 | state->m_tilemap2->set_transparent_pen(0); |
| 230 | 227 | state->m_tilemap4->set_transparent_pen(0); |
| 231 | 228 |
| r17673 | r17674 | |
|---|---|---|
| 17 | 17 | * |
| 18 | 18 | *************************************/ |
| 19 | 19 | |
| 20 | ||
| 20 | ||
| 21 | 21 | { |
| 22 | blstroid_state *state = machine.driver_data<blstroid_state>(); | |
| 23 | UINT16 data = state->m_playfield[tile_index]; | |
| 22 | UINT16 data = m_playfield[tile_index]; | |
| 24 | 23 | int code = data & 0x1fff; |
| 25 | 24 | int color = (data >> 13) & 0x07; |
| 26 | SET_TILE_INFO(0, code, color, 0); | |
| 25 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 27 | 26 | } |
| 28 | 27 | |
| 29 | 28 | |
| r17673 | r17674 | |
| 75 | 74 | blstroid_state *state = machine.driver_data<blstroid_state>(); |
| 76 | 75 | |
| 77 | 76 | /* initialize the playfield */ |
| 78 | state->m_playfield_tilemap = tilemap | |
| 77 | state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blstroid_state::get_playfield_tile_info),state), TILEMAP_SCAN_ROWS, 16,8, 64,64); | |
| 79 | 78 | |
| 80 | 79 | /* initialize the motion objects */ |
| 81 | 80 | atarimo_init(machine, 0, &modesc); |
| r17673 | r17674 | |
|---|---|---|
| 90 | 90 | } |
| 91 | 91 | } |
| 92 | 92 | |
| 93 | ||
| 93 | ||
| 94 | 94 | { |
| 95 | gotya_state *state = machine.driver_data<gotya_state>(); | |
| 96 | int code = state->m_videoram[tile_index]; | |
| 97 | int color = state->m_colorram[tile_index] & 0x0f; | |
| 95 | int code = m_videoram[tile_index]; | |
| 96 | int color = m_colorram[tile_index] & 0x0f; | |
| 98 | 97 | |
| 99 | SET_TILE_INFO(0, code, color, 0); | |
| 98 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 100 | 99 | } |
| 101 | 100 | |
| 102 | ||
| 101 | ||
| 103 | 102 | { |
| 104 | 103 | /* logical (col,row) -> memory offset */ |
| 105 | 104 | row = 31 - row; |
| r17673 | r17674 | |
| 110 | 109 | VIDEO_START( gotya ) |
| 111 | 110 | { |
| 112 | 111 | gotya_state *state = machine.driver_data<gotya_state>(); |
| 113 | state->m_bg_tilemap = tilemap | |
| 112 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gotya_state::get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(gotya_state::tilemap_scan_rows_thehand),state), 8, 8, 64, 32); | |
| 114 | 113 | } |
| 115 | 114 | |
| 116 | 115 | static void draw_status_row( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, int sx, int col ) |
| r17673 | r17674 | |
|---|---|---|
| 159 | 159 | |
| 160 | 160 | /********************************************************************/ |
| 161 | 161 | |
| 162 | ||
| 162 | ||
| 163 | 163 | { |
| 164 | tatsumi_state *state = machine.driver_data<tatsumi_state>(); | |
| 165 | UINT16 *videoram = state->m_videoram; | |
| 164 | UINT16 *videoram = m_videoram; | |
| 166 | 165 | int tile = videoram[tile_index]; |
| 167 | SET_TILE_INFO( | |
| 166 | SET_TILE_INFO_MEMBER( | |
| 168 | 167 | 1, |
| 169 | 168 | tile & 0xfff, |
| 170 | 169 | tile >> 12, |
| 171 | 170 | 0); |
| 172 | 171 | } |
| 173 | 172 | |
| 174 | ||
| 173 | ||
| 175 | 174 | { |
| 176 | tatsumi_state *state = machine.driver_data<tatsumi_state>(); | |
| 177 | int tile=state->m_cyclwarr_videoram0[(tile_index+0x400)%0x8000]; | |
| 178 | int bank = (state->m_bigfight_a40000[0] >> (((tile&0xc00)>>10)*4))&0xf; | |
| 179 | SET_TILE_INFO(1,(tile&0x3ff)+(bank<<10),(tile>>12)&0xf,0); | |
| 175 | int tile=m_cyclwarr_videoram0[(tile_index+0x400)%0x8000]; | |
| 176 | int bank = (m_bigfight_a40000[0] >> (((tile&0xc00)>>10)*4))&0xf; | |
| 177 | SET_TILE_INFO_MEMBER(1,(tile&0x3ff)+(bank<<10),(tile>>12)&0xf,0); | |
| 180 | 178 | } |
| 181 | 179 | |
| 182 | ||
| 180 | ||
| 183 | 181 | { |
| 184 | tatsumi_state *state = machine.driver_data<tatsumi_state>(); | |
| 185 | int tile=state->m_cyclwarr_videoram1[(tile_index+0x400)%0x8000]; | |
| 186 | int bank = (state->m_bigfight_a40000[0] >> (((tile&0xc00)>>10)*4))&0xf; | |
| 187 | SET_TILE_INFO(1,(tile&0x3ff)+(bank<<10),(tile>>12)&0xf,0); | |
| 182 | int tile=m_cyclwarr_videoram1[(tile_index+0x400)%0x8000]; | |
| 183 | int bank = (m_bigfight_a40000[0] >> (((tile&0xc00)>>10)*4))&0xf; | |
| 184 | SET_TILE_INFO_MEMBER(1,(tile&0x3ff)+(bank<<10),(tile>>12)&0xf,0); | |
| 188 | 185 | } |
| 189 | 186 | |
| 190 | 187 | /********************************************************************/ |
| r17673 | r17674 | |
| 192 | 189 | VIDEO_START( apache3 ) |
| 193 | 190 | { |
| 194 | 191 | tatsumi_state *state = machine.driver_data<tatsumi_state>(); |
| 195 | state->m_tx_layer = tilemap | |
| 192 | state->m_tx_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tatsumi_state::get_text_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 196 | 193 | state->m_shadow_pen_array = auto_alloc_array_clear(machine, UINT8, 8192); |
| 197 | 194 | state->m_temp_bitmap.allocate(512, 512); |
| 198 | 195 | state->m_apache3_road_x_ram = auto_alloc_array(machine, UINT8, 512); |
| r17673 | r17674 | |
| 203 | 200 | VIDEO_START( roundup5 ) |
| 204 | 201 | { |
| 205 | 202 | tatsumi_state *state = machine.driver_data<tatsumi_state>(); |
| 206 | state->m_tx_layer = tilemap | |
| 203 | state->m_tx_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tatsumi_state::get_text_tile_info),state),TILEMAP_SCAN_ROWS,8,8,128,64); | |
| 207 | 204 | state->m_shadow_pen_array = auto_alloc_array_clear(machine, UINT8, 8192); |
| 208 | 205 | state->m_roundup5_vram = auto_alloc_array(machine, UINT16, (0x48000 * 4)/2); |
| 209 | 206 | |
| r17673 | r17674 | |
| 215 | 212 | VIDEO_START( cyclwarr ) |
| 216 | 213 | { |
| 217 | 214 | tatsumi_state *state = machine.driver_data<tatsumi_state>(); |
| 218 | state->m_layer0 = tilemap_create(machine, get_tile_info_bigfight_0,TILEMAP_SCAN_ROWS,8,8,64,512); | |
| 219 | //state->m_layer1 = tilemap_create(machine, get_tile_info_bigfight_0,TILEMAP_SCAN_ROWS,8,8,64,512); | |
| 220 | state->m_layer1 = tilemap_create(machine, get_tile_info_bigfight_0,TILEMAP_SCAN_ROWS,8,8,128,256); | |
| 221 | state->m_layer2 = tilemap_create(machine, get_tile_info_bigfight_1,TILEMAP_SCAN_ROWS,8,8,64,512); | |
| 222 | state->m_layer3 = tilemap_create(machine, get_tile_info_bigfight_1,TILEMAP_SCAN_ROWS,8,8,64,512); | |
| 215 | state->m_layer0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tatsumi_state::get_tile_info_bigfight_0),state),TILEMAP_SCAN_ROWS,8,8,64,512); | |
| 216 | //state->m_layer1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tatsumi_state::get_tile_info_bigfight_0),state),TILEMAP_SCAN_ROWS,8,8,64,512); | |
| 217 | state->m_layer1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tatsumi_state::get_tile_info_bigfight_0),state),TILEMAP_SCAN_ROWS,8,8,128,256); | |
| 218 | state->m_layer2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tatsumi_state::get_tile_info_bigfight_1),state),TILEMAP_SCAN_ROWS,8,8,64,512); | |
| 219 | state->m_layer3 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tatsumi_state::get_tile_info_bigfight_1),state),TILEMAP_SCAN_ROWS,8,8,64,512); | |
| 223 | 220 | |
| 224 | 221 | state->m_shadow_pen_array = auto_alloc_array_clear(machine, UINT8, 8192); |
| 225 | 222 | } |
| r17673 | r17674 | |
| 227 | 224 | VIDEO_START( bigfight ) |
| 228 | 225 | { |
| 229 | 226 | tatsumi_state *state = machine.driver_data<tatsumi_state>(); |
| 230 | state->m_layer0 = tilemap_create(machine, get_tile_info_bigfight_0,TILEMAP_SCAN_ROWS,8,8,128,256); | |
| 231 | state->m_layer1 = tilemap_create(machine, get_tile_info_bigfight_0,TILEMAP_SCAN_ROWS,8,8,128,256); | |
| 232 | state->m_layer2 = tilemap_create(machine, get_tile_info_bigfight_1,TILEMAP_SCAN_ROWS,8,8,128,256); | |
| 233 | state->m_layer3 = tilemap_create(machine, get_tile_info_bigfight_1,TILEMAP_SCAN_ROWS,8,8,128,256); | |
| 227 | state->m_layer0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tatsumi_state::get_tile_info_bigfight_0),state),TILEMAP_SCAN_ROWS,8,8,128,256); | |
| 228 | state->m_layer1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tatsumi_state::get_tile_info_bigfight_0),state),TILEMAP_SCAN_ROWS,8,8,128,256); | |
| 229 | state->m_layer2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tatsumi_state::get_tile_info_bigfight_1),state),TILEMAP_SCAN_ROWS,8,8,128,256); | |
| 230 | state->m_layer3 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tatsumi_state::get_tile_info_bigfight_1),state),TILEMAP_SCAN_ROWS,8,8,128,256); | |
| 234 | 231 | |
| 235 | 232 | state->m_shadow_pen_array = auto_alloc_array_clear(machine, UINT8, 8192); |
| 236 | 233 | } |
| r17673 | r17674 | |
|---|---|---|
| 70 | 70 | #define DIM_NX (0x40) |
| 71 | 71 | #define DIM_NY (0x20) |
| 72 | 72 | |
| 73 | ||
| 73 | ||
| 74 | 74 | { |
| 75 | blmbycar_state *state = machine.driver_data<blmbycar_state>(); | |
| 76 | UINT16 code = state->m_vram_0[tile_index * 2 + 0]; | |
| 77 | UINT16 attr = state->m_vram_0[tile_index * 2 + 1]; | |
| 78 | SET_TILE_INFO( | |
| 75 | UINT16 code = m_vram_0[tile_index * 2 + 0]; | |
| 76 | UINT16 attr = m_vram_0[tile_index * 2 + 1]; | |
| 77 | SET_TILE_INFO_MEMBER( | |
| 79 | 78 | 0, |
| 80 | 79 | code, |
| 81 | 80 | attr & 0x1f, |
| r17673 | r17674 | |
| 84 | 83 | tileinfo.category = (attr >> 5) & 1; |
| 85 | 84 | } |
| 86 | 85 | |
| 87 | ||
| 86 | ||
| 88 | 87 | { |
| 89 | blmbycar_state *state = machine.driver_data<blmbycar_state>(); | |
| 90 | UINT16 code = state->m_vram_1[tile_index * 2 + 0]; | |
| 91 | UINT16 attr = state->m_vram_1[tile_index * 2 + 1]; | |
| 92 | SET_TILE_INFO( | |
| 88 | UINT16 code = m_vram_1[tile_index * 2 + 0]; | |
| 89 | UINT16 attr = m_vram_1[tile_index * 2 + 1]; | |
| 90 | SET_TILE_INFO_MEMBER( | |
| 93 | 91 | 0, |
| 94 | 92 | code, |
| 95 | 93 | attr & 0x1f, |
| r17673 | r17674 | |
| 124 | 122 | { |
| 125 | 123 | blmbycar_state *state = machine.driver_data<blmbycar_state>(); |
| 126 | 124 | |
| 127 | state->m_tilemap_0 = tilemap_create(machine, get_tile_info_0, TILEMAP_SCAN_ROWS, 16, 16, DIM_NX, DIM_NY ); | |
| 128 | state->m_tilemap_1 = tilemap_create(machine, get_tile_info_1, TILEMAP_SCAN_ROWS, 16, 16, DIM_NX, DIM_NY ); | |
| 125 | state->m_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blmbycar_state::get_tile_info_0),state), TILEMAP_SCAN_ROWS, 16, 16, DIM_NX, DIM_NY ); | |
| 126 | state->m_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blmbycar_state::get_tile_info_1),state), TILEMAP_SCAN_ROWS, 16, 16, DIM_NX, DIM_NY ); | |
| 129 | 127 | |
| 130 | 128 | state->m_tilemap_0->set_scroll_rows(1); |
| 131 | 129 | state->m_tilemap_0->set_scroll_cols(1); |
| r17673 | r17674 | |
|---|---|---|
| 62 | 62 | ***************************************************************************/ |
| 63 | 63 | |
| 64 | 64 | /* convert from 32x32 to 36x28 */ |
| 65 | ||
| 65 | ||
| 66 | 66 | { |
| 67 | 67 | row += 2; |
| 68 | 68 | col -= 2; |
| r17673 | r17674 | |
| 72 | 72 | return (row << 5) + col; |
| 73 | 73 | } |
| 74 | 74 | |
| 75 | ||
| 75 | ||
| 76 | 76 | { |
| 77 | retofinv_state *state = machine.driver_data<retofinv_state>(); | |
| 78 | SET_TILE_INFO( | |
| 77 | SET_TILE_INFO_MEMBER( | |
| 79 | 78 | 2, |
| 80 | state->m_bg_videoram[tile_index] + 256 * state->m_bg_bank, | |
| 81 | state->m_bg_videoram[0x400 + tile_index] & 0x3f, | |
| 79 | m_bg_videoram[tile_index] + 256 * m_bg_bank, | |
| 80 | m_bg_videoram[0x400 + tile_index] & 0x3f, | |
| 82 | 81 | 0); |
| 83 | 82 | } |
| 84 | 83 | |
| 85 | ||
| 84 | ||
| 86 | 85 | { |
| 87 | retofinv_state *state = machine.driver_data<retofinv_state>(); | |
| 88 | int color = state->m_fg_videoram[0x400 + tile_index]; | |
| 86 | int color = m_fg_videoram[0x400 + tile_index]; | |
| 89 | 87 | |
| 90 | 88 | tileinfo.group = color; |
| 91 | 89 | |
| 92 | SET_TILE_INFO( | |
| 90 | SET_TILE_INFO_MEMBER( | |
| 93 | 91 | 0, |
| 94 | | |
| 92 | | |
| 95 | 93 | color, |
| 96 | 94 | 0); |
| 97 | 95 | } |
| r17673 | r17674 | |
| 107 | 105 | VIDEO_START( retofinv ) |
| 108 | 106 | { |
| 109 | 107 | retofinv_state *state = machine.driver_data<retofinv_state>(); |
| 110 | state->m_bg_tilemap = tilemap_create(machine, bg_get_tile_info,tilemap_scan,8,8,36,28); | |
| 111 | state->m_fg_tilemap = tilemap_create(machine, fg_get_tile_info,tilemap_scan,8,8,36,28); | |
| 108 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(retofinv_state::bg_get_tile_info),state),tilemap_mapper_delegate(FUNC(retofinv_state::tilemap_scan),state),8,8,36,28); | |
| 109 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(retofinv_state::fg_get_tile_info),state),tilemap_mapper_delegate(FUNC(retofinv_state::tilemap_scan),state),8,8,36,28); | |
| 112 | 110 | |
| 113 | 111 | colortable_configure_tilemap_groups(machine.colortable, state->m_fg_tilemap, machine.gfx[0], 0); |
| 114 | 112 | } |
| r17673 | r17674 | |
|---|---|---|
| 18 | 18 | * |
| 19 | 19 | *************************************/ |
| 20 | 20 | |
| 21 | ||
| 21 | ||
| 22 | 22 | { |
| 23 | meadows_state *state = machine.driver_data<meadows_state>(); | |
| 24 | UINT8 *videoram = state->m_videoram; | |
| 25 | SET_TILE_INFO(0, videoram[tile_index] & 0x7f, 0, 0); | |
| 23 | UINT8 *videoram = m_videoram; | |
| 24 | SET_TILE_INFO_MEMBER(0, videoram[tile_index] & 0x7f, 0, 0); | |
| 26 | 25 | } |
| 27 | 26 | |
| 28 | 27 | |
| r17673 | r17674 | |
| 36 | 35 | VIDEO_START( meadows ) |
| 37 | 36 | { |
| 38 | 37 | meadows_state *state = machine.driver_data<meadows_state>(); |
| 39 | state->m_bg_tilemap = tilemap | |
| 38 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(meadows_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 32,30); | |
| 40 | 39 | } |
| 41 | 40 | |
| 42 | 41 |
| r17673 | r17674 | |
|---|---|---|
| 70 | 70 | paletteram_BBGGGRRR_byte_w(space, offset, ~data); |
| 71 | 71 | } |
| 72 | 72 | |
| 73 | ||
| 73 | ||
| 74 | 74 | { |
| 75 | bogeyman_state *state = machine.driver_data<bogeyman_state>(); | |
| 76 | int attr = state->m_colorram[tile_index]; | |
| 77 | int gfxbank = ((((attr & 0x01) << 8) + state->m_videoram[tile_index]) / 0x80) + 3; | |
| 78 | int code = state->m_videoram[tile_index] & 0x7f; | |
| 75 | int attr = m_colorram[tile_index]; | |
| 76 | int gfxbank = ((((attr & 0x01) << 8) + m_videoram[tile_index]) / 0x80) + 3; | |
| 77 | int code = m_videoram[tile_index] & 0x7f; | |
| 79 | 78 | int color = (attr >> 1) & 0x07; |
| 80 | 79 | |
| 81 | SET_TILE_INFO(gfxbank, code, color, 0); | |
| 80 | SET_TILE_INFO_MEMBER(gfxbank, code, color, 0); | |
| 82 | 81 | } |
| 83 | 82 | |
| 84 | ||
| 83 | ||
| 85 | 84 | { |
| 86 | bogeyman_state *state = machine.driver_data<bogeyman_state>(); | |
| 87 | int attr = state->m_colorram2[tile_index]; | |
| 88 | int tile = state->m_videoram2[tile_index] | ((attr & 0x03) << 8); | |
| 85 | int attr = m_colorram2[tile_index]; | |
| 86 | int tile = m_videoram2[tile_index] | ((attr & 0x03) << 8); | |
| 89 | 87 | int gfxbank = tile / 0x200; |
| 90 | 88 | int code = tile & 0x1ff; |
| 91 | 89 | |
| 92 | SET_TILE_INFO(gfxbank, code, | |
| 90 | SET_TILE_INFO_MEMBER(gfxbank, code, | |
| 93 | 91 | } |
| 94 | 92 | |
| 95 | 93 | VIDEO_START( bogeyman ) |
| 96 | 94 | { |
| 97 | 95 | bogeyman_state *state = machine.driver_data<bogeyman_state>(); |
| 98 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 16, 16); | |
| 99 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 96 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bogeyman_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 16, 16); | |
| 97 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bogeyman_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 100 | 98 | |
| 101 | 99 | state->m_fg_tilemap->set_transparent_pen(0); |
| 102 | 100 | } |
| r17673 | r17674 | |
|---|---|---|
| 57 | 57 | } |
| 58 | 58 | |
| 59 | 59 | |
| 60 | ||
| 60 | ||
| 61 | 61 | { |
| 62 | m72_state *state = machine.driver_data<m72_state>(); | |
| 63 | m72_get_tile_info(machine,tileinfo,tile_index,state->m_videoram2,2); | |
| 62 | m72_get_tile_info(machine(),tileinfo,tile_index,m_videoram2,2); | |
| 64 | 63 | } |
| 65 | 64 | |
| 66 | ||
| 65 | ||
| 67 | 66 | { |
| 68 | m72_state *state = machine.driver_data<m72_state>(); | |
| 69 | m72_get_tile_info(machine,tileinfo,tile_index,state->m_videoram1,1); | |
| 67 | m72_get_tile_info(machine(),tileinfo,tile_index,m_videoram1,1); | |
| 70 | 68 | } |
| 71 | 69 | |
| 72 | ||
| 70 | ||
| 73 | 71 | { |
| 74 | m72_state *state = machine.driver_data<m72_state>(); | |
| 75 | m72_get_tile_info(machine,tileinfo,tile_index,state->m_videoram2,1); | |
| 72 | m72_get_tile_info(machine(),tileinfo,tile_index,m_videoram2,1); | |
| 76 | 73 | } |
| 77 | 74 | |
| 78 | ||
| 75 | ||
| 79 | 76 | { |
| 80 | m72_state *state = machine.driver_data<m72_state>(); | |
| 81 | rtype2_get_tile_info(machine,tileinfo,tile_index,state->m_videoram2,1); | |
| 77 | rtype2_get_tile_info(machine(),tileinfo,tile_index,m_videoram2,1); | |
| 82 | 78 | } |
| 83 | 79 | |
| 84 | ||
| 80 | ||
| 85 | 81 | { |
| 86 | m72_state *state = machine.driver_data<m72_state>(); | |
| 87 | rtype2_get_tile_info(machine,tileinfo,tile_index,state->m_videoram1,1); | |
| 82 | rtype2_get_tile_info(machine(),tileinfo,tile_index,m_videoram1,1); | |
| 88 | 83 | } |
| 89 | 84 | |
| 90 | 85 | |
| 91 | ||
| 86 | ||
| 92 | 87 | { |
| 93 | 88 | /* logical (col,row) -> memory offset */ |
| 94 | 89 | return row*256 + col; |
| r17673 | r17674 | |
| 117 | 112 | VIDEO_START( m72 ) |
| 118 | 113 | { |
| 119 | 114 | m72_state *state = machine.driver_data<m72_state>(); |
| 120 | state->m_bg_tilemap = tilemap_create(machine, m72_get_bg_tile_info,TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 121 | state->m_fg_tilemap = tilemap_create(machine, m72_get_fg_tile_info,TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 115 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m72_state::m72_get_bg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 116 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m72_state::m72_get_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 122 | 117 | |
| 123 | 118 | state->m_buffered_spriteram = auto_alloc_array(machine, UINT16, state->m_spriteram.bytes()/2); |
| 124 | 119 | |
| r17673 | r17674 | |
| 157 | 152 | VIDEO_START( rtype2 ) |
| 158 | 153 | { |
| 159 | 154 | m72_state *state = machine.driver_data<m72_state>(); |
| 160 | state->m_bg_tilemap = tilemap_create(machine, rtype2_get_bg_tile_info,TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 161 | state->m_fg_tilemap = tilemap_create(machine, rtype2_get_fg_tile_info,TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 155 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m72_state::rtype2_get_bg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 156 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m72_state::rtype2_get_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 162 | 157 | |
| 163 | 158 | state->m_buffered_spriteram = auto_alloc_array(machine, UINT16, state->m_spriteram.bytes()/2); |
| 164 | 159 | |
| r17673 | r17674 | |
| 205 | 200 | m72_state *state = machine.driver_data<m72_state>(); |
| 206 | 201 | // The tilemap can be 256x64, but seems to be used at 128x64 (scroll wraparound). |
| 207 | 202 | // The layout ramains 256x64, the right half is just not displayed. |
| 208 | // state->m_bg_tilemap = tilemap_create(machine, rtype2_get_bg_tile_info,TILEMAP_SCAN_ROWS,8,8,256,64); | |
| 209 | state->m_bg_tilemap = tilemap_create(machine, rtype2_get_bg_tile_info,majtitle_scan_rows,8,8,128,64); | |
| 210 | state->m_fg_tilemap = tilemap_create(machine, rtype2_get_fg_tile_info,TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 203 | // state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m72_state::rtype2_get_bg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,256,64); | |
| 204 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m72_state::rtype2_get_bg_tile_info),state),tilemap_mapper_delegate(FUNC(m72_state::majtitle_scan_rows),state),8,8,128,64); | |
| 205 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m72_state::rtype2_get_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 211 | 206 | |
| 212 | 207 | state->m_buffered_spriteram = auto_alloc_array(machine, UINT16, state->m_spriteram.bytes()/2); |
| 213 | 208 | |
| r17673 | r17674 | |
| 233 | 228 | VIDEO_START( hharry ) |
| 234 | 229 | { |
| 235 | 230 | m72_state *state = machine.driver_data<m72_state>(); |
| 236 | state->m_bg_tilemap = tilemap_create(machine, hharry_get_bg_tile_info,TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 237 | state->m_fg_tilemap = tilemap_create(machine, m72_get_fg_tile_info, TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 231 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m72_state::hharry_get_bg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 232 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m72_state::m72_get_fg_tile_info),state), TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 238 | 233 | |
| 239 | 234 | state->m_buffered_spriteram = auto_alloc_array(machine, UINT16, state->m_spriteram.bytes()/2); |
| 240 | 235 |
| r17673 | r17674 | |
|---|---|---|
| 7 | 7 | |
| 8 | 8 | ***************************************************************************/ |
| 9 | 9 | |
| 10 | ||
| 10 | ||
| 11 | 11 | { |
| 12 | ohmygod_state *state = machine.driver_data<ohmygod_state>(); | |
| 13 | UINT16 code = state->m_videoram[2 * tile_index + 1]; | |
| 14 | UINT16 attr = state->m_videoram[2 * tile_index]; | |
| 15 | SET_TILE_INFO( | |
| 12 | UINT16 code = m_videoram[2 * tile_index + 1]; | |
| 13 | UINT16 attr = m_videoram[2 * tile_index]; | |
| 14 | SET_TILE_INFO_MEMBER( | |
| 16 | 15 | 0, |
| 17 | 16 | code, |
| 18 | 17 | (attr & 0x0f00) >> 8, |
| r17673 | r17674 | |
| 30 | 29 | VIDEO_START( ohmygod ) |
| 31 | 30 | { |
| 32 | 31 | ohmygod_state *state = machine.driver_data<ohmygod_state>(); |
| 33 | state->m_bg_tilemap = tilemap | |
| 32 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ohmygod_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 34 | 33 | } |
| 35 | 34 | |
| 36 | 35 |
| r17673 | r17674 | |
|---|---|---|
| 20 | 20 | } |
| 21 | 21 | } |
| 22 | 22 | |
| 23 | ||
| 23 | ||
| 24 | 24 | { |
| 25 | pokechmp_state *state = machine.driver_data<pokechmp_state>(); | |
| 26 | UINT8 *videoram = state->m_videoram; | |
| 25 | UINT8 *videoram = m_videoram; | |
| 27 | 26 | int code = videoram[tile_index*2+1] + ((videoram[tile_index*2] & 0x3f) << 8); |
| 28 | 27 | int color = videoram[tile_index*2] >> 6; |
| 29 | 28 | |
| 30 | SET_TILE_INFO(0, code, color, 0); | |
| 29 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 31 | 30 | } |
| 32 | 31 | |
| 33 | 32 | VIDEO_START( pokechmp ) |
| 34 | 33 | { |
| 35 | 34 | pokechmp_state *state = machine.driver_data<pokechmp_state>(); |
| 36 | state->m_bg_tilemap = tilemap | |
| 35 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pokechmp_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, | |
| 37 | 36 | 8, 8, 32, 32); |
| 38 | 37 | } |
| 39 | 38 |
| r17673 | r17674 | |
|---|---|---|
| 22 | 22 | |
| 23 | 23 | ***************************************************************************/ |
| 24 | 24 | |
| 25 | ||
| 25 | ||
| 26 | 26 | { |
| 27 | snk68_state *state = machine.driver_data<snk68_state>(); | |
| 28 | int tile = state->m_fg_tile_offset + (state->m_pow_fg_videoram[2*tile_index] & 0xff); | |
| 29 | int color = state->m_pow_fg_videoram[2*tile_index+1] & 0x07; | |
| 27 | int tile = m_fg_tile_offset + (m_pow_fg_videoram[2*tile_index] & 0xff); | |
| 28 | int color = m_pow_fg_videoram[2*tile_index+1] & 0x07; | |
| 30 | 29 | |
| 31 | SET_TILE_INFO(0, tile, color, 0); | |
| 30 | SET_TILE_INFO_MEMBER(0, tile, color, 0); | |
| 32 | 31 | } |
| 33 | 32 | |
| 34 | ||
| 33 | ||
| 35 | 34 | { |
| 36 | snk68_state *state = machine.driver_data<snk68_state>(); | |
| 37 | int data = state->m_pow_fg_videoram[2*tile_index]; | |
| 35 | int data = m_pow_fg_videoram[2*tile_index]; | |
| 38 | 36 | int tile = data & 0x7ff; |
| 39 | 37 | int color = (data & 0x7000) >> 12; |
| 40 | 38 | |
| 41 | 39 | // used in the ikari3 intro |
| 42 | 40 | int flags = (data & 0x8000) ? TILE_FORCE_LAYER0 : 0; |
| 43 | 41 | |
| 44 | SET_TILE_INFO(0, tile, color, flags); | |
| 42 | SET_TILE_INFO_MEMBER(0, tile, color, flags); | |
| 45 | 43 | } |
| 46 | 44 | |
| 47 | 45 | /*************************************************************************** |
| r17673 | r17674 | |
| 64 | 62 | { |
| 65 | 63 | snk68_state *state = machine.driver_data<snk68_state>(); |
| 66 | 64 | |
| 67 | state->m_fg_tilemap = tilemap | |
| 65 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snk68_state::get_pow_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); | |
| 68 | 66 | state->m_fg_tile_offset = 0; |
| 69 | 67 | |
| 70 | 68 | common_video_start(machine); |
| r17673 | r17674 | |
| 74 | 72 | { |
| 75 | 73 | snk68_state *state = machine.driver_data<snk68_state>(); |
| 76 | 74 | |
| 77 | state->m_fg_tilemap = tilemap | |
| 75 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snk68_state::get_searchar_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); | |
| 78 | 76 | |
| 79 | 77 | common_video_start(machine); |
| 80 | 78 | } |
| r17673 | r17674 | |
|---|---|---|
| 21 | 21 | |
| 22 | 22 | ***************************************************************************/ |
| 23 | 23 | |
| 24 | ||
| 24 | ||
| 25 | 25 | { |
| 26 | aeroboto_state *state = machine.driver_data<aeroboto_state>(); | |
| 27 | UINT8 code = state->m_videoram[tile_index]; | |
| 28 | SET_TILE_INFO( | |
| 26 | UINT8 code = m_videoram[tile_index]; | |
| 27 | SET_TILE_INFO_MEMBER( | |
| 29 | 28 | 0, |
| 30 | code + (state->m_charbank << 8), | |
| 31 | state->m_tilecolor[code], | |
| 32 | (state->m_tilecolor[code] >= 0x33) ? 0 : TILE_FORCE_LAYER0); | |
| 29 | code + (m_charbank << 8), | |
| 30 | m_tilecolor[code], | |
| 31 | (m_tilecolor[code] >= 0x33) ? 0 : TILE_FORCE_LAYER0); | |
| 33 | 32 | } |
| 34 | 33 | // transparency should only affect tiles with color 0x33 or higher |
| 35 | 34 | |
| r17673 | r17674 | |
| 44 | 43 | { |
| 45 | 44 | aeroboto_state *state = machine.driver_data<aeroboto_state>(); |
| 46 | 45 | |
| 47 | state->m_bg_tilemap = tilemap | |
| 46 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(aeroboto_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 64); | |
| 48 | 47 | state->m_bg_tilemap->set_transparent_pen(0); |
| 49 | 48 | state->m_bg_tilemap->set_scroll_rows(64); |
| 50 | 49 |
| r17673 | r17674 | |
|---|---|---|
| 71 | 71 | } |
| 72 | 72 | |
| 73 | 73 | |
| 74 | ||
| 74 | ||
| 75 | 75 | { |
| 76 | 76 | return scan_helper(col, row, 0); |
| 77 | 77 | } |
| 78 | ||
| 78 | ||
| 79 | 79 | { |
| 80 | 80 | return scan_helper(col, row, 1); |
| 81 | 81 | } |
| 82 | ||
| 82 | ||
| 83 | 83 | { |
| 84 | 84 | return scan_helper(col, row, BIT(col, 4) ? 1 : 0); |
| 85 | 85 | } |
| 86 | ||
| 86 | ||
| 87 | 87 | { |
| 88 | 88 | return scan_helper(col, row, BIT(col, 4) ? 0 : 1); |
| 89 | 89 | } |
| 90 | 90 | |
| 91 | 91 | |
| 92 | ||
| 92 | ||
| 93 | 93 | { |
| 94 | madalien_state *state = machine.driver_data<madalien_state>(); | |
| 95 | UINT8 *map = state->memregion("user1")->base() + ((*state->m_video_flags & 0x08) << 6); | |
| 94 | UINT8 *map = memregion("user1")->base() + ((*m_video_flags & 0x08) << 6); | |
| 96 | 95 | |
| 97 | SET_TILE_INFO(1, map[tile_index], BIT(* | |
| 96 | SET_TILE_INFO_MEMBER(1, map[tile_index], BIT(* | |
| 98 | 97 | } |
| 99 | 98 | |
| 100 | 99 | |
| 101 | ||
| 100 | ||
| 102 | 101 | { |
| 103 | madalien_state *state = machine.driver_data<madalien_state>(); | |
| 104 | UINT8 *map = state->memregion("user1")->base() + ((*state->m_video_flags & 0x08) << 6) + 0x80; | |
| 102 | UINT8 *map = memregion("user1")->base() + ((*m_video_flags & 0x08) << 6) + 0x80; | |
| 105 | 103 | |
| 106 | SET_TILE_INFO(1, map[tile_index], BIT(* | |
| 104 | SET_TILE_INFO_MEMBER(1, map[tile_index], BIT(* | |
| 107 | 105 | } |
| 108 | 106 | |
| 109 | 107 | |
| 110 | ||
| 108 | ||
| 111 | 109 | { |
| 112 | madalien_state *state = machine.driver_data<madalien_state>(); | |
| 113 | SET_TILE_INFO(0, state->m_videoram[tile_index], 0, 0); | |
| 110 | SET_TILE_INFO_MEMBER(0, m_videoram[tile_index], 0, 0); | |
| 114 | 111 | } |
| 115 | 112 | |
| 116 | 113 | WRITE8_MEMBER(madalien_state::madalien_videoram_w) |
| r17673 | r17674 | |
| 125 | 122 | madalien_state *state = machine.driver_data<madalien_state>(); |
| 126 | 123 | int i; |
| 127 | 124 | |
| 128 | static const tilemap_mapper_ | |
| 125 | static const tilemap_mapper_delegate scan_functions[4] = | |
| 129 | 126 | { |
| 130 | scan_mode0, scan_mode1, scan_mode2, scan_mode3 | |
| 127 | tilemap_mapper_delegate(FUNC(madalien_state::scan_mode0),state), | |
| 128 | tilemap_mapper_delegate(FUNC(madalien_state::scan_mode1),state), | |
| 129 | tilemap_mapper_delegate(FUNC(madalien_state::scan_mode2),state), | |
| 130 | tilemap_mapper_delegate(FUNC(madalien_state::scan_mode3),state) | |
| 131 | 131 | }; |
| 132 | 132 | |
| 133 | 133 | static const int tilemap_cols[4] = |
| r17673 | r17674 | |
| 135 | 135 | 16, 16, 32, 32 |
| 136 | 136 | }; |
| 137 | 137 | |
| 138 | state->m_tilemap_fg = tilemap | |
| 138 | state->m_tilemap_fg = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(madalien_state::get_tile_info_FG),state), TILEMAP_SCAN_COLS_FLIP_X, 8, 8, 32, 32); | |
| 139 | 139 | state->m_tilemap_fg->set_transparent_pen(0); |
| 140 | 140 | state->m_tilemap_fg->set_scrolldx(0, 0x50); |
| 141 | 141 | state->m_tilemap_fg->set_scrolldy(0, 0x20); |
| 142 | 142 | |
| 143 | 143 | for (i = 0; i < 4; i++) |
| 144 | 144 | { |
| 145 | state->m_tilemap_edge1[i] = tilemap | |
| 145 | state->m_tilemap_edge1[i] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(madalien_state::get_tile_info_BG_1),state), scan_functions[i], 16, 16, tilemap_cols[i], 8); | |
| 146 | 146 | state->m_tilemap_edge1[i]->set_scrolldx(0, 0x50); |
| 147 | 147 | state->m_tilemap_edge1[i]->set_scrolldy(0, 0x20); |
| 148 | 148 | |
| 149 | state->m_tilemap_edge2[i] = tilemap | |
| 149 | state->m_tilemap_edge2[i] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(madalien_state::get_tile_info_BG_2),state), scan_functions[i], 16, 16, tilemap_cols[i], 8); | |
| 150 | 150 | state->m_tilemap_edge2[i]->set_scrolldx(0, 0x50); |
| 151 | 151 | state->m_tilemap_edge2[i]->set_scrolldy(0, machine.primary_screen->height() - 256); |
| 152 | 152 | } |
| r17673 | r17674 | |
|---|---|---|
| 72 | 72 | |
| 73 | 73 | ***************************************************************************/ |
| 74 | 74 | |
| 75 | ||
| 75 | ||
| 76 | 76 | { |
| 77 | 77 | return (row ^ 0x1f) + (col << 5); |
| 78 | 78 | } |
| 79 | 79 | |
| 80 | ||
| 80 | ||
| 81 | 81 | { |
| 82 | 82 | return ((row & 0x0f) ^ 0x0f) | ((col & 0x0f) << 4) | |
| 83 | 83 | /* hole at bit 8 */ |
| 84 | 84 | ((row & 0x10) << 5) | ((col & 0x10) << 6); |
| 85 | 85 | } |
| 86 | 86 | |
| 87 | ||
| 87 | ||
| 88 | 88 | { |
| 89 | firetrap_state *state = machine.driver_data<firetrap_state>(); | |
| 90 | int code = state->m_fgvideoram[tile_index]; | |
| 91 | int color = state->m_fgvideoram[tile_index + 0x400]; | |
| 92 | SET_TILE_INFO( | |
| 89 | int code = m_fgvideoram[tile_index]; | |
| 90 | int color = m_fgvideoram[tile_index + 0x400]; | |
| 91 | SET_TILE_INFO_MEMBER( | |
| 93 | 92 | 0, |
| 94 | 93 | code | ((color & 0x01) << 8), |
| 95 | 94 | color >> 4, |
| r17673 | r17674 | |
| 107 | 106 | TILE_FLIPXY((color & 0x0c) >> 2)); |
| 108 | 107 | } |
| 109 | 108 | |
| 110 | ||
| 109 | ||
| 111 | 110 | { |
| 112 | firetrap_state *state = machine.driver_data<firetrap_state>(); | |
| 113 | get_bg_tile_info(machine, tileinfo, tile_index, state->m_bg1videoram, 1); | |
| 111 | get_bg_tile_info(machine(), tileinfo, tile_index, m_bg1videoram, 1); | |
| 114 | 112 | } |
| 115 | 113 | |
| 116 | ||
| 114 | ||
| 117 | 115 | { |
| 118 | firetrap_state *state = machine.driver_data<firetrap_state>(); | |
| 119 | get_bg_tile_info(machine, tileinfo, tile_index, state->m_bg2videoram, 2); | |
| 116 | get_bg_tile_info(machine(), tileinfo, tile_index, m_bg2videoram, 2); | |
| 120 | 117 | } |
| 121 | 118 | |
| 122 | 119 | |
| r17673 | r17674 | |
| 129 | 126 | VIDEO_START( firetrap ) |
| 130 | 127 | { |
| 131 | 128 | firetrap_state *state = machine.driver_data<firetrap_state>(); |
| 132 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, get_fg_memory_offset, 8, 8, 32, 32); | |
| 133 | state->m_bg1_tilemap = tilemap_create(machine, get_bg1_tile_info, get_bg_memory_offset, 16, 16, 32, 32); | |
| 134 | state->m_bg2_tilemap = tilemap_create(machine, get_bg2_tile_info, get_bg_memory_offset, 16, 16, 32, 32); | |
| 129 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(firetrap_state::get_fg_tile_info),state), tilemap_mapper_delegate(FUNC(firetrap_state::get_fg_memory_offset),state), 8, 8, 32, 32); | |
| 130 | state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(firetrap_state::get_bg1_tile_info),state), tilemap_mapper_delegate(FUNC(firetrap_state::get_bg_memory_offset),state), 16, 16, 32, 32); | |
| 131 | state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(firetrap_state::get_bg2_tile_info),state), tilemap_mapper_delegate(FUNC(firetrap_state::get_bg_memory_offset),state), 16, 16, 32, 32); | |
| 135 | 132 | |
| 136 | 133 | state->m_fg_tilemap->set_transparent_pen(0); |
| 137 | 134 | state->m_bg1_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 38 | 38 | |
| 39 | 39 | ***************************************************************************/ |
| 40 | 40 | |
| 41 | ||
| 41 | ||
| 42 | 42 | { |
| 43 | 43 | return (col & 0x0f) + ((col & 0x10) << 5) + (row << 4); |
| 44 | 44 | } |
| 45 | 45 | |
| 46 | ||
| 46 | ||
| 47 | 47 | { |
| 48 | thedeep_state *state = machine.driver_data<thedeep_state>(); | |
| 49 | UINT8 code = state->m_vram_0[ tile_index * 2 + 0 ]; | |
| 50 | UINT8 color = state->m_vram_0[ tile_index * 2 + 1 ]; | |
| 51 | SET_TILE_INFO( | |
| 48 | UINT8 code = m_vram_0[ tile_index * 2 + 0 ]; | |
| 49 | UINT8 color = m_vram_0[ tile_index * 2 + 1 ]; | |
| 50 | SET_TILE_INFO_MEMBER( | |
| 52 | 51 | 1, |
| 53 | 52 | code + (color << 8), |
| 54 | 53 | (color & 0xf0) >> 4, |
| 55 | 54 | TILE_FLIPX ); // why? |
| 56 | 55 | } |
| 57 | 56 | |
| 58 | ||
| 57 | ||
| 59 | 58 | { |
| 60 | thedeep_state *state = machine.driver_data<thedeep_state>(); | |
| 61 | UINT8 code = state->m_vram_1[ tile_index * 2 + 0 ]; | |
| 62 | UINT8 color = state->m_vram_1[ tile_index * 2 + 1 ]; | |
| 63 | SET_TILE_INFO( | |
| 59 | UINT8 code = m_vram_1[ tile_index * 2 + 0 ]; | |
| 60 | UINT8 color = m_vram_1[ tile_index * 2 + 1 ]; | |
| 61 | SET_TILE_INFO_MEMBER( | |
| 64 | 62 | 2, |
| 65 | 63 | code + (color << 8), |
| 66 | 64 | (color & 0xf0) >> 4, |
| r17673 | r17674 | |
| 103 | 101 | VIDEO_START( thedeep ) |
| 104 | 102 | { |
| 105 | 103 | thedeep_state *state = machine.driver_data<thedeep_state>(); |
| 106 | state->m_tilemap_0 = tilemap_create(machine, get_tile_info_0,tilemap_scan_rows_back,16,16,0x20,0x20); | |
| 107 | state->m_tilemap_1 = tilemap_create(machine, get_tile_info_1,TILEMAP_SCAN_ROWS,8,8,0x20,0x20); | |
| 104 | state->m_tilemap_0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(thedeep_state::get_tile_info_0),state),tilemap_mapper_delegate(FUNC(thedeep_state::tilemap_scan_rows_back),state),16,16,0x20,0x20); | |
| 105 | state->m_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(thedeep_state::get_tile_info_1),state),TILEMAP_SCAN_ROWS,8,8,0x20,0x20); | |
| 108 | 106 | |
| 109 | 107 | state->m_tilemap_0->set_transparent_pen(0 ); |
| 110 | 108 | state->m_tilemap_1->set_transparent_pen(0 ); |
| r17673 | r17674 | |
|---|---|---|
| 5 | 5 | |
| 6 | 6 | |
| 7 | 7 | /* bg tilemap */ |
| 8 | ||
| 8 | ||
| 9 | 9 | { |
| 10 | oneshot_state *state = machine.driver_data<oneshot_state>(); | |
| 11 | int tileno = state->m_bg_videoram[tile_index * 2 + 1]; | |
| 10 | int tileno = m_bg_videoram[tile_index * 2 + 1]; | |
| 12 | 11 | |
| 13 | SET_TILE_INFO(0, tileno, 0, 0); | |
| 12 | SET_TILE_INFO_MEMBER(0, tileno, 0, 0); | |
| 14 | 13 | } |
| 15 | 14 | |
| 16 | 15 | WRITE16_MEMBER(oneshot_state::oneshot_bg_videoram_w) |
| r17673 | r17674 | |
| 20 | 19 | } |
| 21 | 20 | |
| 22 | 21 | /* mid tilemap */ |
| 23 | ||
| 22 | ||
| 24 | 23 | { |
| 25 | oneshot_state *state = machine.driver_data<oneshot_state>(); | |
| 26 | int tileno = state->m_mid_videoram[tile_index * 2 + 1]; | |
| 24 | int tileno = m_mid_videoram[tile_index * 2 + 1]; | |
| 27 | 25 | |
| 28 | SET_TILE_INFO(0, tileno, 2, 0); | |
| 26 | SET_TILE_INFO_MEMBER(0, tileno, 2, 0); | |
| 29 | 27 | } |
| 30 | 28 | |
| 31 | 29 | WRITE16_MEMBER(oneshot_state::oneshot_mid_videoram_w) |
| r17673 | r17674 | |
| 36 | 34 | |
| 37 | 35 | |
| 38 | 36 | /* fg tilemap */ |
| 39 | ||
| 37 | ||
| 40 | 38 | { |
| 41 | oneshot_state *state = machine.driver_data<oneshot_state>(); | |
| 42 | int tileno = state->m_fg_videoram[tile_index * 2 + 1]; | |
| 39 | int tileno = m_fg_videoram[tile_index * 2 + 1]; | |
| 43 | 40 | |
| 44 | SET_TILE_INFO(0, tileno, 3, 0); | |
| 41 | SET_TILE_INFO_MEMBER(0, tileno, 3, 0); | |
| 45 | 42 | } |
| 46 | 43 | |
| 47 | 44 | WRITE16_MEMBER(oneshot_state::oneshot_fg_videoram_w) |
| r17673 | r17674 | |
| 54 | 51 | { |
| 55 | 52 | oneshot_state *state = machine.driver_data<oneshot_state>(); |
| 56 | 53 | |
| 57 | state->m_bg_tilemap = tilemap_create(machine, get_oneshot_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 58 | state->m_mid_tilemap = tilemap_create(machine, get_oneshot_mid_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 59 | state->m_fg_tilemap = tilemap_create(machine, get_oneshot_fg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 54 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(oneshot_state::get_oneshot_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 55 | state->m_mid_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(oneshot_state::get_oneshot_mid_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 56 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(oneshot_state::get_oneshot_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 60 | 57 | |
| 61 | 58 | state->m_bg_tilemap->set_transparent_pen(0); |
| 62 | 59 | state->m_mid_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 5 | 5 | |
| 6 | 6 | /* background, appears to be the bottom layer */ |
| 7 | 7 | |
| 8 | ||
| 8 | ||
| 9 | 9 | { |
| 10 | stlforce_state *state = machine.driver_data<stlforce_state>(); | |
| 11 | 10 | int tileno,colour; |
| 12 | 11 | |
| 13 | tileno = state->m_bg_videoram[tile_index] & 0x0fff; | |
| 14 | colour = state->m_bg_videoram[tile_index] & 0xe000; | |
| 12 | tileno = m_bg_videoram[tile_index] & 0x0fff; | |
| 13 | colour = m_bg_videoram[tile_index] & 0xe000; | |
| 15 | 14 | colour = colour >> 13; |
| 16 | SET_TILE_INFO(0,tileno,colour,0); | |
| 15 | SET_TILE_INFO_MEMBER(0,tileno,colour,0); | |
| 17 | 16 | } |
| 18 | 17 | |
| 19 | 18 | WRITE16_MEMBER(stlforce_state::stlforce_bg_videoram_w) |
| r17673 | r17674 | |
| 25 | 24 | |
| 26 | 25 | /* middle layer, low */ |
| 27 | 26 | |
| 28 | ||
| 27 | ||
| 29 | 28 | { |
| 30 | stlforce_state *state = machine.driver_data<stlforce_state>(); | |
| 31 | 29 | int tileno,colour; |
| 32 | 30 | |
| 33 | tileno = state->m_mlow_videoram[tile_index] & 0x0fff; | |
| 34 | colour = state->m_mlow_videoram[tile_index] & 0xe000; | |
| 31 | tileno = m_mlow_videoram[tile_index] & 0x0fff; | |
| 32 | colour = m_mlow_videoram[tile_index] & 0xe000; | |
| 35 | 33 | colour = colour >> 13; |
| 36 | 34 | colour += 8; |
| 37 | 35 | tileno += 0x1000; |
| 38 | 36 | |
| 39 | SET_TILE_INFO(0,tileno,colour,0); | |
| 37 | SET_TILE_INFO_MEMBER(0,tileno,colour,0); | |
| 40 | 38 | } |
| 41 | 39 | |
| 42 | 40 | WRITE16_MEMBER(stlforce_state::stlforce_mlow_videoram_w) |
| r17673 | r17674 | |
| 48 | 46 | |
| 49 | 47 | /* middle layer, high */ |
| 50 | 48 | |
| 51 | ||
| 49 | ||
| 52 | 50 | { |
| 53 | stlforce_state *state = machine.driver_data<stlforce_state>(); | |
| 54 | 51 | int tileno,colour; |
| 55 | 52 | |
| 56 | tileno = state->m_mhigh_videoram[tile_index] & 0x0fff; | |
| 57 | colour = state->m_mhigh_videoram[tile_index] & 0xe000; | |
| 53 | tileno = m_mhigh_videoram[tile_index] & 0x0fff; | |
| 54 | colour = m_mhigh_videoram[tile_index] & 0xe000; | |
| 58 | 55 | colour = colour >> 13; |
| 59 | 56 | colour += 16; |
| 60 | 57 | tileno += 0x2000; |
| 61 | 58 | |
| 62 | SET_TILE_INFO(0,tileno,colour,0); | |
| 59 | SET_TILE_INFO_MEMBER(0,tileno,colour,0); | |
| 63 | 60 | } |
| 64 | 61 | |
| 65 | 62 | WRITE16_MEMBER(stlforce_state::stlforce_mhigh_videoram_w) |
| r17673 | r17674 | |
| 71 | 68 | |
| 72 | 69 | /* text layer, appears to be the top layer */ |
| 73 | 70 | |
| 74 | ||
| 71 | ||
| 75 | 72 | { |
| 76 | stlforce_state *state = machine.driver_data<stlforce_state>(); | |
| 77 | 73 | int tileno,colour; |
| 78 | 74 | |
| 79 | tileno = state->m_tx_videoram[tile_index] & 0x0fff; | |
| 80 | colour = state->m_tx_videoram[tile_index] & 0xe000; | |
| 75 | tileno = m_tx_videoram[tile_index] & 0x0fff; | |
| 76 | colour = m_tx_videoram[tile_index] & 0xe000; | |
| 81 | 77 | colour = colour >> 13; |
| 82 | 78 | |
| 83 | 79 | tileno += 0xc000; |
| 84 | 80 | |
| 85 | 81 | colour += 24; |
| 86 | SET_TILE_INFO(1,tileno,colour,0); | |
| 82 | SET_TILE_INFO_MEMBER(1,tileno,colour,0); | |
| 87 | 83 | } |
| 88 | 84 | |
| 89 | 85 | WRITE16_MEMBER(stlforce_state::stlforce_tx_videoram_w) |
| r17673 | r17674 | |
| 184 | 180 | { |
| 185 | 181 | stlforce_state *state = machine.driver_data<stlforce_state>(); |
| 186 | 182 | |
| 187 | state->m_bg_tilemap = tilemap_create(machine, get_stlforce_bg_tile_info, TILEMAP_SCAN_COLS, 16,16,64,16); | |
| 188 | state->m_mlow_tilemap = tilemap_create(machine, get_stlforce_mlow_tile_info, TILEMAP_SCAN_COLS, 16,16,64,16); | |
| 189 | state->m_mhigh_tilemap = tilemap_create(machine, get_stlforce_mhigh_tile_info,TILEMAP_SCAN_COLS, 16,16,64,16); | |
| 190 | state->m_tx_tilemap = tilemap_create(machine, get_stlforce_tx_tile_info, TILEMAP_SCAN_ROWS, 8, 8,64,32); | |
| 183 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(stlforce_state::get_stlforce_bg_tile_info),state), TILEMAP_SCAN_COLS, 16,16,64,16); | |
| 184 | state->m_mlow_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(stlforce_state::get_stlforce_mlow_tile_info),state), TILEMAP_SCAN_COLS, 16,16,64,16); | |
| 185 | state->m_mhigh_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(stlforce_state::get_stlforce_mhigh_tile_info),state),TILEMAP_SCAN_COLS, 16,16,64,16); | |
| 186 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(stlforce_state::get_stlforce_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8,64,32); | |
| 191 | 187 | |
| 192 | 188 | state->m_mlow_tilemap->set_transparent_pen(0); |
| 193 | 189 | state->m_mhigh_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 42 | 42 | |
| 43 | 43 | ***************************************************************************/ |
| 44 | 44 | |
| 45 | ||
| 45 | ||
| 46 | 46 | { |
| 47 | amspdwy_state *state = machine.driver_data<amspdwy_state>(); | |
| 48 | UINT8 code = state->m_videoram[tile_index]; | |
| 49 | UINT8 color = state->m_colorram[tile_index]; | |
| 50 | SET_TILE_INFO( | |
| 47 | UINT8 code = m_videoram[tile_index]; | |
| 48 | UINT8 color = m_colorram[tile_index]; | |
| 49 | SET_TILE_INFO_MEMBER( | |
| 51 | 50 | 0, |
| 52 | 51 | code + ((color & 0x18)<<5), |
| 53 | 52 | color & 0x07, |
| r17673 | r17674 | |
| 68 | 67 | |
| 69 | 68 | |
| 70 | 69 | /* logical (col,row) -> memory offset */ |
| 71 | ||
| 70 | ||
| 72 | 71 | { |
| 73 | 72 | return col * num_rows + (num_rows - row - 1); |
| 74 | 73 | } |
| r17673 | r17674 | |
| 77 | 76 | VIDEO_START( amspdwy ) |
| 78 | 77 | { |
| 79 | 78 | amspdwy_state *state = machine.driver_data<amspdwy_state>(); |
| 80 | state->m_bg_tilemap = tilemap | |
| 79 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(amspdwy_state::get_tile_info),state), tilemap_mapper_delegate(FUNC(amspdwy_state::tilemap_scan_cols_back),state), 8, 8, 0x20, 0x20); | |
| 81 | 80 | } |
| 82 | 81 | |
| 83 | 82 |
| r17673 | r17674 | |
|---|---|---|
| 16 | 16 | * |
| 17 | 17 | *************************************/ |
| 18 | 18 | |
| 19 | ||
| 19 | ||
| 20 | 20 | { |
| 21 | atarig1_state *state = machine.driver_data<atarig1_state>(); | |
| 22 | UINT16 data = state->m_alpha[tile_index]; | |
| 21 | UINT16 data = m_alpha[tile_index]; | |
| 23 | 22 | int code = data & 0xfff; |
| 24 | 23 | int color = (data >> 12) & 0x0f; |
| 25 | 24 | int opaque = data & 0x8000; |
| 26 | SET_TILE_INFO(1, code, color, opaque ? TILE_FORCE_LAYER0 : 0); | |
| 25 | SET_TILE_INFO_MEMBER(1, code, color, opaque ? TILE_FORCE_LAYER0 : 0); | |
| 27 | 26 | } |
| 28 | 27 | |
| 29 | 28 | |
| 30 | ||
| 29 | ||
| 31 | 30 | { |
| 32 | atarig1_state *state = machine.driver_data<atarig1_state>(); | |
| 33 | UINT16 data = state->m_playfield[tile_index]; | |
| 34 | int code = (state->m_playfield_tile_bank << 12) | (data & 0xfff); | |
| 31 | UINT16 data = m_playfield[tile_index]; | |
| 32 | int code = (m_playfield_tile_bank << 12) | (data & 0xfff); | |
| 35 | 33 | int color = (data >> 12) & 7; |
| 36 | SET_TILE_INFO(0, code, color, (data >> 15) & 1); | |
| 34 | SET_TILE_INFO_MEMBER(0, code, color, (data >> 15) & 1); | |
| 37 | 35 | } |
| 38 | 36 | |
| 39 | 37 | |
| r17673 | r17674 | |
| 52 | 50 | atarigen_blend_gfx(machine, 0, 2, 0x0f, 0x10); |
| 53 | 51 | |
| 54 | 52 | /* initialize the playfield */ |
| 55 | state->m_playfield_tilemap = tilemap | |
| 53 | state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(atarig1_state::get_playfield_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,64); | |
| 56 | 54 | |
| 57 | 55 | /* initialize the motion objects */ |
| 58 | 56 | state->m_rle = machine.device("rle"); |
| 59 | 57 | |
| 60 | 58 | /* initialize the alphanumerics */ |
| 61 | state->m_alpha_tilemap = tilemap | |
| 59 | state->m_alpha_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(atarig1_state::get_alpha_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,32); | |
| 62 | 60 | state->m_alpha_tilemap->set_transparent_pen(0); |
| 63 | 61 | |
| 64 | 62 | /* reset statics */ |
| r17673 | r17674 | |
|---|---|---|
| 17 | 17 | * |
| 18 | 18 | *************************************/ |
| 19 | 19 | |
| 20 | ||
| 20 | ||
| 21 | 21 | { |
| 22 | toobin_state *state = machine.driver_data<toobin_state>(); | |
| 23 | UINT16 data = state->m_alpha[tile_index]; | |
| 22 | UINT16 data = m_alpha[tile_index]; | |
| 24 | 23 | int code = data & 0x3ff; |
| 25 | 24 | int color = (data >> 12) & 0x0f; |
| 26 | SET_TILE_INFO(2, code, color, (data >> 10) & 1); | |
| 25 | SET_TILE_INFO_MEMBER(2, code, color, (data >> 10) & 1); | |
| 27 | 26 | } |
| 28 | 27 | |
| 29 | 28 | |
| 30 | ||
| 29 | ||
| 31 | 30 | { |
| 32 | toobin_state *state = machine.driver_data<toobin_state>(); | |
| 33 | UINT16 data1 = state->m_playfield[tile_index * 2]; | |
| 34 | UINT16 data2 = state->m_playfield[tile_index * 2 + 1]; | |
| 31 | UINT16 data1 = m_playfield[tile_index * 2]; | |
| 32 | UINT16 data2 = m_playfield[tile_index * 2 + 1]; | |
| 35 | 33 | int code = data2 & 0x3fff; |
| 36 | 34 | int color = data1 & 0x0f; |
| 37 | SET_TILE_INFO(0, code, color, TILE_FLIPYX(data2 >> 14)); | |
| 35 | SET_TILE_INFO_MEMBER(0, code, color, TILE_FLIPYX(data2 >> 14)); | |
| 38 | 36 | tileinfo.category = (data1 >> 4) & 3; |
| 39 | 37 | } |
| 40 | 38 | |
| r17673 | r17674 | |
| 87 | 85 | toobin_state *state = machine.driver_data<toobin_state>(); |
| 88 | 86 | |
| 89 | 87 | /* initialize the playfield */ |
| 90 | state->m_playfield_tilemap = tilemap | |
| 88 | state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(toobin_state::get_playfield_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 128,64); | |
| 91 | 89 | |
| 92 | 90 | /* initialize the motion objects */ |
| 93 | 91 | atarimo_init(machine, 0, &modesc); |
| 94 | 92 | |
| 95 | 93 | /* initialize the alphanumerics */ |
| 96 | state->m_alpha_tilemap = tilemap | |
| 94 | state->m_alpha_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(toobin_state::get_alpha_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,48); | |
| 97 | 95 | state->m_alpha_tilemap->set_transparent_pen(0); |
| 98 | 96 | |
| 99 | 97 | /* allocate a playfield bitmap for rendering */ |
| r17673 | r17674 | |
|---|---|---|
| 16 | 16 | |
| 17 | 17 | ***************************************************************************/ |
| 18 | 18 | |
| 19 | ||
| 19 | ||
| 20 | 20 | { |
| 21 | srumbler_state *state = machine.driver_data<srumbler_state>(); | |
| 22 | UINT8 attr = state->m_foregroundram[2*tile_index]; | |
| 23 | SET_TILE_INFO( | |
| 21 | UINT8 attr = m_foregroundram[2*tile_index]; | |
| 22 | SET_TILE_INFO_MEMBER( | |
| 24 | 23 | 0, |
| 25 | | |
| 24 | | |
| 26 | 25 | (attr & 0x3c) >> 2, |
| 27 | 26 | (attr & 0x40) ? TILE_FORCE_LAYER0 : 0); |
| 28 | 27 | } |
| 29 | 28 | |
| 30 | ||
| 29 | ||
| 31 | 30 | { |
| 32 | srumbler_state *state = machine.driver_data<srumbler_state>(); | |
| 33 | UINT8 attr = state->m_backgroundram[2*tile_index]; | |
| 34 | SET_TILE_INFO( | |
| 31 | UINT8 attr = m_backgroundram[2*tile_index]; | |
| 32 | SET_TILE_INFO_MEMBER( | |
| 35 | 33 | 1, |
| 36 | | |
| 34 | | |
| 37 | 35 | (attr & 0xe0) >> 5, |
| 38 | 36 | ((attr & 0x08) ? TILE_FLIPY : 0)); |
| 39 | 37 | tileinfo.group = (attr & 0x10) >> 4; |
| r17673 | r17674 | |
| 50 | 48 | VIDEO_START( srumbler ) |
| 51 | 49 | { |
| 52 | 50 | srumbler_state *state = machine.driver_data<srumbler_state>(); |
| 53 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info,TILEMAP_SCAN_COLS,8,8,64,32); | |
| 54 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_COLS, 16,16,64,64); | |
| 51 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(srumbler_state::get_fg_tile_info),state),TILEMAP_SCAN_COLS,8,8,64,32); | |
| 52 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(srumbler_state::get_bg_tile_info),state),TILEMAP_SCAN_COLS, 16,16,64,64); | |
| 55 | 53 | |
| 56 | 54 | state->m_fg_tilemap->set_transparent_pen(3); |
| 57 | 55 |
| r17673 | r17674 | |
|---|---|---|
| 54 | 54 | m_text_layer->mark_tile_dirty(offset); |
| 55 | 55 | } |
| 56 | 56 | |
| 57 | ||
| 57 | ||
| 58 | 58 | { |
| 59 | legionna_state *state = machine.driver_data<legionna_state>(); | |
| 60 | int tile=state->m_back_data[tile_index]; | |
| 59 | int tile=m_back_data[tile_index]; | |
| 61 | 60 | int color=(tile>>12)&0xf; |
| 62 | 61 | |
| 63 | 62 | tile &= 0xfff; |
| 64 | tile |= | |
| 63 | tile |= | |
| 65 | 64 | |
| 66 | SET_TILE_INFO(1,tile,color,0); | |
| 65 | SET_TILE_INFO_MEMBER(1,tile,color,0); | |
| 67 | 66 | } |
| 68 | 67 | |
| 69 | ||
| 68 | ||
| 70 | 69 | { |
| 71 | legionna_state *state = machine.driver_data<legionna_state>(); | |
| 72 | int tile=state->m_mid_data[tile_index]; | |
| 70 | int tile=m_mid_data[tile_index]; | |
| 73 | 71 | int color=(tile>>12)&0xf; |
| 74 | 72 | |
| 75 | 73 | tile &= 0xfff; |
| 76 | 74 | |
| 77 | SET_TILE_INFO(5,tile,color,0); | |
| 75 | SET_TILE_INFO_MEMBER(5,tile,color,0); | |
| 78 | 76 | } |
| 79 | 77 | |
| 80 | ||
| 78 | ||
| 81 | 79 | { |
| 82 | legionna_state *state = machine.driver_data<legionna_state>(); | |
| 83 | int tile=state->m_mid_data[tile_index]; | |
| 80 | int tile=m_mid_data[tile_index]; | |
| 84 | 81 | int color=(tile>>12)&0xf; |
| 85 | 82 | |
| 86 | 83 | tile &= 0xfff; |
| 87 | tile |= | |
| 84 | tile |= | |
| 88 | 85 | |
| 89 | SET_TILE_INFO(5,tile,color,0); | |
| 86 | SET_TILE_INFO_MEMBER(5,tile,color,0); | |
| 90 | 87 | } |
| 91 | 88 | |
| 92 | ||
| 89 | ||
| 93 | 90 | { |
| 94 | legionna_state *state = machine.driver_data<legionna_state>(); | |
| 95 | int tile=state->m_mid_data[tile_index]; | |
| 91 | int tile=m_mid_data[tile_index]; | |
| 96 | 92 | int color=(tile>>12)&0xf; |
| 97 | 93 | |
| 98 | 94 | tile &= 0xfff; |
| r17673 | r17674 | |
| 100 | 96 | tile |= 0x1000; |
| 101 | 97 | color += 0x10; |
| 102 | 98 | |
| 103 | SET_TILE_INFO(1,tile,color,0); | |
| 99 | SET_TILE_INFO_MEMBER(1,tile,color,0); | |
| 104 | 100 | } |
| 105 | 101 | |
| 106 | ||
| 102 | ||
| 107 | 103 | { |
| 108 | legionna_state *state = machine.driver_data<legionna_state>(); | |
| 109 | int tile=state->m_fore_data[tile_index]; | |
| 104 | int tile=m_fore_data[tile_index]; | |
| 110 | 105 | int color=(tile>>12)&0xf; |
| 111 | 106 | |
| 112 | 107 | // legionnaire tile numbers / gfx set wrong, see screen after coin insertion |
| 113 | 108 | tile &= 0xfff; |
| 114 | 109 | |
| 115 | SET_TILE_INFO(4,tile,color,0); | |
| 110 | SET_TILE_INFO_MEMBER(4,tile,color,0); | |
| 116 | 111 | } |
| 117 | 112 | |
| 118 | ||
| 113 | ||
| 119 | 114 | { |
| 120 | legionna_state *state = machine.driver_data<legionna_state>(); | |
| 121 | int tile=state->m_fore_data[tile_index]; | |
| 115 | int tile=m_fore_data[tile_index]; | |
| 122 | 116 | int color=(tile>>12)&0xf; |
| 123 | 117 | |
| 124 | 118 | tile &= 0xfff; |
| 125 | tile |= | |
| 119 | tile |= | |
| 126 | 120 | |
| 127 | SET_TILE_INFO(4,tile,color,0); | |
| 121 | SET_TILE_INFO_MEMBER(4,tile,color,0); | |
| 128 | 122 | } |
| 129 | 123 | |
| 130 | ||
| 124 | ||
| 131 | 125 | { |
| 132 | legionna_state *state = machine.driver_data<legionna_state>(); | |
| 133 | int tile = state->m_textram[tile_index]; | |
| 126 | int tile = m_textram[tile_index]; | |
| 134 | 127 | int color=(tile>>12)&0xf; |
| 135 | 128 | |
| 136 | 129 | tile &= 0xfff; |
| 137 | 130 | |
| 138 | SET_TILE_INFO(0,tile,color,0); | |
| 131 | SET_TILE_INFO_MEMBER(0,tile,color,0); | |
| 139 | 132 | } |
| 140 | 133 | |
| 141 | 134 | VIDEO_START( legionna ) |
| 142 | 135 | { |
| 143 | 136 | legionna_state *state = machine.driver_data<legionna_state>(); |
| 144 | state->m_background_layer = tilemap_create(machine, get_back_tile_info,TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 145 | state->m_foreground_layer = tilemap_create(machine, get_fore_tile_info,TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 146 | state->m_midground_layer = tilemap_create(machine, get_mid_tile_info, TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 147 | state->m_text_layer = tilemap_create(machine, get_text_tile_info,TILEMAP_SCAN_ROWS, 8,8,64,32); | |
| 137 | state->m_background_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(legionna_state::get_back_tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 138 | state->m_foreground_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(legionna_state::get_fore_tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 139 | state->m_midground_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(legionna_state::get_mid_tile_info),state), TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 140 | state->m_text_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(legionna_state::get_text_tile_info),state),TILEMAP_SCAN_ROWS, 8,8,64,32); | |
| 148 | 141 | |
| 149 | 142 | state->m_scrollram16 = auto_alloc_array(machine, UINT16, 0x60/2); |
| 150 | 143 | state->m_sprite_xoffs = 0; |
| r17673 | r17674 | |
| 162 | 155 | VIDEO_START( denjinmk ) |
| 163 | 156 | { |
| 164 | 157 | legionna_state *state = machine.driver_data<legionna_state>(); |
| 165 | state->m_background_layer = tilemap_create(machine, get_back_tile_info,TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 166 | state->m_foreground_layer = tilemap_create(machine, get_fore_tile_info_denji,TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 167 | state->m_midground_layer = tilemap_create(machine, get_mid_tile_info_denji, TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 168 | state->m_text_layer = tilemap_create(machine, get_text_tile_info,TILEMAP_SCAN_ROWS, 8,8,64,32); | |
| 158 | state->m_background_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(legionna_state::get_back_tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 159 | state->m_foreground_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(legionna_state::get_fore_tile_info_denji),state),TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 160 | state->m_midground_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(legionna_state::get_mid_tile_info_denji),state), TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 161 | state->m_text_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(legionna_state::get_text_tile_info),state),TILEMAP_SCAN_ROWS, 8,8,64,32); | |
| 169 | 162 | |
| 170 | 163 | state->m_scrollram16 = auto_alloc_array(machine, UINT16, 0x60/2); |
| 171 | 164 | state->m_sprite_xoffs = 0; |
| r17673 | r17674 | |
| 183 | 176 | VIDEO_START( cupsoc ) |
| 184 | 177 | { |
| 185 | 178 | legionna_state *state = machine.driver_data<legionna_state>(); |
| 186 | state->m_background_layer = tilemap_create(machine, get_back_tile_info,TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 187 | state->m_foreground_layer = tilemap_create(machine, get_fore_tile_info,TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 188 | state->m_midground_layer = tilemap_create(machine, get_mid_tile_info_cupsoc, TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 189 | state->m_text_layer = tilemap_create(machine, get_text_tile_info,TILEMAP_SCAN_ROWS, 8,8,64,32); | |
| 179 | state->m_background_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(legionna_state::get_back_tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 180 | state->m_foreground_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(legionna_state::get_fore_tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 181 | state->m_midground_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(legionna_state::get_mid_tile_info_cupsoc),state), TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 182 | state->m_text_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(legionna_state::get_text_tile_info),state),TILEMAP_SCAN_ROWS, 8,8,64,32); | |
| 190 | 183 | |
| 191 | 184 | state->m_scrollram16 = auto_alloc_array(machine, UINT16, 0x60/2); |
| 192 | 185 | state->m_sprite_xoffs = 0; |
| r17673 | r17674 | |
|---|---|---|
| 18 | 18 | * |
| 19 | 19 | *************************************/ |
| 20 | 20 | |
| 21 | ||
| 21 | ||
| 22 | 22 | { |
| 23 | mcr68_state *state = machine.driver_data<mcr68_state>(); | |
| 24 | UINT16 *videoram = state->m_videoram; | |
| 23 | UINT16 *videoram = m_videoram; | |
| 25 | 24 | int data = LOW_BYTE(videoram[tile_index * 2]) | (LOW_BYTE(videoram[tile_index * 2 + 1]) << 8); |
| 26 | 25 | int code = (data & 0x3ff) | ((data >> 4) & 0xc00); |
| 27 | 26 | int color = (~data >> 12) & 3; |
| 28 | SET_TILE_INFO(0, code, color, TILE_FLIPYX((data >> 10) & 3)); | |
| 29 | if (machine.gfx[0]->elements() < 0x1000) | |
| 27 | SET_TILE_INFO_MEMBER(0, code, color, TILE_FLIPYX((data >> 10) & 3)); | |
| 28 | if (machine().gfx[0]->elements() < 0x1000) | |
| 30 | 29 | tileinfo.category = (data >> 15) & 1; |
| 31 | 30 | } |
| 32 | 31 | |
| 33 | 32 | |
| 34 | ||
| 33 | ||
| 35 | 34 | { |
| 36 | mcr68_state *state = machine.driver_data<mcr68_state>(); | |
| 37 | UINT16 *videoram = state->m_videoram; | |
| 35 | UINT16 *videoram = m_videoram; | |
| 38 | 36 | int data = videoram[tile_index]; |
| 39 | 37 | int color = (data >> 13) & 7; |
| 40 | SET_TILE_INFO(0, data & 0x3ff, color, TILE_FLIPYX((data >> 11) & 3)); | |
| 38 | SET_TILE_INFO_MEMBER(0, data & 0x3ff, color, TILE_FLIPYX((data >> 11) & 3)); | |
| 41 | 39 | } |
| 42 | 40 | |
| 43 | 41 | |
| 44 | ||
| 42 | ||
| 45 | 43 | { |
| 46 | mcr68_state *state = machine.driver_data<mcr68_state>(); | |
| 47 | UINT16 *videoram = state->m_videoram; | |
| 44 | UINT16 *videoram = m_videoram; | |
| 48 | 45 | int data = videoram[tile_index]; |
| 49 | 46 | int color = (data >> 13) & 7; |
| 50 | SET_TILE_INFO(2, data & 0x3ff, color, TILE_FLIPYX((data >> 11) & 3)); | |
| 47 | SET_TILE_INFO_MEMBER(2, data & 0x3ff, color, TILE_FLIPYX((data >> 11) & 3)); | |
| 51 | 48 | tileinfo.category = (color != 0); |
| 52 | 49 | } |
| 53 | 50 | |
| r17673 | r17674 | |
| 63 | 60 | { |
| 64 | 61 | mcr68_state *state = machine.driver_data<mcr68_state>(); |
| 65 | 62 | /* initialize the background tilemap */ |
| 66 | state->m_bg_tilemap = tilemap | |
| 63 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mcr68_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16,16, 32,32); | |
| 67 | 64 | state->m_bg_tilemap->set_transparent_pen(0); |
| 68 | 65 | } |
| 69 | 66 | |
| r17673 | r17674 | |
| 79 | 76 | int code, y, x; |
| 80 | 77 | |
| 81 | 78 | /* initialize the background tilemap */ |
| 82 | state->m_bg_tilemap = tilemap | |
| 79 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mcr68_state::zwackery_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16,16, 32,32); | |
| 83 | 80 | |
| 84 | 81 | /* initialize the foreground tilemap */ |
| 85 | state->m_fg_tilemap = tilemap | |
| 82 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mcr68_state::zwackery_get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16,16, 32,32); | |
| 86 | 83 | state->m_fg_tilemap->set_transparent_pen(0); |
| 87 | 84 | |
| 88 | 85 | /* allocate memory for the assembled gfx data */ |
| r17673 | r17674 | |
|---|---|---|
| 48 | 48 | flip_screen_set(data & 0x01); |
| 49 | 49 | } |
| 50 | 50 | |
| 51 | ||
| 51 | ||
| 52 | 52 | { |
| 53 | pbaction_state *state = machine.driver_data<pbaction_state>(); | |
| 54 | int attr = state->m_colorram[tile_index]; | |
| 55 | int code = state->m_videoram[tile_index] + 0x10 * (attr & 0x70); | |
| 53 | int attr = m_colorram[tile_index]; | |
| 54 | int code = m_videoram[tile_index] + 0x10 * (attr & 0x70); | |
| 56 | 55 | int color = attr & 0x07; |
| 57 | 56 | int flags = (attr & 0x80) ? TILE_FLIPY : 0; |
| 58 | 57 | |
| 59 | SET_TILE_INFO(1, code, color, flags); | |
| 58 | SET_TILE_INFO_MEMBER(1, code, color, flags); | |
| 60 | 59 | } |
| 61 | 60 | |
| 62 | ||
| 61 | ||
| 63 | 62 | { |
| 64 | pbaction_state *state = machine.driver_data<pbaction_state>(); | |
| 65 | int attr = state->m_colorram2[tile_index]; | |
| 66 | int code = state->m_videoram2[tile_index] + 0x10 * (attr & 0x30); | |
| 63 | int attr = m_colorram2[tile_index]; | |
| 64 | int code = m_videoram2[tile_index] + 0x10 * (attr & 0x30); | |
| 67 | 65 | int color = attr & 0x0f; |
| 68 | 66 | int flags = ((attr & 0x40) ? TILE_FLIPX : 0) | ((attr & 0x80) ? TILE_FLIPY : 0); |
| 69 | 67 | |
| 70 | SET_TILE_INFO(0, code, color, flags); | |
| 68 | SET_TILE_INFO_MEMBER(0, code, color, flags); | |
| 71 | 69 | } |
| 72 | 70 | |
| 73 | 71 | VIDEO_START( pbaction ) |
| 74 | 72 | { |
| 75 | 73 | pbaction_state *state = machine.driver_data<pbaction_state>(); |
| 76 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 77 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 74 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pbaction_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 75 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pbaction_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 78 | 76 | |
| 79 | 77 | state->m_fg_tilemap->set_transparent_pen(0); |
| 80 | 78 | } |
| r17673 | r17674 | |
|---|---|---|
| 164 | 164 | xxxx -xxx tiles color (background). |
| 165 | 165 | */ |
| 166 | 166 | |
| 167 | ||
| 167 | ||
| 168 | 168 | { |
| 169 | funworld_state *state = machine.driver_data<funworld_state>(); | |
| 170 | 169 | /* - bits - |
| 171 | 170 | 7654 3210 |
| 172 | 171 | xxxx ---- tiles color. |
| 173 | 172 | ---- xxxx unused. |
| 174 | 173 | */ |
| 175 | 174 | int offs = tile_index; |
| 176 | int attr = | |
| 175 | int attr = | |
| 177 | 176 | int code = attr & 0xfff; |
| 178 | int color = | |
| 177 | int color = | |
| 179 | 178 | |
| 180 | SET_TILE_INFO(0, code, color, 0); | |
| 179 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 181 | 180 | } |
| 182 | 181 | |
| 183 | 182 | |
| 184 | 183 | VIDEO_START(funworld) |
| 185 | 184 | { |
| 186 | 185 | funworld_state *state = machine.driver_data<funworld_state>(); |
| 187 | state->m_bg_tilemap = tilemap | |
| 186 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(funworld_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 4, 8, 96, 29); | |
| 188 | 187 | } |
| 189 | 188 | |
| 190 | 189 | VIDEO_START(magicrd2) |
| 191 | 190 | { |
| 192 | 191 | funworld_state *state = machine.driver_data<funworld_state>(); |
| 193 | state->m_bg_tilemap = tilemap | |
| 192 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(funworld_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 4, 8, 112, 34); | |
| 194 | 193 | } |
| 195 | 194 | |
| 196 | 195 |
| r17673 | r17674 | |
|---|---|---|
| 142 | 142 | m_bg_tilemap->set_scrolly(0, data); |
| 143 | 143 | } |
| 144 | 144 | |
| 145 | ||
| 145 | ||
| 146 | 146 | { |
| 147 | gsword_state *state = machine.driver_data<gsword_state>(); | |
| 148 | UINT8 *videoram = state->m_videoram; | |
| 149 | int code = videoram[tile_index] + ((state->m_charbank & 0x03) << 8); | |
| 150 | int color = ((code & 0x3c0) >> 6) + 16 * state->m_charpalbank; | |
| 151 | int flags = state->m_flipscreen ? (TILE_FLIPX | TILE_FLIPY) : 0; | |
| 147 | UINT8 *videoram = m_videoram; | |
| 148 | int code = videoram[tile_index] + ((m_charbank & 0x03) << 8); | |
| 149 | int color = ((code & 0x3c0) >> 6) + 16 * m_charpalbank; | |
| 150 | int flags = m_flipscreen ? (TILE_FLIPX | TILE_FLIPY) : 0; | |
| 152 | 151 | |
| 153 | SET_TILE_INFO(0, code, color, flags); | |
| 152 | SET_TILE_INFO_MEMBER(0, code, color, flags); | |
| 154 | 153 | } |
| 155 | 154 | |
| 156 | 155 | VIDEO_START( gsword ) |
| 157 | 156 | { |
| 158 | 157 | gsword_state *state = machine.driver_data<gsword_state>(); |
| 159 | state->m_bg_tilemap = tilemap | |
| 158 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gsword_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, | |
| 160 | 159 | 8, 8, 32, 64); |
| 161 | 160 | } |
| 162 | 161 |
| r17673 | r17674 | |
|---|---|---|
| 125 | 125 | } |
| 126 | 126 | } |
| 127 | 127 | |
| 128 | ||
| 128 | ||
| 129 | 129 | { |
| 130 | mario_state *state = machine.driver_data<mario_state>(); | |
| 131 | int code = state->m_videoram[tile_index] + 256 * state->m_gfx_bank; | |
| 130 | int code = m_videoram[tile_index] + 256 * m_gfx_bank; | |
| 132 | 131 | int color; |
| 133 | 132 | |
| 134 | color = (( | |
| 133 | color = (( | |
| 135 | 134 | color = color >> 2; |
| 136 | SET_TILE_INFO(0, code, color, 0); | |
| 135 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 137 | 136 | } |
| 138 | 137 | |
| 139 | 138 | VIDEO_START( mario ) |
| 140 | 139 | { |
| 141 | 140 | mario_state *state = machine.driver_data<mario_state>(); |
| 142 | 141 | |
| 143 | state->m_bg_tilemap = tilemap | |
| 142 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mario_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, | |
| 144 | 143 | 8, 8, 32, 32); |
| 145 | 144 | |
| 146 | 145 | state->m_gfx_bank = 0; |
| r17673 | r17674 | |
|---|---|---|
| 27 | 27 | } |
| 28 | 28 | |
| 29 | 29 | |
| 30 | ||
| 30 | ||
| 31 | 31 | { |
| 32 | atarifb_state *state = machine.driver_data<atarifb_state>(); | |
| 33 | get_tile_info_common(machine, tileinfo, tile_index, state->m_alphap1_videoram); | |
| 32 | get_tile_info_common(machine(), tileinfo, tile_index, m_alphap1_videoram); | |
| 34 | 33 | } |
| 35 | 34 | |
| 36 | 35 | |
| 37 | ||
| 36 | ||
| 38 | 37 | { |
| 39 | atarifb_state *state = machine.driver_data<atarifb_state>(); | |
| 40 | get_tile_info_common(machine, tileinfo, tile_index, state->m_alphap2_videoram); | |
| 38 | get_tile_info_common(machine(), tileinfo, tile_index, m_alphap2_videoram); | |
| 41 | 39 | } |
| 42 | 40 | |
| 43 | 41 | |
| 44 | ||
| 42 | ||
| 45 | 43 | { |
| 46 | atarifb_state *state = machine.driver_data<atarifb_state>(); | |
| 47 | int code = state->m_field_videoram[tile_index] & 0x3f; | |
| 48 | int flipyx = state->m_field_videoram[tile_index] >> 6; | |
| 44 | int code = m_field_videoram[tile_index] & 0x3f; | |
| 45 | int flipyx = m_field_videoram[tile_index] >> 6; | |
| 49 | 46 | |
| 50 | SET_TILE_INFO(1, code, 0, TILE_FLIPYX(flipyx)); | |
| 47 | SET_TILE_INFO_MEMBER(1, code, 0, TILE_FLIPYX(flipyx)); | |
| 51 | 48 | } |
| 52 | 49 | |
| 53 | 50 | |
| r17673 | r17674 | |
| 94 | 91 | { |
| 95 | 92 | atarifb_state *state = machine.driver_data<atarifb_state>(); |
| 96 | 93 | |
| 97 | state->m_alpha1_tilemap = tilemap_create(machine, alpha1_get_tile_info, TILEMAP_SCAN_COLS, 8, 8, 3, 32); | |
| 98 | state->m_alpha2_tilemap = tilemap_create(machine, alpha2_get_tile_info, TILEMAP_SCAN_COLS, 8, 8, 3, 32); | |
| 99 | state->m_field_tilemap = tilemap_create(machine, field_get_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 94 | state->m_alpha1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(atarifb_state::alpha1_get_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 3, 32); | |
| 95 | state->m_alpha2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(atarifb_state::alpha2_get_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 3, 32); | |
| 96 | state->m_field_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(atarifb_state::field_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 100 | 97 | } |
| 101 | 98 | |
| 102 | 99 |
| r17673 | r17674 | |
|---|---|---|
| 55 | 55 | } |
| 56 | 56 | |
| 57 | 57 | |
| 58 | ||
| 58 | ||
| 59 | 59 | { |
| 60 | silkroad_state *state = machine.driver_data<silkroad_state>(); | |
| 61 | int code = ((state->m_vidram[tile_index] & 0xffff0000) >> 16 ); | |
| 62 | int color = ((state->m_vidram[tile_index] & 0x000001f)); | |
| 63 | int flipx = ((state->m_vidram[tile_index] & 0x0000080) >> 7); | |
| 60 | int code = ((m_vidram[tile_index] & 0xffff0000) >> 16 ); | |
| 61 | int color = ((m_vidram[tile_index] & 0x000001f)); | |
| 62 | int flipx = ((m_vidram[tile_index] & 0x0000080) >> 7); | |
| 64 | 63 | |
| 65 | 64 | code += 0x18000; |
| 66 | 65 | |
| 67 | SET_TILE_INFO( | |
| 66 | SET_TILE_INFO_MEMBER( | |
| 68 | 67 | 0, |
| 69 | 68 | code, |
| 70 | 69 | color, |
| r17673 | r17674 | |
| 80 | 79 | m_fg_tilemap->mark_tile_dirty(offset); |
| 81 | 80 | } |
| 82 | 81 | |
| 83 | ||
| 82 | ||
| 84 | 83 | { |
| 85 | silkroad_state *state = machine.driver_data<silkroad_state>(); | |
| 86 | int code = ((state->m_vidram2[tile_index] & 0xffff0000) >> 16 ); | |
| 87 | int color = ((state->m_vidram2[tile_index] & 0x000001f)); | |
| 88 | int flipx = ((state->m_vidram2[tile_index] & 0x0000080) >> 7); | |
| 84 | int code = ((m_vidram2[tile_index] & 0xffff0000) >> 16 ); | |
| 85 | int color = ((m_vidram2[tile_index] & 0x000001f)); | |
| 86 | int flipx = ((m_vidram2[tile_index] & 0x0000080) >> 7); | |
| 89 | 87 | code += 0x18000; |
| 90 | SET_TILE_INFO( | |
| 88 | SET_TILE_INFO_MEMBER( | |
| 91 | 89 | 0, |
| 92 | 90 | code, |
| 93 | 91 | color, |
| r17673 | r17674 | |
| 103 | 101 | m_fg2_tilemap->mark_tile_dirty(offset); |
| 104 | 102 | } |
| 105 | 103 | |
| 106 | ||
| 104 | ||
| 107 | 105 | { |
| 108 | silkroad_state *state = machine.driver_data<silkroad_state>(); | |
| 109 | int code = ((state->m_vidram3[tile_index] & 0xffff0000) >> 16 ); | |
| 110 | int color = ((state->m_vidram3[tile_index] & 0x000001f)); | |
| 111 | int flipx = ((state->m_vidram3[tile_index] & 0x0000080) >> 7); | |
| 106 | int code = ((m_vidram3[tile_index] & 0xffff0000) >> 16 ); | |
| 107 | int color = ((m_vidram3[tile_index] & 0x000001f)); | |
| 108 | int flipx = ((m_vidram3[tile_index] & 0x0000080) >> 7); | |
| 112 | 109 | code += 0x18000; |
| 113 | SET_TILE_INFO( | |
| 110 | SET_TILE_INFO_MEMBER( | |
| 114 | 111 | 0, |
| 115 | 112 | code, |
| 116 | 113 | color, |
| r17673 | r17674 | |
| 129 | 126 | VIDEO_START(silkroad) |
| 130 | 127 | { |
| 131 | 128 | silkroad_state *state = machine.driver_data<silkroad_state>(); |
| 132 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); | |
| 133 | state->m_fg2_tilemap = tilemap_create(machine, get_fg2_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); | |
| 134 | state->m_fg3_tilemap = tilemap_create(machine, get_fg3_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); | |
| 129 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(silkroad_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); | |
| 130 | state->m_fg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(silkroad_state::get_fg2_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); | |
| 131 | state->m_fg3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(silkroad_state::get_fg3_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); | |
| 135 | 132 | |
| 136 | 133 | state->m_fg_tilemap->set_transparent_pen(0); |
| 137 | 134 | state->m_fg2_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 11 | 11 | |
| 12 | 12 | |
| 13 | 13 | |
| 14 | ||
| 14 | ||
| 15 | 15 | { |
| 16 | 16 | return num_rows * ((col + 16) % 48) + row; |
| 17 | 17 | } |
| 18 | 18 | |
| 19 | 19 | |
| 20 | ||
| 20 | ||
| 21 | 21 | { |
| 22 | videopin_state *state = machine.driver_data<videopin_state>(); | |
| 23 | UINT8 code = state->m_video_ram[tile_index]; | |
| 22 | UINT8 code = m_video_ram[tile_index]; | |
| 24 | 23 | |
| 25 | SET_TILE_INFO(0, code, 0, (code & 0x40) ? TILE_FLIPY : 0); | |
| 24 | SET_TILE_INFO_MEMBER(0, code, 0, (code & 0x40) ? TILE_FLIPY : 0); | |
| 26 | 25 | } |
| 27 | 26 | |
| 28 | 27 | |
| 29 | 28 | VIDEO_START( videopin ) |
| 30 | 29 | { |
| 31 | 30 | videopin_state *state = machine.driver_data<videopin_state>(); |
| 32 | state->m_bg_tilemap = tilemap | |
| 31 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(videopin_state::get_tile_info),state), tilemap_mapper_delegate(FUNC(videopin_state::get_memory_offset),state), 8, 8, 48, 32); | |
| 33 | 32 | } |
| 34 | 33 | |
| 35 | 34 |
| r17673 | r17674 | |
|---|---|---|
| 14 | 14 | |
| 15 | 15 | /******************************************************************************/ |
| 16 | 16 | |
| 17 | ||
| 17 | ||
| 18 | 18 | { |
| 19 | tecmo16_state *state = machine.driver_data<tecmo16_state>(); | |
| 20 | int tile = state->m_videoram[tile_index] & 0x1fff; | |
| 21 | int color = state->m_colorram[tile_index] & 0x0f; | |
| 19 | int tile = m_videoram[tile_index] & 0x1fff; | |
| 20 | int color = m_colorram[tile_index] & 0x0f; | |
| 22 | 21 | |
| 23 | 22 | /* bit 4 controls blending */ |
| 24 | tileinfo.category = ( | |
| 23 | tileinfo.category = ( | |
| 25 | 24 | |
| 26 | SET_TILE_INFO( | |
| 25 | SET_TILE_INFO_MEMBER( | |
| 27 | 26 | 1, |
| 28 | 27 | tile, |
| 29 | 28 | color | (tileinfo.category ? 0x70 : 0x00), |
| 30 | 29 | 0); |
| 31 | 30 | } |
| 32 | 31 | |
| 33 | ||
| 32 | ||
| 34 | 33 | { |
| 35 | tecmo16_state *state = machine.driver_data<tecmo16_state>(); | |
| 36 | int tile = state->m_videoram2[tile_index] & 0x1fff; | |
| 37 | int color = (state->m_colorram2[tile_index] & 0x0f)+0x10; | |
| 34 | int tile = m_videoram2[tile_index] & 0x1fff; | |
| 35 | int color = (m_colorram2[tile_index] & 0x0f)+0x10; | |
| 38 | 36 | |
| 39 | SET_TILE_INFO( | |
| 37 | SET_TILE_INFO_MEMBER( | |
| 40 | 38 | 1, |
| 41 | 39 | tile, |
| 42 | 40 | color, |
| 43 | 41 | 0); |
| 44 | 42 | } |
| 45 | 43 | |
| 46 | ||
| 44 | ||
| 47 | 45 | { |
| 48 | tecmo16_state *state = machine.driver_data<tecmo16_state>(); | |
| 49 | int tile = state->m_charram[tile_index]; | |
| 50 | SET_TILE_INFO( | |
| 46 | int tile = m_charram[tile_index]; | |
| 47 | SET_TILE_INFO_MEMBER( | |
| 51 | 48 | 0, |
| 52 | 49 | tile & 0x0fff, |
| 53 | 50 | tile >> 12, |
| r17673 | r17674 | |
| 67 | 64 | /* set up sprites */ |
| 68 | 65 | machine.primary_screen->register_screen_bitmap(state->m_sprite_bitmap); |
| 69 | 66 | |
| 70 | state->m_fg_tilemap = tilemap_create(machine, fg_get_tile_info,TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 71 | state->m_bg_tilemap = tilemap_create(machine, bg_get_tile_info,TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 72 | state->m_tx_tilemap = tilemap_create(machine, tx_get_tile_info,TILEMAP_SCAN_ROWS, 8, 8,64,32); | |
| 67 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tecmo16_state::fg_get_tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 68 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tecmo16_state::bg_get_tile_info),state),TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 69 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tecmo16_state::tx_get_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,32); | |
| 73 | 70 | |
| 74 | 71 | state->m_fg_tilemap->set_transparent_pen(0); |
| 75 | 72 | state->m_bg_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
| 91 | 88 | /* set up sprites */ |
| 92 | 89 | machine.primary_screen->register_screen_bitmap(state->m_sprite_bitmap); |
| 93 | 90 | |
| 94 | state->m_fg_tilemap = tilemap_create(machine, fg_get_tile_info,TILEMAP_SCAN_ROWS,16,16,64,32); | |
| 95 | state->m_bg_tilemap = tilemap_create(machine, bg_get_tile_info,TILEMAP_SCAN_ROWS,16,16,64,32); | |
| 96 | state->m_tx_tilemap = tilemap_create(machine, tx_get_tile_info,TILEMAP_SCAN_ROWS, 8, 8,64,32); | |
| 91 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tecmo16_state::fg_get_tile_info),state),TILEMAP_SCAN_ROWS,16,16,64,32); | |
| 92 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tecmo16_state::bg_get_tile_info),state),TILEMAP_SCAN_ROWS,16,16,64,32); | |
| 93 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tecmo16_state::tx_get_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,32); | |
| 97 | 94 | |
| 98 | 95 | state->m_fg_tilemap->set_transparent_pen(0); |
| 99 | 96 | state->m_bg_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
| 113 | 110 | /* set up sprites */ |
| 114 | 111 | machine.primary_screen->register_screen_bitmap(state->m_sprite_bitmap); |
| 115 | 112 | |
| 116 | state->m_fg_tilemap = tilemap_create(machine, fg_get_tile_info,TILEMAP_SCAN_ROWS,16,16,64,32); | |
| 117 | state->m_bg_tilemap = tilemap_create(machine, bg_get_tile_info,TILEMAP_SCAN_ROWS,16,16,64,32); | |
| 118 | state->m_tx_tilemap = tilemap_create(machine, tx_get_tile_info,TILEMAP_SCAN_ROWS, 8, 8,64,32); | |
| 113 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tecmo16_state::fg_get_tile_info),state),TILEMAP_SCAN_ROWS,16,16,64,32); | |
| 114 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tecmo16_state::bg_get_tile_info),state),TILEMAP_SCAN_ROWS,16,16,64,32); | |
| 115 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tecmo16_state::tx_get_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,32); | |
| 119 | 116 | |
| 120 | 117 | state->m_fg_tilemap->set_transparent_pen(0); |
| 121 | 118 | state->m_bg_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 42 | 42 | m_bg_tilemap->set_scrolly(0, data); |
| 43 | 43 | } |
| 44 | 44 | |
| 45 | ||
| 45 | ||
| 46 | 46 | { |
| 47 | exprraid_state *state = machine.driver_data<exprraid_state>(); | |
| 48 | UINT8 *tilerom = state->memregion("gfx4")->base(); | |
| 47 | UINT8 *tilerom = memregion("gfx4")->base(); | |
| 49 | 48 | |
| 50 | 49 | int data, attr, bank, code, color, flags; |
| 51 | 50 | int quadrant = 0, offs; |
| r17673 | r17674 | |
| 56 | 55 | if (sx >= 16) quadrant++; |
| 57 | 56 | if (sy >= 16) quadrant += 2; |
| 58 | 57 | |
| 59 | offs = (sy % 16) * 16 + (sx % 16) + ( | |
| 58 | offs = (sy % 16) * 16 + (sx % 16) + ( | |
| 60 | 59 | |
| 61 | 60 | data = tilerom[offs]; |
| 62 | 61 | attr = tilerom[offs + 0x4000]; |
| r17673 | r17674 | |
| 67 | 66 | |
| 68 | 67 | tileinfo.category = ((attr & 0x80) ? 1 : 0); |
| 69 | 68 | |
| 70 | SET_TILE_INFO(bank, code, color, flags); | |
| 69 | SET_TILE_INFO_MEMBER(bank, code, color, flags); | |
| 71 | 70 | } |
| 72 | 71 | |
| 73 | ||
| 72 | ||
| 74 | 73 | { |
| 75 | exprraid_state *state = machine.driver_data<exprraid_state>(); | |
| 76 | int attr = state->m_colorram[tile_index]; | |
| 77 | int code = state->m_videoram[tile_index] + ((attr & 0x07) << 8); | |
| 74 | int attr = m_colorram[tile_index]; | |
| 75 | int code = m_videoram[tile_index] + ((attr & 0x07) << 8); | |
| 78 | 76 | int color = (attr & 0x10) >> 4; |
| 79 | 77 | |
| 80 | SET_TILE_INFO(0, code, color, 0); | |
| 78 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 81 | 79 | } |
| 82 | 80 | |
| 83 | 81 | VIDEO_START( exprraid ) |
| 84 | 82 | { |
| 85 | 83 | exprraid_state *state = machine.driver_data<exprraid_state>(); |
| 86 | 84 | |
| 87 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 88 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 85 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(exprraid_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 86 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(exprraid_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 89 | 87 | |
| 90 | 88 | state->m_bg_tilemap->set_scroll_rows(2); |
| 91 | 89 | state->m_fg_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 49 | 49 | } |
| 50 | 50 | |
| 51 | 51 | |
| 52 | ||
| 52 | ||
| 53 | 53 | { |
| 54 | runaway_state *state = machine.driver_data<runaway_state>(); | |
| 55 | UINT8 code = state->m_video_ram[tile_index]; | |
| 54 | UINT8 code = m_video_ram[tile_index]; | |
| 56 | 55 | |
| 57 | SET_TILE_INFO(0, ((code & 0x3f) << 1) | ((code & 0x40) >> 6) | ( | |
| 56 | SET_TILE_INFO_MEMBER(0, ((code & 0x3f) << 1) | ((code & 0x40) >> 6) | ( | |
| 58 | 57 | } |
| 59 | 58 | |
| 60 | 59 | |
| 61 | ||
| 60 | ||
| 62 | 61 | { |
| 63 | runaway_state *state = machine.driver_data<runaway_state>(); | |
| 64 | UINT8 code = state->m_video_ram[tile_index]; | |
| 62 | UINT8 code = m_video_ram[tile_index]; | |
| 65 | 63 | |
| 66 | SET_TILE_INFO(0, ((code & 0x7f) << 1) | ((code & 0x80) >> 7), 0, 0); | |
| 64 | SET_TILE_INFO_MEMBER(0, ((code & 0x7f) << 1) | ((code & 0x80) >> 7), 0, 0); | |
| 67 | 65 | } |
| 68 | 66 | |
| 69 | 67 | |
| r17673 | r17674 | |
| 71 | 69 | VIDEO_START( runaway ) |
| 72 | 70 | { |
| 73 | 71 | runaway_state *state = machine.driver_data<runaway_state>(); |
| 74 | state->m_bg_tilemap = tilemap | |
| 72 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(runaway_state::runaway_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 30); | |
| 75 | 73 | |
| 76 | 74 | state->save_item(NAME(state->m_tile_bank)); |
| 77 | 75 | } |
| r17673 | r17674 | |
| 80 | 78 | VIDEO_START( qwak ) |
| 81 | 79 | { |
| 82 | 80 | runaway_state *state = machine.driver_data<runaway_state>(); |
| 83 | state->m_bg_tilemap = tilemap | |
| 81 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(runaway_state::qwak_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 30); | |
| 84 | 82 | |
| 85 | 83 | state->save_item(NAME(state->m_tile_bank)); |
| 86 | 84 | } |
| r17673 | r17674 | |
|---|---|---|
| 78 | 78 | ***************************************************************************/ |
| 79 | 79 | |
| 80 | 80 | /* convert from 32x32 to 36x28 */ |
| 81 | ||
| 81 | ||
| 82 | 82 | { |
| 83 | 83 | int offs; |
| 84 | 84 | |
| r17673 | r17674 | |
| 92 | 92 | return offs; |
| 93 | 93 | } |
| 94 | 94 | |
| 95 | ||
| 95 | ||
| 96 | 96 | { |
| 97 | toypop_state *state = machine.driver_data<toypop_state>(); | |
| 98 | UINT8 attr = state->m_videoram[tile_index + 0x400]; | |
| 99 | SET_TILE_INFO( | |
| 97 | UINT8 attr = m_videoram[tile_index + 0x400]; | |
| 98 | SET_TILE_INFO_MEMBER( | |
| 100 | 99 | 0, |
| 101 | state->m_videoram[tile_index], | |
| 102 | (attr & 0x3f) + 0x40 * state->m_palettebank, | |
| 100 | m_videoram[tile_index], | |
| 101 | (attr & 0x3f) + 0x40 * m_palettebank, | |
| 103 | 102 | 0); |
| 104 | 103 | } |
| 105 | 104 | |
| r17673 | r17674 | |
| 114 | 113 | VIDEO_START( toypop ) |
| 115 | 114 | { |
| 116 | 115 | toypop_state *state = machine.driver_data<toypop_state>(); |
| 117 | state->m_bg_tilemap = tilemap | |
| 116 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(toypop_state::get_tile_info),state), tilemap_mapper_delegate(FUNC(toypop_state::tilemap_scan),state),8,8,36,28); | |
| 118 | 117 | |
| 119 | 118 | state->m_bg_tilemap->set_transparent_pen(0); |
| 120 | 119 | } |
| r17673 | r17674 | |
|---|---|---|
| 121 | 121 | |
| 122 | 122 | /******************************************************************************/ |
| 123 | 123 | |
| 124 | ||
| 124 | ||
| 125 | 125 | { |
| 126 | 126 | /* logical (col,row) -> memory offset */ |
| 127 | 127 | return (col & 0x1f) + ((row & 0x1f) << 5) + ((col & 0x60) << 5); |
| r17673 | r17674 | |
| 139 | 139 | 0); |
| 140 | 140 | } |
| 141 | 141 | |
| 142 | static TILE_GET_INFO( get_bg1_tile_info ) { tumbleb_state *state = machine.driver_data<tumbleb_state>(); get_bg_tile_info(machine, tileinfo, tile_index, 2, state->m_pf1_data); } | |
| 143 | static TILE_GET_INFO( get_bg2_tile_info ) { tumbleb_state *state = machine.driver_data<tumbleb_state>(); get_bg_tile_info(machine, tileinfo, tile_index, 1, state->m_pf2_data); } | |
| 142 | TILE_GET_INFO_MEMBER(tumbleb_state::get_bg1_tile_info){ get_bg_tile_info(machine(), tileinfo, tile_index, 2, m_pf1_data); } | |
| 143 | TILE_GET_INFO_MEMBER(tumbleb_state::get_bg2_tile_info){ get_bg_tile_info(machine(), tileinfo, tile_index, 1, m_pf2_data); } | |
| 144 | 144 | |
| 145 | ||
| 145 | ||
| 146 | 146 | { |
| 147 | tumbleb_state *state = machine.driver_data<tumbleb_state>(); | |
| 148 | int data = state->m_pf1_data[tile_index]; | |
| 147 | int data = m_pf1_data[tile_index]; | |
| 149 | 148 | |
| 150 | SET_TILE_INFO( | |
| 149 | SET_TILE_INFO_MEMBER( | |
| 151 | 150 | 0, |
| 152 | (data & 0x0fff) | | |
| 151 | (data & 0x0fff) | | |
| 153 | 152 | data >> 12, |
| 154 | 153 | 0); |
| 155 | 154 | } |
| r17673 | r17674 | |
| 166 | 165 | 0); |
| 167 | 166 | } |
| 168 | 167 | |
| 169 | static TILE_GET_INFO( get_fncywld_bg1_tile_info ) { tumbleb_state *state = machine.driver_data<tumbleb_state>(); get_fncywld_bg_tile_info(machine, tileinfo, tile_index, 2, state->m_pf1_data); } | |
| 170 | static TILE_GET_INFO( get_fncywld_bg2_tile_info ) { tumbleb_state *state = machine.driver_data<tumbleb_state>(); get_fncywld_bg_tile_info(machine, tileinfo, tile_index, 1, state->m_pf2_data); } | |
| 168 | TILE_GET_INFO_MEMBER(tumbleb_state::get_fncywld_bg1_tile_info){ get_fncywld_bg_tile_info(machine(), tileinfo, tile_index, 2, m_pf1_data); } | |
| 169 | TILE_GET_INFO_MEMBER(tumbleb_state::get_fncywld_bg2_tile_info){ get_fncywld_bg_tile_info(machine(), tileinfo, tile_index, 1, m_pf2_data); } | |
| 171 | 170 | |
| 172 | ||
| 171 | ||
| 173 | 172 | { |
| 174 | tumbleb_state *state = machine.driver_data<tumbleb_state>(); | |
| 175 | int data = state->m_pf1_data[tile_index * 2]; | |
| 176 | int attr = state->m_pf1_data[tile_index * 2 + 1]; | |
| 173 | int data = m_pf1_data[tile_index * 2]; | |
| 174 | int attr = m_pf1_data[tile_index * 2 + 1]; | |
| 177 | 175 | |
| 178 | SET_TILE_INFO( | |
| 176 | SET_TILE_INFO_MEMBER( | |
| 179 | 177 | 0, |
| 180 | 178 | data & 0x1fff, |
| 181 | 179 | attr & 0x1f, |
| r17673 | r17674 | |
| 208 | 206 | } |
| 209 | 207 | |
| 210 | 208 | |
| 211 | static TILE_GET_INFO( pangpang_get_bg1_tile_info ) { tumbleb_state *state = machine.driver_data<tumbleb_state>(); pangpang_get_bg_tile_info(machine, tileinfo, tile_index, 2, state->m_pf1_data); } | |
| 212 | static TILE_GET_INFO( pangpang_get_bg2_tile_info ) { tumbleb_state *state = machine.driver_data<tumbleb_state>(); pangpang_get_bg2x_tile_info(machine, tileinfo, tile_index, 1, state->m_pf2_data); } | |
| 209 | TILE_GET_INFO_MEMBER(tumbleb_state::pangpang_get_bg1_tile_info){ pangpang_get_bg_tile_info(machine(), tileinfo, tile_index, 2, m_pf1_data); } | |
| 210 | TILE_GET_INFO_MEMBER(tumbleb_state::pangpang_get_bg2_tile_info){ pangpang_get_bg2x_tile_info(machine(), tileinfo, tile_index, 1, m_pf2_data); } | |
| 213 | 211 | |
| 214 | ||
| 212 | ||
| 215 | 213 | { |
| 216 | tumbleb_state *state = machine.driver_data<tumbleb_state>(); | |
| 217 | int data = state->m_pf1_data[tile_index * 2 + 1]; | |
| 218 | int attr = state->m_pf1_data[tile_index * 2]; | |
| 214 | int data = m_pf1_data[tile_index * 2 + 1]; | |
| 215 | int attr = m_pf1_data[tile_index * 2]; | |
| 219 | 216 | |
| 220 | SET_TILE_INFO( | |
| 217 | SET_TILE_INFO_MEMBER( | |
| 221 | 218 | 0, |
| 222 | 219 | data & 0x1fff, |
| 223 | 220 | (attr >> 12)& 0x1f, |
| r17673 | r17674 | |
| 240 | 237 | { |
| 241 | 238 | tumbleb_state *state = machine.driver_data<tumbleb_state>(); |
| 242 | 239 | |
| 243 | state->m_pf1_tilemap = tilemap_create(machine, pangpang_get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 244 | state->m_pf1_alt_tilemap = tilemap_create(machine, pangpang_get_bg1_tile_info, tumblep_scan, 16, 16, 64, 32); | |
| 245 | state->m_pf2_tilemap = tilemap_create(machine, pangpang_get_bg2_tile_info, tumblep_scan, 16, 16, 64, 32); | |
| 240 | state->m_pf1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tumbleb_state::pangpang_get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 241 | state->m_pf1_alt_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tumbleb_state::pangpang_get_bg1_tile_info),state), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),state), 16, 16, 64, 32); | |
| 242 | state->m_pf2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tumbleb_state::pangpang_get_bg2_tile_info),state), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),state), 16, 16, 64, 32); | |
| 246 | 243 | |
| 247 | 244 | state->m_pf1_tilemap->set_transparent_pen(0); |
| 248 | 245 | state->m_pf1_alt_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
| 255 | 252 | { |
| 256 | 253 | tumbleb_state *state = machine.driver_data<tumbleb_state>(); |
| 257 | 254 | |
| 258 | state->m_pf1_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 259 | state->m_pf1_alt_tilemap = tilemap_create(machine, get_bg1_tile_info, tumblep_scan, 16, 16, 64, 32); | |
| 260 | state->m_pf2_tilemap = tilemap_create(machine, get_bg2_tile_info, tumblep_scan, 16, 16, 64, 32); | |
| 255 | state->m_pf1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tumbleb_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 256 | state->m_pf1_alt_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tumbleb_state::get_bg1_tile_info),state), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),state), 16, 16, 64, 32); | |
| 257 | state->m_pf2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tumbleb_state::get_bg2_tile_info),state), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),state), 16, 16, 64, 32); | |
| 261 | 258 | |
| 262 | 259 | state->m_pf1_tilemap->set_transparent_pen(0); |
| 263 | 260 | state->m_pf1_alt_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
| 269 | 266 | { |
| 270 | 267 | tumbleb_state *state = machine.driver_data<tumbleb_state>(); |
| 271 | 268 | |
| 272 | state->m_pf1_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); // 64*64 to prevent bad tilemap wrapping? - check real behavior | |
| 273 | state->m_pf1_alt_tilemap = tilemap_create(machine, get_bg1_tile_info, tumblep_scan, 16, 16, 64, 32); | |
| 274 | state->m_pf2_tilemap = tilemap_create(machine, get_bg2_tile_info, tumblep_scan, 16, 16, 64, 32); | |
| 269 | state->m_pf1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tumbleb_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); // 64*64 to prevent bad tilemap wrapping? - check real behavior | |
| 270 | state->m_pf1_alt_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tumbleb_state::get_bg1_tile_info),state), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),state), 16, 16, 64, 32); | |
| 271 | state->m_pf2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tumbleb_state::get_bg2_tile_info),state), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),state), 16, 16, 64, 32); | |
| 275 | 272 | |
| 276 | 273 | state->m_pf1_tilemap->set_transparent_pen(0); |
| 277 | 274 | state->m_pf1_alt_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
| 283 | 280 | { |
| 284 | 281 | tumbleb_state *state = machine.driver_data<tumbleb_state>(); |
| 285 | 282 | |
| 286 | state->m_pf1_tilemap = tilemap_create(machine, get_fncywld_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 287 | state->m_pf1_alt_tilemap = tilemap_create(machine, get_fncywld_bg1_tile_info, tumblep_scan, 16, 16, 64, 32); | |
| 288 | state->m_pf2_tilemap = tilemap_create(machine, get_fncywld_bg2_tile_info, tumblep_scan, 16, 16, 64, 32); | |
| 283 | state->m_pf1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tumbleb_state::get_fncywld_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 284 | state->m_pf1_alt_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tumbleb_state::get_fncywld_bg1_tile_info),state), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),state), 16, 16, 64, 32); | |
| 285 | state->m_pf2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tumbleb_state::get_fncywld_bg2_tile_info),state), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),state), 16, 16, 64, 32); | |
| 289 | 286 | |
| 290 | 287 | state->m_pf1_tilemap->set_transparent_pen(15); |
| 291 | 288 | state->m_pf1_alt_tilemap->set_transparent_pen(15); |
| r17673 | r17674 | |
| 298 | 295 | { |
| 299 | 296 | tumbleb_state *state = machine.driver_data<tumbleb_state>(); |
| 300 | 297 | |
| 301 | state->m_pf1_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 302 | state->m_pf1_alt_tilemap = tilemap_create(machine, get_bg1_tile_info, tumblep_scan, 16, 16, 64, 32); | |
| 303 | state->m_pf2_tilemap = tilemap_create(machine, get_bg2_tile_info, tumblep_scan, 16, 16, 64, 32); | |
| 298 | state->m_pf1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tumbleb_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 299 | state->m_pf1_alt_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tumbleb_state::get_bg1_tile_info),state), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),state), 16, 16, 64, 32); | |
| 300 | state->m_pf2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tumbleb_state::get_bg2_tile_info),state), tilemap_mapper_delegate(FUNC(tumbleb_state::tumblep_scan),state), 16, 16, 64, 32); | |
| 304 | 301 | |
| 305 | 302 | state->m_pf1_alt_tilemap->set_transparent_pen(0); |
| 306 | 303 |
| r17673 | r17674 | |
|---|---|---|
| 42 | 42 | flip_screen_set(data & 0x01); |
| 43 | 43 | } |
| 44 | 44 | |
| 45 | ||
| 45 | ||
| 46 | 46 | { |
| 47 | kchamp_state *state = machine.driver_data<kchamp_state>(); | |
| 48 | int code = state->m_videoram[tile_index] + ((state->m_colorram[tile_index] & 7) << 8); | |
| 49 | int color = (state->m_colorram[tile_index] >> 3) & 0x1f; | |
| 47 | int code = m_videoram[tile_index] + ((m_colorram[tile_index] & 7) << 8); | |
| 48 | int color = (m_colorram[tile_index] >> 3) & 0x1f; | |
| 50 | 49 | |
| 51 | SET_TILE_INFO(0, code, color, 0); | |
| 50 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 52 | 51 | } |
| 53 | 52 | |
| 54 | 53 | VIDEO_START( kchamp ) |
| 55 | 54 | { |
| 56 | 55 | kchamp_state *state = machine.driver_data<kchamp_state>(); |
| 57 | state->m_bg_tilemap = tilemap | |
| 56 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(kchamp_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 58 | 57 | } |
| 59 | 58 | |
| 60 | 59 | /* |
| r17673 | r17674 | |
|---|---|---|
| 34 | 34 | } |
| 35 | 35 | |
| 36 | 36 | |
| 37 | ||
| 37 | ||
| 38 | 38 | { |
| 39 | ultratnk_state *state = machine.driver_data<ultratnk_state>(); | |
| 40 | UINT8 *videoram = state->m_videoram; | |
| 39 | UINT8 *videoram = m_videoram; | |
| 41 | 40 | UINT8 code = videoram[tile_index]; |
| 42 | 41 | |
| 43 | 42 | if (code & 0x20) |
| 44 | SET_TILE_INFO(0, code, code >> 6, 0); | |
| 43 | SET_TILE_INFO_MEMBER(0, code, code >> 6, 0); | |
| 45 | 44 | else |
| 46 | SET_TILE_INFO(0, code, 4, 0); | |
| 45 | SET_TILE_INFO_MEMBER(0, code, 4, 0); | |
| 47 | 46 | } |
| 48 | 47 | |
| 49 | 48 | |
| r17673 | r17674 | |
| 52 | 51 | ultratnk_state *state = machine.driver_data<ultratnk_state>(); |
| 53 | 52 | machine.primary_screen->register_screen_bitmap(state->m_helper); |
| 54 | 53 | |
| 55 | state->m_playfield = tilemap | |
| 54 | state->m_playfield = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ultratnk_state::ultratnk_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 56 | 55 | } |
| 57 | 56 | |
| 58 | 57 |
| r17673 | r17674 | |
|---|---|---|
| 78 | 78 | tileinfo.category = (color & 0x30) ? 1 : 0; |
| 79 | 79 | } |
| 80 | 80 | |
| 81 | static TILE_GET_INFO( get_pf1_tile_info ) { get_tile_info(machine,tileinfo,tile_index,0,0x3); } | |
| 82 | static TILE_GET_INFO( get_pf1w_tile_info ) { get_tile_info(machine,tileinfo,tile_index,0,0x2); } | |
| 83 | static TILE_GET_INFO( get_pf2_tile_info ) { get_tile_info(machine,tileinfo,tile_index,1,0x3); } | |
| 84 | static TILE_GET_INFO( get_pf2w_tile_info ) { get_tile_info(machine,tileinfo,tile_index,1,0x2); } | |
| 81 | TILE_GET_INFO_MEMBER(m90_state::get_pf1_tile_info){ get_tile_info(machine(),tileinfo,tile_index,0,0x3); } | |
| 82 | TILE_GET_INFO_MEMBER(m90_state::get_pf1w_tile_info){ get_tile_info(machine(),tileinfo,tile_index,0,0x2); } | |
| 83 | TILE_GET_INFO_MEMBER(m90_state::get_pf2_tile_info){ get_tile_info(machine(),tileinfo,tile_index,1,0x3); } | |
| 84 | TILE_GET_INFO_MEMBER(m90_state::get_pf2w_tile_info){ get_tile_info(machine(),tileinfo,tile_index,1,0x2); } | |
| 85 | 85 | |
| 86 | static TILE_GET_INFO( bomblord_get_pf1_tile_info ) { bomblord_get_tile_info(machine,tileinfo,tile_index,0); } | |
| 87 | static TILE_GET_INFO( bomblord_get_pf1w_tile_info ) { bomblord_get_tile_info(machine,tileinfo,tile_index,0); } | |
| 88 | static TILE_GET_INFO( bomblord_get_pf2_tile_info ) { bomblord_get_tile_info(machine,tileinfo,tile_index,2); } | |
| 89 | static TILE_GET_INFO( bomblord_get_pf2w_tile_info ) { bomblord_get_tile_info(machine,tileinfo,tile_index,2); } | |
| 86 | TILE_GET_INFO_MEMBER(m90_state::bomblord_get_pf1_tile_info){ bomblord_get_tile_info(machine(),tileinfo,tile_index,0); } | |
| 87 | TILE_GET_INFO_MEMBER(m90_state::bomblord_get_pf1w_tile_info){ bomblord_get_tile_info(machine(),tileinfo,tile_index,0); } | |
| 88 | TILE_GET_INFO_MEMBER(m90_state::bomblord_get_pf2_tile_info){ bomblord_get_tile_info(machine(),tileinfo,tile_index,2); } | |
| 89 | TILE_GET_INFO_MEMBER(m90_state::bomblord_get_pf2w_tile_info){ bomblord_get_tile_info(machine(),tileinfo,tile_index,2); } | |
| 90 | 90 | |
| 91 | static TILE_GET_INFO( dynablsb_get_pf1_tile_info ) { dynablsb_get_tile_info(machine,tileinfo,tile_index,0); } | |
| 92 | static TILE_GET_INFO( dynablsb_get_pf1w_tile_info ) { dynablsb_get_tile_info(machine,tileinfo,tile_index,0); } | |
| 93 | static TILE_GET_INFO( dynablsb_get_pf2_tile_info ) { dynablsb_get_tile_info(machine,tileinfo,tile_index,2); } | |
| 94 | static TILE_GET_INFO( dynablsb_get_pf2w_tile_info ) { dynablsb_get_tile_info(machine,tileinfo,tile_index,2); } | |
| 91 | TILE_GET_INFO_MEMBER(m90_state::dynablsb_get_pf1_tile_info){ dynablsb_get_tile_info(machine(),tileinfo,tile_index,0); } | |
| 92 | TILE_GET_INFO_MEMBER(m90_state::dynablsb_get_pf1w_tile_info){ dynablsb_get_tile_info(machine(),tileinfo,tile_index,0); } | |
| 93 | TILE_GET_INFO_MEMBER(m90_state::dynablsb_get_pf2_tile_info){ dynablsb_get_tile_info(machine(),tileinfo,tile_index,2); } | |
| 94 | TILE_GET_INFO_MEMBER(m90_state::dynablsb_get_pf2w_tile_info){ dynablsb_get_tile_info(machine(),tileinfo,tile_index,2); } | |
| 95 | 95 | |
| 96 | 96 | VIDEO_START( m90 ) |
| 97 | 97 | { |
| 98 | 98 | m90_state *state = machine.driver_data<m90_state>(); |
| 99 | state->m_pf1_layer = tilemap_create(machine, get_pf1_tile_info, TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 100 | state->m_pf1_wide_layer = tilemap_create(machine, get_pf1w_tile_info,TILEMAP_SCAN_ROWS,8,8,128,64); | |
| 101 | state->m_pf2_layer = tilemap_create(machine, get_pf2_tile_info, TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 102 | state->m_pf2_wide_layer = tilemap_create(machine, get_pf2w_tile_info,TILEMAP_SCAN_ROWS,8,8,128,64); | |
| 99 | state->m_pf1_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m90_state::get_pf1_tile_info),state), TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 100 | state->m_pf1_wide_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m90_state::get_pf1w_tile_info),state),TILEMAP_SCAN_ROWS,8,8,128,64); | |
| 101 | state->m_pf2_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m90_state::get_pf2_tile_info),state), TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 102 | state->m_pf2_wide_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m90_state::get_pf2w_tile_info),state),TILEMAP_SCAN_ROWS,8,8,128,64); | |
| 103 | 103 | |
| 104 | 104 | state->m_pf1_layer->set_transparent_pen(0); |
| 105 | 105 | state->m_pf1_wide_layer->set_transparent_pen(0); |
| r17673 | r17674 | |
| 112 | 112 | VIDEO_START( bomblord ) |
| 113 | 113 | { |
| 114 | 114 | m90_state *state = machine.driver_data<m90_state>(); |
| 115 | state->m_pf1_layer = tilemap_create(machine, bomblord_get_pf1_tile_info, TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 116 | state->m_pf1_wide_layer = tilemap_create(machine, bomblord_get_pf1w_tile_info,TILEMAP_SCAN_ROWS,8,8,128,64); | |
| 117 | state->m_pf2_layer = tilemap_create(machine, bomblord_get_pf2_tile_info, TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 118 | state->m_pf2_wide_layer = tilemap_create(machine, bomblord_get_pf2w_tile_info,TILEMAP_SCAN_ROWS,8,8,128,64); | |
| 115 | state->m_pf1_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m90_state::bomblord_get_pf1_tile_info),state), TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 116 | state->m_pf1_wide_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m90_state::bomblord_get_pf1w_tile_info),state),TILEMAP_SCAN_ROWS,8,8,128,64); | |
| 117 | state->m_pf2_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m90_state::bomblord_get_pf2_tile_info),state), TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 118 | state->m_pf2_wide_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m90_state::bomblord_get_pf2w_tile_info),state),TILEMAP_SCAN_ROWS,8,8,128,64); | |
| 119 | 119 | |
| 120 | 120 | state->m_pf2_layer->set_transparent_pen(0); |
| 121 | 121 | state->m_pf2_wide_layer->set_transparent_pen(0); |
| r17673 | r17674 | |
| 128 | 128 | VIDEO_START( dynablsb ) |
| 129 | 129 | { |
| 130 | 130 | m90_state *state = machine.driver_data<m90_state>(); |
| 131 | state->m_pf1_layer = tilemap_create(machine, dynablsb_get_pf1_tile_info, TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 132 | state->m_pf1_wide_layer = tilemap_create(machine, dynablsb_get_pf1w_tile_info,TILEMAP_SCAN_ROWS,8,8,128,64); | |
| 133 | state->m_pf2_layer = tilemap_create(machine, dynablsb_get_pf2_tile_info, TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 134 | state->m_pf2_wide_layer = tilemap_create(machine, dynablsb_get_pf2w_tile_info,TILEMAP_SCAN_ROWS,8,8,128,64); | |
| 131 | state->m_pf1_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m90_state::dynablsb_get_pf1_tile_info),state), TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 132 | state->m_pf1_wide_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m90_state::dynablsb_get_pf1w_tile_info),state),TILEMAP_SCAN_ROWS,8,8,128,64); | |
| 133 | state->m_pf2_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m90_state::dynablsb_get_pf2_tile_info),state), TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 134 | state->m_pf2_wide_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m90_state::dynablsb_get_pf2w_tile_info),state),TILEMAP_SCAN_ROWS,8,8,128,64); | |
| 135 | 135 | |
| 136 | 136 | state->m_pf2_layer->set_transparent_pen(0); |
| 137 | 137 | state->m_pf2_wide_layer->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 79 | 79 | } |
| 80 | 80 | |
| 81 | 81 | |
| 82 | ||
| 82 | ||
| 83 | 83 | { |
| 84 | scotrsht_state *state = machine.driver_data<scotrsht_state>(); | |
| 85 | int attr = state->m_colorram[tile_index]; | |
| 86 | int code = state->m_videoram[tile_index] + (state->m_charbank << 9) + ((attr & 0x40) << 2); | |
| 87 | int color = (attr & 0x0f) + state->m_palette_bank * 16; | |
| 84 | int attr = m_colorram[tile_index]; | |
| 85 | int code = m_videoram[tile_index] + (m_charbank << 9) + ((attr & 0x40) << 2); | |
| 86 | int color = (attr & 0x0f) + m_palette_bank * 16; | |
| 88 | 87 | int flag = 0; |
| 89 | 88 | |
| 90 | 89 | if(attr & 0x10) flag |= TILE_FLIPX; |
| r17673 | r17674 | |
| 92 | 91 | |
| 93 | 92 | // data & 0x80 -> tile priority? |
| 94 | 93 | |
| 95 | SET_TILE_INFO(0, code, color, flag); | |
| 94 | SET_TILE_INFO_MEMBER(0, code, color, flag); | |
| 96 | 95 | } |
| 97 | 96 | |
| 98 | 97 | /* Same as Jailbreak + palette bank */ |
| r17673 | r17674 | |
| 130 | 129 | { |
| 131 | 130 | scotrsht_state *state = machine.driver_data<scotrsht_state>(); |
| 132 | 131 | |
| 133 | state->m_bg_tilemap = tilemap | |
| 132 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(scotrsht_state::scotrsht_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 134 | 133 | |
| 135 | 134 | state->m_bg_tilemap->set_scroll_cols(64); |
| 136 | 135 | } |
| r17673 | r17674 | |
|---|---|---|
| 136 | 136 | |
| 137 | 137 | ***************************************************************************/ |
| 138 | 138 | |
| 139 | ||
| 139 | ||
| 140 | 140 | { |
| 141 | phoenix_state *state = machine.driver_data<phoenix_state>(); | |
| 142 | 141 | int code, col; |
| 143 | 142 | |
| 144 | code = | |
| 143 | code = | |
| 145 | 144 | col = (code >> 5); |
| 146 | col = col | 0x08 | (state->m_palette_bank << 4); | |
| 147 | SET_TILE_INFO( | |
| 145 | col = col | 0x08 | (m_palette_bank << 4); | |
| 146 | SET_TILE_INFO_MEMBER( | |
| 148 | 147 | 1, |
| 149 | 148 | code, |
| 150 | 149 | col, |
| 151 | 150 | 0); |
| 152 | 151 | } |
| 153 | 152 | |
| 154 | ||
| 153 | ||
| 155 | 154 | { |
| 156 | phoenix_state *state = machine.driver_data<phoenix_state>(); | |
| 157 | 155 | int code, col; |
| 158 | 156 | |
| 159 | code = | |
| 157 | code = | |
| 160 | 158 | col = (code >> 5); |
| 161 | col = col | 0x00 | (state->m_palette_bank << 4); | |
| 162 | SET_TILE_INFO( | |
| 159 | col = col | 0x00 | (m_palette_bank << 4); | |
| 160 | SET_TILE_INFO_MEMBER( | |
| 163 | 161 | 0, |
| 164 | 162 | code, |
| 165 | 163 | col, |
| r17673 | r17674 | |
| 186 | 184 | state->m_palette_bank = 0; |
| 187 | 185 | state->m_cocktail_mode = 0; |
| 188 | 186 | |
| 189 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info,TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 190 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 187 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(phoenix_state::get_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 188 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(phoenix_state::get_bg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 191 | 189 | |
| 192 | 190 | state->m_fg_tilemap->set_transparent_pen(0); |
| 193 | 191 |
| r17673 | r17674 | |
|---|---|---|
| 18 | 18 | |
| 19 | 19 | ***************************************************************************/ |
| 20 | 20 | |
| 21 | ||
| 21 | ||
| 22 | 22 | { |
| 23 | superqix_state *state = machine.driver_data<superqix_state>(); | |
| 24 | int attr = state->m_videoram[tile_index + 0x400]; | |
| 25 | int code = state->m_videoram[tile_index] + 256 * (attr & 0x7); | |
| 23 | int attr = m_videoram[tile_index + 0x400]; | |
| 24 | int code = m_videoram[tile_index] + 256 * (attr & 0x7); | |
| 26 | 25 | int color = (attr & 0xf0) >> 4; |
| 27 | SET_TILE_INFO(0, code, color, 0); | |
| 26 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 28 | 27 | } |
| 29 | 28 | |
| 30 | ||
| 29 | ||
| 31 | 30 | { |
| 32 | superqix_state *state = machine.driver_data<superqix_state>(); | |
| 33 | int attr = state->m_videoram[tile_index + 0x400]; | |
| 31 | int attr = m_videoram[tile_index + 0x400]; | |
| 34 | 32 | int bank = (attr & 0x04) ? 0 : 1; |
| 35 | int code = | |
| 33 | int code = | |
| 36 | 34 | int color = (attr & 0xf0) >> 4; |
| 37 | 35 | |
| 38 | if (bank) code += 1024 * | |
| 36 | if (bank) code += 1024 * | |
| 39 | 37 | |
| 40 | SET_TILE_INFO(bank, code, color, 0); | |
| 38 | SET_TILE_INFO_MEMBER(bank, code, color, 0); | |
| 41 | 39 | tileinfo.group = (attr & 0x08) >> 3; |
| 42 | 40 | } |
| 43 | 41 | |
| r17673 | r17674 | |
| 52 | 50 | VIDEO_START( pbillian ) |
| 53 | 51 | { |
| 54 | 52 | superqix_state *state = machine.driver_data<superqix_state>(); |
| 55 | state->m_bg_tilemap = tilemap | |
| 53 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(superqix_state::pb_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8,32,32); | |
| 56 | 54 | } |
| 57 | 55 | |
| 58 | 56 | VIDEO_START( superqix ) |
| r17673 | r17674 | |
| 60 | 58 | superqix_state *state = machine.driver_data<superqix_state>(); |
| 61 | 59 | state->m_fg_bitmap[0] = auto_bitmap_ind16_alloc(machine, 256, 256); |
| 62 | 60 | state->m_fg_bitmap[1] = auto_bitmap_ind16_alloc(machine, 256, 256); |
| 63 | state->m_bg_tilemap = tilemap | |
| 61 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(superqix_state::sqix_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 64 | 62 | |
| 65 | 63 | state->m_bg_tilemap->set_transmask(0,0xffff,0x0000); /* split type 0 is totally transparent in front half */ |
| 66 | 64 | state->m_bg_tilemap->set_transmask(1,0x0001,0xfffe); /* split type 1 has pen 0 transparent in front half */ |
| r17673 | r17674 | |
|---|---|---|
| 55 | 55 | } |
| 56 | 56 | } |
| 57 | 57 | |
| 58 | ||
| 58 | ||
| 59 | 59 | { |
| 60 | markham_state *state = machine.driver_data<markham_state>(); | |
| 61 | int attr = state->m_videoram[tile_index * 2]; | |
| 62 | int code = state->m_videoram[(tile_index * 2) + 1] + ((attr & 0x60) << 3); | |
| 60 | int attr = m_videoram[tile_index * 2]; | |
| 61 | int code = m_videoram[(tile_index * 2) + 1] + ((attr & 0x60) << 3); | |
| 63 | 62 | int color = (attr & 0x1f) | ((attr & 0x80) >> 2); |
| 64 | 63 | |
| 65 | SET_TILE_INFO(0, code, color, 0); | |
| 64 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 66 | 65 | } |
| 67 | 66 | |
| 68 | 67 | VIDEO_START( markham ) |
| 69 | 68 | { |
| 70 | 69 | markham_state *state = machine.driver_data<markham_state>(); |
| 71 | state->m_bg_tilemap = tilemap | |
| 70 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(markham_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); | |
| 72 | 71 | |
| 73 | 72 | state->m_bg_tilemap->set_scroll_rows(32); |
| 74 | 73 | } |
| r17673 | r17674 | |
|---|---|---|
| 12 | 12 | |
| 13 | 13 | ***************************************************************************/ |
| 14 | 14 | |
| 15 | ||
| 15 | ||
| 16 | 16 | { |
| 17 | msisaac_state *state = machine.driver_data<msisaac_state>(); | |
| 18 | int tile_number = state->m_videoram[tile_index]; | |
| 19 | SET_TILE_INFO( 0, | |
| 17 | int tile_number = m_videoram[tile_index]; | |
| 18 | SET_TILE_INFO_MEMBER( 0, | |
| 20 | 19 | tile_number, |
| 21 | 20 | 0x10, |
| 22 | 21 | 0); |
| 23 | 22 | } |
| 24 | 23 | |
| 25 | ||
| 24 | ||
| 26 | 25 | { |
| 27 | msisaac_state *state = machine.driver_data<msisaac_state>(); | |
| 28 | int tile_number = state->m_videoram2[tile_index]; | |
| 29 | SET_TILE_INFO( 1, | |
| 26 | int tile_number = m_videoram2[tile_index]; | |
| 27 | SET_TILE_INFO_MEMBER( 1, | |
| 30 | 28 | 0x100 + tile_number, |
| 31 | 29 | 0x30, |
| 32 | 30 | 0); |
| 33 | 31 | } |
| 34 | 32 | |
| 35 | ||
| 33 | ||
| 36 | 34 | { |
| 37 | msisaac_state *state = machine.driver_data<msisaac_state>(); | |
| 38 | int tile_number = state->m_videoram3[tile_index]; | |
| 35 | int tile_number = m_videoram3[tile_index]; | |
| 39 | 36 | |
| 40 | 37 | /* graphics 0 or 1 */ |
| 41 | int gfx_b = ( | |
| 38 | int gfx_b = ( | |
| 42 | 39 | |
| 43 | SET_TILE_INFO( gfx_b, | |
| 40 | SET_TILE_INFO_MEMBER( gfx_b, | |
| 44 | 41 | tile_number, |
| 45 | 42 | 0x20, |
| 46 | 43 | 0); |
| r17673 | r17674 | |
| 55 | 52 | VIDEO_START( msisaac ) |
| 56 | 53 | { |
| 57 | 54 | msisaac_state *state = machine.driver_data<msisaac_state>(); |
| 58 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 59 | state->m_bg2_tilemap = tilemap_create(machine, get_bg2_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 60 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 55 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(msisaac_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 56 | state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(msisaac_state::get_bg2_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 57 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(msisaac_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 61 | 58 | |
| 62 | 59 | state->m_bg2_tilemap->set_transparent_pen(0); |
| 63 | 60 | state->m_fg_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 79 | 79 | ppu_irq /* irq */ |
| 80 | 80 | }; |
| 81 | 81 | |
| 82 | ||
| 82 | ||
| 83 | 83 | { |
| 84 | playch10_state *state = machine.driver_data<playch10_state>(); | |
| 85 | UINT8 *videoram = state->m_videoram; | |
| 84 | UINT8 *videoram = m_videoram; | |
| 86 | 85 | int offs = tile_index * 2; |
| 87 | 86 | int code = videoram[offs] + ((videoram[offs + 1] & 0x07) << 8); |
| 88 | 87 | int color = (videoram[offs + 1] >> 3) & 0x1f; |
| 89 | 88 | |
| 90 | SET_TILE_INFO(0, code, color, 0); | |
| 89 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 91 | 90 | } |
| 92 | 91 | |
| 93 | 92 | VIDEO_START( playch10 ) |
| r17673 | r17674 | |
| 96 | 95 | const UINT8 *bios = state->memregion("maincpu")->base(); |
| 97 | 96 | state->m_pc10_bios = (bios[3] == 0x2a) ? 1 : 2; |
| 98 | 97 | |
| 99 | state->m_bg_tilemap = tilemap | |
| 98 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(playch10_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, | |
| 100 | 99 | 8, 8, 32, 32); |
| 101 | 100 | } |
| 102 | 101 | |
| r17673 | r17674 | |
| 106 | 105 | const UINT8 *bios = state->memregion("maincpu")->base(); |
| 107 | 106 | state->m_pc10_bios = (bios[3] == 0x2a) ? 1 : 2; |
| 108 | 107 | |
| 109 | state->m_bg_tilemap = tilemap | |
| 108 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(playch10_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, | |
| 110 | 109 | 8, 8, 32, 32); |
| 111 | 110 | } |
| 112 | 111 |
| r17673 | r17674 | |
|---|---|---|
| 153 | 153 | |
| 154 | 154 | ***************************************************************************/ |
| 155 | 155 | |
| 156 | ||
| 156 | ||
| 157 | 157 | { |
| 158 | dday_state *state = machine.driver_data<dday_state>(); | |
| 159 | 158 | int code; |
| 160 | 159 | |
| 161 | code = state->m_bgvideoram[tile_index]; | |
| 162 | SET_TILE_INFO(0, code, code >> 5, 0); | |
| 160 | code = m_bgvideoram[tile_index]; | |
| 161 | SET_TILE_INFO_MEMBER(0, code, code >> 5, 0); | |
| 163 | 162 | } |
| 164 | 163 | |
| 165 | ||
| 164 | ||
| 166 | 165 | { |
| 167 | dday_state *state = machine.driver_data<dday_state>(); | |
| 168 | 166 | int code, flipx; |
| 169 | 167 | |
| 170 | flipx = state->m_colorram[tile_index & 0x03e0] & 0x01; | |
| 171 | code = state->m_fgvideoram[flipx ? tile_index ^ 0x1f : tile_index]; | |
| 172 | SET_TILE_INFO(2, code, code >> 5, flipx ? TILE_FLIPX : 0); | |
| 168 | flipx = m_colorram[tile_index & 0x03e0] & 0x01; | |
| 169 | code = m_fgvideoram[flipx ? tile_index ^ 0x1f : tile_index]; | |
| 170 | SET_TILE_INFO_MEMBER(2, code, code >> 5, flipx ? TILE_FLIPX : 0); | |
| 173 | 171 | } |
| 174 | 172 | |
| 175 | ||
| 173 | ||
| 176 | 174 | { |
| 177 | dday_state *state = machine.driver_data<dday_state>(); | |
| 178 | 175 | int code; |
| 179 | 176 | |
| 180 | code = state->m_textvideoram[tile_index]; | |
| 181 | SET_TILE_INFO(1, code, code >> 5, 0); | |
| 177 | code = m_textvideoram[tile_index]; | |
| 178 | SET_TILE_INFO_MEMBER(1, code, code >> 5, 0); | |
| 182 | 179 | } |
| 183 | 180 | |
| 184 | ||
| 181 | ||
| 185 | 182 | { |
| 186 | dday_state *state = machine.driver_data<dday_state>(); | |
| 187 | 183 | int code, sl_flipx, flipx; |
| 188 | 184 | UINT8* sl_map; |
| 189 | 185 | |
| 190 | sl_map = & | |
| 186 | sl_map = & | |
| 191 | 187 | |
| 192 | 188 | flipx = (tile_index >> 4) & 0x01; |
| 193 | sl_flipx = ( | |
| 189 | sl_flipx = ( | |
| 194 | 190 | |
| 195 | 191 | /* bit 4 is really a flip indicator. Need to shift bits 5-9 to the right by 1 */ |
| 196 | 192 | tile_index = ((tile_index & 0x03e0) >> 1) | (tile_index & 0x0f); |
| r17673 | r17674 | |
| 201 | 197 | /* no mirroring, draw dark spot */ |
| 202 | 198 | code = 1; |
| 203 | 199 | |
| 204 | SET_TILE_INFO(3, code & 0x3f, 0, flipx ? TILE_FLIPX : 0); | |
| 200 | SET_TILE_INFO_MEMBER(3, code & 0x3f, 0, flipx ? TILE_FLIPX : 0); | |
| 205 | 201 | } |
| 206 | 202 | |
| 207 | 203 | |
| r17673 | r17674 | |
| 214 | 210 | VIDEO_START( dday ) |
| 215 | 211 | { |
| 216 | 212 | dday_state *state = machine.driver_data<dday_state>(); |
| 217 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 218 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 219 | state->m_text_tilemap = tilemap_create(machine, get_text_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 220 | state->m_sl_tilemap = tilemap_create(machine, get_sl_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 213 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dday_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 214 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dday_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 215 | state->m_text_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dday_state::get_text_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 216 | state->m_sl_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dday_state::get_sl_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 221 | 217 | |
| 222 | 218 | machine.primary_screen->register_screen_bitmap(state->m_main_bitmap); |
| 223 | 219 |
| r17673 | r17674 | |
|---|---|---|
| 20 | 20 | * |
| 21 | 21 | *************************************/ |
| 22 | 22 | |
| 23 | ||
| 23 | ||
| 24 | 24 | { |
| 25 | cyberbal_state *state = machine.driver_data<cyberbal_state>(); | |
| 26 | UINT16 data = state->m_alpha[tile_index]; | |
| 25 | UINT16 data = m_alpha[tile_index]; | |
| 27 | 26 | int code = data & 0xfff; |
| 28 | 27 | int color = (data >> 12) & 0x07; |
| 29 | SET_TILE_INFO(2, code, color, (data >> 15) & 1); | |
| 28 | SET_TILE_INFO_MEMBER(2, code, color, (data >> 15) & 1); | |
| 30 | 29 | } |
| 31 | 30 | |
| 32 | 31 | |
| 33 | ||
| 32 | ||
| 34 | 33 | { |
| 35 | cyberbal_state *state = machine.driver_data<cyberbal_state>(); | |
| 36 | UINT16 data = state->m_alpha2[tile_index]; | |
| 34 | UINT16 data = m_alpha2[tile_index]; | |
| 37 | 35 | int code = data & 0xfff; |
| 38 | 36 | int color = (data >> 12) & 0x07; |
| 39 | SET_TILE_INFO(2, code, 0x80 | color, (data >> 15) & 1); | |
| 37 | SET_TILE_INFO_MEMBER(2, code, 0x80 | color, (data >> 15) & 1); | |
| 40 | 38 | } |
| 41 | 39 | |
| 42 | 40 | |
| 43 | ||
| 41 | ||
| 44 | 42 | { |
| 45 | cyberbal_state *state = machine.driver_data<cyberbal_state>(); | |
| 46 | UINT16 data = state->m_playfield[tile_index]; | |
| 43 | UINT16 data = m_playfield[tile_index]; | |
| 47 | 44 | int code = data & 0x1fff; |
| 48 | 45 | int color = (data >> 11) & 0x0f; |
| 49 | SET_TILE_INFO(0, code, color, (data >> 15) & 1); | |
| 46 | SET_TILE_INFO_MEMBER(0, code, color, (data >> 15) & 1); | |
| 50 | 47 | } |
| 51 | 48 | |
| 52 | 49 | |
| 53 | ||
| 50 | ||
| 54 | 51 | { |
| 55 | cyberbal_state *state = machine.driver_data<cyberbal_state>(); | |
| 56 | UINT16 data = state->m_playfield2[tile_index]; | |
| 52 | UINT16 data = m_playfield2[tile_index]; | |
| 57 | 53 | int code = data & 0x1fff; |
| 58 | 54 | int color = (data >> 11) & 0x0f; |
| 59 | SET_TILE_INFO(0, code, 0x80 | color, (data >> 15) & 1); | |
| 55 | SET_TILE_INFO_MEMBER(0, code, 0x80 | color, (data >> 15) & 1); | |
| 60 | 56 | } |
| 61 | 57 | |
| 62 | 58 | |
| r17673 | r17674 | |
| 145 | 141 | cyberbal_state *state = machine.driver_data<cyberbal_state>(); |
| 146 | 142 | |
| 147 | 143 | /* initialize the playfield */ |
| 148 | state->m_playfield_tilemap = tilemap | |
| 144 | state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cyberbal_state::get_playfield_tile_info),state), TILEMAP_SCAN_ROWS, 16,8, 64,64); | |
| 149 | 145 | |
| 150 | 146 | /* initialize the motion objects */ |
| 151 | 147 | atarimo_init(machine, 0, &mo0desc); |
| 152 | 148 | atarimo_set_slipram(0, &state->m_current_slip[0]); |
| 153 | 149 | |
| 154 | 150 | /* initialize the alphanumerics */ |
| 155 | state->m_alpha_tilemap = tilemap | |
| 151 | state->m_alpha_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cyberbal_state::get_alpha_tile_info),state), TILEMAP_SCAN_ROWS, 16,8, 64,32); | |
| 156 | 152 | state->m_alpha_tilemap->set_transparent_pen(0); |
| 157 | 153 | |
| 158 | 154 | /* allocate the second screen if necessary */ |
| 159 | 155 | if (screens == 2) |
| 160 | 156 | { |
| 161 | 157 | /* initialize the playfield */ |
| 162 | state->m_playfield2_tilemap = tilemap | |
| 158 | state->m_playfield2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cyberbal_state::get_playfield2_tile_info),state), TILEMAP_SCAN_ROWS, 16,8, 64,64); | |
| 163 | 159 | state->m_playfield2_tilemap->set_scrollx(0, 0); |
| 164 | 160 | |
| 165 | 161 | /* initialize the motion objects */ |
| r17673 | r17674 | |
| 167 | 163 | atarimo_set_slipram(1, &state->m_current_slip[1]); |
| 168 | 164 | |
| 169 | 165 | /* initialize the alphanumerics */ |
| 170 | state->m_alpha2_tilemap = tilemap | |
| 166 | state->m_alpha2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cyberbal_state::get_alpha2_tile_info),state), TILEMAP_SCAN_ROWS, 16,8, 64,32); | |
| 171 | 167 | state->m_alpha2_tilemap->set_scrollx(0, 0); |
| 172 | 168 | state->m_alpha2_tilemap->set_transparent_pen(0); |
| 173 | 169 | } |
| r17673 | r17674 | |
|---|---|---|
| 139 | 139 | m_tilemap->mark_tile_dirty(offset); |
| 140 | 140 | } |
| 141 | 141 | |
| 142 | ||
| 142 | ||
| 143 | 143 | { |
| 144 | lockon_state *state = machine.driver_data<lockon_state>(); | |
| 145 | UINT32 tileno = state->m_char_ram[tile_index] & 0x03ff; | |
| 146 | UINT32 col = (state->m_char_ram[tile_index] >> 10) & 0x3f; | |
| 144 | UINT32 tileno = m_char_ram[tile_index] & 0x03ff; | |
| 145 | UINT32 col = (m_char_ram[tile_index] >> 10) & 0x3f; | |
| 147 | 146 | |
| 148 | 147 | col = (col & 0x1f) + (col & 0x20 ? 64 : 0); |
| 149 | SET_TILE_INFO(0, tileno, col, 0); | |
| 148 | SET_TILE_INFO_MEMBER(0, tileno, col, 0); | |
| 150 | 149 | } |
| 151 | 150 | |
| 152 | 151 | |
| r17673 | r17674 | |
| 900 | 899 | { |
| 901 | 900 | lockon_state *state = machine.driver_data<lockon_state>(); |
| 902 | 901 | |
| 903 | state->m_tilemap = tilemap | |
| 902 | state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(lockon_state::get_lockon_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 904 | 903 | state->m_tilemap->set_transparent_pen(0); |
| 905 | 904 | |
| 906 | 905 | /* Allocate the two frame buffers for rotation */ |
| r17673 | r17674 | |
|---|---|---|
| 235 | 235 | ***************************************************************************/ |
| 236 | 236 | |
| 237 | 237 | /* convert from 32x32 to 36x28 */ |
| 238 | ||
| 238 | ||
| 239 | 239 | { |
| 240 | 240 | int offs; |
| 241 | 241 | |
| r17673 | r17674 | |
| 250 | 250 | } |
| 251 | 251 | |
| 252 | 252 | /* tilemap is a composition of a 32x60 scrolling portion and two 2x28 fixed portions on the sides */ |
| 253 | ||
| 253 | ||
| 254 | 254 | { |
| 255 | 255 | int offs; |
| 256 | 256 | |
| r17673 | r17674 | |
| 271 | 271 | return offs; |
| 272 | 272 | } |
| 273 | 273 | |
| 274 | ||
| 274 | ||
| 275 | 275 | { |
| 276 | mappy_state *state = machine.driver_data<mappy_state>(); | |
| 277 | UINT8 attr = state->m_videoram[tile_index + 0x400]; | |
| 276 | UINT8 attr = m_videoram[tile_index + 0x400]; | |
| 278 | 277 | |
| 279 | 278 | tileinfo.category = (attr & 0x40) >> 6; |
| 280 | 279 | tileinfo.group = attr & 0x3f; |
| 281 | SET_TILE_INFO( | |
| 280 | SET_TILE_INFO_MEMBER( | |
| 282 | 281 | 0, |
| 283 | | |
| 282 | | |
| 284 | 283 | attr & 0x3f, |
| 285 | 284 | 0); |
| 286 | 285 | } |
| 287 | 286 | |
| 288 | ||
| 287 | ||
| 289 | 288 | { |
| 290 | mappy_state *state = machine.driver_data<mappy_state>(); | |
| 291 | UINT8 attr = state->m_videoram[tile_index + 0x400]; | |
| 289 | UINT8 attr = m_videoram[tile_index + 0x400]; | |
| 292 | 290 | |
| 293 | 291 | tileinfo.category = (attr & 0x40) >> 6; |
| 294 | 292 | tileinfo.group = attr & 0x3f; |
| 295 | SET_TILE_INFO( | |
| 293 | SET_TILE_INFO_MEMBER( | |
| 296 | 294 | 0, |
| 297 | | |
| 295 | | |
| 298 | 296 | attr & 0x3f, |
| 299 | 297 | 0); |
| 300 | 298 | } |
| 301 | 299 | |
| 302 | ||
| 300 | ||
| 303 | 301 | { |
| 304 | mappy_state *state = machine.driver_data<mappy_state>(); | |
| 305 | UINT8 attr = state->m_videoram[tile_index + 0x800]; | |
| 302 | UINT8 attr = m_videoram[tile_index + 0x800]; | |
| 306 | 303 | |
| 307 | 304 | tileinfo.category = (attr & 0x40) >> 6; |
| 308 | 305 | tileinfo.group = attr & 0x3f; |
| 309 | SET_TILE_INFO( | |
| 306 | SET_TILE_INFO_MEMBER( | |
| 310 | 307 | 0, |
| 311 | | |
| 308 | | |
| 312 | 309 | attr & 0x3f, |
| 313 | 310 | 0); |
| 314 | 311 | } |
| r17673 | r17674 | |
| 325 | 322 | { |
| 326 | 323 | mappy_state *state = machine.driver_data<mappy_state>(); |
| 327 | 324 | |
| 328 | state->m_bg_tilemap = tilemap | |
| 325 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mappy_state::superpac_get_tile_info),state),tilemap_mapper_delegate(FUNC(mappy_state::superpac_tilemap_scan),state),8,8,36,28); | |
| 329 | 326 | machine.primary_screen->register_screen_bitmap(state->m_sprite_bitmap); |
| 330 | 327 | |
| 331 | 328 | colortable_configure_tilemap_groups(machine.colortable, state->m_bg_tilemap, machine.gfx[0], 31); |
| r17673 | r17674 | |
| 335 | 332 | { |
| 336 | 333 | mappy_state *state = machine.driver_data<mappy_state>(); |
| 337 | 334 | |
| 338 | state->m_bg_tilemap = tilemap | |
| 335 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mappy_state::phozon_get_tile_info),state),tilemap_mapper_delegate(FUNC(mappy_state::superpac_tilemap_scan),state),8,8,36,28); | |
| 339 | 336 | |
| 340 | 337 | colortable_configure_tilemap_groups(machine.colortable, state->m_bg_tilemap, machine.gfx[0], 15); |
| 341 | 338 | |
| r17673 | r17674 | |
| 346 | 343 | { |
| 347 | 344 | mappy_state *state = machine.driver_data<mappy_state>(); |
| 348 | 345 | |
| 349 | state->m_bg_tilemap = tilemap | |
| 346 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mappy_state::mappy_get_tile_info),state),tilemap_mapper_delegate(FUNC(mappy_state::mappy_tilemap_scan),state),8,8,36,60); | |
| 350 | 347 | |
| 351 | 348 | colortable_configure_tilemap_groups(machine.colortable, state->m_bg_tilemap, machine.gfx[0], 31); |
| 352 | 349 | state->m_bg_tilemap->set_scroll_cols(36); |
| r17673 | r17674 | |
|---|---|---|
| 109 | 109 | } |
| 110 | 110 | } |
| 111 | 111 | |
| 112 | ||
| 112 | ||
| 113 | 113 | { |
| 114 | tigeroad_state *state = machine.driver_data<tigeroad_state>(); | |
| 115 | UINT8 *tilerom = state->memregion("gfx4")->base(); | |
| 114 | UINT8 *tilerom = memregion("gfx4")->base(); | |
| 116 | 115 | |
| 117 | 116 | int data = tilerom[tile_index]; |
| 118 | 117 | int attr = tilerom[tile_index + 1]; |
| 119 | int code = data + ((attr & 0xc0) << 2) + ( | |
| 118 | int code = data + ((attr & 0xc0) << 2) + ( | |
| 120 | 119 | int color = attr & 0x0f; |
| 121 | 120 | int flags = (attr & 0x20) ? TILE_FLIPX : 0; |
| 122 | 121 | |
| 123 | SET_TILE_INFO(1, code, color, flags); | |
| 122 | SET_TILE_INFO_MEMBER(1, code, color, flags); | |
| 124 | 123 | tileinfo.group = (attr & 0x10) ? 1 : 0; |
| 125 | 124 | } |
| 126 | 125 | |
| 127 | ||
| 126 | ||
| 128 | 127 | { |
| 129 | tigeroad_state *state = machine.driver_data<tigeroad_state>(); | |
| 130 | UINT16 *videoram = state->m_videoram; | |
| 128 | UINT16 *videoram = m_videoram; | |
| 131 | 129 | int data = videoram[tile_index]; |
| 132 | 130 | int attr = data >> 8; |
| 133 | 131 | int code = (data & 0xff) + ((attr & 0xc0) << 2) + ((attr & 0x20) << 5); |
| 134 | 132 | int color = attr & 0x0f; |
| 135 | 133 | int flags = (attr & 0x10) ? TILE_FLIPY : 0; |
| 136 | 134 | |
| 137 | SET_TILE_INFO(0, code, color, flags); | |
| 135 | SET_TILE_INFO_MEMBER(0, code, color, flags); | |
| 138 | 136 | } |
| 139 | 137 | |
| 140 | ||
| 138 | ||
| 141 | 139 | { |
| 142 | 140 | /* logical (col,row) -> memory offset */ |
| 143 | 141 | return 2 * (col % 8) + 16 * ((127 - row) % 8) + 128 * (col / 8) + 2048 * ((127 - row) / 8); |
| r17673 | r17674 | |
| 146 | 144 | VIDEO_START( tigeroad ) |
| 147 | 145 | { |
| 148 | 146 | tigeroad_state *state = machine.driver_data<tigeroad_state>(); |
| 149 | state->m_bg_tilemap = tilemap | |
| 147 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tigeroad_state::get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(tigeroad_state::tigeroad_tilemap_scan),state), | |
| 150 | 148 | 32, 32, 128, 128); |
| 151 | 149 | |
| 152 | state->m_fg_tilemap = tilemap | |
| 150 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tigeroad_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, | |
| 153 | 151 | 8, 8, 32, 32); |
| 154 | 152 | |
| 155 | 153 | state->m_bg_tilemap->set_transmask(0, 0xffff, 0); |
| r17673 | r17674 | |
|---|---|---|
| 221 | 221 | * |
| 222 | 222 | *************************************/ |
| 223 | 223 | |
| 224 | ||
| 224 | ||
| 225 | 225 | static void sprite_erase_buffer(segas32_state *state); |
| 226 | 226 | static void sprite_swap_buffers(segas32_state *state); |
| 227 | 227 | static void sprite_render_list(running_machine &machine); |
| r17673 | r17674 | |
| 252 | 252 | { |
| 253 | 253 | struct cache_entry *entry = auto_alloc(machine, struct cache_entry); |
| 254 | 254 | |
| 255 | entry->tmap = tilemap | |
| 255 | entry->tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(segas32_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 16,16, 32,16); | |
| 256 | 256 | entry->page = 0xff; |
| 257 | 257 | entry->bank = 0; |
| 258 | 258 | entry->next = state->m_cache_head; |
| r17673 | r17674 | |
| 747 | 747 | * |
| 748 | 748 | *************************************/ |
| 749 | 749 | |
| 750 | ||
| 750 | ||
| 751 | 751 | { |
| 752 | segas32_state *state = machine.driver_data<segas32_state>(); | |
| 753 | 752 | struct cache_entry *entry = (struct cache_entry *)param; |
| 754 | UINT16 data = state->m_system32_videoram[(entry->page & 0x7f) * 0x200 + tile_index]; | |
| 755 | SET_TILE_INFO(0, (entry->bank << 13) + (data & 0x1fff), (data >> 4) & 0x1ff, (data >> 14) & 3); | |
| 753 | UINT16 data = m_system32_videoram[(entry->page & 0x7f) * 0x200 + tile_index]; | |
| 754 | SET_TILE_INFO_MEMBER(0, (entry->bank << 13) + (data & 0x1fff), (data >> 4) & 0x1ff, (data >> 14) & 3); | |
| 756 | 755 | } |
| 757 | 756 | |
| 758 | 757 |
| r17673 | r17674 | |
|---|---|---|
| 16 | 16 | * |
| 17 | 17 | *************************************/ |
| 18 | 18 | |
| 19 | ||
| 19 | ||
| 20 | 20 | { |
| 21 | badlands_state *state = machine.driver_data<badlands_state>(); | |
| 22 | UINT16 data = state->m_playfield[tile_index]; | |
| 23 | int code = (data & 0x1fff) + ((data & 0x1000) ? (state->m_playfield_tile_bank << 12) : 0); | |
| 21 | UINT16 data = m_playfield[tile_index]; | |
| 22 | int code = (data & 0x1fff) + ((data & 0x1000) ? (m_playfield_tile_bank << 12) : 0); | |
| 24 | 23 | int color = (data >> 13) & 0x07; |
| 25 | SET_TILE_INFO(0, code, color, 0); | |
| 24 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 26 | 25 | } |
| 27 | 26 | |
| 28 | 27 | |
| r17673 | r17674 | |
| 74 | 73 | badlands_state *state = machine.driver_data<badlands_state>(); |
| 75 | 74 | |
| 76 | 75 | /* initialize the playfield */ |
| 77 | state->m_playfield_tilemap = tilemap | |
| 76 | state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(badlands_state::get_playfield_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,32); | |
| 78 | 77 | |
| 79 | 78 | /* initialize the motion objects */ |
| 80 | 79 | atarimo_init(machine, 0, &modesc); |
| r17673 | r17674 | |
|---|---|---|
| 16 | 16 | |
| 17 | 17 | ***************************************************************************/ |
| 18 | 18 | |
| 19 | ||
| 19 | ||
| 20 | 20 | { |
| 21 | slapfght_state *state = machine.driver_data<slapfght_state>(); | |
| 22 | 21 | int tile,color; |
| 23 | 22 | |
| 24 | tile=state->m_slapfight_videoram[tile_index] + ((state->m_slapfight_colorram[tile_index] & 0x03) << 8); | |
| 25 | color=(state->m_slapfight_colorram[tile_index] >> 3) & 0x0f; | |
| 26 | SET_TILE_INFO( | |
| 23 | tile=m_slapfight_videoram[tile_index] + ((m_slapfight_colorram[tile_index] & 0x03) << 8); | |
| 24 | color=(m_slapfight_colorram[tile_index] >> 3) & 0x0f; | |
| 25 | SET_TILE_INFO_MEMBER( | |
| 27 | 26 | 0, |
| 28 | 27 | tile, |
| 29 | 28 | color, |
| 30 | 29 | 0); |
| 31 | 30 | } |
| 32 | 31 | |
| 33 | ||
| 32 | ||
| 34 | 33 | { |
| 35 | slapfght_state *state = machine.driver_data<slapfght_state>(); | |
| 36 | 34 | int tile,color; |
| 37 | 35 | |
| 38 | tile=state->m_slapfight_videoram[tile_index] + ((state->m_slapfight_colorram[tile_index] & 0x0f) << 8); | |
| 39 | color=(state->m_slapfight_colorram[tile_index] & 0xf0) >> 4; | |
| 36 | tile=m_slapfight_videoram[tile_index] + ((m_slapfight_colorram[tile_index] & 0x0f) << 8); | |
| 37 | color=(m_slapfight_colorram[tile_index] & 0xf0) >> 4; | |
| 40 | 38 | |
| 41 | SET_TILE_INFO( | |
| 39 | SET_TILE_INFO_MEMBER( | |
| 42 | 40 | 1, |
| 43 | 41 | tile, |
| 44 | 42 | color, |
| 45 | 43 | 0); |
| 46 | 44 | } |
| 47 | 45 | |
| 48 | ||
| 46 | ||
| 49 | 47 | { |
| 50 | slapfght_state *state = machine.driver_data<slapfght_state>(); | |
| 51 | 48 | int tile,color; |
| 52 | 49 | |
| 53 | tile=state->m_slapfight_fixvideoram[tile_index] + ((state->m_slapfight_fixcolorram[tile_index] & 0x03) << 8); | |
| 54 | color=(state->m_slapfight_fixcolorram[tile_index] & 0xfc) >> 2; | |
| 50 | tile=m_slapfight_fixvideoram[tile_index] + ((m_slapfight_fixcolorram[tile_index] & 0x03) << 8); | |
| 51 | color=(m_slapfight_fixcolorram[tile_index] & 0xfc) >> 2; | |
| 55 | 52 | |
| 56 | SET_TILE_INFO( | |
| 53 | SET_TILE_INFO_MEMBER( | |
| 57 | 54 | 0, |
| 58 | 55 | tile, |
| 59 | 56 | color, |
| r17673 | r17674 | |
| 70 | 67 | VIDEO_START( perfrman ) |
| 71 | 68 | { |
| 72 | 69 | slapfght_state *state = machine.driver_data<slapfght_state>(); |
| 73 | state->m_pf1_tilemap = tilemap | |
| 70 | state->m_pf1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(slapfght_state::get_pf_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32); | |
| 74 | 71 | |
| 75 | 72 | state->m_pf1_tilemap->set_transparent_pen(0); |
| 76 | 73 | } |
| r17673 | r17674 | |
| 78 | 75 | VIDEO_START( slapfight ) |
| 79 | 76 | { |
| 80 | 77 | slapfght_state *state = machine.driver_data<slapfght_state>(); |
| 81 | state->m_pf1_tilemap = tilemap_create(machine, get_pf1_tile_info,TILEMAP_SCAN_ROWS,8,8,64,32); | |
| 82 | state->m_fix_tilemap = tilemap_create(machine, get_fix_tile_info,TILEMAP_SCAN_ROWS,8,8,64,32); | |
| 78 | state->m_pf1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(slapfght_state::get_pf1_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32); | |
| 79 | state->m_fix_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(slapfght_state::get_fix_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32); | |
| 83 | 80 | |
| 84 | 81 | state->m_fix_tilemap->set_transparent_pen(0); |
| 85 | 82 | } |
| r17673 | r17674 | |
|---|---|---|
| 13 | 13 | #include "includes/quizdna.h" |
| 14 | 14 | |
| 15 | 15 | |
| 16 | ||
| 16 | ||
| 17 | 17 | { |
| 18 | quizdna_state *state = machine.driver_data<quizdna_state>(); | |
| 19 | int code = state->m_bg_ram[tile_index*2] + state->m_bg_ram[tile_index*2+1]*0x100 ; | |
| 20 | int col = state->m_bg_ram[tile_index*2+0x1000] & 0x7f; | |
| 18 | int code = m_bg_ram[tile_index*2] + m_bg_ram[tile_index*2+1]*0x100 ; | |
| 19 | int col = m_bg_ram[tile_index*2+0x1000] & 0x7f; | |
| 21 | 20 | |
| 22 | 21 | if (code>0x7fff) |
| 23 | 22 | code &= 0x83ff; |
| 24 | 23 | |
| 25 | SET_TILE_INFO(1, code, col, 0); | |
| 24 | SET_TILE_INFO_MEMBER(1, code, col, 0); | |
| 26 | 25 | } |
| 27 | 26 | |
| 28 | ||
| 27 | ||
| 29 | 28 | { |
| 30 | quizdna_state *state = machine.driver_data<quizdna_state>(); | |
| 31 | 29 | int code,col,x,y; |
| 32 | UINT8 *FG = | |
| 30 | UINT8 *FG = | |
| 33 | 31 | |
| 34 | 32 | x = tile_index & 0x1f; |
| 35 | 33 | y = FG[(tile_index >> 5) & 0x1f] & 0x3f; |
| r17673 | r17674 | |
| 37 | 35 | |
| 38 | 36 | y >>= 1; |
| 39 | 37 | |
| 40 | col = state->m_fg_ram[x*2 + y*0x40 + 1]; | |
| 41 | code += (state->m_fg_ram[x*2 + y*0x40] + (col & 0x1f) * 0x100) * 2; | |
| 38 | col = m_fg_ram[x*2 + y*0x40 + 1]; | |
| 39 | code += (m_fg_ram[x*2 + y*0x40] + (col & 0x1f) * 0x100) * 2; | |
| 42 | 40 | col >>= 5; |
| 43 | 41 | col = (col & 3) | ((col & 4) << 1); |
| 44 | 42 | |
| 45 | SET_TILE_INFO(0, code, col, 0); | |
| 43 | SET_TILE_INFO_MEMBER(0, code, col, 0); | |
| 46 | 44 | } |
| 47 | 45 | |
| 48 | 46 | |
| r17673 | r17674 | |
| 57 | 55 | state->m_bg_ram = auto_alloc_array(machine, UINT8, 0x2000); |
| 58 | 56 | state->m_fg_ram = auto_alloc_array(machine, UINT8, 0x1000); |
| 59 | 57 | |
| 60 | state->m_bg_tilemap = tilemap_create( machine, get_bg_tile_info,TILEMAP_SCAN_ROWS,8,8,64,32 ); | |
| 61 | state->m_fg_tilemap = tilemap_create( machine, get_fg_tile_info,TILEMAP_SCAN_ROWS,16,8,32,32 ); | |
| 58 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(quizdna_state::get_bg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32 ); | |
| 59 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(quizdna_state::get_fg_tile_info),state),TILEMAP_SCAN_ROWS,16,8,32,32 ); | |
| 62 | 60 | |
| 63 | 61 | state->m_fg_tilemap->set_transparent_pen(0 ); |
| 64 | 62 | } |
| r17673 | r17674 | |
|---|---|---|
| 16 | 16 | * |
| 17 | 17 | *************************************/ |
| 18 | 18 | |
| 19 | ||
| 19 | ||
| 20 | 20 | { |
| 21 | offtwall_state *state = machine.driver_data<offtwall_state>(); | |
| 22 | UINT16 data1 = state->m_playfield[tile_index]; | |
| 23 | UINT16 data2 = state->m_playfield_upper[tile_index] >> 8; | |
| 21 | UINT16 data1 = m_playfield[tile_index]; | |
| 22 | UINT16 data2 = m_playfield_upper[tile_index] >> 8; | |
| 24 | 23 | int code = data1 & 0x7fff; |
| 25 | 24 | int color = 0x10 + (data2 & 0x0f); |
| 26 | SET_TILE_INFO(0, code, color, (data1 >> 15) & 1); | |
| 25 | SET_TILE_INFO_MEMBER(0, code, color, (data1 >> 15) & 1); | |
| 27 | 26 | } |
| 28 | 27 | |
| 29 | 28 | |
| r17673 | r17674 | |
| 75 | 74 | offtwall_state *state = machine.driver_data<offtwall_state>(); |
| 76 | 75 | |
| 77 | 76 | /* initialize the playfield */ |
| 78 | state->m_playfield_tilemap = tilemap | |
| 77 | state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(offtwall_state::get_playfield_tile_info),state), TILEMAP_SCAN_COLS, 8,8, 64,64); | |
| 79 | 78 | |
| 80 | 79 | /* initialize the motion objects */ |
| 81 | 80 | atarimo_init(machine, 0, &modesc); |
| r17673 | r17674 | |
|---|---|---|
| 62 | 62 | * |
| 63 | 63 | *************************************/ |
| 64 | 64 | |
| 65 | ||
| 65 | ||
| 66 | 66 | { |
| 67 | equites_state *state = machine.driver_data<equites_state>(); | |
| 68 | int tile = state->m_fg_videoram[2 * tile_index]; | |
| 69 | int color = state->m_fg_videoram[2 * tile_index + 1] & 0x1f; | |
| 67 | int tile = m_fg_videoram[2 * tile_index]; | |
| 68 | int color = m_fg_videoram[2 * tile_index + 1] & 0x1f; | |
| 70 | 69 | |
| 71 | SET_TILE_INFO(0, tile, color, 0); | |
| 70 | SET_TILE_INFO_MEMBER(0, tile, color, 0); | |
| 72 | 71 | if (color & 0x10) |
| 73 | 72 | tileinfo.flags |= TILE_FORCE_LAYER0; |
| 74 | 73 | } |
| 75 | 74 | |
| 76 | ||
| 75 | ||
| 77 | 76 | { |
| 78 | equites_state *state = machine.driver_data<equites_state>(); | |
| 79 | int tile = state->m_fg_videoram[2 * tile_index] + (state->m_fg_char_bank << 8); | |
| 80 | int color = state->m_fg_videoram[2 * tile_index + 1] & 0x3f; | |
| 77 | int tile = m_fg_videoram[2 * tile_index] + (m_fg_char_bank << 8); | |
| 78 | int color = m_fg_videoram[2 * tile_index + 1] & 0x3f; | |
| 81 | 79 | |
| 82 | SET_TILE_INFO(0, tile, color, 0); | |
| 80 | SET_TILE_INFO_MEMBER(0, tile, color, 0); | |
| 83 | 81 | if (color & 0x10) |
| 84 | 82 | tileinfo.flags |= TILE_FORCE_LAYER0; |
| 85 | 83 | } |
| 86 | 84 | |
| 87 | ||
| 85 | ||
| 88 | 86 | { |
| 89 | equites_state *state = machine.driver_data<equites_state>(); | |
| 90 | int data = state->m_bg_videoram[tile_index]; | |
| 87 | int data = m_bg_videoram[tile_index]; | |
| 91 | 88 | int tile = data & 0x1ff; |
| 92 | 89 | int color = (data & 0xf000) >> 12; |
| 93 | 90 | int fxy = (data & 0x0600) >> 9; |
| 94 | 91 | |
| 95 | SET_TILE_INFO(1, tile, color, TILE_FLIPXY(fxy)); | |
| 92 | SET_TILE_INFO_MEMBER(1, tile, color, TILE_FLIPXY(fxy)); | |
| 96 | 93 | } |
| 97 | 94 | |
| 98 | ||
| 95 | ||
| 99 | 96 | { |
| 100 | equites_state *state = machine.driver_data<equites_state>(); | |
| 101 | int data = state->m_bg_videoram[tile_index]; | |
| 97 | int data = m_bg_videoram[tile_index]; | |
| 102 | 98 | int tile = data & 0x1ff; |
| 103 | 99 | int color = (data & 0xf800) >> 11; |
| 104 | 100 | int fxy = (data & 0x0600) >> 9; |
| 105 | 101 | |
| 106 | SET_TILE_INFO(1, tile, color, TILE_FLIPXY(fxy)); | |
| 102 | SET_TILE_INFO_MEMBER(1, tile, color, TILE_FLIPXY(fxy)); | |
| 107 | 103 | tileinfo.group = color; |
| 108 | 104 | } |
| 109 | 105 | |
| r17673 | r17674 | |
| 121 | 117 | state->m_fg_videoram = auto_alloc_array(machine, UINT8, 0x800); |
| 122 | 118 | state->save_pointer(NAME(state->m_fg_videoram), 0x800); |
| 123 | 119 | |
| 124 | state->m_fg_tilemap = tilemap | |
| 120 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_del | |
| 125 | 121 | state->m_fg_tilemap->set_transparent_pen(0); |
| 126 | 122 | |
| 127 | state->m_bg_tilemap = tilemap | |
| 123 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_del | |
| 128 | 124 | state->m_bg_tilemap->set_transparent_pen(0); |
| 129 | 125 | state->m_bg_tilemap->set_scrolldx(0, -10); |
| 130 | 126 | } |
| r17673 | r17674 | |
| 137 | 133 | state->m_fg_videoram = auto_alloc_array(machine, UINT8, 0x800); |
| 138 | 134 | state->save_pointer(NAME(state->m_fg_videoram), 0x800); |
| 139 | 135 | |
| 140 | state->m_fg_tilemap = tilemap | |
| 136 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(equites_state::splndrbt_fg_info),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); | |
| 141 | 137 | state->m_fg_tilemap->set_transparent_pen(0); |
| 142 | 138 | state->m_fg_tilemap->set_scrolldx(8, -8); |
| 143 | 139 | |
| 144 | state->m_bg_tilemap = tilemap | |
| 140 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(equites_state::splndrbt_bg_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 145 | 141 | colortable_configure_tilemap_groups(machine.colortable, state->m_bg_tilemap, machine.gfx[1], 0x10); |
| 146 | 142 | } |
| 147 | 143 |
| r17673 | r17674 | |
|---|---|---|
| 140 | 140 | |
| 141 | 141 | |
| 142 | 142 | |
| 143 | ||
| 143 | ||
| 144 | 144 | { |
| 145 | mystwarr_state *state = machine.driver_data<mystwarr_state>(); | |
| 146 | 145 | int tileno, colour; |
| 147 | UINT8 *ROM = | |
| 146 | UINT8 *ROM = | |
| 148 | 147 | UINT8 *dat1 = ROM, *dat2 = ROM + 0x20000, *dat3 = ROM + 0x60000; |
| 149 | 148 | |
| 150 | 149 | tileno = dat3[tile_index] | ((dat2[tile_index]&0x3f)<<8); |
| r17673 | r17674 | |
| 156 | 155 | |
| 157 | 156 | if (dat2[tile_index] & 0x80) colour |= 0x10; |
| 158 | 157 | |
| 159 | colour |= | |
| 158 | colour |= | |
| 160 | 159 | |
| 161 | SET_TILE_INFO(0, tileno, colour, 0); | |
| 160 | SET_TILE_INFO_MEMBER(0, tileno, colour, 0); | |
| 162 | 161 | } |
| 163 | 162 | |
| 164 | 163 | VIDEO_START(gaiapols) |
| r17673 | r17674 | |
| 185 | 184 | K053936_wraparound_enable(0, 1); |
| 186 | 185 | K053936GP_set_offset(0, -10, 0); // floor tiles in demo loop2 (Elaine vs. boss) |
| 187 | 186 | |
| 188 | state->m_ult_936_tilemap = tilemap | |
| 187 | state->m_ult_936_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mystwarr_state::get_gai_936_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 512, 512); | |
| 189 | 188 | state->m_ult_936_tilemap->set_transparent_pen(0); |
| 190 | 189 | } |
| 191 | 190 | |
| 192 | ||
| 191 | ||
| 193 | 192 | { |
| 194 | mystwarr_state *state = machine.driver_data<mystwarr_state>(); | |
| 195 | 193 | int tileno, colour; |
| 196 | UINT8 *ROM = | |
| 194 | UINT8 *ROM = | |
| 197 | 195 | UINT8 *dat1 = ROM, *dat2 = ROM + 0x40000; |
| 198 | 196 | |
| 199 | 197 | tileno = dat2[tile_index] | ((dat1[tile_index]&0x1f)<<8); |
| 200 | 198 | |
| 201 | colour = | |
| 199 | colour = | |
| 202 | 200 | |
| 203 | SET_TILE_INFO(0, tileno, colour, (dat1[tile_index]&0x40) ? TILE_FLIPX : 0); | |
| 201 | SET_TILE_INFO_MEMBER(0, tileno, colour, (dat1[tile_index]&0x40) ? TILE_FLIPX : 0); | |
| 204 | 202 | } |
| 205 | 203 | |
| 206 | 204 | VIDEO_START(dadandrn) |
| r17673 | r17674 | |
| 229 | 227 | K053936_wraparound_enable(0, 1); |
| 230 | 228 | K053936GP_set_offset(0, -8, 0); // Brainy's laser |
| 231 | 229 | |
| 232 | state->m_ult_936_tilemap = tilemap | |
| 230 | state->m_ult_936_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mystwarr_state::get_ult_936_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 512, 512); | |
| 233 | 231 | state->m_ult_936_tilemap->set_transparent_pen(0); |
| 234 | 232 | } |
| 235 | 233 |
| r17673 | r17674 | |
|---|---|---|
| 30 | 30 | SET_TILE_INFO(layer, tile, color, 0); |
| 31 | 31 | } |
| 32 | 32 | |
| 33 | static TILE_GET_INFO( get_fromance_bg_tile_info ) { get_fromance_tile_info(machine, tileinfo, tile_index, 0); } | |
| 34 | static TILE_GET_INFO( get_fromance_fg_tile_info ) { get_fromance_tile_info(machine, tileinfo, tile_index, 1); } | |
| 33 | TILE_GET_INFO_MEMBER(fromance_state::get_fromance_bg_tile_info){ get_fromance_tile_info(machine(), tileinfo, tile_index, 0); } | |
| 34 | TILE_GET_INFO_MEMBER(fromance_state::get_fromance_fg_tile_info){ get_fromance_tile_info(machine(), tileinfo, tile_index, 1); } | |
| 35 | 35 | |
| 36 | 36 | |
| 37 | 37 | INLINE void get_nekkyoku_tile_info( running_machine &machine, tile_data &tileinfo, int tile_index, int layer ) |
| r17673 | r17674 | |
| 44 | 44 | SET_TILE_INFO(layer, tile, color, 0); |
| 45 | 45 | } |
| 46 | 46 | |
| 47 | static TILE_GET_INFO( get_nekkyoku_bg_tile_info ) { get_nekkyoku_tile_info(machine, tileinfo, tile_index, 0); } | |
| 48 | static TILE_GET_INFO( get_nekkyoku_fg_tile_info ) { get_nekkyoku_tile_info(machine, tileinfo, tile_index, 1); } | |
| 47 | TILE_GET_INFO_MEMBER(fromance_state::get_nekkyoku_bg_tile_info){ get_nekkyoku_tile_info(machine(), tileinfo, tile_index, 0); } | |
| 48 | TILE_GET_INFO_MEMBER(fromance_state::get_nekkyoku_fg_tile_info){ get_nekkyoku_tile_info(machine(), tileinfo, tile_index, 1); } | |
| 49 | 49 | |
| 50 | 50 | |
| 51 | 51 | |
| r17673 | r17674 | |
| 94 | 94 | fromance_state *state = machine.driver_data<fromance_state>(); |
| 95 | 95 | |
| 96 | 96 | /* allocate tilemaps */ |
| 97 | state->m_bg_tilemap = tilemap_create(machine, get_fromance_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 4, 64, 64); | |
| 98 | state->m_fg_tilemap = tilemap_create(machine, get_fromance_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 4, 64, 64); | |
| 97 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromance_state::get_fromance_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 4, 64, 64); | |
| 98 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromance_state::get_fromance_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 4, 64, 64); | |
| 99 | 99 | |
| 100 | 100 | init_common(machine); |
| 101 | 101 | } |
| r17673 | r17674 | |
| 105 | 105 | fromance_state *state = machine.driver_data<fromance_state>(); |
| 106 | 106 | |
| 107 | 107 | /* allocate tilemaps */ |
| 108 | state->m_bg_tilemap = tilemap_create(machine, get_nekkyoku_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 4, 64, 64); | |
| 109 | state->m_fg_tilemap = tilemap_create(machine, get_nekkyoku_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 4, 64, 64); | |
| 108 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromance_state::get_nekkyoku_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 4, 64, 64); | |
| 109 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fromance_state::get_nekkyoku_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 4, 64, 64); | |
| 110 | 110 | |
| 111 | 111 | init_common(machine); |
| 112 | 112 | } |
| r17673 | r17674 | |
|---|---|---|
| 57 | 57 | ***************************************************************************/ |
| 58 | 58 | |
| 59 | 59 | /* convert from 32x32 to 36x28 */ |
| 60 | ||
| 60 | ||
| 61 | 61 | { |
| 62 | 62 | int offs; |
| 63 | 63 | |
| r17673 | r17674 | |
| 71 | 71 | return offs; |
| 72 | 72 | } |
| 73 | 73 | |
| 74 | ||
| 74 | ||
| 75 | 75 | { |
| 76 | skykid_state *state = machine.driver_data<skykid_state>(); | |
| 77 | int code = state->m_textram[tile_index]; | |
| 78 | int attr = state->m_textram[tile_index + 0x400]; | |
| 76 | int code = m_textram[tile_index]; | |
| 77 | int attr = m_textram[tile_index + 0x400]; | |
| 79 | 78 | tileinfo.category = code >> 4 & 0xf; |
| 80 | 79 | |
| 81 | 80 | /* the hardware has two character sets, one normal and one flipped. When |
| 82 | 81 | screen is flipped, character flip is done by selecting the 2nd character set. |
| 83 | 82 | We reproduce this here, but since the tilemap system automatically flips |
| 84 | 83 | characters when screen is flipped, we have to flip them back. */ |
| 85 | SET_TILE_INFO( | |
| 84 | SET_TILE_INFO_MEMBER( | |
| 86 | 85 | 0, |
| 87 | code | ( | |
| 86 | code | ( | |
| 88 | 87 | attr & 0x3f, |
| 89 | | |
| 88 | | |
| 90 | 89 | } |
| 91 | 90 | |
| 92 | 91 | |
| 93 | ||
| 92 | ||
| 94 | 93 | { |
| 95 | skykid_state *state = machine.driver_data<skykid_state>(); | |
| 96 | int code = state->m_videoram[tile_index]; | |
| 97 | int attr = state->m_videoram[tile_index+0x800]; | |
| 94 | int code = m_videoram[tile_index]; | |
| 95 | int attr = m_videoram[tile_index+0x800]; | |
| 98 | 96 | |
| 99 | SET_TILE_INFO( | |
| 97 | SET_TILE_INFO_MEMBER( | |
| 100 | 98 | 1, |
| 101 | 99 | code + ((attr & 0x01) << 8), |
| 102 | 100 | ((attr & 0x7e) >> 1) | ((attr & 0x01) << 6), |
| r17673 | r17674 | |
| 114 | 112 | VIDEO_START( skykid ) |
| 115 | 113 | { |
| 116 | 114 | skykid_state *state = machine.driver_data<skykid_state>(); |
| 117 | state->m_tx_tilemap = tilemap_create(machine, tx_get_tile_info,tx_tilemap_scan, 8,8,36,28); | |
| 118 | state->m_bg_tilemap = tilemap_create(machine, bg_get_tile_info,TILEMAP_SCAN_ROWS, 8,8,64,32); | |
| 115 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(skykid_state::tx_get_tile_info),state),tilemap_mapper_delegate(FUNC(skykid_state::tx_tilemap_scan),state), 8,8,36,28); | |
| 116 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(skykid_state::bg_get_tile_info),state),TILEMAP_SCAN_ROWS, 8,8,64,32); | |
| 119 | 117 | |
| 120 | 118 | state->m_tx_tilemap->set_transparent_pen(0); |
| 121 | 119 |
| r17673 | r17674 | |
|---|---|---|
| 16 | 16 | * |
| 17 | 17 | *************************************/ |
| 18 | 18 | |
| 19 | ||
| 19 | ||
| 20 | 20 | { |
| 21 | klax_state *state = machine.driver_data<klax_state>(); | |
| 22 | UINT16 data1 = state->m_playfield[tile_index]; | |
| 23 | UINT16 data2 = state->m_playfield_upper[tile_index] >> 8; | |
| 21 | UINT16 data1 = m_playfield[tile_index]; | |
| 22 | UINT16 data2 = m_playfield_upper[tile_index] >> 8; | |
| 24 | 23 | int code = data1 & 0x1fff; |
| 25 | 24 | int color = data2 & 0x0f; |
| 26 | SET_TILE_INFO(0, code, color, (data1 >> 15) & 1); | |
| 25 | SET_TILE_INFO_MEMBER(0, code, color, (data1 >> 15) & 1); | |
| 27 | 26 | } |
| 28 | 27 | |
| 29 | 28 | |
| r17673 | r17674 | |
| 75 | 74 | klax_state *state = machine.driver_data<klax_state>(); |
| 76 | 75 | |
| 77 | 76 | /* initialize the playfield */ |
| 78 | state->m_playfield_tilemap = tilemap | |
| 77 | state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(klax_state::get_playfield_tile_info),state), TILEMAP_SCAN_COLS, 8,8, 64,32); | |
| 79 | 78 | |
| 80 | 79 | /* initialize the motion objects */ |
| 81 | 80 | atarimo_init(machine, 0, &modesc); |
| r17673 | r17674 | |
|---|---|---|
| 8 | 8 | #include "includes/quizpani.h" |
| 9 | 9 | |
| 10 | 10 | |
| 11 | ||
| 11 | ||
| 12 | 12 | { |
| 13 | 13 | /* logical (col,row) -> memory offset */ |
| 14 | 14 | return (row & 0x0f) + ((col & 0xff) << 4) + ((row & 0x70) << 8); |
| 15 | 15 | } |
| 16 | 16 | |
| 17 | ||
| 17 | ||
| 18 | 18 | { |
| 19 | quizpani_state *state = machine.driver_data<quizpani_state>(); | |
| 20 | int code = state->m_bg_videoram[tile_index]; | |
| 19 | int code = m_bg_videoram[tile_index]; | |
| 21 | 20 | |
| 22 | SET_TILE_INFO( | |
| 21 | SET_TILE_INFO_MEMBER( | |
| 23 | 22 | 1, |
| 24 | (code & 0xfff) + (0x1000 * | |
| 23 | (code & 0xfff) + (0x1000 * | |
| 25 | 24 | code >> 12, |
| 26 | 25 | 0); |
| 27 | 26 | } |
| 28 | 27 | |
| 29 | ||
| 28 | ||
| 30 | 29 | { |
| 31 | quizpani_state *state = machine.driver_data<quizpani_state>(); | |
| 32 | int code = state->m_txt_videoram[tile_index]; | |
| 30 | int code = m_txt_videoram[tile_index]; | |
| 33 | 31 | |
| 34 | SET_TILE_INFO( | |
| 32 | SET_TILE_INFO_MEMBER( | |
| 35 | 33 | 0, |
| 36 | (code & 0xfff) + (0x1000 * | |
| 34 | (code & 0xfff) + (0x1000 * | |
| 37 | 35 | code >> 12, |
| 38 | 36 | 0); |
| 39 | 37 | } |
| r17673 | r17674 | |
| 71 | 69 | VIDEO_START( quizpani ) |
| 72 | 70 | { |
| 73 | 71 | quizpani_state *state = machine.driver_data<quizpani_state>(); |
| 74 | state->m_bg_tilemap = tilemap_create(machine, bg_tile_info, bg_scan,16,16,256,32); | |
| 75 | state->m_txt_tilemap = tilemap_create(machine, txt_tile_info,bg_scan,16,16,256,32); | |
| 72 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(quizpani_state::bg_tile_info),state), tilemap_mapper_delegate(FUNC(quizpani_state::bg_scan),state),16,16,256,32); | |
| 73 | state->m_txt_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(quizpani_state::txt_tile_info),state),tilemap_mapper_delegate(FUNC(quizpani_state::bg_scan),state),16,16,256,32); | |
| 76 | 74 | state->m_txt_tilemap->set_transparent_pen(15); |
| 77 | 75 | } |
| 78 | 76 |
| r17673 | r17674 | |
|---|---|---|
| 54 | 54 | |
| 55 | 55 | ******************************************************************************/ |
| 56 | 56 | |
| 57 | ||
| 57 | ||
| 58 | 58 | { |
| 59 | gomoku_state *state = machine.driver_data<gomoku_state>(); | |
| 60 | int code = (state->m_videoram[tile_index]); | |
| 61 | int attr = (state->m_colorram[tile_index]); | |
| 59 | int code = (m_videoram[tile_index]); | |
| 60 | int attr = (m_colorram[tile_index]); | |
| 62 | 61 | int color = (attr& 0x0f); |
| 63 | 62 | int flipyx = (attr & 0xc0) >> 6; |
| 64 | 63 | |
| 65 | SET_TILE_INFO( | |
| 64 | SET_TILE_INFO_MEMBER( | |
| 66 | 65 | 0, |
| 67 | 66 | code, |
| 68 | 67 | color, |
| r17673 | r17674 | |
| 115 | 114 | |
| 116 | 115 | machine.primary_screen->register_screen_bitmap(state->m_bg_bitmap); |
| 117 | 116 | |
| 118 | state->m_fg_tilemap = tilemap | |
| 117 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gomoku_state::get_fg_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32, 32); | |
| 119 | 118 | |
| 120 | 119 | state->m_fg_tilemap->set_transparent_pen(0); |
| 121 | 120 |
| r17673 | r17674 | |
|---|---|---|
| 121 | 121 | } |
| 122 | 122 | |
| 123 | 123 | |
| 124 | ||
| 124 | ||
| 125 | 125 | { |
| 126 | firetrk_state *state = machine.driver_data<firetrk_state>(); | |
| 127 | int code = state->m_playfield_ram[tile_index] & 0x3f; | |
| 128 | int color = (state->m_playfield_ram[tile_index] >> 6) & 0x03; | |
| 126 | int code = m_playfield_ram[tile_index] & 0x3f; | |
| 127 | int color = (m_playfield_ram[tile_index] >> 6) & 0x03; | |
| 129 | 128 | |
| 130 | if (* | |
| 129 | if (* | |
| 131 | 130 | color = 0; |
| 132 | 131 | |
| 133 | if ( | |
| 132 | if ( | |
| 134 | 133 | color = color | 0x04; |
| 135 | 134 | |
| 136 | SET_TILE_INFO(1, code, color, 0); | |
| 135 | SET_TILE_INFO_MEMBER(1, code, color, 0); | |
| 137 | 136 | } |
| 138 | 137 | |
| 139 | 138 | |
| 140 | ||
| 139 | ||
| 141 | 140 | { |
| 142 | firetrk_state *state = machine.driver_data<firetrk_state>(); | |
| 143 | int code = state->m_playfield_ram[tile_index] & 0x3f; | |
| 144 | int color = (state->m_playfield_ram[tile_index] >> 6) & 0x03; | |
| 141 | int code = m_playfield_ram[tile_index] & 0x3f; | |
| 142 | int color = (m_playfield_ram[tile_index] >> 6) & 0x03; | |
| 145 | 143 | |
| 146 | if (* | |
| 144 | if (* | |
| 147 | 145 | color = 0; |
| 148 | 146 | |
| 149 | if ( | |
| 147 | if ( | |
| 150 | 148 | color = color | 0x04; |
| 151 | 149 | |
| 152 | SET_TILE_INFO(1, code, color, 0); | |
| 150 | SET_TILE_INFO_MEMBER(1, code, color, 0); | |
| 153 | 151 | } |
| 154 | 152 | |
| 155 | 153 | |
| 156 | ||
| 154 | ||
| 157 | 155 | { |
| 158 | firetrk_state *state = machine.driver_data<firetrk_state>(); | |
| 159 | int code = state->m_playfield_ram[tile_index] & 0x3f; | |
| 160 | int color = (state->m_playfield_ram[tile_index] >> 6) & 0x03; | |
| 156 | int code = m_playfield_ram[tile_index] & 0x3f; | |
| 157 | int color = (m_playfield_ram[tile_index] >> 6) & 0x03; | |
| 161 | 158 | |
| 162 | if ( | |
| 159 | if ( | |
| 163 | 160 | color = color | 0x04; |
| 164 | 161 | |
| 165 | SET_TILE_INFO(1, code, color, 0); | |
| 162 | SET_TILE_INFO_MEMBER(1, code, color, 0); | |
| 166 | 163 | } |
| 167 | 164 | |
| 168 | 165 | |
| 169 | ||
| 166 | ||
| 170 | 167 | { |
| 171 | firetrk_state *state = machine.driver_data<firetrk_state>(); | |
| 172 | UINT8 code = state->m_playfield_ram[tile_index] & 0x3f; | |
| 168 | UINT8 code = m_playfield_ram[tile_index] & 0x3f; | |
| 173 | 169 | int color = 0; |
| 174 | 170 | |
| 175 | 171 | /* palette 1 for crash and palette 2 for skid */ |
| r17673 | r17674 | |
| 179 | 175 | if ((code & 0x3c) == 0x0c) |
| 180 | 176 | color = 2; /* palette 0, 2 */ |
| 181 | 177 | |
| 182 | SET_TILE_INFO(2, code, color, 0); | |
| 178 | SET_TILE_INFO_MEMBER(2, code, color, 0); | |
| 183 | 179 | } |
| 184 | 180 | |
| 185 | 181 | |
| 186 | ||
| 182 | ||
| 187 | 183 | { |
| 188 | firetrk_state *state = machine.driver_data<firetrk_state>(); | |
| 189 | UINT8 code = state->m_playfield_ram[tile_index] & 0x3f; | |
| 184 | UINT8 code = m_playfield_ram[tile_index] & 0x3f; | |
| 190 | 185 | int color = 0; |
| 191 | 186 | |
| 192 | 187 | /* palette 1 for crash and palette 2 for skid */ |
| r17673 | r17674 | |
| 196 | 191 | if ((code & 0x38) == 0x00) |
| 197 | 192 | color = 2; /* palette 0, 2 */ |
| 198 | 193 | |
| 199 | SET_TILE_INFO(2, code, color, 0); | |
| 194 | SET_TILE_INFO_MEMBER(2, code, color, 0); | |
| 200 | 195 | } |
| 201 | 196 | |
| 202 | 197 | |
| 203 | ||
| 198 | ||
| 204 | 199 | { |
| 205 | firetrk_state *state = machine.driver_data<firetrk_state>(); | |
| 206 | UINT8 code = state->m_playfield_ram[tile_index]; | |
| 200 | UINT8 code = m_playfield_ram[tile_index]; | |
| 207 | 201 | int color = 0; |
| 208 | 202 | |
| 209 | 203 | /* palette 1 for crash and palette 2 for skid */ |
| r17673 | r17674 | |
| 219 | 213 | if ((code & 0x30) == 0x30) |
| 220 | 214 | color = 0; /* palette 0, 0 */ |
| 221 | 215 | |
| 222 | SET_TILE_INFO(2, code & 0x3f, color, 0); | |
| 216 | SET_TILE_INFO_MEMBER(2, code & 0x3f, color, 0); | |
| 223 | 217 | } |
| 224 | 218 | |
| 225 | 219 | |
| r17673 | r17674 | |
| 229 | 223 | machine.primary_screen->register_screen_bitmap(state->m_helper1); |
| 230 | 224 | machine.primary_screen->register_screen_bitmap(state->m_helper2); |
| 231 | 225 | |
| 232 | state->m_tilemap1 = tilemap_create(machine, firetrk_get_tile_info1, TILEMAP_SCAN_ROWS, 16, 16, 16, 16); | |
| 233 | state->m_tilemap2 = tilemap_create(machine, firetrk_get_tile_info2, TILEMAP_SCAN_ROWS, 16, 16, 16, 16); | |
| 226 | state->m_tilemap1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(firetrk_state::firetrk_get_tile_info1),state), TILEMAP_SCAN_ROWS, 16, 16, 16, 16); | |
| 227 | state->m_tilemap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(firetrk_state::firetrk_get_tile_info2),state), TILEMAP_SCAN_ROWS, 16, 16, 16, 16); | |
| 234 | 228 | } |
| 235 | 229 | |
| 236 | 230 | |
| r17673 | r17674 | |
| 240 | 234 | machine.primary_screen->register_screen_bitmap(state->m_helper1); |
| 241 | 235 | machine.primary_screen->register_screen_bitmap(state->m_helper2); |
| 242 | 236 | |
| 243 | state->m_tilemap1 = tilemap_create(machine, superbug_get_tile_info1, TILEMAP_SCAN_ROWS, 16, 16, 16, 16); | |
| 244 | state->m_tilemap2 = tilemap_create(machine, superbug_get_tile_info2, TILEMAP_SCAN_ROWS, 16, 16, 16, 16); | |
| 237 | state->m_tilemap1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(firetrk_state::superbug_get_tile_info1),state), TILEMAP_SCAN_ROWS, 16, 16, 16, 16); | |
| 238 | state->m_tilemap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(firetrk_state::superbug_get_tile_info2),state), TILEMAP_SCAN_ROWS, 16, 16, 16, 16); | |
| 245 | 239 | } |
| 246 | 240 | |
| 247 | 241 | |
| r17673 | r17674 | |
| 251 | 245 | machine.primary_screen->register_screen_bitmap(state->m_helper1); |
| 252 | 246 | machine.primary_screen->register_screen_bitmap(state->m_helper2); |
| 253 | 247 | |
| 254 | state->m_tilemap1 = tilemap_create(machine, montecar_get_tile_info1, TILEMAP_SCAN_ROWS, 16, 16, 16, 16); | |
| 255 | state->m_tilemap2 = tilemap_create(machine, montecar_get_tile_info2, TILEMAP_SCAN_ROWS, 16, 16, 16, 16); | |
| 248 | state->m_tilemap1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(firetrk_state::montecar_get_tile_info1),state), TILEMAP_SCAN_ROWS, 16, 16, 16, 16); | |
| 249 | state->m_tilemap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(firetrk_state::montecar_get_tile_info2),state), TILEMAP_SCAN_ROWS, 16, 16, 16, 16); | |
| 256 | 250 | } |
| 257 | 251 | |
| 258 | 252 |
| r17673 | r17674 | |
|---|---|---|
| 110 | 110 | * |
| 111 | 111 | *************************************/ |
| 112 | 112 | |
| 113 | ||
| 113 | ||
| 114 | 114 | { |
| 115 | m57_state *state = machine.driver_data<m57_state>(); | |
| 116 | 115 | |
| 117 | UINT8 attr = state->m_videoram[tile_index * 2 + 0]; | |
| 118 | UINT16 code = state->m_videoram[tile_index * 2 + 1] | ((attr & 0xc0) << 2); | |
| 116 | UINT8 attr = m_videoram[tile_index * 2 + 0]; | |
| 117 | UINT16 code = m_videoram[tile_index * 2 + 1] | ((attr & 0xc0) << 2); | |
| 119 | 118 | |
| 120 | SET_TILE_INFO(0, code, attr & 0x0f, TILE_FLIPXY(attr >> 4)); | |
| 119 | SET_TILE_INFO_MEMBER(0, code, attr & 0x0f, TILE_FLIPXY(attr >> 4)); | |
| 121 | 120 | } |
| 122 | 121 | |
| 123 | 122 | |
| r17673 | r17674 | |
| 145 | 144 | { |
| 146 | 145 | m57_state *state = machine.driver_data<m57_state>(); |
| 147 | 146 | |
| 148 | state->m_bg_tilemap = tilemap | |
| 147 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m57_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 149 | 148 | state->m_bg_tilemap->set_scroll_rows(256); |
| 150 | 149 | |
| 151 | 150 | state->save_item(NAME(state->m_flipscreen)); |
| r17673 | r17674 | |
|---|---|---|
| 76 | 76 | m_bg_tilemap->set_scrollx(3, 0x100); |
| 77 | 77 | } |
| 78 | 78 | |
| 79 | ||
| 79 | ||
| 80 | 80 | { |
| 81 | mustache_state *state = machine.driver_data<mustache_state>(); | |
| 82 | UINT8 *videoram = state->m_videoram; | |
| 81 | UINT8 *videoram = m_videoram; | |
| 83 | 82 | int attr = videoram[2 * tile_index + 1]; |
| 84 | int code = videoram[2 * tile_index] + ((attr & 0x60) << 3) + (( | |
| 83 | int code = videoram[2 * tile_index] + ((attr & 0x60) << 3) + (( | |
| 85 | 84 | int color = attr & 0x0f; |
| 86 | 85 | |
| 87 | SET_TILE_INFO(0, code, color, ((attr & 0x10) ? TILE_FLIPX : 0) | ((attr & 0x80) ? TILE_FLIPY : 0) ); | |
| 86 | SET_TILE_INFO_MEMBER(0, code, color, ((attr & 0x10) ? TILE_FLIPX : 0) | ((attr & 0x80) ? TILE_FLIPY : 0) ); | |
| 88 | 87 | |
| 89 | 88 | |
| 90 | 89 | } |
| r17673 | r17674 | |
| 92 | 91 | VIDEO_START( mustache ) |
| 93 | 92 | { |
| 94 | 93 | mustache_state *state = machine.driver_data<mustache_state>(); |
| 95 | state->m_bg_tilemap = tilemap | |
| 94 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mustache_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS_FLIP_X, | |
| 96 | 95 | 8, 8, 64, 32); |
| 97 | 96 | |
| 98 | 97 | state->m_bg_tilemap->set_scroll_rows(4); |
| r17673 | r17674 | |
|---|---|---|
| 94 | 94 | } |
| 95 | 95 | } |
| 96 | 96 | |
| 97 | ||
| 97 | ||
| 98 | 98 | { |
| 99 | snookr10_state *state = machine.driver_data<snookr10_state>(); | |
| 100 | 99 | /* - bits - |
| 101 | 100 | 7654 3210 |
| 102 | 101 | xxxx ---- tiles color. |
| 103 | 102 | ---- xxxx seems unused. |
| 104 | 103 | */ |
| 105 | 104 | int offs = tile_index; |
| 106 | int attr = | |
| 105 | int attr = | |
| 107 | 106 | int code = attr & 0xfff; |
| 108 | int color = | |
| 107 | int color = | |
| 109 | 108 | |
| 110 | SET_TILE_INFO(0, code, color, 0); | |
| 109 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 111 | 110 | } |
| 112 | 111 | |
| 113 | 112 | |
| r17673 | r17674 | |
| 158 | 157 | } |
| 159 | 158 | } |
| 160 | 159 | |
| 161 | ||
| 160 | ||
| 162 | 161 | { |
| 163 | snookr10_state *state = machine.driver_data<snookr10_state>(); | |
| 164 | 162 | /* - bits - |
| 165 | 163 | 7654 3210 |
| 166 | 164 | xxxx ---- tiles color. |
| 167 | 165 | ---- xxxx seems unused. |
| 168 | 166 | */ |
| 169 | 167 | int offs = tile_index; |
| 170 | int attr = | |
| 168 | int attr = | |
| 171 | 169 | int code = BITSWAP16((attr & 0xfff),15,14,13,12,8,9,10,11,0,1,2,3,4,5,6,7); /* encrypted tile matrix */ |
| 172 | int color = | |
| 170 | int color = | |
| 173 | 171 | |
| 174 | SET_TILE_INFO(0, code, color, 0); | |
| 172 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 175 | 173 | } |
| 176 | 174 | |
| 177 | 175 | |
| 178 | 176 | VIDEO_START( snookr10 ) |
| 179 | 177 | { |
| 180 | 178 | snookr10_state *state = machine.driver_data<snookr10_state>(); |
| 181 | state->m_bg_tilemap = tilemap | |
| 179 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snookr10_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 4, 8, 128, 30); | |
| 182 | 180 | } |
| 183 | 181 | |
| 184 | 182 | VIDEO_START( apple10 ) |
| 185 | 183 | { |
| 186 | 184 | snookr10_state *state = machine.driver_data<snookr10_state>(); |
| 187 | state->m_bg_tilemap = tilemap | |
| 185 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(snookr10_state::apple10_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 4, 8, 128, 30); | |
| 188 | 186 | } |
| 189 | 187 | |
| 190 | 188 | SCREEN_UPDATE_IND16( snookr10 ) |
| r17673 | r17674 | |
|---|---|---|
| 89 | 89 | m_bgtilemap->set_scrolly(0, data); |
| 90 | 90 | } |
| 91 | 91 | |
| 92 | ||
| 92 | ||
| 93 | 93 | { |
| 94 | sprcros2_state *state = machine.driver_data<sprcros2_state>(); | |
| 95 | UINT32 tile_number = state->m_bgvideoram[tile_index]; | |
| 96 | UINT8 attr = state->m_bgvideoram[tile_index + 0x400]; | |
| 94 | UINT32 tile_number = m_bgvideoram[tile_index]; | |
| 95 | UINT8 attr = m_bgvideoram[tile_index + 0x400]; | |
| 97 | 96 | |
| 98 | 97 | //attr |
| 99 | 98 | //76543210 |
| r17673 | r17674 | |
| 103 | 102 | |
| 104 | 103 | tile_number += (attr&0x07)<<8; |
| 105 | 104 | |
| 106 | SET_TILE_INFO( | |
| 105 | SET_TILE_INFO_MEMBER( | |
| 107 | 106 | 0, |
| 108 | 107 | tile_number, |
| 109 | 108 | (attr&0xf0)>>4, |
| 110 | 109 | (attr&0x08)?TILE_FLIPX:0); |
| 111 | 110 | } |
| 112 | 111 | |
| 113 | ||
| 112 | ||
| 114 | 113 | { |
| 115 | sprcros2_state *state = machine.driver_data<sprcros2_state>(); | |
| 116 | UINT32 tile_number = state->m_fgvideoram[tile_index]; | |
| 117 | UINT8 attr = state->m_fgvideoram[tile_index + 0x400]; | |
| 114 | UINT32 tile_number = m_fgvideoram[tile_index]; | |
| 115 | UINT8 attr = m_fgvideoram[tile_index + 0x400]; | |
| 118 | 116 | int color = (attr&0xfc)>>2; |
| 119 | 117 | |
| 120 | 118 | tileinfo.group = color; |
| r17673 | r17674 | |
| 126 | 124 | |
| 127 | 125 | tile_number += (attr&0x03)<<8; |
| 128 | 126 | |
| 129 | SET_TILE_INFO( | |
| 127 | SET_TILE_INFO_MEMBER( | |
| 130 | 128 | 2, |
| 131 | 129 | tile_number, |
| 132 | 130 | color, |
| r17673 | r17674 | |
| 137 | 135 | { |
| 138 | 136 | sprcros2_state *state = machine.driver_data<sprcros2_state>(); |
| 139 | 137 | |
| 140 | state->m_bgtilemap = tilemap_create(machine, get_sprcros2_bgtile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 141 | state->m_fgtilemap = tilemap_create(machine, get_sprcros2_fgtile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 138 | state->m_bgtilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sprcros2_state::get_sprcros2_bgtile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 139 | state->m_fgtilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sprcros2_state::get_sprcros2_fgtile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 142 | 140 | |
| 143 | 141 | colortable_configure_tilemap_groups(machine.colortable, state->m_fgtilemap, machine.gfx[2], 0); |
| 144 | 142 | } |
| r17673 | r17674 | |
|---|---|---|
| 1812 | 1812 | |
| 1813 | 1813 | |
| 1814 | 1814 | /* Run and Gun 2 / Rushing Heroes */ |
| 1815 | ||
| 1815 | ||
| 1816 | 1816 | { |
| 1817 | 1817 | int tileno, colour, col, flip = 0; |
| 1818 | 1818 | if (tile_index&1) |
| r17673 | r17674 | |
| 1834 | 1834 | |
| 1835 | 1835 | colour = (psac_colorbase << 4) + col; |
| 1836 | 1836 | |
| 1837 | SET_TILE_INFO(0, tileno, colour, TILE_FLIPYX(flip)); | |
| 1837 | SET_TILE_INFO_MEMBER(0, tileno, colour, TILE_FLIPYX(flip)); | |
| 1838 | 1838 | } |
| 1839 | 1839 | |
| 1840 | 1840 | UINT32* konamigx_type3_psac2_bank; |
| r17673 | r17674 | |
| 1860 | 1860 | |
| 1861 | 1861 | |
| 1862 | 1862 | /* Soccer Superstars (tile and flip bits now TRUSTED) */ |
| 1863 | ||
| 1863 | ||
| 1864 | 1864 | { |
| 1865 | 1865 | int tileno, colour, flip; |
| 1866 | UINT8 *tmap = machine.root_device().memregion("gfx4")->base(); | |
| 1866 | UINT8 *tmap = machine().root_device().memregion("gfx4")->base(); | |
| 1867 | 1867 | |
| 1868 | 1868 | int base_index = tile_index; |
| 1869 | 1869 | |
| r17673 | r17674 | |
| 1878 | 1878 | if (tmap[(base_index*2)+1] & 0x20) flip |= TILE_FLIPY; |
| 1879 | 1879 | if (tmap[(base_index*2)+1] & 0x10) flip |= TILE_FLIPX; |
| 1880 | 1880 | |
| 1881 | SET_TILE_INFO(0, tileno, colour, flip); | |
| 1881 | SET_TILE_INFO_MEMBER(0, tileno, colour, flip); | |
| 1882 | 1882 | } |
| 1883 | 1883 | |
| 1884 | ||
| 1884 | ||
| 1885 | 1885 | { |
| 1886 | 1886 | int tileno, colour, flip; |
| 1887 | UINT8 *tmap = machine.root_device().memregion("gfx4")->base()+0x20000; | |
| 1887 | UINT8 *tmap = machine().root_device().memregion("gfx4")->base()+0x20000; | |
| 1888 | 1888 | |
| 1889 | 1889 | int base_index = tile_index; |
| 1890 | 1890 | |
| r17673 | r17674 | |
| 1899 | 1899 | if (tmap[(base_index*2)+1] & 0x20) flip |= TILE_FLIPY; |
| 1900 | 1900 | if (tmap[(base_index*2)+1] & 0x10) flip |= TILE_FLIPX; |
| 1901 | 1901 | |
| 1902 | SET_TILE_INFO(0, tileno, colour, flip); | |
| 1902 | SET_TILE_INFO_MEMBER(0, tileno, colour, flip); | |
| 1903 | 1903 | } |
| 1904 | 1904 | |
| 1905 | 1905 | |
| 1906 | 1906 | /* PSAC4 */ |
| 1907 | 1907 | /* these tilemaps are weird in both format and content, one of them |
| 1908 | 1908 | doesn't really look like it should be displayed? - it's height data */ |
| 1909 | ||
| 1909 | ||
| 1910 | 1910 | { |
| 1911 | 1911 | int tileno, colour, flipx,flipy; |
| 1912 | 1912 | int flip; |
| r17673 | r17674 | |
| 1925 | 1925 | if (flipx) flip |= TILE_FLIPX; |
| 1926 | 1926 | if (flipy) flip |= TILE_FLIPY; |
| 1927 | 1927 | |
| 1928 | SET_TILE_INFO(1, tileno, colour, flip); | |
| 1928 | SET_TILE_INFO_MEMBER(1, tileno, colour, flip); | |
| 1929 | 1929 | } |
| 1930 | 1930 | |
| 1931 | ||
| 1931 | ||
| 1932 | 1932 | { |
| 1933 | 1933 | int tileno, colour, flipx,flipy; |
| 1934 | 1934 | int flip; |
| r17673 | r17674 | |
| 1947 | 1947 | if (flipx) flip |= TILE_FLIPX; |
| 1948 | 1948 | if (flipy) flip |= TILE_FLIPY; |
| 1949 | 1949 | |
| 1950 | SET_TILE_INFO(0, tileno, colour, flip); | |
| 1950 | SET_TILE_INFO_MEMBER(0, tileno, colour, flip); | |
| 1951 | 1951 | } |
| 1952 | 1952 | |
| 1953 | 1953 | static void konamigx_type2_tile_callback(running_machine &machine, int layer, int *code, int *color, int *flags) |
| r17673 | r17674 | |
| 2144 | 2144 | |
| 2145 | 2145 | VIDEO_START(konamigx_type3) |
| 2146 | 2146 | { |
| 2147 | konamigx_state *state = machine.driver_data<konamigx_state>(); | |
| 2147 | 2148 | int width = machine.primary_screen->width(); |
| 2148 | 2149 | int height = machine.primary_screen->height(); |
| 2149 | 2150 | |
| r17673 | r17674 | |
| 2155 | 2156 | |
| 2156 | 2157 | _gxcommoninitnosprites(machine); |
| 2157 | 2158 | |
| 2158 | gx_psac_tilemap = tilemap_create(machine, get_gx_psac3_tile_info, TILEMAP_SCAN_COLS, 16, 16, 256, 256); | |
| 2159 | gx_psac_tilemap_alt = tilemap_create(machine, get_gx_psac3_alt_tile_info, TILEMAP_SCAN_COLS, 16, 16, 256, 256); | |
| 2159 | gx_psac_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac3_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 256, 256); | |
| 2160 | gx_psac_tilemap_alt = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac3_alt_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 256, 256); | |
| 2160 | 2161 | |
| 2161 | 2162 | gx_rozenable = 0; |
| 2162 | 2163 | gx_specialrozenable = 2; |
| r17673 | r17674 | |
| 2183 | 2184 | |
| 2184 | 2185 | VIDEO_START(konamigx_type4) |
| 2185 | 2186 | { |
| 2187 | konamigx_state *state = machine.driver_data<konamigx_state>(); | |
| 2186 | 2188 | int width = machine.primary_screen->width(); |
| 2187 | 2189 | int height = machine.primary_screen->height(); |
| 2188 | 2190 | |
| r17673 | r17674 | |
| 2194 | 2196 | |
| 2195 | 2197 | _gxcommoninitnosprites(machine); |
| 2196 | 2198 | |
| 2197 | gx_psac_tilemap = tilemap | |
| 2199 | gx_psac_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 128, 128); | |
| 2198 | 2200 | gx_rozenable = 0; |
| 2199 | 2201 | gx_specialrozenable = 3; |
| 2200 | 2202 | |
| r17673 | r17674 | |
| 2214 | 2216 | |
| 2215 | 2217 | VIDEO_START(konamigx_type4_vsn) |
| 2216 | 2218 | { |
| 2219 | konamigx_state *state = machine.driver_data<konamigx_state>(); | |
| 2217 | 2220 | int width = machine.primary_screen->width(); |
| 2218 | 2221 | int height = machine.primary_screen->height(); |
| 2219 | 2222 | |
| r17673 | r17674 | |
| 2225 | 2228 | |
| 2226 | 2229 | _gxcommoninitnosprites(machine); |
| 2227 | 2230 | |
| 2228 | gx_psac_tilemap = tilemap | |
| 2231 | gx_psac_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 128, 128); | |
| 2229 | 2232 | gx_rozenable = 0; |
| 2230 | 2233 | gx_specialrozenable = 3; |
| 2231 | 2234 | |
| r17673 | r17674 | |
| 2244 | 2247 | |
| 2245 | 2248 | VIDEO_START(konamigx_type4_sd2) |
| 2246 | 2249 | { |
| 2250 | konamigx_state *state = machine.driver_data<konamigx_state>(); | |
| 2247 | 2251 | int width = machine.primary_screen->width(); |
| 2248 | 2252 | int height = machine.primary_screen->height(); |
| 2249 | 2253 | |
| r17673 | r17674 | |
| 2255 | 2259 | |
| 2256 | 2260 | _gxcommoninitnosprites(machine); |
| 2257 | 2261 | |
| 2258 | gx_psac_tilemap = tilemap | |
| 2262 | gx_psac_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 128, 128); | |
| 2259 | 2263 | gx_rozenable = 0; |
| 2260 | 2264 | gx_specialrozenable = 3; |
| 2261 | 2265 | |
| r17673 | r17674 | |
| 2294 | 2298 | |
| 2295 | 2299 | VIDEO_START(opengolf) |
| 2296 | 2300 | { |
| 2301 | konamigx_state *state = machine.driver_data<konamigx_state>(); | |
| 2297 | 2302 | K056832_vh_start(machine, "gfx1", K056832_BPP_5, 0, NULL, konamigx_type2_tile_callback, 0); |
| 2298 | 2303 | K055673_vh_start(machine, "gfx2", K055673_LAYOUT_GX6, -53, -23, konamigx_type2_sprite_callback); |
| 2299 | 2304 | |
| r17673 | r17674 | |
| 2304 | 2309 | K056832_set_LayerOffset(2, 2+1, 0); |
| 2305 | 2310 | K056832_set_LayerOffset(3, 3+1, 0); |
| 2306 | 2311 | |
| 2307 | gx_psac_tilemap = tilemap_create(machine, get_gx_psac1a_tile_info, TILEMAP_SCAN_COLS, 16, 16, 128, 128); | |
| 2308 | gx_psac_tilemap2 = tilemap_create(machine, get_gx_psac1b_tile_info, TILEMAP_SCAN_COLS, 16, 16, 128, 128); | |
| 2312 | gx_psac_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac1a_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 128, 128); | |
| 2313 | gx_psac_tilemap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac1b_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 128, 128); | |
| 2309 | 2314 | |
| 2310 | 2315 | // transparency will be handled manually in post-processing |
| 2311 | 2316 | //gx_psac_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
| 2332 | 2337 | |
| 2333 | 2338 | VIDEO_START(racinfrc) |
| 2334 | 2339 | { |
| 2340 | konamigx_state *state = machine.driver_data<konamigx_state>(); | |
| 2335 | 2341 | K056832_vh_start(machine, "gfx1", K056832_BPP_6, 0, NULL, konamigx_type2_tile_callback, 0); |
| 2336 | 2342 | K055673_vh_start(machine, "gfx2", K055673_LAYOUT_GX, -53, -23, konamigx_type2_sprite_callback); |
| 2337 | 2343 | |
| r17673 | r17674 | |
| 2342 | 2348 | K056832_set_LayerOffset(2, 2+1, 0); |
| 2343 | 2349 | K056832_set_LayerOffset(3, 3+1, 0); |
| 2344 | 2350 | |
| 2345 | gx_psac_tilemap = tilemap_create(machine, get_gx_psac1a_tile_info, TILEMAP_SCAN_COLS, 16, 16, 128, 128); | |
| 2346 | gx_psac_tilemap2 = tilemap_create(machine, get_gx_psac1b_tile_info, TILEMAP_SCAN_COLS, 16, 16, 128, 128); | |
| 2351 | gx_psac_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac1a_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 128, 128); | |
| 2352 | gx_psac_tilemap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(konamigx_state::get_gx_psac1b_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 128, 128); | |
| 2347 | 2353 | |
| 2348 | 2354 | // transparency will be handled manually in post-processing |
| 2349 | 2355 | //gx_psac_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 17 | 17 | * |
| 18 | 18 | *************************************/ |
| 19 | 19 | |
| 20 | ||
| 20 | ||
| 21 | 21 | { |
| 22 | thunderj_state *state = machine.driver_data<thunderj_state>(); | |
| 23 | UINT16 data = state->m_alpha[tile_index]; | |
| 24 | int code = ((data & 0x200) ? (state->m_alpha_tile_bank * 0x200) : 0) + (data & 0x1ff); | |
| 22 | UINT16 data = m_alpha[tile_index]; | |
| 23 | int code = ((data & 0x200) ? (m_alpha_tile_bank * 0x200) : 0) + (data & 0x1ff); | |
| 25 | 24 | int color = ((data >> 10) & 0x0f) | ((data >> 9) & 0x20); |
| 26 | 25 | int opaque = data & 0x8000; |
| 27 | SET_TILE_INFO(2, code, color, opaque ? TILE_FORCE_LAYER0 : 0); | |
| 26 | SET_TILE_INFO_MEMBER(2, code, color, opaque ? TILE_FORCE_LAYER0 : 0); | |
| 28 | 27 | } |
| 29 | 28 | |
| 30 | 29 | |
| 31 | ||
| 30 | ||
| 32 | 31 | { |
| 33 | thunderj_state *state = machine.driver_data<thunderj_state>(); | |
| 34 | UINT16 data1 = state->m_playfield[tile_index]; | |
| 35 | UINT16 data2 = state->m_playfield_upper[tile_index] & 0xff; | |
| 32 | UINT16 data1 = m_playfield[tile_index]; | |
| 33 | UINT16 data2 = m_playfield_upper[tile_index] & 0xff; | |
| 36 | 34 | int code = data1 & 0x7fff; |
| 37 | 35 | int color = 0x10 + (data2 & 0x0f); |
| 38 | SET_TILE_INFO(0, code, color, (data1 >> 15) & 1); | |
| 36 | SET_TILE_INFO_MEMBER(0, code, color, (data1 >> 15) & 1); | |
| 39 | 37 | tileinfo.category = (data2 >> 4) & 3; |
| 40 | 38 | } |
| 41 | 39 | |
| 42 | 40 | |
| 43 | ||
| 41 | ||
| 44 | 42 | { |
| 45 | thunderj_state *state = machine.driver_data<thunderj_state>(); | |
| 46 | UINT16 data1 = state->m_playfield2[tile_index]; | |
| 47 | UINT16 data2 = state->m_playfield_upper[tile_index] >> 8; | |
| 43 | UINT16 data1 = m_playfield2[tile_index]; | |
| 44 | UINT16 data2 = m_playfield_upper[tile_index] >> 8; | |
| 48 | 45 | int code = data1 & 0x7fff; |
| 49 | 46 | int color = data2 & 0x0f; |
| 50 | SET_TILE_INFO(0, code, color, (data1 >> 15) & 1); | |
| 47 | SET_TILE_INFO_MEMBER(0, code, color, (data1 >> 15) & 1); | |
| 51 | 48 | tileinfo.category = (data2 >> 4) & 3; |
| 52 | 49 | } |
| 53 | 50 | |
| r17673 | r17674 | |
| 100 | 97 | thunderj_state *state = machine.driver_data<thunderj_state>(); |
| 101 | 98 | |
| 102 | 99 | /* initialize the playfield */ |
| 103 | state->m_playfield_tilemap = tilemap | |
| 100 | state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(thunderj_state::get_playfield_tile_info),state), TILEMAP_SCAN_COLS, 8,8, 64,64); | |
| 104 | 101 | |
| 105 | 102 | /* initialize the second playfield */ |
| 106 | state->m_playfield2_tilemap = tilemap | |
| 103 | state->m_playfield2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(thunderj_state::get_playfield2_tile_info),state), TILEMAP_SCAN_COLS, 8,8, 64,64); | |
| 107 | 104 | state->m_playfield2_tilemap->set_transparent_pen(0); |
| 108 | 105 | |
| 109 | 106 | /* initialize the motion objects */ |
| 110 | 107 | atarimo_init(machine, 0, &modesc); |
| 111 | 108 | |
| 112 | 109 | /* initialize the alphanumerics */ |
| 113 | state->m_alpha_tilemap = tilemap | |
| 110 | state->m_alpha_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(thunderj_state::get_alpha_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,32); | |
| 114 | 111 | state->m_alpha_tilemap->set_transparent_pen(0); |
| 115 | 112 | } |
| 116 | 113 |
| r17673 | r17674 | |
|---|---|---|
| 187 | 187 | redclash_set_stars_speed(machine(), (data & 0x07) - 1); |
| 188 | 188 | } |
| 189 | 189 | |
| 190 | ||
| 190 | ||
| 191 | 191 | { |
| 192 | ladybug_state *state = machine.driver_data<ladybug_state>(); | |
| 193 | int code = state->m_videoram[tile_index] + 32 * (state->m_colorram[tile_index] & 0x08); | |
| 194 | int color = state->m_colorram[tile_index] & 0x07; | |
| 192 | int code = m_videoram[tile_index] + 32 * (m_colorram[tile_index] & 0x08); | |
| 193 | int color = m_colorram[tile_index] & 0x07; | |
| 195 | 194 | |
| 196 | SET_TILE_INFO(0, code, color, 0); | |
| 195 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 197 | 196 | } |
| 198 | 197 | |
| 199 | ||
| 198 | ||
| 200 | 199 | { |
| 201 | 200 | if (tile_index < 512) |
| 202 | SET_TILE_INFO(3, tile_index, 0, 0); | |
| 201 | SET_TILE_INFO_MEMBER(3, tile_index, 0, 0); | |
| 203 | 202 | else |
| 204 | 203 | { |
| 205 | 204 | int temp = tile_index / 32; |
| 206 | 205 | tile_index = (31 - temp) * 32 + (tile_index % 32); |
| 207 | SET_TILE_INFO(4, tile_index, 0, 0); | |
| 206 | SET_TILE_INFO_MEMBER(4, tile_index, 0, 0); | |
| 208 | 207 | } |
| 209 | 208 | } |
| 210 | 209 | |
| r17673 | r17674 | |
| 212 | 211 | { |
| 213 | 212 | ladybug_state *state = machine.driver_data<ladybug_state>(); |
| 214 | 213 | |
| 215 | state->m_bg_tilemap = tilemap | |
| 214 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ladybug_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 216 | 215 | state->m_bg_tilemap->set_scroll_rows(32); |
| 217 | 216 | state->m_bg_tilemap->set_transparent_pen(0); |
| 218 | 217 | } |
| r17673 | r17674 | |
| 221 | 220 | { |
| 222 | 221 | ladybug_state *state = machine.driver_data<ladybug_state>(); |
| 223 | 222 | |
| 224 | state->m_grid_tilemap = tilemap | |
| 223 | state->m_grid_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ladybug_state::get_grid_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 225 | 224 | state->m_grid_tilemap->set_scroll_rows(32); |
| 226 | 225 | state->m_grid_tilemap->set_transparent_pen(0); |
| 227 | 226 | |
| 228 | state->m_bg_tilemap = tilemap | |
| 227 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ladybug_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 229 | 228 | state->m_bg_tilemap->set_scroll_rows(32); |
| 230 | 229 | state->m_bg_tilemap->set_transparent_pen(0); |
| 231 | 230 | } |
| r17673 | r17674 | |
|---|---|---|
| 72 | 72 | } |
| 73 | 73 | } |
| 74 | 74 | |
| 75 | ||
| 75 | ||
| 76 | 76 | { |
| 77 | blueprnt_state *state = machine.driver_data<blueprnt_state>(); | |
| 78 | int attr = state->m_colorram[tile_index]; | |
| 79 | int code = state->m_videoram[tile_index] + 256 * state->m_gfx_bank; | |
| 77 | int attr = m_colorram[tile_index]; | |
| 78 | int code = m_videoram[tile_index] + 256 * m_gfx_bank; | |
| 80 | 79 | int color = attr & 0x7f; |
| 81 | 80 | |
| 82 | 81 | tileinfo.category = (attr & 0x80) ? 1 : 0; |
| 83 | 82 | |
| 84 | SET_TILE_INFO(0, code, color, 0); | |
| 83 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 85 | 84 | } |
| 86 | 85 | |
| 87 | 86 | VIDEO_START( blueprnt ) |
| 88 | 87 | { |
| 89 | 88 | blueprnt_state *state = machine.driver_data<blueprnt_state>(); |
| 90 | 89 | |
| 91 | state->m_bg_tilemap = tilemap | |
| 90 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(blueprnt_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS_FLIP_X, 8, 8, 32, 32); | |
| 92 | 91 | state->m_bg_tilemap->set_transparent_pen(0); |
| 93 | 92 | state->m_bg_tilemap->set_scroll_cols(32); |
| 94 | 93 |
| r17673 | r17674 | |
|---|---|---|
| 113 | 113 | |
| 114 | 114 | ***************************************************************************/ |
| 115 | 115 | |
| 116 | ||
| 116 | ||
| 117 | 117 | { |
| 118 | combatsc_state *state = machine.driver_data<combatsc_state>(); | |
| 119 | UINT8 ctrl_6 = k007121_ctrlram_r(state->m_k007121_1, 6); | |
| 120 | UINT8 attributes = state->m_page[0][tile_index]; | |
| 121 | int bank = 4 * ((state->m_vreg & 0x0f) - 1); | |
| 118 | UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_1, 6); | |
| 119 | UINT8 attributes = m_page[0][tile_index]; | |
| 120 | int bank = 4 * ((m_vreg & 0x0f) - 1); | |
| 122 | 121 | int number, color; |
| 123 | 122 | |
| 124 | 123 | if (bank < 0) |
| r17673 | r17674 | |
| 138 | 137 | |
| 139 | 138 | color = ((ctrl_6 & 0x10) * 2 + 16) + (attributes & 0x0f); |
| 140 | 139 | |
| 141 | number = | |
| 140 | number = | |
| 142 | 141 | |
| 143 | SET_TILE_INFO( | |
| 142 | SET_TILE_INFO_MEMBER( | |
| 144 | 143 | 0, |
| 145 | 144 | number, |
| 146 | 145 | color, |
| r17673 | r17674 | |
| 148 | 147 | tileinfo.category = (attributes & 0x40) >> 6; |
| 149 | 148 | } |
| 150 | 149 | |
| 151 | ||
| 150 | ||
| 152 | 151 | { |
| 153 | combatsc_state *state = machine.driver_data<combatsc_state>(); | |
| 154 | UINT8 ctrl_6 = k007121_ctrlram_r(state->m_k007121_2, 6); | |
| 155 | UINT8 attributes = state->m_page[1][tile_index]; | |
| 156 | int bank = 4 * ((state->m_vreg >> 4) - 1); | |
| 152 | UINT8 ctrl_6 = k007121_ctrlram_r(m_k007121_2, 6); | |
| 153 | UINT8 attributes = m_page[1][tile_index]; | |
| 154 | int bank = 4 * ((m_vreg >> 4) - 1); | |
| 157 | 155 | int number, color; |
| 158 | 156 | |
| 159 | 157 | if (bank < 0) |
| r17673 | r17674 | |
| 173 | 171 | |
| 174 | 172 | color = ((ctrl_6 & 0x10) * 2 + 16 + 4 * 16) + (attributes & 0x0f); |
| 175 | 173 | |
| 176 | number = | |
| 174 | number = | |
| 177 | 175 | |
| 178 | SET_TILE_INFO( | |
| 176 | SET_TILE_INFO_MEMBER( | |
| 179 | 177 | 1, |
| 180 | 178 | number, |
| 181 | 179 | color, |
| r17673 | r17674 | |
| 183 | 181 | tileinfo.category = (attributes & 0x40) >> 6; |
| 184 | 182 | } |
| 185 | 183 | |
| 186 | ||
| 184 | ||
| 187 | 185 | { |
| 188 | combatsc_state *state = machine.driver_data<combatsc_state>(); | |
| 189 | UINT8 attributes = state->m_page[0][tile_index + 0x800]; | |
| 190 | int number = state->m_page[0][tile_index + 0xc00]; | |
| 186 | UINT8 attributes = m_page[0][tile_index + 0x800]; | |
| 187 | int number = m_page[0][tile_index + 0xc00]; | |
| 191 | 188 | int color = 16 + (attributes & 0x0f); |
| 192 | 189 | |
| 193 | SET_TILE_INFO( | |
| 190 | SET_TILE_INFO_MEMBER( | |
| 194 | 191 | 0, |
| 195 | 192 | number, |
| 196 | 193 | color, |
| r17673 | r17674 | |
| 198 | 195 | } |
| 199 | 196 | |
| 200 | 197 | |
| 201 | ||
| 198 | ||
| 202 | 199 | { |
| 203 | combatsc_state *state = machine.driver_data<combatsc_state>(); | |
| 204 | UINT8 attributes = state->m_page[0][tile_index]; | |
| 205 | int bank = 4 * ((state->m_vreg & 0x0f) - 1); | |
| 200 | UINT8 attributes = m_page[0][tile_index]; | |
| 201 | int bank = 4 * ((m_vreg & 0x0f) - 1); | |
| 206 | 202 | int number, pal, color; |
| 207 | 203 | |
| 208 | 204 | if (bank < 0) |
| r17673 | r17674 | |
| 222 | 218 | |
| 223 | 219 | pal = (bank == 0 || bank >= 0x1c || (attributes & 0x40)) ? 1 : 3; |
| 224 | 220 | color = pal*16;// + (attributes & 0x0f); |
| 225 | number = | |
| 221 | number = | |
| 226 | 222 | |
| 227 | SET_TILE_INFO( | |
| 223 | SET_TILE_INFO_MEMBER( | |
| 228 | 224 | 0, |
| 229 | 225 | number, |
| 230 | 226 | color, |
| 231 | 227 | 0); |
| 232 | 228 | } |
| 233 | 229 | |
| 234 | ||
| 230 | ||
| 235 | 231 | { |
| 236 | combatsc_state *state = machine.driver_data<combatsc_state>(); | |
| 237 | UINT8 attributes = state->m_page[1][tile_index]; | |
| 238 | int bank = 4*((state->m_vreg >> 4) - 1); | |
| 232 | UINT8 attributes = m_page[1][tile_index]; | |
| 233 | int bank = 4*((m_vreg >> 4) - 1); | |
| 239 | 234 | int number, pal, color; |
| 240 | 235 | |
| 241 | 236 | if (bank < 0) |
| r17673 | r17674 | |
| 255 | 250 | |
| 256 | 251 | pal = (bank == 0 || bank >= 0x1c || (attributes & 0x40)) ? 5 : 7; |
| 257 | 252 | color = pal * 16;// + (attributes & 0x0f); |
| 258 | number = | |
| 253 | number = | |
| 259 | 254 | |
| 260 | SET_TILE_INFO( | |
| 255 | SET_TILE_INFO_MEMBER( | |
| 261 | 256 | 1, |
| 262 | 257 | number, |
| 263 | 258 | color, |
| 264 | 259 | 0); |
| 265 | 260 | } |
| 266 | 261 | |
| 267 | ||
| 262 | ||
| 268 | 263 | { |
| 269 | combatsc_state *state = machine.driver_data<combatsc_state>(); | |
| 270 | // UINT8 attributes = state->m_page[0][tile_index + 0x800]; | |
| 271 | int number = state->m_page[0][tile_index + 0xc00]; | |
| 264 | // UINT8 attributes = m_page[0][tile_index + 0x800]; | |
| 265 | int number = m_page[0][tile_index + 0xc00]; | |
| 272 | 266 | int color = 16;// + (attributes & 0x0f); |
| 273 | 267 | |
| 274 | SET_TILE_INFO( | |
| 268 | SET_TILE_INFO_MEMBER( | |
| 275 | 269 | 1, |
| 276 | 270 | number, |
| 277 | 271 | color, |
| r17673 | r17674 | |
| 288 | 282 | { |
| 289 | 283 | combatsc_state *state = machine.driver_data<combatsc_state>(); |
| 290 | 284 | |
| 291 | state->m_bg_tilemap[0] = tilemap_create(machine, get_tile_info0, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 292 | state->m_bg_tilemap[1] = tilemap_create(machine, get_tile_info1, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 293 | state->m_textlayer = tilemap_create(machine, get_text_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 285 | state->m_bg_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(combatsc_state::get_tile_info0),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 286 | state->m_bg_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(combatsc_state::get_tile_info1),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 287 | state->m_textlayer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(combatsc_state::get_text_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 294 | 288 | |
| 295 | 289 | state->m_spriteram[0] = auto_alloc_array_clear(machine, UINT8, 0x800); |
| 296 | 290 | state->m_spriteram[1] = auto_alloc_array_clear(machine, UINT8, 0x800); |
| r17673 | r17674 | |
| 309 | 303 | { |
| 310 | 304 | combatsc_state *state = machine.driver_data<combatsc_state>(); |
| 311 | 305 | |
| 312 | state->m_bg_tilemap[0] = tilemap_create(machine, get_tile_info0_bootleg, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 313 | state->m_bg_tilemap[1] = tilemap_create(machine, get_tile_info1_bootleg, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 314 | state->m_textlayer = tilemap_create(machine, get_text_info_bootleg, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 306 | state->m_bg_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(combatsc_state::get_tile_info0_bootleg),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 307 | state->m_bg_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(combatsc_state::get_tile_info1_bootleg),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 308 | state->m_textlayer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(combatsc_state::get_text_info_bootleg),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 315 | 309 | |
| 316 | 310 | state->m_spriteram[0] = auto_alloc_array_clear(machine, UINT8, 0x800); |
| 317 | 311 | state->m_spriteram[1] = auto_alloc_array_clear(machine, UINT8, 0x800); |
| r17673 | r17674 | |
|---|---|---|
| 8 | 8 | |
| 9 | 9 | ***************************************************************************/ |
| 10 | 10 | |
| 11 | ||
| 11 | ||
| 12 | 12 | { |
| 13 | 13 | return (col & 0x1f) | (row << 5) | ((col & 0x20) << 5); |
| 14 | 14 | } |
| r17673 | r17674 | |
| 22 | 22 | SET_TILE_INFO(0, code, (data >> 12) + color_offs, 0); |
| 23 | 23 | } |
| 24 | 24 | |
| 25 | ||
| 25 | ||
| 26 | 26 | { |
| 27 | gotcha_state *state = machine.driver_data<gotcha_state>(); | |
| 28 | get_tile_info(machine, tileinfo, tile_index, state->m_fgvideoram, 0); | |
| 27 | get_tile_info(machine(), tileinfo, tile_index, m_fgvideoram, 0); | |
| 29 | 28 | } |
| 30 | 29 | |
| 31 | ||
| 30 | ||
| 32 | 31 | { |
| 33 | gotcha_state *state = machine.driver_data<gotcha_state>(); | |
| 34 | get_tile_info(machine, tileinfo, tile_index, state->m_bgvideoram, 16); | |
| 32 | get_tile_info(machine(), tileinfo, tile_index, m_bgvideoram, 16); | |
| 35 | 33 | } |
| 36 | 34 | |
| 37 | 35 | |
| r17673 | r17674 | |
| 45 | 43 | VIDEO_START( gotcha ) |
| 46 | 44 | { |
| 47 | 45 | gotcha_state *state = machine.driver_data<gotcha_state>(); |
| 48 | state->m_fg_tilemap = tilemap_create(machine, fg_get_tile_info, gotcha_tilemap_scan, 16, 16, 64, 32); | |
| 49 | state->m_bg_tilemap = tilemap_create(machine, bg_get_tile_info, gotcha_tilemap_scan, 16, 16, 64, 32); | |
| 46 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gotcha_state::fg_get_tile_info),state), tilemap_mapper_delegate(FUNC(gotcha_state::gotcha_tilemap_scan),state), 16, 16, 64, 32); | |
| 47 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gotcha_state::bg_get_tile_info),state), tilemap_mapper_delegate(FUNC(gotcha_state::gotcha_tilemap_scan),state), 16, 16, 64, 32); | |
| 50 | 48 | |
| 51 | 49 | state->m_fg_tilemap->set_transparent_pen(0); |
| 52 | 50 |
| r17673 | r17674 | |
|---|---|---|
| 45 | 45 | } |
| 46 | 46 | |
| 47 | 47 | |
| 48 | ||
| 48 | ||
| 49 | 49 | { |
| 50 | starshp1_state *state = machine.driver_data<starshp1_state>(); | |
| 51 | UINT8 code = state->m_playfield_ram[tile_index]; | |
| 50 | UINT8 code = m_playfield_ram[tile_index]; | |
| 52 | 51 | |
| 53 | SET_TILE_INFO(0, code & 0x3f, 0, 0); | |
| 52 | SET_TILE_INFO_MEMBER(0, code & 0x3f, 0, 0); | |
| 54 | 53 | } |
| 55 | 54 | |
| 56 | 55 | |
| r17673 | r17674 | |
| 61 | 60 | |
| 62 | 61 | int i; |
| 63 | 62 | |
| 64 | state->m_bg_tilemap = tilemap | |
| 63 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(starshp1_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 16, 8, 32, 32); | |
| 65 | 64 | |
| 66 | 65 | state->m_bg_tilemap->set_transparent_pen(0); |
| 67 | 66 |
| r17673 | r17674 | |
|---|---|---|
| 88 | 88 | |
| 89 | 89 | ***************************************************************************/ |
| 90 | 90 | |
| 91 | ||
| 91 | ||
| 92 | 92 | { |
| 93 | pandoras_state *state = machine.driver_data<pandoras_state>(); | |
| 94 | UINT8 attr = state->m_colorram[tile_index]; | |
| 95 | SET_TILE_INFO( | |
| 93 | UINT8 attr = m_colorram[tile_index]; | |
| 94 | SET_TILE_INFO_MEMBER( | |
| 96 | 95 | 1, |
| 97 | | |
| 96 | | |
| 98 | 97 | attr & 0x0f, |
| 99 | 98 | TILE_FLIPYX((attr & 0xc0) >> 6)); |
| 100 | 99 | tileinfo.category = (attr & 0x20) >> 5; |
| r17673 | r17674 | |
| 109 | 108 | VIDEO_START( pandoras ) |
| 110 | 109 | { |
| 111 | 110 | pandoras_state *state = machine.driver_data<pandoras_state>(); |
| 112 | state->m_layer0 = tilemap | |
| 111 | state->m_layer0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pandoras_state::get_tile_info0),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 113 | 112 | |
| 114 | 113 | state->save_item(NAME(state->m_flipscreen)); |
| 115 | 114 | } |
| r17673 | r17674 | |
|---|---|---|
| 48 | 48 | |
| 49 | 49 | /* Tilemaps */ |
| 50 | 50 | |
| 51 | ||
| 51 | ||
| 52 | 52 | { |
| 53 | 53 | int offset; |
| 54 | 54 | |
| r17673 | r17674 | |
| 59 | 59 | return offset; |
| 60 | 60 | } |
| 61 | 61 | |
| 62 | ||
| 62 | ||
| 63 | 63 | { |
| 64 | bigstrkb_state *state = machine.driver_data<bigstrkb_state>(); | |
| 65 | 64 | int tileno,col; |
| 66 | 65 | |
| 67 | tileno = state->m_videoram[tile_index] & 0x0fff; | |
| 68 | col= state->m_videoram[tile_index] & 0xf000; | |
| 66 | tileno = m_videoram[tile_index] & 0x0fff; | |
| 67 | col= m_videoram[tile_index] & 0xf000; | |
| 69 | 68 | |
| 70 | SET_TILE_INFO(0,tileno,col>>12,0); | |
| 69 | SET_TILE_INFO_MEMBER(0,tileno,col>>12,0); | |
| 71 | 70 | } |
| 72 | 71 | |
| 73 | 72 | WRITE16_MEMBER(bigstrkb_state::bsb_videoram_w) |
| r17673 | r17674 | |
| 76 | 75 | m_tilemap->mark_tile_dirty(offset); |
| 77 | 76 | } |
| 78 | 77 | |
| 79 | ||
| 78 | ||
| 80 | 79 | { |
| 81 | bigstrkb_state *state = machine.driver_data<bigstrkb_state>(); | |
| 82 | 80 | int tileno,col; |
| 83 | 81 | |
| 84 | tileno = state->m_videoram2[tile_index] & 0x0fff; | |
| 85 | col= state->m_videoram2[tile_index] & 0xf000; | |
| 82 | tileno = m_videoram2[tile_index] & 0x0fff; | |
| 83 | col= m_videoram2[tile_index] & 0xf000; | |
| 86 | 84 | |
| 87 | SET_TILE_INFO(1,tileno,col>>12,0); | |
| 85 | SET_TILE_INFO_MEMBER(1,tileno,col>>12,0); | |
| 88 | 86 | } |
| 89 | 87 | |
| 90 | 88 | WRITE16_MEMBER(bigstrkb_state::bsb_videoram2_w) |
| r17673 | r17674 | |
| 94 | 92 | } |
| 95 | 93 | |
| 96 | 94 | |
| 97 | ||
| 95 | ||
| 98 | 96 | { |
| 99 | bigstrkb_state *state = machine.driver_data<bigstrkb_state>(); | |
| 100 | 97 | int tileno,col; |
| 101 | 98 | |
| 102 | tileno = state->m_videoram3[tile_index] & 0x0fff; | |
| 103 | col= state->m_videoram3[tile_index] & 0xf000; | |
| 99 | tileno = m_videoram3[tile_index] & 0x0fff; | |
| 100 | col= m_videoram3[tile_index] & 0xf000; | |
| 104 | 101 | |
| 105 | SET_TILE_INFO(1,tileno+0x2000,(col>>12)+(0x100/16),0); | |
| 102 | SET_TILE_INFO_MEMBER(1,tileno+0x2000,(col>>12)+(0x100/16),0); | |
| 106 | 103 | } |
| 107 | 104 | |
| 108 | 105 | WRITE16_MEMBER(bigstrkb_state::bsb_videoram3_w) |
| r17673 | r17674 | |
| 116 | 113 | VIDEO_START(bigstrkb) |
| 117 | 114 | { |
| 118 | 115 | bigstrkb_state *state = machine.driver_data<bigstrkb_state>(); |
| 119 | state->m_tilemap = tilemap_create(machine, get_bsb_tile_info,TILEMAP_SCAN_COLS, 8, 8,64,32); | |
| 120 | state->m_tilemap2 = tilemap_create(machine, get_bsb_tile2_info,bsb_bg_scan, 16, 16,128,64); | |
| 121 | state->m_tilemap3 = tilemap_create(machine, get_bsb_tile3_info,bsb_bg_scan, 16, 16,128,64); | |
| 116 | state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bigstrkb_state::get_bsb_tile_info),state),TILEMAP_SCAN_COLS, 8, 8,64,32); | |
| 117 | state->m_tilemap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bigstrkb_state::get_bsb_tile2_info),state),tilemap_mapper_delegate(FUNC(bigstrkb_state::bsb_bg_scan),state), 16, 16,128,64); | |
| 118 | state->m_tilemap3 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bigstrkb_state::get_bsb_tile3_info),state),tilemap_mapper_delegate(FUNC(bigstrkb_state::bsb_bg_scan),state), 16, 16,128,64); | |
| 122 | 119 | |
| 123 | 120 | state->m_tilemap->set_transparent_pen(15); |
| 124 | 121 | //state->m_tilemap2->set_transparent_pen(15); |
| r17673 | r17674 | |
|---|---|---|
| 105 | 105 | m_spritebank = data; |
| 106 | 106 | } |
| 107 | 107 | |
| 108 | ||
| 108 | ||
| 109 | 109 | { |
| 110 | gberet_state *state = machine.driver_data<gberet_state>(); | |
| 111 | int attr = state->m_colorram[tile_index]; | |
| 112 | int code = state->m_videoram[tile_index] + ((attr & 0x40) << 2); | |
| 110 | int attr = m_colorram[tile_index]; | |
| 111 | int code = m_videoram[tile_index] + ((attr & 0x40) << 2); | |
| 113 | 112 | int color = attr & 0x0f; |
| 114 | 113 | int flags = TILE_FLIPYX((attr & 0x30) >> 4); |
| 115 | 114 | |
| 116 | 115 | tileinfo.group = color; |
| 117 | 116 | tileinfo.category = (attr & 0x80) >> 7; |
| 118 | 117 | |
| 119 | SET_TILE_INFO(0, code, color, flags); | |
| 118 | SET_TILE_INFO_MEMBER(0, code, color, flags); | |
| 120 | 119 | } |
| 121 | 120 | |
| 122 | 121 | VIDEO_START( gberet ) |
| 123 | 122 | { |
| 124 | 123 | gberet_state *state = machine.driver_data<gberet_state>(); |
| 125 | 124 | |
| 126 | state->m_bg_tilemap = tilemap | |
| 125 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gberet_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 127 | 126 | colortable_configure_tilemap_groups(machine.colortable, state->m_bg_tilemap, machine.gfx[0], 0x10); |
| 128 | 127 | state->m_bg_tilemap->set_scroll_rows(32); |
| 129 | 128 | } |
| r17673 | r17674 | |
|---|---|---|
| 89 | 89 | |
| 90 | 90 | ***************************************************************************/ |
| 91 | 91 | |
| 92 | ||
| 92 | ||
| 93 | 93 | { |
| 94 | 94 | /* logical (col,row) -> memory offset */ |
| 95 | 95 | return (col & 0x0f) + ((row & 0x0f) << 4) + ((col & 0x70) << 4) + ((row & 0xf0) << 7); |
| 96 | 96 | } |
| 97 | 97 | |
| 98 | ||
| 98 | ||
| 99 | 99 | { |
| 100 | UINT8 *fgMap = machine.root_device().memregion("gfx5")->base(); | |
| 100 | UINT8 *fgMap = machine().root_device().memregion("gfx5")->base(); | |
| 101 | 101 | int attr,tile_base; |
| 102 | 102 | |
| 103 | 103 | attr = fgMap[0x8000+tile_index]; |
| 104 | 104 | tile_base = ((attr & 0x80) << 2) | ((attr & 0x20) << 3); |
| 105 | 105 | |
| 106 | SET_TILE_INFO( | |
| 106 | SET_TILE_INFO_MEMBER( | |
| 107 | 107 | 1, |
| 108 | 108 | tile_base + fgMap[tile_index], |
| 109 | 109 | attr & 0x07, |
| 110 | 110 | 0); |
| 111 | 111 | } |
| 112 | 112 | |
| 113 | ||
| 113 | ||
| 114 | 114 | { |
| 115 | 115 | /* logical (col,row) -> memory offset */ |
| 116 | 116 | return ((col & 0x0e) >> 1) + ((row & 0x0f) << 3) + ((col & 0x70) << 3) + |
| r17673 | r17674 | |
| 118 | 118 | ((row & 0x60) << 8); |
| 119 | 119 | } |
| 120 | 120 | |
| 121 | ||
| 121 | ||
| 122 | 122 | { |
| 123 | UINT8 *bgMap = machine.root_device().memregion("gfx6")->base(); | |
| 123 | UINT8 *bgMap = machine().root_device().memregion("gfx6")->base(); | |
| 124 | 124 | int attr,tile_bank,tile_base; |
| 125 | 125 | |
| 126 | 126 | attr = bgMap[0x8000+tile_index]; |
| 127 | 127 | tile_bank = (attr & 0x20) >> 5; |
| 128 | 128 | tile_base = (attr & 0x80) << 1; |
| 129 | 129 | |
| 130 | SET_TILE_INFO( | |
| 130 | SET_TILE_INFO_MEMBER( | |
| 131 | 131 | 2+tile_bank, |
| 132 | 132 | tile_base + bgMap[tile_index], |
| 133 | 133 | attr & 0x07, |
| 134 | 134 | 0); |
| 135 | 135 | } |
| 136 | 136 | |
| 137 | ||
| 137 | ||
| 138 | 138 | { |
| 139 | stfight_state *state = machine.driver_data<stfight_state>(); | |
| 140 | UINT8 attr = state->m_text_attr_ram[tile_index]; | |
| 139 | UINT8 attr = m_text_attr_ram[tile_index]; | |
| 141 | 140 | int color = attr & 0x0f; |
| 142 | 141 | |
| 143 | 142 | tileinfo.group = color; |
| 144 | 143 | |
| 145 | SET_TILE_INFO( | |
| 144 | SET_TILE_INFO_MEMBER( | |
| 146 | 145 | 0, |
| 147 | | |
| 146 | | |
| 148 | 147 | attr & 0x0f, |
| 149 | 148 | TILE_FLIPYX((attr & 0x60) >> 5)); |
| 150 | 149 | } |
| r17673 | r17674 | |
| 159 | 158 | VIDEO_START( stfight ) |
| 160 | 159 | { |
| 161 | 160 | stfight_state *state = machine.driver_data<stfight_state>(); |
| 162 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,bg_scan, 16,16,128,256); | |
| 163 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info,fg_scan,16,16,128,256); | |
| 164 | state->m_tx_tilemap = tilemap_create(machine, get_tx_tile_info,TILEMAP_SCAN_ROWS, 8,8,32,32); | |
| 161 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(stfight_state::get_bg_tile_info),state),tilemap_mapper_delegate(FUNC(stfight_state::bg_scan),state),16,16,128,256); | |
| 162 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(stfight_state::get_fg_tile_info),state),tilemap_mapper_delegate(FUNC(stfight_state::fg_scan),state),16,16,128,256); | |
| 163 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(stfight_state::get_tx_tile_info),state),TILEMAP_SCAN_ROWS, 8,8,32,32); | |
| 165 | 164 | |
| 166 | 165 | state->m_fg_tilemap->set_transparent_pen(0x0f); |
| 167 | 166 | colortable_configure_tilemap_groups(machine.colortable, state->m_tx_tilemap, machine.gfx[0], 0xcf); |
| r17673 | r17674 | |
|---|---|---|
| 121 | 121 | * |
| 122 | 122 | *************************************/ |
| 123 | 123 | |
| 124 | ||
| 124 | ||
| 125 | 125 | { |
| 126 | gottlieb_state *state = machine.driver_data<gottlieb_state>(); | |
| 127 | UINT8 *videoram = state->m_videoram; | |
| 126 | UINT8 *videoram = m_videoram; | |
| 128 | 127 | int code = videoram[tile_index]; |
| 129 | 128 | if ((code & 0x80) == 0) |
| 130 | SET_TILE_INFO( | |
| 129 | SET_TILE_INFO_MEMBER( | |
| 131 | 130 | else |
| 132 | SET_TILE_INFO( | |
| 131 | SET_TILE_INFO_MEMBER( | |
| 133 | 132 | } |
| 134 | 133 | |
| 135 | ||
| 134 | ||
| 136 | 135 | { |
| 137 | gottlieb_state *state = machine.driver_data<gottlieb_state>(); | |
| 138 | UINT8 *videoram = state->m_videoram; | |
| 136 | UINT8 *videoram = m_videoram; | |
| 139 | 137 | int code = videoram[tile_index]; |
| 140 | 138 | if ((code & 0xc0) == 0) |
| 141 | SET_TILE_INFO( | |
| 139 | SET_TILE_INFO_MEMBER( | |
| 142 | 140 | else |
| 143 | SET_TILE_INFO( | |
| 141 | SET_TILE_INFO_MEMBER( | |
| 144 | 142 | } |
| 145 | 143 | |
| 146 | 144 | |
| r17673 | r17674 | |
| 159 | 157 | state->m_transparent0 = FALSE; |
| 160 | 158 | |
| 161 | 159 | /* configure the background tilemap */ |
| 162 | state->m_bg_tilemap = tilemap | |
| 160 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gottlieb_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 163 | 161 | state->m_bg_tilemap->set_transparent_pen(0); |
| 164 | 162 | state->m_bg_tilemap->set_scrolldx(0, 318 - 256); |
| 165 | 163 | |
| r17673 | r17674 | |
| 186 | 184 | state->m_transparent0 = FALSE; |
| 187 | 185 | |
| 188 | 186 | /* configure the background tilemap */ |
| 189 | state->m_bg_tilemap = tilemap | |
| 187 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gottlieb_state::get_screwloo_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 190 | 188 | state->m_bg_tilemap->set_transparent_pen(0); |
| 191 | 189 | state->m_bg_tilemap->set_scrolldx(0, 318 - 256); |
| 192 | 190 |
| r17673 | r17674 | |
|---|---|---|
| 50 | 50 | |
| 51 | 51 | ***************************************************************************/ |
| 52 | 52 | |
| 53 | ||
| 53 | ||
| 54 | 54 | { |
| 55 | 55 | /* logical (col,row) -> memory offset */ |
| 56 | 56 | return (col & 0x0f) + ((row & 0x0f) << 4) + ((col & 0x10) << 4) + ((row & 0x10) << 5); |
| 57 | 57 | } |
| 58 | 58 | |
| 59 | ||
| 59 | ||
| 60 | 60 | { |
| 61 | ddragon_state *state = machine.driver_data<ddragon_state>(); | |
| 62 | UINT8 attr = state->m_bgvideoram[2 * tile_index]; | |
| 63 | SET_TILE_INFO( | |
| 61 | UINT8 attr = m_bgvideoram[2 * tile_index]; | |
| 62 | SET_TILE_INFO_MEMBER( | |
| 64 | 63 | 2, |
| 65 | | |
| 64 | | |
| 66 | 65 | (attr >> 3) & 0x07, |
| 67 | 66 | TILE_FLIPYX((attr & 0xc0) >> 6)); |
| 68 | 67 | } |
| 69 | 68 | |
| 70 | ||
| 69 | ||
| 71 | 70 | { |
| 72 | ddragon_state *state = machine.driver_data<ddragon_state>(); | |
| 73 | UINT8 attr = state->m_fgvideoram[2 * tile_index]; | |
| 74 | SET_TILE_INFO( | |
| 71 | UINT8 attr = m_fgvideoram[2 * tile_index]; | |
| 72 | SET_TILE_INFO_MEMBER( | |
| 75 | 73 | 0, |
| 76 | | |
| 74 | | |
| 77 | 75 | attr >> 5, |
| 78 | 76 | 0); |
| 79 | 77 | } |
| 80 | 78 | |
| 81 | ||
| 79 | ||
| 82 | 80 | { |
| 83 | ddragon_state *state = machine.driver_data<ddragon_state>(); | |
| 84 | UINT8 attr = state->m_fgvideoram[2 * tile_index]; | |
| 85 | SET_TILE_INFO( | |
| 81 | UINT8 attr = m_fgvideoram[2 * tile_index]; | |
| 82 | SET_TILE_INFO_MEMBER( | |
| 86 | 83 | 0, |
| 87 | | |
| 84 | | |
| 88 | 85 | attr >> 4, |
| 89 | 86 | 0); |
| 90 | 87 | } |
| r17673 | r17674 | |
| 100 | 97 | { |
| 101 | 98 | ddragon_state *state = machine.driver_data<ddragon_state>(); |
| 102 | 99 | |
| 103 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, background_scan, 16, 16, 32, 32); | |
| 104 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 100 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ddragon_state::get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(ddragon_state::background_scan),state), 16, 16, 32, 32); | |
| 101 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ddragon_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 105 | 102 | |
| 106 | 103 | state->m_fg_tilemap->set_transparent_pen(0); |
| 107 | 104 | state->m_fg_tilemap->set_scrolldx(0, 384 - 256); |
| r17673 | r17674 | |
| 114 | 111 | { |
| 115 | 112 | ddragon_state *state = machine.driver_data<ddragon_state>(); |
| 116 | 113 | |
| 117 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,background_scan, 16, 16, 32, 32); | |
| 118 | state->m_fg_tilemap = tilemap_create(machine, get_fg_16color_tile_info,TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 114 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ddragon_state::get_bg_tile_info),state),tilemap_mapper_delegate(FUNC(ddragon_state::background_scan),state), 16, 16, 32, 32); | |
| 115 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ddragon_state::get_fg_16color_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 119 | 116 | |
| 120 | 117 | state->m_fg_tilemap->set_transparent_pen(0); |
| 121 | 118 | state->m_fg_tilemap->set_scrolldy(-8, -8); |
| r17673 | r17674 | |
|---|---|---|
| 425 | 425 | SET_TILE_INFO( 1, code, color, state->m_flipscreen ); |
| 426 | 426 | } |
| 427 | 427 | |
| 428 | ||
| 428 | ||
| 429 | 429 | { |
| 430 | homedata_state *state = machine.driver_data<homedata_state>(); | |
| 431 | mrokumei_info0( machine, tileinfo, tile_index, 0, state->m_blitter_bank & 0x03 ); | |
| 430 | mrokumei_info0( machine(), tileinfo, tile_index, 0, m_blitter_bank & 0x03 ); | |
| 432 | 431 | } |
| 433 | 432 | |
| 434 | ||
| 433 | ||
| 435 | 434 | { |
| 436 | homedata_state *state = machine.driver_data<homedata_state>(); | |
| 437 | mrokumei_info0( machine, tileinfo, tile_index, 1, state->m_blitter_bank & 0x03 ); | |
| 435 | mrokumei_info0( machine(), tileinfo, tile_index, 1, m_blitter_bank & 0x03 ); | |
| 438 | 436 | } |
| 439 | 437 | |
| 440 | ||
| 438 | ||
| 441 | 439 | { |
| 442 | homedata_state *state = machine.driver_data<homedata_state>(); | |
| 443 | mrokumei_info1( machine, tileinfo, tile_index, 0, (state->m_blitter_bank & 0x38) >> 3 ); | |
| 440 | mrokumei_info1( machine(), tileinfo, tile_index, 0, (m_blitter_bank & 0x38) >> 3 ); | |
| 444 | 441 | } |
| 445 | 442 | |
| 446 | ||
| 443 | ||
| 447 | 444 | { |
| 448 | homedata_state *state = machine.driver_data<homedata_state>(); | |
| 449 | mrokumei_info1( machine, tileinfo, tile_index, 1, (state->m_blitter_bank & 0x38) >> 3 ); | |
| 445 | mrokumei_info1( machine(), tileinfo, tile_index, 1, (m_blitter_bank & 0x38) >> 3 ); | |
| 450 | 446 | } |
| 451 | 447 | |
| 452 | 448 | |
| r17673 | r17674 | |
| 472 | 468 | * xxxx.x--- layer#0 |
| 473 | 469 | * ----.-xxx layer#2 |
| 474 | 470 | */ |
| 475 | ||
| 471 | ||
| 476 | 472 | { |
| 477 | homedata_state *state = machine.driver_data<homedata_state>(); | |
| 478 | reikaids_info(machine, tileinfo, tile_index, 0, 0, (state->m_gfx_bank[1] >> 3)); | |
| 473 | reikaids_info(machine(), tileinfo, tile_index, 0, 0, (m_gfx_bank[1] >> 3)); | |
| 479 | 474 | } |
| 480 | 475 | |
| 481 | ||
| 476 | ||
| 482 | 477 | { |
| 483 | homedata_state *state = machine.driver_data<homedata_state>(); | |
| 484 | reikaids_info(machine, tileinfo, tile_index, 1, 0, (state->m_gfx_bank[1] >> 3)); | |
| 478 | reikaids_info(machine(), tileinfo, tile_index, 1, 0, (m_gfx_bank[1] >> 3)); | |
| 485 | 479 | } |
| 486 | 480 | |
| 487 | ||
| 481 | ||
| 488 | 482 | { |
| 489 | homedata_state *state = machine.driver_data<homedata_state>(); | |
| 490 | reikaids_info(machine, tileinfo, tile_index, 0, 1, ((state->m_gfx_bank[0] & 0x78) >> 3)); | |
| 483 | reikaids_info(machine(), tileinfo, tile_index, 0, 1, ((m_gfx_bank[0] & 0x78) >> 3)); | |
| 491 | 484 | } |
| 492 | 485 | |
| 493 | ||
| 486 | ||
| 494 | 487 | { |
| 495 | homedata_state *state = machine.driver_data<homedata_state>(); | |
| 496 | reikaids_info(machine, tileinfo, tile_index, 1, 1, ((state->m_gfx_bank[0] & 0x78) >> 3)); | |
| 488 | reikaids_info(machine(), tileinfo, tile_index, 1, 1, ((m_gfx_bank[0] & 0x78) >> 3)); | |
| 497 | 489 | } |
| 498 | 490 | |
| 499 | ||
| 491 | ||
| 500 | 492 | { |
| 501 | homedata_state *state = machine.driver_data<homedata_state>(); | |
| 502 | reikaids_info(machine, tileinfo, tile_index, 0, 2, (state->m_gfx_bank[1] & 0x7)); | |
| 493 | reikaids_info(machine(), tileinfo, tile_index, 0, 2, (m_gfx_bank[1] & 0x7)); | |
| 503 | 494 | } |
| 504 | 495 | |
| 505 | ||
| 496 | ||
| 506 | 497 | { |
| 507 | homedata_state *state = machine.driver_data<homedata_state>(); | |
| 508 | reikaids_info(machine, tileinfo, tile_index, 1, 2, (state->m_gfx_bank[1] & 0x7)); | |
| 498 | reikaids_info(machine(), tileinfo, tile_index, 1, 2, (m_gfx_bank[1] & 0x7)); | |
| 509 | 499 | } |
| 510 | 500 | |
| 511 | ||
| 501 | ||
| 512 | 502 | { |
| 513 | homedata_state *state = machine.driver_data<homedata_state>(); | |
| 514 | reikaids_info(machine, tileinfo, tile_index, 0, 3, (state->m_gfx_bank[0] & 0x7)); | |
| 503 | reikaids_info(machine(), tileinfo, tile_index, 0, 3, (m_gfx_bank[0] & 0x7)); | |
| 515 | 504 | } |
| 516 | 505 | |
| 517 | ||
| 506 | ||
| 518 | 507 | { |
| 519 | homedata_state *state = machine.driver_data<homedata_state>(); | |
| 520 | reikaids_info(machine, tileinfo, tile_index, 1, 3, (state->m_gfx_bank[0] & 0x7)); | |
| 508 | reikaids_info(machine(), tileinfo, tile_index, 1, 3, (m_gfx_bank[0] & 0x7)); | |
| 521 | 509 | } |
| 522 | 510 | |
| 523 | 511 | |
| r17673 | r17674 | |
| 532 | 520 | SET_TILE_INFO(layer, code, color, state->m_flipscreen); |
| 533 | 521 | } |
| 534 | 522 | |
| 535 | ||
| 523 | ||
| 536 | 524 | { |
| 537 | homedata_state *state = machine.driver_data<homedata_state>(); | |
| 538 | pteacher_info(machine, tileinfo, tile_index, 0, 0, state->m_gfx_bank[0] & 0x0f); | |
| 525 | pteacher_info(machine(), tileinfo, tile_index, 0, 0, m_gfx_bank[0] & 0x0f); | |
| 539 | 526 | } |
| 540 | 527 | |
| 541 | ||
| 528 | ||
| 542 | 529 | { |
| 543 | homedata_state *state = machine.driver_data<homedata_state>(); | |
| 544 | pteacher_info(machine, tileinfo, tile_index, 1, 0, state->m_gfx_bank[0] & 0x0f); | |
| 530 | pteacher_info(machine(), tileinfo, tile_index, 1, 0, m_gfx_bank[0] & 0x0f); | |
| 545 | 531 | } |
| 546 | 532 | |
| 547 | ||
| 533 | ||
| 548 | 534 | { |
| 549 | homedata_state *state = machine.driver_data<homedata_state>(); | |
| 550 | pteacher_info(machine, tileinfo, tile_index, 0, 1, state->m_gfx_bank[0] >> 4); | |
| 535 | pteacher_info(machine(), tileinfo, tile_index, 0, 1, m_gfx_bank[0] >> 4); | |
| 551 | 536 | } |
| 552 | 537 | |
| 553 | ||
| 538 | ||
| 554 | 539 | { |
| 555 | homedata_state *state = machine.driver_data<homedata_state>(); | |
| 556 | pteacher_info(machine, tileinfo, tile_index, 1, 1, state->m_gfx_bank[0] >> 4); | |
| 540 | pteacher_info(machine(), tileinfo, tile_index, 1, 1, m_gfx_bank[0] >> 4); | |
| 557 | 541 | } |
| 558 | 542 | |
| 559 | 543 | |
| r17673 | r17674 | |
| 568 | 552 | SET_TILE_INFO(2 * layer + gfxset, code, color, state->m_flipscreen); |
| 569 | 553 | } |
| 570 | 554 | |
| 571 | ||
| 555 | ||
| 572 | 556 | { |
| 573 | homedata_state *state = machine.driver_data<homedata_state>(); | |
| 574 | lemnangl_info( machine, tileinfo, tile_index, 0, 0, state->m_blitter_bank & 1, state->m_gfx_bank[0] & 0x0f ); | |
| 557 | lemnangl_info( machine(), tileinfo, tile_index, 0, 0, m_blitter_bank & 1, m_gfx_bank[0] & 0x0f ); | |
| 575 | 558 | } |
| 576 | 559 | |
| 577 | ||
| 560 | ||
| 578 | 561 | { |
| 579 | homedata_state *state = machine.driver_data<homedata_state>(); | |
| 580 | lemnangl_info( machine, tileinfo, tile_index, 1, 0, state->m_blitter_bank & 1, state->m_gfx_bank[0] & 0x0f ); | |
| 562 | lemnangl_info( machine(), tileinfo, tile_index, 1, 0, m_blitter_bank & 1, m_gfx_bank[0] & 0x0f ); | |
| 581 | 563 | } |
| 582 | 564 | |
| 583 | 565 | |
| 584 | ||
| 566 | ||
| 585 | 567 | { |
| 586 | homedata_state *state = machine.driver_data<homedata_state>(); | |
| 587 | lemnangl_info( machine, tileinfo, tile_index, 0, 1, (state->m_blitter_bank & 2) >> 1, state->m_gfx_bank[0] >> 4 ); | |
| 568 | lemnangl_info( machine(), tileinfo, tile_index, 0, 1, (m_blitter_bank & 2) >> 1, m_gfx_bank[0] >> 4 ); | |
| 588 | 569 | } |
| 589 | 570 | |
| 590 | ||
| 571 | ||
| 591 | 572 | { |
| 592 | homedata_state *state = machine.driver_data<homedata_state>(); | |
| 593 | lemnangl_info( machine, tileinfo, tile_index, 1, 1, (state->m_blitter_bank & 2) >> 1, state->m_gfx_bank[0] >> 4 ); | |
| 573 | lemnangl_info( machine(), tileinfo, tile_index, 1, 1, (m_blitter_bank & 2) >> 1, m_gfx_bank[0] >> 4 ); | |
| 594 | 574 | } |
| 595 | 575 | |
| 596 | 576 | |
| r17673 | r17674 | |
| 615 | 595 | SET_TILE_INFO( 1, code, color, state->m_flipscreen ); |
| 616 | 596 | } |
| 617 | 597 | |
| 618 | ||
| 598 | ||
| 619 | 599 | { |
| 620 | // homedata_state *state = machine.driver_data<homedata_state>(); | |
| 621 | mirderby_info0( machine, tileinfo, tile_index, 0, 0);// state->m_blitter_bank & 0x03 ); | |
| 600 | mirderby_info0( machine(), tileinfo, tile_index, 0, 0);// m_blitter_bank & 0x03 ); | |
| 622 | 601 | } |
| 623 | 602 | |
| 624 | ||
| 603 | ||
| 625 | 604 | { |
| 626 | // homedata_state *state = machine.driver_data<homedata_state>(); | |
| 627 | mirderby_info0( machine, tileinfo, tile_index, 1, 0);// state->m_blitter_bank & 0x03 ); | |
| 605 | mirderby_info0( machine(), tileinfo, tile_index, 1, 0);// m_blitter_bank & 0x03 ); | |
| 628 | 606 | } |
| 629 | 607 | |
| 630 | ||
| 608 | ||
| 631 | 609 | { |
| 632 | // homedata_state *state = machine.driver_data<homedata_state>(); | |
| 633 | mirderby_info1( machine, tileinfo, tile_index, 0, 0);//(state->m_blitter_bank & 0x38) >> 3 ); | |
| 610 | mirderby_info1( machine(), tileinfo, tile_index, 0, 0);//(m_blitter_bank & 0x38) >> 3 ); | |
| 634 | 611 | } |
| 635 | 612 | |
| 636 | ||
| 613 | ||
| 637 | 614 | { |
| 638 | // homedata_state *state = machine.driver_data<homedata_state>(); | |
| 639 | mirderby_info1( machine, tileinfo, tile_index, 1, 0);//(state->m_blitter_bank & 0x38) >> 3 ); | |
| 615 | mirderby_info1( machine(), tileinfo, tile_index, 1, 0);//(m_blitter_bank & 0x38) >> 3 ); | |
| 640 | 616 | } |
| 641 | 617 | |
| 642 | 618 | |
| r17673 | r17674 | |
| 650 | 626 | VIDEO_START( mrokumei ) |
| 651 | 627 | { |
| 652 | 628 | homedata_state *state = machine.driver_data<homedata_state>(); |
| 653 | state->m_bg_tilemap[0][0] = tilemap_create( machine, mrokumei_get_info0_0, TILEMAP_SCAN_ROWS, 8, 8, 64, 32 ); | |
| 654 | state->m_bg_tilemap[0][1] = tilemap_create( machine, mrokumei_get_info0_1, TILEMAP_SCAN_ROWS, 8, 8, 64, 32 ); | |
| 655 | state->m_bg_tilemap[1][0] = tilemap_create( machine, mrokumei_get_info1_0, TILEMAP_SCAN_ROWS, 8, 8, 64, 32 ); | |
| 656 | state->m_bg_tilemap[1][1] = tilemap_create( machine, mrokumei_get_info1_1, TILEMAP_SCAN_ROWS, 8, 8, 64, 32 ); | |
| 629 | state->m_bg_tilemap[0][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::mrokumei_get_info0_0),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 ); | |
| 630 | state->m_bg_tilemap[0][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::mrokumei_get_info0_1),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 ); | |
| 631 | state->m_bg_tilemap[1][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::mrokumei_get_info1_0),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 ); | |
| 632 | state->m_bg_tilemap[1][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::mrokumei_get_info1_1),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 ); | |
| 657 | 633 | |
| 658 | 634 | state->m_bg_tilemap[0][1]->set_transparent_pen(0); |
| 659 | 635 | state->m_bg_tilemap[1][1]->set_transparent_pen(0); |
| r17673 | r17674 | |
| 662 | 638 | VIDEO_START( reikaids ) |
| 663 | 639 | { |
| 664 | 640 | homedata_state *state = machine.driver_data<homedata_state>(); |
| 665 | state->m_bg_tilemap[0][0] = tilemap_create(machine, reikaids_get_info0_0, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 666 | state->m_bg_tilemap[0][1] = tilemap_create(machine, reikaids_get_info0_1, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 667 | state->m_bg_tilemap[0][2] = tilemap_create(machine, reikaids_get_info0_2, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 668 | state->m_bg_tilemap[0][3] = tilemap_create(machine, reikaids_get_info0_3, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 669 | state->m_bg_tilemap[1][0] = tilemap_create(machine, reikaids_get_info1_0, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 670 | state->m_bg_tilemap[1][1] = tilemap_create(machine, reikaids_get_info1_1, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 671 | state->m_bg_tilemap[1][2] = tilemap_create(machine, reikaids_get_info1_2, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 672 | state->m_bg_tilemap[1][3] = tilemap_create(machine, reikaids_get_info1_3, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 641 | state->m_bg_tilemap[0][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::reikaids_get_info0_0),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 642 | state->m_bg_tilemap[0][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::reikaids_get_info0_1),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 643 | state->m_bg_tilemap[0][2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::reikaids_get_info0_2),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 644 | state->m_bg_tilemap[0][3] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::reikaids_get_info0_3),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 645 | state->m_bg_tilemap[1][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::reikaids_get_info1_0),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 646 | state->m_bg_tilemap[1][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::reikaids_get_info1_1),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 647 | state->m_bg_tilemap[1][2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::reikaids_get_info1_2),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 648 | state->m_bg_tilemap[1][3] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::reikaids_get_info1_3),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 673 | 649 | |
| 674 | 650 | state->m_bg_tilemap[0][0]->set_transparent_pen(0xff); |
| 675 | 651 | state->m_bg_tilemap[0][1]->set_transparent_pen(0xff); |
| r17673 | r17674 | |
| 684 | 660 | VIDEO_START( pteacher ) |
| 685 | 661 | { |
| 686 | 662 | homedata_state *state = machine.driver_data<homedata_state>(); |
| 687 | state->m_bg_tilemap[0][0] = tilemap_create(machine, pteacher_get_info0_0, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 688 | state->m_bg_tilemap[0][1] = tilemap_create(machine, pteacher_get_info0_1, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 689 | state->m_bg_tilemap[1][0] = tilemap_create(machine, pteacher_get_info1_0, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 690 | state->m_bg_tilemap[1][1] = tilemap_create(machine, pteacher_get_info1_1, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 663 | state->m_bg_tilemap[0][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::pteacher_get_info0_0),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 664 | state->m_bg_tilemap[0][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::pteacher_get_info0_1),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 665 | state->m_bg_tilemap[1][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::pteacher_get_info1_0),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 666 | state->m_bg_tilemap[1][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::pteacher_get_info1_1),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 691 | 667 | |
| 692 | 668 | state->m_bg_tilemap[0][1]->set_transparent_pen(0xff); |
| 693 | 669 | state->m_bg_tilemap[1][1]->set_transparent_pen(0xff); |
| r17673 | r17674 | |
| 696 | 672 | VIDEO_START( lemnangl ) |
| 697 | 673 | { |
| 698 | 674 | homedata_state *state = machine.driver_data<homedata_state>(); |
| 699 | state->m_bg_tilemap[0][0] = tilemap_create(machine, lemnangl_get_info0_0, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 700 | state->m_bg_tilemap[0][1] = tilemap_create(machine, lemnangl_get_info0_1, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 701 | state->m_bg_tilemap[1][0] = tilemap_create(machine, lemnangl_get_info1_0, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 702 | state->m_bg_tilemap[1][1] = tilemap_create(machine, lemnangl_get_info1_1, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 675 | state->m_bg_tilemap[0][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::lemnangl_get_info0_0),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 676 | state->m_bg_tilemap[0][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::lemnangl_get_info0_1),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 677 | state->m_bg_tilemap[1][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::lemnangl_get_info1_0),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 678 | state->m_bg_tilemap[1][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::lemnangl_get_info1_1),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 703 | 679 | |
| 704 | 680 | state->m_bg_tilemap[0][1]->set_transparent_pen(0x0f); |
| 705 | 681 | state->m_bg_tilemap[1][1]->set_transparent_pen(0x0f); |
| r17673 | r17674 | |
| 708 | 684 | VIDEO_START( mirderby ) |
| 709 | 685 | { |
| 710 | 686 | homedata_state *state = machine.driver_data<homedata_state>(); |
| 711 | state->m_bg_tilemap[0][0] = tilemap_create( machine, mirderby_get_info0_0, TILEMAP_SCAN_ROWS, 8, 8, 64, 32 ); | |
| 712 | state->m_bg_tilemap[0][1] = tilemap_create( machine, mirderby_get_info0_1, TILEMAP_SCAN_ROWS, 8, 8, 64, 32 ); | |
| 713 | state->m_bg_tilemap[1][0] = tilemap_create( machine, mirderby_get_info1_0, TILEMAP_SCAN_ROWS, 8, 8, 64, 32 ); | |
| 714 | state->m_bg_tilemap[1][1] = tilemap_create( machine, mirderby_get_info1_1, TILEMAP_SCAN_ROWS, 8, 8, 64, 32 ); | |
| 687 | state->m_bg_tilemap[0][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::mirderby_get_info0_0),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 ); | |
| 688 | state->m_bg_tilemap[0][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::mirderby_get_info0_1),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 ); | |
| 689 | state->m_bg_tilemap[1][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::mirderby_get_info1_0),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 ); | |
| 690 | state->m_bg_tilemap[1][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homedata_state::mirderby_get_info1_1),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32 ); | |
| 715 | 691 | |
| 716 | 692 | state->m_bg_tilemap[0][1]->set_transparent_pen(0); |
| 717 | 693 | state->m_bg_tilemap[1][1]->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 50 | 50 | |
| 51 | 51 | /****************************************************************************/ |
| 52 | 52 | |
| 53 | ||
| 53 | ||
| 54 | 54 | { |
| 55 | xxmissio_state *state = machine.driver_data<xxmissio_state>(); | |
| 56 | int code = ((state->m_bgram[0x400 | tile_index] & 0xc0) << 2) | state->m_bgram[0x000 | tile_index]; | |
| 57 | int color = state->m_bgram[0x400 | tile_index] & 0x0f; | |
| 55 | int code = ((m_bgram[0x400 | tile_index] & 0xc0) << 2) | m_bgram[0x000 | tile_index]; | |
| 56 | int color = m_bgram[0x400 | tile_index] & 0x0f; | |
| 58 | 57 | |
| 59 | SET_TILE_INFO(2, code, color, 0); | |
| 58 | SET_TILE_INFO_MEMBER(2, code, color, 0); | |
| 60 | 59 | } |
| 61 | 60 | |
| 62 | ||
| 61 | ||
| 63 | 62 | { |
| 64 | xxmissio_state *state = machine.driver_data<xxmissio_state>(); | |
| 65 | int code = state->m_fgram[0x000 | tile_index]; | |
| 66 | int color = state->m_fgram[0x400 | tile_index] & 0x07; | |
| 63 | int code = m_fgram[0x000 | tile_index]; | |
| 64 | int color = m_fgram[0x400 | tile_index] & 0x07; | |
| 67 | 65 | |
| 68 | SET_TILE_INFO(0, code, color, 0); | |
| 66 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 69 | 67 | } |
| 70 | 68 | |
| 71 | 69 | VIDEO_START( xxmissio ) |
| 72 | 70 | { |
| 73 | 71 | xxmissio_state *state = machine.driver_data<xxmissio_state>(); |
| 74 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 8, 32, 32); | |
| 75 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 16, 8, 32, 32); | |
| 72 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(xxmissio_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 8, 32, 32); | |
| 73 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(xxmissio_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 8, 32, 32); | |
| 76 | 74 | |
| 77 | 75 | state->m_bg_tilemap->set_scroll_cols(1); |
| 78 | 76 | state->m_bg_tilemap->set_scroll_rows(1); |
| r17673 | r17674 | |
|---|---|---|
| 59 | 59 | } |
| 60 | 60 | } |
| 61 | 61 | |
| 62 | ||
| 62 | ||
| 63 | 63 | { |
| 64 | 64 | |
| 65 | 65 | /* fF-- cccc nnnn nnnn */ |
| r17673 | r17674 | |
| 70 | 70 | f = flip-Y |
| 71 | 71 | */ |
| 72 | 72 | |
| 73 | mugsmash_state *state = machine.driver_data<mugsmash_state>(); | |
| 74 | 73 | int tileno, colour, fx; |
| 75 | 74 | |
| 76 | tileno = state->m_videoram1[tile_index * 2 + 1]; | |
| 77 | colour = state->m_videoram1[tile_index * 2] & 0x000f; | |
| 78 | fx = (state->m_videoram1[tile_index * 2] & 0xc0) >> 6; | |
| 75 | tileno = m_videoram1[tile_index * 2 + 1]; | |
| 76 | colour = m_videoram1[tile_index * 2] & 0x000f; | |
| 77 | fx = (m_videoram1[tile_index * 2] & 0xc0) >> 6; | |
| 79 | 78 | |
| 80 | SET_TILE_INFO(1, tileno, colour, TILE_FLIPYX(fx)); | |
| 79 | SET_TILE_INFO_MEMBER(1, tileno, colour, TILE_FLIPYX(fx)); | |
| 81 | 80 | } |
| 82 | 81 | |
| 83 | 82 | WRITE16_MEMBER(mugsmash_state::mugsmash_videoram1_w) |
| r17673 | r17674 | |
| 87 | 86 | m_tilemap1->mark_tile_dirty(offset / 2); |
| 88 | 87 | } |
| 89 | 88 | |
| 90 | ||
| 89 | ||
| 91 | 90 | { |
| 92 | 91 | |
| 93 | 92 | /* fF-- cccc nnnn nnnn */ |
| r17673 | r17674 | |
| 98 | 97 | f = flip-Y |
| 99 | 98 | */ |
| 100 | 99 | |
| 101 | mugsmash_state *state = machine.driver_data<mugsmash_state>(); | |
| 102 | 100 | int tileno, colour, fx; |
| 103 | 101 | |
| 104 | tileno = state->m_videoram2[tile_index * 2 + 1]; | |
| 105 | colour = state->m_videoram2[tile_index * 2] & 0x000f; | |
| 106 | fx = (state->m_videoram2[tile_index * 2] & 0xc0) >> 6; | |
| 102 | tileno = m_videoram2[tile_index * 2 + 1]; | |
| 103 | colour = m_videoram2[tile_index * 2] & 0x000f; | |
| 104 | fx = (m_videoram2[tile_index * 2] & 0xc0) >> 6; | |
| 107 | 105 | |
| 108 | SET_TILE_INFO(1, tileno, 16 + colour, TILE_FLIPYX(fx)); | |
| 106 | SET_TILE_INFO_MEMBER(1, tileno, 16 + colour, TILE_FLIPYX(fx)); | |
| 109 | 107 | } |
| 110 | 108 | |
| 111 | 109 | WRITE16_MEMBER(mugsmash_state::mugsmash_videoram2_w) |
| r17673 | r17674 | |
| 142 | 140 | { |
| 143 | 141 | mugsmash_state *state = machine.driver_data<mugsmash_state>(); |
| 144 | 142 | |
| 145 | state->m_tilemap1 = tilemap | |
| 143 | state->m_tilemap1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mugsmash_state::get_mugsmash_tile_info1),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 146 | 144 | state->m_tilemap1->set_transparent_pen(0); |
| 147 | 145 | |
| 148 | state->m_tilemap2 = tilemap | |
| 146 | state->m_tilemap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mugsmash_state::get_mugsmash_tile_info2),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 149 | 147 | } |
| 150 | 148 | |
| 151 | 149 | SCREEN_UPDATE_IND16( mugsmash ) |
| r17673 | r17674 | |
|---|---|---|
| 529 | 529 | // pppppppp ff--atttt tttttttt tttttttt |
| 530 | 530 | #define HNG64_GET_TILE_INFO \ |
| 531 | 531 | { \ |
| 532 | hng64_state *state = machine.driver_data<hng64_state>(); \ | |
| 533 | UINT16 tilemapinfo = (state->m_videoregs[reg]>>shift)&0xffff; \ | |
| 532 | UINT16 tilemapinfo = (m_videoregs[reg]>>shift)&0xffff; \ | |
| 534 | 533 | int tileno,pal, flip; \ |
| 535 | 534 | \ |
| 536 | tileno = | |
| 535 | tileno = | |
| 537 | 536 | \ |
| 538 | 537 | pal = (tileno&0xff000000)>>24; \ |
| 539 | 538 | flip =(tileno&0x00c00000)>>22; \ |
| 540 | 539 | \ |
| 541 | 540 | if (tileno&0x200000) \ |
| 542 | 541 | { \ |
| 543 | tileno = (tileno & | |
| 542 | tileno = (tileno & | |
| 544 | 543 | } \ |
| 545 | 544 | \ |
| 546 | 545 | tileno &= 0x1fffff; \ |
| r17673 | r17674 | |
| 549 | 548 | { \ |
| 550 | 549 | if (tilemapinfo&0x400) \ |
| 551 | 550 | { \ |
| 552 | SET_TILE_INFO(1,tileno>>1,pal>>4,TILE_FLIPYX(flip)); \ | |
| 551 | SET_TILE_INFO_MEMBER(1,tileno>>1,pal>>4,TILE_FLIPYX(flip)); \ | |
| 553 | 552 | } \ |
| 554 | 553 | else \ |
| 555 | 554 | { \ |
| 556 | SET_TILE_INFO(0,tileno, pal,TILE_FLIPYX(flip)); \ | |
| 555 | SET_TILE_INFO_MEMBER(0,tileno, pal,TILE_FLIPYX(flip)); \ | |
| 557 | 556 | } \ |
| 558 | 557 | } \ |
| 559 | 558 | else \ |
| 560 | 559 | { \ |
| 561 | 560 | if (tilemapinfo&0x400) \ |
| 562 | 561 | { \ |
| 563 | SET_TILE_INFO(3,tileno>>3,pal>>4,TILE_FLIPYX(flip)); \ | |
| 562 | SET_TILE_INFO_MEMBER(3,tileno>>3,pal>>4,TILE_FLIPYX(flip)); \ | |
| 564 | 563 | } \ |
| 565 | 564 | else \ |
| 566 | 565 | { \ |
| 567 | SET_TILE_INFO(2,tileno>>2, pal,TILE_FLIPYX(flip)); \ | |
| 566 | SET_TILE_INFO_MEMBER(2,tileno>>2, pal,TILE_FLIPYX(flip)); \ | |
| 568 | 567 | } \ |
| 569 | 568 | } \ |
| 570 | 569 | } \ |
| 571 | 570 | \ |
| 572 | 571 | |
| 573 | ||
| 572 | ||
| 574 | 573 | { |
| 575 | 574 | int offset = 0x00000; |
| 576 | 575 | int size = 0; |
| r17673 | r17674 | |
| 580 | 579 | HNG64_GET_TILE_INFO |
| 581 | 580 | } |
| 582 | 581 | |
| 583 | ||
| 582 | ||
| 584 | 583 | { |
| 585 | 584 | int offset = 0x00000; |
| 586 | 585 | int size = 1; |
| r17673 | r17674 | |
| 590 | 589 | HNG64_GET_TILE_INFO |
| 591 | 590 | } |
| 592 | 591 | |
| 593 | ||
| 592 | ||
| 594 | 593 | { |
| 595 | 594 | int offset = 0x10000; |
| 596 | 595 | int size = 0; |
| r17673 | r17674 | |
| 600 | 599 | HNG64_GET_TILE_INFO |
| 601 | 600 | } |
| 602 | 601 | |
| 603 | ||
| 602 | ||
| 604 | 603 | { |
| 605 | 604 | int offset = 0x10000; |
| 606 | 605 | int size = 1; |
| r17673 | r17674 | |
| 610 | 609 | HNG64_GET_TILE_INFO |
| 611 | 610 | } |
| 612 | 611 | |
| 613 | ||
| 612 | ||
| 614 | 613 | { |
| 615 | 614 | int offset = 0x20000; |
| 616 | 615 | int size = 0; |
| r17673 | r17674 | |
| 620 | 619 | HNG64_GET_TILE_INFO |
| 621 | 620 | } |
| 622 | 621 | |
| 623 | ||
| 622 | ||
| 624 | 623 | { |
| 625 | 624 | int offset = 0x20000; |
| 626 | 625 | int size = 1; |
| r17673 | r17674 | |
| 630 | 629 | HNG64_GET_TILE_INFO |
| 631 | 630 | } |
| 632 | 631 | |
| 633 | ||
| 632 | ||
| 634 | 633 | { |
| 635 | 634 | int offset = 0x30000; |
| 636 | 635 | int size = 0; |
| r17673 | r17674 | |
| 640 | 639 | HNG64_GET_TILE_INFO |
| 641 | 640 | } |
| 642 | 641 | |
| 643 | ||
| 642 | ||
| 644 | 643 | { |
| 645 | 644 | int offset = 0x30000; |
| 646 | 645 | int size = 1; |
| r17673 | r17674 | |
| 1658 | 1657 | state->m_old_tileflags2 = -1; |
| 1659 | 1658 | state->m_old_tileflags3 = -1; |
| 1660 | 1659 | |
| 1661 | state->m_tilemap0_8x8 = tilemap_create(machine, get_hng64_tile0_8x8_info, TILEMAP_SCAN_ROWS, 8, 8, 128, 128); /* 128x128x4 = 0x10000 */ | |
| 1662 | state->m_tilemap0_16x16 = tilemap_create(machine, get_hng64_tile0_16x16_info, TILEMAP_SCAN_ROWS, 16, 16, 128, 128); /* 128x128x4 = 0x10000 */ | |
| 1663 | state->m_tilemap0_16x16_alt = tilemap_create(machine, get_hng64_tile0_16x16_info, TILEMAP_SCAN_ROWS, 16, 16, 256, 64); /* 128x128x4 = 0x10000 */ | |
| 1660 | state->m_tilemap0_8x8 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile0_8x8_info),state), TILEMAP_SCAN_ROWS, 8, 8, 128, 128); /* 128x128x4 = 0x10000 */ | |
| 1661 | state->m_tilemap0_16x16 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile0_16x16_info),state), TILEMAP_SCAN_ROWS, 16, 16, 128, 128); /* 128x128x4 = 0x10000 */ | |
| 1662 | state->m_tilemap0_16x16_alt = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile0_16x16_info),state), TILEMAP_SCAN_ROWS, 16, 16, 256, 64); /* 128x128x4 = 0x10000 */ | |
| 1664 | 1663 | |
| 1665 | state->m_tilemap1_8x8 = tilemap_create(machine, get_hng64_tile1_8x8_info, TILEMAP_SCAN_ROWS, 8, 8, 128, 128); /* 128x128x4 = 0x10000 */ | |
| 1666 | state->m_tilemap1_16x16 = tilemap_create(machine, get_hng64_tile1_16x16_info, TILEMAP_SCAN_ROWS, 16, 16, 128, 128); /* 128x128x4 = 0x10000 */ | |
| 1667 | state->m_tilemap1_16x16_alt = tilemap_create(machine, get_hng64_tile1_16x16_info, TILEMAP_SCAN_ROWS, 16, 16, 256, 64); /* 128x128x4 = 0x10000 */ | |
| 1664 | state->m_tilemap1_8x8 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile1_8x8_info),state), TILEMAP_SCAN_ROWS, 8, 8, 128, 128); /* 128x128x4 = 0x10000 */ | |
| 1665 | state->m_tilemap1_16x16 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile1_16x16_info),state), TILEMAP_SCAN_ROWS, 16, 16, 128, 128); /* 128x128x4 = 0x10000 */ | |
| 1666 | state->m_tilemap1_16x16_alt = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile1_16x16_info),state), TILEMAP_SCAN_ROWS, 16, 16, 256, 64); /* 128x128x4 = 0x10000 */ | |
| 1668 | 1667 | |
| 1669 | state->m_tilemap2_8x8 = tilemap_create(machine, get_hng64_tile2_8x8_info, TILEMAP_SCAN_ROWS, 8, 8, 128, 128); /* 128x128x4 = 0x10000 */ | |
| 1670 | state->m_tilemap2_16x16 = tilemap_create(machine, get_hng64_tile2_16x16_info, TILEMAP_SCAN_ROWS, 16, 16, 128, 128); /* 128x128x4 = 0x10000 */ | |
| 1671 | state->m_tilemap2_16x16_alt = tilemap_create(machine, get_hng64_tile2_16x16_info, TILEMAP_SCAN_ROWS, 16, 16, 256, 64); /* 128x128x4 = 0x10000 */ | |
| 1668 | state->m_tilemap2_8x8 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile2_8x8_info),state), TILEMAP_SCAN_ROWS, 8, 8, 128, 128); /* 128x128x4 = 0x10000 */ | |
| 1669 | state->m_tilemap2_16x16 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile2_16x16_info),state), TILEMAP_SCAN_ROWS, 16, 16, 128, 128); /* 128x128x4 = 0x10000 */ | |
| 1670 | state->m_tilemap2_16x16_alt = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile2_16x16_info),state), TILEMAP_SCAN_ROWS, 16, 16, 256, 64); /* 128x128x4 = 0x10000 */ | |
| 1672 | 1671 | |
| 1673 | state->m_tilemap3_8x8 = tilemap_create(machine, get_hng64_tile3_8x8_info, TILEMAP_SCAN_ROWS, 8, 8, 128, 128); /* 128x128x4 = 0x10000 */ | |
| 1674 | state->m_tilemap3_16x16 = tilemap_create(machine, get_hng64_tile3_16x16_info, TILEMAP_SCAN_ROWS, 16, 16, 128, 128); /* 128x128x4 = 0x10000 */ | |
| 1675 | state->m_tilemap3_16x16_alt = tilemap_create(machine, get_hng64_tile3_16x16_info, TILEMAP_SCAN_ROWS, 16, 16, 256, 64); /* 128x128x4 = 0x10000 */ | |
| 1672 | state->m_tilemap3_8x8 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile3_8x8_info),state), TILEMAP_SCAN_ROWS, 8, 8, 128, 128); /* 128x128x4 = 0x10000 */ | |
| 1673 | state->m_tilemap3_16x16 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile3_16x16_info),state), TILEMAP_SCAN_ROWS, 16, 16, 128, 128); /* 128x128x4 = 0x10000 */ | |
| 1674 | state->m_tilemap3_16x16_alt = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hng64_state::get_hng64_tile3_16x16_info),state), TILEMAP_SCAN_ROWS, 16, 16, 256, 64); /* 128x128x4 = 0x10000 */ | |
| 1676 | 1675 | |
| 1677 | 1676 | state->m_tilemap0_8x8->set_transparent_pen(0); |
| 1678 | 1677 | state->m_tilemap0_16x16->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 38 | 38 | } |
| 39 | 39 | } |
| 40 | 40 | |
| 41 | ||
| 41 | ||
| 42 | 42 | { |
| 43 | solomon_state *state = machine.driver_data<solomon_state>(); | |
| 44 | int attr = state->m_colorram2[tile_index]; | |
| 45 | int code = state->m_videoram2[tile_index] + 256 * (attr & 0x07); | |
| 43 | int attr = m_colorram2[tile_index]; | |
| 44 | int code = m_videoram2[tile_index] + 256 * (attr & 0x07); | |
| 46 | 45 | int color = ((attr & 0x70) >> 4); |
| 47 | 46 | int flags = ((attr & 0x80) ? TILE_FLIPX : 0) | ((attr & 0x08) ? TILE_FLIPY : 0); |
| 48 | 47 | |
| 49 | SET_TILE_INFO(1, code, color, flags); | |
| 48 | SET_TILE_INFO_MEMBER(1, code, color, flags); | |
| 50 | 49 | } |
| 51 | 50 | |
| 52 | ||
| 51 | ||
| 53 | 52 | { |
| 54 | solomon_state *state = machine.driver_data<solomon_state>(); | |
| 55 | int attr = state->m_colorram[tile_index]; | |
| 56 | int code = state->m_videoram[tile_index] + 256 * (attr & 0x07); | |
| 53 | int attr = m_colorram[tile_index]; | |
| 54 | int code = m_videoram[tile_index] + 256 * (attr & 0x07); | |
| 57 | 55 | int color = (attr & 0x70) >> 4; |
| 58 | 56 | |
| 59 | SET_TILE_INFO(0, code, color, 0); | |
| 57 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 60 | 58 | } |
| 61 | 59 | |
| 62 | 60 | VIDEO_START( solomon ) |
| 63 | 61 | { |
| 64 | 62 | solomon_state *state = machine.driver_data<solomon_state>(); |
| 65 | 63 | |
| 66 | state->m_bg_tilemap = tilemap | |
| 64 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(solomon_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, | |
| 67 | 65 | 8, 8, 32, 32); |
| 68 | 66 | |
| 69 | state->m_fg_tilemap = tilemap | |
| 67 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(solomon_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, | |
| 70 | 68 | 8, 8, 32, 32); |
| 71 | 69 | |
| 72 | 70 | state->m_fg_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 14 | 14 | |
| 15 | 15 | ***************************************************************************/ |
| 16 | 16 | |
| 17 | ||
| 17 | ||
| 18 | 18 | { |
| 19 | gladiatr_state *state = machine.driver_data<gladiatr_state>(); | |
| 20 | UINT8 attr = state->m_colorram[tile_index]; | |
| 19 | UINT8 attr = m_colorram[tile_index]; | |
| 21 | 20 | |
| 22 | SET_TILE_INFO( | |
| 21 | SET_TILE_INFO_MEMBER( | |
| 23 | 22 | 1, |
| 24 | | |
| 23 | | |
| 25 | 24 | (attr >> 3) ^ 0x1f, |
| 26 | 25 | 0); |
| 27 | 26 | } |
| 28 | 27 | |
| 29 | ||
| 28 | ||
| 30 | 29 | { |
| 31 | gladiatr_state *state = machine.driver_data<gladiatr_state>(); | |
| 32 | SET_TILE_INFO( | |
| 30 | SET_TILE_INFO_MEMBER( | |
| 33 | 31 | 0, |
| 34 | | |
| 32 | | |
| 35 | 33 | 0, |
| 36 | 34 | 0); |
| 37 | 35 | } |
| r17673 | r17674 | |
| 47 | 45 | VIDEO_START( ppking ) |
| 48 | 46 | { |
| 49 | 47 | gladiatr_state *state = machine.driver_data<gladiatr_state>(); |
| 50 | state->m_bg_tilemap = tilemap_create(machine, bg_get_tile_info,TILEMAP_SCAN_ROWS,8,8,32,64); | |
| 51 | state->m_fg_tilemap = tilemap_create(machine, fg_get_tile_info,TILEMAP_SCAN_ROWS,8,8,32,64); | |
| 48 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gladiatr_state::bg_get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,64); | |
| 49 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gladiatr_state::fg_get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,64); | |
| 52 | 50 | |
| 53 | 51 | state->m_fg_tilemap->set_transparent_pen(0); |
| 54 | 52 | |
| r17673 | r17674 | |
| 60 | 58 | VIDEO_START( gladiatr ) |
| 61 | 59 | { |
| 62 | 60 | gladiatr_state *state = machine.driver_data<gladiatr_state>(); |
| 63 | state->m_bg_tilemap = tilemap_create(machine, bg_get_tile_info,TILEMAP_SCAN_ROWS,8,8,64,32); | |
| 64 | state->m_fg_tilemap = tilemap_create(machine, fg_get_tile_info,TILEMAP_SCAN_ROWS,8,8,64,32); | |
| 61 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gladiatr_state::bg_get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32); | |
| 62 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gladiatr_state::fg_get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,64,32); | |
| 65 | 63 | |
| 66 | 64 | state->m_fg_tilemap->set_transparent_pen(0); |
| 67 | 65 |
| r17673 | r17674 | |
|---|---|---|
| 15 | 15 | } |
| 16 | 16 | |
| 17 | 17 | |
| 18 | ||
| 18 | ||
| 19 | 19 | { |
| 20 | macrossp_state *state = machine.driver_data<macrossp_state>(); | |
| 21 | 20 | UINT32 attr, tileno, color; |
| 22 | 21 | |
| 23 | attr = | |
| 22 | attr = | |
| 24 | 23 | tileno = attr & 0x0000ffff; |
| 25 | 24 | |
| 26 | switch ( | |
| 25 | switch ( | |
| 27 | 26 | { |
| 28 | 27 | case 0x00000800: |
| 29 | 28 | color = (attr & 0x000e0000) >> 15; |
| r17673 | r17674 | |
| 34 | 33 | break; |
| 35 | 34 | |
| 36 | 35 | default: |
| 37 | color = machine.rand() & 7; | |
| 36 | color = machine().rand() & 7; | |
| 38 | 37 | break; |
| 39 | 38 | } |
| 40 | 39 | |
| 41 | SET_TILE_INFO(1, tileno, color, TILE_FLIPYX((attr & 0xc0000000) >> 30)); | |
| 40 | SET_TILE_INFO_MEMBER(1, tileno, color, TILE_FLIPYX((attr & 0xc0000000) >> 30)); | |
| 42 | 41 | } |
| 43 | 42 | |
| 44 | 43 | /*** SCR B LAYER ***/ |
| r17673 | r17674 | |
| 52 | 51 | } |
| 53 | 52 | |
| 54 | 53 | |
| 55 | ||
| 54 | ||
| 56 | 55 | { |
| 57 | macrossp_state *state = machine.driver_data<macrossp_state>(); | |
| 58 | 56 | UINT32 attr, tileno, color; |
| 59 | 57 | |
| 60 | attr = | |
| 58 | attr = | |
| 61 | 59 | tileno = attr & 0x0000ffff; |
| 62 | 60 | |
| 63 | switch ( | |
| 61 | switch ( | |
| 64 | 62 | { |
| 65 | 63 | case 0x00000800: |
| 66 | 64 | color = (attr & 0x000e0000) >> 15; |
| r17673 | r17674 | |
| 71 | 69 | break; |
| 72 | 70 | |
| 73 | 71 | default: |
| 74 | color = machine.rand() & 7; | |
| 72 | color = machine().rand() & 7; | |
| 75 | 73 | break; |
| 76 | 74 | } |
| 77 | 75 | |
| 78 | SET_TILE_INFO(2, tileno, color, TILE_FLIPYX((attr & 0xc0000000) >> 30)); | |
| 76 | SET_TILE_INFO_MEMBER(2, tileno, color, TILE_FLIPYX((attr & 0xc0000000) >> 30)); | |
| 79 | 77 | } |
| 80 | 78 | |
| 81 | 79 | /*** SCR C LAYER ***/ |
| r17673 | r17674 | |
| 89 | 87 | } |
| 90 | 88 | |
| 91 | 89 | |
| 92 | ||
| 90 | ||
| 93 | 91 | { |
| 94 | macrossp_state *state = machine.driver_data<macrossp_state>(); | |
| 95 | 92 | UINT32 attr, tileno, color; |
| 96 | 93 | |
| 97 | attr = | |
| 94 | attr = | |
| 98 | 95 | tileno = attr & 0x0000ffff; |
| 99 | 96 | |
| 100 | switch ( | |
| 97 | switch ( | |
| 101 | 98 | { |
| 102 | 99 | case 0x00000800: |
| 103 | 100 | color = (attr & 0x000e0000) >> 15; |
| r17673 | r17674 | |
| 108 | 105 | break; |
| 109 | 106 | |
| 110 | 107 | default: |
| 111 | color = machine.rand() & 7; | |
| 108 | color = machine().rand() & 7; | |
| 112 | 109 | break; |
| 113 | 110 | } |
| 114 | 111 | |
| 115 | SET_TILE_INFO(3, tileno, color, TILE_FLIPYX((attr & 0xc0000000) >> 30)); | |
| 112 | SET_TILE_INFO_MEMBER(3, tileno, color, TILE_FLIPYX((attr & 0xc0000000) >> 30)); | |
| 116 | 113 | } |
| 117 | 114 | |
| 118 | 115 | /*** TEXT LAYER ***/ |
| r17673 | r17674 | |
| 126 | 123 | } |
| 127 | 124 | |
| 128 | 125 | |
| 129 | ||
| 126 | ||
| 130 | 127 | { |
| 131 | macrossp_state *state = machine.driver_data<macrossp_state>(); | |
| 132 | 128 | UINT32 tileno, colour; |
| 133 | 129 | |
| 134 | tileno = state->m_text_videoram[tile_index] & 0x0000ffff; | |
| 135 | colour = (state->m_text_videoram[tile_index] & 0x00fe0000) >> 17; | |
| 130 | tileno = m_text_videoram[tile_index] & 0x0000ffff; | |
| 131 | colour = (m_text_videoram[tile_index] & 0x00fe0000) >> 17; | |
| 136 | 132 | |
| 137 | SET_TILE_INFO(4, tileno, colour, 0); | |
| 133 | SET_TILE_INFO_MEMBER(4, tileno, colour, 0); | |
| 138 | 134 | } |
| 139 | 135 | |
| 140 | 136 | |
| r17673 | r17674 | |
| 148 | 144 | state->m_spriteram_old = auto_alloc_array_clear(machine, UINT32, state->m_spriteram.bytes() / 4); |
| 149 | 145 | state->m_spriteram_old2 = auto_alloc_array_clear(machine, UINT32, state->m_spriteram.bytes() / 4); |
| 150 | 146 | |
| 151 | state->m_text_tilemap = tilemap_create(machine, get_macrossp_text_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); | |
| 152 | state->m_scra_tilemap = tilemap_create(machine, get_macrossp_scra_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); | |
| 153 | state->m_scrb_tilemap = tilemap_create(machine, get_macrossp_scrb_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); | |
| 154 | state->m_scrc_tilemap = tilemap_create(machine, get_macrossp_scrc_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); | |
| 147 | state->m_text_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(macrossp_state::get_macrossp_text_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); | |
| 148 | state->m_scra_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(macrossp_state::get_macrossp_scra_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); | |
| 149 | state->m_scrb_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(macrossp_state::get_macrossp_scrb_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); | |
| 150 | state->m_scrc_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(macrossp_state::get_macrossp_scrc_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); | |
| 155 | 151 | |
| 156 | 152 | state->m_text_tilemap->set_transparent_pen(0); |
| 157 | 153 | state->m_scra_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 15 | 15 | |
| 16 | 16 | ***************************************************************************/ |
| 17 | 17 | |
| 18 | ||
| 18 | ||
| 19 | 19 | { |
| 20 | goindol_state *state = machine.driver_data<goindol_state>(); | |
| 21 | int code = state->m_fg_videoram[2 * tile_index + 1]; | |
| 22 | int attr = state->m_fg_videoram[2 * tile_index]; | |
| 23 | SET_TILE_INFO( | |
| 20 | int code = m_fg_videoram[2 * tile_index + 1]; | |
| 21 | int attr = m_fg_videoram[2 * tile_index]; | |
| 22 | SET_TILE_INFO_MEMBER( | |
| 24 | 23 | 0, |
| 25 | code | ((attr & 0x7) << 8) | ( | |
| 24 | code | ((attr & 0x7) << 8) | ( | |
| 26 | 25 | (attr & 0xf8) >> 3, |
| 27 | 26 | 0); |
| 28 | 27 | } |
| 29 | 28 | |
| 30 | ||
| 29 | ||
| 31 | 30 | { |
| 32 | goindol_state *state = machine.driver_data<goindol_state>(); | |
| 33 | int code = state->m_bg_videoram[2 * tile_index + 1]; | |
| 34 | int attr = state->m_bg_videoram[2 * tile_index]; | |
| 35 | SET_TILE_INFO( | |
| 31 | int code = m_bg_videoram[2 * tile_index + 1]; | |
| 32 | int attr = m_bg_videoram[2 * tile_index]; | |
| 33 | SET_TILE_INFO_MEMBER( | |
| 36 | 34 | 1, |
| 37 | code | ((attr & 0x7) << 8) | ( | |
| 35 | code | ((attr & 0x7) << 8) | ( | |
| 38 | 36 | (attr & 0xf8) >> 3, |
| 39 | 37 | 0); |
| 40 | 38 | } |
| r17673 | r17674 | |
| 50 | 48 | VIDEO_START( goindol ) |
| 51 | 49 | { |
| 52 | 50 | goindol_state *state = machine.driver_data<goindol_state>(); |
| 53 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 54 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 51 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goindol_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 52 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(goindol_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 55 | 53 | |
| 56 | 54 | state->m_fg_tilemap->set_transparent_pen(0); |
| 57 | 55 | } |
| r17673 | r17674 | |
|---|---|---|
| 7 | 7 | |
| 8 | 8 | ***************************************************************************/ |
| 9 | 9 | |
| 10 | ||
| 10 | ||
| 11 | 11 | { |
| 12 | taitol_state *state = machine.driver_data<taitol_state>(); | |
| 13 | int attr = state->m_rambanks[2 * tile_index + 0x8000 + 1]; | |
| 14 | int code = state->m_rambanks[2 * tile_index + 0x8000] | |
| 12 | int attr = m_rambanks[2 * tile_index + 0x8000 + 1]; | |
| 13 | int code = m_rambanks[2 * tile_index + 0x8000] | |
| 15 | 14 | | ((attr & 0x03) << 8) |
| 16 | | ((state->m_bankc[(attr & 0xc) >> 2]) << 10) | |
| 17 | | (state->m_horshoes_gfxbank << 12); | |
| 15 | | ((m_bankc[(attr & 0xc) >> 2]) << 10) | |
| 16 | | (m_horshoes_gfxbank << 12); | |
| 18 | 17 | |
| 19 | SET_TILE_INFO( | |
| 18 | SET_TILE_INFO_MEMBER( | |
| 20 | 19 | 0, |
| 21 | 20 | code, |
| 22 | 21 | (attr & 0xf0) >> 4, |
| 23 | 22 | 0); |
| 24 | 23 | } |
| 25 | 24 | |
| 26 | ||
| 25 | ||
| 27 | 26 | { |
| 28 | taitol_state *state = machine.driver_data<taitol_state>(); | |
| 29 | int attr = state->m_rambanks[2 * tile_index + 0x9000 + 1]; | |
| 30 | int code = state->m_rambanks[2 * tile_index + 0x9000] | |
| 27 | int attr = m_rambanks[2 * tile_index + 0x9000 + 1]; | |
| 28 | int code = m_rambanks[2 * tile_index + 0x9000] | |
| 31 | 29 | | ((attr & 0x03) << 8) |
| 32 | | ((state->m_bankc[(attr & 0xc) >> 2]) << 10) | |
| 33 | | (state->m_horshoes_gfxbank << 12); | |
| 30 | | ((m_bankc[(attr & 0xc) >> 2]) << 10) | |
| 31 | | (m_horshoes_gfxbank << 12); | |
| 34 | 32 | |
| 35 | SET_TILE_INFO( | |
| 33 | SET_TILE_INFO_MEMBER( | |
| 36 | 34 | 0, |
| 37 | 35 | code, |
| 38 | 36 | (attr & 0xf0) >> 4, |
| 39 | 37 | 0); |
| 40 | 38 | } |
| 41 | 39 | |
| 42 | ||
| 40 | ||
| 43 | 41 | { |
| 44 | taitol_state *state = machine.driver_data<taitol_state>(); | |
| 45 | int attr = state->m_rambanks[2 * tile_index + 0xa000 + 1]; | |
| 46 | int code = state->m_rambanks[2 * tile_index + 0xa000] | ((attr & 0x01) << 8) | ((attr & 0x04) << 7); | |
| 42 | int attr = m_rambanks[2 * tile_index + 0xa000 + 1]; | |
| 43 | int code = m_rambanks[2 * tile_index + 0xa000] | ((attr & 0x01) << 8) | ((attr & 0x04) << 7); | |
| 47 | 44 | |
| 48 | SET_TILE_INFO( | |
| 45 | SET_TILE_INFO_MEMBER( | |
| 49 | 46 | 2, |
| 50 | 47 | code, |
| 51 | 48 | (attr & 0xf0) >> 4, |
| r17673 | r17674 | |
| 65 | 62 | taitol_state *state = machine.driver_data<taitol_state>(); |
| 66 | 63 | int i; |
| 67 | 64 | |
| 68 | state->m_bg18_tilemap = tilemap_create(machine, get_bg18_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 69 | state->m_bg19_tilemap = tilemap_create(machine, get_bg19_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 70 | state->m_ch1a_tilemap = tilemap_create(machine, get_ch1a_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 65 | state->m_bg18_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(taitol_state::get_bg18_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 66 | state->m_bg19_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(taitol_state::get_bg19_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 67 | state->m_ch1a_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(taitol_state::get_ch1a_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 71 | 68 | |
| 72 | 69 | state->m_bg18_tilemap->set_transparent_pen(0); |
| 73 | 70 | state->m_ch1a_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 99 | 99 | } |
| 100 | 100 | |
| 101 | 101 | |
| 102 | ||
| 102 | ||
| 103 | 103 | { |
| 104 | gyruss_state *state = machine.driver_data<gyruss_state>(); | |
| 105 | int code = ((state->m_colorram[tile_index] & 0x20) << 3) | state->m_videoram[tile_index]; | |
| 106 | int color = state->m_colorram[tile_index] & 0x0f; | |
| 107 | int flags = TILE_FLIPYX(state->m_colorram[tile_index] >> 6); | |
| 104 | int code = ((m_colorram[tile_index] & 0x20) << 3) | m_videoram[tile_index]; | |
| 105 | int color = m_colorram[tile_index] & 0x0f; | |
| 106 | int flags = TILE_FLIPYX(m_colorram[tile_index] >> 6); | |
| 108 | 107 | |
| 109 | tileinfo.group = ( | |
| 108 | tileinfo.group = ( | |
| 110 | 109 | |
| 111 | SET_TILE_INFO(2, code, color, flags); | |
| 110 | SET_TILE_INFO_MEMBER(2, code, color, flags); | |
| 112 | 111 | } |
| 113 | 112 | |
| 114 | 113 | |
| 115 | 114 | VIDEO_START( gyruss ) |
| 116 | 115 | { |
| 117 | 116 | gyruss_state *state = machine.driver_data<gyruss_state>(); |
| 118 | state->m_tilemap = tilemap | |
| 117 | state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gyruss_state::gyruss_get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 119 | 118 | state->m_tilemap->set_transmask(0, 0x00, 0); /* opaque */ |
| 120 | 119 | state->m_tilemap->set_transmask(1, 0x0f, 0); /* transparent */ |
| 121 | 120 | } |
| r17673 | r17674 | |
|---|---|---|
| 47 | 47 | |
| 48 | 48 | ***************************************************************************/ |
| 49 | 49 | |
| 50 | ||
| 50 | ||
| 51 | 51 | { |
| 52 | fastlane_state *state = machine.driver_data<fastlane_state>(); | |
| 53 | UINT8 ctrl_3 = k007121_ctrlram_r(state->m_k007121, 3); | |
| 54 | UINT8 ctrl_4 = k007121_ctrlram_r(state->m_k007121, 4); | |
| 55 | UINT8 ctrl_5 = k007121_ctrlram_r(state->m_k007121, 5); | |
| 56 | int attr = state->m_videoram1[tile_index]; | |
| 57 | int code = state->m_videoram1[tile_index + 0x400]; | |
| 52 | UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121, 3); | |
| 53 | UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121, 4); | |
| 54 | UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121, 5); | |
| 55 | int attr = m_videoram1[tile_index]; | |
| 56 | int code = m_videoram1[tile_index + 0x400]; | |
| 58 | 57 | int bit0 = (ctrl_5 >> 0) & 0x03; |
| 59 | 58 | int bit1 = (ctrl_5 >> 2) & 0x03; |
| 60 | 59 | int bit2 = (ctrl_5 >> 4) & 0x03; |
| r17673 | r17674 | |
| 69 | 68 | |
| 70 | 69 | bank = (bank & ~(mask << 1)) | ((ctrl_4 & mask) << 1); |
| 71 | 70 | |
| 72 | SET_TILE_INFO( | |
| 71 | SET_TILE_INFO_MEMBER( | |
| 73 | 72 | 0, |
| 74 | 73 | code+bank*256, |
| 75 | 74 | 1 + 64 * (attr & 0x0f), |
| 76 | 75 | 0); |
| 77 | 76 | } |
| 78 | 77 | |
| 79 | ||
| 78 | ||
| 80 | 79 | { |
| 81 | fastlane_state *state = machine.driver_data<fastlane_state>(); | |
| 82 | UINT8 ctrl_3 = k007121_ctrlram_r(state->m_k007121, 3); | |
| 83 | UINT8 ctrl_4 = k007121_ctrlram_r(state->m_k007121, 4); | |
| 84 | UINT8 ctrl_5 = k007121_ctrlram_r(state->m_k007121, 5); | |
| 85 | int attr = state->m_videoram2[tile_index]; | |
| 86 | int code = state->m_videoram2[tile_index + 0x400]; | |
| 80 | UINT8 ctrl_3 = k007121_ctrlram_r(m_k007121, 3); | |
| 81 | UINT8 ctrl_4 = k007121_ctrlram_r(m_k007121, 4); | |
| 82 | UINT8 ctrl_5 = k007121_ctrlram_r(m_k007121, 5); | |
| 83 | int attr = m_videoram2[tile_index]; | |
| 84 | int code = m_videoram2[tile_index + 0x400]; | |
| 87 | 85 | int bit0 = (ctrl_5 >> 0) & 0x03; |
| 88 | 86 | int bit1 = (ctrl_5 >> 2) & 0x03; |
| 89 | 87 | int bit2 = (ctrl_5 >> 4) & 0x03; |
| r17673 | r17674 | |
| 98 | 96 | |
| 99 | 97 | bank = (bank & ~(mask << 1)) | ((ctrl_4 & mask) << 1); |
| 100 | 98 | |
| 101 | SET_TILE_INFO( | |
| 99 | SET_TILE_INFO_MEMBER( | |
| 102 | 100 | 0, |
| 103 | 101 | code+bank*256, |
| 104 | 102 | 0 + 64 * (attr & 0x0f), |
| r17673 | r17674 | |
| 115 | 113 | { |
| 116 | 114 | fastlane_state *state = machine.driver_data<fastlane_state>(); |
| 117 | 115 | |
| 118 | state->m_layer0 = tilemap_create(machine, get_tile_info0, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 119 | state->m_layer1 = tilemap_create(machine, get_tile_info1, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 116 | state->m_layer0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fastlane_state::get_tile_info0),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 117 | state->m_layer1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fastlane_state::get_tile_info1),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 120 | 118 | |
| 121 | 119 | state->m_layer0->set_scroll_rows(32); |
| 122 | 120 |
| r17673 | r17674 | |
|---|---|---|
| 9 | 9 | #include "emu.h" |
| 10 | 10 | #include "includes/cabal.h" |
| 11 | 11 | |
| 12 | ||
| 12 | ||
| 13 | 13 | { |
| 14 | cabal_state *state = machine.driver_data<cabal_state>(); | |
| 15 | 14 | |
| 16 | int tile = | |
| 15 | int tile = | |
| 17 | 16 | int color = (tile>>12)&0xf; |
| 18 | 17 | |
| 19 | 18 | tile &= 0xfff; |
| 20 | 19 | |
| 21 | SET_TILE_INFO( | |
| 20 | SET_TILE_INFO_MEMBER( | |
| 22 | 21 | 1, |
| 23 | 22 | tile, |
| 24 | 23 | color, |
| 25 | 24 | 0); |
| 26 | 25 | } |
| 27 | 26 | |
| 28 | ||
| 27 | ||
| 29 | 28 | { |
| 30 | cabal_state *state = machine.driver_data<cabal_state>(); | |
| 31 | 29 | |
| 32 | int tile = | |
| 30 | int tile = | |
| 33 | 31 | int color = (tile>>10); |
| 34 | 32 | |
| 35 | 33 | tile &= 0x3ff; |
| 36 | 34 | |
| 37 | SET_TILE_INFO( | |
| 35 | SET_TILE_INFO_MEMBER( | |
| 38 | 36 | 0, |
| 39 | 37 | tile, |
| 40 | 38 | color, |
| r17673 | r17674 | |
| 46 | 44 | { |
| 47 | 45 | cabal_state *state = machine.driver_data<cabal_state>(); |
| 48 | 46 | |
| 49 | state->m_background_layer = tilemap_create(machine, get_back_tile_info,TILEMAP_SCAN_ROWS,16,16,16,16); | |
| 50 | state->m_text_layer = tilemap_create(machine, get_text_tile_info,TILEMAP_SCAN_ROWS, 8,8,32,32); | |
| 47 | state->m_background_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cabal_state::get_back_tile_info),state),TILEMAP_SCAN_ROWS,16,16,16,16); | |
| 48 | state->m_text_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cabal_state::get_text_tile_info),state),TILEMAP_SCAN_ROWS, 8,8,32,32); | |
| 51 | 49 | |
| 52 | 50 | state->m_text_layer->set_transparent_pen(3); |
| 53 | 51 | state->m_background_layer->set_transparent_pen(15); |
| r17673 | r17674 | |
|---|---|---|
| 75 | 75 | |
| 76 | 76 | ***************************************************************************/ |
| 77 | 77 | |
| 78 | ||
| 78 | ||
| 79 | 79 | { |
| 80 | suprloco_state *state = machine.driver_data<suprloco_state>(); | |
| 81 | UINT8 attr = state->m_videoram[2*tile_index+1]; | |
| 82 | SET_TILE_INFO( | |
| 80 | UINT8 attr = m_videoram[2*tile_index+1]; | |
| 81 | SET_TILE_INFO_MEMBER( | |
| 83 | 82 | 0, |
| 84 | | |
| 83 | | |
| 85 | 84 | (attr & 0x1c) >> 2, |
| 86 | 85 | 0); |
| 87 | 86 | tileinfo.category = (attr & 0x20) >> 5; |
| r17673 | r17674 | |
| 98 | 97 | VIDEO_START( suprloco ) |
| 99 | 98 | { |
| 100 | 99 | suprloco_state *state = machine.driver_data<suprloco_state>(); |
| 101 | state->m_bg_tilemap = tilemap | |
| 100 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(suprloco_state::get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 102 | 101 | |
| 103 | 102 | state->m_bg_tilemap->set_scroll_rows(32); |
| 104 | 103 | } |
| r17673 | r17674 | |
|---|---|---|
| 136 | 136 | |
| 137 | 137 | /*****************************************************************************/ |
| 138 | 138 | |
| 139 | ||
| 139 | ||
| 140 | 140 | { |
| 141 | m92_state *state = machine.driver_data<m92_state>(); | |
| 142 | 141 | pf_layer_info *layer = (pf_layer_info *)param; |
| 143 | 142 | int tile, attrib; |
| 144 | 143 | tile_index = 2 * tile_index + layer->vram_base; |
| 145 | 144 | |
| 146 | attrib = state->m_vram_data[tile_index + 1]; | |
| 147 | tile = state->m_vram_data[tile_index] + ((attrib & 0x8000) << 1); | |
| 145 | attrib = m_vram_data[tile_index + 1]; | |
| 146 | tile = m_vram_data[tile_index] + ((attrib & 0x8000) << 1); | |
| 148 | 147 | |
| 149 | SET_TILE_INFO( | |
| 148 | SET_TILE_INFO_MEMBER( | |
| 150 | 149 | 0, |
| 151 | 150 | tile, |
| 152 | 151 | attrib & 0x7f, |
| r17673 | r17674 | |
| 249 | 248 | pf_layer_info *layer = &state->m_pf_layer[laynum]; |
| 250 | 249 | |
| 251 | 250 | /* allocate two tilemaps per layer, one normal, one wide */ |
| 252 | layer->tmap = tilemap_create(machine, get_pf_tile_info, TILEMAP_SCAN_ROWS, 8,8, 64,64); | |
| 253 | layer->wide_tmap = tilemap_create(machine, get_pf_tile_info, TILEMAP_SCAN_ROWS, 8,8, 128,64); | |
| 251 | layer->tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m92_state::get_pf_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,64); | |
| 252 | layer->wide_tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m92_state::get_pf_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 128,64); | |
| 254 | 253 | |
| 255 | 254 | /* set the user data for each one to point to the layer */ |
| 256 | 255 | layer->tmap->set_user_data(&state->m_pf_layer[laynum]); |
| r17673 | r17674 | |
|---|---|---|
| 144 | 144 | * |
| 145 | 145 | *************************************/ |
| 146 | 146 | |
| 147 | ||
| 147 | ||
| 148 | 148 | { |
| 149 | m58_state *state = machine.driver_data<m58_state>(); | |
| 150 | 149 | |
| 151 | 150 | int offs = tile_index * 2; |
| 152 | int attr = state->m_videoram[offs + 1]; | |
| 153 | int code = state->m_videoram[offs] + ((attr & 0xc0) << 2); | |
| 151 | int attr = m_videoram[offs + 1]; | |
| 152 | int code = m_videoram[offs] + ((attr & 0xc0) << 2); | |
| 154 | 153 | int color = attr & 0x1f; |
| 155 | 154 | int flags = (attr & 0x20) ? TILE_FLIPX : 0; |
| 156 | 155 | |
| 157 | SET_TILE_INFO(0, code, color, flags); | |
| 156 | SET_TILE_INFO_MEMBER(0, code, color, flags); | |
| 158 | 157 | } |
| 159 | 158 | |
| 160 | 159 | |
| 161 | ||
| 160 | ||
| 162 | 161 | { |
| 163 | 162 | /* logical (col,row) -> memory offset */ |
| 164 | 163 | if (col >= 32) |
| r17673 | r17674 | |
| 183 | 182 | int height = machine.primary_screen->height(); |
| 184 | 183 | const rectangle &visarea = machine.primary_screen->visible_area(); |
| 185 | 184 | |
| 186 | state->m_bg_tilemap = tilemap | |
| 185 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m58_state::yard_get_bg_tile_info),state), tilemap_mapper_delegate(FUNC(m58_state::yard_tilemap_scan_rows),state), 8, 8, 64, 32); | |
| 187 | 186 | state->m_bg_tilemap->set_scrolldx(visarea.min_x, width - (visarea.max_x + 1)); |
| 188 | 187 | state->m_bg_tilemap->set_scrolldy(visarea.min_y - 8, height + 16 - (visarea.max_y + 1)); |
| 189 | 188 |
| r17673 | r17674 | |
|---|---|---|
| 8 | 8 | #include "includes/fcombat.h" |
| 9 | 9 | |
| 10 | 10 | |
| 11 | ||
| 11 | ||
| 12 | 12 | { |
| 13 | 13 | int tileno, palno; //32*16 x 32 |
| 14 | 14 | |
| 15 | 15 | //palno = (tile_index - (tile_index / 32 * 16) * 32 * 16) / 32; |
| 16 | 16 | |
| 17 | tileno = machine.root_device().memregion("user1")->base()[tile_index]; | |
| 18 | palno = 0x18; //machine.root_device().memregion("user2")->base()[tile_index] >> 3; | |
| 19 | SET_TILE_INFO(2, tileno, palno, 0); | |
| 17 | tileno = machine().root_device().memregion("user1")->base()[tile_index]; | |
| 18 | palno = 0x18; //machine().root_device().memregion("user2")->base()[tile_index] >> 3; | |
| 19 | SET_TILE_INFO_MEMBER(2, tileno, palno, 0); | |
| 20 | 20 | } |
| 21 | 21 | |
| 22 | 22 | |
| r17673 | r17674 | |
| 102 | 102 | VIDEO_START( fcombat ) |
| 103 | 103 | { |
| 104 | 104 | fcombat_state *state = machine.driver_data<fcombat_state>(); |
| 105 | state->m_bgmap = tilemap | |
| 105 | state->m_bgmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fcombat_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32 * 8 * 2, 32); | |
| 106 | 106 | } |
| 107 | 107 | |
| 108 | 108 |
| r17673 | r17674 | |
|---|---|---|
| 36 | 36 | 1 | x------- -------- | flip y |
| 37 | 37 | */ |
| 38 | 38 | |
| 39 | ||
| 39 | ||
| 40 | 40 | { |
| 41 | thoop2_state *state = machine.driver_data<thoop2_state>(); | |
| 42 | int data = state->m_videoram[tile_index << 1]; | |
| 43 | int data2 = state->m_videoram[(tile_index << 1) + 1]; | |
| 41 | int data = m_videoram[tile_index << 1]; | |
| 42 | int data2 = m_videoram[(tile_index << 1) + 1]; | |
| 44 | 43 | int code = ((data & 0xfffc) >> 2) | ((data & 0x0003) << 14); |
| 45 | 44 | |
| 46 | 45 | tileinfo.category = (data2 >> 6) & 0x03; |
| 47 | 46 | |
| 48 | SET_TILE_INFO(1, code, data2 & 0x3f, TILE_FLIPYX((data2 >> 14) & 0x03)); | |
| 47 | SET_TILE_INFO_MEMBER(1, code, data2 & 0x3f, TILE_FLIPYX((data2 >> 14) & 0x03)); | |
| 49 | 48 | } |
| 50 | 49 | |
| 51 | 50 | |
| 52 | ||
| 51 | ||
| 53 | 52 | { |
| 54 | thoop2_state *state = machine.driver_data<thoop2_state>(); | |
| 55 | int data = state->m_videoram[(0x1000/2) + (tile_index << 1)]; | |
| 56 | int data2 = state->m_videoram[(0x1000/2) + (tile_index << 1) + 1]; | |
| 53 | int data = m_videoram[(0x1000/2) + (tile_index << 1)]; | |
| 54 | int data2 = m_videoram[(0x1000/2) + (tile_index << 1) + 1]; | |
| 57 | 55 | int code = ((data & 0xfffc) >> 2) | ((data & 0x0003) << 14); |
| 58 | 56 | |
| 59 | 57 | tileinfo.category = (data2 >> 6) & 0x03; |
| 60 | 58 | |
| 61 | SET_TILE_INFO(1, code, data2 & 0x3f, TILE_FLIPYX((data2 >> 14) & 0x03)); | |
| 59 | SET_TILE_INFO_MEMBER(1, code, data2 & 0x3f, TILE_FLIPYX((data2 >> 14) & 0x03)); | |
| 62 | 60 | } |
| 63 | 61 | |
| 64 | 62 | /*************************************************************************** |
| r17673 | r17674 | |
| 84 | 82 | thoop2_state *state = machine.driver_data<thoop2_state>(); |
| 85 | 83 | int i; |
| 86 | 84 | |
| 87 | state->m_pant[0] = tilemap_create(machine, get_tile_info_thoop2_screen0,TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 88 | state->m_pant[1] = tilemap_create(machine, get_tile_info_thoop2_screen1,TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 85 | state->m_pant[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(thoop2_state::get_tile_info_thoop2_screen0),state),TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 86 | state->m_pant[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(thoop2_state::get_tile_info_thoop2_screen1),state),TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 89 | 87 | |
| 90 | 88 | state->m_pant[0]->set_transmask(0,0xff01,0x00ff); /* pens 1-7 opaque, pens 0, 8-15 transparent */ |
| 91 | 89 | state->m_pant[1]->set_transmask(0,0xff01,0x00ff); /* pens 1-7 opaque, pens 0, 8-15 transparent */ |
| r17673 | r17674 | |
|---|---|---|
| 45 | 45 | /******************************************************************************* |
| 46 | 46 | Tilemap Related Functions |
| 47 | 47 | *******************************************************************************/ |
| 48 | ||
| 48 | ||
| 49 | 49 | { |
| 50 | wwfwfest_state *state = machine.driver_data<wwfwfest_state>(); | |
| 51 | 50 | /*- FG0 RAM Format -** |
| 52 | 51 | |
| 53 | 52 | 4 bytes per tile |
| r17673 | r17674 | |
| 67 | 66 | UINT16 *tilebase; |
| 68 | 67 | int tileno; |
| 69 | 68 | int colbank; |
| 70 | tilebase = & | |
| 69 | tilebase = & | |
| 71 | 70 | tileno = (tilebase[0] & 0x00ff) | ((tilebase[1] & 0x000f) << 8); |
| 72 | 71 | colbank = (tilebase[1] & 0x00f0) >> 4; |
| 73 | SET_TILE_INFO( | |
| 72 | SET_TILE_INFO_MEMBER( | |
| 74 | 73 | 0, |
| 75 | 74 | tileno, |
| 76 | 75 | colbank, |
| 77 | 76 | 0); |
| 78 | 77 | } |
| 79 | 78 | |
| 80 | ||
| 79 | ||
| 81 | 80 | { |
| 82 | wwfwfest_state *state = machine.driver_data<wwfwfest_state>(); | |
| 83 | 81 | /*- BG0 RAM Format -** |
| 84 | 82 | |
| 85 | 83 | 4 bytes per tile |
| r17673 | r17674 | |
| 98 | 96 | UINT16 *tilebase; |
| 99 | 97 | int tileno,colbank; |
| 100 | 98 | |
| 101 | tilebase = & | |
| 99 | tilebase = & | |
| 102 | 100 | tileno = (tilebase[1] & 0x0fff); |
| 103 | 101 | colbank = (tilebase[0] & 0x000f); |
| 104 | SET_TILE_INFO( | |
| 102 | SET_TILE_INFO_MEMBER( | |
| 105 | 103 | 2, |
| 106 | 104 | tileno, |
| 107 | 105 | colbank, |
| 108 | 106 | TILE_FLIPYX((tilebase[0] & 0x00c0) >> 6)); |
| 109 | 107 | } |
| 110 | 108 | |
| 111 | ||
| 109 | ||
| 112 | 110 | { |
| 113 | wwfwfest_state *state = machine.driver_data<wwfwfest_state>(); | |
| 114 | 111 | /*- BG1 RAM Format -** |
| 115 | 112 | |
| 116 | 113 | 2 bytes per tile |
| r17673 | r17674 | |
| 125 | 122 | UINT16 *tilebase; |
| 126 | 123 | int tileno; |
| 127 | 124 | int colbank; |
| 128 | tilebase = & | |
| 125 | tilebase = & | |
| 129 | 126 | tileno = (tilebase[0] & 0x0fff); |
| 130 | 127 | colbank = (tilebase[0] & 0xf000) >> 12; |
| 131 | SET_TILE_INFO( | |
| 128 | SET_TILE_INFO_MEMBER( | |
| 132 | 129 | 3, |
| 133 | 130 | tileno, |
| 134 | 131 | colbank, |
| r17673 | r17674 | |
| 231 | 228 | state_save_register_global(machine, state->m_bg1_scrollx); |
| 232 | 229 | state_save_register_global(machine, state->m_bg1_scrolly); |
| 233 | 230 | |
| 234 | state->m_fg0_tilemap = tilemap_create(machine, get_fg0_tile_info,TILEMAP_SCAN_ROWS, 8, 8,64,32); | |
| 235 | state->m_bg1_tilemap = tilemap_create(machine, get_bg1_tile_info,TILEMAP_SCAN_ROWS, 16, 16,32,32); | |
| 236 | state->m_bg0_tilemap = tilemap_create(machine, get_bg0_tile_info,TILEMAP_SCAN_ROWS, 16, 16,32,32); | |
| 231 | state->m_fg0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wwfwfest_state::get_fg0_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,32); | |
| 232 | state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wwfwfest_state::get_bg1_tile_info),state),TILEMAP_SCAN_ROWS, 16, 16,32,32); | |
| 233 | state->m_bg0_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wwfwfest_state::get_bg0_tile_info),state),TILEMAP_SCAN_ROWS, 16, 16,32,32); | |
| 237 | 234 | |
| 238 | 235 | state->m_fg0_tilemap->set_transparent_pen(0); |
| 239 | 236 | state->m_bg1_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 45 | 45 | |
| 46 | 46 | ***************************************************************************/ |
| 47 | 47 | |
| 48 | ||
| 48 | ||
| 49 | 49 | { |
| 50 | marineb_state *state = machine.driver_data<marineb_state>(); | |
| 51 | 50 | |
| 52 | UINT8 code = state->m_videoram[tile_index]; | |
| 53 | UINT8 col = state->m_colorram[tile_index]; | |
| 51 | UINT8 code = m_videoram[tile_index]; | |
| 52 | UINT8 col = m_colorram[tile_index]; | |
| 54 | 53 | |
| 55 | SET_TILE_INFO(0, | |
| 54 | SET_TILE_INFO_MEMBER(0, | |
| 56 | 55 | code | ((col & 0xc0) << 2), |
| 57 | (col & 0x0f) | ( | |
| 56 | (col & 0x0f) | ( | |
| 58 | 57 | TILE_FLIPXY((col >> 4) & 0x03)); |
| 59 | 58 | } |
| 60 | 59 | |
| r17673 | r17674 | |
| 70 | 69 | { |
| 71 | 70 | marineb_state *state = machine.driver_data<marineb_state>(); |
| 72 | 71 | |
| 73 | state->m_bg_tilemap = tilemap | |
| 72 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(marineb_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 74 | 73 | state->m_bg_tilemap->set_scroll_cols(32); |
| 75 | 74 | |
| 76 | 75 | state->save_item(NAME(state->m_palette_bank)); |
| r17673 | r17674 | |
|---|---|---|
| 90 | 90 | * |
| 91 | 91 | *************************************/ |
| 92 | 92 | |
| 93 | ||
| 93 | ||
| 94 | 94 | { |
| 95 | timeplt_state *state = machine.driver_data<timeplt_state>(); | |
| 96 | int attr = state->m_colorram[tile_index]; | |
| 97 | int code = state->m_videoram[tile_index] + 8 * (attr & 0x20); | |
| 95 | int attr = m_colorram[tile_index]; | |
| 96 | int code = m_videoram[tile_index] + 8 * (attr & 0x20); | |
| 98 | 97 | int color = attr & 0x1f; |
| 99 | 98 | int flags = TILE_FLIPYX(attr >> 6); |
| 100 | 99 | |
| 101 | 100 | tileinfo.category = (attr & 0x10) >> 4; |
| 102 | SET_TILE_INFO(0, code, color, flags); | |
| 101 | SET_TILE_INFO_MEMBER(0, code, color, flags); | |
| 103 | 102 | } |
| 104 | 103 | |
| 105 | ||
| 104 | ||
| 106 | 105 | { |
| 107 | timeplt_state *state = machine.driver_data<timeplt_state>(); | |
| 108 | int attr = state->m_colorram[tile_index]; | |
| 109 | int code = state->m_videoram[tile_index] + ((attr & 0x60) << 3); | |
| 106 | int attr = m_colorram[tile_index]; | |
| 107 | int code = m_videoram[tile_index] + ((attr & 0x60) << 3); | |
| 110 | 108 | int color = attr & 0x1f; |
| 111 | 109 | int flags = 0;//TILE_FLIPYX(attr >> 6); |
| 112 | 110 | |
| 113 | 111 | tileinfo.category = (attr & 0x80) >> 7; |
| 114 | SET_TILE_INFO(0, code, color, flags); | |
| 112 | SET_TILE_INFO_MEMBER(0, code, color, flags); | |
| 115 | 113 | } |
| 116 | 114 | |
| 117 | 115 | |
| r17673 | r17674 | |
| 125 | 123 | VIDEO_START( timeplt ) |
| 126 | 124 | { |
| 127 | 125 | timeplt_state *state = machine.driver_data<timeplt_state>(); |
| 128 | state->m_bg_tilemap = tilemap | |
| 126 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(timeplt_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 129 | 127 | } |
| 130 | 128 | |
| 131 | 129 | VIDEO_START( chkun ) |
| 132 | 130 | { |
| 133 | 131 | timeplt_state *state = machine.driver_data<timeplt_state>(); |
| 134 | state->m_bg_tilemap = tilemap | |
| 132 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(timeplt_state::get_chkun_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 135 | 133 | } |
| 136 | 134 | |
| 137 | 135 |
| r17673 | r17674 | |
|---|---|---|
| 31 | 31 | * |
| 32 | 32 | *************************************/ |
| 33 | 33 | |
| 34 | ||
| 34 | ||
| 35 | 35 | { |
| 36 | atarigx2_state *state = machine.driver_data<atarigx2_state>(); | |
| 37 | UINT16 data = state->m_alpha32[tile_index / 2] >> (16 * (~tile_index & 1)); | |
| 36 | UINT16 data = m_alpha32[tile_index / 2] >> (16 * (~tile_index & 1)); | |
| 38 | 37 | int code = data & 0xfff; |
| 39 | 38 | int color = (data >> 12) & 0x0f; |
| 40 | 39 | int opaque = data & 0x8000; |
| 41 | SET_TILE_INFO(1, code, color, opaque ? TILE_FORCE_LAYER0 : 0); | |
| 40 | SET_TILE_INFO_MEMBER(1, code, color, opaque ? TILE_FORCE_LAYER0 : 0); | |
| 42 | 41 | } |
| 43 | 42 | |
| 44 | 43 | |
| 45 | ||
| 44 | ||
| 46 | 45 | { |
| 47 | atarigx2_state *state = machine.driver_data<atarigx2_state>(); | |
| 48 | UINT16 data = state->m_playfield32[tile_index / 2] >> (16 * (~tile_index & 1)); | |
| 49 | int code = (state->m_playfield_tile_bank << 12) | (data & 0xfff); | |
| 50 | int color = (state->m_playfield_base >> 5) + ((state->m_playfield_color_bank << 3) & 0x18) + ((data >> 12) & 7); | |
| 51 | SET_TILE_INFO(0, code, color, (data >> 15) & 1); | |
| 52 | tileinfo.category = (state->m_playfield_color_bank >> 2) & 7; | |
| 46 | UINT16 data = m_playfield32[tile_index / 2] >> (16 * (~tile_index & 1)); | |
| 47 | int code = (m_playfield_tile_bank << 12) | (data & 0xfff); | |
| 48 | int color = (m_playfield_base >> 5) + ((m_playfield_color_bank << 3) & 0x18) + ((data >> 12) & 7); | |
| 49 | SET_TILE_INFO_MEMBER(0, code, color, (data >> 15) & 1); | |
| 50 | tileinfo.category = (m_playfield_color_bank >> 2) & 7; | |
| 53 | 51 | } |
| 54 | 52 | |
| 55 | 53 | |
| 56 | ||
| 54 | ||
| 57 | 55 | { |
| 58 | 56 | int bank = 1 - (col / (num_cols / 2)); |
| 59 | 57 | return bank * (num_rows * num_cols / 2) + row * (num_cols / 2) + (col % (num_cols / 2)); |
| r17673 | r17674 | |
| 75 | 73 | atarigen_blend_gfx(machine, 0, 2, 0x0f, 0x30); |
| 76 | 74 | |
| 77 | 75 | /* initialize the playfield */ |
| 78 | state->m_playfield_tilemap = tilemap | |
| 76 | state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(atarigx2_state::get_playfield_tile_info),state), tilemap_mapper_delegate(FUNC(atarigx2_state::atarigx2_playfield_scan),state), 8,8, 128,64); | |
| 79 | 77 | |
| 80 | 78 | /* initialize the motion objects */ |
| 81 | 79 | state->m_rle = machine.device("rle"); |
| 82 | 80 | |
| 83 | 81 | /* initialize the alphanumerics */ |
| 84 | state->m_alpha_tilemap = tilemap | |
| 82 | state->m_alpha_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(atarigx2_state::get_alpha_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,32); | |
| 85 | 83 | state->m_alpha_tilemap->set_transparent_pen(0); |
| 86 | 84 | |
| 87 | 85 | /* save states */ |
| r17673 | r17674 | |
|---|---|---|
| 52 | 52 | SET_TILE_INFO(1 + _N_, code, attr & 0x3f, TILE_FLIPYX((attr >> 6) & 3)); |
| 53 | 53 | } |
| 54 | 54 | |
| 55 | static TILE_GET_INFO( get_tile_info_0 ) { get_tile_info(machine, tileinfo, tile_index, 0); } | |
| 56 | static TILE_GET_INFO( get_tile_info_1 ) { get_tile_info(machine, tileinfo, tile_index, 1); } | |
| 57 | static TILE_GET_INFO( get_tile_info_2 ) { get_tile_info(machine, tileinfo, tile_index, 2); } | |
| 58 | static TILE_GET_INFO( get_tile_info_3 ) { get_tile_info(machine, tileinfo, tile_index, 3); } | |
| 55 | TILE_GET_INFO_MEMBER(fuuki16_state::get_tile_info_0){ get_tile_info(machine(), tileinfo, tile_index, 0); } | |
| 56 | TILE_GET_INFO_MEMBER(fuuki16_state::get_tile_info_1){ get_tile_info(machine(), tileinfo, tile_index, 1); } | |
| 57 | TILE_GET_INFO_MEMBER(fuuki16_state::get_tile_info_2){ get_tile_info(machine(), tileinfo, tile_index, 2); } | |
| 58 | TILE_GET_INFO_MEMBER(fuuki16_state::get_tile_info_3){ get_tile_info(machine(), tileinfo, tile_index, 3); } | |
| 59 | 59 | |
| 60 | 60 | INLINE void fuuki16_vram_w(address_space *space, offs_t offset, UINT16 data, UINT16 mem_mask, int _N_) |
| 61 | 61 | { |
| r17673 | r17674 | |
| 95 | 95 | VIDEO_START( fuuki16 ) |
| 96 | 96 | { |
| 97 | 97 | fuuki16_state *state = machine.driver_data<fuuki16_state>(); |
| 98 | state->m_tilemap[0] = tilemap_create(machine, get_tile_info_0, TILEMAP_SCAN_ROWS, 16, 16, 64, 32); | |
| 99 | state->m_tilemap[1] = tilemap_create(machine, get_tile_info_1, TILEMAP_SCAN_ROWS, 16, 16, 64, 32); | |
| 100 | state->m_tilemap[2] = tilemap_create(machine, get_tile_info_2, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 101 | state->m_tilemap[3] = tilemap_create(machine, get_tile_info_3, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 98 | state->m_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fuuki16_state::get_tile_info_0),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); | |
| 99 | state->m_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fuuki16_state::get_tile_info_1),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); | |
| 100 | state->m_tilemap[2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fuuki16_state::get_tile_info_2),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 101 | state->m_tilemap[3] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fuuki16_state::get_tile_info_3),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 102 | 102 | |
| 103 | 103 | state->m_tilemap[0]->set_transparent_pen(0x0f); // 4 bits |
| 104 | 104 | state->m_tilemap[1]->set_transparent_pen(0xff); // 8 bits |
| r17673 | r17674 | |
|---|---|---|
| 77 | 77 | |
| 78 | 78 | ***************************************************************************/ |
| 79 | 79 | |
| 80 | ||
| 80 | ||
| 81 | 81 | { |
| 82 | vulgus_state *state = machine.driver_data<vulgus_state>(); | |
| 83 | 82 | int code, color; |
| 84 | 83 | |
| 85 | code = state->m_fgvideoram[tile_index]; | |
| 86 | color = state->m_fgvideoram[tile_index + 0x400]; | |
| 87 | SET_TILE_INFO( | |
| 84 | code = m_fgvideoram[tile_index]; | |
| 85 | color = m_fgvideoram[tile_index + 0x400]; | |
| 86 | SET_TILE_INFO_MEMBER( | |
| 88 | 87 | 0, |
| 89 | 88 | code + ((color & 0x80) << 1), |
| 90 | 89 | color & 0x3f, |
| r17673 | r17674 | |
| 92 | 91 | tileinfo.group = color & 0x3f; |
| 93 | 92 | } |
| 94 | 93 | |
| 95 | ||
| 94 | ||
| 96 | 95 | { |
| 97 | vulgus_state *state = machine.driver_data<vulgus_state>(); | |
| 98 | 96 | int code, color; |
| 99 | 97 | |
| 100 | code = state->m_bgvideoram[tile_index]; | |
| 101 | color = state->m_bgvideoram[tile_index + 0x400]; | |
| 102 | SET_TILE_INFO( | |
| 98 | code = m_bgvideoram[tile_index]; | |
| 99 | color = m_bgvideoram[tile_index + 0x400]; | |
| 100 | SET_TILE_INFO_MEMBER( | |
| 103 | 101 | 1, |
| 104 | 102 | code + ((color & 0x80) << 1), |
| 105 | (color & 0x1f) + (0x20 * | |
| 103 | (color & 0x1f) + (0x20 * | |
| 106 | 104 | TILE_FLIPYX((color & 0x60) >> 5)); |
| 107 | 105 | } |
| 108 | 106 | |
| r17673 | r17674 | |
| 116 | 114 | VIDEO_START( vulgus ) |
| 117 | 115 | { |
| 118 | 116 | vulgus_state *state = machine.driver_data<vulgus_state>(); |
| 119 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info,TILEMAP_SCAN_ROWS, 8, 8,32,32); | |
| 120 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_COLS,16,16,32,32); | |
| 117 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(vulgus_state::get_fg_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,32,32); | |
| 118 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(vulgus_state::get_bg_tile_info),state),TILEMAP_SCAN_COLS,16,16,32,32); | |
| 121 | 119 | |
| 122 | 120 | colortable_configure_tilemap_groups(machine.colortable, state->m_fg_tilemap, machine.gfx[0], 47); |
| 123 | 121 | } |
| r17673 | r17674 | |
|---|---|---|
| 3 | 3 | |
| 4 | 4 | /* BG Layer */ |
| 5 | 5 | |
| 6 | ||
| 6 | ||
| 7 | 7 | { |
| 8 | sderby_state *state = machine.driver_data<sderby_state>(); | |
| 9 | 8 | int tileno,colour; |
| 10 | 9 | |
| 11 | tileno = state->m_videoram[tile_index*2]; | |
| 12 | colour = state->m_videoram[tile_index*2+1] & 0x0f; | |
| 10 | tileno = m_videoram[tile_index*2]; | |
| 11 | colour = m_videoram[tile_index*2+1] & 0x0f; | |
| 13 | 12 | |
| 14 | SET_TILE_INFO(1,tileno,colour,0); | |
| 13 | SET_TILE_INFO_MEMBER(1,tileno,colour,0); | |
| 15 | 14 | } |
| 16 | 15 | |
| 17 | 16 | WRITE16_MEMBER(sderby_state::sderby_videoram_w) |
| r17673 | r17674 | |
| 23 | 22 | |
| 24 | 23 | /* MD Layer */ |
| 25 | 24 | |
| 26 | ||
| 25 | ||
| 27 | 26 | { |
| 28 | sderby_state *state = machine.driver_data<sderby_state>(); | |
| 29 | 27 | int tileno,colour; |
| 30 | 28 | |
| 31 | tileno = state->m_md_videoram[tile_index*2]; | |
| 32 | colour = state->m_md_videoram[tile_index*2+1] & 0x0f; | |
| 29 | tileno = m_md_videoram[tile_index*2]; | |
| 30 | colour = m_md_videoram[tile_index*2+1] & 0x0f; | |
| 33 | 31 | |
| 34 | SET_TILE_INFO(1,tileno,colour+16,0); | |
| 32 | SET_TILE_INFO_MEMBER(1,tileno,colour+16,0); | |
| 35 | 33 | } |
| 36 | 34 | |
| 37 | 35 | WRITE16_MEMBER(sderby_state::sderby_md_videoram_w) |
| r17673 | r17674 | |
| 43 | 41 | |
| 44 | 42 | /* FG Layer */ |
| 45 | 43 | |
| 46 | ||
| 44 | ||
| 47 | 45 | { |
| 48 | sderby_state *state = machine.driver_data<sderby_state>(); | |
| 49 | 46 | int tileno,colour; |
| 50 | 47 | |
| 51 | tileno = state->m_fg_videoram[tile_index*2]; | |
| 52 | colour = state->m_fg_videoram[tile_index*2+1] & 0x0f; | |
| 48 | tileno = m_fg_videoram[tile_index*2]; | |
| 49 | colour = m_fg_videoram[tile_index*2+1] & 0x0f; | |
| 53 | 50 | |
| 54 | SET_TILE_INFO(0,tileno,colour+32,0); | |
| 51 | SET_TILE_INFO_MEMBER(0,tileno,colour+32,0); | |
| 55 | 52 | } |
| 56 | 53 | |
| 57 | 54 | WRITE16_MEMBER(sderby_state::sderby_fg_videoram_w) |
| r17673 | r17674 | |
| 96 | 93 | { |
| 97 | 94 | sderby_state *state = machine.driver_data<sderby_state>(); |
| 98 | 95 | |
| 99 | state->m_tilemap = tilemap_create(machine, get_sderby_tile_info,TILEMAP_SCAN_ROWS, 16, 16,32,32); | |
| 100 | state->m_md_tilemap = tilemap_create(machine, get_sderby_md_tile_info,TILEMAP_SCAN_ROWS, 16, 16,32,32); | |
| 96 | state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sderby_state::get_sderby_tile_info),state),TILEMAP_SCAN_ROWS, 16, 16,32,32); | |
| 97 | state->m_md_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sderby_state::get_sderby_md_tile_info),state),TILEMAP_SCAN_ROWS, 16, 16,32,32); | |
| 101 | 98 | |
| 102 | 99 | state->m_md_tilemap->set_transparent_pen(0); |
| 103 | 100 | |
| 104 | state->m_fg_tilemap = tilemap | |
| 101 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sderby_state::get_sderby_fg_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,32); | |
| 105 | 102 | state->m_fg_tilemap->set_transparent_pen(0); |
| 106 | 103 | } |
| 107 | 104 |
| r17673 | r17674 | |
|---|---|---|
| 27 | 27 | m_clown_y = 240 - data; |
| 28 | 28 | } |
| 29 | 29 | |
| 30 | ||
| 30 | ||
| 31 | 31 | { |
| 32 | circus_state *state = machine.driver_data<circus_state>(); | |
| 33 | int code = state->m_videoram[tile_index]; | |
| 32 | int code = m_videoram[tile_index]; | |
| 34 | 33 | |
| 35 | SET_TILE_INFO(0, code, 0, 0); | |
| 34 | SET_TILE_INFO_MEMBER(0, code, 0, 0); | |
| 36 | 35 | } |
| 37 | 36 | |
| 38 | 37 | VIDEO_START( circus ) |
| 39 | 38 | { |
| 40 | 39 | circus_state *state = machine.driver_data<circus_state>(); |
| 41 | state->m_bg_tilemap = tilemap | |
| 40 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(circus_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 42 | 41 | } |
| 43 | 42 | |
| 44 | 43 | static void draw_line( bitmap_ind16 &bitmap, const rectangle &cliprect, int x1, int y1, int x2, int y2, int dotted ) |
| r17673 | r17674 | |
|---|---|---|
| 111 | 111 | return Checksum; |
| 112 | 112 | } |
| 113 | 113 | |
| 114 | ||
| 114 | ||
| 115 | 115 | { |
| 116 | zac2650_state *state = machine.driver_data<zac2650_state>(); | |
| 117 | UINT8 *videoram = state->m_videoram; | |
| 116 | UINT8 *videoram = m_videoram; | |
| 118 | 117 | int code = videoram[tile_index]; |
| 119 | 118 | |
| 120 | SET_TILE_INFO(0, code, 0, 0); | |
| 119 | SET_TILE_INFO_MEMBER(0, code, 0, 0); | |
| 121 | 120 | } |
| 122 | 121 | |
| 123 | 122 | VIDEO_START( tinvader ) |
| 124 | 123 | { |
| 125 | 124 | zac2650_state *state = machine.driver_data<zac2650_state>(); |
| 126 | state->m_bg_tilemap = tilemap | |
| 125 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(zac2650_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, | |
| 127 | 126 | 24, 24, 32, 32); |
| 128 | 127 | |
| 129 | 128 | machine.primary_screen->register_screen_bitmap(state->m_bitmap); |
| r17673 | r17674 | |
|---|---|---|
| 16 | 16 | |
| 17 | 17 | ***************************************************************************/ |
| 18 | 18 | |
| 19 | ||
| 19 | ||
| 20 | 20 | { |
| 21 | vastar_state *state = machine.driver_data<vastar_state>(); | |
| 22 | UINT8 *videoram = state->m_fgvideoram; | |
| 21 | UINT8 *videoram = m_fgvideoram; | |
| 23 | 22 | int code, color; |
| 24 | 23 | |
| 25 | 24 | code = videoram[tile_index + 0x800] | (videoram[tile_index + 0x400] << 8); |
| 26 | 25 | color = videoram[tile_index]; |
| 27 | SET_TILE_INFO( | |
| 26 | SET_TILE_INFO_MEMBER( | |
| 28 | 27 | 0, |
| 29 | 28 | code, |
| 30 | 29 | color & 0x3f, |
| 31 | 30 | 0); |
| 32 | 31 | } |
| 33 | 32 | |
| 34 | ||
| 33 | ||
| 35 | 34 | { |
| 36 | vastar_state *state = machine.driver_data<vastar_state>(); | |
| 37 | UINT8 *videoram = state->m_bg1videoram; | |
| 35 | UINT8 *videoram = m_bg1videoram; | |
| 38 | 36 | int code, color; |
| 39 | 37 | |
| 40 | 38 | code = videoram[tile_index + 0x800] | (videoram[tile_index] << 8); |
| 41 | 39 | color = videoram[tile_index + 0xc00]; |
| 42 | SET_TILE_INFO( | |
| 40 | SET_TILE_INFO_MEMBER( | |
| 43 | 41 | 4, |
| 44 | 42 | code, |
| 45 | 43 | color & 0x3f, |
| 46 | 44 | 0); |
| 47 | 45 | } |
| 48 | 46 | |
| 49 | ||
| 47 | ||
| 50 | 48 | { |
| 51 | vastar_state *state = machine.driver_data<vastar_state>(); | |
| 52 | UINT8 *videoram = state->m_bg2videoram; | |
| 49 | UINT8 *videoram = m_bg2videoram; | |
| 53 | 50 | int code, color; |
| 54 | 51 | |
| 55 | 52 | code = videoram[tile_index + 0x800] | (videoram[tile_index] << 8); |
| 56 | 53 | color = videoram[tile_index + 0xc00]; |
| 57 | SET_TILE_INFO( | |
| 54 | SET_TILE_INFO_MEMBER( | |
| 58 | 55 | 3, |
| 59 | 56 | code, |
| 60 | 57 | color & 0x3f, |
| r17673 | r17674 | |
| 72 | 69 | { |
| 73 | 70 | vastar_state *state = machine.driver_data<vastar_state>(); |
| 74 | 71 | |
| 75 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 76 | state->m_bg1_tilemap = tilemap_create(machine, get_bg1_tile_info,TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 77 | state->m_bg2_tilemap = tilemap_create(machine, get_bg2_tile_info,TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 72 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(vastar_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 73 | state->m_bg1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(vastar_state::get_bg1_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 74 | state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(vastar_state::get_bg2_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 78 | 75 | |
| 79 | 76 | state->m_fg_tilemap->set_transparent_pen(0); |
| 80 | 77 | state->m_bg1_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 159 | 159 | m_bg_tilemap->mark_tile_dirty(offset); |
| 160 | 160 | } |
| 161 | 161 | |
| 162 | ||
| 162 | ||
| 163 | 163 | { |
| 164 | taotaido_state *state = machine.driver_data<taotaido_state>(); | |
| 165 | int code = state->m_bgram[tile_index]&0x01ff; | |
| 166 | int bank = (state->m_bgram[tile_index]&0x0e00)>>9; | |
| 167 | int col = (state->m_bgram[tile_index]&0xf000)>>12; | |
| 164 | int code = m_bgram[tile_index]&0x01ff; | |
| 165 | int bank = (m_bgram[tile_index]&0x0e00)>>9; | |
| 166 | int col = (m_bgram[tile_index]&0xf000)>>12; | |
| 168 | 167 | |
| 169 | code |= | |
| 168 | code |= | |
| 170 | 169 | |
| 171 | SET_TILE_INFO( | |
| 170 | SET_TILE_INFO_MEMBER( | |
| 172 | 171 | 1, |
| 173 | 172 | code, |
| 174 | 173 | col, |
| 175 | 174 | 0); |
| 176 | 175 | } |
| 177 | 176 | |
| 178 | ||
| 177 | ||
| 179 | 178 | { |
| 180 | 179 | /* logical (col,row) -> memory offset */ |
| 181 | 180 | return row*0x40 + (col&0x3f) + ((col&0x40)<<6); |
| r17673 | r17674 | |
| 184 | 183 | VIDEO_START(taotaido) |
| 185 | 184 | { |
| 186 | 185 | taotaido_state *state = machine.driver_data<taotaido_state>(); |
| 187 | state->m_bg_tilemap = tilemap | |
| 186 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(taotaido_state::taotaido_bg_tile_info),state),tilemap_mapper_delegate(FUNC(taotaido_state::taotaido_tilemap_scan_rows),state),16,16,128,64); | |
| 188 | 187 | |
| 189 | 188 | state->m_spriteram_old = auto_alloc_array(machine, UINT16, 0x2000/2); |
| 190 | 189 | state->m_spriteram_older = auto_alloc_array(machine, UINT16, 0x2000/2); |
| r17673 | r17674 | |
|---|---|---|
| 17 | 17 | * |
| 18 | 18 | *************************************/ |
| 19 | 19 | |
| 20 | ||
| 20 | ||
| 21 | 21 | { |
| 22 | relief_state *state = machine.driver_data<relief_state>(); | |
| 23 | UINT16 data1 = state->m_playfield[tile_index]; | |
| 24 | UINT16 data2 = state->m_playfield_upper[tile_index] & 0xff; | |
| 22 | UINT16 data1 = m_playfield[tile_index]; | |
| 23 | UINT16 data2 = m_playfield_upper[tile_index] & 0xff; | |
| 25 | 24 | int code = data1 & 0x7fff; |
| 26 | 25 | int color = 0x20 + (data2 & 0x0f); |
| 27 | SET_TILE_INFO(0, code, color, (data1 >> 15) & 1); | |
| 26 | SET_TILE_INFO_MEMBER(0, code, color, (data1 >> 15) & 1); | |
| 28 | 27 | } |
| 29 | 28 | |
| 30 | 29 | |
| 31 | ||
| 30 | ||
| 32 | 31 | { |
| 33 | relief_state *state = machine.driver_data<relief_state>(); | |
| 34 | UINT16 data1 = state->m_playfield2[tile_index]; | |
| 35 | UINT16 data2 = state->m_playfield_upper[tile_index] >> 8; | |
| 32 | UINT16 data1 = m_playfield2[tile_index]; | |
| 33 | UINT16 data2 = m_playfield_upper[tile_index] >> 8; | |
| 36 | 34 | int code = data1 & 0x7fff; |
| 37 | 35 | int color = data2 & 0x0f; |
| 38 | SET_TILE_INFO(0, code, color, (data1 >> 15) & 1); | |
| 36 | SET_TILE_INFO_MEMBER(0, code, color, (data1 >> 15) & 1); | |
| 39 | 37 | } |
| 40 | 38 | |
| 41 | 39 | |
| r17673 | r17674 | |
| 90 | 88 | machine.gfx[1]->set_granularity(16); |
| 91 | 89 | |
| 92 | 90 | /* initialize the playfield */ |
| 93 | state->m_playfield_tilemap = tilemap | |
| 91 | state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(relief_state::get_playfield_tile_info),state), TILEMAP_SCAN_COLS, 8,8, 64,64); | |
| 94 | 92 | |
| 95 | 93 | /* initialize the second playfield */ |
| 96 | state->m_playfield2_tilemap = tilemap | |
| 94 | state->m_playfield2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(relief_state::get_playfield2_tile_info),state), TILEMAP_SCAN_COLS, 8,8, 64,64); | |
| 97 | 95 | state->m_playfield2_tilemap->set_transparent_pen(0); |
| 98 | 96 | |
| 99 | 97 | /* initialize the motion objects */ |
| r17673 | r17674 | |
|---|---|---|
| 420 | 420 | tileinfo.pen_mask = (extra_planes << 4) | 0x0f; |
| 421 | 421 | } |
| 422 | 422 | |
| 423 | ||
| 423 | ||
| 424 | 424 | { |
| 425 | taito_f3_state *state = machine.driver_data<taito_f3_state>(); | |
| 426 | get_tile_info(machine,tileinfo,tile_index,state->m_f3_pf_data_1); | |
| 425 | get_tile_info(machine(),tileinfo,tile_index,m_f3_pf_data_1); | |
| 427 | 426 | } |
| 428 | 427 | |
| 429 | ||
| 428 | ||
| 430 | 429 | { |
| 431 | taito_f3_state *state = machine.driver_data<taito_f3_state>(); | |
| 432 | get_tile_info(machine,tileinfo,tile_index,state->m_f3_pf_data_2); | |
| 430 | get_tile_info(machine(),tileinfo,tile_index,m_f3_pf_data_2); | |
| 433 | 431 | } |
| 434 | 432 | |
| 435 | ||
| 433 | ||
| 436 | 434 | { |
| 437 | taito_f3_state *state = machine.driver_data<taito_f3_state>(); | |
| 438 | get_tile_info(machine,tileinfo,tile_index,state->m_f3_pf_data_3); | |
| 435 | get_tile_info(machine(),tileinfo,tile_index,m_f3_pf_data_3); | |
| 439 | 436 | } |
| 440 | 437 | |
| 441 | ||
| 438 | ||
| 442 | 439 | { |
| 443 | taito_f3_state *state = machine.driver_data<taito_f3_state>(); | |
| 444 | get_tile_info(machine,tileinfo,tile_index,state->m_f3_pf_data_4); | |
| 440 | get_tile_info(machine(),tileinfo,tile_index,m_f3_pf_data_4); | |
| 445 | 441 | } |
| 446 | 442 | |
| 447 | ||
| 443 | ||
| 448 | 444 | { |
| 449 | taito_f3_state *state = machine.driver_data<taito_f3_state>(); | |
| 450 | get_tile_info(machine,tileinfo,tile_index,state->m_f3_pf_data_5); | |
| 445 | get_tile_info(machine(),tileinfo,tile_index,m_f3_pf_data_5); | |
| 451 | 446 | } |
| 452 | 447 | |
| 453 | ||
| 448 | ||
| 454 | 449 | { |
| 455 | taito_f3_state *state = machine.driver_data<taito_f3_state>(); | |
| 456 | get_tile_info(machine,tileinfo,tile_index,state->m_f3_pf_data_6); | |
| 450 | get_tile_info(machine(),tileinfo,tile_index,m_f3_pf_data_6); | |
| 457 | 451 | } |
| 458 | 452 | |
| 459 | ||
| 453 | ||
| 460 | 454 | { |
| 461 | taito_f3_state *state = machine.driver_data<taito_f3_state>(); | |
| 462 | get_tile_info(machine,tileinfo,tile_index,state->m_f3_pf_data_7); | |
| 455 | get_tile_info(machine(),tileinfo,tile_index,m_f3_pf_data_7); | |
| 463 | 456 | } |
| 464 | 457 | |
| 465 | ||
| 458 | ||
| 466 | 459 | { |
| 467 | taito_f3_state *state = machine.driver_data<taito_f3_state>(); | |
| 468 | get_tile_info(machine,tileinfo,tile_index,state->m_f3_pf_data_8); | |
| 460 | get_tile_info(machine(),tileinfo,tile_index,m_f3_pf_data_8); | |
| 469 | 461 | } |
| 470 | 462 | |
| 471 | 463 | |
| 472 | ||
| 464 | ||
| 473 | 465 | { |
| 474 | taito_f3_state *state = machine.driver_data<taito_f3_state>(); | |
| 475 | 466 | int vram_tile; |
| 476 | 467 | int flags=0; |
| 477 | 468 | |
| 478 | vram_tile = ( | |
| 469 | vram_tile = ( | |
| 479 | 470 | |
| 480 | 471 | if (vram_tile&0x0100) flags|=TILE_FLIPX; |
| 481 | 472 | if (vram_tile&0x8000) flags|=TILE_FLIPY; |
| 482 | 473 | |
| 483 | SET_TILE_INFO( | |
| 474 | SET_TILE_INFO_MEMBER( | |
| 484 | 475 | 0, |
| 485 | 476 | vram_tile&0xff, |
| 486 | 477 | (vram_tile>>9)&0x3f, |
| 487 | 478 | flags); |
| 488 | 479 | } |
| 489 | 480 | |
| 490 | ||
| 481 | ||
| 491 | 482 | { |
| 492 | taito_f3_state *state = machine.driver_data<taito_f3_state>(); | |
| 493 | 483 | int vram_tile,col_off; |
| 494 | 484 | int flags=0; |
| 495 | int y_offs=(state->m_f3_control_1[5]&0x1ff); | |
| 496 | if (state->m_flipscreen) y_offs+=0x100; | |
| 485 | int y_offs=(m_f3_control_1[5]&0x1ff); | |
| 486 | if (m_flipscreen) y_offs+=0x100; | |
| 497 | 487 | |
| 498 | 488 | /* Colour is shared with VRAM layer */ |
| 499 | 489 | if ((((tile_index%32)*8 + y_offs)&0x1ff)>0xff) |
| r17673 | r17674 | |
| 501 | 491 | else |
| 502 | 492 | col_off=((tile_index%32)*0x40)+((tile_index&0xfe0)>>5); |
| 503 | 493 | |
| 504 | vram_tile = ( | |
| 494 | vram_tile = ( | |
| 505 | 495 | |
| 506 | 496 | if (vram_tile&0x0100) flags|=TILE_FLIPX; |
| 507 | 497 | if (vram_tile&0x8000) flags|=TILE_FLIPY; |
| 508 | 498 | |
| 509 | SET_TILE_INFO( | |
| 499 | SET_TILE_INFO_MEMBER( | |
| 510 | 500 | 3, |
| 511 | 501 | tile_index, |
| 512 | 502 | (vram_tile>>9)&0x3f, |
| r17673 | r17674 | |
| 588 | 578 | state->m_spriteram = auto_alloc_array_clear(machine, UINT16, 0x10000/2); |
| 589 | 579 | |
| 590 | 580 | if (state->m_f3_game_config->extend) { |
| 591 | state->m_pf1_tilemap = tilemap_create(machine, get_tile_info1,TILEMAP_SCAN_ROWS,16,16,64,32); | |
| 592 | state->m_pf2_tilemap = tilemap_create(machine, get_tile_info2,TILEMAP_SCAN_ROWS,16,16,64,32); | |
| 593 | state->m_pf3_tilemap = tilemap_create(machine, get_tile_info3,TILEMAP_SCAN_ROWS,16,16,64,32); | |
| 594 | state->m_pf4_tilemap = tilemap_create(machine, get_tile_info4,TILEMAP_SCAN_ROWS,16,16,64,32); | |
| 581 | state->m_pf1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info1),state),TILEMAP_SCAN_ROWS,16,16,64,32); | |
| 582 | state->m_pf2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info2),state),TILEMAP_SCAN_ROWS,16,16,64,32); | |
| 583 | state->m_pf3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info3),state),TILEMAP_SCAN_ROWS,16,16,64,32); | |
| 584 | state->m_pf4_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info4),state),TILEMAP_SCAN_ROWS,16,16,64,32); | |
| 595 | 585 | |
| 596 | 586 | state->m_f3_pf_data_1=state->m_f3_pf_data+(0x0000/2); |
| 597 | 587 | state->m_f3_pf_data_2=state->m_f3_pf_data+(0x2000/2); |
| r17673 | r17674 | |
| 609 | 599 | |
| 610 | 600 | |
| 611 | 601 | } else { |
| 612 | state->m_pf1_tilemap = tilemap_create(machine, get_tile_info1,TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 613 | state->m_pf2_tilemap = tilemap_create(machine, get_tile_info2,TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 614 | state->m_pf3_tilemap = tilemap_create(machine, get_tile_info3,TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 615 | state->m_pf4_tilemap = tilemap_create(machine, get_tile_info4,TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 616 | state->m_pf5_tilemap = tilemap_create(machine, get_tile_info5,TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 617 | state->m_pf6_tilemap = tilemap_create(machine, get_tile_info6,TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 618 | state->m_pf7_tilemap = tilemap_create(machine, get_tile_info7,TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 619 | state->m_pf8_tilemap = tilemap_create(machine, get_tile_info8,TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 602 | state->m_pf1_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info1),state),TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 603 | state->m_pf2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info2),state),TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 604 | state->m_pf3_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info3),state),TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 605 | state->m_pf4_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info4),state),TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 606 | state->m_pf5_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info5),state),TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 607 | state->m_pf6_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info6),state),TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 608 | state->m_pf7_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info7),state),TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 609 | state->m_pf8_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info8),state),TILEMAP_SCAN_ROWS,16,16,32,32); | |
| 620 | 610 | |
| 621 | 611 | state->m_f3_pf_data_1=state->m_f3_pf_data+(0x0000/2); |
| 622 | 612 | state->m_f3_pf_data_2=state->m_f3_pf_data+(0x1000/2); |
| r17673 | r17674 | |
| 644 | 634 | state->m_spriteram16_buffered = auto_alloc_array(machine, UINT16, 0x10000/2); |
| 645 | 635 | state->m_spritelist = auto_alloc_array(machine, struct tempsprite, 0x400); |
| 646 | 636 | state->m_sprite_end = state->m_spritelist; |
| 647 | state->m_vram_layer = tilemap_create(machine, get_tile_info_vram,TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 648 | state->m_pixel_layer = tilemap_create(machine, get_tile_info_pixel,TILEMAP_SCAN_COLS,8,8,64,32); | |
| 637 | state->m_vram_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info_vram),state),TILEMAP_SCAN_ROWS,8,8,64,64); | |
| 638 | state->m_pixel_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info_pixel),state),TILEMAP_SCAN_COLS,8,8,64,32); | |
| 649 | 639 | state->m_pf_line_inf = auto_alloc_array(machine, struct f3_playfield_line_inf, 5); |
| 650 | 640 | state->m_sa_line_inf = auto_alloc_array(machine, struct f3_spritealpha_line_inf, 1); |
| 651 | 641 | machine.primary_screen->register_screen_bitmap(state->m_pri_alp_bitmap); |
| r17673 | r17674 | |
|---|---|---|
| 101 | 101 | |
| 102 | 102 | ***************************************************************************/ |
| 103 | 103 | |
| 104 | ||
| 104 | ||
| 105 | 105 | { |
| 106 | gaelco2_state *state = machine.driver_data<gaelco2_state>(); | |
| 107 | int data = state->m_videoram[(((state->m_vregs[0] >> 9) & 0x07)*0x2000/2) + (tile_index << 1)]; | |
| 108 | int data2 = state->m_videoram[(((state->m_vregs[0] >> 9) & 0x07)*0x2000/2) + ((tile_index << 1) + 1)]; | |
| 106 | int data = m_videoram[(((m_vregs[0] >> 9) & 0x07)*0x2000/2) + (tile_index << 1)]; | |
| 107 | int data2 = m_videoram[(((m_vregs[0] >> 9) & 0x07)*0x2000/2) + ((tile_index << 1) + 1)]; | |
| 109 | 108 | int code = ((data & 0x07) << 16) | (data2 & 0xffff); |
| 110 | 109 | |
| 111 | SET_TILE_INFO(0, code, ((data >> 9) & 0x7f), TILE_FLIPXY((data >> 6) & 0x03)); | |
| 110 | SET_TILE_INFO_MEMBER(0, code, ((data >> 9) & 0x7f), TILE_FLIPXY((data >> 6) & 0x03)); | |
| 112 | 111 | } |
| 113 | 112 | |
| 114 | ||
| 113 | ||
| 115 | 114 | { |
| 116 | gaelco2_state *state = machine.driver_data<gaelco2_state>(); | |
| 117 | int data = state->m_videoram[(((state->m_vregs[1] >> 9) & 0x07)*0x2000/2) + (tile_index << 1)]; | |
| 118 | int data2 = state->m_videoram[(((state->m_vregs[1] >> 9) & 0x07)*0x2000/2) + ((tile_index << 1) + 1)]; | |
| 115 | int data = m_videoram[(((m_vregs[1] >> 9) & 0x07)*0x2000/2) + (tile_index << 1)]; | |
| 116 | int data2 = m_videoram[(((m_vregs[1] >> 9) & 0x07)*0x2000/2) + ((tile_index << 1) + 1)]; | |
| 119 | 117 | int code = ((data & 0x07) << 16) | (data2 & 0xffff); |
| 120 | 118 | |
| 121 | SET_TILE_INFO(0, code, ((data >> 9) & 0x7f), TILE_FLIPXY((data >> 6) & 0x03)); | |
| 119 | SET_TILE_INFO_MEMBER(0, code, ((data >> 9) & 0x7f), TILE_FLIPXY((data >> 6) & 0x03)); | |
| 122 | 120 | } |
| 123 | 121 | |
| 124 | 122 | |
| r17673 | r17674 | |
| 144 | 142 | |
| 145 | 143 | ***************************************************************************/ |
| 146 | 144 | |
| 147 | ||
| 145 | ||
| 148 | 146 | { |
| 149 | gaelco2_state *state = machine.driver_data<gaelco2_state>(); | |
| 150 | int data = state->m_videoram[(((state->m_vregs[0] >> 9) & 0x07)*0x2000/2) + (tile_index << 1)]; | |
| 151 | int data2 = state->m_videoram[(((state->m_vregs[0] >> 9) & 0x07)*0x2000/2) + ((tile_index << 1) + 1)]; | |
| 147 | int data = m_videoram[(((m_vregs[0] >> 9) & 0x07)*0x2000/2) + (tile_index << 1)]; | |
| 148 | int data2 = m_videoram[(((m_vregs[0] >> 9) & 0x07)*0x2000/2) + ((tile_index << 1) + 1)]; | |
| 152 | 149 | int code = ((data & 0x07) << 16) | (data2 & 0xffff); |
| 153 | 150 | |
| 154 | SET_TILE_INFO(0, code, ((data >> 9) & 0x3f), TILE_FLIPXY((data >> 6) & 0x03)); | |
| 151 | SET_TILE_INFO_MEMBER(0, code, ((data >> 9) & 0x3f), TILE_FLIPXY((data >> 6) & 0x03)); | |
| 155 | 152 | } |
| 156 | 153 | |
| 157 | ||
| 154 | ||
| 158 | 155 | { |
| 159 | gaelco2_state *state = machine.driver_data<gaelco2_state>(); | |
| 160 | int data = state->m_videoram[(((state->m_vregs[1] >> 9) & 0x07)*0x2000/2) + (tile_index << 1)]; | |
| 161 | int data2 = state->m_videoram[(((state->m_vregs[1] >> 9) & 0x07)*0x2000/2) + ((tile_index << 1) + 1)]; | |
| 156 | int data = m_videoram[(((m_vregs[1] >> 9) & 0x07)*0x2000/2) + (tile_index << 1)]; | |
| 157 | int data2 = m_videoram[(((m_vregs[1] >> 9) & 0x07)*0x2000/2) + ((tile_index << 1) + 1)]; | |
| 162 | 158 | int code = ((data & 0x07) << 16) | (data2 & 0xffff); |
| 163 | 159 | |
| 164 | SET_TILE_INFO(0, code, 0x40 + ((data >> 9) & 0x3f), TILE_FLIPXY((data >> 6) & 0x03)); | |
| 160 | SET_TILE_INFO_MEMBER(0, code, 0x40 + ((data >> 9) & 0x3f), TILE_FLIPXY((data >> 6) & 0x03)); | |
| 165 | 161 | } |
| 166 | 162 | |
| 167 | 163 | |
| r17673 | r17674 | |
| 266 | 262 | state->m_videoram = state->m_spriteram->live(); |
| 267 | 263 | |
| 268 | 264 | /* create tilemaps */ |
| 269 | state->m_pant[0] = tilemap_create(machine, get_tile_info_gaelco2_screen0,TILEMAP_SCAN_ROWS,16,16,64,32); | |
| 270 | state->m_pant[1] = tilemap_create(machine, get_tile_info_gaelco2_screen1,TILEMAP_SCAN_ROWS,16,16,64,32); | |
| 265 | state->m_pant[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaelco2_state::get_tile_info_gaelco2_screen0),state),TILEMAP_SCAN_ROWS,16,16,64,32); | |
| 266 | state->m_pant[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaelco2_state::get_tile_info_gaelco2_screen1),state),TILEMAP_SCAN_ROWS,16,16,64,32); | |
| 271 | 267 | |
| 272 | 268 | /* set tilemap properties */ |
| 273 | 269 | state->m_pant[0]->set_transparent_pen(0); |
| r17673 | r17674 | |
| 287 | 283 | state->m_videoram = state->m_spriteram->live(); |
| 288 | 284 | |
| 289 | 285 | /* create tilemaps */ |
| 290 | state->m_pant[0] = tilemap_create(machine, get_tile_info_gaelco2_screen0_dual,TILEMAP_SCAN_ROWS,16,16,64,32); | |
| 291 | state->m_pant[1] = tilemap_create(machine, get_tile_info_gaelco2_screen1_dual,TILEMAP_SCAN_ROWS,16,16,64,32); | |
| 286 | state->m_pant[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaelco2_state::get_tile_info_gaelco2_screen0_dual),state),TILEMAP_SCAN_ROWS,16,16,64,32); | |
| 287 | state->m_pant[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(gaelco2_state::get_tile_info_gaelco2_screen1_dual),state),TILEMAP_SCAN_ROWS,16,16,64,32); | |
| 292 | 288 | |
| 293 | 289 | /* set tilemap properties */ |
| 294 | 290 | state->m_pant[0]->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 43 | 43 | palette_set_color(machine(), offset, MAKE_RGB(r,g,b)); |
| 44 | 44 | } |
| 45 | 45 | |
| 46 | ||
| 46 | ||
| 47 | 47 | { |
| 48 | homerun_state *state = machine.driver_data<homerun_state>(); | |
| 49 | int tileno = (state->m_videoram[tile_index]) + ((state->m_videoram[tile_index + 0x1000] & 0x38) << 5) + ((state->m_gfx_ctrl & 1) << 11); | |
| 50 | int palno = (state->m_videoram[tile_index + 0x1000] & 0x07); | |
| 48 | int tileno = (m_videoram[tile_index]) + ((m_videoram[tile_index + 0x1000] & 0x38) << 5) + ((m_gfx_ctrl & 1) << 11); | |
| 49 | int palno = (m_videoram[tile_index + 0x1000] & 0x07); | |
| 51 | 50 | |
| 52 | SET_TILE_INFO(0, tileno, palno, 0); | |
| 51 | SET_TILE_INFO_MEMBER(0, tileno, palno, 0); | |
| 53 | 52 | } |
| 54 | 53 | |
| 55 | 54 | VIDEO_START( homerun ) |
| 56 | 55 | { |
| 57 | 56 | homerun_state *state = machine.driver_data<homerun_state>(); |
| 58 | state->m_tilemap = tilemap | |
| 57 | state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(homerun_state::get_homerun_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 59 | 58 | } |
| 60 | 59 | |
| 61 | 60 | static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ) |
| r17673 | r17674 | |
|---|---|---|
| 58 | 58 | ***************************************************************************/ |
| 59 | 59 | |
| 60 | 60 | /* convert from 32x32 to 36x28 */ |
| 61 | ||
| 61 | ||
| 62 | 62 | { |
| 63 | 63 | int offs; |
| 64 | 64 | |
| r17673 | r17674 | |
| 72 | 72 | return offs; |
| 73 | 73 | } |
| 74 | 74 | |
| 75 | ||
| 75 | ||
| 76 | 76 | { |
| 77 | baraduke_state *state = machine.driver_data<baraduke_state>(); | |
| 78 | SET_TILE_INFO( | |
| 77 | SET_TILE_INFO_MEMBER( | |
| 79 | 78 | 0, |
| 80 | state->m_textram[tile_index], | |
| 81 | (state->m_textram[tile_index+0x400] << 2) & 0x1ff, | |
| 79 | m_textram[tile_index], | |
| 80 | (m_textram[tile_index+0x400] << 2) & 0x1ff, | |
| 82 | 81 | 0); |
| 83 | 82 | } |
| 84 | 83 | |
| 85 | ||
| 84 | ||
| 86 | 85 | { |
| 87 | baraduke_state *state = machine.driver_data<baraduke_state>(); | |
| 88 | int code = state->m_videoram[2*tile_index]; | |
| 89 | int attr = state->m_videoram[2*tile_index + 1]; | |
| 86 | int code = m_videoram[2*tile_index]; | |
| 87 | int attr = m_videoram[2*tile_index + 1]; | |
| 90 | 88 | |
| 91 | SET_TILE_INFO( | |
| 89 | SET_TILE_INFO_MEMBER( | |
| 92 | 90 | 1, |
| 93 | 91 | code + ((attr & 0x03) << 8), |
| 94 | 92 | attr, |
| 95 | 93 | 0); |
| 96 | 94 | } |
| 97 | 95 | |
| 98 | ||
| 96 | ||
| 99 | 97 | { |
| 100 | baraduke_state *state = machine.driver_data<baraduke_state>(); | |
| 101 | int code = state->m_videoram[0x1000 + 2*tile_index]; | |
| 102 | int attr = state->m_videoram[0x1000 + 2*tile_index + 1]; | |
| 98 | int code = m_videoram[0x1000 + 2*tile_index]; | |
| 99 | int attr = m_videoram[0x1000 + 2*tile_index + 1]; | |
| 103 | 100 | |
| 104 | SET_TILE_INFO( | |
| 101 | SET_TILE_INFO_MEMBER( | |
| 105 | 102 | 2, |
| 106 | 103 | code + ((attr & 0x03) << 8), |
| 107 | 104 | attr, |
| r17673 | r17674 | |
| 119 | 116 | VIDEO_START( baraduke ) |
| 120 | 117 | { |
| 121 | 118 | baraduke_state *state = machine.driver_data<baraduke_state>(); |
| 122 | state->m_tx_tilemap = tilemap_create(machine, tx_get_tile_info,tx_tilemap_scan,8,8,36,28); | |
| 123 | state->m_bg_tilemap[0] = tilemap_create(machine, get_tile_info0,TILEMAP_SCAN_ROWS,8,8,64,32); | |
| 124 | state->m_bg_tilemap[1] = tilemap_create(machine, get_tile_info1,TILEMAP_SCAN_ROWS,8,8,64,32); | |
| 119 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(baraduke_state::tx_get_tile_info),state),tilemap_mapper_delegate(FUNC(baraduke_state::tx_tilemap_scan),state),8,8,36,28); | |
| 120 | state->m_bg_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(baraduke_state::get_tile_info0),state),TILEMAP_SCAN_ROWS,8,8,64,32); | |
| 121 | state->m_bg_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(baraduke_state::get_tile_info1),state),TILEMAP_SCAN_ROWS,8,8,64,32); | |
| 125 | 122 | |
| 126 | 123 | state->m_tx_tilemap->set_transparent_pen(3); |
| 127 | 124 | state->m_bg_tilemap[0]->set_transparent_pen(7); |
| r17673 | r17674 | |
|---|---|---|
| 129 | 129 | |
| 130 | 130 | |
| 131 | 131 | |
| 132 | ||
| 132 | ||
| 133 | 133 | { |
| 134 | champbas_state *state = machine.driver_data<champbas_state>(); | |
| 135 | int code = state->m_bg_videoram[tile_index] | (state->m_gfx_bank << 8); | |
| 136 | int color = (state->m_bg_videoram[tile_index + 0x400] & 0x1f) | 0x20; | |
| 134 | int code = m_bg_videoram[tile_index] | (m_gfx_bank << 8); | |
| 135 | int color = (m_bg_videoram[tile_index + 0x400] & 0x1f) | 0x20; | |
| 137 | 136 | |
| 138 | SET_TILE_INFO(0, code, color, 0); | |
| 137 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 139 | 138 | } |
| 140 | 139 | |
| 141 | ||
| 140 | ||
| 142 | 141 | { |
| 143 | champbas_state *state = machine.driver_data<champbas_state>(); | |
| 144 | int code = state->m_bg_videoram[tile_index] | (state->m_gfx_bank << 8); | |
| 145 | int color = state->m_bg_videoram[tile_index + 0x400] & 0x0f; | |
| 142 | int code = m_bg_videoram[tile_index] | (m_gfx_bank << 8); | |
| 143 | int color = m_bg_videoram[tile_index + 0x400] & 0x0f; | |
| 146 | 144 | |
| 147 | SET_TILE_INFO(0, code, color, 0); | |
| 145 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 148 | 146 | } |
| 149 | 147 | |
| 150 | 148 | |
| r17673 | r17674 | |
| 152 | 150 | VIDEO_START( champbas ) |
| 153 | 151 | { |
| 154 | 152 | champbas_state *state = machine.driver_data<champbas_state>(); |
| 155 | state->m_bg_tilemap = tilemap | |
| 153 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(champbas_state::champbas_get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 156 | 154 | } |
| 157 | 155 | |
| 158 | 156 | VIDEO_START( exctsccr ) |
| 159 | 157 | { |
| 160 | 158 | champbas_state *state = machine.driver_data<champbas_state>(); |
| 161 | state->m_bg_tilemap = tilemap | |
| 159 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_del | |
| 162 | 160 | } |
| 163 | 161 | |
| 164 | 162 |
| r17673 | r17674 | |
|---|---|---|
| 113 | 113 | flip_screen_set(data & 0x80); |
| 114 | 114 | } |
| 115 | 115 | |
| 116 | ||
| 116 | ||
| 117 | 117 | { |
| 118 | ssozumo_state *state = machine.driver_data<ssozumo_state>(); | |
| 119 | int code = state->m_videoram[tile_index] + ((state->m_colorram[tile_index] & 0x08) << 5); | |
| 120 | int color = (state->m_colorram[tile_index] & 0x30) >> 4; | |
| 118 | int code = m_videoram[tile_index] + ((m_colorram[tile_index] & 0x08) << 5); | |
| 119 | int color = (m_colorram[tile_index] & 0x30) >> 4; | |
| 121 | 120 | int flags = ((tile_index % 32) >= 16) ? TILE_FLIPY : 0; |
| 122 | 121 | |
| 123 | SET_TILE_INFO(1, code, color, flags); | |
| 122 | SET_TILE_INFO_MEMBER(1, code, color, flags); | |
| 124 | 123 | } |
| 125 | 124 | |
| 126 | ||
| 125 | ||
| 127 | 126 | { |
| 128 | ssozumo_state *state = machine.driver_data<ssozumo_state>(); | |
| 129 | int code = state->m_videoram2[tile_index] + 256 * (state->m_colorram2[tile_index] & 0x07); | |
| 130 | int color = (state->m_colorram2[tile_index] & 0x30) >> 4; | |
| 127 | int code = m_videoram2[tile_index] + 256 * (m_colorram2[tile_index] & 0x07); | |
| 128 | int color = (m_colorram2[tile_index] & 0x30) >> 4; | |
| 131 | 129 | |
| 132 | SET_TILE_INFO(0, code, color, 0); | |
| 130 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 133 | 131 | } |
| 134 | 132 | |
| 135 | 133 | VIDEO_START( ssozumo ) |
| 136 | 134 | { |
| 137 | 135 | ssozumo_state *state = machine.driver_data<ssozumo_state>(); |
| 138 | 136 | |
| 139 | state->m_bg_tilemap = tilemap | |
| 137 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ssozumo_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS_FLIP_X, | |
| 140 | 138 | 16, 16, 16, 32); |
| 141 | 139 | |
| 142 | state->m_fg_tilemap = tilemap | |
| 140 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(ssozumo_state::get_fg_tile_info),state), TILEMAP_SCAN_COLS_FLIP_X, | |
| 143 | 141 | 8, 8, 32, 32); |
| 144 | 142 | |
| 145 | 143 | state->m_fg_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 26 | 26 | Byte 0: |
| 27 | 27 | pppppppp = picture index |
| 28 | 28 | */ |
| 29 | ||
| 29 | ||
| 30 | 30 | { |
| 31 | mcr_state *state = machine.driver_data<mcr_state>(); | |
| 32 | UINT8 *videoram = state->m_videoram; | |
| 33 | SET_TILE_INFO(0, videoram[tile_index], 0, 0); | |
| 31 | UINT8 *videoram = m_videoram; | |
| 32 | SET_TILE_INFO_MEMBER(0, videoram[tile_index], 0, 0); | |
| 34 | 33 | |
| 35 | 34 | /* sprite color base is constant 0x10 */ |
| 36 | 35 | tileinfo.category = 1; |
| r17673 | r17674 | |
| 50 | 49 | ------x- = X flip |
| 51 | 50 | -------p = picture index (high 1 bit) |
| 52 | 51 | */ |
| 53 | ||
| 52 | ||
| 54 | 53 | { |
| 55 | mcr_state *state = machine.driver_data<mcr_state>(); | |
| 56 | UINT8 *videoram = state->m_videoram; | |
| 54 | UINT8 *videoram = m_videoram; | |
| 57 | 55 | int data = videoram[tile_index * 2] | (videoram[tile_index * 2 + 1] << 8); |
| 58 | 56 | int code = data & 0x1ff; |
| 59 | 57 | int color = (data >> 11) & 3; |
| 60 | SET_TILE_INFO(0, code, color, TILE_FLIPYX((data >> 9) & 3)); | |
| 58 | SET_TILE_INFO_MEMBER(0, code, color, TILE_FLIPYX((data >> 9) & 3)); | |
| 61 | 59 | |
| 62 | 60 | /* sprite color base comes from the top 2 bits */ |
| 63 | 61 | tileinfo.category = (data >> 14) & 3; |
| r17673 | r17674 | |
| 77 | 75 | -----x-- = X flip |
| 78 | 76 | ------pp = picture index (high 2 bits) |
| 79 | 77 | */ |
| 80 | ||
| 78 | ||
| 81 | 79 | { |
| 82 | mcr_state *state = machine.driver_data<mcr_state>(); | |
| 83 | UINT8 *videoram = state->m_videoram; | |
| 80 | UINT8 *videoram = m_videoram; | |
| 84 | 81 | int data = videoram[tile_index * 2] | (videoram[tile_index * 2 + 1] << 8); |
| 85 | 82 | int code = data & 0x3ff; |
| 86 | 83 | int color = (data >> 12) & 3; |
| 87 | SET_TILE_INFO(0, code, color, TILE_FLIPYX((data >> 10) & 3)); | |
| 84 | SET_TILE_INFO_MEMBER(0, code, color, TILE_FLIPYX((data >> 10) & 3)); | |
| 88 | 85 | |
| 89 | 86 | /* sprite color base might come from the top 2 bits */ |
| 90 | 87 | tileinfo.category = (data >> 14) & 3; |
| r17673 | r17674 | |
| 100 | 97 | |
| 101 | 98 | VIDEO_START( mcr ) |
| 102 | 99 | { |
| 100 | mcr_state *state = machine.driver_data<mcr_state>(); | |
| 103 | 101 | /* the tilemap callback is based on the CPU board */ |
| 104 | 102 | switch (mcr_cpu_board) |
| 105 | 103 | { |
| 106 | 104 | case 90009: |
| 107 | bg_tilemap = tilemap | |
| 105 | bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mcr_state::mcr_90009_get_tile_info),state), TILEMAP_SCAN_ROWS, 16,16, 32,30); | |
| 108 | 106 | break; |
| 109 | 107 | |
| 110 | 108 | case 90010: |
| 111 | bg_tilemap = tilemap | |
| 109 | bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mcr_state::mcr_90010_get_tile_info),state), TILEMAP_SCAN_ROWS, 16,16, 32,30); | |
| 112 | 110 | break; |
| 113 | 111 | |
| 114 | 112 | case 91475: |
| 115 | bg_tilemap = tilemap | |
| 113 | bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mcr_state::mcr_90010_get_tile_info),state), TILEMAP_SCAN_ROWS, 16,16, 32,30); | |
| 116 | 114 | break; |
| 117 | 115 | |
| 118 | 116 | case 91490: |
| 119 | bg_tilemap = tilemap | |
| 117 | bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mcr_state::mcr_91490_get_tile_info),state), TILEMAP_SCAN_ROWS, 16,16, 32,30); | |
| 120 | 118 | break; |
| 121 | 119 | |
| 122 | 120 | default: |
| r17673 | r17674 | |
|---|---|---|
| 42 | 42 | |
| 43 | 43 | /*****************************************************************************/ |
| 44 | 44 | |
| 45 | ||
| 45 | ||
| 46 | 46 | { |
| 47 | m107_state *state = machine.driver_data<m107_state>(); | |
| 48 | 47 | pf_layer_info *layer = (pf_layer_info *)param; |
| 49 | 48 | int tile, attrib; |
| 50 | 49 | tile_index = 2 * tile_index + layer->vram_base; |
| 51 | 50 | |
| 52 | attrib = state->m_vram_data[tile_index + 1]; | |
| 53 | tile = state->m_vram_data[tile_index] + ((attrib & 0x1000) << 4); | |
| 51 | attrib = m_vram_data[tile_index + 1]; | |
| 52 | tile = m_vram_data[tile_index] + ((attrib & 0x1000) << 4); | |
| 54 | 53 | |
| 55 | SET_TILE_INFO( | |
| 54 | SET_TILE_INFO_MEMBER( | |
| 56 | 55 | 0, |
| 57 | 56 | tile, |
| 58 | 57 | attrib & 0x7f, |
| r17673 | r17674 | |
| 129 | 128 | pf_layer_info *layer = &state->m_pf_layer[laynum]; |
| 130 | 129 | |
| 131 | 130 | /* allocate a tilemaps per layer */ |
| 132 | layer->tmap = tilemap | |
| 131 | layer->tmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(m107_state::get_pf_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,64); | |
| 133 | 132 | |
| 134 | 133 | /* set the user data to point to the layer */ |
| 135 | 134 | layer->tmap->set_user_data(&state->m_pf_layer[laynum]); |
| r17673 | r17674 | |
|---|---|---|
| 471 | 471 | } |
| 472 | 472 | } |
| 473 | 473 | |
| 474 | ||
| 474 | ||
| 475 | 475 | { |
| 476 | twin16_state *state = machine.driver_data<twin16_state>(); | |
| 477 | const UINT16 *source = state->m_text_ram; | |
| 476 | const UINT16 *source = m_text_ram; | |
| 478 | 477 | int attr = source[tile_index]; |
| 479 | 478 | /* fedcba9876543210 |
| 480 | 479 | -x-------------- yflip |
| r17673 | r17674 | |
| 489 | 488 | if (attr&0x2000) flags|=TILE_FLIPX; |
| 490 | 489 | if (attr&0x4000) flags|=TILE_FLIPY; |
| 491 | 490 | |
| 492 | SET_TILE_INFO(0, code, color, flags); | |
| 491 | SET_TILE_INFO_MEMBER(0, code, color, flags); | |
| 493 | 492 | } |
| 494 | 493 | |
| 495 | 494 | VIDEO_START( twin16 ) |
| 496 | 495 | { |
| 497 | 496 | twin16_state *state = machine.driver_data<twin16_state>(); |
| 498 | state->m_text_tilemap = tilemap | |
| 497 | state->m_text_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(twin16_state::get_text_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 499 | 498 | state->m_text_tilemap->set_transparent_pen(0); |
| 500 | 499 | |
| 501 | 500 | palette_set_shadow_factor(machine,0.4); // screenshots estimate |
| r17673 | r17674 | |
|---|---|---|
| 149 | 149 | /* bit 6 - 7 unknown */ |
| 150 | 150 | } |
| 151 | 151 | |
| 152 | ||
| 152 | ||
| 153 | 153 | { |
| 154 | arkanoid_state *state = machine.driver_data<arkanoid_state>(); | |
| 155 | 154 | int offs = tile_index * 2; |
| 156 | int code = state->m_videoram[offs + 1] + ((state->m_videoram[offs] & 0x07) << 8) + 2048 * state->m_gfxbank; | |
| 157 | int color = ((state->m_videoram[offs] & 0xf8) >> 3) + 32 * state->m_palettebank; | |
| 155 | int code = m_videoram[offs + 1] + ((m_videoram[offs] & 0x07) << 8) + 2048 * m_gfxbank; | |
| 156 | int color = ((m_videoram[offs] & 0xf8) >> 3) + 32 * m_palettebank; | |
| 158 | 157 | |
| 159 | SET_TILE_INFO(0, code, color, 0); | |
| 158 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 160 | 159 | } |
| 161 | 160 | |
| 162 | 161 | VIDEO_START( arkanoid ) |
| 163 | 162 | { |
| 164 | 163 | arkanoid_state *state = machine.driver_data<arkanoid_state>(); |
| 165 | 164 | |
| 166 | state->m_bg_tilemap = tilemap | |
| 165 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(arkanoid_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 167 | 166 | } |
| 168 | 167 | |
| 169 | 168 | static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect ) |
| r17673 | r17674 | |
|---|---|---|
| 335 | 335 | 3 2 x 16 2 x 4 |
| 336 | 336 | */ |
| 337 | 337 | |
| 338 | ||
| 338 | ||
| 339 | 339 | { |
| 340 | 340 | return (col * TILES_PER_PAGE_Y) + |
| 341 | 341 | (row / TILES_PER_PAGE_Y) * TILES_PER_PAGE * (num_cols / TILES_PER_PAGE_X) + |
| 342 | 342 | (row % TILES_PER_PAGE_Y); |
| 343 | 343 | } |
| 344 | 344 | |
| 345 | ||
| 345 | ||
| 346 | 346 | { |
| 347 | 347 | return ( ((col / 2) * (TILES_PER_PAGE_Y / 2)) + |
| 348 | 348 | ((row / 2) / (TILES_PER_PAGE_Y / 2)) * (TILES_PER_PAGE / 4) * (num_cols / TILES_PER_PAGE_X) + |
| 349 | 349 | ((row / 2) % (TILES_PER_PAGE_Y / 2)) )*4 + (row&1) + (col&1)*2; |
| 350 | 350 | } |
| 351 | 351 | |
| 352 | ||
| 352 | ||
| 353 | 353 | { |
| 354 | megasys1_state *state = machine.driver_data<megasys1_state>(); | |
| 355 | 354 | int tmap = (FPTR)param; |
| 356 | UINT16 code = state->m_scrollram[tmap][tile_index]; | |
| 357 | SET_TILE_INFO(tmap, (code & 0xfff) * state->m_8x8_scroll_factor[tmap], code >> (16 - state->m_bits_per_color_code), 0); | |
| 355 | UINT16 code = m_scrollram[tmap][tile_index]; | |
| 356 | SET_TILE_INFO_MEMBER(tmap, (code & 0xfff) * m_8x8_scroll_factor[tmap], code >> (16 - m_bits_per_color_code), 0); | |
| 358 | 357 | } |
| 359 | 358 | |
| 360 | ||
| 359 | ||
| 361 | 360 | { |
| 362 | megasys1_state *state = machine.driver_data<megasys1_state>(); | |
| 363 | 361 | int tmap = (FPTR)param; |
| 364 | UINT16 code = state->m_scrollram[tmap][tile_index/4]; | |
| 365 | SET_TILE_INFO(tmap, (code & 0xfff) * state->m_16x16_scroll_factor[tmap] + (tile_index & 3), code >> (16 - state->m_bits_per_color_code), 0); | |
| 362 | UINT16 code = m_scrollram[tmap][tile_index/4]; | |
| 363 | SET_TILE_INFO_MEMBER(tmap, (code & 0xfff) * m_16x16_scroll_factor[tmap] + (tile_index & 3), code >> (16 - m_bits_per_color_code), 0); | |
| 366 | 364 | } |
| 367 | 365 | |
| 368 | 366 | static void create_tilemaps(running_machine &machine) |
| r17673 | r17674 | |
| 373 | 371 | for (layer = 0; layer < 3; layer++) |
| 374 | 372 | { |
| 375 | 373 | /* 16x16 tilemaps */ |
| 376 | state->m_tilemap[layer][0][0] = tilemap | |
| 374 | state->m_tilemap[layer][0][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(megasys1_state::megasys1_get_scroll_tile_info_16x16),state), tilemap_mapper_delegate(FUNC(megasys1_state::megasys1_scan_16x16),state), | |
| 377 | 375 | 8,8, TILES_PER_PAGE_X * 16, TILES_PER_PAGE_Y * 2); |
| 378 | state->m_tilemap[layer][0][1] = tilemap | |
| 376 | state->m_tilemap[layer][0][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(megasys1_state::megasys1_get_scroll_tile_info_16x16),state), tilemap_mapper_delegate(FUNC(megasys1_state::megasys1_scan_16x16),state), | |
| 379 | 377 | 8,8, TILES_PER_PAGE_X * 8, TILES_PER_PAGE_Y * 4); |
| 380 | state->m_tilemap[layer][0][2] = tilemap | |
| 378 | state->m_tilemap[layer][0][2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(megasys1_state::megasys1_get_scroll_tile_info_16x16),state), tilemap_mapper_delegate(FUNC(megasys1_state::megasys1_scan_16x16),state), | |
| 381 | 379 | 8,8, TILES_PER_PAGE_X * 4, TILES_PER_PAGE_Y * 8); |
| 382 | state->m_tilemap[layer][0][3] = tilemap | |
| 380 | state->m_tilemap[layer][0][3] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(megasys1_state::megasys1_get_scroll_tile_info_16x16),state), tilemap_mapper_delegate(FUNC(megasys1_state::megasys1_scan_16x16),state), | |
| 383 | 381 | 8,8, TILES_PER_PAGE_X * 2, TILES_PER_PAGE_Y * 16); |
| 384 | 382 | |
| 385 | 383 | /* 8x8 tilemaps */ |
| 386 | state->m_tilemap[layer][1][0] = tilemap | |
| 384 | state->m_tilemap[layer][1][0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(megasys1_state::megasys1_get_scroll_tile_info_8x8),state), tilemap_mapper_delegate(FUNC(megasys1_state::megasys1_scan_8x8),state), | |
| 387 | 385 | 8,8, TILES_PER_PAGE_X * 8, TILES_PER_PAGE_Y * 1); |
| 388 | state->m_tilemap[layer][1][1] = tilemap | |
| 386 | state->m_tilemap[layer][1][1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(megasys1_state::megasys1_get_scroll_tile_info_8x8),state), tilemap_mapper_delegate(FUNC(megasys1_state::megasys1_scan_8x8),state), | |
| 389 | 387 | 8,8, TILES_PER_PAGE_X * 4, TILES_PER_PAGE_Y * 2); |
| 390 | state->m_tilemap[layer][1][2] = tilemap | |
| 388 | state->m_tilemap[layer][1][2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(megasys1_state::megasys1_get_scroll_tile_info_8x8),state), tilemap_mapper_delegate(FUNC(megasys1_state::megasys1_scan_8x8),state), | |
| 391 | 389 | 8,8, TILES_PER_PAGE_X * 4, TILES_PER_PAGE_Y * 2); |
| 392 | state->m_tilemap[layer][1][3] = tilemap | |
| 390 | state->m_tilemap[layer][1][3] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(megasys1_state::megasys1_get_scroll_tile_info_8x8),state), tilemap_mapper_delegate(FUNC(megasys1_state::megasys1_scan_8x8),state), | |
| 393 | 391 | 8,8, TILES_PER_PAGE_X * 2, TILES_PER_PAGE_Y * 4); |
| 394 | 392 | |
| 395 | 393 | /* set user data and transparency */ |
| r17673 | r17674 | |
|---|---|---|
| 9 | 9 | |
| 10 | 10 | ***************************************************************************/ |
| 11 | 11 | |
| 12 | ||
| 12 | ||
| 13 | 13 | { |
| 14 | crshrace_state *state = machine.driver_data<crshrace_state>(); | |
| 15 | int code = state->m_videoram1[tile_index]; | |
| 14 | int code = m_videoram1[tile_index]; | |
| 16 | 15 | |
| 17 | SET_TILE_INFO(1, (code & 0xfff) + ( | |
| 16 | SET_TILE_INFO_MEMBER(1, (code & 0xfff) + ( | |
| 18 | 17 | } |
| 19 | 18 | |
| 20 | ||
| 19 | ||
| 21 | 20 | { |
| 22 | crshrace_state *state = machine.driver_data<crshrace_state>(); | |
| 23 | int code = state->m_videoram2[tile_index]; | |
| 21 | int code = m_videoram2[tile_index]; | |
| 24 | 22 | |
| 25 | SET_TILE_INFO(0, code, 0, 0); | |
| 23 | SET_TILE_INFO_MEMBER(0, code, 0, 0); | |
| 26 | 24 | } |
| 27 | 25 | |
| 28 | 26 | |
| r17673 | r17674 | |
| 36 | 34 | { |
| 37 | 35 | crshrace_state *state = machine.driver_data<crshrace_state>(); |
| 38 | 36 | |
| 39 | state->m_tilemap1 = tilemap_create(machine, get_tile_info1, TILEMAP_SCAN_ROWS, 16, 16, 64, 64); | |
| 40 | state->m_tilemap2 = tilemap_create(machine, get_tile_info2, TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 37 | state->m_tilemap1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(crshrace_state::get_tile_info1),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 64); | |
| 38 | state->m_tilemap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(crshrace_state::get_tile_info2),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 64); | |
| 41 | 39 | |
| 42 | 40 | state->m_tilemap1->set_transparent_pen(0x0f); |
| 43 | 41 | state->m_tilemap2->set_transparent_pen(0xff); |
| r17673 | r17674 | |
|---|---|---|
| 89 | 89 | m_fg_tilemap->set_scrollx(0, ((m_highbits << 8) & 0x100) + m_fg_scrollx); |
| 90 | 90 | } |
| 91 | 91 | |
| 92 | ||
| 92 | ||
| 93 | 93 | { |
| 94 | airbustr_state *state = machine.driver_data<airbustr_state>(); | |
| 95 | int attr = state->m_colorram2[tile_index]; | |
| 96 | int code = state->m_videoram2[tile_index] + ((attr & 0x0f) << 8); | |
| 94 | int attr = m_colorram2[tile_index]; | |
| 95 | int code = m_videoram2[tile_index] + ((attr & 0x0f) << 8); | |
| 97 | 96 | int color = attr >> 4; |
| 98 | 97 | |
| 99 | SET_TILE_INFO(0, code, color, 0); | |
| 98 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 100 | 99 | } |
| 101 | 100 | |
| 102 | ||
| 101 | ||
| 103 | 102 | { |
| 104 | airbustr_state *state = machine.driver_data<airbustr_state>(); | |
| 105 | int attr = state->m_colorram[tile_index]; | |
| 106 | int code = state->m_videoram[tile_index] + ((attr & 0x0f) << 8); | |
| 103 | int attr = m_colorram[tile_index]; | |
| 104 | int code = m_videoram[tile_index] + ((attr & 0x0f) << 8); | |
| 107 | 105 | int color = (attr >> 4) + 16; |
| 108 | 106 | |
| 109 | SET_TILE_INFO(0, code, color, 0); | |
| 107 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 110 | 108 | } |
| 111 | 109 | |
| 112 | 110 | VIDEO_START( airbustr ) |
| 113 | 111 | { |
| 114 | 112 | airbustr_state *state = machine.driver_data<airbustr_state>(); |
| 115 | 113 | |
| 116 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 117 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 114 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(airbustr_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 115 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(airbustr_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 118 | 116 | |
| 119 | 117 | machine.primary_screen->register_screen_bitmap(state->m_sprites_bitmap); |
| 120 | 118 | state->m_fg_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 119 | 119 | } |
| 120 | 120 | } |
| 121 | 121 | |
| 122 | ||
| 122 | ||
| 123 | 123 | { |
| 124 | 124 | int offs; |
| 125 | 125 | |
| r17673 | r17674 | |
| 133 | 133 | return offs; |
| 134 | 134 | } |
| 135 | 135 | |
| 136 | ||
| 136 | ||
| 137 | 137 | { |
| 138 | pacman_state *state = machine.driver_data<pacman_state>(); | |
| 139 | int code = state->m_videoram[tile_index] | (state->m_charbank << 8); | |
| 140 | int attr = (state->m_colorram[tile_index] & 0x1f) | (state->m_colortablebank << 5) | (state->m_palettebank << 6 ); | |
| 138 | int code = m_videoram[tile_index] | (m_charbank << 8); | |
| 139 | int attr = (m_colorram[tile_index] & 0x1f) | (m_colortablebank << 5) | (m_palettebank << 6 ); | |
| 141 | 140 | |
| 142 | SET_TILE_INFO(0,code,attr,0); | |
| 141 | SET_TILE_INFO_MEMBER(0,code,attr,0); | |
| 143 | 142 | } |
| 144 | 143 | |
| 145 | 144 | /*************************************************************************** |
| r17673 | r17674 | |
| 177 | 176 | /* one pixel to the left to get a more correct placement */ |
| 178 | 177 | state->m_xoffsethack = 1; |
| 179 | 178 | |
| 180 | state->m_bg_tilemap = tilemap | |
| 179 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pacman_state::pacman_get_tile_info),state), tilemap_mapper_delegate(FUNC(pacman_state::pacman_scan_rows),state), 8, 8, 36, 28 ); | |
| 181 | 180 | |
| 182 | 181 | state->m_bg_tilemap->set_scrolldx(0, 384 - 288 ); |
| 183 | 182 | state->m_bg_tilemap->set_scrolldy(0, 264 - 224 ); |
| r17673 | r17674 | |
| 333 | 332 | state->m_inv_spr = 0; |
| 334 | 333 | state->m_xoffsethack = 0; |
| 335 | 334 | |
| 336 | state->m_bg_tilemap = tilemap | |
| 335 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pacman_state::pacman_get_tile_info),state), tilemap_mapper_delegate(FUNC(pacman_state::pacman_scan_rows),state), 8, 8, 36, 28 ); | |
| 337 | 336 | |
| 338 | 337 | state->m_bg_tilemap->set_scrolldx(0, 384 - 288 ); |
| 339 | 338 | state->m_bg_tilemap->set_scrolldy(0, 264 - 224 ); |
| r17673 | r17674 | |
| 374 | 373 | |
| 375 | 374 | **************************************************************************/ |
| 376 | 375 | |
| 377 | ||
| 376 | ||
| 378 | 377 | { |
| 379 | pacman_state *state = machine.driver_data<pacman_state>(); | |
| 380 | 378 | int colbank, code, attr; |
| 381 | 379 | |
| 382 | colbank = | |
| 380 | colbank = | |
| 383 | 381 | |
| 384 | code = state->m_videoram[tile_index] + (colbank << 8); | |
| 385 | attr = state->m_colorram[tile_index & 0x1f]; | |
| 382 | code = m_videoram[tile_index] + (colbank << 8); | |
| 383 | attr = m_colorram[tile_index & 0x1f]; | |
| 386 | 384 | |
| 387 | SET_TILE_INFO(0,code,attr & 0x1f,0); | |
| 385 | SET_TILE_INFO_MEMBER(0,code,attr & 0x1f,0); | |
| 388 | 386 | } |
| 389 | 387 | |
| 390 | 388 | VIDEO_START( s2650games ) |
| r17673 | r17674 | |
| 401 | 399 | state->m_inv_spr = 0; |
| 402 | 400 | state->m_xoffsethack = 1; |
| 403 | 401 | |
| 404 | state->m_bg_tilemap = tilemap | |
| 402 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pacman_state::s2650_get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32 ); | |
| 405 | 403 | |
| 406 | 404 | state->m_bg_tilemap->set_scroll_cols(32); |
| 407 | 405 | } |
| r17673 | r17674 | |
| 501 | 499 | 2018 - 2045 = column 1 attr (28 rows) |
| 502 | 500 | */ |
| 503 | 501 | |
| 504 | ||
| 502 | ||
| 505 | 503 | { |
| 506 | 504 | int offs; |
| 507 | 505 | |
| r17673 | r17674 | |
| 516 | 514 | return offs; |
| 517 | 515 | } |
| 518 | 516 | |
| 519 | ||
| 517 | ||
| 520 | 518 | { |
| 521 | pacman_state *state = machine.driver_data<pacman_state>(); | |
| 522 | 519 | int color_index, code, attr; |
| 523 | 520 | if( tile_index < 1792 ) |
| 524 | 521 | { |
| r17673 | r17674 | |
| 529 | 526 | color_index = tile_index + 0x80; |
| 530 | 527 | } |
| 531 | 528 | |
| 532 | code = state->m_videoram[tile_index] | (state->m_charbank << 8); | |
| 533 | attr = (state->m_videoram[color_index] & 0x1f) | (state->m_colortablebank << 5) | (state->m_palettebank << 6 ); | |
| 529 | code = m_videoram[tile_index] | (m_charbank << 8); | |
| 530 | attr = (m_videoram[color_index] & 0x1f) | (m_colortablebank << 5) | (m_palettebank << 6 ); | |
| 534 | 531 | |
| 535 | SET_TILE_INFO(0,code,attr,0); | |
| 532 | SET_TILE_INFO_MEMBER(0,code,attr,0); | |
| 536 | 533 | } |
| 537 | 534 | |
| 538 | 535 | static void jrpacman_mark_tile_dirty( running_machine &machine, int offset ) |
| r17673 | r17674 | |
| 573 | 570 | state->m_inv_spr = 0; |
| 574 | 571 | state->m_xoffsethack = 1; |
| 575 | 572 | |
| 576 | state->m_bg_tilemap = tilemap | |
| 573 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pacman_state::jrpacman_get_tile_info),state),tilemap_mapper_delegate(FUNC(pacman_state::jrpacman_scan_rows),state),8,8,36,54 ); | |
| 577 | 574 | |
| 578 | 575 | state->m_bg_tilemap->set_transparent_pen(0 ); |
| 579 | 576 | state->m_bg_tilemap->set_scroll_cols(36 ); |
| r17673 | r17674 | |
|---|---|---|
| 104 | 104 | |
| 105 | 105 | ***************************************************************************/ |
| 106 | 106 | |
| 107 | ||
| 107 | ||
| 108 | 108 | { |
| 109 | clshroad_state *state = machine.driver_data<clshroad_state>(); | |
| 110 | 109 | UINT8 code; |
| 111 | 110 | tile_index = (tile_index & 0x1f) + (tile_index & ~0x1f)*2; |
| 112 | code = state->m_vram_0[ tile_index * 2 + 0x40 ]; | |
| 113 | // color = state->m_vram_0[ tile_index * 2 + 0x41 ]; | |
| 114 | SET_TILE_INFO( | |
| 111 | code = m_vram_0[ tile_index * 2 + 0x40 ]; | |
| 112 | // color = m_vram_0[ tile_index * 2 + 0x41 ]; | |
| 113 | SET_TILE_INFO_MEMBER( | |
| 115 | 114 | 1, |
| 116 | 115 | code, |
| 117 | 116 | 0, |
| 118 | 117 | 0); |
| 119 | 118 | } |
| 120 | 119 | |
| 121 | ||
| 120 | ||
| 122 | 121 | { |
| 123 | clshroad_state *state = machine.driver_data<clshroad_state>(); | |
| 124 | 122 | UINT8 code; |
| 125 | 123 | tile_index = (tile_index & 0x1f) + (tile_index & ~0x1f)*2; |
| 126 | code = state->m_vram_0[ tile_index * 2 + 0x00 ]; | |
| 127 | // color = state->m_vram_0[ tile_index * 2 + 0x01 ]; | |
| 128 | SET_TILE_INFO( | |
| 124 | code = m_vram_0[ tile_index * 2 + 0x00 ]; | |
| 125 | // color = m_vram_0[ tile_index * 2 + 0x01 ]; | |
| 126 | SET_TILE_INFO_MEMBER( | |
| 129 | 127 | 1, |
| 130 | 128 | code, |
| 131 | 129 | 0, |
| r17673 | r17674 | |
| 160 | 158 | ***************************************************************************/ |
| 161 | 159 | |
| 162 | 160 | /* logical (col,row) -> memory offset */ |
| 163 | ||
| 161 | ||
| 164 | 162 | { |
| 165 | 163 | // The leftmost columns come from the bottom rows |
| 166 | 164 | if (col <= 0x01) return row + (col + 0x1e) * 0x20; |
| r17673 | r17674 | |
| 176 | 174 | return (col-2) + row * 0x20; |
| 177 | 175 | } |
| 178 | 176 | |
| 179 | ||
| 177 | ||
| 180 | 178 | { |
| 181 | clshroad_state *state = machine.driver_data<clshroad_state>(); | |
| 182 | UINT8 code = state->m_vram_1[ tile_index + 0x000 ]; | |
| 183 | UINT8 color = state->m_vram_1[ tile_index + 0x400 ] & 0x3f; | |
| 179 | UINT8 code = m_vram_1[ tile_index + 0x000 ]; | |
| 180 | UINT8 color = m_vram_1[ tile_index + 0x400 ] & 0x3f; | |
| 184 | 181 | tileinfo.group = color; |
| 185 | SET_TILE_INFO( | |
| 182 | SET_TILE_INFO_MEMBER( | |
| 186 | 183 | 2, |
| 187 | 184 | code, |
| 188 | 185 | color, |
| 189 | 186 | 0); |
| 190 | 187 | } |
| 191 | 188 | |
| 192 | ||
| 189 | ||
| 193 | 190 | { |
| 194 | clshroad_state *state = machine.driver_data<clshroad_state>(); | |
| 195 | UINT8 code = state->m_vram_1[ tile_index + 0x000 ]; | |
| 196 | UINT8 color = state->m_vram_1[ tile_index + 0x400 ]; | |
| 197 | SET_TILE_INFO( | |
| 191 | UINT8 code = m_vram_1[ tile_index + 0x000 ]; | |
| 192 | UINT8 color = m_vram_1[ tile_index + 0x400 ]; | |
| 193 | SET_TILE_INFO_MEMBER( | |
| 198 | 194 | 2, |
| 199 | 195 | code + ((color & 0xf0)<<4), |
| 200 | 196 | color & 0x0f, |
| r17673 | r17674 | |
| 212 | 208 | { |
| 213 | 209 | clshroad_state *state = machine.driver_data<clshroad_state>(); |
| 214 | 210 | /* These 2 use the graphics and scroll value */ |
| 215 | state->m_tilemap_0a = tilemap_create(machine, get_tile_info_0a,TILEMAP_SCAN_ROWS,16,16,0x20,0x10); | |
| 216 | state->m_tilemap_0b = tilemap_create(machine, get_tile_info_0b,TILEMAP_SCAN_ROWS,16,16,0x20,0x10); | |
| 211 | state->m_tilemap_0a = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(clshroad_state::get_tile_info_0a),state),TILEMAP_SCAN_ROWS,16,16,0x20,0x10); | |
| 212 | state->m_tilemap_0b = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(clshroad_state::get_tile_info_0b),state),TILEMAP_SCAN_ROWS,16,16,0x20,0x10); | |
| 217 | 213 | /* Text (No scrolling) */ |
| 218 | state->m_tilemap_1 = tilemap | |
| 214 | state->m_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(clshroad_state::get_tile_info_fb1),state),tilemap_mapper_delegate(FUNC(clshroad_state::tilemap_scan_rows_extra),state),8,8,0x24,0x20); | |
| 219 | 215 | |
| 220 | 216 | state->m_tilemap_0a->set_scroll_rows(1); |
| 221 | 217 | state->m_tilemap_0b->set_scroll_rows(1); |
| r17673 | r17674 | |
| 236 | 232 | { |
| 237 | 233 | clshroad_state *state = machine.driver_data<clshroad_state>(); |
| 238 | 234 | /* These 2 use the graphics and scroll value */ |
| 239 | state->m_tilemap_0a = tilemap_create(machine, get_tile_info_0a,TILEMAP_SCAN_ROWS,16,16,0x20,0x10); | |
| 240 | state->m_tilemap_0b = tilemap_create(machine, get_tile_info_0b,TILEMAP_SCAN_ROWS,16,16,0x20,0x10); | |
| 235 | state->m_tilemap_0a = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(clshroad_state::get_tile_info_0a),state),TILEMAP_SCAN_ROWS,16,16,0x20,0x10); | |
| 236 | state->m_tilemap_0b = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(clshroad_state::get_tile_info_0b),state),TILEMAP_SCAN_ROWS,16,16,0x20,0x10); | |
| 241 | 237 | /* Text (No scrolling) */ |
| 242 | state->m_tilemap_1 = tilemap | |
| 238 | state->m_tilemap_1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(clshroad_state::get_tile_info_1),state),tilemap_mapper_delegate(FUNC(clshroad_state::tilemap_scan_rows_extra),state),8,8,0x24,0x20); | |
| 243 | 239 | |
| 244 | 240 | state->m_tilemap_0a->set_scroll_rows(1); |
| 245 | 241 | state->m_tilemap_0b->set_scroll_rows(1); |
| r17673 | r17674 | |
|---|---|---|
| 170 | 170 | //**************************************************************************** |
| 171 | 171 | // Initializations |
| 172 | 172 | |
| 173 | ||
| 173 | ||
| 174 | 174 | { |
| 175 | bwing_state *state = machine.driver_data<bwing_state>(); | |
| 176 | tileinfo.pen_data = machine.gfx[2]->get_data(state->m_fgdata[tile_index] & (BW_NTILES - 1)); | |
| 177 | tileinfo.palette_base = machine.gfx[2]->colorbase() + ((state->m_fgdata[tile_index] >> 7) << 3); | |
| 175 | tileinfo.pen_data = machine().gfx[2]->get_data(m_fgdata[tile_index] & (BW_NTILES - 1)); | |
| 176 | tileinfo.palette_base = machine().gfx[2]->colorbase() + ((m_fgdata[tile_index] >> 7) << 3); | |
| 178 | 177 | } |
| 179 | 178 | |
| 180 | ||
| 179 | ||
| 181 | 180 | { |
| 182 | bwing_state *state = machine.driver_data<bwing_state>(); | |
| 183 | tileinfo.pen_data = machine.gfx[3]->get_data(state->m_bgdata[tile_index] & (BW_NTILES - 1)); | |
| 184 | tileinfo.palette_base = machine.gfx[3]->colorbase() + ((state->m_bgdata[tile_index] >> 7) << 3); | |
| 181 | tileinfo.pen_data = machine().gfx[3]->get_data(m_bgdata[tile_index] & (BW_NTILES - 1)); | |
| 182 | tileinfo.palette_base = machine().gfx[3]->colorbase() + ((m_bgdata[tile_index] >> 7) << 3); | |
| 185 | 183 | } |
| 186 | 184 | |
| 187 | ||
| 185 | ||
| 188 | 186 | { |
| 189 | bwing_state *state = machine.driver_data<bwing_state>(); | |
| 190 | SET_TILE_INFO(0, state->m_videoram[tile_index], 0, 0); | |
| 187 | SET_TILE_INFO_MEMBER(0, m_videoram[tile_index], 0, 0); | |
| 191 | 188 | } |
| 192 | 189 | |
| 193 | ||
| 190 | ||
| 194 | 191 | { |
| 195 | 192 | return ((col << 6) + row); |
| 196 | 193 | } |
| r17673 | r17674 | |
| 202 | 199 | // UINT32 *dwptr; |
| 203 | 200 | int i; |
| 204 | 201 | |
| 205 | state->m_charmap = tilemap_create(machine, get_charinfo, TILEMAP_SCAN_COLS, 8, 8, 32, 32); | |
| 206 | state->m_fgmap = tilemap_create(machine, get_fgtileinfo, bwing_scan_cols, 16, 16, 64, 64); | |
| 207 | state->m_bgmap = tilemap_create(machine, get_bgtileinfo, bwing_scan_cols, 16, 16, 64, 64); | |
| 202 | state->m_charmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bwing_state::get_charinfo),state), TILEMAP_SCAN_COLS, 8, 8, 32, 32); | |
| 203 | state->m_fgmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bwing_state::get_fgtileinfo),state), tilemap_mapper_delegate(FUNC(bwing_state::bwing_scan_cols),state), 16, 16, 64, 64); | |
| 204 | state->m_bgmap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(bwing_state::get_bgtileinfo),state), tilemap_mapper_delegate(FUNC(bwing_state::bwing_scan_cols),state), 16, 16, 64, 64); | |
| 208 | 205 | |
| 209 | 206 | state->m_charmap->set_transparent_pen(0); |
| 210 | 207 | state->m_fgmap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 7 | 7 | |
| 8 | 8 | ***************************************************************************/ |
| 9 | 9 | |
| 10 | ||
| 10 | ||
| 11 | 11 | { |
| 12 | UINT8 *base = machine.root_device().memregion("gfx5")->base() + 2 * tile_index; | |
| 12 | UINT8 *base = machine().root_device().memregion("gfx5")->base() + 2 * tile_index; | |
| 13 | 13 | int attr = base[0x10000]; |
| 14 | 14 | int color = base[0]; |
| 15 | 15 | int code = (base[0x10000 + 1] << 8) | base[1]; |
| 16 | SET_TILE_INFO( | |
| 16 | SET_TILE_INFO_MEMBER( | |
| 17 | 17 | 0, |
| 18 | 18 | code, |
| 19 | 19 | color, |
| 20 | 20 | TILE_FLIPYX(attr & 3)); |
| 21 | 21 | } |
| 22 | 22 | |
| 23 | ||
| 23 | ||
| 24 | 24 | { |
| 25 | UINT8 *base = machine.root_device().memregion("gfx5")->base() + 0x20000 + 2 * tile_index; | |
| 25 | UINT8 *base = machine().root_device().memregion("gfx5")->base() + 0x20000 + 2 * tile_index; | |
| 26 | 26 | int attr = base[0x10000]; |
| 27 | 27 | int color = base[0]; |
| 28 | 28 | int code = (base[0x10000 + 1] << 8) | base[1]; |
| 29 | SET_TILE_INFO( | |
| 29 | SET_TILE_INFO_MEMBER( | |
| 30 | 30 | 1, |
| 31 | 31 | code, |
| 32 | 32 | color, |
| 33 | 33 | TILE_FLIPYX(attr & 3)); |
| 34 | 34 | } |
| 35 | 35 | |
| 36 | ||
| 36 | ||
| 37 | 37 | { |
| 38 | sf_state *state = machine.driver_data<sf_state>(); | |
| 39 | int code = state->m_videoram[tile_index]; | |
| 40 | SET_TILE_INFO( | |
| 38 | int code = m_videoram[tile_index]; | |
| 39 | SET_TILE_INFO_MEMBER( | |
| 41 | 40 | 3, |
| 42 | 41 | code & 0x3ff, |
| 43 | 42 | code>>12, |
| r17673 | r17674 | |
| 56 | 55 | { |
| 57 | 56 | sf_state *state = machine.driver_data<sf_state>(); |
| 58 | 57 | |
| 59 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, 16, 16, 2048, 16); | |
| 60 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_COLS, 16, 16, 2048, 16); | |
| 61 | state->m_tx_tilemap = tilemap_create(machine, get_tx_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 58 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sf_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 2048, 16); | |
| 59 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sf_state::get_fg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 2048, 16); | |
| 60 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sf_state::get_tx_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 62 | 61 | |
| 63 | 62 | state->m_fg_tilemap->set_transparent_pen(15); |
| 64 | 63 | state->m_tx_tilemap->set_transparent_pen(3); |
| r17673 | r17674 | |
|---|---|---|
| 269 | 269 | } |
| 270 | 270 | } |
| 271 | 271 | |
| 272 | ||
| 272 | ||
| 273 | 273 | { |
| 274 | cave_state *state = machine.driver_data<cave_state>(); | |
| 275 | 274 | UINT32 code, color, pri; |
| 276 | 275 | |
| 277 | if ( | |
| 276 | if ( | |
| 278 | 277 | { |
| 279 | 278 | UINT32 tile; |
| 280 | 279 | tile = (tile_index % (512 / 8)) / 2 + ((tile_index / (512 / 8)) / 2) * (512 / 16); |
| 281 | code = ( | |
| 280 | code = ( | |
| 282 | 281 | |
| 283 | 282 | color = (code & 0x3f000000) >> (32 - 8); |
| 284 | 283 | pri = (code & 0xc0000000) >> (32 - 2); |
| r17673 | r17674 | |
| 289 | 288 | } |
| 290 | 289 | else |
| 291 | 290 | { |
| 292 | code = ( | |
| 291 | code = ( | |
| 293 | 292 | |
| 294 | 293 | color = (code & 0x3f000000) >> (32 - 8); |
| 295 | 294 | pri = (code & 0xc0000000) >> (32 - 2); |
| 296 | 295 | code = (code & 0x00ffffff); |
| 297 | if ((code < 0x10000) && ( | |
| 296 | if ((code < 0x10000) && ( | |
| 298 | 297 | code += 0x40000; |
| 299 | 298 | } |
| 300 | 299 | |
| 301 | SET_TILE_INFO( 2, code, color, 0 ); | |
| 300 | SET_TILE_INFO_MEMBER( 2, code, color, 0 ); | |
| 302 | 301 | tileinfo.category = pri; |
| 303 | 302 | } |
| 304 | 303 | |
| r17673 | r17674 | |
| 347 | 346 | } |
| 348 | 347 | |
| 349 | 348 | |
| 350 | static TILE_GET_INFO( get_tile_info_0 ) { get_tile_info(machine, tileinfo, tile_index, 0); } | |
| 351 | static TILE_GET_INFO( get_tile_info_1 ) { get_tile_info(machine, tileinfo, tile_index, 1); } | |
| 352 | static TILE_GET_INFO( get_tile_info_2 ) { get_tile_info(machine, tileinfo, tile_index, 2); } | |
| 353 | static TILE_GET_INFO( get_tile_info_3 ) { get_tile_info(machine, tileinfo, tile_index, 3); } | |
| 349 | TILE_GET_INFO_MEMBER(cave_state::get_tile_info_0){ get_tile_info(machine(), tileinfo, tile_index, 0); } | |
| 350 | TILE_GET_INFO_MEMBER(cave_state::get_tile_info_1){ get_tile_info(machine(), tileinfo, tile_index, 1); } | |
| 351 | TILE_GET_INFO_MEMBER(cave_state::get_tile_info_2){ get_tile_info(machine(), tileinfo, tile_index, 2); } | |
| 352 | TILE_GET_INFO_MEMBER(cave_state::get_tile_info_3){ get_tile_info(machine(), tileinfo, tile_index, 3); } | |
| 354 | 353 | |
| 355 | 354 | WRITE16_MEMBER(cave_state::cave_vram_0_w){ vram_w(&space, offset, data, mem_mask, 0); } |
| 356 | 355 | WRITE16_MEMBER(cave_state::cave_vram_1_w){ vram_w(&space, offset, data, mem_mask, 1); } |
| r17673 | r17674 | |
| 398 | 397 | switch (num) |
| 399 | 398 | { |
| 400 | 399 | case 4: |
| 401 | state->m_tilemap[3] = tilemap | |
| 400 | state->m_tilemap[3] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cave_state::get_tile_info_3),state), TILEMAP_SCAN_ROWS, 8, 8, 512 / 8, 512 / 8); | |
| 402 | 401 | state->m_tilemap[3]->set_transparent_pen(0); |
| 403 | 402 | state->m_tilemap[3]->set_scroll_rows(1); |
| 404 | 403 | state->m_tilemap[3]->set_scroll_cols(1); |
| r17673 | r17674 | |
| 406 | 405 | state->save_item(NAME(state->m_old_tiledim[3])); |
| 407 | 406 | |
| 408 | 407 | case 3: |
| 409 | state->m_tilemap[2] = tilemap | |
| 408 | state->m_tilemap[2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cave_state::get_tile_info_2),state), TILEMAP_SCAN_ROWS, 8, 8, 512 / 8, 512 / 8); | |
| 410 | 409 | state->m_tilemap[2]->set_transparent_pen(0); |
| 411 | 410 | state->m_tilemap[2]->set_scroll_rows(1); |
| 412 | 411 | state->m_tilemap[2]->set_scroll_cols(1); |
| r17673 | r17674 | |
| 414 | 413 | state->save_item(NAME(state->m_old_tiledim[2])); |
| 415 | 414 | |
| 416 | 415 | case 2: |
| 417 | state->m_tilemap[1] = tilemap | |
| 416 | state->m_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cave_state::get_tile_info_1),state), TILEMAP_SCAN_ROWS, 8, 8, 512 / 8, 512 / 8); | |
| 418 | 417 | state->m_tilemap[1]->set_transparent_pen(0); |
| 419 | 418 | state->m_tilemap[1]->set_scroll_rows(1); |
| 420 | 419 | state->m_tilemap[1]->set_scroll_cols(1); |
| r17673 | r17674 | |
| 422 | 421 | state->save_item(NAME(state->m_old_tiledim[1])); |
| 423 | 422 | |
| 424 | 423 | case 1: |
| 425 | state->m_tilemap[0] = tilemap | |
| 424 | state->m_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cave_state::get_tile_info_0),state), TILEMAP_SCAN_ROWS, 8, 8, 512 / 8, 512 / 8); | |
| 426 | 425 | state->m_tilemap[0]->set_transparent_pen(0); |
| 427 | 426 | state->m_tilemap[0]->set_scroll_rows(1); |
| 428 | 427 | state->m_tilemap[0]->set_scroll_cols(1); |
| r17673 | r17674 | |
| 472 | 471 | cave_vh_start(machine, 2); |
| 473 | 472 | |
| 474 | 473 | /* Layer 2 (8x8) needs to be handled differently */ |
| 475 | state->m_tilemap[2] = tilemap | |
| 474 | state->m_tilemap[2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(cave_state::sailormn_get_tile_info_2),state), TILEMAP_SCAN_ROWS, 8, 8, 512 / 8, 512 / 8 ); | |
| 476 | 475 | |
| 477 | 476 | state->m_tilemap[2]->set_transparent_pen(0); |
| 478 | 477 | state->m_tilemap[2]->set_scroll_rows(1); |
| r17673 | r17674 | |
|---|---|---|
| 261 | 261 | SET_TILE_INFO(graphics, code, color, flags); |
| 262 | 262 | } |
| 263 | 263 | |
| 264 | ||
| 264 | ||
| 265 | 265 | { |
| 266 | dooyong_state *state = machine.driver_data<dooyong_state>(); | |
| 267 | if (state->m_bg_tilerom2 != NULL) | |
| 268 | rshark_get_tile_info(machine, tileinfo, tile_index, state->m_bg_tilerom, state->m_bg_tilerom2, state->m_bgscroll8, state->m_bg_gfx); | |
| 266 | if (m_bg_tilerom2 != NULL) | |
| 267 | rshark_get_tile_info(machine(), tileinfo, tile_index, m_bg_tilerom, m_bg_tilerom2, m_bgscroll8, m_bg_gfx); | |
| 269 | 268 | else |
| 270 | lastday_get_tile_info(machine, tileinfo, tile_index, | |
| 269 | lastday_get_tile_info(machine(), tileinfo, tile_index, | |
| 271 | 270 | } |
| 272 | 271 | |
| 273 | ||
| 272 | ||
| 274 | 273 | { |
| 275 | dooyong_state *state = machine.driver_data<dooyong_state>(); | |
| 276 | if (state->m_bg2_tilerom2 != NULL) | |
| 277 | rshark_get_tile_info(machine, tileinfo, tile_index, state->m_bg2_tilerom, state->m_bg2_tilerom2, state->m_bg2scroll8, state->m_bg2_gfx); | |
| 274 | if (m_bg2_tilerom2 != NULL) | |
| 275 | rshark_get_tile_info(machine(), tileinfo, tile_index, m_bg2_tilerom, m_bg2_tilerom2, m_bg2scroll8, m_bg2_gfx); | |
| 278 | 276 | else |
| 279 | lastday_get_tile_info(machine, tileinfo, tile_index, | |
| 277 | lastday_get_tile_info(machine(), tileinfo, tile_index, | |
| 280 | 278 | } |
| 281 | 279 | |
| 282 | ||
| 280 | ||
| 283 | 281 | { |
| 284 | dooyong_state *state = machine.driver_data<dooyong_state>(); | |
| 285 | if (state->m_fg_tilerom2 != NULL) | |
| 286 | rshark_get_tile_info(machine, tileinfo, tile_index, state->m_fg_tilerom, state->m_fg_tilerom2, state->m_fgscroll8, state->m_fg_gfx); | |
| 282 | if (m_fg_tilerom2 != NULL) | |
| 283 | rshark_get_tile_info(machine(), tileinfo, tile_index, m_fg_tilerom, m_fg_tilerom2, m_fgscroll8, m_fg_gfx); | |
| 287 | 284 | else |
| 288 | lastday_get_tile_info(machine, tileinfo, tile_index, | |
| 285 | lastday_get_tile_info(machine(), tileinfo, tile_index, | |
| 289 | 286 | } |
| 290 | 287 | |
| 291 | ||
| 288 | ||
| 292 | 289 | { |
| 293 | dooyong_state *state = machine.driver_data<dooyong_state>(); | |
| 294 | if (state->m_fg2_tilerom2 != NULL) | |
| 295 | rshark_get_tile_info(machine, tileinfo, tile_index, state->m_fg2_tilerom, state->m_fg2_tilerom2, state->m_fg2scroll8, state->m_fg2_gfx); | |
| 290 | if (m_fg2_tilerom2 != NULL) | |
| 291 | rshark_get_tile_info(machine(), tileinfo, tile_index, m_fg2_tilerom, m_fg2_tilerom2, m_fg2scroll8, m_fg2_gfx); | |
| 296 | 292 | else |
| 297 | lastday_get_tile_info(machine, tileinfo, tile_index, | |
| 293 | lastday_get_tile_info(machine(), tileinfo, tile_index, | |
| 298 | 294 | } |
| 299 | 295 | |
| 300 | 296 | /* flytiger uses some palette banking technique or something maybe a trash protection */ |
| 301 | 297 | |
| 302 | ||
| 298 | ||
| 303 | 299 | { |
| 304 | dooyong_state *state = machine.driver_data<dooyong_state>(); | |
| 305 | const UINT8 *tilerom = state->m_fg_tilerom; | |
| 300 | const UINT8 *tilerom = m_fg_tilerom; | |
| 306 | 301 | |
| 307 | int offs = (tile_index + ( | |
| 302 | int offs = (tile_index + ( | |
| 308 | 303 | int attr = tilerom[offs]; |
| 309 | 304 | int code = tilerom[offs + 1] | ((attr & 0x01) << 8) | ((attr & 0x80) << 2); |
| 310 | 305 | int color = (attr & 0x78) >> 3; |
| 311 | 306 | int flags = ((attr & 0x02) ? TILE_FLIPX : 0) | ((attr & 0x04) ? TILE_FLIPY : 0); |
| 312 | 307 | |
| 313 | SET_TILE_INFO( | |
| 308 | SET_TILE_INFO_MEMBER( | |
| 314 | 309 | } |
| 315 | 310 | |
| 316 | ||
| 311 | ||
| 317 | 312 | { |
| 318 | dooyong_state *state = machine.driver_data<dooyong_state>(); | |
| 319 | 313 | /* Each tile takes two bytes of memory: |
| 320 | 314 | MSB LSB |
| 321 | 315 | [offs + 0x00] cccc cccc (bits 7-0 of gfx code) |
| r17673 | r17674 | |
| 323 | 317 | c = gfx code |
| 324 | 318 | C = color code */ |
| 325 | 319 | int offs, attr, code, color; |
| 326 | if ( | |
| 320 | if ( | |
| 327 | 321 | { /* lastday/gulfstrm/pollux/flytiger */ |
| 328 | 322 | offs = tile_index; |
| 329 | attr = | |
| 323 | attr = | |
| 330 | 324 | } |
| 331 | 325 | else |
| 332 | 326 | { /* bluehawk/primella */ |
| 333 | 327 | offs = tile_index * 2; |
| 334 | attr = | |
| 328 | attr = | |
| 335 | 329 | } |
| 336 | code = | |
| 330 | code = | |
| 337 | 331 | color = (attr & 0xf0) >> 4; |
| 338 | 332 | |
| 339 | SET_TILE_INFO(0, code, color, 0); | |
| 333 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 340 | 334 | } |
| 341 | 335 | |
| 342 | 336 | |
| r17673 | r17674 | |
| 638 | 632 | state->m_tx_tilemap_mode = 0; |
| 639 | 633 | |
| 640 | 634 | /* Create tilemaps */ |
| 641 | state->m_bg_tilemap = tilemap | |
| 635 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, | |
| 642 | 636 | 32, 32, 32, 8); |
| 643 | state->m_fg_tilemap = tilemap | |
| 637 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_fg_tile_info),state), TILEMAP_SCAN_COLS, | |
| 644 | 638 | 32, 32, 32, 8); |
| 645 | state->m_tx_tilemap = tilemap | |
| 639 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_tx_tile_info),state), TILEMAP_SCAN_COLS, | |
| 646 | 640 | 8, 8, 64, 32); |
| 647 | 641 | |
| 648 | 642 | /* Configure tilemap transparency */ |
| r17673 | r17674 | |
| 678 | 672 | state->m_tx_tilemap_mode = 0; |
| 679 | 673 | |
| 680 | 674 | /* Create tilemaps */ |
| 681 | state->m_bg_tilemap = tilemap | |
| 675 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, | |
| 682 | 676 | 32, 32, 32, 8); |
| 683 | state->m_fg_tilemap = tilemap | |
| 677 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_fg_tile_info),state), TILEMAP_SCAN_COLS, | |
| 684 | 678 | 32, 32, 32, 8); |
| 685 | state->m_tx_tilemap = tilemap | |
| 679 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_tx_tile_info),state), TILEMAP_SCAN_COLS, | |
| 686 | 680 | 8, 8, 64, 32); |
| 687 | 681 | |
| 688 | 682 | /* Configure tilemap transparency */ |
| r17673 | r17674 | |
| 717 | 711 | state->m_tx_tilemap_mode = 0; |
| 718 | 712 | |
| 719 | 713 | /* Create tilemaps */ |
| 720 | state->m_bg_tilemap = tilemap | |
| 714 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, | |
| 721 | 715 | 32, 32, 32, 8); |
| 722 | state->m_fg_tilemap = tilemap | |
| 716 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_fg_tile_info),state), TILEMAP_SCAN_COLS, | |
| 723 | 717 | 32, 32, 32, 8); |
| 724 | state->m_tx_tilemap = tilemap | |
| 718 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_tx_tile_info),state), TILEMAP_SCAN_COLS, | |
| 725 | 719 | 8, 8, 64, 32); |
| 726 | 720 | |
| 727 | 721 | /* Configure tilemap transparency */ |
| r17673 | r17674 | |
| 756 | 750 | state->m_tx_tilemap_mode = 1; |
| 757 | 751 | |
| 758 | 752 | /* Create tilemaps */ |
| 759 | state->m_bg_tilemap = tilemap | |
| 753 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, | |
| 760 | 754 | 32, 32, 32, 8); |
| 761 | state->m_fg_tilemap = tilemap | |
| 755 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_fg_tile_info),state), TILEMAP_SCAN_COLS, | |
| 762 | 756 | 32, 32, 32, 8); |
| 763 | state->m_fg2_tilemap = tilemap | |
| 757 | state->m_fg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_fg2_tile_info),state), TILEMAP_SCAN_COLS, | |
| 764 | 758 | 32, 32, 32, 8); |
| 765 | state->m_tx_tilemap = tilemap | |
| 759 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_tx_tile_info),state), TILEMAP_SCAN_COLS, | |
| 766 | 760 | 8, 8, 64, 32); |
| 767 | 761 | |
| 768 | 762 | /* Configure tilemap transparency */ |
| r17673 | r17674 | |
| 794 | 788 | state->m_tx_tilemap_mode = 0; |
| 795 | 789 | |
| 796 | 790 | /* Create tilemaps */ |
| 797 | state->m_bg_tilemap = tilemap | |
| 791 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, | |
| 798 | 792 | 32, 32, 32, 8); |
| 799 | state->m_fg_tilemap = tilemap | |
| 793 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::flytiger_get_fg_tile_info),state), TILEMAP_SCAN_COLS, | |
| 800 | 794 | 32, 32, 32, 8); |
| 801 | state->m_tx_tilemap = tilemap | |
| 795 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_tx_tile_info),state), TILEMAP_SCAN_COLS, | |
| 802 | 796 | 8, 8, 64, 32); |
| 803 | 797 | |
| 804 | 798 | /* Configure tilemap transparency */ |
| r17673 | r17674 | |
| 830 | 824 | state->m_tx_tilemap_mode = 1; |
| 831 | 825 | |
| 832 | 826 | /* Create tilemaps */ |
| 833 | state->m_bg_tilemap = tilemap | |
| 827 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, | |
| 834 | 828 | 32, 32, 32, 8); |
| 835 | state->m_fg_tilemap = tilemap | |
| 829 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_fg_tile_info),state), TILEMAP_SCAN_COLS, | |
| 836 | 830 | 32, 32, 32, 8); |
| 837 | state->m_tx_tilemap = tilemap | |
| 831 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_tx_tile_info),state), TILEMAP_SCAN_COLS, | |
| 838 | 832 | 8, 8, 64, 32); |
| 839 | 833 | |
| 840 | 834 | /* Configure tilemap transparency */ |
| r17673 | r17674 | |
| 870 | 864 | state->m_fg2_gfx = 1; |
| 871 | 865 | |
| 872 | 866 | /* Create tilemaps */ |
| 873 | state->m_bg_tilemap = tilemap | |
| 867 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, | |
| 874 | 868 | 16, 16, 64, 32); |
| 875 | state->m_bg2_tilemap = tilemap | |
| 869 | state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_bg2_tile_info),state), TILEMAP_SCAN_COLS, | |
| 876 | 870 | 16, 16, 64, 32); |
| 877 | state->m_fg_tilemap = tilemap | |
| 871 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_fg_tile_info),state), TILEMAP_SCAN_COLS, | |
| 878 | 872 | 16, 16, 64, 32); |
| 879 | state->m_fg2_tilemap = tilemap | |
| 873 | state->m_fg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_fg2_tile_info),state), TILEMAP_SCAN_COLS, | |
| 880 | 874 | 16, 16, 64, 32); |
| 881 | 875 | |
| 882 | 876 | /* Configure tilemap transparency */ |
| r17673 | r17674 | |
| 905 | 899 | state->m_bg_gfx = 1; |
| 906 | 900 | |
| 907 | 901 | /* Create tilemaps */ |
| 908 | state->m_bg_tilemap = tilemap | |
| 902 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dooyong_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, | |
| 909 | 903 | 32, 32, 32, 8); |
| 910 | 904 | state->m_bg2_tilemap = state->m_fg_tilemap = state->m_fg2_tilemap = NULL; /* Stop scroll handler from crashing on these */ |
| 911 | 905 |
| r17673 | r17674 | |
|---|---|---|
| 105 | 105 | |
| 106 | 106 | static void blitter_init(running_machine &machine, int blitter_config, const UINT8 *remap_prom); |
| 107 | 107 | static void create_palette_lookup(running_machine &machine); |
| 108 | ||
| 108 | ||
| 109 | 109 | static int blitter_core(address_space *space, int sstart, int dstart, int w, int h, int data); |
| 110 | 110 | |
| 111 | 111 | |
| r17673 | r17674 | |
| 157 | 157 | state->m_generic_paletteram_8.allocate(0x400 * 2); |
| 158 | 158 | |
| 159 | 159 | /* create the tilemap */ |
| 160 | state->m_bg_tilemap = tilemap | |
| 160 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(williams_state::get_tile_info),state), TILEMAP_SCAN_COLS, 24,16, 128,16); | |
| 161 | 161 | state->m_bg_tilemap->set_scrolldx(2, 0); |
| 162 | 162 | |
| 163 | 163 | state_save_register(machine); |
| r17673 | r17674 | |
| 375 | 375 | * |
| 376 | 376 | *************************************/ |
| 377 | 377 | |
| 378 | ||
| 378 | ||
| 379 | 379 | { |
| 380 | williams_state *state = machine.driver_data<williams_state>(); | |
| 381 | int mask = machine.gfx[0]->elements() - 1; | |
| 382 | int data = state->m_williams2_tileram[tile_index]; | |
| 380 | int mask = machine().gfx[0]->elements() - 1; | |
| 381 | int data = m_williams2_tileram[tile_index]; | |
| 383 | 382 | int y = (tile_index >> 1) & 7; |
| 384 | 383 | int color = 0; |
| 385 | 384 | |
| 386 | switch ( | |
| 385 | switch ( | |
| 387 | 386 | { |
| 388 | 387 | case WILLIAMS_TILEMAP_MYSTICM: |
| 389 | 388 | { |
| r17673 | r17674 | |
| 406 | 405 | break; |
| 407 | 406 | } |
| 408 | 407 | |
| 409 | SET_TILE_INFO(0, data & mask, color, (data & ~mask) ? TILE_FLIPX : 0); | |
| 408 | SET_TILE_INFO_MEMBER(0, data & mask, color, (data & ~mask) ? TILE_FLIPX : 0); | |
| 410 | 409 | } |
| 411 | 410 | |
| 412 | 411 |
| r17673 | r17674 | |
|---|---|---|
| 71 | 71 | |
| 72 | 72 | ***************************************************************************/ |
| 73 | 73 | |
| 74 | ||
| 74 | ||
| 75 | 75 | { |
| 76 | brkthru_state *state = machine.driver_data<brkthru_state>(); | |
| 77 | 76 | /* BG RAM format |
| 78 | 77 | 0 1 |
| 79 | 78 | ---- -c-- ---- ---- = Color |
| 80 | 79 | ---- --xx xxxx xxxx = Code |
| 81 | 80 | */ |
| 82 | 81 | |
| 83 | int code = ( | |
| 82 | int code = ( | |
| 84 | 83 | int region = 1 + (code >> 7); |
| 85 | int colour = | |
| 84 | int colour = | |
| 86 | 85 | |
| 87 | SET_TILE_INFO(region, code & 0x7f, colour,0); | |
| 86 | SET_TILE_INFO_MEMBER(region, code & 0x7f, colour,0); | |
| 88 | 87 | } |
| 89 | 88 | |
| 90 | 89 | WRITE8_MEMBER(brkthru_state::brkthru_bgram_w) |
| r17673 | r17674 | |
| 95 | 94 | } |
| 96 | 95 | |
| 97 | 96 | |
| 98 | ||
| 97 | ||
| 99 | 98 | { |
| 100 | brkthru_state *state = machine.driver_data<brkthru_state>(); | |
| 101 | UINT8 code = state->m_fg_videoram[tile_index]; | |
| 102 | SET_TILE_INFO(0, code, 0, 0); | |
| 99 | UINT8 code = m_fg_videoram[tile_index]; | |
| 100 | SET_TILE_INFO_MEMBER(0, code, 0, 0); | |
| 103 | 101 | } |
| 104 | 102 | |
| 105 | 103 | WRITE8_MEMBER(brkthru_state::brkthru_fgram_w) |
| r17673 | r17674 | |
| 113 | 111 | { |
| 114 | 112 | brkthru_state *state = machine.driver_data<brkthru_state>(); |
| 115 | 113 | |
| 116 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 117 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_COLS, 16, 16, 32, 16); | |
| 114 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(brkthru_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 115 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(brkthru_state::get_bg_tile_info),state), TILEMAP_SCAN_COLS, 16, 16, 32, 16); | |
| 118 | 116 | |
| 119 | 117 | state->m_fg_tilemap->set_transparent_pen(0); |
| 120 | 118 | state->m_bg_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 280 | 280 | /******************************************************************************/ |
| 281 | 281 | |
| 282 | 282 | |
| 283 | ||
| 283 | ||
| 284 | 284 | { |
| 285 | dec8_state *state = machine.driver_data<dec8_state>(); | |
| 286 | 285 | int offs = tile_index << 1; |
| 287 | int tile = | |
| 286 | int tile = | |
| 288 | 287 | int color = (tile & 0xe000) >> 13; |
| 289 | 288 | |
| 290 | SET_TILE_INFO( | |
| 289 | SET_TILE_INFO_MEMBER( | |
| 291 | 290 | 0, |
| 292 | 291 | tile & 0xfff, |
| 293 | 292 | color, |
| r17673 | r17674 | |
| 297 | 296 | VIDEO_START( cobracom ) |
| 298 | 297 | { |
| 299 | 298 | dec8_state *state = machine.driver_data<dec8_state>(); |
| 300 | state->m_fix_tilemap = tilemap | |
| 299 | state->m_fix_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dec8_state::get_cobracom_fix_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 301 | 300 | |
| 302 | 301 | state->m_fix_tilemap->set_transparent_pen(0); |
| 303 | 302 | |
| r17673 | r17674 | |
| 318 | 317 | return 0; |
| 319 | 318 | } |
| 320 | 319 | |
| 321 | ||
| 320 | ||
| 322 | 321 | { |
| 323 | dec8_state *state = machine.driver_data<dec8_state>(); | |
| 324 | 322 | int offs = tile_index << 1; |
| 325 | int tile = | |
| 323 | int tile = | |
| 326 | 324 | int color = (tile & 0xc00) >> 10; |
| 327 | 325 | |
| 328 | SET_TILE_INFO( | |
| 326 | SET_TILE_INFO_MEMBER( | |
| 329 | 327 | 0, |
| 330 | 328 | tile & 0x3ff, |
| 331 | 329 | color, |
| r17673 | r17674 | |
| 335 | 333 | VIDEO_START( ghostb ) |
| 336 | 334 | { |
| 337 | 335 | dec8_state *state = machine.driver_data<dec8_state>(); |
| 338 | state->m_fix_tilemap = tilemap | |
| 336 | state->m_fix_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dec8_state::get_ghostb_fix_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 339 | 337 | state->m_fix_tilemap->set_transparent_pen(0); |
| 340 | 338 | |
| 341 | 339 | state->m_game_uses_priority = 0; |
| r17673 | r17674 | |
| 357 | 355 | return 0; |
| 358 | 356 | } |
| 359 | 357 | |
| 360 | ||
| 358 | ||
| 361 | 359 | { |
| 362 | dec8_state *state = machine.driver_data<dec8_state>(); | |
| 363 | 360 | int offs = tile_index << 1; |
| 364 | int tile = | |
| 361 | int tile = | |
| 365 | 362 | int color = (tile & 0xf000) >> 14; |
| 366 | 363 | |
| 367 | SET_TILE_INFO( | |
| 364 | SET_TILE_INFO_MEMBER( | |
| 368 | 365 | 0, |
| 369 | 366 | tile&0xfff, |
| 370 | 367 | color, |
| r17673 | r17674 | |
| 374 | 371 | VIDEO_START( oscar ) |
| 375 | 372 | { |
| 376 | 373 | dec8_state *state = machine.driver_data<dec8_state>(); |
| 377 | state->m_fix_tilemap = tilemap | |
| 374 | state->m_fix_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dec8_state::get_oscar_fix_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 378 | 375 | |
| 379 | 376 | state->m_fix_tilemap->set_transparent_pen(0); |
| 380 | 377 | |
| r17673 | r17674 | |
| 412 | 409 | return 0; |
| 413 | 410 | } |
| 414 | 411 | |
| 415 | ||
| 412 | ||
| 416 | 413 | { |
| 417 | 414 | /* logical (col,row) -> memory offset */ |
| 418 | 415 | return ((col & 0x0f) + ((row & 0x0f) << 4)) + ((col & 0x10) << 4) + ((row & 0x10) << 5); |
| 419 | 416 | } |
| 420 | 417 | |
| 421 | ||
| 418 | ||
| 422 | 419 | { |
| 423 | dec8_state *state = machine.driver_data<dec8_state>(); | |
| 424 | 420 | int offs = tile_index * 2; |
| 425 | int tile = | |
| 421 | int tile = | |
| 426 | 422 | int color = tile >> 12; |
| 427 | 423 | |
| 428 | if (color > 7 && | |
| 424 | if (color > 7 && | |
| 429 | 425 | tileinfo.category = 1; |
| 430 | 426 | else |
| 431 | 427 | tileinfo.category = 0; |
| 432 | 428 | |
| 433 | SET_TILE_INFO( | |
| 429 | SET_TILE_INFO_MEMBER( | |
| 434 | 430 | 2, |
| 435 | 431 | tile & 0xfff, |
| 436 | 432 | color, |
| 437 | 433 | 0); |
| 438 | 434 | } |
| 439 | 435 | |
| 440 | ||
| 436 | ||
| 441 | 437 | { |
| 442 | dec8_state *state = machine.driver_data<dec8_state>(); | |
| 443 | 438 | int offs = tile_index << 1; |
| 444 | int tile = | |
| 439 | int tile = | |
| 445 | 440 | int color = (tile & 0xc000) >> 14; |
| 446 | 441 | |
| 447 | SET_TILE_INFO( | |
| 442 | SET_TILE_INFO_MEMBER( | |
| 448 | 443 | 0, |
| 449 | 444 | tile&0xfff, |
| 450 | 445 | color, |
| r17673 | r17674 | |
| 454 | 449 | VIDEO_START( lastmisn ) |
| 455 | 450 | { |
| 456 | 451 | dec8_state *state = machine.driver_data<dec8_state>(); |
| 457 | state->m_bg_tilemap = tilemap_create(machine, get_lastmisn_tile_info, lastmisn_scan_rows, 16, 16, 32, 32); | |
| 458 | state->m_fix_tilemap = tilemap_create(machine, get_lastmisn_fix_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 452 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dec8_state::get_lastmisn_tile_info),state), tilemap_mapper_delegate(FUNC(dec8_state::lastmisn_scan_rows),state), 16, 16, 32, 32); | |
| 453 | state->m_fix_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dec8_state::get_lastmisn_fix_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 459 | 454 | |
| 460 | 455 | state->m_fix_tilemap->set_transparent_pen(0); |
| 461 | 456 | state->m_game_uses_priority = 0; |
| r17673 | r17674 | |
| 464 | 459 | VIDEO_START( shackled ) |
| 465 | 460 | { |
| 466 | 461 | dec8_state *state = machine.driver_data<dec8_state>(); |
| 467 | state->m_bg_tilemap = tilemap_create(machine, get_lastmisn_tile_info, lastmisn_scan_rows, 16, 16, 32, 32); | |
| 468 | state->m_fix_tilemap = tilemap_create(machine, get_lastmisn_fix_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 462 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dec8_state::get_lastmisn_tile_info),state), tilemap_mapper_delegate(FUNC(dec8_state::lastmisn_scan_rows),state), 16, 16, 32, 32); | |
| 463 | state->m_fix_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dec8_state::get_lastmisn_fix_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 469 | 464 | |
| 470 | 465 | state->m_fix_tilemap->set_transparent_pen(0); |
| 471 | 466 | state->m_bg_tilemap->set_transmask(0, 0x000f, 0xfff0); /* Bottom 12 pens */ |
| r17673 | r17674 | |
| 487 | 482 | return 0; |
| 488 | 483 | } |
| 489 | 484 | |
| 490 | ||
| 485 | ||
| 491 | 486 | { |
| 492 | dec8_state *state = machine.driver_data<dec8_state>(); | |
| 493 | int tile = state->m_videoram[tile_index]; | |
| 487 | int tile = m_videoram[tile_index]; | |
| 494 | 488 | int color = 0; /* ? */ |
| 495 | 489 | |
| 496 | 490 | if (color > 1) |
| r17673 | r17674 | |
| 498 | 492 | else |
| 499 | 493 | tileinfo.category = 0; |
| 500 | 494 | |
| 501 | SET_TILE_INFO( | |
| 495 | SET_TILE_INFO_MEMBER( | |
| 502 | 496 | 0, |
| 503 | 497 | tile, |
| 504 | 498 | color, |
| r17673 | r17674 | |
| 506 | 500 | } |
| 507 | 501 | |
| 508 | 502 | //AT: improved priority and fixed stage 4+ crashes caused by bank overflow |
| 509 | ||
| 503 | ||
| 510 | 504 | { |
| 511 | dec8_state *state = machine.driver_data<dec8_state>(); | |
| 512 | int tile = state->m_bg_data[2 * tile_index + 1] + (state->m_bg_data[2 * tile_index] << 8); | |
| 505 | int tile = m_bg_data[2 * tile_index + 1] + (m_bg_data[2 * tile_index] << 8); | |
| 513 | 506 | int color = tile >> 12 & 3; |
| 514 | 507 | int bank; |
| 515 | 508 | |
| 516 | 509 | tile = tile & 0x3ff; |
| 517 | 510 | bank = (tile / 0x100) + 2; |
| 518 | 511 | |
| 519 | SET_TILE_INFO( | |
| 512 | SET_TILE_INFO_MEMBER( | |
| 520 | 513 | bank, |
| 521 | 514 | tile, |
| 522 | 515 | color, |
| r17673 | r17674 | |
| 527 | 520 | VIDEO_START( srdarwin ) |
| 528 | 521 | { |
| 529 | 522 | dec8_state *state = machine.driver_data<dec8_state>(); |
| 530 | state->m_bg_tilemap = tilemap_create(machine, get_srdarwin_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 16); | |
| 531 | state->m_fix_tilemap = tilemap_create(machine, get_srdarwin_fix_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 523 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dec8_state::get_srdarwin_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 16); | |
| 524 | state->m_fix_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dec8_state::get_srdarwin_fix_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 532 | 525 | |
| 533 | 526 | state->m_fix_tilemap->set_transparent_pen(0); |
| 534 | 527 | state->m_bg_tilemap->set_transmask(0, 0xffff, 0x0000); //* draw as background only |
| r17673 | r17674 | |
| 566 | 559 | return 0; |
| 567 | 560 | } |
| 568 | 561 | |
| 569 | ||
| 562 | ||
| 570 | 563 | { |
| 571 | dec8_state *state = machine.driver_data<dec8_state>(); | |
| 572 | 564 | int offs = tile_index * 2; |
| 573 | int tile = | |
| 565 | int tile = | |
| 574 | 566 | int color = (tile & 0x7000) >> 12; |
| 575 | 567 | |
| 576 | SET_TILE_INFO( | |
| 568 | SET_TILE_INFO_MEMBER( | |
| 577 | 569 | 0, |
| 578 | 570 | tile&0xfff, |
| 579 | 571 | color, |
| 580 | 572 | 0); |
| 581 | 573 | } |
| 582 | 574 | |
| 583 | ||
| 575 | ||
| 584 | 576 | { |
| 585 | dec8_state *state = machine.driver_data<dec8_state>(); | |
| 586 | 577 | int offs = tile_index * 2; |
| 587 | int tile = | |
| 578 | int tile = | |
| 588 | 579 | int color = tile>> 12; |
| 589 | 580 | |
| 590 | if (color > 7 && | |
| 581 | if (color > 7 && | |
| 591 | 582 | tileinfo.category = 1; |
| 592 | 583 | else |
| 593 | 584 | tileinfo.category = 0; |
| 594 | 585 | |
| 595 | SET_TILE_INFO( | |
| 586 | SET_TILE_INFO_MEMBER( | |
| 596 | 587 | 2, |
| 597 | 588 | tile&0xfff, |
| 598 | 589 | color, |
| r17673 | r17674 | |
| 602 | 593 | VIDEO_START( gondo ) |
| 603 | 594 | { |
| 604 | 595 | dec8_state *state = machine.driver_data<dec8_state>(); |
| 605 | state->m_fix_tilemap = tilemap_create(machine, get_gondo_fix_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 606 | state->m_bg_tilemap = tilemap_create(machine, get_gondo_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 596 | state->m_fix_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dec8_state::get_gondo_fix_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 597 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dec8_state::get_gondo_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 607 | 598 | |
| 608 | 599 | state->m_fix_tilemap->set_transparent_pen(0); |
| 609 | 600 | state->m_bg_tilemap->set_transmask(0, 0x00ff, 0xff00); /* Bottom 8 pens */ |
| r17673 | r17674 | |
| 613 | 604 | VIDEO_START( garyoret ) |
| 614 | 605 | { |
| 615 | 606 | dec8_state *state = machine.driver_data<dec8_state>(); |
| 616 | state->m_fix_tilemap = tilemap_create(machine, get_gondo_fix_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 617 | state->m_bg_tilemap = tilemap_create(machine, get_gondo_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 607 | state->m_fix_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dec8_state::get_gondo_fix_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 608 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(dec8_state::get_gondo_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 618 | 609 | |
| 619 | 610 | state->m_fix_tilemap->set_transparent_pen(0); |
| 620 | 611 | state->m_game_uses_priority = 1; |
| r17673 | r17674 | |
|---|---|---|
| 56 | 56 | SET_TILE_INFO(1 + _N_, code, (attr & 0x3f) >> 4, TILE_FLIPYX((attr >> 6) & 3)); |
| 57 | 57 | } |
| 58 | 58 | |
| 59 | static TILE_GET_INFO( get_tile_info_0 ) { get_tile_info8bpp(machine, tileinfo, tile_index, 0); } | |
| 60 | static TILE_GET_INFO( get_tile_info_1 ) { get_tile_info8bpp(machine, tileinfo, tile_index, 1); } | |
| 59 | TILE_GET_INFO_MEMBER(fuuki32_state::get_tile_info_0){ get_tile_info8bpp(machine(), tileinfo, tile_index, 0); } | |
| 60 | TILE_GET_INFO_MEMBER(fuuki32_state::get_tile_info_1){ get_tile_info8bpp(machine(), tileinfo, tile_index, 1); } | |
| 61 | 61 | |
| 62 | 62 | INLINE void get_tile_info4bpp(running_machine &machine, tile_data &tileinfo, tilemap_memory_index tile_index, int _N_) |
| 63 | 63 | { |
| r17673 | r17674 | |
| 67 | 67 | SET_TILE_INFO(1 + _N_, code, attr & 0x3f, TILE_FLIPYX((attr >> 6) & 3)); |
| 68 | 68 | } |
| 69 | 69 | |
| 70 | static TILE_GET_INFO( get_tile_info_2 ) { get_tile_info4bpp(machine, tileinfo, tile_index, 2); } | |
| 71 | static TILE_GET_INFO( get_tile_info_3 ) { get_tile_info4bpp(machine, tileinfo, tile_index, 3); } | |
| 70 | TILE_GET_INFO_MEMBER(fuuki32_state::get_tile_info_2){ get_tile_info4bpp(machine(), tileinfo, tile_index, 2); } | |
| 71 | TILE_GET_INFO_MEMBER(fuuki32_state::get_tile_info_3){ get_tile_info4bpp(machine(), tileinfo, tile_index, 3); } | |
| 72 | 72 | |
| 73 | 73 | INLINE void fuuki32_vram_w(address_space *space, offs_t offset, UINT32 data, UINT32 mem_mask, int _N_) |
| 74 | 74 | { |
| r17673 | r17674 | |
| 100 | 100 | state->save_pointer(NAME(state->m_buf_spriteram), state->m_spriteram.bytes() / 4); |
| 101 | 101 | state->save_pointer(NAME(state->m_buf_spriteram2), state->m_spriteram.bytes() / 4); |
| 102 | 102 | |
| 103 | state->m_tilemap[0] = tilemap_create(machine, get_tile_info_0, TILEMAP_SCAN_ROWS, 16, 16, 64, 32); | |
| 104 | state->m_tilemap[1] = tilemap_create(machine, get_tile_info_1, TILEMAP_SCAN_ROWS, 16, 16, 64, 32); | |
| 105 | state->m_tilemap[2] = tilemap_create(machine, get_tile_info_2, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 106 | state->m_tilemap[3] = tilemap_create(machine, get_tile_info_3, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 103 | state->m_tilemap[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fuuki32_state::get_tile_info_0),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); | |
| 104 | state->m_tilemap[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fuuki32_state::get_tile_info_1),state), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); | |
| 105 | state->m_tilemap[2] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fuuki32_state::get_tile_info_2),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 106 | state->m_tilemap[3] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(fuuki32_state::get_tile_info_3),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 107 | 107 | |
| 108 | 108 | state->m_tilemap[0]->set_transparent_pen(0xff); // 8 bits |
| 109 | 109 | state->m_tilemap[1]->set_transparent_pen(0xff); // 8 bits |
| r17673 | r17674 | |
|---|---|---|
| 8 | 8 | |
| 9 | 9 | /* Foreground Layer (tx) Tilemap */ |
| 10 | 10 | |
| 11 | ||
| 11 | ||
| 12 | 12 | { |
| 13 | tbowl_state *state = machine.driver_data<tbowl_state>(); | |
| 14 | 13 | int tileno; |
| 15 | 14 | int col; |
| 16 | 15 | |
| 17 | tileno = state->m_txvideoram[tile_index] | ((state->m_txvideoram[tile_index+0x800] & 0x07) << 8); | |
| 18 | col = (state->m_txvideoram[tile_index+0x800] & 0xf0) >> 4; | |
| 16 | tileno = m_txvideoram[tile_index] | ((m_txvideoram[tile_index+0x800] & 0x07) << 8); | |
| 17 | col = (m_txvideoram[tile_index+0x800] & 0xf0) >> 4; | |
| 19 | 18 | |
| 20 | SET_TILE_INFO(0,tileno,col,0); | |
| 19 | SET_TILE_INFO_MEMBER(0,tileno,col,0); | |
| 21 | 20 | } |
| 22 | 21 | |
| 23 | 22 | WRITE8_MEMBER(tbowl_state::tbowl_txvideoram_w) |
| r17673 | r17674 | |
| 28 | 27 | |
| 29 | 28 | /* Bottom BG Layer (bg) Tilemap */ |
| 30 | 29 | |
| 31 | ||
| 30 | ||
| 32 | 31 | { |
| 33 | tbowl_state *state = machine.driver_data<tbowl_state>(); | |
| 34 | 32 | int tileno; |
| 35 | 33 | int col; |
| 36 | 34 | |
| 37 | tileno = state->m_bgvideoram[tile_index] | ((state->m_bgvideoram[tile_index+0x1000] & 0x0f) << 8); | |
| 38 | col = (state->m_bgvideoram[tile_index+0x1000] & 0xf0) >> 4; | |
| 35 | tileno = m_bgvideoram[tile_index] | ((m_bgvideoram[tile_index+0x1000] & 0x0f) << 8); | |
| 36 | col = (m_bgvideoram[tile_index+0x1000] & 0xf0) >> 4; | |
| 39 | 37 | |
| 40 | SET_TILE_INFO(1,tileno,col,0); | |
| 38 | SET_TILE_INFO_MEMBER(1,tileno,col,0); | |
| 41 | 39 | } |
| 42 | 40 | |
| 43 | 41 | WRITE8_MEMBER(tbowl_state::tbowl_bg2videoram_w) |
| r17673 | r17674 | |
| 68 | 66 | |
| 69 | 67 | /* Middle BG Layer (bg2) Tilemaps */ |
| 70 | 68 | |
| 71 | ||
| 69 | ||
| 72 | 70 | { |
| 73 | tbowl_state *state = machine.driver_data<tbowl_state>(); | |
| 74 | 71 | int tileno; |
| 75 | 72 | int col; |
| 76 | 73 | |
| 77 | tileno = | |
| 74 | tileno = | |
| 78 | 75 | tileno ^= 0x400; |
| 79 | col = ( | |
| 76 | col = ( | |
| 80 | 77 | |
| 81 | SET_TILE_INFO(2,tileno,col,0); | |
| 78 | SET_TILE_INFO_MEMBER(2,tileno,col,0); | |
| 82 | 79 | } |
| 83 | 80 | |
| 84 | 81 | WRITE8_MEMBER(tbowl_state::tbowl_bgvideoram_w) |
| r17673 | r17674 | |
| 193 | 190 | VIDEO_START( tbowl ) |
| 194 | 191 | { |
| 195 | 192 | tbowl_state *state = machine.driver_data<tbowl_state>(); |
| 196 | state->m_tx_tilemap = tilemap_create(machine, get_tx_tile_info,TILEMAP_SCAN_ROWS, 8, 8,64,32); | |
| 197 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_ROWS, 16, 16,128,32); | |
| 198 | state->m_bg2_tilemap = tilemap_create(machine, get_bg2_tile_info,TILEMAP_SCAN_ROWS, 16, 16,128,32); | |
| 193 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tbowl_state::get_tx_tile_info),state),TILEMAP_SCAN_ROWS, 8, 8,64,32); | |
| 194 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tbowl_state::get_bg_tile_info),state),TILEMAP_SCAN_ROWS, 16, 16,128,32); | |
| 195 | state->m_bg2_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tbowl_state::get_bg2_tile_info),state),TILEMAP_SCAN_ROWS, 16, 16,128,32); | |
| 199 | 196 | |
| 200 | 197 | state->m_tx_tilemap->set_transparent_pen(0); |
| 201 | 198 | state->m_bg_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 92 | 92 | m_video_ctrl = data; |
| 93 | 93 | } |
| 94 | 94 | |
| 95 | ||
| 95 | ||
| 96 | 96 | { |
| 97 | battlane_state *state = machine.driver_data<battlane_state>(); | |
| 98 | int code = state->m_tileram[tile_index]; | |
| 99 | int attr = state->m_tileram[tile_index + 0x400]; | |
| 97 | int code = m_tileram[tile_index]; | |
| 98 | int attr = m_tileram[tile_index + 0x400]; | |
| 100 | 99 | int gfxn = (attr & 0x01) + 1; |
| 101 | 100 | int color = (attr >> 1) & 0x03; |
| 102 | 101 | |
| 103 | SET_TILE_INFO(gfxn, code, color, 0); | |
| 102 | SET_TILE_INFO_MEMBER(gfxn, code, color, 0); | |
| 104 | 103 | } |
| 105 | 104 | |
| 106 | ||
| 105 | ||
| 107 | 106 | { |
| 108 | 107 | /* |
| 109 | 108 | Tilemap Memory Organization |
| r17673 | r17674 | |
| 137 | 136 | VIDEO_START( battlane ) |
| 138 | 137 | { |
| 139 | 138 | battlane_state *state = machine.driver_data<battlane_state>(); |
| 140 | state->m_bg_tilemap = tilemap | |
| 139 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(battlane_state::get_tile_info_bg),state), tilemap_mapper_delegate(FUNC(battlane_state::battlane_tilemap_scan_rows_2x2),state), 16, 16, 32, 32); | |
| 141 | 140 | state->m_screen_bitmap.allocate(32 * 8, 32 * 8); |
| 142 | 141 | } |
| 143 | 142 |
| r17673 | r17674 | |
|---|---|---|
| 42 | 42 | * |
| 43 | 43 | *************************************/ |
| 44 | 44 | |
| 45 | ||
| 45 | ||
| 46 | 46 | { |
| 47 | atarigt_state *state = machine.driver_data<atarigt_state>(); | |
| 48 | UINT16 data = state->m_alpha32[tile_index / 2] >> (16 * (~tile_index & 1)); | |
| 47 | UINT16 data = m_alpha32[tile_index / 2] >> (16 * (~tile_index & 1)); | |
| 49 | 48 | int code = data & 0xfff; |
| 50 | 49 | int color = (data >> 12) & 0x0f; |
| 51 | SET_TILE_INFO(1, code, color, 0); | |
| 50 | SET_TILE_INFO_MEMBER(1, code, color, 0); | |
| 52 | 51 | } |
| 53 | 52 | |
| 54 | 53 | |
| 55 | ||
| 54 | ||
| 56 | 55 | { |
| 57 | atarigt_state *state = machine.driver_data<atarigt_state>(); | |
| 58 | UINT16 data = state->m_playfield32[tile_index / 2] >> (16 * (~tile_index & 1)); | |
| 59 | int code = (state->m_playfield_tile_bank << 12) | (data & 0xfff); | |
| 56 | UINT16 data = m_playfield32[tile_index / 2] >> (16 * (~tile_index & 1)); | |
| 57 | int code = (m_playfield_tile_bank << 12) | (data & 0xfff); | |
| 60 | 58 | int color = (data >> 12) & 7; |
| 61 | SET_TILE_INFO(0, code, color, (data >> 15) & 1); | |
| 59 | SET_TILE_INFO_MEMBER(0, code, color, (data >> 15) & 1); | |
| 62 | 60 | } |
| 63 | 61 | |
| 64 | 62 | |
| 65 | ||
| 63 | ||
| 66 | 64 | { |
| 67 | 65 | int bank = 1 - (col / (num_cols / 2)); |
| 68 | 66 | return bank * (num_rows * num_cols / 2) + row * (num_cols / 2) + (col % (num_cols / 2)); |
| r17673 | r17674 | |
| 86 | 84 | atarigen_blend_gfx(machine, 0, 2, 0x0f, 0x30); |
| 87 | 85 | |
| 88 | 86 | /* initialize the playfield */ |
| 89 | state->m_playfield_tilemap = tilemap | |
| 87 | state->m_playfield_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(atarigt_state::get_playfield_tile_info),state), tilemap_mapper_delegate(FUNC(atarigt_state::atarigt_playfield_scan),state), 8,8, 128,64); | |
| 90 | 88 | |
| 91 | 89 | /* initialize the motion objects */ |
| 92 | 90 | state->m_rle = machine.device("rle"); |
| 93 | 91 | |
| 94 | 92 | /* initialize the alphanumerics */ |
| 95 | state->m_alpha_tilemap = tilemap | |
| 93 | state->m_alpha_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(atarigt_state::get_alpha_tile_info),state), TILEMAP_SCAN_ROWS, 8,8, 64,32); | |
| 96 | 94 | |
| 97 | 95 | /* allocate temp bitmaps */ |
| 98 | 96 | width = machine.primary_screen->width(); |
| r17673 | r17674 | |
|---|---|---|
| 95 | 95 | |
| 96 | 96 | ***************************************************************************/ |
| 97 | 97 | |
| 98 | ||
| 98 | ||
| 99 | 99 | { |
| 100 | thepit_state *state = machine.driver_data<thepit_state>(); | |
| 101 | UINT8 back_color = (state->m_colorram[tile_index] & 0x70) >> 4; | |
| 102 | int priority = (back_color != 0) && ((state->m_colorram[tile_index] & 0x80) == 0); | |
| 103 | tileinfo.pen_data = state->m_dummy_tile; | |
| 100 | UINT8 back_color = (m_colorram[tile_index] & 0x70) >> 4; | |
| 101 | int priority = (back_color != 0) && ((m_colorram[tile_index] & 0x80) == 0); | |
| 102 | tileinfo.pen_data = m_dummy_tile; | |
| 104 | 103 | tileinfo.palette_base = back_color + 32; |
| 105 | 104 | tileinfo.category = priority; |
| 106 | 105 | } |
| 107 | 106 | |
| 108 | 107 | |
| 109 | ||
| 108 | ||
| 110 | 109 | { |
| 111 | thepit_state *state = machine.driver_data<thepit_state>(); | |
| 112 | UINT8 fore_color = state->m_colorram[tile_index] % machine.gfx[0]->colors(); | |
| 113 | UINT8 code = state->m_videoram[tile_index]; | |
| 114 | SET_TILE_INFO(2 * state->m_graphics_bank, code, fore_color, 0); | |
| 110 | UINT8 fore_color = m_colorram[tile_index] % machine().gfx[0]->colors(); | |
| 111 | UINT8 code = m_videoram[tile_index]; | |
| 112 | SET_TILE_INFO_MEMBER(2 * m_graphics_bank, code, fore_color, 0); | |
| 115 | 113 | } |
| 116 | 114 | |
| 117 | 115 | |
| r17673 | r17674 | |
| 125 | 123 | VIDEO_START( thepit ) |
| 126 | 124 | { |
| 127 | 125 | thepit_state *state = machine.driver_data<thepit_state>(); |
| 128 | state->m_solid_tilemap = tilemap | |
| 126 | state->m_solid_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(thepit_state::solid_get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 129 | 127 | |
| 130 | state->m_tilemap = tilemap | |
| 128 | state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(thepit_state::get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 131 | 129 | state->m_tilemap->set_transparent_pen(0); |
| 132 | 130 | |
| 133 | 131 | state->m_solid_tilemap->set_scroll_cols(32); |
| r17673 | r17674 | |
|---|---|---|
| 21 | 21 | * |
| 22 | 22 | *************************************/ |
| 23 | 23 | |
| 24 | ||
| 24 | ||
| 25 | 25 | { |
| 26 | rpunch_state *state = machine.driver_data<rpunch_state>(); | |
| 27 | UINT16 *videoram = state->m_videoram; | |
| 26 | UINT16 *videoram = m_videoram; | |
| 28 | 27 | int data = videoram[tile_index]; |
| 29 | 28 | int code; |
| 30 | if ( | |
| 29 | if ( | |
| 31 | 30 | else code = (data & 0x1fff); |
| 32 | 31 | |
| 33 | SET_TILE_INFO( | |
| 32 | SET_TILE_INFO_MEMBER( | |
| 34 | 33 | 0, |
| 35 | 34 | code, |
| 36 | (( | |
| 35 | (( | |
| 37 | 36 | 0); |
| 38 | 37 | } |
| 39 | 38 | |
| 40 | ||
| 39 | ||
| 41 | 40 | { |
| 42 | rpunch_state *state = machine.driver_data<rpunch_state>(); | |
| 43 | UINT16 *videoram = state->m_videoram; | |
| 41 | UINT16 *videoram = m_videoram; | |
| 44 | 42 | int data = videoram[0x2000 / 2 + tile_index]; |
| 45 | 43 | int code; |
| 46 | if ( | |
| 44 | if ( | |
| 47 | 45 | else code = (data & 0x1fff); |
| 48 | 46 | |
| 49 | SET_TILE_INFO( | |
| 47 | SET_TILE_INFO_MEMBER( | |
| 50 | 48 | 1, |
| 51 | 49 | code, |
| 52 | (( | |
| 50 | (( | |
| 53 | 51 | 0); |
| 54 | 52 | } |
| 55 | 53 | |
| r17673 | r17674 | |
| 73 | 71 | { |
| 74 | 72 | rpunch_state *state = machine.driver_data<rpunch_state>(); |
| 75 | 73 | /* allocate tilemaps for the backgrounds */ |
| 76 | state->m_background[0] = tilemap_create(machine, get_bg0_tile_info,TILEMAP_SCAN_COLS,8,8,64,64); | |
| 77 | state->m_background[1] = tilemap_create(machine, get_bg1_tile_info,TILEMAP_SCAN_COLS,8,8,64,64); | |
| 74 | state->m_background[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rpunch_state::get_bg0_tile_info),state),TILEMAP_SCAN_COLS,8,8,64,64); | |
| 75 | state->m_background[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(rpunch_state::get_bg1_tile_info),state),TILEMAP_SCAN_COLS,8,8,64,64); | |
| 78 | 76 | |
| 79 | 77 | /* configure the tilemaps */ |
| 80 | 78 | state->m_background[1]->set_transparent_pen(15); |
| r17673 | r17674 | |
|---|---|---|
| 8 | 8 | #include "includes/triplhnt.h" |
| 9 | 9 | |
| 10 | 10 | |
| 11 | ||
| 11 | ||
| 12 | 12 | { |
| 13 | triplhnt_state *state = machine.driver_data<triplhnt_state>(); | |
| 14 | int code = state->m_playfield_ram[tile_index] & 0x3f; | |
| 13 | int code = m_playfield_ram[tile_index] & 0x3f; | |
| 15 | 14 | |
| 16 | SET_TILE_INFO(2, code, code == 0x3f ? 1 : 0, 0); | |
| 15 | SET_TILE_INFO_MEMBER(2, code, code == 0x3f ? 1 : 0, 0); | |
| 17 | 16 | } |
| 18 | 17 | |
| 19 | 18 | |
| r17673 | r17674 | |
| 22 | 21 | triplhnt_state *state = machine.driver_data<triplhnt_state>(); |
| 23 | 22 | machine.primary_screen->register_screen_bitmap(state->m_helper); |
| 24 | 23 | |
| 25 | state->m_bg_tilemap = tilemap | |
| 24 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(triplhnt_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 16, 16); | |
| 26 | 25 | } |
| 27 | 26 | |
| 28 | 27 |
| r17673 | r17674 | |
|---|---|---|
| 96 | 96 | * |
| 97 | 97 | *************************************/ |
| 98 | 98 | |
| 99 | ||
| 99 | ||
| 100 | 100 | { |
| 101 | pooyan_state *state = machine.driver_data<pooyan_state>(); | |
| 102 | int attr = state->m_colorram[tile_index]; | |
| 103 | int code = state->m_videoram[tile_index]; | |
| 101 | int attr = m_colorram[tile_index]; | |
| 102 | int code = m_videoram[tile_index]; | |
| 104 | 103 | int color = attr & 0x0f; |
| 105 | 104 | int flags = TILE_FLIPYX(attr >> 6); |
| 106 | 105 | |
| 107 | SET_TILE_INFO(0, code, color, flags); | |
| 106 | SET_TILE_INFO_MEMBER(0, code, color, flags); | |
| 108 | 107 | } |
| 109 | 108 | |
| 110 | 109 | |
| r17673 | r17674 | |
| 118 | 117 | VIDEO_START( pooyan ) |
| 119 | 118 | { |
| 120 | 119 | pooyan_state *state = machine.driver_data<pooyan_state>(); |
| 121 | state->m_bg_tilemap = tilemap | |
| 120 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pooyan_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 122 | 121 | } |
| 123 | 122 | |
| 124 | 123 |
| r17673 | r17674 | |
|---|---|---|
| 42 | 42 | |
| 43 | 43 | ***************************************************************************/ |
| 44 | 44 | |
| 45 | ||
| 45 | ||
| 46 | 46 | { |
| 47 | sidepckt_state *state = machine.driver_data<sidepckt_state>(); | |
| 48 | UINT8 attr = state->m_colorram[tile_index]; | |
| 49 | SET_TILE_INFO( | |
| 47 | UINT8 attr = m_colorram[tile_index]; | |
| 48 | SET_TILE_INFO_MEMBER( | |
| 50 | 49 | 0, |
| 51 | | |
| 50 | | |
| 52 | 51 | ((attr & 0x10) >> 3) | ((attr & 0x20) >> 5), |
| 53 | 52 | TILE_FLIPX); |
| 54 | 53 | tileinfo.group = (attr & 0x80) >> 7; |
| r17673 | r17674 | |
| 65 | 64 | VIDEO_START( sidepckt ) |
| 66 | 65 | { |
| 67 | 66 | sidepckt_state *state = machine.driver_data<sidepckt_state>(); |
| 68 | state->m_bg_tilemap = tilemap | |
| 67 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(sidepckt_state::get_tile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32); | |
| 69 | 68 | |
| 70 | 69 | state->m_bg_tilemap->set_transmask(0,0xff,0x00); /* split type 0 is totally transparent in front half */ |
| 71 | 70 | state->m_bg_tilemap->set_transmask(1,0x01,0xfe); /* split type 1 has pen 0 transparent in front half */ |
| r17673 | r17674 | |
|---|---|---|
| 6 | 6 | |
| 7 | 7 | /* tilemaps */ |
| 8 | 8 | |
| 9 | ||
| 9 | ||
| 10 | 10 | { |
| 11 | pirates_state *state = machine.driver_data<pirates_state>(); | |
| 12 | int code = state->m_tx_tileram[tile_index*2]; | |
| 13 | int colr = state->m_tx_tileram[tile_index*2+1]; | |
| 11 | int code = m_tx_tileram[tile_index*2]; | |
| 12 | int colr = m_tx_tileram[tile_index*2+1]; | |
| 14 | 13 | |
| 15 | SET_TILE_INFO(0,code,colr,0); | |
| 14 | SET_TILE_INFO_MEMBER(0,code,colr,0); | |
| 16 | 15 | } |
| 17 | 16 | |
| 18 | ||
| 17 | ||
| 19 | 18 | { |
| 20 | pirates_state *state = machine.driver_data<pirates_state>(); | |
| 21 | int code = state->m_fg_tileram[tile_index*2]; | |
| 22 | int colr = state->m_fg_tileram[tile_index*2+1]+0x80; | |
| 19 | int code = m_fg_tileram[tile_index*2]; | |
| 20 | int colr = m_fg_tileram[tile_index*2+1]+0x80; | |
| 23 | 21 | |
| 24 | SET_TILE_INFO(0,code,colr,0); | |
| 22 | SET_TILE_INFO_MEMBER(0,code,colr,0); | |
| 25 | 23 | } |
| 26 | 24 | |
| 27 | ||
| 25 | ||
| 28 | 26 | { |
| 29 | pirates_state *state = machine.driver_data<pirates_state>(); | |
| 30 | int code = state->m_bg_tileram[tile_index*2]; | |
| 31 | int colr = state->m_bg_tileram[tile_index*2+1]+ 0x100; | |
| 27 | int code = m_bg_tileram[tile_index*2]; | |
| 28 | int colr = m_bg_tileram[tile_index*2+1]+ 0x100; | |
| 32 | 29 | |
| 33 | SET_TILE_INFO(0,code,colr,0); | |
| 30 | SET_TILE_INFO_MEMBER(0,code,colr,0); | |
| 34 | 31 | } |
| 35 | 32 | |
| 36 | 33 | |
| r17673 | r17674 | |
| 39 | 36 | VIDEO_START(pirates) |
| 40 | 37 | { |
| 41 | 38 | pirates_state *state = machine.driver_data<pirates_state>(); |
| 42 | state->m_tx_tilemap = tilemap | |
| 39 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pirates_state::get_tx_tile_info),state),TILEMAP_SCAN_COLS,8,8,36,32); | |
| 43 | 40 | |
| 44 | 41 | /* Not sure how big they can be, Pirates uses only 32 columns, Genix 44 */ |
| 45 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info,TILEMAP_SCAN_COLS,8,8,64,32); | |
| 46 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info,TILEMAP_SCAN_COLS, 8,8,64,32); | |
| 42 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pirates_state::get_fg_tile_info),state),TILEMAP_SCAN_COLS,8,8,64,32); | |
| 43 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(pirates_state::get_bg_tile_info),state),TILEMAP_SCAN_COLS, 8,8,64,32); | |
| 47 | 44 | |
| 48 | 45 | state->m_tx_tilemap->set_transparent_pen(0); |
| 49 | 46 | state->m_fg_tilemap->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 66 | 66 | m_bg_tilemap->mark_tile_dirty(offset); |
| 67 | 67 | } |
| 68 | 68 | |
| 69 | ||
| 69 | ||
| 70 | 70 | { |
| 71 | tankbatt_state *state = machine.driver_data<tankbatt_state>(); | |
| 72 | UINT8 *videoram = state->m_videoram; | |
| 71 | UINT8 *videoram = m_videoram; | |
| 73 | 72 | int code = videoram[tile_index]; |
| 74 | 73 | int color = videoram[tile_index] | 0x01; |
| 75 | 74 | |
| 76 | SET_TILE_INFO(0, code, color, 0); | |
| 75 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 77 | 76 | } |
| 78 | 77 | |
| 79 | 78 | VIDEO_START( tankbatt ) |
| 80 | 79 | { |
| 81 | 80 | tankbatt_state *state = machine.driver_data<tankbatt_state>(); |
| 82 | state->m_bg_tilemap = tilemap | |
| 81 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(tankbatt_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 83 | 82 | } |
| 84 | 83 | |
| 85 | 84 | static void draw_bullets(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| r17673 | r17674 | |
|---|---|---|
| 34 | 34 | 1 | xxx----- -------- | not used? |
| 35 | 35 | */ |
| 36 | 36 | |
| 37 | ||
| 37 | ||
| 38 | 38 | { |
| 39 | wrally_state *state = machine.driver_data<wrally_state>(); | |
| 40 | int data = state->m_videoram[tile_index << 1]; | |
| 41 | int data2 = state->m_videoram[(tile_index << 1) + 1]; | |
| 39 | int data = m_videoram[tile_index << 1]; | |
| 40 | int data2 = m_videoram[(tile_index << 1) + 1]; | |
| 42 | 41 | int code = data & 0x3fff; |
| 43 | 42 | |
| 44 | 43 | tileinfo.category = (data2 >> 5) & 0x01; |
| 45 | 44 | |
| 46 | SET_TILE_INFO(0, code, data2 & 0x1f, TILE_FLIPYX((data2 >> 6) & 0x03)); | |
| 45 | SET_TILE_INFO_MEMBER(0, code, data2 & 0x1f, TILE_FLIPYX((data2 >> 6) & 0x03)); | |
| 47 | 46 | } |
| 48 | 47 | |
| 49 | ||
| 48 | ||
| 50 | 49 | { |
| 51 | wrally_state *state = machine.driver_data<wrally_state>(); | |
| 52 | int data = state->m_videoram[(0x2000/2) + (tile_index << 1)]; | |
| 53 | int data2 = state->m_videoram[(0x2000/2) + (tile_index << 1) + 1]; | |
| 50 | int data = m_videoram[(0x2000/2) + (tile_index << 1)]; | |
| 51 | int data2 = m_videoram[(0x2000/2) + (tile_index << 1) + 1]; | |
| 54 | 52 | int code = data & 0x3fff; |
| 55 | 53 | |
| 56 | 54 | tileinfo.category = (data2 >> 5) & 0x01; |
| 57 | 55 | |
| 58 | SET_TILE_INFO(0, code, data2 & 0x1f, TILE_FLIPYX((data2 >> 6) & 0x03)); | |
| 56 | SET_TILE_INFO_MEMBER(0, code, data2 & 0x1f, TILE_FLIPYX((data2 >> 6) & 0x03)); | |
| 59 | 57 | } |
| 60 | 58 | |
| 61 | 59 | /*************************************************************************** |
| r17673 | r17674 | |
| 67 | 65 | VIDEO_START( wrally ) |
| 68 | 66 | { |
| 69 | 67 | wrally_state *state = machine.driver_data<wrally_state>(); |
| 70 | state->m_pant[0] = tilemap_create(machine, get_tile_info_wrally_screen0,TILEMAP_SCAN_ROWS,16,16,64,32); | |
| 71 | state->m_pant[1] = tilemap_create(machine, get_tile_info_wrally_screen1,TILEMAP_SCAN_ROWS,16,16,64,32); | |
| 68 | state->m_pant[0] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wrally_state::get_tile_info_wrally_screen0),state),TILEMAP_SCAN_ROWS,16,16,64,32); | |
| 69 | state->m_pant[1] = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(wrally_state::get_tile_info_wrally_screen1),state),TILEMAP_SCAN_ROWS,16,16,64,32); | |
| 72 | 70 | |
| 73 | 71 | state->m_pant[0]->set_transmask(0,0xff01,0x00ff); /* this layer is split in two (pens 1..7, pens 8-15) */ |
| 74 | 72 | state->m_pant[1]->set_transparent_pen(0); |
| r17673 | r17674 | |
|---|---|---|
| 15 | 15 | |
| 16 | 16 | ***************************************************************************/ |
| 17 | 17 | |
| 18 | ||
| 18 | ||
| 19 | 19 | { |
| 20 | mosaic_state *state = machine.driver_data<mosaic_state>(); | |
| 21 | 20 | tile_index *= 2; |
| 22 | SET_TILE_INFO( | |
| 21 | SET_TILE_INFO_MEMBER( | |
| 23 | 22 | 0, |
| 24 | | |
| 23 | | |
| 25 | 24 | 0, |
| 26 | 25 | 0); |
| 27 | 26 | } |
| 28 | 27 | |
| 29 | ||
| 28 | ||
| 30 | 29 | { |
| 31 | mosaic_state *state = machine.driver_data<mosaic_state>(); | |
| 32 | 30 | tile_index *= 2; |
| 33 | SET_TILE_INFO( | |
| 31 | SET_TILE_INFO_MEMBER( | |
| 34 | 32 | 1, |
| 35 | | |
| 33 | | |
| 36 | 34 | 0, |
| 37 | 35 | 0); |
| 38 | 36 | } |
| r17673 | r17674 | |
| 49 | 47 | { |
| 50 | 48 | mosaic_state *state = machine.driver_data<mosaic_state>(); |
| 51 | 49 | |
| 52 | state->m_fg_tilemap = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 53 | state->m_bg_tilemap = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 50 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mosaic_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 51 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(mosaic_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64, 32); | |
| 54 | 52 | |
| 55 | 53 | state->m_fg_tilemap->set_transparent_pen(0xff); |
| 56 | 54 | } |
| r17673 | r17674 | |
|---|---|---|
| 88 | 88 | m_bg_layer->mark_tile_dirty(offset); |
| 89 | 89 | } |
| 90 | 90 | |
| 91 | ||
| 91 | ||
| 92 | 92 | { |
| 93 | crospang_state *state = machine.driver_data<crospang_state>(); | |
| 94 | int data = state->m_bg_videoram[tile_index]; | |
| 93 | int data = m_bg_videoram[tile_index]; | |
| 95 | 94 | int tile = data & 0xfff; |
| 96 | 95 | int color = (data >> 12) & 0x0f; |
| 97 | 96 | |
| 98 | SET_TILE_INFO(1, tile + | |
| 97 | SET_TILE_INFO_MEMBER(1, tile + | |
| 99 | 98 | } |
| 100 | 99 | |
| 101 | ||
| 100 | ||
| 102 | 101 | { |
| 103 | crospang_state *state = machine.driver_data<crospang_state>(); | |
| 104 | int data = state->m_fg_videoram[tile_index]; | |
| 102 | int data = m_fg_videoram[tile_index]; | |
| 105 | 103 | int tile = data & 0xfff; |
| 106 | 104 | int color = (data >> 12) & 0x0f; |
| 107 | 105 | |
| 108 | SET_TILE_INFO(1, tile + | |
| 106 | SET_TILE_INFO_MEMBER(1, tile + | |
| 109 | 107 | } |
| 110 | 108 | |
| 111 | 109 | |
| 112 | 110 | VIDEO_START( crospang ) |
| 113 | 111 | { |
| 114 | 112 | crospang_state *state = machine.driver_data<crospang_state>(); |
| 115 | state->m_bg_layer = tilemap_create(machine, get_bg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 116 | state->m_fg_layer = tilemap_create(machine, get_fg_tile_info, TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 113 | state->m_bg_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(crospang_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 114 | state->m_fg_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(crospang_state::get_fg_tile_info),state), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); | |
| 117 | 115 | |
| 118 | 116 | state->m_fg_layer->set_transparent_pen(0); |
| 119 | 117 | } |
| r17673 | r17674 | |
|---|---|---|
| 11 | 11 | #define DISPLAY_TXT 16 |
| 12 | 12 | |
| 13 | 13 | |
| 14 | ||
| 14 | ||
| 15 | 15 | { |
| 16 | 16 | int code,attr,pal; |
| 17 | 17 | |
| 18 | code=machine.root_device().memregion("user1")->base()[tile_index]; /* TTTTTTTT */ | |
| 19 | attr=machine.root_device().memregion("user2")->base()[tile_index]; /* -PPP--TT - FIXED BITS (0xxx00xx) */ | |
| 18 | code=machine().root_device().memregion("user1")->base()[tile_index]; /* TTTTTTTT */ | |
| 19 | attr=machine().root_device().memregion("user2")->base()[tile_index]; /* -PPP--TT - FIXED BITS (0xxx00xx) */ | |
| 20 | 20 | code+=(attr&3)<<8; |
| 21 | 21 | pal=(attr>>4); |
| 22 | 22 | |
| 23 | SET_TILE_INFO( | |
| 23 | SET_TILE_INFO_MEMBER( | |
| 24 | 24 | 1, |
| 25 | 25 | code, |
| 26 | 26 | pal, |
| 27 | 27 | 0); |
| 28 | 28 | } |
| 29 | 29 | |
| 30 | ||
| 30 | ||
| 31 | 31 | { |
| 32 | 32 | int code,attr,pal; |
| 33 | 33 | |
| 34 | code=machine.root_device().memregion("user3")->base()[tile_index]; /* TTTTTTTT */ | |
| 35 | attr=machine.root_device().memregion("user4")->base()[tile_index]; /* -PPP--TT - FIXED BITS (0xxx00xx) */ | |
| 34 | code=machine().root_device().memregion("user3")->base()[tile_index]; /* TTTTTTTT */ | |
| 35 | attr=machine().root_device().memregion("user4")->base()[tile_index]; /* -PPP--TT - FIXED BITS (0xxx00xx) */ | |
| 36 | 36 | pal=attr>>4; |
| 37 | 37 | |
| 38 | 38 | code+=(attr&3)<<8; |
| r17673 | r17674 | |
| 41 | 41 | |
| 42 | 42 | pal+=16; |
| 43 | 43 | |
| 44 | SET_TILE_INFO( | |
| 44 | SET_TILE_INFO_MEMBER( | |
| 45 | 45 | 1, |
| 46 | 46 | code, |
| 47 | 47 | pal, |
| 48 | 48 | 0); |
| 49 | 49 | } |
| 50 | 50 | |
| 51 | ||
| 51 | ||
| 52 | 52 | { |
| 53 | darkmist_state *state = machine.driver_data<darkmist_state>(); | |
| 54 | UINT8 *videoram = state->m_videoram; | |
| 53 | UINT8 *videoram = m_videoram; | |
| 55 | 54 | int code,attr,pal; |
| 56 | 55 | |
| 57 | 56 | code=videoram[tile_index]; |
| r17673 | r17674 | |
| 62 | 61 | |
| 63 | 62 | pal+=48; |
| 64 | 63 | |
| 65 | SET_TILE_INFO( | |
| 64 | SET_TILE_INFO_MEMBER( | |
| 66 | 65 | 0, |
| 67 | 66 | code, |
| 68 | 67 | pal, |
| r17673 | r17674 | |
| 122 | 121 | VIDEO_START(darkmist) |
| 123 | 122 | { |
| 124 | 123 | darkmist_state *state = machine.driver_data<darkmist_state>(); |
| 125 | state->m_bgtilemap = tilemap_create( machine, get_bgtile_info,TILEMAP_SCAN_ROWS,16,16,512,64 ); | |
| 126 | state->m_fgtilemap = tilemap_create( machine, get_fgtile_info,TILEMAP_SCAN_ROWS,16,16,64,256 ); | |
| 127 | state->m_txtilemap = tilemap_create( machine, get_txttile_info,TILEMAP_SCAN_ROWS,8,8,32,32 ); | |
| 124 | state->m_bgtilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(darkmist_state::get_bgtile_info),state),TILEMAP_SCAN_ROWS,16,16,512,64 ); | |
| 125 | state->m_fgtilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(darkmist_state::get_fgtile_info),state),TILEMAP_SCAN_ROWS,16,16,64,256 ); | |
| 126 | state->m_txtilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(darkmist_state::get_txttile_info),state),TILEMAP_SCAN_ROWS,8,8,32,32 ); | |
| 128 | 127 | state->m_fgtilemap->set_transparent_pen(0); |
| 129 | 128 | state->m_txtilemap->set_transparent_pen(0); |
| 130 | 129 | } |
| r17673 | r17674 | |
|---|---|---|
| 41 | 41 | palette_set_color_rgb(machine(), offset, pal5bit(m_paletteram[offset + 0x000]), pal5bit(m_paletteram[offset + 0x100]), pal5bit(m_paletteram[offset + 0x200])); |
| 42 | 42 | } |
| 43 | 43 | |
| 44 | ||
| 44 | ||
| 45 | 45 | { |
| 46 | shisen_state *state = machine.driver_data<shisen_state>(); | |
| 47 | 46 | int offs = tile_index * 2; |
| 48 | int code = state->m_videoram[offs] + ((state->m_videoram[offs + 1] & 0x0f) << 8) + (state->m_gfxbank << 12); | |
| 49 | int color = (state->m_videoram[offs + 1] & 0xf0) >> 4; | |
| 47 | int code = m_videoram[offs] + ((m_videoram[offs + 1] & 0x0f) << 8) + (m_gfxbank << 12); | |
| 48 | int color = (m_videoram[offs + 1] & 0xf0) >> 4; | |
| 50 | 49 | |
| 51 | SET_TILE_INFO(0, code, color, 0); | |
| 50 | SET_TILE_INFO_MEMBER(0, code, color, 0); | |
| 52 | 51 | } |
| 53 | 52 | |
| 54 | 53 | VIDEO_START( sichuan2 ) |
| 55 | 54 | { |
| 56 | 55 | shisen_state *state = machine.driver_data<shisen_state>(); |
| 57 | 56 | |
| 58 | state->m_bg_tilemap = tilemap | |
| 57 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(shisen_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, | |
| 59 | 58 | 8, 8, 64, 32); |
| 60 | 59 | } |
| 61 | 60 |
| r17673 | r17674 | |
|---|---|---|
| 26 | 26 | #define PAGES_PER_TMAP_X (0x10) |
| 27 | 27 | #define PAGES_PER_TMAP_Y (0x02) |
| 28 | 28 | |
| 29 | ||
| 29 | ||
| 30 | 30 | { |
| 31 | 31 | return (row / TILES_PER_PAGE_Y) * TILES_PER_PAGE_X * TILES_PER_PAGE_Y * PAGES_PER_TMAP_X + |
| 32 | 32 | (row % TILES_PER_PAGE_Y) + |
| r17673 | r17674 | |
| 35 | 35 | (col % TILES_PER_PAGE_X) * TILES_PER_PAGE_Y; |
| 36 | 36 | } |
| 37 | 37 | |
| 38 | ||
| 38 | ||
| 39 | 39 | { |
| 40 | nmk16_state *state = machine.driver_data<nmk16_state>(); | |
| 41 | int code = state->m_nmk_bgvideoram0[tile_index]; | |
| 42 | SET_TILE_INFO(1,(code & 0xfff) + (state->m_bgbank << 12),code >> 12,0); | |
| 40 | int code = m_nmk_bgvideoram0[tile_index]; | |
| 41 | SET_TILE_INFO_MEMBER(1,(code & 0xfff) + (m_bgbank << 12),code >> 12,0); | |
| 43 | 42 | } |
| 44 | 43 | |
| 45 | ||
| 44 | ||
| 46 | 45 | { |
| 47 | nmk16_state *state = machine.driver_data<nmk16_state>(); | |
| 48 | int code = state->m_nmk_bgvideoram1[tile_index]; | |
| 49 | SET_TILE_INFO(1,(code & 0xfff) + (state->m_bgbank << 12),code >> 12,0); | |
| 46 | int code = m_nmk_bgvideoram1[tile_index]; | |
| 47 | SET_TILE_INFO_MEMBER(1,(code & 0xfff) + (m_bgbank << 12),code >> 12,0); | |
| 50 | 48 | } |
| 51 | 49 | |
| 52 | ||
| 50 | ||
| 53 | 51 | { |
| 54 | nmk16_state *state = machine.driver_data<nmk16_state>(); | |
| 55 | int code = state->m_nmk_bgvideoram2[tile_index]; | |
| 56 | SET_TILE_INFO(1,(code & 0xfff) + (state->m_bgbank << 12),code >> 12,0); | |
| 52 | int code = m_nmk_bgvideoram2[tile_index]; | |
| 53 | SET_TILE_INFO_MEMBER(1,(code & 0xfff) + (m_bgbank << 12),code >> 12,0); | |
| 57 | 54 | } |
| 58 | 55 | |
| 59 | ||
| 56 | ||
| 60 | 57 | { |
| 61 | nmk16_state *state = machine.driver_data<nmk16_state>(); | |
| 62 | int code = state->m_nmk_bgvideoram3[tile_index]; | |
| 63 | SET_TILE_INFO(1,(code & 0xfff) + (state->m_bgbank << 12),code >> 12,0); | |
| 58 | int code = m_nmk_bgvideoram3[tile_index]; | |
| 59 | SET_TILE_INFO_MEMBER(1,(code & 0xfff) + (m_bgbank << 12),code >> 12,0); | |
| 64 | 60 | } |
| 65 | 61 | |
| 66 | 62 | |
| 67 | ||
| 63 | ||
| 68 | 64 | { |
| 69 | nmk16_state *state = machine.driver_data<nmk16_state>(); | |
| 70 | int code = state->m_nmk_fgvideoram[tile_index]; | |
| 71 | SET_TILE_INFO( | |
| 65 | int code = m_nmk_fgvideoram[tile_index]; | |
| 66 | SET_TILE_INFO_MEMBER( | |
| 72 | 67 | 3, |
| 73 | 68 | (code & 0xfff), |
| 74 | 69 | code >> 12, |
| 75 | 70 | 0); |
| 76 | 71 | } |
| 77 | 72 | |
| 78 | ||
| 73 | ||
| 79 | 74 | { |
| 80 | nmk16_state *state = machine.driver_data<nmk16_state>(); | |
| 81 | int code = state->m_nmk_txvideoram[tile_index]; | |
| 82 | SET_TILE_INFO( | |
| 75 | int code = m_nmk_txvideoram[tile_index]; | |
| 76 | SET_TILE_INFO_MEMBER( | |
| 83 | 77 | 0, |
| 84 | 78 | code & 0xfff, |
| 85 | 79 | code >> 12, |
| 86 | 80 | 0); |
| 87 | 81 | } |
| 88 | 82 | |
| 89 | ||
| 83 | ||
| 90 | 84 | { |
| 91 | nmk16_state *state = machine.driver_data<nmk16_state>(); | |
| 92 | int code = state->m_nmk_bgvideoram0[tile_index]; | |
| 85 | int code = m_nmk_bgvideoram0[tile_index]; | |
| 93 | 86 | int bank = (code & 0x800) ? 1 : 0; |
| 94 | SET_TILE_INFO( | |
| 87 | SET_TILE_INFO_MEMBER( | |
| 95 | 88 | bank, |
| 96 | (code & 0x7ff) + ((bank) ? ( | |
| 89 | (code & 0x7ff) + ((bank) ? ( | |
| 97 | 90 | code >> 12, |
| 98 | 91 | 0); |
| 99 | 92 | } |
| 100 | 93 | |
| 101 | ||
| 94 | ||
| 102 | 95 | { |
| 103 | nmk16_state *state = machine.driver_data<nmk16_state>(); | |
| 104 | UINT16 code = state->m_nmk_bgvideoram0[tile_index]; | |
| 105 | SET_TILE_INFO( | |
| 96 | UINT16 code = m_nmk_bgvideoram0[tile_index]; | |
| 97 | SET_TILE_INFO_MEMBER( | |
| 106 | 98 | 1, |
| 107 | 99 | code, |
| 108 | 100 | 0, |
| r17673 | r17674 | |
| 131 | 123 | VIDEO_START( bioship ) |
| 132 | 124 | { |
| 133 | 125 | nmk16_state *state = machine.driver_data<nmk16_state>(); |
| 134 | state->m_bg_tilemap0 = tilemap_create(machine, macross_get_bg0_tile_info, afega_tilemap_scan_pages,16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); | |
| 135 | state->m_tx_tilemap = tilemap_create(machine, macross_get_tx_tile_info,TILEMAP_SCAN_COLS,8,8,32,32); | |
| 126 | state->m_bg_tilemap0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_bg0_tile_info),state), tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),state),16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); | |
| 127 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_tx_tile_info),state),TILEMAP_SCAN_COLS,8,8,32,32); | |
| 136 | 128 | |
| 137 | 129 | state->m_bg_tilemap0->set_transparent_pen(15); |
| 138 | 130 | state->m_tx_tilemap->set_transparent_pen(15); |
| r17673 | r17674 | |
| 147 | 139 | VIDEO_START( strahl ) |
| 148 | 140 | { |
| 149 | 141 | nmk16_state *state = machine.driver_data<nmk16_state>(); |
| 150 | state->m_bg_tilemap0 = tilemap_create(machine, macross_get_bg0_tile_info, afega_tilemap_scan_pages,16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); | |
| 151 | state->m_fg_tilemap = tilemap_create(machine, strahl_get_fg_tile_info, afega_tilemap_scan_pages,16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); | |
| 152 | state->m_tx_tilemap = tilemap_create(machine, macross_get_tx_tile_info,TILEMAP_SCAN_COLS,8,8,32,32); | |
| 142 | state->m_bg_tilemap0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_bg0_tile_info),state), tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),state),16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); | |
| 143 | state->m_fg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::strahl_get_fg_tile_info),state), tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),state),16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); | |
| 144 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_tx_tile_info),state),TILEMAP_SCAN_COLS,8,8,32,32); | |
| 153 | 145 | |
| 154 | 146 | state->m_fg_tilemap->set_transparent_pen(15); |
| 155 | 147 | state->m_tx_tilemap->set_transparent_pen(15); |
| r17673 | r17674 | |
| 160 | 152 | VIDEO_START( macross ) |
| 161 | 153 | { |
| 162 | 154 | nmk16_state *state = machine.driver_data<nmk16_state>(); |
| 163 | state->m_bg_tilemap0 = tilemap_create(machine, macross_get_bg0_tile_info, afega_tilemap_scan_pages,16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); | |
| 164 | state->m_tx_tilemap = tilemap_create(machine, macross_get_tx_tile_info,TILEMAP_SCAN_COLS,8,8,32,32); | |
| 155 | state->m_bg_tilemap0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_bg0_tile_info),state), tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),state),16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); | |
| 156 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_tx_tile_info),state),TILEMAP_SCAN_COLS,8,8,32,32); | |
| 165 | 157 | |
| 166 | 158 | state->m_tx_tilemap->set_transparent_pen(15); |
| 167 | 159 | |
| r17673 | r17674 | |
| 171 | 163 | VIDEO_START( gunnail ) |
| 172 | 164 | { |
| 173 | 165 | nmk16_state *state = machine.driver_data<nmk16_state>(); |
| 174 | state->m_bg_tilemap0 = tilemap_create(machine, macross_get_bg0_tile_info, afega_tilemap_scan_pages,16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); | |
| 175 | state->m_tx_tilemap = tilemap_create(machine, macross_get_tx_tile_info,TILEMAP_SCAN_COLS,8,8,64,32); | |
| 166 | state->m_bg_tilemap0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_bg0_tile_info),state), tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),state),16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); | |
| 167 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_tx_tile_info),state),TILEMAP_SCAN_COLS,8,8,64,32); | |
| 176 | 168 | |
| 177 | 169 | state->m_tx_tilemap->set_transparent_pen(15); |
| 178 | 170 | state->m_bg_tilemap0->set_scroll_rows(512); |
| r17673 | r17674 | |
| 186 | 178 | VIDEO_START( macross2 ) |
| 187 | 179 | { |
| 188 | 180 | nmk16_state *state = machine.driver_data<nmk16_state>(); |
| 189 | state->m_bg_tilemap0 = tilemap_create(machine, macross_get_bg0_tile_info, afega_tilemap_scan_pages,16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); | |
| 190 | state->m_bg_tilemap1 = tilemap_create(machine, macross_get_bg1_tile_info, afega_tilemap_scan_pages,16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); | |
| 191 | state->m_bg_tilemap2 = tilemap_create(machine, macross_get_bg2_tile_info, afega_tilemap_scan_pages,16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); | |
| 192 | state->m_bg_tilemap3 = tilemap_create(machine, macross_get_bg3_tile_info, afega_tilemap_scan_pages,16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); | |
| 181 | state->m_bg_tilemap0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_bg0_tile_info),state), tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),state),16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); | |
| 182 | state->m_bg_tilemap1 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_bg1_tile_info),state), tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),state),16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); | |
| 183 | state->m_bg_tilemap2 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_bg2_tile_info),state), tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),state),16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); | |
| 184 | state->m_bg_tilemap3 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_bg3_tile_info),state), tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),state),16,16,TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); | |
| 193 | 185 | |
| 194 | state->m_tx_tilemap = tilemap | |
| 186 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_tx_tile_info),state),TILEMAP_SCAN_COLS,8,8,64,32); | |
| 195 | 187 | |
| 196 | 188 | state->m_tx_tilemap->set_transparent_pen(15); |
| 197 | 189 | |
| r17673 | r17674 | |
| 210 | 202 | VIDEO_START( bjtwin ) |
| 211 | 203 | { |
| 212 | 204 | nmk16_state *state = machine.driver_data<nmk16_state>(); |
| 213 | state->m_bg_tilemap0 = tilemap | |
| 205 | state->m_bg_tilemap0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::bjtwin_get_bg_tile_info),state),TILEMAP_SCAN_COLS,8,8,64,32); | |
| 214 | 206 | |
| 215 | 207 | nmk16_video_init(machine); |
| 216 | 208 | state->m_videoshift = 64; /* 384x224 screen, leftmost 64 pixels have to be retrieved */ |
| r17673 | r17674 | |
| 902 | 894 | state->m_spriteram_old = auto_alloc_array_clear(machine, UINT16, 0x1000/2); |
| 903 | 895 | state->m_spriteram_old2 = auto_alloc_array_clear(machine, UINT16, 0x1000/2); |
| 904 | 896 | |
| 905 | state->m_bg_tilemap0 = tilemap_create( machine, macross_get_bg0_tile_info, afega_tilemap_scan_pages, | |
| 906 | ||
| 897 | state->m_bg_tilemap0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_bg0_tile_info),state), tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),state), | |
| 907 | 898 | 16,16, |
| 908 | 899 | TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); |
| 909 | 900 | |
| 910 | state->m_tx_tilemap = tilemap_create( machine, macross_get_tx_tile_info, TILEMAP_SCAN_COLS, | |
| 911 | ||
| 901 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_tx_tile_info),state), TILEMAP_SCAN_COLS, | |
| 912 | 902 | 8,8, |
| 913 | 903 | 32,32); |
| 914 | 904 | |
| r17673 | r17674 | |
| 923 | 913 | state->m_spriteram_old2 = auto_alloc_array_clear(machine, UINT16, 0x1000/2); |
| 924 | 914 | |
| 925 | 915 | |
| 926 | state->m_bg_tilemap0 = tilemap_create( machine, get_tile_info_0_8bit, afega_tilemap_scan_pages, | |
| 927 | ||
| 916 | state->m_bg_tilemap0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::get_tile_info_0_8bit),state), tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),state), | |
| 928 | 917 | 16,16, |
| 929 | 918 | TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); |
| 930 | 919 | |
| 931 | state->m_tx_tilemap = tilemap_create( machine, macross_get_tx_tile_info, TILEMAP_SCAN_COLS, | |
| 932 | ||
| 920 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_tx_tile_info),state), TILEMAP_SCAN_COLS, | |
| 933 | 921 | 8,8, |
| 934 | 922 | 32,32); |
| 935 | 923 | |
| r17673 | r17674 | |
| 944 | 932 | state->m_spriteram_old2 = auto_alloc_array_clear(machine, UINT16, 0x1000/2); |
| 945 | 933 | |
| 946 | 934 | |
| 947 | state->m_bg_tilemap0 = tilemap_create( machine, get_tile_info_0_8bit, afega_tilemap_scan_pages, | |
| 948 | ||
| 935 | state->m_bg_tilemap0 = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::get_tile_info_0_8bit),state), tilemap_mapper_delegate(FUNC(nmk16_state::afega_tilemap_scan_pages),state), | |
| 949 | 936 | 16,16, |
| 950 | 937 | TILES_PER_PAGE_X*PAGES_PER_TMAP_X,TILES_PER_PAGE_Y*PAGES_PER_TMAP_Y); |
| 951 | 938 | |
| 952 | state->m_tx_tilemap = tilemap_create( machine, macross_get_tx_tile_info, TILEMAP_SCAN_COLS, | |
| 953 | ||
| 939 | state->m_tx_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nmk16_state::macross_get_tx_tile_info),state), TILEMAP_SCAN_COLS, | |
| 954 | 940 | 8,8, |
| 955 | 941 | 32,32); |
| 956 | 942 |
| r17673 | r17674 | |
|---|---|---|
| 23 | 23 | watchdog_reset_w(space, 0, 0); |
| 24 | 24 | } |
| 25 | 25 | |
| 26 | ||
| 26 | ||
| 27 | 27 | { |
| 28 | nitedrvr_state *state = machine.driver_data<nitedrvr_state>(); | |
| 29 | int code = state->m_videoram[tile_index] & 0x3f; | |
| 28 | int code = m_videoram[tile_index] & 0x3f; | |
| 30 | 29 | |
| 31 | SET_TILE_INFO(0, code, 0, 0); | |
| 30 | SET_TILE_INFO_MEMBER(0, code, 0, 0); | |
| 32 | 31 | } |
| 33 | 32 | |
| 34 | 33 | |
| r17673 | r17674 | |
| 36 | 35 | VIDEO_START( nitedrvr ) |
| 37 | 36 | { |
| 38 | 37 | nitedrvr_state *state = machine.driver_data<nitedrvr_state>(); |
| 39 | state->m_bg_tilemap = tilemap | |
| 38 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(nitedrvr_state::get_bg_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 40 | 39 | } |
| 41 | 40 | |
| 42 | 41 | static void draw_box( bitmap_ind16 &bitmap, int bx, int by, int ex, int ey ) |
| r17673 | r17674 | |
|---|---|---|
| 478 | 478 | GFXDECODE_ENTRY( "gfx2", 0x0000, sprites_layout, 0, 8 ) /* Sprites */ |
| 479 | 479 | GFXDECODE_END |
| 480 | 480 | |
| 481 | ||
| 481 | ||
| 482 | 482 | { |
| 483 | laserbat_state *state = machine.driver_data<laserbat_state>(); | |
| 484 | 483 | |
| 485 | 484 | // wrong color index! |
| 486 | SET_TILE_INFO(0, | |
| 485 | SET_TILE_INFO_MEMBER(0, | |
| 487 | 486 | } |
| 488 | 487 | |
| 489 | 488 | static VIDEO_START( laserbat ) |
| 490 | 489 | { |
| 491 | 490 | laserbat_state *state = machine.driver_data<laserbat_state>(); |
| 492 | 491 | |
| 493 | state->m_bg_tilemap = tilemap | |
| 492 | state->m_bg_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(laserbat_state::get_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); | |
| 494 | 493 | |
| 495 | 494 | state->save_item(NAME(state->m_videoram)); |
| 496 | 495 | state->save_item(NAME(state->m_colorram)); |
| r17673 | r17674 | |
|---|---|---|
| 28 | 28 | * |
| 29 | 29 | *************************************/ |
| 30 | 30 | |
| 31 | ||
| 31 | ||
| 32 | 32 | { |
| 33 | hitme_state *state = machine.driver_data<hitme_state>(); | |
| 34 | 33 | |
| 35 | 34 | /* the code is the low 6 bits */ |
| 36 | UINT8 code = state->m_videoram[tile_index] & 0x3f; | |
| 37 | SET_TILE_INFO(0, code, 0, 0); | |
| 35 | UINT8 code = m_videoram[tile_index] & 0x3f; | |
| 36 | SET_TILE_INFO_MEMBER(0, code, 0, 0); | |
| 38 | 37 | } |
| 39 | 38 | |
| 40 | 39 | |
| r17673 | r17674 | |
| 57 | 56 | static VIDEO_START( hitme ) |
| 58 | 57 | { |
| 59 | 58 | hitme_state *state = machine.driver_data<hitme_state>(); |
| 60 | state->m_tilemap = tilemap | |
| 59 | state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hitme_state::get_hitme_tile_info),state), TILEMAP_SCAN_ROWS, 8, 10, 40, 19); | |
| 61 | 60 | } |
| 62 | 61 | |
| 63 | 62 | |
| 64 | 63 | static VIDEO_START( barricad ) |
| 65 | 64 | { |
| 66 | 65 | hitme_state *state = machine.driver_data<hitme_state>(); |
| 67 | state->m_tilemap = tilemap | |
| 66 | state->m_tilemap = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(hitme_state::get_hitme_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 32, 24); | |
| 68 | 67 | } |
| 69 | 68 | |
| 70 | 69 |
| r17673 | r17674 | |
|---|---|---|
| 820 | 820 | |
| 821 | 821 | /* TILEMAP RELATED (move to video file) */ |
| 822 | 822 | |
| 823 | ||
| 823 | ||
| 824 | 824 | { |
| 825 | raiden2_state *state = machine.driver_data<raiden2_state>(); | |
| 826 | int tile = state->back_data[tile_index]; | |
| 825 | int tile = back_data[tile_index]; | |
| 827 | 826 | int color = (tile >> 12) | (0 << 4); |
| 828 | 827 | |
| 829 | tile = (tile & 0xfff) | ( | |
| 828 | tile = (tile & 0xfff) | ( | |
| 830 | 829 | |
| 831 | SET_TILE_INFO(1,tile+0x0000,color,0); | |
| 830 | SET_TILE_INFO_MEMBER(1,tile+0x0000,color,0); | |
| 832 | 831 | } |
| 833 | 832 | |
| 834 | ||
| 833 | ||
| 835 | 834 | { |
| 836 | raiden2_state *state = machine.driver_data<raiden2_state>(); | |
| 837 | int tile = state->mid_data[tile_index]; | |
| 835 | int tile = mid_data[tile_index]; | |
| 838 | 836 | int color = (tile >> 12) | (2 << 4); |
| 839 | 837 | |
| 840 | tile = (tile & 0xfff) | ( | |
| 838 | tile = (tile & 0xfff) | ( | |
| 841 | 839 | |
| 842 | SET_TILE_INFO(1,tile,color,0); | |
| 840 | SET_TILE_INFO_MEMBER(1,tile,color,0); | |
| 843 | 841 | } |
| 844 | 842 | |
| 845 | ||
| 843 | ||
| 846 | 844 | { |
| 847 | raiden2_state *state = machine.driver_data<raiden2_state>(); | |
| 848 | int tile = state->fore_data[tile_index]; | |
| 845 | int tile = fore_data[tile_index]; | |
| 849 | 846 | int color = (tile >> 12) | (1 << 4); |
| 850 | 847 | |
| 851 | tile = (tile & 0xfff) | ( | |
| 848 | tile = (tile & 0xfff) | ( | |
| 852 | 849 | |
| 853 | SET_TILE_INFO(1,tile,color,0); | |
| 850 | SET_TILE_INFO_MEMBER(1,tile,color,0); | |
| 854 | 851 | } |
| 855 | 852 | |
| 856 | ||
| 853 | ||
| 857 | 854 | { |
| 858 | raiden2_state *state = machine.driver_data<raiden2_state>(); | |
| 859 | int tile = state->text_data[tile_index]; | |
| 855 | int tile = text_data[tile_index]; | |
| 860 | 856 | int color = (tile>>12)&0xf; |
| 861 | 857 | |
| 862 | 858 | tile &= 0xfff; |
| 863 | 859 | |
| 864 | SET_TILE_INFO(0,tile,color,0); | |
| 860 | SET_TILE_INFO_MEMBER(0,tile,color,0); | |
| 865 | 861 | } |
| 866 | 862 | |
| 867 | 863 | /* VIDEO START (move to video file) */ |
| r17673 | r17674 | |
| 870 | 866 | static VIDEO_START( raiden2 ) |
| 871 | 867 | { |
| 872 | 868 | raiden2_state *state = machine.driver_data<raiden2_state>(); |
| 873 | state->text_layer = tilemap_create(machine, get_text_tile_info, TILEMAP_SCAN_ROWS, 8, 8, 64,32 ); | |
| 874 | state->background_layer = tilemap_create(machine, get_back_tile_info, TILEMAP_SCAN_ROWS, 16,16, 32,32 ); | |
| 875 | state->midground_layer = tilemap_create(machine, get_mid_tile_info, TILEMAP_SCAN_ROWS, 16,16, 32,32 ); | |
| 876 | state->foreground_layer = tilemap_create(machine, get_fore_tile_info, TILEMAP_SCAN_ROWS, 16,16, 32,32 ); | |
| 869 | state->text_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(raiden2_state::get_text_tile_info),state), TILEMAP_SCAN_ROWS, 8, 8, 64,32 ); | |
| 870 | state->background_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(raiden2_state::get_back_tile_info),state), TILEMAP_SCAN_ROWS, 16,16, 32,32 ); | |
| 871 | state->midground_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(raiden2_state::get_mid_tile_info),state), TILEMAP_SCAN_ROWS, 16,16, 32,32 ); | |
| 872 | state->foreground_layer = &machine.tilemap().create(tilemap_get_info_delegate(FUNC(raiden2_state::get_fore_tile_info),state), TILEMAP_SCAN_ROWS, 16,16, 32,32 ); | |
| 877 | 873 | |
| 878 | 874 | state->midground_layer->set_transparent_pen(15); |
| 879 | 875 | state->foreground_layer->set_transparent_pen(15); |
| Previous | 199869 Revisions | Next |