| Previous | 199869 Revisions | Next |
| r21034 Wednesday 13th February, 2013 at 15:41:03 UTC by Miodrag Milanović |
|---|
| Removal of not needed machine().root_device() (nw) |
| [src/mame/drivers] | 1942.c 1943.c 2mindril.c 39in1.c 5clown.c 8080bw.c acefruit.c acesp.c aerofgt.c albazc.c aleck64.c alg.c amaticmg.c ampoker2.c amspdwy.c angelkds.c appoooh.c aquarium.c arcadecl.c arcadia.c aristmk4.c aristmk5.c arkanoid.c ashnojoe.c asterix.c astrafr.c astrocde.c astrocorp.c astrof.c asuka.c atvtrack.c avt.c backfire.c balsente.c baraduke.c battlex.c battlnts.c berzerk.c bfcobra.c bfm_ad5.c bfm_sc1.c bfm_sc2.c bfm_sc4.c bfm_sc5sw.c bfmsys85.c bigevglf.c bingoc.c blitz.c blitz68k.c blmbycar.c bmcbowl.c boogwing.c brkthru.c bublbobl.c bzone.c cabal.c cabaret.c calchase.c calomega.c calorie.c capbowl.c cardline.c carpolo.c carrera.c caswin.c cave.c cb2001.c cbuster.c cd32.c centiped.c cham24.c champbas.c champbwl.c chanbara.c chihiro.c chinsan.c cischeat.c citycon.c clayshoo.c clshroad.c cmmb.c cninja.c cntsteer.c cobra.c coinmstr.c coinmvga.c commando.c compgolf.c coolpool.c cop01.c corona.c cps1.c cps3.c crospang.c crshrace.c crystal.c cshooter.c cvs.c cybertnk.c cyclemb.c d9final.c dacholer.c dambustr.c darius.c darkmist.c darkseal.c dassault.c dbz.c dcon.c ddayjlc.c ddealer.c ddenlovr.c dec8.c deco156.c deco32.c deco_mlc.c decocass.c discoboy.c dkong.c dmndrby.c dooyong.c dragrace.c drgnmst.c drw80pkr.c dwarfd.c dynadice.c dynax.c enigma2.c eolith.c epos.c equites.c esh.c ettrivia.c exerion.c exidy440.c expro02.c exprraid.c exzisus.c famibox.c fastfred.c fcombat.c fcrash.c feversoc.c fgoal.c firebeat.c fitfight.c flipjack.c foodf.c forte2.c fortecar.c freekick.c funkball.c funworld.c gaelco3d.c gaiden.c galaga.c galaxian.c galgame.c galpani2.c galpani3.c gamecstl.c gaplus.c gauntlet.c gberet.c gei.c ghosteo.c ginganin.c glass.c goal92.c goindol.c goldnpkr.c goldstar.c grchamp.c groundfx.c gticlub.c gundealr.c gunpey.c halleys.c hitme.c hitpoker.c hnayayoi.c hng64.c homedata.c hornet.c hshavoc.c igs009.c igs011.c igs017.c igs_m027.c igspoker.c intrscti.c istellar.c itech32.c itech8.c jack.c jackie.c jackpool.c jailbrek.c jangou.c jantotsu.c jchan.c jclub2.c jokrwild.c jollyjgr.c jongkyo.c jpmsys5.c jrpacman.c junofrst.c kaneko16.c kangaroo.c kas89.c kchamp.c kickgoal.c kingdrby.c kingobox.c koikoi.c konamigx.c konendev.c kontest.c ksys573.c ladybug.c lastduel.c lastfght.c lazercmd.c legionna.c liberate.c looping.c lordgun.c ltcasino.c luckgrln.c m58.c m62.c m63.c m72.c m90.c macs.c madalien.c madmotor.c magictg.c magtouch.c majorpkr.c mappy.c marinedt.c maxaflex.c maygay1b.c maygayep.c mazerbla.c mcr68.c meadows.c megasys1.c megatech.c meijinsn.c merit.c metalmx.c metro.c meyc8088.c midas.c midqslvr.c midzeus.c miniboy7.c mirax.c missb2.c missile.c mitchell.c mlanding.c model1.c model2.c model3.c mogura.c moo.c mouser.c mpu3.c mpu4dealem.c mpu4hw.c mpu4mod2sw.c mpu4mod4yam.c mpu4sw.c mquake.c ms32.c multfish.c multigam.c murogmbl.c mustache.c mw8080bw.c namcofl.c namconb1.c namcos10.c namcos12.c namcos2.c namcos21.c namcos22.c namcos23.c namcos86.c naomi.c nbmj8688.c nbmj8891.c nbmj8900.c nbmj8991.c neodrvr.c neogeo.c neoprint.c nightgal.c ninjakd2.c niyanpai.c nmk16.c norautp.c nova2001.c nycaptor.c ojankohs.c olibochu.c omegrace.c opwolf.c pacman.c panicr.c pasha2.c pbaction.c pcat_nit.c pcktgal.c pcxt.c pengadvb.c pengo.c peplus.c pgm2.c phoenix.c photon.c photon2.c pingpong.c pipedrm.c pipeline.c pirates.c pluto5.c plygonet.c pntnpuzl.c pokechmp.c poker72.c polepos.c poolshrk.c progolf.c psikyo.c psikyo4.c psikyosh.c puckpkmn.c qix.c quantum.c queen.c quizo.c quizshow.c r2dx_v33.c raiden.c raiden2.c rainbow.c rampart.c rastan.c rastersp.c re900.c redalert.c redclash.c relief.c rmhaihai.c rohga.c roul.c route16.c royalmah.c rpunch.c runaway.c sangho.c saturn.c sauro.c savquest.c sbowling.c scregg.c segag80r.c segald.c segas24.c segas32.c seibuspi.c seta.c seta2.c sf.c sfbonus.c sfkick.c shangkid.c shootout.c shougi.c sigmab52.c sigmab98.c silkroad.c silvmil.c simpl156.c skullxbo.c skyarmy.c skyfox.c skykid.c slapshot.c sliver.c snesb.c snk68.c snowbros.c spdodgeb.c speedatk.c spiders.c spoker.c sprint2.c sprint4.c sprint8.c srmp2.c sshangha.c ssv.c st0016.c stactics.c starshp1.c statriv2.c stv.c sub.c subsino.c subsino2.c suna8.c supdrapo.c supercrd.c superdq.c superqix.c supertnk.c suprgolf.c suprloco.c system1.c system16.c tail2nos.c taito_b.c taito_f2.c taito_f3.c taito_l.c taito_z.c tank8.c tankbust.c tatsumi.c tattack.c taxidriv.c tcl.c tecmosys.c tehkanwc.c tempest.c tetrisp2.c thedeep.c thief.c tmaster.c tmnt.c tmspoker.c tnzs.c toaplan2.c toki.c toratora.c tourtabl.c toypop.c trackfld.c travrusa.c triforce.c ttchamp.c tugboat.c tumbleb.c tumblep.c tunhunt.c turbo.c twin16.c twinkle.c uapce.c ultratnk.c undrfire.c upscope.c vaportra.c vega.c vicdual.c videopkr.c viper.c voyager.c wallc.c wardner.c warpsped.c warpwarp.c wc90b.c wecleman.c welltris.c wgp.c wheelfir.c whitestar.c wink.c wiz.c xain.c xorworld.c xtom3d.c xxmissio.c xyonix.c yunsung8.c zaxxon.c zn.c |
| [src/mame/machine] | asteroid.c balsente.c carpolo.c cclimber.c dc-ctrl.c dec0.c gaelco2.c galaxold.c jvs13551.c leland.c mcr68.c megacd.c megadriv.c mexico86.c micro3d.c n64.c naomigd.c naomim1.c naomim2.c naomim4.c opwolf.c pcecommn.c rainbow.c scramble.c segas32.c simpsons.c snesbsx.c subs.c tatsumi.c tnzs.c tx1.c vertigo.c vsnes.c williams.c xevious.c |
| [src/mame/video] | 1942.c 1943.c 20pacgal.c 40love.c 8080bw.c alpha68k.c ambush.c ampoker2.c appoooh.c archimds.c atari.c atarisy1.c bagman.c bankp.c baraduke.c bking.c bladestl.c bogeyman.c bosco.c brkthru.c btime.c bwing.c calomega.c canyon.c carjmbre.c carpolo.c ccastles.c cclimber.c centiped.c chaknpop.c champbas.c cheekyms.c cinemat.c circusc.c cloud9.c clshroad.c combatsc.c compgolf.c contra.c cop01.c cosmic.c cps1.c crgolf.c cvs.c darkmist.c dc.c dcheese.c dday.c ddribble.c deadang.c dec8.c decocass.c digdug.c dkong.c docastle.c dogfgt.c dribling.c drmicro.c dynax.c epos.c equites.c espial.c exedexes.c exerion.c exidy440.c fastfred.c fastlane.c fcombat.c fgoal.c finalizr.c firetrap.c firetrk.c flower.c funkybee.c funworld.c fuukifg2.c gaelco3d.c galaga.c galaxian.c galaxold.c galivan.c gaplus.c gberet.c ginganin.c glass.c goldstar.c gomoku.c gotya.c grchamp.c gridlee.c gsword.c gunsmoke.c gyruss.c hanaawas.c hcastle.c higemaru.c homedata.c hyhoo.c hyperspt.c hyprduel.c ikki.c irobot.c ironhors.c jack.c jackal.c jailbrek.c jedi.c karnov.c kchamp.c kingobox.c kncljoe.c konamigx.c kopunch.c ksayakyu.c labyrunr.c ladybug.c lasso.c lazercmd.c leland.c lethalj.c liberate.c liberatr.c lockon.c lucky74.c lvcards.c m52.c m57.c m58.c m62.c m92.c madalien.c magmax.c mainsnk.c mappy.c marineb.c mario.c markham.c matmania.c mcd212.c megasys1.c megazone.c mermaid.c metro.c mikie.c momoko.c mouser.c mrdo.c mrjong.c munchmo.c mustache.c mystston.c mystwarr.c n8080.c namcofl.c namconb1.c namcos86.c naughtyb.c nbmj8688.c nbmj8891.c nbmj8900.c nbmj8991.c nbmj9195.c niyanpai.c nova2001.c ojankohs.c orbit.c pacland.c pacman.c pandoras.c pastelg.c pcktgal.c phoenix.c pingpong.c pitnrun.c playch10.c plygonet.c polepos.c pooyan.c popeye.c popper.c portrait.c prehisle.c psikyo.c pushman.c quasar.c rallyx.c redalert.c redclash.c retofinv.c rockrage.c rocnrope.c rollrace.c route16.c sbasketb.c scotrsht.c segag80r.c segas32.c seibuspi.c seicross.c seta.c sf.c shangkid.c shaolins.c shisen.c shootout.c sidearms.c sidepckt.c skyfox.c skykid.c skyraid.c snk.c snk6502.c snookr10.c sonson.c spacefb.c spdodgeb.c speedatk.c sprcros2.c srmp2.c ssozumo.c st0016.c stactics.c stfight.c strnskil.c suprloco.c suprnova.c suprridr.c tagteam.c tankbatt.c tceptor.c terracre.c thedeep.c thepit.c timelimt.c timeplt.c tmnt.c tnzs.c toypop.c tp84.c trackfld.c travrusa.c trucocl.c tryout.c tubep.c tunhunt.c turbo.c tx1.c ultratnk.c undrfire.c vulgus.c wiping.c wiz.c xevious.c xorworld.c xyonix.c yiear.c zaccaria.c zaxxon.c zodiack.c |
| r21033 | r21034 | |
|---|---|---|
| 148 | 148 | return false; |
| 149 | 149 | jvs_outputs = vals[0] & 0x3f; |
| 150 | 150 | logerror("837-13551: output %02x\n", jvs_outputs); |
| 151 | | |
| 151 | ioport(port_tag[11])->write_safe(jvs_outputs, 0x3f); | |
| 152 | 152 | return true; |
| 153 | 153 | } |
| 154 | 154 |
| r21033 | r21034 | |
|---|---|---|
| 394 | 394 | |
| 395 | 395 | UINT64 key; |
| 396 | 396 | |
| 397 | const UINT8 *picdata = m | |
| 397 | const UINT8 *picdata = memregion(pic_tag)->base(); | |
| 398 | 398 | |
| 399 | 399 | if(picdata) { |
| 400 | if(m | |
| 400 | if(memregion(pic_tag)->bytes() >= 0x4000) { | |
| 401 | 401 | printf("Real PIC binary found\n"); |
| 402 | 402 | for(int i=0;i<7;i++) |
| 403 | 403 | name[i] = picdata[0x7c0+i*2]; |
| r21033 | r21034 | |
|---|---|---|
| 628 | 628 | READ8_MEMBER(williams_state::williams_49way_port_0_r) |
| 629 | 629 | { |
| 630 | 630 | static const UINT8 translate49[7] = { 0x0, 0x4, 0x6, 0x7, 0xb, 0x9, 0x8 }; |
| 631 | return (translate49[ | |
| 631 | return (translate49[ioport("49WAYX")->read() >> 4] << 4) | translate49[ioport("49WAYY")->read() >> 4]; | |
| 632 | 632 | } |
| 633 | 633 | |
| 634 | 634 | |
| r21033 | r21034 | |
| 745 | 745 | MACHINE_START_CALL_MEMBER(williams_common); |
| 746 | 746 | |
| 747 | 747 | /* configure the banking and make sure it is reset to 0 */ |
| 748 | m | |
| 748 | membank("bank1")->configure_entries(0, 9, &memregion("maincpu")->base()[0x10000], 0x1000); | |
| 749 | 749 | |
| 750 | 750 | machine().save().register_postload(save_prepost_delegate(FUNC(williams_state::defender_postload), this)); |
| 751 | 751 | } |
| r21033 | r21034 | |
| 916 | 916 | READ8_MEMBER(williams_state::tshoot_input_port_0_3_r) |
| 917 | 917 | { |
| 918 | 918 | /* merge in the gun inputs with the standard data */ |
| 919 | int data = | |
| 919 | int data = ioport("IN0")->read(); | |
| 920 | 920 | int gun = (data & 0x3f) ^ ((data & 0x3f) >> 1); |
| 921 | 921 | return (data & 0xc0) | gun; |
| 922 | 922 |
| r21033 | r21034 | |
|---|---|---|
| 45 | 45 | { |
| 46 | 46 | naomi_board::device_start(); |
| 47 | 47 | |
| 48 | const UINT8 *key_data = m | |
| 48 | const UINT8 *key_data = memregion(key_tag)->base(); | |
| 49 | 49 | key = (key_data[2] << 8) | key_data[3]; |
| 50 | 50 | iv = (key_data[0] << 8) | key_data[1]; |
| 51 | 51 | buffer = auto_alloc_array(machine(), UINT8, BUFFER_SIZE); |
| r21033 | r21034 | |
|---|---|---|
| 656 | 656 | TODO make this constant somewhere |
| 657 | 657 | e.g. math.retval = math.romptr[ get_tx1_datarom_addr() ]; |
| 658 | 658 | */ |
| 659 | UINT16 *romdata = (UINT16*)m | |
| 659 | UINT16 *romdata = (UINT16*)memregion("au_data")->base(); | |
| 660 | 660 | UINT16 addr = get_tx1_datarom_addr(math); |
| 661 | 661 | math.retval = romdata[addr]; |
| 662 | 662 | } |
| r21033 | r21034 | |
| 803 | 803 | READ16_MEMBER(tx1_state::tx1_spcs_rom_r) |
| 804 | 804 | { |
| 805 | 805 | math_t &math = m_math; |
| 806 | math.cpulatch = *(UINT16*)((UINT8*)m | |
| 806 | math.cpulatch = *(UINT16*)((UINT8*)memregion("math_cpu")->base() + 0x04000 + 0x1000 + offset*2); | |
| 807 | 807 | |
| 808 | 808 | if (math.mux == TX1_SEL_ILDEN) |
| 809 | 809 | { |
| r21033 | r21034 | |
| 1132 | 1132 | /* /DPROE */ |
| 1133 | 1133 | else if ((offset & 0xc00) == 0xc00) |
| 1134 | 1134 | { |
| 1135 | UINT16 *romdata = (UINT16*)m | |
| 1135 | UINT16 *romdata = (UINT16*)memregion("au_data")->base(); | |
| 1136 | 1136 | UINT16 addr = get_bb_datarom_addr(math); |
| 1137 | 1137 | |
| 1138 | 1138 | math.retval = romdata[addr]; |
| r21033 | r21034 | |
| 1265 | 1265 | READ16_MEMBER(tx1_state::buggyboy_spcs_rom_r) |
| 1266 | 1266 | { |
| 1267 | 1267 | math_t &math = m_math; |
| 1268 | math.cpulatch = *(UINT16*)((UINT8*)m | |
| 1268 | math.cpulatch = *(UINT16*)((UINT8*)memregion("math_cpu")->base() + 0x04000 + 0x1000 + offset*2); | |
| 1269 | 1269 | |
| 1270 | 1270 | if (math.mux == BB_MUX_ILDEN) |
| 1271 | 1271 | { |
| r21033 | r21034 | |
|---|---|---|
| 22 | 22 | int i; |
| 23 | 23 | |
| 24 | 24 | /* get a pointer to the source data */ |
| 25 | UINT8 *src = (UINT8 *)m | |
| 25 | UINT8 *src = (UINT8 *)memregion(src_reg)->base(); | |
| 26 | 26 | |
| 27 | 27 | /* get a pointer to the destination data */ |
| 28 | UINT8 *dst = (UINT8 *)m | |
| 28 | UINT8 *dst = (UINT8 *)memregion(dst_reg)->base(); | |
| 29 | 29 | |
| 30 | 30 | /* fill destination areas with the proper data */ |
| 31 | 31 | for (i = 0; i < length/2; i++){ |
| r21033 | r21034 | |
|---|---|---|
| 16 | 16 | INTERRUPT_GEN_MEMBER(asteroid_state::asteroid_interrupt) |
| 17 | 17 | { |
| 18 | 18 | /* Turn off interrupts if self-test is enabled */ |
| 19 | if (!( | |
| 19 | if (!(ioport("IN0")->read() & 0x80)) | |
| 20 | 20 | device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); |
| 21 | 21 | } |
| 22 | 22 | |
| 23 | 23 | INTERRUPT_GEN_MEMBER(asteroid_state::asterock_interrupt) |
| 24 | 24 | { |
| 25 | 25 | /* Turn off interrupts if self-test is enabled */ |
| 26 | if (( | |
| 26 | if ((ioport("IN0")->read() & 0x80)) | |
| 27 | 27 | device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); |
| 28 | 28 | } |
| 29 | 29 | |
| 30 | 30 | INTERRUPT_GEN_MEMBER(asteroid_state::llander_interrupt) |
| 31 | 31 | { |
| 32 | 32 | /* Turn off interrupts if self-test is enabled */ |
| 33 | if ( | |
| 33 | if (ioport("IN0")->read() & 0x02) | |
| 34 | 34 | device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); |
| 35 | 35 | } |
| 36 | 36 |
| r21033 | r21034 | |
|---|---|---|
| 756 | 756 | coin_counter_w(machine(), 1, m_CRAM[0][8] & 0x20); |
| 757 | 757 | coin_counter_w(machine(), 0, m_CRAM[0][8] & 0x10); |
| 758 | 758 | |
| 759 | m_CRAM[0][3] = machine().root_device().ioport("800007")->read(); /* STARTn + SERVICE1 */ | |
| 760 | m_CRAM[0][4] = machine().root_device().ioport("800009")->read(); /* COINn */ | |
| 761 | m_CRAM[0][5] = machine().root_device().ioport("80000B")->read(); /* Player controls + TILT */ | |
| 762 | m_CRAM[0][6] = machine().root_device().ioport("80000D")->read(); /* Player controls (cocktail) */ | |
| 759 | m_CRAM[0][3] = ioport("800007")->read(); /* STARTn + SERVICE1 */ | |
| 760 | m_CRAM[0][4] = ioport("800009")->read(); /* COINn */ | |
| 761 | m_CRAM[0][5] = ioport("80000B")->read(); /* Player controls + TILT */ | |
| 762 | m_CRAM[0][6] = ioport("80000D")->read(); /* Player controls (cocktail) */ | |
| 763 | 763 | } |
| 764 | 764 | |
| 765 | 765 | /************************************* |
| r21033 | r21034 | |
|---|---|---|
| 165 | 165 | switch ( offset ) |
| 166 | 166 | { |
| 167 | 167 | default: |
| 168 | case 0: return ~BITSWAP8(machine().root_device().ioport("IN0H")->read(),7,6,5,4,2,3,1,0); | |
| 169 | case 1: return ~machine().root_device().ioport("IN1L")->read(); | |
| 170 | case 2: return ~machine().root_device().ioport("IN1H")->read(); | |
| 171 | case 3: return ~machine().root_device().ioport("IN0L")->read(); | |
| 168 | case 0: return ~BITSWAP8(ioport("IN0H")->read(),7,6,5,4,2,3,1,0); | |
| 169 | case 1: return ~ioport("IN1L")->read(); | |
| 170 | case 2: return ~ioport("IN1H")->read(); | |
| 171 | case 3: return ~ioport("IN0L")->read(); | |
| 172 | 172 | } |
| 173 | 173 | } |
| 174 | 174 |
| r21033 | r21034 | |
|---|---|---|
| 416 | 416 | if (offset == 0x14) |
| 417 | 417 | { |
| 418 | 418 | #if OPWOLF_READ_COINAGE_FROM_ROM |
| 419 | UINT16* rom = (UINT16*)m | |
| 419 | UINT16* rom = (UINT16*)memregion("maincpu")->base(); | |
| 420 | 420 | UINT32 coin_table[2] = {0, 0}; |
| 421 | 421 | UINT8 coin_offset[2]; |
| 422 | 422 | int slot; |
| r21033 | r21034 | |
|---|---|---|
| 52 | 52 | /* we latch the beam values on the first interrupt after VBLANK */ |
| 53 | 53 | if (param == 64) |
| 54 | 54 | { |
| 55 | m_shooter_x = machine().root_device().ioport("FAKEX")->read(); | |
| 56 | m_shooter_y = machine().root_device().ioport("FAKEY")->read(); | |
| 55 | m_shooter_x = ioport("FAKEX")->read(); | |
| 56 | m_shooter_y = ioport("FAKEY")->read(); | |
| 57 | 57 | } |
| 58 | 58 | |
| 59 | 59 | /* which bits get returned depends on which scanline we're at */ |
| r21033 | r21034 | |
| 278 | 278 | int bank = data & 7; |
| 279 | 279 | |
| 280 | 280 | /* top bit controls which half of the ROMs to use (Name that Tune only) */ |
| 281 | if (m | |
| 281 | if (memregion("maincpu")->bytes() > 0x40000) bank |= (data >> 4) & 8; | |
| 282 | 282 | |
| 283 | 283 | /* when they set the AB bank, it appears as though the CD bank is reset */ |
| 284 | 284 | if (data & 0x20) |
| r21033 | r21034 | |
| 548 | 548 | /* ports are read once a frame, just at varying intervals. To get around this, we */ |
| 549 | 549 | /* read all the analog inputs at VBLANK time and just return the cached values. */ |
| 550 | 550 | for (i = 0; i < 4; i++) |
| 551 | m_analog_input_data[i] = | |
| 551 | m_analog_input_data[i] = ioport(analog[i])->read(); | |
| 552 | 552 | } |
| 553 | 553 | |
| 554 | 554 |
| r21033 | r21034 | |
|---|---|---|
| 1210 | 1210 | //printf("GENESIS Sound Z80 cpu found '%s'\n", _genesis_snd_z80_cpu->tag() ); |
| 1211 | 1211 | |
| 1212 | 1212 | genz80.z80_prgram = auto_alloc_array(machine(), UINT8, 0x2000); |
| 1213 | m | |
| 1213 | membank("bank1")->set_base(genz80.z80_prgram ); | |
| 1214 | 1214 | } |
| 1215 | 1215 | |
| 1216 | 1216 | /* Look to see if this system has the 32x Master SH2 */ |
| r21033 | r21034 | |
| 1260 | 1260 | some games specify a single address, (start 200001, end 200001) |
| 1261 | 1261 | this usually means there is serial eeprom instead */ |
| 1262 | 1262 | int i; |
| 1263 | UINT16 *rom = (UINT16*)m | |
| 1263 | UINT16 *rom = (UINT16*)memregion("maincpu")->base(); | |
| 1264 | 1264 | |
| 1265 | 1265 | mame_printf_debug("DEBUG:: Header: Backup RAM string (ignore for games without)\n"); |
| 1266 | 1266 | for (i=0;i<12;i++) |
| r21033 | r21034 | |
| 1379 | 1379 | { |
| 1380 | 1380 | md_base_state *state = screen.machine().driver_data<md_base_state>(); |
| 1381 | 1381 | |
| 1382 | if (screen. | |
| 1382 | if (screen.ioport(":RESET")->read_safe(0x00) & 0x01) | |
| 1383 | 1383 | screen.machine().device(":maincpu")->execute().set_input_line(INPUT_LINE_RESET, PULSE_LINE); |
| 1384 | 1384 | |
| 1385 | 1385 | // rising edge |
| r21033 | r21034 | |
|---|---|---|
| 65 | 65 | int i; |
| 66 | 66 | int coin_curr; |
| 67 | 67 | |
| 68 | coin_curr = ~ | |
| 68 | coin_curr = ~ioport("IN0")->read() & 1; | |
| 69 | 69 | if (coin_curr && !m_coin_last && m_protection_ram[0x01] < 9) |
| 70 | 70 | { |
| 71 | 71 | m_protection_ram[0x01]++; // increase credits counter |
| r21033 | r21034 | |
| 75 | 75 | |
| 76 | 76 | m_protection_ram[0x04] = 0x3c; // coin inputs |
| 77 | 77 | |
| 78 | m_protection_ram[0x02] = BITSWAP8(machine().root_device().ioport("IN1")->read(), 7,6,5,4,2,3,1,0); // player 1 | |
| 79 | m_protection_ram[0x03] = BITSWAP8(machine().root_device().ioport("IN2")->read(), 7,6,5,4,2,3,1,0); // player 2 | |
| 78 | m_protection_ram[0x02] = BITSWAP8(ioport("IN1")->read(), 7,6,5,4,2,3,1,0); // player 1 | |
| 79 | m_protection_ram[0x03] = BITSWAP8(ioport("IN2")->read(), 7,6,5,4,2,3,1,0); // player 2 | |
| 80 | 80 | |
| 81 | 81 | if (m_protection_ram[0x19] == 0xaa) // player 2 active |
| 82 | 82 | m_protection_ram[0x1b] = m_protection_ram[0x03]; |
| r21033 | r21034 | |
|---|---|---|
| 48 | 48 | static void bsx_update_memory_map(void) |
| 49 | 49 | { |
| 50 | 50 | bsx_state.ram_source = BIT(bsx_state.cart_regs[0x01], 7) ? SNES_BSX_PRAM : SNES_BSX_FLASH; |
| 51 | // UINT8 *RAM = (bsx_state.cart_regs[0x01] & 0x80) == 0x00 ? space.m | |
| 51 | // UINT8 *RAM = (bsx_state.cart_regs[0x01] & 0x80) == 0x00 ? space.memregion("flash")->base() : bsx_state.pram; | |
| 52 | 52 | |
| 53 | 53 | logerror("BSX: updated memory map, current RAM: %d", bsx_state.ram_source); |
| 54 | 54 | if (!BIT(bsx_state.cart_regs[0x02], 7)) |
| r21033 | r21034 | |
| 148 | 148 | #ifdef UNUSED_FUNCTION |
| 149 | 149 | static READ8_HANDLER( bsx_flash_read ) |
| 150 | 150 | { |
| 151 | UINT8 *FLASH = space.m | |
| 151 | UINT8 *FLASH = space.memregion("flash")->base(); | |
| 152 | 152 | |
| 153 | 153 | if (offset == 0x0002) |
| 154 | 154 | { |
| r21033 | r21034 | |
|---|---|---|
| 238 | 238 | case 3: movement_flip_flop = m_ttl7474_1a_1; dir_flip_flop = m_ttl7474_1a_2; break; |
| 239 | 239 | } |
| 240 | 240 | |
| 241 | port_value = | |
| 241 | port_value = ioport(portnames[player])->read(); | |
| 242 | 242 | |
| 243 | 243 | if (port_value != m_last_wheel_value[player]) |
| 244 | 244 | { |
| r21033 | r21034 | |
| 256 | 256 | |
| 257 | 257 | |
| 258 | 258 | /* finally read the accelerator pedals */ |
| 259 | port_value = | |
| 259 | port_value = ioport("PEDALS")->read(); | |
| 260 | 260 | |
| 261 | 261 | for (player = 0; player < 4; player++) |
| 262 | 262 | { |
| r21033 | r21034 | |
|---|---|---|
| 70 | 70 | |
| 71 | 71 | void n64_periphs::device_reset() |
| 72 | 72 | { |
| 73 | UINT32 *cart = (UINT32*)m | |
| 73 | UINT32 *cart = (UINT32*)memregion("user2")->base(); | |
| 74 | 74 | |
| 75 | 75 | maincpu = machine().device("maincpu"); |
| 76 | 76 | rspcpu = machine().device("rsp"); |
| r21033 | r21034 | |
| 1411 | 1411 | |
| 1412 | 1412 | void n64_periphs::pi_dma_tick() |
| 1413 | 1413 | { |
| 1414 | UINT16 *cart16 = (UINT16*)m | |
| 1414 | UINT16 *cart16 = (UINT16*)memregion("user2")->base(); | |
| 1415 | 1415 | UINT16 *dram16 = (UINT16*)rdram; |
| 1416 | 1416 | |
| 1417 | 1417 | UINT32 cart_addr = (pi_cart_addr & 0x0fffffff) >> 1; |
| r21033 | r21034 | |
| 1424 | 1424 | } |
| 1425 | 1425 | else if((cart_addr & 0x03000000) == 0x03000000 && dd_present) |
| 1426 | 1426 | { |
| 1427 | cart16 = (UINT16*)m | |
| 1427 | cart16 = (UINT16*)memregion("ddipl")->base(); | |
| 1428 | 1428 | cart_addr = (pi_cart_addr & 0x003fffff) >> 1; |
| 1429 | 1429 | } |
| 1430 | 1430 | else |
| 1431 | 1431 | { |
| 1432 | cart_addr &= ((m | |
| 1432 | cart_addr &= ((memregion("user2")->bytes() >> 1) - 1); | |
| 1433 | 1433 | } |
| 1434 | 1434 | |
| 1435 | 1435 | //printf("%08x Cart, %08x Dram\n", cart_addr << 1, dram_addr << 1); fflush(stdout); |
| r21033 | r21034 | |
| 1780 | 1780 | case 1: //p2 inputs |
| 1781 | 1781 | { |
| 1782 | 1782 | //printf("Read p%d inputs\n", channel + 1); |
| 1783 | buttons = machine().root_device().ioport(portnames[(channel*3) + 0])->read(); | |
| 1784 | x = machine().root_device().ioport(portnames[(channel*3) + 1])->read() - 128; | |
| 1785 | y = machine().root_device().ioport(portnames[(channel*3) + 2])->read() - 128; | |
| 1783 | buttons = ioport(portnames[(channel*3) + 0])->read(); | |
| 1784 | x = ioport(portnames[(channel*3) + 1])->read() - 128; | |
| 1785 | y = ioport(portnames[(channel*3) + 2])->read() - 128; | |
| 1786 | 1786 | |
| 1787 | 1787 | rdata[0] = (buttons >> 8) & 0xff; |
| 1788 | 1788 | rdata[1] = (buttons >> 0) & 0xff; |
| r21033 | r21034 | |
|---|---|---|
| 7 | 7 | void cclimber_state::cclimber_decode(const UINT8 convtable[8][16]) |
| 8 | 8 | { |
| 9 | 9 | address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); |
| 10 | UINT8 *rom = m | |
| 10 | UINT8 *rom = memregion("maincpu")->base(); | |
| 11 | 11 | UINT8 *decrypt = auto_alloc_array(machine(), UINT8, 0x10000); |
| 12 | 12 | int A; |
| 13 | 13 | |
| r21033 | r21034 | |
| 68 | 68 | DRIVER_INIT_MEMBER(cclimber_state,ckongb) |
| 69 | 69 | { |
| 70 | 70 | int A; |
| 71 | UINT8 *rom = m | |
| 71 | UINT8 *rom = memregion("maincpu")->base(); | |
| 72 | 72 | |
| 73 | 73 | for (A = 0x0000;A < 0x6000;A++) /* all the program ROMs are encrypted */ |
| 74 | 74 | { |
| r21033 | r21034 | |
| 79 | 79 | #if CANNONB_HACK |
| 80 | 80 | void ::cannonb_patch() |
| 81 | 81 | { |
| 82 | UINT8 *rom = m | |
| 82 | UINT8 *rom = memregion("maincpu")->base(); | |
| 83 | 83 | |
| 84 | 84 | rom[0x2ba0] = 0x21; |
| 85 | 85 | rom[0x2ba1] = 0xfb; |
| r21033 | r21034 | |
| 91 | 91 | DRIVER_INIT_MEMBER(cclimber_state,cannonb) |
| 92 | 92 | { |
| 93 | 93 | int A; |
| 94 | UINT8 *rom = m | |
| 94 | UINT8 *rom = memregion("maincpu")->base(); | |
| 95 | 95 | |
| 96 | 96 | for (A = 0x0000;A < 0x1000;A++) /* only first ROM is encrypted */ |
| 97 | 97 | { |
| r21033 | r21034 | |
|---|---|---|
| 347 | 347 | void dec0_state::h6280_decrypt(const char *cputag) |
| 348 | 348 | { |
| 349 | 349 | int i; |
| 350 | UINT8 *RAM = m | |
| 350 | UINT8 *RAM = memregion(cputag)->base(); | |
| 351 | 351 | |
| 352 | 352 | /* Read each byte, decrypt it */ |
| 353 | 353 | for (i = 0x00000; i < 0x10000; i++) |
| r21033 | r21034 | |
| 356 | 356 | |
| 357 | 357 | DRIVER_INIT_MEMBER(dec0_state,hippodrm) |
| 358 | 358 | { |
| 359 | UINT8 *RAM = m | |
| 359 | UINT8 *RAM = memregion("sub")->base(); | |
| 360 | 360 | machine().device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x180000, 0x180fff, read16_delegate(FUNC(dec0_state::hippodrm_68000_share_r),this), write16_delegate(FUNC(dec0_state::hippodrm_68000_share_w),this)); |
| 361 | 361 | machine().device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0xffc800, 0xffcfff, write16_delegate(FUNC(dec0_state::sprite_mirror_w),this)); |
| 362 | 362 | |
| r21033 | r21034 | |
| 371 | 371 | |
| 372 | 372 | DRIVER_INIT_MEMBER(dec0_state,slyspy) |
| 373 | 373 | { |
| 374 | UINT8 *RAM = m | |
| 374 | UINT8 *RAM = memregion("audiocpu")->base(); | |
| 375 | 375 | |
| 376 | 376 | h6280_decrypt("audiocpu"); |
| 377 | 377 |
| r21033 | r21034 | |
|---|---|---|
| 141 | 141 | INTERRUPT_GEN_MEMBER(vertigo_state::vertigo_interrupt) |
| 142 | 142 | { |
| 143 | 143 | /* Coin inputs cause IRQ6 */ |
| 144 | if (( | |
| 144 | if ((ioport("COIN")->read() & 0x7) < 0x7) | |
| 145 | 145 | update_irq_encoder(INPUT_LINE_IRQ6, ASSERT_LINE); |
| 146 | 146 | } |
| 147 | 147 |
| r21033 | r21034 | |
|---|---|---|
| 111 | 111 | m_video_bank = 0; |
| 112 | 112 | |
| 113 | 113 | /* init the default banks */ |
| 114 | membank("bank1")->configure_entries(0, 64, m | |
| 114 | membank("bank1")->configure_entries(0, 64, memregion("maincpu")->base() + 0x10000, 0x2000); | |
| 115 | 115 | membank("bank1")->set_entry(0); |
| 116 | 116 | |
| 117 | membank("bank2")->configure_entries(0, 2, machine().root_device().memregion("audiocpu")->base() + 0x10000, 0); | |
| 118 | membank("bank2")->configure_entries(2, 6, machine().root_device().memregion("audiocpu")->base() + 0x10000, 0x4000); | |
| 117 | membank("bank2")->configure_entries(0, 2, memregion("audiocpu")->base() + 0x10000, 0); | |
| 118 | membank("bank2")->configure_entries(2, 6, memregion("audiocpu")->base() + 0x10000, 0x4000); | |
| 119 | 119 | membank("bank2")->set_entry(0); |
| 120 | 120 | |
| 121 | 121 | simpsons_video_banking(0); |
| r21033 | r21034 | |
|---|---|---|
| 25 | 25 | INTERRUPT_GEN_MEMBER(subs_state::subs_interrupt) |
| 26 | 26 | { |
| 27 | 27 | /* only do NMI interrupt if not in TEST mode */ |
| 28 | if (( | |
| 28 | if ((ioport("IN1")->read() & 0x40)==0x40) | |
| 29 | 29 | device.execute().set_input_line(INPUT_LINE_NMI,PULSE_LINE); |
| 30 | 30 | } |
| 31 | 31 |
| r21033 | r21034 | |
|---|---|---|
| 293 | 293 | |
| 294 | 294 | READ16_MEMBER(tatsumi_state::tatsumi_v30_68000_r) |
| 295 | 295 | { |
| 296 | const UINT16* rom=(UINT16*)m | |
| 296 | const UINT16* rom=(UINT16*)memregion("sub")->base(); | |
| 297 | 297 | |
| 298 | 298 | logerror("%05X:68000_r(%04X),cw=%04X\n", space.device().safe_pc(), offset*2, m_control_word); |
| 299 | 299 | /* Read from 68k RAM */ |
| r21033 | r21034 | |
|---|---|---|
| 673 | 673 | MACHINE_START_MEMBER(tnzs_state,jpopnics) |
| 674 | 674 | { |
| 675 | 675 | UINT8 *SUB = memregion("sub")->base(); |
| 676 | m_ROM = m | |
| 676 | m_ROM = memregion("maincpu")->base(); | |
| 677 | 677 | m_bankedram = auto_alloc_array(machine(), UINT8, 0x8000); // 2 banks of 0x4000 |
| 678 | 678 | |
| 679 | 679 | membank("subbank")->configure_entries(0, 4, &SUB[0x08000], 0x2000); |
| r21033 | r21034 | |
|---|---|---|
| 31 | 31 | { |
| 32 | 32 | naomi_board::device_start(); |
| 33 | 33 | |
| 34 | const UINT8 *key_data = m | |
| 34 | const UINT8 *key_data = memregion(key_tag)->base(); | |
| 35 | 35 | key = (key_data[0] << 24) | (key_data[1] << 16) | (key_data[2] << 8) | key_data[3]; |
| 36 | 36 | buffer = auto_alloc_array(machine(), UINT8, BUFFER_SIZE); |
| 37 | 37 |
| r21033 | r21034 | |
|---|---|---|
| 72 | 72 | { |
| 73 | 73 | dest[0] = 0x20000000; // Controller |
| 74 | 74 | dest[1] = |
| 75 | ((machine().root_device().ioport(port_tag[2]) != NULL) ? 0x010000 : 0) | | |
| 76 | ((machine().root_device().ioport(port_tag[3]) != NULL) ? 0x020000 : 0) | | |
| 77 | ((machine().root_device().ioport(port_tag[4]) != NULL) ? 0x040000 : 0) | | |
| 78 | ((machine().root_device().ioport(port_tag[5]) != NULL) ? 0x080000 : 0) | | |
| 79 | ((machine().root_device().ioport(port_tag[6]) != NULL) ? 0x100000 : 0) | | |
| 80 | ((machine().root_device().ioport(port_tag[7]) != NULL) ? 0x200000 : 0) | | |
| 81 | (machine().root_device().ioport(port_tag[0])->active_safe(0) << 8) | | |
| 82 | machine().root_device().ioport(port_tag[1])->active_safe(0); // 1st function - controller | |
| 75 | ((ioport(port_tag[2]) != NULL) ? 0x010000 : 0) | | |
| 76 | ((ioport(port_tag[3]) != NULL) ? 0x020000 : 0) | | |
| 77 | ((ioport(port_tag[4]) != NULL) ? 0x040000 : 0) | | |
| 78 | ((ioport(port_tag[5]) != NULL) ? 0x080000 : 0) | | |
| 79 | ((ioport(port_tag[6]) != NULL) ? 0x100000 : 0) | | |
| 80 | ((ioport(port_tag[7]) != NULL) ? 0x200000 : 0) | | |
| 81 | (ioport(port_tag[0])->active_safe(0) << 8) | | |
| 82 | ioport(port_tag[1])->active_safe(0); // 1st function - controller | |
| 83 | 83 | dest[2] = 0; // No 2nd function |
| 84 | 84 | dest[3] = 0; // No 3rd function |
| 85 | 85 | dest[4] = 0x00ff; // Every region, no expansion |
| r21033 | r21034 | |
|---|---|---|
| 427 | 427 | { |
| 428 | 428 | /* We do manual banking, in case the code falls through */ |
| 429 | 429 | /* Copy the initial banks */ |
| 430 | UINT8 *prg = m | |
| 430 | UINT8 *prg = memregion("maincpu")->base(); | |
| 431 | 431 | memcpy(&prg[0x08000], &prg[0x18000], 0x8000); |
| 432 | 432 | |
| 433 | 433 | /* banking is done with writes to the $8000-$ffff area */ |
| r21033 | r21034 | |
| 944 | 944 | /* when starting a mapper 68 game the first 16K ROM bank in the cart is loaded into $8000 |
| 945 | 945 | the LAST 16K ROM bank is loaded into $C000. The last 16K of ROM cannot be swapped. */ |
| 946 | 946 | |
| 947 | UINT8 *prg = m | |
| 947 | UINT8 *prg = memregion("maincpu")->base(); | |
| 948 | 948 | memcpy(&prg[0x08000], &prg[0x10000], 0x4000); |
| 949 | 949 | memcpy(&prg[0x0c000], &prg[0x2c000], 0x4000); |
| 950 | 950 | |
| r21033 | r21034 | |
| 1001 | 1001 | |
| 1002 | 1002 | DRIVER_INIT_MEMBER(vsnes_state,vsdual) |
| 1003 | 1003 | { |
| 1004 | UINT8 *prg = m | |
| 1004 | UINT8 *prg = memregion("maincpu")->base(); | |
| 1005 | 1005 | |
| 1006 | 1006 | /* vrom switching is enabled with bit 2 of $4016 */ |
| 1007 | 1007 | machine().device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0x4016, 0x4016, write8_delegate(FUNC(vsnes_state::vsdual_vrom_banking),this)); |
| r21033 | r21034 | |
|---|---|---|
| 313 | 313 | case 0x08: |
| 314 | 314 | { |
| 315 | 315 | int i; |
| 316 | const UINT16 *rom = (UINT16*)m | |
| 316 | const UINT16 *rom = (UINT16*)memregion("vertex")->base(); | |
| 317 | 317 | |
| 318 | 318 | for (i = 0; i <= cnt; ++i) |
| 319 | 319 | { |
| r21033 | r21034 | |
| 352 | 352 | case 0x0c: |
| 353 | 353 | { |
| 354 | 354 | int i; |
| 355 | const UINT16 *rom = (UINT16*)m | |
| 355 | const UINT16 *rom = (UINT16*)memregion("vertex")->base(); | |
| 356 | 356 | |
| 357 | 357 | for (i = 0; i <= cnt; ++i) |
| 358 | 358 | { |
| r21033 | r21034 | |
| 385 | 385 | case 0x0f: |
| 386 | 386 | { |
| 387 | 387 | int i; |
| 388 | const UINT16 *rom = (UINT16*)m | |
| 388 | const UINT16 *rom = (UINT16*)memregion("vertex")->base(); | |
| 389 | 389 | |
| 390 | 390 | for (i = 0; i <= cnt; ++i, vtx_addr += 4) |
| 391 | 391 | { |
| r21033 | r21034 | |
|---|---|---|
| 1576 | 1576 | |
| 1577 | 1577 | address_space& space = machine().device("maincpu")->memory().space(AS_PROGRAM); |
| 1578 | 1578 | |
| 1579 | segacd_font_bits = reinterpret_cast<UINT16 *>(machine().root_device().memshare(":segacd:segacd_font")->ptr()); | |
| 1580 | segacd_backupram = reinterpret_cast<UINT16 *>(machine().root_device().memshare(":segacd:backupram")->ptr()); | |
| 1581 | segacd_dataram = reinterpret_cast<UINT16 *>(machine().root_device().memshare(":segacd:dataram")->ptr()); | |
| 1582 | // segacd_dataram2 = reinterpret_cast<UINT16 *>(machine().root_device().memshare(":segacd:dataram2")->ptr()); | |
| 1583 | segacd_4meg_prgram = reinterpret_cast<UINT16 *>(machine().root_device().memshare(":segacd:segacd_program")->ptr()); | |
| 1579 | segacd_font_bits = reinterpret_cast<UINT16 *>(memshare(":segacd:segacd_font")->ptr()); | |
| 1580 | segacd_backupram = reinterpret_cast<UINT16 *>(memshare(":segacd:backupram")->ptr()); | |
| 1581 | segacd_dataram = reinterpret_cast<UINT16 *>(memshare(":segacd:dataram")->ptr()); | |
| 1582 | // segacd_dataram2 = reinterpret_cast<UINT16 *>(memshare(":segacd:dataram2")->ptr()); | |
| 1583 | segacd_4meg_prgram = reinterpret_cast<UINT16 *>(memshare(":segacd:segacd_program")->ptr()); | |
| 1584 | 1584 | |
| 1585 | 1585 | segacd_4meg_prgbank = 0; |
| 1586 | 1586 |
| r21033 | r21034 | |
|---|---|---|
| 25 | 25 | |
| 26 | 26 | MACHINE_RESET_MEMBER(scramble_state,explorer) |
| 27 | 27 | { |
| 28 | UINT8 *RAM = m | |
| 28 | UINT8 *RAM = memregion("maincpu")->base(); | |
| 29 | 29 | RAM[0x47ff] = 0; /* If not set, it doesn't reset after the 1st time */ |
| 30 | 30 | |
| 31 | 31 | MACHINE_RESET_CALL_MEMBER(galaxold); |
| r21033 | r21034 | |
| 188 | 188 | /* extra ROM */ |
| 189 | 189 | machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_bank(0x5800, 0x67ff, "bank1"); |
| 190 | 190 | machine().device("maincpu")->memory().space(AS_PROGRAM).unmap_write(0x5800, 0x67ff); |
| 191 | m | |
| 191 | membank("bank1")->set_base(memregion("maincpu")->base() + 0x5800); | |
| 192 | 192 | |
| 193 | 193 | machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x9008, 0x9008, read8_delegate(FUNC(scramble_state::mariner_protection_2_r),this)); |
| 194 | 194 | machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0xb401, 0xb401, read8_delegate(FUNC(scramble_state::mariner_protection_1_r),this)); |
| r21033 | r21034 | |
| 204 | 204 | UINT8 *ROM; |
| 205 | 205 | |
| 206 | 206 | /* the first ROM of the second CPU has data lines D0 and D1 swapped. Decode it. */ |
| 207 | ROM = m | |
| 207 | ROM = memregion("audiocpu")->base(); | |
| 208 | 208 | for (A = 0;A < 0x0800;A++) |
| 209 | 209 | ROM[A] = BITSWAP8(ROM[A],7,6,5,4,3,2,0,1); |
| 210 | 210 | |
| 211 | 211 | /* likewise, the 2nd gfx ROM has data lines D0 and D1 swapped. Decode it. */ |
| 212 | ROM = m | |
| 212 | ROM = memregion("gfx1")->base(); | |
| 213 | 213 | for (A = 0x0800;A < 0x1000;A++) |
| 214 | 214 | ROM[A] = BITSWAP8(ROM[A],7,6,5,4,3,2,0,1); |
| 215 | 215 | } |
| r21033 | r21034 | |
| 220 | 220 | UINT8 *ROM; |
| 221 | 221 | |
| 222 | 222 | /* the first ROM of the second CPU has data lines D0 and D1 swapped. Decode it. */ |
| 223 | ROM = m | |
| 223 | ROM = memregion("audiocpu")->base(); | |
| 224 | 224 | for (A = 0;A < 0x0800;A++) |
| 225 | 225 | ROM[A] = BITSWAP8(ROM[A],7,6,5,4,3,2,0,1); |
| 226 | 226 | } |
| r21033 | r21034 | |
| 238 | 238 | /* A2 -> A3 */ |
| 239 | 239 | /* A3 -> A1 */ |
| 240 | 240 | |
| 241 | RAM = m | |
| 241 | RAM = memregion("maincpu")->base(); | |
| 242 | 242 | for (i = 0; i < 0x10000; i += 16) |
| 243 | 243 | { |
| 244 | 244 | offs_t j; |
| r21033 | r21034 | |
| 264 | 264 | { |
| 265 | 265 | /* protection??? The game jumps into never-neverland here. I think |
| 266 | 266 | it just expects a RET there */ |
| 267 | m | |
| 267 | memregion("maincpu")->base()[0x2ef9] = 0xc9; | |
| 268 | 268 | } |
| 269 | 269 | |
| 270 | 270 | DRIVER_INIT_MEMBER(scramble_state,cavelon) |
| r21033 | r21034 | |
| 314 | 314 | { 0x80,0x87,0x81,0x87,0x83,0x00,0x84,0x01,0x01,0x86,0x86,0x80,0x86,0x00,0x86,0x86 } |
| 315 | 315 | }; |
| 316 | 316 | |
| 317 | UINT8 *ROM = m | |
| 317 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 318 | 318 | int A, ctr = 0, line, col; |
| 319 | 319 | |
| 320 | 320 | for( A = 0; A < 0x4000; A++ ) |
| r21033 | r21034 | |
| 359 | 359 | * Optimizations done by Fabio Buffoni |
| 360 | 360 | */ |
| 361 | 361 | |
| 362 | RAM = machine().root_device().memregion("gfx1")->base(); | |
| 363 | len = machine().root_device().memregion("gfx1")->bytes(); | |
| 362 | RAM = memregion("gfx1")->base(); | |
| 363 | len = memregion("gfx1")->bytes(); | |
| 364 | 364 | |
| 365 | 365 | scratch = alloc_array_or_die(UINT8, len); |
| 366 | 366 | |
| r21033 | r21034 | |
| 397 | 397 | * Optimizations done by Fabio Buffoni |
| 398 | 398 | */ |
| 399 | 399 | |
| 400 | RAM = machine().root_device().memregion("gfx1")->base(); | |
| 401 | len = machine().root_device().memregion("gfx1")->bytes(); | |
| 400 | RAM = memregion("gfx1")->base(); | |
| 401 | len = memregion("gfx1")->bytes(); | |
| 402 | 402 | |
| 403 | 403 | scratch = auto_alloc_array(machine(), UINT8, len); |
| 404 | 404 | |
| r21033 | r21034 | |
| 433 | 433 | * Code To Decode Minefield by Mike Balfour and Nicola Salmoria |
| 434 | 434 | */ |
| 435 | 435 | |
| 436 | RAM = machine().root_device().memregion("gfx1")->base(); | |
| 437 | len = machine().root_device().memregion("gfx1")->bytes(); | |
| 436 | RAM = memregion("gfx1")->base(); | |
| 437 | len = memregion("gfx1")->bytes(); | |
| 438 | 438 | |
| 439 | 439 | scratch = auto_alloc_array(machine(), UINT8, len); |
| 440 | 440 | |
| r21033 | r21034 | |
| 472 | 472 | * Optimizations done by Fabio Buffoni |
| 473 | 473 | */ |
| 474 | 474 | |
| 475 | RAM = machine().root_device().memregion("gfx1")->base(); | |
| 476 | len = machine().root_device().memregion("gfx1")->bytes(); | |
| 475 | RAM = memregion("gfx1")->base(); | |
| 476 | len = memregion("gfx1")->bytes(); | |
| 477 | 477 | |
| 478 | 478 | scratch = alloc_array_or_die(UINT8, len); |
| 479 | 479 | |
| r21033 | r21034 | |
| 499 | 499 | DRIVER_INIT_MEMBER(scramble_state,hustler) |
| 500 | 500 | { |
| 501 | 501 | offs_t A; |
| 502 | UINT8 *rom = m | |
| 502 | UINT8 *rom = memregion("maincpu")->base(); | |
| 503 | 503 | |
| 504 | 504 | |
| 505 | 505 | for (A = 0;A < 0x4000;A++) |
| r21033 | r21034 | |
| 527 | 527 | |
| 528 | 528 | /* the first ROM of the second CPU has data lines D0 and D1 swapped. Decode it. */ |
| 529 | 529 | { |
| 530 | rom = m | |
| 530 | rom = memregion("audiocpu")->base(); | |
| 531 | 531 | |
| 532 | 532 | |
| 533 | 533 | for (A = 0;A < 0x0800;A++) |
| r21033 | r21034 | |
| 539 | 539 | { |
| 540 | 540 | /* the first ROM of the second CPU has data lines D0 and D1 swapped. Decode it. */ |
| 541 | 541 | offs_t A; |
| 542 | UINT8 *rom = m | |
| 542 | UINT8 *rom = memregion("audiocpu")->base(); | |
| 543 | 543 | |
| 544 | 544 | |
| 545 | 545 | for (A = 0;A < 0x0800;A++) |
| r21033 | r21034 | |
| 549 | 549 | DRIVER_INIT_MEMBER(scramble_state,billiard) |
| 550 | 550 | { |
| 551 | 551 | offs_t A; |
| 552 | UINT8 *rom = m | |
| 552 | UINT8 *rom = memregion("maincpu")->base(); | |
| 553 | 553 | |
| 554 | 554 | |
| 555 | 555 | for (A = 0;A < 0x4000;A++) |
| r21033 | r21034 | |
| 579 | 579 | |
| 580 | 580 | /* the first ROM of the second CPU has data lines D0 and D1 swapped. Decode it. */ |
| 581 | 581 | { |
| 582 | rom = m | |
| 582 | rom = memregion("audiocpu")->base(); | |
| 583 | 583 | |
| 584 | 584 | |
| 585 | 585 | for (A = 0;A < 0x0800;A++) |
| r21033 | r21034 | |
| 607 | 607 | DRIVER_INIT_MEMBER(scramble_state,ad2083) |
| 608 | 608 | { |
| 609 | 609 | UINT8 c; |
| 610 | int i, len = machine().root_device().memregion("maincpu")->bytes(); | |
| 611 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 610 | int i, len = memregion("maincpu")->bytes(); | |
| 611 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 612 | 612 | |
| 613 | 613 | for (i=0; i<len; i++) |
| 614 | 614 | { |
| r21033 | r21034 | |
| 672 | 672 | |
| 673 | 673 | DRIVER_INIT_MEMBER(scramble_state,harem) |
| 674 | 674 | { |
| 675 | UINT8 *ROM = m | |
| 675 | UINT8 *ROM = memregion("maincpu")->base() + 0x8000; | |
| 676 | 676 | size_t size = 0x2000; |
| 677 | 677 | |
| 678 | 678 | UINT8 *data = m_harem_decrypted_data = auto_alloc_array(machine(), UINT8, size * 3); |
| r21033 | r21034 | |
|---|---|---|
| 20 | 20 | { |
| 21 | 21 | naomi_board::device_start(); |
| 22 | 22 | |
| 23 | const UINT8 *key_data = m | |
| 23 | const UINT8 *key_data = memregion(key_tag)->base(); | |
| 24 | 24 | key = (key_data[0] << 24) | (key_data[1] << 16) | (key_data[2] << 8) | key_data[3]; |
| 25 | 25 | |
| 26 | 26 | ram = auto_alloc_array(machine(), UINT8, RAM_SIZE); |
| r21033 | r21034 | |
|---|---|---|
| 36 | 36 | void segas32_state::decrypt_ga2_protrom() |
| 37 | 37 | { |
| 38 | 38 | int i; |
| 39 | UINT8 *rom = m | |
| 39 | UINT8 *rom = memregion("mcu")->base(); | |
| 40 | 40 | UINT8* temp = auto_alloc_array(machine(), UINT8, 0x100000); |
| 41 | 41 | |
| 42 | 42 | // make copy of ROM so original can be overwritten |
| r21033 | r21034 | |
|---|---|---|
| 38 | 38 | |
| 39 | 39 | UINT8 pce_common_state::joy_read() |
| 40 | 40 | { |
| 41 | return | |
| 41 | return ioport("JOY")->read(); | |
| 42 | 42 | } |
| 43 | 43 | |
| 44 | 44 | READ8_MEMBER(pce_common_state::pce_joystick_r) |
| r21033 | r21034 | |
|---|---|---|
| 20 | 20 | |
| 21 | 21 | READ8_MEMBER(mcr68_state::zwackery_port_1_r) |
| 22 | 22 | { |
| 23 | UINT8 ret = | |
| 23 | UINT8 ret = ioport("IN1")->read(); | |
| 24 | 24 | |
| 25 | 25 | downcast<pia6821_device *>(machine().device("pia1"))->set_port_a_z_mask(ret); |
| 26 | 26 | |
| r21033 | r21034 | |
| 30 | 30 | |
| 31 | 31 | READ8_MEMBER(mcr68_state::zwackery_port_3_r) |
| 32 | 32 | { |
| 33 | UINT8 ret = | |
| 33 | UINT8 ret = ioport("IN3")->read(); | |
| 34 | 34 | |
| 35 | 35 | downcast<pia6821_device *>(machine().device("pia2"))->set_port_a_z_mask(ret); |
| 36 | 36 |
| r21033 | r21034 | |
|---|---|---|
| 164 | 164 | |
| 165 | 165 | DRIVER_INIT_MEMBER(galaxold_state,zigzag) |
| 166 | 166 | { |
| 167 | UINT8 *RAM = machine().root_device().memregion("maincpu")->base(); | |
| 168 | machine().root_device().membank("bank1")->configure_entries(0, 2, &RAM[0x2000], 0x1000); | |
| 169 | machine().root_device().membank("bank2")->configure_entries(0, 2, &RAM[0x2000], 0x1000); | |
| 170 | machine().root_device().membank("bank1")->set_entry(0); | |
| 171 | machine().root_device().membank("bank2")->set_entry(1); | |
| 167 | UINT8 *RAM = memregion("maincpu")->base(); | |
| 168 | membank("bank1")->configure_entries(0, 2, &RAM[0x2000], 0x1000); | |
| 169 | membank("bank2")->configure_entries(0, 2, &RAM[0x2000], 0x1000); | |
| 170 | membank("bank1")->set_entry(0); | |
| 171 | membank("bank2")->set_entry(1); | |
| 172 | 172 | } |
| 173 | 173 | |
| 174 | 174 | |
| r21033 | r21034 | |
| 192 | 192 | DRIVER_INIT_MEMBER(galaxold_state,dingoe) |
| 193 | 193 | { |
| 194 | 194 | offs_t i; |
| 195 | UINT8 *rom = m | |
| 195 | UINT8 *rom = memregion("maincpu")->base(); | |
| 196 | 196 | |
| 197 | 197 | for (i = 0; i < 0x3000; i++) |
| 198 | 198 | { |
| r21033 | r21034 | |
| 299 | 299 | |
| 300 | 300 | DRIVER_INIT_MEMBER(galaxold_state,mooncrst) |
| 301 | 301 | { |
| 302 | offs_t i, len = machine().root_device().memregion("maincpu")->bytes(); | |
| 303 | UINT8 *rom = machine().root_device().memregion("maincpu")->base(); | |
| 302 | offs_t i, len = memregion("maincpu")->bytes(); | |
| 303 | UINT8 *rom = memregion("maincpu")->base(); | |
| 304 | 304 | |
| 305 | 305 | |
| 306 | 306 | for (i = 0;i < len;i++) |
| r21033 | r21034 | |
| 318 | 318 | { |
| 319 | 319 | offs_t i; |
| 320 | 320 | address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); |
| 321 | UINT8 *rom = m | |
| 321 | UINT8 *rom = memregion("maincpu")->base(); | |
| 322 | 322 | UINT8 *decrypt = auto_alloc_array(machine(), UINT8, 0x8000); |
| 323 | 323 | |
| 324 | 324 | space.set_decrypted_region(0x0000, 0x7fff, decrypt); |
| r21033 | r21034 | |
| 376 | 376 | { 1,4,1,4 } |
| 377 | 377 | }; |
| 378 | 378 | |
| 379 | offs_t i, len = machine().root_device().memregion("maincpu")->bytes(); | |
| 380 | UINT8 *rom = machine().root_device().memregion("maincpu")->base(); | |
| 379 | offs_t i, len = memregion("maincpu")->bytes(); | |
| 380 | UINT8 *rom = memregion("maincpu")->base(); | |
| 381 | 381 | |
| 382 | 382 | |
| 383 | 383 | for (i = 0; i < len; i++) |
| r21033 | r21034 | |
| 427 | 427 | int i; |
| 428 | 428 | |
| 429 | 429 | // patch char supposed to be space |
| 430 | UINT8 *gfxrom = m | |
| 430 | UINT8 *gfxrom = memregion("gfx1")->base(); | |
| 431 | 431 | for (i = 0; i < 8; i++) |
| 432 | 432 | { |
| 433 | 433 | gfxrom[i] = 0; |
| r21033 | r21034 | |
|---|---|---|
| 445 | 445 | INTERRUPT_GEN_MEMBER(leland_state::leland_master_interrupt) |
| 446 | 446 | { |
| 447 | 447 | /* check for coins here */ |
| 448 | if (( | |
| 448 | if ((ioport("IN1")->read() & 0x0e) != 0x0e) | |
| 449 | 449 | device.execute().set_input_line(INPUT_LINE_NMI, ASSERT_LINE); |
| 450 | 450 | } |
| 451 | 451 | |
| r21033 | r21034 | |
| 810 | 810 | |
| 811 | 811 | READ8_MEMBER(leland_state::ataxx_eeprom_r) |
| 812 | 812 | { |
| 813 | int port = | |
| 813 | int port = ioport("IN2")->read(); | |
| 814 | 814 | if (LOG_EEPROM) logerror("%s:EE read\n", machine().describe_context()); |
| 815 | 815 | return port; |
| 816 | 816 | } |
| r21033 | r21034 | |
| 1400 | 1400 | void leland_state::leland_rotate_memory(const char *cpuname) |
| 1401 | 1401 | { |
| 1402 | 1402 | int startaddr = 0x10000; |
| 1403 | int banks = (machine().root_device().memregion(cpuname)->bytes() - startaddr) / 0x8000; | |
| 1404 | UINT8 *ram = machine().root_device().memregion(cpuname)->base(); | |
| 1403 | int banks = (memregion(cpuname)->bytes() - startaddr) / 0x8000; | |
| 1404 | UINT8 *ram = memregion(cpuname)->base(); | |
| 1405 | 1405 | UINT8 temp[0x2000]; |
| 1406 | 1406 | int i; |
| 1407 | 1407 |
| r21033 | r21034 | |
|---|---|---|
| 264 | 264 | |
| 265 | 265 | void turbo_state::turbo_prepare_sprites(UINT8 y, sprite_info *info) |
| 266 | 266 | { |
| 267 | const UINT8 *pr1119 = m | |
| 267 | const UINT8 *pr1119 = memregion("proms")->base() + 0x200; | |
| 268 | 268 | int sprnum; |
| 269 | 269 | |
| 270 | 270 | /* initialize the line enable signals to 0 */ |
| r21033 | r21034 | |
| 322 | 322 | VR1 = 310 Ohm |
| 323 | 323 | VR2 = 910 Ohm |
| 324 | 324 | */ |
| 325 | info->step[level] = sprite_xscale(xscale, 1.0e3 * | |
| 325 | info->step[level] = sprite_xscale(xscale, 1.0e3 * ioport("VR1")->read() / 100.0, 1.0e3 * ioport("VR2")->read() / 100.0, 100e-12); | |
| 326 | 326 | } |
| 327 | 327 | } |
| 328 | 328 | } |
| r21033 | r21034 | |
| 385 | 385 | UINT32 turbo_state::screen_update_turbo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| 386 | 386 | { |
| 387 | 387 | bitmap_ind16 &fgpixmap = m_fg_tilemap->pixmap(); |
| 388 | const UINT8 *road_gfxdata = m | |
| 388 | const UINT8 *road_gfxdata = memregion("gfx3")->base(); | |
| 389 | 389 | const UINT8 *prom_base = memregion("proms")->base(); |
| 390 | 390 | const UINT8 *pr1114 = prom_base + 0x000; |
| 391 | 391 | const UINT8 *pr1115 = prom_base + 0x020; |
| r21033 | r21034 | |
| 621 | 621 | |
| 622 | 622 | void turbo_state::subroc3d_prepare_sprites(UINT8 y, sprite_info *info) |
| 623 | 623 | { |
| 624 | const UINT8 *pr1449 = m | |
| 624 | const UINT8 *pr1449 = memregion("proms")->base() + 0x300; | |
| 625 | 625 | int sprnum; |
| 626 | 626 | |
| 627 | 627 | /* initialize the line enable signals to 0 */ |
| r21033 | r21034 | |
| 838 | 838 | |
| 839 | 839 | void turbo_state::buckrog_prepare_sprites(UINT8 y, sprite_info *info) |
| 840 | 840 | { |
| 841 | const UINT8 *pr5196 = m | |
| 841 | const UINT8 *pr5196 = memregion("proms")->base() + 0x100; | |
| 842 | 842 | int sprnum; |
| 843 | 843 | |
| 844 | 844 | /* initialize the line enable signals to 0 */ |
| r21033 | r21034 | |
| 956 | 956 | UINT32 turbo_state::screen_update_buckrog(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| 957 | 957 | { |
| 958 | 958 | bitmap_ind16 &fgpixmap = m_fg_tilemap->pixmap(); |
| 959 | const UINT8 *bgcolor = m | |
| 959 | const UINT8 *bgcolor = memregion("gfx3")->base(); | |
| 960 | 960 | const UINT8 *prom_base = memregion("proms")->base(); |
| 961 | 961 | const UINT8 *pr5194 = prom_base + 0x000; |
| 962 | 962 | const UINT8 *pr5198 = prom_base + 0x500; |
| r21033 | r21034 | |
|---|---|---|
| 4 | 4 | |
| 5 | 5 | void sidepckt_state::palette_init() |
| 6 | 6 | { |
| 7 | const UINT8 *color_prom = m | |
| 7 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 8 | 8 | int i; |
| 9 | 9 | |
| 10 | 10 | for (i = 0;i < machine().total_colors();i++) |
| r21033 | r21034 | |
|---|---|---|
| 4 | 4 | |
| 5 | 5 | void kopunch_state::palette_init() |
| 6 | 6 | { |
| 7 | const UINT8 *color_prom = m | |
| 7 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 8 | 8 | int i; |
| 9 | 9 | |
| 10 | 10 | color_prom += 24; /* first 24 colors are black */ |
| r21033 | r21034 | |
|---|---|---|
| 17 | 17 | ***************************************************************************/ |
| 18 | 18 | void tankbatt_state::palette_init() |
| 19 | 19 | { |
| 20 | const UINT8 *color_prom = m | |
| 20 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 21 | 21 | int i; |
| 22 | 22 | |
| 23 | 23 | #define RES_1 0xc0 /* this is a guess */ |
| r21033 | r21034 | |
|---|---|---|
| 261 | 261 | static const int pri[] = { 0, 0xfc, 0xff, 0xff }; |
| 262 | 262 | int offs; |
| 263 | 263 | UINT16 *spritelist = (UINT16 *)(m_spritebuf2 + 0x1800 / 4); |
| 264 | UINT8 *TILES = machine().root_device().memregion("spritelut")->base(); // Sprites LUT | |
| 265 | int TILES_LEN = machine().root_device().memregion("spritelut")->bytes(); | |
| 264 | UINT8 *TILES = memregion("spritelut")->base(); // Sprites LUT | |
| 265 | int TILES_LEN = memregion("spritelut")->bytes(); | |
| 266 | 266 | |
| 267 | 267 | int width = machine().primary_screen->width(); |
| 268 | 268 | int height = machine().primary_screen->height(); |
| r21033 | r21034 | |
| 379 | 379 | static const int pri[] = { 0, 0xfc, 0xff, 0xff }; |
| 380 | 380 | int offs; |
| 381 | 381 | UINT16 *spritelist = (UINT16 *)(m_spritebuf2 + 0x1800 / 4); |
| 382 | UINT8 *TILES = machine().root_device().memregion("spritelut")->base(); // Sprites LUT | |
| 383 | int TILES_LEN = machine().root_device().memregion("spritelut")->bytes(); | |
| 382 | UINT8 *TILES = memregion("spritelut")->base(); // Sprites LUT | |
| 383 | int TILES_LEN = memregion("spritelut")->bytes(); | |
| 384 | 384 | |
| 385 | 385 | int width = machine().primary_screen->width(); |
| 386 | 386 | int height = machine().primary_screen->height(); |
| r21033 | r21034 | |
| 523 | 523 | |
| 524 | 524 | tilemap_t *tmptilemap0, *tmptilemap1; |
| 525 | 525 | |
| 526 | flip_screen_set(~ | |
| 526 | flip_screen_set(~ioport("DSW")->read() & 0x00010000); // hardwired to a DSW bit | |
| 527 | 527 | |
| 528 | 528 | /* Layers enable (not quite right) */ |
| 529 | 529 | |
| r21033 | r21034 | |
| 696 | 696 | |
| 697 | 697 | tilemap_t *tmptilemap0, *tmptilemap1; |
| 698 | 698 | |
| 699 | flip_screen_set(~ | |
| 699 | flip_screen_set(~ioport("DSW")->read() & 0x00010000); // hardwired to a DSW bit | |
| 700 | 700 | |
| 701 | 701 | /* Layers enable (not quite right) */ |
| 702 | 702 |
| r21033 | r21034 | |
|---|---|---|
| 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=memregion("user1")->base()[tile_index]; /* TTTTTTTT */ | |
| 19 | attr=memregion("user2")->base()[tile_index]; /* -PPP--TT - FIXED BITS (0xxx00xx) */ | |
| 20 | 20 | code+=(attr&3)<<8; |
| 21 | 21 | pal=(attr>>4); |
| 22 | 22 | |
| r21033 | r21034 | |
| 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=memregion("user3")->base()[tile_index]; /* TTTTTTTT */ | |
| 35 | attr=memregion("user4")->base()[tile_index]; /* -PPP--TT - FIXED BITS (0xxx00xx) */ | |
| 36 | 36 | pal=attr>>4; |
| 37 | 37 | |
| 38 | 38 | code+=(attr&3)<<8; |
| r21033 | r21034 | |
| 70 | 70 | |
| 71 | 71 | void darkmist_state::palette_init() |
| 72 | 72 | { |
| 73 | const UINT8 *color_prom = m | |
| 73 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 74 | 74 | int i; |
| 75 | 75 | |
| 76 | 76 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 185 | 185 | UINT32 srcadr=(st0016_vregs[0xa0]|(st0016_vregs[0xa1]<<8)|(st0016_vregs[0xa2]<<16))<<1; |
| 186 | 186 | UINT32 dstadr=(st0016_vregs[0xa3]|(st0016_vregs[0xa4]<<8)|(st0016_vregs[0xa5]<<16))<<1; |
| 187 | 187 | UINT32 length=((st0016_vregs[0xa6]|(st0016_vregs[0xa7]<<8)|((st0016_vregs[0xa8]&0x1f)<<16))+1)<<1; |
| 188 | UINT32 srclen = (m | |
| 188 | UINT32 srclen = (memregion("maincpu")->bytes()); | |
| 189 | 189 | UINT8 *mem = memregion("maincpu")->base(); |
| 190 | 190 | |
| 191 | 191 | srcadr += macs_cart_slot*0x400000; |
| r21033 | r21034 | |
|---|---|---|
| 22 | 22 | |
| 23 | 23 | PALETTE_INIT_MEMBER(appoooh_state,appoooh) |
| 24 | 24 | { |
| 25 | const UINT8 *color_prom = m | |
| 25 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 26 | 26 | int i; |
| 27 | 27 | |
| 28 | 28 | for (i = 0; i < machine().total_colors(); i++) |
| r21033 | r21034 | |
| 61 | 61 | |
| 62 | 62 | PALETTE_INIT_MEMBER(appoooh_state,robowres) |
| 63 | 63 | { |
| 64 | const UINT8 *color_prom = m | |
| 64 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 65 | 65 | int i; |
| 66 | 66 | |
| 67 | 67 | for (i = 0; i < machine().total_colors(); i++) |
| r21033 | r21034 | |
|---|---|---|
| 108 | 108 | |
| 109 | 109 | void skyraid_state::draw_trapezoid(bitmap_ind16& dst, bitmap_ind16& src) |
| 110 | 110 | { |
| 111 | const UINT8* p = m | |
| 111 | const UINT8* p = memregion("user2")->base(); | |
| 112 | 112 | |
| 113 | 113 | int x; |
| 114 | 114 | int y; |
| r21033 | r21034 | |
|---|---|---|
| 47 | 47 | |
| 48 | 48 | void dday_state::palette_init() |
| 49 | 49 | { |
| 50 | const UINT8 *color_prom = m | |
| 50 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 51 | 51 | int i; |
| 52 | 52 | |
| 53 | 53 | palette_set_shadow_factor(machine(), 1.0 / 8); |
| r21033 | r21034 | |
|---|---|---|
| 31 | 31 | |
| 32 | 32 | void rocnrope_state::palette_init() |
| 33 | 33 | { |
| 34 | const UINT8 *color_prom = m | |
| 34 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 35 | 35 | static const int resistances_rg[3] = { 1000, 470, 220 }; |
| 36 | 36 | static const int resistances_b [2] = { 470, 220 }; |
| 37 | 37 | double rweights[3], gweights[3], bweights[2]; |
| r21033 | r21034 | |
|---|---|---|
| 31 | 31 | |
| 32 | 32 | void docastle_state::palette_init() |
| 33 | 33 | { |
| 34 | const UINT8 *color_prom = m | |
| 34 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 35 | 35 | int i; |
| 36 | 36 | |
| 37 | 37 | for (i = 0; i < 256; i++) |
| r21033 | r21034 | |
|---|---|---|
| 74 | 74 | static const int resistances_b [2] = { 3300, 1500 }; |
| 75 | 75 | double weights_rg[3], weights_b[2]; |
| 76 | 76 | |
| 77 | UINT8 *color_prom = m | |
| 77 | UINT8 *color_prom = memregion("proms")->base(); | |
| 78 | 78 | |
| 79 | 79 | compute_resistor_weights(0, 255, -1.0, |
| 80 | 80 | 3, resistances_rg, weights_rg, 0, 4700, |
| r21033 | r21034 | |
| 244 | 244 | |
| 245 | 245 | UINT32 mystston_state::screen_update_mystston(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| 246 | 246 | { |
| 247 | int flip = (*m_video_control & 0x80) ^ (( | |
| 247 | int flip = (*m_video_control & 0x80) ^ ((ioport("DSW1")->read() & 0x20) << 2); | |
| 248 | 248 | |
| 249 | 249 | set_palette(); |
| 250 | 250 |
| r21033 | r21034 | |
|---|---|---|
| 242 | 242 | skipy = -1; |
| 243 | 243 | } |
| 244 | 244 | |
| 245 | gfxlen = m | |
| 245 | gfxlen = memregion("gfx1")->bytes(); | |
| 246 | 246 | gfxaddr = ((m_blitter_src_addr[vram] + 2) & 0x00ffffff); |
| 247 | 247 | |
| 248 | 248 | for (y = starty, ctry = sizey; ctry >= 0; y += skipy, ctry--) |
| r21033 | r21034 | |
|---|---|---|
| 27 | 27 | |
| 28 | 28 | PALETTE_INIT_MEMBER(polepos_state,polepos) |
| 29 | 29 | { |
| 30 | const UINT8 *color_prom = m | |
| 30 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 31 | 31 | int i, j; |
| 32 | 32 | |
| 33 | 33 | /* allocate the colortable */ |
| r21033 | r21034 | |
| 421 | 421 | { |
| 422 | 422 | gfx_element *gfx = machine().gfx[big ? 3 : 2]; |
| 423 | 423 | const UINT8 *gfxdata = gfx->get_data(code % gfx->elements()); |
| 424 | UINT8 *scaling_rom = m | |
| 424 | UINT8 *scaling_rom = memregion("gfx6")->base(); | |
| 425 | 425 | UINT32 transmask = colortable_get_transpen_mask(machine().colortable, gfx, color, 0x1f); |
| 426 | 426 | int coloroffs = gfx->colorbase() + color * gfx->granularity(); |
| 427 | 427 | int x,y; |
| r21033 | r21034 | |
|---|---|---|
| 66 | 66 | |
| 67 | 67 | void lasso_state::palette_init() |
| 68 | 68 | { |
| 69 | const UINT8 *color_prom = m | |
| 69 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 70 | 70 | int i; |
| 71 | 71 | |
| 72 | 72 | for (i = 0; i < 0x40; i++) |
| r21033 | r21034 | |
| 76 | 76 | |
| 77 | 77 | PALETTE_INIT_MEMBER(lasso_state,wwjgtin) |
| 78 | 78 | { |
| 79 | const UINT8 *color_prom = m | |
| 79 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 80 | 80 | int i; |
| 81 | 81 | |
| 82 | 82 | /* allocate the colortable */ |
| r21033 | r21034 | |
| 134 | 134 | |
| 135 | 135 | TILE_GET_INFO_MEMBER(lasso_state::wwjgtin_get_track_tile_info) |
| 136 | 136 | { |
| 137 | UINT8 *ROM = m | |
| 137 | UINT8 *ROM = memregion("user1")->base(); | |
| 138 | 138 | int code = ROM[tile_index]; |
| 139 | 139 | int color = ROM[tile_index + 0x2000]; |
| 140 | 140 |
| r21033 | r21034 | |
|---|---|---|
| 4 | 4 | |
| 5 | 5 | void labyrunr_state::palette_init() |
| 6 | 6 | { |
| 7 | const UINT8 *color_prom = m | |
| 7 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 8 | 8 | int pal; |
| 9 | 9 | |
| 10 | 10 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 20 | 20 | static const int resistances[3] = { 22000, 10000, 4700 }; |
| 21 | 21 | |
| 22 | 22 | /* get pointers to our PROMs */ |
| 23 | m_syncprom = machine().root_device().memregion("proms")->base() + 0x000; | |
| 24 | m_wpprom = machine().root_device().memregion("proms")->base() + 0x200; | |
| 25 | m_priprom = machine().root_device().memregion("proms")->base() + 0x300; | |
| 23 | m_syncprom = memregion("proms")->base() + 0x000; | |
| 24 | m_wpprom = memregion("proms")->base() + 0x200; | |
| 25 | m_priprom = memregion("proms")->base() + 0x300; | |
| 26 | 26 | |
| 27 | 27 | /* compute the color output resistor weights at startup */ |
| 28 | 28 | compute_resistor_weights(0, 255, -1.0, |
| r21033 | r21034 | |
|---|---|---|
| 4 | 4 | |
| 5 | 5 | void mermaid_state::palette_init() |
| 6 | 6 | { |
| 7 | const UINT8 *color_prom = m | |
| 7 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 8 | 8 | int i; |
| 9 | 9 | |
| 10 | 10 | /* allocate the colortable */ |
| r21033 | r21034 | |
| 35 | 35 | |
| 36 | 36 | PALETTE_INIT_MEMBER(mermaid_state,rougien) |
| 37 | 37 | { |
| 38 | const UINT8 *color_prom = m | |
| 38 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 39 | 39 | int i; |
| 40 | 40 | |
| 41 | 41 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 27 | 27 | int width = visarea.width(); |
| 28 | 28 | int height = visarea.height(); |
| 29 | 29 | |
| 30 | *x = ((machine().root_device().ioport(gunnames[player * 2])->read_safe(0x00) & 0xff) * width) / 255; | |
| 31 | *y = ((machine().root_device().ioport(gunnames[1 + player * 2])->read_safe(0x00) & 0xff) * height) / 255; | |
| 30 | *x = ((ioport(gunnames[player * 2])->read_safe(0x00) & 0xff) * width) / 255; | |
| 31 | *y = ((ioport(gunnames[1 + player * 2])->read_safe(0x00) & 0xff) * height) / 255; | |
| 32 | 32 | } |
| 33 | 33 | |
| 34 | 34 |
| r21033 | r21034 | |
|---|---|---|
| 500 | 500 | for (i = 6000; i < 6016; i++) { m_alpha_table[i] = 1; } |
| 501 | 501 | for (i = 6128; i < 6144; i++) { m_alpha_table[i] = 1; } |
| 502 | 502 | |
| 503 | region_length = m | |
| 503 | region_length = memregion("gfx2")->bytes(); | |
| 504 | 504 | |
| 505 | 505 | if (region_length <= 0x300000) |
| 506 | 506 | { |
| r21033 | r21034 | |
|---|---|---|
| 10 | 10 | |
| 11 | 11 | void speedatk_state::palette_init() |
| 12 | 12 | { |
| 13 | const UINT8 *color_prom = m | |
| 13 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 14 | 14 | int i; |
| 15 | 15 | |
| 16 | 16 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 214 | 214 | skipy = -1; |
| 215 | 215 | } |
| 216 | 216 | |
| 217 | gfxlen = m | |
| 217 | gfxlen = memregion("gfx1")->bytes(); | |
| 218 | 218 | gfxaddr = ((m_blitter_src_addr[vram] + 2) & 0x00ffffff); |
| 219 | 219 | |
| 220 | 220 | for (y = starty, ctry = sizey; ctry >= 0; y += skipy, ctry--) |
| r21033 | r21034 | |
|---|---|---|
| 33 | 33 | |
| 34 | 34 | void exedexes_state::palette_init() |
| 35 | 35 | { |
| 36 | const UINT8 *color_prom = m | |
| 36 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 37 | 37 | int i; |
| 38 | 38 | |
| 39 | 39 | /* allocate the colortable */ |
| r21033 | r21034 | |
| 125 | 125 | |
| 126 | 126 | TILE_GET_INFO_MEMBER(exedexes_state::get_bg_tile_info) |
| 127 | 127 | { |
| 128 | UINT8 *tilerom = m | |
| 128 | UINT8 *tilerom = memregion("gfx5")->base(); | |
| 129 | 129 | |
| 130 | 130 | int attr = tilerom[tile_index]; |
| 131 | 131 | int code = attr & 0x3f; |
| r21033 | r21034 | |
| 137 | 137 | |
| 138 | 138 | TILE_GET_INFO_MEMBER(exedexes_state::get_fg_tile_info) |
| 139 | 139 | { |
| 140 | int code = m | |
| 140 | int code = memregion("gfx5")->base()[tile_index]; | |
| 141 | 141 | |
| 142 | 142 | SET_TILE_INFO_MEMBER(2, code, 0, 0); |
| 143 | 143 | } |
| r21033 | r21034 | |
|---|---|---|
| 612 | 612 | m_sprite_bitmap.fill(0x0000, cliprect); |
| 613 | 613 | |
| 614 | 614 | if (m_alt_enable_sprites) |
| 615 | m_spritegen->skns_draw_sprites(machine(), m_sprite_bitmap, cliprect, m_spriteram, m_spriteram.bytes(), m | |
| 615 | m_spritegen->skns_draw_sprites(machine(), m_sprite_bitmap, cliprect, m_spriteram, m_spriteram.bytes(), memregion("gfx1")->base(), memregion ("gfx1")->bytes(), m_spc_regs ); | |
| 616 | 616 | |
| 617 | 617 | |
| 618 | 618 | return 0; |
| r21033 | r21034 | |
|---|---|---|
| 11 | 11 | |
| 12 | 12 | void gotya_state::palette_init() |
| 13 | 13 | { |
| 14 | const UINT8 *color_prom = m | |
| 14 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 15 | 15 | static const int resistances_rg[3] = { 1000, 470, 220 }; |
| 16 | 16 | static const int resistances_b [2] = { 470, 220 }; |
| 17 | 17 | double rweights[3], gweights[3], bweights[2]; |
| r21033 | r21034 | |
|---|---|---|
| 9 | 9 | |
| 10 | 10 | void shootout_state::palette_init() |
| 11 | 11 | { |
| 12 | const UINT8 *color_prom = m | |
| 12 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 13 | 13 | int i; |
| 14 | 14 | |
| 15 | 15 |
| r21033 | r21034 | |
|---|---|---|
| 44 | 44 | ***************************************************************************/ |
| 45 | 45 | PALETTE_INIT_MEMBER(bagman_state,bagman) |
| 46 | 46 | { |
| 47 | const UINT8 *color_prom = m | |
| 47 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 48 | 48 | int i; |
| 49 | 49 | static const int resistances_rg[3] = { 1000, 470, 220 }; |
| 50 | 50 | static const int resistances_b [2] = { 470, 220 }; |
| r21033 | r21034 | |
|---|---|---|
| 17 | 17 | |
| 18 | 18 | void dribling_state::palette_init() |
| 19 | 19 | { |
| 20 | const UINT8 *prom = m | |
| 20 | const UINT8 *prom = memregion("proms")->base() + 0x400; | |
| 21 | 21 | int i; |
| 22 | 22 | |
| 23 | 23 | for (i = 0; i < 256; i++) |
| r21033 | r21034 | |
| 58 | 58 | |
| 59 | 59 | UINT32 dribling_state::screen_update_dribling(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| 60 | 60 | { |
| 61 | UINT8 *prombase = m | |
| 61 | UINT8 *prombase = memregion("proms")->base(); | |
| 62 | 62 | UINT8 *gfxbase = memregion("gfx1")->base(); |
| 63 | 63 | int x, y; |
| 64 | 64 |
| r21033 | r21034 | |
|---|---|---|
| 24 | 24 | |
| 25 | 25 | void chaknpop_state::palette_init() |
| 26 | 26 | { |
| 27 | const UINT8 *color_prom = m | |
| 27 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 28 | 28 | int i; |
| 29 | 29 | |
| 30 | 30 | for (i = 0; i < 1024; i++) |
| r21033 | r21034 | |
|---|---|---|
| 11 | 11 | |
| 12 | 12 | PALETTE_INIT_MEMBER(srmp2_state,srmp2) |
| 13 | 13 | { |
| 14 | const UINT8 *color_prom = m | |
| 14 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 15 | 15 | int i; |
| 16 | 16 | |
| 17 | 17 | for (i = 0; i < machine().total_colors(); i++) |
| r21033 | r21034 | |
| 26 | 26 | |
| 27 | 27 | PALETTE_INIT_MEMBER(srmp2_state,srmp3) |
| 28 | 28 | { |
| 29 | const UINT8 *color_prom = m | |
| 29 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 30 | 30 | int i; |
| 31 | 31 | |
| 32 | 32 | for (i = 0; i < machine().total_colors(); i++) |
| r21033 | r21034 | |
|---|---|---|
| 12 | 12 | |
| 13 | 13 | void ddribble_state::palette_init() |
| 14 | 14 | { |
| 15 | const UINT8 *color_prom = m | |
| 15 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 16 | 16 | int i; |
| 17 | 17 | |
| 18 | 18 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 90 | 90 | |
| 91 | 91 | void terracre_state::palette_init() |
| 92 | 92 | { |
| 93 | const UINT8 *color_prom = m | |
| 93 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 94 | 94 | int i; |
| 95 | 95 | |
| 96 | 96 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 15 | 15 | |
| 16 | 16 | TILE_GET_INFO_MEMBER(pushman_state::get_back_tile_info) |
| 17 | 17 | { |
| 18 | UINT8 *bg_map = m | |
| 18 | UINT8 *bg_map = memregion("gfx4")->base(); | |
| 19 | 19 | int tile; |
| 20 | 20 | |
| 21 | 21 | tile = bg_map[tile_index << 1] + (bg_map[(tile_index << 1) + 1] << 8); |
| r21033 | r21034 | |
|---|---|---|
| 465 | 465 | /* See if we should draw artificial gun targets */ |
| 466 | 466 | /* (not yet implemented...) */ |
| 467 | 467 | |
| 468 | if ( | |
| 468 | if (ioport("FAKE")->read() & 0x1) /* Fake DSW */ | |
| 469 | 469 | { |
| 470 | 470 | popmessage("Gunsights on"); |
| 471 | 471 | } |
| r21033 | r21034 | |
|---|---|---|
| 48 | 48 | |
| 49 | 49 | PALETTE_INIT_MEMBER(zodiack_state,zodiack) |
| 50 | 50 | { |
| 51 | const UINT8 *color_prom = m | |
| 51 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 52 | 52 | int i; |
| 53 | 53 | |
| 54 | 54 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 42 | 42 | } |
| 43 | 43 | |
| 44 | 44 | tileinfo.category = |
| 45 | (m | |
| 45 | (memregion( "proms" )->base()[0x800+color*4]==2)?1:0; | |
| 46 | 46 | } |
| 47 | 47 | |
| 48 | 48 | VIDEO_START_MEMBER(shangkid_state,shangkid) |
| r21033 | r21034 | |
| 195 | 195 | |
| 196 | 196 | PALETTE_INIT_MEMBER(shangkid_state,dynamski) |
| 197 | 197 | { |
| 198 | const UINT8 *color_prom = m | |
| 198 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 199 | 199 | int i; |
| 200 | 200 | |
| 201 | 201 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 31 | 31 | |
| 32 | 32 | PALETTE_INIT_MEMBER(trackfld_state,trackfld) |
| 33 | 33 | { |
| 34 | const UINT8 *color_prom = m | |
| 34 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 35 | 35 | static const int resistances_rg[3] = { 1000, 470, 220 }; |
| 36 | 36 | static const int resistances_b [2] = { 470, 220 }; |
| 37 | 37 | double rweights[3], gweights[3], bweights[2]; |
| r21033 | r21034 | |
|---|---|---|
| 25 | 25 | |
| 26 | 26 | PALETTE_INIT_MEMBER(fastfred_state,fastfred) |
| 27 | 27 | { |
| 28 | const UINT8 *color_prom = m | |
| 28 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 29 | 29 | static const int resistances[4] = { 1000, 470, 220, 100 }; |
| 30 | 30 | double rweights[4], gweights[4], bweights[4]; |
| 31 | 31 | int i; |
| r21033 | r21034 | |
|---|---|---|
| 114 | 114 | |
| 115 | 115 | void pitnrun_state::palette_init() |
| 116 | 116 | { |
| 117 | const UINT8 *color_prom = m | |
| 117 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 118 | 118 | int i; |
| 119 | 119 | int bit0,bit1,bit2,r,g,b; |
| 120 | 120 | for (i = 0;i < 32*3; i++) |
| r21033 | r21034 | |
| 218 | 218 | |
| 219 | 219 | if (machine().input().code_pressed_once(KEYCODE_W)) |
| 220 | 220 | { |
| 221 | UINT8 *ROM = m | |
| 221 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 222 | 222 | ROM[0x84f6]=6; /* lap 6 = spotlight */ |
| 223 | 223 | } |
| 224 | 224 | |
| 225 | 225 | if (machine().input().code_pressed_once(KEYCODE_E)) |
| 226 | 226 | { |
| 227 | UINT8 *ROM = m | |
| 227 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 228 | 228 | ROM[0x84f6]=2; /* lap 3 (trial 2)= lightnings */ |
| 229 | 229 | ROM[0x8102]=1; |
| 230 | 230 | } |
| r21033 | r21034 | |
|---|---|---|
| 64 | 64 | ***************************************************************************/ |
| 65 | 65 | void mario_state::palette_init() |
| 66 | 66 | { |
| 67 | const UINT8 *color_prom = m | |
| 67 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 68 | 68 | rgb_t *rgb; |
| 69 | 69 | |
| 70 | 70 | rgb = compute_res_net_all(machine(), color_prom, &mario_decode_info, &mario_net_info); |
| r21033 | r21034 | |
| 199 | 199 | { |
| 200 | 200 | int t; |
| 201 | 201 | |
| 202 | t = | |
| 202 | t = ioport("MONITOR")->read(); | |
| 203 | 203 | if (t != m_monitor) |
| 204 | 204 | { |
| 205 | 205 | m_monitor = t; |
| r21033 | r21034 | |
|---|---|---|
| 26 | 26 | ***************************************************************************/ |
| 27 | 27 | void magmax_state::palette_init() |
| 28 | 28 | { |
| 29 | const UINT8 *color_prom = m | |
| 29 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 30 | 30 | int i; |
| 31 | 31 | |
| 32 | 32 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 12 | 12 | |
| 13 | 13 | void finalizr_state::palette_init() |
| 14 | 14 | { |
| 15 | const UINT8 *color_prom = m | |
| 15 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 16 | 16 | int i; |
| 17 | 17 | |
| 18 | 18 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 18 | 18 | |
| 19 | 19 | void xorworld_state::palette_init() |
| 20 | 20 | { |
| 21 | const UINT8 *color_prom = m | |
| 21 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 22 | 22 | int i; |
| 23 | 23 | |
| 24 | 24 | for (i = 0;i < machine().total_colors();i++){ |
| r21033 | r21034 | |
|---|---|---|
| 38 | 38 | ***************************************************************************/ |
| 39 | 39 | PALETTE_INIT_MEMBER(cclimber_state,cclimber) |
| 40 | 40 | { |
| 41 | const UINT8 *color_prom = m | |
| 41 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 42 | 42 | static const int resistances_rg[3] = { 1000, 470, 220 }; |
| 43 | 43 | static const int resistances_b [2] = { 470, 220 }; |
| 44 | 44 | double weights_rg[3], weights_b[2]; |
| r21033 | r21034 | |
| 115 | 115 | |
| 116 | 116 | PALETTE_INIT_MEMBER(cclimber_state,swimmer) |
| 117 | 117 | { |
| 118 | const UINT8 *color_prom = m | |
| 118 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 119 | 119 | int i; |
| 120 | 120 | |
| 121 | 121 | for (i = 0; i < 0x100; i++) |
| r21033 | r21034 | |
| 184 | 184 | |
| 185 | 185 | PALETTE_INIT_MEMBER(cclimber_state,yamato) |
| 186 | 186 | { |
| 187 | const UINT8 *color_prom = m | |
| 187 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 188 | 188 | int i; |
| 189 | 189 | |
| 190 | 190 | /* chars - 12 bits RGB */ |
| r21033 | r21034 | |
| 252 | 252 | |
| 253 | 253 | PALETTE_INIT_MEMBER(cclimber_state,toprollr) |
| 254 | 254 | { |
| 255 | const UINT8 *color_prom = m | |
| 255 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 256 | 256 | int i; |
| 257 | 257 | |
| 258 | 258 | for (i = 0; i < 0xa0; i++) |
| r21033 | r21034 | |
|---|---|---|
| 39 | 39 | |
| 40 | 40 | void travrusa_state::palette_init() |
| 41 | 41 | { |
| 42 | const UINT8 *color_prom = m | |
| 42 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 43 | 43 | int i; |
| 44 | 44 | |
| 45 | 45 | /* allocate the colortable */ |
| r21033 | r21034 | |
| 115 | 115 | |
| 116 | 116 | PALETTE_INIT_MEMBER(travrusa_state,shtrider) |
| 117 | 117 | { |
| 118 | const UINT8 *color_prom = m | |
| 118 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 119 | 119 | int i; |
| 120 | 120 | |
| 121 | 121 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 57 | 57 | |
| 58 | 58 | PALETTE_INIT_MEMBER(rallyx_state,rallyx) |
| 59 | 59 | { |
| 60 | const UINT8 *color_prom = m | |
| 60 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 61 | 61 | static const int resistances_rg[3] = { 1000, 470, 220 }; |
| 62 | 62 | static const int resistances_b [2] = { 470, 220 }; |
| 63 | 63 | double rweights[3], gweights[3], bweights[2]; |
| r21033 | r21034 | |
| 116 | 116 | |
| 117 | 117 | PALETTE_INIT_MEMBER(rallyx_state,jungler) |
| 118 | 118 | { |
| 119 | const UINT8 *color_prom = m | |
| 119 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 120 | 120 | static const int resistances_rg[3] = { 1000, 470, 220 }; |
| 121 | 121 | static const int resistances_b [2] = { 470, 220 }; |
| 122 | 122 | static const int resistances_star[3] = { 150, 100 }; |
| r21033 | r21034 | |
|---|---|---|
| 377 | 377 | |
| 378 | 378 | if (m_cm_enable_reg &0x04) |
| 379 | 379 | { |
| 380 | if (m | |
| 380 | if (memregion("user1")->base()) | |
| 381 | 381 | { |
| 382 | 382 | gfx_element *gfx = machine().gfx[2]; |
| 383 | 383 | int girlyscroll = (INT8)((m_cm_girl_scroll & 0xf0)); |
| r21033 | r21034 | |
| 419 | 419 | |
| 420 | 420 | if (m_cm_enable_reg &0x04) |
| 421 | 421 | { |
| 422 | if (m | |
| 422 | if (memregion("user1")->base()) | |
| 423 | 423 | { |
| 424 | 424 | gfx_element *gfx = machine().gfx[2]; |
| 425 | 425 | int girlyscroll = (INT8)((m_cm_girl_scroll & 0xf0)); |
| r21033 | r21034 | |
|---|---|---|
| 227 | 227 | |
| 228 | 228 | UINT32 cinemat_state::screen_update_spacewar(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) |
| 229 | 229 | { |
| 230 | int sw_option = | |
| 230 | int sw_option = ioport("INPUTS")->read(); | |
| 231 | 231 | |
| 232 | 232 | screen_update_cinemat(screen, bitmap, cliprect); |
| 233 | 233 |
| r21033 | r21034 | |
|---|---|---|
| 77 | 77 | |
| 78 | 78 | PALETTE_INIT_MEMBER(dec8_state,ghostb) |
| 79 | 79 | { |
| 80 | const UINT8 *color_prom = m | |
| 80 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 81 | 81 | int i; |
| 82 | 82 | |
| 83 | 83 | for (i = 0; i < machine().total_colors(); i++) |
| r21033 | r21034 | |
|---|---|---|
| 2661 | 2661 | pvr_drawframebuffer(machine(),bitmap,cliprect); |
| 2662 | 2662 | |
| 2663 | 2663 | // update this here so we only do string lookup once per frame |
| 2664 | debug_dip_status = | |
| 2664 | debug_dip_status = ioport("MAMEDEBUG")->read(); | |
| 2665 | 2665 | |
| 2666 | 2666 | return 0; |
| 2667 | 2667 | } |
| r21033 | r21034 | |
|---|---|---|
| 32 | 32 | |
| 33 | 33 | PALETTE_INIT_MEMBER(mappy_state,superpac) |
| 34 | 34 | { |
| 35 | const UINT8 *color_prom = m | |
| 35 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 36 | 36 | static const int resistances[3] = { 1000, 470, 220 }; |
| 37 | 37 | double rweights[3], gweights[3], bweights[2]; |
| 38 | 38 | int i; |
| r21033 | r21034 | |
| 92 | 92 | |
| 93 | 93 | PALETTE_INIT_MEMBER(mappy_state,mappy) |
| 94 | 94 | { |
| 95 | const UINT8 *color_prom = m | |
| 95 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 96 | 96 | static const int resistances[3] = { 1000, 470, 220 }; |
| 97 | 97 | double rweights[3], gweights[3], bweights[2]; |
| 98 | 98 | int i; |
| r21033 | r21034 | |
| 164 | 164 | |
| 165 | 165 | PALETTE_INIT_MEMBER(mappy_state,phozon) |
| 166 | 166 | { |
| 167 | const UINT8 *color_prom = m | |
| 167 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 168 | 168 | static const int resistances[4] = { 2200, 1000, 470, 220 }; |
| 169 | 169 | double rweights[4], gweights[4], bweights[4]; |
| 170 | 170 | int i; |
| r21033 | r21034 | |
|---|---|---|
| 25 | 25 | void _20pacgal_state::get_pens(pen_t *pens) |
| 26 | 26 | { |
| 27 | 27 | offs_t offs; |
| 28 | UINT8 *color_prom = m | |
| 28 | UINT8 *color_prom = memregion("proms")->base() + (NUM_PENS * m_game_selected); | |
| 29 | 29 | |
| 30 | 30 | for (offs = 0; offs < NUM_PENS ;offs++) |
| 31 | 31 | { |
| r21033 | r21034 | |
|---|---|---|
| 27 | 27 | ***************************************************************************/ |
| 28 | 28 | void seicross_state::palette_init() |
| 29 | 29 | { |
| 30 | const UINT8 *color_prom = m | |
| 30 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 31 | 31 | int i; |
| 32 | 32 | |
| 33 | 33 |
| r21033 | r21034 | |
|---|---|---|
| 6 | 6 | |
| 7 | 7 | void flower_state::palette_init() |
| 8 | 8 | { |
| 9 | const UINT8 *color_prom = m | |
| 9 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 10 | 10 | int i; |
| 11 | 11 | |
| 12 | 12 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 16 | 16 | ******************************************************************************/ |
| 17 | 17 | void pastelg_state::palette_init() |
| 18 | 18 | { |
| 19 | const UINT8 *color_prom = m | |
| 19 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 20 | 20 | int i; |
| 21 | 21 | int bit0, bit1, bit2, bit3, r, g, b; |
| 22 | 22 | |
| r21033 | r21034 | |
| 194 | 194 | incy = -1; |
| 195 | 195 | } |
| 196 | 196 | |
| 197 | gfxlen = m | |
| 197 | gfxlen = memregion("gfx1")->bytes(); | |
| 198 | 198 | gfxaddr = (m_gfxrom << 16) + m_blitter_src_addr; |
| 199 | 199 | |
| 200 | 200 | readflag = 0; |
| r21033 | r21034 | |
|---|---|---|
| 774 | 774 | |
| 775 | 775 | copybitmap(bitmap, *antic.bitmap, 0, 0, 0, 0, cliprect); |
| 776 | 776 | |
| 777 | new_tv_artifacts = screen. | |
| 777 | new_tv_artifacts = screen.ioport("artifacts")->read_safe(0); | |
| 778 | 778 | if( tv_artifacts != new_tv_artifacts ) |
| 779 | 779 | { |
| 780 | 780 | tv_artifacts = new_tv_artifacts; |
| r21033 | r21034 | |
|---|---|---|
| 51 | 51 | double charmap_b_weights[2]; |
| 52 | 52 | double back_r_weight[1]; |
| 53 | 53 | double back_gb_weight[1]; |
| 54 | const UINT8 *prom = m | |
| 54 | const UINT8 *prom = memregion("proms")->base(); | |
| 55 | 55 | |
| 56 | 56 | scaler = compute_resistor_weights(0, 0xff, -1, |
| 57 | 57 | 1, resistances_bitmap, bitmap_weight, 470, 0, |
| r21033 | r21034 | |
| 116 | 116 | double charmap_b_weights[2]; |
| 117 | 117 | double back_r_weight[1]; |
| 118 | 118 | double back_gb_weight[1]; |
| 119 | const UINT8 *prom = m | |
| 119 | const UINT8 *prom = memregion("proms")->base(); | |
| 120 | 120 | |
| 121 | 121 | scaler = compute_resistor_weights(0, 0xff, -1, |
| 122 | 122 | 1, resistances_bitmap, bitmap_weight, 470, 0, |
| r21033 | r21034 | |
|---|---|---|
| 4 | 4 | |
| 5 | 5 | void munchmo_state::palette_init() |
| 6 | 6 | { |
| 7 | const UINT8 *color_prom = m | |
| 7 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 8 | 8 | int i; |
| 9 | 9 | |
| 10 | 10 | for (i = 0; i < machine().total_colors(); i++) |
| r21033 | r21034 | |
|---|---|---|
| 12 | 12 | |
| 13 | 13 | void fortyl_state::palette_init() |
| 14 | 14 | { |
| 15 | const UINT8 *color_prom = m | |
| 15 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 16 | 16 | int i; |
| 17 | 17 | |
| 18 | 18 | for (i = 0; i < machine().total_colors(); i++) |
| r21033 | r21034 | |
|---|---|---|
| 56 | 56 | |
| 57 | 57 | TILE_GET_INFO_MEMBER(prehisle_state::get_bg2_tile_info) |
| 58 | 58 | { |
| 59 | UINT8 *tilerom = m | |
| 59 | UINT8 *tilerom = memregion("gfx5")->base(); | |
| 60 | 60 | |
| 61 | 61 | int offs = tile_index * 2; |
| 62 | 62 | int attr = tilerom[offs + 1] + (tilerom[offs] << 8); |
| r21033 | r21034 | |
|---|---|---|
| 325 | 325 | |
| 326 | 326 | PALETTE_INIT_MEMBER(galaga_state,galaga) |
| 327 | 327 | { |
| 328 | const UINT8 *color_prom = m | |
| 328 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 329 | 329 | int i; |
| 330 | 330 | |
| 331 | 331 | machine().colortable = colortable_alloc(machine(), 32+64); |
| r21033 | r21034 | |
|---|---|---|
| 268 | 268 | |
| 269 | 269 | invadpt2_get_pens(pens); |
| 270 | 270 | |
| 271 | color_map_base = m | |
| 271 | color_map_base = memregion("proms")->base(); | |
| 272 | 272 | cloud_gfx = memregion("user1")->base(); |
| 273 | 273 | |
| 274 | 274 | for (offs = 0; offs < m_main_ram.bytes(); offs++) |
| r21033 | r21034 | |
|---|---|---|
| 21 | 21 | |
| 22 | 22 | PALETTE_INIT_MEMBER(quasar_state,quasar) |
| 23 | 23 | { |
| 24 | const UINT8 *color_prom = m | |
| 24 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 25 | 25 | int i; |
| 26 | 26 | |
| 27 | 27 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 18 | 18 | |
| 19 | 19 | void mrjong_state::palette_init() |
| 20 | 20 | { |
| 21 | const UINT8 *color_prom = m | |
| 21 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 22 | 22 | int i; |
| 23 | 23 | |
| 24 | 24 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 34 | 34 | |
| 35 | 35 | void namcos86_state::palette_init() |
| 36 | 36 | { |
| 37 | const UINT8 *color_prom = m | |
| 37 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 38 | 38 | int i; |
| 39 | 39 | rgb_t palette[512]; |
| 40 | 40 |
| r21033 | r21034 | |
|---|---|---|
| 3 | 3 | |
| 4 | 4 | void xyonix_state::palette_init() |
| 5 | 5 | { |
| 6 | const UINT8 *color_prom = m | |
| 6 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 7 | 7 | int i; |
| 8 | 8 | |
| 9 | 9 |
| r21033 | r21034 | |
|---|---|---|
| 46 | 46 | |
| 47 | 47 | void popper_state::palette_init() |
| 48 | 48 | { |
| 49 | const UINT8 *color_prom = m | |
| 49 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 50 | 50 | rgb_t *rgb; |
| 51 | 51 | |
| 52 | 52 | rgb = compute_res_net_all(machine(), color_prom, &popper_decode_info, &popper_net_info); |
| r21033 | r21034 | |
|---|---|---|
| 10 | 10 | |
| 11 | 11 | PALETTE_INIT_MEMBER(nova2001_state,nova2001) |
| 12 | 12 | { |
| 13 | const UINT8 *color_prom = m | |
| 13 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 14 | 14 | int i; |
| 15 | 15 | |
| 16 | 16 | /* Color #1 is used for palette animation. */ |
| r21033 | r21034 | |
|---|---|---|
| 13 | 13 | |
| 14 | 14 | void dogfgt_state::palette_init() |
| 15 | 15 | { |
| 16 | const UINT8 *color_prom = m | |
| 16 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 17 | 17 | int i; |
| 18 | 18 | |
| 19 | 19 | /* first 16 colors are RAM */ |
| r21033 | r21034 | |
|---|---|---|
| 59 | 59 | |
| 60 | 60 | PALETTE_INIT_MEMBER(stactics_state,stactics) |
| 61 | 61 | { |
| 62 | const UINT8 *color_prom = m | |
| 62 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 63 | 63 | int i; |
| 64 | 64 | |
| 65 | 65 | for (i = 0; i < 0x400; i++) |
| r21033 | r21034 | |
| 299 | 299 | void stactics_state::update_artwork() |
| 300 | 300 | { |
| 301 | 301 | int i; |
| 302 | UINT8 *beam_region = m | |
| 302 | UINT8 *beam_region = memregion("user1")->base(); | |
| 303 | 303 | |
| 304 | 304 | /* set the lamps first */ |
| 305 | 305 | output_set_indexed_value("base_lamp", 4, m_lamps[0] & 0x01); |
| r21033 | r21034 | |
|---|---|---|
| 20 | 20 | |
| 21 | 21 | void tceptor_state::palette_init() |
| 22 | 22 | { |
| 23 | const UINT8 *color_prom = m | |
| 23 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 24 | 24 | int i; |
| 25 | 25 | |
| 26 | 26 | /* allocate the colortable */ |
| r21033 | r21034 | |
| 238 | 238 | }; |
| 239 | 239 | |
| 240 | 240 | int gfx_index = m_bg; |
| 241 | UINT8 *src = m | |
| 241 | UINT8 *src = memregion(region)->base() + 0x8000; | |
| 242 | 242 | UINT8 *buffer; |
| 243 | 243 | int len = 0x8000; |
| 244 | 244 | int i; |
| r21033 | r21034 | |
| 256 | 256 | auto_free(machine(), buffer); |
| 257 | 257 | |
| 258 | 258 | /* decode the graphics */ |
| 259 | machine().gfx[gfx_index] = auto_alloc(machine(), gfx_element(machine(), bg_layout, m | |
| 259 | machine().gfx[gfx_index] = auto_alloc(machine(), gfx_element(machine(), bg_layout, memregion(region)->base(), 64, 2048)); | |
| 260 | 260 | } |
| 261 | 261 | |
| 262 | 262 | void tceptor_state::decode_sprite(int gfx_index, const gfx_layout *layout, const void *data) |
| r21033 | r21034 | |
| 285 | 285 | 2*16*16 |
| 286 | 286 | }; |
| 287 | 287 | |
| 288 | UINT8 *src = machine().root_device().memregion(region)->base(); | |
| 289 | int len = machine().root_device().memregion(region)->bytes(); | |
| 288 | UINT8 *src = memregion(region)->base(); | |
| 289 | int len = memregion(region)->bytes(); | |
| 290 | 290 | UINT8 *dst; |
| 291 | 291 | int i, y; |
| 292 | 292 | |
| r21033 | r21034 | |
| 336 | 336 | 2*32*32 |
| 337 | 337 | }; |
| 338 | 338 | |
| 339 | UINT8 *src = machine().root_device().memregion(region)->base(); | |
| 340 | int len = machine().root_device().memregion(region)->bytes(); | |
| 339 | UINT8 *src = memregion(region)->base(); | |
| 340 | int len = memregion(region)->bytes(); | |
| 341 | 341 | int total = spr32_layout.total; |
| 342 | 342 | int size = spr32_layout.charincrement / 8; |
| 343 | 343 | UINT8 *dst; |
| r21033 | r21034 | |
|---|---|---|
| 30 | 30 | m_screenbits(state.machine().primary_screen->width(), state.machine().primary_screen->height()), |
| 31 | 31 | m_zbuffer(state.machine().primary_screen->width(), state.machine().primary_screen->height()), |
| 32 | 32 | m_polygons(0), |
| 33 | m_texture_size(state.machine().root_device().memregion("gfx1")->bytes()), | |
| 34 | m_texmask_size(state.machine().root_device().memregion("gfx2")->bytes() * 8), | |
| 33 | m_texture_size(state.memregion("gfx1")->bytes()), | |
| 34 | m_texmask_size(state.memregion("gfx2")->bytes() * 8), | |
| 35 | 35 | m_texture(auto_alloc_array(state.machine(), UINT8, m_texture_size)), |
| 36 | 36 | m_texmask(auto_alloc_array(state.machine(), UINT8, m_texmask_size)) |
| 37 | 37 | { |
| r21033 | r21034 | |
| 39 | 39 | state_save_register_global_bitmap(state.machine(), &m_zbuffer); |
| 40 | 40 | |
| 41 | 41 | /* first expand the pixel data */ |
| 42 | UINT8 *src = state.m | |
| 42 | UINT8 *src = state.memregion("gfx1")->base(); | |
| 43 | 43 | UINT8 *dst = m_texture; |
| 44 | 44 | for (int y = 0; y < m_texture_size/4096; y += 2) |
| 45 | 45 | for (int x = 0; x < 4096; x += 2) |
| r21033 | r21034 | |
| 51 | 51 | } |
| 52 | 52 | |
| 53 | 53 | /* then expand the mask data */ |
| 54 | src = state.m | |
| 54 | src = state.memregion("gfx2")->base(); | |
| 55 | 55 | dst = m_texmask; |
| 56 | 56 | for (int y = 0; y < m_texmask_size/4096; y++) |
| 57 | 57 | for (int x = 0; x < 4096; x++) |
| r21033 | r21034 | |
|---|---|---|
| 235 | 235 | |
| 236 | 236 | void galaxian_state::palette_init() |
| 237 | 237 | { |
| 238 | const UINT8 *color_prom = m | |
| 238 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 239 | 239 | static const int rgb_resistances[3] = { 1000, 470, 220 }; |
| 240 | 240 | double rweights[3], gweights[3], bweights[2]; |
| 241 | 241 | int i, minval, midval, maxval, len; |
| r21033 | r21034 | |
| 273 | 273 | 2, &rgb_resistances[1], bweights, 470, 0); |
| 274 | 274 | |
| 275 | 275 | /* decode the palette first */ |
| 276 | len = m | |
| 276 | len = memregion("proms")->bytes(); | |
| 277 | 277 | for (i = 0; i < len; i++) |
| 278 | 278 | { |
| 279 | 279 | UINT8 bit0, bit1, bit2, r, g, b; |
| r21033 | r21034 | |
|---|---|---|
| 76 | 76 | draw_bombs(bitmap, cliprect); |
| 77 | 77 | |
| 78 | 78 | /* watchdog is disabled during service mode */ |
| 79 | machine().watchdog_enable(!( | |
| 79 | machine().watchdog_enable(!(ioport("IN2")->read() & 0x10)); | |
| 80 | 80 | |
| 81 | 81 | return 0; |
| 82 | 82 | } |
| r21033 | r21034 | |
|---|---|---|
| 32 | 32 | |
| 33 | 33 | void circusc_state::palette_init() |
| 34 | 34 | { |
| 35 | const UINT8 *color_prom = m | |
| 35 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 36 | 36 | static const int resistances_rg[3] = { 1000, 470, 220 }; |
| 37 | 37 | static const int resistances_b [2] = { 470, 220 }; |
| 38 | 38 | double rweights[3], gweights[3], bweights[2]; |
| r21033 | r21034 | |
|---|---|---|
| 339 | 339 | |
| 340 | 340 | void hyprduel_state::expand_gfx1(hyprduel_state &state) |
| 341 | 341 | { |
| 342 | UINT8 *base_gfx = state.machine().root_device().memregion("gfx1")->base(); | |
| 343 | UINT32 length = 2 * state.machine().root_device().memregion("gfx1")->bytes(); | |
| 342 | UINT8 *base_gfx = state.memregion("gfx1")->base(); | |
| 343 | UINT32 length = 2 * state.memregion("gfx1")->bytes(); | |
| 344 | 344 | state.m_expanded_gfx1 = auto_alloc_array(state.machine(), UINT8, length); |
| 345 | 345 | for (int i = 0; i < length; i += 2) |
| 346 | 346 | { |
| r21033 | r21034 | |
|---|---|---|
| 163 | 163 | |
| 164 | 164 | VIDEO_START_MEMBER(namconb1_state,namconb1) |
| 165 | 165 | { |
| 166 | namco_tilemap_init(NAMCONB1_TILEGFX, m | |
| 166 | namco_tilemap_init(NAMCONB1_TILEGFX, memregion(NAMCONB1_TILEMASKREGION)->base(), NB1TilemapCB ); | |
| 167 | 167 | c355_obj_init(NAMCONB1_SPRITEGFX,0x0,namcos2_shared_state::c355_obj_code2tile_delegate(FUNC(NB1objcode2tile), &machine())); |
| 168 | 168 | } /* namconb1 */ |
| 169 | 169 | |
| r21033 | r21034 | |
| 223 | 223 | |
| 224 | 224 | VIDEO_START_MEMBER(namconb1_state,namconb2) |
| 225 | 225 | { |
| 226 | namco_tilemap_init(NAMCONB1_TILEGFX, m | |
| 226 | namco_tilemap_init(NAMCONB1_TILEGFX, memregion(NAMCONB1_TILEMASKREGION)->base(), NB2TilemapCB ); | |
| 227 | 227 | c355_obj_init(NAMCONB1_SPRITEGFX,0x0,namcos2_shared_state::c355_obj_code2tile_delegate(FUNC(NB2objcode2tile), &machine())); |
| 228 | 228 | c169_roz_init(NAMCONB1_ROTGFX,NAMCONB1_ROTMASKREGION); |
| 229 | 229 | } /* namconb2_vh_start */ |
| r21033 | r21034 | |
|---|---|---|
| 67 | 67 | |
| 68 | 68 | void calomega_state::palette_init() |
| 69 | 69 | { |
| 70 | const UINT8 *color_prom = m | |
| 70 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 71 | 71 | /* prom bits |
| 72 | 72 | 7654 3210 |
| 73 | 73 | ---- ---x red component. |
| r21033 | r21034 | |
|---|---|---|
| 14 | 14 | |
| 15 | 15 | void strnskil_state::palette_init() |
| 16 | 16 | { |
| 17 | const UINT8 *color_prom = m | |
| 17 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 18 | 18 | int i; |
| 19 | 19 | |
| 20 | 20 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 133 | 133 | |
| 134 | 134 | PALETTE_INIT_MEMBER(tubep_state,tubep) |
| 135 | 135 | { |
| 136 | const UINT8 *color_prom = m | |
| 136 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 137 | 137 | int i,r,g,b; |
| 138 | 138 | |
| 139 | 139 | /* background/sprites palette variables */ |
| r21033 | r21034 | |
| 582 | 582 | pen_t pen_base = 32; //change it later |
| 583 | 583 | |
| 584 | 584 | UINT32 v; |
| 585 | UINT8 *text_gfx_base = m | |
| 585 | UINT8 *text_gfx_base = memregion("gfx1")->base(); | |
| 586 | 586 | UINT8 *romBxx = memregion("user1")->base() + 0x2000*m_background_romsel; |
| 587 | 587 | |
| 588 | 588 | /* logerror(" update: from DISP=%i y_min=%3i y_max=%3i\n", DISP_, cliprect.min_y, cliprect.max_y+1); */ |
| r21033 | r21034 | |
| 680 | 680 | |
| 681 | 681 | PALETTE_INIT_MEMBER(tubep_state,rjammer) |
| 682 | 682 | { |
| 683 | const UINT8 *color_prom = m | |
| 683 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 684 | 684 | int i; |
| 685 | 685 | |
| 686 | 686 | static const int resistors_rg[3] = { 1000, 470, 220 }; |
| r21033 | r21034 | |
| 736 | 736 | int DISP_ = m_DISP^1; |
| 737 | 737 | |
| 738 | 738 | UINT32 v; |
| 739 | UINT8 *text_gfx_base = m | |
| 739 | UINT8 *text_gfx_base = memregion("gfx1")->base(); | |
| 740 | 740 | UINT8 *rom13D = memregion("user1")->base(); |
| 741 | 741 | UINT8 *rom11BD = rom13D+0x1000; |
| 742 | 742 | UINT8 *rom19C = rom13D+0x5000; |
| r21033 | r21034 | |
|---|---|---|
| 28 | 28 | ***************************************************************************/ |
| 29 | 29 | void shaolins_state::palette_init() |
| 30 | 30 | { |
| 31 | const UINT8 *color_prom = m | |
| 31 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 32 | 32 | static const int resistances[4] = { 2200, 1000, 470, 220 }; |
| 33 | 33 | double rweights[4], gweights[4], bweights[4]; |
| 34 | 34 | int i; |
| r21033 | r21034 | |
|---|---|---|
| 34 | 34 | |
| 35 | 35 | void tagteam_state::palette_init() |
| 36 | 36 | { |
| 37 | const UINT8 *color_prom = m | |
| 37 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 38 | 38 | rgb_t *rgb; |
| 39 | 39 | |
| 40 | 40 | rgb = compute_res_net_all(machine(), color_prom, &tagteam_decode_info, &tagteam_net_info); |
| r21033 | r21034 | |
|---|---|---|
| 102 | 102 | skipy = -1; |
| 103 | 103 | } |
| 104 | 104 | |
| 105 | gfxlen = m | |
| 105 | gfxlen = memregion("gfx1")->bytes(); | |
| 106 | 106 | gfxaddr = (m_gfxrom << 17) + (m_blitter_src_addr << 1); |
| 107 | 107 | |
| 108 | 108 | for (y = starty, ctry = sizey; ctry >= 0; y += skipy, ctry--) |
| r21033 | r21034 | |
|---|---|---|
| 29 | 29 | int xbit, ybit, size; |
| 30 | 30 | |
| 31 | 31 | size = 2; |
| 32 | if ( | |
| 32 | if (ioport("DSW")->read() & 0x40) | |
| 33 | 33 | { |
| 34 | 34 | size = 4; |
| 35 | 35 | } |
| r21033 | r21034 | |
| 54 | 54 | { |
| 55 | 55 | int i, x, y; |
| 56 | 56 | |
| 57 | int video_inverted = | |
| 57 | int video_inverted = ioport("DSW")->read() & 0x20; | |
| 58 | 58 | |
| 59 | 59 | /* The first row of characters are invisible */ |
| 60 | 60 | for (i = 0; i < (VERT_RES - 1) * HORZ_RES; i++) |
| r21033 | r21034 | |
|---|---|---|
| 207 | 207 | void spacefb_state::get_sprite_pens(pen_t *pens) |
| 208 | 208 | { |
| 209 | 209 | static const double fade_weights[] = { 1.0, 1.5, 2.5, 4.0 }; |
| 210 | const UINT8 *prom = m | |
| 210 | const UINT8 *prom = memregion("proms")->base(); | |
| 211 | 211 | int i; |
| 212 | 212 | |
| 213 | 213 | for (i = 0; i < NUM_SPRITE_PENS; i++) |
| r21033 | r21034 | |
|---|---|---|
| 11 | 11 | |
| 12 | 12 | void compgolf_state::palette_init() |
| 13 | 13 | { |
| 14 | const UINT8 *color_prom = m | |
| 14 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 15 | 15 | int i; |
| 16 | 16 | |
| 17 | 17 | for (i = 0; i < machine().total_colors(); i++) |
| r21033 | r21034 | |
|---|---|---|
| 34 | 34 | ***************************************************************************/ |
| 35 | 35 | void wiz_state::palette_init() |
| 36 | 36 | { |
| 37 | const UINT8 *color_prom = m | |
| 37 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 38 | 38 | int i; |
| 39 | 39 | |
| 40 | 40 |
| r21033 | r21034 | |
|---|---|---|
| 50 | 50 | void crgolf_state::get_pens( pen_t *pens ) |
| 51 | 51 | { |
| 52 | 52 | offs_t offs; |
| 53 | const UINT8 *prom = m | |
| 53 | const UINT8 *prom = memregion("proms")->base(); | |
| 54 | 54 | |
| 55 | 55 | for (offs = 0; offs < NUM_PENS; offs++) |
| 56 | 56 | { |
| r21033 | r21034 | |
|---|---|---|
| 31 | 31 | |
| 32 | 32 | void hyperspt_state::palette_init() |
| 33 | 33 | { |
| 34 | const UINT8 *color_prom = m | |
| 34 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 35 | 35 | static const int resistances_rg[3] = { 1000, 470, 220 }; |
| 36 | 36 | static const int resistances_b[2] = { 470, 220 }; |
| 37 | 37 | double rweights[3], gweights[3], bweights[2]; |
| r21033 | r21034 | |
|---|---|---|
| 209 | 209 | |
| 210 | 210 | /* background tilemap is effectively 1 screen x n screens */ |
| 211 | 211 | case G80_BACKGROUND_MONSTERB: |
| 212 | m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(segag80r_state::bg_get_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 32,m | |
| 212 | m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(segag80r_state::bg_get_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 32,memregion("gfx2")->bytes() / 32); | |
| 213 | 213 | break; |
| 214 | 214 | |
| 215 | 215 | /* background tilemap is effectively 4 screens x n screens */ |
| 216 | 216 | case G80_BACKGROUND_PIGNEWT: |
| 217 | 217 | case G80_BACKGROUND_SINDBADM: |
| 218 | m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(segag80r_state::bg_get_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 128,m | |
| 218 | m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(segag80r_state::bg_get_tile_info),this), TILEMAP_SCAN_ROWS, 8,8, 128,memregion("gfx2")->bytes() / 128); | |
| 219 | 219 | break; |
| 220 | 220 | } |
| 221 | 221 |
| r21033 | r21034 | |
|---|---|---|
| 16 | 16 | |
| 17 | 17 | void kncljoe_state::palette_init() |
| 18 | 18 | { |
| 19 | const UINT8 *color_prom = m | |
| 19 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 20 | 20 | int i; |
| 21 | 21 | |
| 22 | 22 | /* allocate the colortable */ |
| r21033 | r21034 | |
| 152 | 152 | if (m_sprite_bank != i) |
| 153 | 153 | { |
| 154 | 154 | m_sprite_bank = i; |
| 155 | memset(m | |
| 155 | memset(memregion("maincpu")->base() + 0xf100, 0, 0x180); | |
| 156 | 156 | } |
| 157 | 157 | } |
| 158 | 158 |
| r21033 | r21034 | |
|---|---|---|
| 27 | 27 | |
| 28 | 28 | PALETTE_INIT_MEMBER(snk_state,tnk3) |
| 29 | 29 | { |
| 30 | const UINT8 *color_prom = m | |
| 30 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 31 | 31 | int i; |
| 32 | 32 | int num_colors = 0x400; |
| 33 | 33 |
| r21033 | r21034 | |
|---|---|---|
| 212 | 212 | void liberatr_state::video_start() |
| 213 | 213 | { |
| 214 | 214 | // for each planet in the planet ROMs |
| 215 | init_planet(m_planets[0], &machine().root_device().memregion("gfx1")->base()[0x2000]); | |
| 216 | init_planet(m_planets[1], &machine().root_device().memregion("gfx1")->base()[0x0000]); | |
| 215 | init_planet(m_planets[0], &memregion("gfx1")->base()[0x2000]); | |
| 216 | init_planet(m_planets[1], &memregion("gfx1")->base()[0x0000]); | |
| 217 | 217 | } |
| 218 | 218 | |
| 219 | 219 |
| r21033 | r21034 | |
|---|---|---|
| 11 | 11 | |
| 12 | 12 | PALETTE_INIT_MEMBER(gsword_state,josvolly) |
| 13 | 13 | { |
| 14 | const UINT8 *color_prom = m | |
| 14 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 15 | 15 | int i; |
| 16 | 16 | |
| 17 | 17 | /* allocate the colortable */ |
| r21033 | r21034 | |
| 45 | 45 | |
| 46 | 46 | PALETTE_INIT_MEMBER(gsword_state,gsword) |
| 47 | 47 | { |
| 48 | const UINT8 *color_prom = m | |
| 48 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 49 | 49 | int i; |
| 50 | 50 | |
| 51 | 51 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 54 | 54 | |
| 55 | 55 | void suprridr_state::palette_init() |
| 56 | 56 | { |
| 57 | const UINT8 *color_prom = m | |
| 57 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 58 | 58 | int i; |
| 59 | 59 | |
| 60 | 60 | for (i = 0; i < 96; i++) |
| r21033 | r21034 | |
|---|---|---|
| 131 | 131 | int y; |
| 132 | 132 | int background_line_buffer[0x200]; /* RAM chip at 2A */ |
| 133 | 133 | |
| 134 | UINT8 *tx_gfx = machine().root_device().memregion("gfx1")->base(); | |
| 135 | UINT8 *bg_gfx = machine().root_device().memregion("gfx2")->base(); | |
| 136 | UINT8 *prom1 = &machine().root_device().memregion("proms")->base()[0x0000 | ((*m_smoothing_table & 0x03) << 8)]; | |
| 137 | UINT8 *prom2 = &machine().root_device().memregion("proms")->base()[0x0800 | ((*m_smoothing_table & 0x03) << 8)]; | |
| 134 | UINT8 *tx_gfx = memregion("gfx1")->base(); | |
| 135 | UINT8 *bg_gfx = memregion("gfx2")->base(); | |
| 136 | UINT8 *prom1 = &memregion("proms")->base()[0x0000 | ((*m_smoothing_table & 0x03) << 8)]; | |
| 137 | UINT8 *prom2 = &memregion("proms")->base()[0x0800 | ((*m_smoothing_table & 0x03) << 8)]; | |
| 138 | 138 | int vscroll = m_vscroll; |
| 139 | 139 | int hscroll = m_hscroll; |
| 140 | 140 | int tx_bank = *m_foreground_bank; |
| r21033 | r21034 | |
| 230 | 230 | { |
| 231 | 231 | offs_t offs; |
| 232 | 232 | UINT8 *spriteram = m_spriteram; |
| 233 | UINT8 *gfx3 = m | |
| 233 | UINT8 *gfx3 = memregion("gfx3")->base(); | |
| 234 | 234 | |
| 235 | 235 | for (offs = 0x00; offs < 0x30; offs++) |
| 236 | 236 | { |
| r21033 | r21034 | |
|---|---|---|
| 73 | 73 | |
| 74 | 74 | void ampoker2_state::palette_init() |
| 75 | 75 | { |
| 76 | const UINT8 *color_prom = m | |
| 76 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 77 | 77 | /* - bits - |
| 78 | 78 | 76543210 |
| 79 | 79 | RRRGGGBB |
| r21033 | r21034 | |
|---|---|---|
| 20 | 20 | |
| 21 | 21 | void toypop_state::palette_init() |
| 22 | 22 | { |
| 23 | const UINT8 *color_prom = m | |
| 23 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 24 | 24 | /* allocate the colortable */ |
| 25 | 25 | machine().colortable = colortable_alloc(machine(), 256); |
| 26 | 26 |
| r21033 | r21034 | |
|---|---|---|
| 28 | 28 | |
| 29 | 29 | void sbasketb_state::palette_init() |
| 30 | 30 | { |
| 31 | const UINT8 *color_prom = m | |
| 31 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 32 | 32 | static const int resistances[4] = { 2000, 1000, 470, 220 }; |
| 33 | 33 | double rweights[4], gweights[4], bweights[4]; |
| 34 | 34 | int i; |
| r21033 | r21034 | |
|---|---|---|
| 32 | 32 | |
| 33 | 33 | void ksayakyu_state::palette_init() |
| 34 | 34 | { |
| 35 | const UINT8 *prom = m | |
| 35 | const UINT8 *prom = memregion("proms")->base(); | |
| 36 | 36 | int r, g, b, i; |
| 37 | 37 | |
| 38 | 38 | for (i = 0; i < 0x100; i++) |
| r21033 | r21034 | |
| 47 | 47 | |
| 48 | 48 | TILE_GET_INFO_MEMBER(ksayakyu_state::get_ksayakyu_tile_info) |
| 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 = memregion("user1")->base()[tile_index]; | |
| 51 | int attr = memregion("user1")->base()[tile_index + 0x2000]; | |
| 52 | 52 | code += (attr & 3) << 8; |
| 53 | 53 | SET_TILE_INFO_MEMBER(1, code, ((attr >> 2) & 0x0f) * 2, (attr & 0x80) ? TILE_FLIPX : 0); |
| 54 | 54 | } |
| r21033 | r21034 | |
|---|---|---|
| 71 | 71 | int xx, sx, sy, px, py, dot; |
| 72 | 72 | UINT32 gfxadr; |
| 73 | 73 | UINT8 d0, d1; |
| 74 | UINT8 *BG_GFX = m | |
| 74 | UINT8 *BG_GFX = memregion("gfx2")->base(); | |
| 75 | 75 | |
| 76 | 76 | for (sy = 0; sy < 8; sy++) |
| 77 | 77 | { |
| r21033 | r21034 | |
| 106 | 106 | int x, y, dx, dy, rx, ry, radr, chr, sy, fx, fy, px, py, offs, col, pri, flip ; |
| 107 | 107 | UINT8 *spriteram = m_spriteram; |
| 108 | 108 | |
| 109 | UINT8 *BG_MAP = machine().root_device().memregion("user1")->base(); | |
| 110 | UINT8 *BG_COL_MAP = machine().root_device().memregion("user2")->base(); | |
| 111 | UINT8 *FG_MAP = machine().root_device().memregion("user3")->base(); | |
| 109 | UINT8 *BG_MAP = memregion("user1")->base(); | |
| 110 | UINT8 *BG_COL_MAP = memregion("user2")->base(); | |
| 111 | UINT8 *FG_MAP = memregion("user3")->base(); | |
| 112 | 112 | UINT8 *TEXT_COLOR = memregion("proms")->base(); |
| 113 | 113 | |
| 114 | 114 | |
| 115 | flip = m_flipscreen ^ ( | |
| 115 | flip = m_flipscreen ^ (ioport("FAKE")->read() & 0x01); | |
| 116 | 116 | |
| 117 | 117 | /* draw BG layer */ |
| 118 | 118 | dx = (7 - m_bg_scrollx[0]) & 7; |
| r21033 | r21034 | |
|---|---|---|
| 18 | 18 | |
| 19 | 19 | void ironhors_state::palette_init() |
| 20 | 20 | { |
| 21 | const UINT8 *color_prom = m | |
| 21 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 22 | 22 | static const int resistances[4] = { 2000, 1000, 470, 220 }; |
| 23 | 23 | double rweights[4], gweights[4], bweights[4]; |
| 24 | 24 | int i; |
| r21033 | r21034 | |
|---|---|---|
| 23 | 23 | |
| 24 | 24 | PALETTE_INIT_MEMBER(digdug_state,digdug) |
| 25 | 25 | { |
| 26 | const UINT8 *color_prom = m | |
| 26 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 27 | 27 | int i; |
| 28 | 28 | |
| 29 | 29 | machine().colortable = colortable_alloc(machine(), 32); |
| r21033 | r21034 | |
| 90 | 90 | |
| 91 | 91 | TILE_GET_INFO_MEMBER(digdug_state::bg_get_tile_info) |
| 92 | 92 | { |
| 93 | UINT8 *rom = m | |
| 93 | UINT8 *rom = memregion("gfx4")->base(); | |
| 94 | 94 | |
| 95 | 95 | int code = rom[tile_index | (m_bg_select << 10)]; |
| 96 | 96 | /* when the background is "disabled", it is actually still drawn, but using |
| r21033 | r21034 | |
|---|---|---|
| 12 | 12 | |
| 13 | 13 | void kchamp_state::palette_init() |
| 14 | 14 | { |
| 15 | const UINT8 *color_prom = m | |
| 15 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 16 | 16 | int i, red, green, blue; |
| 17 | 17 | |
| 18 | 18 | for (i = 0; i < machine().total_colors(); i++) |
| r21033 | r21034 | |
|---|---|---|
| 125 | 125 | } |
| 126 | 126 | |
| 127 | 127 | #if BW_DEBUG |
| 128 | (m | |
| 128 | (memregion(REGION_CPU1)->base())[0x1b10 + offset] = data; | |
| 129 | 129 | #endif |
| 130 | 130 | } |
| 131 | 131 |
| r21033 | r21034 | |
|---|---|---|
| 20 | 20 | |
| 21 | 21 | void gridlee_state::palette_init() |
| 22 | 22 | { |
| 23 | const UINT8 *color_prom = m | |
| 23 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 24 | 24 | int i; |
| 25 | 25 | |
| 26 | 26 | for (i = 0; i < machine().total_colors(); i++) |
| r21033 | r21034 | |
| 155 | 155 | } |
| 156 | 156 | |
| 157 | 157 | /* draw the sprite images */ |
| 158 | gfx = m | |
| 158 | gfx = memregion("gfx1")->base(); | |
| 159 | 159 | for (i = 0; i < 32; i++) |
| 160 | 160 | { |
| 161 | 161 | UINT8 *sprite = m_spriteram + i * 4; |
| r21033 | r21034 | |
|---|---|---|
| 38 | 38 | |
| 39 | 39 | void trucocl_state::palette_init() |
| 40 | 40 | { |
| 41 | const UINT8 *color_prom = m | |
| 41 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 42 | 42 | int i; |
| 43 | 43 | |
| 44 | 44 | for (i = 0;i < 32;i++) |
| r21033 | r21034 | |
|---|---|---|
| 3 | 3 | |
| 4 | 4 | void jailbrek_state::palette_init() |
| 5 | 5 | { |
| 6 | const UINT8 *color_prom = m | |
| 6 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 7 | 7 | int i; |
| 8 | 8 | |
| 9 | 9 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 98 | 98 | |
| 99 | 99 | void lockon_state::palette_init() |
| 100 | 100 | { |
| 101 | const UINT8 *color_prom = m | |
| 101 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 102 | 102 | int i; |
| 103 | 103 | |
| 104 | 104 | for (i = 0; i < 1024; ++i) |
| r21033 | r21034 | |
|---|---|---|
| 74 | 74 | |
| 75 | 75 | void portrait_state::palette_init() |
| 76 | 76 | { |
| 77 | const UINT8 *color_prom = m | |
| 77 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 78 | 78 | int i; |
| 79 | UINT8* lookup = m | |
| 79 | UINT8* lookup = memregion("tileattr")->base(); | |
| 80 | 80 | |
| 81 | 81 | /* allocate the colortable */ |
| 82 | 82 | machine().colortable = colortable_alloc(machine(), 0x40); |
| r21033 | r21034 | |
|---|---|---|
| 11 | 11 | |
| 12 | 12 | void funkybee_state::palette_init() |
| 13 | 13 | { |
| 14 | const UINT8 *color_prom = m | |
| 14 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 15 | 15 | int i; |
| 16 | 16 | |
| 17 | 17 | /* first, the character/sprite palette */ |
| r21033 | r21034 | |
|---|---|---|
| 369 | 369 | |
| 370 | 370 | PALETTE_INIT_MEMBER(alpha68k_state,kyros) |
| 371 | 371 | { |
| 372 | const UINT8 *color_prom = m | |
| 372 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 373 | 373 | int i; |
| 374 | 374 | |
| 375 | 375 | /* allocate the colortable */ |
| r21033 | r21034 | |
| 397 | 397 | |
| 398 | 398 | PALETTE_INIT_MEMBER(alpha68k_state,paddlem) |
| 399 | 399 | { |
| 400 | const UINT8 *color_prom = m | |
| 400 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 401 | 401 | int i; |
| 402 | 402 | |
| 403 | 403 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 20 | 20 | |
| 21 | 21 | PALETTE_INIT_MEMBER(ladybug_state,redclash) |
| 22 | 22 | { |
| 23 | const UINT8 *color_prom = m | |
| 23 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 24 | 24 | int i; |
| 25 | 25 | |
| 26 | 26 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 278 | 278 | |
| 279 | 279 | PALETTE_INIT_MEMBER(centiped_state,warlords) |
| 280 | 280 | { |
| 281 | const UINT8 *color_prom = m | |
| 281 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 282 | 282 | int i; |
| 283 | 283 | |
| 284 | 284 | for (i = 0; i < machine().total_colors(); i++) |
| r21033 | r21034 | |
| 403 | 403 | m_generic_paletteram_8[offset] = data; |
| 404 | 404 | |
| 405 | 405 | /* the value passed in is a look-up index into the color PROM */ |
| 406 | milliped_set_color(offset, ~m | |
| 406 | milliped_set_color(offset, ~memregion("proms")->base()[~data & 0x0f]); | |
| 407 | 407 | } |
| 408 | 408 | |
| 409 | 409 | |
| r21033 | r21034 | |
| 448 | 448 | UINT32 centiped_state::screen_update_warlords(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| 449 | 449 | { |
| 450 | 450 | UINT8 *spriteram = m_spriteram; |
| 451 | int upright_mode = | |
| 451 | int upright_mode = ioport("IN0")->read() & 0x80; | |
| 452 | 452 | int offs; |
| 453 | 453 | |
| 454 | 454 | /* if the cocktail/upright switch flipped, force refresh */ |
| r21033 | r21034 | |
|---|---|---|
| 7 | 7 | #include "emu.h" |
| 8 | 8 | #include "includes/galaxold.h" |
| 9 | 9 | |
| 10 | #define STARS_COLOR_BASE (m | |
| 10 | #define STARS_COLOR_BASE (memregion("proms")->bytes()) | |
| 11 | 11 | #define BULLETS_COLOR_BASE (STARS_COLOR_BASE + 64) |
| 12 | 12 | #define BACKGROUND_COLOR_BASE (BULLETS_COLOR_BASE + 2) |
| 13 | 13 | |
| r21033 | r21034 | |
| 45 | 45 | ***************************************************************************/ |
| 46 | 46 | PALETTE_INIT_MEMBER(galaxold_state,galaxold) |
| 47 | 47 | { |
| 48 | const UINT8 *color_prom = m | |
| 48 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 49 | 49 | int i, len; |
| 50 | 50 | |
| 51 | 51 | |
| 52 | 52 | /* first, the character/sprite palette */ |
| 53 | len = m | |
| 53 | len = memregion("proms")->bytes(); | |
| 54 | 54 | for (i = 0;i < len;i++) |
| 55 | 55 | { |
| 56 | 56 | int bit0,bit1,bit2,r,g,b; |
| r21033 | r21034 | |
| 120 | 120 | |
| 121 | 121 | PALETTE_INIT_MEMBER(galaxold_state,rockclim) |
| 122 | 122 | { |
| 123 | const UINT8 *color_prom = m | |
| 123 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 124 | 124 | int i, len; |
| 125 | 125 | |
| 126 | 126 | |
| 127 | 127 | /* first, the character/sprite palette */ |
| 128 | len = m | |
| 128 | len = memregion("proms")->bytes(); | |
| 129 | 129 | for (i = 0;i < len;i++) |
| 130 | 130 | { |
| 131 | 131 | int bit0,bit1,bit2,r,g,b; |
| r21033 | r21034 | |
| 169 | 169 | ***************************************************************************/ |
| 170 | 170 | PALETTE_INIT_MEMBER(galaxold_state,darkplnt) |
| 171 | 171 | { |
| 172 | const UINT8 *color_prom = m | |
| 172 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 173 | 173 | int i; |
| 174 | 174 | |
| 175 | 175 | |
| r21033 | r21034 | |
| 289 | 289 | /* swapped r/g/b hook-up */ |
| 290 | 290 | PALETTE_INIT_MEMBER(galaxold_state,dambustr) |
| 291 | 291 | { |
| 292 | const UINT8 *color_prom = m | |
| 292 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 293 | 293 | int base = BACKGROUND_COLOR_BASE; |
| 294 | 294 | int i, len; |
| 295 | 295 | |
| 296 | 296 | /* first, the character/sprite palette */ |
| 297 | len = m | |
| 297 | len = memregion("proms")->bytes(); | |
| 298 | 298 | |
| 299 | 299 | for (i = 0;i < len;i++) |
| 300 | 300 | { |
| r21033 | r21034 | |
| 1001 | 1001 | |
| 1002 | 1002 | /* bit 0 of the PROM controls character banking */ |
| 1003 | 1003 | |
| 1004 | prom = m | |
| 1004 | prom = memregion("user2")->base(); | |
| 1005 | 1005 | |
| 1006 | 1006 | *code |= ((prom[x] & 0x01) << 8); |
| 1007 | 1007 | } |
| r21033 | r21034 | |
| 1545 | 1545 | |
| 1546 | 1546 | /* bit 2 of the PROM controls star visibility */ |
| 1547 | 1547 | |
| 1548 | prom = m | |
| 1548 | prom = memregion("user2")->base(); | |
| 1549 | 1549 | |
| 1550 | 1550 | for (offs = 0;offs < STAR_COUNT;offs++) |
| 1551 | 1551 | { |
| r21033 | r21034 | |
|---|---|---|
| 627 | 627 | return m_bank_gfx[bpp - 4][bank_index]; |
| 628 | 628 | |
| 629 | 629 | /* if the bank is out of range, call it 0 */ |
| 630 | memory_region *tiles = m | |
| 630 | memory_region *tiles = memregion("tiles"); | |
| 631 | 631 | if (0x80000 * (bank_index - 1) >= tiles->bytes()) |
| 632 | 632 | return 0; |
| 633 | 633 |
| r21033 | r21034 | |
|---|---|---|
| 39 | 39 | |
| 40 | 40 | void irobot_state::palette_init() |
| 41 | 41 | { |
| 42 | const UINT8 *color_prom = m | |
| 42 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 43 | 43 | int i; |
| 44 | 44 | |
| 45 | 45 | /* convert the color prom for the text palette */ |
| r21033 | r21034 | |
|---|---|---|
| 17 | 17 | |
| 18 | 18 | void skykid_state::palette_init() |
| 19 | 19 | { |
| 20 | const UINT8 *color_prom = m | |
| 20 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 21 | 21 | int i; |
| 22 | 22 | |
| 23 | 23 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 20 | 20 | |
| 21 | 21 | void gomoku_state::palette_init() |
| 22 | 22 | { |
| 23 | const UINT8 *color_prom = m | |
| 23 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 24 | 24 | int i; |
| 25 | 25 | int bit0, bit1, bit2, r, g, b; |
| 26 | 26 | |
| r21033 | r21034 | |
| 146 | 146 | |
| 147 | 147 | UINT32 gomoku_state::screen_update_gomoku(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| 148 | 148 | { |
| 149 | UINT8 *GOMOKU_BG_X = machine().root_device().memregion( "user1" )->base(); | |
| 150 | UINT8 *GOMOKU_BG_Y = machine().root_device().memregion( "user2" )->base(); | |
| 149 | UINT8 *GOMOKU_BG_X = memregion( "user1" )->base(); | |
| 150 | UINT8 *GOMOKU_BG_Y = memregion( "user2" )->base(); | |
| 151 | 151 | UINT8 *GOMOKU_BG_D = memregion( "user3" )->base(); |
| 152 | 152 | int x, y; |
| 153 | 153 | int bgram; |
| r21033 | r21034 | |
|---|---|---|
| 89 | 89 | |
| 90 | 90 | void pacland_state::palette_init() |
| 91 | 91 | { |
| 92 | const UINT8 *color_prom = m | |
| 92 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 93 | 93 | int i; |
| 94 | 94 | |
| 95 | 95 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 129 | 129 | We're constructing a double-sized palette with one half for each state. |
| 130 | 130 | */ |
| 131 | 131 | { |
| 132 | const UINT8 *color_prom = m | |
| 132 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 133 | 133 | int i; |
| 134 | 134 | static const int resistances_rgb[4] = { 2000, 1000, 470, 220 }; |
| 135 | 135 | double weights_r[4], weights_g[4], weights_b[4]; |
| r21033 | r21034 | |
|---|---|---|
| 54 | 54 | |
| 55 | 55 | void galivan_state::palette_init() |
| 56 | 56 | { |
| 57 | const UINT8 *color_prom = m | |
| 57 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 58 | 58 | int i; |
| 59 | 59 | |
| 60 | 60 | /* allocate the colortable */ |
| r21033 | r21034 | |
| 122 | 122 | |
| 123 | 123 | TILE_GET_INFO_MEMBER(galivan_state::get_bg_tile_info) |
| 124 | 124 | { |
| 125 | UINT8 *BGROM = m | |
| 125 | UINT8 *BGROM = memregion("gfx4")->base(); | |
| 126 | 126 | int attr = BGROM[tile_index + 0x4000]; |
| 127 | 127 | int code = BGROM[tile_index] | ((attr & 0x03) << 8); |
| 128 | 128 | SET_TILE_INFO_MEMBER( |
| r21033 | r21034 | |
| 146 | 146 | |
| 147 | 147 | TILE_GET_INFO_MEMBER(galivan_state::ninjemak_get_bg_tile_info) |
| 148 | 148 | { |
| 149 | UINT8 *BGROM = m | |
| 149 | UINT8 *BGROM = memregion("gfx4")->base(); | |
| 150 | 150 | int attr = BGROM[tile_index + 0x4000]; |
| 151 | 151 | int code = BGROM[tile_index] | ((attr & 0x03) << 8); |
| 152 | 152 | SET_TILE_INFO_MEMBER( |
| r21033 | r21034 | |
|---|---|---|
| 17 | 17 | |
| 18 | 18 | void hanaawas_state::palette_init() |
| 19 | 19 | { |
| 20 | const UINT8 *color_prom = m | |
| 20 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 21 | 21 | int i; |
| 22 | 22 | |
| 23 | 23 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 46 | 46 | |
| 47 | 47 | /* draw color overlay foreground and background */ |
| 48 | 48 | |
| 49 | if (m_fgoal_player == 1 && ( | |
| 49 | if (m_fgoal_player == 1 && (ioport("IN1")->read() & 0x40)) | |
| 50 | 50 | { |
| 51 | 51 | drawgfxzoom_opaque(m_fgbitmap, cliprect, machine().gfx[0], |
| 52 | 52 | 0, (m_fgoal_player << 2) | m_current_color, |
| r21033 | r21034 | |
|---|---|---|
| 12 | 12 | |
| 13 | 13 | PALETTE_INIT_MEMBER(lvcards_state,ponttehk) |
| 14 | 14 | { |
| 15 | const UINT8 *color_prom = m | |
| 15 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 16 | 16 | int i; |
| 17 | 17 | |
| 18 | 18 | for ( i = 0; i < machine().total_colors(); i++ ) |
| r21033 | r21034 | |
| 48 | 48 | |
| 49 | 49 | void lvcards_state::palette_init()//Ever so slightly different, but different enough. |
| 50 | 50 | { |
| 51 | const UINT8 *color_prom = m | |
| 51 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 52 | 52 | int i; |
| 53 | 53 | |
| 54 | 54 | for ( i = 0; i < machine().total_colors(); i++ ) |
| r21033 | r21034 | |
|---|---|---|
| 72 | 72 | { |
| 73 | 73 | offs_t offs; |
| 74 | 74 | |
| 75 | UINT8 *color_prom1 = &m | |
| 75 | UINT8 *color_prom1 = &memregion("proms")->base()[0x000]; | |
| 76 | 76 | UINT8 *color_prom2 = &memregion("proms")->base()[0x100]; |
| 77 | 77 | |
| 78 | 78 | for (offs = 0; offs < m_videoram1.bytes(); offs++) |
| r21033 | r21034 | |
|---|---|---|
| 23 | 23 | |
| 24 | 24 | PALETTE_INIT_MEMBER(gberet_state,gberet) |
| 25 | 25 | { |
| 26 | const UINT8 *color_prom = m | |
| 26 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 27 | 27 | int i; |
| 28 | 28 | |
| 29 | 29 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 24 | 24 | ***************************************************************************/ |
| 25 | 25 | PALETTE_INIT_MEMBER(snk6502_state,snk6502) |
| 26 | 26 | { |
| 27 | const UINT8 *color_prom = m | |
| 27 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 28 | 28 | int i; |
| 29 | 29 | |
| 30 | 30 | for (i = 0; i < machine().total_colors(); i++) |
| r21033 | r21034 | |
| 195 | 195 | |
| 196 | 196 | PALETTE_INIT_MEMBER(snk6502_state,satansat) |
| 197 | 197 | { |
| 198 | const UINT8 *color_prom = m | |
| 198 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 199 | 199 | int i; |
| 200 | 200 | |
| 201 | 201 | for (i = 0; i < machine().total_colors(); i++) |
| r21033 | r21034 | |
|---|---|---|
| 30 | 30 | |
| 31 | 31 | void yiear_state::palette_init() |
| 32 | 32 | { |
| 33 | const UINT8 *color_prom = m | |
| 33 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 34 | 34 | int i; |
| 35 | 35 | |
| 36 | 36 | for (i = 0; i < machine().total_colors(); i++) |
| r21033 | r21034 | |
|---|---|---|
| 35 | 35 | ***************************************************************************/ |
| 36 | 36 | void zaccaria_state::palette_init() |
| 37 | 37 | { |
| 38 | const UINT8 *color_prom = m | |
| 38 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 39 | 39 | int i, j, k; |
| 40 | 40 | static const int resistances_rg[] = { 1200, 1000, 820 }; |
| 41 | 41 | static const int resistances_b[] = { 1000, 820 }; |
| r21033 | r21034 | |
|---|---|---|
| 30 | 30 | |
| 31 | 31 | void bking_state::palette_init() |
| 32 | 32 | { |
| 33 | const UINT8 *color_prom = m | |
| 33 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 34 | 34 | static const int resistances_rg[3] = { 220, 390, 820 }; |
| 35 | 35 | static const int resistances_b [2] = { 220, 390 }; |
| 36 | 36 | double rweights[3], gweights[3], bweights[2]; |
| r21033 | r21034 | |
| 307 | 307 | |
| 308 | 308 | if (latch != 0) |
| 309 | 309 | { |
| 310 | const UINT8* MASK = m | |
| 310 | const UINT8* MASK = memregion("user1")->base() + 8 * m_hit; | |
| 311 | 311 | |
| 312 | 312 | int x; |
| 313 | 313 | int y; |
| r21033 | r21034 | |
|---|---|---|
| 31 | 31 | |
| 32 | 32 | void gyruss_state::palette_init() |
| 33 | 33 | { |
| 34 | const UINT8 *color_prom = m | |
| 34 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 35 | 35 | static const int resistances_rg[3] = { 1000, 470, 220 }; |
| 36 | 36 | static const int resistances_b [2] = { 470, 220 }; |
| 37 | 37 | double weights_rg[3], weights_b[2]; |
| r21033 | r21034 | |
|---|---|---|
| 1531 | 1531 | by the cpu core as a 32-bit branch. This branch would make the |
| 1532 | 1532 | game crash (address error, since it would branch to an odd address) |
| 1533 | 1533 | if location 180ca6 (outside ROM space) isn't 0. Protection check? */ |
| 1534 | UINT16 *rom = (UINT16 *)m | |
| 1534 | UINT16 *rom = (UINT16 *)memregion("maincpu")->base(); | |
| 1535 | 1535 | rom[0x11756 / 2] = 0x4e71; |
| 1536 | 1536 | } |
| 1537 | 1537 | else if (strcmp(gamename, "ghouls") == 0) |
| 1538 | 1538 | { |
| 1539 | 1539 | /* Patch out self-test... it takes forever */ |
| 1540 | UINT16 *rom = (UINT16 *)m | |
| 1540 | UINT16 *rom = (UINT16 *)memregion("maincpu")->base(); | |
| 1541 | 1541 | rom[0x61964 / 2] = 0x4ef9; |
| 1542 | 1542 | rom[0x61966 / 2] = 0x0000; |
| 1543 | 1543 | rom[0x61968 / 2] = 0x0400; |
| r21033 | r21034 | |
|---|---|---|
| 19 | 19 | |
| 20 | 20 | PALETTE_INIT_MEMBER(ojankohs_state,ojankoy) |
| 21 | 21 | { |
| 22 | const UINT8 *color_prom = m | |
| 22 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 23 | 23 | int i; |
| 24 | 24 | int bit0, bit1, bit2, bit3, bit4, r, g, b; |
| 25 | 25 |
| r21033 | r21034 | |
|---|---|---|
| 86 | 86 | |
| 87 | 87 | void thedeep_state::palette_init() |
| 88 | 88 | { |
| 89 | const UINT8 *color_prom = m | |
| 89 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 90 | 90 | int i; |
| 91 | 91 | for (i = 0;i < 512;i++) |
| 92 | 92 | palette_set_color_rgb(machine(),i,pal4bit(color_prom[0x400 + i] >> 0),pal4bit(color_prom[0x400 + i] >> 4),pal4bit(color_prom[0x200 + i] >> 0)); |
| r21033 | r21034 | |
|---|---|---|
| 77 | 77 | |
| 78 | 78 | UINT32 orbit_state::screen_update_orbit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| 79 | 79 | { |
| 80 | m_flip_screen = | |
| 80 | m_flip_screen = ioport("DSW2")->read() & 8; | |
| 81 | 81 | |
| 82 | 82 | m_bg_tilemap->draw(bitmap, cliprect, 0, 0); |
| 83 | 83 |
| r21033 | r21034 | |
|---|---|---|
| 350 | 350 | skipy = -1; |
| 351 | 351 | } |
| 352 | 352 | |
| 353 | gfxlen = m | |
| 353 | gfxlen = memregion("gfx1")->bytes(); | |
| 354 | 354 | gfxaddr = (m_gfxrom << 17) + (m_blitter_src_addr << 1); |
| 355 | 355 | |
| 356 | 356 | for (y = starty, ctry = sizey; ctry >= 0; y += skipy, ctry--) |
| r21033 | r21034 | |
|---|---|---|
| 18 | 18 | |
| 19 | 19 | void vulgus_state::palette_init() |
| 20 | 20 | { |
| 21 | const UINT8 *color_prom = m | |
| 21 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 22 | 22 | int i; |
| 23 | 23 | |
| 24 | 24 | machine().colortable = colortable_alloc(machine(), 256); |
| r21033 | r21034 | |
|---|---|---|
| 5 | 5 | |
| 6 | 6 | void spdodgeb_state::palette_init() |
| 7 | 7 | { |
| 8 | const UINT8 *color_prom = m | |
| 8 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 9 | 9 | int i; |
| 10 | 10 | |
| 11 | 11 |
| r21033 | r21034 | |
|---|---|---|
| 247 | 247 | |
| 248 | 248 | PALETTE_INIT_MEMBER(liberate_state,liberate) |
| 249 | 249 | { |
| 250 | const UINT8 *color_prom = m | |
| 250 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 251 | 251 | int i, bit0, bit1, bit2, g, r, b; |
| 252 | 252 | |
| 253 | 253 | for (i = 0;i < 32;i++) |
| r21033 | r21034 | |
|---|---|---|
| 18 | 18 | |
| 19 | 19 | void gunsmoke_state::palette_init() |
| 20 | 20 | { |
| 21 | const UINT8 *color_prom = m | |
| 21 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 22 | 22 | int i; |
| 23 | 23 | |
| 24 | 24 | /* allocate the colortable */ |
| r21033 | r21034 | |
| 103 | 103 | |
| 104 | 104 | TILE_GET_INFO_MEMBER(gunsmoke_state::get_bg_tile_info) |
| 105 | 105 | { |
| 106 | UINT8 *tilerom = m | |
| 106 | UINT8 *tilerom = memregion("gfx4")->base(); | |
| 107 | 107 | |
| 108 | 108 | int offs = tile_index * 2; |
| 109 | 109 | int attr = tilerom[offs + 1]; |
| r21033 | r21034 | |
|---|---|---|
| 99 | 99 | assert(m_ttl_gfx_index != MAX_GFX_ELEMENTS); |
| 100 | 100 | |
| 101 | 101 | /* decode the ttl layer's gfx */ |
| 102 | machine().gfx[m_ttl_gfx_index] = auto_alloc(machine(), gfx_element(machine(), charlayout, m | |
| 102 | machine().gfx[m_ttl_gfx_index] = auto_alloc(machine(), gfx_element(machine(), charlayout, memregion("gfx1")->base(), machine().total_colors() / 16, 0)); | |
| 103 | 103 | |
| 104 | 104 | /* create the tilemap */ |
| 105 | 105 | m_ttl_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(polygonet_state::ttl_get_tile_info),this), tilemap_mapper_delegate(FUNC(polygonet_state::plygonet_scan),this), 8, 8, 64, 32); |
| r21033 | r21034 | |
|---|---|---|
| 21 | 21 | |
| 22 | 22 | void higemaru_state::palette_init() |
| 23 | 23 | { |
| 24 | const UINT8 *color_prom = m | |
| 24 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 25 | 25 | int i; |
| 26 | 26 | |
| 27 | 27 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 17 | 17 | |
| 18 | 18 | void cheekyms_state::palette_init() |
| 19 | 19 | { |
| 20 | const UINT8 *color_prom = m | |
| 20 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 21 | 21 | int i, j, bit, r, g, b; |
| 22 | 22 | |
| 23 | 23 | for (i = 0; i < 6; i++) |
| r21033 | r21034 | |
|---|---|---|
| 28 | 28 | /* x B01234 G01234 R01234 */ |
| 29 | 29 | PALETTE_INIT_MEMBER(dynax_state,sprtmtch) |
| 30 | 30 | { |
| 31 | const UINT8 *color_prom = m | |
| 31 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 32 | 32 | if (!color_prom) |
| 33 | 33 | return; |
| 34 | 34 | |
| r21033 | r21034 | |
| 46 | 46 | /* x xB0123 xG0123 xR0123 */ |
| 47 | 47 | PALETTE_INIT_MEMBER(dynax_state,janyuki) |
| 48 | 48 | { |
| 49 | const UINT8 *color_prom = m | |
| 49 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 50 | 50 | if (!color_prom) |
| 51 | 51 | return; |
| 52 | 52 |
| r21033 | r21034 | |
|---|---|---|
| 21 | 21 | ***************************************************************************/ |
| 22 | 22 | |
| 23 | 23 | void timelimt_state::palette_init(){ |
| 24 | const UINT8 *color_prom = m | |
| 24 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 25 | 25 | int i; |
| 26 | 26 | |
| 27 | 27 | for (i = 0;i < machine().total_colors();i++) |
| r21033 | r21034 | |
|---|---|---|
| 63 | 63 | |
| 64 | 64 | PALETTE_INIT_MEMBER(pacman_state,pacman) |
| 65 | 65 | { |
| 66 | const UINT8 *color_prom = m | |
| 66 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 67 | 67 | static const int resistances[3] = { 1000, 470, 220 }; |
| 68 | 68 | double rweights[3], gweights[3], bweights[2]; |
| 69 | 69 | int i; |
| r21033 | r21034 | |
|---|---|---|
| 19 | 19 | |
| 20 | 20 | void m52_state::palette_init() |
| 21 | 21 | { |
| 22 | const UINT8 *color_prom = m | |
| 22 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 23 | 23 | const UINT8 *char_pal = color_prom + 0x000; |
| 24 | 24 | const UINT8 *back_pal = color_prom + 0x200; |
| 25 | 25 | const UINT8 *sprite_pal = color_prom + 0x220; |
| r21033 | r21034 | |
|---|---|---|
| 78 | 78 | |
| 79 | 79 | PALETTE_INIT_MEMBER(phoenix_state,phoenix) |
| 80 | 80 | { |
| 81 | const UINT8 *color_prom = m | |
| 81 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 82 | 82 | int i; |
| 83 | 83 | rgb_t *rgb; |
| 84 | 84 | |
| r21033 | r21034 | |
| 96 | 96 | |
| 97 | 97 | PALETTE_INIT_MEMBER(phoenix_state,survival) |
| 98 | 98 | { |
| 99 | const UINT8 *color_prom = m | |
| 99 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 100 | 100 | int i; |
| 101 | 101 | rgb_t *rgb; |
| 102 | 102 | |
| r21033 | r21034 | |
| 114 | 114 | |
| 115 | 115 | PALETTE_INIT_MEMBER(phoenix_state,pleiads) |
| 116 | 116 | { |
| 117 | const UINT8 *color_prom = m | |
| 117 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 118 | 118 | int i; |
| 119 | 119 | rgb_t *rgb; |
| 120 | 120 |
| r21033 | r21034 | |
|---|---|---|
| 13 | 13 | |
| 14 | 14 | void markham_state::palette_init() |
| 15 | 15 | { |
| 16 | const UINT8 *color_prom = m | |
| 16 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 17 | 17 | int i; |
| 18 | 18 | |
| 19 | 19 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 16 | 16 | |
| 17 | 17 | TILE_GET_INFO_MEMBER(tmnt_state::prmrsocr_get_roz_tile_info) |
| 18 | 18 | { |
| 19 | UINT8 *rom = m | |
| 19 | UINT8 *rom = memregion("user1")->base(); | |
| 20 | 20 | int code = rom[tile_index + 0x20000] + 256 * rom[tile_index]; |
| 21 | 21 | |
| 22 | 22 | SET_TILE_INFO_MEMBER(0, code & 0x1fff, code >> 13, 0); |
| r21033 | r21034 | |
|---|---|---|
| 32 | 32 | |
| 33 | 33 | void carjmbre_state::palette_init() |
| 34 | 34 | { |
| 35 | const UINT8 *color_prom = m | |
| 35 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 36 | 36 | rgb_t *rgb; |
| 37 | 37 | |
| 38 | 38 | rgb = compute_res_net_all(machine(), color_prom, &carjmbre_decode_info, &carjmbre_net_info); |
| r21033 | r21034 | |
|---|---|---|
| 27 | 27 | |
| 28 | 28 | PALETTE_INIT_MEMBER(cvs_state,cvs) |
| 29 | 29 | { |
| 30 | const UINT8 *color_prom = m | |
| 30 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 31 | 31 | int i, attr; |
| 32 | 32 | |
| 33 | 33 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 28 | 28 | |
| 29 | 29 | void thepit_state::palette_init() |
| 30 | 30 | { |
| 31 | const UINT8 *color_prom = m | |
| 31 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 32 | 32 | int i; |
| 33 | 33 | |
| 34 | 34 | for (i = 0; i < 32; i++) |
| r21033 | r21034 | |
| 69 | 69 | |
| 70 | 70 | PALETTE_INIT_MEMBER(thepit_state,suprmous) |
| 71 | 71 | { |
| 72 | const UINT8 *color_prom = m | |
| 72 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 73 | 73 | int i; |
| 74 | 74 | |
| 75 | 75 | for (i = 0; i < 32; i++) |
| r21033 | r21034 | |
|---|---|---|
| 24 | 24 | membank("bank1")->set_base(m_videoram); |
| 25 | 25 | |
| 26 | 26 | /* get pointers to our PROMs */ |
| 27 | m_syncprom = machine().root_device().memregion("proms")->base() + 0x000; | |
| 28 | m_wpprom = machine().root_device().memregion("proms")->base() + 0x200; | |
| 29 | m_priprom = machine().root_device().memregion("proms")->base() + 0x300; | |
| 27 | m_syncprom = memregion("proms")->base() + 0x000; | |
| 28 | m_wpprom = memregion("proms")->base() + 0x200; | |
| 29 | m_priprom = memregion("proms")->base() + 0x300; | |
| 30 | 30 | |
| 31 | 31 | /* compute the color output resistor weights at startup */ |
| 32 | 32 | compute_resistor_weights(0, 255, -1.0, |
| r21033 | r21034 | |
|---|---|---|
| 29 | 29 | |
| 30 | 30 | void pooyan_state::palette_init() |
| 31 | 31 | { |
| 32 | const UINT8 *color_prom = m | |
| 32 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 33 | 33 | static const int resistances_rg[3] = { 1000, 470, 220 }; |
| 34 | 34 | static const int resistances_b [2] = { 470, 220 }; |
| 35 | 35 | double rweights[3], gweights[3], bweights[2]; |
| r21033 | r21034 | |
|---|---|---|
| 38 | 38 | |
| 39 | 39 | void megazone_state::palette_init() |
| 40 | 40 | { |
| 41 | const UINT8 *color_prom = m | |
| 41 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 42 | 42 | static const int resistances_rg[3] = { 1000, 470, 220 }; |
| 43 | 43 | static const int resistances_b [2] = { 470, 220 }; |
| 44 | 44 | double rweights[3], gweights[3], bweights[2]; |
| r21033 | r21034 | |
|---|---|---|
| 1623 | 1623 | }; |
| 1624 | 1624 | |
| 1625 | 1625 | bitmap_ind16 &bitmap = *m_layer_data[(!m_is_multi32 || !(data[3] & 0x0800)) ? MIXER_LAYER_SPRITES_2 : MIXER_LAYER_MULTISPR_2].bitmap; |
| 1626 | UINT8 numbanks = machine().root_device().memregion("gfx2")->bytes() / 0x400000; | |
| 1627 | const UINT32 *spritebase = (const UINT32 *)machine().root_device().memregion("gfx2")->base(); | |
| 1626 | UINT8 numbanks = memregion("gfx2")->bytes() / 0x400000; | |
| 1627 | const UINT32 *spritebase = (const UINT32 *)memregion("gfx2")->base(); | |
| 1628 | 1628 | |
| 1629 | 1629 | int indirect = data[0] & 0x2000; |
| 1630 | 1630 | int indlocal = data[0] & 0x1000; |
| r21033 | r21034 | |
|---|---|---|
| 10 | 10 | |
| 11 | 11 | PALETTE_INIT_MEMBER(equites_state,equites) |
| 12 | 12 | { |
| 13 | const UINT8 *color_prom = m | |
| 13 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 14 | 14 | int i; |
| 15 | 15 | |
| 16 | 16 | machine().colortable = colortable_alloc(machine(), 256); |
| r21033 | r21034 | |
| 30 | 30 | |
| 31 | 31 | PALETTE_INIT_MEMBER(equites_state,splndrbt) |
| 32 | 32 | { |
| 33 | const UINT8 *color_prom = m | |
| 33 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 34 | 34 | int i; |
| 35 | 35 | |
| 36 | 36 | machine().colortable = colortable_alloc(machine(), 256); |
| r21033 | r21034 | |
|---|---|---|
| 313 | 313 | skipy = -1; |
| 314 | 314 | } |
| 315 | 315 | |
| 316 | gfxlen = m | |
| 316 | gfxlen = memregion("gfx1")->bytes(); | |
| 317 | 317 | gfxaddr = (m_mjsikaku_gfxrom << 17) + (m_blitter_src_addr << 1); |
| 318 | 318 | |
| 319 | 319 | //popmessage("ADDR:%08X DX:%03d DY:%03d SX:%03d SY:%03d", gfxaddr, startx, starty, sizex, sizey); |
| r21033 | r21034 | |
|---|---|---|
| 13 | 13 | |
| 14 | 14 | void ikki_state::palette_init() |
| 15 | 15 | { |
| 16 | const UINT8 *color_prom = m | |
| 16 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 17 | 17 | int i; |
| 18 | 18 | |
| 19 | 19 | /* allocate the colortable - extra pen for the punch through pen */ |
| r21033 | r21034 | |
|---|---|---|
| 60 | 60 | // on Irem boards, screen flip is handled in both hardware and software. |
| 61 | 61 | // this game doesn't have cocktail mode so if there's software control we don't |
| 62 | 62 | // know where it is mapped. |
| 63 | flip_screen_set(~ | |
| 63 | flip_screen_set(~ioport("DSW2")->read() & 1); | |
| 64 | 64 | |
| 65 | 65 | |
| 66 | 66 | m_bg_tilemap->draw(bitmap, cliprect, 0, 0); |
| r21033 | r21034 | |
|---|---|---|
| 76 | 76 | |
| 77 | 77 | TILE_GET_INFO_MEMBER(ginganin_state::get_bg_tile_info) |
| 78 | 78 | { |
| 79 | UINT8 *gfx = m | |
| 79 | UINT8 *gfx = memregion("gfx5")->base(); | |
| 80 | 80 | int code = gfx[2 * tile_index + 0] * 256 + gfx[2 * tile_index + 1]; |
| 81 | 81 | SET_TILE_INFO_MEMBER( |
| 82 | 82 | BG_GFX, |
| r21033 | r21034 | |
|---|---|---|
| 205 | 205 | |
| 206 | 206 | PALETTE_INIT_MEMBER(dkong_state,dkong2b) |
| 207 | 207 | { |
| 208 | const UINT8 *color_prom = m | |
| 208 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 209 | 209 | rgb_t *rgb; |
| 210 | 210 | int i; |
| 211 | 211 | |
| r21033 | r21034 | |
| 235 | 235 | #ifdef UNUSED_FUNCTION |
| 236 | 236 | PALETTE_INIT_MEMBER(dkong_state,dkong4b) |
| 237 | 237 | { |
| 238 | const UINT8 *color_prom = m | |
| 238 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 239 | 239 | int i; |
| 240 | 240 | int r,g,b; |
| 241 | 241 | |
| r21033 | r21034 | |
| 273 | 273 | |
| 274 | 274 | PALETTE_INIT_MEMBER(dkong_state,radarscp) |
| 275 | 275 | { |
| 276 | const UINT8 *color_prom = m | |
| 276 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 277 | 277 | int i; |
| 278 | 278 | int r,g,b; |
| 279 | 279 | |
| r21033 | r21034 | |
| 336 | 336 | |
| 337 | 337 | PALETTE_INIT_MEMBER(dkong_state,radarscp1) |
| 338 | 338 | { |
| 339 | const UINT8 *color_prom = m | |
| 339 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 340 | 340 | int i; |
| 341 | 341 | int r,g,b; |
| 342 | 342 | |
| r21033 | r21034 | |
| 435 | 435 | |
| 436 | 436 | PALETTE_INIT_MEMBER(dkong_state,dkong3) |
| 437 | 437 | { |
| 438 | const UINT8 *color_prom = m | |
| 438 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 439 | 439 | rgb_t *rgb; |
| 440 | 440 | |
| 441 | 441 | rgb = compute_res_net_all(machine(), color_prom, &dkong3_decode_info, &dkong3_net_info); |
| r21033 | r21034 | |
|---|---|---|
| 22 | 22 | ***************************************************************************/ |
| 23 | 23 | void rollrace_state::palette_init() |
| 24 | 24 | { |
| 25 | const UINT8 *color_prom = m | |
| 25 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 26 | 26 | int i; |
| 27 | 27 | |
| 28 | 28 |
| r21033 | r21034 | |
|---|---|---|
| 25 | 25 | void epos_state::get_pens( pen_t *pens ) |
| 26 | 26 | { |
| 27 | 27 | offs_t i; |
| 28 | const UINT8 *prom = machine().root_device().memregion("proms")->base(); | |
| 29 | int len = machine().root_device().memregion("proms")->bytes(); | |
| 28 | const UINT8 *prom = memregion("proms")->base(); | |
| 29 | int len = memregion("proms")->bytes(); | |
| 30 | 30 | |
| 31 | 31 | for (i = 0; i < len; i++) |
| 32 | 32 | { |
| r21033 | r21034 | |
|---|---|---|
| 64 | 64 | |
| 65 | 65 | PALETTE_INIT_MEMBER(firetrk_state,montecar) |
| 66 | 66 | { |
| 67 | const UINT8 *color_prom = m | |
| 67 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 68 | 68 | int i; |
| 69 | 69 | |
| 70 | 70 | static const UINT8 colortable_source[] = |
| r21033 | r21034 | |
|---|---|---|
| 11 | 11 | |
| 12 | 12 | void tryout_state::palette_init() |
| 13 | 13 | { |
| 14 | const UINT8 *color_prom = m | |
| 14 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 15 | 15 | int i; |
| 16 | 16 | |
| 17 | 17 | for (i = 0;i < machine().total_colors();i++) |
| r21033 | r21034 | |
|---|---|---|
| 217 | 217 | _vcount_191 = m_vcount_191; |
| 218 | 218 | _hcount_191 = m_hcount_191 & 0xff; |
| 219 | 219 | |
| 220 | sf_rom = m | |
| 220 | sf_rom = memregion("user1")->base(); | |
| 221 | 221 | |
| 222 | 222 | #if 0 // old loop (for reference; easier to read) |
| 223 | 223 | if (!flipon) |
| r21033 | r21034 | |
|---|---|---|
| 123 | 123 | |
| 124 | 124 | PALETTE_INIT_MEMBER(kingofb_state,kingofb) |
| 125 | 125 | { |
| 126 | const UINT8 *color_prom = m | |
| 126 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 127 | 127 | palette_init_common(color_prom, &kingofb_state::kingofb_get_rgb_data); |
| 128 | 128 | } |
| 129 | 129 | |
| 130 | 130 | PALETTE_INIT_MEMBER(kingofb_state,ringking) |
| 131 | 131 | { |
| 132 | const UINT8 *color_prom = m | |
| 132 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 133 | 133 | palette_init_common(color_prom, &kingofb_state::ringking_get_rgb_data); |
| 134 | 134 | } |
| 135 | 135 |
| r21033 | r21034 | |
|---|---|---|
| 211 | 211 | skipy = -1; |
| 212 | 212 | } |
| 213 | 213 | |
| 214 | gfxlen = m | |
| 214 | gfxlen = memregion("gfx1")->bytes(); | |
| 215 | 215 | gfxaddr = (m_gfxrom << 17) + (m_blitter_src_addr << 1); |
| 216 | 216 | |
| 217 | 217 | for (y = starty, ctry = sizey; ctry >= 0; y += skipy, ctry--) |
| r21033 | r21034 | |
|---|---|---|
| 88 | 88 | |
| 89 | 89 | void skyfox_state::palette_init() |
| 90 | 90 | { |
| 91 | const UINT8 *color_prom = m | |
| 91 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 92 | 92 | int i; |
| 93 | 93 | |
| 94 | 94 | for (i = 0; i < 256; i++) |
| r21033 | r21034 | |
|---|---|---|
| 95 | 95 | |
| 96 | 96 | PALETTE_INIT_MEMBER(ladybug_state,ladybug) |
| 97 | 97 | { |
| 98 | const UINT8 *color_prom = m | |
| 98 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 99 | 99 | palette_init_common(machine(), color_prom, 0x20, 0, 5, 2, 6, 4, 7); |
| 100 | 100 | } |
| 101 | 101 | |
| 102 | 102 | PALETTE_INIT_MEMBER(ladybug_state,sraider) |
| 103 | 103 | { |
| 104 | const UINT8 *color_prom = m | |
| 104 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 105 | 105 | int i; |
| 106 | 106 | |
| 107 | 107 | /* the resistor net may be probably different than Lady Bug */ |
| r21033 | r21034 | |
|---|---|---|
| 1086 | 1086 | |
| 1087 | 1087 | void mcd212_device::mix_lines(UINT8 *plane_a_r, UINT8 *plane_a_g, UINT8 *plane_a_b, UINT8 *plane_b_r, UINT8 *plane_b_g, UINT8 *plane_b_b, UINT32 *out) |
| 1088 | 1088 | { |
| 1089 | UINT8 debug_mode = | |
| 1089 | UINT8 debug_mode = ioport("DEBUG")->read(); | |
| 1090 | 1090 | UINT8 global_plane_a_disable = debug_mode & 1; |
| 1091 | 1091 | UINT8 global_plane_b_disable = debug_mode & 2; |
| 1092 | 1092 | UINT8 debug_backdrop_enable = debug_mode & 4; |
| r21033 | r21034 | |
|---|---|---|
| 199 | 199 | |
| 200 | 200 | void m62_state::palette_init() |
| 201 | 201 | { |
| 202 | const UINT8 *color_prom = m | |
| 202 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 203 | 203 | rgb_t *rgb; |
| 204 | 204 | |
| 205 | 205 | rgb = compute_res_net_all(machine(), color_prom, &m62_tile_decode_info, &m62_tile_net_info); |
| r21033 | r21034 | |
| 219 | 219 | |
| 220 | 220 | PALETTE_INIT_MEMBER(m62_state,lotlot) |
| 221 | 221 | { |
| 222 | const UINT8 *color_prom = m | |
| 222 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 223 | 223 | rgb_t *rgb; |
| 224 | 224 | |
| 225 | 225 | rgb = compute_res_net_all(machine(), color_prom, &lotlot_tile_decode_info, &m62_tile_net_info); |
| r21033 | r21034 | |
| 239 | 239 | |
| 240 | 240 | PALETTE_INIT_MEMBER(m62_state,battroad) |
| 241 | 241 | { |
| 242 | const UINT8 *color_prom = m | |
| 242 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 243 | 243 | rgb_t *rgb; |
| 244 | 244 | |
| 245 | 245 | // m62 palette |
| r21033 | r21034 | |
| 265 | 265 | |
| 266 | 266 | PALETTE_INIT_MEMBER(m62_state,spelunk2) |
| 267 | 267 | { |
| 268 | const UINT8 *color_prom = m | |
| 268 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 269 | 269 | rgb_t *rgb; |
| 270 | 270 | |
| 271 | 271 | rgb = compute_res_net_all(machine(), color_prom, &spelunk2_tile_decode_info, &m62_tile_net_info); |
| r21033 | r21034 | |
|---|---|---|
| 32 | 32 | |
| 33 | 33 | void stfight_state::palette_init() |
| 34 | 34 | { |
| 35 | const UINT8 *color_prom = m | |
| 35 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 36 | 36 | int i; |
| 37 | 37 | |
| 38 | 38 | /* allocate the colortable */ |
| r21033 | r21034 | |
| 96 | 96 | |
| 97 | 97 | TILE_GET_INFO_MEMBER(stfight_state::get_fg_tile_info) |
| 98 | 98 | { |
| 99 | UINT8 *fgMap = m | |
| 99 | UINT8 *fgMap = memregion("gfx5")->base(); | |
| 100 | 100 | int attr,tile_base; |
| 101 | 101 | |
| 102 | 102 | attr = fgMap[0x8000+tile_index]; |
| r21033 | r21034 | |
| 119 | 119 | |
| 120 | 120 | TILE_GET_INFO_MEMBER(stfight_state::get_bg_tile_info) |
| 121 | 121 | { |
| 122 | UINT8 *bgMap = m | |
| 122 | UINT8 *bgMap = memregion("gfx6")->base(); | |
| 123 | 123 | int attr,tile_bank,tile_base; |
| 124 | 124 | |
| 125 | 125 | attr = bgMap[0x8000+tile_index]; |
| r21033 | r21034 | |
|---|---|---|
| 423 | 423 | { |
| 424 | 424 | int i; |
| 425 | 425 | |
| 426 | int beamx = ((machine().root_device().ioport("AN0")->read() & 0xff) * (HBSTART - HBEND)) >> 8; | |
| 427 | int beamy = ((machine().root_device().ioport("AN1")->read() & 0xff) * (VBSTART - VBEND)) >> 8; | |
| 426 | int beamx = ((ioport("AN0")->read() & 0xff) * (HBSTART - HBEND)) >> 8; | |
| 427 | int beamy = ((ioport("AN1")->read() & 0xff) * (VBSTART - VBEND)) >> 8; | |
| 428 | 428 | |
| 429 | 429 | /* The timing of this FIRQ is very important. The games look for an FIRQ |
| 430 | 430 | and then wait about 650 cycles, clear the old FIRQ, and wait a |
| r21033 | r21034 | |
|---|---|---|
| 41 | 41 | |
| 42 | 42 | void sonson_state::palette_init() |
| 43 | 43 | { |
| 44 | const UINT8 *color_prom = m | |
| 44 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 45 | 45 | int i; |
| 46 | 46 | |
| 47 | 47 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 32 | 32 | ***************************************************************************/ |
| 33 | 33 | void pingpong_state::palette_init() |
| 34 | 34 | { |
| 35 | const UINT8 *color_prom = m | |
| 35 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 36 | 36 | int i; |
| 37 | 37 | |
| 38 | 38 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 4 | 4 | |
| 5 | 5 | void pcktgal_state::palette_init() |
| 6 | 6 | { |
| 7 | const UINT8 *color_prom = m | |
| 7 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 8 | 8 | int i; |
| 9 | 9 | |
| 10 | 10 | for (i = 0;i < machine().total_colors();i++) |
| r21033 | r21034 | |
|---|---|---|
| 12 | 12 | |
| 13 | 13 | void retofinv_state::palette_init() |
| 14 | 14 | { |
| 15 | const UINT8 *color_prom = m | |
| 15 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 16 | 16 | int i; |
| 17 | 17 | |
| 18 | 18 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 30 | 30 | |
| 31 | 31 | PALETTE_INIT_MEMBER(btime_state,btime) |
| 32 | 32 | { |
| 33 | const UINT8 *color_prom = m | |
| 33 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 34 | 34 | int i; |
| 35 | 35 | |
| 36 | 36 | |
| r21033 | r21034 | |
| 81 | 81 | |
| 82 | 82 | PALETTE_INIT_MEMBER(btime_state,lnc) |
| 83 | 83 | { |
| 84 | const UINT8 *color_prom = m | |
| 84 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 85 | 85 | int i; |
| 86 | 86 | |
| 87 | 87 | for (i = 0; i < machine().total_colors(); i++) |
| r21033 | r21034 | |
|---|---|---|
| 4 | 4 | |
| 5 | 5 | void bogeyman_state::palette_init() |
| 6 | 6 | { |
| 7 | const UINT8 *color_prom = m | |
| 7 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 8 | 8 | int i; |
| 9 | 9 | |
| 10 | 10 | /* first 16 colors are RAM */ |
| r21033 | r21034 | |
|---|---|---|
| 16 | 16 | |
| 17 | 17 | PALETTE_INIT_MEMBER(madalien_state,madalien) |
| 18 | 18 | { |
| 19 | const UINT8 *color_prom = m | |
| 19 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 20 | 20 | int i; |
| 21 | 21 | |
| 22 | 22 | /* allocate the colortable */ |
| r21033 | r21034 | |
| 248 | 248 | |
| 249 | 249 | UINT32 madalien_state::screen_update_madalien(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| 250 | 250 | { |
| 251 | int flip = BIT( | |
| 251 | int flip = BIT(ioport("DSW")->read(), 6) && BIT(*m_video_control, 0); | |
| 252 | 252 | |
| 253 | 253 | // bits #0 and #1 define scrolling mode |
| 254 | 254 | // |
| r21033 | r21034 | |
|---|---|---|
| 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; | |
| 17 | tileno = memregion("user1")->base()[tile_index]; | |
| 18 | palno = 0x18; //memregion("user2")->base()[tile_index] >> 3; | |
| 19 | 19 | SET_TILE_INFO_MEMBER(2, tileno, palno, 0); |
| 20 | 20 | } |
| 21 | 21 | |
| r21033 | r21034 | |
| 39 | 39 | |
| 40 | 40 | void fcombat_state::palette_init() |
| 41 | 41 | { |
| 42 | const UINT8 *color_prom = m | |
| 42 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 43 | 43 | int i; |
| 44 | 44 | |
| 45 | 45 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 36 | 36 | |
| 37 | 37 | void firetrap_state::palette_init() |
| 38 | 38 | { |
| 39 | const UINT8 *color_prom = m | |
| 39 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 40 | 40 | int i; |
| 41 | 41 | |
| 42 | 42 |
| r21033 | r21034 | |
|---|---|---|
| 12 | 12 | |
| 13 | 13 | void marineb_state::palette_init() |
| 14 | 14 | { |
| 15 | const UINT8 *color_prom = m | |
| 15 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 16 | 16 | int i; |
| 17 | 17 | |
| 18 | 18 | for (i = 0; i < machine().total_colors(); i++) |
| r21033 | r21034 | |
|---|---|---|
| 39 | 39 | |
| 40 | 40 | void timeplt_state::palette_init() |
| 41 | 41 | { |
| 42 | const UINT8 *color_prom = m | |
| 42 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 43 | 43 | rgb_t palette[32]; |
| 44 | 44 | int i; |
| 45 | 45 |
| r21033 | r21034 | |
|---|---|---|
| 20 | 20 | |
| 21 | 21 | void ambush_state::palette_init() |
| 22 | 22 | { |
| 23 | const UINT8 *color_prom = m | |
| 23 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 24 | 24 | int i; |
| 25 | 25 | |
| 26 | 26 | for (i = 0; i < machine().total_colors(); i++) |
| r21033 | r21034 | |
|---|---|---|
| 5 | 5 | |
| 6 | 6 | void bladestl_state::palette_init() |
| 7 | 7 | { |
| 8 | const UINT8 *color_prom = m | |
| 8 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 9 | 9 | int i; |
| 10 | 10 | |
| 11 | 11 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 25 | 25 | |
| 26 | 26 | void gaplus_state::palette_init() |
| 27 | 27 | { |
| 28 | const UINT8 *color_prom = m | |
| 28 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 29 | 29 | int i; |
| 30 | 30 | |
| 31 | 31 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 50 | 50 | |
| 51 | 51 | PALETTE_INIT_MEMBER(funworld_state,funworld) |
| 52 | 52 | { |
| 53 | const UINT8 *color_prom = m | |
| 53 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 54 | 54 | int i; |
| 55 | 55 | static const int resistances_rb[3] = { 1000, 470, 220 }; |
| 56 | 56 | static const int resistances_g [2] = { 470, 220 }; |
| r21033 | r21034 | |
|---|---|---|
| 143 | 143 | { |
| 144 | 144 | m_gfxrom = (data & 0x0f); |
| 145 | 145 | |
| 146 | if ((0x20000 * m_gfxrom) > (m | |
| 146 | if ((0x20000 * m_gfxrom) > (memregion("gfx")->bytes() - 1)) | |
| 147 | 147 | { |
| 148 | 148 | #ifdef MAME_DEBUG |
| 149 | 149 | popmessage("GFXROM BANK OVER!!"); |
| 150 | 150 | #endif |
| 151 | m_gfxrom &= (m | |
| 151 | m_gfxrom &= (memregion("gfx")->bytes() / 0x20000 - 1); | |
| 152 | 152 | } |
| 153 | 153 | } |
| 154 | 154 | |
| r21033 | r21034 | |
| 247 | 247 | { |
| 248 | 248 | for (x = startx, ctrx = sizex; ctrx >= 0; x += skipx, ctrx--) |
| 249 | 249 | { |
| 250 | if ((gfxaddr > (m | |
| 250 | if ((gfxaddr > (memregion("gfx")->bytes() - 1))) | |
| 251 | 251 | { |
| 252 | 252 | #ifdef MAME_DEBUG |
| 253 | 253 | popmessage("GFXROM ADDRESS OVER!!"); |
| 254 | 254 | #endif |
| 255 | gfxaddr &= (m | |
| 255 | gfxaddr &= (memregion("gfx")->bytes() - 1); | |
| 256 | 256 | } |
| 257 | 257 | |
| 258 | 258 | color = GFX[gfxaddr++]; |
| r21033 | r21034 | |
|---|---|---|
| 111 | 111 | |
| 112 | 112 | PALETTE_INIT_MEMBER(tx1_state,tx1) |
| 113 | 113 | { |
| 114 | const UINT8 *color_prom = m | |
| 114 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 115 | 115 | int i; |
| 116 | 116 | |
| 117 | 117 | static const res_net_info tx1_net_info = |
| r21033 | r21034 | |
| 1243 | 1243 | |
| 1244 | 1244 | PALETTE_INIT_MEMBER(tx1_state,buggyboy) |
| 1245 | 1245 | { |
| 1246 | const UINT8 *color_prom = m | |
| 1246 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 1247 | 1247 | int i; |
| 1248 | 1248 | |
| 1249 | 1249 | for (i = 0; i < 0x100; i++) |
| r21033 | r21034 | |
|---|---|---|
| 14 | 14 | |
| 15 | 15 | void ssozumo_state::palette_init() |
| 16 | 16 | { |
| 17 | const UINT8 *color_prom = m | |
| 17 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 18 | 18 | int bit0, bit1, bit2, bit3, r, g, b; |
| 19 | 19 | int i; |
| 20 | 20 |
| r21033 | r21034 | |
|---|---|---|
| 58 | 58 | |
| 59 | 59 | void naughtyb_state::palette_init() |
| 60 | 60 | { |
| 61 | const UINT8 *color_prom = m | |
| 61 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 62 | 62 | static const int resistances[2] = { 270, 130 }; |
| 63 | 63 | double weights[2]; |
| 64 | 64 | int i; |
| r21033 | r21034 | |
|---|---|---|
| 22 | 22 | |
| 23 | 23 | void contra_state::palette_init() |
| 24 | 24 | { |
| 25 | const UINT8 *color_prom = m | |
| 25 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 26 | 26 | int chip; |
| 27 | 27 | |
| 28 | 28 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 27 | 27 | |
| 28 | 28 | void dcheese_state::palette_init() |
| 29 | 29 | { |
| 30 | const UINT16 *src = (UINT16 *)m | |
| 30 | const UINT16 *src = (UINT16 *)memregion("user1")->base(); | |
| 31 | 31 | int i; |
| 32 | 32 | |
| 33 | 33 | /* really 65536 colors, but they don't use the later ones so we can stay */ |
| r21033 | r21034 | |
|---|---|---|
| 11 | 11 | |
| 12 | 12 | void ultratnk_state::palette_init() |
| 13 | 13 | { |
| 14 | const UINT8 *color_prom = m | |
| 14 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 15 | 15 | /* allocate the colortable */ |
| 16 | 16 | machine().colortable = colortable_alloc(machine(), 4); |
| 17 | 17 |
| r21033 | r21034 | |
|---|---|---|
| 5 | 5 | /* Similar as Iron Horse */ |
| 6 | 6 | void scotrsht_state::palette_init() |
| 7 | 7 | { |
| 8 | const UINT8 *color_prom = m | |
| 8 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 9 | 9 | int i; |
| 10 | 10 | |
| 11 | 11 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 18 | 18 | |
| 19 | 19 | void mouser_state::palette_init() |
| 20 | 20 | { |
| 21 | const UINT8 *color_prom = m | |
| 21 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 22 | 22 | int i; |
| 23 | 23 | |
| 24 | 24 | for (i = 0; i < machine().total_colors(); i++) |
| r21033 | r21034 | |
|---|---|---|
| 16 | 16 | |
| 17 | 17 | void playch10_state::palette_init() |
| 18 | 18 | { |
| 19 | const UINT8 *color_prom = m | |
| 19 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 20 | 20 | ppu2c0x_device *ppu = machine().device<ppu2c0x_device>("ppu"); |
| 21 | 21 | int i; |
| 22 | 22 |
| r21033 | r21034 | |
|---|---|---|
| 34 | 34 | |
| 35 | 35 | void brkthru_state::palette_init() |
| 36 | 36 | { |
| 37 | const UINT8 *color_prom = m | |
| 37 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 38 | 38 | int i; |
| 39 | 39 | |
| 40 | 40 | for (i = 0; i < machine().total_colors(); i++) |
| r21033 | r21034 | |
|---|---|---|
| 17 | 17 | |
| 18 | 18 | void zaxxon_state::palette_init() |
| 19 | 19 | { |
| 20 | const UINT8 *color_prom = m | |
| 20 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 21 | 21 | static const int resistances[3] = { 1000, 470, 220 }; |
| 22 | 22 | double rweights[3], gweights[3], bweights[2]; |
| 23 | 23 | int i; |
| r21033 | r21034 | |
| 68 | 68 | |
| 69 | 69 | TILE_GET_INFO_MEMBER(zaxxon_state::get_bg_tile_info) |
| 70 | 70 | { |
| 71 | const UINT8 *source = machine().root_device().memregion("tilemap_dat")->base(); | |
| 72 | int size = machine().root_device().memregion("tilemap_dat")->bytes() / 2; | |
| 71 | const UINT8 *source = memregion("tilemap_dat")->base(); | |
| 72 | int size = memregion("tilemap_dat")->bytes() / 2; | |
| 73 | 73 | int eff_index = tile_index & (size - 1); |
| 74 | 74 | int code = source[eff_index] + 256 * (source[eff_index + size] & 3); |
| 75 | 75 | int color = source[eff_index + size] >> 4; |
| r21033 | r21034 | |
|---|---|---|
| 652 | 652 | // color prom |
| 653 | 653 | PALETTE_INIT_MEMBER(seta_state,inttoote) |
| 654 | 654 | { |
| 655 | const UINT8 *color_prom = m | |
| 655 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 656 | 656 | int x; |
| 657 | 657 | for (x = 0; x < 0x200 ; x++) |
| 658 | 658 | { |
| r21033 | r21034 | |
| 671 | 671 | |
| 672 | 672 | PALETTE_INIT_MEMBER(seta_state,usclssic) |
| 673 | 673 | { |
| 674 | const UINT8 *color_prom = m | |
| 674 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 675 | 675 | int color, pen; |
| 676 | 676 | int x; |
| 677 | 677 |
| r21033 | r21034 | |
|---|---|---|
| 32 | 32 | |
| 33 | 33 | PALETTE_INIT_MEMBER(tnzs_state,arknoid2) |
| 34 | 34 | { |
| 35 | const UINT8 *color_prom = m | |
| 35 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 36 | 36 | int i, col; |
| 37 | 37 | |
| 38 | 38 | for (i = 0; i < machine().total_colors(); i++) |
| r21033 | r21034 | |
|---|---|---|
| 43 | 43 | */ |
| 44 | 44 | void tp84_state::palette_init() |
| 45 | 45 | { |
| 46 | const UINT8 *color_prom = m | |
| 46 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 47 | 47 | static const int resistances[4] = { 1000, 470, 220, 100 }; |
| 48 | 48 | double weights[4]; |
| 49 | 49 | int i; |
| r21033 | r21034 | |
|---|---|---|
| 38 | 38 | |
| 39 | 39 | void karnov_state::palette_init() |
| 40 | 40 | { |
| 41 | const UINT8 *color_prom = m | |
| 41 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 42 | 42 | int i; |
| 43 | 43 | |
| 44 | 44 | for (i = 0; i < machine().total_colors(); i++) |
| r21033 | r21034 | |
|---|---|---|
| 36 | 36 | |
| 37 | 37 | void exerion_state::palette_init() |
| 38 | 38 | { |
| 39 | const UINT8 *color_prom = m | |
| 39 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 40 | 40 | static const int resistances_rg[3] = { 1000, 470, 220 }; |
| 41 | 41 | static const int resistances_b [2] = { 470, 220 }; |
| 42 | 42 | double rweights[3], gweights[3], bweights[2]; |
| r21033 | r21034 | |
|---|---|---|
| 688 | 688 | { |
| 689 | 689 | /* THIS CODE SHOULD NOT BE IN SCREEN UPDATE !! */ |
| 690 | 690 | |
| 691 | if (0xc0 != ( | |
| 691 | if (0xc0 != (ioport("IN2")->read() & 0xc0)) /* coin slots assert an NMI */ | |
| 692 | 692 | m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE); |
| 693 | 693 | |
| 694 | 694 | if (0 == (m_watchdog_flip & 0x04)) |
| r21033 | r21034 | |
|---|---|---|
| 437 | 437 | // reference: 223e5c in gaiapolis (ROMs 34j and 36m) |
| 438 | 438 | READ16_MEMBER(mystwarr_state::gai_053936_tilerom_0_r) |
| 439 | 439 | { |
| 440 | UINT8 *ROM1 = (UINT8 *)machine().root_device().memregion("gfx4")->base(); | |
| 441 | UINT8 *ROM2 = (UINT8 *)machine().root_device().memregion("gfx4")->base(); | |
| 440 | UINT8 *ROM1 = (UINT8 *)memregion("gfx4")->base(); | |
| 441 | UINT8 *ROM2 = (UINT8 *)memregion("gfx4")->base(); | |
| 442 | 442 | |
| 443 | 443 | ROM1 += 0x20000; |
| 444 | 444 | ROM2 += 0x20000+0x40000; |
| r21033 | r21034 | |
| 448 | 448 | |
| 449 | 449 | READ16_MEMBER(mystwarr_state::ddd_053936_tilerom_0_r) |
| 450 | 450 | { |
| 451 | UINT8 *ROM1 = (UINT8 *)machine().root_device().memregion("gfx4")->base(); | |
| 452 | UINT8 *ROM2 = (UINT8 *)machine().root_device().memregion("gfx4")->base(); | |
| 451 | UINT8 *ROM1 = (UINT8 *)memregion("gfx4")->base(); | |
| 452 | UINT8 *ROM2 = (UINT8 *)memregion("gfx4")->base(); | |
| 453 | 453 | |
| 454 | 454 | ROM2 += 0x40000; |
| 455 | 455 | |
| r21033 | r21034 | |
| 459 | 459 | // reference: 223e1a in gaiapolis (ROM 36j) |
| 460 | 460 | READ16_MEMBER(mystwarr_state::ddd_053936_tilerom_1_r) |
| 461 | 461 | { |
| 462 | UINT8 *ROM = (UINT8 *)m | |
| 462 | UINT8 *ROM = (UINT8 *)memregion("gfx4")->base(); | |
| 463 | 463 | |
| 464 | 464 | return ROM[offset/2]; |
| 465 | 465 | } |
| r21033 | r21034 | |
| 467 | 467 | // reference: 223db0 in gaiapolis (ROMs 32n, 29n, 26n) |
| 468 | 468 | READ16_MEMBER(mystwarr_state::gai_053936_tilerom_2_r) |
| 469 | 469 | { |
| 470 | UINT8 *ROM = (UINT8 *)m | |
| 470 | UINT8 *ROM = (UINT8 *)memregion("gfx3")->base(); | |
| 471 | 471 | |
| 472 | 472 | offset += (m_roz_rombank * 0x100000); |
| 473 | 473 | |
| r21033 | r21034 | |
| 476 | 476 | |
| 477 | 477 | READ16_MEMBER(mystwarr_state::ddd_053936_tilerom_2_r) |
| 478 | 478 | { |
| 479 | UINT8 *ROM = (UINT8 *)m | |
| 479 | UINT8 *ROM = (UINT8 *)memregion("gfx3")->base(); | |
| 480 | 480 | |
| 481 | 481 | offset += (m_roz_rombank * 0x100000); |
| 482 | 482 |
| r21033 | r21034 | |
|---|---|---|
| 26 | 26 | |
| 27 | 27 | void _1942_state::palette_init() |
| 28 | 28 | { |
| 29 | const UINT8 *color_prom = m | |
| 29 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 30 | 30 | rgb_t palette[256]; |
| 31 | 31 | int i, colorbase; |
| 32 | 32 |
| r21033 | r21034 | |
|---|---|---|
| 26 | 26 | ***************************************************************************/ |
| 27 | 27 | PALETTE_INIT_MEMBER(xevious_state,xevious) |
| 28 | 28 | { |
| 29 | const UINT8 *color_prom = m | |
| 29 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 30 | 30 | int i; |
| 31 | 31 | #define TOTAL_COLORS(gfxn) (machine().gfx[gfxn]->colors() * machine().gfx[gfxn]->granularity()) |
| 32 | 32 | |
| r21033 | r21034 | |
| 100 | 100 | |
| 101 | 101 | PALETTE_INIT_MEMBER(xevious_state,battles) |
| 102 | 102 | { |
| 103 | const UINT8 *color_prom = m | |
| 103 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 104 | 104 | int i; |
| 105 | 105 | |
| 106 | 106 | machine().colortable = colortable_alloc(machine(), 128+1); |
| r21033 | r21034 | |
|---|---|---|
| 152 | 152 | 0020: 00 f0 f0 f0 b0 b0 00 f0 |
| 153 | 153 | 00 f0 f0 00 b0 00 f0 f0 |
| 154 | 154 | */ |
| 155 | //const UINT8 *color_prom = m | |
| 155 | //const UINT8 *color_prom = memregion( "proms" )->base(); | |
| 156 | 156 | int color; |
| 157 | 157 | int shade; |
| 158 | 158 | int i; |
| r21033 | r21034 | |
|---|---|---|
| 9 | 9 | |
| 10 | 10 | TILE_GET_INFO_MEMBER(sf_state::get_bg_tile_info) |
| 11 | 11 | { |
| 12 | UINT8 *base = m | |
| 12 | UINT8 *base = 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]; |
| r21033 | r21034 | |
| 22 | 22 | |
| 23 | 23 | TILE_GET_INFO_MEMBER(sf_state::get_fg_tile_info) |
| 24 | 24 | { |
| 25 | UINT8 *base = m | |
| 25 | UINT8 *base = 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]; |
| r21033 | r21034 | |
|---|---|---|
| 82 | 82 | /* fill the screen bitmap with the current picture */ |
| 83 | 83 | { |
| 84 | 84 | int i, j; |
| 85 | UINT8 *gfx = (UINT8 *)m | |
| 85 | UINT8 *gfx = (UINT8 *)memregion("gfx3")->base(); | |
| 86 | 86 | |
| 87 | 87 | gfx = gfx + (m_current_command & 0x07) * 0x10000 + (m_current_command & 0x08) * 0x10000 + 0x140; |
| 88 | 88 |
| r21033 | r21034 | |
|---|---|---|
| 12 | 12 | |
| 13 | 13 | void mustache_state::palette_init() |
| 14 | 14 | { |
| 15 | const UINT8 *color_prom = m | |
| 15 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 16 | 16 | int i; |
| 17 | 17 | |
| 18 | 18 | for (i = 0;i < 256;i++) |
| r21033 | r21034 | |
|---|---|---|
| 57 | 57 | |
| 58 | 58 | void snookr10_state::palette_init() |
| 59 | 59 | { |
| 60 | const UINT8 *color_prom = m | |
| 60 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 61 | 61 | /* GGBBBRRR */ |
| 62 | 62 | |
| 63 | 63 | int i; |
| r21033 | r21034 | |
| 117 | 117 | |
| 118 | 118 | PALETTE_INIT_MEMBER(snookr10_state,apple10) |
| 119 | 119 | { |
| 120 | const UINT8 *color_prom = m | |
| 120 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 121 | 121 | /* GGBBBRRR */ |
| 122 | 122 | |
| 123 | 123 | int i, cn; |
| r21033 | r21034 | |
|---|---|---|
| 1872 | 1872 | TILE_GET_INFO_MEMBER(konamigx_state::get_gx_psac3_tile_info) |
| 1873 | 1873 | { |
| 1874 | 1874 | int tileno, colour, flip; |
| 1875 | UINT8 *tmap = m | |
| 1875 | UINT8 *tmap = memregion("gfx4")->base(); | |
| 1876 | 1876 | |
| 1877 | 1877 | int base_index = tile_index; |
| 1878 | 1878 | |
| r21033 | r21034 | |
| 1893 | 1893 | TILE_GET_INFO_MEMBER(konamigx_state::get_gx_psac3_alt_tile_info) |
| 1894 | 1894 | { |
| 1895 | 1895 | int tileno, colour, flip; |
| 1896 | UINT8 *tmap = m | |
| 1896 | UINT8 *tmap = memregion("gfx4")->base()+0x20000; | |
| 1897 | 1897 | |
| 1898 | 1898 | int base_index = tile_index; |
| 1899 | 1899 |
| r21033 | r21034 | |
|---|---|---|
| 9 | 9 | |
| 10 | 10 | void sprcros2_state::palette_init() |
| 11 | 11 | { |
| 12 | const UINT8 *color_prom = m | |
| 12 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 13 | 13 | int i; |
| 14 | 14 | |
| 15 | 15 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 35 | 35 | |
| 36 | 36 | void bankp_state::palette_init() |
| 37 | 37 | { |
| 38 | const UINT8 *color_prom = m | |
| 38 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 39 | 39 | int i; |
| 40 | 40 | |
| 41 | 41 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 12 | 12 | |
| 13 | 13 | PALETTE_INIT_MEMBER(combatsc_state,combatsc) |
| 14 | 14 | { |
| 15 | const UINT8 *color_prom = m | |
| 15 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 16 | 16 | int pal; |
| 17 | 17 | |
| 18 | 18 | /* allocate the colortable */ |
| r21033 | r21034 | |
| 63 | 63 | |
| 64 | 64 | PALETTE_INIT_MEMBER(combatsc_state,combatscb) |
| 65 | 65 | { |
| 66 | const UINT8 *color_prom = m | |
| 66 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 67 | 67 | int pal; |
| 68 | 68 | |
| 69 | 69 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 4 | 4 | |
| 5 | 5 | void rockrage_state::palette_init() |
| 6 | 6 | { |
| 7 | const UINT8 *color_prom = m | |
| 7 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 8 | 8 | int i; |
| 9 | 9 | |
| 10 | 10 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 4 | 4 | |
| 5 | 5 | void mainsnk_state::palette_init() |
| 6 | 6 | { |
| 7 | const UINT8 *color_prom = m | |
| 7 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 8 | 8 | int i; |
| 9 | 9 | int num_colors = 0x400; |
| 10 | 10 |
| r21033 | r21034 | |
|---|---|---|
| 44 | 44 | |
| 45 | 45 | void mrdo_state::palette_init() |
| 46 | 46 | { |
| 47 | const UINT8 *color_prom = m | |
| 47 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 48 | 48 | int i; |
| 49 | 49 | |
| 50 | 50 | const int R1 = 150; |
| r21033 | r21034 | |
|---|---|---|
| 16 | 16 | |
| 17 | 17 | PALETTE_INIT_MEMBER(bosco_state,bosco) |
| 18 | 18 | { |
| 19 | const UINT8 *color_prom = m | |
| 19 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 20 | 20 | int i; |
| 21 | 21 | |
| 22 | 22 | machine().colortable = colortable_alloc(machine(), 32+64); |
| r21033 | r21034 | |
|---|---|---|
| 23 | 23 | |
| 24 | 24 | void pandoras_state::palette_init() |
| 25 | 25 | { |
| 26 | const UINT8 *color_prom = m | |
| 26 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 27 | 27 | static const int resistances_rg[3] = { 1000, 470, 220 }; |
| 28 | 28 | static const int resistances_b [2] = { 470, 220 }; |
| 29 | 29 | double rweights[3], gweights[3], bweights[2]; |
| r21033 | r21034 | |
|---|---|---|
| 312 | 312 | |
| 313 | 313 | PALETTE_INIT_MEMBER(homedata_state,mrokumei) |
| 314 | 314 | { |
| 315 | const UINT8 *color_prom = m | |
| 315 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 316 | 316 | int i; |
| 317 | 317 | |
| 318 | 318 | /* initialize 555 RGB palette */ |
| r21033 | r21034 | |
| 335 | 335 | |
| 336 | 336 | PALETTE_INIT_MEMBER(homedata_state,reikaids) |
| 337 | 337 | { |
| 338 | const UINT8 *color_prom = m | |
| 338 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 339 | 339 | int i; |
| 340 | 340 | |
| 341 | 341 | /* initialize 555 RGB palette */ |
| r21033 | r21034 | |
| 358 | 358 | |
| 359 | 359 | PALETTE_INIT_MEMBER(homedata_state,pteacher) |
| 360 | 360 | { |
| 361 | const UINT8 *color_prom = m | |
| 361 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 362 | 362 | int i; |
| 363 | 363 | |
| 364 | 364 | /* initialize 555 RGB palette */ |
| r21033 | r21034 | |
| 381 | 381 | |
| 382 | 382 | PALETTE_INIT_MEMBER(homedata_state,mirderby) |
| 383 | 383 | { |
| 384 | const UINT8 *color_prom = m | |
| 384 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 385 | 385 | int i; |
| 386 | 386 | |
| 387 | 387 | for (i = 0; i < 0x100; i++) |
| r21033 | r21034 | |
| 780 | 780 | |
| 781 | 781 | WRITE8_MEMBER(homedata_state::pteacher_blitter_start_w) |
| 782 | 782 | { |
| 783 | pteacher_handleblit(space, (m_blitter_bank >> 5) * 0x10000 & (m | |
| 783 | pteacher_handleblit(space, (m_blitter_bank >> 5) * 0x10000 & (memregion("user1")->bytes() - 1)); | |
| 784 | 784 | } |
| 785 | 785 | |
| 786 | 786 |
| r21033 | r21034 | |
|---|---|---|
| 39 | 39 | |
| 40 | 40 | TILE_GET_INFO_MEMBER(deadang_state::get_pf3_tile_info) |
| 41 | 41 | { |
| 42 | const UINT16 *bgMap = (const UINT16 *)m | |
| 42 | const UINT16 *bgMap = (const UINT16 *)memregion("gfx6")->base(); | |
| 43 | 43 | int code= bgMap[tile_index]; |
| 44 | 44 | SET_TILE_INFO_MEMBER(4,code&0x7ff,code>>12,0); |
| 45 | 45 | } |
| 46 | 46 | |
| 47 | 47 | TILE_GET_INFO_MEMBER(deadang_state::get_pf2_tile_info) |
| 48 | 48 | { |
| 49 | const UINT16 *bgMap = (const UINT16 *)m | |
| 49 | const UINT16 *bgMap = (const UINT16 *)memregion("gfx7")->base(); | |
| 50 | 50 | int code= bgMap[tile_index]; |
| 51 | 51 | SET_TILE_INFO_MEMBER(3,code&0x7ff,code>>12,0); |
| 52 | 52 | } |
| r21033 | r21034 | |
|---|---|---|
| 11 | 11 | |
| 12 | 12 | void hcastle_state::palette_init() |
| 13 | 13 | { |
| 14 | const UINT8 *color_prom = m | |
| 14 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 15 | 15 | int chip; |
| 16 | 16 | |
| 17 | 17 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 14 | 14 | |
| 15 | 15 | void jackal_state::palette_init() |
| 16 | 16 | { |
| 17 | const UINT8 *color_prom = m | |
| 17 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 18 | 18 | int i; |
| 19 | 19 | |
| 20 | 20 | /* allocate the colortable */ |
| r21033 | r21034 | |
| 62 | 62 | |
| 63 | 63 | TILE_GET_INFO_MEMBER(jackal_state::get_bg_tile_info) |
| 64 | 64 | { |
| 65 | UINT8 *RAM = m | |
| 65 | UINT8 *RAM = memregion("master")->base(); | |
| 66 | 66 | |
| 67 | 67 | int attr = RAM[0x2000 + tile_index]; |
| 68 | 68 | int code = RAM[0x2400 + tile_index] + ((attr & 0xc0) << 2) + ((attr & 0x30) << 6); |
| r21033 | r21034 | |
|---|---|---|
| 5 | 5 | |
| 6 | 6 | void fastlane_state::palette_init() |
| 7 | 7 | { |
| 8 | const UINT8 *color_prom = m | |
| 8 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 9 | 9 | int pal; |
| 10 | 10 | |
| 11 | 11 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 47 | 47 | |
| 48 | 48 | void _1943_state::palette_init() |
| 49 | 49 | { |
| 50 | const UINT8 *color_prom = m | |
| 50 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 51 | 51 | int i; |
| 52 | 52 | |
| 53 | 53 | /* allocate the colortable */ |
| r21033 | r21034 | |
| 163 | 163 | |
| 164 | 164 | TILE_GET_INFO_MEMBER(_1943_state::c1943_get_bg2_tile_info) |
| 165 | 165 | { |
| 166 | UINT8 *tilerom = m | |
| 166 | UINT8 *tilerom = memregion("gfx5")->base() + 0x8000; | |
| 167 | 167 | |
| 168 | 168 | int offs = tile_index * 2; |
| 169 | 169 | int attr = tilerom[offs + 1]; |
| r21033 | r21034 | |
| 176 | 176 | |
| 177 | 177 | TILE_GET_INFO_MEMBER(_1943_state::c1943_get_bg_tile_info) |
| 178 | 178 | { |
| 179 | UINT8 *tilerom = m | |
| 179 | UINT8 *tilerom = memregion("gfx5")->base(); | |
| 180 | 180 | |
| 181 | 181 | int offs = tile_index * 2; |
| 182 | 182 | int attr = tilerom[offs + 1]; |
| r21033 | r21034 | |
|---|---|---|
| 30 | 30 | ***************************************************************************/ |
| 31 | 31 | void suprloco_state::palette_init() |
| 32 | 32 | { |
| 33 | const UINT8 *color_prom = m | |
| 33 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 34 | 34 | int i; |
| 35 | 35 | |
| 36 | 36 | |
| r21033 | r21034 | |
| 200 | 200 | dy = -1; |
| 201 | 201 | } |
| 202 | 202 | |
| 203 | gfx2 = m | |
| 203 | gfx2 = memregion("gfx2")->base(); | |
| 204 | 204 | for (row = 0;row < height;row++,adjy+=dy) |
| 205 | 205 | { |
| 206 | 206 | int color1,color2,flipx; |
| r21033 | r21034 | |
|---|---|---|
| 146 | 146 | |
| 147 | 147 | PALETTE_INIT_MEMBER(jack_state,joinem) |
| 148 | 148 | { |
| 149 | const UINT8 *color_prom = m | |
| 149 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 150 | 150 | int i; |
| 151 | 151 | |
| 152 | 152 | for (i = 0; i < machine().total_colors(); i++) |
| r21033 | r21034 | |
|---|---|---|
| 32 | 32 | |
| 33 | 33 | void m57_state::palette_init() |
| 34 | 34 | { |
| 35 | const UINT8 *color_prom = m | |
| 35 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 36 | 36 | int i; |
| 37 | 37 | |
| 38 | 38 | machine().colortable = colortable_alloc(machine(), 32 * 8 + 16); |
| r21033 | r21034 | |
|---|---|---|
| 12 | 12 | |
| 13 | 13 | void cop01_state::palette_init() |
| 14 | 14 | { |
| 15 | const UINT8 *color_prom = m | |
| 15 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 16 | 16 | int i; |
| 17 | 17 | |
| 18 | 18 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 80 | 80 | #if 0 |
| 81 | 81 | PALETTE_INIT_MEMBER(fuuki16_state,fuuki16) |
| 82 | 82 | { |
| 83 | const UINT8 *color_prom = m | |
| 83 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 84 | 84 | int pen; |
| 85 | 85 | |
| 86 | 86 | /* The game does not initialise the palette at startup. It should |
| r21033 | r21034 | |
|---|---|---|
| 263 | 263 | |
| 264 | 264 | void metro_state::expand_gfx1() |
| 265 | 265 | { |
| 266 | UINT8 *base_gfx = machine().root_device().memregion("gfx1")->base(); | |
| 267 | UINT32 length = machine().root_device().memregion("gfx1")->bytes() * 2; | |
| 266 | UINT8 *base_gfx = memregion("gfx1")->base(); | |
| 267 | UINT32 length = memregion("gfx1")->bytes() * 2; | |
| 268 | 268 | |
| 269 | 269 | m_expanded_gfx1 = auto_alloc_array(machine(), UINT8, length); |
| 270 | 270 |
| r21033 | r21034 | |
|---|---|---|
| 28 | 28 | |
| 29 | 29 | void mikie_state::palette_init() |
| 30 | 30 | { |
| 31 | const UINT8 *color_prom = m | |
| 31 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 32 | 32 | static const int resistances[4] = { 2200, 1000, 470, 220 }; |
| 33 | 33 | double rweights[4], gweights[4], bweights[4]; |
| 34 | 34 | int i; |
| r21033 | r21034 | |
|---|---|---|
| 58 | 58 | |
| 59 | 59 | void drmicro_state::palette_init() |
| 60 | 60 | { |
| 61 | const UINT8 *color_prom = m | |
| 61 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 62 | 62 | int i; |
| 63 | 63 | |
| 64 | 64 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 66 | 66 | |
| 67 | 67 | void carpolo_state::palette_init() |
| 68 | 68 | { |
| 69 | const UINT8 *color_prom = m | |
| 69 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 70 | 70 | int i; |
| 71 | 71 | |
| 72 | 72 | /* thanks to Jarek Burczynski for analyzing the circuit */ |
| r21033 | r21034 | |
| 188 | 188 | |
| 189 | 189 | void carpolo_state::remap_sprite_code(int bank, int code, int *remapped_code, int *flipy) |
| 190 | 190 | { |
| 191 | UINT8* PROM = m | |
| 191 | UINT8* PROM = memregion("user1")->base(); | |
| 192 | 192 | |
| 193 | 193 | code = (bank << 4) | code; |
| 194 | 194 | *remapped_code = PROM[code] & 0x0f; |
| r21033 | r21034 | |
|---|---|---|
| 77 | 77 | |
| 78 | 78 | PALETTE_INIT_MEMBER(cosmic_state,panic) |
| 79 | 79 | { |
| 80 | const UINT8 *color_prom = m | |
| 80 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 81 | 81 | int i; |
| 82 | 82 | |
| 83 | 83 | /* allocate the colortable */ |
| r21033 | r21034 | |
| 119 | 119 | |
| 120 | 120 | PALETTE_INIT_MEMBER(cosmic_state,cosmica) |
| 121 | 121 | { |
| 122 | const UINT8 *color_prom = m | |
| 122 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 123 | 123 | int i; |
| 124 | 124 | |
| 125 | 125 | /* allocate the colortable */ |
| r21033 | r21034 | |
| 179 | 179 | |
| 180 | 180 | PALETTE_INIT_MEMBER(cosmic_state,magspot) |
| 181 | 181 | { |
| 182 | const UINT8 *color_prom = m | |
| 182 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 183 | 183 | int i; |
| 184 | 184 | |
| 185 | 185 | /* allocate the colortable */ |
| r21033 | r21034 | |
| 213 | 213 | |
| 214 | 214 | PALETTE_INIT_MEMBER(cosmic_state,nomnlnd) |
| 215 | 215 | { |
| 216 | const UINT8 *color_prom = m | |
| 216 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 217 | 217 | int i; |
| 218 | 218 | |
| 219 | 219 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 22 | 22 | |
| 23 | 23 | PALETTE_INIT_MEMBER(champbas_state,champbas) |
| 24 | 24 | { |
| 25 | const UINT8 *color_prom = m | |
| 25 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 26 | 26 | static const int resistances_rg[3] = { 1000, 470, 220 }; |
| 27 | 27 | static const int resistances_b [2] = { 470, 220 }; |
| 28 | 28 | double rweights[3], gweights[3], bweights[2]; |
| r21033 | r21034 | |
| 75 | 75 | |
| 76 | 76 | PALETTE_INIT_MEMBER(champbas_state,exctsccr) |
| 77 | 77 | { |
| 78 | const UINT8 *color_prom = m | |
| 78 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 79 | 79 | int i; |
| 80 | 80 | |
| 81 | 81 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 17 | 17 | |
| 18 | 18 | void baraduke_state::palette_init() |
| 19 | 19 | { |
| 20 | const UINT8 *color_prom = m | |
| 20 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 21 | 21 | int i; |
| 22 | 22 | int bit0,bit1,bit2,bit3,r,g,b; |
| 23 | 23 |
| r21033 | r21034 | |
|---|---|---|
| 118 | 118 | |
| 119 | 119 | VIDEO_START_MEMBER(namcofl_state,namcofl) |
| 120 | 120 | { |
| 121 | namco_tilemap_init(NAMCOFL_TILEGFX, m | |
| 121 | namco_tilemap_init(NAMCOFL_TILEGFX, memregion(NAMCOFL_TILEMASKREGION)->base(), TilemapCB ); | |
| 122 | 122 | c355_obj_init(NAMCOFL_SPRITEGFX,0x0,namcos2_shared_state::c355_obj_code2tile_delegate(FUNC(FLobjcode2tile), &machine())); |
| 123 | 123 | c169_roz_init(NAMCOFL_ROTGFX,NAMCOFL_ROTMASKREGION); |
| 124 | 124 | } |
| r21033 | r21034 | |
|---|---|---|
| 43 | 43 | ***************************************************************************/ |
| 44 | 44 | void matmania_state::palette_init() |
| 45 | 45 | { |
| 46 | const UINT8 *color_prom = m | |
| 46 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 47 | 47 | int i; |
| 48 | 48 | |
| 49 | 49 | for (i = 0; i < 64; i++) |
| r21033 | r21034 | |
|---|---|---|
| 744 | 744 | |
| 745 | 745 | PALETTE_INIT_MEMBER(megasys1_state,megasys1) |
| 746 | 746 | { |
| 747 | const UINT8 *color_prom = m | |
| 747 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 748 | 748 | int pri_code, offset, i, order; |
| 749 | 749 | |
| 750 | 750 | /* First check if we have an hand-crafted priority scheme |
| r21033 | r21034 | |
|---|---|---|
| 39 | 39 | int count; |
| 40 | 40 | int x,y,xi; |
| 41 | 41 | UINT8 pen; |
| 42 | static UINT8 *vram = m | |
| 42 | static UINT8 *vram = memregion("vram")->base(); | |
| 43 | 43 | |
| 44 | 44 | count = (0); |
| 45 | 45 |
| r21033 | r21034 | |
|---|---|---|
| 19 | 19 | |
| 20 | 20 | void wiping_state::palette_init() |
| 21 | 21 | { |
| 22 | const UINT8 *color_prom = m | |
| 22 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 23 | 23 | static const int resistances_rg[3] = { 1000, 470, 220 }; |
| 24 | 24 | static const int resistances_b [2] = { 470, 220 }; |
| 25 | 25 | double rweights[3], gweights[3], bweights[2]; |
| r21033 | r21034 | |
|---|---|---|
| 384 | 384 | { |
| 385 | 385 | int y; |
| 386 | 386 | |
| 387 | const UINT8 *bg_prom = machine().root_device().memregion("user1")->base(); | |
| 388 | const UINT8 *bg_gfx = machine().root_device().memregion("gfx1")->base(); | |
| 387 | const UINT8 *bg_prom = memregion("user1")->base(); | |
| 388 | const UINT8 *bg_gfx = memregion("gfx1")->base(); | |
| 389 | 389 | offs_t bg_gfx_bank_page_size = memregion("gfx1")->bytes() / 3; |
| 390 | 390 | offs_t char_bank = (((m_gfxbank >> 4) & 0x03) * 0x2000) & (bg_gfx_bank_page_size - 1); |
| 391 | 391 | offs_t prom_bank = ((m_gfxbank >> 3) & 0x01) * 0x2000; |
| r21033 | r21034 | |
| 452 | 452 | { |
| 453 | 453 | int y; |
| 454 | 454 | |
| 455 | const UINT8 *bg_gfx = m | |
| 455 | const UINT8 *bg_gfx = memregion("gfx1")->base(); | |
| 456 | 456 | offs_t bg_gfx_bank_page_size = memregion("gfx1")->bytes() / 6; |
| 457 | 457 | offs_t bg_gfx_offs_mask = bg_gfx_bank_page_size - 1; |
| 458 | 458 |
| r21033 | r21034 | |
|---|---|---|
| 42 | 42 | |
| 43 | 43 | PALETTE_INIT_MEMBER(clshroad_state,clshroad) |
| 44 | 44 | { |
| 45 | const UINT8 *color_prom = m | |
| 45 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 46 | 46 | int i; |
| 47 | 47 | for (i = 0;i < 256;i++) |
| 48 | 48 | palette_set_color_rgb(machine(),i, pal4bit(color_prom[i + 256 * 0]), |
| r21033 | r21034 | |
| 52 | 52 | |
| 53 | 53 | PALETTE_INIT_MEMBER(clshroad_state,firebatl) |
| 54 | 54 | { |
| 55 | const UINT8 *color_prom = m | |
| 55 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 56 | 56 | int i; |
| 57 | 57 | |
| 58 | 58 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 114 | 114 | |
| 115 | 115 | void popeye_state::palette_init() |
| 116 | 116 | { |
| 117 | const UINT8 *color_prom = m | |
| 117 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 118 | 118 | m_invertmask = 0xff; |
| 119 | 119 | |
| 120 | 120 | convert_color_prom(color_prom); |
| r21033 | r21034 | |
| 122 | 122 | |
| 123 | 123 | PALETTE_INIT_MEMBER(popeye_state,popeyebl) |
| 124 | 124 | { |
| 125 | const UINT8 *color_prom = m | |
| 125 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 126 | 126 | m_invertmask = 0x00; |
| 127 | 127 | |
| 128 | 128 | convert_color_prom(color_prom); |
| r21033 | r21034 | |
|---|---|---|
| 536 | 536 | draw_sprites(bitmap, cliprect); |
| 537 | 537 | |
| 538 | 538 | /* Flipscreen appears hardwired to the dipswitch - strange */ |
| 539 | if ( | |
| 539 | if (ioport("DSW")->read() & 0x100) | |
| 540 | 540 | flip_screen_set(0); |
| 541 | 541 | else |
| 542 | 542 | flip_screen_set(1); |
| r21033 | r21034 | |
| 553 | 553 | ppan_draw_sprites(bitmap, cliprect); |
| 554 | 554 | |
| 555 | 555 | /* Flipscreen appears hardwired to the dipswitch - strange */ |
| 556 | if ( | |
| 556 | if (ioport("DSW")->read() & 0x100) | |
| 557 | 557 | flip_screen_set(0); |
| 558 | 558 | else |
| 559 | 559 | flip_screen_set(1); |
| r21033 | r21034 | |
|---|---|---|
| 21 | 21 | |
| 22 | 22 | void m58_state::palette_init() |
| 23 | 23 | { |
| 24 | const UINT8 *color_prom = m | |
| 24 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 25 | 25 | const UINT8 *char_lopal = color_prom + 0x000; |
| 26 | 26 | const UINT8 *char_hipal = color_prom + 0x100; |
| 27 | 27 | const UINT8 *sprite_pal = color_prom + 0x200; |
| r21033 | r21034 | |
|---|---|---|
| 239 | 239 | |
| 240 | 240 | UINT32 n8080_state::screen_update_helifire(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| 241 | 241 | { |
| 242 | int SUN_BRIGHTNESS = machine().root_device().ioport("POT0")->read(); | |
| 243 | int SEA_BRIGHTNESS = machine().root_device().ioport("POT1")->read(); | |
| 242 | int SUN_BRIGHTNESS = ioport("POT0")->read(); | |
| 243 | int SEA_BRIGHTNESS = ioport("POT1")->read(); | |
| 244 | 244 | |
| 245 | 245 | static const int wave[8] = { 0, 1, 2, 2, 2, 1, 0, 0 }; |
| 246 | 246 |
| r21033 | r21034 | |
|---|---|---|
| 31 | 31 | |
| 32 | 32 | void espial_state::palette_init() |
| 33 | 33 | { |
| 34 | const UINT8 *color_prom = m | |
| 34 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 35 | 35 | int i; |
| 36 | 36 | |
| 37 | 37 | for (i = 0; i < machine().total_colors(); i++) |
| r21033 | r21034 | |
|---|---|---|
| 14 | 14 | |
| 15 | 15 | void grchamp_state::palette_init() |
| 16 | 16 | { |
| 17 | const UINT8 *color_prom = m | |
| 17 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 18 | 18 | static const int resistances[3] = { 100, 270, 470 }; |
| 19 | 19 | double rweights[3], gweights[3], bweights[2]; |
| 20 | 20 | int i; |
| r21033 | r21034 | |
| 238 | 238 | |
| 239 | 239 | |
| 240 | 240 | */ |
| 241 | const UINT8 *prom = m | |
| 241 | const UINT8 *prom = memregion("proms")->base() + 0x20; | |
| 242 | 242 | gfx_element *gfx; |
| 243 | 243 | int change = (m_cpu0_out[0] & 0x20) << 3; |
| 244 | 244 | int num; |
| r21033 | r21034 | |
| 356 | 356 | MAKE_RGB(RGB_MAX,RGB_MAX,RGB_MAX) |
| 357 | 357 | }; |
| 358 | 358 | |
| 359 | const UINT8 *amedata = machine().root_device().memregion("gfx5")->base(); | |
| 360 | const UINT8 *headdata = machine().root_device().memregion("gfx6")->base(); | |
| 359 | const UINT8 *amedata = memregion("gfx5")->base(); | |
| 360 | const UINT8 *headdata = memregion("gfx6")->base(); | |
| 361 | 361 | const UINT8 *pldata = memregion("gfx7")->base(); |
| 362 | 362 | bitmap_ind16 &lpixmap = m_left_tilemap->pixmap(); |
| 363 | 363 | bitmap_ind16 &rpixmap = m_right_tilemap->pixmap(); |
| r21033 | r21034 | |
|---|---|---|
| 284 | 284 | |
| 285 | 285 | void carrera_state::palette_init() |
| 286 | 286 | { |
| 287 | const UINT8 *color_prom = m | |
| 287 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 288 | 288 | int br_bit0, br_bit1, bit0, bit1, r, g, b; |
| 289 | 289 | int i; |
| 290 | 290 |
| r21033 | r21034 | |
|---|---|---|
| 332 | 332 | |
| 333 | 333 | DRIVER_INIT_MEMBER(madmotor_state,madmotor) |
| 334 | 334 | { |
| 335 | UINT8 *rom = m | |
| 335 | UINT8 *rom = memregion("maincpu")->base(); | |
| 336 | 336 | int i; |
| 337 | 337 | |
| 338 | 338 | for (i = 0x00000;i < 0x80000;i++) |
| r21033 | r21034 | |
|---|---|---|
| 376 | 376 | /***************************************************************************/ |
| 377 | 377 | DRIVER_INIT_MEMBER(dcon_state,sdgndmps) |
| 378 | 378 | { |
| 379 | UINT16 *RAM = (UINT16 *)m | |
| 379 | UINT16 *RAM = (UINT16 *)memregion("maincpu")->base(); | |
| 380 | 380 | RAM[0x1356/2] = 0x4e71; /* beq -> nop */ |
| 381 | 381 | RAM[0x1358/2] = 0x4e71; |
| 382 | 382 |
| r21033 | r21034 | |
|---|---|---|
| 243 | 243 | |
| 244 | 244 | WRITE8_MEMBER(cshooter_state::bank_w) |
| 245 | 245 | { |
| 246 | membank("bank1")->set_base(&m | |
| 246 | membank("bank1")->set_base(&memregion("user1")->base()[0x4000*((data>>4)&3)]); | |
| 247 | 247 | } |
| 248 | 248 | |
| 249 | 249 | |
| r21033 | r21034 | |
| 667 | 667 | DRIVER_INIT_MEMBER(cshooter_state,cshooter) |
| 668 | 668 | { |
| 669 | 669 | /* temp so it boots */ |
| 670 | UINT8 *rom = m | |
| 670 | UINT8 *rom = memregion("maincpu")->base(); | |
| 671 | 671 | |
| 672 | 672 | rom[0xa2] = 0x00; |
| 673 | 673 | rom[0xa3] = 0x00; |
| 674 | 674 | rom[0xa4] = 0x00; |
| 675 | m | |
| 675 | membank("bank1")->set_base(&memregion("user1")->base()[0]); | |
| 676 | 676 | } |
| 677 | 677 | |
| 678 | 678 | DRIVER_INIT_MEMBER(cshooter_state,cshootere) |
| 679 | 679 | { |
| 680 | 680 | address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); |
| 681 | 681 | int A; |
| 682 | UINT8 *rom = m | |
| 682 | UINT8 *rom = memregion("maincpu")->base(); | |
| 683 | 683 | UINT8 *decrypt = auto_alloc_array(machine(), UINT8, 0x8000); |
| 684 | 684 | |
| 685 | 685 | space.set_decrypted_region(0x0000, 0x7fff, decrypt); |
| r21033 | r21034 | |
| 709 | 709 | rom[A] = BITSWAP8(rom[A],7,6,1,4,3,2,5,0); |
| 710 | 710 | } |
| 711 | 711 | |
| 712 | m | |
| 712 | membank("bank1")->set_base(&memregion("user1")->base()[0]); | |
| 713 | 713 | seibu_sound_decrypt(machine(),"audiocpu",0x2000); |
| 714 | 714 | } |
| 715 | 715 |
| r21033 | r21034 | |
|---|---|---|
| 274 | 274 | |
| 275 | 275 | void d9final_state::machine_reset() |
| 276 | 276 | { |
| 277 | UINT8 *ROM = m | |
| 277 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 278 | 278 | |
| 279 | m | |
| 279 | membank("bank1")->set_base(&ROM[0x10000]); | |
| 280 | 280 | } |
| 281 | 281 | |
| 282 | 282 | static MACHINE_CONFIG_START( d9final, d9final_state ) |
| r21033 | r21034 | |
|---|---|---|
| 6339 | 6339 | |
| 6340 | 6340 | DRIVER_INIT_MEMBER(metro_state,dharmak) |
| 6341 | 6341 | { |
| 6342 | UINT8 *src = m | |
| 6342 | UINT8 *src = memregion( "gfx1" )->base(); | |
| 6343 | 6343 | int i; |
| 6344 | 6344 | |
| 6345 | 6345 | for (i = 0; i < 0x200000; i += 4) |
| r21033 | r21034 | |
|---|---|---|
| 1066 | 1066 | offs_t i; |
| 1067 | 1067 | address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); |
| 1068 | 1068 | UINT8 *decrypted = auto_alloc_array(machine(), UINT8, 0x6000); |
| 1069 | UINT8 *rom = machine().root_device().memregion("maincpu")->base(); | |
| 1070 | UINT8 *table = machine().root_device().memregion("user1")->base(); | |
| 1069 | UINT8 *rom = memregion("maincpu")->base(); | |
| 1070 | UINT8 *table = memregion("user1")->base(); | |
| 1071 | 1071 | |
| 1072 | 1072 | space.set_decrypted_region(0x0000, 0x5fff, decrypted); |
| 1073 | 1073 |
| r21033 | r21034 | |
|---|---|---|
| 373 | 373 | |
| 374 | 374 | DRIVER_INIT_MEMBER(ttchamp_state,ttchamp) |
| 375 | 375 | { |
| 376 | UINT8 *ROM1 = machine().root_device().memregion("user1")->base(); | |
| 377 | machine().root_device().membank("bank1")->set_base(&ROM1[0x100000]); | |
| 378 | machine().root_device().membank("bank2")->set_base(&ROM1[0x180000]); | |
| 376 | UINT8 *ROM1 = memregion("user1")->base(); | |
| 377 | membank("bank1")->set_base(&ROM1[0x100000]); | |
| 378 | membank("bank2")->set_base(&ROM1[0x180000]); | |
| 379 | 379 | } |
| 380 | 380 | |
| 381 | 381 | GAME( 199?, ttchamp, 0, ttchamp, ttchamp, ttchamp_state, ttchamp, ROT0, "Gamart?", "Table Tennis Champions (set 1)", GAME_NOT_WORKING|GAME_NO_SOUND ) |
| r21033 | r21034 | |
|---|---|---|
| 900 | 900 | //AM_RANGE(0x2420, 0x2421) AM_WRITE(latch_ch2_w ) // oki |
| 901 | 901 | // if there is no OKI region disable writes here, the rom might be missing, so alert user |
| 902 | 902 | |
| 903 | UINT8 *okirom = m | |
| 903 | UINT8 *okirom = memregion( "msm6376" )->base(); | |
| 904 | 904 | |
| 905 | 905 | if (!okirom) { |
| 906 | 906 | machine().device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0x2420, 0x2421, write8_delegate(FUNC(maygay1b_state::m1ab_no_oki_w), this)); |
| r21033 | r21034 | |
| 908 | 908 | // print out the rom id / header info to give us some hints |
| 909 | 909 | // note this isn't always correct, alley cat has 'Calpsyo' still in the ident string? |
| 910 | 910 | { |
| 911 | UINT8 *cpu = m | |
| 911 | UINT8 *cpu = memregion( "maincpu" )->base(); | |
| 912 | 912 | int base = 0xff20; |
| 913 | 913 | for (int i=0;i<14;i++) |
| 914 | 914 | { |
| r21033 | r21034 | |
|---|---|---|
| 102 | 102 | |
| 103 | 103 | WRITE8_MEMBER(whitestar_state::bank_w) |
| 104 | 104 | { |
| 105 | membank("bank1")->set_base(m | |
| 105 | membank("bank1")->set_base(memregion("user1")->base() + (data & 0x1f) * 0x4000); | |
| 106 | 106 | } |
| 107 | 107 | |
| 108 | 108 | WRITE8_MEMBER(whitestar_state::dmd_bank_w) |
| 109 | 109 | { |
| 110 | membank("dmd_bank1")->set_base(m | |
| 110 | membank("dmd_bank1")->set_base(memregion("dmdcpu")->base() + (data & 0x1f) * 0x4000); | |
| 111 | 111 | } |
| 112 | 112 | |
| 113 | 113 | READ8_MEMBER(whitestar_state::dmd_latch_r) |
| r21033 | r21034 | |
| 174 | 174 | |
| 175 | 175 | void whitestar_state::machine_reset() |
| 176 | 176 | { |
| 177 | machine().root_device().membank("bank1")->set_base(machine().root_device().memregion("user1")->base()); | |
| 178 | machine().root_device().membank("dmd_bank1")->set_base(machine().root_device().memregion("dmdcpu")->base()); | |
| 177 | membank("bank1")->set_base(memregion("user1")->base()); | |
| 178 | membank("dmd_bank1")->set_base(memregion("dmdcpu")->base()); | |
| 179 | 179 | } |
| 180 | 180 | |
| 181 | 181 | DRIVER_INIT_MEMBER(whitestar_state,whitestar) |
| r21033 | r21034 | |
|---|---|---|
| 451 | 451 | DRIVER_INIT_MEMBER(asterix_state,asterix) |
| 452 | 452 | { |
| 453 | 453 | #if 0 |
| 454 | *(UINT16 *)(machine().root_device().memregion("maincpu")->base() + 0x07f34) = 0x602a; | |
| 455 | *(UINT16 *)(machine().root_device().memregion("maincpu")->base() + 0x00008) = 0x0400; | |
| 454 | *(UINT16 *)(memregion("maincpu")->base() + 0x07f34) = 0x602a; | |
| 455 | *(UINT16 *)(memregion("maincpu")->base() + 0x00008) = 0x0400; | |
| 456 | 456 | #endif |
| 457 | 457 | } |
| 458 | 458 |
| r21033 | r21034 | |
|---|---|---|
| 1020 | 1020 | |
| 1021 | 1021 | DRIVER_INIT_MEMBER(simpl156_state,simpl156) |
| 1022 | 1022 | { |
| 1023 | UINT8 *rom = machine().root_device().memregion("okimusic")->base(); | |
| 1024 | int length = machine().root_device().memregion("okimusic")->bytes(); | |
| 1023 | UINT8 *rom = memregion("okimusic")->base(); | |
| 1024 | int length = memregion("okimusic")->bytes(); | |
| 1025 | 1025 | UINT8 *buf1 = auto_alloc_array(machine(), UINT8, length); |
| 1026 | 1026 | |
| 1027 | 1027 | UINT32 x; |
| r21033 | r21034 | |
|---|---|---|
| 413 | 413 | DRIVER_INIT_MEMBER(battlnts_state,rackemup) |
| 414 | 414 | { |
| 415 | 415 | /* rearrange char ROM */ |
| 416 | shuffle(m | |
| 416 | shuffle(memregion("gfx1")->base(), memregion("gfx1")->bytes()); | |
| 417 | 417 | } |
| 418 | 418 | |
| 419 | 419 |
| r21033 | r21034 | |
|---|---|---|
| 491 | 491 | */ |
| 492 | 492 | |
| 493 | 493 | UINT32 i,j,jscr,romoffset; |
| 494 | UINT8 *multfish_gfx = m | |
| 494 | UINT8 *multfish_gfx = memregion("gfx")->base(); | |
| 495 | 495 | UINT8 *temprom = auto_alloc_array(machine(), UINT8, multfish_ROM_SIZE); |
| 496 | 496 | |
| 497 | 497 |
| r21033 | r21034 | |
|---|---|---|
| 168 | 168 | } |
| 169 | 169 | |
| 170 | 170 | m_cur_rombank = m_cur_rombank2 = 0; |
| 171 | membank("bank1")->set_base(m | |
| 171 | membank("bank1")->set_base(memregion("maincpu")->base()); | |
| 172 | 172 | |
| 173 | 173 | machine().gfx[2]->set_source(m_rambanks); |
| 174 | 174 | |
| r21033 | r21034 | |
| 359 | 359 | |
| 360 | 360 | //logerror("robs %d, %02x (%04x)\n", offset, data, space.device().safe_pc()); |
| 361 | 361 | m_cur_rombank = data; |
| 362 | membank("bank1")->set_base(m | |
| 362 | membank("bank1")->set_base(memregion("maincpu")->base() + 0x2000 * m_cur_rombank); | |
| 363 | 363 | } |
| 364 | 364 | } |
| 365 | 365 | |
| r21033 | r21034 | |
| 378 | 378 | //logerror("robs2 %02x (%04x)\n", data, space.device().safe_pc()); |
| 379 | 379 | |
| 380 | 380 | m_cur_rombank2 = data; |
| 381 | membank("bank6")->set_base(m | |
| 381 | membank("bank6")->set_base(memregion("slave")->base() + 0x4000 * m_cur_rombank2); | |
| 382 | 382 | } |
| 383 | 383 | } |
| 384 | 384 | |
| r21033 | r21034 | |
| 2651 | 2651 | v |= 1 << (7 - j); |
| 2652 | 2652 | tab[i] = v; |
| 2653 | 2653 | } |
| 2654 | p = m | |
| 2654 | p = memregion("maincpu")->base(); | |
| 2655 | 2655 | for (i = 0; i < 0x10000; i++) |
| 2656 | 2656 | { |
| 2657 | 2657 | *p = tab[*p]; |
| r21033 | r21034 | |
|---|---|---|
| 267 | 267 | |
| 268 | 268 | WRITE8_MEMBER(galpani2_state::galpani2_oki1_bank_w) |
| 269 | 269 | { |
| 270 | UINT8 *ROM = m | |
| 270 | UINT8 *ROM = memregion("oki1")->base(); | |
| 271 | 271 | logerror("%s : %s bank %08X\n",machine().describe_context(),tag(),data); |
| 272 | 272 | memcpy(ROM + 0x30000, ROM + 0x40000 + 0x10000 * (~data & 0xf), 0x10000); |
| 273 | 273 | } |
| r21033 | r21034 | |
|---|---|---|
| 669 | 669 | |
| 670 | 670 | void midqslvr_state::machine_reset() |
| 671 | 671 | { |
| 672 | machine().root_device().membank("bios_bank")->set_base(machine().root_device().memregion("bios")->base() + 0x70000); | |
| 673 | machine().root_device().membank("bios_ext1")->set_base(machine().root_device().memregion("bios")->base() + 0x60000); | |
| 674 | machine().root_device().membank("bios_ext2")->set_base(machine().root_device().memregion("bios")->base() + 0x64000); | |
| 675 | machine().root_device().membank("bios_ext3")->set_base(machine().root_device().memregion("bios")->base() + 0x68000); | |
| 676 | machine().root_device().membank("bios_ext4")->set_base(machine().root_device().memregion("bios")->base() + 0x6c000); | |
| 677 | machine().root_device().membank("video_bank1")->set_base(machine().root_device().memregion("video_bios")->base() + 0); | |
| 678 | machine().root_device().membank("video_bank2")->set_base(machine().root_device().memregion("video_bios")->base() + 0x4000); | |
| 672 | membank("bios_bank")->set_base(memregion("bios")->base() + 0x70000); | |
| 673 | membank("bios_ext1")->set_base(memregion("bios")->base() + 0x60000); | |
| 674 | membank("bios_ext2")->set_base(memregion("bios")->base() + 0x64000); | |
| 675 | membank("bios_ext3")->set_base(memregion("bios")->base() + 0x68000); | |
| 676 | membank("bios_ext4")->set_base(memregion("bios")->base() + 0x6c000); | |
| 677 | membank("video_bank1")->set_base(memregion("video_bios")->base() + 0); | |
| 678 | membank("video_bank2")->set_base(memregion("video_bios")->base() + 0x4000); | |
| 679 | 679 | } |
| 680 | 680 | |
| 681 | 681 | static MACHINE_CONFIG_START( midqslvr, midqslvr_state ) |
| r21033 | r21034 | |
|---|---|---|
| 172 | 172 | |
| 173 | 173 | WRITE8_MEMBER(sf_state::sound2_bank_w) |
| 174 | 174 | { |
| 175 | membank("bank1")->set_base(m | |
| 175 | membank("bank1")->set_base(memregion("audio2")->base() + 0x8000 * (data + 1)); | |
| 176 | 176 | } |
| 177 | 177 | |
| 178 | 178 |
| r21033 | r21034 | |
|---|---|---|
| 19 | 19 | |
| 20 | 20 | for (i = 0; i < 2; i++) |
| 21 | 21 | { |
| 22 | switch ( | |
| 22 | switch (ioport(portnames[i])->read()) | |
| 23 | 23 | { |
| 24 | 24 | case 0x01: m_gear[i] = 1; break; |
| 25 | 25 | case 0x02: m_gear[i] = 2; break; |
| r21033 | r21034 | |
| 30 | 30 | } |
| 31 | 31 | |
| 32 | 32 | /* watchdog is disabled during service mode */ |
| 33 | machine().watchdog_enable( | |
| 33 | machine().watchdog_enable(ioport("IN0")->read() & 0x20); | |
| 34 | 34 | } |
| 35 | 35 | |
| 36 | 36 |
| r21033 | r21034 | |
|---|---|---|
| 329 | 329 | |
| 330 | 330 | /* make a temporary copy of the character data */ |
| 331 | 331 | src = temp; |
| 332 | dst = machine().root_device().memregion("gfx1")->base(); | |
| 333 | length = machine().root_device().memregion("gfx1")->bytes(); | |
| 332 | dst = memregion("gfx1")->base(); | |
| 333 | length = memregion("gfx1")->bytes(); | |
| 334 | 334 | memcpy(src, dst, length); |
| 335 | 335 | |
| 336 | 336 | /* decode the characters */ |
| r21033 | r21034 | |
| 347 | 347 | |
| 348 | 348 | /* make a temporary copy of the sprite data */ |
| 349 | 349 | src = temp; |
| 350 | dst = machine().root_device().memregion("gfx2")->base(); | |
| 351 | length = machine().root_device().memregion("gfx2")->bytes(); | |
| 350 | dst = memregion("gfx2")->base(); | |
| 351 | length = memregion("gfx2")->bytes(); | |
| 352 | 352 | memcpy(src, dst, length); |
| 353 | 353 | |
| 354 | 354 | /* decode the sprites */ |
| r21033 | r21034 | |
| 368 | 368 | |
| 369 | 369 | /* make a temporary copy of the character data */ |
| 370 | 370 | src = temp; |
| 371 | dst = machine().root_device().memregion("gfx3")->base(); | |
| 372 | length = machine().root_device().memregion("gfx3")->bytes(); | |
| 371 | dst = memregion("gfx3")->base(); | |
| 372 | length = memregion("gfx3")->bytes(); | |
| 373 | 373 | memcpy(src, dst, length); |
| 374 | 374 | |
| 375 | 375 | /* decode the characters */ |
| r21033 | r21034 | |
| 387 | 387 | } |
| 388 | 388 | |
| 389 | 389 | src = temp; |
| 390 | dst = machine().root_device().memregion("user1")->base(); | |
| 391 | length = machine().root_device().memregion("user1")->bytes(); | |
| 390 | dst = memregion("user1")->base(); | |
| 391 | length = memregion("user1")->bytes(); | |
| 392 | 392 | memcpy(src, dst, length); |
| 393 | 393 | |
| 394 | 394 | for (oldaddr = 0; oldaddr < 32; oldaddr++) |
| r21033 | r21034 | |
| 399 | 399 | |
| 400 | 400 | |
| 401 | 401 | src = temp; |
| 402 | dst = machine().root_device().memregion("user2")->base(); | |
| 403 | length = machine().root_device().memregion("user2")->bytes(); | |
| 402 | dst = memregion("user2")->base(); | |
| 403 | length = memregion("user2")->bytes(); | |
| 404 | 404 | memcpy(src, dst, length); |
| 405 | 405 | |
| 406 | 406 | for (oldaddr = 0; oldaddr < 32; oldaddr++) |
| r21033 | r21034 | |
|---|---|---|
| 995 | 995 | // the eeprom contains the game ID, which must be valid for it to boot |
| 996 | 996 | // is there a way (key sequence) to reprogram it?? |
| 997 | 997 | // I bet the original sets need similar get further in their boot sequence |
| 998 | UINT8 *eeprom = (UINT8 *) m | |
| 998 | UINT8 *eeprom = (UINT8 *) memregion("eeprom")->base(); | |
| 999 | 999 | if (eeprom != NULL) |
| 1000 | 1000 | { |
| 1001 | size_t len = m | |
| 1001 | size_t len = memregion("eeprom")->bytes(); | |
| 1002 | 1002 | UINT8* temp = (UINT8*)auto_alloc_array(machine(), UINT8, len); |
| 1003 | 1003 | int i; |
| 1004 | 1004 | for (i = 0; i < len; i++) |
| r21033 | r21034 | |
|---|---|---|
| 992 | 992 | |
| 993 | 993 | READ32_MEMBER(seibuspi_state::soundrom_r) |
| 994 | 994 | { |
| 995 | UINT8 *sound = (UINT8*)machine().root_device().memregion("user2")->base(); | |
| 996 | UINT16 *sound16 = (UINT16*)machine().root_device().memregion("user2")->base(); | |
| 995 | UINT8 *sound = (UINT8*)memregion("user2")->base(); | |
| 996 | UINT16 *sound16 = (UINT16*)memregion("user2")->base(); | |
| 997 | 997 | |
| 998 | 998 | if (mem_mask == 0x000000ff) |
| 999 | 999 | { |
| r21033 | r21034 | |
| 2217 | 2217 | DRIVER_INIT_MEMBER(seibuspi_state,sys386f2) |
| 2218 | 2218 | { |
| 2219 | 2219 | int i, j; |
| 2220 | UINT16 *src = (UINT16 *)m | |
| 2220 | UINT16 *src = (UINT16 *)memregion("gfx3")->base(); | |
| 2221 | 2221 | UINT16 tmp[0x40 / 2], Offset; |
| 2222 | 2222 | |
| 2223 | 2223 | // sprite_reorder() only |
| 2224 | for(i = 0; i < m | |
| 2224 | for(i = 0; i < memregion("gfx3")->bytes() / 0x40; i++) | |
| 2225 | 2225 | { |
| 2226 | 2226 | memcpy(tmp, src, 0x40); |
| 2227 | 2227 |
| r21033 | r21034 | |
|---|---|---|
| 124 | 124 | { |
| 125 | 125 | device_t *device = machine().device("msm"); |
| 126 | 126 | int bankaddress; |
| 127 | UINT8 *ROM = m | |
| 127 | UINT8 *ROM = memregion("audiocpu")->base(); | |
| 128 | 128 | |
| 129 | 129 | /* the code writes either 2 or 3 in the bottom two bits */ |
| 130 | 130 | bankaddress = 0x10000 + (data & 0x01) * 0x4000; |
| 131 | m | |
| 131 | membank("bank3")->set_base(&ROM[bankaddress]); | |
| 132 | 132 | |
| 133 | 133 | msm5205_reset_w(device,data & 0x08); |
| 134 | 134 | } |
| r21033 | r21034 | |
|---|---|---|
| 519 | 519 | { |
| 520 | 520 | UINT8 *rom = memregion("user2")->base(); |
| 521 | 521 | |
| 522 | return rom[m_iop_romaddr & (m | |
| 522 | return rom[m_iop_romaddr & (memregion("user2")->bytes() - 1)]; | |
| 523 | 523 | } |
| 524 | 524 | |
| 525 | 525 | |
| r21033 | r21034 | |
| 1177 | 1177 | UINT16 *rom; |
| 1178 | 1178 | |
| 1179 | 1179 | /* decrypt the main program ROMs */ |
| 1180 | rom = (UINT16 *)machine().root_device().memregion("user1")->base(); | |
| 1181 | len = machine().root_device().memregion("user1")->bytes(); | |
| 1180 | rom = (UINT16 *)memregion("user1")->base(); | |
| 1181 | len = memregion("user1")->bytes(); | |
| 1182 | 1182 | for (a = 0;a < len/2;a++) |
| 1183 | 1183 | { |
| 1184 | 1184 | int hi,lo,nhi,nlo; |
| r21033 | r21034 | |
| 1201 | 1201 | } |
| 1202 | 1202 | |
| 1203 | 1203 | /* decrypt the sub data ROMs */ |
| 1204 | rom = (UINT16 *)machine().root_device().memregion("user2")->base(); | |
| 1205 | len = machine().root_device().memregion("user2")->bytes(); | |
| 1204 | rom = (UINT16 *)memregion("user2")->base(); | |
| 1205 | len = memregion("user2")->bytes(); | |
| 1206 | 1206 | for (a = 1;a < len/2;a+=4) |
| 1207 | 1207 | { |
| 1208 | 1208 | /* just swap bits 1 and 2 of the address */ |
| r21033 | r21034 | |
|---|---|---|
| 44 | 44 | |
| 45 | 45 | void albazc_state::palette_init() |
| 46 | 46 | { |
| 47 | const UINT8 *color_prom = m | |
| 47 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 48 | 48 | int i; |
| 49 | 49 | int r, g, b; |
| 50 | 50 |
| r21033 | r21034 | |
|---|---|---|
| 7519 | 7519 | |
| 7520 | 7520 | DRIVER_INIT_MEMBER(dc_state,atomiswave) |
| 7521 | 7521 | { |
| 7522 | UINT64 *ROM = (UINT64 *)m | |
| 7522 | UINT64 *ROM = (UINT64 *)memregion("awflash")->base(); | |
| 7523 | 7523 | |
| 7524 | 7524 | // patch out long startup delay |
| 7525 | 7525 | ROM[0x98e/8] = (ROM[0x98e/8] & U64(0xffffffffffff)) | (UINT64)0x0009<<48; |
| r21033 | r21034 | |
|---|---|---|
| 50 | 50 | |
| 51 | 51 | void niyanpai_state::niyanpai_soundbank_w(int data) |
| 52 | 52 | { |
| 53 | UINT8 *SNDROM = m | |
| 53 | UINT8 *SNDROM = memregion("audiocpu")->base(); | |
| 54 | 54 | |
| 55 | m | |
| 55 | membank("bank1")->set_base(&SNDROM[0x08000 + (0x8000 * (data & 0x03))]); | |
| 56 | 56 | } |
| 57 | 57 | |
| 58 | 58 | READ8_MEMBER(niyanpai_state::niyanpai_sound_r) |
| r21033 | r21034 | |
|---|---|---|
| 528 | 528 | |
| 529 | 529 | void queen_state::machine_reset() |
| 530 | 530 | { |
| 531 | machine().root_device().membank("bios_bank")->set_base(machine().root_device().memregion("bios")->base() + 0x30000); | |
| 532 | machine().root_device().membank("bios_ext")->set_base(machine().root_device().memregion("bios")->base() + 0x20000); | |
| 531 | membank("bios_bank")->set_base(memregion("bios")->base() + 0x30000); | |
| 532 | membank("bios_ext")->set_base(memregion("bios")->base() + 0x20000); | |
| 533 | 533 | } |
| 534 | 534 | |
| 535 | 535 |
| r21033 | r21034 | |
|---|---|---|
| 127 | 127 | |
| 128 | 128 | void cyclemb_state::palette_init() |
| 129 | 129 | { |
| 130 | const UINT8 *color_prom = m | |
| 130 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 131 | 131 | int i,r,g,b,val; |
| 132 | 132 | int bit0,bit1,bit2; |
| 133 | 133 | |
| r21033 | r21034 | |
| 1020 | 1020 | |
| 1021 | 1021 | DRIVER_INIT_MEMBER(cyclemb_state,cyclemb) |
| 1022 | 1022 | { |
| 1023 | m | |
| 1023 | membank("bank1")->configure_entries(0, 4, memregion("maincpu")->base() + 0x10000, 0x1000); | |
| 1024 | 1024 | m_dsw_pc_hack = 0x760; |
| 1025 | 1025 | } |
| 1026 | 1026 | |
| 1027 | 1027 | DRIVER_INIT_MEMBER(cyclemb_state,skydest) |
| 1028 | 1028 | { |
| 1029 | m | |
| 1029 | membank("bank1")->configure_entries(0, 4, memregion("maincpu")->base() + 0x10000, 0x1000); | |
| 1030 | 1030 | m_dsw_pc_hack = 0x554; |
| 1031 | 1031 | } |
| 1032 | 1032 |
| r21033 | r21034 | |
|---|---|---|
| 1027 | 1027 | { |
| 1028 | 1028 | int i; |
| 1029 | 1029 | UINT8 x,v; |
| 1030 | UINT8* rom = m | |
| 1030 | UINT8* rom = memregion("rom_data")->base(); | |
| 1031 | 1031 | |
| 1032 | 1032 | for (i=0;i<0x20000;i++) |
| 1033 | 1033 | { |
| r21033 | r21034 | |
| 1054 | 1054 | #endif |
| 1055 | 1055 | |
| 1056 | 1056 | // ?? |
| 1057 | // m | |
| 1057 | // membank("bank1")->set_base(&rom[0x010000]); | |
| 1058 | 1058 | } |
| 1059 | 1059 | |
| 1060 | 1060 |
| r21033 | r21034 | |
|---|---|---|
| 1911 | 1911 | |
| 1912 | 1912 | DRIVER_INIT_MEMBER(sigmab98_state,gegege) |
| 1913 | 1913 | { |
| 1914 | UINT8 *rom = m | |
| 1914 | UINT8 *rom = memregion("maincpu")->base(); | |
| 1915 | 1915 | |
| 1916 | 1916 | // Protection? |
| 1917 | 1917 | rom[0x0bdd] = 0xc9; |
| r21033 | r21034 | |
| 1929 | 1929 | rom[0x8165] = 0x00; |
| 1930 | 1930 | |
| 1931 | 1931 | // ROM banks |
| 1932 | machine().root_device().membank("rombank")->configure_entries(0, 0x18, rom + 0x8000, 0x1000); | |
| 1933 | machine().root_device().membank("rombank")->set_entry(0); | |
| 1932 | membank("rombank")->configure_entries(0, 0x18, rom + 0x8000, 0x1000); | |
| 1933 | membank("rombank")->set_entry(0); | |
| 1934 | 1934 | |
| 1935 | 1935 | // RAM banks |
| 1936 | 1936 | UINT8 *bankedram = auto_alloc_array(machine(), UINT8, 0x800 * 2); |
| 1937 | 1937 | |
| 1938 | machine().root_device().membank("rambank")->configure_entries(0, 2, bankedram, 0x800); | |
| 1939 | machine().root_device().membank("rambank")->set_entry(0); | |
| 1938 | membank("rambank")->configure_entries(0, 2, bankedram, 0x800); | |
| 1939 | membank("rambank")->set_entry(0); | |
| 1940 | 1940 | } |
| 1941 | 1941 | |
| 1942 | 1942 | |
| r21033 | r21034 | |
| 1960 | 1960 | |
| 1961 | 1961 | DRIVER_INIT_MEMBER(sigmab98_state,pepsiman) |
| 1962 | 1962 | { |
| 1963 | UINT8 *rom = m | |
| 1963 | UINT8 *rom = memregion("maincpu")->base(); | |
| 1964 | 1964 | |
| 1965 | 1965 | // Protection? |
| 1966 | 1966 | rom[0x058a] = 0xc9; |
| r21033 | r21034 | |
| 1978 | 1978 | rom[0x8165] = 0x00; |
| 1979 | 1979 | |
| 1980 | 1980 | // ROM banks |
| 1981 | machine().root_device().membank("rombank")->configure_entries(0, 0x18, rom + 0x8000, 0x1000); | |
| 1982 | machine().root_device().membank("rombank")->set_entry(0); | |
| 1981 | membank("rombank")->configure_entries(0, 0x18, rom + 0x8000, 0x1000); | |
| 1982 | membank("rombank")->set_entry(0); | |
| 1983 | 1983 | |
| 1984 | 1984 | // RAM banks |
| 1985 | 1985 | UINT8 *bankedram = auto_alloc_array(machine(), UINT8, 0x800 * 2); |
| 1986 | 1986 | |
| 1987 | machine().root_device().membank("rambank")->configure_entries(0, 2, bankedram, 0x800); | |
| 1988 | machine().root_device().membank("rambank")->set_entry(0); | |
| 1987 | membank("rambank")->configure_entries(0, 2, bankedram, 0x800); | |
| 1988 | membank("rambank")->set_entry(0); | |
| 1989 | 1989 | } |
| 1990 | 1990 | |
| 1991 | 1991 | |
| r21033 | r21034 | |
| 2011 | 2011 | |
| 2012 | 2012 | DRIVER_INIT_MEMBER(sigmab98_state,ucytokyu) |
| 2013 | 2013 | { |
| 2014 | UINT8 *rom = m | |
| 2014 | UINT8 *rom = memregion("maincpu")->base(); | |
| 2015 | 2015 | |
| 2016 | 2016 | // Protection? |
| 2017 | 2017 | rom[0x0bfa] = 0xc9; |
| r21033 | r21034 | |
| 2029 | 2029 | rom[0x8165] = 0x00; |
| 2030 | 2030 | |
| 2031 | 2031 | // ROM banks |
| 2032 | machine().root_device().membank("rombank")->configure_entries(0, 0x18, rom + 0x8000, 0x1000); | |
| 2033 | machine().root_device().membank("rombank")->set_entry(0); | |
| 2032 | membank("rombank")->configure_entries(0, 0x18, rom + 0x8000, 0x1000); | |
| 2033 | membank("rombank")->set_entry(0); | |
| 2034 | 2034 | |
| 2035 | 2035 | // RAM banks |
| 2036 | 2036 | UINT8 *bankedram = auto_alloc_array(machine(), UINT8, 0x800 * 2); |
| 2037 | 2037 | |
| 2038 | machine().root_device().membank("rambank")->configure_entries(0, 2, bankedram, 0x800); | |
| 2039 | machine().root_device().membank("rambank")->set_entry(0); | |
| 2038 | membank("rambank")->configure_entries(0, 2, bankedram, 0x800); | |
| 2039 | membank("rambank")->set_entry(0); | |
| 2040 | 2040 | } |
| 2041 | 2041 | |
| 2042 | 2042 |
| r21033 | r21034 | |
|---|---|---|
| 413 | 413 | |
| 414 | 414 | DRIVER_INIT_MEMBER(shootout_state,shootout) |
| 415 | 415 | { |
| 416 | m | |
| 416 | membank("bank1")->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x4000); | |
| 417 | 417 | } |
| 418 | 418 | |
| 419 | 419 |
| r21033 | r21034 | |
|---|---|---|
| 486 | 486 | |
| 487 | 487 | ***************************************************************************/ |
| 488 | 488 | |
| 489 | READ8_MEMBER(toypop_state::dipA_l){ return machine().root_device().ioport("DSW1")->read(); } // dips A | |
| 490 | READ8_MEMBER(toypop_state::dipA_h){ return machine().root_device().ioport("DSW1")->read() >> 4; } // dips A | |
| 491 | READ8_MEMBER(toypop_state::dipB_l){ return machine().root_device().ioport("DSW2")->read(); } // dips B | |
| 492 | READ8_MEMBER(toypop_state::dipB_h){ return machine().root_device().ioport("DSW2")->read() >> 4; } // dips B | |
| 489 | READ8_MEMBER(toypop_state::dipA_l){ return ioport("DSW1")->read(); } // dips A | |
| 490 | READ8_MEMBER(toypop_state::dipA_h){ return ioport("DSW1")->read() >> 4; } // dips A | |
| 491 | READ8_MEMBER(toypop_state::dipB_l){ return ioport("DSW2")->read(); } // dips B | |
| 492 | READ8_MEMBER(toypop_state::dipB_h){ return ioport("DSW2")->read() >> 4; } // dips B | |
| 493 | 493 | |
| 494 | 494 | WRITE8_MEMBER(toypop_state::out_coin0) |
| 495 | 495 | { |
| r21033 | r21034 | |
|---|---|---|
| 709 | 709 | { |
| 710 | 710 | address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); |
| 711 | 711 | UINT8 *decrypted = auto_alloc_array(machine(), UINT8, 0x10000); |
| 712 | UINT8 *rom = m | |
| 712 | UINT8 *rom = memregion("maincpu")->base(); | |
| 713 | 713 | int A; |
| 714 | 714 | |
| 715 | 715 | space.set_decrypted_region(0x0000, 0xffff, decrypted); |
| r21033 | r21034 | |
|---|---|---|
| 886 | 886 | |
| 887 | 887 | void calchase_state::machine_reset() |
| 888 | 888 | { |
| 889 | //machine().root_device().membank("bank1")->set_base(machine().root_device().memregion("bios")->base() + 0x10000); | |
| 890 | machine().root_device().membank("bios_bank")->set_base(machine().root_device().memregion("bios")->base() + 0x10000); | |
| 891 | machine().root_device().membank("bios_ext")->set_base(machine().root_device().memregion("bios")->base() + 0); | |
| 889 | //membank("bank1")->set_base(memregion("bios")->base() + 0x10000); | |
| 890 | membank("bios_bank")->set_base(memregion("bios")->base() + 0x10000); | |
| 891 | membank("bios_ext")->set_base(memregion("bios")->base() + 0); | |
| 892 | 892 | } |
| 893 | 893 | |
| 894 | 894 | static void set_gate_a20(running_machine &machine, int a20) |
| r21033 | r21034 | |
|---|---|---|
| 288 | 288 | |
| 289 | 289 | WRITE8_MEMBER(ashnojoe_state::ym2203_write_b) |
| 290 | 290 | { |
| 291 | m | |
| 291 | membank("bank4")->set_entry(data & 0x0f); | |
| 292 | 292 | } |
| 293 | 293 | |
| 294 | 294 | static const ym2203_interface ym2203_config = |
| r21033 | r21034 | |
| 456 | 456 | |
| 457 | 457 | DRIVER_INIT_MEMBER(ashnojoe_state,ashnojoe) |
| 458 | 458 | { |
| 459 | UINT8 *ROM = machine().root_device().memregion("adpcm")->base(); | |
| 460 | machine().root_device().membank("bank4")->configure_entries(0, 16, &ROM[0x00000], 0x8000); | |
| 459 | UINT8 *ROM = memregion("adpcm")->base(); | |
| 460 | membank("bank4")->configure_entries(0, 16, &ROM[0x00000], 0x8000); | |
| 461 | 461 | |
| 462 | m | |
| 462 | membank("bank4")->set_entry(0); | |
| 463 | 463 | } |
| 464 | 464 | |
| 465 | 465 | GAME( 1990, scessjoe, 0, ashnojoe, ashnojoe, ashnojoe_state, ashnojoe, ROT0, "Wave / Taito Corporation", "Success Joe (World)", GAME_SUPPORTS_SAVE ) |
| r21033 | r21034 | |
|---|---|---|
| 225 | 225 | if (newbank != m_bank) |
| 226 | 226 | { |
| 227 | 227 | m_bank = newbank; |
| 228 | membank("bank1")->set_base(m | |
| 228 | membank("bank1")->set_base(memregion("game_prg")->base() + 0x10000 * m_bank ); | |
| 229 | 229 | } |
| 230 | 230 | |
| 231 | 231 | m_lastvalue = data; |
| r21033 | r21034 | |
|---|---|---|
| 967 | 967 | DRIVER_INIT_MEMBER(undrfire_state,undrfire) |
| 968 | 968 | { |
| 969 | 969 | UINT32 offset,i; |
| 970 | UINT8 *gfx = machine().root_device().memregion("gfx3")->base(); | |
| 971 | int size=machine().root_device().memregion("gfx3")->bytes(); | |
| 970 | UINT8 *gfx = memregion("gfx3")->base(); | |
| 971 | int size=memregion("gfx3")->bytes(); | |
| 972 | 972 | int data; |
| 973 | 973 | |
| 974 | 974 | /* make piv tile GFX format suitable for gfxdecode */ |
| r21033 | r21034 | |
| 996 | 996 | DRIVER_INIT_MEMBER(undrfire_state,cbombers) |
| 997 | 997 | { |
| 998 | 998 | UINT32 offset,i; |
| 999 | UINT8 *gfx = machine().root_device().memregion("gfx3")->base(); | |
| 1000 | int size=machine().root_device().memregion("gfx3")->bytes(); | |
| 999 | UINT8 *gfx = memregion("gfx3")->base(); | |
| 1000 | int size=memregion("gfx3")->bytes(); | |
| 1001 | 1001 | int data; |
| 1002 | 1002 | |
| 1003 | 1003 |
| r21033 | r21034 | |
|---|---|---|
| 93 | 93 | |
| 94 | 94 | MACHINE_START_MEMBER(dooyong_state,lastday) |
| 95 | 95 | { |
| 96 | m | |
| 96 | membank("bank1")->configure_entries(0, 8, memregion("maincpu")->base() + 0x10000, 0x4000); | |
| 97 | 97 | } |
| 98 | 98 | |
| 99 | 99 | WRITE8_MEMBER(dooyong_state::flip_screen_w) |
| r21033 | r21034 | |
|---|---|---|
| 397 | 397 | |
| 398 | 398 | void silvmil_state::tumblepb_gfx1_rearrange() |
| 399 | 399 | { |
| 400 | UINT8 *rom = machine().root_device().memregion("gfx1")->base(); | |
| 401 | int len = machine().root_device().memregion("gfx1")->bytes(); | |
| 400 | UINT8 *rom = memregion("gfx1")->base(); | |
| 401 | int len = memregion("gfx1")->bytes(); | |
| 402 | 402 | int i; |
| 403 | 403 | |
| 404 | 404 | /* gfx data is in the wrong order */ |
| r21033 | r21034 | |
|---|---|---|
| 644 | 644 | |
| 645 | 645 | DRIVER_INIT_MEMBER(brkthru_state,brkthru) |
| 646 | 646 | { |
| 647 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 648 | machine().root_device().membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x2000); | |
| 647 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 648 | membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x2000); | |
| 649 | 649 | } |
| 650 | 650 | |
| 651 | 651 | /************************************* |
| r21033 | r21034 | |
|---|---|---|
| 422 | 422 | |
| 423 | 423 | DRIVER_INIT_MEMBER(quizshow_state,quizshow) |
| 424 | 424 | { |
| 425 | UINT8 *gfxdata = machine().root_device().memregion("user1")->base(); | |
| 426 | UINT8 *dest = machine().root_device().memregion("gfx1")->base(); | |
| 425 | UINT8 *gfxdata = memregion("user1")->base(); | |
| 426 | UINT8 *dest = memregion("gfx1")->base(); | |
| 427 | 427 | |
| 428 | 428 | int tile, line; |
| 429 | 429 |
| r21033 | r21034 | |
|---|---|---|
| 1438 | 1438 | DRIVER_INIT_MEMBER(trackfld_state,atlantol) |
| 1439 | 1439 | { |
| 1440 | 1440 | address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); |
| 1441 | UINT8 *rom = m | |
| 1441 | UINT8 *rom = memregion("maincpu")->base(); | |
| 1442 | 1442 | UINT8 *decrypt; |
| 1443 | 1443 | int A; |
| 1444 | 1444 | |
| r21033 | r21034 | |
| 1467 | 1467 | |
| 1468 | 1468 | DRIVER_INIT_MEMBER(trackfld_state,mastkin) |
| 1469 | 1469 | { |
| 1470 | UINT8 *prom = m | |
| 1470 | UINT8 *prom = memregion("proms")->base(); | |
| 1471 | 1471 | int i; |
| 1472 | 1472 | |
| 1473 | 1473 | /* build a fake palette so the screen won't be all black */ |
| r21033 | r21034 | |
| 1488 | 1488 | |
| 1489 | 1489 | DRIVER_INIT_MEMBER(trackfld_state,wizzquiz) |
| 1490 | 1490 | { |
| 1491 | UINT8 *ROM = m | |
| 1491 | UINT8 *ROM = memregion("maincpu")->base() + 0xe000; | |
| 1492 | 1492 | int i; |
| 1493 | 1493 | |
| 1494 | 1494 | /* decrypt program rom */ |
| 1495 | 1495 | for (i = 0; i < 0x2000; i++) |
| 1496 | 1496 | ROM[i] = BITSWAP8(ROM[i],0,1,2,3,4,5,6,7); |
| 1497 | 1497 | |
| 1498 | ROM = m | |
| 1498 | ROM = memregion("user1")->base(); | |
| 1499 | 1499 | |
| 1500 | 1500 | /* decrypt questions roms */ |
| 1501 | 1501 | for (i = 0; i < 0x40000; i++) |
| 1502 | 1502 | ROM[i] = BITSWAP8(ROM[i],0,1,2,3,4,5,6,7); |
| 1503 | 1503 | |
| 1504 | m | |
| 1504 | membank("bank1")->configure_entries(0, 8, ROM, 0x8000); | |
| 1505 | 1505 | } |
| 1506 | 1506 | |
| 1507 | 1507 |
| r21033 | r21034 | |
|---|---|---|
| 549 | 549 | |
| 550 | 550 | /* make a temporary copy of the character data */ |
| 551 | 551 | src = temp; |
| 552 | dst = machine().root_device().memregion("gfx1")->base(); | |
| 553 | length = machine().root_device().memregion("gfx1")->bytes(); | |
| 552 | dst = memregion("gfx1")->base(); | |
| 553 | length = memregion("gfx1")->bytes(); | |
| 554 | 554 | memcpy(src, dst, length); |
| 555 | 555 | |
| 556 | 556 | /* decode the characters */ |
| r21033 | r21034 | |
| 567 | 567 | |
| 568 | 568 | /* make a temporary copy of the sprite data */ |
| 569 | 569 | src = temp; |
| 570 | dst = machine().root_device().memregion("gfx2")->base(); | |
| 571 | length = machine().root_device().memregion("gfx2")->bytes(); | |
| 570 | dst = memregion("gfx2")->base(); | |
| 571 | length = memregion("gfx2")->bytes(); | |
| 572 | 572 | memcpy(src, dst, length); |
| 573 | 573 | |
| 574 | 574 | /* decode the sprites */ |
| r21033 | r21034 | |
| 590 | 590 | |
| 591 | 591 | DRIVER_INIT_MEMBER(exerion_state,exerionb) |
| 592 | 592 | { |
| 593 | UINT8 *ram = m | |
| 593 | UINT8 *ram = memregion("maincpu")->base(); | |
| 594 | 594 | int addr; |
| 595 | 595 | |
| 596 | 596 | /* the program ROMs have data lines D1 and D2 swapped. Decode them. */ |
| r21033 | r21034 | |
|---|---|---|
| 143 | 143 | |
| 144 | 144 | /* |
| 145 | 145 | { |
| 146 | UINT8 *ROM = space.m | |
| 146 | UINT8 *ROM = space.memregion("maincpu")->base(); | |
| 147 | 147 | UINT32 bankaddress; |
| 148 | 148 | |
| 149 | 149 | bankaddress = 0x10000 + (0x10000 * (data & 0x03)); |
| 150 | space.m | |
| 150 | space.membank("bank1")->set_base(&ROM[bankaddress]); | |
| 151 | 151 | } |
| 152 | 152 | */ |
| 153 | 153 |
| r21033 | r21034 | |
|---|---|---|
| 91 | 91 | |
| 92 | 92 | void roul_state::palette_init() |
| 93 | 93 | { |
| 94 | const UINT8 *color_prom = m | |
| 94 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 95 | 95 | int bit6, bit7, bit0, bit1, r, g, b; |
| 96 | 96 | int i; |
| 97 | 97 |
| r21033 | r21034 | |
|---|---|---|
| 1926 | 1926 | DRIVER_INIT_MEMBER(igspoker_state,cpoker) |
| 1927 | 1927 | { |
| 1928 | 1928 | int A; |
| 1929 | UINT8 *rom = m | |
| 1929 | UINT8 *rom = memregion("maincpu")->base(); | |
| 1930 | 1930 | |
| 1931 | 1931 | |
| 1932 | 1932 | for (A = 0;A < 0x10000;A++) |
| r21033 | r21034 | |
| 1940 | 1940 | |
| 1941 | 1941 | DRIVER_INIT_MEMBER(igspoker_state,cpokert) |
| 1942 | 1942 | { |
| 1943 | UINT8 *rom = m | |
| 1943 | UINT8 *rom = memregion("maincpu")->base(); | |
| 1944 | 1944 | int i; |
| 1945 | 1945 | |
| 1946 | 1946 | /* decrypt the program ROM */ |
| r21033 | r21034 | |
| 1970 | 1970 | DRIVER_INIT_MEMBER(igspoker_state,cska) |
| 1971 | 1971 | { |
| 1972 | 1972 | int A; |
| 1973 | UINT8 *rom = m | |
| 1973 | UINT8 *rom = memregion("maincpu")->base(); | |
| 1974 | 1974 | |
| 1975 | 1975 | |
| 1976 | 1976 | for (A = 0;A < 0x10000;A++) |
| r21033 | r21034 | |
| 1987 | 1987 | DRIVER_INIT_MEMBER(igspoker_state,igs_ncs) |
| 1988 | 1988 | { |
| 1989 | 1989 | int A; |
| 1990 | UINT8 *rom = m | |
| 1990 | UINT8 *rom = memregion("maincpu")->base(); | |
| 1991 | 1991 | |
| 1992 | 1992 | |
| 1993 | 1993 | for (A = 0;A < 0x10000;A++) |
| r21033 | r21034 | |
| 2148 | 2148 | |
| 2149 | 2149 | DRIVER_INIT_MEMBER(igspoker_state,igs_ncs2) |
| 2150 | 2150 | { |
| 2151 | UINT8 *src = (UINT8 *) (m | |
| 2151 | UINT8 *src = (UINT8 *) (memregion("maincpu")->base()); | |
| 2152 | 2152 | int i; |
| 2153 | 2153 | |
| 2154 | 2154 | for(i = 0; i < 0x10000; i++) |
| r21033 | r21034 | |
| 2225 | 2225 | int length; |
| 2226 | 2226 | UINT8 *rom; |
| 2227 | 2227 | |
| 2228 | rom = machine().root_device().memregion("maincpu")->base(); | |
| 2229 | length = machine().root_device().memregion("maincpu")->bytes(); | |
| 2228 | rom = memregion("maincpu")->base(); | |
| 2229 | length = memregion("maincpu")->bytes(); | |
| 2230 | 2230 | for (A = 0;A < length;A++) |
| 2231 | 2231 | { |
| 2232 | 2232 | if ((A & 0x09C0) == 0x0880) rom[A] ^= 0x20; |
| r21033 | r21034 | |
| 2289 | 2289 | UINT8 *tmp; |
| 2290 | 2290 | UINT8 *rom; |
| 2291 | 2291 | |
| 2292 | rom = machine().root_device().memregion("maincpu")->base(); | |
| 2293 | length = machine().root_device().memregion("maincpu")->bytes(); | |
| 2292 | rom = memregion("maincpu")->base(); | |
| 2293 | length = memregion("maincpu")->bytes(); | |
| 2294 | 2294 | for (A = 0;A < length;A++) |
| 2295 | 2295 | { |
| 2296 | 2296 | if ((A & 0x09C0) == 0x0880) rom[A] ^= 0x20; |
| r21033 | r21034 | |
| 2319 | 2319 | rom[0xeed] = 0xc3; |
| 2320 | 2320 | |
| 2321 | 2321 | /* Descramble graphic */ |
| 2322 | rom = machine().root_device().memregion("gfx1")->base(); | |
| 2323 | length = machine().root_device().memregion("gfx1")->bytes(); | |
| 2322 | rom = memregion("gfx1")->base(); | |
| 2323 | length = memregion("gfx1")->bytes(); | |
| 2324 | 2324 | tmp = auto_alloc_array(machine(), UINT8, length); |
| 2325 | 2325 | memcpy(tmp,rom,length); |
| 2326 | 2326 | for (A = 0;A < length;A++) |
| r21033 | r21034 | |
| 2368 | 2368 | DRIVER_INIT_MEMBER(igspoker_state,cpokerpk) |
| 2369 | 2369 | { |
| 2370 | 2370 | int A; |
| 2371 | UINT8 *rom = m | |
| 2371 | UINT8 *rom = memregion("maincpu")->base(); | |
| 2372 | 2372 | |
| 2373 | 2373 | for (A=0x0714; A < 0xF000; A+=0x1000) |
| 2374 | 2374 | rom[A] ^= 0x20; |
| r21033 | r21034 | |
| 2422 | 2422 | DRIVER_INIT_MEMBER(igspoker_state,pktet346) |
| 2423 | 2423 | { |
| 2424 | 2424 | int A; |
| 2425 | UINT8 *rom = m | |
| 2425 | UINT8 *rom = memregion("maincpu")->base(); | |
| 2426 | 2426 | |
| 2427 | 2427 | |
| 2428 | 2428 | for (A = 0;A < 0x10000;A++) |
| r21033 | r21034 | |
|---|---|---|
| 412 | 412 | |
| 413 | 413 | void videopkr_state::palette_init() |
| 414 | 414 | { |
| 415 | const UINT8 *color_prom = m | |
| 415 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 416 | 416 | int j; |
| 417 | 417 | |
| 418 | 418 | for (j = 0; j < machine().total_colors(); j++) |
| r21033 | r21034 | |
| 439 | 439 | |
| 440 | 440 | PALETTE_INIT_MEMBER(videopkr_state,babypkr) |
| 441 | 441 | { |
| 442 | const UINT8 *color_prom = m | |
| 442 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 443 | 443 | int j; |
| 444 | 444 | |
| 445 | 445 | for (j = 0; j < machine().total_colors(); j++) |
| r21033 | r21034 | |
| 470 | 470 | |
| 471 | 471 | PALETTE_INIT_MEMBER(videopkr_state,fortune1) |
| 472 | 472 | { |
| 473 | const UINT8 *color_prom = m | |
| 473 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 474 | 474 | int j; |
| 475 | 475 | |
| 476 | 476 | for (j = 0; j < machine().total_colors(); j++) |
| r21033 | r21034 | |
|---|---|---|
| 369 | 369 | { |
| 370 | 370 | m_gfx_rom_bank = data; |
| 371 | 371 | |
| 372 | membank("bank1")->set_base(m | |
| 372 | membank("bank1")->set_base(memregion("sub2")->base() + (m_gfx_rom_bank * 0x2000) + 0x10000); | |
| 373 | 373 | } |
| 374 | 374 | |
| 375 | 375 | WRITE8_MEMBER(mazerbla_state::cfb_rom_bank_sel_w_gg)/* great guns */ |
| 376 | 376 | { |
| 377 | 377 | m_gfx_rom_bank = data >> 1; |
| 378 | 378 | |
| 379 | membank("bank1")->set_base(m | |
| 379 | membank("bank1")->set_base(memregion("sub2")->base() + (m_gfx_rom_bank * 0x2000) + 0x10000); | |
| 380 | 380 | } |
| 381 | 381 | |
| 382 | 382 |
| r21033 | r21034 | |
|---|---|---|
| 630 | 630 | int i; |
| 631 | 631 | |
| 632 | 632 | /* unpack the third sprite ROM */ |
| 633 | rom = m | |
| 633 | rom = memregion("gfx3")->base() + 0x4000; | |
| 634 | 634 | for (i = 0;i < 0x2000;i++) |
| 635 | 635 | { |
| 636 | 636 | rom[i + 0x4000] = rom[i]; // sprite set #1, plane 3 |
| r21033 | r21034 | |
|---|---|---|
| 396 | 396 | |
| 397 | 397 | WRITE8_MEMBER(rbisland_state::bankswitch_w) |
| 398 | 398 | { |
| 399 | m | |
| 399 | membank("bank1")->set_entry(data & 3); | |
| 400 | 400 | } |
| 401 | 401 | |
| 402 | 402 | READ8_MEMBER(rbisland_state::jumping_latch_r) |
| r21033 | r21034 | |
| 852 | 852 | |
| 853 | 853 | DRIVER_INIT_MEMBER(rbisland_state,rbisland) |
| 854 | 854 | { |
| 855 | UINT8 *ROM = m | |
| 855 | UINT8 *ROM = memregion("audiocpu")->base(); | |
| 856 | 856 | |
| 857 | m | |
| 857 | membank("bank1")->configure_entries(0, 4, &ROM[0xc000], 0x4000); | |
| 858 | 858 | |
| 859 | 859 | rbisland_cchip_init(0); |
| 860 | 860 | } |
| 861 | 861 | |
| 862 | 862 | DRIVER_INIT_MEMBER(rbisland_state,rbislande) |
| 863 | 863 | { |
| 864 | UINT8 *ROM = m | |
| 864 | UINT8 *ROM = memregion("audiocpu")->base(); | |
| 865 | 865 | |
| 866 | m | |
| 866 | membank("bank1")->configure_entries(0, 4, &ROM[0xc000], 0x4000); | |
| 867 | 867 | |
| 868 | 868 | rbisland_cchip_init(1); |
| 869 | 869 | } |
| r21033 | r21034 | |
|---|---|---|
| 604 | 604 | |
| 605 | 605 | DRIVER_INIT_MEMBER(acefruit_state,sidewndr) |
| 606 | 606 | { |
| 607 | UINT8 *ROM = m | |
| 607 | UINT8 *ROM = memregion( "maincpu" )->base(); | |
| 608 | 608 | /* replace "ret nc" ( 0xd0 ) with "di" */ |
| 609 | 609 | ROM[ 0 ] = 0xf3; |
| 610 | 610 | /* this is either a bad dump or the cpu core should set the carry flag on reset */ |
| r21033 | r21034 | |
|---|---|---|
| 90 | 90 | |
| 91 | 91 | READ8_MEMBER(tunhunt_state::dsw2_0r) |
| 92 | 92 | { |
| 93 | return ( | |
| 93 | return (ioport("DSW")->read()&0x0100)?0x80:0x00; | |
| 94 | 94 | } |
| 95 | 95 | |
| 96 | 96 | |
| 97 | 97 | READ8_MEMBER(tunhunt_state::dsw2_1r) |
| 98 | 98 | { |
| 99 | return ( | |
| 99 | return (ioport("DSW")->read()&0x0200)?0x80:0x00; | |
| 100 | 100 | } |
| 101 | 101 | |
| 102 | 102 | |
| 103 | 103 | READ8_MEMBER(tunhunt_state::dsw2_2r) |
| 104 | 104 | { |
| 105 | return ( | |
| 105 | return (ioport("DSW")->read()&0x0400)?0x80:0x00; | |
| 106 | 106 | } |
| 107 | 107 | |
| 108 | 108 | |
| 109 | 109 | READ8_MEMBER(tunhunt_state::dsw2_3r) |
| 110 | 110 | { |
| 111 | return ( | |
| 111 | return (ioport("DSW")->read()&0x0800)?0x80:0x00; | |
| 112 | 112 | } |
| 113 | 113 | |
| 114 | 114 | |
| 115 | 115 | READ8_MEMBER(tunhunt_state::dsw2_4r) |
| 116 | 116 | { |
| 117 | return ( | |
| 117 | return (ioport("DSW")->read()&0x1000)?0x80:0x00; | |
| 118 | 118 | } |
| 119 | 119 | |
| 120 | 120 |
| r21033 | r21034 | |
|---|---|---|
| 448 | 448 | DRIVER_INIT_MEMBER(travrusa_state,motorace) |
| 449 | 449 | { |
| 450 | 450 | int A, j; |
| 451 | UINT8 *rom = m | |
| 451 | UINT8 *rom = memregion("maincpu")->base(); | |
| 452 | 452 | UINT8 *buffer = auto_alloc_array(machine(), UINT8, 0x2000); |
| 453 | 453 | |
| 454 | 454 | memcpy(buffer, rom, 0x2000); |
| r21033 | r21034 | |
| 466 | 466 | DRIVER_INIT_MEMBER(travrusa_state,shtridra) |
| 467 | 467 | { |
| 468 | 468 | int A; |
| 469 | UINT8 *rom = m | |
| 469 | UINT8 *rom = memregion("maincpu")->base(); | |
| 470 | 470 | |
| 471 | 471 | /* D3/D4 and D5/D6 swapped */ |
| 472 | 472 | for (A = 0; A < 0x2000; A++) |
| r21033 | r21034 | |
|---|---|---|
| 654 | 654 | void neogeo_state::neogeo_main_cpu_banking_init() |
| 655 | 655 | { |
| 656 | 656 | /* create vector banks */ |
| 657 | m_bank_vectors->configure_entry(0, m | |
| 657 | m_bank_vectors->configure_entry(0, memregion("mainbios")->base()); | |
| 658 | 658 | m_bank_vectors->configure_entry(1, m_region_maincpu->base()); |
| 659 | 659 | |
| 660 | 660 | if (m_is_cartsys) |
| r21033 | r21034 | |
| 1298 | 1298 | size = image.get_software_region_length("audiocpu"); |
| 1299 | 1299 | machine().memory().region_free(":audiocpu"); |
| 1300 | 1300 | machine().memory().region_alloc(":audiocpu",size+0x10000,1, ENDIANNESS_LITTLE); |
| 1301 | memcpy(machine().root_device().memregion("audiocpu")->base(),image.get_software_region("audiocpu"),size); | |
| 1302 | memcpy(machine().root_device().memregion("audiocpu")->base()+0x10000,image.get_software_region("audiocpu"),size); // avoid reloading in XML, should just improve banking instead tho? | |
| 1301 | memcpy(memregion("audiocpu")->base(),image.get_software_region("audiocpu"),size); | |
| 1302 | memcpy(memregion("audiocpu")->base()+0x10000,image.get_software_region("audiocpu"),size); // avoid reloading in XML, should just improve banking instead tho? | |
| 1303 | 1303 | } |
| 1304 | 1304 | |
| 1305 | 1305 | |
| 1306 | 1306 | size = image.get_software_region_length("ymsnd"); |
| 1307 | 1307 | machine().memory().region_free(":ymsnd"); |
| 1308 | 1308 | machine().memory().region_alloc(":ymsnd",size,1, ENDIANNESS_LITTLE); |
| 1309 | memcpy(m | |
| 1309 | memcpy(memregion("ymsnd")->base(),image.get_software_region("ymsnd"),size); | |
| 1310 | 1310 | if(image.get_software_region("ymsnd.deltat") != NULL) |
| 1311 | 1311 | { |
| 1312 | 1312 | size = image.get_software_region_length("ymsnd.deltat"); |
| 1313 | 1313 | machine().memory().region_free(":ymsnd.deltat"); |
| 1314 | 1314 | machine().memory().region_alloc(":ymsnd.deltat",size,1, ENDIANNESS_LITTLE); |
| 1315 | memcpy(m | |
| 1315 | memcpy(memregion("ymsnd.deltat")->base(),image.get_software_region("ymsnd.deltat"),size); | |
| 1316 | 1316 | } |
| 1317 | 1317 | else |
| 1318 | 1318 | machine().memory().region_free(":ymsnd.deltat"); // removing the region will fix sound glitches in non-Delta-T games |
| r21033 | r21034 | |
| 1320 | 1320 | size = image.get_software_region_length("sprites"); |
| 1321 | 1321 | machine().memory().region_free(":sprites"); |
| 1322 | 1322 | machine().memory().region_alloc(":sprites",size,1, ENDIANNESS_LITTLE); |
| 1323 | memcpy(m | |
| 1323 | memcpy(memregion("sprites")->base(),image.get_software_region("sprites"),size); | |
| 1324 | 1324 | // Reset the reference to the region |
| 1325 | 1325 | m_region_sprites.findit(); |
| 1326 | 1326 | if(image.get_software_region("audiocrypt") != NULL) // encrypted Z80 code |
| 1327 | 1327 | { |
| 1328 | 1328 | size = image.get_software_region_length("audiocrypt"); |
| 1329 | 1329 | machine().memory().region_alloc(":audiocrypt",size,1, ENDIANNESS_LITTLE); |
| 1330 | memcpy(m | |
| 1330 | memcpy(memregion("audiocrypt")->base(),image.get_software_region("audiocrypt"),size); | |
| 1331 | 1331 | // allocate the audiocpu region to decrypt data into |
| 1332 | 1332 | machine().memory().region_free(":audiocpu"); |
| 1333 | 1333 | machine().memory().region_alloc(":audiocpu",size+0x10000,1, ENDIANNESS_LITTLE); |
| r21033 | r21034 | |
| 1335 | 1335 | |
| 1336 | 1336 | // setup cartridge ROM area |
| 1337 | 1337 | m_maincpu->space(AS_PROGRAM).install_read_bank(0x000080,0x0fffff,"cart_rom"); |
| 1338 | m | |
| 1338 | membank("cart_rom")->set_base(m_region_maincpu->base() + 0x80); | |
| 1339 | 1339 | |
| 1340 | 1340 | // handle possible protection |
| 1341 | 1341 | mvs_install_protection(image); |
| r21033 | r21034 | |
|---|---|---|
| 6183 | 6183 | for (i = 0; i < 0x100; i++) |
| 6184 | 6184 | { |
| 6185 | 6185 | UINT8 data; |
| 6186 | UINT8*proms = m | |
| 6186 | UINT8*proms = memregion("proms")->base(); | |
| 6187 | 6187 | |
| 6188 | 6188 | data = proms[0x000 + i] | (proms[0x100 + i] << 4); |
| 6189 | 6189 | |
| r21033 | r21034 | |
| 6198 | 6198 | { |
| 6199 | 6199 | int r,g,b; |
| 6200 | 6200 | |
| 6201 | UINT8*proms = m | |
| 6201 | UINT8*proms = memregion("proms")->base(); | |
| 6202 | 6202 | |
| 6203 | 6203 | b = proms[0x000 + i] << 4; |
| 6204 | 6204 | g = proms[0x100 + i] << 4; |
| r21033 | r21034 | |
| 6216 | 6216 | UINT8 data; |
| 6217 | 6217 | UINT8 *proms; |
| 6218 | 6218 | |
| 6219 | proms = m | |
| 6219 | proms = memregion("proms")->base(); | |
| 6220 | 6220 | for (i = 0; i < 0x100; i++) |
| 6221 | 6221 | { |
| 6222 | 6222 | data = proms[0x000 + i] | (proms[0x100 + i] << 4); |
| r21033 | r21034 | |
| 6224 | 6224 | palette_set_color_rgb(machine(), i, pal3bit(data >> 0), pal3bit(data >> 3), pal2bit(data >> 6)); |
| 6225 | 6225 | } |
| 6226 | 6226 | |
| 6227 | proms = m | |
| 6227 | proms = memregion("proms2")->base(); | |
| 6228 | 6228 | for (i=0; i < 0x20; i++) |
| 6229 | 6229 | { |
| 6230 | 6230 | data = proms[i]; |
| r21033 | r21034 | |
| 6601 | 6601 | { |
| 6602 | 6602 | int r,g,b; |
| 6603 | 6603 | |
| 6604 | UINT8*proms = m | |
| 6604 | UINT8*proms = memregion("proms")->base(); | |
| 6605 | 6605 | |
| 6606 | 6606 | b = proms[0x000 + i] << 4; |
| 6607 | 6607 | g = proms[0x100 + i] << 4; |
| r21033 | r21034 | |
| 8728 | 8728 | DRIVER_INIT_MEMBER(goldstar_state,magoddsc) |
| 8729 | 8729 | { |
| 8730 | 8730 | int A; |
| 8731 | UINT8 *ROM = m | |
| 8731 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 8732 | 8732 | |
| 8733 | 8733 | for (A = 0;A < 0x8000;A++) |
| 8734 | 8734 | { |
| r21033 | r21034 | |
| 9980 | 9980 | DRIVER_INIT_MEMBER(goldstar_state,fb2010) |
| 9981 | 9981 | { |
| 9982 | 9982 | int i; |
| 9983 | UINT8 *ROM = m | |
| 9983 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 9984 | 9984 | for (i = 0;i < 0x10000;i++) |
| 9985 | 9985 | { |
| 9986 | 9986 | UINT8 x = ROM[i]; |
| r21033 | r21034 | |
| 10893 | 10893 | DRIVER_INIT_MEMBER(goldstar_state,goldstar) |
| 10894 | 10894 | { |
| 10895 | 10895 | int A; |
| 10896 | UINT8 *ROM = m | |
| 10896 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 10897 | 10897 | |
| 10898 | 10898 | for (A = 0;A < 0x10000;A++) |
| 10899 | 10899 | { |
| r21033 | r21034 | |
| 10978 | 10978 | |
| 10979 | 10979 | DRIVER_INIT_MEMBER(goldstar_state,chry10) |
| 10980 | 10980 | { |
| 10981 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 10982 | int size = machine().root_device().memregion("maincpu")->bytes(); | |
| 10981 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 10982 | int size = memregion("maincpu")->bytes(); | |
| 10983 | 10983 | int start = 0; |
| 10984 | 10984 | |
| 10985 | 10985 | int i; |
| r21033 | r21034 | |
| 11002 | 11002 | |
| 11003 | 11003 | DRIVER_INIT_MEMBER(goldstar_state,cb3) |
| 11004 | 11004 | { |
| 11005 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 11006 | int size = machine().root_device().memregion("maincpu")->bytes(); | |
| 11005 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 11006 | int size = memregion("maincpu")->bytes(); | |
| 11007 | 11007 | int start = 0; |
| 11008 | 11008 | |
| 11009 | 11009 | int i; |
| r21033 | r21034 | |
| 11021 | 11021 | DRIVER_INIT_MEMBER(goldstar_state,chrygld) |
| 11022 | 11022 | { |
| 11023 | 11023 | int A; |
| 11024 | UINT8 *ROM = m | |
| 11024 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 11025 | 11025 | do_blockswaps(ROM); |
| 11026 | 11026 | |
| 11027 | 11027 | // a data bitswap |
| r21033 | r21034 | |
| 11037 | 11037 | |
| 11038 | 11038 | DRIVER_INIT_MEMBER(goldstar_state,cm) |
| 11039 | 11039 | { |
| 11040 | UINT8 *ROM = m | |
| 11040 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 11041 | 11041 | |
| 11042 | 11042 | /* forcing PPI mode 0 for all, and A, B & C as input. |
| 11043 | 11043 | the mixed modes 2-0 are not working properly. |
| r21033 | r21034 | |
| 11048 | 11048 | |
| 11049 | 11049 | DRIVER_INIT_MEMBER(goldstar_state,cmv4) |
| 11050 | 11050 | { |
| 11051 | UINT8 *ROM = m | |
| 11051 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 11052 | 11052 | |
| 11053 | 11053 | /* forcing PPI mode 0 for all, and A, B & C as input. |
| 11054 | 11054 | the mixed modes 2-0 are not working properly. |
| r21033 | r21034 | |
| 11059 | 11059 | |
| 11060 | 11060 | DRIVER_INIT_MEMBER(goldstar_state,cmast91) |
| 11061 | 11061 | { |
| 11062 | UINT8 *ROM = m | |
| 11062 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 11063 | 11063 | |
| 11064 | 11064 | /* forcing PPI mode 0 for all, and A, B & C as input. |
| 11065 | 11065 | the mixed modes 2-0 are not working properly. |
| r21033 | r21034 | |
| 11070 | 11070 | |
| 11071 | 11071 | DRIVER_INIT_MEMBER(goldstar_state,lucky8a) |
| 11072 | 11072 | { |
| 11073 | UINT8 *ROM = m | |
| 11073 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 11074 | 11074 | |
| 11075 | 11075 | ROM[0x0010] = 0x21; |
| 11076 | 11076 | } |
| r21033 | r21034 | |
| 11078 | 11078 | DRIVER_INIT_MEMBER(goldstar_state,nfb96sea) |
| 11079 | 11079 | { |
| 11080 | 11080 | int i; |
| 11081 | UINT8 *ROM = m | |
| 11081 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 11082 | 11082 | |
| 11083 | 11083 | for (i = 0;i < 0x10000;i++) |
| 11084 | 11084 | { |
| r21033 | r21034 | |
| 11111 | 11111 | DRIVER_INIT_MEMBER(goldstar_state,schery97) |
| 11112 | 11112 | { |
| 11113 | 11113 | int i; |
| 11114 | UINT8 *ROM = m | |
| 11114 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 11115 | 11115 | for (i = 0;i < 0x10000;i++) |
| 11116 | 11116 | { |
| 11117 | 11117 | UINT8 x = ROM[i]; |
| r21033 | r21034 | |
| 11138 | 11138 | DRIVER_INIT_MEMBER(goldstar_state,schery97a) |
| 11139 | 11139 | { |
| 11140 | 11140 | int i; |
| 11141 | UINT8 *ROM = m | |
| 11141 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 11142 | 11142 | for (i = 0;i < 0x10000;i++) |
| 11143 | 11143 | { |
| 11144 | 11144 | UINT8 x = ROM[i]; |
| r21033 | r21034 | |
| 11166 | 11166 | DRIVER_INIT_MEMBER(goldstar_state,skill98) |
| 11167 | 11167 | { |
| 11168 | 11168 | int i; |
| 11169 | UINT8 *ROM = m | |
| 11169 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 11170 | 11170 | for (i = 0;i < 0x10000;i++) |
| 11171 | 11171 | { |
| 11172 | 11172 | UINT8 x = ROM[i]; |
| r21033 | r21034 | |
| 11192 | 11192 | DRIVER_INIT_MEMBER(goldstar_state,nfb96_c1) |
| 11193 | 11193 | { |
| 11194 | 11194 | int i; |
| 11195 | UINT8 *ROM = m | |
| 11195 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 11196 | 11196 | for (i = 0;i < 0x10000;i++) |
| 11197 | 11197 | { |
| 11198 | 11198 | UINT8 x = ROM[i]; |
| r21033 | r21034 | |
| 11218 | 11218 | DRIVER_INIT_MEMBER(goldstar_state,nfb96_c2) |
| 11219 | 11219 | { |
| 11220 | 11220 | int i; |
| 11221 | UINT8 *ROM = m | |
| 11221 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 11222 | 11222 | for (i = 0;i < 0x10000;i++) |
| 11223 | 11223 | { |
| 11224 | 11224 | UINT8 x = ROM[i]; |
| r21033 | r21034 | |
| 11254 | 11254 | DRIVER_INIT_MEMBER(goldstar_state,nfb96_d) |
| 11255 | 11255 | { |
| 11256 | 11256 | int i; |
| 11257 | UINT8 *ROM = m | |
| 11257 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 11258 | 11258 | for (i = 0;i < 0x10000;i++) |
| 11259 | 11259 | { |
| 11260 | 11260 | UINT8 x = ROM[i]; |
| r21033 | r21034 | |
| 11286 | 11286 | DRIVER_INIT_MEMBER(goldstar_state,nfb96_dk) |
| 11287 | 11287 | { |
| 11288 | 11288 | int i; |
| 11289 | UINT8 *ROM = m | |
| 11289 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 11290 | 11290 | for (i = 0;i < 0x10000;i++) |
| 11291 | 11291 | { |
| 11292 | 11292 | UINT8 x = ROM[i]; |
| r21033 | r21034 | |
| 11317 | 11317 | DRIVER_INIT_MEMBER(goldstar_state,rp35) |
| 11318 | 11318 | { |
| 11319 | 11319 | int i; |
| 11320 | UINT8 *ROM = m | |
| 11320 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 11321 | 11321 | for (i = 0;i < 0x10000;i++) |
| 11322 | 11322 | { |
| 11323 | 11323 | UINT8 x = ROM[i]; |
| r21033 | r21034 | |
| 11344 | 11344 | DRIVER_INIT_MEMBER(goldstar_state,rp36) |
| 11345 | 11345 | { |
| 11346 | 11346 | int i; |
| 11347 | UINT8 *ROM = m | |
| 11347 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 11348 | 11348 | for (i = 0;i < 0x10000;i++) |
| 11349 | 11349 | { |
| 11350 | 11350 | UINT8 x = ROM[i]; |
| r21033 | r21034 | |
| 11371 | 11371 | DRIVER_INIT_MEMBER(goldstar_state,rp36c3) |
| 11372 | 11372 | { |
| 11373 | 11373 | int i; |
| 11374 | UINT8 *ROM = m | |
| 11374 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 11375 | 11375 | for (i = 0;i < 0x10000;i++) |
| 11376 | 11376 | { |
| 11377 | 11377 | UINT8 x = ROM[i]; |
| r21033 | r21034 | |
| 11404 | 11404 | DRIVER_INIT_MEMBER(goldstar_state,po33) |
| 11405 | 11405 | { |
| 11406 | 11406 | int i; |
| 11407 | UINT8 *ROM = m | |
| 11407 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 11408 | 11408 | for (i = 0;i < 0x10000;i++) |
| 11409 | 11409 | { |
| 11410 | 11410 | UINT8 x = ROM[i]; |
| r21033 | r21034 | |
| 11437 | 11437 | DRIVER_INIT_MEMBER(goldstar_state,match133) |
| 11438 | 11438 | { |
| 11439 | 11439 | int i; |
| 11440 | UINT8 *ROM = m | |
| 11440 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 11441 | 11441 | for (i = 0;i < 0x10000;i++) |
| 11442 | 11442 | { |
| 11443 | 11443 | UINT8 x = ROM[i]; |
| r21033 | r21034 | |
| 11460 | 11460 | DRIVER_INIT_MEMBER(goldstar_state,cherrys) |
| 11461 | 11461 | { |
| 11462 | 11462 | int i; |
| 11463 | UINT8 *ROM = m | |
| 11463 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 11464 | 11464 | |
| 11465 | 11465 | unsigned char rawData[256] = { |
| 11466 | 11466 | 0xCC, 0xCD, 0xCE, 0xCF, 0xC8, 0xC9, 0xCA, 0xCB, 0xC4, 0xC5, 0xC6, 0xC7, |
| r21033 | r21034 | |
| 11497 | 11497 | /* todo: remove these patches! */ |
| 11498 | 11498 | DRIVER_INIT_MEMBER(goldstar_state,unkch1) |
| 11499 | 11499 | { |
| 11500 | UINT8 *ROM = m | |
| 11500 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 11501 | 11501 | ROM[0x9d52] = 0x00; |
| 11502 | 11502 | ROM[0x9d53] = 0x00; |
| 11503 | 11503 | } |
| 11504 | 11504 | |
| 11505 | 11505 | DRIVER_INIT_MEMBER(goldstar_state,unkch3) |
| 11506 | 11506 | { |
| 11507 | UINT8 *ROM = m | |
| 11507 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 11508 | 11508 | ROM[0x9b86] = 0x00; |
| 11509 | 11509 | ROM[0x9b87] = 0x00; |
| 11510 | 11510 | } |
| 11511 | 11511 | |
| 11512 | 11512 | DRIVER_INIT_MEMBER(goldstar_state,unkch4) |
| 11513 | 11513 | { |
| 11514 | UINT8 *ROM = m | |
| 11514 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 11515 | 11515 | ROM[0x9a6e] = 0x00; |
| 11516 | 11516 | ROM[0x9a6f] = 0x00; |
| 11517 | 11517 | } |
| r21033 | r21034 | |
|---|---|---|
| 1338 | 1338 | |
| 1339 | 1339 | void sfbonus_state::machine_reset() |
| 1340 | 1340 | { |
| 1341 | UINT8 *ROM = m | |
| 1341 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 1342 | 1342 | |
| 1343 | m | |
| 1343 | membank("bank1")->set_base(&ROM[0]); | |
| 1344 | 1344 | } |
| 1345 | 1345 | |
| 1346 | 1346 | |
| r21033 | r21034 | |
| 5888 | 5888 | UINT8 xor7, UINT8 b70, UINT8 b71, UINT8 b72, UINT8 b73, UINT8 b74, UINT8 b75, UINT8 b76,UINT8 b77 ) |
| 5889 | 5889 | { |
| 5890 | 5890 | int i; |
| 5891 | UINT8 *ROM = m | |
| 5891 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 5892 | 5892 | |
| 5893 | for(i = 0; i < m | |
| 5893 | for(i = 0; i < memregion("maincpu")->bytes(); i++) | |
| 5894 | 5894 | { |
| 5895 | 5895 | UINT8 x = ROM[i]; |
| 5896 | 5896 |
| r21033 | r21034 | |
|---|---|---|
| 298 | 298 | { |
| 299 | 299 | m_Bank = (data >> 1) & 7; |
| 300 | 300 | if (m_Bank <= 2) |
| 301 | membank("bank1")->set_base(m | |
| 301 | membank("bank1")->set_base(memregion("user1")->base() + m_Bank * 0x1000000); | |
| 302 | 302 | else |
| 303 | membank("bank1")->set_base(m | |
| 303 | membank("bank1")->set_base(memregion("user2")->base()); | |
| 304 | 304 | } |
| 305 | 305 | |
| 306 | 306 | TIMER_CALLBACK_MEMBER(crystal_state::Timercb) |
| r21033 | r21034 | |
| 376 | 376 | { |
| 377 | 377 | if (m_Bank <= 2) |
| 378 | 378 | { |
| 379 | UINT32 *ptr = (UINT32*)(m | |
| 379 | UINT32 *ptr = (UINT32*)(memregion("user1")->base() + m_Bank * 0x1000000); | |
| 380 | 380 | return ptr[0]; |
| 381 | 381 | } |
| 382 | 382 | else |
| r21033 | r21034 | |
| 955 | 955 | |
| 956 | 956 | DRIVER_INIT_MEMBER(crystal_state,crysking) |
| 957 | 957 | { |
| 958 | UINT16 *Rom = (UINT16*) m | |
| 958 | UINT16 *Rom = (UINT16*) memregion("user1")->base(); | |
| 959 | 959 | |
| 960 | 960 | //patch the data feed by the protection |
| 961 | 961 | |
| r21033 | r21034 | |
| 974 | 974 | |
| 975 | 975 | DRIVER_INIT_MEMBER(crystal_state,evosocc) |
| 976 | 976 | { |
| 977 | UINT16 *Rom = (UINT16*) m | |
| 977 | UINT16 *Rom = (UINT16*) memregion("user1")->base(); | |
| 978 | 978 | Rom += 0x1000000 * 2 / 2; |
| 979 | 979 | |
| 980 | 980 | Rom[WORD_XOR_LE(0x97388E/2)] = 0x90FC; //PUSH R2..R7 |
| r21033 | r21034 | |
| 992 | 992 | |
| 993 | 993 | DRIVER_INIT_MEMBER(crystal_state,topbladv) |
| 994 | 994 | { |
| 995 | UINT16 *Rom = (UINT16*) m | |
| 995 | UINT16 *Rom = (UINT16*) memregion("user1")->base(); | |
| 996 | 996 | |
| 997 | 997 | Rom[WORD_XOR_LE(0x12d7a/2)] = 0x90FC; //PUSH R7-R6-R5-R4-R3-R2 |
| 998 | 998 | Rom[WORD_XOR_LE(0x12d7c/2)] = 0x9001; //PUSH R0 |
| r21033 | r21034 | |
| 1010 | 1010 | |
| 1011 | 1011 | DRIVER_INIT_MEMBER(crystal_state,officeye) |
| 1012 | 1012 | { |
| 1013 | UINT16 *Rom = (UINT16*) m | |
| 1013 | UINT16 *Rom = (UINT16*) memregion("user1")->base(); | |
| 1014 | 1014 | |
| 1015 | 1015 | Rom[WORD_XOR_LE(0x9c9e/2)] = 0x901C; //PUSH R4-R3-R2 |
| 1016 | 1016 | Rom[WORD_XOR_LE(0x9ca0/2)] = 0x9001; //PUSH R0 |
| r21033 | r21034 | |
|---|---|---|
| 354 | 354 | |
| 355 | 355 | READ8_MEMBER(tempest_state::input_port_1_bit_r) |
| 356 | 356 | { |
| 357 | return ( | |
| 357 | return (ioport("IN1/DSW0")->read() & (1 << offset)) ? 0 : 228; | |
| 358 | 358 | } |
| 359 | 359 | |
| 360 | 360 | |
| 361 | 361 | READ8_MEMBER(tempest_state::input_port_2_bit_r) |
| 362 | 362 | { |
| 363 | return ( | |
| 363 | return (ioport("IN2")->read() & (1 << offset)) ? 0 : 228; | |
| 364 | 364 | } |
| 365 | 365 | |
| 366 | 366 |
| r21033 | r21034 | |
|---|---|---|
| 87 | 87 | |
| 88 | 88 | void chinsan_state::palette_init() |
| 89 | 89 | { |
| 90 | UINT8 *src = m | |
| 90 | UINT8 *src = memregion( "color_proms" )->base(); | |
| 91 | 91 | int i; |
| 92 | 92 | |
| 93 | 93 | for (i = 0; i < 0x100; i++) |
| r21033 | r21034 | |
|---|---|---|
| 272 | 272 | if ( bank == famicombox_banks[i].bank || |
| 273 | 273 | famicombox_banks[i].bank == 0 ) |
| 274 | 274 | { |
| 275 | machine().root_device().membank("cpubank1")->set_base(machine().root_device().memregion(famicombox_banks[i].memory_region)->base() + famicombox_banks[i].bank1_offset); | |
| 276 | machine().root_device().membank("cpubank2")->set_base(machine().root_device().memregion(famicombox_banks[i].memory_region)->base() + famicombox_banks[i].bank2_offset); | |
| 277 | machine().root_device().membank("ppubank1")->set_base(machine().root_device().memregion(famicombox_banks[i].memory_region)->base() + famicombox_banks[i].ppubank_offset); | |
| 275 | membank("cpubank1")->set_base(memregion(famicombox_banks[i].memory_region)->base() + famicombox_banks[i].bank1_offset); | |
| 276 | membank("cpubank2")->set_base(memregion(famicombox_banks[i].memory_region)->base() + famicombox_banks[i].bank2_offset); | |
| 277 | membank("ppubank1")->set_base(memregion(famicombox_banks[i].memory_region)->base() + famicombox_banks[i].ppubank_offset); | |
| 278 | 278 | break; |
| 279 | 279 | } |
| 280 | 280 | } |
| r21033 | r21034 | |
|---|---|---|
| 1300 | 1300 | |
| 1301 | 1301 | MACHINE_START_MEMBER(aerofgt_state,aerofgt) |
| 1302 | 1302 | { |
| 1303 | UINT8 *rom = m | |
| 1303 | UINT8 *rom = memregion("audiocpu")->base(); | |
| 1304 | 1304 | |
| 1305 | m | |
| 1305 | membank("bank1")->configure_entries(0, 4, &rom[0x10000], 0x8000); | |
| 1306 | 1306 | |
| 1307 | 1307 | MACHINE_START_CALL_MEMBER(common); |
| 1308 | 1308 | } |
| r21033 | r21034 | |
| 1316 | 1316 | { |
| 1317 | 1317 | MACHINE_RESET_CALL_MEMBER(common); |
| 1318 | 1318 | |
| 1319 | m | |
| 1319 | membank("bank1")->set_entry(0); /* needed by spinlbrk */ | |
| 1320 | 1320 | } |
| 1321 | 1321 | |
| 1322 | 1322 | static MACHINE_CONFIG_START( pspikes, aerofgt_state ) |
| r21033 | r21034 | |
|---|---|---|
| 456 | 456 | WRITE8_MEMBER(segas1x_bootleg_state::upd7759_bank_w)//* |
| 457 | 457 | { |
| 458 | 458 | device_t *device = machine().device("7759"); |
| 459 | int offs, size = m | |
| 459 | int offs, size = memregion("soundcpu")->bytes() - 0x10000; | |
| 460 | 460 | |
| 461 | 461 | upd7759_reset_w(device, data & 0x40); |
| 462 | 462 | offs = 0x10000 + (data * 0x4000) % size; |
| 463 | m | |
| 463 | membank("bank1")->set_base(memregion("soundcpu")->base() + offs); | |
| 464 | 464 | } |
| 465 | 465 | |
| 466 | 466 | |
| r21033 | r21034 | |
| 3326 | 3326 | |
| 3327 | 3327 | DRIVER_INIT_MEMBER(segas1x_bootleg_state,bayrouteb2) |
| 3328 | 3328 | { |
| 3329 | UINT8 *mem = m | |
| 3329 | UINT8 *mem = memregion("soundcpu")->base(); | |
| 3330 | 3330 | |
| 3331 | 3331 | memcpy(mem, mem + 0x10000, 0x8000); |
| 3332 | 3332 | |
| r21033 | r21034 | |
| 3342 | 3342 | |
| 3343 | 3343 | DRIVER_INIT_MEMBER(segas1x_bootleg_state,tturfbl) |
| 3344 | 3344 | { |
| 3345 | UINT8 *mem = m | |
| 3345 | UINT8 *mem = memregion("soundcpu")->base(); | |
| 3346 | 3346 | |
| 3347 | 3347 | memcpy(mem, mem + 0x10000, 0x8000); |
| 3348 | 3348 | |
| r21033 | r21034 | |
| 3374 | 3374 | /* Tetris-based */ |
| 3375 | 3375 | DRIVER_INIT_MEMBER(segas1x_bootleg_state,beautyb) |
| 3376 | 3376 | { |
| 3377 | UINT16*rom = (UINT16*)m | |
| 3377 | UINT16*rom = (UINT16*)memregion( "maincpu" )->base(); | |
| 3378 | 3378 | int x; |
| 3379 | 3379 | |
| 3380 | 3380 | for (x = 0; x < 0x8000; x++) |
| r21033 | r21034 | |
|---|---|---|
| 711 | 711 | |
| 712 | 712 | READ16_MEMBER(twinkle_state::twinkle_waveram_r) |
| 713 | 713 | { |
| 714 | UINT16 *waveram = (UINT16 *)m | |
| 714 | UINT16 *waveram = (UINT16 *)memregion("rfsnd")->base(); | |
| 715 | 715 | |
| 716 | 716 | return waveram[offset]; |
| 717 | 717 | } |
| 718 | 718 | |
| 719 | 719 | WRITE16_MEMBER(twinkle_state::twinkle_waveram_w) |
| 720 | 720 | { |
| 721 | UINT16 *waveram = (UINT16 *)m | |
| 721 | UINT16 *waveram = (UINT16 *)memregion("rfsnd")->base(); | |
| 722 | 722 | |
| 723 | 723 | COMBINE_DATA(&waveram[offset]); |
| 724 | 724 | } |
| r21033 | r21034 | |
|---|---|---|
| 640 | 640 | |
| 641 | 641 | MACHINE_RESET_MEMBER(zn_state,coh1000c) |
| 642 | 642 | { |
| 643 | machine().root_device().membank( "bank1" )->set_base( machine().root_device().memregion( "user2" )->base() ); /* fixed game rom */ | |
| 644 | machine().root_device().membank( "bank2" )->set_base( machine().root_device().memregion( "user2" )->base() + 0x400000 ); /* banked game rom */ | |
| 645 | machine().root_device().membank( "bank3" )->set_base( machine().root_device().memregion( "user3" )->base() ); /* country rom */ | |
| 643 | membank( "bank1" )->set_base( memregion( "user2" )->base() ); /* fixed game rom */ | |
| 644 | membank( "bank2" )->set_base( memregion( "user2" )->base() + 0x400000 ); /* banked game rom */ | |
| 645 | membank( "bank3" )->set_base( memregion( "user3" )->base() ); /* country rom */ | |
| 646 | 646 | } |
| 647 | 647 | |
| 648 | 648 | static ADDRESS_MAP_START( qsound_map, AS_PROGRAM, 8, zn_state ) |
| r21033 | r21034 | |
| 847 | 847 | |
| 848 | 848 | MACHINE_RESET_MEMBER(zn_state,coh3002c) |
| 849 | 849 | { |
| 850 | machine().root_device().membank( "bank1" )->set_base( machine().root_device().memregion( "user2" )->base() ); /* fixed game rom */ | |
| 851 | machine().root_device().membank( "bank2" )->set_base( machine().root_device().memregion( "user2" )->base() + 0x400000 ); /* banked game rom */ | |
| 852 | machine().root_device().membank( "bank3" )->set_base( machine().root_device().memregion( "user3" )->base() ); /* country rom */ | |
| 850 | membank( "bank1" )->set_base( memregion( "user2" )->base() ); /* fixed game rom */ | |
| 851 | membank( "bank2" )->set_base( memregion( "user2" )->base() + 0x400000 ); /* banked game rom */ | |
| 852 | membank( "bank3" )->set_base( memregion( "user3" )->base() ); /* country rom */ | |
| 853 | 853 | } |
| 854 | 854 | |
| 855 | 855 | static MACHINE_CONFIG_DERIVED( coh3002c, zn2 ) |
| r21033 | r21034 | |
| 1398 | 1398 | |
| 1399 | 1399 | MACHINE_RESET_MEMBER(zn_state,coh1000w) |
| 1400 | 1400 | { |
| 1401 | m | |
| 1401 | membank( "bank1" )->set_base( memregion( "user2" )->base() ); /* fixed game rom */ | |
| 1402 | 1402 | |
| 1403 | 1403 | machine().device("ide")->reset(); |
| 1404 | 1404 | } |
| r21033 | r21034 | |
| 1585 | 1585 | |
| 1586 | 1586 | MACHINE_RESET_MEMBER(zn_state,coh1002e) |
| 1587 | 1587 | { |
| 1588 | m | |
| 1588 | membank( "bank1" )->set_base( memregion( "user2" )->base() ); /* banked game rom */ | |
| 1589 | 1589 | } |
| 1590 | 1590 | |
| 1591 | 1591 | static ADDRESS_MAP_START( psarc_snd_map, AS_PROGRAM, 16, zn_state ) |
| r21033 | r21034 | |
| 1727 | 1727 | |
| 1728 | 1728 | MACHINE_RESET_MEMBER(zn_state,bam2) |
| 1729 | 1729 | { |
| 1730 | machine().root_device().membank( "bank1" )->set_base( machine().root_device().memregion( "user2" )->base() ); /* fixed game rom */ | |
| 1731 | machine().root_device().membank( "bank2" )->set_base( machine().root_device().memregion( "user2" )->base() + 0x400000 ); /* banked game rom */ | |
| 1730 | membank( "bank1" )->set_base( memregion( "user2" )->base() ); /* fixed game rom */ | |
| 1731 | membank( "bank2" )->set_base( memregion( "user2" )->base() + 0x400000 ); /* banked game rom */ | |
| 1732 | 1732 | } |
| 1733 | 1733 | |
| 1734 | 1734 | static MACHINE_CONFIG_DERIVED( bam2, zn1_2mb_vram ) |
| r21033 | r21034 | |
| 1974 | 1974 | |
| 1975 | 1975 | if( state->m_jdredd_gun_mux == 0 ) |
| 1976 | 1976 | { |
| 1977 | x = state->machine().root_device().ioport("GUN1X")->read(); | |
| 1978 | y = state->machine().root_device().ioport("GUN1Y")->read(); | |
| 1977 | x = state->ioport("GUN1X")->read(); | |
| 1978 | y = state->ioport("GUN1Y")->read(); | |
| 1979 | 1979 | } |
| 1980 | 1980 | else |
| 1981 | 1981 | { |
| 1982 | x = state->machine().root_device().ioport("GUN2X")->read(); | |
| 1983 | y = state->machine().root_device().ioport("GUN2Y")->read(); | |
| 1982 | x = state->ioport("GUN2X")->read(); | |
| 1983 | y = state->ioport("GUN2Y")->read(); | |
| 1984 | 1984 | } |
| 1985 | 1985 | |
| 1986 | 1986 | if( x > 0x393 && x < 0xcb2 && |
| r21033 | r21034 | |
| 2053 | 2053 | |
| 2054 | 2054 | MACHINE_RESET_MEMBER(zn_state,coh1000a) |
| 2055 | 2055 | { |
| 2056 | m | |
| 2056 | membank( "bank1" )->set_base( memregion( "user2" )->base() ); /* fixed game rom */ | |
| 2057 | 2057 | if( ( !strcmp( machine().system().name, "jdredd" ) ) || |
| 2058 | 2058 | ( !strcmp( machine().system().name, "jdreddb" ) ) ) |
| 2059 | 2059 | { |
| r21033 | r21034 | |
| 2208 | 2208 | |
| 2209 | 2209 | MACHINE_RESET_MEMBER(zn_state,coh1001l) |
| 2210 | 2210 | { |
| 2211 | m | |
| 2211 | membank( "bank1" )->set_base( memregion( "user2" )->base() ); /* banked rom */ | |
| 2212 | 2212 | } |
| 2213 | 2213 | |
| 2214 | 2214 | static MACHINE_CONFIG_DERIVED( coh1001l, zn1_2mb_vram ) |
| r21033 | r21034 | |
| 2250 | 2250 | |
| 2251 | 2251 | MACHINE_RESET_MEMBER(zn_state,coh1002v) |
| 2252 | 2252 | { |
| 2253 | machine().root_device().membank( "bank1" )->set_base( machine().root_device().memregion( "user2" )->base() ); /* fixed game rom */ | |
| 2254 | machine().root_device().membank( "bank2" )->set_base( machine().root_device().memregion( "user3" )->base() ); /* banked rom */ | |
| 2253 | membank( "bank1" )->set_base( memregion( "user2" )->base() ); /* fixed game rom */ | |
| 2254 | membank( "bank2" )->set_base( memregion( "user3" )->base() ); /* banked rom */ | |
| 2255 | 2255 | } |
| 2256 | 2256 | |
| 2257 | 2257 | static MACHINE_CONFIG_DERIVED( coh1002v, zn1_2mb_vram ) |
| r21033 | r21034 | |
| 2452 | 2452 | |
| 2453 | 2453 | MACHINE_RESET_MEMBER(zn_state,coh1002m) |
| 2454 | 2454 | { |
| 2455 | m | |
| 2455 | membank( "bank1" )->set_base( memregion( "user2" )->base() ); | |
| 2456 | 2456 | } |
| 2457 | 2457 | |
| 2458 | 2458 | READ8_MEMBER(zn_state::cbaj_z80_latch_r) |
| r21033 | r21034 | |
|---|---|---|
| 591 | 591 | |
| 592 | 592 | DRIVER_INIT_MEMBER(segald_state,astron) |
| 593 | 593 | { |
| 594 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 595 | machine().root_device().membank("bank1")->configure_entries(0, 2, &ROM[0x8000], 0x4000); | |
| 594 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 595 | membank("bank1")->configure_entries(0, 2, &ROM[0x8000], 0x4000); | |
| 596 | 596 | } |
| 597 | 597 | |
| 598 | 598 |
| r21033 | r21034 | |
|---|---|---|
| 85 | 85 | |
| 86 | 86 | m_dial[i] += delta; |
| 87 | 87 | |
| 88 | switch ( | |
| 88 | switch (ioport(i ? "GEAR_P2" : "GEAR_P1")->read() & 15) | |
| 89 | 89 | { |
| 90 | 90 | case 1: m_gear[i] = 1; break; |
| 91 | 91 | case 2: m_gear[i] = 2; break; |
| r21033 | r21034 | |
|---|---|---|
| 78 | 78 | /* monitor motor under joystick control */ |
| 79 | 79 | if (*m_motor_on & 0x01) |
| 80 | 80 | { |
| 81 | int ip3 = machine().root_device().ioport("IN3")->read(); | |
| 82 | int ip4 = machine().root_device().ioport("FAKE")->read(); | |
| 81 | int ip3 = ioport("IN3")->read(); | |
| 82 | int ip4 = ioport("FAKE")->read(); | |
| 83 | 83 | |
| 84 | 84 | /* up */ |
| 85 | 85 | if (((ip4 & 0x01) == 0) && (m_vert_pos > -128)) |
| r21033 | r21034 | |
|---|---|---|
| 2515 | 2515 | |
| 2516 | 2516 | void galaxian_state::decode_mooncrst(int length, UINT8 *dest) |
| 2517 | 2517 | { |
| 2518 | UINT8 *rom = m | |
| 2518 | UINT8 *rom = memregion("maincpu")->base(); | |
| 2519 | 2519 | int offs; |
| 2520 | 2520 | |
| 2521 | 2521 | for (offs = 0; offs < length; offs++) |
| r21033 | r21034 | |
| 2577 | 2577 | { 0,2,0,2 }, |
| 2578 | 2578 | { 1,4,1,4 } |
| 2579 | 2579 | }; |
| 2580 | UINT8 *rombase = machine().root_device().memregion("maincpu")->base(); | |
| 2581 | UINT32 romlength = machine().root_device().memregion("maincpu")->bytes(); | |
| 2580 | UINT8 *rombase = memregion("maincpu")->base(); | |
| 2581 | UINT32 romlength = memregion("maincpu")->bytes(); | |
| 2582 | 2582 | UINT32 offs; |
| 2583 | 2583 | |
| 2584 | 2584 | for (offs = 0; offs < romlength; offs++) |
| r21033 | r21034 | |
| 2594 | 2594 | |
| 2595 | 2595 | void galaxian_state::decode_dingoe() |
| 2596 | 2596 | { |
| 2597 | UINT8 *rombase = machine().root_device().memregion("maincpu")->base(); | |
| 2598 | UINT32 romlength = machine().root_device().memregion("maincpu")->bytes(); | |
| 2597 | UINT8 *rombase = memregion("maincpu")->base(); | |
| 2598 | UINT32 romlength = memregion("maincpu")->bytes(); | |
| 2599 | 2599 | UINT32 offs; |
| 2600 | 2600 | |
| 2601 | 2601 | for (offs = 0; offs < romlength; offs++) |
| r21033 | r21034 | |
| 2617 | 2617 | |
| 2618 | 2618 | void galaxian_state::decode_frogger_sound() |
| 2619 | 2619 | { |
| 2620 | UINT8 *rombase = m | |
| 2620 | UINT8 *rombase = memregion("audiocpu")->base(); | |
| 2621 | 2621 | UINT32 offs; |
| 2622 | 2622 | |
| 2623 | 2623 | /* the first ROM of the sound CPU has data lines D0 and D1 swapped */ |
| r21033 | r21034 | |
| 2628 | 2628 | |
| 2629 | 2629 | void galaxian_state::decode_frogger_gfx() |
| 2630 | 2630 | { |
| 2631 | UINT8 *rombase = m | |
| 2631 | UINT8 *rombase = memregion("gfx1")->base(); | |
| 2632 | 2632 | UINT32 offs; |
| 2633 | 2633 | |
| 2634 | 2634 | /* the 2nd gfx ROM has data lines D0 and D1 swapped */ |
| r21033 | r21034 | |
| 2639 | 2639 | |
| 2640 | 2640 | void galaxian_state::decode_anteater_gfx() |
| 2641 | 2641 | { |
| 2642 | UINT32 romlength = machine().root_device().memregion("gfx1")->bytes(); | |
| 2643 | UINT8 *rombase = machine().root_device().memregion("gfx1")->base(); | |
| 2642 | UINT32 romlength = memregion("gfx1")->bytes(); | |
| 2643 | UINT8 *rombase = memregion("gfx1")->base(); | |
| 2644 | 2644 | UINT8 *scratch = auto_alloc_array(machine(), UINT8, romlength); |
| 2645 | 2645 | UINT32 offs; |
| 2646 | 2646 | |
| r21033 | r21034 | |
| 2659 | 2659 | |
| 2660 | 2660 | void galaxian_state::decode_losttomb_gfx() |
| 2661 | 2661 | { |
| 2662 | UINT32 romlength = machine().root_device().memregion("gfx1")->bytes(); | |
| 2663 | UINT8 *rombase = machine().root_device().memregion("gfx1")->base(); | |
| 2662 | UINT32 romlength = memregion("gfx1")->bytes(); | |
| 2663 | UINT8 *rombase = memregion("gfx1")->base(); | |
| 2664 | 2664 | UINT8 *scratch = auto_alloc_array(machine(), UINT8, romlength); |
| 2665 | 2665 | UINT32 offs; |
| 2666 | 2666 | |
| r21033 | r21034 | |
| 2684 | 2684 | |
| 2685 | 2685 | /* Deryption worked out by hand by Chris Hardy. */ |
| 2686 | 2686 | |
| 2687 | RAM = m | |
| 2687 | RAM = memregion("maincpu")->base(); | |
| 2688 | 2688 | |
| 2689 | 2689 | for (i = 0;i < 0x1000;i++) |
| 2690 | 2690 | { |
| r21033 | r21034 | |
| 2843 | 2843 | common_init(&galaxian_state::galaxian_draw_bullet, &galaxian_state::galaxian_draw_background, &galaxian_state::mooncrst_extend_tile_info, &galaxian_state::mooncrst_extend_sprite_info); |
| 2844 | 2844 | |
| 2845 | 2845 | /* decrypt program code */ |
| 2846 | decode_mooncrst(0x8000, m | |
| 2846 | decode_mooncrst(0x8000, memregion("maincpu")->base()); | |
| 2847 | 2847 | } |
| 2848 | 2848 | |
| 2849 | 2849 | |
| r21033 | r21034 | |
| 3125 | 3125 | space.install_ram(0x8000, 0x87ff); |
| 3126 | 3126 | |
| 3127 | 3127 | /* extend ROM */ |
| 3128 | space.install_rom(0x0000, 0x7fff, m | |
| 3128 | space.install_rom(0x0000, 0x7fff, memregion("maincpu")->base()); | |
| 3129 | 3129 | } |
| 3130 | 3130 | |
| 3131 | 3131 | |
| 3132 | 3132 | void galaxian_state::mshuttle_decode(const UINT8 convtable[8][16]) |
| 3133 | 3133 | { |
| 3134 | 3134 | address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); |
| 3135 | UINT8 *rom = m | |
| 3135 | UINT8 *rom = memregion("maincpu")->base(); | |
| 3136 | 3136 | UINT8 *decrypt = auto_alloc_array(machine(), UINT8, 0x10000); |
| 3137 | 3137 | int A; |
| 3138 | 3138 | |
| r21033 | r21034 | |
| 3230 | 3230 | 3, 7, 7, 7 // ok! |
| 3231 | 3231 | }; |
| 3232 | 3232 | |
| 3233 | UINT8* romdata = machine().root_device().memregion("maincpu")->base(); | |
| 3234 | assert(machine().root_device().memregion("maincpu")->bytes() == 0x8000); | |
| 3233 | UINT8* romdata = memregion("maincpu")->base(); | |
| 3234 | assert(memregion("maincpu")->bytes() == 0x8000); | |
| 3235 | 3235 | UINT8 buf[0x8000]; |
| 3236 | 3236 | memcpy(buf, romdata, 0x8000); |
| 3237 | 3237 |
| r21033 | r21034 | |
|---|---|---|
| 775 | 775 | DRIVER_INIT_MEMBER(kickgoal_state,kickgoal) |
| 776 | 776 | { |
| 777 | 777 | #if 0 /* we should find a real fix instead */ |
| 778 | UINT16 *rom = (UINT16 *)m | |
| 778 | UINT16 *rom = (UINT16 *)memregion("maincpu")->base(); | |
| 779 | 779 | |
| 780 | 780 | /* fix "bug" that prevents game from writing to EEPROM */ |
| 781 | 781 | rom[0x12b0/2] = 0x0001; |
| r21033 | r21034 | |
|---|---|---|
| 533 | 533 | |
| 534 | 534 | void avt_state::palette_init() |
| 535 | 535 | { |
| 536 | const UINT8 *color_prom = m | |
| 536 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 537 | 537 | /* prom bits |
| 538 | 538 | 7654 3210 |
| 539 | 539 | ---- ---x Intensity?. |
| r21033 | r21034 | |
|---|---|---|
| 1578 | 1578 | |
| 1579 | 1579 | READ8_MEMBER(seta_state::dsw1_r) |
| 1580 | 1580 | { |
| 1581 | return ( | |
| 1581 | return (ioport("DSW")->read() >> 8) & 0xff; | |
| 1582 | 1582 | } |
| 1583 | 1583 | |
| 1584 | 1584 | READ8_MEMBER(seta_state::dsw2_r) |
| 1585 | 1585 | { |
| 1586 | return ( | |
| 1586 | return (ioport("DSW")->read() >> 0) & 0xff; | |
| 1587 | 1587 | } |
| 1588 | 1588 | |
| 1589 | 1589 | |
| r21033 | r21034 | |
| 10759 | 10759 | |
| 10760 | 10760 | DRIVER_INIT_MEMBER(seta_state,metafox) |
| 10761 | 10761 | { |
| 10762 | UINT16 *RAM = (UINT16 *) m | |
| 10762 | UINT16 *RAM = (UINT16 *) memregion("maincpu")->base(); | |
| 10763 | 10763 | |
| 10764 | 10764 | /* This game uses the 21c000-21ffff area for protection? */ |
| 10765 | 10765 | // machine().device("maincpu")->memory().space(AS_PROGRAM).nop_readwrite(0x21c000, 0x21ffff); |
| r21033 | r21034 | |
| 10782 | 10782 | rom_size = 0x80000; |
| 10783 | 10783 | buf = auto_alloc_array(machine(), UINT8, rom_size); |
| 10784 | 10784 | |
| 10785 | rom = m | |
| 10785 | rom = memregion("gfx2")->base() + 0x40000; | |
| 10786 | 10786 | |
| 10787 | 10787 | for (rpos = 0; rpos < rom_size/2; rpos++) { |
| 10788 | 10788 | buf[rpos+0x40000] = rom[rpos*2]; |
| r21033 | r21034 | |
| 10791 | 10791 | |
| 10792 | 10792 | memcpy( rom, buf, rom_size ); |
| 10793 | 10793 | |
| 10794 | rom = m | |
| 10794 | rom = memregion("gfx3")->base() + 0x40000; | |
| 10795 | 10795 | |
| 10796 | 10796 | for (rpos = 0; rpos < rom_size/2; rpos++) { |
| 10797 | 10797 | buf[rpos+0x40000] = rom[rpos*2]; |
| r21033 | r21034 | |
| 10819 | 10819 | |
| 10820 | 10820 | DRIVER_INIT_MEMBER(seta_state,kiwame) |
| 10821 | 10821 | { |
| 10822 | UINT16 *RAM = (UINT16 *) m | |
| 10822 | UINT16 *RAM = (UINT16 *) memregion("maincpu")->base(); | |
| 10823 | 10823 | |
| 10824 | 10824 | /* WARNING: This game writes to the interrupt vector |
| 10825 | 10825 | table. Lev 1 routine address is stored at $100 */ |
| r21033 | r21034 | |
| 10841 | 10841 | UINT8 temp[16]; |
| 10842 | 10842 | int i,j; |
| 10843 | 10843 | |
| 10844 | src = machine().root_device().memregion("maincpu")->base(); | |
| 10845 | len = machine().root_device().memregion("maincpu")->bytes(); | |
| 10844 | src = memregion("maincpu")->base(); | |
| 10845 | len = memregion("maincpu")->bytes(); | |
| 10846 | 10846 | for (i = 0;i < len;i += 16) |
| 10847 | 10847 | { |
| 10848 | 10848 | memcpy(temp,&src[i],16); |
| r21033 | r21034 | |
|---|---|---|
| 870 | 870 | |
| 871 | 871 | DRIVER_INIT_MEMBER(midas_state,livequiz) |
| 872 | 872 | { |
| 873 | UINT16 *rom = (UINT16 *) m | |
| 873 | UINT16 *rom = (UINT16 *) memregion("maincpu")->base(); | |
| 874 | 874 | |
| 875 | 875 | // PROTECTION CHECKS |
| 876 | 876 | rom[0x13345a/2] = 0x4e75; |
| r21033 | r21034 | |
|---|---|---|
| 387 | 387 | |
| 388 | 388 | DRIVER_INIT_MEMBER(arcadecl_state,sparkz) |
| 389 | 389 | { |
| 390 | memset(m | |
| 390 | memset(memregion("gfx1")->base(), 0, memregion("gfx1")->bytes()); | |
| 391 | 391 | } |
| 392 | 392 | |
| 393 | 393 |
| r21033 | r21034 | |
|---|---|---|
| 2114 | 2114 | |
| 2115 | 2115 | DRIVER_INIT_MEMBER(astrafr_state,astradec) |
| 2116 | 2116 | { |
| 2117 | astra_addresslines( (UINT16*)m | |
| 2117 | astra_addresslines( (UINT16*)memregion( "maincpu" )->base(), memregion( "maincpu" )->bytes(), 0 ); | |
| 2118 | 2118 | } |
| 2119 | 2119 | |
| 2120 | 2120 | |
| 2121 | 2121 | |
| 2122 | 2122 | DRIVER_INIT_MEMBER(astrafr_state,astradec_dual) |
| 2123 | 2123 | { |
| 2124 | astra_addresslines( (UINT16*)machine().root_device().memregion( "maincpu" )->base(), machine().root_device().memregion( "maincpu" )->bytes(), 0 ); | |
| 2125 | astra_addresslines( (UINT16*)machine().root_device().memregion( "slavecpu" )->base(), machine().root_device().memregion( "slavecpu" )->bytes(), 0 ); | |
| 2124 | astra_addresslines( (UINT16*)memregion( "maincpu" )->base(), memregion( "maincpu" )->bytes(), 0 ); | |
| 2125 | astra_addresslines( (UINT16*)memregion( "slavecpu" )->base(), memregion( "slavecpu" )->bytes(), 0 ); | |
| 2126 | 2126 | } |
| 2127 | 2127 | |
| 2128 | 2128 | DRIVER_INIT_MEMBER(astrafr_state,astradec_sml) |
| 2129 | 2129 | { |
| 2130 | astra_addresslines( (UINT16*)m | |
| 2130 | astra_addresslines( (UINT16*)memregion( "maincpu" )->base(), memregion( "maincpu" )->bytes(), 1 ); | |
| 2131 | 2131 | } |
| 2132 | 2132 | |
| 2133 | 2133 | DRIVER_INIT_MEMBER(astrafr_state,astradec_sml_dual) |
| 2134 | 2134 | { |
| 2135 | astra_addresslines( (UINT16*)machine().root_device().memregion( "maincpu" )->base(), machine().root_device().memregion( "maincpu" )->bytes(), 1 ); | |
| 2136 | astra_addresslines( (UINT16*)machine().root_device().memregion( "slavecpu" )->base(), machine().root_device().memregion( "slavecpu" )->bytes(), 1 ); | |
| 2135 | astra_addresslines( (UINT16*)memregion( "maincpu" )->base(), memregion( "maincpu" )->bytes(), 1 ); | |
| 2136 | astra_addresslines( (UINT16*)memregion( "slavecpu" )->base(), memregion( "slavecpu" )->bytes(), 1 ); | |
| 2137 | 2137 | } |
| 2138 | 2138 | |
| 2139 | 2139 | // Single games? |
| r21033 | r21034 | |
|---|---|---|
| 397 | 397 | void system1_state::bank44_custom_w(UINT8 data, UINT8 prevdata) |
| 398 | 398 | { |
| 399 | 399 | /* bank bits are bits 6 and 2 */ |
| 400 | m | |
| 400 | membank("bank1")->set_entry(((data & 0x40) >> 5) | ((data & 0x04) >> 2)); | |
| 401 | 401 | } |
| 402 | 402 | |
| 403 | 403 | |
| 404 | 404 | void system1_state::bank0c_custom_w(UINT8 data, UINT8 prevdata) |
| 405 | 405 | { |
| 406 | 406 | /* bank bits are bits 3 and 2 */ |
| 407 | m | |
| 407 | membank("bank1")->set_entry((data & 0x0c) >> 2); | |
| 408 | 408 | } |
| 409 | 409 | |
| 410 | 410 | |
| r21033 | r21034 | |
| 4735 | 4735 | |
| 4736 | 4736 | /* additionally to the usual protection, all the program ROMs have data lines */ |
| 4737 | 4737 | /* D0 and D1 swapped. */ |
| 4738 | rom = m | |
| 4738 | rom = memregion("maincpu")->base(); | |
| 4739 | 4739 | for (A = 0;A < 0xc000;A++) |
| 4740 | 4740 | rom[A] = (rom[A] & 0xfc) | ((rom[A] & 1) << 1) | ((rom[A] & 2) >> 1); |
| 4741 | 4741 | |
| 4742 | 4742 | /* the tile gfx ROMs are mangled as well: */ |
| 4743 | rom = m | |
| 4743 | rom = memregion("tiles")->base(); | |
| 4744 | 4744 | |
| 4745 | 4745 | /* the first ROM has data lines D0 and D6 swapped. */ |
| 4746 | 4746 | for (A = 0x0000;A < 0x4000;A++) |
| r21033 | r21034 | |
| 4800 | 4800 | /* Patch to get PRG ROMS ('T', 'R' and 'S) status as "GOOD" in the "test mode" */ |
| 4801 | 4801 | /* not really needed */ |
| 4802 | 4802 | |
| 4803 | // UINT8 *ROM = m | |
| 4803 | // UINT8 *ROM = memregion("maincpu")->base(); | |
| 4804 | 4804 | |
| 4805 | 4805 | // ROM[0x3296] = 0x18; // 'jr' instead of 'jr z' - 'T' (PRG Main ROM) |
| 4806 | 4806 | // ROM[0x32be] = 0x18; // 'jr' instead of 'jr z' - 'R' (Banked ROM 1) |
| r21033 | r21034 | |
| 4813 | 4813 | |
| 4814 | 4814 | /* Patch to get sound in later levels(the program enters into a tight loop)*/ |
| 4815 | 4815 | address_space &iospace = machine().device("maincpu")->memory().space(AS_IO); |
| 4816 | UINT8 *ROM2 = m | |
| 4816 | UINT8 *ROM2 = memregion("soundcpu")->base(); | |
| 4817 | 4817 | |
| 4818 | 4818 | ROM2[0x02f9] = 0x28;//'jr z' instead of 'jr' |
| 4819 | 4819 | |
| r21033 | r21034 | |
| 4829 | 4829 | DRIVER_INIT_MEMBER(system1_state,bootleg) |
| 4830 | 4830 | { |
| 4831 | 4831 | address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); |
| 4832 | space.set_decrypted_region(0x0000, 0x7fff, m | |
| 4832 | space.set_decrypted_region(0x0000, 0x7fff, memregion("maincpu")->base() + 0x10000); | |
| 4833 | 4833 | DRIVER_INIT_CALL(bank00); |
| 4834 | 4834 | } |
| 4835 | 4835 | |
| r21033 | r21034 | |
| 4837 | 4837 | DRIVER_INIT_MEMBER(system1_state,bootsys2) |
| 4838 | 4838 | { |
| 4839 | 4839 | address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); |
| 4840 | space.set_decrypted_region(0x0000, 0x7fff, machine().root_device().memregion("maincpu")->base() + 0x20000); | |
| 4841 | machine().root_device().membank("bank1")->configure_decrypted_entries(0, 4, machine().root_device().memregion("maincpu")->base() + 0x30000, 0x4000); | |
| 4840 | space.set_decrypted_region(0x0000, 0x7fff, memregion("maincpu")->base() + 0x20000); | |
| 4841 | membank("bank1")->configure_decrypted_entries(0, 4, memregion("maincpu")->base() + 0x30000, 0x4000); | |
| 4842 | 4842 | DRIVER_INIT_CALL(bank0c); |
| 4843 | 4843 | } |
| 4844 | 4844 | |
| 4845 | 4845 | DRIVER_INIT_MEMBER(system1_state,choplift) |
| 4846 | 4846 | { |
| 4847 | UINT8 *mcurom = m | |
| 4847 | UINT8 *mcurom = memregion("mcu")->base(); | |
| 4848 | 4848 | |
| 4849 | 4849 | /* the ROM dump we have is bad; the following patches make it work */ |
| 4850 | 4850 | mcurom[0x100] = 0x55; /* D5 in current dump */ |
| r21033 | r21034 | |
|---|---|---|
| 338 | 338 | void gunpey_state::palette_init() |
| 339 | 339 | { |
| 340 | 340 | int i,r,g,b,val; |
| 341 | UINT8 *blit_rom = m | |
| 341 | UINT8 *blit_rom = memregion("blit_data")->base(); | |
| 342 | 342 | |
| 343 | 343 | for (i = 0; i < 512; i+=2) |
| 344 | 344 | { |
| r21033 | r21034 | |
| 413 | 413 | |
| 414 | 414 | DRIVER_INIT_MEMBER(gunpey_state,gunpey) |
| 415 | 415 | { |
| 416 | UINT8 *rom = m | |
| 416 | UINT8 *rom = memregion("maincpu")->base(); | |
| 417 | 417 | |
| 418 | 418 | /* patch SLOOOOW cycle checks ... */ |
| 419 | 419 | rom[0x848b5] = 0x7e; |
| r21033 | r21034 | |
|---|---|---|
| 661 | 661 | WRITE_LINE_MEMBER(calomega_state::tx_rx_clk) |
| 662 | 662 | { |
| 663 | 663 | int trx_clk; |
| 664 | UINT8 dsw2 = | |
| 664 | UINT8 dsw2 = ioport("SW2")->read(); | |
| 665 | 665 | trx_clk = UART_CLOCK * dsw2 / 128; |
| 666 | 666 | acia6850_device *acia = machine().device<acia6850_device>("acia6850_0"); |
| 667 | 667 | acia->set_rx_clock(trx_clk); |
| r21033 | r21034 | |
| 679 | 679 | case 0x80: return ioport("IN0-3")->read(); |
| 680 | 680 | } |
| 681 | 681 | |
| 682 | return | |
| 682 | return ioport("FRQ")->read(); /* bit7 used for 50/60 Hz selector */ | |
| 683 | 683 | } |
| 684 | 684 | |
| 685 | 685 | WRITE8_MEMBER(calomega_state::s903_mux_w) |
| r21033 | r21034 | |
| 699 | 699 | case 0x08: return ioport("IN0-3")->read(); |
| 700 | 700 | } |
| 701 | 701 | |
| 702 | return | |
| 702 | return ioport("FRQ")->read(); /* bit6 used for 50/60 Hz selector */ | |
| 703 | 703 | } |
| 704 | 704 | |
| 705 | 705 | WRITE8_MEMBER(calomega_state::s905_mux_w) |
| r21033 | r21034 | |
| 714 | 714 | { |
| 715 | 715 | /* Valid input port. Each polled value is stored at $0538 */ |
| 716 | 716 | logerror("PIA0: Port A in\n"); |
| 717 | return | |
| 717 | return ioport("IN0")->read(); | |
| 718 | 718 | } |
| 719 | 719 | |
| 720 | 720 | READ8_MEMBER(calomega_state::pia0_bin_r) |
| r21033 | r21034 | |
| 3909 | 3909 | { |
| 3910 | 3910 | /* background color is adjusted through RGB pots */ |
| 3911 | 3911 | int x; |
| 3912 | UINT8 *BPR = m | |
| 3912 | UINT8 *BPR = memregion( "proms" )->base(); | |
| 3913 | 3913 | |
| 3914 | 3914 | for (x = 0x0000; x < 0x0400; x++) |
| 3915 | 3915 | { |
| r21033 | r21034 | |
| 3921 | 3921 | DRIVER_INIT_MEMBER(calomega_state,elgrande) |
| 3922 | 3922 | { |
| 3923 | 3923 | int x; |
| 3924 | UINT8 *BPR = m | |
| 3924 | UINT8 *BPR = memregion( "proms" )->base(); | |
| 3925 | 3925 | |
| 3926 | 3926 | /* background color is adjusted through RGB pots */ |
| 3927 | 3927 | for (x = 0x0000; x < 0x0400; x++) |
| r21033 | r21034 | |
| 3935 | 3935 | { |
| 3936 | 3936 | /* background color is adjusted through RGB pots */ |
| 3937 | 3937 | int x; |
| 3938 | UINT8 *BPR = m | |
| 3938 | UINT8 *BPR = memregion( "proms" )->base(); | |
| 3939 | 3939 | |
| 3940 | 3940 | for (x = 0x0000; x < 0x0400; x++) |
| 3941 | 3941 | { |
| r21033 | r21034 | |
| 3948 | 3948 | { |
| 3949 | 3949 | /* background color is adjusted through RGB pots */ |
| 3950 | 3950 | int x; |
| 3951 | UINT8 *BPR = m | |
| 3951 | UINT8 *BPR = memregion( "proms" )->base(); | |
| 3952 | 3952 | |
| 3953 | 3953 | for (x = 0x0000; x < 0x0400; x++) |
| 3954 | 3954 | { |
| r21033 | r21034 | |
| 3960 | 3960 | Start = $2042; NMI = $26f8; |
| 3961 | 3961 | Also a fake vector at $3ff8-$3ff9. The code checks these values to continue. |
| 3962 | 3962 | */ |
| 3963 | UINT8 *PRGROM = m | |
| 3963 | UINT8 *PRGROM = memregion( "maincpu" )->base(); | |
| 3964 | 3964 | |
| 3965 | 3965 | PRGROM[0x3ff8] = 0x8e; /* checked by code */ |
| 3966 | 3966 | PRGROM[0x3ff9] = 0x97; /* checked by code */ |
| r21033 | r21034 | |
|---|---|---|
| 407 | 407 | // init rom bank //////////////////////////////////////////////////////// |
| 408 | 408 | |
| 409 | 409 | { |
| 410 | UINT8 *rom = m | |
| 410 | UINT8 *rom = memregion("maincpu")->base(); | |
| 411 | 411 | |
| 412 | 412 | membank("bank1")->configure_entries(0, 4, &rom[0x00000], 0x02000); |
| 413 | 413 | |
| r21033 | r21034 | |
| 2192 | 2192 | { |
| 2193 | 2193 | // search for the project string to find the title (usually just at ff00) |
| 2194 | 2194 | char title_string[4][32] = { "PROJECT NUMBER", "PROJECT PR", "PROJECT ", "CASH ON THE NILE 2" }; |
| 2195 | UINT8 *src = machine().root_device().memregion( "maincpu" )->base(); | |
| 2196 | int size = machine().root_device().memregion( "maincpu" )->bytes(); | |
| 2195 | UINT8 *src = memregion( "maincpu" )->base(); | |
| 2196 | int size = memregion( "maincpu" )->bytes(); | |
| 2197 | 2197 | |
| 2198 | 2198 | for (int search=0;search<4;search++) |
| 2199 | 2199 | { |
| r21033 | r21034 | |
|---|---|---|
| 187 | 187 | if (data == 0) // RAM at 00000000, ROM at 10000000 |
| 188 | 188 | { |
| 189 | 189 | membank("bank1")->set_base(m_workram ); |
| 190 | membank("bank2")->set_base(m | |
| 190 | membank("bank2")->set_base(memregion("maincpu")->base() ); | |
| 191 | 191 | } |
| 192 | 192 | else // ROM at 00000000, RAM at 10000000 |
| 193 | 193 | { |
| 194 | membank("bank1")->set_base(m | |
| 194 | membank("bank1")->set_base(memregion("maincpu")->base() ); | |
| 195 | 195 | membank("bank2")->set_base(m_workram ); |
| 196 | 196 | } |
| 197 | 197 | } |
| r21033 | r21034 | |
|---|---|---|
| 388 | 388 | |
| 389 | 389 | void sub_state::palette_init() |
| 390 | 390 | { |
| 391 | const UINT8 *color_prom = m | |
| 391 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 392 | 392 | int i; |
| 393 | UINT8* lookup = m | |
| 393 | UINT8* lookup = memregion("proms2")->base(); | |
| 394 | 394 | |
| 395 | 395 | /* allocate the colortable */ |
| 396 | 396 | machine().colortable = colortable_alloc(machine(), 0x100); |
| r21033 | r21034 | |
|---|---|---|
| 20 | 20 | DRIVER_INIT_MEMBER(adder5_state,ad5) |
| 21 | 21 | { |
| 22 | 22 | // sc5 roms always start with SC5 |
| 23 | UINT8 *src = m | |
| 23 | UINT8 *src = memregion( "maincpu" )->base(); | |
| 24 | 24 | // printf("%02x %02x %02x %02x\n", src[0], src[1], src[2], src[3]); |
| 25 | 25 | if (((src[0] == 0x20) && (src[2] == 0x43)) || ((src[1] == 0x35) && (src[3] == 0x53))) |
| 26 | 26 | { |
| r21033 | r21034 | |
|---|---|---|
| 497 | 497 | |
| 498 | 498 | DRIVER_INIT_MEMBER(_1942_state,1942) |
| 499 | 499 | { |
| 500 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 501 | machine().root_device().membank("bank1")->configure_entries(0, 3, &ROM[0x10000], 0x4000); | |
| 500 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 501 | membank("bank1")->configure_entries(0, 3, &ROM[0x10000], 0x4000); | |
| 502 | 502 | } |
| 503 | 503 | |
| 504 | 504 |
| r21033 | r21034 | |
|---|---|---|
| 236 | 236 | |
| 237 | 237 | init_pc_common(machine(), PCCOMMON_KEYBOARD_AT, streetg2_set_keyb_int); |
| 238 | 238 | |
| 239 | machine().root_device().membank("rombank")->configure_entries(0, 0x80, machine().root_device().memregion("game_prg")->base(), 0x8000 ); | |
| 240 | machine().root_device().membank("rombank")->set_entry(0); | |
| 239 | membank("rombank")->configure_entries(0, 0x80, memregion("game_prg")->base(), 0x8000 ); | |
| 240 | membank("rombank")->set_entry(0); | |
| 241 | 241 | |
| 242 | 242 | //microtouch_init(machine(), pcat_nit_microtouch_tx_callback, NULL); |
| 243 | 243 | } |
| r21033 | r21034 | |
|---|---|---|
| 771 | 771 | DRIVER_INIT_MEMBER(lazercmd_state,lazercmd) |
| 772 | 772 | { |
| 773 | 773 | int i, y; |
| 774 | UINT8 *gfx = m | |
| 774 | UINT8 *gfx = memregion("gfx1")->base(); | |
| 775 | 775 | |
| 776 | 776 | /****************************************************************** |
| 777 | 777 | * To show the maze bit #6 and #7 of the video ram are used. |
| r21033 | r21034 | |
| 800 | 800 | DRIVER_INIT_MEMBER(lazercmd_state,medlanes) |
| 801 | 801 | { |
| 802 | 802 | int i, y; |
| 803 | UINT8 *gfx = m | |
| 803 | UINT8 *gfx = memregion("gfx1")->base(); | |
| 804 | 804 | |
| 805 | 805 | /****************************************************************** |
| 806 | 806 | * To show the maze bit #6 and #7 of the video ram are used. |
| r21033 | r21034 | |
| 829 | 829 | DRIVER_INIT_MEMBER(lazercmd_state,bbonk) |
| 830 | 830 | { |
| 831 | 831 | int i, y; |
| 832 | UINT8 *gfx = m | |
| 832 | UINT8 *gfx = memregion("gfx1")->base(); | |
| 833 | 833 | |
| 834 | 834 | /****************************************************************** |
| 835 | 835 | * To show the maze bit #6 and #7 of the video ram are used. |
| r21033 | r21034 | |
|---|---|---|
| 1277 | 1277 | ********************************/ |
| 1278 | 1278 | |
| 1279 | 1279 | i = 0; |
| 1280 | //patch = machine().root_device().memregion("user1")->base(); | |
| 1281 | rom = machine().root_device().memregion("maincpu")->base(); | |
| 1280 | //patch = memregion("user1")->base(); | |
| 1281 | rom = memregion("maincpu")->base(); | |
| 1282 | 1282 | decrypted = auto_alloc_array(machine(), UINT8, 0x6000); |
| 1283 | 1283 | |
| 1284 | 1284 | mainspace.set_decrypted_region(0xa000, 0xffff, decrypted); |
| r21033 | r21034 | |
| 1290 | 1290 | } |
| 1291 | 1291 | |
| 1292 | 1292 | i = 0; |
| 1293 | //patch = machine().root_device().memregion("user2")->base(); | |
| 1294 | rom = machine().root_device().memregion("videocpu")->base(); | |
| 1293 | //patch = memregion("user2")->base(); | |
| 1294 | rom = memregion("videocpu")->base(); | |
| 1295 | 1295 | decrypted = auto_alloc_array(machine(), UINT8, 0x6000); |
| 1296 | 1296 | |
| 1297 | 1297 | videospace.set_decrypted_region(0xa000, 0xffff, decrypted); |
| r21033 | r21034 | |
| 1307 | 1307 | DRIVER_INIT_MEMBER(qix_state,zookeep) |
| 1308 | 1308 | { |
| 1309 | 1309 | /* configure the banking */ |
| 1310 | machine().root_device().membank("bank1")->configure_entry(0, machine().root_device().memregion("videocpu")->base() + 0xa000); | |
| 1311 | machine().root_device().membank("bank1")->configure_entry(1, machine().root_device().memregion("videocpu")->base() + 0x10000); | |
| 1312 | machine().root_device().membank("bank1")->set_entry(0); | |
| 1310 | membank("bank1")->configure_entry(0, memregion("videocpu")->base() + 0xa000); | |
| 1311 | membank("bank1")->configure_entry(1, memregion("videocpu")->base() + 0x10000); | |
| 1312 | membank("bank1")->set_entry(0); | |
| 1313 | 1313 | } |
| 1314 | 1314 | |
| 1315 | 1315 |
| r21033 | r21034 | |
|---|---|---|
| 631 | 631 | |
| 632 | 632 | WRITE8_MEMBER(itech32_state::sound_bank_w) |
| 633 | 633 | { |
| 634 | membank("bank1")->set_base(&m | |
| 634 | membank("bank1")->set_base(&memregion("soundcpu")->base()[0x10000 + data * 0x4000]); | |
| 635 | 635 | } |
| 636 | 636 | |
| 637 | 637 |
| r21033 | r21034 | |
|---|---|---|
| 207 | 207 | UINT8* src = memregion("user1")->base(); |
| 208 | 208 | |
| 209 | 209 | // switch PPU VROM bank |
| 210 | membank("bank1")->set_base(m | |
| 210 | membank("bank1")->set_base(memregion("gfx1")->base() + (0x2000 * gfx_bank)); | |
| 211 | 211 | |
| 212 | 212 | // set gfx mirroring |
| 213 | 213 | cham24_set_mirroring(gfx_mirroring != 0 ? PPU_MIRROR_HORZ : PPU_MIRROR_VERT); |
| r21033 | r21034 | |
|---|---|---|
| 1420 | 1420 | |
| 1421 | 1421 | /* expand the background ROMs; A11/A12 of each ROM is independently controlled via */ |
| 1422 | 1422 | /* banking */ |
| 1423 | dest = m | |
| 1423 | dest = memregion(region)->base(); | |
| 1424 | 1424 | temp = auto_alloc_array(machine(), UINT8, 0x4000); |
| 1425 | 1425 | memcpy(temp, dest, 0x4000); |
| 1426 | 1426 |
| r21033 | r21034 | |
|---|---|---|
| 79 | 79 | void grchamp_state::machine_reset() |
| 80 | 80 | { |
| 81 | 81 | /* if the coin system is 1 way, lock Coin B (Page 40) */ |
| 82 | coin_lockout_w(machine(), 1, ( | |
| 82 | coin_lockout_w(machine(), 1, (ioport("DSWB")->read() & 0x10) ? 1 : 0); | |
| 83 | 83 | } |
| 84 | 84 | |
| 85 | 85 |
| r21033 | r21034 | |
|---|---|---|
| 834 | 834 | |
| 835 | 835 | DRIVER_INIT_MEMBER(n64_state,aleck64) |
| 836 | 836 | { |
| 837 | UINT8 *rom = m | |
| 837 | UINT8 *rom = memregion("user2")->base(); | |
| 838 | 838 | |
| 839 | 839 | rom[0x67c] = 0; |
| 840 | 840 | rom[0x67d] = 0; |
| r21033 | r21034 | |
|---|---|---|
| 567 | 567 | |
| 568 | 568 | void xain_state::machine_start() |
| 569 | 569 | { |
| 570 | machine().root_device().membank("bank1")->configure_entries(0, 2, machine().root_device().memregion("maincpu")->base() + 0x4000, 0xc000); | |
| 571 | machine().root_device().membank("bank2")->configure_entries(0, 2, machine().root_device().memregion("sub")->base() + 0x4000, 0xc000); | |
| 572 | machine().root_device().membank("bank1")->set_entry(0); | |
| 573 | machine().root_device().membank("bank2")->set_entry(0); | |
| 570 | membank("bank1")->configure_entries(0, 2, memregion("maincpu")->base() + 0x4000, 0xc000); | |
| 571 | membank("bank2")->configure_entries(0, 2, memregion("sub")->base() + 0x4000, 0xc000); | |
| 572 | membank("bank1")->set_entry(0); | |
| 573 | membank("bank2")->set_entry(0); | |
| 574 | 574 | } |
| 575 | 575 | |
| 576 | 576 | static MACHINE_CONFIG_START( xsleena, xain_state ) |
| r21033 | r21034 | |
|---|---|---|
| 131 | 131 | |
| 132 | 132 | void rpunch_state::machine_reset() |
| 133 | 133 | { |
| 134 | UINT8 *snd = m | |
| 134 | UINT8 *snd = memregion("upd")->base(); | |
| 135 | 135 | memcpy(snd, snd + 0x20000, 0x20000); |
| 136 | 136 | } |
| 137 | 137 |
| r21033 | r21034 | |
|---|---|---|
| 102 | 102 | ---- --x- sound rom banking |
| 103 | 103 | ---- ---x start-stop sample |
| 104 | 104 | */ |
| 105 | UINT8 *upd = m | |
| 105 | UINT8 *upd = memregion("upd")->base(); | |
| 106 | 106 | memcpy(&upd[0x00000], &upd[0x20000 + (((data & 2)>>1) * 0x20000)], 0x20000); |
| 107 | 107 | upd7759_start_w(device, data & 1); |
| 108 | 108 | // printf("%02x\n",data); |
| r21033 | r21034 | |
|---|---|---|
| 72 | 72 | { |
| 73 | 73 | device_t *device = machine().device("msm"); |
| 74 | 74 | int bankaddress; |
| 75 | UINT8 *RAM = m | |
| 75 | UINT8 *RAM = memregion("audiocpu")->base(); | |
| 76 | 76 | |
| 77 | 77 | |
| 78 | 78 | /* the code writes either 2 or 3 in the bottom two bits */ |
| 79 | 79 | bankaddress = 0x10000 + (data & 0x01) * 0x4000; |
| 80 | m | |
| 80 | membank("bank1")->set_base(&RAM[bankaddress]); | |
| 81 | 81 | |
| 82 | 82 | msm5205_reset_w(device,data & 0x08); |
| 83 | 83 | } |
| r21033 | r21034 | |
| 787 | 787 | |
| 788 | 788 | DRIVER_INIT_MEMBER(toki_state,toki) |
| 789 | 789 | { |
| 790 | UINT8 *ROM = m | |
| 790 | UINT8 *ROM = memregion("oki")->base(); | |
| 791 | 791 | UINT8 *buffer = auto_alloc_array(machine(), UINT8, 0x20000); |
| 792 | 792 | int i; |
| 793 | 793 | |
| r21033 | r21034 | |
| 810 | 810 | UINT8 *rom; |
| 811 | 811 | |
| 812 | 812 | /* merge background tile graphics together */ |
| 813 | len = machine().root_device().memregion("gfx3")->bytes(); | |
| 814 | rom = machine().root_device().memregion("gfx3")->base(); | |
| 813 | len = memregion("gfx3")->bytes(); | |
| 814 | rom = memregion("gfx3")->base(); | |
| 815 | 815 | for (offs = 0; offs < len; offs += 0x20000) |
| 816 | 816 | { |
| 817 | 817 | UINT8 *base = &rom[offs]; |
| r21033 | r21034 | |
| 824 | 824 | memcpy (&base[0x18000 + i * 0x800], &temp[0x1800 + i * 0x2000], 0x800); |
| 825 | 825 | } |
| 826 | 826 | } |
| 827 | len = machine().root_device().memregion("gfx4")->bytes(); | |
| 828 | rom = machine().root_device().memregion("gfx4")->base(); | |
| 827 | len = memregion("gfx4")->bytes(); | |
| 828 | rom = memregion("gfx4")->base(); | |
| 829 | 829 | for (offs = 0; offs < len; offs += 0x20000) |
| 830 | 830 | { |
| 831 | 831 | UINT8 *base = &rom[offs]; |
| r21033 | r21034 | |
| 847 | 847 | /* Program ROMs are bitswapped */ |
| 848 | 848 | { |
| 849 | 849 | int i; |
| 850 | UINT16 *prgrom = (UINT16*)m | |
| 850 | UINT16 *prgrom = (UINT16*)memregion("maincpu")->base(); | |
| 851 | 851 | |
| 852 | 852 | for (i = 0; i < 0x60000/2; i++) |
| 853 | 853 | { |
| r21033 | r21034 | |
| 862 | 862 | { |
| 863 | 863 | address_space &space = machine().device("audiocpu")->memory().space(AS_PROGRAM); |
| 864 | 864 | UINT8 *decrypt = auto_alloc_array(machine(), UINT8, 0x20000); |
| 865 | UINT8 *rom = m | |
| 865 | UINT8 *rom = memregion("audiocpu")->base(); | |
| 866 | 866 | int i; |
| 867 | 867 | |
| 868 | 868 | memcpy(decrypt,rom,0x20000); |
| r21033 | r21034 | |
| 877 | 877 | } |
| 878 | 878 | |
| 879 | 879 | { |
| 880 | UINT8 *ROM = m | |
| 880 | UINT8 *ROM = memregion("oki")->base(); | |
| 881 | 881 | UINT8 *buffer = auto_alloc_array(machine(), UINT8, 0x20000); |
| 882 | 882 | int i; |
| 883 | 883 |
| r21033 | r21034 | |
|---|---|---|
| 205 | 205 | |
| 206 | 206 | init_pc_common(machine(), PCCOMMON_KEYBOARD_AT, magtouch_set_keyb_int); |
| 207 | 207 | |
| 208 | machine().root_device().membank("rombank")->configure_entries(0, 0x80, machine().root_device().memregion("game_prg")->base(), 0x8000 ); | |
| 209 | machine().root_device().membank("rombank")->set_entry(0); | |
| 208 | membank("rombank")->configure_entries(0, 0x80, memregion("game_prg")->base(), 0x8000 ); | |
| 209 | membank("rombank")->set_entry(0); | |
| 210 | 210 | |
| 211 | 211 | // microtouch_init(machine(), magtouch_microtouch_tx_callback, NULL); |
| 212 | 212 | } |
| r21033 | r21034 | |
|---|---|---|
| 232 | 232 | |
| 233 | 233 | void magictg_state::machine_reset() |
| 234 | 234 | { |
| 235 | UINT8 *adsp_boot = (UINT8*)m | |
| 235 | UINT8 *adsp_boot = (UINT8*)memregion("adsp")->base(); | |
| 236 | 236 | |
| 237 | 237 | zr36120_reset(); |
| 238 | 238 | |
| r21033 | r21034 | |
| 751 | 751 | |
| 752 | 752 | if (data > 0) |
| 753 | 753 | { |
| 754 | UINT8* adsp_rom = (UINT8*) | |
| 754 | UINT8* adsp_rom = (UINT8*)memregion("adsp")->base(); | |
| 755 | 755 | |
| 756 | 756 | UINT32 page = (m_adsp_regs.bdma_control >> 8) & 0xff; |
| 757 | 757 | UINT32 dir = (m_adsp_regs.bdma_control >> 2) & 1; |
| r21033 | r21034 | |
|---|---|---|
| 1769 | 1769 | // for(i=0;i<8;i+=2) |
| 1770 | 1770 | // m_nvram[((0x8a0)+i)/2] = 0; |
| 1771 | 1771 | /*finally, read the inputs*/ |
| 1772 | m_nvram[0x89e/2] = machine().root_device().ioport("MENU")->read() & 0xffff; | |
| 1773 | m_nvram[0x8a0/2] = machine().root_device().ioport("STAT")->read() & 0xffff; | |
| 1774 | m_nvram[0x8a2/2] = machine().root_device().ioport("BET_DEAL")->read() & 0xffff; | |
| 1775 | m_nvram[0x8a4/2] = machine().root_device().ioport("TAKE_DOUBLE")->read() & 0xffff; | |
| 1776 | m_nvram[0x8a6/2] = machine().root_device().ioport("SMALL_BIG")->read() & 0xffff; | |
| 1777 | m_nvram[0x8a8/2] = machine().root_device().ioport("CANCEL_HOLD1")->read() & 0xffff; | |
| 1778 | m_nvram[0x8aa/2] = machine().root_device().ioport("HOLD2_HOLD3")->read() & 0xffff; | |
| 1779 | m_nvram[0x8ac/2] = machine().root_device().ioport("HOLD4_HOLD5")->read() & 0xffff; | |
| 1772 | m_nvram[0x89e/2] = ioport("MENU")->read() & 0xffff; | |
| 1773 | m_nvram[0x8a0/2] = ioport("STAT")->read() & 0xffff; | |
| 1774 | m_nvram[0x8a2/2] = ioport("BET_DEAL")->read() & 0xffff; | |
| 1775 | m_nvram[0x8a4/2] = ioport("TAKE_DOUBLE")->read() & 0xffff; | |
| 1776 | m_nvram[0x8a6/2] = ioport("SMALL_BIG")->read() & 0xffff; | |
| 1777 | m_nvram[0x8a8/2] = ioport("CANCEL_HOLD1")->read() & 0xffff; | |
| 1778 | m_nvram[0x8aa/2] = ioport("HOLD2_HOLD3")->read() & 0xffff; | |
| 1779 | m_nvram[0x8ac/2] = ioport("HOLD4_HOLD5")->read() & 0xffff; | |
| 1780 | 1780 | } |
| 1781 | 1781 | |
| 1782 | 1782 | |
| r21033 | r21034 | |
| 2784 | 2784 | |
| 2785 | 2785 | DRIVER_INIT_MEMBER(blitz68k_state,bankrob) |
| 2786 | 2786 | { |
| 2787 | UINT16 *ROM = (UINT16 *)m | |
| 2787 | UINT16 *ROM = (UINT16 *)memregion("maincpu")->base(); | |
| 2788 | 2788 | |
| 2789 | 2789 | // WRONG C8 #1 |
| 2790 | 2790 | ROM[0xb5e0/2] = 0x6028; |
| r21033 | r21034 | |
| 2799 | 2799 | |
| 2800 | 2800 | DRIVER_INIT_MEMBER(blitz68k_state,bankroba) |
| 2801 | 2801 | { |
| 2802 | UINT16 *ROM = (UINT16 *)m | |
| 2802 | UINT16 *ROM = (UINT16 *)memregion("maincpu")->base(); | |
| 2803 | 2803 | |
| 2804 | 2804 | // WRONG C8 #1 |
| 2805 | 2805 | ROM[0x11e4e/2] = 0x6028; |
| r21033 | r21034 | |
| 2814 | 2814 | |
| 2815 | 2815 | DRIVER_INIT_MEMBER(blitz68k_state,cj3play) |
| 2816 | 2816 | { |
| 2817 | UINT16 *ROM = (UINT16 *)m | |
| 2817 | UINT16 *ROM = (UINT16 *)memregion("maincpu")->base(); | |
| 2818 | 2818 | |
| 2819 | 2819 | // WRONG C8 #1 |
| 2820 | 2820 | ROM[0x7064/2] = 0x6028; |
| r21033 | r21034 | |
| 2830 | 2830 | |
| 2831 | 2831 | DRIVER_INIT_MEMBER(blitz68k_state,cjffruit) |
| 2832 | 2832 | { |
| 2833 | UINT16 *ROM = (UINT16 *)m | |
| 2833 | UINT16 *ROM = (UINT16 *)memregion("maincpu")->base(); | |
| 2834 | 2834 | |
| 2835 | 2835 | // WRONG C8 #1 |
| 2836 | 2836 | ROM[0xf564/2] = 0x6028; |
| r21033 | r21034 | |
| 2841 | 2841 | |
| 2842 | 2842 | DRIVER_INIT_MEMBER(blitz68k_state,deucesw2) |
| 2843 | 2843 | { |
| 2844 | UINT16 *ROM = (UINT16 *)m | |
| 2844 | UINT16 *ROM = (UINT16 *)memregion("maincpu")->base(); | |
| 2845 | 2845 | |
| 2846 | 2846 | // WRONG C8 #1 |
| 2847 | 2847 | ROM[0x8fe4/2] = 0x6020; |
| r21033 | r21034 | |
| 2852 | 2852 | |
| 2853 | 2853 | DRIVER_INIT_MEMBER(blitz68k_state,dualgame) |
| 2854 | 2854 | { |
| 2855 | UINT16 *ROM = (UINT16 *)m | |
| 2855 | UINT16 *ROM = (UINT16 *)memregion("maincpu")->base(); | |
| 2856 | 2856 | |
| 2857 | 2857 | // WRONG C8 #1 |
| 2858 | 2858 | ROM[0xa518/2] = 0x6024; |
| r21033 | r21034 | |
| 2863 | 2863 | |
| 2864 | 2864 | DRIVER_INIT_MEMBER(blitz68k_state,hermit) |
| 2865 | 2865 | { |
| 2866 | UINT16 *ROM = (UINT16 *)m | |
| 2866 | UINT16 *ROM = (UINT16 *)memregion("maincpu")->base(); | |
| 2867 | 2867 | |
| 2868 | 2868 | // WRONG C8 #1 |
| 2869 | 2869 | ROM[0xdeba/2] = 0x602e; |
| r21033 | r21034 | |
| 2880 | 2880 | |
| 2881 | 2881 | DRIVER_INIT_MEMBER(blitz68k_state,maxidbl) |
| 2882 | 2882 | { |
| 2883 | UINT16 *ROM = (UINT16 *)m | |
| 2883 | UINT16 *ROM = (UINT16 *)memregion("maincpu")->base(); | |
| 2884 | 2884 | |
| 2885 | 2885 | // WRONG C8 #1 |
| 2886 | 2886 | ROM[0xb384/2] = 0x6036; |
| r21033 | r21034 | |
| 2891 | 2891 | |
| 2892 | 2892 | DRIVER_INIT_MEMBER(blitz68k_state,megadblj) |
| 2893 | 2893 | { |
| 2894 | UINT16 *ROM = (UINT16 *)m | |
| 2894 | UINT16 *ROM = (UINT16 *)memregion("maincpu")->base(); | |
| 2895 | 2895 | |
| 2896 | 2896 | // WRONG C8 #1 |
| 2897 | 2897 | ROM[0xe21c/2] = 0x6040; |
| r21033 | r21034 | |
| 2902 | 2902 | |
| 2903 | 2903 | DRIVER_INIT_MEMBER(blitz68k_state,megadble) |
| 2904 | 2904 | { |
| 2905 | UINT16 *ROM = (UINT16 *)m | |
| 2905 | UINT16 *ROM = (UINT16 *)memregion("maincpu")->base(); | |
| 2906 | 2906 | |
| 2907 | 2907 | // WRONG C8 #1 |
| 2908 | 2908 | ROM[0xcfc2/2] = 0x4e71; |
| r21033 | r21034 | |
|---|---|---|
| 604 | 604 | /* guess: use the same resistor values as Crazy Climber (needs checking on the real HW) */ |
| 605 | 605 | void dacholer_state::palette_init() |
| 606 | 606 | { |
| 607 | const UINT8 *color_prom = m | |
| 607 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 608 | 608 | static const int resistances_rg[3] = { 1000, 470, 220 }; |
| 609 | 609 | static const int resistances_b [2] = { 470, 220 }; |
| 610 | 610 | double weights_rg[3], weights_b[2]; |
| r21033 | r21034 | |
|---|---|---|
| 707 | 707 | DRIVER_INIT_MEMBER(enigma2_state,enigma2) |
| 708 | 708 | { |
| 709 | 709 | offs_t i; |
| 710 | UINT8 *rom = m | |
| 710 | UINT8 *rom = memregion("audiocpu")->base(); | |
| 711 | 711 | |
| 712 | 712 | for(i = 0; i < 0x2000; i++) |
| 713 | 713 | { |
| r21033 | r21034 | |
|---|---|---|
| 2583 | 2583 | address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); |
| 2584 | 2584 | DRIVER_INIT_CALL(m4default); |
| 2585 | 2585 | |
| 2586 | int size = m | |
| 2586 | int size = memregion( "maincpu" )->bytes(); | |
| 2587 | 2587 | if (size<=0x10000) |
| 2588 | 2588 | { |
| 2589 | 2589 | printf("extended banking selected on set <=0x10000 in size, ignoring"); |
| r21033 | r21034 | |
| 2643 | 2643 | DRIVER_INIT_MEMBER(mpu4_state,crystal) |
| 2644 | 2644 | { |
| 2645 | 2645 | DRIVER_INIT_CALL(m_frkstn); |
| 2646 | descramble_crystal(m | |
| 2646 | descramble_crystal(memregion( "maincpu" )->base(), 0x0000, 0x10000, 0x00); | |
| 2647 | 2647 | } |
| 2648 | 2648 | |
| 2649 | 2649 | DRIVER_INIT_MEMBER(mpu4_state,crystali) |
| 2650 | 2650 | { |
| 2651 | 2651 | DRIVER_INIT_CALL(m_frkstn); |
| 2652 | descramble_crystal(m | |
| 2652 | descramble_crystal(memregion( "maincpu" )->base(), 0x0000, 0x10000, 0xff); // invert after decrypt?! | |
| 2653 | 2653 | } |
| 2654 | 2654 | |
| 2655 | 2655 | /* generate a 50 Hz signal (based on an RC time) */ |
| r21033 | r21034 | |
|---|---|---|
| 1264 | 1264 | init_hangplt_common(); |
| 1265 | 1265 | |
| 1266 | 1266 | // workaround for lock/unlock errors |
| 1267 | UINT32 *rom = (UINT32*)m | |
| 1267 | UINT32 *rom = (UINT32*)memregion("user1")->base(); | |
| 1268 | 1268 | rom[(0x153ac^4) / 4] = 0x4e800020; |
| 1269 | 1269 | rom[(0x15428^4) / 4] = 0x4e800020; |
| 1270 | 1270 | } |
| r21033 | r21034 | |
| 1274 | 1274 | init_hangplt_common(); |
| 1275 | 1275 | |
| 1276 | 1276 | // workaround for lock/unlock errors |
| 1277 | UINT32 *rom = (UINT32*)m | |
| 1277 | UINT32 *rom = (UINT32*)memregion("user1")->base(); | |
| 1278 | 1278 | rom[(0x153d0^4) / 4] = 0x4e800020; |
| 1279 | 1279 | rom[(0x15428^4) / 4] = 0x4e800020; |
| 1280 | 1280 | } |
| r21033 | r21034 | |
|---|---|---|
| 1248 | 1248 | #if 0 |
| 1249 | 1249 | /* Patch for coding error that causes corrupt data in |
| 1250 | 1250 | sprite tilemapping area from $4083c0-847f */ |
| 1251 | UINT16 *ROM = (UINT16 *)m | |
| 1251 | UINT16 *ROM = (UINT16 *)memregion("maincpu")->base(); | |
| 1252 | 1252 | ROM[0x25dc / 2] = 0x0602; // faulty value is 0x0206 |
| 1253 | 1253 | #endif |
| 1254 | 1254 | } |
| r21033 | r21034 | |
| 1256 | 1256 | DRIVER_INIT_MEMBER(wgp_state,wgp2) |
| 1257 | 1257 | { |
| 1258 | 1258 | /* Code patches to prevent failure in memory checks */ |
| 1259 | UINT16 *ROM = (UINT16 *)m | |
| 1259 | UINT16 *ROM = (UINT16 *)memregion("sub")->base(); | |
| 1260 | 1260 | ROM[0x8008 / 2] = 0x0; |
| 1261 | 1261 | ROM[0x8010 / 2] = 0x0; |
| 1262 | 1262 | } |
| r21033 | r21034 | |
|---|---|---|
| 607 | 607 | DRIVER_INIT_MEMBER(skullxbo_state,skullxbo) |
| 608 | 608 | { |
| 609 | 609 | atarijsa_init(machine(), "FF5802", 0x0080); |
| 610 | memset(m | |
| 610 | memset(memregion("gfx1")->base() + 0x170000, 0, 0x20000); | |
| 611 | 611 | } |
| 612 | 612 | |
| 613 | 613 |
| r21033 | r21034 | |
|---|---|---|
| 449 | 449 | |
| 450 | 450 | void marinedt_state::palette_init() |
| 451 | 451 | { |
| 452 | const UINT8 *color_prom = m | |
| 452 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 453 | 453 | int i,r,b,g; |
| 454 | 454 | |
| 455 | 455 | for (i = 0; i < machine().total_colors(); i++) |
| r21033 | r21034 | |
|---|---|---|
| 56 | 56 | }; |
| 57 | 57 | UINT8 lever[4] = |
| 58 | 58 | { |
| 59 | machine().root_device().ioport("LEVER1")->read(), | |
| 60 | machine().root_device().ioport("LEVER2")->read(), | |
| 61 | machine().root_device().ioport("LEVER3")->read(), | |
| 62 | machine().root_device().ioport("LEVER4")->read() | |
| 59 | ioport("LEVER1")->read(), | |
| 60 | ioport("LEVER2")->read(), | |
| 61 | ioport("LEVER3")->read(), | |
| 62 | ioport("LEVER4")->read() | |
| 63 | 63 | }; |
| 64 | 64 | |
| 65 | 65 | int i; |
| r21033 | r21034 | |
| 98 | 98 | |
| 99 | 99 | /* NMI and watchdog are disabled during service mode */ |
| 100 | 100 | |
| 101 | machine().watchdog_enable( | |
| 101 | machine().watchdog_enable(ioport("IN0")->read() & 0x40); | |
| 102 | 102 | |
| 103 | if ( | |
| 103 | if (ioport("IN0")->read() & 0x40) | |
| 104 | 104 | machine().device("maincpu")->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); |
| 105 | 105 | |
| 106 | 106 | machine().scheduler().timer_set(machine().primary_screen->time_until_pos(scanline), timer_expired_delegate(FUNC(sprint4_state::nmi_callback),this), scanline); |
| r21033 | r21034 | |
|---|---|---|
| 609 | 609 | DRIVER_INIT_MEMBER(appoooh_state,robowresb) |
| 610 | 610 | { |
| 611 | 611 | address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); |
| 612 | space.set_decrypted_region(0x0000, 0x7fff, m | |
| 612 | space.set_decrypted_region(0x0000, 0x7fff, memregion("maincpu")->base() + 0x1c000); | |
| 613 | 613 | } |
| 614 | 614 | |
| 615 | 615 |
| r21033 | r21034 | |
|---|---|---|
| 1444 | 1444 | { |
| 1445 | 1445 | int A; |
| 1446 | 1446 | address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); |
| 1447 | UINT8 *rom = m | |
| 1447 | UINT8 *rom = memregion("maincpu")->base(); | |
| 1448 | 1448 | UINT8 *decrypt = auto_alloc_array(machine(), UINT8, 0x4000); |
| 1449 | 1449 | int data; |
| 1450 | 1450 |
| r21033 | r21034 | |
|---|---|---|
| 277 | 277 | WRITE8_MEMBER(mlanding_state::sound_bankswitch_w) |
| 278 | 278 | { |
| 279 | 279 | data=0; |
| 280 | m | |
| 280 | membank("bank1")->set_base(memregion("audiocpu")->base() + ((data) & 0x03) * 0x4000 + 0x10000 ); | |
| 281 | 281 | } |
| 282 | 282 | |
| 283 | 283 | static void ml_msm5205_vck(device_t *device) |
| r21033 | r21034 | |
| 838 | 838 | |
| 839 | 839 | DRIVER_INIT_MEMBER(mlanding_state,mlanding) |
| 840 | 840 | { |
| 841 | // UINT8 *rom = m | |
| 841 | // UINT8 *rom = memregion("sub")->base(); | |
| 842 | 842 | // rom[0x88b]=0x4e; |
| 843 | 843 | // rom[0x88a]=0x71; |
| 844 | 844 | } |
| r21033 | r21034 | |
|---|---|---|
| 96 | 96 | case 7: /* 0xe007 bankswitch */ |
| 97 | 97 | /* bank 1 at 0x6000-9fff = from 0x10000 when bit0=0 else from 0x14000 */ |
| 98 | 98 | /* bank 2 at 0xa000-bfff = from 0x18000 when bit0=0 else from 0x1a000 */ |
| 99 | membank("bank1")->set_base(machine().root_device().memregion("maincpu")->base() + 0x10000 + ((data&1) * 0x4000) ); | |
| 100 | membank("bank2")->set_base(machine().root_device().memregion("maincpu")->base() + 0x18000 + ((data&1) * 0x2000) ); /* verified (the game will reset after the "game over" otherwise) */ | |
| 99 | membank("bank1")->set_base(memregion("maincpu")->base() + 0x10000 + ((data&1) * 0x4000) ); | |
| 100 | membank("bank2")->set_base(memregion("maincpu")->base() + 0x18000 + ((data&1) * 0x2000) ); /* verified (the game will reset after the "game over" otherwise) */ | |
| 101 | 101 | break; |
| 102 | 102 | } |
| 103 | 103 | } |
| r21033 | r21034 | |
| 112 | 112 | |
| 113 | 113 | void tankbust_state::palette_init() |
| 114 | 114 | { |
| 115 | const UINT8 *color_prom = m | |
| 115 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 116 | 116 | int i; |
| 117 | 117 | |
| 118 | 118 | for (i = 0; i < 128; i++) |
| r21033 | r21034 | |
|---|---|---|
| 278 | 278 | |
| 279 | 279 | READ16_MEMBER(neoprint_state::rom_window_r) |
| 280 | 280 | { |
| 281 | UINT16 *rom = (UINT16 *)m | |
| 281 | UINT16 *rom = (UINT16 *)memregion("maincpu")->base(); | |
| 282 | 282 | |
| 283 | 283 | return rom[offset | 0x80000/2 | m_bank_val*0x40000/2]; |
| 284 | 284 | } |
| r21033 | r21034 | |
| 594 | 594 | /* FIXME: get rid of these two, probably something to do with irq3 and camera / printer devices */ |
| 595 | 595 | DRIVER_INIT_MEMBER(neoprint_state,npcartv1) |
| 596 | 596 | { |
| 597 | UINT16 *ROM = (UINT16 *)m | |
| 597 | UINT16 *ROM = (UINT16 *)memregion( "maincpu" )->base(); | |
| 598 | 598 | |
| 599 | 599 | ROM[0x1260/2] = 0x4e71; |
| 600 | 600 | |
| r21033 | r21034 | |
| 604 | 604 | |
| 605 | 605 | DRIVER_INIT_MEMBER(neoprint_state,98best44) |
| 606 | 606 | { |
| 607 | UINT16 *ROM = (UINT16 *)m | |
| 607 | UINT16 *ROM = (UINT16 *)memregion( "maincpu" )->base(); | |
| 608 | 608 | |
| 609 | 609 | ROM[0x1312/2] = 0x4e71; |
| 610 | 610 | } |
| 611 | 611 | |
| 612 | 612 | DRIVER_INIT_MEMBER(neoprint_state,nprsp) |
| 613 | 613 | { |
| 614 | UINT16 *ROM = (UINT16 *)m | |
| 614 | UINT16 *ROM = (UINT16 *)memregion( "maincpu" )->base(); | |
| 615 | 615 | |
| 616 | 616 | ROM[0x13a4/2] = 0x4e71; |
| 617 | 617 | ROM[0x13bc/2] = 0x4e71; |
| r21033 | r21034 | |
|---|---|---|
| 31 | 31 | { |
| 32 | 32 | // many original barcrest / bwb sets have identification info around here |
| 33 | 33 | // this helps with sorting |
| 34 | UINT8 *src = machine().root_device().memregion( "maincpu" )->base(); | |
| 35 | int size = machine().root_device().memregion( "maincpu" )->bytes(); | |
| 34 | UINT8 *src = memregion( "maincpu" )->base(); | |
| 35 | int size = memregion( "maincpu" )->bytes(); | |
| 36 | 36 | |
| 37 | 37 | for (int j=0;j<size;j+=0x10000) |
| 38 | 38 | { |
| r21033 | r21034 | |
|---|---|---|
| 390 | 390 | |
| 391 | 391 | DRIVER_INIT_MEMBER(pgm2_state,orleg2) |
| 392 | 392 | { |
| 393 | UINT16 *src = (UINT16 *)m | |
| 393 | UINT16 *src = (UINT16 *)memregion("spritesa")->base(); | |
| 394 | 394 | |
| 395 | 395 | iga_u12_decode(src, 0x2000000, 0x4761); |
| 396 | 396 | iga_u16_decode(src, 0x2000000, 0xc79f); |
| r21033 | r21034 | |
| 398 | 398 | |
| 399 | 399 | DRIVER_INIT_MEMBER(pgm2_state,kov2nl) |
| 400 | 400 | { |
| 401 | UINT16 *src = (UINT16 *)m | |
| 401 | UINT16 *src = (UINT16 *)memregion("spritesa")->base(); | |
| 402 | 402 | |
| 403 | 403 | iga_u12_decode(src, 0x2000000, 0xa193); |
| 404 | 404 | iga_u16_decode(src, 0x2000000, 0xb780); |
| r21033 | r21034 | |
| 406 | 406 | |
| 407 | 407 | DRIVER_INIT_MEMBER(pgm2_state,ddpdojh) |
| 408 | 408 | { |
| 409 | UINT16 *src = (UINT16 *)m | |
| 409 | UINT16 *src = (UINT16 *)memregion("spritesa")->base(); | |
| 410 | 410 | |
| 411 | 411 | iga_u12_decode(src, 0x800000, 0x1e96); |
| 412 | 412 | iga_u16_decode(src, 0x800000, 0x869c); |
| r21033 | r21034 | |
| 416 | 416 | |
| 417 | 417 | DRIVER_INIT_MEMBER(pgm2_state,kov3) |
| 418 | 418 | { |
| 419 | UINT16 *src = (UINT16 *)m | |
| 419 | UINT16 *src = (UINT16 *)memregion("spritesa")->base(); | |
| 420 | 420 | |
| 421 | 421 | iga_u12_decode(src, 0x2000000, 0x956d); |
| 422 | 422 | iga_u16_decode(src, 0x2000000, 0x3d17); |
| r21033 | r21034 | |
|---|---|---|
| 186 | 186 | { |
| 187 | 187 | m_bank_lo = data & 0x03; |
| 188 | 188 | |
| 189 | memcpy(m | |
| 189 | memcpy(memregion("oki")->base(), rom + (m_bank_lo * 0x80000), 0x20000); | |
| 190 | 190 | |
| 191 | 191 | // logerror("PC:%06X sound bank_lo = %02X\n",space.device().safe_pc(),m_bank_lo); |
| 192 | 192 | } |
| r21033 | r21034 | |
| 194 | 194 | { |
| 195 | 195 | m_bank_hi = data & 0x03; |
| 196 | 196 | |
| 197 | memcpy(m | |
| 197 | memcpy(memregion("oki")->base() + 0x20000, rom + (m_bank_lo * 0x80000) + (m_bank_hi * 0x20000), 0x20000); | |
| 198 | 198 | |
| 199 | 199 | // logerror("PC:%06X sound bank_hi = %02X\n",space.device().safe_pc(),m_bank_hi); |
| 200 | 200 | } |
| r21033 | r21034 | |
|---|---|---|
| 224 | 224 | |
| 225 | 225 | DRIVER_INIT_MEMBER(sc4_state,sc4) |
| 226 | 226 | { |
| 227 | UINT8 *src = m | |
| 227 | UINT8 *src = memregion( "maincpu" )->base(); | |
| 228 | 228 | // SC4 identification sequence 0x80 0x00 0xf0 0x7d |
| 229 | 229 | if (((src[0] == 0x80) && (src[2] == 0xf0)) || ((src[1] == 0x00) && (src[3] == 0x7d))) |
| 230 | 230 | { |
| r21033 | r21034 | |
|---|---|---|
| 340 | 340 | } |
| 341 | 341 | |
| 342 | 342 | |
| 343 | CUSTOM_INPUT_MEMBER(polepos_state::high_port_r){ return field.machine().root_device().ioport((const char *)param)->read() >> 4; } | |
| 344 | CUSTOM_INPUT_MEMBER(polepos_state::low_port_r){ return field.machine().root_device().ioport((const char *)param)->read() & 0x0f; } | |
| 343 | CUSTOM_INPUT_MEMBER(polepos_state::high_port_r){ return ioport((const char *)param)->read() >> 4; } | |
| 344 | CUSTOM_INPUT_MEMBER(polepos_state::low_port_r){ return ioport((const char *)param)->read() & 0x0f; } | |
| 345 | 345 | CUSTOM_INPUT_MEMBER(polepos_state::auto_start_r) |
| 346 | 346 | { |
| 347 | 347 | return m_auto_start_mask; |
| r21033 | r21034 | |
| 378 | 378 | |
| 379 | 379 | READ8_MEMBER(polepos_state::namco_52xx_rom_r) |
| 380 | 380 | { |
| 381 | UINT32 length = m | |
| 381 | UINT32 length = memregion("52xx")->bytes(); | |
| 382 | 382 | logerror("ROM @ %04X\n", offset); |
| 383 | return (offset < length) ? m | |
| 383 | return (offset < length) ? memregion("52xx")->base()[offset] : 0xff; | |
| 384 | 384 | } |
| 385 | 385 | |
| 386 | 386 | READ8_MEMBER(polepos_state::namco_52xx_si_r) |
| r21033 | r21034 | |
|---|---|---|
| 5367 | 5367 | |
| 5368 | 5368 | DRIVER_INIT_MEMBER(namcos22_state,propcycl) |
| 5369 | 5369 | { |
| 5370 | UINT32 *pROM = (UINT32 *)m | |
| 5370 | UINT32 *pROM = (UINT32 *)memregion("maincpu")->base(); | |
| 5371 | 5371 | |
| 5372 | 5372 | /* patch out strange routine (uninitialized-eprom related?) */ |
| 5373 | 5373 | pROM[0x1992C/4] = 0x4E754E75; |
| r21033 | r21034 | |
|---|---|---|
| 396 | 396 | DRIVER_INIT_MEMBER(galaxygame_state,galaxygame) |
| 397 | 397 | { |
| 398 | 398 | address_space &main = machine().device("maincpu")->memory().space(AS_PROGRAM); |
| 399 | UINT8 *code = m | |
| 399 | UINT8 *code = memregion("code")->base(); | |
| 400 | 400 | |
| 401 | 401 | int filepos = 0, linepos, linelen; |
| 402 | 402 | UINT8 line[256]; |
| r21033 | r21034 | |
|---|---|---|
| 552 | 552 | DRIVER_INIT_MEMBER(calorie_state,calorieb) |
| 553 | 553 | { |
| 554 | 554 | address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); |
| 555 | space.set_decrypted_region(0x0000, 0x7fff, m | |
| 555 | space.set_decrypted_region(0x0000, 0x7fff, memregion("maincpu")->base() + 0x10000); | |
| 556 | 556 | } |
| 557 | 557 | |
| 558 | 558 |
| r21033 | r21034 | |
|---|---|---|
| 155 | 155 | |
| 156 | 156 | m_palette = auto_alloc_array(machine(), UINT16, 0x8000); |
| 157 | 157 | |
| 158 | machine().root_device().membank("bank1")->set_base(m_dram); | |
| 159 | machine().root_device().membank("bank2")->set_base(&m_dram[0x10000/4]); | |
| 160 | machine().root_device().membank("bank3")->set_base(&m_dram[0x300000/4]); | |
| 158 | membank("bank1")->set_base(m_dram); | |
| 159 | membank("bank2")->set_base(&m_dram[0x10000/4]); | |
| 160 | membank("bank3")->set_base(&m_dram[0x300000/4]); | |
| 161 | 161 | |
| 162 | 162 | #if USE_SPEEDUP_HACK |
| 163 | 163 | machine().device("dsp")->memory().space(AS_PROGRAM).install_read_handler(0x809923, 0x809923, read32_delegate(FUNC(rastersp_state::dsp_speedup_r), this)); |
| r21033 | r21034 | |
|---|---|---|
| 1545 | 1545 | |
| 1546 | 1546 | void _39in1_state::machine_start() |
| 1547 | 1547 | { |
| 1548 | UINT8 *ROM = m | |
| 1548 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 1549 | 1549 | int i; |
| 1550 | 1550 | |
| 1551 | 1551 | for (i = 0; i < 0x80000; i += 2) |
| r21033 | r21034 | |
| 1558 | 1558 | |
| 1559 | 1559 | MACHINE_START_MEMBER(_39in1_state,60in1) |
| 1560 | 1560 | { |
| 1561 | UINT8 *ROM = m | |
| 1561 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 1562 | 1562 | int i; |
| 1563 | 1563 | |
| 1564 | 1564 | for (i = 0; i < 0x80000; i += 2) |
| r21033 | r21034 | |
|---|---|---|
| 1062 | 1062 | if (image.software_entry() == NULL) |
| 1063 | 1063 | return IMAGE_INIT_FAIL; |
| 1064 | 1064 | |
| 1065 | UINT8 *ROM = image.device().m | |
| 1065 | UINT8 *ROM = image.device().memregion(this_cart->region)->base(); | |
| 1066 | 1066 | UINT32 length = image.get_software_region_length("rom"); |
| 1067 | 1067 | |
| 1068 | 1068 | memcpy(ROM, image.get_software_region("rom"), length); |
| r21033 | r21034 | |
| 1565 | 1565 | |
| 1566 | 1566 | DRIVER_INIT_MEMBER(saturn_state,sanjeon) |
| 1567 | 1567 | { |
| 1568 | UINT8 *src = m | |
| 1568 | UINT8 *src = memregion ( "game0" )->base(); | |
| 1569 | 1569 | int x; |
| 1570 | 1570 | |
| 1571 | 1571 | for (x=0;x<0x3000000;x++) |
| r21033 | r21034 | |
|---|---|---|
| 64 | 64 | UINT8 ret = 0; |
| 65 | 65 | |
| 66 | 66 | /* read fake port and remap the buttons to 2 bits */ |
| 67 | UINT8 raw = | |
| 67 | UINT8 raw = ioport("FAKE")->read(); | |
| 68 | 68 | |
| 69 | 69 | if (raw & (1 << (bit + 1))) |
| 70 | 70 | ret = 0x03; /* expert */ |
| r21033 | r21034 | |
|---|---|---|
| 837 | 837 | |
| 838 | 838 | if (ACCESSING_BITS_24_31) |
| 839 | 839 | { |
| 840 | r |= ( | |
| 840 | r |= (ioport("IN0")->read() & 0xff) << 24; | |
| 841 | 841 | } |
| 842 | 842 | if (ACCESSING_BITS_8_15) |
| 843 | 843 | { |
| 844 | r |= ( | |
| 844 | r |= (ioport("IN1")->read() & 0xff) << 8; | |
| 845 | 845 | } |
| 846 | 846 | if (ACCESSING_BITS_0_7) |
| 847 | 847 | { |
| 848 | r |= ( | |
| 848 | r |= (ioport("IN2")->read() & 0xff); | |
| 849 | 849 | } |
| 850 | 850 | |
| 851 | 851 | return r; |
| r21033 | r21034 | |
| 855 | 855 | { |
| 856 | 856 | if (offset == 0) |
| 857 | 857 | { |
| 858 | return | |
| 858 | return ioport("SENSOR1")->read() | 0x01000100; | |
| 859 | 859 | } |
| 860 | 860 | else |
| 861 | 861 | { |
| 862 | return | |
| 862 | return ioport("SENSOR2")->read() | 0x01000100; | |
| 863 | 863 | } |
| 864 | 864 | } |
| 865 | 865 | |
| r21033 | r21034 | |
| 1463 | 1463 | { |
| 1464 | 1464 | if (offset == 0) // Keyboard Wheel (P1) |
| 1465 | 1465 | { |
| 1466 | return | |
| 1466 | return ioport("WHEEL_P1")->read() << 24; | |
| 1467 | 1467 | } |
| 1468 | 1468 | else if (offset == 2) // Keyboard Wheel (P2) |
| 1469 | 1469 | { |
| 1470 | return | |
| 1470 | return ioport("WHEEL_P2")->read() << 24; | |
| 1471 | 1471 | } |
| 1472 | 1472 | |
| 1473 | 1473 | return 0; |
| r21033 | r21034 | |
| 1556 | 1556 | |
| 1557 | 1557 | for (keyboard=0; keyboard < 2; keyboard++) |
| 1558 | 1558 | { |
| 1559 | UINT32 kbstate = | |
| 1559 | UINT32 kbstate = ioport(keynames[keyboard])->read(); | |
| 1560 | 1560 | int uart_channel = kb_uart_channel[keyboard]; |
| 1561 | 1561 | |
| 1562 | 1562 | if (kbstate != m_keyboard_state[keyboard]) |
| r21033 | r21034 | |
|---|---|---|
| 608 | 608 | |
| 609 | 609 | DRIVER_INIT_MEMBER(bigevglf_state,bigevglf) |
| 610 | 610 | { |
| 611 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 612 | machine().root_device().membank("bank1")->configure_entries(0, 0xff, &ROM[0x10000], 0x800); | |
| 611 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 612 | membank("bank1")->configure_entries(0, 0xff, &ROM[0x10000], 0x800); | |
| 613 | 613 | } |
| 614 | 614 | |
| 615 | 615 | GAME( 1986, bigevglf, 0, bigevglf, bigevglf, bigevglf_state, bigevglf, ROT270, "Taito America Corporation", "Big Event Golf (US)", GAME_NO_COCKTAIL | GAME_SUPPORTS_SAVE ) |
| r21033 | r21034 | |
|---|---|---|
| 241 | 241 | |
| 242 | 242 | READ8_MEMBER(bmcbowl_state::via_b_in) |
| 243 | 243 | { |
| 244 | return | |
| 244 | return ioport("IN3")->read(); | |
| 245 | 245 | } |
| 246 | 246 | |
| 247 | 247 |
| r21033 | r21034 | |
|---|---|---|
| 12618 | 12618 | DRIVER_INIT_MEMBER(bfm_sc5_state,sc5) |
| 12619 | 12619 | { |
| 12620 | 12620 | // sc5 roms always start with SC5 |
| 12621 | UINT8 *src = m | |
| 12621 | UINT8 *src = memregion( "maincpu" )->base(); | |
| 12622 | 12622 | // printf("%02x %02x %02x %02x\n", src[0], src[1], src[2], src[3]); |
| 12623 | 12623 | if (((src[0] == 0x20) && (src[2] == 0x43)) || ((src[1] == 0x35) && (src[3] == 0x53))) |
| 12624 | 12624 | { |
| r21033 | r21034 | |
|---|---|---|
| 867 | 867 | |
| 868 | 868 | /* set up memory */ |
| 869 | 869 | m_bank1->configure_entry(0, m_chip_ram); |
| 870 | m_bank1->configure_entry(1, m | |
| 870 | m_bank1->configure_entry(1, memregion("user1")->base()); | |
| 871 | 871 | |
| 872 | 872 | /* input hack */ |
| 873 | 873 | m_input_hack = NULL; |
| r21033 | r21034 | |
| 1478 | 1478 | |
| 1479 | 1479 | /* set up memory */ |
| 1480 | 1480 | m_bank1->configure_entry(0, m_chip_ram); |
| 1481 | m_bank1->configure_entry(1, m | |
| 1481 | m_bank1->configure_entry(1, memregion("user1")->base()); | |
| 1482 | 1482 | |
| 1483 | 1483 | /* input hack */ |
| 1484 | 1484 | m_input_hack = NULL; |
| r21033 | r21034 | |
|---|---|---|
| 285 | 285 | |
| 286 | 286 | offs_t i; |
| 287 | 287 | address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); |
| 288 | UINT8 *rom = m | |
| 288 | UINT8 *rom = memregion("maincpu")->base(); | |
| 289 | 289 | UINT8 *decrypted = auto_alloc_array(machine(), UINT8, 0x6000); |
| 290 | UINT8 *table = m | |
| 290 | UINT8 *table = memregion("user1")->base(); | |
| 291 | 291 | |
| 292 | 292 | space.set_decrypted_region(0x0000, 0x5fff, decrypted); |
| 293 | 293 |
| r21033 | r21034 | |
|---|---|---|
| 1060 | 1060 | DRIVER_INIT_MEMBER(lordgun_state,lordgun) |
| 1061 | 1061 | { |
| 1062 | 1062 | int i; |
| 1063 | UINT16 *rom = (UINT16 *)m | |
| 1063 | UINT16 *rom = (UINT16 *)memregion("maincpu")->base(); | |
| 1064 | 1064 | int rom_size = 0x100000; |
| 1065 | 1065 | |
| 1066 | 1066 | for(i = 0; i < rom_size/2; i++) |
| r21033 | r21034 | |
|---|---|---|
| 806 | 806 | |
| 807 | 807 | MACHINE_START_MEMBER(ojankohs_state,ojankohs) |
| 808 | 808 | { |
| 809 | UINT8 *ROM = m | |
| 809 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 810 | 810 | |
| 811 | m | |
| 811 | membank("bank1")->configure_entries(0, 0x40, &ROM[0x10000], 0x4000); | |
| 812 | 812 | |
| 813 | 813 | MACHINE_START_CALL_MEMBER(common); |
| 814 | 814 | } |
| 815 | 815 | |
| 816 | 816 | MACHINE_START_MEMBER(ojankohs_state,ojankoy) |
| 817 | 817 | { |
| 818 | UINT8 *ROM = m | |
| 818 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 819 | 819 | |
| 820 | m | |
| 820 | membank("bank1")->configure_entries(0, 0x20, &ROM[0x10000], 0x4000); | |
| 821 | 821 | |
| 822 | 822 | MACHINE_START_CALL_MEMBER(common); |
| 823 | 823 | } |
| 824 | 824 | |
| 825 | 825 | MACHINE_START_MEMBER(ojankohs_state,ojankoc) |
| 826 | 826 | { |
| 827 | UINT8 *ROM = m | |
| 827 | UINT8 *ROM = memregion("user1")->base(); | |
| 828 | 828 | |
| 829 | m | |
| 829 | membank("bank1")->configure_entries(0, 0x10, &ROM[0x0000], 0x8000); | |
| 830 | 830 | |
| 831 | 831 | MACHINE_START_CALL_MEMBER(common); |
| 832 | 832 | } |
| r21033 | r21034 | |
|---|---|---|
| 788 | 788 | |
| 789 | 789 | READ8_MEMBER(vega_state::randomizer ) |
| 790 | 790 | { |
| 791 | return ( | |
| 791 | return (ioport("IN1")->read()&7)|(machine().rand()&(~7)); | |
| 792 | 792 | } |
| 793 | 793 | |
| 794 | 794 | |
| r21033 | r21034 | |
| 900 | 900 | |
| 901 | 901 | DRIVER_INIT_MEMBER(vega_state, vega) |
| 902 | 902 | { |
| 903 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 904 | machine().root_device().membank("bank1")->configure_entries(0, 2, &ROM[0x1000], 0x800); | |
| 903 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 904 | membank("bank1")->configure_entries(0, 2, &ROM[0x1000], 0x800); | |
| 905 | 905 | } |
| 906 | 906 | |
| 907 | 907 | GAME( 1982, vega, 0, vega, vega, vega_state, vega, ROT270, "Olympia", "Vega", 0 ) |
| r21033 | r21034 | |
|---|---|---|
| 697 | 697 | |
| 698 | 698 | // case 0x6ca: |
| 699 | 699 | // logerror("select bank %d %04x\n", (data >> 15) & 1, data); |
| 700 | // space.m | |
| 700 | // space.membank("bank1")->set_entry((data >> 15) & 1); | |
| 701 | 701 | |
| 702 | 702 | |
| 703 | 703 | void raiden2_state::combine32(UINT32 *val, int offset, UINT16 data, UINT16 mem_mask) |
| r21033 | r21034 | |
| 928 | 928 | |
| 929 | 929 | /* probably bit 3 is from 6c9 */ |
| 930 | 930 | /* TODO: this doesn't work! */ |
| 931 | | |
| 931 | membank("mainbank")->set_entry(8 | (cop_bank & 0x7000) >> 12); | |
| 932 | 932 | } |
| 933 | 933 | } |
| 934 | 934 | |
| r21033 | r21034 | |
| 1227 | 1227 | { |
| 1228 | 1228 | if(ACCESSING_BITS_8_15) { |
| 1229 | 1229 | logerror("select bank %d %04x\n", (data >> 15) & 1, data); |
| 1230 | | |
| 1230 | membank("mainbank")->set_entry(!((data >> 15) & 1)); | |
| 1231 | 1231 | prg_bank = ((data >> 15) & 1); |
| 1232 | 1232 | } |
| 1233 | 1233 | } |
| r21033 | r21034 | |
| 3100 | 3100 | |
| 3101 | 3101 | DRIVER_INIT_MEMBER(raiden2_state,raiden2) |
| 3102 | 3102 | { |
| 3103 | m | |
| 3103 | membank("mainbank")->configure_entries(0, 2, memregion("mainprg")->base(), 0x20000); | |
| 3104 | 3104 | raiden2_decrypt_sprites(machine()); |
| 3105 | 3105 | } |
| 3106 | 3106 | |
| 3107 | 3107 | DRIVER_INIT_MEMBER(raiden2_state,raidendx) |
| 3108 | 3108 | { |
| 3109 | m | |
| 3109 | membank("mainbank")->configure_entries(0, 0x10, memregion("mainprg")->base(), 0x20000); | |
| 3110 | 3110 | raiden2_decrypt_sprites(machine()); |
| 3111 | 3111 | } |
| 3112 | 3112 | |
| 3113 | 3113 | DRIVER_INIT_MEMBER(raiden2_state,xsedae) |
| 3114 | 3114 | { |
| 3115 | 3115 | /* doesn't have banking */ |
| 3116 | //m | |
| 3116 | //membank("mainbank")->configure_entries(0, 2, memregion("mainprg")->base(), 0x20000); | |
| 3117 | 3117 | } |
| 3118 | 3118 | |
| 3119 | 3119 | DRIVER_INIT_MEMBER(raiden2_state,zeroteam) |
| 3120 | 3120 | { |
| 3121 | m | |
| 3121 | membank("mainbank")->configure_entries(0, 2, memregion("mainprg")->base(), 0x20000); | |
| 3122 | 3122 | zeroteam_decrypt_sprites(machine()); |
| 3123 | 3123 | } |
| 3124 | 3124 |
| r21033 | r21034 | |
|---|---|---|
| 1509 | 1509 | void gaiden_state::descramble_drgnbowl_gfx() |
| 1510 | 1510 | { |
| 1511 | 1511 | int i; |
| 1512 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 1513 | size_t size = machine().root_device().memregion("maincpu")->bytes(); | |
| 1512 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 1513 | size_t size = memregion("maincpu")->bytes(); | |
| 1514 | 1514 | UINT8 *buffer = auto_alloc_array(machine(), UINT8, size); |
| 1515 | 1515 | |
| 1516 | 1516 | memcpy(buffer, ROM, size); |
| r21033 | r21034 | |
| 1526 | 1526 | |
| 1527 | 1527 | auto_free(machine(), buffer); |
| 1528 | 1528 | |
| 1529 | ROM = machine().root_device().memregion("gfx2")->base(); | |
| 1530 | size = machine().root_device().memregion("gfx2")->bytes(); | |
| 1529 | ROM = memregion("gfx2")->base(); | |
| 1530 | size = memregion("gfx2")->bytes(); | |
| 1531 | 1531 | buffer = auto_alloc_array(machine(), UINT8, size); |
| 1532 | 1532 | |
| 1533 | 1533 | memcpy(buffer,ROM,size); |
| r21033 | r21034 | |
| 1595 | 1595 | DRIVER_INIT_MEMBER(gaiden_state,mastninj) |
| 1596 | 1596 | { |
| 1597 | 1597 | // rearrange the graphic roms into a format that MAME can decode |
| 1598 | descramble_mastninj_gfx(machine().root_device().memregion("gfx2")->base()); | |
| 1599 | descramble_mastninj_gfx(machine().root_device().memregion("gfx3")->base()); | |
| 1598 | descramble_mastninj_gfx(memregion("gfx2")->base()); | |
| 1599 | descramble_mastninj_gfx(memregion("gfx3")->base()); | |
| 1600 | 1600 | DRIVER_INIT_CALL(shadoww); |
| 1601 | 1601 | } |
| 1602 | 1602 |
| r21033 | r21034 | |
|---|---|---|
| 132 | 132 | { |
| 133 | 133 | int curr[2]; |
| 134 | 134 | |
| 135 | curr[p] = | |
| 135 | curr[p] = ioport(p ? "P2" : "P1")->read() & 0x30; | |
| 136 | 136 | |
| 137 | 137 | if (m_jumped[p]) buttons[p] = 0; /* jump only momentarily flips the buttons */ |
| 138 | 138 | else buttons[p] = curr[p]; |
| r21033 | r21034 | |
| 143 | 143 | m_prev[p] = curr[p]; |
| 144 | 144 | } |
| 145 | 145 | |
| 146 | m_inputs[0] = machine().root_device().ioport("P1")->read() & 0xcf; | |
| 147 | m_inputs[1] = machine().root_device().ioport("P2")->read() & 0x0f; | |
| 146 | m_inputs[0] = ioport("P1")->read() & 0xcf; | |
| 147 | m_inputs[1] = ioport("P2")->read() & 0x0f; | |
| 148 | 148 | m_inputs[2] = m_running[0] | buttons[0]; |
| 149 | 149 | m_inputs[3] = m_running[1] | buttons[1]; |
| 150 | 150 | } |
| r21033 | r21034 | |
|---|---|---|
| 231 | 231 | void astrof_state::tomahawk_get_pens( pen_t *pens ) |
| 232 | 232 | { |
| 233 | 233 | offs_t i; |
| 234 | UINT8 *prom = machine().root_device().memregion("proms")->base(); | |
| 235 | UINT8 config = machine().root_device().ioport("FAKE")->read_safe(0x00); | |
| 234 | UINT8 *prom = memregion("proms")->base(); | |
| 235 | UINT8 config = ioport("FAKE")->read_safe(0x00); | |
| 236 | 236 | |
| 237 | 237 | for (i = 0; i < TOMAHAWK_NUM_PENS; i++) |
| 238 | 238 | { |
| r21033 | r21034 | |
| 1258 | 1258 | DRIVER_INIT_MEMBER(astrof_state,abattle) |
| 1259 | 1259 | { |
| 1260 | 1260 | /* use the protection PROM to decrypt the ROMs */ |
| 1261 | UINT8 *rom = machine().root_device().memregion("maincpu")->base(); | |
| 1262 | UINT8 *prom = machine().root_device().memregion("user1")->base(); | |
| 1261 | UINT8 *rom = memregion("maincpu")->base(); | |
| 1262 | UINT8 *prom = memregion("user1")->base(); | |
| 1263 | 1263 | int i; |
| 1264 | 1264 | |
| 1265 | 1265 | for(i = 0xd000; i < 0x10000; i++) |
| r21033 | r21034 | |
| 1273 | 1273 | |
| 1274 | 1274 | DRIVER_INIT_MEMBER(astrof_state,afire) |
| 1275 | 1275 | { |
| 1276 | UINT8 *rom = m | |
| 1276 | UINT8 *rom = memregion("maincpu")->base(); | |
| 1277 | 1277 | int i; |
| 1278 | 1278 | |
| 1279 | 1279 | for(i = 0xd000; i < 0x10000; i++) |
| r21033 | r21034 | |
| 1287 | 1287 | |
| 1288 | 1288 | DRIVER_INIT_MEMBER(astrof_state,sstarbtl) |
| 1289 | 1289 | { |
| 1290 | UINT8 *rom = m | |
| 1290 | UINT8 *rom = memregion("maincpu")->base(); | |
| 1291 | 1291 | int i; |
| 1292 | 1292 | |
| 1293 | 1293 | for(i = 0xd000; i < 0x10000; i++) |
| r21033 | r21034 | |
|---|---|---|
| 312 | 312 | { |
| 313 | 313 | /*coin/credit simulation*/ |
| 314 | 314 | /*$fe002 is used,might be for multiple coins for one credit settings.*/ |
| 315 | m_coin_input = (~( | |
| 315 | m_coin_input = (~(ioport("IN0")->read())); | |
| 316 | 316 | |
| 317 | 317 | if (m_coin_input & 0x01)//coin 1 |
| 318 | 318 | { |
| r21033 | r21034 | |
|---|---|---|
| 111 | 111 | } |
| 112 | 112 | else |
| 113 | 113 | { |
| 114 | UINT8 lowInputBits = machine().root_device().ioport("IN1")->read(); | |
| 115 | UINT8 highInputBits = machine().root_device().ioport("IN0")->read(); | |
| 114 | UINT8 lowInputBits = ioport("IN1")->read(); | |
| 115 | UINT8 highInputBits = ioport("IN0")->read(); | |
| 116 | 116 | return ((highInputBits << 24) | (lowInputBits << 16)); |
| 117 | 117 | } |
| 118 | 118 | |
| r21033 | r21034 | |
| 136 | 136 | READ32_MEMBER(polygonet_state::ttl_rom_r) |
| 137 | 137 | { |
| 138 | 138 | UINT32 *ROM; |
| 139 | ROM = (UINT32 *)m | |
| 139 | ROM = (UINT32 *)memregion("gfx1")->base(); | |
| 140 | 140 | |
| 141 | 141 | return ROM[offset]; |
| 142 | 142 | } |
| r21033 | r21034 | |
| 145 | 145 | READ32_MEMBER(polygonet_state::psac_rom_r) |
| 146 | 146 | { |
| 147 | 147 | UINT32 *ROM; |
| 148 | ROM = (UINT32 *)m | |
| 148 | ROM = (UINT32 *)memregion("gfx2")->base(); | |
| 149 | 149 | |
| 150 | 150 | return ROM[offset]; |
| 151 | 151 | } |
| r21033 | r21034 | |
|---|---|---|
| 432 | 432 | int color; |
| 433 | 433 | double color_weights[2]; |
| 434 | 434 | |
| 435 | if ( | |
| 435 | if (ioport(MONITOR_TYPE_PORT_TAG)->read() == 0) | |
| 436 | 436 | compute_resistor_weights(0, 0xff, -1.0, |
| 437 | 437 | 2, resistances_wg, color_weights, 0, 270, |
| 438 | 438 | 2, resistances_wg, color_weights, 0, 270, |
| r21033 | r21034 | |
|---|---|---|
| 661 | 661 | |
| 662 | 662 | void xtom3d_state::machine_reset() |
| 663 | 663 | { |
| 664 | machine().root_device().membank("bios_bank")->set_base(machine().root_device().memregion("bios")->base() + 0x10000); | |
| 665 | machine().root_device().membank("bios_ext1")->set_base(machine().root_device().memregion("bios")->base() + 0); | |
| 666 | machine().root_device().membank("bios_ext2")->set_base(machine().root_device().memregion("bios")->base() + 0x4000); | |
| 667 | machine().root_device().membank("bios_ext3")->set_base(machine().root_device().memregion("bios")->base() + 0x8000); | |
| 668 | machine().root_device().membank("bios_ext4")->set_base(machine().root_device().memregion("bios")->base() + 0xc000); | |
| 669 | machine().root_device().membank("video_bank1")->set_base(machine().root_device().memregion("video_bios")->base() + 0); | |
| 670 | machine().root_device().membank("video_bank2")->set_base(machine().root_device().memregion("video_bios")->base() + 0x4000); | |
| 664 | membank("bios_bank")->set_base(memregion("bios")->base() + 0x10000); | |
| 665 | membank("bios_ext1")->set_base(memregion("bios")->base() + 0); | |
| 666 | membank("bios_ext2")->set_base(memregion("bios")->base() + 0x4000); | |
| 667 | membank("bios_ext3")->set_base(memregion("bios")->base() + 0x8000); | |
| 668 | membank("bios_ext4")->set_base(memregion("bios")->base() + 0xc000); | |
| 669 | membank("video_bank1")->set_base(memregion("video_bios")->base() + 0); | |
| 670 | membank("video_bank2")->set_base(memregion("video_bios")->base() + 0x4000); | |
| 671 | 671 | } |
| 672 | 672 | |
| 673 | 673 | static MACHINE_CONFIG_START( xtom3d, xtom3d_state ) |
| r21033 | r21034 | |
|---|---|---|
| 369 | 369 | |
| 370 | 370 | void blitz_state::palette_init() |
| 371 | 371 | { |
| 372 | const UINT8 *color_prom = m | |
| 372 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 373 | 373 | /* |
| 374 | 374 | This hardware has a feature called BLUE KILLER. |
| 375 | 375 | Using the original intensity line, the PCB has a bridge |
| r21033 | r21034 | |
|---|---|---|
| 94 | 94 | |
| 95 | 95 | void koikoi_state::palette_init() |
| 96 | 96 | { |
| 97 | const UINT8 *color_prom = m | |
| 97 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 98 | 98 | int i; |
| 99 | 99 | |
| 100 | 100 | /* allocate the colortable */ |
| r21033 | r21034 | |
|---|---|---|
| 3335 | 3335 | |
| 3336 | 3336 | // rom hacks for sub board... |
| 3337 | 3337 | { |
| 3338 | UINT32 *rom = (UINT32*)m | |
| 3338 | UINT32 *rom = (UINT32*)memregion("user2")->base(); | |
| 3339 | 3339 | |
| 3340 | 3340 | rom[0x62094 / 4] = 0x60000000; // skip hardcheck()... |
| 3341 | 3341 | } |
| r21033 | r21034 | |
| 3346 | 3346 | int i; |
| 3347 | 3347 | UINT32 sum = 0; |
| 3348 | 3348 | |
| 3349 | UINT32 *rom = (UINT32*)m | |
| 3349 | UINT32 *rom = (UINT32*)memregion("user3")->base(); | |
| 3350 | 3350 | |
| 3351 | 3351 | rom[(0x022d4^4) / 4] = 0x60000000; // skip init_raster() for now ... |
| 3352 | 3352 | |
| r21033 | r21034 | |
| 3367 | 3367 | |
| 3368 | 3368 | // fill in M48T58 data for now... |
| 3369 | 3369 | { |
| 3370 | UINT8 *rom = (UINT8*)m | |
| 3370 | UINT8 *rom = (UINT8*)memregion("m48t58")->base(); | |
| 3371 | 3371 | rom[0x00] = 0x47; // G |
| 3372 | 3372 | rom[0x01] = 0x4e; // N // N = 2-player, Q = 1-player? |
| 3373 | 3373 | rom[0x02] = 0x36; // 6 |
| r21033 | r21034 | |
| 3417 | 3417 | |
| 3418 | 3418 | // rom hacks for sub board... |
| 3419 | 3419 | { |
| 3420 | UINT32 *rom = (UINT32*)m | |
| 3420 | UINT32 *rom = (UINT32*)memregion("user2")->base(); | |
| 3421 | 3421 | |
| 3422 | 3422 | rom[0x62094 / 4] = 0x60000000; // skip hardcheck()... |
| 3423 | 3423 | rom[0x62ddc / 4] = 0x60000000; // skip lanc_hardcheck() |
| r21033 | r21034 | |
| 3443 | 3443 | int i; |
| 3444 | 3444 | UINT32 sum = 0; |
| 3445 | 3445 | |
| 3446 | UINT32 *rom = (UINT32*)m | |
| 3446 | UINT32 *rom = (UINT32*)memregion("user3")->base(); | |
| 3447 | 3447 | |
| 3448 | 3448 | rom[(0x02448^4) / 4] = 0x60000000; // skip init_raster() for now ... |
| 3449 | 3449 | |
| r21033 | r21034 | |
| 3465 | 3465 | |
| 3466 | 3466 | // fill in M48T58 data for now... |
| 3467 | 3467 | { |
| 3468 | UINT8 *rom = (UINT8*)m | |
| 3468 | UINT8 *rom = (UINT8*)memregion("m48t58")->base(); | |
| 3469 | 3469 | rom[0x00] = 0x47; // G |
| 3470 | 3470 | rom[0x01] = 0x59; // Y |
| 3471 | 3471 | rom[0x02] = 0x36; // 6 |
| r21033 | r21034 | |
|---|---|---|
| 275 | 275 | /* update the different PIA pins from the input ports */ |
| 276 | 276 | |
| 277 | 277 | /* CA1 - copy of PA1 (COIN1) */ |
| 278 | pia1->ca1_w( | |
| 278 | pia1->ca1_w(ioport("IN0")->read() & 0x02); | |
| 279 | 279 | |
| 280 | 280 | /* CA2 - copy of PA0 (SERVICE1) */ |
| 281 | pia1->ca2_w( | |
| 281 | pia1->ca2_w(ioport("IN0")->read() & 0x01); | |
| 282 | 282 | |
| 283 | 283 | /* CB1 - (crosshatch) */ |
| 284 | pia1->cb1_w( | |
| 284 | pia1->cb1_w(ioport("XHATCH")->read()); | |
| 285 | 285 | |
| 286 | 286 | /* CB2 - NOT CONNECTED */ |
| 287 | 287 | } |
| r21033 | r21034 | |
|---|---|---|
| 575 | 575 | |
| 576 | 576 | PALETTE_INIT_MEMBER(subsino_state,subsino_2proms) |
| 577 | 577 | { |
| 578 | const UINT8 *color_prom = m | |
| 578 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 579 | 579 | int i,r,g,b,val; |
| 580 | 580 | int bit0,bit1,bit2; |
| 581 | 581 | |
| r21033 | r21034 | |
| 602 | 602 | |
| 603 | 603 | PALETTE_INIT_MEMBER(subsino_state,subsino_3proms) |
| 604 | 604 | { |
| 605 | const UINT8 *color_prom = m | |
| 605 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 606 | 606 | int i,r,g,b,val; |
| 607 | 607 | int bit0,bit1,bit2; |
| 608 | 608 | |
| r21033 | r21034 | |
| 3529 | 3529 | |
| 3530 | 3530 | DRIVER_INIT_MEMBER(subsino_state,smoto16) |
| 3531 | 3531 | { |
| 3532 | UINT8 *rom = m | |
| 3532 | UINT8 *rom = memregion( "maincpu" )->base(); | |
| 3533 | 3533 | rom[0x12d0] = 0x20; // "ERROR 951010" |
| 3534 | 3534 | } |
| 3535 | 3535 | |
| r21033 | r21034 | |
| 3750 | 3750 | |
| 3751 | 3751 | DRIVER_INIT_MEMBER(subsino_state,smoto20) |
| 3752 | 3752 | { |
| 3753 | UINT8 *rom = m | |
| 3753 | UINT8 *rom = memregion( "maincpu" )->base(); | |
| 3754 | 3754 | rom[0x12e1] = 0x20; // "ERROR 951010" |
| 3755 | 3755 | } |
| 3756 | 3756 | |
| 3757 | 3757 | DRIVER_INIT_MEMBER(subsino_state,tisub) |
| 3758 | 3758 | { |
| 3759 | UINT8 *rom = m | |
| 3759 | UINT8 *rom = memregion( "maincpu" )->base(); | |
| 3760 | 3760 | |
| 3761 | 3761 | DRIVER_INIT_CALL(victor5); |
| 3762 | 3762 | |
| r21033 | r21034 | |
| 3771 | 3771 | |
| 3772 | 3772 | DRIVER_INIT_MEMBER(subsino_state,tisuba) |
| 3773 | 3773 | { |
| 3774 | UINT8 *rom = m | |
| 3774 | UINT8 *rom = memregion( "maincpu" )->base(); | |
| 3775 | 3775 | |
| 3776 | 3776 | DRIVER_INIT_CALL(victor5); |
| 3777 | 3777 |
| r21033 | r21034 | |
|---|---|---|
| 190 | 190 | |
| 191 | 191 | PALETTE_INIT_MEMBER(supercrd_state, supercrd) |
| 192 | 192 | { |
| 193 | const UINT8 *color_prom = m | |
| 193 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 194 | 194 | int i; |
| 195 | 195 | static const int resistances_rb[3] = { 1000, 470, 220 }; |
| 196 | 196 | static const int resistances_g [2] = { 470, 220 }; |
| r21033 | r21034 | |
|---|---|---|
| 430 | 430 | |
| 431 | 431 | /* set the main banking */ |
| 432 | 432 | prog_space.install_read_bank(0x4000, 0xbfff, "bank1"); |
| 433 | membank("bank1")->set_base(m | |
| 433 | membank("bank1")->set_base(memregion("user1")->base() + 0x8000 * bank); | |
| 434 | 434 | |
| 435 | 435 | /* bank 0 reads video RAM in the 4000-7FFF range */ |
| 436 | 436 | if (bank == 0) |
| r21033 | r21034 | |
| 446 | 446 | if (bank < 0x28) |
| 447 | 447 | { |
| 448 | 448 | prog_space.install_read_bank(0x4000, 0x7fff, "bank2"); |
| 449 | membank("bank2")->set_base(m | |
| 449 | membank("bank2")->set_base(memregion("user2")->base() + 0x4000 * bank); | |
| 450 | 450 | } |
| 451 | 451 | else |
| 452 | 452 | prog_space.unmap_read(0x4000, 0x7fff); |
| r21033 | r21034 | |
|---|---|---|
| 192 | 192 | |
| 193 | 193 | PALETTE_INIT_MEMBER(m63_state,m63) |
| 194 | 194 | { |
| 195 | const UINT8 *color_prom = m | |
| 195 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 196 | 196 | int i; |
| 197 | 197 | |
| 198 | 198 | for (i = 0; i < 256; i++) |
| r21033 | r21034 | |
|---|---|---|
| 68 | 68 | UINT32 hitme_state::screen_update_hitme(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| 69 | 69 | { |
| 70 | 70 | /* the card width resistor comes from an input port, scaled to the range 0-25 kOhms */ |
| 71 | double width_resist = | |
| 71 | double width_resist = ioport("WIDTH")->read() * 25000 / 100; | |
| 72 | 72 | /* this triggers a oneshot for the following length of time */ |
| 73 | 73 | double width_duration = 0.45 * 1000e-12 * width_resist; |
| 74 | 74 | /* the dot clock runs at the standard horizontal frequency * 320+16 clocks per scanline */ |
| r21033 | r21034 | |
| 130 | 130 | { |
| 131 | 131 | static const char *const portnames[] = { "IN0", "IN1", "IN2", "IN3" }; |
| 132 | 132 | |
| 133 | UINT8 val = | |
| 133 | UINT8 val = ioport(portnames[port])->read(); | |
| 134 | 134 | if (machine().time() > m_timeout_time) |
| 135 | 135 | val ^= 0x80; |
| 136 | 136 | return val; |
| r21033 | r21034 | |
|---|---|---|
| 245 | 245 | |
| 246 | 246 | INTERRUPT_GEN_MEMBER(bzone_state::bzone_interrupt) |
| 247 | 247 | { |
| 248 | if ( | |
| 248 | if (ioport("IN0")->read() & 0x10) | |
| 249 | 249 | device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); |
| 250 | 250 | } |
| 251 | 251 |
| r21033 | r21034 | |
|---|---|---|
| 267 | 267 | |
| 268 | 268 | void istellar_state::palette_init() |
| 269 | 269 | { |
| 270 | const UINT8 *color_prom = m | |
| 270 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 271 | 271 | int i; |
| 272 | 272 | |
| 273 | 273 | for (i = 0; i < machine().total_colors(); i++) |
| r21033 | r21034 | |
| 406 | 406 | |
| 407 | 407 | #if 0 |
| 408 | 408 | { |
| 409 | UINT8 *ROM = m | |
| 409 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 410 | 410 | |
| 411 | 411 | ROM[0x4465] = 0x00; |
| 412 | 412 | ROM[0x4466] = 0x00; |
| r21033 | r21034 | |
|---|---|---|
| 1651 | 1651 | |
| 1652 | 1652 | DRIVER_INIT_MEMBER(tmaster_state,tm4k) |
| 1653 | 1653 | { |
| 1654 | UINT16 *ROM = (UINT16 *)m | |
| 1654 | UINT16 *ROM = (UINT16 *)memregion( "maincpu" )->base(); | |
| 1655 | 1655 | |
| 1656 | 1656 | // protection |
| 1657 | 1657 | ROM[0x834ce/2] = 0x4e75; |
| r21033 | r21034 | |
| 1672 | 1672 | |
| 1673 | 1673 | DRIVER_INIT_MEMBER(tmaster_state,tm4ka) |
| 1674 | 1674 | { |
| 1675 | UINT16 *ROM = (UINT16 *)m | |
| 1675 | UINT16 *ROM = (UINT16 *)memregion( "maincpu" )->base(); | |
| 1676 | 1676 | |
| 1677 | 1677 | // protection |
| 1678 | 1678 | ROM[0x83476/2] = 0x4e75; |
| r21033 | r21034 | |
| 1694 | 1694 | |
| 1695 | 1695 | DRIVER_INIT_MEMBER(tmaster_state,tm4kca) |
| 1696 | 1696 | { |
| 1697 | UINT16 *ROM = (UINT16 *)m | |
| 1697 | UINT16 *ROM = (UINT16 *)memregion( "maincpu" )->base(); | |
| 1698 | 1698 | |
| 1699 | 1699 | // protection |
| 1700 | 1700 | ROM[0x83470/2] = 0x4e75; |
| r21033 | r21034 | |
| 1716 | 1716 | |
| 1717 | 1717 | DRIVER_INIT_MEMBER(tmaster_state,tm4kb) |
| 1718 | 1718 | { |
| 1719 | UINT16 *ROM = (UINT16 *)m | |
| 1719 | UINT16 *ROM = (UINT16 *)memregion( "maincpu" )->base(); | |
| 1720 | 1720 | |
| 1721 | 1721 | // protection |
| 1722 | 1722 | ROM[0x82b7a/2] = 0x4e75; |
| r21033 | r21034 | |
| 1737 | 1737 | |
| 1738 | 1738 | DRIVER_INIT_MEMBER(tmaster_state,tm5k) |
| 1739 | 1739 | { |
| 1740 | UINT16 *ROM = (UINT16 *)m | |
| 1740 | UINT16 *ROM = (UINT16 *)memregion( "maincpu" )->base(); | |
| 1741 | 1741 | |
| 1742 | 1742 | // protection |
| 1743 | 1743 | ROM[0x96002/2] = 0x4e75; |
| r21033 | r21034 | |
| 1760 | 1760 | |
| 1761 | 1761 | DRIVER_INIT_MEMBER(tmaster_state,tm5kca) |
| 1762 | 1762 | { |
| 1763 | UINT16 *ROM = (UINT16 *)m | |
| 1763 | UINT16 *ROM = (UINT16 *)memregion( "maincpu" )->base(); | |
| 1764 | 1764 | |
| 1765 | 1765 | // protection |
| 1766 | 1766 | ROM[0x95ffe/2] = 0x4e75; |
| r21033 | r21034 | |
| 1772 | 1772 | |
| 1773 | 1773 | DRIVER_INIT_MEMBER(tmaster_state,tm5ka) |
| 1774 | 1774 | { |
| 1775 | UINT16 *ROM = (UINT16 *)m | |
| 1775 | UINT16 *ROM = (UINT16 *)memregion( "maincpu" )->base(); | |
| 1776 | 1776 | |
| 1777 | 1777 | // protection |
| 1778 | 1778 | ROM[0x96b30/2] = 0x4e75; |
| r21033 | r21034 | |
| 1793 | 1793 | |
| 1794 | 1794 | DRIVER_INIT_MEMBER(tmaster_state,tm7k) |
| 1795 | 1795 | { |
| 1796 | UINT16 *ROM = (UINT16 *)m | |
| 1796 | UINT16 *ROM = (UINT16 *)memregion( "maincpu" )->base(); | |
| 1797 | 1797 | |
| 1798 | 1798 | // protection |
| 1799 | 1799 | ROM[0x81730/2] = 0x4e75; |
| r21033 | r21034 | |
| 1816 | 1816 | |
| 1817 | 1817 | DRIVER_INIT_MEMBER(tmaster_state,tm7ka) |
| 1818 | 1818 | { |
| 1819 | UINT16 *ROM = (UINT16 *)m | |
| 1819 | UINT16 *ROM = (UINT16 *)memregion( "maincpu" )->base(); | |
| 1820 | 1820 | |
| 1821 | 1821 | // protection |
| 1822 | 1822 | ROM[0x81594/2] = 0x4e75; |
| r21033 | r21034 | |
| 1839 | 1839 | |
| 1840 | 1840 | DRIVER_INIT_MEMBER(tmaster_state,tm7keval) |
| 1841 | 1841 | { |
| 1842 | UINT16 *ROM = (UINT16 *)m | |
| 1842 | UINT16 *ROM = (UINT16 *)memregion( "maincpu" )->base(); | |
| 1843 | 1843 | |
| 1844 | 1844 | // protection |
| 1845 | 1845 | ROM[0x8949e/2] = 0x4e75; |
| r21033 | r21034 | |
| 1862 | 1862 | |
| 1863 | 1863 | DRIVER_INIT_MEMBER(tmaster_state,tm8k) |
| 1864 | 1864 | { |
| 1865 | UINT16 *ROM = (UINT16 *)m | |
| 1865 | UINT16 *ROM = (UINT16 *)memregion( "maincpu" )->base(); | |
| 1866 | 1866 | |
| 1867 | 1867 | // protection |
| 1868 | 1868 | ROM[0x78b70/2] = 0x4e75; |
| r21033 | r21034 | |
| 1919 | 1919 | |
| 1920 | 1920 | DRIVER_INIT_MEMBER(tmaster_state,galgame2) |
| 1921 | 1921 | { |
| 1922 | UINT16 *ROM = (UINT16 *)m | |
| 1922 | UINT16 *ROM = (UINT16 *)memregion( "maincpu" )->base(); | |
| 1923 | 1923 | |
| 1924 | 1924 | // Patch BIOS to see the game code as first cartridge (until the PIC therein is emulated) |
| 1925 | 1925 | ROM[0x118da/2] = 0x4a06; |
| r21033 | r21034 | |
|---|---|---|
| 686 | 686 | if(ACCESSING_BITS_0_7) { |
| 687 | 687 | switch(data & 0xf) { |
| 688 | 688 | case 0x1: // 100000-1fffff data roms banking |
| 689 | membank("bank1")->set_base(m | |
| 689 | membank("bank1")->set_base(memregion("maincpu")->base() + 0x1000000 + 0x100000*((data >> 4) & 0xf)); | |
| 690 | 690 | logerror("BANK %x\n", 0x1000000 + 0x100000*((data >> 4) & 0xf)); |
| 691 | 691 | break; |
| 692 | 692 | case 0x2: // 200000-2fffff data roms banking (unused, all known games have only one bank) |
| r21033 | r21034 | |
|---|---|---|
| 338 | 338 | |
| 339 | 339 | void sbowling_state::palette_init() |
| 340 | 340 | { |
| 341 | const UINT8 *color_prom = m | |
| 341 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 342 | 342 | int i; |
| 343 | 343 | |
| 344 | 344 | static const int resistances_rg[3] = { 470, 270, 100 }; |
| r21033 | r21034 | |
|---|---|---|
| 414 | 414 | #if 0 |
| 415 | 415 | int m72_state::find_sample(int num) |
| 416 | 416 | { |
| 417 | UINT8 *rom = machine().root_device().memregion("samples")->base(); | |
| 418 | int len = machine().root_device().memregion("samples")->bytes(); | |
| 417 | UINT8 *rom = memregion("samples")->base(); | |
| 418 | int len = memregion("samples")->bytes(); | |
| 419 | 419 | int addr = 0; |
| 420 | 420 | |
| 421 | 421 | while (num--) |
| r21033 | r21034 | |
|---|---|---|
| 30 | 30 | |
| 31 | 31 | for (i = 0; i < 8; i++) |
| 32 | 32 | { |
| 33 | UINT8 val = | |
| 33 | UINT8 val = ioport(dialnames[i])->read() >> 4; | |
| 34 | 34 | |
| 35 | 35 | signed char delta = (val - m_dial[i]) & 15; |
| 36 | 36 |
| r21033 | r21034 | |
|---|---|---|
| 778 | 778 | DRIVER_INIT_MEMBER(kingofb_state,ringking3) |
| 779 | 779 | { |
| 780 | 780 | int i; |
| 781 | UINT8 *RAM = m | |
| 781 | UINT8 *RAM = memregion("proms")->base(); | |
| 782 | 782 | |
| 783 | 783 | /* expand the first color PROM to look like the kingofb ones... */ |
| 784 | 784 | for (i = 0; i < 0x100; i++) |
| r21033 | r21034 | |
| 788 | 788 | DRIVER_INIT_MEMBER(kingofb_state,ringkingw) |
| 789 | 789 | { |
| 790 | 790 | int i,j,k; |
| 791 | UINT8 *PROMS = machine().root_device().memregion("proms")->base(); | |
| 792 | UINT8 *USER1 = machine().root_device().memregion("user1")->base(); | |
| 791 | UINT8 *PROMS = memregion("proms")->base(); | |
| 792 | UINT8 *USER1 = memregion("user1")->base(); | |
| 793 | 793 | |
| 794 | 794 | /* change the PROMs encode in a simple format to use kingofb decode */ |
| 795 | 795 | for(i = 0, j = 0; j < 0x40; i++, j++) |
| r21033 | r21034 | |
|---|---|---|
| 681 | 681 | { |
| 682 | 682 | // search for the project string to find the title (usually just at ff00) |
| 683 | 683 | char title_string[7][32] = { "PROJECT NUMBER", "PROJECT PR", "PROJECT ", "CASH ON THE NILE 2", "PR6121", "CHINA TOWN\x0d\x0a", "PROJECTNUMBER" }; |
| 684 | UINT8 *src = machine().root_device().memregion( "maincpu" )->base(); | |
| 685 | int size = machine().root_device().memregion( "maincpu" )->bytes(); | |
| 684 | UINT8 *src = memregion( "maincpu" )->base(); | |
| 685 | int size = memregion( "maincpu" )->bytes(); | |
| 686 | 686 | |
| 687 | 687 | for (int search=0;search<7;search++) |
| 688 | 688 | { |
| r21033 | r21034 | |
|---|---|---|
| 703 | 703 | { |
| 704 | 704 | /* bit 0x20 on address 7 controls CPU banking */ |
| 705 | 705 | if (offset / 2 == 7) |
| 706 | membank("bank1")->set_base(&m | |
| 706 | membank("bank1")->set_base(&memregion("maincpu")->base()[0x4000 + 0xc000 * ((data >> 5) & 1)]); | |
| 707 | 707 | |
| 708 | 708 | /* the rest is handled by the video hardware */ |
| 709 | 709 | itech8_blitter_w(space, offset, data); |
| r21033 | r21034 | |
| 713 | 713 | WRITE8_MEMBER(itech8_state::rimrockn_bank_w) |
| 714 | 714 | { |
| 715 | 715 | /* banking is controlled here instead of by the blitter output */ |
| 716 | membank("bank1")->set_base(&m | |
| 716 | membank("bank1")->set_base(&memregion("maincpu")->base()[0x4000 + 0xc000 * (data & 3)]); | |
| 717 | 717 | } |
| 718 | 718 | |
| 719 | 719 |
| r21033 | r21034 | |
|---|---|---|
| 219 | 219 | |
| 220 | 220 | void ettrivia_state::palette_init() |
| 221 | 221 | { |
| 222 | const UINT8 *color_prom = m | |
| 222 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 223 | 223 | static const int resistances[2] = { 270, 130 }; |
| 224 | 224 | double weights[2]; |
| 225 | 225 | int i; |
| r21033 | r21034 | |
| 292 | 292 | |
| 293 | 293 | INTERRUPT_GEN_MEMBER(ettrivia_state::ettrivia_interrupt) |
| 294 | 294 | { |
| 295 | if( | |
| 295 | if( ioport("COIN")->read() & 0x01 ) | |
| 296 | 296 | device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); |
| 297 | 297 | else |
| 298 | 298 | device.execute().set_input_line(0, HOLD_LINE); |
| r21033 | r21034 | |
|---|---|---|
| 555 | 555 | /* This game doesn't like all memory to be initialized to zero, it won't |
| 556 | 556 | initialize the high scores */ |
| 557 | 557 | |
| 558 | UINT8 *RAM = m | |
| 558 | UINT8 *RAM = memregion("maincpu")->base(); | |
| 559 | 559 | |
| 560 | 560 | memset(&RAM[0xe000], 0, 0x100); |
| 561 | 561 | RAM[0xe000] = 1; |
| r21033 | r21034 | |
|---|---|---|
| 132 | 132 | /*Maybe bit 2 & 3 of the second color prom are intensity bits? */ |
| 133 | 133 | void supdrapo_state::palette_init() |
| 134 | 134 | { |
| 135 | const UINT8 *color_prom = m | |
| 135 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 136 | 136 | int bit0, bit1, bit2 , r, g, b; |
| 137 | 137 | int i; |
| 138 | 138 |
| r21033 | r21034 | |
|---|---|---|
| 54 | 54 | |
| 55 | 55 | void quizo_state::palette_init() |
| 56 | 56 | { |
| 57 | const UINT8 *color_prom = m | |
| 57 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 58 | 58 | int i; |
| 59 | 59 | for (i = 0;i < 16;i++) |
| 60 | 60 | { |
| r21033 | r21034 | |
| 131 | 131 | data=0; |
| 132 | 132 | } |
| 133 | 133 | m_port60=data; |
| 134 | membank("bank1")->set_base(&m | |
| 134 | membank("bank1")->set_base(&memregion("user1")->base()[rombankLookup[data]*0x4000] ); | |
| 135 | 135 | } |
| 136 | 136 | |
| 137 | 137 | static ADDRESS_MAP_START( memmap, AS_PROGRAM, 8, quizo_state ) |
| r21033 | r21034 | |
|---|---|---|
| 122 | 122 | |
| 123 | 123 | case 1: /* ext rom */ |
| 124 | 124 | { |
| 125 | UINT8 *mem = m | |
| 125 | UINT8 *mem = memregion("extrom")->base(); | |
| 126 | 126 | membank("bank1")->set_base(mem+0x4000); |
| 127 | 127 | membank("bank2")->set_base(mem+0x6000); |
| 128 | 128 | } |
| r21033 | r21034 | |
| 130 | 130 | |
| 131 | 131 | case 2: /* banked */ |
| 132 | 132 | { |
| 133 | UINT8 *mem = m | |
| 133 | UINT8 *mem = memregion("banked")->base(); | |
| 134 | 134 | membank("bank1")->set_base(mem+0x2000*m_bank[0]); |
| 135 | 135 | membank("bank2")->set_base(mem+0x2000*m_bank[1]); |
| 136 | 136 | } |
| r21033 | r21034 | |
| 138 | 138 | |
| 139 | 139 | case 3: /* unknown */ |
| 140 | 140 | { |
| 141 | UINT8 *mem = m | |
| 141 | UINT8 *mem = memregion("banked")->base(); | |
| 142 | 142 | membank("bank1")->set_base(mem+0x18000); |
| 143 | 143 | membank("bank2")->set_base(mem+0x18000); |
| 144 | 144 | } |
| r21033 | r21034 | |
| 150 | 150 | { |
| 151 | 151 | case 0: /* bios - upper part */ |
| 152 | 152 | { |
| 153 | UINT8 *mem = m | |
| 153 | UINT8 *mem = memregion("bios")->base(); | |
| 154 | 154 | membank("bank3")->set_base(mem+0x4000); |
| 155 | 155 | membank("bank4")->set_base(mem+0x6000); |
| 156 | 156 | } |
| r21033 | r21034 | |
| 159 | 159 | case 1: /* unknown */ |
| 160 | 160 | case 3: |
| 161 | 161 | { |
| 162 | UINT8 *mem = m | |
| 162 | UINT8 *mem = memregion("banked")->base(); | |
| 163 | 163 | membank("bank3")->set_base(mem+0x18000); |
| 164 | 164 | membank("bank4")->set_base(mem+0x18000); |
| 165 | 165 | } |
| r21033 | r21034 | |
| 167 | 167 | |
| 168 | 168 | case 2: /* banked */ |
| 169 | 169 | { |
| 170 | UINT8 *mem = m | |
| 170 | UINT8 *mem = memregion("banked")->base(); | |
| 171 | 171 | membank("bank3")->set_base(mem+0x2000*m_bank[2]); |
| 172 | 172 | membank("bank4")->set_base(mem+0x2000*m_bank[3]); |
| 173 | 173 | } |
| r21033 | r21034 | |
| 179 | 179 | { |
| 180 | 180 | case 0: /* cartridge */ |
| 181 | 181 | { |
| 182 | UINT8 *mem = m | |
| 182 | UINT8 *mem = memregion("cartridge")->base(); | |
| 183 | 183 | membank("bank5")->set_base(mem+0x4000); |
| 184 | 184 | membank("bank6")->set_base(mem+0x6000); |
| 185 | 185 | } |
| r21033 | r21034 | |
| 188 | 188 | case 1: /* unknown */ |
| 189 | 189 | case 3: |
| 190 | 190 | { |
| 191 | UINT8 *mem = m | |
| 191 | UINT8 *mem = memregion("banked")->base(); | |
| 192 | 192 | membank("bank5")->set_base(mem+0x18000); |
| 193 | 193 | membank("bank6")->set_base(mem+0x18000); |
| 194 | 194 | } |
| r21033 | r21034 | |
| 196 | 196 | |
| 197 | 197 | case 2: /* banked */ |
| 198 | 198 | { |
| 199 | UINT8 *mem = m | |
| 199 | UINT8 *mem = memregion("banked")->base(); | |
| 200 | 200 | membank("bank5")->set_base(mem+0x2000*m_bank[4]); |
| 201 | 201 | membank("bank6")->set_base(mem+0x2000*m_bank[5]); |
| 202 | 202 | } |
| r21033 | r21034 | |
| 209 | 209 | case 0: /* unknown */ |
| 210 | 210 | case 1: |
| 211 | 211 | { |
| 212 | UINT8 *mem = m | |
| 212 | UINT8 *mem = memregion("banked")->base(); | |
| 213 | 213 | membank("bank7")->set_base(mem+0x18000); |
| 214 | 214 | membank("bank8")->set_base(mem+0x18000); |
| 215 | 215 | } |
| r21033 | r21034 | |
| 217 | 217 | |
| 218 | 218 | case 2: /* banked */ |
| 219 | 219 | { |
| 220 | UINT8 *mem = m | |
| 220 | UINT8 *mem = memregion("banked")->base(); | |
| 221 | 221 | membank("bank7")->set_base(mem+0x2000*m_bank[6]); |
| 222 | 222 | membank("bank8")->set_base(mem+0x2000*m_bank[7]); |
| 223 | 223 | } |
| r21033 | r21034 | |
|---|---|---|
| 112 | 112 | case 2: |
| 113 | 113 | machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_bank(0x4000, 0x7fff, "bank2"); |
| 114 | 114 | machine().device("maincpu")->memory().space(AS_PROGRAM).unmap_write(0x4000, 0x7fff); |
| 115 | membank("bank2")->set_base(m | |
| 115 | membank("bank2")->set_base(memregion("user1")->base()+ 0x18000); | |
| 116 | 116 | break; |
| 117 | 117 | case 3: |
| 118 | 118 | machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_bank(0x4000, 0x7fff, "bank2"); |
| 119 | 119 | machine().device("maincpu")->memory().space(AS_PROGRAM).unmap_write(0x4000, 0x7fff); |
| 120 | membank("bank2")->set_base(m | |
| 120 | membank("bank2")->set_base(memregion("user1")->base()+ 0x20000 + (m_pzlestar_rom_bank*0x8000) + 0x4000); | |
| 121 | 121 | break; |
| 122 | 122 | case 1: |
| 123 | 123 | machine().device("maincpu")->memory().space(AS_PROGRAM).unmap_read(0x4000, 0x7fff); |
| r21033 | r21034 | |
| 138 | 138 | case 3: |
| 139 | 139 | machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_bank(0x8000, 0xbfff, "bank3"); |
| 140 | 140 | machine().device("maincpu")->memory().space(AS_PROGRAM).unmap_write(0x8000, 0xbfff); |
| 141 | membank("bank3")->set_base(m | |
| 141 | membank("bank3")->set_base(memregion("user1")->base()+ 0x20000 + (m_pzlestar_rom_bank*0x8000)); | |
| 142 | 142 | break; |
| 143 | 143 | case 1: |
| 144 | 144 | case 2: |
| r21033 | r21034 | |
| 208 | 208 | else |
| 209 | 209 | { |
| 210 | 210 | // rom 0 |
| 211 | membank(read_bank_name)->set_base(m | |
| 211 | membank(read_bank_name)->set_base(memregion("user1")->base()+0x4000*banknum); | |
| 212 | 212 | machine().device("maincpu")->memory().space(AS_PROGRAM).unmap_write(bank*0x4000, (bank+1)*0x4000 - 1); |
| 213 | 213 | } |
| 214 | 214 | } |
| 215 | 215 | else if (banktype == 0x82) |
| 216 | 216 | { |
| 217 | membank(read_bank_name)->set_base(m | |
| 217 | membank(read_bank_name)->set_base(memregion("user1")->base()+0x20000+banknum*0x4000); | |
| 218 | 218 | machine().device("maincpu")->memory().space(AS_PROGRAM).unmap_write(bank*0x4000, (bank+1)*0x4000 - 1); |
| 219 | 219 | } |
| 220 | 220 | else if (banktype == 0x80) |
| 221 | 221 | { |
| 222 | membank(read_bank_name)->set_base(m | |
| 222 | membank(read_bank_name)->set_base(memregion("user1")->base()+0x120000+banknum*0x4000); | |
| 223 | 223 | machine().device("maincpu")->memory().space(AS_PROGRAM).unmap_write(bank*0x4000, (bank+1)*0x4000 - 1); |
| 224 | 224 | } |
| 225 | 225 | else |
| r21033 | r21034 | |
|---|---|---|
| 572 | 572 | |
| 573 | 573 | DRIVER_INIT_MEMBER(pingpong_state,merlinmm) |
| 574 | 574 | { |
| 575 | UINT8 *ROM = m | |
| 575 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 576 | 576 | int i; |
| 577 | 577 | |
| 578 | 578 | /* decrypt program code */ |
| r21033 | r21034 | |
| 586 | 586 | int i; |
| 587 | 587 | |
| 588 | 588 | /* decrypt program code */ |
| 589 | ROM = m | |
| 589 | ROM = memregion("maincpu")->base(); | |
| 590 | 590 | for( i = 0; i < 0x4000; i++ ) |
| 591 | 591 | ROM[i] = BITSWAP8(ROM[i],0,1,2,3,4,5,6,7); |
| 592 | 592 | |
| 593 | 593 | /* decrypt questions */ |
| 594 | ROM = m | |
| 594 | ROM = memregion("user1")->base(); | |
| 595 | 595 | for( i = 0; i < 0x40000; i++ ) |
| 596 | 596 | ROM[i] = BITSWAP8(ROM[i],0,1,2,3,4,5,6,7); |
| 597 | 597 |
| r21033 | r21034 | |
|---|---|---|
| 275 | 275 | |
| 276 | 276 | WRITE8_MEMBER(dynax_state::hnoridur_rombank_w) |
| 277 | 277 | { |
| 278 | int bank_n = (m | |
| 278 | int bank_n = (memregion("maincpu")->bytes() - 0x10000) / 0x8000; | |
| 279 | 279 | |
| 280 | 280 | //logerror("%04x: rom bank = %02x\n", space.device().safe_pc(), data); |
| 281 | 281 | if (data < bank_n) |
| r21033 | r21034 | |
| 743 | 743 | |
| 744 | 744 | WRITE8_MEMBER(dynax_state::yarunara_rombank_w) |
| 745 | 745 | { |
| 746 | int bank_n = (m | |
| 746 | int bank_n = (memregion("maincpu")->bytes() - 0x10000) / 0x8000; | |
| 747 | 747 | |
| 748 | 748 | //logerror("%04x: rom bank = %02x\n", space.device().safe_pc(), data); |
| 749 | 749 | if (data < bank_n) |
| r21033 | r21034 | |
| 4317 | 4317 | |
| 4318 | 4318 | MACHINE_START_MEMBER(dynax_state,hanamai) |
| 4319 | 4319 | { |
| 4320 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 4321 | machine().root_device().membank("bank1")->configure_entries(0, 0x10, &ROM[0x8000], 0x8000); | |
| 4320 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 4321 | membank("bank1")->configure_entries(0, 0x10, &ROM[0x8000], 0x8000); | |
| 4322 | 4322 | |
| 4323 | 4323 | MACHINE_START_CALL_MEMBER(dynax); |
| 4324 | 4324 | } |
| 4325 | 4325 | |
| 4326 | 4326 | MACHINE_START_MEMBER(dynax_state,hnoridur) |
| 4327 | 4327 | { |
| 4328 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 4329 | int bank_n = (machine().root_device().memregion("maincpu")->bytes() - 0x10000) / 0x8000; | |
| 4328 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 4329 | int bank_n = (memregion("maincpu")->bytes() - 0x10000) / 0x8000; | |
| 4330 | 4330 | |
| 4331 | m | |
| 4331 | membank("bank1")->configure_entries(0, bank_n, &ROM[0x10000], 0x8000); | |
| 4332 | 4332 | |
| 4333 | 4333 | MACHINE_START_CALL_MEMBER(dynax); |
| 4334 | 4334 | } |
| 4335 | 4335 | |
| 4336 | 4336 | MACHINE_START_MEMBER(dynax_state,htengoku) |
| 4337 | 4337 | { |
| 4338 | UINT8 *ROM = m | |
| 4338 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 4339 | 4339 | |
| 4340 | m | |
| 4340 | membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x8000); | |
| 4341 | 4341 | |
| 4342 | 4342 | MACHINE_START_CALL_MEMBER(dynax); |
| 4343 | 4343 | } |
| r21033 | r21034 | |
| 5432 | 5432 | DRIVER_INIT_MEMBER(dynax_state,blktouch) |
| 5433 | 5433 | { |
| 5434 | 5434 | // fearsome encryption ;-) |
| 5435 | UINT8 *src = (UINT8 *)m | |
| 5435 | UINT8 *src = (UINT8 *)memregion("maincpu")->base(); | |
| 5436 | 5436 | int i; |
| 5437 | 5437 | |
| 5438 | 5438 | for (i = 0; i < 0x90000; i++) |
| r21033 | r21034 | |
| 5441 | 5441 | |
| 5442 | 5442 | } |
| 5443 | 5443 | |
| 5444 | src = (UINT8 *)m | |
| 5444 | src = (UINT8 *)memregion("gfx1")->base(); | |
| 5445 | 5445 | |
| 5446 | 5446 | for (i = 0; i < 0xc0000; i++) |
| 5447 | 5447 | { |
| r21033 | r21034 | |
| 5454 | 5454 | { |
| 5455 | 5455 | /* Address lines scrambling on 1 z80 rom */ |
| 5456 | 5456 | int i; |
| 5457 | UINT8 *gfx = (UINT8 *)machine().root_device().memregion("gfx1")->base(); | |
| 5458 | UINT8 *rom = machine().root_device().memregion("maincpu")->base() + 0x28000, *end = rom + 0x10000; | |
| 5457 | UINT8 *gfx = (UINT8 *)memregion("gfx1")->base(); | |
| 5458 | UINT8 *rom = memregion("maincpu")->base() + 0x28000, *end = rom + 0x10000; | |
| 5459 | 5459 | for ( ; rom < end; rom += 8) |
| 5460 | 5460 | { |
| 5461 | 5461 | UINT8 temp[8]; |
| r21033 | r21034 | |
| 6265 | 6265 | DRIVER_INIT_MEMBER(dynax_state,mjelct3) |
| 6266 | 6266 | { |
| 6267 | 6267 | int i; |
| 6268 | UINT8 *rom = machine().root_device().memregion("maincpu")->base(); | |
| 6269 | size_t size = machine().root_device().memregion("maincpu")->bytes(); | |
| 6268 | UINT8 *rom = memregion("maincpu")->base(); | |
| 6269 | size_t size = memregion("maincpu")->bytes(); | |
| 6270 | 6270 | UINT8 *rom1 = auto_alloc_array(machine(), UINT8, size); |
| 6271 | 6271 | |
| 6272 | 6272 | memcpy(rom1, rom, size); |
| r21033 | r21034 | |
| 6278 | 6278 | DRIVER_INIT_MEMBER(dynax_state,mjelct3a) |
| 6279 | 6279 | { |
| 6280 | 6280 | int i, j; |
| 6281 | UINT8 *rom = machine().root_device().memregion("maincpu")->base(); | |
| 6282 | size_t size = machine().root_device().memregion("maincpu")->bytes(); | |
| 6281 | UINT8 *rom = memregion("maincpu")->base(); | |
| 6282 | size_t size = memregion("maincpu")->bytes(); | |
| 6283 | 6283 | UINT8 *rom1 = auto_alloc_array(machine(), UINT8, size); |
| 6284 | 6284 | |
| 6285 | 6285 | memcpy(rom1, rom, size); |
| r21033 | r21034 | |
|---|---|---|
| 237 | 237 | |
| 238 | 238 | DRIVER_INIT_MEMBER(tattack_state,tattack) |
| 239 | 239 | { |
| 240 | UINT8 *rom = m | |
| 240 | UINT8 *rom = memregion("maincpu")->base(); | |
| 241 | 241 | |
| 242 | 242 | rom[0x1b4]=0; |
| 243 | 243 | rom[0x1b5]=0; |
| r21033 | r21034 | |
|---|---|---|
| 1179 | 1179 | |
| 1180 | 1180 | DRIVER_INIT_MEMBER(m90_state,bomblord) |
| 1181 | 1181 | { |
| 1182 | UINT16 *ROM = (UINT16 *)(m | |
| 1182 | UINT16 *ROM = (UINT16 *)(memregion("maincpu")->base()); | |
| 1183 | 1183 | |
| 1184 | 1184 | for (int i = 0; i < 0x100000 / 2; i += 4) |
| 1185 | 1185 | { |
| r21033 | r21034 | |
|---|---|---|
| 510 | 510 | |
| 511 | 511 | DRIVER_INIT_MEMBER(cbuster_state,twocrude) |
| 512 | 512 | { |
| 513 | UINT8 *RAM = m | |
| 513 | UINT8 *RAM = memregion("maincpu")->base(); | |
| 514 | 514 | UINT8 *PTR; |
| 515 | 515 | int i, j; |
| 516 | 516 | |
| r21033 | r21034 | |
| 527 | 527 | } |
| 528 | 528 | |
| 529 | 529 | /* Rearrange the 'extra' sprite bank to be in the same format as main sprites */ |
| 530 | RAM = machine().root_device().memregion("gfx3")->base() + 0x080000; | |
| 531 | PTR = machine().root_device().memregion("gfx3")->base() + 0x140000; | |
| 530 | RAM = memregion("gfx3")->base() + 0x080000; | |
| 531 | PTR = memregion("gfx3")->base() + 0x140000; | |
| 532 | 532 | for (i = 0; i < 0x20000; i += 64) |
| 533 | 533 | { |
| 534 | 534 | for (j = 0; j < 16; j += 1) |
| r21033 | r21034 | |
|---|---|---|
| 382 | 382 | UINT32 data = 0xFFFFFFFF; |
| 383 | 383 | switch (port_g) |
| 384 | 384 | { |
| 385 | case 0x8 : data = machine().root_device().ioport( "10000000-08")->read(); break; | |
| 386 | case 0x9 : data = machine().root_device().ioport( "10000000-09")->read(); break; | |
| 387 | case 0xA : data = machine().root_device().ioport( "10000000-0A")->read(); break; | |
| 388 | case 0xB : data = machine().root_device().ioport( "10000000-0B")->read(); break; | |
| 389 | case 0xC : data = machine().root_device().ioport( "10000000-0C")->read(); break; | |
| 385 | case 0x8 : data = ioport( "10000000-08")->read(); break; | |
| 386 | case 0x9 : data = ioport( "10000000-09")->read(); break; | |
| 387 | case 0xA : data = ioport( "10000000-0A")->read(); break; | |
| 388 | case 0xB : data = ioport( "10000000-0B")->read(); break; | |
| 389 | case 0xC : data = ioport( "10000000-0C")->read(); break; | |
| 390 | 390 | } |
| 391 | 391 | // logerror( "touryuu_port_10000000_r (%08X) -> %08X\n", port_g, data); |
| 392 | 392 | return data; |
| r21033 | r21034 | |
| 591 | 591 | |
| 592 | 592 | void ghosteo_state::machine_start() |
| 593 | 593 | { |
| 594 | m_flash = (UINT8 *)m | |
| 594 | m_flash = (UINT8 *)memregion( "user1")->base(); | |
| 595 | 595 | } |
| 596 | 596 | |
| 597 | 597 | void ghosteo_state::machine_reset() |
| r21033 | r21034 | |
|---|---|---|
| 25 | 25 | |
| 26 | 26 | inline UINT8 madalien_state::shift_common(UINT8 hi, UINT8 lo) |
| 27 | 27 | { |
| 28 | const UINT8 *table = m | |
| 28 | const UINT8 *table = memregion("user2")->base(); | |
| 29 | 29 | |
| 30 | 30 | return table[((hi & 0x07) << 8) | lo]; |
| 31 | 31 | } |
| r21033 | r21034 | |
|---|---|---|
| 135 | 135 | void flipjack_state::palette_init() |
| 136 | 136 | { |
| 137 | 137 | // from prom |
| 138 | const UINT8 *color_prom = m | |
| 138 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 139 | 139 | for (int i = 0; i < 0x40; i++) |
| 140 | 140 | { |
| 141 | 141 | palette_set_color_rgb(machine(), 2*i+1, pal1bit(i >> 1), pal1bit(i >> 2), pal1bit(i >> 0)); |
| r21033 | r21034 | |
| 463 | 463 | |
| 464 | 464 | void flipjack_state::machine_start() |
| 465 | 465 | { |
| 466 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 467 | machine().root_device().membank("bank1")->configure_entries(0, 2, &ROM[0x10000], 0x2000); | |
| 466 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 467 | membank("bank1")->configure_entries(0, 2, &ROM[0x10000], 0x2000); | |
| 468 | 468 | membank("bank1")->set_entry(0); |
| 469 | 469 | |
| 470 | 470 | save_item(NAME(m_soundlatch)); |
| r21033 | r21034 | |
|---|---|---|
| 37 | 37 | |
| 38 | 38 | void mogura_state::palette_init() |
| 39 | 39 | { |
| 40 | const UINT8 *color_prom = m | |
| 40 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 41 | 41 | int i, j; |
| 42 | 42 | |
| 43 | 43 | j = 0; |
| r21033 | r21034 | |
|---|---|---|
| 470 | 470 | DRIVER_INIT_MEMBER(pbaction_state,pbactio3) |
| 471 | 471 | { |
| 472 | 472 | int i; |
| 473 | UINT8 *rom = m | |
| 473 | UINT8 *rom = memregion("maincpu")->base(); | |
| 474 | 474 | |
| 475 | 475 | /* first of all, do a simple bitswap */ |
| 476 | 476 | for (i = 0; i < 0xc000; i++) |
| r21033 | r21034 | |
|---|---|---|
| 4921 | 4921 | *****************************************************************************************************/ |
| 4922 | 4922 | |
| 4923 | 4923 | int x, na, nb, nad, nbd; |
| 4924 | UINT8 *src = m | |
| 4924 | UINT8 *src = memregion( "gfx1" )->base(); | |
| 4925 | 4925 | |
| 4926 | 4926 | |
| 4927 | 4927 | for (x=0x0000; x < 0x10000; x++) |
| r21033 | r21034 | |
| 4952 | 4952 | |
| 4953 | 4953 | ******************************************************************/ |
| 4954 | 4954 | { |
| 4955 | UINT8 *ROM = m | |
| 4955 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 4956 | 4956 | |
| 4957 | 4957 | ROM[0xc1c6] = 0x92; |
| 4958 | 4958 | } |
| r21033 | r21034 | |
| 4962 | 4962 | /*** same as blue TAB PCB, with the magicd2a patch ***/ |
| 4963 | 4963 | { |
| 4964 | 4964 | int x, na, nb, nad, nbd; |
| 4965 | UINT8 *src = machine().root_device().memregion( "gfx1" )->base(); | |
| 4966 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 4965 | UINT8 *src = memregion( "gfx1" )->base(); | |
| 4966 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 4967 | 4967 | |
| 4968 | 4968 | for (x=0x0000; x < 0x10000; x++) |
| 4969 | 4969 | { |
| r21033 | r21034 | |
| 4983 | 4983 | DRIVER_INIT_MEMBER(funworld_state, soccernw) |
| 4984 | 4984 | { |
| 4985 | 4985 | /* temporary patch to avoid hardware errors for debug purposes */ |
| 4986 | UINT8 *ROM = m | |
| 4986 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 4987 | 4987 | |
| 4988 | 4988 | ROM[0x80b2] = 0xa9; |
| 4989 | 4989 | ROM[0x80b3] = 0x00; |
| r21033 | r21034 | |
| 5019 | 5019 | |
| 5020 | 5020 | *************************************************/ |
| 5021 | 5021 | { |
| 5022 | UINT8 *rom = machine().root_device().memregion("maincpu")->base(); | |
| 5023 | int size = machine().root_device().memregion("maincpu")->bytes(); | |
| 5022 | UINT8 *rom = memregion("maincpu")->base(); | |
| 5023 | int size = memregion("maincpu")->bytes(); | |
| 5024 | 5024 | int start = 0x8000; |
| 5025 | 5025 | |
| 5026 | UINT8 *gfxrom = machine().root_device().memregion("gfx1")->base(); | |
| 5027 | int sizeg = machine().root_device().memregion("gfx1")->bytes(); | |
| 5026 | UINT8 *gfxrom = memregion("gfx1")->base(); | |
| 5027 | int sizeg = memregion("gfx1")->bytes(); | |
| 5028 | 5028 | int startg = 0; |
| 5029 | 5029 | |
| 5030 | UINT8 *prom = machine().root_device().memregion("proms")->base(); | |
| 5031 | int sizep = machine().root_device().memregion("proms")->bytes(); | |
| 5030 | UINT8 *prom = memregion("proms")->base(); | |
| 5031 | int sizep = memregion("proms")->bytes(); | |
| 5032 | 5032 | int startp = 0; |
| 5033 | 5033 | |
| 5034 | 5034 | UINT8 *buffer; |
| r21033 | r21034 | |
| 5114 | 5114 | |
| 5115 | 5115 | ******************************************************/ |
| 5116 | 5116 | { |
| 5117 | UINT8 *ROM = m | |
| 5117 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 5118 | 5118 | address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); |
| 5119 | 5119 | |
| 5120 | 5120 | int x; |
| r21033 | r21034 | |
| 5133 | 5133 | ROM[x+0x10000] = code; |
| 5134 | 5134 | } |
| 5135 | 5135 | |
| 5136 | space.set_decrypted_region(0x8000, 0xffff, m | |
| 5136 | space.set_decrypted_region(0x8000, 0xffff, memregion("maincpu")->base() + 0x18000); | |
| 5137 | 5137 | } |
| 5138 | 5138 | |
| 5139 | 5139 | |
| r21033 | r21034 | |
| 5148 | 5148 | |
| 5149 | 5149 | ******************************************************/ |
| 5150 | 5150 | |
| 5151 | UINT8 *ROM = m | |
| 5151 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 5152 | 5152 | address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); |
| 5153 | 5153 | |
| 5154 | 5154 | int x; |
| r21033 | r21034 | |
| 5187 | 5187 | ROM[x+0x10000] = code; |
| 5188 | 5188 | } |
| 5189 | 5189 | |
| 5190 | space.set_decrypted_region(0x6000, 0xffff, m | |
| 5190 | space.set_decrypted_region(0x6000, 0xffff, memregion("maincpu")->base() + 0x16000); | |
| 5191 | 5191 | } |
| 5192 | 5192 | |
| 5193 | 5193 | |
| r21033 | r21034 | |
| 5208 | 5208 | |
| 5209 | 5209 | ******************************************************/ |
| 5210 | 5210 | { |
| 5211 | UINT8 *rom = machine().root_device().memregion("maincpu")->base(); | |
| 5212 | int size = machine().root_device().memregion("maincpu")->bytes(); | |
| 5211 | UINT8 *rom = memregion("maincpu")->base(); | |
| 5212 | int size = memregion("maincpu")->bytes(); | |
| 5213 | 5213 | int start = 0x8000; |
| 5214 | 5214 | |
| 5215 | UINT8 *gfxrom = machine().root_device().memregion("gfx1")->base(); | |
| 5216 | int sizeg = machine().root_device().memregion("gfx1")->bytes(); | |
| 5215 | UINT8 *gfxrom = memregion("gfx1")->base(); | |
| 5216 | int sizeg = memregion("gfx1")->bytes(); | |
| 5217 | 5217 | int startg = 0; |
| 5218 | 5218 | |
| 5219 | 5219 | UINT8 *buffer; |
| r21033 | r21034 | |
| 5272 | 5272 | |
| 5273 | 5273 | *********************************************************/ |
| 5274 | 5274 | { |
| 5275 | UINT8 *rom = machine().root_device().memregion("maincpu")->base(); | |
| 5276 | int size = machine().root_device().memregion("maincpu")->bytes(); | |
| 5275 | UINT8 *rom = memregion("maincpu")->base(); | |
| 5276 | int size = memregion("maincpu")->bytes(); | |
| 5277 | 5277 | int start = 0x8000; |
| 5278 | 5278 | |
| 5279 | 5279 | UINT8 *buffer; |
| r21033 | r21034 | |
| 5299 | 5299 | *****************************/ |
| 5300 | 5300 | |
| 5301 | 5301 | int x, na, nb, nad, nbd; |
| 5302 | UINT8 *src = machine().root_device().memregion( "gfx1" )->base(); | |
| 5303 | //UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 5302 | UINT8 *src = memregion( "gfx1" )->base(); | |
| 5303 | //UINT8 *ROM = memregion("maincpu")->base(); | |
| 5304 | 5304 | |
| 5305 | 5305 | for (x=0x0000; x < 0x10000; x++) |
| 5306 | 5306 | { |
| r21033 | r21034 | |
|---|---|---|
| 298 | 298 | |
| 299 | 299 | DRIVER_INIT_MEMBER(jackpool_state,jackpool) |
| 300 | 300 | { |
| 301 | UINT16 *rom = (UINT16 *)m | |
| 301 | UINT16 *rom = (UINT16 *)memregion("maincpu")->base(); | |
| 302 | 302 | |
| 303 | 303 | /* patch NVRAM routine */ |
| 304 | 304 | rom[0x9040/2] = 0x6602; |
| r21033 | r21034 | |
|---|---|---|
| 278 | 278 | |
| 279 | 279 | WRITE8_MEMBER(gei_state::banksel_main_w) |
| 280 | 280 | { |
| 281 | membank("bank1")->set_base(m | |
| 281 | membank("bank1")->set_base(memregion("maincpu")->base() + 0x8000); | |
| 282 | 282 | } |
| 283 | 283 | WRITE8_MEMBER(gei_state::banksel_1_w) |
| 284 | 284 | { |
| 285 | membank("bank1")->set_base(m | |
| 285 | membank("bank1")->set_base(memregion("maincpu")->base() + 0x10000); | |
| 286 | 286 | } |
| 287 | 287 | WRITE8_MEMBER(gei_state::banksel_2_w) |
| 288 | 288 | { |
| 289 | membank("bank1")->set_base(m | |
| 289 | membank("bank1")->set_base(memregion("maincpu")->base() + 0x18000); | |
| 290 | 290 | } |
| 291 | 291 | WRITE8_MEMBER(gei_state::banksel_3_w) |
| 292 | 292 | { |
| 293 | membank("bank1")->set_base(m | |
| 293 | membank("bank1")->set_base(memregion("maincpu")->base() + 0x20000); | |
| 294 | 294 | } |
| 295 | 295 | WRITE8_MEMBER(gei_state::banksel_4_w) |
| 296 | 296 | { |
| 297 | membank("bank1")->set_base(m | |
| 297 | membank("bank1")->set_base(memregion("maincpu")->base() + 0x28000); | |
| 298 | 298 | } |
| 299 | 299 | WRITE8_MEMBER(gei_state::banksel_5_w) |
| 300 | 300 | { |
| 301 | membank("bank1")->set_base(m | |
| 301 | membank("bank1")->set_base(memregion("maincpu")->base() + 0x30000); | |
| 302 | 302 | } |
| 303 | 303 | |
| 304 | 304 | WRITE8_MEMBER(gei_state::banksel_1_1_w) |
| 305 | 305 | { |
| 306 | membank("bank1")->set_base(m | |
| 306 | membank("bank1")->set_base(memregion("maincpu")->base() + 0x10000); | |
| 307 | 307 | } |
| 308 | 308 | WRITE8_MEMBER(gei_state::banksel_2_1_w) |
| 309 | 309 | { |
| 310 | membank("bank1")->set_base(m | |
| 310 | membank("bank1")->set_base(memregion("maincpu")->base() + 0x14000); | |
| 311 | 311 | } |
| 312 | 312 | WRITE8_MEMBER(gei_state::banksel_3_1_w) |
| 313 | 313 | { |
| 314 | membank("bank1")->set_base(m | |
| 314 | membank("bank1")->set_base(memregion("maincpu")->base() + 0x18000); | |
| 315 | 315 | } |
| 316 | 316 | WRITE8_MEMBER(gei_state::banksel_4_1_w) |
| 317 | 317 | { |
| 318 | membank("bank1")->set_base(m | |
| 318 | membank("bank1")->set_base(memregion("maincpu")->base() + 0x1c000); | |
| 319 | 319 | } |
| 320 | 320 | WRITE8_MEMBER(gei_state::banksel_5_1_w) |
| 321 | 321 | { |
| 322 | membank("bank1")->set_base(m | |
| 322 | membank("bank1")->set_base(memregion("maincpu")->base() + 0x20000); | |
| 323 | 323 | } |
| 324 | 324 | WRITE8_MEMBER(gei_state::banksel_1_2_w) |
| 325 | 325 | { |
| 326 | membank("bank1")->set_base(m | |
| 326 | membank("bank1")->set_base(memregion("maincpu")->base() + 0x12000); | |
| 327 | 327 | } |
| 328 | 328 | WRITE8_MEMBER(gei_state::banksel_2_2_w) |
| 329 | 329 | { |
| 330 | membank("bank1")->set_base(m | |
| 330 | membank("bank1")->set_base(memregion("maincpu")->base() + 0x16000); | |
| 331 | 331 | } |
| 332 | 332 | WRITE8_MEMBER(gei_state::banksel_3_2_w) |
| 333 | 333 | { |
| 334 | membank("bank1")->set_base(m | |
| 334 | membank("bank1")->set_base(memregion("maincpu")->base() + 0x1a000); | |
| 335 | 335 | } |
| 336 | 336 | WRITE8_MEMBER(gei_state::banksel_4_2_w) |
| 337 | 337 | { |
| 338 | membank("bank1")->set_base(m | |
| 338 | membank("bank1")->set_base(memregion("maincpu")->base() + 0x1e000); | |
| 339 | 339 | } |
| 340 | 340 | WRITE8_MEMBER(gei_state::banksel_5_2_w) |
| 341 | 341 | { |
| 342 | membank("bank1")->set_base(m | |
| 342 | membank("bank1")->set_base(memregion("maincpu")->base() + 0x22000); | |
| 343 | 343 | } |
| 344 | 344 | |
| 345 | 345 | WRITE8_MEMBER(gei_state::geimulti_bank_w) |
| r21033 | r21034 | |
| 367 | 367 | } |
| 368 | 368 | |
| 369 | 369 | if (bank != -1) |
| 370 | membank("bank1")->set_base(m | |
| 370 | membank("bank1")->set_base(memregion("bank")->base() + bank*0x8000); | |
| 371 | 371 | } |
| 372 | 372 | |
| 373 | 373 | READ8_MEMBER(gei_state::banksel_1_r) |
| 374 | 374 | { |
| 375 | membank("bank1")->set_base(m | |
| 375 | membank("bank1")->set_base(memregion("maincpu")->base() + 0x10000); | |
| 376 | 376 | return 0x03; |
| 377 | 377 | }; |
| 378 | 378 | |
| 379 | 379 | READ8_MEMBER(gei_state::banksel_2_r) |
| 380 | 380 | { |
| 381 | membank("bank1")->set_base(m | |
| 381 | membank("bank1")->set_base(memregion("maincpu")->base() + 0x18000); | |
| 382 | 382 | return 0x03; |
| 383 | 383 | } |
| 384 | 384 | |
| 385 | 385 | READ8_MEMBER(gei_state::banksel_3_r) |
| 386 | 386 | { |
| 387 | membank("bank1")->set_base(m | |
| 387 | membank("bank1")->set_base(memregion("maincpu")->base() + 0x20000); | |
| 388 | 388 | return 0x03; |
| 389 | 389 | } |
| 390 | 390 | |
| 391 | 391 | READ8_MEMBER(gei_state::banksel_4_r) |
| 392 | 392 | { |
| 393 | membank("bank1")->set_base(m | |
| 393 | membank("bank1")->set_base(memregion("maincpu")->base() + 0x28000); | |
| 394 | 394 | return 0x03; |
| 395 | 395 | } |
| 396 | 396 | |
| 397 | 397 | READ8_MEMBER(gei_state::banksel_5_r) |
| 398 | 398 | { |
| 399 | membank("bank1")->set_base(m | |
| 399 | membank("bank1")->set_base(memregion("maincpu")->base() + 0x30000); | |
| 400 | 400 | return 0x03; |
| 401 | 401 | } |
| 402 | 402 | |
| r21033 | r21034 | |
| 1892 | 1892 | |
| 1893 | 1893 | DRIVER_INIT_MEMBER(gei_state,setbank) |
| 1894 | 1894 | { |
| 1895 | m | |
| 1895 | membank("bank1")->set_base(memregion("maincpu")->base() + 0x2000); | |
| 1896 | 1896 | } |
| 1897 | 1897 | |
| 1898 | 1898 | DRIVER_INIT_MEMBER(gei_state,geimulti) |
| 1899 | 1899 | { |
| 1900 | m | |
| 1900 | membank("bank1")->set_base(memregion("bank")->base() + 0x0000); | |
| 1901 | 1901 | } |
| 1902 | 1902 | |
| 1903 | 1903 | GAME( 1982, jokpoker, 0, gselect, gselect, gei_state, setbank, ROT0, "Greyhound Electronics", "Joker Poker (Version 16.03B)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND ) |
| r21033 | r21034 | |
|---|---|---|
| 35 | 35 | DRIVER_INIT_MEMBER(nbmj8900_state,ohpaipee) |
| 36 | 36 | { |
| 37 | 37 | #if 0 |
| 38 | UINT8 *prot = m | |
| 38 | UINT8 *prot = memregion("protdata")->base(); | |
| 39 | 39 | int i; |
| 40 | 40 | |
| 41 | 41 | /* this is one possible way to rearrange the protection ROM data to get the |
| r21033 | r21034 | |
| 49 | 49 | prot[i] = BITSWAP8(prot[i],2,7,3,5,0,6,4,1); |
| 50 | 50 | } |
| 51 | 51 | #else |
| 52 | unsigned char *ROM = m | |
| 52 | unsigned char *ROM = memregion("maincpu")->base(); | |
| 53 | 53 | |
| 54 | 54 | // Protection ROM check skip |
| 55 | 55 | ROM[0x00e4] = 0x00; |
| r21033 | r21034 | |
| 66 | 66 | DRIVER_INIT_MEMBER(nbmj8900_state,togenkyo) |
| 67 | 67 | { |
| 68 | 68 | #if 0 |
| 69 | UINT8 *prot = m | |
| 69 | UINT8 *prot = memregion("protdata")->base(); | |
| 70 | 70 | int i; |
| 71 | 71 | |
| 72 | 72 | /* this is one possible way to rearrange the protection ROM data to get the |
| r21033 | r21034 | |
| 79 | 79 | prot[i] = BITSWAP8(prot[i],2,7,3,5,0,6,4,1); |
| 80 | 80 | } |
| 81 | 81 | #else |
| 82 | unsigned char *ROM = m | |
| 82 | unsigned char *ROM = memregion("maincpu")->base(); | |
| 83 | 83 | |
| 84 | 84 | // Protection ROM check skip |
| 85 | 85 | ROM[0x010b] = 0x00; |
| r21033 | r21034 | |
|---|---|---|
| 386 | 386 | |
| 387 | 387 | void progolf_state::palette_init() |
| 388 | 388 | { |
| 389 | const UINT8 *color_prom = m | |
| 389 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 390 | 390 | int i; |
| 391 | 391 | |
| 392 | 392 | for (i = 0;i < machine().total_colors();i++) |
| r21033 | r21034 | |
|---|---|---|
| 315 | 315 | verified as correct... problem with the original which the gfx hardware |
| 316 | 316 | didn't care about? Ideally it should be checked against a different PCB */ |
| 317 | 317 | |
| 318 | UINT8 *src = m | |
| 318 | UINT8 *src = memregion("gfx1")->base()+0x1000000; | |
| 319 | 319 | int len = 0x0200000; |
| 320 | 320 | UINT8 *buffer; |
| 321 | 321 |
| r21033 | r21034 | |
|---|---|---|
| 844 | 844 | DRIVER_INIT_MEMBER(igs009_state,jingbell) |
| 845 | 845 | { |
| 846 | 846 | int i; |
| 847 | UINT8 *rom = (UINT8 *)machine().root_device().memregion("maincpu")->base(); | |
| 848 | size_t size = machine().root_device().memregion("maincpu")->bytes(); | |
| 847 | UINT8 *rom = (UINT8 *)memregion("maincpu")->base(); | |
| 848 | size_t size = memregion("maincpu")->bytes(); | |
| 849 | 849 | |
| 850 | 850 | for (i=0; i<size; i++) |
| 851 | 851 | { |
| r21033 | r21034 | |
|---|---|---|
| 799 | 799 | { |
| 800 | 800 | /* Expand the background rom so we can use regular decode routines */ |
| 801 | 801 | |
| 802 | UINT8 *gfx = m | |
| 802 | UINT8 *gfx = memregion("gfx3")->base(); | |
| 803 | 803 | int offs = 0x10000 - 0x1000; |
| 804 | 804 | int i; |
| 805 | 805 | |
| r21033 | r21034 | |
| 818 | 818 | |
| 819 | 819 | DRIVER_INIT_MEMBER(exprraid_state,wexpressb) |
| 820 | 820 | { |
| 821 | UINT8 *rom = m | |
| 821 | UINT8 *rom = memregion("maincpu")->base(); | |
| 822 | 822 | |
| 823 | 823 | /* HACK: this set uses M6502 irq vectors but DECO CPU-16 opcodes??? */ |
| 824 | 824 | rom[0xfff7] = rom[0xfffa]; |
| r21033 | r21034 | |
|---|---|---|
| 1815 | 1815 | m_ka302c_banking = 0; // SH201B doesn't have any gfx banking |
| 1816 | 1816 | |
| 1817 | 1817 | /* setup audiocpu banks */ |
| 1818 | membank("bank1")->configure_entries(0, 4, m | |
| 1818 | membank("bank1")->configure_entries(0, 4, memregion("audiocpu")->base() + 0x10000, 0x8000); | |
| 1819 | 1819 | |
| 1820 | 1820 | /* Enable other regions */ |
| 1821 | 1821 | #if 0 |
| 1822 | 1822 | if (!strcmp(machine().system().name,"sngkace")) |
| 1823 | 1823 | { |
| 1824 | UINT8 *ROM = m | |
| 1824 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 1825 | 1825 | ROM[0x995] = 0x4e; |
| 1826 | 1826 | ROM[0x994] = 0x71; |
| 1827 | 1827 | ROM[0x997] = 0x4e; |
| r21033 | r21034 | |
|---|---|---|
| 229 | 229 | |
| 230 | 230 | void esh_state::palette_init() |
| 231 | 231 | { |
| 232 | const UINT8 *color_prom = m | |
| 232 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 233 | 233 | int i; |
| 234 | 234 | |
| 235 | 235 | /* Oddly enough, the top 4 bits of each byte is 0 */ |
| r21033 | r21034 | |
|---|---|---|
| 490 | 490 | { |
| 491 | 491 | UINT8 lsb,msb; |
| 492 | 492 | UINT32 offset,i; |
| 493 | UINT8 *gfx = machine().root_device().memregion("gfx2")->base(); | |
| 494 | int size=machine().root_device().memregion("gfx2")->bytes(); | |
| 493 | UINT8 *gfx = memregion("gfx2")->base(); | |
| 494 | int size=memregion("gfx2")->bytes(); | |
| 495 | 495 | int data; |
| 496 | 496 | |
| 497 | 497 | /* Setup ROM formats: |
| r21033 | r21034 | |
| 523 | 523 | offset+=4; |
| 524 | 524 | } |
| 525 | 525 | |
| 526 | gfx = machine().root_device().memregion("gfx1")->base(); | |
| 527 | size=machine().root_device().memregion("gfx1")->bytes(); | |
| 526 | gfx = memregion("gfx1")->base(); | |
| 527 | size=memregion("gfx1")->bytes(); | |
| 528 | 528 | |
| 529 | 529 | offset = size/2; |
| 530 | 530 | for (i = size/2+size/4; i<size; i++) |
| r21033 | r21034 | |
|---|---|---|
| 1572 | 1572 | data >>= 56; |
| 1573 | 1573 | data = (~data) & 0x7; |
| 1574 | 1574 | |
| 1575 | membank("bank1")->set_base(m | |
| 1575 | membank("bank1")->set_base(memregion( "user1" )->base() + 0x800000 + (data * 0x800000)); /* banked CROM */ | |
| 1576 | 1576 | } |
| 1577 | 1577 | if (ACCESSING_BITS_24_31) |
| 1578 | 1578 | { |
| r21033 | r21034 | |
| 1832 | 1832 | { |
| 1833 | 1833 | data >>= 56; |
| 1834 | 1834 | data = (~data) & 0xf; |
| 1835 | membank("bank1")->set_base(machine().root_device().memregion( "user1" )->base() + 0x800000 + (data * 0x800000)); /* banked CROM */ | |
| 1836 | membank("bank2")->set_base(machine().root_device().memregion( "user1" )->base() + 0x800000 + (data * 0x800000)); /* banked CROM */ | |
| 1835 | membank("bank1")->set_base(memregion( "user1" )->base() + 0x800000 + (data * 0x800000)); /* banked CROM */ | |
| 1836 | membank("bank2")->set_base(memregion( "user1" )->base() + 0x800000 + (data * 0x800000)); /* banked CROM */ | |
| 1837 | 1837 | } |
| 1838 | 1838 | } |
| 1839 | 1839 | |
| r21033 | r21034 | |
| 5257 | 5257 | WRITE16_MEMBER(model3_state::model3snd_ctrl) |
| 5258 | 5258 | { |
| 5259 | 5259 | // handle sample banking |
| 5260 | if (m | |
| 5260 | if (memregion("scsp2")->bytes() > 0x800000) | |
| 5261 | 5261 | { |
| 5262 | 5262 | UINT8 *snd = memregion("scsp2")->base(); |
| 5263 | 5263 | if (data & 0x20) |
| r21033 | r21034 | |
| 5662 | 5662 | |
| 5663 | 5663 | DRIVER_INIT_MEMBER(model3_state,vf3) |
| 5664 | 5664 | { |
| 5665 | UINT32 *rom = (UINT32*)m | |
| 5665 | UINT32 *rom = (UINT32*)memregion("user1")->base(); | |
| 5666 | 5666 | |
| 5667 | 5667 | DRIVER_INIT_CALL(model3_10); |
| 5668 | 5668 | |
| r21033 | r21034 | |
| 5745 | 5745 | |
| 5746 | 5746 | DRIVER_INIT_MEMBER(model3_state,vs2) |
| 5747 | 5747 | { |
| 5748 | UINT32 *rom = (UINT32*)m | |
| 5748 | UINT32 *rom = (UINT32*)memregion("user1")->base(); | |
| 5749 | 5749 | |
| 5750 | 5750 | DRIVER_INIT_CALL(model3_20); |
| 5751 | 5751 | |
| r21033 | r21034 | |
| 5755 | 5755 | |
| 5756 | 5756 | DRIVER_INIT_MEMBER(model3_state,vs298) |
| 5757 | 5757 | { |
| 5758 | UINT32 *rom = (UINT32*)m | |
| 5758 | UINT32 *rom = (UINT32*)memregion("user1")->base(); | |
| 5759 | 5759 | |
| 5760 | 5760 | DRIVER_INIT_CALL(model3_20); |
| 5761 | 5761 | |
| r21033 | r21034 | |
| 5766 | 5766 | |
| 5767 | 5767 | DRIVER_INIT_MEMBER(model3_state,vs2v991) |
| 5768 | 5768 | { |
| 5769 | UINT32 *rom = (UINT32*)m | |
| 5769 | UINT32 *rom = (UINT32*)memregion("user1")->base(); | |
| 5770 | 5770 | |
| 5771 | 5771 | DRIVER_INIT_CALL(model3_20); |
| 5772 | 5772 | |
| r21033 | r21034 | |
| 5776 | 5776 | |
| 5777 | 5777 | DRIVER_INIT_MEMBER(model3_state,vs299b) |
| 5778 | 5778 | { |
| 5779 | UINT32 *rom = (UINT32*)m | |
| 5779 | UINT32 *rom = (UINT32*)memregion("user1")->base(); | |
| 5780 | 5780 | |
| 5781 | 5781 | DRIVER_INIT_CALL(model3_20); |
| 5782 | 5782 | |
| r21033 | r21034 | |
| 5786 | 5786 | |
| 5787 | 5787 | DRIVER_INIT_MEMBER(model3_state,vs299a) |
| 5788 | 5788 | { |
| 5789 | UINT32 *rom = (UINT32*)m | |
| 5789 | UINT32 *rom = (UINT32*)memregion("user1")->base(); | |
| 5790 | 5790 | |
| 5791 | 5791 | DRIVER_INIT_CALL(model3_20); |
| 5792 | 5792 | |
| r21033 | r21034 | |
| 5796 | 5796 | |
| 5797 | 5797 | DRIVER_INIT_MEMBER(model3_state,vs299) |
| 5798 | 5798 | { |
| 5799 | UINT32 *rom = (UINT32*)m | |
| 5799 | UINT32 *rom = (UINT32*)memregion("user1")->base(); | |
| 5800 | 5800 | |
| 5801 | 5801 | DRIVER_INIT_CALL(model3_20); |
| 5802 | 5802 | |
| r21033 | r21034 | |
| 5837 | 5837 | |
| 5838 | 5838 | DRIVER_INIT_MEMBER(model3_state,srally2) |
| 5839 | 5839 | { |
| 5840 | UINT32 *rom = (UINT32*)m | |
| 5840 | UINT32 *rom = (UINT32*)memregion("user1")->base(); | |
| 5841 | 5841 | DRIVER_INIT_CALL(model3_20); |
| 5842 | 5842 | |
| 5843 | 5843 | rom[(0x7c0c4^4)/4] = 0x60000000; |
| r21033 | r21034 | |
| 5847 | 5847 | |
| 5848 | 5848 | DRIVER_INIT_MEMBER(model3_state,swtrilgy) |
| 5849 | 5849 | { |
| 5850 | UINT32 *rom = (UINT32*)m | |
| 5850 | UINT32 *rom = (UINT32*)memregion("user1")->base(); | |
| 5851 | 5851 | DRIVER_INIT_CALL(model3_20); |
| 5852 | 5852 | |
| 5853 | 5853 | rom[(0xf0e48^4)/4] = 0x60000000; |
| r21033 | r21034 | |
| 5858 | 5858 | |
| 5859 | 5859 | DRIVER_INIT_MEMBER(model3_state,swtrilga) |
| 5860 | 5860 | { |
| 5861 | UINT32 *rom = (UINT32*)m | |
| 5861 | UINT32 *rom = (UINT32*)memregion("user1")->base(); | |
| 5862 | 5862 | DRIVER_INIT_CALL(model3_20); |
| 5863 | 5863 | |
| 5864 | 5864 | rom[(0xf6dd0^4)/4] = 0x60000000; |
| r21033 | r21034 | |
| 5866 | 5866 | |
| 5867 | 5867 | DRIVER_INIT_MEMBER(model3_state,von2) |
| 5868 | 5868 | { |
| 5869 | UINT32 *rom = (UINT32*)m | |
| 5869 | UINT32 *rom = (UINT32*)memregion("user1")->base(); | |
| 5870 | 5870 | DRIVER_INIT_CALL(model3_20); |
| 5871 | 5871 | |
| 5872 | 5872 | rom[(0x189168^4)/4] = 0x60000000; |
| r21033 | r21034 | |
| 5878 | 5878 | |
| 5879 | 5879 | DRIVER_INIT_MEMBER(model3_state,dirtdvls) |
| 5880 | 5880 | { |
| 5881 | UINT32 *rom = (UINT32*)m | |
| 5881 | UINT32 *rom = (UINT32*)memregion("user1")->base(); | |
| 5882 | 5882 | DRIVER_INIT_CALL(model3_20); |
| 5883 | 5883 | |
| 5884 | 5884 | rom[(0x0600a0^4)/4] = 0x60000000; |
| r21033 | r21034 | |
| 5920 | 5920 | |
| 5921 | 5921 | DRIVER_INIT_MEMBER(model3_state,spikeout) |
| 5922 | 5922 | { |
| 5923 | UINT32 *rom = (UINT32*)m | |
| 5923 | UINT32 *rom = (UINT32*)memregion("user1")->base(); | |
| 5924 | 5924 | DRIVER_INIT_CALL(model3_20); |
| 5925 | 5925 | |
| 5926 | 5926 | rom[(0x6059cc^4)/4] = 0x60000000; |
| r21033 | r21034 | |
| 5929 | 5929 | |
| 5930 | 5930 | DRIVER_INIT_MEMBER(model3_state,spikeofe) |
| 5931 | 5931 | { |
| 5932 | UINT32 *rom = (UINT32*)m | |
| 5932 | UINT32 *rom = (UINT32*)memregion("user1")->base(); | |
| 5933 | 5933 | DRIVER_INIT_CALL(model3_20); |
| 5934 | 5934 | |
| 5935 | 5935 | rom[(0x6059cc^4)/4] = 0x60000000; |
| r21033 | r21034 | |
| 5938 | 5938 | |
| 5939 | 5939 | DRIVER_INIT_MEMBER(model3_state,eca) |
| 5940 | 5940 | { |
| 5941 | UINT32 *rom = (UINT32*)m | |
| 5941 | UINT32 *rom = (UINT32*)memregion("user1")->base(); | |
| 5942 | 5942 | DRIVER_INIT_CALL(model3_20); |
| 5943 | 5943 | |
| 5944 | 5944 | rom[(0x535580^4)/4] = 0x60000000; |
| r21033 | r21034 | |
| 5948 | 5948 | |
| 5949 | 5949 | DRIVER_INIT_MEMBER(model3_state,skichamp) |
| 5950 | 5950 | { |
| 5951 | UINT32 *rom = (UINT32*)m | |
| 5951 | UINT32 *rom = (UINT32*)memregion("user1")->base(); | |
| 5952 | 5952 | DRIVER_INIT_CALL(model3_20); |
| 5953 | 5953 | |
| 5954 | 5954 | rom[(0x5263c8^4)/4] = 0x60000000; |
| r21033 | r21034 | |
| 5959 | 5959 | |
| 5960 | 5960 | DRIVER_INIT_MEMBER(model3_state,oceanhun) |
| 5961 | 5961 | { |
| 5962 | UINT32 *rom = (UINT32*)m | |
| 5962 | UINT32 *rom = (UINT32*)memregion("user1")->base(); | |
| 5963 | 5963 | DRIVER_INIT_CALL(model3_20); |
| 5964 | 5964 | |
| 5965 | 5965 | rom[(0x57995c^4)/4] = 0x60000000; // decrementer |
| r21033 | r21034 | |
|---|---|---|
| 778 | 778 | { |
| 779 | 779 | int r,g,b; |
| 780 | 780 | |
| 781 | UINT8*proms = machine().root_device().memregion("proms")->base(); | |
| 782 | int length = machine().root_device().memregion("proms")->bytes(); | |
| 781 | UINT8*proms = memregion("proms")->base(); | |
| 782 | int length = memregion("proms")->bytes(); | |
| 783 | 783 | UINT16 dat; |
| 784 | 784 | |
| 785 | 785 | dat = (proms[0x000+i] << 8) | proms[0x200+i]; |
| r21033 | r21034 | |
|---|---|---|
| 1611 | 1611 | UINT32 mem; |
| 1612 | 1612 | UINT32 newmem; |
| 1613 | 1613 | |
| 1614 | ROM = m | |
| 1614 | ROM = memregion("braze")->base(); | |
| 1615 | 1615 | |
| 1616 | 1616 | for (mem=0;mem<0x10000;mem++) |
| 1617 | 1617 | { |
| r21033 | r21034 | |
| 3030 | 3030 | UINT8 *ROM; |
| 3031 | 3031 | int mem; |
| 3032 | 3032 | |
| 3033 | ROM = m | |
| 3033 | ROM = memregion("maincpu")->base(); | |
| 3034 | 3034 | |
| 3035 | 3035 | for (mem=0;mem<0x4000;mem++) |
| 3036 | 3036 | { |
| r21033 | r21034 | |
| 3056 | 3056 | DRIVER_INIT_MEMBER(dkong_state,herodk) |
| 3057 | 3057 | { |
| 3058 | 3058 | int A; |
| 3059 | UINT8 *rom = m | |
| 3059 | UINT8 *rom = memregion("maincpu")->base(); | |
| 3060 | 3060 | |
| 3061 | 3061 | /* swap data lines D3 and D4 */ |
| 3062 | 3062 | for (A = 0;A < 0x8000;A++) |
| r21033 | r21034 | |
| 3144 | 3144 | |
| 3145 | 3145 | DRIVER_INIT_MEMBER(dkong_state,dkingjr) |
| 3146 | 3146 | { |
| 3147 | UINT8 *prom = m | |
| 3147 | UINT8 *prom = memregion("proms")->base(); | |
| 3148 | 3148 | for( int i=0; i<0x200; ++i) |
| 3149 | 3149 | { |
| 3150 | 3150 | prom[i]^=0xff; // invert color data |
| r21033 | r21034 | |
|---|---|---|
| 238 | 238 | cinfo.err = jpeg_std_error(&jerr); |
| 239 | 239 | jpeg_create_decompress(&cinfo); |
| 240 | 240 | |
| 241 | jpeg_mem_src(&cinfo, m | |
| 241 | jpeg_mem_src(&cinfo, memregion("user2")->base()+addr, memregion("user2")->bytes()-addr); | |
| 242 | 242 | |
| 243 | 243 | jpeg_read_header(&cinfo, TRUE); |
| 244 | 244 | jpeg_start_decompress(&cinfo); |
| r21033 | r21034 | |
|---|---|---|
| 380 | 380 | |
| 381 | 381 | DRIVER_INIT_MEMBER(pntnpuzl_state,pip) |
| 382 | 382 | { |
| 383 | // UINT16 *rom = (UINT16 *)m | |
| 383 | // UINT16 *rom = (UINT16 *)memregion("maincpu")->base(); | |
| 384 | 384 | // rom[0x2696/2] = 0x4e71; |
| 385 | 385 | // rom[0x26a0/2] = 0x4e71; |
| 386 | 386 |
| r21033 | r21034 | |
|---|---|---|
| 543 | 543 | if (data & 0x1 << i*4) // enable RAM access to region 0xe0000 - 0xfffff |
| 544 | 544 | membank(banknames[i])->set_base(m_bios_ram + (0x4000 * i)); |
| 545 | 545 | else // disable RAM access (reads go to BIOS ROM) |
| 546 | membank(banknames[i])->set_base(m | |
| 546 | membank(banknames[i])->set_base(memregion("bios")->base() + (0x4000 * i)); | |
| 547 | 547 | } |
| 548 | 548 | } |
| 549 | 549 | } |
| r21033 | r21034 | |
|---|---|---|
| 361 | 361 | |
| 362 | 362 | DRIVER_INIT_MEMBER(aristmk5_state,aristmk5) |
| 363 | 363 | { |
| 364 | UINT8 *SRAM = machine().root_device().memregion("sram")->base(); | |
| 365 | UINT8 *SRAM_NZ = machine().root_device().memregion("sram")->base(); | |
| 364 | UINT8 *SRAM = memregion("sram")->base(); | |
| 365 | UINT8 *SRAM_NZ = memregion("sram")->base(); | |
| 366 | 366 | |
| 367 | 367 | archimedes_driver_init(); |
| 368 | 368 | |
| 369 | machine().root_device().membank("sram_bank")->configure_entries(0, 4, &SRAM[0], 0x20000); | |
| 370 | machine().root_device().membank("sram_bank_nz")->configure_entries(0, 4, &SRAM_NZ[0], 0x20000); | |
| 369 | membank("sram_bank")->configure_entries(0, 4, &SRAM[0], 0x20000); | |
| 370 | membank("sram_bank_nz")->configure_entries(0, 4, &SRAM_NZ[0], 0x20000); | |
| 371 | 371 | } |
| 372 | 372 | |
| 373 | 373 | |
| r21033 | r21034 | |
| 398 | 398 | UINT8 op_mode; |
| 399 | 399 | static const char *const rom_region[] = { "set_chip_4.04", "set_chip_4.4", "clear_chip", "game_prg" }; |
| 400 | 400 | |
| 401 | op_mode = | |
| 401 | op_mode = ioport("ROM_LOAD")->read(); | |
| 402 | 402 | |
| 403 | PRG = m | |
| 403 | PRG = memregion(rom_region[op_mode & 3])->base(); | |
| 404 | 404 | |
| 405 | 405 | if(PRG!=NULL) |
| 406 | 406 |
| r21033 | r21034 | |
|---|---|---|
| 298 | 298 | |
| 299 | 299 | void tmspoker_state::machine_start() |
| 300 | 300 | { |
| 301 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 302 | machine().root_device().membank("bank1")->configure_entries(0, 2, &ROM[0], 0x1000); | |
| 301 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 302 | membank("bank1")->configure_entries(0, 2, &ROM[0], 0x1000); | |
| 303 | 303 | } |
| 304 | 304 | |
| 305 | 305 | |
| 306 | 306 | void tmspoker_state::machine_reset() |
| 307 | 307 | { |
| 308 | UINT8 seldsw = ( | |
| 308 | UINT8 seldsw = (ioport("SELDSW")->read() ); | |
| 309 | 309 | |
| 310 | 310 | popmessage("ROM Bank: %02X", seldsw); |
| 311 | 311 | |
| 312 | m | |
| 312 | membank("bank1")->set_entry(seldsw); | |
| 313 | 313 | } |
| 314 | 314 | |
| 315 | 315 | |
| r21033 | r21034 | |
| 617 | 617 | { |
| 618 | 618 | /* decode the TMS9980 ROMs */ |
| 619 | 619 | offs_t offs; |
| 620 | UINT8 *rom = machine().root_device().memregion("maincpu")->base(); | |
| 621 | const size_t len = machine().root_device().memregion("maincpu")->bytes(); | |
| 620 | UINT8 *rom = memregion("maincpu")->base(); | |
| 621 | const size_t len = memregion("maincpu")->bytes(); | |
| 622 | 622 | |
| 623 | 623 | for (offs = 0; offs < len; offs++) |
| 624 | 624 | { |
| r21033 | r21034 | |
|---|---|---|
| 691 | 691 | }; |
| 692 | 692 | address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); |
| 693 | 693 | UINT8 *decrypt = auto_alloc_array(machine(), UINT8, 0x8000); |
| 694 | UINT8 *rom = m | |
| 694 | UINT8 *rom = memregion("maincpu")->base(); | |
| 695 | 695 | int A; |
| 696 | 696 | |
| 697 | 697 | space.set_decrypted_region(0x0000, 0x7fff, decrypt); |
| r21033 | r21034 | |
|---|---|---|
| 165 | 165 | |
| 166 | 166 | DRIVER_INIT_MEMBER(konendev_state,konendev) |
| 167 | 167 | { |
| 168 | UINT8 *src = machine().root_device().memregion( "maincpu" )->base(); | |
| 169 | size_t srcsize = machine().root_device().memregion( "maincpu" )->bytes(); | |
| 168 | UINT8 *src = memregion( "maincpu" )->base(); | |
| 169 | size_t srcsize = memregion( "maincpu" )->bytes(); | |
| 170 | 170 | for (int i = 0; i < srcsize; i += 2) |
| 171 | 171 | { |
| 172 | 172 | int temp = src[i]; |
| r21033 | r21034 | |
|---|---|---|
| 187 | 187 | |
| 188 | 188 | void cardline_state::palette_init() |
| 189 | 189 | { |
| 190 | const UINT8 *color_prom = m | |
| 190 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 191 | 191 | int i,r,g,b,data; |
| 192 | 192 | int bit0,bit1,bit2; |
| 193 | 193 | for (i = 0;i < machine().total_colors();i++) |
| r21033 | r21034 | |
|---|---|---|
| 590 | 590 | |
| 591 | 591 | DRIVER_INIT_MEMBER(omegrace_state,omegrace) |
| 592 | 592 | { |
| 593 | int i, len = machine().root_device().memregion("user1")->bytes(); | |
| 594 | UINT8 *prom = machine().root_device().memregion("user1")->base(); | |
| 593 | int i, len = memregion("user1")->bytes(); | |
| 594 | UINT8 *prom = memregion("user1")->base(); | |
| 595 | 595 | |
| 596 | 596 | /* Omega Race has two pairs of the state PROM output |
| 597 | 597 | * lines swapped before going into the decoder. |
| r21033 | r21034 | |
|---|---|---|
| 1607 | 1607 | if(offset & 6) |
| 1608 | 1608 | return decocass_input_r(space,offset); |
| 1609 | 1609 | |
| 1610 | res = | |
| 1610 | res = ioport(portnames[offset & 1][m_mux_data])->read(); | |
| 1611 | 1611 | |
| 1612 | 1612 | return res; |
| 1613 | 1613 | } |
| r21033 | r21034 | |
|---|---|---|
| 465 | 465 | |
| 466 | 466 | DRIVER_INIT_MEMBER(tank8_state,decode) |
| 467 | 467 | { |
| 468 | const UINT8* DECODE = m | |
| 468 | const UINT8* DECODE = memregion("user1")->base(); | |
| 469 | 469 | |
| 470 | UINT8* p1 = machine().root_device().memregion("maincpu")->base() + 0x00000; | |
| 471 | UINT8* p2 = machine().root_device().memregion("maincpu")->base() + 0x10000; | |
| 470 | UINT8* p1 = memregion("maincpu")->base() + 0x00000; | |
| 471 | UINT8* p2 = memregion("maincpu")->base() + 0x10000; | |
| 472 | 472 | |
| 473 | 473 | int i; |
| 474 | 474 |
| r21033 | r21034 | |
|---|---|---|
| 835 | 835 | |
| 836 | 836 | DRIVER_INIT_MEMBER(pluto5_state,hb) |
| 837 | 837 | { |
| 838 | astra_addresslines( (UINT16*)m | |
| 838 | astra_addresslines( (UINT16*)memregion( "maincpu" )->base(), memregion( "maincpu" )->bytes(), 0 ); | |
| 839 | 839 | |
| 840 | 840 | #if 0 |
| 841 | 841 | { |
| 842 | UINT8* ROM = m | |
| 842 | UINT8* ROM = memregion( "maincpu" )->base(); | |
| 843 | 843 | FILE *fp; |
| 844 | 844 | char filename[256]; |
| 845 | 845 | sprintf(filename,"%s", machine().system().name); |
| 846 | 846 | fp=fopen(filename, "w+b"); |
| 847 | 847 | if (fp) |
| 848 | 848 | { |
| 849 | fwrite(ROM, m | |
| 849 | fwrite(ROM, memregion( "maincpu" )->bytes(), 1, fp); | |
| 850 | 850 | fclose(fp); |
| 851 | 851 | } |
| 852 | 852 | } |
| r21033 | r21034 | |
|---|---|---|
| 177 | 177 | |
| 178 | 178 | WRITE8_MEMBER(moo_state::sound_bankswitch_w) |
| 179 | 179 | { |
| 180 | membank("bank1")->set_base(m | |
| 180 | membank("bank1")->set_base(memregion("soundcpu")->base() + 0x10000 + (data&0xf)*0x4000); | |
| 181 | 181 | } |
| 182 | 182 | |
| 183 | 183 |
| r21033 | r21034 | |
|---|---|---|
| 409 | 409 | |
| 410 | 410 | void jollyjgr_state::palette_init() |
| 411 | 411 | { |
| 412 | const UINT8 *color_prom = m | |
| 412 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 413 | 413 | int i; |
| 414 | 414 | |
| 415 | 415 | /* tilemap / sprites palette */ |
| r21033 | r21034 | |
|---|---|---|
| 183 | 183 | { |
| 184 | 184 | if (ACCESSING_BITS_16_31) |
| 185 | 185 | { |
| 186 | return | |
| 186 | return ioport("JP4")->read(); | |
| 187 | 187 | } |
| 188 | 188 | |
| 189 | 189 | // logerror("Unk EEPROM read mask %x\n", mem_mask); |
| r21033 | r21034 | |
| 318 | 318 | if (offset == 2) /* Configure bank for gfx test */ |
| 319 | 319 | { |
| 320 | 320 | if (ACCESSING_BITS_0_15) // Bank |
| 321 | membank("bank2")->set_base(m | |
| 321 | membank("bank2")->set_base(memregion("gfx1")->base() + 0x2000 * (m_vidregs[offset] & 0x1fff)); /* Bank comes from vidregs */ | |
| 322 | 322 | } |
| 323 | 323 | } |
| 324 | 324 | |
| r21033 | r21034 | |
| 960 | 960 | |
| 961 | 961 | DRIVER_INIT_MEMBER(psikyo4_state,hotgmck) |
| 962 | 962 | { |
| 963 | UINT8 *RAM = machine().root_device().memregion("maincpu")->base(); | |
| 964 | machine().root_device().membank("bank1")->set_base(&RAM[0x100000]); | |
| 963 | UINT8 *RAM = memregion("maincpu")->base(); | |
| 964 | membank("bank1")->set_base(&RAM[0x100000]); | |
| 965 | 965 | install_hotgmck_pcm_bank(); // Banked PCM ROM |
| 966 | 966 | } |
| 967 | 967 |
| r21033 | r21034 | |
|---|---|---|
| 375 | 375 | void ::tumblep_patch_code(UINT16 offset) |
| 376 | 376 | { |
| 377 | 377 | /* A hack which enables all Dip Switches effects */ |
| 378 | UINT16 *RAM = (UINT16 *)m | |
| 378 | UINT16 *RAM = (UINT16 *)memregion("maincpu")->base(); | |
| 379 | 379 | RAM[(offset + 0)/2] = 0x0240; |
| 380 | 380 | RAM[(offset + 2)/2] = 0xffff; // andi.w #$f3ff, D0 |
| 381 | 381 | } |
| r21033 | r21034 | |
|---|---|---|
| 432 | 432 | // on these sets the content of the sprite color PROM needs reversing |
| 433 | 433 | // are the proms on the other sets from bootleg boards, or hand modified? |
| 434 | 434 | UINT8* buffer = auto_alloc_array(machine(), UINT8, 0x10); |
| 435 | UINT8* region = m | |
| 435 | UINT8* region = memregion("proms")->base(); | |
| 436 | 436 | int i; |
| 437 | 437 | |
| 438 | 438 | for (i=0;i<0x10;i++) |
| r21033 | r21034 | |
|---|---|---|
| 521 | 521 | /* set conservative DRC options */ |
| 522 | 522 | ppcdrc_set_options(machine().device("maincpu"), PPCDRC_COMPATIBLE_OPTIONS); |
| 523 | 523 | |
| 524 | UINT8 *rom = (UINT8*)m | |
| 524 | UINT8 *rom = (UINT8*)memregion("maincpu")->base(); | |
| 525 | 525 | descrambler(&rom[0x100], 0x1afe00); |
| 526 | 526 | } |
| 527 | 527 |
| r21033 | r21034 | |
|---|---|---|
| 918 | 918 | |
| 919 | 919 | READ32_MEMBER(konamigx_state::type1_roz_r1) |
| 920 | 920 | { |
| 921 | UINT32 *ROM = (UINT32 *)m | |
| 921 | UINT32 *ROM = (UINT32 *)memregion("gfx3")->base(); | |
| 922 | 922 | |
| 923 | 923 | return ROM[offset]; |
| 924 | 924 | } |
| 925 | 925 | |
| 926 | 926 | READ32_MEMBER(konamigx_state::type1_roz_r2) |
| 927 | 927 | { |
| 928 | UINT32 *ROM = (UINT32 *)m | |
| 928 | UINT32 *ROM = (UINT32 *)memregion("gfx3")->base(); | |
| 929 | 929 | |
| 930 | 930 | ROM += (0x600000/2); |
| 931 | 931 |
| r21033 | r21034 | |
|---|---|---|
| 5163 | 5163 | { |
| 5164 | 5164 | /* unscramble sprites */ |
| 5165 | 5165 | int i, j, k, l; |
| 5166 | UINT8 *data = m | |
| 5166 | UINT8 *data = memregion("gfx1")->base(); | |
| 5167 | 5167 | for(i=0; i<0x200000; i+=32*32) |
| 5168 | 5168 | { |
| 5169 | 5169 | for(j=0; j<32*32; j+=32*4) |
| r21033 | r21034 | |
| 5296 | 5296 | |
| 5297 | 5297 | DRIVER_INIT_MEMBER(namcos2_state,luckywld) |
| 5298 | 5298 | { |
| 5299 | UINT8 *pData = (UINT8 *)m | |
| 5299 | UINT8 *pData = (UINT8 *)memregion( "gfx5" )->base(); | |
| 5300 | 5300 | int i; |
| 5301 | 5301 | for( i=0; i<32*0x4000; i++ ) |
| 5302 | 5302 | { /* unscramble gfx mask */ |
| r21033 | r21034 | |
|---|---|---|
| 346 | 346 | |
| 347 | 347 | WRITE8_MEMBER(opwolf_state::sound_bankswitch_w) |
| 348 | 348 | { |
| 349 | m | |
| 349 | membank("bank10")->set_entry((data - 1) & 0x03); | |
| 350 | 350 | } |
| 351 | 351 | |
| 352 | 352 | /*********************************************************** |
| r21033 | r21034 | |
|---|---|---|
| 117 | 117 | // the RAM check to work |
| 118 | 118 | DRIVER_INIT_MEMBER(exzisus_state,exzisus) |
| 119 | 119 | { |
| 120 | UINT8 *RAM = m | |
| 120 | UINT8 *RAM = memregion("cpua")->base(); | |
| 121 | 121 | |
| 122 | 122 | /* Fix WORK RAM error */ |
| 123 | 123 | RAM[0x67fd] = 0x18; |
| r21033 | r21034 | |
|---|---|---|
| 506 | 506 | |
| 507 | 507 | WRITE8_MEMBER(homedata_state::bankswitch_w) |
| 508 | 508 | { |
| 509 | int last_bank = (m | |
| 509 | int last_bank = (memregion("maincpu")->bytes() - 0x10000) / 0x4000; | |
| 510 | 510 | |
| 511 | 511 | /* last bank is fixed and is #0 for us, other banks start from #1 (hence data+1 below)*/ |
| 512 | 512 | if (data < last_bank) |
| r21033 | r21034 | |
|---|---|---|
| 556 | 556 | *****************************************************************************/ |
| 557 | 557 | { |
| 558 | 558 | int i, offs; |
| 559 | UINT8 *srcp = m | |
| 559 | UINT8 *srcp = memregion( "maincpu" )->base(); | |
| 560 | 560 | |
| 561 | 561 | for (i = 0x8000; i < 0x10000; i++) |
| 562 | 562 | { |
| r21033 | r21034 | |
|---|---|---|
| 376 | 376 | |
| 377 | 377 | DRIVER_INIT_MEMBER(md_boot_state,puckpkmn) |
| 378 | 378 | { |
| 379 | UINT8 *rom = machine().root_device().memregion("maincpu")->base(); | |
| 380 | size_t len = machine().root_device().memregion("maincpu")->bytes(); | |
| 379 | UINT8 *rom = memregion("maincpu")->base(); | |
| 380 | size_t len = memregion("maincpu")->bytes(); | |
| 381 | 381 | int i; |
| 382 | 382 | |
| 383 | 383 | for (i = 0; i < len; i++) |
| r21033 | r21034 | |
|---|---|---|
| 862 | 862 | 0x01,0x80, 0x03,0xc0, 0x03,0xc0, 0x01,0x80 |
| 863 | 863 | }; |
| 864 | 864 | int i; |
| 865 | UINT8 *gfx2 = machine().root_device().memregion("gfx2")->base(); | |
| 866 | UINT8 *gfx3 = machine().root_device().memregion("gfx3")->base(); | |
| 867 | UINT8 *gfx4 = machine().root_device().memregion("gfx4")->base(); | |
| 868 | UINT8 *gfx5 = machine().root_device().memregion("gfx5")->base(); | |
| 869 | int len3 = machine().root_device().memregion("gfx3")->bytes(); | |
| 870 | int len4 = machine().root_device().memregion("gfx4")->bytes(); | |
| 865 | UINT8 *gfx2 = memregion("gfx2")->base(); | |
| 866 | UINT8 *gfx3 = memregion("gfx3")->base(); | |
| 867 | UINT8 *gfx4 = memregion("gfx4")->base(); | |
| 868 | UINT8 *gfx5 = memregion("gfx5")->base(); | |
| 869 | int len3 = memregion("gfx3")->bytes(); | |
| 870 | int len4 = memregion("gfx4")->bytes(); | |
| 871 | 871 | |
| 872 | 872 | memcpy(gfx3,gfx2,len3); |
| 873 | 873 | |
| r21033 | r21034 | |
| 886 | 886 | UINT8 *mem; |
| 887 | 887 | |
| 888 | 888 | /* create an inverted copy of the graphics data */ |
| 889 | mem = machine().root_device().memregion("gfx1")->base(); | |
| 890 | length = machine().root_device().memregion("gfx1")->bytes(); | |
| 889 | mem = memregion("gfx1")->base(); | |
| 890 | length = memregion("gfx1")->bytes(); | |
| 891 | 891 | for (i = 0; i < length/2; i++) |
| 892 | 892 | mem[i] = ~mem[i + length/2]; |
| 893 | 893 | } |
| r21033 | r21034 | |
|---|---|---|
| 620 | 620 | |
| 621 | 621 | void gamecstl_state::machine_reset() |
| 622 | 622 | { |
| 623 | m | |
| 623 | membank("bank1")->set_base(memregion("bios")->base() + 0x30000); | |
| 624 | 624 | |
| 625 | 625 | machine().device("maincpu")->execute().set_irq_acknowledge_callback(device_irq_acknowledge_delegate(FUNC(gamecstl_state::irq_callback),this)); |
| 626 | 626 | } |
| r21033 | r21034 | |
|---|---|---|
| 174 | 174 | |
| 175 | 175 | void kangaroo_state::machine_start() |
| 176 | 176 | { |
| 177 | m | |
| 177 | membank("bank1")->configure_entries(0, 2, memregion("gfx1")->base(), 0x2000); | |
| 178 | 178 | } |
| 179 | 179 | |
| 180 | 180 |
| r21033 | r21034 | |
|---|---|---|
| 412 | 412 | { |
| 413 | 413 | if (m_protection_command != 0x59) |
| 414 | 414 | { |
| 415 | int coins = | |
| 415 | int coins = ioport("MCU")->read(); | |
| 416 | 416 | if (coins & 1) m_protection_data = 1; |
| 417 | 417 | else if (coins & 2) m_protection_data = 2; |
| 418 | 418 | else if (coins & 4) m_protection_data = 3; |
| r21033 | r21034 | |
|---|---|---|
| 379 | 379 | case 2: |
| 380 | 380 | case 3: |
| 381 | 381 | { |
| 382 | data = ( | |
| 382 | data = (ioport(portnames[m_input_strobe])->read()<<2); | |
| 383 | 383 | break; |
| 384 | 384 | } |
| 385 | 385 | case 4://DIL1 |
| 386 | 386 | case 6://DIL2 |
| 387 | 387 | { |
| 388 | swizzle = ( | |
| 388 | swizzle = (ioport(portnames[m_input_strobe])->read()); | |
| 389 | 389 | data = (((swizzle & 0x01) << 7) + ((swizzle & 0x02) << 5) + ((swizzle & 0x04) << 3) |
| 390 | 390 | + ((swizzle & 0x08) << 1) +((swizzle & 0x10) >> 1) + ((swizzle & 0x20) >> 3)); |
| 391 | 391 | break; |
| r21033 | r21034 | |
| 393 | 393 | case 5://DIL1 |
| 394 | 394 | case 7://DIL2 |
| 395 | 395 | { |
| 396 | swizzle = ( | |
| 396 | swizzle = (ioport(portnames[m_input_strobe])->read()); | |
| 397 | 397 | data = (((swizzle & 0x80) >> 1) + ((swizzle & 0x40) << 1)); |
| 398 | 398 | break; |
| 399 | 399 | } |
| r21033 | r21034 | |
|---|---|---|
| 1285 | 1285 | } |
| 1286 | 1286 | } |
| 1287 | 1287 | |
| 1288 | | |
| 1288 | ioport("OUT1")->write_safe( data, mem_mask ); | |
| 1289 | 1289 | } |
| 1290 | 1290 | |
| 1291 | 1291 | READ32_MEMBER(ksys573_state::security_r) |
| r21033 | r21034 | |
| 1447 | 1447 | { |
| 1448 | 1448 | /* patch out security-plate error */ |
| 1449 | 1449 | |
| 1450 | UINT32 *p_n_psxram = (UINT32 *)state->m | |
| 1450 | UINT32 *p_n_psxram = (UINT32 *)state->memshare("share1")->ptr(); | |
| 1451 | 1451 | |
| 1452 | 1452 | /* install cd */ |
| 1453 | 1453 | |
| r21033 | r21034 | |
| 1471 | 1471 | { |
| 1472 | 1472 | /* patch out security-plate error */ |
| 1473 | 1473 | |
| 1474 | UINT32 *p_n_psxram = (UINT32 *)state->m | |
| 1474 | UINT32 *p_n_psxram = (UINT32 *)state->memshare("share1")->ptr(); | |
| 1475 | 1475 | /* 8001f850: jal $8003221c */ |
| 1476 | 1476 | if( p_n_psxram[ 0x1f850 / 4 ] == 0x0c00c887 ) |
| 1477 | 1477 | { |
| r21033 | r21034 | |
|---|---|---|
| 121 | 121 | WRITE32_MEMBER(taito_f3_state::f3_sound_bankswitch_w) |
| 122 | 122 | { |
| 123 | 123 | if (m_f3_game==KIRAMEKI) { |
| 124 | UINT16 *rom = (UINT16 *)m | |
| 124 | UINT16 *rom = (UINT16 *)memregion("audiocpu")->base(); | |
| 125 | 125 | UINT32 idx; |
| 126 | 126 | |
| 127 | 127 | idx = (offset << 1) & 0x1e; |
| r21033 | r21034 | |
|---|---|---|
| 1208 | 1208 | DRIVER_INIT_MEMBER(champbas_state,champbas) |
| 1209 | 1209 | { |
| 1210 | 1210 | // chars and sprites are mixed in the same ROMs, so rearrange them for easier decoding |
| 1211 | UINT8 *rom1 = machine().root_device().memregion("gfx1")->base(); | |
| 1212 | UINT8 *rom2 = machine().root_device().memregion("gfx2")->base(); | |
| 1213 | int len = machine().root_device().memregion("gfx1")->bytes(); | |
| 1211 | UINT8 *rom1 = memregion("gfx1")->base(); | |
| 1212 | UINT8 *rom2 = memregion("gfx2")->base(); | |
| 1213 | int len = memregion("gfx1")->bytes(); | |
| 1214 | 1214 | int i; |
| 1215 | 1215 | |
| 1216 | 1216 | for (i = 0; i < len/2; ++i) |
| r21033 | r21034 | |
| 1225 | 1225 | DRIVER_INIT_MEMBER(champbas_state,exctsccr) |
| 1226 | 1226 | { |
| 1227 | 1227 | // chars and sprites are mixed in the same ROMs, so rearrange them for easier decoding |
| 1228 | UINT8 *rom1 = machine().root_device().memregion("gfx1")->base(); | |
| 1229 | UINT8 *rom2 = machine().root_device().memregion("gfx2")->base(); | |
| 1228 | UINT8 *rom1 = memregion("gfx1")->base(); | |
| 1229 | UINT8 *rom2 = memregion("gfx2")->base(); | |
| 1230 | 1230 | int i; |
| 1231 | 1231 | |
| 1232 | 1232 | // planes 0,1 |
| r21033 | r21034 | |
|---|---|---|
| 541 | 541 | DRIVER_INIT_MEMBER(jackie_state,jackie) |
| 542 | 542 | { |
| 543 | 543 | int A; |
| 544 | UINT8 *rom = m | |
| 544 | UINT8 *rom = memregion("maincpu")->base(); | |
| 545 | 545 | |
| 546 | 546 | for (A = 0;A < 0xf000;A++) |
| 547 | 547 | { |
| r21033 | r21034 | |
|---|---|---|
| 1668 | 1668 | |
| 1669 | 1669 | DRIVER_INIT_MEMBER(arkanoid_state,hexa) |
| 1670 | 1670 | { |
| 1671 | UINT8 *RAM = m | |
| 1671 | UINT8 *RAM = memregion("maincpu")->base(); | |
| 1672 | 1672 | #if 0 |
| 1673 | 1673 | |
| 1674 | 1674 | |
| r21033 | r21034 | |
| 1682 | 1682 | RAM[0x0126] = 0x00; |
| 1683 | 1683 | #endif |
| 1684 | 1684 | |
| 1685 | m | |
| 1685 | membank("bank1")->configure_entries(0, 2, &RAM[0x10000], 0x4000); | |
| 1686 | 1686 | } |
| 1687 | 1687 | |
| 1688 | 1688 | DRIVER_INIT_MEMBER(arkanoid_state,brixian) |
| 1689 | 1689 | { |
| 1690 | UINT8 *RAM = m | |
| 1690 | UINT8 *RAM = memregion("protdata")->base(); | |
| 1691 | 1691 | |
| 1692 | 1692 | for (int i=0x000;i<0x200;i++) |
| 1693 | 1693 | m_protram[i+0x600] = RAM[i]; |
| r21033 | r21034 | |
|---|---|---|
| 3610 | 3610 | |
| 3611 | 3611 | void megasys1_state::rodlandj_gfx_unmangle(const char *region) |
| 3612 | 3612 | { |
| 3613 | UINT8 *rom = machine().root_device().memregion(region)->base(); | |
| 3614 | int size = machine().root_device().memregion(region)->bytes(); | |
| 3613 | UINT8 *rom = memregion(region)->base(); | |
| 3614 | int size = memregion(region)->bytes(); | |
| 3615 | 3615 | UINT8 *buffer; |
| 3616 | 3616 | int i; |
| 3617 | 3617 | |
| r21033 | r21034 | |
| 3642 | 3642 | |
| 3643 | 3643 | void megasys1_state::jitsupro_gfx_unmangle(const char *region) |
| 3644 | 3644 | { |
| 3645 | UINT8 *rom = machine().root_device().memregion(region)->base(); | |
| 3646 | int size = machine().root_device().memregion(region)->bytes(); | |
| 3645 | UINT8 *rom = memregion(region)->base(); | |
| 3646 | int size = memregion(region)->bytes(); | |
| 3647 | 3647 | UINT8 *buffer; |
| 3648 | 3648 | int i; |
| 3649 | 3649 | |
| r21033 | r21034 | |
| 3669 | 3669 | |
| 3670 | 3670 | void megasys1_state::stdragona_gfx_unmangle(const char *region) |
| 3671 | 3671 | { |
| 3672 | UINT8 *rom = machine().root_device().memregion(region)->base(); | |
| 3673 | int size = machine().root_device().memregion(region)->bytes(); | |
| 3672 | UINT8 *rom = memregion(region)->base(); | |
| 3673 | int size = memregion(region)->bytes(); | |
| 3674 | 3674 | UINT8 *buffer; |
| 3675 | 3675 | int i; |
| 3676 | 3676 | |
| r21033 | r21034 | |
| 3900 | 3900 | |
| 3901 | 3901 | phantasm_rom_decode(machine(), "maincpu"); |
| 3902 | 3902 | |
| 3903 | //ROM = (UINT16 *) m | |
| 3903 | //ROM = (UINT16 *) memregion("maincpu")->base(); | |
| 3904 | 3904 | machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x00000, 0x3ffff, read16_delegate(FUNC(megasys1_state::iganinju_mcu_hs_r),this)); |
| 3905 | 3905 | machine().device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0x2f000, 0x2f009, write16_delegate(FUNC(megasys1_state::iganinju_mcu_hs_w),this)); |
| 3906 | 3906 | |
| r21033 | r21034 | |
| 3923 | 3923 | |
| 3924 | 3924 | DRIVER_INIT_MEMBER(megasys1_state,jitsupro) |
| 3925 | 3925 | { |
| 3926 | //UINT16 *ROM = (UINT16 *) m | |
| 3926 | //UINT16 *ROM = (UINT16 *) memregion("maincpu")->base(); | |
| 3927 | 3927 | |
| 3928 | 3928 | astyanax_rom_decode(machine(), "maincpu"); // Code |
| 3929 | 3929 |
| r21033 | r21034 | |
|---|---|---|
| 573 | 573 | void crshrace_state::crshrace_patch_code( UINT16 offset ) |
| 574 | 574 | { |
| 575 | 575 | /* A hack which shows 3 player mode in code which is disabled */ |
| 576 | UINT16 *RAM = (UINT16 *)m | |
| 576 | UINT16 *RAM = (UINT16 *)memregion("maincpu")->base(); | |
| 577 | 577 | RAM[(offset + 0)/2] = 0x4e71; |
| 578 | 578 | RAM[(offset + 2)/2] = 0x4e71; |
| 579 | 579 | RAM[(offset + 4)/2] = 0x4e71; |
| r21033 | r21034 | |
|---|---|---|
| 70 | 70 | WRITE8_MEMBER(goal92_state::adpcm_control_w) |
| 71 | 71 | { |
| 72 | 72 | device_t *device = machine().device("msm"); |
| 73 | m | |
| 73 | membank("bank1")->set_entry(data & 0x01); | |
| 74 | 74 | |
| 75 | 75 | msm5205_reset_w(device, data & 0x08); |
| 76 | 76 | } |
| r21033 | r21034 | |
|---|---|---|
| 100 | 100 | |
| 101 | 101 | void wallc_state::palette_init() |
| 102 | 102 | { |
| 103 | const UINT8 *color_prom = m | |
| 103 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 104 | 104 | int i; |
| 105 | 105 | |
| 106 | 106 | static const int resistances_rg[2] = { 330, 220 }; |
| r21033 | r21034 | |
| 262 | 262 | UINT8 c; |
| 263 | 263 | UINT32 i; |
| 264 | 264 | |
| 265 | UINT8 *ROM = m | |
| 265 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 266 | 266 | |
| 267 | 267 | for (i=0; i<0x2000*2; i++) |
| 268 | 268 | { |
| r21033 | r21034 | |
| 277 | 277 | UINT8 c; |
| 278 | 278 | UINT32 i; |
| 279 | 279 | |
| 280 | UINT8 *ROM = m | |
| 280 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 281 | 281 | |
| 282 | 282 | for (i=0; i<0x4000; i++) |
| 283 | 283 | { |
| r21033 | r21034 | |
|---|---|---|
| 289 | 289 | int i; |
| 290 | 290 | |
| 291 | 291 | /* get a pointer to the source data */ |
| 292 | UINT8 *src = (UINT8 *)m | |
| 292 | UINT8 *src = (UINT8 *)memregion(src_reg)->base(); | |
| 293 | 293 | |
| 294 | 294 | /* get a pointer to the destination data */ |
| 295 | UINT8 *dst = (UINT8 *)m | |
| 295 | UINT8 *dst = (UINT8 *)memregion(dst_reg)->base(); | |
| 296 | 296 | |
| 297 | 297 | /* fill destination areas with the proper data */ |
| 298 | 298 | for (i = 0; i < length / 2; i++) |
| r21033 | r21034 | |
|---|---|---|
| 3052 | 3052 | |
| 3053 | 3053 | MACHINE_START_MEMBER(taitoz_state,taitoz) |
| 3054 | 3054 | { |
| 3055 | int banks = (m | |
| 3055 | int banks = (memregion("audiocpu")->bytes() - 0xc000) / 0x4000; | |
| 3056 | 3056 | |
| 3057 | m | |
| 3057 | membank("bank10")->configure_entries(0, banks, memregion("audiocpu")->base() + 0xc000, 0x4000); | |
| 3058 | 3058 | |
| 3059 | 3059 | machine().save().register_postload(save_prepost_delegate(FUNC(taitoz_state::taitoz_postload), this)); |
| 3060 | 3060 |
| r21033 | r21034 | |
|---|---|---|
| 319 | 319 | m_sprite_bitmap_1->fill(0x0000, cliprect); |
| 320 | 320 | m_sprite_bitmap_2->fill(0x0000, cliprect); |
| 321 | 321 | |
| 322 | m_spritegen1->skns_draw_sprites(machine(), *m_sprite_bitmap_1, cliprect, m_sprite_ram32_1, 0x4000, machine().root_device().memregion("gfx1")->base(), machine().root_device().memregion ("gfx1")->bytes(), m_sprite_regs32_1 ); | |
| 323 | m_spritegen2->skns_draw_sprites(machine(), *m_sprite_bitmap_2, cliprect, m_sprite_ram32_2, 0x4000, machine().root_device().memregion("gfx2")->base(), memregion ("gfx2")->bytes(), m_sprite_regs32_2 ); | |
| 322 | m_spritegen1->skns_draw_sprites(machine(), *m_sprite_bitmap_1, cliprect, m_sprite_ram32_1, 0x4000, memregion("gfx1")->base(), memregion ("gfx1")->bytes(), m_sprite_regs32_1 ); | |
| 323 | m_spritegen2->skns_draw_sprites(machine(), *m_sprite_bitmap_2, cliprect, m_sprite_ram32_2, 0x4000, memregion("gfx2")->base(), memregion ("gfx2")->bytes(), m_sprite_regs32_2 ); | |
| 324 | 324 | |
| 325 | 325 | // ignoring priority bits for now - might use alpha too, check 0x8000 of palette writes |
| 326 | 326 | for (y=0;y<240;y++) |
| r21033 | r21034 | |
|---|---|---|
| 757 | 757 | |
| 758 | 758 | DRIVER_INIT_MEMBER(metalmx_state,metalmx) |
| 759 | 759 | { |
| 760 | UINT8 *adsp_boot = (UINT8*)m | |
| 760 | UINT8 *adsp_boot = (UINT8*)memregion("adsp")->base(); | |
| 761 | 761 | |
| 762 | 762 | m_adsp->load_boot_data(adsp_boot, m_adsp_internal_program_ram); |
| 763 | 763 |
| r21033 | r21034 | |
|---|---|---|
| 210 | 210 | void royalmah_state::palette_init() |
| 211 | 211 | { |
| 212 | 212 | offs_t i; |
| 213 | const UINT8 *prom = machine().root_device().memregion("proms")->base(); | |
| 214 | int len = machine().root_device().memregion("proms")->bytes(); | |
| 213 | const UINT8 *prom = memregion("proms")->base(); | |
| 214 | int len = memregion("proms")->bytes(); | |
| 215 | 215 | |
| 216 | 216 | for (i = 0; i < len; i++) |
| 217 | 217 | { |
| r21033 | r21034 | |
| 245 | 245 | PALETTE_INIT_MEMBER(royalmah_state,mjderngr) |
| 246 | 246 | { |
| 247 | 247 | offs_t i; |
| 248 | const UINT8 *prom = machine().root_device().memregion("proms")->base(); | |
| 249 | int len = machine().root_device().memregion("proms")->bytes(); | |
| 248 | const UINT8 *prom = memregion("proms")->base(); | |
| 249 | int len = memregion("proms")->bytes(); | |
| 250 | 250 | |
| 251 | 251 | for (i = 0; i < len / 2; i++) |
| 252 | 252 | { |
| r21033 | r21034 | |
| 429 | 429 | READ8_MEMBER(royalmah_state::mjapinky_dsw_r) |
| 430 | 430 | { |
| 431 | 431 | if (m_rombank == 0x0e) return ioport("DSW3")->read(); |
| 432 | else return *(m | |
| 432 | else return *(memregion("maincpu")->base() + 0x10000 + 0x8000 * m_rombank); | |
| 433 | 433 | } |
| 434 | 434 | |
| 435 | 435 | WRITE8_MEMBER(royalmah_state::tontonb_bank_w) |
| r21033 | r21034 | |
| 891 | 891 | READ8_MEMBER(royalmah_state::mjifb_rom_io_r) |
| 892 | 892 | { |
| 893 | 893 | if (m_mjifb_rom_enable) |
| 894 | return ((UINT8*)(m | |
| 894 | return ((UINT8*)(memregion("maincpu")->base() + 0x10000 + m_rombank * 0x4000))[offset]; | |
| 895 | 895 | |
| 896 | 896 | offset += 0x8000; |
| 897 | 897 | |
| r21033 | r21034 | |
| 1000 | 1000 | READ8_MEMBER(royalmah_state::mjdejavu_rom_io_r) |
| 1001 | 1001 | { |
| 1002 | 1002 | if (m_mjifb_rom_enable) |
| 1003 | return ((UINT8*)(m | |
| 1003 | return ((UINT8*)(memregion("maincpu")->base() + 0x10000 + m_rombank * 0x4000))[offset]; | |
| 1004 | 1004 | |
| 1005 | 1005 | offset += 0x8000; |
| 1006 | 1006 | |
| r21033 | r21034 | |
| 4712 | 4712 | |
| 4713 | 4713 | DRIVER_INIT_MEMBER(royalmah_state,ippatsu) |
| 4714 | 4714 | { |
| 4715 | m | |
| 4715 | membank("bank1")->set_base(memregion("maincpu")->base() + 0x8000 ); | |
| 4716 | 4716 | } |
| 4717 | 4717 | |
| 4718 | 4718 | DRIVER_INIT_MEMBER(royalmah_state,janptr96) |
| r21033 | r21034 | |
|---|---|---|
| 555 | 555 | |
| 556 | 556 | void crospang_state::tumblepb_gfx1_rearrange() |
| 557 | 557 | { |
| 558 | UINT8 *rom = machine().root_device().memregion("gfx1")->base(); | |
| 559 | int len = machine().root_device().memregion("gfx1")->bytes(); | |
| 558 | UINT8 *rom = memregion("gfx1")->base(); | |
| 559 | int len = memregion("gfx1")->bytes(); | |
| 560 | 560 | int i; |
| 561 | 561 | |
| 562 | 562 | /* gfx data is in the wrong order */ |
| r21033 | r21034 | |
|---|---|---|
| 117 | 117 | |
| 118 | 118 | void panicr_state::palette_init() |
| 119 | 119 | { |
| 120 | const UINT8 *color_prom = m | |
| 120 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 121 | 121 | int i; |
| 122 | 122 | |
| 123 | 123 | /* allocate the colortable */ |
| r21033 | r21034 | |
| 176 | 176 | { |
| 177 | 177 | int code,attr; |
| 178 | 178 | |
| 179 | code=machine().root_device().memregion("user1")->base()[tile_index]; | |
| 180 | attr=machine().root_device().memregion("user2")->base()[tile_index]; | |
| 179 | code=memregion("user1")->base()[tile_index]; | |
| 180 | attr=memregion("user2")->base()[tile_index]; | |
| 181 | 181 | code+=((attr&7)<<8); |
| 182 | 182 | SET_TILE_INFO_MEMBER( |
| 183 | 183 | 1, |
| r21033 | r21034 | |
| 190 | 190 | { |
| 191 | 191 | int code,attr; |
| 192 | 192 | |
| 193 | code=machine().root_device().memregion("user1")->base()[tile_index]; | |
| 194 | attr=machine().root_device().memregion("user2")->base()[tile_index]; | |
| 193 | code=memregion("user1")->base()[tile_index]; | |
| 194 | attr=memregion("user2")->base()[tile_index]; | |
| 195 | 195 | code+=((attr&7)<<8); |
| 196 | 196 | SET_TILE_INFO_MEMBER( |
| 197 | 197 | 2, |
| r21033 | r21034 | |
| 620 | 620 | |
| 621 | 621 | t5182_init(machine()); |
| 622 | 622 | |
| 623 | rom = machine().root_device().memregion("gfx1")->base(); | |
| 624 | size = machine().root_device().memregion("gfx1")->bytes(); | |
| 623 | rom = memregion("gfx1")->base(); | |
| 624 | size = memregion("gfx1")->bytes(); | |
| 625 | 625 | |
| 626 | 626 | // text data lines |
| 627 | 627 | for (i = 0;i < size/2;i++) |
| r21033 | r21034 | |
| 643 | 643 | } |
| 644 | 644 | |
| 645 | 645 | |
| 646 | rom = machine().root_device().memregion("gfx2")->base(); | |
| 647 | size = machine().root_device().memregion("gfx2")->bytes(); | |
| 646 | rom = memregion("gfx2")->base(); | |
| 647 | size = memregion("gfx2")->bytes(); | |
| 648 | 648 | |
| 649 | 649 | // tiles data lines |
| 650 | 650 | for (i = 0;i < size/4;i++) |
| r21033 | r21034 | |
| 670 | 670 | } |
| 671 | 671 | |
| 672 | 672 | |
| 673 | rom = machine().root_device().memregion("gfx3")->base(); | |
| 674 | size = machine().root_device().memregion("gfx3")->bytes(); | |
| 673 | rom = memregion("gfx3")->base(); | |
| 674 | size = memregion("gfx3")->bytes(); | |
| 675 | 675 | |
| 676 | 676 | // sprites data lines |
| 677 | 677 | for (i = 0;i < size/2;i++) |
| r21033 | r21034 | |
| 695 | 695 | } |
| 696 | 696 | |
| 697 | 697 | //rearrange bg tilemaps a bit.... |
| 698 | rom = machine().root_device().memregion("user1")->base(); | |
| 699 | size = machine().root_device().memregion("user1")->bytes(); | |
| 698 | rom = memregion("user1")->base(); | |
| 699 | size = memregion("user1")->bytes(); | |
| 700 | 700 | memcpy(buf,rom, size); |
| 701 | 701 | |
| 702 | 702 | for(j=0;j<16;j++) |
| r21033 | r21034 | |
| 707 | 707 | } |
| 708 | 708 | } |
| 709 | 709 | |
| 710 | rom = machine().root_device().memregion("user2")->base(); | |
| 711 | size = machine().root_device().memregion("user2")->bytes(); | |
| 710 | rom = memregion("user2")->base(); | |
| 711 | size = memregion("user2")->bytes(); | |
| 712 | 712 | memcpy(buf,rom, size); |
| 713 | 713 | |
| 714 | 714 | for(j=0;j<16;j++) |
| r21033 | r21034 | |
|---|---|---|
| 807 | 807 | |
| 808 | 808 | READ8_MEMBER(galaga_state::namco_52xx_rom_r) |
| 809 | 809 | { |
| 810 | UINT32 length = m | |
| 810 | UINT32 length = memregion("52xx")->bytes(); | |
| 811 | 811 | //printf("ROM read %04X\n", offset); |
| 812 | 812 | if (!(offset & 0x1000)) |
| 813 | 813 | offset = (offset & 0xfff) | 0x0000; |
| r21033 | r21034 | |
| 817 | 817 | offset = (offset & 0xfff) | 0x2000; |
| 818 | 818 | else if (!(offset & 0x8000)) |
| 819 | 819 | offset = (offset & 0xfff) | 0x3000; |
| 820 | return (offset < length) ? m | |
| 820 | return (offset < length) ? memregion("52xx")->base()[offset] : 0xff; | |
| 821 | 821 | } |
| 822 | 822 | |
| 823 | 823 | READ8_MEMBER(galaga_state::namco_52xx_si_r) |
| r21033 | r21034 | |
| 3288 | 3288 | DRIVER_INIT_MEMBER(galaga_state,galaga) |
| 3289 | 3289 | { |
| 3290 | 3290 | /* swap bytes for flipped character so we can decode them together with normal characters */ |
| 3291 | UINT8 *rom = machine().root_device().memregion("gfx1")->base(); | |
| 3292 | int i, len = machine().root_device().memregion("gfx1")->bytes(); | |
| 3291 | UINT8 *rom = memregion("gfx1")->base(); | |
| 3292 | int i, len = memregion("gfx1")->bytes(); | |
| 3293 | 3293 | |
| 3294 | 3294 | for (i = 0;i < len;i++) |
| 3295 | 3295 | { |
| r21033 | r21034 | |
| 3316 | 3316 | UINT8 *rom; |
| 3317 | 3317 | int i; |
| 3318 | 3318 | |
| 3319 | rom = m | |
| 3319 | rom = memregion("gfx3")->base() + 0x5000; | |
| 3320 | 3320 | for (i = 0;i < 0x2000;i++) |
| 3321 | 3321 | rom[i + 0x2000] = rom[i] >> 4; |
| 3322 | 3322 | } |
| r21033 | r21034 | |
| 3328 | 3328 | |
| 3329 | 3329 | |
| 3330 | 3330 | /* convert one of the sprite ROMs to the format used by Xevious */ |
| 3331 | rom = m | |
| 3331 | rom = memregion("gfx3")->base(); | |
| 3332 | 3332 | for (A = 0x5000;A < 0x7000;A++) |
| 3333 | 3333 | { |
| 3334 | 3334 | rom[A] = BITSWAP8(rom[A],1,3,5,7,0,2,4,6); |
| 3335 | 3335 | } |
| 3336 | 3336 | |
| 3337 | 3337 | /* convert one of tile map ROMs to the format used by Xevious */ |
| 3338 | rom = m | |
| 3338 | rom = memregion("gfx4")->base(); | |
| 3339 | 3339 | for (A = 0x0000;A < 0x1000;A++) |
| 3340 | 3340 | { |
| 3341 | 3341 | rom[A] = BITSWAP8(rom[A],3,7,5,1,2,6,4,0); |
| r21033 | r21034 | |
|---|---|---|
| 220 | 220 | if (data & 4) |
| 221 | 221 | { |
| 222 | 222 | if (LOG_IO) logerror("Internal register (%d) read\n", m_nvram_address_latch); |
| 223 | m_nvram_data_latch = (m_nvram_address_latch == 0) ? | |
| 223 | m_nvram_data_latch = (m_nvram_address_latch == 0) ? ioport("IO0")->read() : 0xff; | |
| 224 | 224 | } |
| 225 | 225 | |
| 226 | 226 | /* if SEL == 0, we read NVRAM */ |
| r21033 | r21034 | |
| 404 | 404 | |
| 405 | 405 | /* set up memory */ |
| 406 | 406 | m_bank1->configure_entry(0, m_chip_ram); |
| 407 | m_bank1->configure_entry(1, m | |
| 407 | m_bank1->configure_entry(1, memregion("user1")->base()); | |
| 408 | 408 | } |
| 409 | 409 | |
| 410 | 410 |
| r21033 | r21034 | |
|---|---|---|
| 32 | 32 | WRITE8_MEMBER(darkmist_state::darkmist_hw_w) |
| 33 | 33 | { |
| 34 | 34 | m_hw=data; |
| 35 | membank("bank1")->set_base(&m | |
| 35 | membank("bank1")->set_base(&memregion("maincpu")->base()[0x010000+((data&0x80)?0x4000:0)]); | |
| 36 | 36 | } |
| 37 | 37 | |
| 38 | 38 | static ADDRESS_MAP_START( memmap, AS_PROGRAM, 8, darkmist_state ) |
| r21033 | r21034 | |
| 318 | 318 | int size; |
| 319 | 319 | int i; |
| 320 | 320 | |
| 321 | rom = machine().root_device().memregion("gfx1")->base(); | |
| 322 | size = machine().root_device().memregion("gfx1")->bytes(); | |
| 321 | rom = memregion("gfx1")->base(); | |
| 322 | size = memregion("gfx1")->bytes(); | |
| 323 | 323 | |
| 324 | 324 | /* data lines */ |
| 325 | 325 | for (i = 0;i < size/2;i++) |
| r21033 | r21034 | |
| 341 | 341 | } |
| 342 | 342 | |
| 343 | 343 | |
| 344 | rom = machine().root_device().memregion("gfx2")->base(); | |
| 345 | size = machine().root_device().memregion("gfx2")->bytes(); | |
| 344 | rom = memregion("gfx2")->base(); | |
| 345 | size = memregion("gfx2")->bytes(); | |
| 346 | 346 | |
| 347 | 347 | /* data lines */ |
| 348 | 348 | for (i = 0;i < size/2;i++) |
| r21033 | r21034 | |
| 364 | 364 | } |
| 365 | 365 | |
| 366 | 366 | |
| 367 | rom = machine().root_device().memregion("gfx3")->base(); | |
| 368 | size = machine().root_device().memregion("gfx3")->bytes(); | |
| 367 | rom = memregion("gfx3")->base(); | |
| 368 | size = memregion("gfx3")->bytes(); | |
| 369 | 369 | |
| 370 | 370 | /* data lines */ |
| 371 | 371 | for (i = 0;i < size/2;i++) |
| r21033 | r21034 | |
| 392 | 392 | void darkmist_state::decrypt_snd() |
| 393 | 393 | { |
| 394 | 394 | int i; |
| 395 | UINT8 *ROM = m | |
| 395 | UINT8 *ROM = memregion("t5182")->base(); | |
| 396 | 396 | |
| 397 | 397 | for(i=0x8000;i<0x10000;i++) |
| 398 | 398 | ROM[i] = BITSWAP8(ROM[i], 7,1,2,3,4,5,6,0); |
| r21033 | r21034 | |
| 402 | 402 | { |
| 403 | 403 | address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); |
| 404 | 404 | int i, len; |
| 405 | UINT8 *ROM = m | |
| 405 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 406 | 406 | UINT8 *buffer = auto_alloc_array(machine(), UINT8, 0x10000); |
| 407 | 407 | UINT8 *decrypt = auto_alloc_array(machine(), UINT8, 0x8000); |
| 408 | 408 | |
| r21033 | r21034 | |
| 437 | 437 | } |
| 438 | 438 | |
| 439 | 439 | space.set_decrypted_region(0x0000, 0x7fff, decrypt); |
| 440 | | |
| 440 | membank("bank1")->set_base(&ROM[0x010000]); | |
| 441 | 441 | |
| 442 | 442 | /* adr line swaps */ |
| 443 | ROM = machine().root_device().memregion("user1")->base(); | |
| 444 | len = machine().root_device().memregion("user1")->bytes(); | |
| 443 | ROM = memregion("user1")->base(); | |
| 444 | len = memregion("user1")->bytes(); | |
| 445 | 445 | memcpy( buffer, ROM, len ); |
| 446 | 446 | |
| 447 | 447 | for(i=0;i<len;i++) |
| r21033 | r21034 | |
| 449 | 449 | ROM[i]=buffer[BITSWAP24(i,23,22,21,20,19,18,17,16,15,6,5,4,3,2,14,13,12,11,8,7,1,0,10,9)]; |
| 450 | 450 | } |
| 451 | 451 | |
| 452 | ROM = machine().root_device().memregion("user2")->base(); | |
| 453 | len = machine().root_device().memregion("user2")->bytes(); | |
| 452 | ROM = memregion("user2")->base(); | |
| 453 | len = memregion("user2")->bytes(); | |
| 454 | 454 | memcpy( buffer, ROM, len ); |
| 455 | 455 | for(i=0;i<len;i++) |
| 456 | 456 | { |
| 457 | 457 | ROM[i]=buffer[BITSWAP24(i,23,22,21,20,19,18,17,16,15,6,5,4,3,2,14,13,12,11,8,7,1,0,10,9)]; |
| 458 | 458 | } |
| 459 | 459 | |
| 460 | ROM = machine().root_device().memregion("user3")->base(); | |
| 461 | len = machine().root_device().memregion("user3")->bytes(); | |
| 460 | ROM = memregion("user3")->base(); | |
| 461 | len = memregion("user3")->bytes(); | |
| 462 | 462 | memcpy( buffer, ROM, len ); |
| 463 | 463 | for(i=0;i<len;i++) |
| 464 | 464 | { |
| 465 | 465 | ROM[i]=buffer[BITSWAP24(i,23,22,21,20,19,18,17,16,15,14 ,5,4,3,2,11,10,9,8,13,12,1,0,7,6)]; |
| 466 | 466 | } |
| 467 | 467 | |
| 468 | ROM = machine().root_device().memregion("user4")->base(); | |
| 469 | len = machine().root_device().memregion("user4")->bytes(); | |
| 468 | ROM = memregion("user4")->base(); | |
| 469 | len = memregion("user4")->bytes(); | |
| 470 | 470 | memcpy( buffer, ROM, len ); |
| 471 | 471 | for(i=0;i<len;i++) |
| 472 | 472 | { |
| r21033 | r21034 | |
|---|---|---|
| 1847 | 1847 | |
| 1848 | 1848 | void equites_state::unpack_block( const char *region, int offset, int size ) |
| 1849 | 1849 | { |
| 1850 | UINT8 *rom = m | |
| 1850 | UINT8 *rom = memregion(region)->base(); | |
| 1851 | 1851 | int i; |
| 1852 | 1852 | |
| 1853 | 1853 | for (i = 0; i < size; ++i) |
| r21033 | r21034 | |
|---|---|---|
| 770 | 770 | |
| 771 | 771 | DRIVER_INIT_MEMBER(_8080bw_state, spacecom) |
| 772 | 772 | { |
| 773 | UINT8 *ROM = m | |
| 773 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 774 | 774 | |
| 775 | 775 | // bad byte: should be push a at RST 10h |
| 776 | 776 | ROM[0x10] = 0xf5; |
| r21033 | r21034 | |
| 2552 | 2552 | /* decrypt function for vortex */ |
| 2553 | 2553 | DRIVER_INIT_MEMBER(_8080bw_state,vortex) |
| 2554 | 2554 | { |
| 2555 | UINT8 *rom = machine().root_device().memregion("maincpu")->base(); | |
| 2556 | int length = machine().root_device().memregion("maincpu")->bytes(); | |
| 2555 | UINT8 *rom = memregion("maincpu")->base(); | |
| 2556 | int length = memregion("maincpu")->bytes(); | |
| 2557 | 2557 | UINT8 *buf1 = auto_alloc_array(machine(), UINT8, length); |
| 2558 | 2558 | UINT32 x; |
| 2559 | 2559 | for (x = 0; x < length; x++) |
| r21033 | r21034 | |
| 3071 | 3071 | |
| 3072 | 3072 | DRIVER_INIT_MEMBER(_8080bw_state,invmulti) |
| 3073 | 3073 | { |
| 3074 | UINT8 *src = machine().root_device().memregion("user1")->base(); | |
| 3075 | int len = machine().root_device().memregion("user1")->bytes(); | |
| 3076 | UINT8 *dest = machine().root_device().memregion("maincpu")->base(); | |
| 3074 | UINT8 *src = memregion("user1")->base(); | |
| 3075 | int len = memregion("user1")->bytes(); | |
| 3076 | UINT8 *dest = memregion("maincpu")->base(); | |
| 3077 | 3077 | |
| 3078 | 3078 | // decrypt rom |
| 3079 | 3079 | for (int i = 0; i < len; i++) |
| r21033 | r21034 | |
|---|---|---|
| 220 | 220 | |
| 221 | 221 | void miniboy7_state::palette_init() |
| 222 | 222 | { |
| 223 | const UINT8 *color_prom = m | |
| 223 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 224 | 224 | /* FIXME... Can't get the correct palette. |
| 225 | 225 | sometimes RGB bits are inverted, disregarding the 4th bit. |
| 226 | 226 |
| r21033 | r21034 | |
|---|---|---|
| 55 | 55 | |
| 56 | 56 | if (coin & 2) // Coin 1 ! |
| 57 | 57 | { |
| 58 | tmp = ( | |
| 58 | tmp = (ioport("DSW")->read() & 0x30) >> 4; | |
| 59 | 59 | m_coins++; |
| 60 | 60 | if (m_coins >= coinage_table[tmp][0]) |
| 61 | 61 | { |
| r21033 | r21034 | |
|---|---|---|
| 329 | 329 | WRITE8_MEMBER(nycaptor_state::nycaptor_generic_control_w) |
| 330 | 330 | { |
| 331 | 331 | m_generic_control_reg = data; |
| 332 | membank("bank1")->set_base(m | |
| 332 | membank("bank1")->set_base(memregion("maincpu")->base() + 0x10000 + ((data&0x08)>>3)*0x4000 ); | |
| 333 | 333 | } |
| 334 | 334 | |
| 335 | 335 | static ADDRESS_MAP_START( nycaptor_master_map, AS_PROGRAM, 8, nycaptor_state ) |
| r21033 | r21034 | |
| 433 | 433 | int bank = (data >> 2) & 3; |
| 434 | 434 | |
| 435 | 435 | m_generic_control_reg = data; |
| 436 | membank("bank1")->set_base(m | |
| 436 | membank("bank1")->set_base(memregion("maincpu")->base() + 0x10000 + bank*0x4000 ); | |
| 437 | 437 | } |
| 438 | 438 | |
| 439 | 439 |
| r21033 | r21034 | |
|---|---|---|
| 2083 | 2083 | void mitchell_state::bootleg_decode( ) |
| 2084 | 2084 | { |
| 2085 | 2085 | address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); |
| 2086 | space.set_decrypted_region(0x0000, 0x7fff, machine().root_device().memregion("maincpu")->base() + 0x50000); | |
| 2087 | machine().root_device().membank("bank1")->configure_decrypted_entries(0, 16, machine().root_device().memregion("maincpu")->base() + 0x60000, 0x4000); | |
| 2086 | space.set_decrypted_region(0x0000, 0x7fff, memregion("maincpu")->base() + 0x50000); | |
| 2087 | membank("bank1")->configure_decrypted_entries(0, 16, memregion("maincpu")->base() + 0x60000, 0x4000); | |
| 2088 | 2088 | } |
| 2089 | 2089 | |
| 2090 | 2090 | |
| 2091 | 2091 | void mitchell_state::configure_banks( ) |
| 2092 | 2092 | { |
| 2093 | m | |
| 2093 | membank("bank1")->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x4000); | |
| 2094 | 2094 | } |
| 2095 | 2095 | |
| 2096 | 2096 | |
| r21033 | r21034 | |
| 2217 | 2217 | DRIVER_INIT_MEMBER(mitchell_state,mstworld) |
| 2218 | 2218 | { |
| 2219 | 2219 | /* descramble the program rom .. */ |
| 2220 | int len = m | |
| 2220 | int len = memregion("maincpu")->bytes(); | |
| 2221 | 2221 | UINT8* source = auto_alloc_array(machine(), UINT8, len); |
| 2222 | UINT8* dst = m | |
| 2222 | UINT8* dst = memregion("maincpu")->base() ; | |
| 2223 | 2223 | int x; |
| 2224 | 2224 | |
| 2225 | 2225 | static const int tablebank[]= |
| r21033 | r21034 | |
|---|---|---|
| 692 | 692 | void deco_mlc_state::descramble_sound( ) |
| 693 | 693 | { |
| 694 | 694 | /* the same as simpl156 / heavy smash? */ |
| 695 | UINT8 *rom = machine().root_device().memregion("ymz")->base(); | |
| 696 | int length = machine().root_device().memregion("ymz")->bytes(); | |
| 695 | UINT8 *rom = memregion("ymz")->base(); | |
| 696 | int length = memregion("ymz")->bytes(); | |
| 697 | 697 | UINT8 *buf1 = auto_alloc_array(machine(), UINT8, length); |
| 698 | 698 | |
| 699 | 699 | UINT32 x; |
| r21033 | r21034 | |
|---|---|---|
| 3137 | 3137 | MACHINE_START_MEMBER(cps_state,cps1) |
| 3138 | 3138 | { |
| 3139 | 3139 | MACHINE_START_CALL_MEMBER(common); |
| 3140 | m | |
| 3140 | membank("bank1")->configure_entries(0, 2, memregion("audiocpu")->base() + 0x10000, 0x4000); | |
| 3141 | 3141 | } |
| 3142 | 3142 | |
| 3143 | 3143 | MACHINE_START_MEMBER(cps_state,qsound) |
| 3144 | 3144 | { |
| 3145 | 3145 | MACHINE_START_CALL_MEMBER(common); |
| 3146 | m | |
| 3146 | membank("bank1")->configure_entries(0, 6, memregion("audiocpu")->base() + 0x10000, 0x4000); | |
| 3147 | 3147 | } |
| 3148 | 3148 | |
| 3149 | 3149 | static MACHINE_CONFIG_START( cps1_10MHz, cps_state ) |
| r21033 | r21034 | |
| 11066 | 11066 | |
| 11067 | 11067 | DRIVER_INIT_MEMBER(cps_state,pang3) |
| 11068 | 11068 | { |
| 11069 | UINT16 *rom = (UINT16 *)m | |
| 11069 | UINT16 *rom = (UINT16 *)memregion("maincpu")->base(); | |
| 11070 | 11070 | int A, src, dst; |
| 11071 | 11071 | |
| 11072 | 11072 | for (A = 0x80000; A < 0x100000; A += 2) |
| r21033 | r21034 | |
|---|---|---|
| 712 | 712 | |
| 713 | 713 | void segas24_state::reset_bank() |
| 714 | 714 | { |
| 715 | if (m | |
| 715 | if (memregion("romboard")->base()) | |
| 716 | 716 | { |
| 717 | 717 | membank("bank1")->set_entry(curbank & 15); |
| 718 | 718 | membank("bank2")->set_entry(curbank & 15); |
| r21033 | r21034 | |
|---|---|---|
| 482 | 482 | |
| 483 | 483 | void ddayjlc_state::palette_init() |
| 484 | 484 | { |
| 485 | const UINT8 *color_prom = m | |
| 485 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 486 | 486 | int i,r,g,b,val; |
| 487 | 487 | int bit0,bit1,bit2; |
| 488 | 488 | |
| r21033 | r21034 | |
| 667 | 667 | UINT8 *src, *dst, *temp; |
| 668 | 668 | temp = auto_alloc_array(machine(), UINT8, 0x10000); |
| 669 | 669 | src = temp; |
| 670 | dst = machine().root_device().memregion("gfx1")->base(); | |
| 671 | length = machine().root_device().memregion("gfx1")->bytes(); | |
| 670 | dst = memregion("gfx1")->base(); | |
| 671 | length = memregion("gfx1")->bytes(); | |
| 672 | 672 | memcpy(src, dst, length); |
| 673 | 673 | newadr = 0; |
| 674 | 674 | oldaddr = 0; |
| r21033 | r21034 | |
| 682 | 682 | auto_free(machine(), temp); |
| 683 | 683 | } |
| 684 | 684 | |
| 685 | machine().root_device().membank("bank1")->configure_entries(0, 3, machine().root_device().memregion("user1")->base(), 0x4000); | |
| 686 | machine().root_device().membank("bank1")->set_entry(0); | |
| 685 | membank("bank1")->configure_entries(0, 3, memregion("user1")->base(), 0x4000); | |
| 686 | membank("bank1")->set_entry(0); | |
| 687 | 687 | } |
| 688 | 688 | |
| 689 | 689 | GAME( 1984, ddayjlc, 0, ddayjlc, ddayjlc, ddayjlc_state, ddayjlc, ROT90, "Jaleco", "D-Day (Jaleco set 1)", GAME_IMPERFECT_GRAPHICS | GAME_IMPERFECT_SOUND | GAME_SUPPORTS_SAVE ) |
| r21033 | r21034 | |
|---|---|---|
| 640 | 640 | #if MIGHTGUY_HACK |
| 641 | 641 | /* This is a hack to fix the game code to get a fully working |
| 642 | 642 | "Starting Area" fake Dip Switch */ |
| 643 | UINT8 *RAM = (UINT8 *)m | |
| 643 | UINT8 *RAM = (UINT8 *)memregion("maincpu")->base(); | |
| 644 | 644 | RAM[0x00e4] = 0x07; // rlca |
| 645 | 645 | RAM[0x00e5] = 0x07; // rlca |
| 646 | 646 | RAM[0x00e6] = 0x07; // rlca |
| r21033 | r21034 | |
|---|---|---|
| 1533 | 1533 | |
| 1534 | 1534 | void bublbobl_state::configure_banks( ) |
| 1535 | 1535 | { |
| 1536 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 1537 | machine().root_device().membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000); | |
| 1536 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 1537 | membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000); | |
| 1538 | 1538 | } |
| 1539 | 1539 | |
| 1540 | 1540 | DRIVER_INIT_MEMBER(bublbobl_state,bublbobl) |
| r21033 | r21034 | |
| 1565 | 1565 | { |
| 1566 | 1566 | // rearrange gfx to original format |
| 1567 | 1567 | int i; |
| 1568 | UINT8* src = m | |
| 1568 | UINT8* src = memregion("gfx1")->base(); | |
| 1569 | 1569 | for (i = 0; i < 0x40000; i++) |
| 1570 | 1570 | src[i] = BITSWAP8(src[i],7,6,5,4,0,1,2,3); |
| 1571 | 1571 |
| r21033 | r21034 | |
|---|---|---|
| 83 | 83 | |
| 84 | 84 | READ8_MEMBER(quantum_state::input_1_r) |
| 85 | 85 | { |
| 86 | return ( | |
| 86 | return (ioport("DSW0")->read() << (7 - (offset - pokey_device::POT0_C))) & 0x80; | |
| 87 | 87 | } |
| 88 | 88 | |
| 89 | 89 | |
| 90 | 90 | READ8_MEMBER(quantum_state::input_2_r) |
| 91 | 91 | { |
| 92 | return ( | |
| 92 | return (ioport("DSW1")->read() << (7 - (offset - pokey_device::POT0_C))) & 0x80; | |
| 93 | 93 | } |
| 94 | 94 | |
| 95 | 95 |
| r21033 | r21034 | |
|---|---|---|
| 1226 | 1226 | |
| 1227 | 1227 | DRIVER_INIT_MEMBER(coinmstr_state,coinmstr) |
| 1228 | 1228 | { |
| 1229 | UINT8 *rom = machine().root_device().memregion("user1")->base(); | |
| 1230 | int length = machine().root_device().memregion("user1")->bytes(); | |
| 1229 | UINT8 *rom = memregion("user1")->base(); | |
| 1230 | int length = memregion("user1")->bytes(); | |
| 1231 | 1231 | UINT8 *buf = auto_alloc_array(machine(), UINT8, length); |
| 1232 | 1232 | int i; |
| 1233 | 1233 |
| r21033 | r21034 | |
|---|---|---|
| 2704 | 2704 | DRIVER_INIT_MEMBER(snowbros_state,4in1boot) |
| 2705 | 2705 | { |
| 2706 | 2706 | UINT8 *buffer; |
| 2707 | UINT8 *src = machine().root_device().memregion("maincpu")->base(); | |
| 2708 | int len = machine().root_device().memregion("maincpu")->bytes(); | |
| 2707 | UINT8 *src = memregion("maincpu")->base(); | |
| 2708 | int len = memregion("maincpu")->bytes(); | |
| 2709 | 2709 | |
| 2710 | 2710 | /* strange order */ |
| 2711 | 2711 | buffer = auto_alloc_array(machine(), UINT8, len); |
| r21033 | r21034 | |
| 2719 | 2719 | auto_free(machine(), buffer); |
| 2720 | 2720 | } |
| 2721 | 2721 | |
| 2722 | src = machine().root_device().memregion("soundcpu")->base(); | |
| 2723 | len = machine().root_device().memregion("soundcpu")->bytes(); | |
| 2722 | src = memregion("soundcpu")->base(); | |
| 2723 | len = memregion("soundcpu")->bytes(); | |
| 2724 | 2724 | |
| 2725 | 2725 | /* strange order */ |
| 2726 | 2726 | buffer = auto_alloc_array(machine(), UINT8, len); |
| r21033 | r21034 | |
| 2737 | 2737 | DRIVER_INIT_MEMBER(snowbros_state,snowbro3) |
| 2738 | 2738 | { |
| 2739 | 2739 | UINT8 *buffer; |
| 2740 | UINT8 *src = machine().root_device().memregion("maincpu")->base(); | |
| 2741 | int len = machine().root_device().memregion("maincpu")->bytes(); | |
| 2740 | UINT8 *src = memregion("maincpu")->base(); | |
| 2741 | int len = memregion("maincpu")->bytes(); | |
| 2742 | 2742 | |
| 2743 | 2743 | /* strange order */ |
| 2744 | 2744 | buffer = auto_alloc_array(machine(), UINT8, len); |
| r21033 | r21034 | |
|---|---|---|
| 221 | 221 | |
| 222 | 222 | void pcktgal_state::machine_start() |
| 223 | 223 | { |
| 224 | m | |
| 224 | membank("bank3")->configure_entries(0, 2, memregion("audiocpu")->base() + 0x10000, 0x4000); | |
| 225 | 225 | } |
| 226 | 226 | |
| 227 | 227 | static MACHINE_CONFIG_START( pcktgal, pcktgal_state ) |
| r21033 | r21034 | |
| 425 | 425 | |
| 426 | 426 | DRIVER_INIT_MEMBER(pcktgal_state,pcktgal) |
| 427 | 427 | { |
| 428 | UINT8 *rom = machine().root_device().memregion("gfx1")->base(); | |
| 429 | int len = machine().root_device().memregion("gfx1")->bytes(); | |
| 428 | UINT8 *rom = memregion("gfx1")->base(); | |
| 429 | int len = memregion("gfx1")->bytes(); | |
| 430 | 430 | int i,j,temp[16]; |
| 431 | 431 | |
| 432 | 432 | /* Tile graphics roms have some swapped lines, original version only */ |
| r21033 | r21034 | |
|---|---|---|
| 101 | 101 | |
| 102 | 102 | PALETTE_INIT_MEMBER(cntsteer_state,zerotrgt) |
| 103 | 103 | { |
| 104 | const UINT8 *color_prom = m | |
| 104 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 105 | 105 | int i; |
| 106 | 106 | for (i = 0; i < machine().total_colors(); i++) |
| 107 | 107 | { |
| r21033 | r21034 | |
| 1142 | 1142 | |
| 1143 | 1143 | void cntsteer_state::zerotrgt_rearrange_gfx( int romsize, int romarea ) |
| 1144 | 1144 | { |
| 1145 | UINT8 *src = machine().root_device().memregion("gfx4")->base(); | |
| 1146 | UINT8 *dst = machine().root_device().memregion("gfx3")->base(); | |
| 1145 | UINT8 *src = memregion("gfx4")->base(); | |
| 1146 | UINT8 *dst = memregion("gfx3")->base(); | |
| 1147 | 1147 | int rm; |
| 1148 | 1148 | int cnt1; |
| 1149 | 1149 | |
| r21033 | r21034 | |
| 1162 | 1162 | #if 0 |
| 1163 | 1163 | DRIVER_INIT_MEMBER(cntsteer_state,cntsteer) |
| 1164 | 1164 | { |
| 1165 | UINT8 *RAM = m | |
| 1165 | UINT8 *RAM = memregion("subcpu")->base(); | |
| 1166 | 1166 | |
| 1167 | 1167 | RAM[0xc2cf] = 0x43; /* Patch out Cpu 1 ram test - it never ends..?! */ |
| 1168 | 1168 | RAM[0xc2d0] = 0x43; |
| r21033 | r21034 | |
|---|---|---|
| 343 | 343 | |
| 344 | 344 | void poker72_state::machine_reset() |
| 345 | 345 | { |
| 346 | UINT8 *ROM = m | |
| 346 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 347 | 347 | |
| 348 | m | |
| 348 | membank("bank1")->set_base(&ROM[0]); | |
| 349 | 349 | } |
| 350 | 350 | |
| 351 | 351 | static MACHINE_CONFIG_START( poker72, poker72_state ) |
| r21033 | r21034 | |
| 394 | 394 | |
| 395 | 395 | DRIVER_INIT_MEMBER(poker72_state,poker72) |
| 396 | 396 | { |
| 397 | UINT8 *rom = m | |
| 397 | UINT8 *rom = memregion("maincpu")->base(); | |
| 398 | 398 | |
| 399 | 399 | rom[0x4a9] = 0x28; |
| 400 | 400 | } |
| r21033 | r21034 | |
|---|---|---|
| 371 | 371 | |
| 372 | 372 | DRIVER_INIT_MEMBER(goindol_state,goindol) |
| 373 | 373 | { |
| 374 | UINT8 *rom = m | |
| 374 | UINT8 *rom = memregion("maincpu")->base(); | |
| 375 | 375 | |
| 376 | 376 | |
| 377 | 377 | /* I hope that's all patches to avoid protection */ |
| r21033 | r21034 | |
|---|---|---|
| 563 | 563 | DRIVER_INIT_MEMBER(spoker_state,spk116it) |
| 564 | 564 | { |
| 565 | 565 | int A; |
| 566 | UINT8 *rom = m | |
| 566 | UINT8 *rom = memregion("maincpu")->base(); | |
| 567 | 567 | |
| 568 | 568 | |
| 569 | 569 | for (A = 0;A < 0x10000;A++) |
| r21033 | r21034 | |
| 670 | 670 | |
| 671 | 671 | DRIVER_INIT_MEMBER(spoker_state,3super8) |
| 672 | 672 | { |
| 673 | UINT8 *ROM = m | |
| 673 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 674 | 674 | int i; |
| 675 | 675 | |
| 676 | 676 | /* Decryption is probably done using one macrocell/output on an address decoding pal which we do not have a dump of */ |
| r21033 | r21034 | |
| 688 | 688 | |
| 689 | 689 | /* cheesy hack: take gfx roms from spk116it and rearrange them for this game needs */ |
| 690 | 690 | { |
| 691 | UINT8 *src = machine().root_device().memregion("rep_gfx")->base(); | |
| 692 | UINT8 *dst = machine().root_device().memregion("gfx1")->base(); | |
| 691 | UINT8 *src = memregion("rep_gfx")->base(); | |
| 692 | UINT8 *dst = memregion("gfx1")->base(); | |
| 693 | 693 | UINT8 x; |
| 694 | 694 | |
| 695 | 695 | for(x=0;x<3;x++) |
| r21033 | r21034 | |
|---|---|---|
| 205 | 205 | #ifdef UNUSED_FUNCTION |
| 206 | 206 | void discoboy_state::discoboy_setrombank( UINT8 data ) |
| 207 | 207 | { |
| 208 | UINT8 *ROM = m | |
| 208 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 209 | 209 | data &= 0x2f; |
| 210 | space.m | |
| 210 | space.membank("bank1")->set_base(&ROM[0x6000 + (data * 0x1000)] ); | |
| 211 | 211 | } |
| 212 | 212 | #endif |
| 213 | 213 | |
| r21033 | r21034 | |
| 331 | 331 | /* Note: this is bit 5 on yunsung8.c */ |
| 332 | 332 | msm5205_reset_w(device, (data & 0x08) >> 3); |
| 333 | 333 | |
| 334 | m | |
| 334 | membank("sndbank")->set_entry(data & 0x07); | |
| 335 | 335 | |
| 336 | 336 | if (data != (data & (~0x0f))) |
| 337 | 337 | logerror("%s: Bank %02X\n", machine().describe_context(), data); |
| r21033 | r21034 | |
|---|---|---|
| 15 | 15 | { |
| 16 | 16 | // many original barcrest / bwb sets have identification info around here |
| 17 | 17 | // this helps with sorting |
| 18 | UINT8 *src = machine().root_device().memregion( "maincpu" )->base(); | |
| 19 | int size = machine().root_device().memregion( "maincpu" )->bytes(); | |
| 18 | UINT8 *src = memregion( "maincpu" )->base(); | |
| 19 | int size = memregion( "maincpu" )->bytes(); | |
| 20 | 20 | |
| 21 | 21 | for (int j=0;j<size;j+=0x10000) |
| 22 | 22 | { |
| r21033 | r21034 | |
|---|---|---|
| 907 | 907 | CellSrc = m_tmnt2_1c0800[0x00] | (m_tmnt2_1c0800[0x01] << 16 ); |
| 908 | 908 | // if (CellDest >= 0x180000 && CellDest < 0x183fe0) { |
| 909 | 909 | CellVar -= 0x104000; |
| 910 | src = (UINT16 *)(m | |
| 910 | src = (UINT16 *)(memregion("maincpu")->base() + CellSrc); | |
| 911 | 911 | |
| 912 | 912 | CellVar >>= 1; |
| 913 | 913 | |
| r21033 | r21034 | |
| 2566 | 2566 | MACHINE_START_MEMBER(tmnt_state,prmrsocr) |
| 2567 | 2567 | { |
| 2568 | 2568 | MACHINE_START_CALL_MEMBER(common); |
| 2569 | UINT8 *ROM = machine().root_device().memregion("audiocpu")->base(); | |
| 2570 | machine().root_device().membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000); | |
| 2569 | UINT8 *ROM = memregion("audiocpu")->base(); | |
| 2570 | membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000); | |
| 2571 | 2571 | } |
| 2572 | 2572 | |
| 2573 | 2573 | static MACHINE_CONFIG_START( prmrsocr, tmnt_state ) |
| r21033 | r21034 | |
| 4091 | 4091 | be shuffled around because the ROMs are connected differently to the |
| 4092 | 4092 | 051962 custom IC. |
| 4093 | 4093 | */ |
| 4094 | gfxdata = machine().root_device().memregion("gfx1")->base(); | |
| 4095 | len = machine().root_device().memregion("gfx1")->bytes(); | |
| 4094 | gfxdata = memregion("gfx1")->base(); | |
| 4095 | len = memregion("gfx1")->bytes(); | |
| 4096 | 4096 | for (i = 0; i < len; i += 4) |
| 4097 | 4097 | { |
| 4098 | 4098 | for (j = 0; j < 4; j++) |
| r21033 | r21034 | |
| 4112 | 4112 | be shuffled around because the ROMs are connected differently to the |
| 4113 | 4113 | 051937 custom IC. |
| 4114 | 4114 | */ |
| 4115 | gfxdata = machine().root_device().memregion("gfx2")->base(); | |
| 4116 | len = machine().root_device().memregion("gfx2")->bytes(); | |
| 4115 | gfxdata = memregion("gfx2")->base(); | |
| 4116 | len = memregion("gfx2")->bytes(); | |
| 4117 | 4117 | for (i = 0; i < len; i += 4) |
| 4118 | 4118 | { |
| 4119 | 4119 | for (j = 0; j < 4; j++) |
| r21033 | r21034 | |
| 4184 | 4184 | be shuffled around because the ROMs are connected differently to the |
| 4185 | 4185 | 051962 custom IC. |
| 4186 | 4186 | */ |
| 4187 | gfxdata = machine().root_device().memregion("gfx1")->base(); | |
| 4188 | len = machine().root_device().memregion("gfx1")->bytes(); | |
| 4187 | gfxdata = memregion("gfx1")->base(); | |
| 4188 | len = memregion("gfx1")->bytes(); | |
| 4189 | 4189 | for (i = 0; i < len; i += 4) |
| 4190 | 4190 | { |
| 4191 | 4191 | for (j = 0; j < 4; j++) |
| r21033 | r21034 | |
| 4205 | 4205 | be shuffled around because the ROMs are connected differently to the |
| 4206 | 4206 | 051937 custom IC. |
| 4207 | 4207 | */ |
| 4208 | gfxdata = machine().root_device().memregion("gfx2")->base(); | |
| 4209 | len = machine().root_device().memregion("gfx2")->bytes(); | |
| 4208 | gfxdata = memregion("gfx2")->base(); | |
| 4209 | len = memregion("gfx2")->bytes(); | |
| 4210 | 4210 | for (i = 0; i < len; i += 4) |
| 4211 | 4211 | { |
| 4212 | 4212 | for (j = 0; j < 4; j++) |
| r21033 | r21034 | |
| 4223 | 4223 | |
| 4224 | 4224 | temp = auto_alloc_array(machine(), UINT8, len); |
| 4225 | 4225 | memcpy(temp, gfxdata, len); |
| 4226 | code_conv_table = &m | |
| 4226 | code_conv_table = &memregion("proms")->base()[0x0000]; | |
| 4227 | 4227 | for (A = 0; A < len / 4; A++) |
| 4228 | 4228 | { |
| 4229 | 4229 | #define CA0 0 |
| r21033 | r21034 | |
|---|---|---|
| 1613 | 1613 | 2,1,2,1 /* 0x5000-0x5fff */ |
| 1614 | 1614 | }; |
| 1615 | 1615 | |
| 1616 | UINT8 *RAM = m | |
| 1616 | UINT8 *RAM = memregion("maincpu")->base(); | |
| 1617 | 1617 | int offs, i, j; |
| 1618 | 1618 | UINT8 src; |
| 1619 | 1619 |
| r21033 | r21034 | |
|---|---|---|
| 1549 | 1549 | |
| 1550 | 1550 | DRIVER_INIT_MEMBER(rohga_state,schmeisr) |
| 1551 | 1551 | { |
| 1552 | const UINT8 *src = machine().root_device().memregion("gfx2")->base(); | |
| 1553 | UINT8 *dst = machine().root_device().memregion("gfx1")->base(); | |
| 1552 | const UINT8 *src = memregion("gfx2")->base(); | |
| 1553 | UINT8 *dst = memregion("gfx1")->base(); | |
| 1554 | 1554 | |
| 1555 | 1555 | memcpy(dst, src, 0x20000); |
| 1556 | 1556 | memcpy(dst + 0x20000, src + 0x80000, 0x20000); |
| r21033 | r21034 | |
|---|---|---|
| 94 | 94 | |
| 95 | 95 | for (t = 0 ; t < 8 ; t ++) |
| 96 | 96 | { |
| 97 | if (!( | |
| 97 | if (!(ioport(keynames[j+p_side])->read() & ( 1 << t ))) | |
| 98 | 98 | { |
| 99 | 99 | return (i + t) | (p_side ? 0x20 : 0x00); |
| 100 | 100 | } |
| r21033 | r21034 | |
|---|---|---|
| 876 | 876 | DRIVER_INIT_MEMBER(coinmvga_state,colorama) |
| 877 | 877 | { |
| 878 | 878 | UINT16 *ROM; |
| 879 | ROM = (UINT16 *)m | |
| 879 | ROM = (UINT16 *)memregion("maincpu")->base(); | |
| 880 | 880 | |
| 881 | 881 | // rte in non-irq routines? wtf? patch them to rts... |
| 882 | 882 | ROM[0x02B476/2] = 0x5470; |
| r21033 | r21034 | |
| 893 | 893 | DRIVER_INIT_MEMBER(coinmvga_state,cmrltv75) |
| 894 | 894 | { |
| 895 | 895 | UINT16 *ROM; |
| 896 | ROM = (UINT16 *)m | |
| 896 | ROM = (UINT16 *)memregion("maincpu")->base(); | |
| 897 | 897 | |
| 898 | 898 | // rte in non-irq routines? wtf? patch them to rts... |
| 899 | 899 | ROM[0x056fd6/2] = 0x5470; |
| r21033 | r21034 | |
|---|---|---|
| 827 | 827 | |
| 828 | 828 | MACHINE_START_MEMBER(jpmsys5_state,jpmsys5) |
| 829 | 829 | { |
| 830 | // m | |
| 830 | // membank("bank1")->set_base(memregion("maincpu")->base()+0x20000); | |
| 831 | 831 | } |
| 832 | 832 | |
| 833 | 833 | MACHINE_RESET_MEMBER(jpmsys5_state,jpmsys5) |
| r21033 | r21034 | |
|---|---|---|
| 359 | 359 | |
| 360 | 360 | void corona_state::palette_init() |
| 361 | 361 | { |
| 362 | const UINT8 *color_prom = m | |
| 362 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 363 | 363 | int bit6, bit7, bit0, bit1, r, g, b; |
| 364 | 364 | int i; |
| 365 | 365 |
| r21033 | r21034 | |
|---|---|---|
| 2076 | 2076 | |
| 2077 | 2077 | UINT8 *temp = auto_alloc_array(machine(), UINT8, 0x20000); |
| 2078 | 2078 | { |
| 2079 | UINT8 *rom = machine().root_device().memregion("maincpu")->base(); | |
| 2080 | UINT32 len = machine().root_device().memregion("maincpu")->bytes(); | |
| 2079 | UINT8 *rom = memregion("maincpu")->base(); | |
| 2080 | UINT32 len = memregion("maincpu")->bytes(); | |
| 2081 | 2081 | UINT32 base; |
| 2082 | 2082 | |
| 2083 | 2083 | for (base = 0x10000; base < len; base += 0x30000) |
| r21033 | r21034 | |
| 2150 | 2150 | DRIVER_INIT_MEMBER(balsente_state,triviag1) { expand_roms(EXPAND_ALL); config_shooter_adc(FALSE, 0 /* noanalog */); } |
| 2151 | 2151 | DRIVER_INIT_MEMBER(balsente_state,triviag2) |
| 2152 | 2152 | { |
| 2153 | UINT8 *rom = m | |
| 2153 | UINT8 *rom = memregion("maincpu")->base(); | |
| 2154 | 2154 | memcpy(&rom[0x20000], &rom[0x28000], 0x4000); |
| 2155 | 2155 | memcpy(&rom[0x24000], &rom[0x28000], 0x4000); |
| 2156 | 2156 | expand_roms(EXPAND_NONE); config_shooter_adc(FALSE, 0 /* noanalog */); |
| r21033 | r21034 | |
|---|---|---|
| 346 | 346 | |
| 347 | 347 | m_sprite_bitmap_1.fill(0x0000, cliprect); |
| 348 | 348 | |
| 349 | m_spritegen->skns_draw_sprites(machine(), m_sprite_bitmap_1, cliprect, &m_spriteram32[0], 0x4000, m | |
| 349 | m_spritegen->skns_draw_sprites(machine(), m_sprite_bitmap_1, cliprect, &m_spriteram32[0], 0x4000, memregion("gfx1")->base(), memregion ("gfx1")->bytes(), m_spc_regs ); | |
| 350 | 350 | |
| 351 | 351 | // ignoring priority bits for now.. |
| 352 | 352 | for (y=0;y<240;y++) |
| r21033 | r21034 | |
|---|---|---|
| 992 | 992 | |
| 993 | 993 | DRIVER_INIT_MEMBER(fitfight_state,fitfight) |
| 994 | 994 | { |
| 995 | // UINT16 *mem16 = (UINT16 *)m | |
| 995 | // UINT16 *mem16 = (UINT16 *)memregion("maincpu")->base(); | |
| 996 | 996 | // mem16[0x0165B2/2] = 0x4e71; // for now so it boots |
| 997 | 997 | machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x700000, 0x700001, read16_delegate(FUNC(fitfight_state::fitfight_700000_r),this)); |
| 998 | 998 | m_bbprot_kludge = 0; |
| r21033 | r21034 | |
| 1000 | 1000 | |
| 1001 | 1001 | DRIVER_INIT_MEMBER(fitfight_state,histryma) |
| 1002 | 1002 | { |
| 1003 | // UINT16 *mem16 = (UINT16 *)m | |
| 1003 | // UINT16 *mem16 = (UINT16 *)memregion("maincpu")->base(); | |
| 1004 | 1004 | // mem16[0x017FDC/2] = 0x4e71; // for now so it boots |
| 1005 | 1005 | machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x700000, 0x700001, read16_delegate(FUNC(fitfight_state::histryma_700000_r),this)); |
| 1006 | 1006 | m_bbprot_kludge = 0; |
| r21033 | r21034 | |
|---|---|---|
| 102 | 102 | */ |
| 103 | 103 | WRITE8_MEMBER(epos_state::write_prtc) |
| 104 | 104 | { |
| 105 | m | |
| 105 | membank("bank2")->set_entry(data & 0x01); | |
| 106 | 106 | } |
| 107 | 107 | |
| 108 | 108 | static I8255A_INTERFACE( ppi8255_intf ) |
| r21033 | r21034 | |
| 379 | 379 | |
| 380 | 380 | MACHINE_START_MEMBER(epos_state,dealer) |
| 381 | 381 | { |
| 382 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 383 | machine().root_device().membank("bank1")->configure_entries(0, 4, &ROM[0x0000], 0x10000); | |
| 384 | machine().root_device().membank("bank2")->configure_entries(0, 2, &ROM[0x6000], 0x1000); | |
| 382 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 383 | membank("bank1")->configure_entries(0, 4, &ROM[0x0000], 0x10000); | |
| 384 | membank("bank2")->configure_entries(0, 2, &ROM[0x6000], 0x1000); | |
| 385 | 385 | |
| 386 | machine().root_device().membank("bank1")->set_entry(0); | |
| 387 | machine().root_device().membank("bank2")->set_entry(0); | |
| 386 | membank("bank1")->set_entry(0); | |
| 387 | membank("bank2")->set_entry(0); | |
| 388 | 388 | |
| 389 | 389 | MACHINE_START_CALL_MEMBER(epos); |
| 390 | 390 | } |
| r21033 | r21034 | |
| 602 | 602 | |
| 603 | 603 | DRIVER_INIT_MEMBER(epos_state,dealer) |
| 604 | 604 | { |
| 605 | UINT8 *rom = m | |
| 605 | UINT8 *rom = memregion("maincpu")->base(); | |
| 606 | 606 | int A; |
| 607 | 607 | |
| 608 | 608 | /* Key 0 */ |
| r21033 | r21034 | |
|---|---|---|
| 1274 | 1274 | /* BIOS ROM */ |
| 1275 | 1275 | if (address < 0x80000) |
| 1276 | 1276 | { |
| 1277 | direct.explicit_configure(0x00000, 0x7ffff, 0x7ffff, * | |
| 1277 | direct.explicit_configure(0x00000, 0x7ffff, 0x7ffff, *memregion("user1")); | |
| 1278 | 1278 | return ~0; |
| 1279 | 1279 | } |
| 1280 | 1280 | /* RAM */ |
| r21033 | r21034 | |
|---|---|---|
| 522 | 522 | { |
| 523 | 523 | UINT16 *ROM; |
| 524 | 524 | |
| 525 | ROM = (UINT16 *)m | |
| 525 | ROM = (UINT16 *)memregion("maincpu")->base(); | |
| 526 | 526 | |
| 527 | 527 | // to avoid crash during loop at 0x00076e after D4 > 0x80 (reading tiles region out of bounds) |
| 528 | 528 | ROM[0x76c/2] = 0x007f; /* 0x00ff */ |
| r21033 | r21034 | |
| 555 | 555 | { |
| 556 | 556 | UINT16 *ROM; |
| 557 | 557 | |
| 558 | ROM = (UINT16 *)m | |
| 558 | ROM = (UINT16 *)memregion("maincpu")->base(); | |
| 559 | 559 | |
| 560 | 560 | // nop out dbz1's mask rom test |
| 561 | 561 | // tile ROM test |
| r21033 | r21034 | |
| 578 | 578 | { |
| 579 | 579 | UINT16 *ROM; |
| 580 | 580 | |
| 581 | ROM = (UINT16 *)m | |
| 581 | ROM = (UINT16 *)memregion("maincpu")->base(); | |
| 582 | 582 | |
| 583 | 583 | // to avoid crash during loop at 0x000a4a after D4 > 0x80 (reading tiles region out of bounds) |
| 584 | 584 | ROM[0xa48/2] = 0x007f; /* 0x00ff */ |
| r21033 | r21034 | |
|---|---|---|
| 348 | 348 | |
| 349 | 349 | void drw80pkr_state::palette_init() |
| 350 | 350 | { |
| 351 | const UINT8 *color_prom = m | |
| 351 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 352 | 352 | int j; |
| 353 | 353 | |
| 354 | 354 | for (j = 0; j < machine().total_colors(); j++) |
| r21033 | r21034 | |
| 406 | 406 | |
| 407 | 407 | DRIVER_INIT_MEMBER(drw80pkr_state,drw80pkr) |
| 408 | 408 | { |
| 409 | m | |
| 409 | membank("bank1")->configure_entries(0, 2, memregion("maincpu")->base(), 0x1000); | |
| 410 | 410 | } |
| 411 | 411 | |
| 412 | 412 |
| r21033 | r21034 | |
|---|---|---|
| 144 | 144 | { |
| 145 | 145 | machine().device("bbx")->execute().set_input_line(INPUT_LINE_HALT, 1 ); |
| 146 | 146 | |
| 147 | machine().root_device().membank("bank1")->set_entry(0); | |
| 148 | machine().root_device().membank("bank2")->set_entry(0); | |
| 147 | membank("bank1")->set_entry(0); | |
| 148 | membank("bank2")->set_entry(0); | |
| 149 | 149 | } |
| 150 | 150 | |
| 151 | 151 | /***************************************************************************************/ |
| r21033 | r21034 | |
|---|---|---|
| 163 | 163 | |
| 164 | 164 | WRITE8_MEMBER(rastan_state::rastan_bankswitch_w) |
| 165 | 165 | { |
| 166 | m | |
| 166 | membank("bank1")->set_entry(data & 3); | |
| 167 | 167 | } |
| 168 | 168 | |
| 169 | 169 |
| r21033 | r21034 | |
|---|---|---|
| 139 | 139 | |
| 140 | 140 | WRITE8_MEMBER(fastfred_state::imago_sprites_dma_w) |
| 141 | 141 | { |
| 142 | UINT8 *rom = (UINT8 *)m | |
| 142 | UINT8 *rom = (UINT8 *)memregion("gfx2")->base(); | |
| 143 | 143 | UINT8 sprites_data; |
| 144 | 144 | |
| 145 | 145 | sprites_data = rom[m_imago_sprites_address + 0x2000*0 + m_imago_sprites_bank * 0x1000]; |
| r21033 | r21034 | |
|---|---|---|
| 373 | 373 | |
| 374 | 374 | READ8_MEMBER(maxaflex_state::maxaflex_atari_pia_pa_r) |
| 375 | 375 | { |
| 376 | return atari_input_disabled() ? 0xFF : | |
| 376 | return atari_input_disabled() ? 0xFF : ioport("djoy_0_1")->read_safe(0); | |
| 377 | 377 | } |
| 378 | 378 | |
| 379 | 379 | READ8_MEMBER(maxaflex_state::maxaflex_atari_pia_pb_r) |
| 380 | 380 | { |
| 381 | return atari_input_disabled() ? 0xFF : | |
| 381 | return atari_input_disabled() ? 0xFF : ioport("djoy_2_3")->read_safe(0); | |
| 382 | 382 | } |
| 383 | 383 | |
| 384 | 384 | |
| r21033 | r21034 | |
| 508 | 508 | |
| 509 | 509 | DRIVER_INIT_MEMBER(maxaflex_state,a600xl) |
| 510 | 510 | { |
| 511 | UINT8 *rom = m | |
| 511 | UINT8 *rom = memregion("maincpu")->base(); | |
| 512 | 512 | memcpy( rom + 0x5000, rom + 0xd000, 0x800 ); |
| 513 | 513 | } |
| 514 | 514 |
| r21033 | r21034 | |
|---|---|---|
| 341 | 341 | UINT16 *buf, *rom; |
| 342 | 342 | int i; |
| 343 | 343 | |
| 344 | rom_size = m | |
| 344 | rom_size = memregion("maincpu")->bytes(); | |
| 345 | 345 | |
| 346 | 346 | buf = auto_alloc_array(machine(), UINT16, rom_size/2); |
| 347 | 347 | |
| 348 | rom = (UINT16 *)m | |
| 348 | rom = (UINT16 *)memregion("maincpu")->base(); | |
| 349 | 349 | memcpy (buf, rom, rom_size); |
| 350 | 350 | |
| 351 | 351 | for (i=0; i<rom_size/2; i++) |
| r21033 | r21034 | |
| 370 | 370 | UINT8 *buf, *rom; |
| 371 | 371 | int i; |
| 372 | 372 | |
| 373 | rom_size = m | |
| 373 | rom_size = memregion("gfx1")->bytes(); | |
| 374 | 374 | |
| 375 | 375 | buf = auto_alloc_array(machine(), UINT8, rom_size); |
| 376 | 376 | |
| 377 | rom = m | |
| 377 | rom = memregion("gfx1")->base(); | |
| 378 | 378 | memcpy (buf, rom, rom_size); |
| 379 | 379 | |
| 380 | 380 | for (i=0; i<rom_size/4; i++) |
| r21033 | r21034 | |
| 394 | 394 | UINT8 *buf, *rom; |
| 395 | 395 | int i; |
| 396 | 396 | |
| 397 | rom_size = m | |
| 397 | rom_size = memregion("gfx2")->bytes(); | |
| 398 | 398 | |
| 399 | 399 | buf = auto_alloc_array(machine(), UINT8, rom_size); |
| 400 | 400 | |
| 401 | rom = m | |
| 401 | rom = memregion("gfx2")->base(); | |
| 402 | 402 | memcpy (buf, rom, rom_size); |
| 403 | 403 | |
| 404 | 404 | for (i=0; i<rom_size/4; i++) |
| r21033 | r21034 | |
| 419 | 419 | UINT8 *buf, *rom; |
| 420 | 420 | int i; |
| 421 | 421 | |
| 422 | rom_size = m | |
| 422 | rom_size = memregion("oki")->bytes(); | |
| 423 | 423 | |
| 424 | 424 | buf = auto_alloc_array(machine(), UINT8, rom_size); |
| 425 | 425 | |
| 426 | rom = m | |
| 426 | rom = memregion("oki")->base(); | |
| 427 | 427 | memcpy (buf, rom, rom_size); |
| 428 | 428 | |
| 429 | 429 | for (i=0; i<rom_size; i++) |
| r21033 | r21034 | |
| 437 | 437 | |
| 438 | 438 | DRIVER_INIT_MEMBER(pirates_state,pirates) |
| 439 | 439 | { |
| 440 | UINT16 *rom = (UINT16 *)m | |
| 440 | UINT16 *rom = (UINT16 *)memregion("maincpu")->base(); | |
| 441 | 441 | |
| 442 | 442 | pirates_decrypt_68k(); |
| 443 | 443 | pirates_decrypt_p(); |
| r21033 | r21034 | |
|---|---|---|
| 333 | 333 | UINT8 *src, *dst; |
| 334 | 334 | |
| 335 | 335 | m_nandaddressstep = 0; |
| 336 | m_nandregion = m | |
| 336 | m_nandregion = memregion("maincpu"); | |
| 337 | 337 | address_space &as = machine().device("maincpu")->memory().space(AS_PROGRAM); |
| 338 | 338 | dst = (UINT8 *)(as.get_write_ptr(0x0c7f0000)); |
| 339 | 339 | src = m_nandregion->base()+0x10; |
| r21033 | r21034 | |
|---|---|---|
| 224 | 224 | /* patch some strange protection (without this, strange characters appear |
| 225 | 225 | after level 5 and some pieces don't rotate properly some times) */ |
| 226 | 226 | |
| 227 | UINT16 *rom = (UINT16 *)(m | |
| 227 | UINT16 *rom = (UINT16 *)(memregion("maincpu")->base() + 0x1390); | |
| 228 | 228 | |
| 229 | 229 | PATCH(0x4239); PATCH(0x00ff); PATCH(0xe196); /* clr.b $ffe196 */ |
| 230 | 230 | PATCH(0x4239); PATCH(0x00ff); PATCH(0xe197); /* clr.b $ffe197 */ |
| r21033 | r21034 | |
|---|---|---|
| 445 | 445 | addr &= 0xffff; |
| 446 | 446 | addr += (m_bank_data[0] & 1) ? 0x10000 : 0; |
| 447 | 447 | |
| 448 | return (UINT8*)(m | |
| 448 | return (UINT8*)(memregion("user1")->base() + addr + ((m_bank_data[0] >> 1) * 0x20000)); | |
| 449 | 449 | } |
| 450 | 450 | else if (addr >= 0x20000 && addr < 0x40000) |
| 451 | 451 | { |
| r21033 | r21034 | |
| 1037 | 1037 | { |
| 1038 | 1038 | UINT32 offset = ((m_bank_data[0] >> 1) * 0x20000) + ((0x4000 * data) ^ ((m_bank_data[0] & 1) ? 0 : 0x10000)); |
| 1039 | 1039 | |
| 1040 | membank(bank_names[num - 1])->set_base(m | |
| 1040 | membank(bank_names[num - 1])->set_base(memregion("user1")->base() + offset); | |
| 1041 | 1041 | } |
| 1042 | 1042 | else if (data < 0x10) |
| 1043 | 1043 | { |
| r21033 | r21034 | |
| 1148 | 1148 | } |
| 1149 | 1149 | |
| 1150 | 1150 | fdc.offset = (BPT * fdc.track*2) + (fdc.side ? BPT : 0) + (BPS * (fdc.sector-1)) + fdc.byte_pos++; |
| 1151 | val = *(m | |
| 1151 | val = *(memregion("user2")->base() + fdc.offset); | |
| 1152 | 1152 | |
| 1153 | 1153 | /* Move on to next sector? */ |
| 1154 | 1154 | if (fdc.byte_pos == 1024) |
| r21033 | r21034 | |
| 1708 | 1708 | UINT8 *tmp; |
| 1709 | 1709 | |
| 1710 | 1710 | tmp = auto_alloc_array(machine(), UINT8, 0x8000); |
| 1711 | rom = m | |
| 1711 | rom = memregion("audiocpu")->base() + 0x8000; | |
| 1712 | 1712 | memcpy(tmp, rom, 0x8000); |
| 1713 | 1713 | |
| 1714 | 1714 | for (i = 0; i < 0x8000; i++) |
| r21033 | r21034 | |
| 1737 | 1737 | m_bank_data[3] = 0; |
| 1738 | 1738 | |
| 1739 | 1739 | /* Fixed 16kB ROM region */ |
| 1740 | membank("bank4")->set_base(m | |
| 1740 | membank("bank4")->set_base(memregion("user1")->base()); | |
| 1741 | 1741 | |
| 1742 | 1742 | /* TODO: Properly sort out the data ACIA */ |
| 1743 | 1743 | m_data_r = 1; |
| r21033 | r21034 | |
|---|---|---|
| 981 | 981 | |
| 982 | 982 | void peplus_state::palette_init() |
| 983 | 983 | { |
| 984 | const UINT8 *color_prom = m | |
| 984 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 985 | 985 | /* prom bits |
| 986 | 986 | 7654 3210 |
| 987 | 987 | ---- -xxx red component. |
| r21033 | r21034 | |
|---|---|---|
| 1054 | 1054 | { 5,7,3, 0x28 } |
| 1055 | 1055 | }; |
| 1056 | 1056 | address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); |
| 1057 | UINT8 *rom = machine().root_device().memregion("maincpu")->base(); | |
| 1058 | int size = machine().root_device().memregion("maincpu")->bytes(); | |
| 1057 | UINT8 *rom = memregion("maincpu")->base(); | |
| 1058 | int size = memregion("maincpu")->bytes(); | |
| 1059 | 1059 | UINT8 *decrypt = auto_alloc_array(machine(), UINT8, size); |
| 1060 | 1060 | int A; |
| 1061 | 1061 | const UINT8 *tbl; |
| r21033 | r21034 | |
|---|---|---|
| 1312 | 1312 | |
| 1313 | 1313 | #if 0 |
| 1314 | 1314 | static int base = 0x0; |
| 1315 | const UINT8 *gfx = m | |
| 1315 | const UINT8 *gfx = memregion("blitter")->base(); | |
| 1316 | 1316 | int next; |
| 1317 | 1317 | memset(m_ddenlovr_pixmap[0], 0, 512 * 512); |
| 1318 | 1318 | memset(m_ddenlovr_pixmap[1], 0, 512 * 512); |
| r21033 | r21034 | |
| 8784 | 8784 | |
| 8785 | 8785 | MACHINE_START_MEMBER(dynax_state,rongrong) |
| 8786 | 8786 | { |
| 8787 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 8788 | machine().root_device().membank("bank1")->configure_entries(0, 0x20, &ROM[0x010000], 0x8000); | |
| 8789 | machine().root_device().membank("bank2")->configure_entries(0, 8, &ROM[0x110000], 0x1000); | |
| 8787 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 8788 | membank("bank1")->configure_entries(0, 0x20, &ROM[0x010000], 0x8000); | |
| 8789 | membank("bank2")->configure_entries(0, 8, &ROM[0x110000], 0x1000); | |
| 8790 | 8790 | |
| 8791 | 8791 | MACHINE_START_CALL_MEMBER(ddenlovr); |
| 8792 | 8792 | } |
| 8793 | 8793 | |
| 8794 | 8794 | MACHINE_START_MEMBER(dynax_state,mmpanic) |
| 8795 | 8795 | { |
| 8796 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 8797 | machine().root_device().membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x8000); | |
| 8796 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 8797 | membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x8000); | |
| 8798 | 8798 | |
| 8799 | 8799 | MACHINE_START_CALL_MEMBER(ddenlovr); |
| 8800 | 8800 | } |
| 8801 | 8801 | |
| 8802 | 8802 | MACHINE_START_MEMBER(dynax_state,funkyfig) |
| 8803 | 8803 | { |
| 8804 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 8805 | machine().root_device().membank("bank1")->configure_entries(0, 0x10, &ROM[0x10000], 0x8000); | |
| 8806 | machine().root_device().membank("bank2")->configure_entries(0, 8, &ROM[0x90000], 0x1000); | |
| 8804 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 8805 | membank("bank1")->configure_entries(0, 0x10, &ROM[0x10000], 0x8000); | |
| 8806 | membank("bank2")->configure_entries(0, 8, &ROM[0x90000], 0x1000); | |
| 8807 | 8807 | |
| 8808 | 8808 | MACHINE_START_CALL_MEMBER(ddenlovr); |
| 8809 | 8809 | } |
| 8810 | 8810 | |
| 8811 | 8811 | MACHINE_START_MEMBER(dynax_state,hanakanz) |
| 8812 | 8812 | { |
| 8813 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 8814 | machine().root_device().membank("bank1")->configure_entries(0, 0x10, &ROM[0x10000], 0x8000); | |
| 8815 | machine().root_device().membank("bank2")->configure_entries(0, 0x10, &ROM[0x90000], 0x1000); | |
| 8813 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 8814 | membank("bank1")->configure_entries(0, 0x10, &ROM[0x10000], 0x8000); | |
| 8815 | membank("bank2")->configure_entries(0, 0x10, &ROM[0x90000], 0x1000); | |
| 8816 | 8816 | |
| 8817 | 8817 | MACHINE_START_CALL_MEMBER(ddenlovr); |
| 8818 | 8818 | } |
| 8819 | 8819 | |
| 8820 | 8820 | MACHINE_START_MEMBER(dynax_state,mjmyster) |
| 8821 | 8821 | { |
| 8822 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 8823 | machine().root_device().membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x8000); | |
| 8824 | machine().root_device().membank("bank2")->configure_entries(0, 8, &ROM[0x90000], 0x1000); | |
| 8822 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 8823 | membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x8000); | |
| 8824 | membank("bank2")->configure_entries(0, 8, &ROM[0x90000], 0x1000); | |
| 8825 | 8825 | |
| 8826 | 8826 | MACHINE_START_CALL_MEMBER(ddenlovr); |
| 8827 | 8827 | } |
| 8828 | 8828 | |
| 8829 | 8829 | MACHINE_START_MEMBER(dynax_state,hparadis) |
| 8830 | 8830 | { |
| 8831 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 8832 | machine().root_device().membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x8000); | |
| 8833 | machine().root_device().membank("bank2")->configure_entries(0, 8, &ROM[0x50000], 0x1000); | |
| 8831 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 8832 | membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x8000); | |
| 8833 | membank("bank2")->configure_entries(0, 8, &ROM[0x50000], 0x1000); | |
| 8834 | 8834 | |
| 8835 | 8835 | MACHINE_START_CALL_MEMBER(ddenlovr); |
| 8836 | 8836 | } |
| 8837 | 8837 | |
| 8838 | 8838 | MACHINE_START_MEMBER(dynax_state,mjflove) |
| 8839 | 8839 | { |
| 8840 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 8841 | machine().root_device().membank("bank1")->configure_entries(0, 0x10, &ROM[0x10000], 0x8000); | |
| 8842 | machine().root_device().membank("bank2")->configure_entries(0, 8, &ROM[0x90000], 0x1000); | |
| 8840 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 8841 | membank("bank1")->configure_entries(0, 0x10, &ROM[0x10000], 0x8000); | |
| 8842 | membank("bank2")->configure_entries(0, 8, &ROM[0x90000], 0x1000); | |
| 8843 | 8843 | |
| 8844 | 8844 | MACHINE_START_CALL_MEMBER(ddenlovr); |
| 8845 | 8845 | } |
| 8846 | 8846 | |
| 8847 | 8847 | MACHINE_START_MEMBER(dynax_state,sryudens) |
| 8848 | 8848 | { |
| 8849 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 8850 | machine().root_device().membank("bank1")->configure_entries(0, 0x10, &ROM[0x10000], 0x8000); | |
| 8851 | machine().root_device().membank("bank2")->configure_entries(0, 0x10, &ROM[0x90000], 0x1000); | |
| 8849 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 8850 | membank("bank1")->configure_entries(0, 0x10, &ROM[0x10000], 0x8000); | |
| 8851 | membank("bank2")->configure_entries(0, 0x10, &ROM[0x90000], 0x1000); | |
| 8852 | 8852 | |
| 8853 | 8853 | MACHINE_START_CALL_MEMBER(ddenlovr); |
| 8854 | 8854 | } |
| r21033 | r21034 | |
| 9766 | 9766 | |
| 9767 | 9767 | MACHINE_START_MEMBER(dynax_state,seljan2) |
| 9768 | 9768 | { |
| 9769 | UINT8 *ROM = m | |
| 9769 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 9770 | 9770 | |
| 9771 | m | |
| 9771 | membank("bank1")->configure_entries(0x00, 0x10, &ROM[0x10000], 0x8000); | |
| 9772 | 9772 | // banks 10-1f -> palette RAM |
| 9773 | 9773 | for (int i = 0; i < 0x10; i++) |
| 9774 | m | |
| 9774 | membank("bank1")->configure_entries(0x10+i, 1, &ROM[0x90000], 0x8000); | |
| 9775 | 9775 | |
| 9776 | m | |
| 9776 | membank("bank2")->configure_entries(0, 0x10, &ROM[0x98000], 0x1000); | |
| 9777 | 9777 | |
| 9778 | 9778 | MACHINE_START_CALL_MEMBER(ddenlovr); |
| 9779 | 9779 | } |
| r21033 | r21034 | |
|---|---|---|
| 635 | 635 | void kaneko16_state::kaneko16_common_oki_bank_w( const char *bankname, const char* tag, int bank, size_t fixedsize, size_t bankedsize ) |
| 636 | 636 | { |
| 637 | 637 | UINT32 bankaddr; |
| 638 | UINT8* samples = machine().root_device().memregion(tag)->base(); | |
| 639 | size_t length = machine().root_device().memregion(tag)->bytes(); | |
| 638 | UINT8* samples = memregion(tag)->base(); | |
| 639 | size_t length = memregion(tag)->bytes(); | |
| 640 | 640 | |
| 641 | 641 | bankaddr = fixedsize + (bankedsize * bank); |
| 642 | 642 | |
| 643 | 643 | if (bankaddr <= (length-bankedsize)) |
| 644 | 644 | { |
| 645 | m | |
| 645 | membank(bankname)->set_base(samples + bankaddr); | |
| 646 | 646 | } |
| 647 | 647 | } |
| 648 | 648 | |
| r21033 | r21034 | |
| 2157 | 2157 | */ |
| 2158 | 2158 | void kaneko16_state::kaneko16_unscramble_tiles(const char *region) |
| 2159 | 2159 | { |
| 2160 | UINT8 *RAM = machine().root_device().memregion(region)->base(); | |
| 2161 | int size = machine().root_device().memregion(region)->bytes(); | |
| 2160 | UINT8 *RAM = memregion(region)->base(); | |
| 2161 | int size = memregion(region)->bytes(); | |
| 2162 | 2162 | int i; |
| 2163 | 2163 | |
| 2164 | 2164 | if (RAM == NULL) return; |
| r21033 | r21034 | |
| 2183 | 2183 | int bank; |
| 2184 | 2184 | UINT8 *src0; |
| 2185 | 2185 | |
| 2186 | if (m | |
| 2186 | if (memregion(region)->bytes() < 0x40000 * 16) | |
| 2187 | 2187 | fatalerror("gtmr SOUND1 region too small\n"); |
| 2188 | 2188 | |
| 2189 | 2189 | /* bank 0 maps to itself, so we just leave it alone */ |
| 2190 | src0 = m | |
| 2190 | src0 = memregion(region)->base(); | |
| 2191 | 2191 | for (bank = 15; bank > 0; bank--) |
| 2192 | 2192 | { |
| 2193 | 2193 | UINT8 *srcn = src0 + 0x10000 * (bank < 3 ? 3 : bank); |
| r21033 | r21034 | |
|---|---|---|
| 352 | 352 | |
| 353 | 353 | READ32_MEMBER(namcos10_state::range_r) |
| 354 | 354 | { |
| 355 | UINT32 data32 = ((const UINT32 *)(m | |
| 355 | UINT32 data32 = ((const UINT32 *)(memregion("user1")->base()))[offset+bank_base]; | |
| 356 | 356 | |
| 357 | 357 | UINT16 d16; |
| 358 | 358 | if(ACCESSING_BITS_16_31) |
| r21033 | r21034 | |
|---|---|---|
| 316 | 316 | static void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int screen_shift) |
| 317 | 317 | { |
| 318 | 318 | cybertnk_state *state = screen.machine().driver_data<cybertnk_state>(); |
| 319 | const UINT32 *sprrom = (UINT32*)screen.m | |
| 319 | const UINT32 *sprrom = (UINT32*)screen.memregion("spr_gfx")->base(); | |
| 320 | 320 | const pen_t *paldata = screen.machine().pens; |
| 321 | 321 | |
| 322 | 322 | int miny = cliprect.min_y; |
| r21033 | r21034 | |
| 973 | 973 | |
| 974 | 974 | DRIVER_INIT_MEMBER(cybertnk_state,cybertnk) |
| 975 | 975 | { |
| 976 | UINT32 *spr = (UINT32*)m | |
| 976 | UINT32 *spr = (UINT32*)memregion("spr_gfx")->base(); | |
| 977 | 977 | |
| 978 | 978 | for (int x = 0; x< 0x200000/4;x++) |
| 979 | 979 | { |
| r21033 | r21034 | |
|---|---|---|
| 1664 | 1664 | |
| 1665 | 1665 | DRIVER_INIT_MEMBER(gauntlet_state,vindctr2) |
| 1666 | 1666 | { |
| 1667 | UINT8 *gfx2_base = m | |
| 1667 | UINT8 *gfx2_base = memregion("gfx2")->base(); | |
| 1668 | 1668 | UINT8 *data = auto_alloc_array(machine(), UINT8, 0x8000); |
| 1669 | 1669 | int i; |
| 1670 | 1670 |
| r21033 | r21034 | |
|---|---|---|
| 459 | 459 | |
| 460 | 460 | DRIVER_INIT_MEMBER(darkseal_state,darkseal) |
| 461 | 461 | { |
| 462 | UINT8 *RAM = m | |
| 462 | UINT8 *RAM = memregion("maincpu")->base(); | |
| 463 | 463 | int i; |
| 464 | 464 | |
| 465 | 465 | for (i=0x00000; i<0x80000; i++) |
| r21033 | r21034 | |
|---|---|---|
| 901 | 901 | |
| 902 | 902 | DRIVER_INIT_MEMBER(expro02_state,galsnew) |
| 903 | 903 | { |
| 904 | UINT32 *src = (UINT32 *)machine().root_device().memregion("gfx3" )->base(); | |
| 905 | UINT32 *dst = (UINT32 *)machine().root_device().memregion("gfx2" )->base(); | |
| 904 | UINT32 *src = (UINT32 *)memregion("gfx3" )->base(); | |
| 905 | UINT32 *dst = (UINT32 *)memregion("gfx2" )->base(); | |
| 906 | 906 | int x, offset; |
| 907 | 907 | |
| 908 | 908 |
| r21033 | r21034 | |
|---|---|---|
| 109 | 109 | |
| 110 | 110 | INTERRUPT_GEN_MEMBER(redalert_state::redalert_vblank_interrupt) |
| 111 | 111 | { |
| 112 | if( | |
| 112 | if( ioport("COIN")->read() ) | |
| 113 | 113 | /* the service coin as conntected to the CPU's RDY pin as well */ |
| 114 | 114 | device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); |
| 115 | 115 |
| r21033 | r21034 | |
|---|---|---|
| 370 | 370 | void pipeline_state::palette_init() |
| 371 | 371 | { |
| 372 | 372 | int r,g,b,i,c; |
| 373 | UINT8 *prom1 = &machine().root_device().memregion("proms")->base()[0x000]; | |
| 374 | UINT8 *prom2 = &machine().root_device().memregion("proms")->base()[0x100]; | |
| 373 | UINT8 *prom1 = &memregion("proms")->base()[0x000]; | |
| 374 | UINT8 *prom2 = &memregion("proms")->base()[0x100]; | |
| 375 | 375 | |
| 376 | 376 | for(i=0;i<0x100;i++) |
| 377 | 377 | { |
| r21033 | r21034 | |
|---|---|---|
| 467 | 467 | |
| 468 | 468 | DRIVER_INIT_MEMBER(rampart_state,rampart) |
| 469 | 469 | { |
| 470 | UINT8 *rom = m | |
| 470 | UINT8 *rom = memregion("maincpu")->base(); | |
| 471 | 471 | |
| 472 | 472 | memcpy(&rom[0x140000], &rom[0x40000], 0x8000); |
| 473 | 473 | slapstic_configure(*machine().device<cpu_device>("maincpu"), 0x140000, 0x438000, 118); |
| r21033 | r21034 | |
|---|---|---|
| 586 | 586 | |
| 587 | 587 | DRIVER_INIT_MEMBER(gberet_state,mrgoemon) |
| 588 | 588 | { |
| 589 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 590 | machine().root_device().membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x800); | |
| 589 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 590 | membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x800); | |
| 591 | 591 | } |
| 592 | 592 | |
| 593 | 593 |
| r21033 | r21034 | |
|---|---|---|
| 683 | 683 | |
| 684 | 684 | // init rom bank //////////////////////////////////////////////////////////////////// |
| 685 | 685 | { |
| 686 | UINT8 *rom = m | |
| 686 | UINT8 *rom = memregion("maincpu")->base(); | |
| 687 | 687 | |
| 688 | 688 | membank("bank1")->configure_entries(0, 4, &rom[0x0000], 0x02000); |
| 689 | 689 | membank("bank1")->set_entry(m_defaultbank); |
| r21033 | r21034 | |
| 1178 | 1178 | { |
| 1179 | 1179 | // search for the project string to find the title (usually just at ff00) |
| 1180 | 1180 | char title_string[7][32] = { "PROJECT NUMBER", "PROJECT PR", "PROJECT ", "CASH ON THE NILE 2", "PR6121", "CHINA TOWN\x0d\x0a", "PROJECTNUMBER" }; |
| 1181 | UINT8 *src = machine().root_device().memregion( "maincpu" )->base(); | |
| 1182 | int size = machine().root_device().memregion( "maincpu" )->bytes(); | |
| 1181 | UINT8 *src = memregion( "maincpu" )->base(); | |
| 1182 | int size = memregion( "maincpu" )->bytes(); | |
| 1183 | 1183 | |
| 1184 | 1184 | for (int search=0;search<7;search++) |
| 1185 | 1185 | { |
| r21033 | r21034 | |
|---|---|---|
| 1163 | 1163 | MACHINE_START_MEMBER(merit_state,casino5) |
| 1164 | 1164 | { |
| 1165 | 1165 | merit_state::machine_start(); |
| 1166 | machine().root_device().membank("bank1")->configure_entries(0, 2, machine().root_device().memregion("maincpu")->base() + 0x2000, 0x2000); | |
| 1167 | machine().root_device().membank("bank2")->configure_entries(0, 2, machine().root_device().memregion("maincpu")->base() + 0x6000, 0x2000); | |
| 1168 | machine().root_device().membank("bank1")->set_entry(0); | |
| 1169 | machine().root_device().membank("bank2")->set_entry(0); | |
| 1166 | membank("bank1")->configure_entries(0, 2, memregion("maincpu")->base() + 0x2000, 0x2000); | |
| 1167 | membank("bank2")->configure_entries(0, 2, memregion("maincpu")->base() + 0x6000, 0x2000); | |
| 1168 | membank("bank1")->set_entry(0); | |
| 1169 | membank("bank2")->set_entry(0); | |
| 1170 | 1170 | } |
| 1171 | 1171 | |
| 1172 | 1172 | static MACHINE_CONFIG_START( pitboss, merit_state ) |
| r21033 | r21034 | |
| 2024 | 2024 | |
| 2025 | 2025 | DRIVER_INIT_MEMBER(merit_state,couple) |
| 2026 | 2026 | { |
| 2027 | UINT8 *ROM = m | |
| 2027 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 2028 | 2028 | |
| 2029 | 2029 | #if 0 //quick rom compare test |
| 2030 | 2030 | { |
| r21033 | r21034 | |
| 2044 | 2044 | dumpers it's just the way it is,a.k.a. it's an "hardware" banking. |
| 2045 | 2045 | update 20060118 by f205v: now we have 3 dumps from 3 different boards and they |
| 2046 | 2046 | all behave the same...*/ |
| 2047 | m | |
| 2047 | membank("bank1")->set_base(ROM + 0x10000 + (0x2000 * 2)); | |
| 2048 | 2048 | } |
| 2049 | 2049 | |
| 2050 | 2050 | DRIVER_INIT_MEMBER(merit_state,dtrvwz5) |
| r21033 | r21034 | |
|---|---|---|
| 554 | 554 | |
| 555 | 555 | UINT8 mw8080bw_state::tornbase_get_cabinet_type() |
| 556 | 556 | { |
| 557 | return | |
| 557 | return ioport(TORNBASE_CAB_TYPE_PORT_TAG)->read(); | |
| 558 | 558 | } |
| 559 | 559 | |
| 560 | 560 | |
| r21033 | r21034 | |
| 2581 | 2581 | |
| 2582 | 2582 | int mw8080bw_state::invaders_is_cabinet_cocktail() |
| 2583 | 2583 | { |
| 2584 | return | |
| 2584 | return ioport(INVADERS_CAB_TYPE_PORT_TAG)->read(); | |
| 2585 | 2585 | } |
| 2586 | 2586 | |
| 2587 | 2587 | |
| r21033 | r21034 | |
| 2787 | 2787 | #ifdef UNUSED_FUNCTION |
| 2788 | 2788 | UINT32 mw8080bw_state::invad2ct_coin_input_r(void *param) |
| 2789 | 2789 | { |
| 2790 | UINT32 ret = | |
| 2790 | UINT32 ret = ioport(INVAD2CT_COIN_INPUT_PORT_TAG)->read(); | |
| 2791 | 2791 | |
| 2792 | 2792 | coin_counter_w(machine, 0, !ret); |
| 2793 | 2793 |
| r21033 | r21034 | |
|---|---|---|
| 836 | 836 | |
| 837 | 837 | DRIVER_INIT_MEMBER(vaportra_state,vaportra) |
| 838 | 838 | { |
| 839 | UINT8 *RAM = m | |
| 839 | UINT8 *RAM = memregion("maincpu")->base(); | |
| 840 | 840 | int i; |
| 841 | 841 | |
| 842 | 842 | for (i = 0x00000; i < 0x80000; i++) |
| r21033 | r21034 | |
|---|---|---|
| 188 | 188 | |
| 189 | 189 | /* if the ROM expansion module is available, don't do anything. This avoids conflict */ |
| 190 | 190 | /* with bankswitch1_ext_w() in wndrmomo */ |
| 191 | if (m | |
| 191 | if (memregion("user1")->base()) return; | |
| 192 | 192 | |
| 193 | 193 | membank("bank1")->set_base(base + ((data & 0x03) * 0x2000)); |
| 194 | 194 | } |
| r21033 | r21034 | |
| 294 | 294 | WRITE8_MEMBER(namcos86_state::cus115_w) |
| 295 | 295 | { |
| 296 | 296 | /* make sure the expansion board is present */ |
| 297 | if (!m | |
| 297 | if (!memregion("user1")->base()) | |
| 298 | 298 | { |
| 299 | 299 | popmessage("expansion board not present"); |
| 300 | 300 | return; |
| r21033 | r21034 | |
| 324 | 324 | |
| 325 | 325 | void namcos86_state::machine_reset() |
| 326 | 326 | { |
| 327 | UINT8 *base = m | |
| 327 | UINT8 *base = memregion("cpu1")->base() + 0x10000; | |
| 328 | 328 | |
| 329 | m | |
| 329 | membank("bank1")->set_base(base); | |
| 330 | 330 | } |
| 331 | 331 | |
| 332 | 332 | |
| r21033 | r21034 | |
| 1519 | 1519 | UINT8 *buffer; |
| 1520 | 1520 | |
| 1521 | 1521 | /* shuffle tile ROMs so regular gfx unpack routines can be used */ |
| 1522 | gfx = machine().root_device().memregion("gfx1")->base(); | |
| 1523 | size = machine().root_device().memregion("gfx1")->bytes() * 2 / 3; | |
| 1522 | gfx = memregion("gfx1")->base(); | |
| 1523 | size = memregion("gfx1")->bytes() * 2 / 3; | |
| 1524 | 1524 | buffer = auto_alloc_array(machine(), UINT8, size ); |
| 1525 | 1525 | |
| 1526 | 1526 | { |
| r21033 | r21034 | |
| 1544 | 1544 | auto_free( machine(), buffer ); |
| 1545 | 1545 | } |
| 1546 | 1546 | |
| 1547 | gfx = machine().root_device().memregion("gfx2")->base(); | |
| 1548 | size = machine().root_device().memregion("gfx2")->bytes() * 2 / 3; | |
| 1547 | gfx = memregion("gfx2")->base(); | |
| 1548 | size = memregion("gfx2")->bytes() * 2 / 3; | |
| 1549 | 1549 | buffer = auto_alloc_array(machine(), UINT8, size ); |
| 1550 | 1550 | |
| 1551 | 1551 | { |
| r21033 | r21034 | |
|---|---|---|
| 99 | 99 | |
| 100 | 100 | void chanbara_state::palette_init() |
| 101 | 101 | { |
| 102 | const UINT8 *color_prom = m | |
| 102 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 103 | 103 | int i, red, green, blue; |
| 104 | 104 | |
| 105 | 105 | for (i = 0; i < machine().total_colors(); i++) |
| r21033 | r21034 | |
| 462 | 462 | |
| 463 | 463 | DRIVER_INIT_MEMBER(chanbara_state,chanbara) |
| 464 | 464 | { |
| 465 | UINT8 *src = machine().root_device().memregion("gfx4")->base(); | |
| 466 | UINT8 *dst = machine().root_device().memregion("gfx3")->base() + 0x4000; | |
| 467 | UINT8 *bg = machine().root_device().memregion("user1")->base(); | |
| 465 | UINT8 *src = memregion("gfx4")->base(); | |
| 466 | UINT8 *dst = memregion("gfx3")->base() + 0x4000; | |
| 467 | UINT8 *bg = memregion("user1")->base(); | |
| 468 | 468 | |
| 469 | 469 | int i; |
| 470 | 470 | for (i = 0; i < 0x1000; i++) |
| r21033 | r21034 | |
| 475 | 475 | dst[i + 0x2000] = (src[i + 0x1000] & 0x0f) << 4; |
| 476 | 476 | } |
| 477 | 477 | |
| 478 | m | |
| 478 | membank("bank1")->configure_entries(0, 2, &bg[0x0000], 0x4000); | |
| 479 | 479 | } |
| 480 | 480 | |
| 481 | 481 | GAME( 1985, chanbara, 0, chanbara, chanbara, chanbara_state, chanbara, ROT270, "Data East", "Chanbara", GAME_SUPPORTS_SAVE | GAME_NO_COCKTAIL ) |
| r21033 | r21034 | |
|---|---|---|
| 219 | 219 | |
| 220 | 220 | WRITE8_MEMBER(pipedrm_state::sound_bankswitch_w ) |
| 221 | 221 | { |
| 222 | | |
| 222 | membank("bank2")->set_entry(data & 0x01); | |
| 223 | 223 | } |
| 224 | 224 | |
| 225 | 225 |
| r21033 | r21034 | |
|---|---|---|
| 258 | 258 | |
| 259 | 259 | for (t = 0 ; t < 8 ; t ++) |
| 260 | 260 | { |
| 261 | if (!( | |
| 261 | if (!(ioport(keynames[j+p_side])->read() & ( 1 << t ))) | |
| 262 | 262 | { |
| 263 | 263 | return (i + t) | (p_side ? 0x20 : 0x00); |
| 264 | 264 | } |
| r21033 | r21034 | |
|---|---|---|
| 979 | 979 | |
| 980 | 980 | void nova2001_state::lineswap_gfx_roms(const char *region, const int bit) |
| 981 | 981 | { |
| 982 | const int length = m | |
| 982 | const int length = memregion(region)->bytes(); | |
| 983 | 983 | |
| 984 | UINT8* const src = m | |
| 984 | UINT8* const src = memregion(region)->base(); | |
| 985 | 985 | |
| 986 | 986 | UINT8* const temp = auto_alloc_array(machine(), UINT8, length); |
| 987 | 987 |
| r21033 | r21034 | |
|---|---|---|
| 202 | 202 | |
| 203 | 203 | void jantotsu_state::palette_init() |
| 204 | 204 | { |
| 205 | const UINT8 *color_prom = m | |
| 205 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 206 | 206 | int bit0, bit1, bit2, r, g, b; |
| 207 | 207 | int i; |
| 208 | 208 |
| r21033 | r21034 | |
|---|---|---|
| 1039 | 1039 | |
| 1040 | 1040 | DRIVER_INIT_MEMBER(snk68_state,searchar) |
| 1041 | 1041 | { |
| 1042 | m | |
| 1042 | membank("bank1")->set_base(memregion("user1")->base()); | |
| 1043 | 1043 | } |
| 1044 | 1044 | |
| 1045 | 1045 | /******************************************************************************/ |
| r21033 | r21034 | |
|---|---|---|
| 1801 | 1801 | |
| 1802 | 1802 | DEVICE_IMAGE_LOAD_MEMBER( saturn_state, sat_cart ) |
| 1803 | 1803 | { |
| 1804 | UINT8 *ROM = image.device().m | |
| 1804 | UINT8 *ROM = image.device().memregion("maincpu")->base()+0x080000; | |
| 1805 | 1805 | UINT32 length; |
| 1806 | 1806 | |
| 1807 | 1807 | if (image.software_entry() != NULL) |
| r21033 | r21034 | |
|---|---|---|
| 214 | 214 | /* allocate a timer for feeding the autobuffer */ |
| 215 | 215 | m_adsp_autobuffer_timer = machine().device<timer_device>("adsp_timer"); |
| 216 | 216 | |
| 217 | membank("bank1")->configure_entries(0, 256, m | |
| 217 | membank("bank1")->configure_entries(0, 256, memregion("user1")->base(), 0x4000); | |
| 218 | 218 | membank("bank1")->set_entry(0); |
| 219 | 219 | |
| 220 | 220 | /* keep the TMS32031 halted until the code is ready to go */ |
| r21033 | r21034 | |
|---|---|---|
| 737 | 737 | { |
| 738 | 738 | // to avoid the write when the sound chip is initialized |
| 739 | 739 | if (data != 0xff) |
| 740 | m | |
| 740 | membank("audiobank")->set_entry(data & 0x07); | |
| 741 | 741 | } |
| 742 | 742 | |
| 743 | 743 | WRITE8_MEMBER(tnzs_state::kabukiz_sample_w) |
| r21033 | r21034 | |
|---|---|---|
| 602 | 602 | |
| 603 | 603 | DRIVER_INIT_MEMBER(namconb1_state,nebulray) |
| 604 | 604 | { |
| 605 | UINT8 *pMem = (UINT8 *)m | |
| 605 | UINT8 *pMem = (UINT8 *)memregion(NAMCONB1_TILEMASKREGION)->base(); | |
| 606 | 606 | size_t numBytes = (0xfe7-0xe6f)*8; |
| 607 | 607 | memset( &pMem[0xe6f*8], 0, numBytes ); |
| 608 | 608 |
| r21033 | r21034 | |
|---|---|---|
| 336 | 336 | |
| 337 | 337 | |
| 338 | 338 | /* invert gfx PROM since the bits are active LO */ |
| 339 | ROM = machine().root_device().memregion("gfx2")->base(); | |
| 340 | len = machine().root_device().memregion("gfx2")->bytes(); | |
| 339 | ROM = memregion("gfx2")->base(); | |
| 340 | len = memregion("gfx2")->bytes(); | |
| 341 | 341 | for (i = 0;i < len; i++) |
| 342 | 342 | ROM[i] ^= 0x0f; |
| 343 | 343 | } |
| r21033 | r21034 | |
|---|---|---|
| 69 | 69 | |
| 70 | 70 | READ8_MEMBER(mcr68_state::zwackery_port_2_r) |
| 71 | 71 | { |
| 72 | int result = machine().root_device().ioport("IN2")->read(); | |
| 73 | int wheel = machine().root_device().ioport("IN5")->read(); | |
| 72 | int result = ioport("IN2")->read(); | |
| 73 | int wheel = ioport("IN5")->read(); | |
| 74 | 74 | |
| 75 | 75 | return result | ((wheel >> 2) & 0x3e); |
| 76 | 76 | } |
| r21033 | r21034 | |
|---|---|---|
| 114 | 114 | |
| 115 | 115 | READ8_MEMBER(re900_state::re_psg_portA_r) |
| 116 | 116 | { |
| 117 | if (( | |
| 117 | if ((ioport("IN0")->read() & 0x01) == 0) | |
| 118 | 118 | { |
| 119 | 119 | output_set_lamp_value(0,1); // Operator Key ON |
| 120 | 120 | } |
| r21033 | r21034 | |
| 124 | 124 | output_set_lamp_value(0,0); // Operator Key OFF |
| 125 | 125 | } |
| 126 | 126 | |
| 127 | return | |
| 127 | return ioport("IN0")->read(); | |
| 128 | 128 | } |
| 129 | 129 | |
| 130 | 130 | READ8_MEMBER(re900_state::re_psg_portB_r) |
| r21033 | r21034 | |
|---|---|---|
| 433 | 433 | |
| 434 | 434 | DRIVER_INIT_MEMBER(relief_state,relief) |
| 435 | 435 | { |
| 436 | UINT8 *sound_base = m | |
| 436 | UINT8 *sound_base = memregion("oki")->base(); | |
| 437 | 437 | |
| 438 | 438 | /* expand the ADPCM data to avoid lots of memcpy's during gameplay */ |
| 439 | 439 | /* the upper 128k is fixed, the lower 128k is bankswitched */ |
| r21033 | r21034 | |
|---|---|---|
| 32 | 32 | |
| 33 | 33 | // many original barcrest / bwb sets have identification info around here |
| 34 | 34 | // this helps with sorting |
| 35 | UINT8 *src = m | |
| 35 | UINT8 *src = memregion( "maincpu" )->base(); | |
| 36 | 36 | printf("\ncopyright string:\n"); |
| 37 | 37 | for (int i = 0xffe0; i<0xfff0; i++) |
| 38 | 38 | { |
| r21033 | r21034 | |
|---|---|---|
| 1077 | 1077 | |
| 1078 | 1078 | DRIVER_INIT_MEMBER(majorpkr_state,majorpkr) |
| 1079 | 1079 | { |
| 1080 | UINT8 * ROM = (UINT8 *)machine().root_device().memregion("maincpu")->base(); | |
| 1081 | machine().root_device().membank("rom_bank")->configure_entries(0, 4, &ROM[0x10000], 0x800); | |
| 1080 | UINT8 * ROM = (UINT8 *)memregion("maincpu")->base(); | |
| 1081 | membank("rom_bank")->configure_entries(0, 4, &ROM[0x10000], 0x800); | |
| 1082 | 1082 | } |
| 1083 | 1083 | |
| 1084 | 1084 |
| r21033 | r21034 | |
|---|---|---|
| 87 | 87 | |
| 88 | 88 | READ16_MEMBER(twin16_state::extra_rom_r) |
| 89 | 89 | { |
| 90 | return ((UINT16 *)m | |
| 90 | return ((UINT16 *)memregion("gfx3")->base())[offset]; | |
| 91 | 91 | } |
| 92 | 92 | |
| 93 | 93 | READ16_MEMBER(twin16_state::twin16_gfx_rom1_r) |
| r21033 | r21034 | |
|---|---|---|
| 489 | 489 | #if SSHANGHA_HACK |
| 490 | 490 | /* This is a hack to allow you to use the extra features |
| 491 | 491 | of the first "Unused" Dip Switch (see notes above). */ |
| 492 | UINT16 *RAM = (UINT16 *)m | |
| 492 | UINT16 *RAM = (UINT16 *)memregion("maincpu")->base(); | |
| 493 | 493 | RAM[0x000384/2] = 0x4e71; |
| 494 | 494 | RAM[0x000386/2] = 0x4e71; |
| 495 | 495 | RAM[0x000388/2] = 0x4e71; |
| r21033 | r21034 | |
|---|---|---|
| 76 | 76 | |
| 77 | 77 | PALETTE_INIT_MEMBER(mpu4dealem_state,dealem) |
| 78 | 78 | { |
| 79 | const UINT8 *color_prom = m | |
| 79 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 80 | 80 | int i, len; |
| 81 | 81 | static const int resistances_rg[3] = { 1000, 470, 220 }; |
| 82 | 82 | static const int resistances_b [2] = { 470, 220 }; |
| r21033 | r21034 | |
| 87 | 87 | 3, resistances_rg, weights_g, 1000, 0, |
| 88 | 88 | 2, resistances_b, weights_b, 1000, 0); |
| 89 | 89 | |
| 90 | len = m | |
| 90 | len = memregion("proms")->bytes(); | |
| 91 | 91 | for (i = 0; i < len; i++) |
| 92 | 92 | { |
| 93 | 93 | int bit0,bit1,bit2,r,g,b; |
| r21033 | r21034 | |
|---|---|---|
| 376 | 376 | |
| 377 | 377 | MACHINE_RESET_MEMBER(pacman_state,mschamp) |
| 378 | 378 | { |
| 379 | UINT8 *rom = machine().root_device().memregion("maincpu")->base() + 0x10000; | |
| 380 | int whichbank = machine().root_device().ioport("GAME")->read() & 1; | |
| 379 | UINT8 *rom = memregion("maincpu")->base() + 0x10000; | |
| 380 | int whichbank = ioport("GAME")->read() & 1; | |
| 381 | 381 | |
| 382 | machine().root_device().membank("bank1")->configure_entries(0, 2, &rom[0x0000], 0x8000); | |
| 383 | machine().root_device().membank("bank2")->configure_entries(0, 2, &rom[0x4000], 0x8000); | |
| 382 | membank("bank1")->configure_entries(0, 2, &rom[0x0000], 0x8000); | |
| 383 | membank("bank2")->configure_entries(0, 2, &rom[0x4000], 0x8000); | |
| 384 | 384 | |
| 385 | machine().root_device().membank("bank1")->set_entry(whichbank); | |
| 386 | machine().root_device().membank("bank2")->set_entry(whichbank); | |
| 385 | membank("bank1")->set_entry(whichbank); | |
| 386 | membank("bank2")->set_entry(whichbank); | |
| 387 | 387 | } |
| 388 | 388 | |
| 389 | 389 | MACHINE_RESET_MEMBER(pacman_state,superabc) |
| r21033 | r21034 | |
| 5772 | 5772 | { |
| 5773 | 5773 | address_space &space = m_maincpu->space(AS_PROGRAM); |
| 5774 | 5774 | UINT8 *decrypted = auto_alloc_array(machine(), UINT8, 0x4000); |
| 5775 | UINT8 *rom = m | |
| 5775 | UINT8 *rom = memregion("maincpu")->base(); | |
| 5776 | 5776 | |
| 5777 | 5777 | /* patch protection using a copy of the opcodes so ROM checksum */ |
| 5778 | 5778 | /* tests will not fail */ |
| r21033 | r21034 | |
| 5804 | 5804 | { |
| 5805 | 5805 | address_space &space = m_maincpu->space(AS_PROGRAM); |
| 5806 | 5806 | UINT8 *decrypted = auto_alloc_array(machine(), UINT8, 0x4000); |
| 5807 | UINT8 *rom = m | |
| 5807 | UINT8 *rom = memregion("maincpu")->base(); | |
| 5808 | 5808 | |
| 5809 | 5809 | /* patch protection using a copy of the opcodes so ROM checksum */ |
| 5810 | 5810 | /* tests will not fail */ |
| r21033 | r21034 | |
| 5839 | 5839 | |
| 5840 | 5840 | int i, j; |
| 5841 | 5841 | UINT8 *RAM, temp; |
| 5842 | int length = m | |
| 5842 | int length = memregion("gfx1")->bytes()/2; | |
| 5843 | 5843 | |
| 5844 | 5844 | /* Characters */ |
| 5845 | RAM = m | |
| 5845 | RAM = memregion("gfx1")->base(); | |
| 5846 | 5846 | for (i = 0;i < length;i += 0x10) |
| 5847 | 5847 | { |
| 5848 | 5848 | for (j = 0; j < 8; j++) |
| r21033 | r21034 | |
| 5854 | 5854 | } |
| 5855 | 5855 | |
| 5856 | 5856 | /* Sprites */ |
| 5857 | RAM = m | |
| 5857 | RAM = memregion("gfx1")->base()+length; | |
| 5858 | 5858 | for (i = 0;i < length;i += 0x20) |
| 5859 | 5859 | { |
| 5860 | 5860 | for (j = 0; j < 8; j++) |
| r21033 | r21034 | |
| 5892 | 5892 | /* CPU ROMs */ |
| 5893 | 5893 | |
| 5894 | 5894 | /* Data lines D3 and D5 swapped */ |
| 5895 | RAM = m | |
| 5895 | RAM = memregion("maincpu")->base(); | |
| 5896 | 5896 | for (i = 0; i < 0x4000; i++) |
| 5897 | 5897 | { |
| 5898 | 5898 | RAM[i] = BITSWAP8(RAM[i],7,6,3,4,5,2,1,0); |
| r21033 | r21034 | |
| 5902 | 5902 | /* Graphics ROMs */ |
| 5903 | 5903 | |
| 5904 | 5904 | /* Data lines D4 and D6 and address lines A0 and A2 are swapped */ |
| 5905 | RAM = machine().root_device().memregion("gfx1")->base(); | |
| 5906 | len = machine().root_device().memregion("gfx1")->bytes(); | |
| 5905 | RAM = memregion("gfx1")->base(); | |
| 5906 | len = memregion("gfx1")->bytes(); | |
| 5907 | 5907 | for (i = 0;i < len;i += 8) |
| 5908 | 5908 | eyes_decode(&RAM[i]); |
| 5909 | 5909 | } |
| r21033 | r21034 | |
| 5975 | 5975 | /* CPU ROMs */ |
| 5976 | 5976 | |
| 5977 | 5977 | /* Pac-Man code is in low bank */ |
| 5978 | ROM = m | |
| 5978 | ROM = memregion("maincpu")->base(); | |
| 5979 | 5979 | |
| 5980 | 5980 | /* decrypted Ms. Pac-Man code is in high bank */ |
| 5981 | DROM = &m | |
| 5981 | DROM = &memregion("maincpu")->base()[0x10000]; | |
| 5982 | 5982 | |
| 5983 | 5983 | /* copy ROMs into decrypted bank */ |
| 5984 | 5984 | for (i = 0; i < 0x1000; i++) |
| r21033 | r21034 | |
| 6013 | 6013 | } |
| 6014 | 6014 | |
| 6015 | 6015 | /* initialize the banks */ |
| 6016 | machine().root_device().membank("bank1")->configure_entries(0, 2, &ROM[0x00000], 0x10000); | |
| 6017 | machine().root_device().membank("bank1")->set_entry(1); | |
| 6016 | membank("bank1")->configure_entries(0, 2, &ROM[0x00000], 0x10000); | |
| 6017 | membank("bank1")->set_entry(1); | |
| 6018 | 6018 | } |
| 6019 | 6019 | |
| 6020 | 6020 | DRIVER_INIT_MEMBER(pacman_state,woodpek) |
| r21033 | r21034 | |
| 6025 | 6025 | /* Graphics ROMs */ |
| 6026 | 6026 | |
| 6027 | 6027 | /* Data lines D4 and D6 and address lines A0 and A2 are swapped */ |
| 6028 | RAM = machine().root_device().memregion("gfx1")->base(); | |
| 6029 | len = machine().root_device().memregion("gfx1")->bytes(); | |
| 6028 | RAM = memregion("gfx1")->base(); | |
| 6029 | len = memregion("gfx1")->bytes(); | |
| 6030 | 6030 | for (i = 0;i < len;i += 8) |
| 6031 | 6031 | eyes_decode(&RAM[i]); |
| 6032 | 6032 | } |
| r21033 | r21034 | |
| 6043 | 6043 | |
| 6044 | 6044 | DRIVER_INIT_MEMBER(pacman_state,drivfrcp) |
| 6045 | 6045 | { |
| 6046 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 6047 | machine().root_device().membank("bank1")->set_base(&ROM[0 * 0x2000]); | |
| 6048 | machine().root_device().membank("bank2")->set_base(&ROM[1 * 0x2000]); | |
| 6049 | machine().root_device().membank("bank3")->set_base(&ROM[2 * 0x2000]); | |
| 6050 | machine().root_device().membank("bank4")->set_base(&ROM[3 * 0x2000]); | |
| 6046 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 6047 | membank("bank1")->set_base(&ROM[0 * 0x2000]); | |
| 6048 | membank("bank2")->set_base(&ROM[1 * 0x2000]); | |
| 6049 | membank("bank3")->set_base(&ROM[2 * 0x2000]); | |
| 6050 | membank("bank4")->set_base(&ROM[3 * 0x2000]); | |
| 6051 | 6051 | } |
| 6052 | 6052 | |
| 6053 | 6053 | DRIVER_INIT_MEMBER(pacman_state,8bpm) |
| 6054 | 6054 | { |
| 6055 | UINT8 *ROM = m | |
| 6055 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 6056 | 6056 | int i; |
| 6057 | 6057 | |
| 6058 | 6058 | /* Data lines D0 and D6 swapped */ |
| r21033 | r21034 | |
| 6061 | 6061 | ROM[i] = BITSWAP8(ROM[i],7,0,5,4,3,2,1,6); |
| 6062 | 6062 | } |
| 6063 | 6063 | |
| 6064 | machine().root_device().membank("bank1")->set_base(&ROM[0 * 0x2000]); | |
| 6065 | machine().root_device().membank("bank2")->set_base(&ROM[1 * 0x2000]); | |
| 6066 | machine().root_device().membank("bank3")->set_base(&ROM[2 * 0x2000]); | |
| 6067 | machine().root_device().membank("bank4")->set_base(&ROM[3 * 0x2000]); | |
| 6064 | membank("bank1")->set_base(&ROM[0 * 0x2000]); | |
| 6065 | membank("bank2")->set_base(&ROM[1 * 0x2000]); | |
| 6066 | membank("bank3")->set_base(&ROM[2 * 0x2000]); | |
| 6067 | membank("bank4")->set_base(&ROM[3 * 0x2000]); | |
| 6068 | 6068 | } |
| 6069 | 6069 | |
| 6070 | 6070 | DRIVER_INIT_MEMBER(pacman_state,porky) |
| 6071 | 6071 | { |
| 6072 | UINT8 *ROM = m | |
| 6072 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 6073 | 6073 | int i; |
| 6074 | 6074 | |
| 6075 | 6075 | /* Data lines D0 and D4 swapped */ |
| r21033 | r21034 | |
| 6078 | 6078 | ROM[i] = BITSWAP8(ROM[i],7,6,5,0,3,2,1,4); |
| 6079 | 6079 | } |
| 6080 | 6080 | |
| 6081 | machine().root_device().membank("bank1")->configure_entries(0, 2, &ROM[0 * 0x2000], 0x8000); | |
| 6082 | machine().root_device().membank("bank2")->configure_entries(0, 2, &ROM[1 * 0x2000], 0x8000); | |
| 6083 | machine().root_device().membank("bank3")->configure_entries(0, 2, &ROM[2 * 0x2000], 0x8000); | |
| 6084 | machine().root_device().membank("bank4")->configure_entries(0, 2, &ROM[3 * 0x2000], 0x8000); | |
| 6081 | membank("bank1")->configure_entries(0, 2, &ROM[0 * 0x2000], 0x8000); | |
| 6082 | membank("bank2")->configure_entries(0, 2, &ROM[1 * 0x2000], 0x8000); | |
| 6083 | membank("bank3")->configure_entries(0, 2, &ROM[2 * 0x2000], 0x8000); | |
| 6084 | membank("bank4")->configure_entries(0, 2, &ROM[3 * 0x2000], 0x8000); | |
| 6085 | 6085 | |
| 6086 | machine().root_device().membank("bank1")->set_entry(0); | |
| 6087 | machine().root_device().membank("bank2")->set_entry(0); | |
| 6088 | machine().root_device().membank("bank3")->set_entry(0); | |
| 6089 | machine().root_device().membank("bank4")->set_entry(0); | |
| 6086 | membank("bank1")->set_entry(0); | |
| 6087 | membank("bank2")->set_entry(0); | |
| 6088 | membank("bank3")->set_entry(0); | |
| 6089 | membank("bank4")->set_entry(0); | |
| 6090 | 6090 | } |
| 6091 | 6091 | |
| 6092 | 6092 | DRIVER_INIT_MEMBER(pacman_state,rocktrv2) |
| 6093 | 6093 | { |
| 6094 | 6094 | /* hack to pass the rom check for the bad rom */ |
| 6095 | UINT8 *ROM = m | |
| 6095 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 6096 | 6096 | |
| 6097 | 6097 | ROM[0x7ffe] = 0xa7; |
| 6098 | 6098 | ROM[0x7fee] = 0x6d; |
| r21033 | r21034 | |
| 6104 | 6104 | DRIVER_INIT_MEMBER(pacman_state,mspacmbe) |
| 6105 | 6105 | { |
| 6106 | 6106 | UINT8 temp; |
| 6107 | UINT8 *RAM = m | |
| 6107 | UINT8 *RAM = memregion("maincpu")->base(); | |
| 6108 | 6108 | int i; |
| 6109 | 6109 | |
| 6110 | 6110 | /* Address lines A1 and A0 swapped if A2=0 */ |
| r21033 | r21034 | |
| 6134 | 6134 | |
| 6135 | 6135 | DRIVER_INIT_MEMBER(pacman_state,superabc) |
| 6136 | 6136 | { |
| 6137 | UINT8 *src = machine().root_device().memregion("user1")->base(); | |
| 6138 | UINT8 *dest = machine().root_device().memregion("gfx1")->base(); | |
| 6137 | UINT8 *src = memregion("user1")->base(); | |
| 6138 | UINT8 *dest = memregion("gfx1")->base(); | |
| 6139 | 6139 | |
| 6140 | 6140 | // descramble gfx |
| 6141 | 6141 | for (int i = 0; i < 0x10000; i++) |
| r21033 | r21034 | |
|---|---|---|
| 601 | 601 | void igs011_state::wlcc_decrypt() |
| 602 | 602 | { |
| 603 | 603 | int i; |
| 604 | UINT16 *src = (UINT16 *) (m | |
| 604 | UINT16 *src = (UINT16 *) (memregion("maincpu")->base()); | |
| 605 | 605 | |
| 606 | 606 | int rom_size = 0x80000; |
| 607 | 607 | |
| r21033 | r21034 | |
| 625 | 625 | void igs011_state::lhb_decrypt() |
| 626 | 626 | { |
| 627 | 627 | int i; |
| 628 | UINT16 *src = (UINT16 *) (m | |
| 628 | UINT16 *src = (UINT16 *) (memregion("maincpu")->base()); | |
| 629 | 629 | |
| 630 | 630 | int rom_size = 0x80000; |
| 631 | 631 | |
| r21033 | r21034 | |
| 650 | 650 | void igs011_state::drgnwrld_type3_decrypt() |
| 651 | 651 | { |
| 652 | 652 | int i; |
| 653 | UINT16 *src = (UINT16 *) (m | |
| 653 | UINT16 *src = (UINT16 *) (memregion("maincpu")->base()); | |
| 654 | 654 | |
| 655 | 655 | int rom_size = 0x80000; |
| 656 | 656 | |
| r21033 | r21034 | |
| 678 | 678 | void igs011_state::drgnwrld_type2_decrypt() |
| 679 | 679 | { |
| 680 | 680 | int i; |
| 681 | UINT16 *src = (UINT16 *) (m | |
| 681 | UINT16 *src = (UINT16 *) (memregion("maincpu")->base()); | |
| 682 | 682 | |
| 683 | 683 | int rom_size = 0x80000; |
| 684 | 684 | |
| r21033 | r21034 | |
| 711 | 711 | void igs011_state::drgnwrld_type1_decrypt() |
| 712 | 712 | { |
| 713 | 713 | int i; |
| 714 | UINT16 *src = (UINT16 *) (m | |
| 714 | UINT16 *src = (UINT16 *) (memregion("maincpu")->base()); | |
| 715 | 715 | |
| 716 | 716 | int rom_size = 0x80000; |
| 717 | 717 | |
| r21033 | r21034 | |
| 741 | 741 | { |
| 742 | 742 | int i,j; |
| 743 | 743 | int rom_size = 0x80000; |
| 744 | UINT16 *src = (UINT16 *) (m | |
| 744 | UINT16 *src = (UINT16 *) (memregion("maincpu")->base()); | |
| 745 | 745 | UINT16 *result_data = auto_alloc_array(machine(), UINT16, rom_size/2); |
| 746 | 746 | |
| 747 | 747 | for (i=0; i<rom_size/2; i++) |
| r21033 | r21034 | |
| 773 | 773 | { |
| 774 | 774 | int i,j; |
| 775 | 775 | int rom_size = 0x80000; |
| 776 | UINT16 *src = (UINT16 *) (m | |
| 776 | UINT16 *src = (UINT16 *) (memregion("maincpu")->base()); | |
| 777 | 777 | UINT16 *result_data = auto_alloc_array(machine(), UINT16, rom_size/2); |
| 778 | 778 | |
| 779 | 779 | for (i=0; i<rom_size/2; i++) |
| r21033 | r21034 | |
| 811 | 811 | void igs011_state::vbowlj_decrypt() |
| 812 | 812 | { |
| 813 | 813 | int i; |
| 814 | UINT16 *src = (UINT16 *) (m | |
| 814 | UINT16 *src = (UINT16 *) (memregion("maincpu")->base()); | |
| 815 | 815 | |
| 816 | 816 | int rom_size = 0x80000; |
| 817 | 817 | |
| r21033 | r21034 | |
| 845 | 845 | void igs011_state::dbc_decrypt() |
| 846 | 846 | { |
| 847 | 847 | int i; |
| 848 | UINT16 *src = (UINT16 *) (m | |
| 848 | UINT16 *src = (UINT16 *) (memregion("maincpu")->base()); | |
| 849 | 849 | |
| 850 | 850 | int rom_size = 0x80000; |
| 851 | 851 | |
| r21033 | r21034 | |
| 895 | 895 | void igs011_state::ryukobou_decrypt() |
| 896 | 896 | { |
| 897 | 897 | int i; |
| 898 | UINT16 *src = (UINT16 *) m | |
| 898 | UINT16 *src = (UINT16 *) memregion("maincpu")->base(); | |
| 899 | 899 | int rom_size = 0x80000; |
| 900 | 900 | |
| 901 | 901 | for (i=0; i<rom_size/2; i++) |
| r21033 | r21034 | |
| 927 | 927 | { |
| 928 | 928 | int i; |
| 929 | 929 | unsigned rom_size = 0x200000; |
| 930 | UINT8 *src = (UINT8 *) (m | |
| 930 | UINT8 *src = (UINT8 *) (memregion("blitter")->base()); | |
| 931 | 931 | UINT8 *result_data = auto_alloc_array(machine(), UINT8, rom_size); |
| 932 | 932 | |
| 933 | 933 | for (i=0; i<rom_size; i++) |
| r21033 | r21034 | |
| 942 | 942 | { |
| 943 | 943 | int i; |
| 944 | 944 | unsigned rom_size = 0x400000; |
| 945 | UINT8 *src = (UINT8 *) (m | |
| 945 | UINT8 *src = (UINT8 *) (memregion("blitter")->base()); | |
| 946 | 946 | UINT8 *result_data = auto_alloc_array(machine(), UINT8, rom_size); |
| 947 | 947 | |
| 948 | 948 | for (i=0; i<rom_size; i++) |
| r21033 | r21034 | |
| 1909 | 1909 | // V0400O |
| 1910 | 1910 | DRIVER_INIT_MEMBER(igs011_state,drgnwrld) |
| 1911 | 1911 | { |
| 1912 | // UINT16 *rom = (UINT16 *) m | |
| 1912 | // UINT16 *rom = (UINT16 *) memregion("maincpu")->base(); | |
| 1913 | 1913 | |
| 1914 | 1914 | drgnwrld_type1_decrypt(); |
| 1915 | 1915 | drgnwrld_gfx_decrypt(); |
| r21033 | r21034 | |
| 1935 | 1935 | |
| 1936 | 1936 | DRIVER_INIT_MEMBER(igs011_state,drgnwrldv30) |
| 1937 | 1937 | { |
| 1938 | // UINT16 *rom = (UINT16 *) m | |
| 1938 | // UINT16 *rom = (UINT16 *) memregion("maincpu")->base(); | |
| 1939 | 1939 | |
| 1940 | 1940 | drgnwrld_type1_decrypt(); |
| 1941 | 1941 | drgnwrld_gfx_decrypt(); |
| r21033 | r21034 | |
| 1960 | 1960 | |
| 1961 | 1961 | DRIVER_INIT_MEMBER(igs011_state,drgnwrldv21) |
| 1962 | 1962 | { |
| 1963 | // UINT16 *rom = (UINT16 *) m | |
| 1963 | // UINT16 *rom = (UINT16 *) memregion("maincpu")->base(); | |
| 1964 | 1964 | |
| 1965 | 1965 | drgnwrld_type2_decrypt(); |
| 1966 | 1966 | drgnwrld_gfx_decrypt(); |
| r21033 | r21034 | |
| 1989 | 1989 | |
| 1990 | 1990 | DRIVER_INIT_MEMBER(igs011_state,drgnwrldv21j) |
| 1991 | 1991 | { |
| 1992 | // UINT16 *rom = (UINT16 *) m | |
| 1992 | // UINT16 *rom = (UINT16 *) memregion("maincpu")->base(); | |
| 1993 | 1993 | |
| 1994 | 1994 | drgnwrld_type3_decrypt(); |
| 1995 | 1995 | drgnwrld_gfx_decrypt(); |
| r21033 | r21034 | |
| 2016 | 2016 | |
| 2017 | 2017 | DRIVER_INIT_MEMBER(igs011_state,drgnwrldv20j) |
| 2018 | 2018 | { |
| 2019 | // UINT16 *rom = (UINT16 *) m | |
| 2019 | // UINT16 *rom = (UINT16 *) memregion("maincpu")->base(); | |
| 2020 | 2020 | |
| 2021 | 2021 | drgnwrld_type3_decrypt(); |
| 2022 | 2022 | drgnwrld_gfx_decrypt(); |
| r21033 | r21034 | |
| 2054 | 2054 | |
| 2055 | 2055 | DRIVER_INIT_MEMBER(igs011_state,drgnwrldv10c) |
| 2056 | 2056 | { |
| 2057 | // UINT16 *rom = (UINT16 *) m | |
| 2057 | // UINT16 *rom = (UINT16 *) memregion("maincpu")->base(); | |
| 2058 | 2058 | |
| 2059 | 2059 | drgnwrld_type1_decrypt(); |
| 2060 | 2060 | drgnwrld_gfx_decrypt(); |
| r21033 | r21034 | |
| 2080 | 2080 | |
| 2081 | 2081 | DRIVER_INIT_MEMBER(igs011_state,lhb) |
| 2082 | 2082 | { |
| 2083 | // UINT16 *rom = (UINT16 *) m | |
| 2083 | // UINT16 *rom = (UINT16 *) memregion("maincpu")->base(); | |
| 2084 | 2084 | |
| 2085 | 2085 | lhb_decrypt(); |
| 2086 | 2086 | |
| r21033 | r21034 | |
| 2090 | 2090 | |
| 2091 | 2091 | DRIVER_INIT_MEMBER(igs011_state,lhbv33c) |
| 2092 | 2092 | { |
| 2093 | // UINT16 *rom = (UINT16 *) m | |
| 2093 | // UINT16 *rom = (UINT16 *) memregion("maincpu")->base(); | |
| 2094 | 2094 | |
| 2095 | 2095 | lhb_decrypt(); |
| 2096 | 2096 | |
| r21033 | r21034 | |
| 2100 | 2100 | |
| 2101 | 2101 | DRIVER_INIT_MEMBER(igs011_state,dbc) |
| 2102 | 2102 | { |
| 2103 | // UINT16 *rom = (UINT16 *) m | |
| 2103 | // UINT16 *rom = (UINT16 *) memregion("maincpu")->base(); | |
| 2104 | 2104 | |
| 2105 | 2105 | dbc_decrypt(); |
| 2106 | 2106 | |
| r21033 | r21034 | |
| 2130 | 2130 | |
| 2131 | 2131 | DRIVER_INIT_MEMBER(igs011_state,ryukobou) |
| 2132 | 2132 | { |
| 2133 | // UINT16 *rom = (UINT16 *) m | |
| 2133 | // UINT16 *rom = (UINT16 *) memregion("maincpu")->base(); | |
| 2134 | 2134 | |
| 2135 | 2135 | ryukobou_decrypt(); |
| 2136 | 2136 | |
| r21033 | r21034 | |
| 2143 | 2143 | |
| 2144 | 2144 | DRIVER_INIT_MEMBER(igs011_state,xymg) |
| 2145 | 2145 | { |
| 2146 | // UINT16 *rom = (UINT16 *) m | |
| 2146 | // UINT16 *rom = (UINT16 *) memregion("maincpu")->base(); | |
| 2147 | 2147 | |
| 2148 | 2148 | lhb_decrypt(); |
| 2149 | 2149 | /* |
| r21033 | r21034 | |
| 2177 | 2177 | |
| 2178 | 2178 | DRIVER_INIT_MEMBER(igs011_state,wlcc) |
| 2179 | 2179 | { |
| 2180 | // UINT16 *rom = (UINT16 *) m | |
| 2180 | // UINT16 *rom = (UINT16 *) memregion("maincpu")->base(); | |
| 2181 | 2181 | |
| 2182 | 2182 | wlcc_decrypt(); |
| 2183 | 2183 | /* |
| r21033 | r21034 | |
| 2201 | 2201 | |
| 2202 | 2202 | DRIVER_INIT_MEMBER(igs011_state,lhb2) |
| 2203 | 2203 | { |
| 2204 | // UINT16 *rom = (UINT16 *) m | |
| 2204 | // UINT16 *rom = (UINT16 *) memregion("maincpu")->base(); | |
| 2205 | 2205 | |
| 2206 | 2206 | lhb2_decrypt(); |
| 2207 | 2207 | lhb2_decrypt_gfx(); |
| r21033 | r21034 | |
| 2224 | 2224 | |
| 2225 | 2225 | DRIVER_INIT_MEMBER(igs011_state,vbowl) |
| 2226 | 2226 | { |
| 2227 | UINT16 *rom = (UINT16 *) machine().root_device().memregion("maincpu")->base(); | |
| 2228 | UINT8 *gfx = (UINT8 *) machine().root_device().memregion("blitter")->base(); | |
| 2227 | UINT16 *rom = (UINT16 *) memregion("maincpu")->base(); | |
| 2228 | UINT8 *gfx = (UINT8 *) memregion("blitter")->base(); | |
| 2229 | 2229 | int i; |
| 2230 | 2230 | |
| 2231 | 2231 | vbowlj_decrypt(); |
| r21033 | r21034 | |
| 2250 | 2250 | |
| 2251 | 2251 | DRIVER_INIT_MEMBER(igs011_state,vbowlj) |
| 2252 | 2252 | { |
| 2253 | // UINT16 *rom = (UINT16 *) machine().root_device().memregion("maincpu")->base(); | |
| 2254 | UINT8 *gfx = (UINT8 *) machine().root_device().memregion("blitter")->base(); | |
| 2253 | // UINT16 *rom = (UINT16 *) memregion("maincpu")->base(); | |
| 2254 | UINT8 *gfx = (UINT8 *) memregion("blitter")->base(); | |
| 2255 | 2255 | int i; |
| 2256 | 2256 | |
| 2257 | 2257 | vbowlj_decrypt(); |
| r21033 | r21034 | |
| 2273 | 2273 | |
| 2274 | 2274 | DRIVER_INIT_MEMBER(igs011_state,nkishusp) |
| 2275 | 2275 | { |
| 2276 | UINT16 *rom = (UINT16 *) m | |
| 2276 | UINT16 *rom = (UINT16 *) memregion("maincpu")->base(); | |
| 2277 | 2277 | |
| 2278 | 2278 | nkishusp_decrypt(); |
| 2279 | 2279 | lhb2_decrypt_gfx(); |
| r21033 | r21034 | |
|---|---|---|
| 335 | 335 | |
| 336 | 336 | void compgolf_state::compgolf_expand_bg() |
| 337 | 337 | { |
| 338 | UINT8 *GFXDST = machine().root_device().memregion("gfx2")->base(); | |
| 339 | UINT8 *GFXSRC = machine().root_device().memregion("gfx4")->base(); | |
| 338 | UINT8 *GFXDST = memregion("gfx2")->base(); | |
| 339 | UINT8 *GFXSRC = memregion("gfx4")->base(); | |
| 340 | 340 | |
| 341 | 341 | int x; |
| 342 | 342 | |
| r21033 | r21034 | |
| 349 | 349 | |
| 350 | 350 | DRIVER_INIT_MEMBER(compgolf_state,compgolf) |
| 351 | 351 | { |
| 352 | m | |
| 352 | membank("bank1")->configure_entries(0, 2, memregion("user1")->base(), 0x4000); | |
| 353 | 353 | compgolf_expand_bg(); |
| 354 | 354 | } |
| 355 | 355 |
| r21033 | r21034 | |
|---|---|---|
| 87 | 87 | |
| 88 | 88 | MACHINE_RESET_MEMBER(midzeus_state,midzeus) |
| 89 | 89 | { |
| 90 | memcpy(m_ram_base, m | |
| 90 | memcpy(m_ram_base, memregion("user1")->base(), 0x40000*4); | |
| 91 | 91 | *m_ram_base <<= 1; |
| 92 | 92 | machine().device("maincpu")->reset(); |
| 93 | 93 | |
| r21033 | r21034 | |
| 1465 | 1465 | { |
| 1466 | 1466 | dcs2_init(machine(), 0, 0); |
| 1467 | 1467 | midway_ioasic_init(machine(), MIDWAY_IOASIC_STANDARD, 472/* or 476,477,478,110 */, 99, NULL); |
| 1468 | m | |
| 1468 | membank("bank1")->configure_entries(0, 3, memregion("user2")->base(), 0x400000*4); | |
| 1469 | 1469 | machine().device("maincpu")->memory().space(AS_PROGRAM).install_readwrite_handler(0x9b0004, 0x9b0007, read32_delegate(FUNC(midzeus_state::crusnexo_leds_r),this), write32_delegate(FUNC(midzeus_state::crusnexo_leds_w),this)); |
| 1470 | 1470 | machine().device("maincpu")->memory().space(AS_PROGRAM).install_write_handler (0x8d0009, 0x8d000a, write32_delegate(FUNC(midzeus_state::keypad_select_w),this)); |
| 1471 | 1471 | } |
| r21033 | r21034 | |
| 1475 | 1475 | { |
| 1476 | 1476 | dcs2_init(machine(), 0, 0); |
| 1477 | 1477 | midway_ioasic_init(machine(), MIDWAY_IOASIC_STANDARD, 474/* or 491 */, 99, NULL); |
| 1478 | m | |
| 1478 | membank("bank1")->configure_entries(0, 3, memregion("user2")->base(), 0x400000*4); | |
| 1479 | 1479 | } |
| 1480 | 1480 | |
| 1481 | 1481 |
| r21033 | r21034 | |
|---|---|---|
| 671 | 671 | |
| 672 | 672 | DRIVER_INIT_MEMBER(hnayayoi_state,hnfubuki) |
| 673 | 673 | { |
| 674 | UINT8 *rom = machine().root_device().memregion("gfx1")->base(); | |
| 675 | int len = machine().root_device().memregion("gfx1")->bytes(); | |
| 674 | UINT8 *rom = memregion("gfx1")->base(); | |
| 675 | int len = memregion("gfx1")->bytes(); | |
| 676 | 676 | int i, j; |
| 677 | 677 | |
| 678 | 678 | /* interestingly, the blitter data has a slight encryption */ |
| r21033 | r21034 | |
|---|---|---|
| 519 | 519 | |
| 520 | 520 | void amaticmg_state::palette_init() |
| 521 | 521 | { |
| 522 | const UINT8 *color_prom = m | |
| 522 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 523 | 523 | int bit0, bit1, bit2 , r, g, b; |
| 524 | 524 | int i; |
| 525 | 525 | |
| r21033 | r21034 | |
| 546 | 546 | |
| 547 | 547 | PALETTE_INIT_MEMBER(amaticmg_state,amaticmg2) |
| 548 | 548 | { |
| 549 | const UINT8 *color_prom = m | |
| 549 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 550 | 550 | int r, g, b; |
| 551 | 551 | int i; |
| 552 | 552 | |
| 553 | for (i = 0; i < m | |
| 553 | for (i = 0; i < memregion("proms")->bytes(); i+=2) | |
| 554 | 554 | { |
| 555 | 555 | b = ((color_prom[1] & 0xf8) >> 3); |
| 556 | 556 | g = ((color_prom[0] & 0xc0) >> 6) | ((color_prom[1] & 0x7) << 2); |
| r21033 | r21034 | |
| 848 | 848 | |
| 849 | 849 | void amaticmg_state::machine_start() |
| 850 | 850 | { |
| 851 | UINT8 *rombank = m | |
| 851 | UINT8 *rombank = memregion("maincpu")->base(); | |
| 852 | 852 | |
| 853 | m | |
| 853 | membank("bank1")->configure_entries(0, 0x10, &rombank[0x8000], 0x4000); | |
| 854 | 854 | } |
| 855 | 855 | |
| 856 | 856 | void amaticmg_state::machine_reset() |
| r21033 | r21034 | |
| 1081 | 1081 | UINT8 plaintext; |
| 1082 | 1082 | int newaddress; |
| 1083 | 1083 | |
| 1084 | UINT8 *src = machine().root_device().memregion("mainprg")->base(); | |
| 1085 | UINT8 *dest = machine().root_device().memregion("maincpu")->base(); | |
| 1086 | int len = machine().root_device().memregion("mainprg")->bytes(); | |
| 1084 | UINT8 *src = memregion("mainprg")->base(); | |
| 1085 | UINT8 *dest = memregion("maincpu")->base(); | |
| 1086 | int len = memregion("mainprg")->bytes(); | |
| 1087 | 1087 | |
| 1088 | 1088 | for (int i = 0; i < len; i++) |
| 1089 | 1089 | { |
| r21033 | r21034 | |
|---|---|---|
| 1187 | 1187 | INT32 n_ramleft; |
| 1188 | 1188 | |
| 1189 | 1189 | // TODO: the check for going past the end of ram should be in dma.c |
| 1190 | UINT32 m_n_psxramsize = state->m | |
| 1190 | UINT32 m_n_psxramsize = state->memshare("share1")->bytes(); | |
| 1191 | 1191 | |
| 1192 | 1192 | if(state->m_has_tektagt_dma && !state->m_n_dmaoffset) |
| 1193 | 1193 | { |
| r21033 | r21034 | |
| 1208 | 1208 | verboselog( state->machine(), 1, "namcos12_rom_read( %08x, %08x ) game %08x\n", n_address, n_size, n_offset ); |
| 1209 | 1209 | } |
| 1210 | 1210 | |
| 1211 | source = (UINT16 *) state->machine().root_device().memregion( n_region )->base(); | |
| 1212 | n_romleft = ( state->machine().root_device().memregion( n_region )->bytes() - n_offset ) / 4; | |
| 1211 | source = (UINT16 *) state->memregion( n_region )->base(); | |
| 1212 | n_romleft = ( state->memregion( n_region )->bytes() - n_offset ) / 4; | |
| 1213 | 1213 | if( n_size > n_romleft ) |
| 1214 | 1214 | { |
| 1215 | 1215 | verboselog( state->machine(), 1, "namcos12_rom_read dma truncated %d to %d passed end of rom\n", n_size, n_romleft ); |
| r21033 | r21034 | |
| 1604 | 1604 | DRIVER_INIT_CALL(namcos12); |
| 1605 | 1605 | |
| 1606 | 1606 | /* patch out wait for dma 5 to complete */ |
| 1607 | *( (UINT32 *)( m | |
| 1607 | *( (UINT32 *)( memregion( "user1" )->base() + 0x331c4 ) ) = 0; | |
| 1608 | 1608 | |
| 1609 | 1609 | system11gun_install(machine()); |
| 1610 | 1610 | } |
| r21033 | r21034 | |
|---|---|---|
| 84 | 84 | |
| 85 | 85 | void superdq_state::palette_init() |
| 86 | 86 | { |
| 87 | const UINT8 *color_prom = m | |
| 87 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 88 | 88 | int i; |
| 89 | 89 | static const int resistances[3] = { 820, 390, 200 }; |
| 90 | 90 | double rweights[3], gweights[3], bweights[2]; |
| r21033 | r21034 | |
|---|---|---|
| 1549 | 1549 | |
| 1550 | 1550 | ***************************************************************************/ |
| 1551 | 1551 | |
| 1552 | READ8_MEMBER(mappy_state::dipA_l){ return machine().root_device().ioport("DSW1")->read(); } // dips A | |
| 1553 | READ8_MEMBER(mappy_state::dipA_h){ return machine().root_device().ioport("DSW1")->read() >> 4; } // dips A | |
| 1552 | READ8_MEMBER(mappy_state::dipA_l){ return ioport("DSW1")->read(); } // dips A | |
| 1553 | READ8_MEMBER(mappy_state::dipA_h){ return ioport("DSW1")->read() >> 4; } // dips A | |
| 1554 | 1554 | |
| 1555 | 1555 | READ8_MEMBER(mappy_state::dipB_mux)// dips B |
| 1556 | 1556 | { |
| r21033 | r21034 | |
|---|---|---|
| 3442 | 3442 | { |
| 3443 | 3443 | /* Attempt to decrypt the program ROM */ |
| 3444 | 3444 | |
| 3445 | // UINT8 *rom = m | |
| 3445 | // UINT8 *rom = memregion("maincpu")->base(); | |
| 3446 | 3446 | // UINT8 *buffer; |
| 3447 | // int size = 0x2000; //m | |
| 3447 | // int size = 0x2000; //memregion("maincpu")->bytes(); | |
| 3448 | 3448 | // int start = 0; |
| 3449 | 3449 | // int i; |
| 3450 | 3450 | |
| r21033 | r21034 | |
| 3481 | 3481 | /* Just for debugging purposes */ |
| 3482 | 3482 | /* Should be removed soon */ |
| 3483 | 3483 | { |
| 3484 | UINT8 *ROM = m | |
| 3484 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 3485 | 3485 | ROM[0x02f7] = 0xca; |
| 3486 | 3486 | ROM[0x02f8] = 0x18; |
| 3487 | 3487 | ROM[0x206c] = 0xff; |
| r21033 | r21034 | |
| 3491 | 3491 | /* Passing the video PPI handshaking lines */ |
| 3492 | 3492 | /* Just for debugging purposes */ |
| 3493 | 3493 | { |
| 3494 | // UINT8 *ROM = m | |
| 3494 | // UINT8 *ROM = memregion("maincpu")->base(); | |
| 3495 | 3495 | |
| 3496 | 3496 | // ROM[0x073b] = 0x00; |
| 3497 | 3497 | // ROM[0x073c] = 0x00; |
| r21033 | r21034 | |
|---|---|---|
| 364 | 364 | |
| 365 | 365 | void taxidriv_state::palette_init() |
| 366 | 366 | { |
| 367 | const UINT8 *color_prom = m | |
| 367 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 368 | 368 | int bit0, bit1, r, g, b; |
| 369 | 369 | int i; |
| 370 | 370 |
| r21033 | r21034 | |
|---|---|---|
| 221 | 221 | } |
| 222 | 222 | else |
| 223 | 223 | { |
| 224 | return | |
| 224 | return ioport("JOY" )->read() | 0x08; | |
| 225 | 225 | } |
| 226 | 226 | } |
| 227 | 227 |
| r21033 | r21034 | |
|---|---|---|
| 703 | 703 | 023A: 00 nop |
| 704 | 704 | */ |
| 705 | 705 | |
| 706 | UINT8 *ROM = m | |
| 706 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 707 | 707 | |
| 708 | 708 | ROM[0x0238] = 0x00; |
| 709 | 709 | ROM[0x0239] = 0x00; |
| r21033 | r21034 | |
|---|---|---|
| 298 | 298 | |
| 299 | 299 | WRITE8_MEMBER(sigmab52_state::unk_f710_w) |
| 300 | 300 | { |
| 301 | membank("bank1" )->set_base(&m | |
| 301 | membank("bank1" )->set_base(&memregion("maincpu")->base()[0x10000 + ((data&0x80)?0x4000:0x0000)]); | |
| 302 | 302 | } |
| 303 | 303 | |
| 304 | 304 | READ8_MEMBER(sigmab52_state::unk_f721_r) |
| r21033 | r21034 | |
| 546 | 546 | |
| 547 | 547 | void sigmab52_state::machine_start() |
| 548 | 548 | { |
| 549 | m | |
| 549 | membank("bank1")->set_base(&memregion("maincpu")->base()[0x10000 + 0x0000]); | |
| 550 | 550 | |
| 551 | m | |
| 551 | membank("bank2")->set_base(&memregion("maincpu")->base()[0x10000 + 0xf800]); | |
| 552 | 552 | |
| 553 | m | |
| 553 | membank("bank3")->set_base(&memregion("maincpu")->base()[0x10000 + 0x8000]); | |
| 554 | 554 | |
| 555 | 555 | /* |
| 556 | 556 | |
| r21033 | r21034 | |
| 564 | 564 | */ |
| 565 | 565 | |
| 566 | 566 | { |
| 567 | UINT16 *rom = (UINT16*)m | |
| 567 | UINT16 *rom = (UINT16*)memregion("gfx1")->base(); | |
| 568 | 568 | int i; |
| 569 | 569 | |
| 570 | 570 | device_t *hd63484 = machine().device("hd63484"); |
| r21033 | r21034 | |
|---|---|---|
| 1402 | 1402 | |
| 1403 | 1403 | DRIVER_INIT_MEMBER(ampoker2_state,rabbitpk) |
| 1404 | 1404 | { |
| 1405 | UINT8 *rom = machine().root_device().memregion("maincpu")->base(); | |
| 1406 | int size = machine().root_device().memregion("maincpu")->bytes(); | |
| 1405 | UINT8 *rom = memregion("maincpu")->base(); | |
| 1406 | int size = memregion("maincpu")->bytes(); | |
| 1407 | 1407 | int start = 0; |
| 1408 | 1408 | int i; |
| 1409 | 1409 | |
| r21033 | r21034 | |
| 1454 | 1454 | |
| 1455 | 1455 | */ |
| 1456 | 1456 | |
| 1457 | UINT8 *rom = m | |
| 1457 | UINT8 *rom = memregion("maincpu")->base(); | |
| 1458 | 1458 | |
| 1459 | 1459 | /* NOP'ing the mortal jump... */ |
| 1460 | 1460 | rom[0x154b] = 0x00; |
| r21033 | r21034 | |
|---|---|---|
| 292 | 292 | DRIVER_INIT_MEMBER(dynadice_state,dynadice) |
| 293 | 293 | { |
| 294 | 294 | int i, j; |
| 295 | UINT8 *usr1 = machine().root_device().memregion("user1")->base(); | |
| 296 | UINT8 *cpu2 = machine().root_device().memregion("audiocpu")->base(); | |
| 297 | UINT8 *gfx1 = machine().root_device().memregion("gfx1")->base(); | |
| 298 | UINT8 *gfx2 = machine().root_device().memregion("gfx2")->base(); | |
| 295 | UINT8 *usr1 = memregion("user1")->base(); | |
| 296 | UINT8 *cpu2 = memregion("audiocpu")->base(); | |
| 297 | UINT8 *gfx1 = memregion("gfx1")->base(); | |
| 298 | UINT8 *gfx2 = memregion("gfx2")->base(); | |
| 299 | 299 | |
| 300 | 300 | cpu2[0x0b] = 0x23; /* bug in game code Dec HL -> Inc HL*/ |
| 301 | 301 |
| r21033 | r21034 | |
|---|---|---|
| 138 | 138 | |
| 139 | 139 | void mirax_state::palette_init() |
| 140 | 140 | { |
| 141 | const UINT8 *color_prom = m | |
| 141 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 142 | 142 | int i; |
| 143 | 143 | |
| 144 | 144 | for (i = 0;i < machine().total_colors();i++) |
| r21033 | r21034 | |
|---|---|---|
| 191 | 191 | /* only the first part is decrypted (and verified)*/ |
| 192 | 192 | |
| 193 | 193 | address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); |
| 194 | UINT8 *dest = machine().root_device().memregion("maincpu")->base(); | |
| 195 | int len = machine().root_device().memregion("maincpu")->bytes(); | |
| 194 | UINT8 *dest = memregion("maincpu")->base(); | |
| 195 | int len = memregion("maincpu")->bytes(); | |
| 196 | 196 | UINT8 *src = auto_alloc_array(machine(), UINT8, len); |
| 197 | 197 | |
| 198 | 198 | int i,idx=0; |
| r21033 | r21034 | |
|---|---|---|
| 442 | 442 | |
| 443 | 443 | /* set up memory */ |
| 444 | 444 | m_bank1->configure_entry(0, m_chip_ram); |
| 445 | m_bank1->configure_entry(1, m | |
| 445 | m_bank1->configure_entry(1, memregion("user1")->base()); | |
| 446 | 446 | } |
| 447 | 447 | |
| 448 | 448 |
| r21033 | r21034 | |
|---|---|---|
| 1220 | 1220 | |
| 1221 | 1221 | READ16_MEMBER(namcos21_state::winrun_dsp_pointrom_data_r) |
| 1222 | 1222 | { |
| 1223 | UINT16 *ptrom = (UINT16 *)m | |
| 1223 | UINT16 *ptrom = (UINT16 *)memregion("user2")->base(); | |
| 1224 | 1224 | return ptrom[m_winrun_pointrom_addr++]; |
| 1225 | 1225 | } /* winrun_dsp_pointrom_data_r */ |
| 1226 | 1226 | |
| r21033 | r21034 | |
| 1262 | 1262 | |
| 1263 | 1263 | READ16_MEMBER(namcos21_state::gpu_data_r) |
| 1264 | 1264 | { |
| 1265 | const UINT16 *pSrc = (UINT16 *)m | |
| 1265 | const UINT16 *pSrc = (UINT16 *)memregion( "user3" )->base(); | |
| 1266 | 1266 | return pSrc[offset]; |
| 1267 | 1267 | } |
| 1268 | 1268 | |
| r21033 | r21034 | |
| 1280 | 1280 | COMBINE_DATA( &m_winrun_dspbios[offset] ); |
| 1281 | 1281 | if( offset==0xfff ) |
| 1282 | 1282 | { |
| 1283 | UINT16 *mem = (UINT16 *)m | |
| 1283 | UINT16 *mem = (UINT16 *)memregion("dsp")->base(); | |
| 1284 | 1284 | memcpy( mem, m_winrun_dspbios, 0x2000 ); |
| 1285 | 1285 | m_winrun_dsp_alive = 1; |
| 1286 | 1286 | } |
| r21033 | r21034 | |
| 2259 | 2259 | |
| 2260 | 2260 | DRIVER_INIT_MEMBER(namcos21_state,solvalou) |
| 2261 | 2261 | { |
| 2262 | UINT16 *mem = (UINT16 *)m | |
| 2262 | UINT16 *mem = (UINT16 *)memregion("maincpu")->base(); | |
| 2263 | 2263 | mem[0x20ce4/2+1] = 0x0000; // $200128 |
| 2264 | 2264 | mem[0x20cf4/2+0] = 0x4e71; // 2nd ptr_booting |
| 2265 | 2265 | mem[0x20cf4/2+1] = 0x4e71; |
| r21033 | r21034 | |
|---|---|---|
| 141 | 141 | |
| 142 | 142 | WRITE8_MEMBER(macs_state::macs_rom_bank_w) |
| 143 | 143 | { |
| 144 | membank("bank1")->set_base(m | |
| 144 | membank("bank1")->set_base(memregion("maincpu")->base() + (data* 0x4000) + macs_cart_slot*0x400000 ); | |
| 145 | 145 | |
| 146 | 146 | m_st0016_rom_bank=data; |
| 147 | 147 | } |
| r21033 | r21034 | |
| 710 | 710 | macs_ram1[0x1ff9]=0x07; |
| 711 | 711 | #endif |
| 712 | 712 | |
| 713 | membank("bank1")->set_base(m | |
| 713 | membank("bank1")->set_base(memregion("maincpu")->base() ); | |
| 714 | 714 | membank("bank2")->set_base(macs_ram1+0x800); |
| 715 | 715 | membank("bank3")->set_base(macs_ram1+0x10000); |
| 716 | membank("bank4")->set_base(m | |
| 716 | membank("bank4")->set_base(memregion("maincpu")->base() ); | |
| 717 | 717 | } |
| 718 | 718 | |
| 719 | 719 | DRIVER_INIT_MEMBER(macs_state,macs) |
| r21033 | r21034 | |
|---|---|---|
| 85 | 85 | // BIOS |
| 86 | 86 | machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_bank(0x4000, 0x5fff, "bank21" ); |
| 87 | 87 | machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_bank(0x6000, 0x7fff, "bank22" ); |
| 88 | membank("bank21")->set_base(machine().root_device().memregion("maincpu")->base() + 0x4000); | |
| 89 | membank("bank22")->set_base(machine().root_device().memregion("maincpu")->base() + 0x4000 + 0x2000); | |
| 88 | membank("bank21")->set_base(memregion("maincpu")->base() + 0x4000); | |
| 89 | membank("bank22")->set_base(memregion("maincpu")->base() + 0x4000 + 0x2000); | |
| 90 | 90 | break; |
| 91 | 91 | |
| 92 | 92 | case 1: |
| 93 | 93 | // game |
| 94 | 94 | machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_bank(0x4000, 0x5fff, "bank21" ); |
| 95 | 95 | machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_bank(0x6000, 0x7fff, "bank22" ); |
| 96 | membank("bank21")->set_base(machine().root_device().memregion("game")->base() + m_mem_banks[0]*0x2000); | |
| 97 | membank("bank22")->set_base(machine().root_device().memregion("game")->base() + m_mem_banks[1]*0x2000); | |
| 96 | membank("bank21")->set_base(memregion("game")->base() + m_mem_banks[0]*0x2000); | |
| 97 | membank("bank22")->set_base(memregion("game")->base() + m_mem_banks[1]*0x2000); | |
| 98 | 98 | break; |
| 99 | 99 | |
| 100 | 100 | default: |
| r21033 | r21034 | |
| 109 | 109 | // game |
| 110 | 110 | machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_bank(0x8000, 0x9fff, "bank31" ); |
| 111 | 111 | machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_bank(0xa000, 0xbfff, "bank32" ); |
| 112 | membank("bank31")->set_base(machine().root_device().memregion("game")->base() + m_mem_banks[2]*0x2000); | |
| 113 | membank("bank32")->set_base(machine().root_device().memregion("game")->base() + m_mem_banks[3]*0x2000); | |
| 112 | membank("bank31")->set_base(memregion("game")->base() + m_mem_banks[2]*0x2000); | |
| 113 | membank("bank32")->set_base(memregion("game")->base() + m_mem_banks[3]*0x2000); | |
| 114 | 114 | break; |
| 115 | 115 | |
| 116 | 116 | default: |
| r21033 | r21034 | |
| 188 | 188 | |
| 189 | 189 | READ8_MEMBER(pengadvb_state::pengadvb_psg_port_a_r) |
| 190 | 190 | { |
| 191 | return | |
| 191 | return ioport("IN0")->read(); | |
| 192 | 192 | } |
| 193 | 193 | |
| 194 | 194 | static const ay8910_interface pengadvb_ay8910_interface = |
| r21033 | r21034 | |
| 219 | 219 | { |
| 220 | 220 | i8255_device *ppi = machine().device<i8255_device>("ppi8255"); |
| 221 | 221 | if ((ppi->read(space, 2) & 0x0f) == 0) |
| 222 | return | |
| 222 | return ioport("IN1")->read(); | |
| 223 | 223 | |
| 224 | 224 | return 0xff; |
| 225 | 225 | } |
| r21033 | r21034 | |
| 290 | 290 | |
| 291 | 291 | void pengadvb_state::pengadvb_decrypt(const char* region) |
| 292 | 292 | { |
| 293 | UINT8 *mem = machine().root_device().memregion(region)->base(); | |
| 294 | int memsize = machine().root_device().memregion(region)->bytes(); | |
| 293 | UINT8 *mem = memregion(region)->base(); | |
| 294 | int memsize = memregion(region)->bytes(); | |
| 295 | 295 | UINT8 *buf; |
| 296 | 296 | int i; |
| 297 | 297 |
| r21033 | r21034 | |
|---|---|---|
| 638 | 638 | |
| 639 | 639 | DRIVER_INIT_MEMBER(_1943_state,1943) |
| 640 | 640 | { |
| 641 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 642 | machine().root_device().membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000); | |
| 641 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 642 | membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000); | |
| 643 | 643 | } |
| 644 | 644 | |
| 645 | 645 | READ8_MEMBER(_1943_state::_1943b_c007_r){ return 0; } |
| r21033 | r21034 | |
|---|---|---|
| 283 | 283 | { |
| 284 | 284 | UINT8 p1_sht_sw,p2_sht_sw; |
| 285 | 285 | |
| 286 | p1_sht_sw = (machine().root_device().ioport("P1_RELEASE")->read() & 0x80)>>7; | |
| 287 | p2_sht_sw = (machine().root_device().ioport("P2_RELEASE")->read() & 0x80)>>6; | |
| 286 | p1_sht_sw = (ioport("P1_RELEASE")->read() & 0x80)>>7; | |
| 287 | p2_sht_sw = (ioport("P2_RELEASE")->read() & 0x80)>>6; | |
| 288 | 288 | |
| 289 | 289 | return p1_sht_sw | p2_sht_sw; |
| 290 | 290 | } |
| 291 | 291 | |
| 292 | 292 | READ8_MEMBER(suprgolf_state::p1_r) |
| 293 | 293 | { |
| 294 | return ( | |
| 294 | return (ioport("P1")->read() & 0xf0) | ((ioport("P1_ANALOG")->read() & 0xf)); | |
| 295 | 295 | } |
| 296 | 296 | |
| 297 | 297 | READ8_MEMBER(suprgolf_state::p2_r) |
| 298 | 298 | { |
| 299 | return ( | |
| 299 | return (ioport("P2")->read() & 0xf0) | ((ioport("P2_ANALOG")->read() & 0xf)); | |
| 300 | 300 | } |
| 301 | 301 | |
| 302 | 302 | static ADDRESS_MAP_START( suprgolf_map, AS_PROGRAM, 8, suprgolf_state ) |
| r21033 | r21034 | |
| 632 | 632 | |
| 633 | 633 | DRIVER_INIT_MEMBER(suprgolf_state,suprgolf) |
| 634 | 634 | { |
| 635 | UINT8 *ROM = m | |
| 635 | UINT8 *ROM = memregion("user2")->base(); | |
| 636 | 636 | |
| 637 | 637 | ROM[0x74f4-0x4000] = 0x00; |
| 638 | 638 | ROM[0x74f5-0x4000] = 0x00; |
| r21033 | r21034 | |
|---|---|---|
| 448 | 448 | static const char *const gunnames[] = { "GUNX1", "GUNY1", "GUNX2", "GUNY2" }; |
| 449 | 449 | |
| 450 | 450 | eeprom_device *eeprom = downcast<eeprom_device *>(device); |
| 451 | return (((m_gdfs_lightgun_select & 1) ? 0 : 0xff) ^ | |
| 451 | return (((m_gdfs_lightgun_select & 1) ? 0 : 0xff) ^ ioport(gunnames[m_gdfs_lightgun_select])->read()) | (eeprom->read_bit() << 8); | |
| 452 | 452 | } |
| 453 | 453 | |
| 454 | 454 | WRITE16_MEMBER(ssv_state::gdfs_eeprom_w) |
| r21033 | r21034 | |
| 2531 | 2531 | // massages the data from the BPMicro-compatible dump to runnable form |
| 2532 | 2532 | void ssv_state::init_st010() |
| 2533 | 2533 | { |
| 2534 | UINT8 *dspsrc = (UINT8 *)machine().root_device().memregion("st010")->base(); | |
| 2535 | UINT32 *dspprg = (UINT32 *)machine().root_device().memregion("dspprg")->base(); | |
| 2536 | UINT16 *dspdata = (UINT16 *)machine().root_device().memregion("dspdata")->base(); | |
| 2534 | UINT8 *dspsrc = (UINT8 *)memregion("st010")->base(); | |
| 2535 | UINT32 *dspprg = (UINT32 *)memregion("dspprg")->base(); | |
| 2536 | UINT16 *dspdata = (UINT16 *)memregion("dspdata")->base(); | |
| 2537 | 2537 | |
| 2538 | 2538 | // copy DSP program |
| 2539 | 2539 | for (int i = 0; i < 0x10000; i+= 4) |
| r21033 | r21034 | |
| 2560 | 2560 | DRIVER_INIT_MEMBER(ssv_state,mslider) { init_ssv(0); } |
| 2561 | 2561 | DRIVER_INIT_MEMBER(ssv_state,ryorioh) { init_ssv(0); } |
| 2562 | 2562 | DRIVER_INIT_MEMBER(ssv_state,srmp4) { init_ssv(0); |
| 2563 | // ((UINT16 *)m | |
| 2563 | // ((UINT16 *)memregion("user1")->base())[0x2b38/2] = 0x037a; /* patch to see gal test mode */ | |
| 2564 | 2564 | } |
| 2565 | 2565 | DRIVER_INIT_MEMBER(ssv_state,srmp7) { init_ssv(0); } |
| 2566 | 2566 | DRIVER_INIT_MEMBER(ssv_state,stmblade) { init_ssv(0); init_st010(); } |
| r21033 | r21034 | |
|---|---|---|
| 133 | 133 | case 0xb000: |
| 134 | 134 | case 0xc000: |
| 135 | 135 | case 0xd000: |
| 136 | membank("bank1")->set_base(m | |
| 136 | membank("bank1")->set_base(memregion("user2")->base() + 0x400 * (bank - 0x8000)); break; | |
| 137 | 137 | } |
| 138 | 138 | } |
| 139 | 139 | } |
| r21033 | r21034 | |
|---|---|---|
| 422 | 422 | |
| 423 | 423 | DRIVER_INIT_MEMBER(toaplan2_state,fixeightbl) |
| 424 | 424 | { |
| 425 | UINT8 *ROM = m | |
| 425 | UINT8 *ROM = memregion("oki")->base(); | |
| 426 | 426 | |
| 427 | m | |
| 427 | membank("bank1")->configure_entries(0, 5, &ROM[0x30000], 0x10000); | |
| 428 | 428 | } |
| 429 | 429 | |
| 430 | 430 | |
| r21033 | r21034 | |
| 436 | 436 | |
| 437 | 437 | DRIVER_INIT_MEMBER(toaplan2_state,pipibibsbl) |
| 438 | 438 | { |
| 439 | UINT16 *ROM = (UINT16 *)(m | |
| 439 | UINT16 *ROM = (UINT16 *)(memregion("maincpu")->base()); | |
| 440 | 440 | |
| 441 | 441 | for (int i = 0; i < (0x040000/2); i += 4) |
| 442 | 442 | { |
| r21033 | r21034 | |
| 450 | 450 | |
| 451 | 451 | DRIVER_INIT_MEMBER(toaplan2_state,bgaregga) |
| 452 | 452 | { |
| 453 | UINT8 *Z80 = m | |
| 453 | UINT8 *Z80 = memregion("audiocpu")->base(); | |
| 454 | 454 | |
| 455 | 455 | // seems to only use banks 0x0a to 0x0f |
| 456 | m | |
| 456 | membank("bank1")->configure_entries(8, 8, Z80, 0x4000); | |
| 457 | 457 | } |
| 458 | 458 | |
| 459 | 459 |
| r21033 | r21034 | |
|---|---|---|
| 423 | 423 | /* Untangle the graphics: cut each 32x32x8 tile in 16 8x8x8 tiles */ |
| 424 | 424 | DRIVER_INIT_MEMBER(skyfox_state,skyfox) |
| 425 | 425 | { |
| 426 | UINT8 *RAM = machine().root_device().memregion("gfx1")->base(); | |
| 427 | UINT8 *end = RAM + machine().root_device().memregion("gfx1")->bytes(); | |
| 426 | UINT8 *RAM = memregion("gfx1")->base(); | |
| 427 | UINT8 *end = RAM + memregion("gfx1")->bytes(); | |
| 428 | 428 | UINT8 buf[32 * 32]; |
| 429 | 429 | |
| 430 | 430 | while (RAM < end) |
| r21033 | r21034 | |
|---|---|---|
| 412 | 412 | |
| 413 | 413 | DRIVER_INIT_MEMBER(jailbrek_state,jailbrek) |
| 414 | 414 | { |
| 415 | UINT8 *SPEECH_ROM = m | |
| 415 | UINT8 *SPEECH_ROM = memregion("vlm")->base(); | |
| 416 | 416 | int ind; |
| 417 | 417 | |
| 418 | 418 | /* |
| r21033 | r21034 | |
| 424 | 424 | represents address line A13.) |
| 425 | 425 | */ |
| 426 | 426 | |
| 427 | if (m | |
| 427 | if (memregion("vlm")->bytes() == 0x4000) | |
| 428 | 428 | { |
| 429 | 429 | for (ind = 0; ind < 0x2000; ++ind) |
| 430 | 430 | { |
| r21033 | r21034 | |
|---|---|---|
| 1291 | 1291 | { |
| 1292 | 1292 | const char *region = "gfx1"; // sprites |
| 1293 | 1293 | |
| 1294 | const UINT32 len = machine().root_device().memregion(region)->bytes(); | |
| 1295 | UINT8 *src = machine().root_device().memregion(region)->base() + len / 2 - 1; | |
| 1296 | UINT8 *dst = machine().root_device().memregion(region)->base() + len - 1; | |
| 1294 | const UINT32 len = memregion(region)->bytes(); | |
| 1295 | UINT8 *src = memregion(region)->base() + len / 2 - 1; | |
| 1296 | UINT8 *dst = memregion(region)->base() + len - 1; | |
| 1297 | 1297 | |
| 1298 | 1298 | while(dst > src) |
| 1299 | 1299 | { |
| r21033 | r21034 | |
| 1343 | 1343 | RAM[i] = BITSWAP8(RAM[i],7,0,1,2,3,4,5,6); |
| 1344 | 1344 | } |
| 1345 | 1345 | |
| 1346 | bitswap(m | |
| 1346 | bitswap(memregion("gfx1")->base(), memregion("gfx1")->bytes(), | |
| 1347 | 1347 | 0,1,20,19,18,17,14,9,16,6,4,7,8,15,10,11,13,5,12,3,2); |
| 1348 | 1348 | |
| 1349 | 1349 | /* Now we can unpack each nibble of the sprites into a pixel (one byte) */ |
| 1350 | 1350 | wecleman_unpack_sprites(); |
| 1351 | 1351 | |
| 1352 | 1352 | /* Bg & Fg & Txt */ |
| 1353 | bitswap(m | |
| 1353 | bitswap(memregion("gfx2")->base(), memregion("gfx2")->bytes(), | |
| 1354 | 1354 | 20,19,18,17,16,15,12,7,14,4,2,5,6,13,8,9,11,3,10,1,0); |
| 1355 | 1355 | |
| 1356 | 1356 | /* Road */ |
| 1357 | bitswap(m | |
| 1357 | bitswap(memregion("gfx3")->base(), memregion("gfx3")->bytes(), | |
| 1358 | 1358 | 20,19,18,17,16,15,14,7,12,4,2,5,6,13,8,9,11,3,10,1,0); |
| 1359 | 1359 | |
| 1360 | 1360 | m_spr_color_offs = 0x40; |
| r21033 | r21034 | |
| 1419 | 1419 | UINT8 *base, *temp; |
| 1420 | 1420 | int i; |
| 1421 | 1421 | |
| 1422 | base = m | |
| 1422 | base = memregion("gfx1")->base(); // sprites | |
| 1423 | 1423 | temp = auto_alloc_array(machine(), UINT8, bank_size ); |
| 1424 | 1424 | |
| 1425 | 1425 | for( i = num16_banks; i >0; i-- ){ |
| r21033 | r21034 | |
|---|---|---|
| 473 | 473 | |
| 474 | 474 | MACHINE_START_MEMBER(lastduel_state,madgear) |
| 475 | 475 | { |
| 476 | UINT8 *ROM = m | |
| 476 | UINT8 *ROM = memregion("audiocpu")->base(); | |
| 477 | 477 | |
| 478 | m | |
| 478 | membank("bank1")->configure_entries(0, 2, &ROM[0x10000], 0x4000); | |
| 479 | 479 | |
| 480 | 480 | MACHINE_START_CALL_MEMBER(lastduel); |
| 481 | 481 | } |
| r21033 | r21034 | |
|---|---|---|
| 2745 | 2745 | #if 0 |
| 2746 | 2746 | void taitob_state::ryujin_patch(void) |
| 2747 | 2747 | { |
| 2748 | UINT16 *rom = (UINT16*)m | |
| 2748 | UINT16 *rom = (UINT16*)memregion("maincpu")->base(); | |
| 2749 | 2749 | rom[ 0x62/2 ] = 1; |
| 2750 | 2750 | //0 (already in rom) - Taito Corporation 1993 |
| 2751 | 2751 | //1 - Taito America corp with blue FBI logo |
| r21033 | r21034 | |
| 2798 | 2798 | #if 0 |
| 2799 | 2799 | void taitob_state::sbm_patch(void) |
| 2800 | 2800 | { |
| 2801 | UINT16 *rom = (UINT16*)m | |
| 2801 | UINT16 *rom = (UINT16*)memregion("maincpu")->base(); | |
| 2802 | 2802 | rom[ 0x7ffff/2 ] = 2; //US version |
| 2803 | 2803 | } |
| 2804 | 2804 | #endif |
| r21033 | r21034 | |
| 3652 | 3652 | |
| 3653 | 3653 | DRIVER_INIT_MEMBER(taitob_state,taito_b) |
| 3654 | 3654 | { |
| 3655 | m | |
| 3655 | membank("bank1")->configure_entries(0, 4, memregion("audiocpu")->base() + 0x10000, 0x4000); | |
| 3656 | 3656 | } |
| 3657 | 3657 | |
| 3658 | 3658 | GAME( 1989, masterw, 0, masterw, masterw, taitob_state, taito_b, ROT270, "Taito Corporation Japan", "Master of Weapon (World)", GAME_SUPPORTS_SAVE ) |
| r21033 | r21034 | |
|---|---|---|
| 1783 | 1783 | */ |
| 1784 | 1784 | void cischeat_state::cischeat_untangle_sprites(const char *region) |
| 1785 | 1785 | { |
| 1786 | UINT8 *src = machine().root_device().memregion(region)->base(); | |
| 1787 | const UINT8 *end = src + machine().root_device().memregion(region)->bytes(); | |
| 1786 | UINT8 *src = memregion(region)->base(); | |
| 1787 | const UINT8 *end = src + memregion(region)->bytes(); | |
| 1788 | 1788 | |
| 1789 | 1789 | while (src < end) |
| 1790 | 1790 | { |
| r21033 | r21034 | |
|---|---|---|
| 611 | 611 | |
| 612 | 612 | MACHINE_START_MEMBER(freekick_state,pbillrd) |
| 613 | 613 | { |
| 614 | m | |
| 614 | membank("bank1")->configure_entries(0, 2, memregion("maincpu")->base() + 0x10000, 0x4000); | |
| 615 | 615 | |
| 616 | 616 | MACHINE_START_CALL_MEMBER(freekick); |
| 617 | 617 | } |
| r21033 | r21034 | |
| 1136 | 1136 | DRIVER_INIT_MEMBER(freekick_state,gigasb) |
| 1137 | 1137 | { |
| 1138 | 1138 | address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); |
| 1139 | space.set_decrypted_region(0x0000, 0xbfff, m | |
| 1139 | space.set_decrypted_region(0x0000, 0xbfff, memregion("maincpu")->base() + 0x10000); | |
| 1140 | 1140 | } |
| 1141 | 1141 | |
| 1142 | 1142 |
| r21033 | r21034 | |
|---|---|---|
| 536 | 536 | DRIVER_INIT_MEMBER(ladybug_state,redclash) |
| 537 | 537 | { |
| 538 | 538 | int i,j; |
| 539 | const UINT8 *src = machine().root_device().memregion("gfx2")->base(); | |
| 540 | UINT8 *dst = machine().root_device().memregion("gfx3")->base(); | |
| 541 | int len = machine().root_device().memregion("gfx3")->bytes(); | |
| 539 | const UINT8 *src = memregion("gfx2")->base(); | |
| 540 | UINT8 *dst = memregion("gfx3")->base(); | |
| 541 | int len = memregion("gfx3")->bytes(); | |
| 542 | 542 | |
| 543 | 543 | /* rearrange the sprite graphics */ |
| 544 | 544 | for (i = 0;i < len;i++) |
| r21033 | r21034 | |
|---|---|---|
| 1611 | 1611 | |
| 1612 | 1612 | DRIVER_INIT_MEMBER(hng64_state,hng64_reorder_gfx) |
| 1613 | 1613 | { |
| 1614 | hng64_reorder(machine(), m | |
| 1614 | hng64_reorder(machine(), memregion("scrtile")->base(), memregion("scrtile")->bytes()); | |
| 1615 | 1615 | } |
| 1616 | 1616 | |
| 1617 | 1617 | #define HACK_REGION |
| r21033 | r21034 | |
|---|---|---|
| 524 | 524 | |
| 525 | 525 | /* if we're to read the dipswitches behind the trackball data, do it now */ |
| 526 | 526 | if (m_dsw_select) |
| 527 | return ( | |
| 527 | return (ioport(portnames[switch_port])->read() & 0x7f) | m_sign[idx]; | |
| 528 | 528 | |
| 529 | 529 | /* get the new position and adjust the result */ |
| 530 | newpos = | |
| 530 | newpos = ioport(tracknames[idx])->read(); | |
| 531 | 531 | if (newpos != m_oldpos[idx]) |
| 532 | 532 | { |
| 533 | 533 | m_sign[idx] = (newpos - m_oldpos[idx]) & 0x80; |
| r21033 | r21034 | |
| 535 | 535 | } |
| 536 | 536 | |
| 537 | 537 | /* blend with the bits from the switch port */ |
| 538 | return ( | |
| 538 | return (ioport(portnames[switch_port])->read() & 0x70) | (m_oldpos[idx] & 0x0f) | m_sign[idx]; | |
| 539 | 539 | } |
| 540 | 540 | |
| 541 | 541 | |
| r21033 | r21034 | |
| 2179 | 2179 | |
| 2180 | 2180 | DRIVER_INIT_MEMBER(centiped_state,multiped) |
| 2181 | 2181 | { |
| 2182 | UINT8 *src = machine().root_device().memregion("user1")->base(); | |
| 2183 | UINT8 *dest = machine().root_device().memregion("maincpu")->base(); | |
| 2182 | UINT8 *src = memregion("user1")->base(); | |
| 2183 | UINT8 *dest = memregion("maincpu")->base(); | |
| 2184 | 2184 | |
| 2185 | 2185 | // descramble rom and put in maincpu region |
| 2186 | 2186 | for (int i = 0; i < 0x10000; i++) |
| r21033 | r21034 | |
|---|---|---|
| 136 | 136 | |
| 137 | 137 | void shougi_state::palette_init() |
| 138 | 138 | { |
| 139 | const UINT8 *color_prom = m | |
| 139 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 140 | 140 | int i; |
| 141 | 141 | static const int resistances_b[2] = { 470, 220 }; |
| 142 | 142 | static const int resistances_rg[3] = { 1000, 470, 220 }; |
| r21033 | r21034 | |
|---|---|---|
| 907 | 907 | |
| 908 | 908 | void hornet_state::machine_reset() |
| 909 | 909 | { |
| 910 | UINT8 *usr3 = machine().root_device().memregion("user3")->base(); | |
| 911 | UINT8 *usr5 = machine().root_device().memregion("user5")->base(); | |
| 910 | UINT8 *usr3 = memregion("user3")->base(); | |
| 911 | UINT8 *usr5 = memregion("user5")->base(); | |
| 912 | 912 | if (usr3 != NULL) |
| 913 | 913 | { |
| 914 | machine().root_device().membank("bank1")->configure_entries(0, machine().root_device().memregion("user3")->bytes() / 0x10000, usr3, 0x10000); | |
| 915 | machine().root_device().membank("bank1")->set_entry(0); | |
| 914 | membank("bank1")->configure_entries(0, memregion("user3")->bytes() / 0x10000, usr3, 0x10000); | |
| 915 | membank("bank1")->set_entry(0); | |
| 916 | 916 | } |
| 917 | 917 | |
| 918 | 918 | machine().device("dsp")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE); |
| 919 | 919 | |
| 920 | 920 | if (usr5) |
| 921 | m | |
| 921 | membank("bank5")->set_base(usr5); | |
| 922 | 922 | } |
| 923 | 923 | |
| 924 | 924 | static double adc12138_input_callback( device_t *device, UINT8 input ) |
| r21033 | r21034 | |
| 1042 | 1042 | |
| 1043 | 1043 | MACHINE_RESET_MEMBER(hornet_state,hornet_2board) |
| 1044 | 1044 | { |
| 1045 | UINT8 *usr3 = machine().root_device().memregion("user3")->base(); | |
| 1046 | UINT8 *usr5 = machine().root_device().memregion("user5")->base(); | |
| 1045 | UINT8 *usr3 = memregion("user3")->base(); | |
| 1046 | UINT8 *usr5 = memregion("user5")->base(); | |
| 1047 | 1047 | |
| 1048 | 1048 | if (usr3 != NULL) |
| 1049 | 1049 | { |
| 1050 | machine().root_device().membank("bank1")->configure_entries(0, machine().root_device().memregion("user3")->bytes() / 0x10000, usr3, 0x10000); | |
| 1051 | machine().root_device().membank("bank1")->set_entry(0); | |
| 1050 | membank("bank1")->configure_entries(0, memregion("user3")->bytes() / 0x10000, usr3, 0x10000); | |
| 1051 | membank("bank1")->set_entry(0); | |
| 1052 | 1052 | } |
| 1053 | 1053 | machine().device("dsp")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE); |
| 1054 | 1054 | machine().device("dsp2")->execute().set_input_line(INPUT_LINE_RESET, ASSERT_LINE); |
| 1055 | 1055 | |
| 1056 | 1056 | if (usr5) |
| 1057 | 1057 | { |
| 1058 | machine().root_device().membank("bank5")->set_base(usr5); | |
| 1059 | machine().root_device().membank("bank6")->set_base(usr5); | |
| 1058 | membank("bank5")->set_base(usr5); | |
| 1059 | membank("bank6")->set_base(usr5); | |
| 1060 | 1060 | } |
| 1061 | 1061 | } |
| 1062 | 1062 |
| r21033 | r21034 | |
|---|---|---|
| 836 | 836 | { |
| 837 | 837 | address_space &space = machine().device(cpu)->memory().space(AS_PROGRAM); |
| 838 | 838 | UINT8 *decrypt = auto_alloc_array(machine(), UINT8, length); |
| 839 | UINT8 *rom = m | |
| 839 | UINT8 *rom = memregion(cpu)->base(); | |
| 840 | 840 | |
| 841 | 841 | space.set_decrypted_region(0x0000, (length < 0x10000) ? (length - 1) : 0x1fff, decrypt); |
| 842 | 842 | |
| 843 | 843 | memcpy(decrypt, rom+length, length); |
| 844 | 844 | |
| 845 | 845 | if (length > 0x10000) |
| 846 | m | |
| 846 | membank("bank1")->configure_decrypted_entries(0, (length - 0x10000) / 0x8000, decrypt + 0x10000, 0x8000); | |
| 847 | 847 | } |
| 848 | 848 | |
| 849 | 849 |
| r21033 | r21034 | |
|---|---|---|
| 687 | 687 | { |
| 688 | 688 | #if WELLTRIS_4P_HACK |
| 689 | 689 | /* A Hack which shows 4 player mode in code which is disabled */ |
| 690 | UINT16 *RAM = (UINT16 *)m | |
| 690 | UINT16 *RAM = (UINT16 *)memregion("maincpu")->base(); | |
| 691 | 691 | RAM[0xB91C/2] = 0x4e71; |
| 692 | 692 | RAM[0xB91E/2] = 0x4e71; |
| 693 | 693 | #endif |
| r21033 | r21034 | |
|---|---|---|
| 238 | 238 | |
| 239 | 239 | DRIVER_INIT_MEMBER(aquarium_state,aquarium) |
| 240 | 240 | { |
| 241 | UINT8 *Z80 = m | |
| 241 | UINT8 *Z80 = memregion("audiocpu")->base(); | |
| 242 | 242 | |
| 243 | 243 | /* The BG tiles are 5bpp, this rearranges the data from |
| 244 | 244 | the roms containing the 1bpp data so we can decode it |
| 245 | 245 | correctly */ |
| 246 | UINT8 *DAT2 = machine().root_device().memregion("gfx1")->base() + 0x080000; | |
| 247 | UINT8 *DAT = machine().root_device().memregion("user1")->base(); | |
| 246 | UINT8 *DAT2 = memregion("gfx1")->base() + 0x080000; | |
| 247 | UINT8 *DAT = memregion("user1")->base(); | |
| 248 | 248 | int len = 0x0200000; |
| 249 | 249 | |
| 250 | 250 | for (len = 0; len < 0x020000; len++) |
| r21033 | r21034 | |
| 259 | 259 | DAT2[len * 4 + 2] |= (DAT[len] & 0x01) << 3; |
| 260 | 260 | } |
| 261 | 261 | |
| 262 | DAT2 = machine().root_device().memregion("gfx4")->base() + 0x080000; | |
| 263 | DAT = machine().root_device().memregion("user2")->base(); | |
| 262 | DAT2 = memregion("gfx4")->base() + 0x080000; | |
| 263 | DAT = memregion("user2")->base(); | |
| 264 | 264 | |
| 265 | 265 | for (len = 0; len < 0x020000; len++) |
| 266 | 266 | { |
| r21033 | r21034 | |
| 275 | 275 | } |
| 276 | 276 | |
| 277 | 277 | /* configure and set up the sound bank */ |
| 278 | machine().root_device().membank("bank1")->configure_entries(0, 7, &Z80[0x18000], 0x8000); | |
| 279 | machine().root_device().membank("bank1")->set_entry(1); | |
| 278 | membank("bank1")->configure_entries(0, 7, &Z80[0x18000], 0x8000); | |
| 279 | membank("bank1")->set_entry(1); | |
| 280 | 280 | } |
| 281 | 281 | |
| 282 | 282 |
| r21033 | r21034 | |
|---|---|---|
| 738 | 738 | |
| 739 | 739 | DRIVER_INIT_MEMBER(angelkds_state,angelkds) |
| 740 | 740 | { |
| 741 | UINT8 *RAM = machine().root_device().memregion("user1")->base(); | |
| 742 | machine().root_device().membank("bank1")->configure_entries(0, 8, &RAM[0x0000], 0x4000); | |
| 741 | UINT8 *RAM = memregion("user1")->base(); | |
| 742 | membank("bank1")->configure_entries(0, 8, &RAM[0x0000], 0x4000); | |
| 743 | 743 | } |
| 744 | 744 | |
| 745 | 745 | DRIVER_INIT_MEMBER(angelkds_state,spcpostn) |
| 746 | 746 | { |
| 747 | UINT8 *RAM = m | |
| 747 | UINT8 *RAM = memregion("user1")->base(); | |
| 748 | 748 | |
| 749 | 749 | sega_317_0005_decode(machine(), "maincpu"); |
| 750 | m | |
| 750 | membank("bank1")->configure_entries(0, 10, &RAM[0x0000], 0x4000); | |
| 751 | 751 | } |
| 752 | 752 | |
| 753 | 753 |
| r21033 | r21034 | |
|---|---|---|
| 201 | 201 | logerror( "Unknown banking write: %02X\n", data); |
| 202 | 202 | } |
| 203 | 203 | |
| 204 | membank("bank1")->set_base(m | |
| 204 | membank("bank1")->set_base(memregion("maincpu")->base() + 0x4000*bank ); | |
| 205 | 205 | } |
| 206 | 206 | |
| 207 | 207 | READ8_MEMBER(photon2_state::photon2_fe_r) |
| r21033 | r21034 | |
| 314 | 314 | |
| 315 | 315 | void photon2_state::machine_reset() |
| 316 | 316 | { |
| 317 | m | |
| 317 | membank("bank1")->set_base(memregion("maincpu")->base()); | |
| 318 | 318 | } |
| 319 | 319 | |
| 320 | 320 | static MACHINE_CONFIG_START( photon2, photon2_state ) |
| r21033 | r21034 | |
|---|---|---|
| 412 | 412 | { 0,0 } |
| 413 | 413 | }; |
| 414 | 414 | |
| 415 | UINT8 *RAM = m | |
| 415 | UINT8 *RAM = memregion("maincpu")->base(); | |
| 416 | 416 | int i, j, A; |
| 417 | 417 | |
| 418 | 418 | for (i = A = 0; table[i].count; i++) |
| r21033 | r21034 | |
|---|---|---|
| 1574 | 1574 | |
| 1575 | 1575 | DRIVER_INIT_MEMBER(cvs_state,huncholy) |
| 1576 | 1576 | { |
| 1577 | UINT8 *ROM = m | |
| 1577 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 1578 | 1578 | |
| 1579 | 1579 | /* patch out protection */ |
| 1580 | 1580 | ROM[0x0082] = 0xc0; |
| r21033 | r21034 | |
| 1594 | 1594 | |
| 1595 | 1595 | DRIVER_INIT_MEMBER(cvs_state,hunchbaka) |
| 1596 | 1596 | { |
| 1597 | UINT8 *ROM = m | |
| 1597 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 1598 | 1598 | |
| 1599 | 1599 | offs_t offs; |
| 1600 | 1600 | |
| r21033 | r21034 | |
| 1606 | 1606 | |
| 1607 | 1607 | DRIVER_INIT_MEMBER(cvs_state,superbik) |
| 1608 | 1608 | { |
| 1609 | UINT8 *ROM = m | |
| 1609 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 1610 | 1610 | |
| 1611 | 1611 | /* patch out protection */ |
| 1612 | 1612 | ROM[0x0079] = 0xc0; |
| r21033 | r21034 | |
| 1634 | 1634 | |
| 1635 | 1635 | DRIVER_INIT_MEMBER(cvs_state,hero) |
| 1636 | 1636 | { |
| 1637 | UINT8 *ROM = m | |
| 1637 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 1638 | 1638 | |
| 1639 | 1639 | /* patch out protection */ |
| 1640 | 1640 | ROM[0x0087] = 0xc0; |
| r21033 | r21034 | |
| 1656 | 1656 | |
| 1657 | 1657 | DRIVER_INIT_MEMBER(cvs_state,raiders) |
| 1658 | 1658 | { |
| 1659 | UINT8 *ROM = m | |
| 1659 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 1660 | 1660 | |
| 1661 | 1661 | offs_t offs; |
| 1662 | 1662 |
| r21033 | r21034 | |
|---|---|---|
| 862 | 862 | UINT8 *rom; |
| 863 | 863 | int i; |
| 864 | 864 | |
| 865 | rom = m | |
| 865 | rom = memregion("gfx1")->base(); | |
| 866 | 866 | for (i = 0;i < 0x2000;i++) |
| 867 | 867 | rom[i + 0x2000] = rom[i] >> 4; |
| 868 | 868 | |
| 869 | rom = m | |
| 869 | rom = memregion("gfx2")->base() + 0x6000; | |
| 870 | 870 | for (i = 0;i < 0x2000;i++) |
| 871 | 871 | rom[i + 0x2000] = rom[i] << 4; |
| 872 | 872 | } |
| r21033 | r21034 | |
|---|---|---|
| 302 | 302 | /* guess: use the same resistor values as Crazy Climber (needs checking on the real HW) */ |
| 303 | 303 | void nightgal_state::palette_init() |
| 304 | 304 | { |
| 305 | const UINT8 *color_prom = m | |
| 305 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 306 | 306 | static const int resistances_rg[3] = { 1000, 470, 220 }; |
| 307 | 307 | static const int resistances_b [2] = { 470, 220 }; |
| 308 | 308 | double weights_rg[3], weights_b[2]; |
| r21033 | r21034 | |
| 1264 | 1264 | |
| 1265 | 1265 | DRIVER_INIT_MEMBER(nightgal_state,royalqn) |
| 1266 | 1266 | { |
| 1267 | UINT8 *ROM = m | |
| 1267 | UINT8 *ROM = memregion("sub")->base(); | |
| 1268 | 1268 | |
| 1269 | 1269 | /* patch open bus / protection */ |
| 1270 | 1270 | ROM[0xc27e] = 0x02; |
| r21033 | r21034 | |
| 1273 | 1273 | |
| 1274 | 1274 | DRIVER_INIT_MEMBER(nightgal_state,ngalsumr) |
| 1275 | 1275 | { |
| 1276 | UINT8 *ROM = m | |
| 1276 | UINT8 *ROM = memregion("sub")->base(); | |
| 1277 | 1277 | |
| 1278 | 1278 | /* patch protection */ |
| 1279 | 1279 | ROM[0xd6ce] = 0x02; |
| r21033 | r21034 | |
|---|---|---|
| 545 | 545 | |
| 546 | 546 | void _5clown_state::palette_init() |
| 547 | 547 | { |
| 548 | const UINT8 *color_prom = m | |
| 548 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 549 | 549 | /* |
| 550 | 550 | 7654 3210 |
| 551 | 551 | ---- ---x RED component. |
| r21033 | r21034 | |
| 1219 | 1219 | |
| 1220 | 1220 | /* Decrypting GFX by segments */ |
| 1221 | 1221 | |
| 1222 | UINT8 *gfx1_src = machine().root_device().memregion( "gfx1" )->base(); | |
| 1223 | UINT8 *gfx2_src = machine().root_device().memregion( "gfx2" )->base(); | |
| 1222 | UINT8 *gfx1_src = memregion( "gfx1" )->base(); | |
| 1223 | UINT8 *gfx2_src = memregion( "gfx2" )->base(); | |
| 1224 | 1224 | |
| 1225 | 1225 | for (x = 0x2000; x < 0x3000; x++) |
| 1226 | 1226 | { |
| r21033 | r21034 | |
| 1240 | 1240 | |
| 1241 | 1241 | /* Decrypting sound samples */ |
| 1242 | 1242 | |
| 1243 | UINT8 *samples_src = m | |
| 1243 | UINT8 *samples_src = memregion( "oki6295" )->base(); | |
| 1244 | 1244 | |
| 1245 | 1245 | for (x = 0x0000; x < 0x10000; x++) |
| 1246 | 1246 | { |
| r21033 | r21034 | |
|---|---|---|
| 410 | 410 | DRIVER_INIT_MEMBER(wink_state,wink) |
| 411 | 411 | { |
| 412 | 412 | UINT32 i; |
| 413 | UINT8 *ROM = m | |
| 413 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 414 | 414 | UINT8 *buffer = auto_alloc_array(machine(), UINT8, 0x8000); |
| 415 | 415 | |
| 416 | 416 | // protection module reverse engineered by HIGHWAYMAN |
| r21033 | r21034 | |
|---|---|---|
| 3302 | 3302 | m_c361.timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(namcos23_state::c361_timer_cb),this)); |
| 3303 | 3303 | m_c361.timer->adjust(attotime::never); |
| 3304 | 3304 | |
| 3305 | mips3drc_add_fastram(m_maincpu, 0, m_mainram.bytes()-1, FALSE, reinterpret_cast<UINT32 *>(m | |
| 3305 | mips3drc_add_fastram(m_maincpu, 0, m_mainram.bytes()-1, FALSE, reinterpret_cast<UINT32 *>(memshare("mainram")->ptr())); | |
| 3306 | 3306 | } |
| 3307 | 3307 | |
| 3308 | 3308 |
| r21033 | r21034 | |
|---|---|---|
| 510 | 510 | DRIVER_INIT_MEMBER(commando_state,commando) |
| 511 | 511 | { |
| 512 | 512 | address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); |
| 513 | UINT8 *rom = m | |
| 513 | UINT8 *rom = memregion("maincpu")->base(); | |
| 514 | 514 | UINT8 *decrypt = auto_alloc_array(machine(), UINT8, 0xc000); |
| 515 | 515 | int A; |
| 516 | 516 | |
| r21033 | r21034 | |
| 530 | 530 | DRIVER_INIT_MEMBER(commando_state,spaceinv) |
| 531 | 531 | { |
| 532 | 532 | address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); |
| 533 | UINT8 *rom = m | |
| 533 | UINT8 *rom = memregion("maincpu")->base(); | |
| 534 | 534 | UINT8 *decrypt = auto_alloc_array(machine(), UINT8, 0xc000); |
| 535 | 535 | int A; |
| 536 | 536 |
| r21033 | r21034 | |
|---|---|---|
| 908 | 908 | void ninjakd2_state::machine_reset() |
| 909 | 909 | { |
| 910 | 910 | /* initialize main Z80 bank */ |
| 911 | int num_banks = (machine().root_device().memregion("maincpu")->bytes() - 0x10000) / 0x4000; | |
| 912 | machine().root_device().membank("bank1")->configure_entries(0, num_banks, machine().root_device().memregion("maincpu")->base() + 0x10000, 0x4000); | |
| 913 | machine().root_device().membank("bank1")->set_entry(0); | |
| 911 | int num_banks = (memregion("maincpu")->bytes() - 0x10000) / 0x4000; | |
| 912 | membank("bank1")->configure_entries(0, num_banks, memregion("maincpu")->base() + 0x10000, 0x4000); | |
| 913 | membank("bank1")->set_entry(0); | |
| 914 | 914 | |
| 915 | 915 | m_rom_bank_mask = num_banks - 1; |
| 916 | 916 | } |
| r21033 | r21034 | |
| 1418 | 1418 | |
| 1419 | 1419 | void ninjakd2_state::lineswap_gfx_roms(const char *region, const int bit) |
| 1420 | 1420 | { |
| 1421 | const int length = machine().root_device().memregion(region)->bytes(); | |
| 1422 | UINT8* const src = machine().root_device().memregion(region)->base(); | |
| 1421 | const int length = memregion(region)->bytes(); | |
| 1422 | UINT8* const src = memregion(region)->base(); | |
| 1423 | 1423 | UINT8* const temp = auto_alloc_array(machine(), UINT8, length); |
| 1424 | 1424 | const int mask = (1 << (bit + 1)) - 1; |
| 1425 | 1425 | |
| r21033 | r21034 | |
| 1451 | 1451 | DRIVER_INIT_MEMBER(ninjakd2_state,bootleg) |
| 1452 | 1452 | { |
| 1453 | 1453 | address_space &space = machine().device("soundcpu")->memory().space(AS_PROGRAM); |
| 1454 | space.set_decrypted_region(0x0000, 0x7fff, m | |
| 1454 | space.set_decrypted_region(0x0000, 0x7fff, memregion("soundcpu")->base() + 0x10000); | |
| 1455 | 1455 | |
| 1456 | 1456 | gfx_unscramble(); |
| 1457 | 1457 | } |
| r21033 | r21034 | |
|---|---|---|
| 98 | 98 | device_t *device = machine().device("msm"); |
| 99 | 99 | msm5205_reset_w(device, data & 0x20); |
| 100 | 100 | |
| 101 | m | |
| 101 | membank("bank2")->set_entry(data & 0x07); | |
| 102 | 102 | |
| 103 | 103 | if (data != (data & (~0x27))) |
| 104 | 104 | logerror("%s: Bank %02X\n", machine().describe_context(), data); |
| r21033 | r21034 | |
|---|---|---|
| 77 | 77 | { |
| 78 | 78 | const rectangle &visarea = screen.visible_area(); |
| 79 | 79 | |
| 80 | int xpos = screen.machine().root_device().ioport((player == 0) ? "GUN1X" : "GUN2X")->read_safe(0xffffffff); | |
| 81 | int ypos = screen.machine().root_device().ioport((player == 0) ? "GUN1Y" : "GUN2Y")->read_safe(0xffffffff); | |
| 80 | int xpos = screen.ioport((player == 0) ? "GUN1X" : "GUN2X")->read_safe(0xffffffff); | |
| 81 | int ypos = screen.ioport((player == 0) ? "GUN1Y" : "GUN2Y")->read_safe(0xffffffff); | |
| 82 | 82 | |
| 83 | 83 | if (xpos == -1 || ypos == -1) |
| 84 | 84 | return FALSE; |
| r21033 | r21034 | |
| 248 | 248 | |
| 249 | 249 | READ8_MEMBER(alg_state::alg_cia_0_porta_r) |
| 250 | 250 | { |
| 251 | return | |
| 251 | return ioport("FIRE")->read() | 0x3f; | |
| 252 | 252 | } |
| 253 | 253 | |
| 254 | 254 | |
| r21033 | r21034 | |
| 705 | 705 | |
| 706 | 706 | /* set up memory */ |
| 707 | 707 | m_bank1->configure_entry(0, m_chip_ram); |
| 708 | m_bank1->configure_entry(1, m | |
| 708 | m_bank1->configure_entry(1, memregion("user1")->base()); | |
| 709 | 709 | } |
| 710 | 710 | |
| 711 | 711 | |
| r21033 | r21034 | |
| 718 | 718 | |
| 719 | 719 | DRIVER_INIT_MEMBER(alg_state,palr1) |
| 720 | 720 | { |
| 721 | UINT32 length = machine().root_device().memregion("user2")->bytes(); | |
| 722 | UINT8 *rom = machine().root_device().memregion("user2")->base(); | |
| 721 | UINT32 length = memregion("user2")->bytes(); | |
| 722 | UINT8 *rom = memregion("user2")->base(); | |
| 723 | 723 | UINT8 *original = auto_alloc_array(machine(), UINT8, length); |
| 724 | 724 | UINT32 srcaddr; |
| 725 | 725 | |
| r21033 | r21034 | |
| 738 | 738 | |
| 739 | 739 | DRIVER_INIT_MEMBER(alg_state,palr3) |
| 740 | 740 | { |
| 741 | UINT32 length = machine().root_device().memregion("user2")->bytes(); | |
| 742 | UINT8 *rom = machine().root_device().memregion("user2")->base(); | |
| 741 | UINT32 length = memregion("user2")->bytes(); | |
| 742 | UINT8 *rom = memregion("user2")->base(); | |
| 743 | 743 | UINT8 *original = auto_alloc_array(machine(), UINT8, length); |
| 744 | 744 | UINT32 srcaddr; |
| 745 | 745 | |
| r21033 | r21034 | |
| 757 | 757 | |
| 758 | 758 | DRIVER_INIT_MEMBER(alg_state,palr6) |
| 759 | 759 | { |
| 760 | UINT32 length = machine().root_device().memregion("user2")->bytes(); | |
| 761 | UINT8 *rom = machine().root_device().memregion("user2")->base(); | |
| 760 | UINT32 length = memregion("user2")->bytes(); | |
| 761 | UINT8 *rom = memregion("user2")->base(); | |
| 762 | 762 | UINT8 *original = auto_alloc_array(machine(), UINT8, length); |
| 763 | 763 | UINT32 srcaddr; |
| 764 | 764 | |
| r21033 | r21034 | |
| 779 | 779 | DRIVER_INIT_MEMBER(alg_state,aplatoon) |
| 780 | 780 | { |
| 781 | 781 | /* NOT DONE TODO FIGURE OUT THE RIGHT ORDER!!!! */ |
| 782 | UINT8 *rom = m | |
| 782 | UINT8 *rom = memregion("user2")->base(); | |
| 783 | 783 | UINT8 *decrypted = auto_alloc_array(machine(), UINT8, 0x40000); |
| 784 | 784 | int i; |
| 785 | 785 |
| r21033 | r21034 | |
|---|---|---|
| 235 | 235 | /* Read Dipswitches */ |
| 236 | 236 | READ8_MEMBER(warpwarp_state::warpwarp_dsw1_r) |
| 237 | 237 | { |
| 238 | return ( | |
| 238 | return (ioport("DSW1")->read() >> (offset & 7)) & 1; | |
| 239 | 239 | } |
| 240 | 240 | |
| 241 | 241 | /* Read mux Controller Inputs */ |
| r21033 | r21034 | |
|---|---|---|
| 780 | 780 | m_zoom_table[i]=-1; |
| 781 | 781 | } |
| 782 | 782 | |
| 783 | UINT16 *ROM = (UINT16 *)m | |
| 783 | UINT16 *ROM = (UINT16 *)memregion("maincpu")->base(); | |
| 784 | 784 | |
| 785 | 785 | for(int j=0;j<400;++j) |
| 786 | 786 | { |
| r21033 | r21034 | |
| 859 | 859 | |
| 860 | 860 | DRIVER_INIT_MEMBER(wheelfir_state,wheelfir) |
| 861 | 861 | { |
| 862 | UINT16 *RAM = (UINT16 *)m | |
| 862 | UINT16 *RAM = (UINT16 *)memregion("maincpu")->base(); | |
| 863 | 863 | RAM[0xdd3da/2] = 0x4e71; //hack |
| 864 | 864 | } |
| 865 | 865 |
| r21033 | r21034 | |
|---|---|---|
| 3244 | 3244 | extern void process_dvi_data(UINT8* dvi_data, int offset, int regionsize); |
| 3245 | 3245 | DRIVER_INIT_MEMBER(dragngun_state,dragngun) |
| 3246 | 3246 | { |
| 3247 | UINT32 *ROM = (UINT32 *)machine().root_device().memregion("maincpu")->base(); | |
| 3248 | const UINT8 *SRC_RAM = machine().root_device().memregion("gfx1")->base(); | |
| 3249 | UINT8 *DST_RAM = machine().root_device().memregion("gfx2")->base(); | |
| 3247 | UINT32 *ROM = (UINT32 *)memregion("maincpu")->base(); | |
| 3248 | const UINT8 *SRC_RAM = memregion("gfx1")->base(); | |
| 3249 | UINT8 *DST_RAM = memregion("gfx2")->base(); | |
| 3250 | 3250 | |
| 3251 | 3251 | deco74_decrypt_gfx(machine(), "gfx1"); |
| 3252 | 3252 | deco74_decrypt_gfx(machine(), "gfx2"); |
| r21033 | r21034 | |
| 3259 | 3259 | |
| 3260 | 3260 | #if 0 |
| 3261 | 3261 | { |
| 3262 | UINT8 *ROM = m | |
| 3262 | UINT8 *ROM = memregion("dvi")->base(); | |
| 3263 | 3263 | |
| 3264 | 3264 | FILE *fp; |
| 3265 | 3265 | char filename[256]; |
| r21033 | r21034 | |
| 3274 | 3274 | #endif |
| 3275 | 3275 | |
| 3276 | 3276 | // there are DVI headers at 0x000000, 0x580000, 0x800000, 0xB10000, 0xB80000 |
| 3277 | process_dvi_data(machine().root_device().memregion("dvi")->base(),0x000000, 0x1000000); | |
| 3278 | process_dvi_data(machine().root_device().memregion("dvi")->base(),0x580000, 0x1000000); | |
| 3279 | process_dvi_data(machine().root_device().memregion("dvi")->base(),0x800000, 0x1000000); | |
| 3280 | process_dvi_data(machine().root_device().memregion("dvi")->base(),0xB10000, 0x1000000); | |
| 3281 | process_dvi_data(machine().root_device().memregion("dvi")->base(),0xB80000, 0x1000000); | |
| 3277 | process_dvi_data(memregion("dvi")->base(),0x000000, 0x1000000); | |
| 3278 | process_dvi_data(memregion("dvi")->base(),0x580000, 0x1000000); | |
| 3279 | process_dvi_data(memregion("dvi")->base(),0x800000, 0x1000000); | |
| 3280 | process_dvi_data(memregion("dvi")->base(),0xB10000, 0x1000000); | |
| 3281 | process_dvi_data(memregion("dvi")->base(),0xB80000, 0x1000000); | |
| 3282 | 3282 | |
| 3283 | 3283 | } |
| 3284 | 3284 | |
| r21033 | r21034 | |
| 3292 | 3292 | |
| 3293 | 3293 | DRIVER_INIT_MEMBER(dragngun_state,lockload) |
| 3294 | 3294 | { |
| 3295 | UINT8 *RAM = machine().root_device().memregion("maincpu")->base(); | |
| 3296 | // UINT32 *ROM = (UINT32 *)machine().root_device().memregion("maincpu")->base(); | |
| 3295 | UINT8 *RAM = memregion("maincpu")->base(); | |
| 3296 | // UINT32 *ROM = (UINT32 *)memregion("maincpu")->base(); | |
| 3297 | 3297 | |
| 3298 | 3298 | deco74_decrypt_gfx(machine(), "gfx1"); |
| 3299 | 3299 | deco74_decrypt_gfx(machine(), "gfx2"); |
| r21033 | r21034 | |
| 3309 | 3309 | |
| 3310 | 3310 | DRIVER_INIT_MEMBER(deco32_state,tattass) |
| 3311 | 3311 | { |
| 3312 | UINT8 *RAM = m | |
| 3312 | UINT8 *RAM = memregion("gfx1")->base(); | |
| 3313 | 3313 | UINT8 *tmp = auto_alloc_array(machine(), UINT8, 0x80000); |
| 3314 | 3314 | |
| 3315 | 3315 | /* Reorder bitplanes to make decoding easier */ |
| r21033 | r21034 | |
| 3317 | 3317 | memcpy(RAM+0x80000,RAM+0x100000,0x80000); |
| 3318 | 3318 | memcpy(RAM+0x100000,tmp,0x80000); |
| 3319 | 3319 | |
| 3320 | RAM = m | |
| 3320 | RAM = memregion("gfx2")->base(); | |
| 3321 | 3321 | memcpy(tmp,RAM+0x80000,0x80000); |
| 3322 | 3322 | memcpy(RAM+0x80000,RAM+0x100000,0x80000); |
| 3323 | 3323 | memcpy(RAM+0x100000,tmp,0x80000); |
| r21033 | r21034 | |
| 3330 | 3330 | |
| 3331 | 3331 | DRIVER_INIT_MEMBER(deco32_state,nslasher) |
| 3332 | 3332 | { |
| 3333 | UINT8 *RAM = m | |
| 3333 | UINT8 *RAM = memregion("gfx1")->base(); | |
| 3334 | 3334 | UINT8 *tmp = auto_alloc_array(machine(), UINT8, 0x80000); |
| 3335 | 3335 | |
| 3336 | 3336 | /* Reorder bitplanes to make decoding easier */ |
| r21033 | r21034 | |
| 3338 | 3338 | memcpy(RAM+0x80000,RAM+0x100000,0x80000); |
| 3339 | 3339 | memcpy(RAM+0x100000,tmp,0x80000); |
| 3340 | 3340 | |
| 3341 | RAM = m | |
| 3341 | RAM = memregion("gfx2")->base(); | |
| 3342 | 3342 | memcpy(tmp,RAM+0x80000,0x80000); |
| 3343 | 3343 | memcpy(RAM+0x80000,RAM+0x100000,0x80000); |
| 3344 | 3344 | memcpy(RAM+0x100000,tmp,0x80000); |
| r21033 | r21034 | |
|---|---|---|
| 53 | 53 | |
| 54 | 54 | DRIVER_INIT_MEMBER(nbmj8891_state,gionbana) |
| 55 | 55 | { |
| 56 | UINT8 *prot = m | |
| 56 | UINT8 *prot = memregion("protection")->base(); | |
| 57 | 57 | int i; |
| 58 | 58 | |
| 59 | 59 | /* this is one possible way to rearrange the protection ROM data to get the |
| r21033 | r21034 | |
| 77 | 77 | DRIVER_INIT_MEMBER(nbmj8891_state,omotesnd) |
| 78 | 78 | { |
| 79 | 79 | #if 0 |
| 80 | UINT8 *prot = m | |
| 80 | UINT8 *prot = memregion("protection")->base(); | |
| 81 | 81 | int i; |
| 82 | 82 | |
| 83 | 83 | /* this is one possible way to rearrange the protection ROM data to get the |
| r21033 | r21034 | |
| 92 | 92 | #endif |
| 93 | 93 | |
| 94 | 94 | #if 1 |
| 95 | UINT8 *ROM = m | |
| 95 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 96 | 96 | |
| 97 | 97 | // Protection ROM check skip |
| 98 | 98 | ROM[0x0106] = 0x00; |
| r21033 | r21034 | |
| 127 | 127 | |
| 128 | 128 | DRIVER_INIT_MEMBER(nbmj8891_state,telmahjn) |
| 129 | 129 | { |
| 130 | UINT8 *prot = m | |
| 130 | UINT8 *prot = memregion("protection")->base(); | |
| 131 | 131 | int i; |
| 132 | 132 | |
| 133 | 133 | /* this is one possible way to rearrange the protection ROM data to get the |
| r21033 | r21034 | |
| 145 | 145 | |
| 146 | 146 | DRIVER_INIT_MEMBER(nbmj8891_state,mgmen89) |
| 147 | 147 | { |
| 148 | UINT8 *prot = m | |
| 148 | UINT8 *prot = memregion("protection")->base(); | |
| 149 | 149 | int i; |
| 150 | 150 | |
| 151 | 151 | /* this is one possible way to rearrange the protection ROM data to get the |
| r21033 | r21034 | |
| 163 | 163 | |
| 164 | 164 | DRIVER_INIT_MEMBER(nbmj8891_state,mjfocus) |
| 165 | 165 | { |
| 166 | UINT8 *prot = machine().root_device().memregion("protection")->base(); | |
| 167 | UINT8 *ram = machine().root_device().memregion("maincpu")->base() + 0xf800; | |
| 166 | UINT8 *prot = memregion("protection")->base(); | |
| 167 | UINT8 *ram = memregion("maincpu")->base() + 0xf800; | |
| 168 | 168 | int i; |
| 169 | 169 | |
| 170 | 170 | /* need to clear RAM otherwise it doesn't boot... */ |
| r21033 | r21034 | |
| 186 | 186 | DRIVER_INIT_MEMBER(nbmj8891_state,mjfocusm) |
| 187 | 187 | { |
| 188 | 188 | #if 1 |
| 189 | UINT8 *ROM = m | |
| 189 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 190 | 190 | |
| 191 | 191 | // Protection ROM check skip |
| 192 | 192 | ROM[0x014e] = 0x00; |
| r21033 | r21034 | |
| 198 | 198 | |
| 199 | 199 | DRIVER_INIT_MEMBER(nbmj8891_state,scandal) |
| 200 | 200 | { |
| 201 | UINT8 *ROM = m | |
| 201 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 202 | 202 | int i; |
| 203 | 203 | |
| 204 | 204 | for (i = 0xf800; i < 0x10000; i++) ROM[i] = 0x00; |
| r21033 | r21034 | |
| 215 | 215 | { |
| 216 | 216 | /* they forgot to enable the protection check in this game... */ |
| 217 | 217 | #if 0 |
| 218 | UINT8 *prot = m | |
| 218 | UINT8 *prot = memregion("protection")->base(); | |
| 219 | 219 | int i; |
| 220 | 220 | |
| 221 | m | |
| 221 | memregion("maincpu")->base()[0x003d] = 0x01; // force the protection check to be executed | |
| 222 | 222 | |
| 223 | 223 | /* this is one possible way to rearrange the protection ROM data to get the |
| 224 | 224 | expected 0xfe1a checksum. It's probably completely wrong! But since the |
| r21033 | r21034 | |
| 276 | 276 | |
| 277 | 277 | DRIVER_INIT_MEMBER(nbmj8891_state,pairsnb) |
| 278 | 278 | { |
| 279 | UINT8 *prot = m | |
| 279 | UINT8 *prot = memregion("protection")->base(); | |
| 280 | 280 | int i; |
| 281 | 281 | |
| 282 | 282 | /* this is one possible way to rearrange the protection ROM data to get the |
| r21033 | r21034 | |
| 294 | 294 | |
| 295 | 295 | DRIVER_INIT_MEMBER(nbmj8891_state,pairsten) |
| 296 | 296 | { |
| 297 | UINT8 *prot = m | |
| 297 | UINT8 *prot = memregion("protection")->base(); | |
| 298 | 298 | int i; |
| 299 | 299 | |
| 300 | 300 | /* this is one possible way to rearrange the protection ROM data to get the |
| r21033 | r21034 | |
|---|---|---|
| 1345 | 1345 | |
| 1346 | 1346 | DRIVER_INIT_MEMBER(liberate_state,prosport) |
| 1347 | 1347 | { |
| 1348 | UINT8 *RAM = m | |
| 1348 | UINT8 *RAM = memregion("maincpu")->base(); | |
| 1349 | 1349 | int i; |
| 1350 | 1350 | |
| 1351 | 1351 | /* Main cpu has the nibbles swapped */ |
| r21033 | r21034 | |
| 1366 | 1366 | int A; |
| 1367 | 1367 | address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); |
| 1368 | 1368 | UINT8 *decrypted = auto_alloc_array(machine(), UINT8, 0x10000); |
| 1369 | UINT8 *ROM = m | |
| 1369 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 1370 | 1370 | |
| 1371 | 1371 | space.set_decrypted_region(0x0000, 0xffff, decrypted); |
| 1372 | 1372 | |
| r21033 | r21034 | |
| 1377 | 1377 | decrypted[A] = (decrypted[A] & 0x7d) | ((decrypted[A] & 0x02) << 6) | ((decrypted[A] & 0x80) >> 6); |
| 1378 | 1378 | } |
| 1379 | 1379 | |
| 1380 | m | |
| 1380 | membank("bank1")->configure_decrypted_entry(0, decrypted + 0x8000); | |
| 1381 | 1381 | } |
| 1382 | 1382 | |
| 1383 | 1383 | /************************************* |
| r21033 | r21034 | |
|---|---|---|
| 1518 | 1518 | |
| 1519 | 1519 | int A; |
| 1520 | 1520 | address_space &space = machine().device(cputag)->memory().space(AS_PROGRAM); |
| 1521 | UINT8 *rom = machine().root_device().memregion(cputag)->base(); | |
| 1522 | int size = machine().root_device().memregion(cputag)->bytes(); | |
| 1521 | UINT8 *rom = memregion(cputag)->base(); | |
| 1522 | int size = memregion(cputag)->bytes(); | |
| 1523 | 1523 | UINT8 *decrypt = auto_alloc_array(machine(), UINT8, size); |
| 1524 | 1524 | |
| 1525 | 1525 | space.set_decrypted_region(0x0000, size - 1, decrypt); |
| r21033 | r21034 | |
|---|---|---|
| 253 | 253 | |
| 254 | 254 | WRITE8_MEMBER(asuka_state::sound_bankswitch_2151_w) |
| 255 | 255 | { |
| 256 | m | |
| 256 | membank("bank1")->set_entry(data & 0x03); | |
| 257 | 257 | } |
| 258 | 258 | |
| 259 | 259 |
| r21033 | r21034 | |
|---|---|---|
| 2150 | 2150 | DRIVER_INIT_MEMBER(m62_state,battroad) |
| 2151 | 2151 | { |
| 2152 | 2152 | /* configure memory banks */ |
| 2153 | m | |
| 2153 | membank("bank1")->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x2000); | |
| 2154 | 2154 | } |
| 2155 | 2155 | |
| 2156 | 2156 | DRIVER_INIT_MEMBER(m62_state,ldrun2) |
| 2157 | 2157 | { |
| 2158 | 2158 | /* configure memory banks */ |
| 2159 | m | |
| 2159 | membank("bank1")->configure_entries(0, 2, memregion("maincpu")->base() + 0x10000, 0x2000); | |
| 2160 | 2160 | } |
| 2161 | 2161 | |
| 2162 | 2162 | DRIVER_INIT_MEMBER(m62_state,ldrun4) |
| 2163 | 2163 | { |
| 2164 | 2164 | /* configure memory banks */ |
| 2165 | m | |
| 2165 | membank("bank1")->configure_entries(0, 2, memregion("maincpu")->base() + 0x10000, 0x4000); | |
| 2166 | 2166 | } |
| 2167 | 2167 | |
| 2168 | 2168 | DRIVER_INIT_MEMBER(m62_state,kidniki) |
| 2169 | 2169 | { |
| 2170 | UINT8 *ROM = m | |
| 2170 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 2171 | 2171 | |
| 2172 | 2172 | /* in Kid Niki, bank 0 has code falling from 7fff to 8000, */ |
| 2173 | 2173 | /* so I have to copy it there because bank switching wouldn't catch it */ |
| 2174 | 2174 | memcpy(ROM + 0x08000, ROM + 0x10000, 0x2000); |
| 2175 | 2175 | |
| 2176 | 2176 | /* configure memory banks */ |
| 2177 | m | |
| 2177 | membank("bank1")->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x2000); | |
| 2178 | 2178 | } |
| 2179 | 2179 | |
| 2180 | 2180 | DRIVER_INIT_MEMBER(m62_state,spelunkr) |
| 2181 | 2181 | { |
| 2182 | 2182 | /* configure memory banks */ |
| 2183 | m | |
| 2183 | membank("bank1")->configure_entries(0, 4, memregion("maincpu")->base() + 0x10000, 0x2000); | |
| 2184 | 2184 | } |
| 2185 | 2185 | |
| 2186 | 2186 | DRIVER_INIT_MEMBER(m62_state,spelunk2) |
| 2187 | 2187 | { |
| 2188 | 2188 | /* configure memory banks */ |
| 2189 | machine().root_device().membank("bank1")->configure_entries(0, 4, machine().root_device().memregion("maincpu")->base() + 0x20000, 0x1000); | |
| 2190 | machine().root_device().membank("bank2")->configure_entries(0, 16, machine().root_device().memregion("maincpu")->base() + 0x10000, 0x1000); | |
| 2189 | membank("bank1")->configure_entries(0, 4, memregion("maincpu")->base() + 0x20000, 0x1000); | |
| 2190 | membank("bank2")->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x1000); | |
| 2191 | 2191 | } |
| 2192 | 2192 | |
| 2193 | 2193 | DRIVER_INIT_MEMBER(m62_state,youjyudn) |
| 2194 | 2194 | { |
| 2195 | 2195 | /* configure memory banks */ |
| 2196 | m | |
| 2196 | membank("bank1")->configure_entries(0, 2, memregion("maincpu")->base() + 0x10000, 0x4000); | |
| 2197 | 2197 | } |
| 2198 | 2198 | |
| 2199 | 2199 | GAME( 1984, kungfum, 0, kungfum, kungfum, driver_device, 0, ROT0, "Irem", "Kung-Fu Master", GAME_SUPPORTS_SAVE ) |
| r21033 | r21034 | |
|---|---|---|
| 331 | 331 | |
| 332 | 332 | DRIVER_INIT_MEMBER(citycon_state,citycon) |
| 333 | 333 | { |
| 334 | UINT8 *rom = m | |
| 334 | UINT8 *rom = memregion("gfx1")->base(); | |
| 335 | 335 | int i; |
| 336 | 336 | |
| 337 | 337 | /* |
| r21033 | r21034 | |
|---|---|---|
| 587 | 587 | return IMAGE_INIT_FAIL; |
| 588 | 588 | |
| 589 | 589 | //printf("load list\n"); |
| 590 | UINT8 *ROM = image.device().m | |
| 590 | UINT8 *ROM = image.device().memregion(this_cart->region)->base(); | |
| 591 | 591 | //printf("load list2\n"); |
| 592 | 592 | UINT32 length = image.get_software_region_length("rom"); |
| 593 | 593 | memcpy(ROM, image.get_software_region("rom"), length); |
| r21033 | r21034 | |
|---|---|---|
| 107 | 107 | |
| 108 | 108 | INTERRUPT_GEN_MEMBER(capbowl_state::capbowl_interrupt) |
| 109 | 109 | { |
| 110 | if ( | |
| 110 | if (ioport("SERVICE")->read() & 1) /* get status of the F2 key */ | |
| 111 | 111 | device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); /* trigger self test */ |
| 112 | 112 | } |
| 113 | 113 | |
| r21033 | r21034 | |
| 491 | 491 | |
| 492 | 492 | DRIVER_INIT_MEMBER(capbowl_state,capbowl) |
| 493 | 493 | { |
| 494 | UINT8 *ROM = m | |
| 494 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 495 | 495 | |
| 496 | 496 | /* configure ROM banks in 0x0000-0x3fff */ |
| 497 | m | |
| 497 | membank("bank1")->configure_entries(0, 6, &ROM[0x10000], 0x4000); | |
| 498 | 498 | } |
| 499 | 499 | |
| 500 | 500 |
| r21033 | r21034 | |
|---|---|---|
| 748 | 748 | /*needed because of the uncompatibility of the dsw settings.*/ |
| 749 | 749 | if(dsw_setting) // Thunder Dragon |
| 750 | 750 | { |
| 751 | dsw[0] = (machine().root_device().ioport("DSW2")->read() & 0x7); | |
| 752 | dsw[1] = (machine().root_device().ioport("DSW2")->read() & 0x38) >> 3; | |
| 751 | dsw[0] = (ioport("DSW2")->read() & 0x7); | |
| 752 | dsw[1] = (ioport("DSW2")->read() & 0x38) >> 3; | |
| 753 | 753 | for(i=0;i<2;i++) |
| 754 | 754 | { |
| 755 | 755 | switch(dsw[i] & 7) |
| r21033 | r21034 | |
| 767 | 767 | } |
| 768 | 768 | else // Hacha Mecha Fighter |
| 769 | 769 | { |
| 770 | dsw[0] = (machine().root_device().ioport("DSW1")->read() & 0x0700) >> 8; | |
| 771 | dsw[1] = (machine().root_device().ioport("DSW1")->read() & 0x3800) >> 11; | |
| 770 | dsw[0] = (ioport("DSW1")->read() & 0x0700) >> 8; | |
| 771 | dsw[1] = (ioport("DSW1")->read() & 0x3800) >> 11; | |
| 772 | 772 | for(i=0;i<2;i++) |
| 773 | 773 | { |
| 774 | 774 | switch(dsw[i] & 7) |
| r21033 | r21034 | |
| 786 | 786 | } |
| 787 | 787 | |
| 788 | 788 | /*read the coin port*/ |
| 789 | coin_input = (~( | |
| 789 | coin_input = (~(ioport("IN0")->read())); | |
| 790 | 790 | |
| 791 | 791 | if(coin_input & 0x01)//coin 1 |
| 792 | 792 | { |
| r21033 | r21034 | |
| 1071 | 1071 | |
| 1072 | 1072 | WRITE8_MEMBER(nmk16_state::raphero_sound_rombank_w) |
| 1073 | 1073 | { |
| 1074 | membank("bank1")->set_base(m | |
| 1074 | membank("bank1")->set_base(memregion("audiocpu")->base() + 0x10000 + (data & 0x07) * 0x4000); | |
| 1075 | 1075 | } |
| 1076 | 1076 | |
| 1077 | 1077 | static ADDRESS_MAP_START( raphero_sound_mem_map, AS_PROGRAM, 8, nmk16_state ) |
| r21033 | r21034 | |
| 4410 | 4410 | |
| 4411 | 4411 | |
| 4412 | 4412 | /* background */ |
| 4413 | rom = machine().root_device().memregion("gfx2")->base(); | |
| 4414 | len = machine().root_device().memregion("gfx2")->bytes(); | |
| 4413 | rom = memregion("gfx2")->base(); | |
| 4414 | len = memregion("gfx2")->bytes(); | |
| 4415 | 4415 | for (A = 0;A < len;A++) |
| 4416 | 4416 | { |
| 4417 | 4417 | rom[A] = decode_byte( rom[A], decode_data_bg[bjtwin_address_map_bg0(A)]); |
| 4418 | 4418 | } |
| 4419 | 4419 | |
| 4420 | 4420 | /* sprites */ |
| 4421 | rom = machine().root_device().memregion("gfx3")->base(); | |
| 4422 | len = machine().root_device().memregion("gfx3")->bytes(); | |
| 4421 | rom = memregion("gfx3")->base(); | |
| 4422 | len = memregion("gfx3")->bytes(); | |
| 4423 | 4423 | for (A = 0;A < len;A += 2) |
| 4424 | 4424 | { |
| 4425 | 4425 | UINT16 tmp = decode_word( rom[A+1]*256 + rom[A], decode_data_sprite[bjtwin_address_map_sprites(A)]); |
| r21033 | r21034 | |
| 4448 | 4448 | {0x7,0x6,0x5,0x3,0x4,0x2,0x1,0x0}, |
| 4449 | 4449 | }; |
| 4450 | 4450 | |
| 4451 | rom = machine().root_device().memregion("maincpu")->base(); | |
| 4452 | len = machine().root_device().memregion("maincpu")->bytes(); | |
| 4451 | rom = memregion("maincpu")->base(); | |
| 4452 | len = memregion("maincpu")->bytes(); | |
| 4453 | 4453 | for (A = 0;A < len;A += 2) |
| 4454 | 4454 | { |
| 4455 | 4455 | int h = A+NATIVE_ENDIAN_VALUE_LE_BE(1,0), l = A+NATIVE_ENDIAN_VALUE_LE_BE(0,1); |
| r21033 | r21034 | |
| 4458 | 4458 | rom[l] = tmp & 0xff; |
| 4459 | 4459 | } |
| 4460 | 4460 | |
| 4461 | rom = machine().root_device().memregion("gfx2")->base(); | |
| 4462 | len = machine().root_device().memregion("gfx2")->bytes(); | |
| 4461 | rom = memregion("gfx2")->base(); | |
| 4462 | len = memregion("gfx2")->bytes(); | |
| 4463 | 4463 | for (A = 0;A < len;A++) |
| 4464 | 4464 | { |
| 4465 | 4465 | rom[A] = decode_byte( rom[A], decode_data_tdragonbgfx[0]); |
| 4466 | 4466 | } |
| 4467 | 4467 | |
| 4468 | rom = machine().root_device().memregion("gfx3")->base(); | |
| 4469 | len = machine().root_device().memregion("gfx3")->bytes(); | |
| 4468 | rom = memregion("gfx3")->base(); | |
| 4469 | len = memregion("gfx3")->bytes(); | |
| 4470 | 4470 | for (A = 0;A < len;A++) |
| 4471 | 4471 | { |
| 4472 | 4472 | rom[A] = decode_byte( rom[A], decode_data_tdragonbgfx[0]); |
| r21033 | r21034 | |
| 4485 | 4485 | {0x7,0x6,0x5,0x3,0x4,0x2,0x1,0x0}, |
| 4486 | 4486 | }; |
| 4487 | 4487 | |
| 4488 | rom = machine().root_device().memregion("gfx2")->base(); | |
| 4489 | len = machine().root_device().memregion("gfx2")->bytes(); | |
| 4488 | rom = memregion("gfx2")->base(); | |
| 4489 | len = memregion("gfx2")->bytes(); | |
| 4490 | 4490 | for (A = 0;A < len;A++) |
| 4491 | 4491 | { |
| 4492 | 4492 | rom[A] = decode_byte( rom[A], decode_data_tdragonbgfx[0]); |
| 4493 | 4493 | } |
| 4494 | 4494 | |
| 4495 | rom = machine().root_device().memregion("gfx3")->base(); | |
| 4496 | len = machine().root_device().memregion("gfx3")->bytes(); | |
| 4495 | rom = memregion("gfx3")->base(); | |
| 4496 | len = memregion("gfx3")->bytes(); | |
| 4497 | 4497 | for (A = 0;A < len;A++) |
| 4498 | 4498 | { |
| 4499 | 4499 | rom[A] = decode_byte( rom[A], decode_data_tdragonbgfx[0]); |
| r21033 | r21034 | |
| 4508 | 4508 | |
| 4509 | 4509 | DRIVER_INIT_MEMBER(nmk16_state,hachamf) |
| 4510 | 4510 | { |
| 4511 | UINT16 *rom = (UINT16 *)m | |
| 4511 | UINT16 *rom = (UINT16 *)memregion("maincpu")->base(); | |
| 4512 | 4512 | |
| 4513 | 4513 | //rom[0x0006/2] = 0x7dc2; /* replace reset vector with the "real" one */ |
| 4514 | 4514 | |
| r21033 | r21034 | |
| 4524 | 4524 | |
| 4525 | 4525 | DRIVER_INIT_MEMBER(nmk16_state,tdragon) |
| 4526 | 4526 | { |
| 4527 | UINT16 *rom = (UINT16 *)m | |
| 4527 | UINT16 *rom = (UINT16 *)memregion("maincpu")->base(); | |
| 4528 | 4528 | |
| 4529 | 4529 | //rom[0x94b0/2] = 0; /* Patch out JMP to shared memory (protection) */ |
| 4530 | 4530 | //rom[0x94b2/2] = 0x92f4; |
| r21033 | r21034 | |
| 4557 | 4557 | * 008F7E: 207C 000F 9000 movea.l #$f9000, A0 |
| 4558 | 4558 | */ |
| 4559 | 4559 | #if 0 |
| 4560 | UINT16 *rom = (UINT16 *)m | |
| 4560 | UINT16 *rom = (UINT16 *)memregion("maincpu")->base(); | |
| 4561 | 4561 | rom[0x09172/2] = 0x6006; /* patch checksum error */ |
| 4562 | 4562 | rom[0x08f74/2] = 0x4e71; |
| 4563 | 4563 | #endif |
| r21033 | r21034 | |
|---|---|---|
| 534 | 534 | |
| 535 | 535 | MACHINE_START_MEMBER(champbwl_state,doraemon) |
| 536 | 536 | { |
| 537 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 538 | machine().root_device().membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000); | |
| 537 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 538 | membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000); | |
| 539 | 539 | } |
| 540 | 540 | |
| 541 | 541 | static MACHINE_CONFIG_START( doraemon, champbwl_state ) |
| r21033 | r21034 | |
|---|---|---|
| 89 | 89 | |
| 90 | 90 | void skyarmy_state::palette_init() |
| 91 | 91 | { |
| 92 | const UINT8 *color_prom = m | |
| 92 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 93 | 93 | int i; |
| 94 | 94 | |
| 95 | 95 | for (i = 0;i < 32;i++) |
| r21033 | r21034 | |
|---|---|---|
| 14 | 14 | |
| 15 | 15 | DRIVER_INIT_MEMBER(poolshrk_state,poolshrk) |
| 16 | 16 | { |
| 17 | UINT8* pSprite = machine().root_device().memregion("gfx1")->base(); | |
| 18 | UINT8* pOffset = machine().root_device().memregion("proms")->base(); | |
| 17 | UINT8* pSprite = memregion("gfx1")->base(); | |
| 18 | UINT8* pOffset = memregion("proms")->base(); | |
| 19 | 19 | |
| 20 | 20 | int i; |
| 21 | 21 | int j; |
| r21033 | r21034 | |
|---|---|---|
| 143 | 143 | DRIVER_INIT_MEMBER(forte2_state,pesadelo) |
| 144 | 144 | { |
| 145 | 145 | int i; |
| 146 | UINT8 *mem = machine().root_device().memregion("maincpu")->base(); | |
| 147 | int memsize = machine().root_device().memregion("maincpu")->bytes(); | |
| 146 | UINT8 *mem = memregion("maincpu")->base(); | |
| 147 | int memsize = memregion("maincpu")->bytes(); | |
| 148 | 148 | UINT8 *buf; |
| 149 | 149 | |
| 150 | 150 | // data swap |
| r21033 | r21034 | |
|---|---|---|
| 307 | 307 | |
| 308 | 308 | DRIVER_INIT_MEMBER(battlex_state,battlex) |
| 309 | 309 | { |
| 310 | UINT8 *colormask = machine().root_device().memregion("user1")->base(); | |
| 311 | UINT8 *gfxdata = machine().root_device().memregion("user2")->base(); | |
| 312 | UINT8 *dest = machine().root_device().memregion("gfx1")->base(); | |
| 310 | UINT8 *colormask = memregion("user1")->base(); | |
| 311 | UINT8 *gfxdata = memregion("user2")->base(); | |
| 312 | UINT8 *dest = memregion("gfx1")->base(); | |
| 313 | 313 | |
| 314 | 314 | int tile, line, bit; |
| 315 | 315 |
| r21033 | r21034 | |
|---|---|---|
| 47 | 47 | |
| 48 | 48 | void fgoal_state::palette_init() |
| 49 | 49 | { |
| 50 | const UINT8 *color_prom = m | |
| 50 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 51 | 51 | int i; |
| 52 | 52 | |
| 53 | 53 | /* for B/W screens PCB can be jumpered to use lower half of PROM */ |
| r21033 | r21034 | |
|---|---|---|
| 447 | 447 | // copied from elsewhere. surely incorrect |
| 448 | 448 | void dmndrby_state::palette_init() |
| 449 | 449 | { |
| 450 | const UINT8 *color_prom = m | |
| 450 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 451 | 451 | static const int resistances_rg[3] = { 1000, 470, 220 }; |
| 452 | 452 | static const int resistances_b [2] = { 470, 220 }; |
| 453 | 453 | double rweights[3], gweights[3], bweights[2]; |
| r21033 | r21034 | |
| 489 | 489 | } |
| 490 | 490 | |
| 491 | 491 | /* color_prom now points to the beginning of the lookup table */ |
| 492 | color_prom = m | |
| 492 | color_prom = memregion("proms2")->base(); | |
| 493 | 493 | |
| 494 | 494 | /* normal tiles use colors 0-15 */ |
| 495 | 495 | for (i = 0x000; i < 0x300; i++) |
| r21033 | r21034 | |
|---|---|---|
| 491 | 491 | break; |
| 492 | 492 | } |
| 493 | 493 | |
| 494 | m_rambase[0x004] = machine().root_device().ioport("IN2")->read(); | |
| 495 | m_rambase[0x005] = machine().root_device().ioport("IN1")->read(); | |
| 496 | m_rambase[0x006] = machine().root_device().ioport("IN0")->read(); | |
| 494 | m_rambase[0x004] = ioport("IN2")->read(); | |
| 495 | m_rambase[0x005] = ioport("IN1")->read(); | |
| 496 | m_rambase[0x006] = ioport("IN0")->read(); | |
| 497 | 497 | } |
| 498 | 498 | |
| 499 | 499 | static MACHINE_CONFIG_DERIVED( yamyam, gundealr ) |
| r21033 | r21034 | |
|---|---|---|
| 518 | 518 | { |
| 519 | 519 | UINT8 *decrypted = konami1_decode(machine(), "maincpu"); |
| 520 | 520 | |
| 521 | machine().root_device().membank("bank1")->configure_entries(0, 16, machine().root_device().memregion("maincpu")->base() + 0x10000, 0x1000); | |
| 522 | machine().root_device().membank("bank1")->configure_decrypted_entries(0, 16, decrypted + 0x10000, 0x1000); | |
| 521 | membank("bank1")->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x1000); | |
| 522 | membank("bank1")->configure_decrypted_entries(0, 16, decrypted + 0x10000, 0x1000); | |
| 523 | 523 | } |
| 524 | 524 | |
| 525 | 525 |
| r21033 | r21034 | |
|---|---|---|
| 724 | 724 | |
| 725 | 725 | void voyager_state::machine_reset() |
| 726 | 726 | { |
| 727 | //machine().root_device().membank("bank1")->set_base(machine().root_device().memregion("bios")->base() + 0x10000); | |
| 728 | machine().root_device().membank("bank1")->set_base(machine().root_device().memregion("bios")->base()); | |
| 727 | //membank("bank1")->set_base(memregion("bios")->base() + 0x10000); | |
| 728 | membank("bank1")->set_base(memregion("bios")->base()); | |
| 729 | 729 | } |
| 730 | 730 | |
| 731 | 731 | static void set_gate_a20(running_machine &machine, int a20) |
| r21033 | r21034 | |
|---|---|---|
| 477 | 477 | |
| 478 | 478 | DRIVER_INIT_MEMBER(drgnmst_state,drgnmst) |
| 479 | 479 | { |
| 480 | UINT8 *drgnmst_PICROM_HEX = machine().root_device().memregion("user1")->base(); | |
| 481 | UINT16 *drgnmst_PICROM = (UINT16 *)machine().root_device().memregion("audiocpu")->base(); | |
| 482 | UINT8 *drgnmst_PCM = machine().root_device().memregion("oki1")->base(); | |
| 480 | UINT8 *drgnmst_PICROM_HEX = memregion("user1")->base(); | |
| 481 | UINT16 *drgnmst_PICROM = (UINT16 *)memregion("audiocpu")->base(); | |
| 482 | UINT8 *drgnmst_PCM = memregion("oki1")->base(); | |
| 483 | 483 | INT32 offs, data; |
| 484 | 484 | UINT16 src_pos = 0; |
| 485 | 485 | UINT16 dst_pos = 0; |
| r21033 | r21034 | |
|---|---|---|
| 59 | 59 | |
| 60 | 60 | DRIVER_INIT_MEMBER(nbmj8688_state,mjcamera) |
| 61 | 61 | { |
| 62 | UINT8 *rom = machine().root_device().memregion("voice")->base() + 0x20000; | |
| 63 | UINT8 *prot = machine().root_device().memregion("user1")->base(); | |
| 62 | UINT8 *rom = memregion("voice")->base() + 0x20000; | |
| 63 | UINT8 *prot = memregion("user1")->base(); | |
| 64 | 64 | int i; |
| 65 | 65 | |
| 66 | 66 | /* this is one possible way to rearrange the protection ROM data to get the |
| r21033 | r21034 | |
| 79 | 79 | DRIVER_INIT_MEMBER(nbmj8688_state,kanatuen) |
| 80 | 80 | { |
| 81 | 81 | /* uses the same protection data as mjcamer, but a different check */ |
| 82 | UINT8 *rom = m | |
| 82 | UINT8 *rom = memregion("voice")->base() + 0x30000; | |
| 83 | 83 | |
| 84 | 84 | rom[0x0004] = 0x09; |
| 85 | 85 | rom[0x0103] = 0x0e; |
| r21033 | r21034 | |
| 93 | 93 | { |
| 94 | 94 | #if 1 |
| 95 | 95 | /* uses the same protection data as ????, but a different check */ |
| 96 | UINT8 *rom = m | |
| 96 | UINT8 *rom = memregion("maincpu")->base(); | |
| 97 | 97 | |
| 98 | 98 | rom[0x0149] = 0x00; |
| 99 | 99 | rom[0x014a] = 0x00; |
| r21033 | r21034 | |
| 105 | 105 | |
| 106 | 106 | DRIVER_INIT_MEMBER(nbmj8688_state,idhimitu) |
| 107 | 107 | { |
| 108 | UINT8 *rom = machine().root_device().memregion("voice")->base() + 0x20000; | |
| 109 | UINT8 *prot = machine().root_device().memregion("user1")->base(); | |
| 108 | UINT8 *rom = memregion("voice")->base() + 0x20000; | |
| 109 | UINT8 *prot = memregion("user1")->base(); | |
| 110 | 110 | int i; |
| 111 | 111 | |
| 112 | 112 | /* this is one possible way to rearrange the protection ROM data to get the |
| r21033 | r21034 | |
| 130 | 130 | |
| 131 | 131 | DRIVER_INIT_MEMBER(nbmj8688_state,kaguya2) |
| 132 | 132 | { |
| 133 | UINT8 *rom = machine().root_device().memregion("voice")->base() + 0x20000; | |
| 134 | UINT8 *prot = machine().root_device().memregion("user1")->base(); | |
| 133 | UINT8 *rom = memregion("voice")->base() + 0x20000; | |
| 134 | UINT8 *prot = memregion("user1")->base(); | |
| 135 | 135 | int i; |
| 136 | 136 | |
| 137 | 137 | /* this is one possible way to rearrange the protection ROM data to get the |
| r21033 | r21034 | |
|---|---|---|
| 524 | 524 | |
| 525 | 525 | DRIVER_INIT_MEMBER(hitpoker_state,hitpoker) |
| 526 | 526 | { |
| 527 | UINT8 *ROM = m | |
| 527 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 528 | 528 | |
| 529 | 529 | // init nvram |
| 530 | 530 | machine().device<nvram_device>("nvram")->set_base(m_eeprom_data, sizeof(m_eeprom_data)); |
| r21033 | r21034 | |
|---|---|---|
| 184 | 184 | |
| 185 | 185 | int vicdual_state::vicdual_is_cabinet_color() |
| 186 | 186 | { |
| 187 | return ( | |
| 187 | return (ioport(COLOR_BW_PORT_TAG)->read_safe(0) & 1) ? 0 : 1; | |
| 188 | 188 | } |
| 189 | 189 | |
| 190 | 190 |
| r21033 | r21034 | |
|---|---|---|
| 373 | 373 | UINT16 *rom; |
| 374 | 374 | |
| 375 | 375 | /* main cpu patches */ |
| 376 | rom = (UINT16 *)m | |
| 376 | rom = (UINT16 *)memregion("maincpu")->base(); | |
| 377 | 377 | /* avoid writes to rom getting to the log */ |
| 378 | 378 | rom[0x408 / 2] = 0x6000; |
| 379 | 379 | rom[0x40a / 2] = 0x001c; |
| r21033 | r21034 | |
| 381 | 381 | |
| 382 | 382 | /* sound cpu patches */ |
| 383 | 383 | /* let's clear the RAM: ROM starts at 0x4000 */ |
| 384 | memset(m | |
| 384 | memset(memregion("audiocpu")->base(), 0, 0x800); | |
| 385 | 385 | } |
| 386 | 386 | |
| 387 | 387 |
| r21033 | r21034 | |
|---|---|---|
| 28 | 28 | |
| 29 | 29 | WRITE8_MEMBER(tail2nos_state::sound_bankswitch_w) |
| 30 | 30 | { |
| 31 | m | |
| 31 | membank("bank3")->set_entry(data & 0x01); | |
| 32 | 32 | } |
| 33 | 33 | |
| 34 | 34 | static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, tail2nos_state ) |
| r21033 | r21034 | |
|---|---|---|
| 717 | 717 | DRIVER_INIT_MEMBER(slapshot_state,slapshot) |
| 718 | 718 | { |
| 719 | 719 | UINT32 offset,i; |
| 720 | UINT8 *gfx = machine().root_device().memregion("gfx2")->base(); | |
| 721 | int size = machine().root_device().memregion("gfx2")->bytes(); | |
| 720 | UINT8 *gfx = memregion("gfx2")->base(); | |
| 721 | int size = memregion("gfx2")->bytes(); | |
| 722 | 722 | int data; |
| 723 | 723 | |
| 724 | 724 | offset = size / 2; |
| r21033 | r21034 | |
|---|---|---|
| 36 | 36 | INTERRUPT_GEN_MEMBER(thief_state::thief_interrupt) |
| 37 | 37 | { |
| 38 | 38 | /* SLAM switch causes an NMI if it's pressed */ |
| 39 | if( ( | |
| 39 | if( (ioport("P2")->read() & 0x10) == 0 ) | |
| 40 | 40 | device.execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); |
| 41 | 41 | else |
| 42 | 42 | device.execute().set_input_line(0, HOLD_LINE); |
| r21033 | r21034 | |
| 634 | 634 | |
| 635 | 635 | DRIVER_INIT_MEMBER(thief_state,thief) |
| 636 | 636 | { |
| 637 | UINT8 *dest = machine().root_device().memregion( "maincpu" )->base(); | |
| 638 | const UINT8 *source = machine().root_device().memregion( "cpu1" )->base(); | |
| 637 | UINT8 *dest = memregion( "maincpu" )->base(); | |
| 638 | const UINT8 *source = memregion( "cpu1" )->base(); | |
| 639 | 639 | |
| 640 | 640 | /* C8 is mapped (banked) in CPU1's address space; it contains Z80 code */ |
| 641 | 641 | memcpy( &dest[0xe010], &source[0x290], 0x20 ); |
| r21033 | r21034 | |
|---|---|---|
| 62 | 62 | device_t *audiocpu = machine().device("audiocpu"); |
| 63 | 63 | if (audiocpu != NULL && audiocpu->type() == Z80) |
| 64 | 64 | { |
| 65 | machine().root_device().membank("bank1")->configure_entries(0, 4, machine().root_device().memregion("audiocpu")->base() + 0x8000, 0x8000); | |
| 66 | machine().root_device().membank("bank1")->set_entry(0); | |
| 65 | membank("bank1")->configure_entries(0, 4, memregion("audiocpu")->base() + 0x8000, 0x8000); | |
| 66 | membank("bank1")->set_entry(0); | |
| 67 | 67 | } |
| 68 | 68 | MACHINE_RESET_CALL_LEGACY(nb1413m3); |
| 69 | 69 | } |
| r21033 | r21034 | |
| 100 | 100 | |
| 101 | 101 | DRIVER_INIT_MEMBER(nbmj8991_state,finalbny) |
| 102 | 102 | { |
| 103 | UINT8 *ROM = m | |
| 103 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 104 | 104 | int i; |
| 105 | 105 | |
| 106 | 106 | for (i = 0xf800; i < 0x10000; i++) ROM[i] = 0x00; |
| r21033 | r21034 | |
| 126 | 126 | DRIVER_INIT_MEMBER(nbmj8991_state,galkaika) |
| 127 | 127 | { |
| 128 | 128 | #if 1 |
| 129 | UINT8 *ROM = m | |
| 129 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 130 | 130 | |
| 131 | 131 | // Patch to IM2 -> IM1 |
| 132 | 132 | ROM[0x0002] = 0x56; |
| r21033 | r21034 | |
| 137 | 137 | DRIVER_INIT_MEMBER(nbmj8991_state,tokyogal) |
| 138 | 138 | { |
| 139 | 139 | #if 1 |
| 140 | UINT8 *ROM = m | |
| 140 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 141 | 141 | |
| 142 | 142 | // Patch to IM2 -> IM1 |
| 143 | 143 | ROM[0x0002] = 0x56; |
| r21033 | r21034 | |
| 148 | 148 | DRIVER_INIT_MEMBER(nbmj8991_state,tokimbsj) |
| 149 | 149 | { |
| 150 | 150 | #if 1 |
| 151 | UINT8 *ROM = m | |
| 151 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 152 | 152 | |
| 153 | 153 | // Patch to IM2 -> IM1 |
| 154 | 154 | ROM[0x0002] = 0x56; |
| r21033 | r21034 | |
|---|---|---|
| 117 | 117 | |
| 118 | 118 | void meyc8088_state::palette_init() |
| 119 | 119 | { |
| 120 | const UINT8 *color_prom = m | |
| 120 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 121 | 121 | rgb_t *rgb; |
| 122 | 122 | |
| 123 | 123 | rgb = compute_res_net_all(machine(), color_prom, &meyc8088_decode_info, &meyc8088_net_info); |
| r21033 | r21034 | |
|---|---|---|
| 284 | 284 | { |
| 285 | 285 | int i; |
| 286 | 286 | unsigned rom_size = 0x80000; |
| 287 | UINT8 *src = (UINT8 *) (m | |
| 287 | UINT8 *src = (UINT8 *) (memregion("gfx1")->base()); | |
| 288 | 288 | UINT8 *result_data = auto_alloc_array(machine(), UINT8, rom_size); |
| 289 | 289 | |
| 290 | 290 | for (i=0; i<rom_size; i++) |
| r21033 | r21034 | |
| 844 | 844 | |
| 845 | 845 | void igs_m027_state::pgm_create_dummy_internal_arm_region() |
| 846 | 846 | { |
| 847 | UINT16 *temp16 = (UINT16 *)m | |
| 847 | UINT16 *temp16 = (UINT16 *)memregion("maincpu")->base(); | |
| 848 | 848 | |
| 849 | 849 | // fill with RX 14 |
| 850 | 850 | int i; |
| r21033 | r21034 | |
|---|---|---|
| 118 | 118 | DRIVER_INIT_MEMBER(md_boot_state,hshavoc) |
| 119 | 119 | { |
| 120 | 120 | int x; |
| 121 | UINT16 *src = (UINT16 *)m | |
| 121 | UINT16 *src = (UINT16 *)memregion("maincpu")->base(); | |
| 122 | 122 | |
| 123 | 123 | static const UINT16 typedat[16] = { |
| 124 | 124 | 1,1,1,1, 1,1,1,1, |
| r21033 | r21034 | |
|---|---|---|
| 2379 | 2379 | |
| 2380 | 2380 | DRIVER_INIT_MEMBER(subsino2_state,bishjan) |
| 2381 | 2381 | { |
| 2382 | UINT16 *rom = (UINT16*)m | |
| 2382 | UINT16 *rom = (UINT16*)memregion("maincpu")->base(); | |
| 2383 | 2383 | |
| 2384 | 2384 | // patch serial protection test (it always enters test mode on boot otherwise) |
| 2385 | 2385 | rom[0x042EA/2] = 0x4008; |
| r21033 | r21034 | |
| 2443 | 2443 | |
| 2444 | 2444 | DRIVER_INIT_MEMBER(subsino2_state,expcard) |
| 2445 | 2445 | { |
| 2446 | UINT8 *rom = m | |
| 2446 | UINT8 *rom = memregion("maincpu")->base(); | |
| 2447 | 2447 | |
| 2448 | 2448 | // patch protection test (it always enters test mode on boot otherwise) |
| 2449 | 2449 | rom[0xed4dc-0xc0000] = 0xeb; |
| r21033 | r21034 | |
| 2541 | 2541 | subsino_decrypt(machine(), crsbingo_bitswaps, crsbingo_xors, 0x8000); |
| 2542 | 2542 | |
| 2543 | 2543 | // patch serial protection test (it always enters test mode on boot otherwise) |
| 2544 | UINT8 *rom = m | |
| 2544 | UINT8 *rom = memregion("maincpu")->base(); | |
| 2545 | 2545 | rom[0x0cec] = 0x18; |
| 2546 | 2546 | rom[0xb037] = 0x18; |
| 2547 | 2547 | |
| r21033 | r21034 | |
| 2595 | 2595 | |
| 2596 | 2596 | DRIVER_INIT_MEMBER(subsino2_state,saklove) |
| 2597 | 2597 | { |
| 2598 | UINT8 *rom = m | |
| 2598 | UINT8 *rom = memregion("maincpu")->base(); | |
| 2599 | 2599 | |
| 2600 | 2600 | // patch serial protection test (it always enters test mode on boot otherwise) |
| 2601 | 2601 | rom[0x0e029] = 0xeb; |
| r21033 | r21034 | |
| 2655 | 2655 | |
| 2656 | 2656 | DRIVER_INIT_MEMBER(subsino2_state,xplan) |
| 2657 | 2657 | { |
| 2658 | UINT8 *rom = m | |
| 2658 | UINT8 *rom = memregion("maincpu")->base(); | |
| 2659 | 2659 | |
| 2660 | 2660 | // patch protection test (it always enters test mode on boot otherwise) |
| 2661 | 2661 | rom[0xeded9-0xc0000] = 0xeb; |
| r21033 | r21034 | |
| 2715 | 2715 | |
| 2716 | 2716 | DRIVER_INIT_MEMBER(subsino2_state,xtrain) |
| 2717 | 2717 | { |
| 2718 | UINT8 *rom = m | |
| 2718 | UINT8 *rom = memregion("maincpu")->base(); | |
| 2719 | 2719 | |
| 2720 | 2720 | // patch protection test (it always enters test mode on boot otherwise) |
| 2721 | 2721 | rom[0xe190f-0xc0000] = 0xeb; |
| r21033 | r21034 | |
| 2760 | 2760 | subsino_decrypt(machine(), victor5_bitswaps, victor5_xors, 0x8000); |
| 2761 | 2761 | |
| 2762 | 2762 | // patch serial protection test (it always enters test mode on boot otherwise) |
| 2763 | UINT8 *rom = m | |
| 2763 | UINT8 *rom = memregion("maincpu")->base(); | |
| 2764 | 2764 | rom[0x0d79] = 0x18; |
| 2765 | 2765 | rom[0xc1cf] = 0x18; |
| 2766 | 2766 | rom[0xc2a9] = 0x18; |
| r21033 | r21034 | |
|---|---|---|
| 630 | 630 | |
| 631 | 631 | void tecmosys_state::tecmosys_descramble() |
| 632 | 632 | { |
| 633 | UINT8 *gfxsrc = machine().root_device().memregion( "gfx1" )->base(); | |
| 634 | size_t srcsize = machine().root_device().memregion( "gfx1" )->bytes(); | |
| 633 | UINT8 *gfxsrc = memregion( "gfx1" )->base(); | |
| 634 | size_t srcsize = memregion( "gfx1" )->bytes(); | |
| 635 | 635 | int i; |
| 636 | 636 | |
| 637 | 637 | for (i=0; i < srcsize; i+=4) |
| r21033 | r21034 | |
|---|---|---|
| 1620 | 1620 | DRIVER_INIT_MEMBER(cps_state, sf2mdt) |
| 1621 | 1621 | { |
| 1622 | 1622 | int i; |
| 1623 | UINT32 gfx_size = machine().root_device().memregion( "gfx" )->bytes(); | |
| 1624 | UINT8 *rom = machine().root_device().memregion( "gfx" )->base(); | |
| 1623 | UINT32 gfx_size = memregion( "gfx" )->bytes(); | |
| 1624 | UINT8 *rom = memregion( "gfx" )->base(); | |
| 1625 | 1625 | UINT8 tmp; |
| 1626 | 1626 | |
| 1627 | 1627 | for( i = 0; i < gfx_size; i += 8 ) |
| r21033 | r21034 | |
|---|---|---|
| 307 | 307 | |
| 308 | 308 | /* select the bank and update the bank pointer */ |
| 309 | 309 | m_bank = bank; |
| 310 | membank("bank1")->set_base(&m | |
| 310 | membank("bank1")->set_base(&memregion("maincpu")->base()[0x10000 + m_bank * 0x4000]); | |
| 311 | 311 | } |
| 312 | 312 | |
| 313 | 313 |
| r21033 | r21034 | |
|---|---|---|
| 124 | 124 | if (ACCESSING_BITS_0_7) |
| 125 | 125 | { |
| 126 | 126 | UINT8 *ROM = memregion( "x1snd" )->base(); |
| 127 | int banks = (m | |
| 127 | int banks = (memregion( "x1snd" )->bytes() - 0x100000) / 0x20000; | |
| 128 | 128 | if (data >= banks) |
| 129 | 129 | { |
| 130 | 130 | logerror("CPU #0 PC %06X: invalid sound bank %04X\n",space.device().safe_pc(),data); |
| r21033 | r21034 | |
| 2175 | 2175 | } |
| 2176 | 2176 | else |
| 2177 | 2177 | { |
| 2178 | UINT8 press = | |
| 2178 | UINT8 press = ioport("TOUCH_PRESS")->read(); | |
| 2179 | 2179 | UINT8 release = m_funcube_press && !press; |
| 2180 | 2180 | |
| 2181 | 2181 | if ( press || release ) |
| 2182 | 2182 | { |
| 2183 | 2183 | m_funcube_serial_fifo[0] = press ? 0xfe : 0xfd; |
| 2184 | m_funcube_serial_fifo[1] = machine().root_device().ioport("TOUCH_X")->read(); | |
| 2185 | m_funcube_serial_fifo[2] = machine().root_device().ioport("TOUCH_Y")->read(); | |
| 2184 | m_funcube_serial_fifo[1] = ioport("TOUCH_X")->read(); | |
| 2185 | m_funcube_serial_fifo[2] = ioport("TOUCH_Y")->read(); | |
| 2186 | 2186 | m_funcube_serial_fifo[3] = 0xff; |
| 2187 | 2187 | m_funcube_serial_count = 4; |
| 2188 | 2188 | } |
| r21033 | r21034 | |
| 2491 | 2491 | |
| 2492 | 2492 | DRIVER_INIT_MEMBER(seta2_state,funcube) |
| 2493 | 2493 | { |
| 2494 | UINT32 *main_cpu = (UINT32 *) machine().root_device().memregion("maincpu")->base(); | |
| 2495 | UINT16 *sub_cpu = (UINT16 *) machine().root_device().memregion("sub")->base(); | |
| 2494 | UINT32 *main_cpu = (UINT32 *) memregion("maincpu")->base(); | |
| 2495 | UINT16 *sub_cpu = (UINT16 *) memregion("sub")->base(); | |
| 2496 | 2496 | |
| 2497 | 2497 | main_cpu[0x064/4] = 0x0000042a; // PIC protection? |
| 2498 | 2498 | |
| r21033 | r21034 | |
| 2502 | 2502 | |
| 2503 | 2503 | DRIVER_INIT_MEMBER(seta2_state,funcube2) |
| 2504 | 2504 | { |
| 2505 | UINT32 *main_cpu = (UINT32 *) machine().root_device().memregion("maincpu")->base(); | |
| 2506 | UINT16 *sub_cpu = (UINT16 *) machine().root_device().memregion("sub")->base(); | |
| 2505 | UINT32 *main_cpu = (UINT32 *) memregion("maincpu")->base(); | |
| 2506 | UINT16 *sub_cpu = (UINT16 *) memregion("sub")->base(); | |
| 2507 | 2507 | |
| 2508 | 2508 | main_cpu[0xa5c/4] = 0x4e713e3c; // PIC protection? |
| 2509 | 2509 | main_cpu[0xa74/4] = 0x4e713e3c; |
| r21033 | r21034 | |
| 2515 | 2515 | |
| 2516 | 2516 | DRIVER_INIT_MEMBER(seta2_state,funcube3) |
| 2517 | 2517 | { |
| 2518 | UINT32 *main_cpu = (UINT32 *) machine().root_device().memregion("maincpu")->base(); | |
| 2519 | UINT16 *sub_cpu = (UINT16 *) machine().root_device().memregion("sub")->base(); | |
| 2518 | UINT32 *main_cpu = (UINT32 *) memregion("maincpu")->base(); | |
| 2519 | UINT16 *sub_cpu = (UINT16 *) memregion("sub")->base(); | |
| 2520 | 2520 | |
| 2521 | 2521 | main_cpu[0x008bc/4] = 0x4a804e71; |
| 2522 | 2522 | main_cpu[0x19f0c/4] = 0x4e714e71; |
| r21033 | r21034 | |
|---|---|---|
| 434 | 434 | void jongkyo_state::palette_init() |
| 435 | 435 | { |
| 436 | 436 | int i; |
| 437 | UINT8* proms = m | |
| 437 | UINT8* proms = memregion("proms")->base(); | |
| 438 | 438 | for (i = 0; i < 0x40; i++) |
| 439 | 439 | { |
| 440 | 440 | int data = proms[i]; |
| r21033 | r21034 | |
| 546 | 546 | DRIVER_INIT_MEMBER(jongkyo_state,jongkyo) |
| 547 | 547 | { |
| 548 | 548 | int i; |
| 549 | UINT8 *rom = m | |
| 549 | UINT8 *rom = memregion("maincpu")->base(); | |
| 550 | 550 | |
| 551 | 551 | /* first of all, do a simple bitswap */ |
| 552 | 552 | for (i = 0x6000; i < 0x9000; ++i) |
| r21033 | r21034 | |
|---|---|---|
| 968 | 968 | |
| 969 | 969 | DRIVER_INIT_MEMBER(dassault_state,dassault) |
| 970 | 970 | { |
| 971 | const UINT8 *src = machine().root_device().memregion("gfx1")->base(); | |
| 972 | UINT8 *dst = machine().root_device().memregion("gfx2")->base(); | |
| 971 | const UINT8 *src = memregion("gfx1")->base(); | |
| 972 | UINT8 *dst = memregion("gfx2")->base(); | |
| 973 | 973 | UINT8 *tmp = auto_alloc_array(machine(), UINT8, 0x80000); |
| 974 | 974 | |
| 975 | 975 | /* Playfield 4 also has access to the char graphics, make things easier |
| r21033 | r21034 | |
| 985 | 985 | |
| 986 | 986 | DRIVER_INIT_MEMBER(dassault_state,thndzone) |
| 987 | 987 | { |
| 988 | const UINT8 *src = machine().root_device().memregion("gfx1")->base(); | |
| 989 | UINT8 *dst = machine().root_device().memregion("gfx2")->base(); | |
| 988 | const UINT8 *src = memregion("gfx1")->base(); | |
| 989 | UINT8 *dst = memregion("gfx2")->base(); | |
| 990 | 990 | UINT8 *tmp = auto_alloc_array(machine(), UINT8, 0x80000); |
| 991 | 991 | |
| 992 | 992 | /* Playfield 4 also has access to the char graphics, make things easier |
| r21033 | r21034 | |
|---|---|---|
| 207 | 207 | { |
| 208 | 208 | int i, j, tmp; |
| 209 | 209 | int tmpram[16]; |
| 210 | UINT8 *rom = machine().root_device().memregion("maincpu")->base(); | |
| 211 | UINT8 *usr = machine().root_device().memregion("user1")->base(); | |
| 212 | UINT8 *gfx = machine().root_device().memregion("gfx1")->base(); | |
| 210 | UINT8 *rom = memregion("maincpu")->base(); | |
| 211 | UINT8 *usr = memregion("user1")->base(); | |
| 212 | UINT8 *gfx = memregion("gfx1")->base(); | |
| 213 | 213 | |
| 214 | 214 | // Bit swap addresses |
| 215 | 215 | for(i=0; i<4096*4; i++) { |
| r21033 | r21034 | |
|---|---|---|
| 1149 | 1149 | |
| 1150 | 1150 | READ32_MEMBER(model2_state::maxx_r) |
| 1151 | 1151 | { |
| 1152 | UINT32 *ROM = (UINT32 *)m | |
| 1152 | UINT32 *ROM = (UINT32 *)memregion("maincpu")->base(); | |
| 1153 | 1153 | |
| 1154 | 1154 | if (offset <= 0x1f/4) |
| 1155 | 1155 | { |
| r21033 | r21034 | |
| 1845 | 1845 | WRITE16_MEMBER(model2_state::model2snd_ctrl) |
| 1846 | 1846 | { |
| 1847 | 1847 | // handle sample banking |
| 1848 | if (m | |
| 1848 | if (memregion("scsp")->bytes() > 0x800000) | |
| 1849 | 1849 | { |
| 1850 | 1850 | UINT8 *snd = memregion("scsp")->base(); |
| 1851 | 1851 | if (data & 0x20) |
| r21033 | r21034 | |
|---|---|---|
| 1534 | 1534 | |
| 1535 | 1535 | logerror("baseboard: read sector lba %08x\n",lba); |
| 1536 | 1536 | off=(lba&0x7ff)*512; |
| 1537 | data=m | |
| 1537 | data=memregion("others")->base(); | |
| 1538 | 1538 | memcpy(buffer,data+off,512); |
| 1539 | 1539 | return 1; |
| 1540 | 1540 | } |
| r21033 | r21034 | |
|---|---|---|
| 508 | 508 | |
| 509 | 509 | DRIVER_INIT_MEMBER(blmbycar_state,blmbycar) |
| 510 | 510 | { |
| 511 | UINT16 *RAM = (UINT16 *) machine().root_device().memregion("maincpu")->base(); | |
| 512 | size_t size = machine().root_device().memregion("maincpu")->bytes() / 2; | |
| 511 | UINT16 *RAM = (UINT16 *) memregion("maincpu")->base(); | |
| 512 | size_t size = memregion("maincpu")->bytes() / 2; | |
| 513 | 513 | int i; |
| 514 | 514 | |
| 515 | 515 | for (i = 0; i < size; i++) |
| r21033 | r21034 | |
|---|---|---|
| 164 | 164 | m_last = ioport("INPUT")->read() & 0x0f; |
| 165 | 165 | generic_pulse_irq_line(device.execute(), 0, 1); |
| 166 | 166 | } |
| 167 | m_pia_u1->set_a_input(machine().root_device().ioport("INPUT")->read() & 0x0f, 0); | |
| 168 | m_pia_u1->ca1_w(machine().root_device().ioport("INPUT")->read() & 0x10); | |
| 169 | m_pia_u1->ca2_w(machine().root_device().ioport("INPUT")->read() & 0x20); | |
| 167 | m_pia_u1->set_a_input(ioport("INPUT")->read() & 0x0f, 0); | |
| 168 | m_pia_u1->ca1_w(ioport("INPUT")->read() & 0x10); | |
| 169 | m_pia_u1->ca2_w(ioport("INPUT")->read() & 0x20); | |
| 170 | 170 | } |
| 171 | 171 | |
| 172 | 172 | READ8_MEMBER(toratora_state::timer_r) |
| r21033 | r21034 | |
|---|---|---|
| 242 | 242 | DRIVER_INIT_MEMBER(pokechmp_state,pokechmp) |
| 243 | 243 | { |
| 244 | 244 | // default sound rom bank |
| 245 | m | |
| 245 | membank("bank3")->configure_entries(0, 2, memregion("audiocpu")->base() + 0x10000, 0x4000); | |
| 246 | 246 | |
| 247 | 247 | // default fixed area for main CPU |
| 248 | m | |
| 248 | membank("fixed")->set_base( memregion("maincpu")->base() + 0x18000 ); | |
| 249 | 249 | |
| 250 | 250 | // default OKI sample bank |
| 251 | m | |
| 251 | membank("okibank")->set_base( memregion("oki")->base() + 0x40000 ); | |
| 252 | 252 | } |
| 253 | 253 | |
| 254 | 254 |
| r21033 | r21034 | |
|---|---|---|
| 464 | 464 | |
| 465 | 465 | void igs017_state::decrypt_program_rom(int mask, int a7, int a6, int a5, int a4, int a3, int a2, int a1, int a0) |
| 466 | 466 | { |
| 467 | int length = machine().root_device().memregion("maincpu")->bytes(); | |
| 468 | UINT8 *rom = machine().root_device().memregion("maincpu")->base(); | |
| 467 | int length = memregion("maincpu")->bytes(); | |
| 468 | UINT8 *rom = memregion("maincpu")->base(); | |
| 469 | 469 | UINT8 *tmp = auto_alloc_array(machine(), UINT8, length); |
| 470 | 470 | int i; |
| 471 | 471 | |
| r21033 | r21034 | |
| 517 | 517 | |
| 518 | 518 | void igs017_state::iqblocka_patch_rom() |
| 519 | 519 | { |
| 520 | UINT8 *rom = m | |
| 520 | UINT8 *rom = memregion("maincpu")->base(); | |
| 521 | 521 | |
| 522 | 522 | // rom[0x7b64] = 0xc9; |
| 523 | 523 | |
| r21033 | r21034 | |
| 558 | 558 | |
| 559 | 559 | void igs017_state::tjsb_decrypt_sprites() |
| 560 | 560 | { |
| 561 | int length = machine().root_device().memregion("sprites")->bytes(); | |
| 562 | UINT8 *rom = machine().root_device().memregion("sprites")->base(); | |
| 561 | int length = memregion("sprites")->bytes(); | |
| 562 | UINT8 *rom = memregion("sprites")->base(); | |
| 563 | 563 | UINT8 *tmp = auto_alloc_array(machine(), UINT8, length); |
| 564 | 564 | int i, addr; |
| 565 | 565 | |
| r21033 | r21034 | |
| 594 | 594 | void igs017_state::mgcs_decrypt_program_rom() |
| 595 | 595 | { |
| 596 | 596 | int i; |
| 597 | UINT16 *src = (UINT16 *)m | |
| 597 | UINT16 *src = (UINT16 *)memregion("maincpu")->base(); | |
| 598 | 598 | |
| 599 | 599 | int rom_size = 0x80000; |
| 600 | 600 | |
| r21033 | r21034 | |
| 643 | 643 | |
| 644 | 644 | void igs017_state::mgcs_decrypt_tiles() |
| 645 | 645 | { |
| 646 | int length = machine().root_device().memregion("tilemaps")->bytes(); | |
| 647 | UINT8 *rom = machine().root_device().memregion("tilemaps")->base(); | |
| 646 | int length = memregion("tilemaps")->bytes(); | |
| 647 | UINT8 *rom = memregion("tilemaps")->base(); | |
| 648 | 648 | UINT8 *tmp = auto_alloc_array(machine(), UINT8, length); |
| 649 | 649 | int i; |
| 650 | 650 | |
| r21033 | r21034 | |
| 660 | 660 | |
| 661 | 661 | void igs017_state::mgcs_flip_sprites() |
| 662 | 662 | { |
| 663 | int length = machine().root_device().memregion("sprites")->bytes(); | |
| 664 | UINT8 *rom = machine().root_device().memregion("sprites")->base(); | |
| 663 | int length = memregion("sprites")->bytes(); | |
| 664 | UINT8 *rom = memregion("sprites")->base(); | |
| 665 | 665 | int i; |
| 666 | 666 | |
| 667 | 667 | for (i = 0;i < length;i+=2) |
| r21033 | r21034 | |
| 681 | 681 | |
| 682 | 682 | void igs017_state::mgcs_patch_rom() |
| 683 | 683 | { |
| 684 | UINT16 *rom = (UINT16 *)m | |
| 684 | UINT16 *rom = (UINT16 *)memregion("maincpu")->base(); | |
| 685 | 685 | |
| 686 | 686 | rom[0x4e036/2] = 0x6006; |
| 687 | 687 | |
| r21033 | r21034 | |
| 707 | 707 | // decryption is incomplete, the first part of code doesn't seem right. |
| 708 | 708 | DRIVER_INIT_MEMBER(igs017_state,tarzan) |
| 709 | 709 | { |
| 710 | UINT16 *ROM = (UINT16 *)m | |
| 710 | UINT16 *ROM = (UINT16 *)memregion("maincpu")->base(); | |
| 711 | 711 | int i; |
| 712 | 712 | int size = 0x40000; |
| 713 | 713 | |
| r21033 | r21034 | |
| 733 | 733 | // by iq_132 |
| 734 | 734 | DRIVER_INIT_MEMBER(igs017_state,tarzana) |
| 735 | 735 | { |
| 736 | UINT8 *ROM = m | |
| 736 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 737 | 737 | int i; |
| 738 | 738 | int size = 0x80000; |
| 739 | 739 | |
| r21033 | r21034 | |
| 806 | 806 | { |
| 807 | 807 | int size = 0x040000; |
| 808 | 808 | |
| 809 | UINT8 *data = m | |
| 809 | UINT8 *data = memregion("maincpu")->base(); | |
| 810 | 810 | UINT8 *code = auto_alloc_array(machine(), UINT8, size); |
| 811 | 811 | memcpy(code, data, size); |
| 812 | 812 | |
| r21033 | r21034 | |
| 824 | 824 | DRIVER_INIT_MEMBER(igs017_state,sdmg2) |
| 825 | 825 | { |
| 826 | 826 | int i; |
| 827 | UINT16 *src = (UINT16 *)m | |
| 827 | UINT16 *src = (UINT16 *)memregion("maincpu")->base(); | |
| 828 | 828 | |
| 829 | 829 | int rom_size = 0x80000; |
| 830 | 830 | |
| r21033 | r21034 | |
| 881 | 881 | DRIVER_INIT_MEMBER(igs017_state,mgdha) |
| 882 | 882 | { |
| 883 | 883 | int i; |
| 884 | UINT16 *src = (UINT16 *)m | |
| 884 | UINT16 *src = (UINT16 *)memregion("maincpu")->base(); | |
| 885 | 885 | |
| 886 | 886 | int rom_size = 0x80000; |
| 887 | 887 | |
| r21033 | r21034 | |
| 916 | 916 | { |
| 917 | 917 | DRIVER_INIT_CALL(mgdha); |
| 918 | 918 | |
| 919 | UINT16 *rom = (UINT16 *)m | |
| 919 | UINT16 *rom = (UINT16 *)memregion("maincpu")->base(); | |
| 920 | 920 | |
| 921 | 921 | // additional protection |
| 922 | 922 | rom[0x4ad50/2] = 0x4e71; |
| r21033 | r21034 | |
| 928 | 928 | |
| 929 | 929 | void igs017_state::lhzb2_patch_rom() |
| 930 | 930 | { |
| 931 | UINT16 *rom = (UINT16 *)m | |
| 931 | UINT16 *rom = (UINT16 *)memregion("maincpu")->base(); | |
| 932 | 932 | |
| 933 | 933 | // Prot. checks: |
| 934 | 934 | rom[0x14786/2] = 0x6044; // 014786: 6744 beq $147cc |
| r21033 | r21034 | |
| 939 | 939 | |
| 940 | 940 | void igs017_state::lhzb2_decrypt_tiles() |
| 941 | 941 | { |
| 942 | int length = machine().root_device().memregion("tilemaps")->bytes(); | |
| 943 | UINT8 *rom = machine().root_device().memregion("tilemaps")->base(); | |
| 942 | int length = memregion("tilemaps")->bytes(); | |
| 943 | UINT8 *rom = memregion("tilemaps")->base(); | |
| 944 | 944 | UINT8 *tmp = auto_alloc_array(machine(), UINT8, length); |
| 945 | 945 | int i; |
| 946 | 946 | |
| r21033 | r21034 | |
| 957 | 957 | |
| 958 | 958 | void igs017_state::lhzb2_decrypt_sprites() |
| 959 | 959 | { |
| 960 | int length = machine().root_device().memregion("sprites")->bytes(); | |
| 961 | UINT8 *rom = machine().root_device().memregion("sprites")->base(); | |
| 960 | int length = memregion("sprites")->bytes(); | |
| 961 | UINT8 *rom = memregion("sprites")->base(); | |
| 962 | 962 | UINT8 *tmp = auto_alloc_array(machine(), UINT8, length); |
| 963 | 963 | int i, addr; |
| 964 | 964 | |
| r21033 | r21034 | |
| 983 | 983 | DRIVER_INIT_MEMBER(igs017_state,lhzb2) |
| 984 | 984 | { |
| 985 | 985 | int i; |
| 986 | UINT16 *src = (UINT16 *) (m | |
| 986 | UINT16 *src = (UINT16 *) (memregion("maincpu")->base()); | |
| 987 | 987 | |
| 988 | 988 | int rom_size = 0x80000; |
| 989 | 989 | |
| r21033 | r21034 | |
| 1077 | 1077 | DRIVER_INIT_MEMBER(igs017_state,lhzb2a) |
| 1078 | 1078 | { |
| 1079 | 1079 | int i; |
| 1080 | UINT16 *src = (UINT16 *) (m | |
| 1080 | UINT16 *src = (UINT16 *) (memregion("maincpu")->base()); | |
| 1081 | 1081 | |
| 1082 | 1082 | int rom_size = 0x80000; |
| 1083 | 1083 | |
| r21033 | r21034 | |
| 1141 | 1141 | |
| 1142 | 1142 | void igs017_state::slqz2_patch_rom() |
| 1143 | 1143 | { |
| 1144 | UINT16 *rom = (UINT16 *)m | |
| 1144 | UINT16 *rom = (UINT16 *)memregion("maincpu")->base(); | |
| 1145 | 1145 | |
| 1146 | 1146 | // Prot. checks: |
| 1147 | 1147 | rom[0x1489c/2] = 0x6044; // 01489C: 6744 beq $148e2 |
| r21033 | r21034 | |
| 1152 | 1152 | |
| 1153 | 1153 | void igs017_state::slqz2_decrypt_tiles() |
| 1154 | 1154 | { |
| 1155 | int length = machine().root_device().memregion("tilemaps")->bytes(); | |
| 1156 | UINT8 *rom = machine().root_device().memregion("tilemaps")->base(); | |
| 1155 | int length = memregion("tilemaps")->bytes(); | |
| 1156 | UINT8 *rom = memregion("tilemaps")->base(); | |
| 1157 | 1157 | UINT8 *tmp = auto_alloc_array(machine(), UINT8, length); |
| 1158 | 1158 | int i; |
| 1159 | 1159 | |
| r21033 | r21034 | |
| 1170 | 1170 | DRIVER_INIT_MEMBER(igs017_state,slqz2) |
| 1171 | 1171 | { |
| 1172 | 1172 | int i; |
| 1173 | UINT16 *src = (UINT16 *) (m | |
| 1173 | UINT16 *src = (UINT16 *) (memregion("maincpu")->base()); | |
| 1174 | 1174 | |
| 1175 | 1175 | int rom_size = 0x80000; |
| 1176 | 1176 |
| r21033 | r21034 | |
|---|---|---|
| 4436 | 4436 | |
| 4437 | 4437 | DRIVER_INIT_MEMBER(cave_state,agallet) |
| 4438 | 4438 | { |
| 4439 | UINT8 *ROM = m | |
| 4439 | UINT8 *ROM = memregion("audiocpu")->base(); | |
| 4440 | 4440 | init_cave(machine()); |
| 4441 | 4441 | |
| 4442 | machine().root_device().membank("bank1")->configure_entries(0, 0x02, &ROM[0x00000], 0x4000); | |
| 4443 | machine().root_device().membank("bank1")->configure_entries(2, 0x1e, &ROM[0x10000], 0x4000); | |
| 4442 | membank("bank1")->configure_entries(0, 0x02, &ROM[0x00000], 0x4000); | |
| 4443 | membank("bank1")->configure_entries(2, 0x1e, &ROM[0x10000], 0x4000); | |
| 4444 | 4444 | |
| 4445 | ROM = machine().root_device().memregion("oki1")->base(); | |
| 4446 | machine().root_device().membank("bank3")->configure_entries(0, 0x10, &ROM[0x00000], 0x20000); | |
| 4447 | machine().root_device().membank("bank4")->configure_entries(0, 0x10, &ROM[0x00000], 0x20000); | |
| 4445 | ROM = memregion("oki1")->base(); | |
| 4446 | membank("bank3")->configure_entries(0, 0x10, &ROM[0x00000], 0x20000); | |
| 4447 | membank("bank4")->configure_entries(0, 0x10, &ROM[0x00000], 0x20000); | |
| 4448 | 4448 | |
| 4449 | ROM = machine().root_device().memregion("oki2")->base(); | |
| 4450 | machine().root_device().membank("bank5")->configure_entries(0, 0x10, &ROM[0x00000], 0x20000); | |
| 4451 | machine().root_device().membank("bank6")->configure_entries(0, 0x10, &ROM[0x00000], 0x20000); | |
| 4449 | ROM = memregion("oki2")->base(); | |
| 4450 | membank("bank5")->configure_entries(0, 0x10, &ROM[0x00000], 0x20000); | |
| 4451 | membank("bank6")->configure_entries(0, 0x10, &ROM[0x00000], 0x20000); | |
| 4452 | 4452 | |
| 4453 | 4453 | sailormn_unpack_tiles(machine(), "layer2"); |
| 4454 | 4454 | |
| r21033 | r21034 | |
| 4574 | 4574 | m_time_vblank_irq = 2100; |
| 4575 | 4575 | |
| 4576 | 4576 | /* setup extra ROM */ |
| 4577 | membank("bank1")->set_base(m | |
| 4577 | membank("bank1")->set_base(memregion("user1")->base()); | |
| 4578 | 4578 | } |
| 4579 | 4579 | |
| 4580 | 4580 | |
| r21033 | r21034 | |
| 4643 | 4643 | |
| 4644 | 4644 | #if 1 //ROM PATCH |
| 4645 | 4645 | { |
| 4646 | UINT16 *rom = (UINT16 *)m | |
| 4646 | UINT16 *rom = (UINT16 *)memregion("maincpu")->base(); | |
| 4647 | 4647 | rom[0xd46c / 2] = 0xd482; // kurara dash fix 0xd400 -> 0xd482 |
| 4648 | 4648 | } |
| 4649 | 4649 | #endif |
| r21033 | r21034 | |
|---|---|---|
| 667 | 667 | |
| 668 | 668 | DRIVER_INIT_MEMBER(rmhaihai_state,rmhaihai) |
| 669 | 669 | { |
| 670 | UINT8 *rom = machine().root_device().memregion("gfx1")->base(); | |
| 671 | int size = machine().root_device().memregion("gfx1")->bytes(); | |
| 670 | UINT8 *rom = memregion("gfx1")->base(); | |
| 671 | int size = memregion("gfx1")->bytes(); | |
| 672 | 672 | int a,b; |
| 673 | 673 | |
| 674 | 674 | size /= 2; |
| r21033 | r21034 | |
|---|---|---|
| 3516 | 3516 | /* Below, I set up the correct number of banks depending on the "maincpu" region size */ |
| 3517 | 3517 | DRIVER_INIT_MEMBER(dec8_state,lastmisn) |
| 3518 | 3518 | { |
| 3519 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 3520 | machine().root_device().membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000); | |
| 3519 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 3520 | membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000); | |
| 3521 | 3521 | DRIVER_INIT_CALL(dec8); |
| 3522 | 3522 | } |
| 3523 | 3523 | |
| 3524 | 3524 | DRIVER_INIT_MEMBER(dec8_state,shackled) |
| 3525 | 3525 | { |
| 3526 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 3527 | machine().root_device().membank("bank1")->configure_entries(0, 14, &ROM[0x10000], 0x4000); | |
| 3526 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 3527 | membank("bank1")->configure_entries(0, 14, &ROM[0x10000], 0x4000); | |
| 3528 | 3528 | DRIVER_INIT_CALL(dec8); |
| 3529 | 3529 | } |
| 3530 | 3530 | |
| 3531 | 3531 | DRIVER_INIT_MEMBER(dec8_state,gondo) |
| 3532 | 3532 | { |
| 3533 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 3534 | machine().root_device().membank("bank1")->configure_entries(0, 12, &ROM[0x10000], 0x4000); | |
| 3533 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 3534 | membank("bank1")->configure_entries(0, 12, &ROM[0x10000], 0x4000); | |
| 3535 | 3535 | DRIVER_INIT_CALL(dec8); |
| 3536 | 3536 | } |
| 3537 | 3537 | |
| 3538 | 3538 | DRIVER_INIT_MEMBER(dec8_state,garyoret) |
| 3539 | 3539 | { |
| 3540 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 3541 | machine().root_device().membank("bank1")->configure_entries(0, 16, &ROM[0x10000], 0x4000); | |
| 3540 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 3541 | membank("bank1")->configure_entries(0, 16, &ROM[0x10000], 0x4000); | |
| 3542 | 3542 | DRIVER_INIT_CALL(dec8); |
| 3543 | 3543 | } |
| 3544 | 3544 | |
| 3545 | 3545 | DRIVER_INIT_MEMBER(dec8_state,ghostb) |
| 3546 | 3546 | { |
| 3547 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 3548 | UINT8 *RAM = machine().root_device().memregion("proms")->base(); | |
| 3547 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 3548 | UINT8 *RAM = memregion("proms")->base(); | |
| 3549 | 3549 | |
| 3550 | 3550 | /* Blank out unused garbage in colour prom to avoid colour overflow */ |
| 3551 | 3551 | memset(RAM + 0x20, 0, 0xe0); |
| 3552 | 3552 | |
| 3553 | m | |
| 3553 | membank("bank1")->configure_entries(0, 16, &ROM[0x10000], 0x4000); | |
| 3554 | 3554 | DRIVER_INIT_CALL(dec8); |
| 3555 | 3555 | } |
| 3556 | 3556 | |
| 3557 | 3557 | DRIVER_INIT_MEMBER(dec8_state,meikyuh) |
| 3558 | 3558 | { |
| 3559 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 3560 | UINT8 *RAM = machine().root_device().memregion("proms")->base(); | |
| 3559 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 3560 | UINT8 *RAM = memregion("proms")->base(); | |
| 3561 | 3561 | |
| 3562 | 3562 | /* Blank out unused garbage in colour prom to avoid colour overflow */ |
| 3563 | 3563 | memset(RAM + 0x20, 0, 0xe0); |
| 3564 | 3564 | |
| 3565 | m | |
| 3565 | membank("bank1")->configure_entries(0, 12, &ROM[0x10000], 0x4000); | |
| 3566 | 3566 | DRIVER_INIT_CALL(dec8); |
| 3567 | 3567 | } |
| 3568 | 3568 | |
| 3569 | 3569 | DRIVER_INIT_MEMBER(dec8_state,csilver) |
| 3570 | 3570 | { |
| 3571 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 3572 | UINT8 *RAM = machine().root_device().memregion("audiocpu")->base(); | |
| 3571 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 3572 | UINT8 *RAM = memregion("audiocpu")->base(); | |
| 3573 | 3573 | |
| 3574 | machine().root_device().membank("bank1")->configure_entries(0, 14, &ROM[0x10000], 0x4000); | |
| 3575 | machine().root_device().membank("bank3")->configure_entries(0, 2, &RAM[0x10000], 0x4000); | |
| 3574 | membank("bank1")->configure_entries(0, 14, &ROM[0x10000], 0x4000); | |
| 3575 | membank("bank3")->configure_entries(0, 2, &RAM[0x10000], 0x4000); | |
| 3576 | 3576 | DRIVER_INIT_CALL(dec8); |
| 3577 | 3577 | } |
| 3578 | 3578 | |
| 3579 | 3579 | DRIVER_INIT_MEMBER(dec8_state,oscar) |
| 3580 | 3580 | { |
| 3581 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 3582 | machine().root_device().membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000); | |
| 3581 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 3582 | membank("bank1")->configure_entries(0, 4, &ROM[0x10000], 0x4000); | |
| 3583 | 3583 | DRIVER_INIT_CALL(dec8); |
| 3584 | 3584 | } |
| 3585 | 3585 | |
| 3586 | 3586 | DRIVER_INIT_MEMBER(dec8_state,srdarwin) |
| 3587 | 3587 | { |
| 3588 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 3589 | machine().root_device().membank("bank1")->configure_entries(0, 6, &ROM[0x10000], 0x4000); | |
| 3588 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 3589 | membank("bank1")->configure_entries(0, 6, &ROM[0x10000], 0x4000); | |
| 3590 | 3590 | DRIVER_INIT_CALL(dec8); |
| 3591 | 3591 | } |
| 3592 | 3592 | |
| 3593 | 3593 | DRIVER_INIT_MEMBER(dec8_state,cobracom) |
| 3594 | 3594 | { |
| 3595 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 3596 | machine().root_device().membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000); | |
| 3595 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 3596 | membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000); | |
| 3597 | 3597 | DRIVER_INIT_CALL(dec8); |
| 3598 | 3598 | } |
| 3599 | 3599 |
| r21033 | r21034 | |
|---|---|---|
| 3868 | 3868 | |
| 3869 | 3869 | DRIVER_INIT_MEMBER(ace_sp_state,ace_cr) |
| 3870 | 3870 | { |
| 3871 | descramble_crystal(m | |
| 3871 | descramble_crystal(memregion( "maincpu" )->base(), 0x0000, 0x10000, 0x00); | |
| 3872 | 3872 | } |
| 3873 | 3873 | |
| 3874 | 3874 | DRIVER_INIT_MEMBER(ace_sp_state,ace_sp) |
| r21033 | r21034 | |
|---|---|---|
| 2322 | 2322 | DRIVER_INIT_MEMBER(legionna_state,cupsoc) |
| 2323 | 2323 | { |
| 2324 | 2324 | #if CUPSOC_DEBUG_MODE |
| 2325 | UINT16 *ROM = (UINT16 *)m | |
| 2325 | UINT16 *ROM = (UINT16 *)memregion("maincpu")->base(); | |
| 2326 | 2326 | |
| 2327 | 2327 | /*Press p1 button 3 to enter into debug mode during gameplay*/ |
| 2328 | 2328 | ROM[0xffffb/2] = 0x0000; |
| r21033 | r21034 | |
| 2334 | 2334 | DRIVER_INIT_MEMBER(legionna_state,denjinmk) |
| 2335 | 2335 | { |
| 2336 | 2336 | /* problem with audio comms? */ |
| 2337 | UINT16 *ROM = (UINT16 *)m | |
| 2337 | UINT16 *ROM = (UINT16 *)memregion("maincpu")->base(); | |
| 2338 | 2338 | ROM[0x5fe4/2] = 0x4e71; |
| 2339 | 2339 | } |
| 2340 | 2340 | |
| 2341 | 2341 | DRIVER_INIT_MEMBER(legionna_state,legiongfx) |
| 2342 | 2342 | { |
| 2343 | descramble_legionnaire_gfx(m | |
| 2343 | descramble_legionnaire_gfx(memregion("gfx5")->base() ); | |
| 2344 | 2344 | } |
| 2345 | 2345 | |
| 2346 | 2346 |
| r21033 | r21034 | |
|---|---|---|
| 1567 | 1567 | |
| 1568 | 1568 | READ8_MEMBER(aristmk4_state::pa1_r) |
| 1569 | 1569 | { |
| 1570 | return ( | |
| 1570 | return (ioport("SW3")->read() << 4) + ioport("SW4")->read(); | |
| 1571 | 1571 | } |
| 1572 | 1572 | |
| 1573 | 1573 | READ8_MEMBER(aristmk4_state::pb1_r) |
| 1574 | 1574 | { |
| 1575 | return ( | |
| 1575 | return (ioport("SW5")->read() << 4) + ioport("SW6")->read(); | |
| 1576 | 1576 | } |
| 1577 | 1577 | |
| 1578 | 1578 | READ8_MEMBER(aristmk4_state::pc1_r) |
| r21033 | r21034 | |
| 1594 | 1594 | /* same as Casino Winner HW */ |
| 1595 | 1595 | void aristmk4_state::palette_init() |
| 1596 | 1596 | { |
| 1597 | const UINT8 *color_prom = m | |
| 1597 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 1598 | 1598 | int i; |
| 1599 | 1599 | |
| 1600 | 1600 | for (i = 0;i < machine().total_colors();i++) |
| r21033 | r21034 | |
| 1634 | 1634 | void aristmk4_state::machine_reset() |
| 1635 | 1635 | { |
| 1636 | 1636 | /* mark 4 has a link on the motherboard to switch between 1.5MHz and 3MHz clock speed */ |
| 1637 | switch( | |
| 1637 | switch(ioport("LK13")->read()) // CPU speed control... 3mhz or 1.5MHz | |
| 1638 | 1638 | { |
| 1639 | 1639 | case 0x00: |
| 1640 | 1640 | machine().device("maincpu")->set_unscaled_clock(MAIN_CLOCK/4); // 3 MHz |
| r21033 | r21034 | |
| 1663 | 1663 | Note: The use of 1 Hz in the timer is to avoid unintentional triggering the NMI ( ie.. hold down L for at least 1 second ) |
| 1664 | 1664 | */ |
| 1665 | 1665 | |
| 1666 | if( | |
| 1666 | if(ioport("powerfail")->read()) // send NMI signal if L pressed | |
| 1667 | 1667 | { |
| 1668 | 1668 | machine().device("maincpu")->execute().set_input_line(INPUT_LINE_NMI, ASSERT_LINE ); |
| 1669 | 1669 | } |
| r21033 | r21034 | |
|---|---|---|
| 78 | 78 | |
| 79 | 79 | sx = 0; |
| 80 | 80 | |
| 81 | prom = m | |
| 81 | prom = memregion("proms")->base(); | |
| 82 | 82 | for (offs = 0; offs < m_objectram.bytes(); offs += 4) |
| 83 | 83 | { |
| 84 | 84 | /* skip empty sprites */ |
| r21033 | r21034 | |
| 574 | 574 | |
| 575 | 575 | void missb2_state::configure_banks() |
| 576 | 576 | { |
| 577 | UINT8 *ROM = machine().root_device().memregion("maincpu")->base(); | |
| 578 | UINT8 *SLAVE = machine().root_device().memregion("slave")->base(); | |
| 577 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 578 | UINT8 *SLAVE = memregion("slave")->base(); | |
| 579 | 579 | |
| 580 | m | |
| 580 | membank("bank1")->configure_entries(0, 8, &ROM[0x10000], 0x4000); | |
| 581 | 581 | |
| 582 | 582 | /* 2009-11 FP: isn't there a way to configure both at once? */ |
| 583 | machine().root_device().membank("bank2")->configure_entries(0, 7, &SLAVE[0x8000], 0x1000); | |
| 584 | machine().root_device().membank("bank3")->configure_entries(0, 7, &SLAVE[0x9000], 0x1000); | |
| 583 | membank("bank2")->configure_entries(0, 7, &SLAVE[0x8000], 0x1000); | |
| 584 | membank("bank3")->configure_entries(0, 7, &SLAVE[0x9000], 0x1000); | |
| 585 | 585 | } |
| 586 | 586 | |
| 587 | 587 | DRIVER_INIT_MEMBER(missb2_state,missb2) |
| r21033 | r21034 | |
|---|---|---|
| 210 | 210 | |
| 211 | 211 | UINT32 photon_state::screen_update_photon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) |
| 212 | 212 | { |
| 213 | return pk8000_video_update(screen, bitmap, cliprect, m | |
| 213 | return pk8000_video_update(screen, bitmap, cliprect, memregion("maincpu")->base()); | |
| 214 | 214 | } |
| 215 | 215 | |
| 216 | 216 | static MACHINE_CONFIG_START( photon, photon_state ) |
| r21033 | r21034 | |
|---|---|---|
| 103 | 103 | /* guess: use the same resistor values as Crazy Climber (needs checking on the real HW) */ |
| 104 | 104 | void jangou_state::palette_init() |
| 105 | 105 | { |
| 106 | const UINT8 *color_prom = m | |
| 106 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 107 | 107 | static const int resistances_rg[3] = { 1000, 470, 220 }; |
| 108 | 108 | static const int resistances_b [2] = { 470, 220 }; |
| 109 | 109 | double weights_rg[3], weights_b[2]; |
| r21033 | r21034 | |
| 294 | 294 | case 0x20: return ioport("PL2_3")->read(); |
| 295 | 295 | } |
| 296 | 296 | |
| 297 | return | |
| 297 | return ioport("IN_NOMUX")->read(); | |
| 298 | 298 | } |
| 299 | 299 | |
| 300 | 300 | READ8_MEMBER(jangou_state::input_system_r) |
| 301 | 301 | { |
| 302 | return | |
| 302 | return ioport("SYSTEM")->read(); | |
| 303 | 303 | } |
| 304 | 304 | |
| 305 | 305 | |
| r21033 | r21034 | |
| 1361 | 1361 | { |
| 1362 | 1362 | // this is WRONG |
| 1363 | 1363 | int A; |
| 1364 | UINT8 *ROM = m | |
| 1364 | UINT8 *ROM = memregion("cpu0")->base(); | |
| 1365 | 1365 | |
| 1366 | 1366 | unsigned char patn1[32] = { |
| 1367 | 1367 | 0x00, 0xA0, 0x00, 0xA0, 0x00, 0xA0, 0x00, 0xA0, 0x00, 0xA0, 0x00, 0xA0, 0x00, 0xA0, 0x00, 0xA0, |
| r21033 | r21034 | |
|---|---|---|
| 54 | 54 | |
| 55 | 55 | void murogmbl_state::palette_init() |
| 56 | 56 | { |
| 57 | const UINT8 *color_prom = m | |
| 57 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 58 | 58 | int bit0, bit1, bit2 , r, g, b; |
| 59 | 59 | int i; |
| 60 | 60 |
| r21033 | r21034 | |
|---|---|---|
| 1250 | 1250 | DRIVER_INIT_MEMBER(darius_state,darius) |
| 1251 | 1251 | { |
| 1252 | 1252 | /**** setup sound bank image ****/ |
| 1253 | UINT8 *RAM = m | |
| 1253 | UINT8 *RAM = memregion("audiocpu")->base(); | |
| 1254 | 1254 | int i; |
| 1255 | 1255 | |
| 1256 | 1256 | for (i = 3; i >= 0; i--) |
| r21033 | r21034 | |
|---|---|---|
| 322 | 322 | |
| 323 | 323 | READ8_MEMBER(foodf_state::pot_r) |
| 324 | 324 | { |
| 325 | return ( | |
| 325 | return (ioport("DSW")->read() >> offset) << 7; | |
| 326 | 326 | } |
| 327 | 327 | |
| 328 | 328 | static const pokey_interface pokey_config = |
| r21033 | r21034 | |
|---|---|---|
| 75 | 75 | |
| 76 | 76 | WRITE8_MEMBER(st0016_state::st0016_rom_bank_w) |
| 77 | 77 | { |
| 78 | membank("bank1")->set_base(m | |
| 78 | membank("bank1")->set_base(memregion("maincpu")->base() + (data* 0x4000)); | |
| 79 | 79 | st0016_rom_bank=data; |
| 80 | 80 | } |
| 81 | 81 | |
| r21033 | r21034 | |
| 682 | 682 | DRIVER_INIT_MEMBER(st0016_state,mayjinsn) |
| 683 | 683 | { |
| 684 | 684 | st0016_game=4;//|0x80; |
| 685 | m | |
| 685 | membank("bank2")->set_base(memregion("user1")->base()); | |
| 686 | 686 | } |
| 687 | 687 | |
| 688 | 688 | DRIVER_INIT_MEMBER(st0016_state,mayjisn2) |
| 689 | 689 | { |
| 690 | 690 | st0016_game=4; |
| 691 | m | |
| 691 | membank("bank2")->set_base(memregion("user1")->base()); | |
| 692 | 692 | } |
| 693 | 693 | |
| 694 | 694 | /************************************* |
| r21033 | r21034 | |
|---|---|---|
| 95 | 95 | |
| 96 | 96 | void olibochu_state::palette_init() |
| 97 | 97 | { |
| 98 | const UINT8 *color_prom = m | |
| 98 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 99 | 99 | int i; |
| 100 | 100 | |
| 101 | 101 | for (i = 0; i < machine().total_colors(); i++) |
| r21033 | r21034 | |
|---|---|---|
| 50 | 50 | |
| 51 | 51 | /* NMI and watchdog are disabled during service mode */ |
| 52 | 52 | |
| 53 | machine().watchdog_enable( | |
| 53 | machine().watchdog_enable(ioport("IN0")->read() & 0x40); | |
| 54 | 54 | |
| 55 | if ( | |
| 55 | if (ioport("IN0")->read() & 0x40) | |
| 56 | 56 | machine().device("maincpu")->execute().set_input_line(INPUT_LINE_NMI, PULSE_LINE); |
| 57 | 57 | |
| 58 | 58 | machine().scheduler().timer_set(machine().primary_screen->time_until_pos(scanline), timer_expired_delegate(FUNC(ultratnk_state::nmi_callback),this), scanline); |
| r21033 | r21034 | |
|---|---|---|
| 315 | 315 | UINT16 p1_val,p2_val; |
| 316 | 316 | UINT8 p1_res,p2_res; |
| 317 | 317 | |
| 318 | p1_val = machine().root_device().ioport("KEY_1P")->read(); | |
| 319 | p2_val = machine().root_device().ioport("KEY_2P")->read(); | |
| 318 | p1_val = ioport("KEY_1P")->read(); | |
| 319 | p2_val = ioport("KEY_2P")->read(); | |
| 320 | 320 | |
| 321 | 321 | p1_res = 0; |
| 322 | 322 | p2_res = 0; |
| r21033 | r21034 | |
| 958 | 958 | |
| 959 | 959 | PALETTE_INIT_MEMBER(kingdrby_state,kingdrby) |
| 960 | 960 | { |
| 961 | const UINT8 *color_prom = m | |
| 961 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 962 | 962 | int bit0, bit1, bit2 , r, g, b; |
| 963 | 963 | int i; |
| 964 | 964 | |
| r21033 | r21034 | |
| 984 | 984 | |
| 985 | 985 | PALETTE_INIT_MEMBER(kingdrby_state,kingdrbb) |
| 986 | 986 | { |
| 987 | UINT8 *raw_prom = machine().root_device().memregion("raw_prom")->base(); | |
| 988 | UINT8 *prom = machine().root_device().memregion("proms")->base(); | |
| 987 | UINT8 *raw_prom = memregion("raw_prom")->base(); | |
| 988 | UINT8 *prom = memregion("proms")->base(); | |
| 989 | 989 | int bit0, bit1, bit2 , r, g, b; |
| 990 | 990 | int i; |
| 991 | 991 |
| r21033 | r21034 | |
|---|---|---|
| 248 | 248 | if(frame == 5) |
| 249 | 249 | { |
| 250 | 250 | int i,data; |
| 251 | static UINT8 *rom = | |
| 251 | static UINT8 *rom = memregion("mainprg")->base(); | |
| 252 | 252 | |
| 253 | 253 | for(i=0;i<0x800;i+=2) |
| 254 | 254 | { |
| r21033 | r21034 | |
| 752 | 752 | |
| 753 | 753 | DRIVER_INIT_MEMBER(r2dx_v33_state,rdx_v33) |
| 754 | 754 | { |
| 755 | m | |
| 755 | membank("bank1")->configure_entries(0, 0x20, memregion("mainprg")->base(), 0x20000); | |
| 756 | 756 | |
| 757 | 757 | raiden2_decrypt_sprites(machine()); |
| 758 | 758 | |
| 759 | m | |
| 759 | membank("bank1")->set_entry(1); | |
| 760 | 760 | } |
| 761 | 761 | |
| 762 | 762 | DRIVER_INIT_MEMBER(r2dx_v33_state,nzerotea) |
| 763 | 763 | { |
| 764 | m | |
| 764 | membank("bank1")->configure_entries(0, 2, memregion("mainprg")->base(), 0x20000); | |
| 765 | 765 | |
| 766 | 766 | zeroteam_decrypt_sprites(machine()); |
| 767 | 767 | |
| 768 | m | |
| 768 | membank("bank1")->set_entry(1); | |
| 769 | 769 | } |
| 770 | 770 | |
| 771 | 771 | DRIVER_INIT_MEMBER(r2dx_v33_state,zerotm2k) |
| 772 | 772 | { |
| 773 | m | |
| 773 | membank("bank1")->configure_entries(0, 2, memregion("mainprg")->base(), 0x20000); | |
| 774 | 774 | |
| 775 | 775 | // sprites are NOT encrypted |
| 776 | 776 | //zeroteam_decrypt_sprites(machine()); |
| 777 | 777 | |
| 778 | m | |
| 778 | membank("bank1")->set_entry(1); | |
| 779 | 779 | |
| 780 | 780 | } |
| 781 | 781 |
| r21033 | r21034 | |
|---|---|---|
| 151 | 151 | #if 1 |
| 152 | 152 | // gfx roms viewer (toggle with enter, use pgup/down to browse) |
| 153 | 153 | int x, y, count = 0; |
| 154 | UINT8 *gfxdata = m | |
| 154 | UINT8 *gfxdata = memregion("gfx1")->base(); | |
| 155 | 155 | UINT8 data; |
| 156 | 156 | |
| 157 | 157 | if (machine().input().code_pressed_once(KEYCODE_ENTER)) m_view_roms ^= 1; |
| r21033 | r21034 | |
| 604 | 604 | |
| 605 | 605 | DRIVER_INIT_MEMBER(lastfght_state,lastfght) |
| 606 | 606 | { |
| 607 | UINT16 *rom = (UINT16*)m | |
| 607 | UINT16 *rom = (UINT16*)memregion("maincpu")->base(); | |
| 608 | 608 | |
| 609 | 609 | // pass initial check (protection ? hw?) |
| 610 | 610 | rom[0x00354 / 2] = 0x403e; |
| r21033 | r21034 | |
|---|---|---|
| 321 | 321 | |
| 322 | 322 | READ8_MEMBER(superqix_state::bootleg_in0_r) |
| 323 | 323 | { |
| 324 | return BITSWAP8( | |
| 324 | return BITSWAP8(ioport("DSW1")->read(), 0,1,2,3,4,5,6,7); | |
| 325 | 325 | } |
| 326 | 326 | |
| 327 | 327 | WRITE8_MEMBER(superqix_state::bootleg_flipscreen_w) |
| r21033 | r21034 | |
| 512 | 512 | { |
| 513 | 513 | // logerror("%04x: ay_port_a_r\n",space.device().safe_pc()); |
| 514 | 514 | /* bits 76------ MCU status bits */ |
| 515 | return (machine().rand() & 0xc0) | | |
| 515 | return (machine().rand() & 0xc0) | ioport("BUTTONS")->read(); | |
| 516 | 516 | } |
| 517 | 517 | |
| 518 | 518 | |
| r21033 | r21034 | |
| 538 | 538 | MACHINE_START_MEMBER(superqix_state,superqix) |
| 539 | 539 | { |
| 540 | 540 | /* configure the banks */ |
| 541 | m | |
| 541 | membank("bank1")->configure_entries(0, 4, memregion("maincpu")->base() + 0x10000, 0x4000); | |
| 542 | 542 | |
| 543 | 543 | machine_init_common(); |
| 544 | 544 | } |
| r21033 | r21034 | |
| 546 | 546 | MACHINE_START_MEMBER(superqix_state,pbillian) |
| 547 | 547 | { |
| 548 | 548 | /* configure the banks */ |
| 549 | m | |
| 549 | membank("bank1")->configure_entries(0, 2, memregion("maincpu")->base() + 0x10000, 0x4000); | |
| 550 | 550 | |
| 551 | 551 | machine_init_common(); |
| 552 | 552 | } |
| r21033 | r21034 | |
| 1322 | 1322 | int i,j; |
| 1323 | 1323 | |
| 1324 | 1324 | /* decrypt program code; the address lines are shuffled around in a non-trivial way */ |
| 1325 | src = machine().root_device().memregion("maincpu")->base(); | |
| 1326 | len = machine().root_device().memregion("maincpu")->bytes(); | |
| 1325 | src = memregion("maincpu")->base(); | |
| 1326 | len = memregion("maincpu")->bytes(); | |
| 1327 | 1327 | for (i = 0;i < len;i += 16) |
| 1328 | 1328 | { |
| 1329 | 1329 | memcpy(temp,&src[i],16); |
| r21033 | r21034 | |
| 1342 | 1342 | } |
| 1343 | 1343 | |
| 1344 | 1344 | /* decrypt gfx ROMs; simple bit swap on the address lines */ |
| 1345 | src = machine().root_device().memregion("gfx1")->base(); | |
| 1346 | len = machine().root_device().memregion("gfx1")->bytes(); | |
| 1345 | src = memregion("gfx1")->base(); | |
| 1346 | len = memregion("gfx1")->bytes(); | |
| 1347 | 1347 | for (i = 0;i < len;i += 16) |
| 1348 | 1348 | { |
| 1349 | 1349 | memcpy(temp,&src[i],16); |
| r21033 | r21034 | |
| 1353 | 1353 | } |
| 1354 | 1354 | } |
| 1355 | 1355 | |
| 1356 | src = machine().root_device().memregion("gfx2")->base(); | |
| 1357 | len = machine().root_device().memregion("gfx2")->bytes(); | |
| 1356 | src = memregion("gfx2")->base(); | |
| 1357 | len = memregion("gfx2")->bytes(); | |
| 1358 | 1358 | for (i = 0;i < len;i += 16) |
| 1359 | 1359 | { |
| 1360 | 1360 | memcpy(temp,&src[i],16); |
| r21033 | r21034 | |
| 1364 | 1364 | } |
| 1365 | 1365 | } |
| 1366 | 1366 | |
| 1367 | src = machine().root_device().memregion("gfx3")->base(); | |
| 1368 | len = machine().root_device().memregion("gfx3")->bytes(); | |
| 1367 | src = memregion("gfx3")->base(); | |
| 1368 | len = memregion("gfx3")->bytes(); | |
| 1369 | 1369 | for (i = 0;i < len;i += 16) |
| 1370 | 1370 | { |
| 1371 | 1371 | memcpy(temp,&src[i],16); |
| r21033 | r21034 | |
|---|---|---|
| 768 | 768 | |
| 769 | 769 | void arcadia_amiga_state::generic_decode(const char *tag, int bit7, int bit6, int bit5, int bit4, int bit3, int bit2, int bit1, int bit0) |
| 770 | 770 | { |
| 771 | UINT16 *rom = (UINT16 *)m | |
| 771 | UINT16 *rom = (UINT16 *)memregion(tag)->base(); | |
| 772 | 772 | int i; |
| 773 | 773 | |
| 774 | 774 | /* only the low byte of ROMs are encrypted in these games */ |
| r21033 | r21034 | |
| 777 | 777 | |
| 778 | 778 | #if 0 |
| 779 | 779 | { |
| 780 | UINT8 *ROM = machine().root_device().memregion(tag)->base(); | |
| 781 | int size = machine().root_device().memregion(tag)->bytes(); | |
| 780 | UINT8 *ROM = memregion(tag)->base(); | |
| 781 | int size = memregion(tag)->bytes(); | |
| 782 | 782 | |
| 783 | 783 | FILE *fp; |
| 784 | 784 | char filename[256]; |
| r21033 | r21034 | |
| 819 | 819 | |
| 820 | 820 | /* set up memory */ |
| 821 | 821 | m_bank1->configure_entry(0, m_chip_ram); |
| 822 | m_bank1->configure_entry(1, m | |
| 822 | m_bank1->configure_entry(1, memregion("user1")->base()); | |
| 823 | 823 | |
| 824 | 824 | /* OnePlay bios is encrypted, TenPlay is not */ |
| 825 | biosrom = (UINT16 *)m | |
| 825 | biosrom = (UINT16 *)memregion("user2")->base(); | |
| 826 | 826 | if (biosrom[0] != 0x4afc) |
| 827 | 827 | generic_decode("user2", 6, 1, 0, 2, 3, 4, 5, 7); |
| 828 | 828 | } |
| r21033 | r21034 | |
|---|---|---|
| 125 | 125 | UINT8 code = 0x3f; |
| 126 | 126 | if ( tile_index & 1 ) |
| 127 | 127 | { |
| 128 | code = m | |
| 128 | code = memregion("starfield")->base()[tile_index >> 1] & 0x3f; | |
| 129 | 129 | } |
| 130 | 130 | SET_TILE_INFO_MEMBER(1, code, 0, 0); |
| 131 | 131 | } |
| r21033 | r21034 | |
|---|---|---|
| 620 | 620 | |
| 621 | 621 | void deco156_state::descramble_sound( const char *tag ) |
| 622 | 622 | { |
| 623 | UINT8 *rom = machine().root_device().memregion(tag)->base(); | |
| 624 | int length = machine().root_device().memregion(tag)->bytes(); | |
| 623 | UINT8 *rom = memregion(tag)->base(); | |
| 624 | int length = memregion(tag)->bytes(); | |
| 625 | 625 | UINT8 *buf1 = auto_alloc_array(machine(), UINT8, length); |
| 626 | 626 | UINT32 x; |
| 627 | 627 |
| r21033 | r21034 | |
|---|---|---|
| 339 | 339 | { |
| 340 | 340 | if (ACCESSING_BITS_24_31) |
| 341 | 341 | { |
| 342 | return | |
| 342 | return ioport("JP4")->read(); | |
| 343 | 343 | } |
| 344 | 344 | |
| 345 | 345 | logerror("Unk EEPROM read mask %x\n", mem_mask); |
| r21033 | r21034 | |
| 1215 | 1215 | |
| 1216 | 1216 | DRIVER_INIT_MEMBER(psikyosh_state,daraku) |
| 1217 | 1217 | { |
| 1218 | UINT8 *RAM = machine().root_device().memregion("maincpu")->base(); | |
| 1219 | machine().root_device().membank("bank1")->set_base(&RAM[0x100000]); | |
| 1218 | UINT8 *RAM = memregion("maincpu")->base(); | |
| 1219 | membank("bank1")->set_base(&RAM[0x100000]); | |
| 1220 | 1220 | sh2drc_set_options(machine().device("maincpu"), SH2DRC_FASTEST_OPTIONS); |
| 1221 | 1221 | } |
| 1222 | 1222 | |
| r21033 | r21034 | |
| 1227 | 1227 | |
| 1228 | 1228 | DRIVER_INIT_MEMBER(psikyosh_state,gunbird2) |
| 1229 | 1229 | { |
| 1230 | UINT8 *RAM = machine().root_device().memregion("maincpu")->base(); | |
| 1231 | machine().root_device().membank("bank1")->set_base(&RAM[0x100000]); | |
| 1230 | UINT8 *RAM = memregion("maincpu")->base(); | |
| 1231 | membank("bank1")->set_base(&RAM[0x100000]); | |
| 1232 | 1232 | sh2drc_set_options(machine().device("maincpu"), SH2DRC_FASTEST_OPTIONS); |
| 1233 | 1233 | } |
| 1234 | 1234 | |
| 1235 | 1235 | DRIVER_INIT_MEMBER(psikyosh_state,s1945iii) |
| 1236 | 1236 | { |
| 1237 | UINT8 *RAM = machine().root_device().memregion("maincpu")->base(); | |
| 1238 | machine().root_device().membank("bank1")->set_base(&RAM[0x100000]); | |
| 1237 | UINT8 *RAM = memregion("maincpu")->base(); | |
| 1238 | membank("bank1")->set_base(&RAM[0x100000]); | |
| 1239 | 1239 | sh2drc_set_options(machine().device("maincpu"), SH2DRC_FASTEST_OPTIONS); |
| 1240 | 1240 | } |
| 1241 | 1241 |
| r21033 | r21034 | |
|---|---|---|
| 145 | 145 | |
| 146 | 146 | bank_address = 0x10000 + (m_rom_bank * 0x1000); |
| 147 | 147 | |
| 148 | membank("bank1")->set_base(&m | |
| 148 | membank("bank1")->set_base(&memregion("maincpu")->base()[bank_address]); | |
| 149 | 149 | } |
| 150 | 150 | |
| 151 | 151 | |
| r21033 | r21034 | |
| 157 | 157 | |
| 158 | 158 | bank_address = 0x10000 + (m_rom_bank * 0x1000); |
| 159 | 159 | |
| 160 | membank("bank1")->set_base(&m | |
| 160 | membank("bank1")->set_base(&memregion("maincpu")->base()[bank_address]); | |
| 161 | 161 | } |
| 162 | 162 | |
| 163 | 163 | |
| r21033 | r21034 | |
| 487 | 487 | { |
| 488 | 488 | /* decode the TMS9980 ROMs */ |
| 489 | 489 | offs_t offs; |
| 490 | UINT8 *rom = machine().root_device().memregion("maincpu")->base(); | |
| 491 | size_t len = machine().root_device().memregion("maincpu")->bytes(); | |
| 490 | UINT8 *rom = memregion("maincpu")->base(); | |
| 491 | size_t len = memregion("maincpu")->bytes(); | |
| 492 | 492 | |
| 493 | 493 | for (offs = 0; offs < len; offs++) |
| 494 | 494 | { |
| r21033 | r21034 | |
|---|---|---|
| 560 | 560 | |
| 561 | 561 | DRIVER_INIT_MEMBER(boogwing_state,boogwing) |
| 562 | 562 | { |
| 563 | const UINT8* src = machine().root_device().memregion("gfx6")->base(); | |
| 564 | UINT8* dst = machine().root_device().memregion("tiles2")->base() + 0x200000; | |
| 563 | const UINT8* src = memregion("gfx6")->base(); | |
| 564 | UINT8* dst = memregion("tiles2")->base() + 0x200000; | |
| 565 | 565 | |
| 566 | 566 | deco56_decrypt_gfx(machine(), "tiles1"); |
| 567 | 567 | deco56_decrypt_gfx(machine(), "tiles2"); |
| r21033 | r21034 | |
|---|---|---|
| 1109 | 1109 | DRIVER_INIT_MEMBER(astrocorp_state,showhand) |
| 1110 | 1110 | { |
| 1111 | 1111 | #if 0 |
| 1112 | UINT16 *rom = (UINT16*)m | |
| 1112 | UINT16 *rom = (UINT16*)memregion("maincpu")->base(); | |
| 1113 | 1113 | |
| 1114 | 1114 | rom[0x0a1a/2] = 0x6000; // hopper jam |
| 1115 | 1115 | |
| r21033 | r21034 | |
| 1125 | 1125 | DRIVER_INIT_MEMBER(astrocorp_state,showhanc) |
| 1126 | 1126 | { |
| 1127 | 1127 | #if 0 |
| 1128 | UINT16 *rom = (UINT16*)m | |
| 1128 | UINT16 *rom = (UINT16*)memregion("maincpu")->base(); | |
| 1129 | 1129 | |
| 1130 | 1130 | rom[0x14d4/2] = 0x4e71; // enable full test mode |
| 1131 | 1131 | rom[0x14d6/2] = 0x4e71; // "" |
| r21033 | r21034 | |
|---|---|---|
| 2007 | 2007 | /* configure fast RAM regions for DRC */ |
| 2008 | 2008 | ppcdrc_add_fastram(machine().device("maincpu"), 0x00000000, 0x00ffffff, FALSE, workram); |
| 2009 | 2009 | |
| 2010 | ds2430_rom = (UINT8*)m | |
| 2010 | ds2430_rom = (UINT8*)memregion("ds2430")->base(); | |
| 2011 | 2011 | } |
| 2012 | 2012 | |
| 2013 | 2013 | void viper_state::machine_reset() |
| r21033 | r21034 | |
|---|---|---|
| 52 | 52 | |
| 53 | 53 | DRIVER_INIT_MEMBER(suna8_state,hardhead) |
| 54 | 54 | { |
| 55 | UINT8 *rom = m | |
| 55 | UINT8 *rom = memregion("maincpu")->base(); | |
| 56 | 56 | int i; |
| 57 | 57 | |
| 58 | 58 | for (i = 0; i < 0x8000; i++) |
| r21033 | r21034 | |
| 67 | 67 | rom[i] = BITSWAP8(rom[i], 7,6,5,3,4,2,1,0) ^ 0x58; |
| 68 | 68 | } |
| 69 | 69 | |
| 70 | m | |
| 70 | membank("bank1")->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x4000); | |
| 71 | 71 | } |
| 72 | 72 | |
| 73 | 73 | /* Non encrypted bootleg */ |
| 74 | 74 | DRIVER_INIT_MEMBER(suna8_state,hardhedb) |
| 75 | 75 | { |
| 76 | 76 | address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); |
| 77 | space.set_decrypted_region(0x0000, 0x7fff, machine().root_device().memregion("maincpu")->base() + 0x48000); | |
| 78 | machine().root_device().membank("bank1")->configure_entries(0, 16, machine().root_device().memregion("maincpu")->base() + 0x10000, 0x4000); | |
| 77 | space.set_decrypted_region(0x0000, 0x7fff, memregion("maincpu")->base() + 0x48000); | |
| 78 | membank("bank1")->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x4000); | |
| 79 | 79 | } |
| 80 | 80 | |
| 81 | 81 | /*************************************************************************** |
| r21033 | r21034 | |
| 85 | 85 | UINT8 *suna8_state::brickzn_decrypt() |
| 86 | 86 | { |
| 87 | 87 | address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); |
| 88 | UINT8 *RAM = machine().root_device().memregion("maincpu")->base(); | |
| 89 | size_t size = machine().root_device().memregion("maincpu")->bytes(); | |
| 88 | UINT8 *RAM = memregion("maincpu")->base(); | |
| 89 | size_t size = memregion("maincpu")->bytes(); | |
| 90 | 90 | UINT8 *decrypt = auto_alloc_array(machine(), UINT8, size); |
| 91 | 91 | int i; |
| 92 | 92 | |
| r21033 | r21034 | |
| 131 | 131 | |
| 132 | 132 | DRIVER_INIT_MEMBER(suna8_state,brickzn) |
| 133 | 133 | { |
| 134 | UINT8 *RAM = m | |
| 134 | UINT8 *RAM = memregion("maincpu")->base(); | |
| 135 | 135 | UINT8 *decrypt = brickzn_decrypt(); |
| 136 | 136 | int i; |
| 137 | 137 | |
| r21033 | r21034 | |
| 162 | 162 | decrypt[0x2593] = 0x00; // HALT -> NOP |
| 163 | 163 | |
| 164 | 164 | // Data banks: 00-0f normal data decryption, 10-1f alternate data decryption: |
| 165 | m | |
| 165 | membank("bank1")->configure_entries(0, 16*2, memregion("maincpu")->base() + 0x10000, 0x4000); | |
| 166 | 166 | // Opcode banks: 00-1f normal opcode decryption: |
| 167 | machine().root_device().membank("bank1")->configure_decrypted_entries(0, 16, decrypt + 0x10000, 0x4000); | |
| 168 | machine().root_device().membank("bank1")->configure_decrypted_entries(16, 16, decrypt + 0x10000, 0x4000); | |
| 167 | membank("bank1")->configure_decrypted_entries(0, 16, decrypt + 0x10000, 0x4000); | |
| 168 | membank("bank1")->configure_decrypted_entries(16, 16, decrypt + 0x10000, 0x4000); | |
| 169 | 169 | } |
| 170 | 170 | |
| 171 | 171 | DRIVER_INIT_MEMBER(suna8_state,brickznv4) |
| 172 | 172 | { |
| 173 | UINT8 *RAM = m | |
| 173 | UINT8 *RAM = memregion("maincpu")->base(); | |
| 174 | 174 | UINT8 *decrypt = brickzn_decrypt(); |
| 175 | 175 | int i; |
| 176 | 176 | |
| r21033 | r21034 | |
| 201 | 201 | decrypt[0x256c] = 0x00; // HALT -> NOP |
| 202 | 202 | |
| 203 | 203 | // Data banks: 00-0f normal data decryption, 10-1f alternate data decryption: |
| 204 | m | |
| 204 | membank("bank1")->configure_entries(0, 16*2, memregion("maincpu")->base() + 0x10000, 0x4000); | |
| 205 | 205 | // Opcode banks: 00-1f normal opcode decryption: |
| 206 | machine().root_device().membank("bank1")->configure_decrypted_entries(0, 16, decrypt + 0x10000, 0x4000); | |
| 207 | machine().root_device().membank("bank1")->configure_decrypted_entries(16, 16, decrypt + 0x10000, 0x4000); | |
| 206 | membank("bank1")->configure_decrypted_entries(0, 16, decrypt + 0x10000, 0x4000); | |
| 207 | membank("bank1")->configure_decrypted_entries(16, 16, decrypt + 0x10000, 0x4000); | |
| 208 | 208 | } |
| 209 | 209 | |
| 210 | 210 | |
| r21033 | r21034 | |
| 215 | 215 | DRIVER_INIT_MEMBER(suna8_state,hardhea2) |
| 216 | 216 | { |
| 217 | 217 | address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); |
| 218 | UINT8 *RAM = machine().root_device().memregion("maincpu")->base(); | |
| 219 | size_t size = machine().root_device().memregion("maincpu")->bytes(); | |
| 218 | UINT8 *RAM = memregion("maincpu")->base(); | |
| 219 | size_t size = memregion("maincpu")->bytes(); | |
| 220 | 220 | UINT8 *decrypt = auto_alloc_array(machine(), UINT8, size); |
| 221 | 221 | UINT8 x; |
| 222 | 222 | int i; |
| r21033 | r21034 | |
| 290 | 290 | RAM[i] = BITSWAP8(RAM[i], 5,6,7,4,3,2,1,0) ^ 0x41; |
| 291 | 291 | } |
| 292 | 292 | |
| 293 | machine().root_device().membank("bank1")->configure_entries(0, 16, machine().root_device().memregion("maincpu")->base() + 0x10000, 0x4000); | |
| 294 | machine().root_device().membank("bank2")->configure_entries(0, 2, auto_alloc_array(machine(), UINT8, 0x2000 * 2), 0x2000); | |
| 293 | membank("bank1")->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x4000); | |
| 294 | membank("bank2")->configure_entries(0, 2, auto_alloc_array(machine(), UINT8, 0x2000 * 2), 0x2000); | |
| 295 | 295 | } |
| 296 | 296 | |
| 297 | 297 | |
| r21033 | r21034 | |
| 302 | 302 | DRIVER_INIT_MEMBER(suna8_state,starfigh) |
| 303 | 303 | { |
| 304 | 304 | address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); |
| 305 | UINT8 *RAM = machine().root_device().memregion("maincpu")->base(); | |
| 306 | size_t size = machine().root_device().memregion("maincpu")->bytes(); | |
| 305 | UINT8 *RAM = memregion("maincpu")->base(); | |
| 306 | size_t size = memregion("maincpu")->bytes(); | |
| 307 | 307 | UINT8 *decrypt = auto_alloc_array(machine(), UINT8, size); |
| 308 | 308 | UINT8 x; |
| 309 | 309 | int i; |
| r21033 | r21034 | |
| 377 | 377 | decrypt[0x2696] = 0xc9; // work ram writes disable, corrupt next routine |
| 378 | 378 | decrypt[0x4e9a] = 0x00; // work ram writes disable, flip background sprite |
| 379 | 379 | |
| 380 | m | |
| 380 | membank("bank1")->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x4000); | |
| 381 | 381 | } |
| 382 | 382 | |
| 383 | 383 | |
| r21033 | r21034 | |
| 388 | 388 | DRIVER_INIT_MEMBER(suna8_state,sparkman) |
| 389 | 389 | { |
| 390 | 390 | address_space &space = machine().device("maincpu")->memory().space(AS_PROGRAM); |
| 391 | UINT8 *RAM = machine().root_device().memregion("maincpu")->base(); | |
| 392 | size_t size = machine().root_device().memregion("maincpu")->bytes(); | |
| 391 | UINT8 *RAM = memregion("maincpu")->base(); | |
| 392 | size_t size = memregion("maincpu")->bytes(); | |
| 393 | 393 | UINT8 *decrypt = auto_alloc_array(machine(), UINT8, size); |
| 394 | 394 | UINT8 x; |
| 395 | 395 | int i; |
| r21033 | r21034 | |
| 461 | 461 | decrypt[0x1ac4] = 0x00; |
| 462 | 462 | decrypt[0x1ac5] = 0x00; |
| 463 | 463 | |
| 464 | m | |
| 464 | membank("bank1")->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x4000); | |
| 465 | 465 | } |
| 466 | 466 | |
| 467 | 467 | /*************************************************************************** |
| r21033 | r21034 | |
| 2772 | 2772 | |
| 2773 | 2773 | DRIVER_INIT_MEMBER(suna8_state,suna8) |
| 2774 | 2774 | { |
| 2775 | m | |
| 2775 | membank("bank1")->configure_entries(0, 16, memregion("maincpu")->base() + 0x10000, 0x4000); | |
| 2776 | 2776 | } |
| 2777 | 2777 | |
| 2778 | 2778 | GAME( 1988, sranger, 0, rranger, rranger, suna8_state, suna8, ROT0, "SunA", "Super Ranger (v2.0)", 0 ) |
| r21033 | r21034 | |
|---|---|---|
| 596 | 596 | |
| 597 | 597 | DRIVER_INIT_MEMBER(wardner_state,wardner) |
| 598 | 598 | { |
| 599 | m_ROM = m | |
| 599 | m_ROM = memregion("maincpu")->base(); | |
| 600 | 600 | twincobr_driver_savestate(); /* Save-State stuff in src/machine/twincobr.c */ |
| 601 | 601 | } |
| 602 | 602 |
| r21033 | r21034 | |
|---|---|---|
| 1217 | 1217 | DRIVER_INIT_MEMBER(missile_state,suprmatk) |
| 1218 | 1218 | { |
| 1219 | 1219 | int i; |
| 1220 | UINT8 *rom = m | |
| 1220 | UINT8 *rom = memregion("maincpu")->base(); | |
| 1221 | 1221 | |
| 1222 | 1222 | for (i = 0; i < 0x40; i++) |
| 1223 | 1223 | { |
| r21033 | r21034 | |
| 1290 | 1290 | |
| 1291 | 1291 | DRIVER_INIT_MEMBER(missile_state,missilem) |
| 1292 | 1292 | { |
| 1293 | UINT8 *src = machine().root_device().memregion("user1")->base(); | |
| 1294 | UINT8 *dest = machine().root_device().memregion("maincpu")->base(); | |
| 1293 | UINT8 *src = memregion("user1")->base(); | |
| 1294 | UINT8 *dest = memregion("maincpu")->base(); | |
| 1295 | 1295 | |
| 1296 | 1296 | // decrypt rom and put in maincpu region (result looks correct, but is untested) |
| 1297 | 1297 | for (int i = 0; i < 0x10000; i++) |
| r21033 | r21034 | |
|---|---|---|
| 237 | 237 | |
| 238 | 238 | int i; |
| 239 | 239 | |
| 240 | int G1 = machine().root_device().memregion("gfx1")->bytes()/3; | |
| 241 | int G2 = machine().root_device().memregion("gfx2")->bytes()/2; | |
| 242 | UINT8 *gfx1 = machine().root_device().memregion("gfx1")->base(); | |
| 243 | UINT8 *gfx2 = machine().root_device().memregion("gfx2")->base(); | |
| 240 | int G1 = memregion("gfx1")->bytes()/3; | |
| 241 | int G2 = memregion("gfx2")->bytes()/2; | |
| 242 | UINT8 *gfx1 = memregion("gfx1")->base(); | |
| 243 | UINT8 *gfx2 = memregion("gfx2")->base(); | |
| 244 | 244 | UINT8 *buf=auto_alloc_array(machine(), UINT8, G2*2); |
| 245 | 245 | |
| 246 | 246 | /* BG data lines */ |
| r21033 | r21034 | |
|---|---|---|
| 412 | 412 | { |
| 413 | 413 | // rd2.rdh and rd1.rdj are bitswapped, but not rd3.rdg .. are they really from the same board? |
| 414 | 414 | int x; |
| 415 | UINT8 *src = m | |
| 415 | UINT8 *src = memregion( "gfx1" )->base(); | |
| 416 | 416 | |
| 417 | 417 | for (x = 0x2000; x < 0x6000; x++) |
| 418 | 418 | { |
| r21033 | r21034 | |
|---|---|---|
| 1101 | 1101 | * * |
| 1102 | 1102 | \***************************************************/ |
| 1103 | 1103 | |
| 1104 | UINT8 *qrom = machine().root_device().memregion("questions")->base(); | |
| 1105 | UINT32 length = machine().root_device().memregion("questions")->bytes(); | |
| 1104 | UINT8 *qrom = memregion("questions")->base(); | |
| 1105 | UINT32 length = memregion("questions")->bytes(); | |
| 1106 | 1106 | UINT32 address; |
| 1107 | 1107 | |
| 1108 | 1108 | for (address = 0; address < length; address++) |
| r21033 | r21034 | |
|---|---|---|
| 957 | 957 | |
| 958 | 958 | DRIVER_INIT_MEMBER(route16_state,route16) |
| 959 | 959 | { |
| 960 | UINT8 *ROM = m | |
| 960 | UINT8 *ROM = memregion("cpu1")->base(); | |
| 961 | 961 | /* Is this actually a bootleg? some of the protection has |
| 962 | 962 | been removed */ |
| 963 | 963 | |
| r21033 | r21034 | |
| 972 | 972 | |
| 973 | 973 | DRIVER_INIT_MEMBER(route16_state,route16a) |
| 974 | 974 | { |
| 975 | UINT8 *ROM = m | |
| 975 | UINT8 *ROM = memregion("cpu1")->base(); | |
| 976 | 976 | /* TO DO : Replace these patches with simulation of the protection device */ |
| 977 | 977 | |
| 978 | 978 | /* patch the protection */ |
| r21033 | r21034 | |
|---|---|---|
| 16 | 16 | |
| 17 | 17 | INTERRUPT_GEN_MEMBER(starshp1_state::starshp1_interrupt) |
| 18 | 18 | { |
| 19 | if (( | |
| 19 | if ((ioport("SYSTEM")->read() & 0x90) != 0x90) | |
| 20 | 20 | generic_pulse_irq_line(device.execute(), 0, 1); |
| 21 | 21 | } |
| 22 | 22 |
| r21033 | r21034 | |
|---|---|---|
| 3026 | 3026 | MACHINE_START_MEMBER(taitof2_state,f2) |
| 3027 | 3027 | { |
| 3028 | 3028 | MACHINE_START_CALL_MEMBER(common); |
| 3029 | m | |
| 3029 | membank("bank2")->configure_entries(0, 8, memregion("audiocpu")->base() + 0x10000, 0x4000); | |
| 3030 | 3030 | } |
| 3031 | 3031 | |
| 3032 | 3032 | static MACHINE_CONFIG_START( taito_f2, taitof2_state ) |
| r21033 | r21034 | |
| 5311 | 5311 | int i; |
| 5312 | 5312 | UINT8 data; |
| 5313 | 5313 | UINT32 offset; |
| 5314 | UINT8 *gfx = m | |
| 5314 | UINT8 *gfx = memregion("gfx2")->base(); | |
| 5315 | 5315 | |
| 5316 | 5316 | offset = 0x100000; |
| 5317 | 5317 | for (i = 0x180000; i < 0x200000; i++) |
| r21033 | r21034 | |
|---|---|---|
| 78 | 78 | |
| 79 | 79 | DRIVER_INIT_MEMBER(maygayep_state,maygayep) |
| 80 | 80 | { |
| 81 | UINT8 *src = m | |
| 81 | UINT8 *src = memregion( "maincpu" )->base(); | |
| 82 | 82 | |
| 83 | 83 | for (int i=0x100;i<0x210;i++) |
| 84 | 84 | { |
| r21033 | r21034 | |
|---|---|---|
| 1079 | 1079 | |
| 1080 | 1080 | void goldnpkr_state::palette_init() |
| 1081 | 1081 | { |
| 1082 | const UINT8 *color_prom = m | |
| 1082 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 1083 | 1083 | /* prom bits |
| 1084 | 1084 | 7654 3210 |
| 1085 | 1085 | ---- ---x red component. |
| r21033 | r21034 | |
| 1123 | 1123 | |
| 1124 | 1124 | PALETTE_INIT_MEMBER(goldnpkr_state,witchcrd) |
| 1125 | 1125 | { |
| 1126 | const UINT8 *color_prom = m | |
| 1126 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 1127 | 1127 | /* |
| 1128 | 1128 | This hardware has a feature called BLUE KILLER. |
| 1129 | 1129 | Using the original intensity line, the PCB has a bridge |
| r21033 | r21034 | |
| 1171 | 1171 | |
| 1172 | 1172 | PALETTE_INIT_MEMBER(goldnpkr_state,wcrdxtnd) |
| 1173 | 1173 | { |
| 1174 | const UINT8 *color_prom = m | |
| 1174 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 1175 | 1175 | /* |
| 1176 | 1176 | Using the original intensity line, the PCB has a bridge |
| 1177 | 1177 | that allow (as default) turn the background dark blue. |
| r21033 | r21034 | |
| 9394 | 9394 | { |
| 9395 | 9395 | /* $60bb, NOPing the ORA #$F0 (after read the PIA1 port B */ |
| 9396 | 9396 | |
| 9397 | // UINT8 *ROM = m | |
| 9397 | // UINT8 *ROM = memregion("maincpu")->base(); | |
| 9398 | 9398 | |
| 9399 | 9399 | // ROM[0x60bb] = 0xea; |
| 9400 | 9400 | // ROM[0x60bc] = 0xea; |
| r21033 | r21034 | |
| 9423 | 9423 | { |
| 9424 | 9424 | /* Attempt to decrypt the MCU program (we're sooo close!) */ |
| 9425 | 9425 | |
| 9426 | UINT8 *ROM = machine().root_device().memregion("mcu")->base(); | |
| 9427 | int size = machine().root_device().memregion("mcu")->bytes(); | |
| 9426 | UINT8 *ROM = memregion("mcu")->base(); | |
| 9427 | int size = memregion("mcu")->bytes(); | |
| 9428 | 9428 | int start = 0x0000; |
| 9429 | 9429 | int i; |
| 9430 | 9430 | |
| r21033 | r21034 | |
| 9442 | 9442 | after compare with Dallas TK data |
| 9443 | 9443 | */ |
| 9444 | 9444 | |
| 9445 | UINT8 *ROM = m | |
| 9445 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 9446 | 9446 | |
| 9447 | 9447 | ROM[0xe097] = 0xea; |
| 9448 | 9448 | ROM[0xe098] = 0xea; |
| r21033 | r21034 | |
| 9454 | 9454 | after compare with Dallas TK data |
| 9455 | 9455 | */ |
| 9456 | 9456 | |
| 9457 | UINT8 *ROM = m | |
| 9457 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 9458 | 9458 | |
| 9459 | 9459 | ROM[0xe87b] = 0xea; |
| 9460 | 9460 | ROM[0xe87c] = 0xea; |
| r21033 | r21034 | |
| 9466 | 9466 | after compare with Dallas TK data |
| 9467 | 9467 | */ |
| 9468 | 9468 | |
| 9469 | UINT8 *ROM = m | |
| 9469 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 9470 | 9470 | |
| 9471 | 9471 | ROM[0x453a] = 0xea; |
| 9472 | 9472 | ROM[0x453b] = 0xea; |
| r21033 | r21034 | |
| 9478 | 9478 | after compare with Dallas TK data |
| 9479 | 9479 | */ |
| 9480 | 9480 | |
| 9481 | UINT8 *ROM = m | |
| 9481 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 9482 | 9482 | |
| 9483 | 9483 | ROM[0xf2c9] = 0xea; |
| 9484 | 9484 | ROM[0xf2ca] = 0xea; |
| r21033 | r21034 | |
| 9490 | 9490 | after compare with Dallas TK data |
| 9491 | 9491 | */ |
| 9492 | 9492 | |
| 9493 | UINT8 *ROM = m | |
| 9493 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 9494 | 9494 | |
| 9495 | 9495 | ROM[0xdf80] = 0xea; |
| 9496 | 9496 | ROM[0xdf81] = 0xea; |
| r21033 | r21034 | |
| 9502 | 9502 | after compare with Dallas TK data |
| 9503 | 9503 | */ |
| 9504 | 9504 | |
| 9505 | UINT8 *ROM = m | |
| 9505 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 9506 | 9506 | |
| 9507 | 9507 | ROM[0xe42f] = 0xea; |
| 9508 | 9508 | ROM[0xe430] = 0xea; |
| r21033 | r21034 | |
| 9514 | 9514 | after compare with Dallas TK data |
| 9515 | 9515 | */ |
| 9516 | 9516 | |
| 9517 | UINT8 *ROM = m | |
| 9517 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 9518 | 9518 | |
| 9519 | 9519 | ROM[0xe442] = 0xea; |
| 9520 | 9520 | ROM[0xe443] = 0xea; |
| r21033 | r21034 | |
| 9526 | 9526 | after compare with Dallas TK data |
| 9527 | 9527 | */ |
| 9528 | 9528 | |
| 9529 | UINT8 *ROM = m | |
| 9529 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 9530 | 9530 | |
| 9531 | 9531 | ROM[0xe4d5] = 0xea; |
| 9532 | 9532 | ROM[0xe4d6] = 0xea; |
| r21033 | r21034 | |
| 9538 | 9538 | after compare with Dallas TK data |
| 9539 | 9539 | */ |
| 9540 | 9540 | |
| 9541 | UINT8 *ROM = m | |
| 9541 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 9542 | 9542 | |
| 9543 | 9543 | ROM[0xe87c] = 0xea; |
| 9544 | 9544 | ROM[0xe87d] = 0xea; |
| r21033 | r21034 | |
| 9550 | 9550 | after compare with Dallas TK data |
| 9551 | 9551 | */ |
| 9552 | 9552 | |
| 9553 | UINT8 *ROM = m | |
| 9553 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 9554 | 9554 | |
| 9555 | 9555 | ROM[0xe7d5] = 0xea; |
| 9556 | 9556 | ROM[0xe7d6] = 0xea; |
| r21033 | r21034 | |
| 9562 | 9562 | after compare with Dallas TK data |
| 9563 | 9563 | */ |
| 9564 | 9564 | |
| 9565 | UINT8 *ROM = m | |
| 9565 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 9566 | 9566 | |
| 9567 | 9567 | ROM[0xe7d9] = 0xea; |
| 9568 | 9568 | ROM[0xe7da] = 0xea; |
| r21033 | r21034 | |
| 9574 | 9574 | after compare with Dallas TK data |
| 9575 | 9575 | */ |
| 9576 | 9576 | |
| 9577 | UINT8 *ROM = m | |
| 9577 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 9578 | 9578 | |
| 9579 | 9579 | ROM[0xe7f7] = 0xea; |
| 9580 | 9580 | ROM[0xe7f8] = 0xea; |
| r21033 | r21034 | |
| 9586 | 9586 | after compare with Dallas TK data |
| 9587 | 9587 | */ |
| 9588 | 9588 | |
| 9589 | UINT8 *ROM = m | |
| 9589 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 9590 | 9590 | |
| 9591 | 9591 | ROM[0xe8a5] = 0xea; |
| 9592 | 9592 | ROM[0xe8a6] = 0xea; |
| r21033 | r21034 | |
| 9598 | 9598 | after compare with Dallas TK data |
| 9599 | 9599 | */ |
| 9600 | 9600 | |
| 9601 | UINT8 *ROM = m | |
| 9601 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 9602 | 9602 | |
| 9603 | 9603 | ROM[0xe955] = 0xea; |
| 9604 | 9604 | ROM[0xe956] = 0xea; |
| r21033 | r21034 | |
| 9610 | 9610 | after compare with Dallas TK data |
| 9611 | 9611 | */ |
| 9612 | 9612 | |
| 9613 | UINT8 *ROM = m | |
| 9613 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 9614 | 9614 | |
| 9615 | 9615 | ROM[0xee6b] = 0xea; |
| 9616 | 9616 | ROM[0xee6c] = 0xea; |
| r21033 | r21034 | |
| 9622 | 9622 | after compare with Dallas TK data |
| 9623 | 9623 | */ |
| 9624 | 9624 | |
| 9625 | UINT8 *ROM = m | |
| 9625 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 9626 | 9626 | |
| 9627 | 9627 | ROM[0xf052] = 0xea; |
| 9628 | 9628 | ROM[0xf053] = 0xea; |
| r21033 | r21034 | |
| 9754 | 9754 | after compare with a string inside the Dallas TK RAM |
| 9755 | 9755 | */ |
| 9756 | 9756 | |
| 9757 | UINT8 *ROM = m | |
| 9757 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 9758 | 9758 | |
| 9759 | 9759 | ROM[0xf2e1] = 0xea; |
| 9760 | 9760 | ROM[0xf2e2] = 0xea; |
| r21033 | r21034 | |
|---|---|---|
| 77 | 77 | |
| 78 | 78 | void xxmissio_state::machine_start() |
| 79 | 79 | { |
| 80 | machine().root_device().membank("bank1")->configure_entries(0, 8, machine().root_device().memregion("user1")->base(), 0x4000); | |
| 81 | machine().root_device().membank("bank1")->set_entry(0); | |
| 80 | membank("bank1")->configure_entries(0, 8, memregion("user1")->base(), 0x4000); | |
| 81 | membank("bank1")->set_entry(0); | |
| 82 | 82 | } |
| 83 | 83 | |
| 84 | 84 | /****************************************************************************/ |
| r21033 | r21034 | |
|---|---|---|
| 1481 | 1481 | i8051_set_serial_tx_callback(machine().device("soundcpu"), soundcpu_to_qs1000); |
| 1482 | 1482 | |
| 1483 | 1483 | // Configure the sound ROM banking |
| 1484 | m | |
| 1484 | membank("sound_bank")->configure_entries(0, 16, memregion("sounddata")->base(), 0x8000); | |
| 1485 | 1485 | } |
| 1486 | 1486 | |
| 1487 | 1487 | DRIVER_INIT_MEMBER(eolith_state,landbrk) |
| r21033 | r21034 | |
| 1507 | 1507 | DRIVER_INIT_MEMBER(eolith_state,hidctch2) |
| 1508 | 1508 | { |
| 1509 | 1509 | //it fails compares in memory like in landbrka |
| 1510 | UINT32 *rombase = (UINT32*)m | |
| 1510 | UINT32 *rombase = (UINT32*)memregion("maincpu")->base(); | |
| 1511 | 1511 | rombase[0xbcc8/4] = (rombase[0xbcc8/4] & 0xffff) | 0x03000000; /* Change BR to NOP */ |
| 1512 | 1512 | |
| 1513 | 1513 | DRIVER_INIT_CALL(eolith); |
| r21033 | r21034 | |
|---|---|---|
| 1298 | 1298 | } |
| 1299 | 1299 | |
| 1300 | 1300 | // Copy sprite & palette data out of GFX rom area |
| 1301 | m_rom_sprite_lookup1 = machine().root_device().memregion("gfx2")->base(); | |
| 1302 | m_rom_sprite_lookup2 = machine().root_device().memregion("gfx3")->base(); | |
| 1303 | m_rom_clut0 = machine().root_device().memregion("gfx2")->base()+ 0x100000 - 0x800; | |
| 1304 | m_rom_clut1 = machine().root_device().memregion("gfx3")->base()+ 0x100000 - 0x800; | |
| 1301 | m_rom_sprite_lookup1 = memregion("gfx2")->base(); | |
| 1302 | m_rom_sprite_lookup2 = memregion("gfx3")->base(); | |
| 1303 | m_rom_clut0 = memregion("gfx2")->base()+ 0x100000 - 0x800; | |
| 1304 | m_rom_clut1 = memregion("gfx3")->base()+ 0x100000 - 0x800; | |
| 1305 | 1305 | |
| 1306 | 1306 | tatsumi_reset(machine()); |
| 1307 | 1307 | |
| r21033 | r21034 | |
| 1325 | 1325 | } |
| 1326 | 1326 | |
| 1327 | 1327 | // Copy sprite & palette data out of GFX rom area |
| 1328 | m_rom_sprite_lookup1 = machine().root_device().memregion("gfx2")->base(); | |
| 1329 | m_rom_sprite_lookup2 = machine().root_device().memregion("gfx3")->base(); | |
| 1330 | m_rom_clut0 = machine().root_device().memregion("gfx2")->base()+ 0xc0000 - 0x800; | |
| 1331 | m_rom_clut1 = machine().root_device().memregion("gfx3")->base()+ 0xc0000 - 0x800; | |
| 1328 | m_rom_sprite_lookup1 = memregion("gfx2")->base(); | |
| 1329 | m_rom_sprite_lookup2 = memregion("gfx3")->base(); | |
| 1330 | m_rom_clut0 = memregion("gfx2")->base()+ 0xc0000 - 0x800; | |
| 1331 | m_rom_clut1 = memregion("gfx3")->base()+ 0xc0000 - 0x800; | |
| 1332 | 1332 | |
| 1333 | 1333 | tatsumi_reset(machine()); |
| 1334 | 1334 | } |
| r21033 | r21034 | |
| 1350 | 1350 | src2+=32; |
| 1351 | 1351 | } |
| 1352 | 1352 | |
| 1353 | dst = m | |
| 1353 | dst = memregion("maincpu")->base(); | |
| 1354 | 1354 | memcpy(m_cyclwarr_cpua_ram,dst,8); |
| 1355 | 1355 | membank("bank1")->set_base(dst); |
| 1356 | 1356 | |
| 1357 | dst = m | |
| 1357 | dst = memregion("sub")->base(); | |
| 1358 | 1358 | memcpy(m_cyclwarr_cpub_ram,dst,8); |
| 1359 | 1359 | membank("bank2")->set_base(dst); |
| 1360 | 1360 | |
| 1361 | 1361 | // Copy sprite & palette data out of GFX rom area |
| 1362 | m_rom_sprite_lookup1 = machine().root_device().memregion("gfx2")->base(); | |
| 1363 | m_rom_sprite_lookup2 = machine().root_device().memregion("gfx3")->base(); | |
| 1364 | m_rom_clut0 = machine().root_device().memregion("gfx2")->base() + len1 - 0x1000; | |
| 1365 | m_rom_clut1 = machine().root_device().memregion("gfx3")->base() + len2 - 0x1000; | |
| 1362 | m_rom_sprite_lookup1 = memregion("gfx2")->base(); | |
| 1363 | m_rom_sprite_lookup2 = memregion("gfx3")->base(); | |
| 1364 | m_rom_clut0 = memregion("gfx2")->base() + len1 - 0x1000; | |
| 1365 | m_rom_clut1 = memregion("gfx3")->base() + len2 - 0x1000; | |
| 1366 | 1366 | |
| 1367 | 1367 | tatsumi_reset(machine()); |
| 1368 | 1368 | } |
| r21033 | r21034 | |
|---|---|---|
| 451 | 451 | DRIVER_INIT_MEMBER(groundfx_state,groundfx) |
| 452 | 452 | { |
| 453 | 453 | UINT32 offset,i; |
| 454 | UINT8 *gfx = machine().root_device().memregion("gfx3")->base(); | |
| 455 | int size=machine().root_device().memregion("gfx3")->bytes(); | |
| 454 | UINT8 *gfx = memregion("gfx3")->base(); | |
| 455 | int size=memregion("gfx3")->bytes(); | |
| 456 | 456 | int data; |
| 457 | 457 | |
| 458 | 458 | /* Speedup handlers */ |
| r21033 | r21034 | |
|---|---|---|
| 281 | 281 | int i, j, k, color_source, color_dest; |
| 282 | 282 | UINT8 *source, *dest, *lookup; |
| 283 | 283 | |
| 284 | source = m | |
| 284 | source = memregion("gfx1")->base(); | |
| 285 | 285 | dest = source + 0x6000; |
| 286 | lookup = m | |
| 286 | lookup = memregion("proms")->base() + 0x0200; | |
| 287 | 287 | |
| 288 | 288 | for (i = 0; i < 0x80; i++, lookup += 8) |
| 289 | 289 | { |
| r21033 | r21034 | |
|---|---|---|
| 298 | 298 | |
| 299 | 299 | DRIVER_INIT_MEMBER(feversoc_state,feversoc) |
| 300 | 300 | { |
| 301 | seibuspi_rise11_sprite_decrypt_feversoc(m | |
| 301 | seibuspi_rise11_sprite_decrypt_feversoc(memregion("gfx1")->base(), 0x200000); | |
| 302 | 302 | } |
| 303 | 303 | |
| 304 | 304 | GAME( 2004, feversoc, 0, feversoc, feversoc, feversoc_state, feversoc, ROT0, "Seibu Kaihatsu", "Fever Soccer", 0 ) |
| r21033 | r21034 | |
|---|---|---|
| 331 | 331 | |
| 332 | 332 | WRITE8_MEMBER(multigam_state::multigam_switch_gfx_rom) |
| 333 | 333 | { |
| 334 | membank("bank1")->set_base(m | |
| 334 | membank("bank1")->set_base(memregion("gfx1")->base() + (0x2000 * (data & 0x3f))); | |
| 335 | 335 | set_mirroring(data & 0x40 ? PPU_MIRROR_HORZ : PPU_MIRROR_VERT); |
| 336 | 336 | m_game_gfx_bank = data; |
| 337 | 337 | }; |
| r21033 | r21034 | |
| 341 | 341 | { |
| 342 | 342 | if (m_game_gfx_bank & 0x80) |
| 343 | 343 | { |
| 344 | membank("bank1")->set_base(m | |
| 344 | membank("bank1")->set_base(memregion("gfx1")->base() + (0x2000 * ((data & 0x3) + (m_game_gfx_bank & 0x3c)))); | |
| 345 | 345 | } |
| 346 | 346 | else |
| 347 | 347 | { |
| r21033 | r21034 | |
| 533 | 533 | } |
| 534 | 534 | else |
| 535 | 535 | { |
| 536 | membank("bank10")->set_base(m | |
| 536 | membank("bank10")->set_base(memregion("maincpu")->base() + 0x6000); | |
| 537 | 537 | } |
| 538 | 538 | if (data & 0x40) |
| 539 | 539 | { |
| r21033 | r21034 | |
| 617 | 617 | else |
| 618 | 618 | { |
| 619 | 619 | space.install_write_handler(0x8000, 0xffff, write8_delegate(FUNC(multigam_state::multigm3_mapper2_w),this) ); |
| 620 | membank("bank10")->set_base(m | |
| 620 | membank("bank10")->set_base(memregion("maincpu")->base() + 0x6000); | |
| 621 | 621 | } |
| 622 | 622 | |
| 623 | 623 | if (data & 0x80) |
| r21033 | r21034 | |
| 1380 | 1380 | |
| 1381 | 1381 | const UINT8 decode[16] = { 0x09, 0x08, 0x07, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00, 0x0f, 0x0e, 0x0d, 0x0c, 0x0b, 0x0a }; |
| 1382 | 1382 | |
| 1383 | multigm3_decrypt(machine().root_device().memregion("maincpu")->base(), machine().root_device().memregion("maincpu")->bytes(), decode ); | |
| 1384 | multigm3_decrypt(machine().root_device().memregion("user1")->base(), machine().root_device().memregion("user1")->bytes(), decode ); | |
| 1383 | multigm3_decrypt(memregion("maincpu")->base(), memregion("maincpu")->bytes(), decode ); | |
| 1384 | multigm3_decrypt(memregion("user1")->base(), memregion("user1")->bytes(), decode ); | |
| 1385 | 1385 | |
| 1386 | 1386 | m_multigmc_mmc3_6000_ram = auto_alloc_array(machine(), UINT8, 0x2000); |
| 1387 | 1387 | |
| r21033 | r21034 | |
| 1398 | 1398 | int i; |
| 1399 | 1399 | int addr; |
| 1400 | 1400 | |
| 1401 | rom = m | |
| 1401 | rom = memregion("maincpu")->base(); | |
| 1402 | 1402 | size = 0x8000; |
| 1403 | 1403 | memcpy(buf, rom, size); |
| 1404 | 1404 | for (i = 0; i < size; i++) |
| r21033 | r21034 | |
| 1407 | 1407 | rom[i] = buf[addr]; |
| 1408 | 1408 | } |
| 1409 | 1409 | |
| 1410 | rom = m | |
| 1410 | rom = memregion("user1")->base(); | |
| 1411 | 1411 | size = 0x80000; |
| 1412 | 1412 | memcpy(buf, rom, size); |
| 1413 | 1413 | for (i = 0; i < size; i++) |
| r21033 | r21034 | |
| 1415 | 1415 | addr = BITSWAP24(i,23,22,21,20,19,18,17,16,15,14,13,8,11,12,10,9,7,6,5,4,3,2,1,0); |
| 1416 | 1416 | rom[i] = buf[addr]; |
| 1417 | 1417 | } |
| 1418 | rom = m | |
| 1418 | rom = memregion("gfx1")->base(); | |
| 1419 | 1419 | size = 0x80000; |
| 1420 | 1420 | memcpy(buf, rom, size); |
| 1421 | 1421 | for (i = 0; i < size; i++) |
| r21033 | r21034 | |
|---|---|---|
| 37 | 37 | UINT8 amspdwy_state::amspdwy_wheel_r( int index ) |
| 38 | 38 | { |
| 39 | 39 | static const char *const portnames[] = { "WHEEL1", "WHEEL2", "AN1", "AN2" }; |
| 40 | UINT8 wheel = | |
| 40 | UINT8 wheel = ioport(portnames[2 + index])->read(); | |
| 41 | 41 | if (wheel != m_wheel_old[index]) |
| 42 | 42 | { |
| 43 | 43 | wheel = (wheel & 0x7fff) - (wheel & 0x8000); |
| r21033 | r21034 | |
| 48 | 48 | |
| 49 | 49 | m_wheel_old[index] = wheel; |
| 50 | 50 | } |
| 51 | return m_wheel_return[index] | | |
| 51 | return m_wheel_return[index] | ioport(portnames[index])->read(); | |
| 52 | 52 | } |
| 53 | 53 | |
| 54 | 54 | READ8_MEMBER(amspdwy_state::amspdwy_wheel_0_r) |
| r21033 | r21034 | |
| 64 | 64 | READ8_MEMBER(amspdwy_state::amspdwy_sound_r) |
| 65 | 65 | { |
| 66 | 66 | ym2151_device *device = machine().device<ym2151_device>("ymsnd"); |
| 67 | return (device->status_r(space, 0) & ~ 0x30) | | |
| 67 | return (device->status_r(space, 0) & ~ 0x30) | ioport("IN0")->read(); | |
| 68 | 68 | } |
| 69 | 69 | |
| 70 | 70 | WRITE8_MEMBER(amspdwy_state::amspdwy_sound_w) |
| r21033 | r21034 | |
|---|---|---|
| 380 | 380 | |
| 381 | 381 | void fortecar_state::palette_init() |
| 382 | 382 | { |
| 383 | const UINT8 *color_prom = m | |
| 383 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 384 | 384 | /* Video resistors... |
| 385 | 385 | |
| 386 | 386 | O1 (LS374) R1K RED |
| r21033 | r21034 | |
|---|---|---|
| 533 | 533 | int i; |
| 534 | 534 | |
| 535 | 535 | /* unpack the third tile ROM */ |
| 536 | rom = m | |
| 536 | rom = memregion("gfx2")->base() + 0x8000; | |
| 537 | 537 | for (i = 0x2000;i < 0x4000;i++) |
| 538 | 538 | { |
| 539 | 539 | rom[i + 0x2000] = rom[i]; |
| r21033 | r21034 | |
|---|---|---|
| 62 | 62 | |
| 63 | 63 | READ8_MEMBER(runaway_state::runaway_pot_r) |
| 64 | 64 | { |
| 65 | return ( | |
| 65 | return (ioport("7000")->read() << (7 - offset)) & 0x80; | |
| 66 | 66 | } |
| 67 | 67 | |
| 68 | 68 |
| r21033 | r21034 | |
|---|---|---|
| 468 | 468 | /* we use channels 1,2,3 for sound effects, and channel 4 for music */ |
| 469 | 469 | void tumbleb_state::tumbleb2_set_music_bank( int bank ) |
| 470 | 470 | { |
| 471 | UINT8 *oki = m | |
| 471 | UINT8 *oki = memregion("oki")->base(); | |
| 472 | 472 | memcpy(&oki[0x38000], &oki[0x80000 + 0x38000 + 0x8000 * bank], 0x8000); |
| 473 | 473 | } |
| 474 | 474 | |
| r21033 | r21034 | |
| 3194 | 3194 | void tumbleb_state::tumblepb_patch_code(UINT16 offset) |
| 3195 | 3195 | { |
| 3196 | 3196 | /* A hack which enables all Dip Switches effects */ |
| 3197 | UINT16 *RAM = (UINT16 *)m | |
| 3197 | UINT16 *RAM = (UINT16 *)memregion("maincpu")->base(); | |
| 3198 | 3198 | RAM[(offset + 0)/2] = 0x0240; |
| 3199 | 3199 | RAM[(offset + 2)/2] = 0xffff; // andi.w #$f3ff, D0 |
| 3200 | 3200 | } |
| r21033 | r21034 | |
| 3208 | 3208 | |
| 3209 | 3209 | if (rgn == 1) |
| 3210 | 3210 | { |
| 3211 | rom = machine().root_device().memregion("tilegfx")->base(); | |
| 3212 | len = machine().root_device().memregion("tilegfx")->bytes(); | |
| 3211 | rom = memregion("tilegfx")->base(); | |
| 3212 | len = memregion("tilegfx")->bytes(); | |
| 3213 | 3213 | } |
| 3214 | 3214 | else |
| 3215 | 3215 | { |
| 3216 | rom = machine().root_device().memregion("sprgfx")->base(); | |
| 3217 | len = machine().root_device().memregion("sprgfx")->bytes(); | |
| 3216 | rom = memregion("sprgfx")->base(); | |
| 3217 | len = memregion("sprgfx")->bytes(); | |
| 3218 | 3218 | } |
| 3219 | 3219 | |
| 3220 | 3220 | int i; |
| r21033 | r21034 | |
| 3276 | 3276 | #if FNCYWLD_HACK |
| 3277 | 3277 | /* This is a hack to allow you to use the extra features |
| 3278 | 3278 | of the 2 first "Unused" Dip Switch (see notes above). */ |
| 3279 | UINT16 *RAM = (UINT16 *)m | |
| 3279 | UINT16 *RAM = (UINT16 *)memregion("maincpu")->base(); | |
| 3280 | 3280 | RAM[0x0005fa/2] = 0x4e71; |
| 3281 | 3281 | RAM[0x00060a/2] = 0x4e71; |
| 3282 | 3282 | #endif |
| r21033 | r21034 | |
| 3314 | 3314 | |
| 3315 | 3315 | void tumbleb_state::suprtrio_decrypt_code() |
| 3316 | 3316 | { |
| 3317 | UINT16 *rom = (UINT16 *)m | |
| 3317 | UINT16 *rom = (UINT16 *)memregion("maincpu")->base(); | |
| 3318 | 3318 | UINT16 *buf = auto_alloc_array(machine(), UINT16, 0x80000/2); |
| 3319 | 3319 | int i; |
| 3320 | 3320 | |
| r21033 | r21034 | |
| 3332 | 3332 | |
| 3333 | 3333 | void tumbleb_state::suprtrio_decrypt_gfx() |
| 3334 | 3334 | { |
| 3335 | UINT16 *rom = (UINT16 *)m | |
| 3335 | UINT16 *rom = (UINT16 *)memregion("tilegfx")->base(); | |
| 3336 | 3336 | UINT16 *buf = auto_alloc_array(machine(), UINT16, 0x100000/2); |
| 3337 | 3337 | int i; |
| 3338 | 3338 |
| r21033 | r21034 | |
|---|---|---|
| 469 | 469 | die once, it would be nice to avoid the hack however |
| 470 | 470 | |
| 471 | 471 | */ |
| 472 | UINT8 *ROM = m | |
| 472 | UINT8 *ROM = memregion("maincpu")->base(); | |
| 473 | 473 | |
| 474 | 474 | ROM[0x05C6] = 0xc3; |
| 475 | 475 | ROM[0x05C7] = 0x8d; |
| r21033 | r21034 | |
|---|---|---|
| 360 | 360 | |
| 361 | 361 | DRIVER_INIT_MEMBER(cabaret_state,cabaret) |
| 362 | 362 | { |
| 363 | UINT8 *rom = m | |
| 363 | UINT8 *rom = memregion("maincpu")->base(); | |
| 364 | 364 | int i; |
| 365 | 365 | |
| 366 | 366 | /* decrypt the program ROM */ |
| r21033 | r21034 | |
|---|---|---|
| 575 | 575 | bit-swapping */ |
| 576 | 576 | void raiden_state::common_decrypt() |
| 577 | 577 | { |
| 578 | UINT16 *RAM = (UINT16 *)m | |
| 578 | UINT16 *RAM = (UINT16 *)memregion("maincpu")->base(); | |
| 579 | 579 | int i; |
| 580 | 580 | |
| 581 | 581 | for (i = 0; i < 0x20000; i++) |
| r21033 | r21034 | |
| 587 | 587 | RAM[0xc0000/2 + i] = data; |
| 588 | 588 | } |
| 589 | 589 | |
| 590 | RAM = (UINT16 *)m | |
| 590 | RAM = (UINT16 *)memregion("sub")->base(); | |
| 591 | 591 | |
| 592 | 592 | for (i = 0; i < 0x20000; i++) |
| 593 | 593 | { |
| r21033 | r21034 | |
|---|---|---|
| 58 | 58 | just four 1k resistors. */ |
| 59 | 59 | void tugboat_state::palette_init() |
| 60 | 60 | { |
| 61 | const UINT8 *color_prom = m | |
| 61 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 62 | 62 | int i; |
| 63 | 63 | |
| 64 | 64 |
| r21033 | r21034 | |
|---|---|---|
| 446 | 446 | |
| 447 | 447 | MACHINE_RESET_MEMBER(phoenix_state,phoenix) |
| 448 | 448 | { |
| 449 | m | |
| 449 | membank("bank1")->set_base(memregion("maincpu")->base() + 0x4000); | |
| 450 | 450 | } |
| 451 | 451 | |
| 452 | 452 |
| r21033 | r21034 | |
|---|---|---|
| 692 | 692 | DRIVER_INIT_MEMBER(snesb_state,ffight2b) |
| 693 | 693 | { |
| 694 | 694 | INT32 i; |
| 695 | UINT8 *rom = m | |
| 695 | UINT8 *rom = memregion("user3")->base(); | |
| 696 | 696 | |
| 697 | 697 | for(i = 0; i < 0x200000; i++) |
| 698 | 698 | { |
| r21033 | r21034 | |
| 735 | 735 | DRIVER_INIT_MEMBER(snesb_state,iron) |
| 736 | 736 | { |
| 737 | 737 | INT32 i; |
| 738 | UINT8 *rom = m | |
| 738 | UINT8 *rom = memregion("user3")->base(); | |
| 739 | 739 | |
| 740 | 740 | for (i = 0; i < 0x140000; i++) |
| 741 | 741 | { |
| r21033 | r21034 | |
| 759 | 759 | |
| 760 | 760 | DRIVER_INIT_MEMBER(snesb_state,denseib) |
| 761 | 761 | { |
| 762 | UINT8 *rom = m | |
| 762 | UINT8 *rom = memregion("user3")->base(); | |
| 763 | 763 | INT32 i; |
| 764 | 764 | |
| 765 | 765 | for (i = 0; i < 0x200000; i++) |
| r21033 | r21034 | |
| 808 | 808 | DRIVER_INIT_MEMBER(snesb_state,sblast2b) |
| 809 | 809 | { |
| 810 | 810 | int i, cipherText, plainText, newAddress; |
| 811 | UINT8 *src = machine().root_device().memregion("user7")->base(); | |
| 812 | UINT8 *dst = machine().root_device().memregion("user3")->base(); | |
| 811 | UINT8 *src = memregion("user7")->base(); | |
| 812 | UINT8 *dst = memregion("user3")->base(); | |
| 813 | 813 | |
| 814 | 814 | for (i =0; i < 0x80000 * 3; i++) |
| 815 | 815 | { |
| r21033 | r21034 | |
| 858 | 858 | DRIVER_INIT_MEMBER(snesb_state,endless) |
| 859 | 859 | { |
| 860 | 860 | INT32 i; |
| 861 | UINT8 *rom = m | |
| 861 | UINT8 *rom = memregion("user3")->base(); | |
| 862 | 862 | |
| 863 | 863 | /* there is more to this, 0x800 based block swaps? */ |
| 864 | 864 | for (i = 0; i < 0x200000; i++) |
| r21033 | r21034 | |
|---|---|---|
| 1376 | 1376 | |
| 1377 | 1377 | void ms32_state::machine_reset() |
| 1378 | 1378 | { |
| 1379 | machine().root_device().membank("bank1")->set_base(machine().root_device().memregion("maincpu")->base()); | |
| 1380 | machine().root_device().membank("bank4")->set_entry(0); | |
| 1381 | machine().root_device().membank("bank5")->set_entry(1); | |
| 1379 | membank("bank1")->set_base(memregion("maincpu")->base()); | |
| 1380 | membank("bank4")->set_entry(0); | |
| 1381 | membank("bank5")->set_entry(1); | |
| 1382 | 1382 | irq_init(); |
| 1383 | 1383 | } |
| 1384 | 1384 | |
| r21033 | r21034 | |
| 2253 | 2253 | DRIVER_INIT_MEMBER(ms32_state,f1superb) |
| 2254 | 2254 | { |
| 2255 | 2255 | #if 0 // we shouldn't need this hack, something else is wrong, and the x offsets are never copied either, v70 problems?? |
| 2256 | UINT32 *pROM = (UINT32 *)m | |
| 2256 | UINT32 *pROM = (UINT32 *)memregion("maincpu")->base(); | |
| 2257 | 2257 | pROM[0x19d04/4]=0x167a021a; // bne->br : sprite Y offset table is always copied to RAM |
| 2258 | 2258 | #endif |
| 2259 | 2259 | DRIVER_INIT_CALL(ss92046_01); |
| r21033 | r21034 | |
|---|---|---|
| 66 | 66 | |
| 67 | 67 | void kontest_state::palette_init() |
| 68 | 68 | { |
| 69 | const UINT8 *color_prom = m | |
| 69 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 70 | 70 | int bit0, bit1, bit2 , r, g, b; |
| 71 | 71 | int i; |
| 72 | 72 |
| r21033 | r21034 | |
|---|---|---|
| 44 | 44 | { |
| 45 | 45 | static const char *const tianames[] = { "PADDLE4", "PADDLE3", "PADDLE2", "PADDLE1", "TIA_IN4", "TIA_IN5" }; |
| 46 | 46 | |
| 47 | return | |
| 47 | return ioport(tianames[offset])->read(); | |
| 48 | 48 | } |
| 49 | 49 | |
| 50 | 50 | READ8_MEMBER(tourtabl_state::tourtabl_get_databus_contents) |
| r21033 | r21034 | |
|---|---|---|
| 861 | 861 | DRIVER_INIT_MEMBER(kas89_state,kas89) |
| 862 | 862 | { |
| 863 | 863 | int i; |
| 864 | UINT8 *mem = machine().root_device().memregion("maincpu")->base(); | |
| 865 | int memsize = machine().root_device().memregion("maincpu")->bytes(); | |
| 864 | UINT8 *mem = memregion("maincpu")->base(); | |
| 865 | int memsize = memregion("maincpu")->bytes(); | |
| 866 | 866 | UINT8 *buf; |
| 867 | 867 | |
| 868 | 868 | /* Unscrambling data lines */ |
| r21033 | r21034 | |
|---|---|---|
| 677 | 677 | |
| 678 | 678 | void backfire_state::descramble_sound() |
| 679 | 679 | { |
| 680 | UINT8 *rom = m | |
| 680 | UINT8 *rom = memregion("ymz")->base(); | |
| 681 | 681 | int length = 0x200000; // only the first rom is swapped on backfire! |
| 682 | 682 | UINT8 *buf1 = auto_alloc_array(machine(), UINT8, length); |
| 683 | 683 | UINT32 x; |
| r21033 | r21034 | |
|---|---|---|
| 1297 | 1297 | } |
| 1298 | 1298 | |
| 1299 | 1299 | /* use low bit as 'interpolation' bit */ |
| 1300 | src = m | |
| 1300 | src = memregion("gfx2")->base(); | |
| 1301 | 1301 | for (i = 0; i < 0x8000; i++) |
| 1302 | 1302 | { |
| 1303 | 1303 | if (src[i] & 0x10) |
| r21033 | r21034 | |
| 1328 | 1328 | DRIVER_INIT_CALL(dwarfd); |
| 1329 | 1329 | |
| 1330 | 1330 | // hacks for program to proceed |
| 1331 | machine().root_device().memregion("maincpu")->base()[0x6564] = 0x00; | |
| 1332 | machine().root_device().memregion("maincpu")->base()[0x6565] = 0x00; | |
| 1331 | memregion("maincpu")->base()[0x6564] = 0x00; | |
| 1332 | memregion("maincpu")->base()[0x6565] = 0x00; | |
| 1333 | 1333 | |
| 1334 | machine().root_device().memregion("maincpu")->base()[0x59b2] = 0x00; | |
| 1335 | machine().root_device().memregion("maincpu")->base()[0x59b3] = 0x00; | |
| 1336 | machine().root_device().memregion("maincpu")->base()[0x59b4] = 0x00; | |
| 1334 | memregion("maincpu")->base()[0x59b2] = 0x00; | |
| 1335 | memregion("maincpu")->base()[0x59b3] = 0x00; | |
| 1336 | memregion("maincpu")->base()[0x59b4] = 0x00; | |
| 1337 | 1337 | |
| 1338 | 1338 | } |
| 1339 | 1339 |
| r21033 | r21034 | |
|---|---|---|
| 1122 | 1122 | WRITE8_MEMBER(segas32_state::sound_bank_lo_w) |
| 1123 | 1123 | { |
| 1124 | 1124 | m_sound_bank = (m_sound_bank & ~0x3f) | (data & 0x3f); |
| 1125 | membank("bank1")->set_base(m | |
| 1125 | membank("bank1")->set_base(memregion("soundcpu")->base() + 0x100000 + 0x2000 * m_sound_bank); | |
| 1126 | 1126 | } |
| 1127 | 1127 | |
| 1128 | 1128 | |
| 1129 | 1129 | WRITE8_MEMBER(segas32_state::sound_bank_hi_w) |
| 1130 | 1130 | { |
| 1131 | 1131 | m_sound_bank = (m_sound_bank & 0x3f) | ((data & 0x04) << 4) | ((data & 0x03) << 7); |
| 1132 | membank("bank1")->set_base(m | |
| 1132 | membank("bank1")->set_base(memregion("soundcpu")->base() + 0x100000 + 0x2000 * m_sound_bank); | |
| 1133 | 1133 | } |
| 1134 | 1134 | |
| 1135 | 1135 |
| r21033 | r21034 | |
|---|---|---|
| 157 | 157 | |
| 158 | 158 | void looping_state::palette_init() |
| 159 | 159 | { |
| 160 | const UINT8 *color_prom = m | |
| 160 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 161 | 161 | static const int resistances[3] = { 1000, 470, 220 }; |
| 162 | 162 | double rweights[3], gweights[3], bweights[2]; |
| 163 | 163 | int i; |
| r21033 | r21034 | |
|---|---|---|
| 630 | 630 | |
| 631 | 631 | void savquest_state::machine_reset() |
| 632 | 632 | { |
| 633 | machine().root_device().membank("bios_f0000")->set_base(machine().root_device().memregion("bios")->base() + 0x30000); | |
| 634 | machine().root_device().membank("bios_e0000")->set_base(machine().root_device().memregion("bios")->base() + 0x20000); | |
| 635 | machine().root_device().membank("bios_e4000")->set_base(machine().root_device().memregion("bios")->base() + 0x24000); | |
| 636 | machine().root_device().membank("bios_e8000")->set_base(machine().root_device().memregion("bios")->base() + 0x28000); | |
| 637 | machine().root_device().membank("bios_ec000")->set_base(machine().root_device().memregion("bios")->base() + 0x2c000); | |
| 633 | membank("bios_f0000")->set_base(memregion("bios")->base() + 0x30000); | |
| 634 | membank("bios_e0000")->set_base(memregion("bios")->base() + 0x20000); | |
| 635 | membank("bios_e4000")->set_base(memregion("bios")->base() + 0x24000); | |
| 636 | membank("bios_e8000")->set_base(memregion("bios")->base() + 0x28000); | |
| 637 | membank("bios_ec000")->set_base(memregion("bios")->base() + 0x2c000); | |
| 638 | 638 | } |
| 639 | 639 | |
| 640 | 640 | static MACHINE_CONFIG_START( savquest, savquest_state ) |
| r21033 | r21034 | |
|---|---|---|
| 712 | 712 | DRIVER_INIT_MEMBER(ltcasino_state,mv4in1) |
| 713 | 713 | { |
| 714 | 714 | int i; |
| 715 | UINT8 *rom = m | |
| 715 | UINT8 *rom = memregion("maincpu")->base(); | |
| 716 | 716 | for(i=0;i<0x10000;i++) |
| 717 | 717 | rom[i]=BITSWAP8(rom[i],7,6,5,4,3,1,2,0); |
| 718 | 718 | } |
| r21033 | r21034 | |
|---|---|---|
| 254 | 254 | |
| 255 | 255 | void meijinsn_state::palette_init() |
| 256 | 256 | { |
| 257 | const UINT8 *color_prom = m | |
| 257 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 258 | 258 | int i; |
| 259 | 259 | static const int resistances_b[2] = { 470, 220 }; |
| 260 | 260 | static const int resistances_rg[3] = { 1000, 470, 220 }; |
| r21033 | r21034 | |
|---|---|---|
| 9506 | 9506 | kof2002_decrypt_68k(machine()); |
| 9507 | 9507 | neo_pcm2_swap(machine(), 0); |
| 9508 | 9508 | neogeo_cmc50_m1_decrypt(machine()); |
| 9509 | kof2002b_gfx_decrypt(machine(), machine().root_device().memregion("sprites")->base(),0x4000000); | |
| 9510 | kof2002b_gfx_decrypt(machine(), machine().root_device().memregion("fixed")->base(),0x20000); | |
| 9509 | kof2002b_gfx_decrypt(machine(), memregion("sprites")->base(),0x4000000); | |
| 9510 | kof2002b_gfx_decrypt(machine(), memregion("fixed")->base(),0x20000); | |
| 9511 | 9511 | } |
| 9512 | 9512 | |
| 9513 | 9513 | DRIVER_INIT_MEMBER(neogeo_state,kf2k2pls) |
| r21033 | r21034 | |
| 9916 | 9916 | |
| 9917 | 9917 | /* the game code clears the text overlay used ingame immediately after writing it.. why? protection? sloppy code that the hw ignores? imperfect emulation? */ |
| 9918 | 9918 | { |
| 9919 | UINT16* rom = (UINT16*)m | |
| 9919 | UINT16* rom = (UINT16*)memregion("maincpu")->base(); | |
| 9920 | 9920 | |
| 9921 | 9921 | rom[0x2a6f8/2] = 0x4e71; |
| 9922 | 9922 | rom[0x2a6fa/2] = 0x4e71; |
| r21033 | r21034 | |
|---|---|---|
| 299 | 299 | |
| 300 | 300 | void caswin_state::palette_init() |
| 301 | 301 | { |
| 302 | const UINT8 *color_prom = m | |
| 302 | const UINT8 *color_prom = memregion("proms")->base(); | |
| 303 | 303 | int bit0, bit1, bit2 , r, g, b; |
| 304 | 304 | int i; |
| 305 | 305 |
| r21033 | r21034 | |
|---|---|---|
| 211 | 211 | |
| 212 | 212 | DRIVER_INIT_MEMBER(intrscti_state,intrscti) |
| 213 | 213 | { |
| 214 | UINT8 *cpu = m | |
| 214 | UINT8 *cpu = memregion( "maincpu" )->base(); | |
| 215 | 215 | int i; |
| 216 | 216 | for (i=0;i<0x1000;i++) |
| 217 | 217 | cpu[i+0x8000]=0xc9; // ret |
| r21033 | r21034 | |
|---|---|---|
| 1494 | 1494 | bitmap.fill(m_bgcolor, cliprect); |
| 1495 | 1495 | |
| 1496 | 1496 | #ifdef MAME_DEBUG |
| 1497 | if ( | |
| 1497 | if (ioport("DEBUG")->read()) copy_scroll_xp(bitmap, m_render_layer[3], *m_scrollx0, *m_scrolly0); // not used??? | |
| 1498 | 1498 | #endif |
| 1499 | 1499 | |
| 1500 | 1500 | copy_scroll_xp(bitmap, m_render_layer[2], *m_scrollx1, *m_scrolly1); |
| r21033 | r21034 | |
|---|---|---|
| 2045 | 2045 | |
| 2046 | 2046 | DRIVER_INIT_MEMBER(cninja_state,mutantf) |
| 2047 | 2047 | { |
| 2048 | const UINT8 *src = machine().root_device().memregion("gfx2")->base(); | |
| 2049 | UINT8 *dst = machine().root_device().memregion("gfx1")->base(); | |
| 2048 | const UINT8 *src = memregion("gfx2")->base(); | |
| 2049 | UINT8 *dst = memregion("gfx1")->base(); | |
| 2050 | 2050 | |
| 2051 | 2051 | /* The 16x16 graphic has some 8x8 chars in it - decode them in GFX1 */ |
| 2052 | 2052 | memcpy(dst + 0x50000, dst + 0x10000, 0x10000); |
| Previous | 199869 Revisions | Next |